[
  {
    "path": ".eslintignore",
    "content": "\nbuild/*\nconfig/*\nnode_modules/*\npublic/vendor/*\nscripts/*\nsrc/serviceWorker.js\n"
  },
  {
    "path": ".eslintrc",
    "content": "{\n\t\"parser\": \"babel-eslint\",\n\t\"extends\": [\n\t\t\"eslint:recommended\",\n\t\t\"plugin:react/recommended\"\n\t],\n\t\"env\": {\n\t\t\"browser\": false,\n\t\t\"es6\": true,\n\t\t\"node\": true\n\t},\n\t\"parserOptions\": {\n\t\t\"sourceType\": \"module\",\n\t\t\"ecmaFeatures\": {\n\t\t\t\"jsx\": true\n\t\t}\n\t},\n\t\"globals\": {\n\t\t\"window\": true,\n\t\t\"document\": true,\n\t\t\"localStorage\": true,\n\t\t\"sessionStorage\": true,\n\t\t\"React\": true,\n\t\t\"ReactDOM\": true,\n\t\t\"fetch\": true\n\t},\n\t\"plugins\": [\n\t\t\"react\"\n\t],\n\t\"settings\": {\n\t\t\"react\": {\n\t\t\t\"pragma\": \"React\",\n\t\t\t\"version\": \"16.0\"\n\t\t}\n\t},\n\t\"rules\": {\n\t\t\"arrow-parens\": [\"warn\", \"as-needed\"],\n\t\t\"arrow-spacing\": \"warn\",\n\t\t\"block-scoped-var\": \"warn\",\n\t\t\"brace-style\": [ \"warn\", \"stroustrup\", {\n\t\t\t\"allowSingleLine\": true\n\t\t}],\n\n\t\t\"comma-dangle\": [ \"warn\", \"always-multiline\" ],\n\t\t\"comma-spacing\": \"warn\",\n\t\t\"comma-style\": \"warn\",\n\n\t\t\"curly\": \"warn\",\n\t\t\"dot-notation\": \"warn\",\n\t\t\"eol-last\": \"error\",\n\t\t\"eqeqeq\": \"warn\",\n\n\t\t\"func-call-spacing\": [ \"warn\", \"never\" ],\n\t\t\"func-style\": [ \"error\", \"declaration\", {\n\t\t\t\"allowArrowFunctions\": true\n\t\t}],\n\t\t\"generator-star-spacing\": \"warn\",\n\t\t\"indent\": [ \"warn\", 2, {\n\t\t\t\"MemberExpression\": 0,\n\t\t\t\"SwitchCase\": 1\n\t\t}],\n\t\t\"jsx-quotes\": \"error\",\n\t\t\"new-parens\": \"error\",\n\n\t\t\"no-caller\": \"error\",\n\t\t\"no-console\": \"off\",\n\t\t\"no-duplicate-imports\": \"error\",\n\t\t\"no-else-return\": \"warn\",\n\t\t\"no-eval\": \"error\",\n\t\t\"no-extra-label\": \"warn\",\n\t\t\"no-floating-decimal\": \"warn\",\n\t\t\"no-lonely-if\": \"warn\",\n\t\t\"no-mixed-operators\": \"warn\",\n\t\t\"no-multi-str\": \"error\",\n\t\t\"no-negated-in-lhs\": \"warn\",\n\t\t\"no-shadow\": \"warn\",\n\t\t\"no-undef-init\": \"error\",\n\t\t\"no-unused-expressions\": \"error\",\n\t\t\"no-useless-computed-key\": \"warn\",\n\t\t\"no-useless-constructor\": \"warn\",\n\t\t\"no-useless-rename\": \"warn\",\n\t\t\"no-useless-return\": \"warn\",\n\t\t\"no-var\": \"error\",\n\t\t\"no-whitespace-before-property\": \"warn\",\n\n\t\t\"object-curly-spacing\": [ \"error\", \"always\" ],\n\t\t\"prefer-const\": \"warn\",\n\t\t\"prefer-rest-params\": \"warn\",\n\t\t\"quote-props\": [ \"error\", \"as-needed\" ],\n\t\t\"quotes\": [ \"warn\", \"single\", {\n\t\t\t\"allowTemplateLiterals\": true\n\t\t}],\n\n\t\t\"rest-spread-spacing\": [\"warn\", \"never\"],\n\t\t\"semi-spacing\": \"warn\",\n\t\t\"semi-style\": [ \"warn\", \"last\" ],\n\t\t\"semi\": [ \"error\", \"always\" ],\n\n\t\t\"space-before-blocks\": \"warn\",\n\t\t\"space-before-function-paren\": \"warn\",\n\t\t\"space-infix-ops\": \"warn\",\n\t\t\"space-in-parens\": [\"warn\", \"never\"],\n\t\t\"spaced-comment\": [\"warn\", \"always\"],\n\t\t\"template-curly-spacing\": \"warn\",\n\t\t\"yield-star-spacing\": \"warn\",\n\n\t\t\"valid-jsdoc\": [\"warn\", {\n\t\t\t\"requireReturn\": false,\n\t\t\t\"requireReturnDescription\": false,\n\t\t\t\"requireParamDescription\": false\n\t\t}],\n\n\t\t\"react/display-name\": \"off\",\n\t\t\"react/jsx-curly-spacing\": \"off\",\n\t\t\"react/jsx-equals-spacing\": \"error\",\n\t\t\"react/jsx-indent\": [ \"warn\", 2 ],\n\t\t\"react/jsx-indent-props\": [ \"warn\", 2 ],\n\t\t\"react/jsx-key\": \"error\",\n\t\t\"react/jsx-uses-react\": \"error\",\n\t\t\"react/jsx-uses-vars\": \"error\",\n\t\t\"react/jsx-tag-spacing\": \"warn\",\n\t\t\"react/no-children-prop\": \"off\",\n\t\t\"react/no-find-dom-node\": \"warn\",\n\t\t\"react/no-unescaped-entities\": \"off\",\n\t\t\"react/prop-types\": \"off\"\n\t}\n}\n"
  },
  {
    "path": ".gitignore",
    "content": "# See https://help.github.com/ignore-files/ for more about ignoring files.\n\n# dependencies\n/node_modules\n\n# testing\n/coverage\n\n# production\n/build\n\n# temporary files\n/tmp\n\n# misc\n.DS_Store\n.env.local\n.env.development.local\n.env.test.local\n.env.production.local\n\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npackage-lock.json\nyarn.lock\n\n*.php\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# g-editor changelog\n\n## 1.3.0\n\n### Added\n- Read block config from the gutenbergCloud settings (if present)\n\n### Changed\n- Update Gutenberg to latest version (6.1.1)\n\n\n## 1.2.0\n\n### Added\n- Support for frontend scripts\n\n### Changed\n- Fixed default public URL on production build\n\n\n## 1.1.0\n\n### Added\n- Allow a target build folder to be set with an environment var\n\n### Changed\n- Only send essential folders to NPM\n\n\n## 1.0.0\n\n### Changed\n- Removed Gutenberg-JS dependency\n- Added scripts from Gutenberg-js\n- Load Gutenberg packages directly\n\n\n## 0.4.0\n\n### Added\n- Added fake data for taxonomies, categories and users.\n- Added button to clear local storage manually instead of clearing on bootup.\n- Implemented basic image upload to memory.\n- Added changelog.\n\n### Changed\n- Updated Gutenberg-JS dependency to the latest version (4.0.0).\n- Local storage is no longer cleared on bootup. This makes it possible to test blocks that were pre-saved for consistency and deprecated markup.\n- Refactored API Fetch function to cover more WP API Endpoints.\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2018 Frontkom\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# g-editor\n\nA minimalist version of Gutenberg's editor. Ideal for checking your custom blocks.\n\n``` bash\nnpm install @frontkom/g-editor\nnpm start\n```\n\nYou can include your custom block by passing its path in `BLOCK_DIR` env var.\n\n``` bash\nBLOCK_DIR=\\absolute\\path\\to\\your-custom-block npm start\n```\n\nThe editor expects that your custom block has an `index.js` and a `style.css` in its `build` folder.\n\n```\nyour-custom-block\n  ├── ...\n  ├── build\n  │  ├── index.js\n  │  └── style.css\n  └── ...\n```\n\n\n## g-editor and Gutenberg-js\n\nSince version 1.0, `g-editor` no longer depends on `Gutenberg-js`.\nIt now includes the source `Gutenberg` packages directly.\n\n## Current Gutenberg version\n\n[v8.5.1](https://github.com/WordPress/gutenberg/releases/tag/v8.5.1)\n\n### Better updates\n\nTo update Gutenberg packages, run\n```\nnpm run g-update\n```\n\nIt will pull to your local machine from the WordPress repo the Gutenberg packages assets ready to use. After copy those assets to `public/vendor/gutenberg`, the script will generate `g-scripts.txt` and `g-styles.txt` files with all the depencies the editor needs to run.\n\n\n## Assets\n\nThe sample videos are a courtesy of [Pixabay](https://pixabay.com/):\n\n  * [https://pixabay.com/en/videos/cute-cat-funny-cat-kitten-domestic-3092/](https://pixabay.com/en/videos/cute-cat-funny-cat-kitten-domestic-3092/)\n  * [https://pixabay.com/en/videos/cat-cat-thailand-small-indian-civet-1297/](https://pixabay.com/en/videos/cat-cat-thailand-small-indian-civet-1297/)\n"
  },
  {
    "path": "config/block-vars.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\n\nconst blockDir = process.env.BLOCK_DIR || false;\n\nmodule.exports = function getBlockVars () {\n  // Check if a directory was passed as an env var\n  if(!blockDir || !fs.lstatSync(blockDir).isDirectory()) {\n    return {};\n  }\n\n  // Extract the content of a file as a string\n  const getFileContents = file =>\n    fs.existsSync(file) && fs.lstatSync(file).isFile()\n      ? fs.readFileSync(file).toString()\n      : undefined;\n\n  // Read the block config (if exists)\n  const blockPkg = getFileContents(path.resolve(blockDir, 'package.json'));\n  const config = blockPkg && JSON.parse(blockPkg).gutenbergCloud;\n\n\n  // Extract the file name from the block config or set a default\n  function getFileName (name, oldName, defName) {\n    const file = config && (config[name] || config[oldName]);\n    return file ? path.resolve(blockDir, file) : path.resolve(blockDir, 'build', defName);\n  }\n\n  // Get the file names to be loaded\n  const editorJs = getFileName('editor-js', 'js', 'index.js');\n  const viewCss  = getFileName('view-css', 'css',  'style.css');\n  const editorCss = getFileName('editor-css', 'editor', 'editor.css');\n  const viewJs = getFileName('view-js', 'scripts', 'scripts.js');\n\n\n  // Load the block files\n  const blockVars = {};\n\n  blockVars.blockScript = getFileContents(editorJs);\n  blockVars.blockStyle = getFileContents(viewCss);\n  blockVars.blockEditorStyle = getFileContents(editorCss);\n  const blockViewScript = getFileContents(viewJs);\n  blockVars.blockViewScript = blockViewScript && Buffer.from(blockViewScript).toString('base64');\n\n  return blockVars;\n};\n"
  },
  {
    "path": "config/env.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst paths = require('./paths');\n\n// Make sure that including paths.js after env.js will read .env variables.\ndelete require.cache[require.resolve('./paths')];\n\nconst NODE_ENV = process.env.NODE_ENV;\nif (!NODE_ENV) {\n  throw new Error(\n    'The NODE_ENV environment variable is required but was not specified.'\n  );\n}\n\n// https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use\nvar dotenvFiles = [\n  `${paths.dotenv}.${NODE_ENV}.local`,\n  `${paths.dotenv}.${NODE_ENV}`,\n  // Don't include `.env.local` for `test` environment\n  // since normally you expect tests to produce the same\n  // results for everyone\n  NODE_ENV !== 'test' && `${paths.dotenv}.local`,\n  paths.dotenv,\n].filter(Boolean);\n\n// Load environment variables from .env* files. Suppress warnings using silent\n// if this file is missing. dotenv will never modify any environment variables\n// that have already been set.  Variable expansion is supported in .env files.\n// https://github.com/motdotla/dotenv\n// https://github.com/motdotla/dotenv-expand\ndotenvFiles.forEach(dotenvFile => {\n  if (fs.existsSync(dotenvFile)) {\n    require('dotenv-expand')(\n      require('dotenv').config({\n        path: dotenvFile,\n      })\n    );\n  }\n});\n\n// We support resolving modules according to `NODE_PATH`.\n// This lets you use absolute paths in imports inside large monorepos:\n// https://github.com/facebook/create-react-app/issues/253.\n// It works similar to `NODE_PATH` in Node itself:\n// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders\n// Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored.\n// Otherwise, we risk importing Node.js core modules into an app instead of Webpack shims.\n// https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421\n// We also resolve them to make sure all tools using them work consistently.\nconst appDirectory = fs.realpathSync(process.cwd());\nprocess.env.NODE_PATH = (process.env.NODE_PATH || '')\n  .split(path.delimiter)\n  .filter(folder => folder && !path.isAbsolute(folder))\n  .map(folder => path.resolve(appDirectory, folder))\n  .join(path.delimiter);\n\n// Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be\n// injected into the application via DefinePlugin in Webpack configuration.\nconst REACT_APP = /^REACT_APP_/i;\n\nfunction getClientEnvironment(publicUrl) {\n  const raw = Object.keys(process.env)\n    .filter(key => REACT_APP.test(key))\n    .reduce(\n      (env, key) => {\n        env[key] = process.env[key];\n        return env;\n      },\n      {\n        // Useful for determining whether we’re running in production mode.\n        // Most importantly, it switches React into the correct mode.\n        NODE_ENV: process.env.NODE_ENV || 'development',\n        // Useful for resolving the correct path to static assets in `public`.\n        // For example, <img src={process.env.PUBLIC_URL + '/img/logo.png'} />.\n        // This should only be used as an escape hatch. Normally you would put\n        // images into the `src` and `import` them in code to get their paths.\n        PUBLIC_URL: publicUrl,\n      }\n    );\n  // Stringify all values so we can feed into Webpack DefinePlugin\n  const stringified = {\n    'process.env': Object.keys(raw).reduce((env, key) => {\n      env[key] = JSON.stringify(raw[key]);\n      return env;\n    }, {}),\n  };\n\n  return { raw, stringified };\n}\n\nmodule.exports = getClientEnvironment;\n"
  },
  {
    "path": "config/gutenberg/README.md",
    "content": "# Gutenberg helpers\n\n## Vendor scripts\nhttps://github.com/WordPress/WordPress/blob/master/wp-includes/script-loader.php#L81\n\n## Gutenberg styles\nhttps://github.com/WordPress/WordPress/blob/master/wp-includes/script-loader.php#L1815;\n"
  },
  {
    "path": "config/gutenberg/assets-queue.js",
    "content": "module.exports = function AssetsQueue () {\n  // Assets list and their dependencies\n  // ex: { 'a': ['b', 'c', 'd'] , 'b': ['c'], 'c': [], 'd': ['b', 'c'] }\n  const assetsList = [];\n\n  // List of assets paths\n  // ex: { 'a': './path/to/..' , 'b': '...', 'c': '...', 'c': '...' }\n  const pathsList = [];\n\n  // List of sorted assets\n  // ex: ['c', 'b', 'd', 'a']\n  const sortedList = [];\n\n  // Sorts assest list according their dependencies\n  const sortList = list => {\n    list.forEach(item => {\n      if (assetsList[item] && assetsList[item].length) {\n        sortList(assetsList[item]);\n      }\n\n      if (!sortedList.includes(item)) {\n        sortedList.push(item);\n      }\n    });\n  };\n\n  return {\n    enqueue: (name, path, deps) => {\n      // Add asset to the assets list\n      assetsList[name] = deps;\n      // Add assest's path to the paths list\n      pathsList[name] = path;\n    },\n    getPaths: () => {\n      // Sorting assets\n      sortList(Object.keys(assetsList));\n\n      return sortedList.map(asset => ({\n        name: asset,\n        path: pathsList[asset],\n      }));\n    },\n  };\n};\n"
  },
  {
    "path": "config/gutenberg/index.js",
    "content": "'use strict';\n\nconst AssetsQueue = require('./assets-queue.js');\n\nconst vendorScripts = require('./vendor.json');\nconst gutenbergScripts = require('./scripts.json');\nconst gutenbergStyles = require('./styles.json');\n\nconst vendorFolder = './public/vendor';\nconst gutenbergFolder = vendorFolder + '/gutenberg';\n\nmodule.exports = function getGutenbergAssets () {\n  const depsScripts = new AssetsQueue();\n  const depsStyles = new AssetsQueue();\n\n  // Enqueue vendor js\n  for (const script in vendorScripts) {\n    depsScripts.enqueue(script,\n      gutenbergFolder + '/vendor/' + script + '.min.js',\n      vendorScripts[script]);\n  }\n\n  // Enqueue local js\n  depsScripts.enqueue('no-conflict',\n    vendorFolder + '/no-conflict.js',\n    ['lodash']);\n\n  depsScripts.enqueue('g-data',\n    vendorFolder + '/g-data.js',\n    ['wp-data']);\n\n  // Enqueue wp-packages js\n  for (const script in gutenbergScripts) {\n    // depsScripts.enqueue(script,\n    //   gutenbergFolder + '/' + script + '.min.js',\n    //   gutenbergScripts[script]);\n\n    const name = 'wp-' + script.replace('.js', '');\n    // console.log(name);\n    // console.log(gutenbergFolder + '/' + name + '.min.js');\n    // console.log(gutenbergScripts[script].dependencies);\n\n    depsScripts.enqueue(name,\n      gutenbergFolder + '/' + name + '.min.js',\n      gutenbergScripts[script].dependencies);\n  }\n\n  // Enqueue style\n  depsStyles.enqueue('wp-block-library-theme',\n    gutenbergFolder + '/styles/wp-block-library/theme.min.css',\n    []);\n\n  depsStyles.enqueue('wp-edit-blocks',\n    gutenbergFolder + '/styles/wp-block-library/editor.min.css',\n    ['wp-components', 'wp-editor', 'wp-block-library', 'wp-block-library-theme']);\n\n  for (const style in gutenbergStyles) {\n    const name = `wp-${style}`;\n    depsStyles.enqueue(name,\n      gutenbergFolder + '/styles/' + name + '/style.min.css',\n      gutenbergStyles[style]);\n  }\n\n  // console.log(depsScripts.getPaths());\n  return {\n    scripts: depsScripts.getPaths(),\n    styles: depsStyles.getPaths(),\n  };\n};\n"
  },
  {
    "path": "config/gutenberg/scripts.json",
    "content": "{\"a11y.js\":{\"dependencies\":[\"wp-dom-ready\",\"wp-i18n\",\"wp-polyfill\"],\"version\":\"ea68781de7874fd1881fcecad3cf7aae\"},\"annotations.js\":{\"dependencies\":[\"lodash\",\"wp-data\",\"wp-hooks\",\"wp-i18n\",\"wp-polyfill\",\"wp-rich-text\"],\"version\":\"3c4abc48a6768f9a051a57d2e14a418a\"},\"api-fetch.js\":{\"dependencies\":[\"wp-i18n\",\"wp-polyfill\",\"wp-url\"],\"version\":\"1ab98b16a2f2c9c50be5e27ed5fc555c\"},\"autop.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"0b9bcc5c6fd3170df7c7181a802cbc16\"},\"blob.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"5f0b4dd5b367c7c02cce65eb4fa12c72\"},\"block-directory.js\":{\"dependencies\":[\"lodash\",\"wp-block-editor\",\"wp-blocks\",\"wp-components\",\"wp-compose\",\"wp-data\",\"wp-data-controls\",\"wp-edit-post\",\"wp-element\",\"wp-i18n\",\"wp-notices\",\"wp-plugins\",\"wp-polyfill\",\"wp-primitives\",\"wp-url\"],\"version\":\"2add38c5494040c7ab8906c7b1a38308\"},\"block-editor.js\":{\"dependencies\":[\"lodash\",\"react\",\"wp-a11y\",\"wp-blob\",\"wp-blocks\",\"wp-components\",\"wp-compose\",\"wp-data\",\"wp-deprecated\",\"wp-dom\",\"wp-element\",\"wp-hooks\",\"wp-html-entities\",\"wp-i18n\",\"wp-is-shallow-equal\",\"wp-keyboard-shortcuts\",\"wp-keycodes\",\"wp-notices\",\"wp-polyfill\",\"wp-primitives\",\"wp-rich-text\",\"wp-shortcode\",\"wp-token-list\",\"wp-url\",\"wp-viewport\",\"wp-wordcount\"],\"version\":\"3b3db5349cf13939fabf2938f45b46e7\"},\"block-library.js\":{\"dependencies\":[\"lodash\",\"moment\",\"react\",\"wp-api-fetch\",\"wp-autop\",\"wp-blob\",\"wp-block-editor\",\"wp-blocks\",\"wp-components\",\"wp-compose\",\"wp-core-data\",\"wp-data\",\"wp-date\",\"wp-deprecated\",\"wp-element\",\"wp-escape-html\",\"wp-i18n\",\"wp-keycodes\",\"wp-notices\",\"wp-polyfill\",\"wp-primitives\",\"wp-rich-text\",\"wp-server-side-render\",\"wp-url\",\"wp-viewport\"],\"version\":\"028ea8791ca0514fed6876f5a2dd9708\"},\"block-serialization-default-parser.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"3e44cb6ae058219e6ac366b8ec737266\"},\"blocks.js\":{\"dependencies\":[\"lodash\",\"wp-autop\",\"wp-blob\",\"wp-block-serialization-default-parser\",\"wp-compose\",\"wp-data\",\"wp-dom\",\"wp-element\",\"wp-hooks\",\"wp-html-entities\",\"wp-i18n\",\"wp-is-shallow-equal\",\"wp-polyfill\",\"wp-primitives\",\"wp-shortcode\"],\"version\":\"dd9e45c10504c7aa13b5502738db5e25\"},\"components.js\":{\"dependencies\":[\"lodash\",\"moment\",\"react\",\"wp-a11y\",\"wp-compose\",\"wp-deprecated\",\"wp-dom\",\"wp-element\",\"wp-hooks\",\"wp-i18n\",\"wp-is-shallow-equal\",\"wp-keycodes\",\"wp-polyfill\",\"wp-primitives\",\"wp-rich-text\",\"wp-warning\"],\"version\":\"4e70d36b413faa6cb4868dd710f9fc74\"},\"compose.js\":{\"dependencies\":[\"lodash\",\"react\",\"wp-element\",\"wp-is-shallow-equal\",\"wp-polyfill\",\"wp-priority-queue\"],\"version\":\"3c567f3573f87869b12a660ea2dbd08f\"},\"core-data.js\":{\"dependencies\":[\"lodash\",\"wp-api-fetch\",\"wp-blocks\",\"wp-data\",\"wp-data-controls\",\"wp-deprecated\",\"wp-element\",\"wp-i18n\",\"wp-is-shallow-equal\",\"wp-polyfill\",\"wp-url\"],\"version\":\"32c30471858359a206e1d97f0307536f\"},\"data.js\":{\"dependencies\":[\"lodash\",\"react\",\"wp-compose\",\"wp-deprecated\",\"wp-element\",\"wp-is-shallow-equal\",\"wp-polyfill\",\"wp-priority-queue\",\"wp-redux-routine\"],\"version\":\"9ad3e1bf6bd127718d32ceab7088da98\"},\"data-controls.js\":{\"dependencies\":[\"wp-api-fetch\",\"wp-data\",\"wp-polyfill\"],\"version\":\"a5b2dfa138f7af7d012e98a93ad5894b\"},\"date.js\":{\"dependencies\":[\"moment\",\"wp-polyfill\"],\"version\":\"d49d104186028982f7565cd44ec1e533\"},\"deprecated.js\":{\"dependencies\":[\"wp-hooks\",\"wp-polyfill\"],\"version\":\"9852e99a621527ba8bddd61a6724fa9b\"},\"dom.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"3ad0f41518dc0785a5819e281d7a71ed\"},\"dom-ready.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"36f50e6359d5b602a4986a4d4bbd7d00\"},\"edit-post.js\":{\"dependencies\":[\"lodash\",\"wp-a11y\",\"wp-api-fetch\",\"wp-block-editor\",\"wp-block-library\",\"wp-blocks\",\"wp-components\",\"wp-compose\",\"wp-core-data\",\"wp-data\",\"wp-data-controls\",\"wp-editor\",\"wp-element\",\"wp-hooks\",\"wp-i18n\",\"wp-keyboard-shortcuts\",\"wp-keycodes\",\"wp-media-utils\",\"wp-notices\",\"wp-plugins\",\"wp-polyfill\",\"wp-primitives\",\"wp-url\",\"wp-viewport\",\"wp-warning\"],\"version\":\"0647dd5906e3ddb0855378f6e5e02075\"},\"editor.js\":{\"dependencies\":[\"lodash\",\"react\",\"wp-api-fetch\",\"wp-autop\",\"wp-block-editor\",\"wp-blocks\",\"wp-components\",\"wp-compose\",\"wp-core-data\",\"wp-data\",\"wp-data-controls\",\"wp-date\",\"wp-deprecated\",\"wp-element\",\"wp-hooks\",\"wp-html-entities\",\"wp-i18n\",\"wp-keyboard-shortcuts\",\"wp-keycodes\",\"wp-media-utils\",\"wp-notices\",\"wp-polyfill\",\"wp-primitives\",\"wp-rich-text\",\"wp-server-side-render\",\"wp-url\",\"wp-viewport\",\"wp-wordcount\"],\"version\":\"c07c6f4b6b71b9c4818e864a38611859\"},\"element.js\":{\"dependencies\":[\"lodash\",\"react\",\"react-dom\",\"wp-escape-html\",\"wp-polyfill\"],\"version\":\"0ebf17c099194d55615b187d07be0f8e\"},\"escape-html.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"670c5fa5c09d8ba475458050b3249f56\"},\"format-library.js\":{\"dependencies\":[\"lodash\",\"wp-block-editor\",\"wp-components\",\"wp-data\",\"wp-dom\",\"wp-element\",\"wp-html-entities\",\"wp-i18n\",\"wp-keycodes\",\"wp-polyfill\",\"wp-primitives\",\"wp-rich-text\",\"wp-url\"],\"version\":\"68526794793f271ac0e447634cd6d016\"},\"hooks.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"03e6cc8161586dfafae570e7459f517f\"},\"html-entities.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"c2fee572c38a50f71d231d83bf66b7bf\"},\"i18n.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"f8838da0979eefc32b5a4f934a5cab34\"},\"is-shallow-equal.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"78161a3fee0727a7bcf127e5c9bedee7\"},\"keyboard-shortcuts.js\":{\"dependencies\":[\"lodash\",\"wp-compose\",\"wp-data\",\"wp-keycodes\",\"wp-polyfill\"],\"version\":\"728358f63637d5c2f9021e559b8163df\"},\"keycodes.js\":{\"dependencies\":[\"lodash\",\"wp-i18n\",\"wp-polyfill\"],\"version\":\"f9c00cfc4cad77690eed675cb22e0d56\"},\"list-reusable-blocks.js\":{\"dependencies\":[\"lodash\",\"wp-api-fetch\",\"wp-components\",\"wp-compose\",\"wp-element\",\"wp-i18n\",\"wp-polyfill\"],\"version\":\"adaacba8f57351bcfb37ef79141031a8\"},\"media-utils.js\":{\"dependencies\":[\"lodash\",\"wp-api-fetch\",\"wp-blob\",\"wp-element\",\"wp-i18n\",\"wp-polyfill\"],\"version\":\"56888007855cb6035fa604d1c39af13d\"},\"notices.js\":{\"dependencies\":[\"lodash\",\"wp-data\",\"wp-polyfill\"],\"version\":\"8db5de9b94072cb05f98f2c82aabdf03\"},\"nux.js\":{\"dependencies\":[\"lodash\",\"wp-components\",\"wp-compose\",\"wp-data\",\"wp-deprecated\",\"wp-element\",\"wp-i18n\",\"wp-polyfill\",\"wp-primitives\"],\"version\":\"cdfc8e4d94046b2d7cb00ef4ecbba6d1\"},\"plugins.js\":{\"dependencies\":[\"lodash\",\"wp-compose\",\"wp-element\",\"wp-hooks\",\"wp-polyfill\",\"wp-primitives\"],\"version\":\"5e244a04b2f234db29db0be334336c1a\"},\"primitives.js\":{\"dependencies\":[\"wp-element\",\"wp-polyfill\"],\"version\":\"da0f2f0cb5791721339eb9f957901443\"},\"priority-queue.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"ee1e102398b6aaeb52682abcc0eb1260\"},\"redux-routine.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"c3af5fcf3e23d4dde8c430d96ca459c8\"},\"rich-text.js\":{\"dependencies\":[\"lodash\",\"wp-data\",\"wp-deprecated\",\"wp-element\",\"wp-escape-html\",\"wp-keycodes\",\"wp-polyfill\"],\"version\":\"7fe726f068a2c7ef6349f966e014b277\"},\"server-side-render.js\":{\"dependencies\":[\"lodash\",\"wp-api-fetch\",\"wp-components\",\"wp-data\",\"wp-deprecated\",\"wp-element\",\"wp-i18n\",\"wp-polyfill\",\"wp-url\"],\"version\":\"0058192b49150099bed73095ae1f7011\"},\"shortcode.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"faae0a5043df779ab3bd0a9c76095bcc\"},\"token-list.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"4fb88e495cc63c15ab2950abab1401d1\"},\"url.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"32835b70748f3f5c7595c014e7e2668c\"},\"viewport.js\":{\"dependencies\":[\"lodash\",\"wp-compose\",\"wp-data\",\"wp-element\",\"wp-polyfill\"],\"version\":\"addc91768f8d730f76366abc5b869053\"},\"warning.js\":{\"dependencies\":[\"wp-polyfill\"],\"version\":\"4de480885c1f737284e19922dcee677b\"},\"wordcount.js\":{\"dependencies\":[\"lodash\",\"wp-polyfill\"],\"version\":\"1b5659d14dfec85f62c73f5f63311edf\"}}"
  },
  {
    "path": "config/gutenberg/styles.json",
    "content": "{\n  \"block-editor\": [ \"wp-components\", \"wp-editor-font\" ],\n  \"block-library\": [],\n  \"components\": [],\n  \"edit-post\": [ \"wp-components\", \"wp-block-editor\", \"wp-editor\",\n                 \"wp-edit-blocks\", \"wp-block-library\", \"wp-nux\" ],\n  \"editor\": [ \"wp-components\", \"wp-block-editor\", \"wp-nux\" ],\n  \"format-library\": [],\n  \"list-reusable-blocks\": [ \"wp-components\" ],\n  \"nux\": [ \"wp-components\" ]\n}\n"
  },
  {
    "path": "config/gutenberg/update.sh",
    "content": "read -p 'WordPress tag (enter): ' tag_name\n\n# Go to tmp folder\n[[ -d tmp ]] || mkdir tmp\ncd tmp\n\n# Get wordpress\n[[ -d WordPress ]] ||git clone git@github.com:WordPress/WordPress.git\ncd WordPress\n\ngit fetch\n\nif test \"$tag_name\" != ''; then\n  git checkout -b $tag_name tags/$tag_name\nelse\n  git checkout master\n  git pull\nfi\n\n# Back to root\ncd ../..\n\n# Clean up\nrm -rf public/vendor/gutenberg/\nmkdir public/vendor/gutenberg/\n\n# Generating scripts.json with gutenberg js packages and dependencies\nnode scripts/g-scripts.js\n\n# Copy gutenberg packages js\ncp tmp/WordPress/wp-includes/js/dist/* public/vendor/gutenberg/\n\n# Add packages prefixes (ex: ally.js => wp-a11y.js)\ncd public/vendor/gutenberg/\nfor f in * ; do mv -- \"$f\" \"wp-$f\" ; done\ncd -\n\n# Copy vendor (lodash, react, etc)\ncp -Rf tmp/WordPress/wp-includes/js/dist/vendor/ public/vendor/gutenberg/vendor\n\n# Copy packages css\ncp -Rf tmp/WordPress/wp-includes/css/dist/ public/vendor/gutenberg/styles/\n\n# Add packages prefixes (ex: wp-block-editor)\ncd public/vendor/gutenberg/styles\nfor f in * ; do mv -- \"$f\" \"wp-$f\" ; done\n"
  },
  {
    "path": "config/gutenberg/vendor.json",
    "content": "{\n  \"react\": [\"wp-polyfill\"],\n  \"react-dom\": [\"react\"],\n  \"moment\": [],\n  \"lodash\": [],\n  \"wp-polyfill-fetch\": [],\n  \"wp-polyfill-formdata\": [],\n  \"wp-polyfill-node-contains\": [],\n  \"wp-polyfill-url\": [],\n  \"wp-polyfill-dom-rect\": [],\n  \"wp-polyfill-element-closest\": [],\n  \"wp-polyfill\": []\n}\n"
  },
  {
    "path": "config/jest/cssTransform.js",
    "content": "'use strict';\n\n// This is a custom Jest transformer turning style imports into empty objects.\n// http://facebook.github.io/jest/docs/en/webpack.html\n\nmodule.exports = {\n  process() {\n    return 'module.exports = {};';\n  },\n  getCacheKey() {\n    // The output is always the same.\n    return 'cssTransform';\n  },\n};\n"
  },
  {
    "path": "config/jest/fileTransform.js",
    "content": "'use strict';\n\nconst path = require('path');\n\n// This is a custom Jest transformer turning file imports into filenames.\n// http://facebook.github.io/jest/docs/en/webpack.html\n\nmodule.exports = {\n  process(src, filename) {\n    const assetFilename = JSON.stringify(path.basename(filename));\n\n    if (filename.match(/\\.svg$/)) {\n      return `module.exports = {\n        __esModule: true,\n        default: ${assetFilename},\n        ReactComponent: (props) => ({\n          $$typeof: Symbol.for('react.element'),\n          type: 'svg',\n          ref: null,\n          key: null,\n          props: Object.assign({}, props, {\n            children: ${assetFilename}\n          })\n        }),\n      };`;\n    }\n\n    return `module.exports = ${assetFilename};`;\n  },\n};\n"
  },
  {
    "path": "config/paths.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst fs = require('fs');\nconst url = require('url');\n\n// Make sure any symlinks in the project folder are resolved:\n// https://github.com/facebook/create-react-app/issues/637\nconst appDirectory = fs.realpathSync(process.cwd());\nconst resolveApp = relativePath => path.resolve(appDirectory, relativePath);\n\nconst envPublicUrl = process.env.PUBLIC_URL;\nconst envBuildUrl = process.env.BUILD_DIR;\n\nfunction ensureSlash(inputPath, needsSlash) {\n  const hasSlash = inputPath.endsWith('/');\n  if (hasSlash && !needsSlash) {\n    return inputPath.substr(0, inputPath.length - 1);\n  } else if (!hasSlash && needsSlash) {\n    return `${inputPath}/`;\n  } else {\n    return inputPath;\n  }\n}\n\nconst getPublicUrl = () => envPublicUrl || '/';\n\n// We use `PUBLIC_URL` environment variable or \"homepage\" field to infer\n// \"public path\" at which the app is served.\n// Webpack needs to know it to put the right <script> hrefs into HTML even in\n// single-page apps that may serve index.html for nested URLs like /todos/42.\n// We can't use a relative path in HTML because we don't want to load something\n// like /todos/42/static/js/bundle.7289d.js. We have to know the root.\nfunction getServedPath () {\n  const publicUrl = getPublicUrl();\n  const servedUrl = url.parse(publicUrl).pathname;\n  return ensureSlash(servedUrl, true);\n}\n\n// config after eject: we're in ./config/\nmodule.exports = {\n  dotenv: resolveApp('.env'),\n  appPath: resolveApp('.'),\n  appBuild: envBuildUrl || resolveApp('build'),\n  appPublic: resolveApp('public'),\n  appHtml: resolveApp('public/index.html'),\n  appIndexJs: resolveApp('src/index.js'),\n  appPackageJson: resolveApp('package.json'),\n  appSrc: resolveApp('src'),\n  yarnLockFile: resolveApp('yarn.lock'),\n  testsSetup: resolveApp('src/setupTests.js'),\n  proxySetup: resolveApp('src/setupProxy.js'),\n  appNodeModules: resolveApp('node_modules'),\n  publicUrl: getPublicUrl(),\n  servedPath: getServedPath(),\n};\n"
  },
  {
    "path": "config/webpack.config.dev.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst webpack = require('webpack');\nconst PnpWebpackPlugin = require('pnp-webpack-plugin');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');\nconst InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');\nconst WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin');\nconst ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');\nconst getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent');\nconst getClientEnvironment = require('./env');\nconst paths = require('./paths');\nconst ManifestPlugin = require('webpack-manifest-plugin');\nconst ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');\nconst fs = require('fs');\n\n// Block Script and Style\nconst blockVars = require('./block-vars')();\n\n// Read from local files\nconst gutenberg = {\n  gutenbergScripts: fs.readFileSync(\"./g-scripts.txt\"),\n  gutenbergStyle: fs.readFileSync(\"./g-styles.txt\")\n}\n\n// Webpack uses `publicPath` to determine where the app is being served from.\n// In development, we always serve from the root. This makes config easier.\nconst publicPath = '/';\n// `publicUrl` is just like `publicPath`, but we will provide it to our app\n// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.\n// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz.\nconst publicUrl = '';\n// Get environment variables to inject into our app.\nconst env = getClientEnvironment(publicUrl);\n\n// style files regexes\nconst cssRegex = /\\.css$/;\nconst cssModuleRegex = /\\.module\\.css$/;\nconst sassRegex = /\\.(scss|sass)$/;\nconst sassModuleRegex = /\\.module\\.(scss|sass)$/;\n\n// common function to get style loaders\nconst getStyleLoaders = (cssOptions, preProcessor) => {\n  const loaders = [\n    require.resolve('style-loader'),\n    {\n      loader: require.resolve('css-loader'),\n      options: cssOptions,\n    },\n    {\n      // Options for PostCSS as we reference these options twice\n      // Adds vendor prefixing based on your specified browser support in\n      // package.json\n      loader: require.resolve('postcss-loader'),\n      options: {\n        // Necessary for external CSS imports to work\n        // https://github.com/facebook/create-react-app/issues/2677\n        ident: 'postcss',\n        plugins: () => [\n          require('postcss-flexbugs-fixes'),\n          require('postcss-preset-env')({\n            autoprefixer: {\n              flexbox: 'no-2009',\n            },\n            stage: 3,\n          }),\n        ],\n      },\n    },\n  ];\n  if (preProcessor) {\n    loaders.push(require.resolve(preProcessor));\n  }\n  return loaders;\n};\n\n// This is the development configuration.\n// It is focused on developer experience and fast rebuilds.\n// The production configuration is different and lives in a separate file.\nmodule.exports = {\n  mode: 'development',\n  // You may want 'eval' instead if you prefer to see the compiled output in DevTools.\n  // See the discussion in https://github.com/facebook/create-react-app/issues/343\n  devtool: 'cheap-module-source-map',\n  // These are the \"entry points\" to our application.\n  // This means they will be the \"root\" imports that are included in JS bundle.\n  entry: [\n    // Include an alternative client for WebpackDevServer. A client's job is to\n    // connect to WebpackDevServer by a socket and get notified about changes.\n    // When you save a file, the client will either apply hot updates (in case\n    // of CSS changes), or refresh the page (in case of JS changes). When you\n    // make a syntax error, this client will display a syntax error overlay.\n    // Note: instead of the default WebpackDevServer client, we use a custom one\n    // to bring better experience for Create React App users. You can replace\n    // the line below with these two lines if you prefer the stock client:\n    // require.resolve('webpack-dev-server/client') + '?/',\n    // require.resolve('webpack/hot/dev-server'),\n    require.resolve('react-dev-utils/webpackHotDevClient'),\n    // Finally, this is your app's code:\n    paths.appIndexJs,\n    // We include the app code last so that if there is a runtime error during\n    // initialization, it doesn't blow up the WebpackDevServer client, and\n    // changing JS code would still trigger a refresh.\n    // \"/Users/sofiasousa/Workspace/g-hero-section/build/index.js\",\n  ], // .concat(entries),\n  output: {\n    // Add /* filename */ comments to generated require()s in the output.\n    pathinfo: true,\n    // This does not produce a real file. It's just the virtual path that is\n    // served by WebpackDevServer in development. This is the JS bundle\n    // containing code from all our entry points, and the Webpack runtime.\n    filename: 'static/js/bundle.js',\n    // There are also additional JS chunk files if you use code splitting.\n    chunkFilename: 'static/js/[name].chunk.js',\n    // This is the URL that app is served from. We use \"/\" in development.\n    publicPath: publicPath,\n    // Point sourcemap entries to original disk location (format as URL on Windows)\n    devtoolModuleFilenameTemplate: info =>\n      path.resolve(info.absoluteResourcePath).replace(/\\\\/g, '/'),\n  },\n  optimization: {\n    // Automatically split vendor and commons\n    // https://twitter.com/wSokra/status/969633336732905474\n    // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366\n    splitChunks: {\n      chunks: 'all',\n      name: false,\n    },\n    // Keep the runtime chunk seperated to enable long term caching\n    // https://twitter.com/wSokra/status/969679223278505985\n    runtimeChunk: true,\n  },\n  externals: {\n    lodash: 'lodash',\n    moment: 'moment',\n    react: 'React',\n    'react-dom': 'ReactDOM',\n  },\n  resolve: {\n    // This allows you to set a fallback for where Webpack should look for modules.\n    // We placed these paths second because we want `node_modules` to \"win\"\n    // if there are any conflicts. This matches Node resolution mechanism.\n    // https://github.com/facebook/create-react-app/issues/253\n    modules: ['node_modules'].concat(\n      // It is guaranteed to exist because we tweak it in `env.js`\n      process.env.NODE_PATH.split(path.delimiter).filter(Boolean)\n    ),\n    // These are the reasonable defaults supported by the Node ecosystem.\n    // We also include JSX as a common component filename extension to support\n    // some tools, although we do not recommend using it, see:\n    // https://github.com/facebook/create-react-app/issues/290\n    // `web` extension prefixes have been added for better support\n    // for React Native Web.\n    extensions: ['.mjs', '.web.js', '.js', '.json', '.web.jsx', '.jsx'],\n    alias: {\n      // Support React Native Web\n      // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/\n      'react-native': 'react-native-web',\n    },\n    plugins: [\n      // Adds support for installing with Plug'n'Play, leading to faster installs and adding\n      // guards against forgotten dependencies and such.\n      PnpWebpackPlugin,\n      // Prevents users from importing files from outside of src/ (or node_modules/).\n      // This often causes confusion because we only process files within src/ with babel.\n      // To fix this, we prevent you from importing files out of src/ -- if you'd like to,\n      // please link the files into your node_modules/ and let module-resolution kick in.\n      // Make sure your source files are compiled, as they will not be processed in any way.\n      new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]),\n    ],\n  },\n  resolveLoader: {\n    plugins: [\n      // Also related to Plug'n'Play, but this time it tells Webpack to load its loaders\n      // from the current package.\n      PnpWebpackPlugin.moduleLoader(module),\n    ],\n  },\n  module: {\n    strictExportPresence: true,\n    rules: [\n      // Disable require.ensure as it's not a standard language feature.\n      { parser: { requireEnsure: false } },\n\n      // First, run the linter.\n      // It's important to do this before Babel processes the JS.\n      {\n        test: /\\.(js|mjs|jsx)$/,\n        enforce: 'pre',\n        use: [\n          {\n            options: {\n              formatter: require.resolve('react-dev-utils/eslintFormatter'),\n              eslintPath: require.resolve('eslint'),\n\n            },\n            loader: require.resolve('eslint-loader'),\n          },\n        ],\n        include: paths.appSrc,\n      },\n      {\n        // \"oneOf\" will traverse all following loaders until one will\n        // match the requirements. When no loader matches it will fall\n        // back to the \"file\" loader at the end of the loader list.\n        oneOf: [\n          // \"url\" loader works like \"file\" loader except that it embeds assets\n          // smaller than specified limit in bytes as data URLs to avoid requests.\n          // A missing `test` is equivalent to a match.\n          {\n            test: [/\\.bmp$/, /\\.gif$/, /\\.jpe?g$/, /\\.png$/],\n            loader: require.resolve('url-loader'),\n            options: {\n              limit: 10000,\n              name: 'static/media/[name].[hash:8].[ext]',\n            },\n          },\n          // Process application JS with Babel.\n          // The preset includes JSX, Flow, and some ESnext features.\n          {\n            test: /\\.(js|mjs|jsx)$/,\n            include: paths.appSrc,\n            loader: require.resolve('babel-loader'),\n            options: {\n              customize: require.resolve(\n                'babel-preset-react-app/webpack-overrides'\n              ),\n\n              plugins: [\n                [\n                  require.resolve('babel-plugin-named-asset-import'),\n                  {\n                    loaderMap: {\n                      svg: {\n                        ReactComponent: '@svgr/webpack?-prettier,-svgo![path]',\n                      },\n                    },\n                  },\n                ],\n              ],\n              // This is a feature of `babel-loader` for webpack (not Babel itself).\n              // It enables caching results in ./node_modules/.cache/babel-loader/\n              // directory for faster rebuilds.\n              cacheDirectory: true,\n              // Don't waste time on Gzipping the cache\n              cacheCompression: false,\n            },\n          },\n          // Process any JS outside of the app with Babel.\n          // Unlike the application JS, we only compile the standard ES features.\n          {\n            test: /\\.(js|mjs)$/,\n            exclude: /@babel(?:\\/|\\\\{1,2})runtime/,\n            loader: require.resolve('babel-loader'),\n            options: {\n              babelrc: false,\n              configFile: false,\n              compact: false,\n              presets: [\n                [\n                  require.resolve('babel-preset-react-app/dependencies'),\n                  { helpers: true },\n                ],\n              ],\n              cacheDirectory: true,\n              // Don't waste time on Gzipping the cache\n              cacheCompression: false,\n\n              // If an error happens in a package, it's possible to be\n              // because it was compiled. Thus, we don't want the browser\n              // debugger to show the original code. Instead, the code\n              // being evaluated would be much more helpful.\n              sourceMaps: false,\n            },\n          },\n          // \"postcss\" loader applies autoprefixer to our CSS.\n          // \"css\" loader resolves paths in CSS and adds assets as dependencies.\n          // \"style\" loader turns CSS into JS modules that inject <style> tags.\n          // In production, we use a plugin to extract that CSS to a file, but\n          // in development \"style\" loader enables hot editing of CSS.\n          // By default we support CSS Modules with the extension .module.css\n          {\n            test: cssRegex,\n            exclude: cssModuleRegex,\n            use: getStyleLoaders({\n              importLoaders: 1,\n            }),\n          },\n          // Adds support for CSS Modules (https://github.com/css-modules/css-modules)\n          // using the extension .module.css\n          {\n            test: cssModuleRegex,\n            use: getStyleLoaders({\n              importLoaders: 1,\n              modules: true,\n              getLocalIdent: getCSSModuleLocalIdent,\n            }),\n          },\n          // Opt-in support for SASS (using .scss or .sass extensions).\n          // Chains the sass-loader with the css-loader and the style-loader\n          // to immediately apply all styles to the DOM.\n          // By default we support SASS Modules with the\n          // extensions .module.scss or .module.sass\n          {\n            test: sassRegex,\n            exclude: sassModuleRegex,\n            use: getStyleLoaders({ importLoaders: 2 }, 'sass-loader'),\n          },\n          // Adds support for CSS Modules, but using SASS\n          // using the extension .module.scss or .module.sass\n          {\n            test: sassModuleRegex,\n            use: getStyleLoaders(\n              {\n                importLoaders: 2,\n                modules: true,\n                getLocalIdent: getCSSModuleLocalIdent,\n              },\n              'sass-loader'\n            ),\n          },\n          // \"file\" loader makes sure those assets get served by WebpackDevServer.\n          // When you `import` an asset, you get its (virtual) filename.\n          // In production, they would get copied to the `build` folder.\n          // This loader doesn't use a \"test\" so it will catch all modules\n          // that fall through the other loaders.\n          {\n            // Exclude `js` files to keep \"css\" loader working as it injects\n            // its runtime that would otherwise be processed through \"file\" loader.\n            // Also exclude `html` and `json` extensions so they get processed\n            // by webpacks internal loaders.\n            exclude: [/\\.(js|mjs|jsx)$/, /\\.html$/, /\\.json$/],\n            loader: require.resolve('file-loader'),\n            options: {\n              name: 'static/media/[name].[hash:8].[ext]',\n            },\n          },\n        ],\n      },\n      // ** STOP ** Are you adding a new loader?\n      // Make sure to add the new loader(s) before the \"file\" loader.\n    ],\n  },\n  plugins: [\n    // Generates an `index.html` file with the <script> injected.\n    new HtmlWebpackPlugin({\n      inject: true,\n      template: paths.appHtml,\n      ...blockVars,\n      ...gutenberg,\n    }),\n    // Makes some environment variables available in index.html.\n    // The public URL is available as %PUBLIC_URL% in index.html, e.g.:\n    // <link rel=\"shortcut icon\" href=\"%PUBLIC_URL%/favicon.ico\">\n    // In development, this will be an empty string.\n    new InterpolateHtmlPlugin(HtmlWebpackPlugin, env.raw),\n    // This gives some necessary context to module not found errors, such as\n    // the requesting resource.\n    new ModuleNotFoundPlugin(paths.appPath),\n    // Makes some environment variables available to the JS code, for example:\n    // if (process.env.NODE_ENV === 'development') { ... }. See `./env.js`.\n    new webpack.DefinePlugin(env.stringified),\n    // This is necessary to emit hot updates (currently CSS only):\n    new webpack.HotModuleReplacementPlugin(),\n    // Watcher doesn't work well if you mistype casing in a path so we use\n    // a plugin that prints an error when you attempt to do this.\n    // See https://github.com/facebook/create-react-app/issues/240\n    new CaseSensitivePathsPlugin(),\n    // If you require a missing module and then `npm install` it, you still have\n    // to restart the development server for Webpack to discover it. This plugin\n    // makes the discovery automatic so you don't have to restart.\n    // See https://github.com/facebook/create-react-app/issues/186\n    new WatchMissingNodeModulesPlugin(paths.appNodeModules),\n    // Moment.js is an extremely popular library that bundles large locale files\n    // by default due to how Webpack interprets its code. This is a practical\n    // solution that requires the user to opt into importing specific locales.\n    // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack\n    // You can remove this if you don't use Moment.js:\n    new webpack.IgnorePlugin(/^\\.\\/locale$/, /moment$/),\n    // Generate a manifest file which contains a mapping of all asset filenames\n    // to their corresponding output file so that tools can pick it up without\n    // having to parse `index.html`.\n    new ManifestPlugin({\n      fileName: 'asset-manifest.json',\n      publicPath: publicPath,\n    }),\n  ],\n\n  // Some libraries import Node modules but don't use them in the browser.\n  // Tell Webpack to provide empty mocks for them so importing them works.\n  node: {\n    dgram: 'empty',\n    fs: 'empty',\n    net: 'empty',\n    tls: 'empty',\n    child_process: 'empty',\n  },\n  // Turn off performance processing because we utilize\n  // our own hints via the FileSizeReporter\n  performance: false,\n};\n"
  },
  {
    "path": "config/webpack.config.prod.js",
    "content": "'use strict';\n\nconst path = require('path');\nconst webpack = require('webpack');\nconst PnpWebpackPlugin = require('pnp-webpack-plugin');\nconst HtmlWebpackPlugin = require('html-webpack-plugin');\nconst InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin');\nconst TerserPlugin = require('terser-webpack-plugin');\nconst MiniCssExtractPlugin = require('mini-css-extract-plugin');\nconst OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');\nconst safePostCssParser = require('postcss-safe-parser');\nconst ManifestPlugin = require('webpack-manifest-plugin');\nconst InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin');\nconst WorkboxWebpackPlugin = require('workbox-webpack-plugin');\nconst ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');\nconst getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent');\nconst paths = require('./paths');\nconst getClientEnvironment = require('./env');\nconst ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin');\nconst fs = require('fs');\n\n// Block Script and Style\nconst blockVars = require('./block-vars')();\n\n// Read from local files\nconst gutenberg = {\n  gutenbergScripts: fs.readFileSync(\"./g-scripts.txt\"),\n  gutenbergStyle: fs.readFileSync(\"./g-styles.txt\")\n}\n\n// Webpack uses `publicPath` to determine where the app is being served from.\n// It requires a trailing slash, or the file assets will get an incorrect path.\nconst publicPath = paths.servedPath;\n// Some apps do not use client-side routing with pushState.\n// For these, \"homepage\" can be set to \".\" to enable relative asset paths.\nconst shouldUseRelativeAssetPaths = publicPath === './';\n// Source maps are resource heavy and can cause out of memory issue for large source files.\nconst shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';\n// Some apps do not need the benefits of saving a web request, so not inlining the chunk\n// makes for a smoother build process.\nconst shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== 'false';\n// `publicUrl` is just like `publicPath`, but we will provide it to our app\n// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.\n// Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz.\nconst publicUrl = publicPath.slice(0, -1);\n// Get environment variables to inject into our app.\nconst env = getClientEnvironment(publicUrl);\n\n// Assert this just to be safe.\n// Development builds of React are slow and not intended for production.\nif (env.stringified['process.env'].NODE_ENV !== '\"production\"') {\n  throw new Error('Production builds must have NODE_ENV=production.');\n}\n\n// style files regexes\nconst cssRegex = /\\.css$/;\nconst cssModuleRegex = /\\.module\\.css$/;\nconst sassRegex = /\\.(scss|sass)$/;\nconst sassModuleRegex = /\\.module\\.(scss|sass)$/;\n\n// common function to get style loaders\nconst getStyleLoaders = (cssOptions, preProcessor) => {\n  const loaders = [\n    {\n      loader: MiniCssExtractPlugin.loader,\n      options: Object.assign(\n        {},\n        shouldUseRelativeAssetPaths ? { publicPath: '../../' } : undefined\n      ),\n    },\n    {\n      loader: require.resolve('css-loader'),\n      options: cssOptions,\n    },\n    {\n      // Options for PostCSS as we reference these options twice\n      // Adds vendor prefixing based on your specified browser support in\n      // package.json\n      loader: require.resolve('postcss-loader'),\n      options: {\n        // Necessary for external CSS imports to work\n        // https://github.com/facebook/create-react-app/issues/2677\n        ident: 'postcss',\n        plugins: () => [\n          require('postcss-flexbugs-fixes'),\n          require('postcss-preset-env')({\n            autoprefixer: {\n              flexbox: 'no-2009',\n            },\n            stage: 3,\n          }),\n        ],\n        sourceMap: shouldUseSourceMap,\n      },\n    },\n  ];\n  if (preProcessor) {\n    loaders.push({\n      loader: require.resolve(preProcessor),\n      options: {\n        sourceMap: shouldUseSourceMap,\n      },\n    });\n  }\n  return loaders;\n};\n\n// This is the production configuration.\n// It compiles slowly and is focused on producing a fast and minimal bundle.\n// The development configuration is different and lives in a separate file.\nmodule.exports = {\n  mode: 'production',\n  // Don't attempt to continue if there are any errors.\n  bail: true,\n  // We generate sourcemaps in production. This is slow but gives good results.\n  // You can exclude the *.map files from the build during deployment.\n  devtool: shouldUseSourceMap ? 'source-map' : false,\n  // In production, we only want to load the app code.\n  entry: [paths.appIndexJs],\n  output: {\n    // The build folder.\n    path: paths.appBuild,\n    // Generated JS file names (with nested folders).\n    // There will be one main bundle, and one file per asynchronous chunk.\n    // We don't currently advertise code splitting but Webpack supports it.\n    filename: 'static/js/[name].[chunkhash:8].js',\n    chunkFilename: 'static/js/[name].[chunkhash:8].chunk.js',\n    // We inferred the \"public path\" (such as / or /my-project) from homepage.\n    publicPath: publicPath,\n    // Point sourcemap entries to original disk location (format as URL on Windows)\n    devtoolModuleFilenameTemplate: info =>\n      path\n        .relative(paths.appSrc, info.absoluteResourcePath)\n        .replace(/\\\\/g, '/'),\n  },\n  optimization: {\n    minimizer: [\n      new TerserPlugin({\n        terserOptions: {\n          parse: {\n            // we want terser to parse ecma 8 code. However, we don't want it\n            // to apply any minfication steps that turns valid ecma 5 code\n            // into invalid ecma 5 code. This is why the 'compress' and 'output'\n            // sections only apply transformations that are ecma 5 safe\n            // https://github.com/facebook/create-react-app/pull/4234\n            ecma: 8,\n          },\n          compress: false,\n          mangle: {\n            safari10: true,\n          },\n          output: {\n            ecma: 5,\n            comments: false,\n            // Turned on because emoji and regex is not minified properly using default\n            // https://github.com/facebook/create-react-app/issues/2488\n            ascii_only: true,\n          },\n        },\n        // Use multi-process parallel running to improve the build speed\n        // Default number of concurrent runs: os.cpus().length - 1\n        parallel: true,\n        // Enable file caching\n        cache: true,\n        sourceMap: shouldUseSourceMap,\n      }),\n      new OptimizeCSSAssetsPlugin({\n        cssProcessorOptions: {\n          parser: safePostCssParser,\n          map: shouldUseSourceMap\n            ? {\n                // `inline: false` forces the sourcemap to be output into a\n                // separate file\n                inline: false,\n                // `annotation: true` appends the sourceMappingURL to the end of\n                // the css file, helping the browser find the sourcemap\n                annotation: true,\n              }\n            : false,\n        },\n      }),\n    ],\n    // Automatically split vendor and commons\n    // https://twitter.com/wSokra/status/969633336732905474\n    // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366\n    splitChunks: {\n      chunks: 'all',\n      name: false,\n    },\n    // Keep the runtime chunk seperated to enable long term caching\n    // https://twitter.com/wSokra/status/969679223278505985\n    runtimeChunk: true,\n  },\n  externals: {\n    lodash: 'lodash',\n    moment: 'moment',\n    react: 'React',\n    'react-dom': 'ReactDOM',\n  },\n  resolve: {\n    // This allows you to set a fallback for where Webpack should look for modules.\n    // We placed these paths second because we want `node_modules` to \"win\"\n    // if there are any conflicts. This matches Node resolution mechanism.\n    // https://github.com/facebook/create-react-app/issues/253\n    modules: ['node_modules'].concat(\n      // It is guaranteed to exist because we tweak it in `env.js`\n      process.env.NODE_PATH.split(path.delimiter).filter(Boolean)\n    ),\n    // These are the reasonable defaults supported by the Node ecosystem.\n    // We also include JSX as a common component filename extension to support\n    // some tools, although we do not recommend using it, see:\n    // https://github.com/facebook/create-react-app/issues/290\n    // `web` extension prefixes have been added for better support\n    // for React Native Web.\n    extensions: ['.mjs', '.web.js', '.js', '.json', '.web.jsx', '.jsx'],\n    alias: {\n      // Support React Native Web\n      // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/\n      'react-native': 'react-native-web',\n    },\n    plugins: [\n      // Adds support for installing with Plug'n'Play, leading to faster installs and adding\n      // guards against forgotten dependencies and such.\n      PnpWebpackPlugin,\n      // Prevents users from importing files from outside of src/ (or node_modules/).\n      // This often causes confusion because we only process files within src/ with babel.\n      // To fix this, we prevent you from importing files out of src/ -- if you'd like to,\n      // please link the files into your node_modules/ and let module-resolution kick in.\n      // Make sure your source files are compiled, as they will not be processed in any way.\n      new ModuleScopePlugin(paths.appSrc, [paths.appPackageJson]),\n    ],\n  },\n  resolveLoader: {\n    plugins: [\n      // Also related to Plug'n'Play, but this time it tells Webpack to load its loaders\n      // from the current package.\n      PnpWebpackPlugin.moduleLoader(module),\n    ],\n  },\n  module: {\n    strictExportPresence: true,\n    rules: [\n      // Disable require.ensure as it's not a standard language feature.\n      { parser: { requireEnsure: false } },\n\n      // First, run the linter.\n      // It's important to do this before Babel processes the JS.\n      {\n        test: /\\.(js|mjs|jsx)$/,\n        enforce: 'pre',\n        use: [\n          {\n            options: {\n              formatter: require.resolve('react-dev-utils/eslintFormatter'),\n              eslintPath: require.resolve('eslint'),\n\n            },\n            loader: require.resolve('eslint-loader'),\n          },\n        ],\n        include: paths.appSrc,\n      },\n      {\n        // \"oneOf\" will traverse all following loaders until one will\n        // match the requirements. When no loader matches it will fall\n        // back to the \"file\" loader at the end of the loader list.\n        oneOf: [\n          // \"url\" loader works just like \"file\" loader but it also embeds\n          // assets smaller than specified size as data URLs to avoid requests.\n          {\n            test: [/\\.bmp$/, /\\.gif$/, /\\.jpe?g$/, /\\.png$/],\n            loader: require.resolve('url-loader'),\n            options: {\n              limit: 10000,\n              name: 'static/media/[name].[hash:8].[ext]',\n            },\n          },\n          // Process application JS with Babel.\n          // The preset includes JSX, Flow, and some ESnext features.\n          {\n            test: /\\.(js|mjs|jsx)$/,\n            include: paths.appSrc,\n\n            loader: require.resolve('babel-loader'),\n            options: {\n              customize: require.resolve(\n                'babel-preset-react-app/webpack-overrides'\n              ),\n\n              plugins: [\n                [\n                  require.resolve('babel-plugin-named-asset-import'),\n                  {\n                    loaderMap: {\n                      svg: {\n                        ReactComponent: '@svgr/webpack?-prettier,-svgo![path]',\n                      },\n                    },\n                  },\n                ],\n              ],\n              cacheDirectory: true,\n              // Save disk space when time isn't as important\n              cacheCompression: true,\n              compact: true,\n            },\n          },\n          // Process any JS outside of the app with Babel.\n          // Unlike the application JS, we only compile the standard ES features.\n          {\n            test: /\\.(js|mjs)$/,\n            exclude: /@babel(?:\\/|\\\\{1,2})runtime/,\n            loader: require.resolve('babel-loader'),\n            options: {\n              babelrc: false,\n              configFile: false,\n              compact: false,\n              presets: [\n                [\n                  require.resolve('babel-preset-react-app/dependencies'),\n                  { helpers: true },\n                ],\n              ],\n              cacheDirectory: true,\n              // Save disk space when time isn't as important\n              cacheCompression: true,\n\n              // If an error happens in a package, it's possible to be\n              // because it was compiled. Thus, we don't want the browser\n              // debugger to show the original code. Instead, the code\n              // being evaluated would be much more helpful.\n              sourceMaps: false,\n            },\n          },\n          // \"postcss\" loader applies autoprefixer to our CSS.\n          // \"css\" loader resolves paths in CSS and adds assets as dependencies.\n          // `MiniCSSExtractPlugin` extracts styles into CSS\n          // files. If you use code splitting, async bundles will have their own separate CSS chunk file.\n          // By default we support CSS Modules with the extension .module.css\n          {\n            test: cssRegex,\n            exclude: cssModuleRegex,\n            loader: getStyleLoaders({\n              importLoaders: 1,\n              sourceMap: shouldUseSourceMap,\n            }),\n            // Don't consider CSS imports dead code even if the\n            // containing package claims to have no side effects.\n            // Remove this when webpack adds a warning or an error for this.\n            // See https://github.com/webpack/webpack/issues/6571\n            sideEffects: true,\n          },\n          // Adds support for CSS Modules (https://github.com/css-modules/css-modules)\n          // using the extension .module.css\n          {\n            test: cssModuleRegex,\n            loader: getStyleLoaders({\n              importLoaders: 1,\n              sourceMap: shouldUseSourceMap,\n              modules: true,\n              getLocalIdent: getCSSModuleLocalIdent,\n            }),\n          },\n          // Opt-in support for SASS. The logic here is somewhat similar\n          // as in the CSS routine, except that \"sass-loader\" runs first\n          // to compile SASS files into CSS.\n          // By default we support SASS Modules with the\n          // extensions .module.scss or .module.sass\n          {\n            test: sassRegex,\n            exclude: sassModuleRegex,\n            loader: getStyleLoaders(\n              {\n                importLoaders: 2,\n                sourceMap: shouldUseSourceMap,\n              },\n              'sass-loader'\n            ),\n            // Don't consider CSS imports dead code even if the\n            // containing package claims to have no side effects.\n            // Remove this when webpack adds a warning or an error for this.\n            // See https://github.com/webpack/webpack/issues/6571\n            sideEffects: true,\n          },\n          // Adds support for CSS Modules, but using SASS\n          // using the extension .module.scss or .module.sass\n          {\n            test: sassModuleRegex,\n            loader: getStyleLoaders(\n              {\n                importLoaders: 2,\n                sourceMap: shouldUseSourceMap,\n                modules: true,\n                getLocalIdent: getCSSModuleLocalIdent,\n              },\n              'sass-loader'\n            ),\n          },\n          // \"file\" loader makes sure assets end up in the `build` folder.\n          // When you `import` an asset, you get its filename.\n          // This loader doesn't use a \"test\" so it will catch all modules\n          // that fall through the other loaders.\n          {\n            loader: require.resolve('file-loader'),\n            // Exclude `js` files to keep \"css\" loader working as it injects\n            // it's runtime that would otherwise be processed through \"file\" loader.\n            // Also exclude `html` and `json` extensions so they get processed\n            // by webpacks internal loaders.\n            exclude: [/\\.(js|mjs|jsx)$/, /\\.html$/, /\\.json$/],\n            options: {\n              name: 'static/media/[name].[hash:8].[ext]',\n            },\n          },\n          // ** STOP ** Are you adding a new loader?\n          // Make sure to add the new loader(s) before the \"file\" loader.\n        ],\n      },\n    ],\n  },\n  plugins: [\n    // Generates an `index.html` file with the <script> injected.\n    new HtmlWebpackPlugin({\n      inject: true,\n      template: paths.appHtml,\n      ...blockVars,\n      ...gutenberg,\n      minify: {\n        removeComments: true,\n        collapseWhitespace: true,\n        removeRedundantAttributes: true,\n        useShortDoctype: true,\n        removeEmptyAttributes: true,\n        removeStyleLinkTypeAttributes: true,\n        keepClosingSlash: true,\n        minifyJS: true,\n        minifyCSS: true,\n        minifyURLs: true,\n      },\n    }),\n    // Inlines the webpack runtime script. This script is too small to warrant\n    // a network request.\n    shouldInlineRuntimeChunk && new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime~.+[.]js/]),\n    // Makes some environment variables available in index.html.\n    // The public URL is available as %PUBLIC_URL% in index.html, e.g.:\n    // <link rel=\"shortcut icon\" href=\"%PUBLIC_URL%/favicon.ico\">\n    // In production, it will be an empty string unless you specify \"homepage\"\n    // in `package.json`, in which case it will be the pathname of that URL.\n    new InterpolateHtmlPlugin(HtmlWebpackPlugin, env.raw),\n    // This gives some necessary context to module not found errors, such as\n    // the requesting resource.\n    new ModuleNotFoundPlugin(paths.appPath),\n    // Makes some environment variables available to the JS code, for example:\n    // if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`.\n    // It is absolutely essential that NODE_ENV was set to production here.\n    // Otherwise React will be compiled in the very slow development mode.\n    new webpack.DefinePlugin(env.stringified),\n    new MiniCssExtractPlugin({\n      // Options similar to the same options in webpackOptions.output\n      // both options are optional\n      filename: 'static/css/[name].[contenthash:8].css',\n      chunkFilename: 'static/css/[name].[contenthash:8].chunk.css',\n    }),\n    // Generate a manifest file which contains a mapping of all asset filenames\n    // to their corresponding output file so that tools can pick it up without\n    // having to parse `index.html`.\n    new ManifestPlugin({\n      fileName: 'asset-manifest.json',\n      publicPath: publicPath,\n    }),\n    // Moment.js is an extremely popular library that bundles large locale files\n    // by default due to how Webpack interprets its code. This is a practical\n    // solution that requires the user to opt into importing specific locales.\n    // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack\n    // You can remove this if you don't use Moment.js:\n    new webpack.IgnorePlugin(/^\\.\\/locale$/, /moment$/),\n    // Generate a service worker script that will precache, and keep up to date,\n    // the HTML & assets that are part of the Webpack build.\n    new WorkboxWebpackPlugin.GenerateSW({\n      clientsClaim: true,\n      exclude: [/\\.map$/, /asset-manifest\\.json$/],\n      importWorkboxFrom: 'cdn',\n      navigateFallback: publicUrl + '/index.html',\n      navigateFallbackBlacklist: [\n        // Exclude URLs starting with /_, as they're likely an API call\n        new RegExp('^/_'),\n        // Exclude URLs containing a dot, as they're likely a resource in\n        // public/ and not a SPA route\n        new RegExp('/[^/]+\\\\.[^/]+$'),\n      ],\n    }),\n  ].filter(Boolean),\n  // Some libraries import Node modules but don't use them in the browser.\n  // Tell Webpack to provide empty mocks for them so importing them works.\n  node: {\n    dgram: 'empty',\n    fs: 'empty',\n    net: 'empty',\n    tls: 'empty',\n    child_process: 'empty',\n  },\n  // Turn off performance processing because we utilize\n  // our own hints via the FileSizeReporter\n  performance: false,\n};\n"
  },
  {
    "path": "config/webpackDevServer.config.js",
    "content": "'use strict';\n\nconst errorOverlayMiddleware = require('react-dev-utils/errorOverlayMiddleware');\nconst evalSourceMapMiddleware = require('react-dev-utils/evalSourceMapMiddleware');\nconst noopServiceWorkerMiddleware = require('react-dev-utils/noopServiceWorkerMiddleware');\nconst ignoredFiles = require('react-dev-utils/ignoredFiles');\nconst config = require('./webpack.config.dev');\nconst paths = require('./paths');\nconst fs = require('fs');\n\nconst protocol = process.env.HTTPS === 'true' ? 'https' : 'http';\nconst host = process.env.HOST || '0.0.0.0';\n\nmodule.exports = function(proxy, allowedHost) {\n  return {\n    // WebpackDevServer 2.4.3 introduced a security fix that prevents remote\n    // websites from potentially accessing local content through DNS rebinding:\n    // https://github.com/webpack/webpack-dev-server/issues/887\n    // https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a\n    // However, it made several existing use cases such as development in cloud\n    // environment or subdomains in development significantly more complicated:\n    // https://github.com/facebook/create-react-app/issues/2271\n    // https://github.com/facebook/create-react-app/issues/2233\n    // While we're investigating better solutions, for now we will take a\n    // compromise. Since our WDS configuration only serves files in the `public`\n    // folder we won't consider accessing them a vulnerability. However, if you\n    // use the `proxy` feature, it gets more dangerous because it can expose\n    // remote code execution vulnerabilities in backends like Django and Rails.\n    // So we will disable the host check normally, but enable it if you have\n    // specified the `proxy` setting. Finally, we let you override it if you\n    // really know what you're doing with a special environment variable.\n    disableHostCheck:\n      !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true',\n    // Enable gzip compression of generated files.\n    compress: true,\n    // Silence WebpackDevServer's own logs since they're generally not useful.\n    // It will still show compile warnings and errors with this setting.\n    clientLogLevel: 'none',\n    // By default WebpackDevServer serves physical files from current directory\n    // in addition to all the virtual build products that it serves from memory.\n    // This is confusing because those files won’t automatically be available in\n    // production build folder unless we copy them. However, copying the whole\n    // project directory is dangerous because we may expose sensitive files.\n    // Instead, we establish a convention that only files in `public` directory\n    // get served. Our build script will copy `public` into the `build` folder.\n    // In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%:\n    // <link rel=\"shortcut icon\" href=\"%PUBLIC_URL%/favicon.ico\">\n    // In JavaScript code, you can access it with `process.env.PUBLIC_URL`.\n    // Note that we only recommend to use `public` folder as an escape hatch\n    // for files like `favicon.ico`, `manifest.json`, and libraries that are\n    // for some reason broken when imported through Webpack. If you just want to\n    // use an image, put it in `src` and `import` it from JavaScript instead.\n    contentBase: paths.appPublic,\n    // By default files from `contentBase` will not trigger a page reload.\n    watchContentBase: true,\n    // Enable hot reloading server. It will provide /sockjs-node/ endpoint\n    // for the WebpackDevServer client so it can learn when the files were\n    // updated. The WebpackDevServer client is included as an entry point\n    // in the Webpack development configuration. Note that only changes\n    // to CSS are currently hot reloaded. JS changes will refresh the browser.\n    hot: true,\n    // It is important to tell WebpackDevServer to use the same \"root\" path\n    // as we specified in the config. In development, we always serve from /.\n    publicPath: config.output.publicPath,\n    // WebpackDevServer is noisy by default so we emit custom message instead\n    // by listening to the compiler events with `compiler.hooks[...].tap` calls above.\n    quiet: true,\n    // Reportedly, this avoids CPU overload on some systems.\n    // https://github.com/facebook/create-react-app/issues/293\n    // src/node_modules is not ignored to support absolute imports\n    // https://github.com/facebook/create-react-app/issues/1065\n    watchOptions: {\n      ignored: ignoredFiles(paths.appSrc),\n    },\n    // Enable HTTPS if the HTTPS environment variable is set to 'true'\n    https: protocol === 'https',\n    host,\n    overlay: false,\n    historyApiFallback: {\n      // Paths with dots should still use the history fallback.\n      // See https://github.com/facebook/create-react-app/issues/387.\n      disableDotRule: true,\n    },\n    public: allowedHost,\n    proxy,\n    before(app, server) {\n      if (fs.existsSync(paths.proxySetup)) {\n        // This registers user provided middleware for proxy reasons\n        require(paths.proxySetup)(app);\n      }\n\n      // This lets us fetch source contents from webpack for the error overlay\n      app.use(evalSourceMapMiddleware(server));\n      // This lets us open files from the runtime error overlay.\n      app.use(errorOverlayMiddleware());\n\n      // This service worker file is effectively a 'no-op' that will reset any\n      // previous service worker registered for the same host:port combination.\n      // We do this in development to avoid hitting the production cache if\n      // it used the same host and port.\n      // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432\n      app.use(noopServiceWorkerMiddleware());\n    },\n  };\n};\n"
  },
  {
    "path": "g-scripts.txt",
    "content": "<script id=\"wp-polyfill\" src=\"/vendor/gutenberg/vendor/wp-polyfill.min.js\"></script><script id=\"react\" src=\"/vendor/gutenberg/vendor/react.min.js\"></script><script id=\"react-dom\" src=\"/vendor/gutenberg/vendor/react-dom.min.js\"></script><script id=\"moment\" src=\"/vendor/gutenberg/vendor/moment.min.js\"></script><script id=\"lodash\" src=\"/vendor/gutenberg/vendor/lodash.min.js\"></script><script id=\"wp-polyfill-fetch\" src=\"/vendor/gutenberg/vendor/wp-polyfill-fetch.min.js\"></script><script id=\"wp-polyfill-formdata\" src=\"/vendor/gutenberg/vendor/wp-polyfill-formdata.min.js\"></script><script id=\"wp-polyfill-node-contains\" src=\"/vendor/gutenberg/vendor/wp-polyfill-node-contains.min.js\"></script><script id=\"wp-polyfill-url\" src=\"/vendor/gutenberg/vendor/wp-polyfill-url.min.js\"></script><script id=\"wp-polyfill-dom-rect\" src=\"/vendor/gutenberg/vendor/wp-polyfill-dom-rect.min.js\"></script><script id=\"wp-polyfill-element-closest\" src=\"/vendor/gutenberg/vendor/wp-polyfill-element-closest.min.js\"></script><script id=\"no-conflict\" src=\"/vendor/no-conflict.js\"></script><script id=\"wp-escape-html\" src=\"/vendor/gutenberg/wp-escape-html.min.js\"></script><script id=\"wp-element\" src=\"/vendor/gutenberg/wp-element.min.js\"></script><script id=\"wp-is-shallow-equal\" src=\"/vendor/gutenberg/wp-is-shallow-equal.min.js\"></script><script id=\"wp-priority-queue\" src=\"/vendor/gutenberg/wp-priority-queue.min.js\"></script><script id=\"wp-compose\" src=\"/vendor/gutenberg/wp-compose.min.js\"></script><script id=\"wp-hooks\" src=\"/vendor/gutenberg/wp-hooks.min.js\"></script><script id=\"wp-deprecated\" src=\"/vendor/gutenberg/wp-deprecated.min.js\"></script><script id=\"wp-redux-routine\" src=\"/vendor/gutenberg/wp-redux-routine.min.js\"></script><script id=\"wp-data\" src=\"/vendor/gutenberg/wp-data.min.js\"></script><script id=\"g-data\" src=\"/vendor/g-data.js\"></script><script id=\"wp-dom-ready\" src=\"/vendor/gutenberg/wp-dom-ready.min.js\"></script><script id=\"wp-i18n\" src=\"/vendor/gutenberg/wp-i18n.min.js\"></script><script id=\"wp-a11y\" src=\"/vendor/gutenberg/wp-a11y.min.js\"></script><script id=\"wp-keycodes\" src=\"/vendor/gutenberg/wp-keycodes.min.js\"></script><script id=\"wp-rich-text\" src=\"/vendor/gutenberg/wp-rich-text.min.js\"></script><script id=\"wp-annotations\" src=\"/vendor/gutenberg/wp-annotations.min.js\"></script><script id=\"wp-url\" src=\"/vendor/gutenberg/wp-url.min.js\"></script><script id=\"wp-api-fetch\" src=\"/vendor/gutenberg/wp-api-fetch.min.js\"></script><script id=\"wp-autop\" src=\"/vendor/gutenberg/wp-autop.min.js\"></script><script id=\"wp-blob\" src=\"/vendor/gutenberg/wp-blob.min.js\"></script><script id=\"wp-block-serialization-default-parser\" src=\"/vendor/gutenberg/wp-block-serialization-default-parser.min.js\"></script><script id=\"wp-dom\" src=\"/vendor/gutenberg/wp-dom.min.js\"></script><script id=\"wp-html-entities\" src=\"/vendor/gutenberg/wp-html-entities.min.js\"></script><script id=\"wp-primitives\" src=\"/vendor/gutenberg/wp-primitives.min.js\"></script><script id=\"wp-shortcode\" src=\"/vendor/gutenberg/wp-shortcode.min.js\"></script><script id=\"wp-blocks\" src=\"/vendor/gutenberg/wp-blocks.min.js\"></script><script id=\"wp-warning\" src=\"/vendor/gutenberg/wp-warning.min.js\"></script><script id=\"wp-components\" src=\"/vendor/gutenberg/wp-components.min.js\"></script><script id=\"wp-keyboard-shortcuts\" src=\"/vendor/gutenberg/wp-keyboard-shortcuts.min.js\"></script><script id=\"wp-notices\" src=\"/vendor/gutenberg/wp-notices.min.js\"></script><script id=\"wp-token-list\" src=\"/vendor/gutenberg/wp-token-list.min.js\"></script><script id=\"wp-viewport\" src=\"/vendor/gutenberg/wp-viewport.min.js\"></script><script id=\"wp-wordcount\" src=\"/vendor/gutenberg/wp-wordcount.min.js\"></script><script id=\"wp-block-editor\" src=\"/vendor/gutenberg/wp-block-editor.min.js\"></script><script id=\"wp-data-controls\" src=\"/vendor/gutenberg/wp-data-controls.min.js\"></script><script id=\"wp-core-data\" src=\"/vendor/gutenberg/wp-core-data.min.js\"></script><script id=\"wp-date\" src=\"/vendor/gutenberg/wp-date.min.js\"></script><script id=\"wp-server-side-render\" src=\"/vendor/gutenberg/wp-server-side-render.min.js\"></script><script id=\"wp-block-library\" src=\"/vendor/gutenberg/wp-block-library.min.js\"></script><script id=\"wp-media-utils\" src=\"/vendor/gutenberg/wp-media-utils.min.js\"></script><script id=\"wp-editor\" src=\"/vendor/gutenberg/wp-editor.min.js\"></script><script id=\"wp-plugins\" src=\"/vendor/gutenberg/wp-plugins.min.js\"></script><script id=\"wp-edit-post\" src=\"/vendor/gutenberg/wp-edit-post.min.js\"></script><script id=\"wp-block-directory\" src=\"/vendor/gutenberg/wp-block-directory.min.js\"></script><script id=\"wp-format-library\" src=\"/vendor/gutenberg/wp-format-library.min.js\"></script><script id=\"wp-list-reusable-blocks\" src=\"/vendor/gutenberg/wp-list-reusable-blocks.min.js\"></script><script id=\"wp-nux\" src=\"/vendor/gutenberg/wp-nux.min.js\"></script>"
  },
  {
    "path": "g-styles.txt",
    "content": "<link rel=\"stylesheet\" id=\"wp-block-library-theme\" href=\"/vendor/gutenberg/styles/wp-block-library/theme.min.css\"></link><link rel=\"stylesheet\" id=\"wp-components\" href=\"/vendor/gutenberg/styles/wp-components/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-block-editor\" href=\"/vendor/gutenberg/styles/wp-block-editor/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-nux\" href=\"/vendor/gutenberg/styles/wp-nux/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-editor\" href=\"/vendor/gutenberg/styles/wp-editor/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-block-library\" href=\"/vendor/gutenberg/styles/wp-block-library/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-edit-blocks\" href=\"/vendor/gutenberg/styles/wp-block-library/editor.min.css\"></link><link rel=\"stylesheet\" id=\"wp-edit-post\" href=\"/vendor/gutenberg/styles/wp-edit-post/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-format-library\" href=\"/vendor/gutenberg/styles/wp-format-library/style.min.css\"></link><link rel=\"stylesheet\" id=\"wp-list-reusable-blocks\" href=\"/vendor/gutenberg/styles/wp-list-reusable-blocks/style.min.css\"></link>"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"@frontkom/g-editor\",\n  \"version\": \"1.6.0\",\n  \"description\": \"A minimalist version of Gutenberg's editor. Ideal for testing custom blocks.\",\n  \"author\": \"Frontkom <frontkom@frontkom.no>\",\n  \"private\": false,\n  \"main\": \"build/index.js\",\n  \"files\": [\n    \"build/\",\n    \"config/\",\n    \"public/\",\n    \"scripts/\",\n    \"src/\",\n    \".eslintignore\",\n    \".eslintrc\",\n    \"g-scripts.txt\",\n    \"g-styles.txt\"\n  ],\n  \"dependencies\": {\n    \"@babel/core\": \"7.2.2\",\n    \"@svgr/webpack\": \"2.4.1\",\n    \"babel-core\": \"7.0.0-bridge.0\",\n    \"babel-eslint\": \"9.0.0\",\n    \"babel-jest\": \"^25.1.0\",\n    \"babel-loader\": \"8.0.5\",\n    \"babel-plugin-named-asset-import\": \"^0.2.2\",\n    \"babel-preset-react-app\": \"^5.0.4\",\n    \"bfj\": \"6.1.1\",\n    \"case-sensitive-paths-webpack-plugin\": \"2.1.2\",\n    \"chalk\": \"2.4.2\",\n    \"css-loader\": \"1.0.0\",\n    \"dotenv\": \"6.2.0\",\n    \"dotenv-expand\": \"4.2.0\",\n    \"eslint\": \"5.12.0\",\n    \"eslint-config-react-app\": \"^3.0.4\",\n    \"eslint-loader\": \"2.1.1\",\n    \"eslint-plugin-flowtype\": \"2.50.1\",\n    \"eslint-plugin-import\": \"2.14.0\",\n    \"eslint-plugin-jsx-a11y\": \"6.1.2\",\n    \"eslint-plugin-react\": \"7.12.3\",\n    \"file-loader\": \"2.0.0\",\n    \"fs-extra\": \"7.0.1\",\n    \"html-webpack-plugin\": \"4.0.0-alpha.2\",\n    \"identity-obj-proxy\": \"3.0.0\",\n    \"jest\": \"^25.1.0\",\n    \"jest-pnp-resolver\": \"1.0.2\",\n    \"jest-resolve\": \"23.6.0\",\n    \"mini-css-extract-plugin\": \"0.4.3\",\n    \"node-sass\": \"^4.14.1\",\n    \"oembed-providers\": \"^1.0.20170414\",\n    \"optimize-css-assets-webpack-plugin\": \"5.0.1\",\n    \"pnp-webpack-plugin\": \"1.2.1\",\n    \"postcss-flexbugs-fixes\": \"4.1.0\",\n    \"postcss-loader\": \"3.0.0\",\n    \"postcss-preset-env\": \"6.5.0\",\n    \"postcss-safe-parser\": \"4.0.1\",\n    \"react-app-polyfill\": \"^0.1.3\",\n    \"react-dev-utils\": \"^6.0.5\",\n    \"react-router-dom\": \"^4.3.1\",\n    \"resolve\": \"1.9.0\",\n    \"sass-loader\": \"7.1.0\",\n    \"style-loader\": \"0.23.1\",\n    \"terser-webpack-plugin\": \"^2.3.4\",\n    \"url-loader\": \"1.1.2\",\n    \"webpack\": \"4.28.4\",\n    \"webpack-cli\": \"^3.1.2\",\n    \"webpack-dev-server\": \"^3.11.0\",\n    \"webpack-manifest-plugin\": \"2.0.4\",\n    \"workbox-webpack-plugin\": \"3.6.3\"\n  },\n  \"devDependencies\": {\n    \"eslint\": \"^5.4.0\",\n    \"eslint-plugin-react\": \"^7.11.1\"\n  },\n  \"scripts\": {\n    \"start\": \"node scripts/start.js\",\n    \"build\": \"node scripts/build.js\",\n    \"test\": \"node scripts/test.js\",\n    \"lint\": \"eslint .\",\n    \"lint:fix\": \"eslint . --fix\",\n    \"deploy\": \"npm run lint && npm publish --access public\",\n    \"preg-update\": \"./config/gutenberg/update.sh\",\n    \"g-update\": \"node scripts/g-update.js\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/front/g-editor/issues\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/front/g-editor.git\"\n  },\n  \"browserslist\": [\n    \">0.2%\",\n    \"not dead\",\n    \"not ie <= 11\",\n    \"not op_mini all\"\n  ],\n  \"babel\": {\n    \"presets\": [\n      \"react-app\"\n    ]\n  },\n  \"jest\": {\n    \"collectCoverageFrom\": [\n      \"src/**/*.{js,jsx}\"\n    ],\n    \"resolver\": \"jest-pnp-resolver\",\n    \"setupFiles\": [\n      \"react-app-polyfill/jsdom\"\n    ],\n    \"testMatch\": [\n      \"<rootDir>/src/**/__tests__/**/*.{js,jsx}\",\n      \"<rootDir>/src/**/?(*.)(spec|test).{js,jsx}\"\n    ],\n    \"testEnvironment\": \"jsdom\",\n    \"testURL\": \"http://localhost\",\n    \"transform\": {\n      \"^.+\\\\.(js|jsx)$\": \"<rootDir>/node_modules/babel-jest\",\n      \"^.+\\\\.css$\": \"<rootDir>/config/jest/cssTransform.js\",\n      \"^(?!.*\\\\.(js|jsx|css|json)$)\": \"<rootDir>/config/jest/fileTransform.js\"\n    },\n    \"transformIgnorePatterns\": [\n      \"[/\\\\\\\\]node_modules[/\\\\\\\\].+\\\\.(js|jsx)$\",\n      \"^.+\\\\.module\\\\.(css|sass|scss)$\"\n    ],\n    \"moduleNameMapper\": {\n      \"^react-native$\": \"react-native-web\",\n      \"^.+\\\\.module\\\\.(css|sass|scss)$\": \"identity-obj-proxy\"\n    },\n    \"moduleFileExtensions\": [\n      \"web.js\",\n      \"js\",\n      \"json\",\n      \"web.jsx\",\n      \"jsx\",\n      \"node\"\n    ]\n  }\n}\n"
  },
  {
    "path": "public/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <link rel=\"shortcut icon\" href=\"%PUBLIC_URL%/favicon.ico\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n    <meta name=\"theme-color\" content=\"#000000\">\n    <!--\n      manifest.json provides metadata used when your web app is added to the\n      homescreen on Android. See https://developers.google.com/web/fundamentals/web-app-manifest/\n    -->\n    <link rel=\"manifest\" href=\"%PUBLIC_URL%/manifest.json\">\n    <!--\n      Notice the use of %PUBLIC_URL% in the tags above.\n      It will be replaced with the URL of the `public` folder during the build.\n      Only files inside the `public` folder can be referenced from the HTML.\n\n      Unlike \"/favicon.ico\" or \"favicon.ico\", \"%PUBLIC_URL%/favicon.ico\" will\n      work correctly both with client-side routing and a non-root public URL.\n      Learn how to configure a non-root public URL by running `npm run build`.\n    -->\n\n    <!-- Gutenberg Styles -->\n    <%= htmlWebpackPlugin.options.gutenbergStyle %>\n    <!-- End Gutenberg Styles -->\n\n    <style type=\"text/css\">\n      <%= htmlWebpackPlugin.options.blockStyle %>\n    </style>\n    <style id=\"block-editor-style\" type=\"text/css\">\n      <%= htmlWebpackPlugin.options.blockEditorStyle %>\n    </style>\n    <title>g-editor</title>\n  </head>\n  <body style=\"margin: 0\">\n    <!-- Gutenberg Scripts -->\n    <%= htmlWebpackPlugin.options.gutenbergScripts %>\n    <!-- End Gutenberg Scripts -->\n    <noscript>\n      You need to enable JavaScript to run this app.\n    </noscript>\n    <div id=\"root\"></div>\n    <!--\n      This HTML file is a template.\n      If you open it directly in the browser, you will see an empty page.\n\n      You can add webfonts, meta tags, or analytics to this file.\n      The build step will place the bundled scripts into the <body> tag.\n\n      To begin the development, run `npm start` or `yarn start`.\n      To create a production bundle, use `npm run build` or `yarn build`.\n    -->\n    <code id=\"frontend-scripts\" style=\"display:none\"><%= htmlWebpackPlugin.options.blockViewScript %></code>\n  </body>\n  <script>\n    <%= htmlWebpackPlugin.options.blockScript %>\n  </script>\n</html>\n"
  },
  {
    "path": "public/manifest.json",
    "content": "{\n  \"short_name\": \"g-editor\",\n  \"name\": \"A minimalist version of Gutenberg's editor. Ideal for checking your custom blocks.\",\n  \"icons\": [\n    {\n      \"src\": \"favicon.ico\",\n      \"sizes\": \"64x64 32x32 24x24 16x16\",\n      \"type\": \"image/x-icon\"\n    }\n  ],\n  \"start_url\": \".\",\n  \"display\": \"standalone\",\n  \"theme_color\": \"#000000\",\n  \"background_color\": \"#ffffff\"\n}\n"
  },
  {
    "path": "public/vendor/g-data.js",
    "content": "(function (wp) {\n  const { use, plugins } = wp.data;\n\n  const uid = (window.userSettings && window.userSettings.uid) || 1;\n  const storageKey = `WP_DATA_USER_${uid}`;\n\n  use(plugins.persistence, { storageKey });\n  plugins.persistence.__unstableMigrate({ storageKey });\n\n})(window.wp);\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-directory/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.block-directory-block-ratings {\n  display: flex; }\n  .block-directory-block-ratings > div {\n    line-height: 1;\n    display: flex; }\n  .block-directory-block-ratings .block-directory-block-ratings__rating-count {\n    color: #606a73;\n    font-size: ms(-2); }\n  .block-directory-block-ratings svg {\n    fill: #ffb900; }\n\n.block-directory-compact-list {\n  margin: 0;\n  list-style: none; }\n\n.block-directory-compact-list__item {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  margin-bottom: 16px; }\n  .block-directory-compact-list__item:last-child {\n    margin-bottom: 0; }\n\n.block-directory-compact-list__item-details {\n  margin-right: 8px; }\n\n.block-directory-compact-list__item-title {\n  font-weight: 500; }\n\n.block-directory-compact-list__item-author {\n  color: #555d66;\n  font-size: 11px; }\n\n.block-directory-downloadable-block-author-info__content {\n  color: #606a73;\n  font-size: 12px; }\n\n.block-directory-downloadable-block-author-info__content-author {\n  margin-bottom: 4px;\n  font-size: 13px; }\n\n.block-directory-downloadable-block-header__row {\n  display: flex;\n  flex-grow: 1; }\n  .block-directory-downloadable-block-header__row .block-directory-downloadable-block-header__column {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n    padding-right: 12px; }\n\n.block-directory-downloadable-block-header__title {\n  margin: 0;\n  font-size: 13px;\n  color: currentColor; }\n\n.block-directory-downloadable-block-icon {\n  width: 36px;\n  height: 36px; }\n  .block-directory-downloadable-block-icon .block-editor-block-icon {\n    width: 36px;\n    height: 36px;\n    font-size: 36px;\n    background-color: #ddd; }\n\n.block-directory-downloadable-block-info__content {\n  margin: 0 0 16px;\n  font-size: 13px; }\n\n.block-directory-downloadable-block-info__meta {\n  display: flex;\n  align-items: center;\n  margin-bottom: 2px;\n  color: #606a73;\n  font-size: 12px; }\n\n.block-directory-downloadable-block-info__meta:last-child {\n  margin-bottom: 0; }\n\n.block-directory-downloadable-block-info__icon {\n  margin-left: 4px;\n  fill: #606a73; }\n\n.block-directory-downloadable-block-list-item {\n  width: 100%;\n  padding: 0;\n  margin: 0;\n  display: flex;\n  flex-direction: row;\n  font-size: 13px;\n  color: #32373c;\n  align-items: flex-start;\n  justify-content: center;\n  background: transparent;\n  word-break: break-word;\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #ddd;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  text-align: right;\n  overflow: hidden; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-directory-downloadable-block-list-item {\n      transition-duration: 0s; } }\n  .block-directory-downloadable-block-list-item + .block-directory-downloadable-block-list-item {\n    border-top: none; }\n\n.block-directory-downloadable-block-list-item:last-child:not(:only-of-type) {\n  border-top: 0; }\n\n.block-directory-downloadable-block-list-item:last-child {\n  border-bottom: 0; }\n\n.block-directory-downloadable-block-list-item__panel {\n  display: flex;\n  flex-grow: 1;\n  flex-direction: column; }\n\n.block-directory-downloadable-block-list-item__header {\n  display: flex;\n  flex-direction: column;\n  padding: 16px 16px 0; }\n\n.block-directory-downloadable-block-list-item__body {\n  display: flex;\n  flex-direction: column;\n  padding: 16px; }\n\n.block-directory-downloadable-block-list-item__footer {\n  display: flex;\n  flex-direction: column;\n  padding: 16px;\n  background-color: #f0f0f0; }\n\n.block-directory-downloadable-block-list-item__content {\n  color: #606a73; }\n\n.block-directory-downloadable-block-notice {\n  margin: 0 0 16px; }\n\n.block-directory-downloadable-block-notice__content {\n  padding-left: 12px;\n  margin-bottom: 8px; }\n\n.block-directory-downloadable-blocks-list {\n  list-style: none;\n  margin: 0;\n  overflow: hidden;\n  display: flex;\n  flex-wrap: wrap; }\n\n.block-directory-downloadable-blocks-panel__description {\n  font-style: italic;\n  padding: 16px;\n  margin: 0;\n  text-align: right;\n  color: #606a73; }\n\n.block-directory-downloadable-blocks-panel__description.has-no-results {\n  font-style: normal;\n  padding: 0;\n  margin: 112px 0;\n  text-align: center;\n  color: #606a73; }\n  .block-directory-downloadable-blocks-panel__description.has-no-results .components-spinner {\n    float: inherit; }\n\n.installed-blocks-pre-publish-panel__copy {\n  margin-top: 0; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-directory/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.block-directory-block-ratings {\n  display: flex; }\n  .block-directory-block-ratings > div {\n    line-height: 1;\n    display: flex; }\n  .block-directory-block-ratings .block-directory-block-ratings__rating-count {\n    color: #606a73;\n    font-size: ms(-2); }\n  .block-directory-block-ratings svg {\n    fill: #ffb900; }\n\n.block-directory-compact-list {\n  margin: 0;\n  list-style: none; }\n\n.block-directory-compact-list__item {\n  display: flex;\n  flex-direction: row;\n  align-items: center;\n  margin-bottom: 16px; }\n  .block-directory-compact-list__item:last-child {\n    margin-bottom: 0; }\n\n.block-directory-compact-list__item-details {\n  margin-left: 8px; }\n\n.block-directory-compact-list__item-title {\n  font-weight: 500; }\n\n.block-directory-compact-list__item-author {\n  color: #555d66;\n  font-size: 11px; }\n\n.block-directory-downloadable-block-author-info__content {\n  color: #606a73;\n  font-size: 12px; }\n\n.block-directory-downloadable-block-author-info__content-author {\n  margin-bottom: 4px;\n  font-size: 13px; }\n\n.block-directory-downloadable-block-header__row {\n  display: flex;\n  flex-grow: 1; }\n  .block-directory-downloadable-block-header__row .block-directory-downloadable-block-header__column {\n    display: flex;\n    flex-direction: column;\n    flex-grow: 1;\n    padding-left: 12px; }\n\n.block-directory-downloadable-block-header__title {\n  margin: 0;\n  font-size: 13px;\n  color: currentColor; }\n\n.block-directory-downloadable-block-icon {\n  width: 36px;\n  height: 36px; }\n  .block-directory-downloadable-block-icon .block-editor-block-icon {\n    width: 36px;\n    height: 36px;\n    font-size: 36px;\n    background-color: #ddd; }\n\n.block-directory-downloadable-block-info__content {\n  margin: 0 0 16px;\n  font-size: 13px; }\n\n.block-directory-downloadable-block-info__meta {\n  display: flex;\n  align-items: center;\n  margin-bottom: 2px;\n  color: #606a73;\n  font-size: 12px; }\n\n.block-directory-downloadable-block-info__meta:last-child {\n  margin-bottom: 0; }\n\n.block-directory-downloadable-block-info__icon {\n  margin-right: 4px;\n  fill: #606a73; }\n\n.block-directory-downloadable-block-list-item {\n  width: 100%;\n  padding: 0;\n  margin: 0;\n  display: flex;\n  flex-direction: row;\n  font-size: 13px;\n  color: #32373c;\n  align-items: flex-start;\n  justify-content: center;\n  background: transparent;\n  word-break: break-word;\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #ddd;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  text-align: left;\n  overflow: hidden; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-directory-downloadable-block-list-item {\n      transition-duration: 0s; } }\n  .block-directory-downloadable-block-list-item + .block-directory-downloadable-block-list-item {\n    border-top: none; }\n\n.block-directory-downloadable-block-list-item:last-child:not(:only-of-type) {\n  border-top: 0; }\n\n.block-directory-downloadable-block-list-item:last-child {\n  border-bottom: 0; }\n\n.block-directory-downloadable-block-list-item__panel {\n  display: flex;\n  flex-grow: 1;\n  flex-direction: column; }\n\n.block-directory-downloadable-block-list-item__header {\n  display: flex;\n  flex-direction: column;\n  padding: 16px 16px 0; }\n\n.block-directory-downloadable-block-list-item__body {\n  display: flex;\n  flex-direction: column;\n  padding: 16px; }\n\n.block-directory-downloadable-block-list-item__footer {\n  display: flex;\n  flex-direction: column;\n  padding: 16px;\n  background-color: #f0f0f0; }\n\n.block-directory-downloadable-block-list-item__content {\n  color: #606a73; }\n\n.block-directory-downloadable-block-notice {\n  margin: 0 0 16px; }\n\n.block-directory-downloadable-block-notice__content {\n  padding-right: 12px;\n  margin-bottom: 8px; }\n\n.block-directory-downloadable-blocks-list {\n  list-style: none;\n  margin: 0;\n  overflow: hidden;\n  display: flex;\n  flex-wrap: wrap; }\n\n.block-directory-downloadable-blocks-panel__description {\n  font-style: italic;\n  padding: 16px;\n  margin: 0;\n  text-align: left;\n  color: #606a73; }\n\n.block-directory-downloadable-blocks-panel__description.has-no-results {\n  font-style: normal;\n  padding: 0;\n  margin: 112px 0;\n  text-align: center;\n  color: #606a73; }\n  .block-directory-downloadable-blocks-panel__description.has-no-results .components-spinner {\n    float: inherit; }\n\n.installed-blocks-pre-publish-panel__copy {\n  margin-top: 0; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-editor/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.block-editor-autocompleters__block .block-editor-block-icon {\n  margin-left: 8px; }\n\n.block-editor-block-alignment-matrix-toolbar__popover .components-popover__content {\n  min-width: 0;\n  width: auto; }\n  .block-editor-block-alignment-matrix-toolbar__popover .components-popover__content > div {\n    padding: 8px; }\n\n.block-editor-block-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 24px;\n  height: 24px; }\n  .block-editor-block-icon.has-colors svg {\n    fill: currentColor; }\n  .block-editor-block-icon svg {\n    min-width: 20px;\n    min-height: 20px;\n    max-width: 24px;\n    max-height: 24px; }\n\n.block-editor-block-inspector .components-base-control {\n  margin-bottom: 24px; }\n  .block-editor-block-inspector .components-base-control:last-child {\n    margin-bottom: 8px; }\n\n.block-editor-block-inspector .components-panel__body {\n  border: none;\n  border-top: 1px solid #f0f0f0; }\n\n.block-editor-block-inspector .block-editor-block-card {\n  padding: 16px; }\n\n.block-editor-block-inspector__no-blocks {\n  display: block;\n  font-size: 13px;\n  background: #fff;\n  padding: 32px 16px;\n  text-align: center; }\n\n.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel * {\n  z-index: 1; }\n\n.block-editor-block-styles .block-editor-block-list__block {\n  margin: 0; }\n\n/**\n * Notices & Block Selected/Hover Styles.\n */\n.block-editor-block-list__layout .block-editor-block-list__block {\n  position: relative;\n  overflow-wrap: break-word;\n  /**\n\t * Notices\n\t */\n  /**\n\t * Block Layout\n\t */ }\n  .block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui {\n    margin: -10px 0 12px 0; }\n  .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui {\n    margin: 0 0 12px 0;\n    width: 100%; }\n    .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice {\n      margin-right: 0;\n      margin-left: 0; }\n      .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content {\n        font-size: 13px; }\n  .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus {\n    outline: none; }\n    .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus::after {\n      position: absolute;\n      z-index: 1;\n      pointer-events: none;\n      content: \"\";\n      top: 1px;\n      bottom: 1px;\n      right: 1px;\n      left: 1px;\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n      border-radius: 1px; }\n      .is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus::after {\n        box-shadow: 0 0 0 1.5px #fff; }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected) {\n    opacity: 0.5;\n    transition: opacity 0.1s linear; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected) {\n        transition-duration: 0s; } }\n    .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected):not(.is-focused) .block-editor-block-list__block, .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected).is-focused {\n      opacity: 1; }\n\n.block-editor-block-list__layout .block-editor-block-list__block,\n.block-editor-block-list__layout .block-list-appender {\n  position: relative; }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-drop-target::before,\n  .block-editor-block-list__layout .block-list-appender.is-drop-target::before {\n    content: \"\";\n    position: absolute;\n    z-index: 0;\n    pointer-events: none;\n    transition: border-color 0.1s linear, border-style 0.1s linear, box-shadow 0.1s linear;\n    top: -14px;\n    left: 0;\n    right: 0;\n    border-top: 4px solid #007cba;\n    border-top: 4px solid var(--wp-admin-theme-color); }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-drop-target.is-dropping-horizontally::before,\n  .block-editor-block-list__layout .block-list-appender.is-drop-target.is-dropping-horizontally::before {\n    top: 0;\n    bottom: 0;\n    right: -6px;\n    border-top: none;\n    border-right: 4px solid #007cba;\n    border-right: 4px solid var(--wp-admin-theme-color); }\n\n/**\n * Cross-Block Selection\n */\n.block-editor-block-list__layout {\n  position: relative; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n    position: absolute;\n    z-index: 1;\n    pointer-events: none;\n    content: \"\";\n    top: 1px;\n    bottom: 1px;\n    right: 1px;\n    left: 1px; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 1px;\n    transition: box-shadow 0.2s ease-out;\n    outline: 2px solid transparent; }\n    @media (prefers-reduced-motion: reduce) {\n      .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n      .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n      .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n      .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n        transition-duration: 0s; } }\n    .is-dark-theme .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after, .is-dark-theme\n    .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after, .is-dark-theme\n    .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after, .is-dark-theme\n    .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n      box-shadow: 0 0 0 1.5px #fff; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected .components-placeholder ::selection,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered .components-placeholder ::selection,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted .components-placeholder ::selection,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected .components-placeholder ::selection {\n    background: transparent; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered:not(.is-selected)::after {\n    box-shadow: 0 0 0 1px #949494; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.has-child-selected {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 1.5px solid transparent; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::before {\n    content: \"\";\n    position: absolute;\n    z-index: 0;\n    pointer-events: none;\n    transition: border-color 0.1s linear, border-style 0.1s linear, box-shadow 0.1s linear;\n    left: 0;\n    right: 0;\n    top: -14px;\n    border-radius: 2px;\n    border-top: 4px solid #ccc; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after {\n    content: none; }\n  .is-block-moving-mode.can-insert-moving-block .block-editor-block-list__layout .block-editor-block-list__block.is-selected::before {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n\n.is-block-moving-mode.block-editor-block-list__block-selection-button {\n  opacity: 0;\n  font-size: 1px;\n  height: 1px;\n  padding: 0; }\n\n/**\n * Block styles and alignments\n */\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning {\n  min-height: 36px; }\n\n.block-editor-block-list__layout .block-editor-block-list__block::after {\n  content: \"\";\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  border-radius: 2px;\n  box-shadow: 0 0 0 1.5px transparent;\n  transition: box-shadow 0.1s ease-in; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__layout .block-editor-block-list__block::after {\n      transition-duration: 0s; } }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning > * {\n  pointer-events: none;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning {\n  pointer-events: all; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning::after {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  border-radius: 2px;\n  background-color: rgba(255, 255, 255, 0.4); }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected::after {\n  background-color: transparent; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.is-reusable > .block-editor-inner-blocks > .block-editor-block-list__layout.has-overlay::after {\n  display: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.is-reusable > .block-editor-inner-blocks > .block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay::after {\n  display: block; }\n\n.is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block {\n  cursor: default; }\n\n.block-editor-block-list__layout .block-editor-block-list__block[data-clear=\"true\"] {\n  float: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block .block-editor-block-list__layout .block-editor-default-block-appender .block-editor-inserter {\n  right: auto;\n  left: 8px; }\n\n.block-editor-block-list__layout .wp-block {\n  margin-right: auto;\n  margin-left: auto; }\n\n.wp-block[data-align=\"left\"], .wp-block[data-align=\"right\"] {\n  width: 100%;\n  height: 0; }\n  .wp-block[data-align=\"left\"]::before, .wp-block[data-align=\"right\"]::before {\n    content: none; }\n\n.wp-block[data-align=\"left\"] > *,\n.wp-block[data-align=\"right\"] > * {\n  z-index: 21; }\n\n.wp-block[data-align=\"left\"] > * {\n  float: left;\n  margin-right: 2em; }\n\n.wp-block[data-align=\"right\"] > * {\n  float: right;\n  margin-left: 2em; }\n\n.wp-block[data-align=\"full\"], .wp-block[data-align=\"wide\"] {\n  clear: both; }\n\n/**\n * In-Canvas Inserter\n */\n.block-editor-block-list .block-editor-inserter {\n  margin: 8px;\n  cursor: move;\n  cursor: grab; }\n\n.block-editor-block-list__insertion-point {\n  position: relative;\n  z-index: 6;\n  margin-top: -14px; }\n\n.block-editor-block-list__insertion-point-indicator {\n  position: absolute;\n  top: calc(50% - 1px);\n  height: 1.5px;\n  right: 0;\n  left: 0;\n  background: #007cba;\n  background: var(--wp-admin-theme-color); }\n\n.block-editor-block-list__insertion-point-inserter {\n  display: none;\n  justify-content: center;\n  cursor: text; }\n  @media (min-width: 480px) {\n    .block-editor-block-list__insertion-point-inserter {\n      display: flex; } }\n  .block-editor-block-list__insertion-point-inserter.is-inserter-hidden .block-editor-inserter__toggle {\n    opacity: 0;\n    pointer-events: none; }\n\n.block-editor-block-list__block-popover-inserter {\n  position: absolute;\n  top: -9999em;\n  margin-bottom: 14px; }\n  .block-editor-block-list__block-popover-inserter.is-visible {\n    position: static; }\n\n.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button.has-icon {\n  background: #1e1e1e;\n  border-radius: 2px;\n  color: #fff;\n  padding: 0;\n  min-width: 24px;\n  height: 24px; }\n  .block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button.has-icon:hover {\n    color: #fff; }\n\n.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button,\n.block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button {\n  animation: block-editor-inserter__toggle__fade-in-animation-delayed 0.3s ease;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button,\n    .block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button {\n      animation-duration: 1ms; } }\n\n@keyframes block-editor-inserter__toggle__fade-in-animation-delayed {\n  0% {\n    opacity: 0; }\n  80% {\n    opacity: 0; }\n  100% {\n    opacity: 1; } }\n\n@keyframes block-editor-inserter__toggle__fade-in-animation {\n  from {\n    opacity: 0;\n    transform: scale(0); }\n  to {\n    opacity: 1;\n    transform: scale(1); } }\n\n.wp-block .block-list-appender .block-editor-inserter__toggle {\n  animation: block-editor-inserter__toggle__fade-in-animation 0.1s ease;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-block .block-list-appender .block-editor-inserter__toggle {\n      animation-duration: 1ms; } }\n\n.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender {\n  display: none; }\n  .block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle {\n    opacity: 0;\n    transform: scale(0); }\n\n.block-editor-block-list__block > .block-editor-block-list__insertion-point {\n  position: absolute;\n  top: -16px;\n  height: 28px;\n  bottom: auto;\n  right: 14px;\n  left: 14px; }\n\n.block-editor-block-list__block .block-editor-block-list__block-html-textarea {\n  display: block;\n  margin: 0;\n  width: 100%;\n  border: none;\n  outline: none;\n  box-shadow: none;\n  resize: none;\n  overflow: hidden;\n  font-family: Menlo, Consolas, monaco, monospace;\n  font-size: 15px;\n  line-height: 150%;\n  transition: padding 0.2s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__block .block-editor-block-list__block-html-textarea {\n      transition-duration: 0s; } }\n  .block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus {\n    box-shadow: none; }\n\n/**\n * Block Toolbar when contextual.\n */\n.block-editor-block-contextual-toolbar {\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__mover-switcher-container {\n    border-left-color: #1e1e1e; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__mover-switcher-container {\n    border-left-style: solid;\n    border-left-width: 1px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher__no-switcher-icon::before,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher__toggle::before {\n    width: 28px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-icon svg {\n    margin-right: 10px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher:last-child .block-editor-block-icon svg {\n    margin-right: auto; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .components-toolbar,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .components-toolbar-group {\n    border-left: none; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover {\n    margin-right: -12px;\n    width: 36px; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal {\n      width: 48px; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n      min-width: 36px;\n      width: 36px; }\n      [draggable=\"true\"] .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n        cursor: grab; }\n        [draggable=\"true\"] .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button:active {\n          cursor: grabbing; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n      min-width: 24px;\n      width: 24px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button > svg {\n    margin-right: 2px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button.is-up-button svg {\n    margin-top: 3px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button.is-down-button svg {\n    margin-bottom: 3px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button:focus::before {\n    right: 0 !important;\n    min-width: 0;\n    width: 28px; }\n\n/**\n * Block Label for Navigation/Selection Mode\n */\n.block-editor-block-list__block-selection-button {\n  display: block;\n  z-index: 22; }\n  .block-editor-block-list__block-selection-button .components-button {\n    font-size: 13px;\n    height: 46px;\n    padding: 12px 16px;\n    position: relative;\n    top: -1px;\n    box-shadow: 0 0 0 1px #1e1e1e;\n    border-radius: 1px;\n    background-color: #fff; }\n    .block-editor-block-list__block-selection-button .components-button:focus {\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n/**\n * Warnings.\n */\n.block-editor-block-list__block .block-editor-warning {\n  z-index: 5;\n  position: relative; }\n  .block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning {\n    margin-bottom: auto; }\n\n/**\n * Popovers.\n */\n.block-editor-block-list__insertion-point-popover.is-without-arrow {\n  z-index: 28;\n  position: absolute; }\n  .block-editor-block-list__insertion-point-popover.is-without-arrow .components-popover__content.components-popover__content {\n    background: none;\n    border: none;\n    box-shadow: none;\n    overflow-y: visible;\n    margin-right: 0; }\n\n.components-popover.block-editor-block-list__block-popover {\n  z-index: 31;\n  position: absolute; }\n  .components-popover.block-editor-block-list__block-popover .components-popover__content {\n    margin: 0 !important;\n    min-width: auto;\n    width: max-content;\n    background: none;\n    border: none;\n    box-shadow: none;\n    overflow-y: visible;\n    pointer-events: none; }\n    .components-popover.block-editor-block-list__block-popover .components-popover__content > * {\n      pointer-events: all; }\n    .components-popover.block-editor-block-list__block-popover .components-popover__content .block-editor-block-list__block-selection-button,\n    .components-popover.block-editor-block-list__block-popover .components-popover__content .block-editor-block-contextual-toolbar {\n      margin-bottom: 12px; }\n  .is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover {\n    opacity: 0; }\n\n.is-dragging-components-draggable .components-tooltip {\n  display: none; }\n\n.block-editor-block-list__block .block-list-appender {\n  margin: 8px 0; }\n  .has-background .block-editor-block-list__block .block-list-appender {\n    margin: 20px 8px; }\n  .block-editor-block-list__block .block-list-appender .block-list-appender__toggle {\n    padding: 0;\n    opacity: 1;\n    transform: scale(1);\n    transition: all 0.1s ease; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-list__block .block-list-appender .block-list-appender__toggle {\n        transition-duration: 0s; } }\n\n.block-list-appender > .block-editor-inserter {\n  display: block; }\n\n.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout > .block-list-appender .block-list-appender__toggle {\n  opacity: 0;\n  transform: scale(0); }\n\n.block-editor-block-breadcrumb {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .block-editor-block-breadcrumb li {\n    display: inline-block;\n    margin: 0; }\n    .block-editor-block-breadcrumb li:not(:last-child)::after {\n      content: \"\\2192\"; }\n\n.block-editor-block-breadcrumb__button.components-button {\n  height: 24px;\n  line-height: 24px;\n  padding: 0;\n  position: relative; }\n  .block-editor-block-breadcrumb__button.components-button:hover:not(:disabled) {\n    text-decoration: underline;\n    box-shadow: none; }\n  .block-editor-block-breadcrumb__button.components-button:focus {\n    box-shadow: none; }\n  .block-editor-block-breadcrumb__button.components-button:focus::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n    border-radius: 2px;\n    top: 1px;\n    left: 1px;\n    bottom: 1px;\n    right: 1px;\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n.block-editor-block-breadcrumb__current {\n  cursor: default; }\n\n.block-editor-block-breadcrumb__button.components-button,\n.block-editor-block-breadcrumb__current {\n  color: #1e1e1e;\n  padding: 0 8px;\n  font-size: inherit; }\n\n.block-editor-block-card {\n  display: flex;\n  align-items: flex-start; }\n\n.block-editor-block-card__icon {\n  border: 1px solid #ccd0d4;\n  padding: 7px;\n  margin-left: 10px;\n  height: 36px;\n  width: 36px; }\n\n.block-editor-block-card__content {\n  flex-grow: 1; }\n\n.block-editor-block-card__title {\n  font-weight: 500; }\n  .block-editor-block-card__title.block-editor-block-card__title {\n    margin: 0 0 5px; }\n\n.block-editor-block-card__description {\n  font-size: 13px; }\n\n.block-editor-block-card .block-editor-block-icon {\n  margin-right: -2px;\n  margin-left: 10px;\n  padding: 0 3px;\n  width: 36px;\n  height: 24px; }\n\n/**\n * Invalid block comparison\n */\n.block-editor-block-compare {\n  overflow: auto;\n  height: auto; }\n  @media (min-width: 600px) {\n    .block-editor-block-compare {\n      max-height: 70%; } }\n\n.block-editor-block-compare__wrapper {\n  display: flex;\n  padding-bottom: 16px; }\n  .block-editor-block-compare__wrapper > div {\n    display: flex;\n    justify-content: space-between;\n    flex-direction: column;\n    width: 50%;\n    padding: 0 0 0 16px;\n    min-width: 200px; }\n    .block-editor-block-compare__wrapper > div button {\n      float: left; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__converted {\n    border-right: 1px solid #ddd;\n    padding-right: 15px;\n    padding-left: 0; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__html {\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 12px;\n    color: #1e1e1e;\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    line-height: 1.7; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span {\n      background-color: #e6ffed;\n      padding-top: 3px;\n      padding-bottom: 3px; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added {\n      background-color: #acf2bd; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed {\n      background-color: #d94f4f; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__preview {\n    padding: 0;\n    padding-top: 14px; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__preview p {\n      font-size: 12px;\n      margin-top: 0; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__action {\n    margin-top: 14px; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__heading {\n    font-size: 1em;\n    font-weight: 400;\n    margin: 0.67em 0; }\n\n.block-editor-block-draggable-chip-wrapper {\n  position: absolute;\n  top: -60px; }\n\n.block-editor-block-draggable-chip {\n  background-color: #1e1e1e;\n  border-radius: 2px;\n  border: 1px solid #1e1e1e;\n  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);\n  color: #fff;\n  cursor: grabbing;\n  display: inline-flex;\n  height: 48px;\n  min-width: 72px;\n  padding: 0 12px;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n  .block-editor-block-draggable-chip svg {\n    fill: currentColor; }\n  .block-editor-block-draggable-chip .block-editor-block-draggable-chip__content {\n    margin: auto; }\n  .block-editor-block-draggable-chip .components-flex__item {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n\n.is-dragging.is-selected,\n.is-dragging.is-multi-selected {\n  display: none !important; }\n\n.block-editor-block-mobile-toolbar {\n  display: flex;\n  flex-direction: row;\n  border-left: 1px solid #ddd; }\n  .block-editor-block-mobile-toolbar .block-editor-block-mover-button {\n    width: 36px;\n    height: 36px;\n    border-radius: 2px;\n    padding: 3px;\n    margin: 0;\n    justify-content: center;\n    align-items: center; }\n    .block-editor-block-mobile-toolbar .block-editor-block-mover-button .dashicon {\n      margin: auto; }\n  .block-editor-block-mobile-toolbar .block-editor-block-mover {\n    display: flex;\n    margin-left: auto; }\n    .block-editor-block-mobile-toolbar .block-editor-block-mover .block-editor-block-mover-button {\n      float: right; }\n\n.block-editor-block-mover {\n  display: inline-flex;\n  flex-direction: row; }\n\n.block-editor-block-mover-button__description {\n  display: none; }\n\n.block-editor-block-mover-button.has-icon {\n  padding: 0; }\n\n.block-editor-block-mover .components-toolbar-group,\n.block-editor-block-mover .components-toolbar {\n  flex-direction: column;\n  flex: 1; }\n\n.block-editor-block-mover.is-horizontal .components-toolbar-group,\n.block-editor-block-mover.is-horizontal .components-toolbar {\n  flex-direction: row; }\n\n.block-editor-block-mover .block-editor-block-mover-button {\n  height: 24px;\n  width: 48px;\n  padding: 0 !important; }\n  .block-editor-block-mover .block-editor-block-mover-button::before {\n    right: 8px !important;\n    left: 8px !important; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-up-button svg,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-up-button svg {\n  margin-bottom: -8px; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-up-button::before,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-up-button::before {\n  bottom: 0;\n  height: calc(100% - 8px); }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-down-button svg,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-down-button svg {\n  margin-top: -8px; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-down-button::before,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-down-button::before {\n  top: 0;\n  height: calc(100% - 8px); }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.has-icon {\n  height: 48px;\n  width: 24px;\n  min-width: 24px;\n  padding-right: 0;\n  padding-left: 0; }\n  .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.has-icon::before {\n    top: 8px;\n    bottom: 8px;\n    min-width: 0;\n    width: auto;\n    height: auto; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-up-button.has-icon svg {\n  margin-right: 0;\n  margin-left: -8px;\n  margin-bottom: 0; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-up-button.has-icon::before {\n  right: 8px !important;\n  left: 0 !important; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-down-button.has-icon svg {\n  margin-right: -8px;\n  margin-left: 0;\n  margin-top: 0; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-down-button.has-icon::before {\n  right: 0 !important;\n  left: 8px !important; }\n\n.block-editor-block-navigation__container {\n  padding: 7px; }\n\n.block-editor-block-navigation__label {\n  margin: 0 0 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-block-navigation__container {\n  padding: 7px; }\n\n.block-editor-block-navigation-tree {\n  width: 100%;\n  border-collapse: collapse;\n  padding: 0;\n  margin: 0; }\n\n.block-editor-block-navigation-leaf {\n  position: relative; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block-contents {\n    display: flex;\n    align-items: center;\n    width: calc(100% - 0.8em);\n    height: auto;\n    padding: 12px 6px;\n    margin-top: auto;\n    margin-bottom: auto;\n    text-align: right;\n    color: #40464d;\n    border-radius: 2px; }\n    .components-modal__content .block-editor-block-navigation-leaf .block-editor-block-navigation-block-contents {\n      padding-right: 0;\n      padding-left: 0; }\n  .block-editor-block-navigation-leaf.is-visible .block-editor-block-navigation-block-contents {\n    opacity: 1;\n    animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n    animation-fill-mode: forwards; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-navigation-leaf.is-visible .block-editor-block-navigation-block-contents {\n        animation-duration: 1ms; } }\n  .block-editor-block-navigation-leaf .block-editor-block-icon {\n    align-self: flex-start;\n    margin-left: 6px; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__contents-cell {\n    padding-top: 0;\n    padding-bottom: 0; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell {\n    width: 36px;\n    opacity: 0;\n    vertical-align: top; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n      .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell {\n        transition-duration: 0s; } }\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell.is-visible,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell.is-visible {\n      opacity: 1;\n      animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n      animation-fill-mode: forwards; }\n      @media (prefers-reduced-motion: reduce) {\n        .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell.is-visible,\n        .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell.is-visible {\n          animation-duration: 1ms; } }\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell .components-button.has-icon,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell .components-button.has-icon {\n      width: 24px;\n      min-width: 24px;\n      padding: 0; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell {\n    padding-top: 8px; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell-alignment-wrapper {\n    display: flex;\n    height: 100%;\n    flex-direction: column;\n    align-items: center; }\n  .block-editor-block-navigation-leaf .block-editor-block-mover-button {\n    position: relative;\n    width: 36px;\n    height: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button svg {\n      position: relative;\n      height: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-up-button {\n      align-items: flex-end; }\n      .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-up-button svg {\n        bottom: -4px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-down-button {\n      align-items: flex-start; }\n      .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-down-button svg {\n        top: -4px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus:enabled {\n      box-shadow: none;\n      outline: none; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus {\n      box-shadow: none;\n      outline: none; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus::before {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n      outline: 2px solid transparent; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button::before {\n      content: \"\";\n      position: absolute;\n      display: block;\n      border-radius: 2px;\n      height: 16px;\n      min-width: 100%;\n      right: 0;\n      left: 0;\n      animation: components-button__appear-animation 0.1s ease;\n      animation-fill-mode: forwards; }\n      @media (prefers-reduced-motion: reduce) {\n        .block-editor-block-navigation-leaf .block-editor-block-mover-button::before {\n          animation-duration: 1ms; } }\n  .block-editor-block-navigation-leaf .block-editor-inserter__toggle {\n    background: #1e1e1e;\n    color: #fff;\n    height: 24px;\n    margin: 6px 1px 6px 6px;\n    min-width: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-inserter__toggle:active {\n      color: #fff; }\n\n.block-editor-block-navigation-block-slot__description,\n.block-editor-block-navigation-block-select-button__description,\n.block-editor-block-navigation-appender__description {\n  display: none; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-appender__container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-appender__container {\n  display: flex; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-block__contents-container {\n  min-height: 56px; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line {\n  position: relative;\n  flex-shrink: 0;\n  width: 24px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line:first-child,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line:first-child {\n    width: 18px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item {\n    margin-left: 6px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line::before,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 1px;\n    bottom: -2px;\n    left: -1px;\n    border-left: 2px solid #a2aab2; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.is-terminated::before,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.is-terminated::before {\n    border-color: transparent; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item.is-last-row,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row {\n    height: 26px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item::after,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item::after {\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 26px;\n    right: 100%;\n    width: 5px;\n    border-bottom: 2px solid #a2aab2; }\n\n.block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row {\n  height: 16px; }\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row::after {\n    top: 100%; }\n\n.block-editor-block-parent-selector {\n  background: #fff;\n  border-radius: 2px; }\n  .block-editor-block-parent-selector .block-editor-block-parent-selector__button {\n    width: 48px;\n    height: 48px;\n    border: 1px solid #1e1e1e;\n    border-radius: 2px; }\n\n.block-editor-block-patterns-list__item {\n  border-radius: 2px;\n  cursor: pointer;\n  margin-top: 16px;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  border: 1px solid transparent; }\n  .block-editor-block-patterns-list__item:hover {\n    border: 1px solid #007cba;\n    border: 1px solid var(--wp-admin-theme-color); }\n  .block-editor-block-patterns-list__item:focus {\n    box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-block-patterns-list__item.is-placeholder {\n    min-height: 100px; }\n\n.block-editor-block-patterns-list__item-title {\n  padding: 4px;\n  font-size: 12px;\n  text-align: center; }\n\n.block-editor-block-preview__container {\n  position: relative;\n  width: 100%;\n  overflow: hidden; }\n  .block-editor-block-preview__container.editor-styles-wrapper {\n    padding: 0;\n    margin: 0; }\n\n.block-editor-block-preview__content {\n  position: absolute;\n  top: 0;\n  right: 0;\n  transform-origin: top right;\n  text-align: initial;\n  margin: 0;\n  overflow: visible;\n  min-height: auto; }\n  .block-editor-block-preview__content .block-editor-block-list__insertion-point,\n  .block-editor-block-preview__content .block-editor-block-drop-zone,\n  .block-editor-block-preview__content .reusable-block-indicator,\n  .block-editor-block-preview__content .block-list-appender {\n    display: none; }\n  .block-editor-block-preview__content .block-editor-block-list__layout.is-root-container {\n    padding-right: 0;\n    padding-left: 0; }\n    .block-editor-block-preview__content .block-editor-block-list__layout.is-root-container > .wp-block[data-align=\"full\"] {\n      margin-right: 0;\n      margin-left: 0; }\n\n.block-editor-block-settings-menu__popover .components-dropdown-menu__menu {\n  padding: 0; }\n\n.block-editor-block-styles {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: space-between; }\n\n.block-editor-block-styles__item {\n  width: calc(50% - 4px);\n  margin: 4px 0;\n  flex-shrink: 0;\n  cursor: pointer;\n  overflow: hidden;\n  border-radius: 2px;\n  padding: 6px;\n  display: flex;\n  flex-direction: column; }\n  .block-editor-block-styles__item:focus {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-block-styles__item:hover .block-editor-block-styles__item-preview {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n  .block-editor-block-styles__item.is-active .block-editor-block-styles__item-label {\n    font-weight: bold; }\n  .block-editor-block-styles__item.is-active .block-editor-block-styles__item-preview {\n    border: 2px solid #1e1e1e; }\n\n.block-editor-block-styles__item-preview {\n  outline: 1px solid transparent;\n  padding: 0;\n  border-radius: 2px;\n  display: flex;\n  overflow: hidden;\n  background: #fff;\n  align-items: center;\n  flex-grow: 1;\n  min-height: 80px; }\n\n.block-editor-block-switcher__styles__menugroup {\n  position: relative; }\n\n.block-editor-block-styles__item-label {\n  text-align: center;\n  padding: 4px 0; }\n\n.block-editor-block-switcher {\n  position: relative; }\n\n.block-editor-block-switcher__no-switcher-icon,\n.block-editor-block-switcher__toggle {\n  position: relative; }\n\n.components-button.block-editor-block-switcher__toggle,\n.components-button.block-editor-block-switcher__no-switcher-icon {\n  margin: 0;\n  display: block;\n  height: 48px; }\n  .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,\n  .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon {\n    margin: auto; }\n\n.components-button.block-editor-block-switcher__no-switcher-icon {\n  width: 48px; }\n  .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-blocks-icon {\n    margin-left: auto;\n    margin-right: auto; }\n\n.components-button.block-editor-block-switcher__no-switcher-icon:disabled {\n  opacity: 1; }\n  .components-button.block-editor-block-switcher__no-switcher-icon:disabled,\n  .components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors {\n    color: #1e1e1e !important; }\n\n.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon {\n  padding: 0; }\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon {\n    height: 100%;\n    position: relative;\n    margin: 0 auto;\n    display: flex;\n    align-items: center; }\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon::before {\n    top: 8px;\n    left: 8px;\n    bottom: 8px;\n    right: 8px; }\n\n.components-popover.block-editor-block-switcher__popover .components-popover__content {\n  min-width: 300px; }\n\n.components-popover.block-editor-block-switcher__popover .components-popover__content > div {\n  min-width: auto;\n  display: flex;\n  background: #fff;\n  padding: 0; }\n  .components-popover.block-editor-block-switcher__popover .components-popover__content > div .components-menu-group {\n    padding: 16px;\n    margin: 0; }\n\n.block-editor-block-switcher__popover .components-popover__content .block-editor-block-styles {\n  margin: 0 -3px; }\n\n.block-editor-block-switcher__popover .components-popover__content .components-panel__body {\n  border: 0;\n  position: relative;\n  z-index: 1; }\n\n.block-editor-block-switcher__popover .components-popover__content .components-panel__body + .components-panel__body {\n  border-top: 1px solid #f0f0f0; }\n\n.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container {\n  position: absolute;\n  top: -12px;\n  right: calc(100% + 32px); }\n\n.block-editor-block-switcher__preview__popover {\n  display: none; }\n  .block-editor-block-switcher__preview__popover.components-popover {\n    margin-right: 4px;\n    margin-top: 11px; }\n  @media (min-width: 782px) {\n    .block-editor-block-switcher__preview__popover {\n      display: block; } }\n  .block-editor-block-switcher__preview__popover .components-popover__content {\n    box-shadow: none;\n    border: 1px solid #1e1e1e;\n    background: #fff;\n    border-radius: 2px; }\n  .block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview {\n    width: 300px;\n    height: auto;\n    padding: 16px; }\n\n.block-editor-block-switcher__preview-title {\n  margin-bottom: 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon {\n  height: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon {\n  width: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform {\n  width: 48px;\n  height: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform {\n  padding: 12px; }\n\n.block-editor-block-types-list {\n  list-style: none;\n  padding: 4px;\n  margin-right: -4px;\n  margin-left: -4px;\n  overflow: hidden;\n  display: flex;\n  flex-wrap: wrap; }\n\n.block-editor-block-variation-picker .components-placeholder__instructions {\n  margin-bottom: 0; }\n\n.block-editor-block-variation-picker .components-placeholder__fieldset {\n  flex-direction: column; }\n\n.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset {\n  max-width: 90%; }\n\n.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations {\n  display: flex;\n  justify-content: flex-start;\n  flex-direction: row;\n  flex-wrap: wrap;\n  width: 100%;\n  margin: 16px 0;\n  padding: 0;\n  list-style: none; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations > li {\n    list-style: none;\n    margin: 8px 0 0 8px;\n    flex-shrink: 1;\n    max-width: 100px; }\n    .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations > li button {\n      display: flex; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation {\n    padding: 8px; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 12px;\n    display: block;\n    margin-left: 12px;\n    text-align: center; }\n\n.block-editor-block-variation-picker__variation {\n  width: 100%; }\n  .block-editor-block-variation-picker__variation.components-button.has-icon {\n    justify-content: center;\n    width: auto; }\n    .block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary {\n      background-color: #fff; }\n  .block-editor-block-variation-picker__variation.components-button {\n    height: auto;\n    padding: 0; }\n  .block-editor-block-variation-picker__variation::before {\n    content: \"\";\n    padding-bottom: 100%; }\n  .block-editor-block-variation-picker__variation:first-child {\n    margin-right: 0; }\n  .block-editor-block-variation-picker__variation:last-child {\n    margin-left: 0; }\n\n.block-editor-button-block-appender {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 8px;\n  width: 100%;\n  height: auto;\n  color: #1e1e1e;\n  box-shadow: inset 0 0 0 1px #1e1e1e; }\n  .block-editor-button-block-appender:hover {\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); }\n  .block-editor-button-block-appender:focus {\n    box-shadow: inset 0 0 0 2px #007cba;\n    box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color); }\n  .block-editor-button-block-appender:active {\n    color: #000; }\n  .block-editor-button-block-appender.block-list-appender__toggle {\n    display: flex;\n    flex-direction: row;\n    color: #1e1e1e;\n    box-shadow: none;\n    height: 24px;\n    padding: 0;\n    margin-right: 8px; }\n    .block-editor-button-block-appender.block-list-appender__toggle:active {\n      color: #fff; }\n    .block-editor-button-block-appender.block-list-appender__toggle > svg {\n      width: 24px;\n      background-color: #1e1e1e;\n      color: #fff;\n      border-radius: 2px; }\n\n.block-editor-color-gradient-control__color-indicator {\n  margin-bottom: 8px; }\n\n.block-editor-color-gradient-control__button-tabs {\n  display: block;\n  margin-bottom: 8px; }\n\n.block-editor-panel-color-gradient-settings .component-color-indicator {\n  vertical-align: text-bottom; }\n\n.block-editor-panel-color-gradient-settings__panel-title .component-color-indicator {\n  display: inline-block; }\n\n.block-editor-panel-color-gradient-settings.is-opened .block-editor-panel-color-gradient-settings__panel-title .component-color-indicator {\n  display: none; }\n\n.block-editor-contrast-checker > .components-notice {\n  margin: 0; }\n\n.block-editor-default-block-appender {\n  clear: both;\n  margin-right: auto;\n  margin-left: auto;\n  position: relative; }\n  .block-editor-default-block-appender[data-root-client-id=\"\"] .block-editor-default-block-appender__content:hover {\n    outline: 1px solid transparent; }\n  .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n    font-family: inherit;\n    font-size: inherit;\n    border: none;\n    background: none;\n    box-shadow: none;\n    display: block;\n    cursor: text;\n    width: 100%;\n    outline: 1px solid transparent;\n    transition: 0.2s outline;\n    resize: none;\n    margin-top: 28px;\n    margin-bottom: 28px;\n    padding: 0 0 0 50px;\n    color: rgba(30, 30, 30, 0.62); }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n        transition-duration: 0s; } }\n    .is-dark-theme .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n      color: rgba(255, 255, 255, 0.65); }\n  .block-editor-default-block-appender .components-drop-zone__content-icon {\n    display: none; }\n\n.block-editor-default-block-appender__content {\n  line-height: 1.8; }\n\n.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,\n.block-editor-default-block-appender .block-editor-inserter {\n  position: absolute;\n  top: 0;\n  height: 32px; }\n  .block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle,\n  .block-editor-default-block-appender .block-editor-inserter .block-editor-inserter__toggle {\n    margin-left: 0; }\n\n.block-editor-block-list__empty-block-inserter,\n.block-editor-default-block-appender .block-editor-inserter {\n  left: 8px; }\n  @media (min-width: 600px) {\n    .block-editor-block-list__empty-block-inserter,\n    .block-editor-default-block-appender .block-editor-inserter {\n      display: flex;\n      height: 100%; } }\n  .block-editor-block-list__empty-block-inserter:disabled,\n  .block-editor-default-block-appender .block-editor-inserter:disabled {\n    display: none; }\n\n@media (min-width: 600px) {\n  .block-editor-default-block-appender .block-editor-inserter {\n    align-items: center; } }\n\n.block-editor-link-control {\n  position: relative;\n  min-width: 360px; }\n  .components-popover__content .block-editor-link-control {\n    min-width: auto;\n    width: 90vw;\n    max-width: 360px; }\n\n.block-editor-link-control__search-input-wrapper {\n  position: relative; }\n\n.block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  width: calc(100% - 32px);\n  display: block;\n  padding: 11px 16px;\n  padding-left: 36px;\n  margin: 16px;\n  position: relative;\n  border: 1px solid #ddd;\n  border-radius: 2px; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.block-editor-link-control .block-editor-link-control__search-input .components-base-control__field {\n  margin-bottom: 0; }\n\n.block-editor-link-control__search-error {\n  margin: -8px 16px 16px; }\n\n.block-editor-link-control__search-actions {\n  position: absolute;\n  /*\n\t * Actions must be positioned on top of URLInput, since the input will grow\n\t * when suggestions are rendered.\n\t *\n\t * Compensate for:\n\t *  - Input margin ($grid-unit-20)\n\t *  - Border (1px)\n\t *  - Vertically, for the difference in height between the input (40px) and\n\t *    the icon buttons.\n\t *  - Horizontally, pad to the minimum of: default input padding, or the\n\t *    equivalent of the vertical padding.\n\t */\n  top: 19px;\n  left: 19px; }\n\n.block-editor-link-control__search-results-wrapper {\n  position: relative;\n  margin-top: -15px; }\n  .block-editor-link-control__search-results-wrapper::before, .block-editor-link-control__search-results-wrapper::after {\n    content: \"\";\n    position: absolute;\n    right: -1px;\n    left: 16px;\n    display: block;\n    pointer-events: none;\n    z-index: 100; }\n  .block-editor-link-control__search-results-wrapper::before {\n    height: 8px;\n    top: 0;\n    bottom: auto;\n    background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%); }\n  .block-editor-link-control__search-results-wrapper::after {\n    height: 16px;\n    bottom: 0;\n    top: auto;\n    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 100%); }\n\n.block-editor-link-control__search-results-label {\n  padding: 15px 30px 0 30px;\n  display: block;\n  font-size: 1.1em; }\n\n.block-editor-link-control__search-results {\n  margin: 0;\n  padding: 8px 16px 8px;\n  max-height: 200px;\n  overflow-y: auto; }\n  .block-editor-link-control__search-results.is-loading {\n    opacity: 0.2; }\n\n.block-editor-link-control__search-item {\n  position: relative;\n  display: flex;\n  align-items: center;\n  font-size: 13px;\n  cursor: pointer;\n  background: #fff;\n  width: 100%;\n  border: none;\n  text-align: right;\n  padding: 10px 15px;\n  border-radius: 5px;\n  height: auto; }\n  .block-editor-link-control__search-item:hover, .block-editor-link-control__search-item:focus {\n    background-color: #ddd; }\n  .block-editor-link-control__search-item:focus:not(:disabled) {\n    box-shadow: 0 0 0 1.5px #007cba inset;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color) inset; }\n  .block-editor-link-control__search-item.is-selected {\n    background: #f0f0f0; }\n    .block-editor-link-control__search-item.is-selected .block-editor-link-control__search-item-type {\n      background: #fff; }\n  .block-editor-link-control__search-item.is-current {\n    background: transparent;\n    border: 0;\n    width: 100%;\n    cursor: default;\n    padding: 16px;\n    padding-right: 24px; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-header {\n    display: block;\n    margin-left: 24px;\n    overflow: hidden;\n    white-space: nowrap; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-icon {\n    margin-left: 1em;\n    min-width: 24px; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-info,\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title {\n    max-width: 230px;\n    overflow: hidden;\n    text-overflow: ellipsis; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark {\n    color: #1e1e1e; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title {\n    display: block;\n    margin-bottom: 0.2em;\n    font-weight: 500; }\n    .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark {\n      font-weight: 700;\n      color: #000;\n      background-color: transparent; }\n    .block-editor-link-control__search-item .block-editor-link-control__search-item-title span {\n      font-weight: normal; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-info {\n    display: block;\n    color: #6c7781;\n    font-size: 0.9em;\n    line-height: 1.3; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-type {\n    display: block;\n    padding: 3px 8px;\n    margin-right: auto;\n    font-size: 0.9em;\n    background-color: #f0f0f0;\n    border-radius: 2px; }\n\n.block-editor-link-control__loading {\n  margin: 16px;\n  display: flex;\n  align-items: center; }\n  .block-editor-link-control__loading .components-spinner {\n    margin-top: 0; }\n\n.components-button + .block-editor-link-control__search-create {\n  margin-top: 20px;\n  overflow: visible;\n  padding: 12px 15px; }\n  .components-button + .block-editor-link-control__search-create::before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    right: 0;\n    display: block;\n    width: 100%;\n    border-top: 1px solid #ddd; }\n\n.block-editor-link-control__search-results div[role=\"menu\"] > .block-editor-link-control__search-item.block-editor-link-control__search-item {\n  padding: 10px; }\n\n.block-editor-link-control__settings {\n  border-top: 1px solid #ddd;\n  margin: 0;\n  padding: 16px 24px; }\n  .block-editor-link-control__settings :last-child {\n    margin-bottom: 0; }\n\n.block-editor-link-control__setting {\n  margin-bottom: 16px; }\n  .block-editor-link-control__setting :last-child {\n    margin-bottom: 0; }\n\n.block-editor-link-control .block-editor-link-control__search-input .components-spinner {\n  display: block; }\n  .block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner {\n    position: absolute;\n    right: auto;\n    bottom: auto;\n    /*\n\t\t * Position spinner to the left of the actions.\n\t\t *\n\t\t * Compensate for:\n\t\t *  - Input margin ($grid-unit-20)\n\t\t *  - Border (1px)\n\t\t *  - Vertically, for the difference in height between the input (40px)\n\t\t *    and the spinner.\n\t\t *  - Horizontally, adjust for the width occupied by the icon buttons,\n\t\t *    then artificially create spacing that mimics as if the spinner\n\t\t *    were center-padded to the same width as an icon button.\n\t\t */\n    top: 28px;\n    left: 62px; }\n\n.block-editor-link-control__search-item-action {\n  margin-right: auto;\n  flex-shrink: 0; }\n\n.block-editor-line-height-control {\n  margin-bottom: 24px; }\n  .block-editor-line-height-control input {\n    display: block;\n    max-width: 60px; }\n\n.block-editor-image-size-control {\n  margin-bottom: 1em; }\n  .block-editor-image-size-control .block-editor-image-size-control__row {\n    display: flex;\n    justify-content: space-between; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width,\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height {\n      margin-bottom: 0.5em; }\n      .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width input,\n      .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height input {\n        line-height: 1.25; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width {\n      margin-left: 5px; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height {\n      margin-right: 5px; }\n\n.block-editor-block-list__layout.has-overlay::after {\n  content: \"\";\n  position: absolute;\n  top: -14px;\n  left: -14px;\n  bottom: -14px;\n  right: -14px;\n  z-index: 60; }\n\n[data-align=\"full\"] .has-overlay::after {\n  left: 0;\n  right: 0; }\n\n.block-editor-block-types-list__list-item {\n  display: block;\n  width: 33.33%;\n  padding: 0;\n  margin: 0; }\n\n.components-button.block-editor-block-types-list__item {\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  font-size: 13px;\n  color: #32373c;\n  padding: 8px;\n  align-items: stretch;\n  justify-content: center;\n  cursor: pointer;\n  background: transparent;\n  word-break: break-word;\n  border-radius: 2px;\n  border: 1px solid transparent;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  height: auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-button.block-editor-block-types-list__item {\n      transition-duration: 0s; } }\n  .components-button.block-editor-block-types-list__item:disabled {\n    opacity: 0.6;\n    cursor: default; }\n  .components-button.block-editor-block-types-list__item:not(:disabled):hover {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    color: #007cba !important;\n    color: var(--wp-admin-theme-color) !important; }\n  .components-button.block-editor-block-types-list__item:not(:disabled).is-active {\n    color: #fff;\n    background: #1e1e1e;\n    outline: 2px solid transparent;\n    outline-offset: -2px; }\n\n.block-editor-block-types-list__item-icon {\n  padding: 12px 20px;\n  border-radius: 2px;\n  color: #1e1e1e;\n  transition: all 0.05s ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-types-list__item-icon {\n      transition-duration: 0s; } }\n  .block-editor-block-types-list__item-icon .block-editor-block-icon {\n    margin-right: auto;\n    margin-left: auto; }\n  .block-editor-block-types-list__item-icon svg {\n    transition: all 0.15s ease-out; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-types-list__item-icon svg {\n        transition-duration: 0s; } }\n\n.block-editor-block-types-list__item-title {\n  padding: 4px 2px 8px;\n  font-size: 12px; }\n\n.modal-open .block-editor-media-replace-flow__options {\n  display: none; }\n\n.block-editor-media-replace-flow__options .components-popover__content > div {\n  padding-top: 16px; }\n\n.block-editor-media-replace-flow__indicator {\n  margin-right: 4px; }\n\n.block-editor-media-replace-flow__media-upload-menu {\n  margin-bottom: 16px; }\n\n.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label {\n  top: 16px; }\n\n.block-editor-media-flow__url-input .block-editor-link-control {\n  margin-top: -16px;\n  width: auto; }\n  .block-editor-media-flow__url-input .block-editor-link-control .components-base-control .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title {\n    max-width: 180px;\n    margin-top: 16px; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current {\n    width: auto;\n    padding: 0; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n    margin: 16px 0 0 0;\n    width: 100%; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions {\n    left: 4px; }\n\n.block-editor-media-flow__error {\n  padding: 0 20px 20px 20px;\n  max-width: 255px; }\n  .block-editor-media-flow__error .components-with-notices-ui {\n    max-width: 255px; }\n    .block-editor-media-flow__error .components-with-notices-ui .components-notice__content {\n      overflow: hidden;\n      word-wrap: break-word; }\n    .block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss {\n      position: absolute;\n      left: 10px; }\n\n.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button {\n  margin-bottom: 0; }\n\n.block-editor-media-placeholder__url-input-form {\n  display: flex; }\n  .block-editor-media-placeholder__url-input-form input[type=\"url\"].block-editor-media-placeholder__url-input-field {\n    width: 100%;\n    flex-grow: 1;\n    border: none;\n    border-radius: 0;\n    margin: 2px; }\n    @media (min-width: 600px) {\n      .block-editor-media-placeholder__url-input-form input[type=\"url\"].block-editor-media-placeholder__url-input-field {\n        width: 300px; } }\n\n.block-editor-media-placeholder__url-input-submit-button {\n  flex-shrink: 1; }\n\n.block-editor-media-placeholder__button {\n  margin-bottom: 0.5rem; }\n\n.block-editor-media-placeholder__cancel-button.is-link {\n  margin: 1em;\n  display: block; }\n\n.block-editor-media-placeholder.is-appender {\n  min-height: 0; }\n  .block-editor-media-placeholder.is-appender:hover {\n    cursor: pointer;\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n.block-editor-multi-selection-inspector__card {\n  display: flex;\n  align-items: flex-start;\n  padding: 16px; }\n\n.block-editor-multi-selection-inspector__card-content {\n  flex-grow: 1; }\n\n.block-editor-multi-selection-inspector__card-title {\n  font-weight: 500;\n  margin-bottom: 5px; }\n\n.block-editor-multi-selection-inspector__card-description {\n  font-size: 13px; }\n\n.block-editor-multi-selection-inspector__card .block-editor-block-icon {\n  margin-right: -2px;\n  margin-left: 10px;\n  padding: 0 3px;\n  width: 36px;\n  height: 24px; }\n\n.block-editor .block-editor-plain-text {\n  box-shadow: none;\n  font-family: inherit;\n  font-size: inherit;\n  color: inherit;\n  line-height: inherit;\n  border: none;\n  padding: 0;\n  margin: 0;\n  width: 100%; }\n\n.block-editor-responsive-block-control {\n  margin-bottom: 28px;\n  border-bottom: 1px solid #d7dade;\n  padding-bottom: 14px; }\n  .block-editor-responsive-block-control:last-child {\n    padding-bottom: 0;\n    border-bottom: 0; }\n\n.block-editor-responsive-block-control__title {\n  margin: 0;\n  margin-bottom: 0.6em;\n  margin-right: -3px; }\n\n.block-editor-responsive-block-control__label {\n  font-weight: 600;\n  margin-bottom: 0.6em;\n  margin-right: -3px; }\n\n.block-editor-responsive-block-control__inner {\n  margin-right: -1px; }\n\n.block-editor-responsive-block-control__toggle {\n  margin-right: 1px; }\n\n.block-editor-responsive-block-control .components-base-control__help {\n  border: 0;\n  clip: rect(1px, 1px, 1px, 1px);\n  -webkit-clip-path: inset(50%);\n          clip-path: inset(50%);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n  word-wrap: normal !important; }\n\n.block-editor-format-toolbar .components-dropdown-menu__toggle {\n  justify-content: center; }\n\n.block-editor-rich-text__editable > p:first-child {\n  margin-top: 0; }\n\n.block-editor-rich-text__editable [data-rich-text-placeholder] {\n  pointer-events: none; }\n\n.block-editor-rich-text__editable [data-rich-text-placeholder]::after {\n  content: attr(data-rich-text-placeholder);\n  opacity: 0.62; }\n\n.block-editor-rich-text__editable:focus {\n  outline: none; }\n  .block-editor-rich-text__editable:focus [data-rich-text-format-boundary] {\n    border-radius: 2px; }\n  .block-editor-rich-text__editable:focus:not(.keep-placeholder-on-focus) [data-rich-text-placeholder]::after {\n    display: none; }\n\nfigcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before {\n  opacity: 0.8; }\n\n.components-popover.block-editor-rich-text__inline-format-toolbar {\n  z-index: 99998; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content {\n    width: auto;\n    min-width: auto;\n    margin-bottom: 8px;\n    box-shadow: none;\n    border: 1px solid #1e1e1e;\n    border-radius: 2px;\n    background-color: #fff; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar-group,\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar {\n    border: none; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control,\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle {\n    min-width: 48px;\n    min-height: 48px;\n    padding-right: 12px;\n    padding-left: 12px; }\n\n.block-editor-skip-to-selected-block {\n  position: absolute;\n  top: -9999em; }\n  .block-editor-skip-to-selected-block:focus {\n    height: auto;\n    width: auto;\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    padding: 15px 23px 14px;\n    background: #f1f1f1;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    line-height: normal;\n    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);\n    text-decoration: none;\n    outline: none;\n    z-index: 100000; }\n\n.block-editor-tool-selector__help {\n  margin-top: 8px;\n  margin-right: -12px;\n  margin-left: -12px;\n  margin-bottom: -12px;\n  padding: 12px 20px;\n  border-top: 1px solid #ddd;\n  color: #6c7781; }\n\n.block-editor-block-list__block .block-editor-url-input,\n.components-popover .block-editor-url-input,\n.block-editor-url-input {\n  flex-grow: 1;\n  position: relative;\n  padding: 1px; }\n  .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n  .components-popover .block-editor-url-input input[type=\"text\"],\n  .block-editor-url-input input[type=\"text\"] {\n    width: 100%;\n    padding: 8px;\n    border: none;\n    border-radius: 0;\n    margin-right: 0;\n    margin-left: 0;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (min-width: 600px) {\n      .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n      .components-popover .block-editor-url-input input[type=\"text\"],\n      .block-editor-url-input input[type=\"text\"] {\n        width: 300px; } }\n    @media (min-width: 600px) {\n      .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n      .components-popover .block-editor-url-input input[type=\"text\"],\n      .block-editor-url-input input[type=\"text\"] {\n        font-size: 13px; } }\n    .block-editor-block-list__block .block-editor-url-input input[type=\"text\"]::-ms-clear,\n    .components-popover .block-editor-url-input input[type=\"text\"]::-ms-clear,\n    .block-editor-url-input input[type=\"text\"]::-ms-clear {\n      display: none; }\n  .block-editor-block-list__block .block-editor-url-input.is-full-width,\n  .components-popover .block-editor-url-input.is-full-width,\n  .block-editor-url-input.is-full-width {\n    width: 100%; }\n    .block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"],\n    .components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"],\n    .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"] {\n      width: 100%; }\n    .block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,\n    .components-popover .block-editor-url-input.is-full-width__suggestions,\n    .block-editor-url-input.is-full-width__suggestions {\n      width: 100%; }\n  .block-editor-block-list__block .block-editor-url-input .components-spinner,\n  .components-popover .block-editor-url-input .components-spinner,\n  .block-editor-url-input .components-spinner {\n    position: absolute;\n    left: 8px;\n    bottom: 17px;\n    margin: 0; }\n\n.block-editor-url-input__input[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-url-input__input[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-url-input__input[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor-url-input__input[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-url-input__input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-url-input__input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-url-input__input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.block-editor-url-input__suggestions {\n  max-height: 200px;\n  transition: all 0.15s ease-in-out;\n  padding: 4px 0;\n  width: 302px;\n  overflow-y: auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-url-input__suggestions {\n      transition-duration: 0s; } }\n\n.block-editor-url-input__suggestions,\n.block-editor-url-input .components-spinner {\n  display: none; }\n  @media (min-width: 600px) {\n    .block-editor-url-input__suggestions,\n    .block-editor-url-input .components-spinner {\n      display: inherit; } }\n\n.block-editor-url-input__suggestion {\n  padding: 4px 8px;\n  color: #6c7781;\n  display: block;\n  font-size: 13px;\n  cursor: pointer;\n  background: #fff;\n  width: 100%;\n  border: none;\n  text-align: right;\n  box-shadow: none; }\n  .block-editor-url-input__suggestion:hover {\n    background: #ddd; }\n  .block-editor-url-input__suggestion:focus, .block-editor-url-input__suggestion.is-selected {\n    background: #005a87;\n    background: var(--wp-admin-theme-color-darker-20);\n    color: #fff;\n    outline: none; }\n\n.components-toolbar-group > .block-editor-url-input__button,\n.components-toolbar > .block-editor-url-input__button {\n  position: inherit; }\n\n.block-editor-url-input__button .block-editor-url-input__back {\n  margin-left: 4px;\n  overflow: visible; }\n  .block-editor-url-input__button .block-editor-url-input__back::after {\n    content: \"\";\n    position: absolute;\n    display: block;\n    width: 1px;\n    height: 24px;\n    left: -1px;\n    background: #ddd; }\n\n.block-editor-url-input__button-modal {\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n  border: 1px solid #ddd;\n  background: #fff; }\n\n.block-editor-url-input__button-modal-line {\n  display: flex;\n  flex-direction: row;\n  flex-grow: 1;\n  flex-shrink: 1;\n  min-width: 0;\n  align-items: flex-start; }\n  .block-editor-url-input__button-modal-line .components-button {\n    flex-shrink: 0;\n    width: 36px;\n    height: 36px; }\n\n.block-editor-url-popover__additional-controls {\n  border-top: 1px solid #ddd; }\n\n.block-editor-url-popover__additional-controls > div[role=\"menu\"] .components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary) > svg {\n  box-shadow: none; }\n\n.block-editor-url-popover__additional-controls div[role=\"menu\"] > .components-button {\n  padding-right: 2px; }\n\n.block-editor-url-popover__row {\n  display: flex; }\n\n.block-editor-url-popover__row > :not(.block-editor-url-popover__settings-toggle) {\n  flex-grow: 1; }\n\n.block-editor-url-popover .components-button.has-icon {\n  padding: 3px; }\n  .block-editor-url-popover .components-button.has-icon > svg {\n    padding: 5px;\n    border-radius: 2px;\n    height: 30px;\n    width: 30px; }\n  .block-editor-url-popover .components-button.has-icon:not(:disabled):focus {\n    box-shadow: none; }\n    .block-editor-url-popover .components-button.has-icon:not(:disabled):focus > svg {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n      outline: 2px solid transparent; }\n\n.block-editor-url-popover__settings-toggle {\n  flex-shrink: 0;\n  border-radius: 0;\n  border-right: 1px solid #ddd;\n  margin-right: 1px; }\n  .block-editor-url-popover__settings-toggle[aria-expanded=\"true\"] .dashicon {\n    transform: rotate(-180deg); }\n\n.block-editor-url-popover__input-container .components-base-control:last-child,\n.block-editor-url-popover__input-container .components-base-control:last-child .components-base-control__field {\n  margin-bottom: 0; }\n\n.block-editor-url-popover__settings {\n  display: block;\n  padding: 16px;\n  border-top: 1px solid #ddd; }\n\n.block-editor-url-popover__link-editor,\n.block-editor-url-popover__link-viewer {\n  display: flex; }\n  .block-editor-url-popover__link-editor .block-editor-url-input .components-base-control__field,\n  .block-editor-url-popover__link-viewer .block-editor-url-input .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-url-popover__link-editor .block-editor-url-input .components-spinner,\n  .block-editor-url-popover__link-viewer .block-editor-url-input .components-spinner {\n    bottom: 9px; }\n\n.block-editor-url-popover__link-viewer-url {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-url-popover__link-viewer-url.has-invalid-link {\n    color: #d94f4f; }\n\n.block-editor-warning {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 12px;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff; }\n  .block-editor-warning .block-editor-warning__message {\n    line-height: 1.4;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    margin: 1em 0; }\n  .block-editor-warning p.block-editor-warning__message.block-editor-warning__message {\n    min-height: auto; }\n  .block-editor-warning .block-editor-warning__contents {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    align-items: baseline;\n    width: 100%; }\n  .block-editor-warning .block-editor-warning__actions {\n    display: flex; }\n  .block-editor-warning .block-editor-warning__action {\n    margin: 0 8px 0 0; }\n\n.block-editor-warning__secondary {\n  margin: auto 8px auto 0; }\n\n.block-editor-writing-flow {\n  display: flex;\n  flex-direction: column; }\n\n.block-editor-writing-flow__click-redirect {\n  cursor: text; }\n\n.html-anchor-control .components-external-link {\n  display: block;\n  margin-top: 8px; }\n\n#end-resizable-editor-section {\n  display: none; }\n\n/**\n * Block Toolbar\n */\n.block-editor-block-toolbar {\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n  overflow: auto;\n  position: relative;\n  transition: border-color 0.1s linear, box-shadow 0.1s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-toolbar {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-block-toolbar {\n      overflow: inherit; } }\n  .block-editor-block-toolbar .components-toolbar-group,\n  .block-editor-block-toolbar .components-toolbar {\n    background: none;\n    line-height: 0;\n    margin-top: -1px;\n    margin-bottom: -1px;\n    border: 0;\n    border-left: 1px solid #ddd; }\n  .block-editor-block-toolbar > :last-child,\n  .block-editor-block-toolbar > :last-child .components-toolbar-group,\n  .block-editor-block-toolbar > :last-child .components-toolbar {\n    border-left: none; }\n\n.block-editor-block-toolbar .components-toolbar-group,\n.block-editor-block-toolbar .components-toolbar,\n.block-editor-format-toolbar .components-toolbar-group,\n.block-editor-format-toolbar .components-toolbar {\n  display: flex;\n  flex-wrap: nowrap; }\n\n.block-editor-block-toolbar__slot {\n  display: inline-block;\n  line-height: 0; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .block-editor-block-toolbar__slot {\n      display: inline-flex; } }\n\n.block-editor-block-toolbar__block-parent-selector-wrapper {\n  position: absolute;\n  top: -1px;\n  right: -1px;\n  opacity: 0;\n  transition: all 60ms linear;\n  z-index: -1; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-toolbar__block-parent-selector-wrapper {\n      transition-duration: 0s; } }\n  .is-showing-movers .block-editor-block-toolbar__block-parent-selector-wrapper {\n    opacity: 1;\n    transform: translateY(-60px); }\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar__block-parent-selector-wrapper {\n    display: none; }\n\n.block-editor-block-toolbar__mover-switcher-container {\n  display: flex; }\n\n.block-editor-block-toolbar__block-switcher-wrapper {\n  display: flex; }\n  .block-editor-block-toolbar__block-switcher-wrapper:not([draggable=\"false\"]) * {\n    cursor: grab; }\n  .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher {\n    display: block; }\n\n.block-editor-inserter {\n  display: inline-block;\n  background: none;\n  border: none;\n  padding: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  line-height: 1.4; }\n  @media (min-width: 782px) {\n    .block-editor-inserter {\n      position: relative; } }\n\n.block-editor-inserter__popover .block-editor-inserter__menu {\n  margin: -12px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__search {\n    top: -12px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs {\n    top: 60px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area {\n    overflow: visible;\n    height: auto; }\n\n.block-editor-inserter__toggle.components-button {\n  display: inline-flex;\n  align-items: center;\n  cursor: pointer;\n  border: none;\n  outline: none;\n  padding: 0;\n  transition: color 0.2s ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-inserter__toggle.components-button {\n      transition-duration: 0s; } }\n\n.block-editor-inserter__menu {\n  height: 100%;\n  position: relative;\n  overflow: visible; }\n\n.block-editor-inserter__main-area {\n  width: auto;\n  overflow-y: auto;\n  height: 100%; }\n  @media (min-width: 782px) {\n    .block-editor-inserter__main-area {\n      width: 350px; } }\n\n.block-editor-inserter__inline-elements {\n  margin-top: -1px; }\n\n.block-editor-inserter__menu.is-bottom::after {\n  border-bottom-color: #fff; }\n\n.components-popover.block-editor-inserter__popover {\n  z-index: 99998; }\n\n.block-editor-inserter__search {\n  padding: 16px;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  background: #fff;\n  z-index: 1; }\n  .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    display: block;\n    padding: 16px 16px 16px 48px;\n    background: #f0f0f0;\n    border: none;\n    width: 100%;\n    height: 48px;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    @media (min-width: 600px) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        font-size: 13px; } }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:focus {\n      background: #fff;\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-ms-input-placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-decoration, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-cancel-button, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-results-button, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-results-decoration {\n      -webkit-appearance: none; }\n\n.block-editor-inserter__search-icon {\n  position: absolute;\n  top: 0;\n  left: 20px;\n  bottom: 0;\n  display: flex;\n  align-items: center; }\n  .block-editor-inserter__search-icon > svg {\n    margin: 8px; }\n\n.block-editor-inserter__tabs {\n  display: flex;\n  flex-direction: column;\n  margin-top: -8px; }\n  .block-editor-inserter__tabs .components-tab-panel__tabs {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 72px;\n    background: #fff;\n    z-index: 1;\n    border-bottom: 1px solid #ddd; }\n    .block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item {\n      flex-grow: 1;\n      margin-bottom: -1px; }\n  .block-editor-inserter__tabs .components-tab-panel__tab-content {\n    display: flex;\n    flex-grow: 1;\n    flex-direction: column;\n    position: relative; }\n\n.block-editor-inserter__panel-header {\n  display: inline-flex;\n  align-items: center;\n  padding: 16px 16px 0; }\n\n.block-editor-inserter__panel-content {\n  padding: 0 16px; }\n\n.block-editor-inserter__panel-title {\n  margin: 0 0 0 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-inserter__block-list {\n  flex-grow: 1;\n  position: relative; }\n\n.block-editor-inserter__popover .block-editor-block-types-list {\n  margin: 0 -8px; }\n\n.block-editor-inserter__reusable-blocks-panel {\n  position: relative;\n  text-align: left; }\n\n.block-editor-inserter__manage-reusable-blocks {\n  display: inline-block;\n  margin: 16px; }\n\n.block-editor-inserter__no-results {\n  padding: 32px;\n  margin-top: 64px;\n  text-align: center; }\n\n.block-editor-inserter__no-results-icon {\n  fill: #b5bcc2; }\n\n.block-editor-inserter__child-blocks {\n  padding: 0 16px; }\n\n.block-editor-inserter__parent-block-header {\n  display: flex;\n  align-items: center; }\n  .block-editor-inserter__parent-block-header h2 {\n    font-size: 13px; }\n  .block-editor-inserter__parent-block-header .block-editor-block-icon {\n    margin-left: 8px; }\n\n.block-editor-inserter__preview-container {\n  display: none;\n  width: 300px;\n  background: #fff;\n  border-radius: 2px;\n  border: 1px solid #ddd;\n  position: absolute;\n  top: 16px;\n  right: calc(100% + 16px); }\n  @media (min-width: 782px) {\n    .block-editor-inserter__preview-container {\n      display: block; } }\n  .block-editor-inserter__preview-container .block-editor-block-card {\n    padding: 16px; }\n  .block-editor-inserter__preview-container .block-editor-block-card__title {\n    font-size: 13px; }\n\n.block-editor-inserter__preview-content {\n  min-height: 144px;\n  background: #f0f0f0;\n  display: -ms-grid;\n  display: grid;\n  flex-grow: 1;\n  align-items: center; }\n\n.block-editor-inserter__preview-content-missing {\n  flex: 1;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  min-height: 144px;\n  color: #606a73;\n  background: #f0f0f0; }\n\n.block-editor-inserter__tips {\n  border-top: 1px solid #ddd;\n  padding: 16px;\n  flex-shrink: 0; }\n\n.block-editor-inserter__manage-reusable-blocks-container {\n  padding: 16px; }\n\n.block-editor-inserter__quick-inserter {\n  width: 100%; }\n  @media (min-width: 782px) {\n    .block-editor-inserter__quick-inserter {\n      width: 350px; } }\n\n.block-editor-inserter__quick-inserter-results {\n  padding-bottom: 16px; }\n  .block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header {\n    height: 0;\n    padding: 0;\n    float: right; }\n\n.block-editor-inserter__quick-inserter-patterns {\n  display: -ms-grid;\n  display: grid;\n  -ms-grid-columns: 1fr 1fr;\n  grid-template-columns: 1fr 1fr;\n  grid-gap: 8px; }\n\n.block-editor-inserter__quick-inserter-separator {\n  border-top: 1px solid #ddd; }\n\n.block-editor-inserter__popover.is-quick > .components-popover__content > div {\n  padding: 0; }\n\n.block-editor-inserter__quick-inserter-expand.components-button {\n  display: block;\n  background: #1e1e1e;\n  color: #fff;\n  width: 100%;\n  height: 44px;\n  border-radius: 0; }\n  .block-editor-inserter__quick-inserter-expand.components-button:hover {\n    color: #fff; }\n  .block-editor-inserter__quick-inserter-expand.components-button:focus:not(:disabled) {\n    box-shadow: inset 0 0 0 1.5px #1e1e1e, inset 0 0 0 2px #fff; }\n\n.block-editor-post-preview__dropdown {\n  display: none;\n  margin-left: 12px;\n  padding: 0; }\n\n.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize {\n  padding-right: 40px; }\n  .block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon {\n    padding-right: 8px; }\n\n.block-editor-post-preview__dropdown-content .components-popover__content {\n  overflow-y: visible; }\n\n.block-editor-post-preview__dropdown-content .components-menu-group + .components-menu-group {\n  border-top: 1px solid #ccc;\n  padding: 8px 12px;\n  margin-right: -12px;\n  margin-left: -12px; }\n\n@media (min-width: 600px) {\n  .editor-post-preview {\n    display: none; }\n  .block-editor-post-preview__dropdown {\n    display: flex; } }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-editor/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.block-editor-autocompleters__block .block-editor-block-icon {\n  margin-right: 8px; }\n\n.block-editor-block-alignment-matrix-toolbar__popover .components-popover__content {\n  min-width: 0;\n  width: auto; }\n  .block-editor-block-alignment-matrix-toolbar__popover .components-popover__content > div {\n    padding: 8px; }\n\n.block-editor-block-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 24px;\n  height: 24px; }\n  .block-editor-block-icon.has-colors svg {\n    fill: currentColor; }\n  .block-editor-block-icon svg {\n    min-width: 20px;\n    min-height: 20px;\n    max-width: 24px;\n    max-height: 24px; }\n\n.block-editor-block-inspector .components-base-control {\n  margin-bottom: 24px; }\n  .block-editor-block-inspector .components-base-control:last-child {\n    margin-bottom: 8px; }\n\n.block-editor-block-inspector .components-panel__body {\n  border: none;\n  border-top: 1px solid #f0f0f0; }\n\n.block-editor-block-inspector .block-editor-block-card {\n  padding: 16px; }\n\n.block-editor-block-inspector__no-blocks {\n  display: block;\n  font-size: 13px;\n  background: #fff;\n  padding: 32px 16px;\n  text-align: center; }\n\n.block-editor-block-list__layout .block-editor-block-list__block .reusable-block-edit-panel * {\n  z-index: 1; }\n\n.block-editor-block-styles .block-editor-block-list__block {\n  margin: 0; }\n\n/**\n * Notices & Block Selected/Hover Styles.\n */\n.block-editor-block-list__layout .block-editor-block-list__block {\n  position: relative;\n  overflow-wrap: break-word;\n  /**\n\t * Notices\n\t */\n  /**\n\t * Block Layout\n\t */ }\n  .block-editor-block-list__layout .block-editor-block-list__block .components-placeholder .components-with-notices-ui {\n    margin: -10px 0 12px 0; }\n  .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui {\n    margin: 0 0 12px 0;\n    width: 100%; }\n    .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice {\n      margin-left: 0;\n      margin-right: 0; }\n      .block-editor-block-list__layout .block-editor-block-list__block .components-with-notices-ui .components-notice .components-notice__content {\n        font-size: 13px; }\n  .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus {\n    outline: none; }\n    .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus::after {\n      position: absolute;\n      z-index: 1;\n      pointer-events: none;\n      content: \"\";\n      top: 1px;\n      bottom: 1px;\n      left: 1px;\n      right: 1px;\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n      border-radius: 1px; }\n      .is-dark-theme .block-editor-block-list__layout .block-editor-block-list__block:not([contenteditable]):focus::after {\n        box-shadow: 0 0 0 1.5px #fff; }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected) {\n    opacity: 0.5;\n    transition: opacity 0.1s linear; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected) {\n        transition-duration: 0s; } }\n    .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected):not(.is-focused) .block-editor-block-list__block, .block-editor-block-list__layout .block-editor-block-list__block.is-focus-mode:not(.is-multi-selected).is-focused {\n      opacity: 1; }\n\n.block-editor-block-list__layout .block-editor-block-list__block,\n.block-editor-block-list__layout .block-list-appender {\n  position: relative; }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-drop-target::before,\n  .block-editor-block-list__layout .block-list-appender.is-drop-target::before {\n    content: \"\";\n    position: absolute;\n    z-index: 0;\n    pointer-events: none;\n    transition: border-color 0.1s linear, border-style 0.1s linear, box-shadow 0.1s linear;\n    top: -14px;\n    right: 0;\n    left: 0;\n    border-top: 4px solid #007cba;\n    border-top: 4px solid var(--wp-admin-theme-color); }\n  .block-editor-block-list__layout .block-editor-block-list__block.is-drop-target.is-dropping-horizontally::before,\n  .block-editor-block-list__layout .block-list-appender.is-drop-target.is-dropping-horizontally::before {\n    top: 0;\n    bottom: 0;\n    left: -6px;\n    border-top: none;\n    border-left: 4px solid #007cba;\n    border-left: 4px solid var(--wp-admin-theme-color); }\n\n/**\n * Cross-Block Selection\n */\n.block-editor-block-list__layout {\n  position: relative; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n    position: absolute;\n    z-index: 1;\n    pointer-events: none;\n    content: \"\";\n    top: 1px;\n    bottom: 1px;\n    left: 1px;\n    right: 1px; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 1px;\n    transition: box-shadow 0.2s ease-out;\n    outline: 2px solid transparent; }\n    @media (prefers-reduced-motion: reduce) {\n      .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after,\n      .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after,\n      .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after,\n      .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n        transition-duration: 0s; } }\n    .is-dark-theme .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after, .is-dark-theme\n    .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered::after, .is-dark-theme\n    .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted::after, .is-dark-theme\n    .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected::after {\n      box-shadow: 0 0 0 1.5px #fff; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected .components-placeholder ::selection,\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered .components-placeholder ::selection,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-highlighted .components-placeholder ::selection,\n  .block-editor-block-list__layout .block-editor-block-list__block.is-multi-selected .components-placeholder ::selection {\n    background: transparent; }\n  .is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block.is-hovered:not(.is-selected)::after {\n    box-shadow: 0 0 0 1px #949494; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.has-child-selected {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 1.5px solid transparent; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::before {\n    content: \"\";\n    position: absolute;\n    z-index: 0;\n    pointer-events: none;\n    transition: border-color 0.1s linear, border-style 0.1s linear, box-shadow 0.1s linear;\n    right: 0;\n    left: 0;\n    top: -14px;\n    border-radius: 2px;\n    border-top: 4px solid #ccc; }\n  .is-block-moving-mode .block-editor-block-list__layout .block-editor-block-list__block.is-selected::after {\n    content: none; }\n  .is-block-moving-mode.can-insert-moving-block .block-editor-block-list__layout .block-editor-block-list__block.is-selected::before {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n\n.is-block-moving-mode.block-editor-block-list__block-selection-button {\n  opacity: 0;\n  font-size: 1px;\n  height: 1px;\n  padding: 0; }\n\n/**\n * Block styles and alignments\n */\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning {\n  min-height: 36px; }\n\n.block-editor-block-list__layout .block-editor-block-list__block::after {\n  content: \"\";\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  border-radius: 2px;\n  box-shadow: 0 0 0 1.5px transparent;\n  transition: box-shadow 0.1s ease-in; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__layout .block-editor-block-list__block::after {\n      transition-duration: 0s; } }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning > * {\n  pointer-events: none;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning .block-editor-warning {\n  pointer-events: all; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning::after {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  border-radius: 2px;\n  background-color: rgba(255, 255, 255, 0.4); }\n\n.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-multi-selected::after {\n  background-color: transparent; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.is-reusable > .block-editor-inner-blocks > .block-editor-block-list__layout.has-overlay::after {\n  display: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block.is-reusable > .block-editor-inner-blocks > .block-editor-block-list__layout.has-overlay .block-editor-block-list__layout.has-overlay::after {\n  display: block; }\n\n.is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block {\n  cursor: default; }\n\n.block-editor-block-list__layout .block-editor-block-list__block[data-clear=\"true\"] {\n  float: none; }\n\n.block-editor-block-list__layout .block-editor-block-list__block .block-editor-block-list__layout .block-editor-default-block-appender .block-editor-inserter {\n  left: auto;\n  right: 8px; }\n\n.block-editor-block-list__layout .wp-block {\n  margin-left: auto;\n  margin-right: auto; }\n\n.wp-block[data-align=\"left\"], .wp-block[data-align=\"right\"] {\n  width: 100%;\n  height: 0; }\n  .wp-block[data-align=\"left\"]::before, .wp-block[data-align=\"right\"]::before {\n    content: none; }\n\n.wp-block[data-align=\"left\"] > *,\n.wp-block[data-align=\"right\"] > * {\n  z-index: 21; }\n\n.wp-block[data-align=\"left\"] > * {\n  /*!rtl:begin:ignore*/\n  float: left;\n  margin-right: 2em;\n  /*!rtl:end:ignore*/ }\n\n.wp-block[data-align=\"right\"] > * {\n  /*!rtl:begin:ignore*/\n  float: right;\n  margin-left: 2em;\n  /*!rtl:end:ignore*/ }\n\n.wp-block[data-align=\"full\"], .wp-block[data-align=\"wide\"] {\n  clear: both; }\n\n/**\n * In-Canvas Inserter\n */\n.block-editor-block-list .block-editor-inserter {\n  margin: 8px;\n  cursor: move;\n  cursor: grab; }\n\n.block-editor-block-list__insertion-point {\n  position: relative;\n  z-index: 6;\n  margin-top: -14px; }\n\n.block-editor-block-list__insertion-point-indicator {\n  position: absolute;\n  top: calc(50% - 1px);\n  height: 1.5px;\n  left: 0;\n  right: 0;\n  background: #007cba;\n  background: var(--wp-admin-theme-color); }\n\n.block-editor-block-list__insertion-point-inserter {\n  display: none;\n  justify-content: center;\n  cursor: text; }\n  @media (min-width: 480px) {\n    .block-editor-block-list__insertion-point-inserter {\n      display: flex; } }\n  .block-editor-block-list__insertion-point-inserter.is-inserter-hidden .block-editor-inserter__toggle {\n    opacity: 0;\n    pointer-events: none; }\n\n.block-editor-block-list__block-popover-inserter {\n  position: absolute;\n  top: -9999em;\n  margin-bottom: 14px; }\n  .block-editor-block-list__block-popover-inserter.is-visible {\n    position: static; }\n\n.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon,\n.block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button.has-icon {\n  background: #1e1e1e;\n  border-radius: 2px;\n  color: #fff;\n  padding: 0;\n  min-width: 24px;\n  height: 24px; }\n  .block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-default-block-appender .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button.has-icon:hover,\n  .block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button.has-icon:hover {\n    color: #fff; }\n\n.block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button,\n.block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button {\n  animation: block-editor-inserter__toggle__fade-in-animation-delayed 0.3s ease;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__insertion-point-inserter .block-editor-inserter__toggle.components-button,\n    .block-editor-block-list__block-popover-inserter .block-editor-inserter__toggle.components-button {\n      animation-duration: 1ms; } }\n\n@keyframes block-editor-inserter__toggle__fade-in-animation-delayed {\n  0% {\n    opacity: 0; }\n  80% {\n    opacity: 0; }\n  100% {\n    opacity: 1; } }\n\n@keyframes block-editor-inserter__toggle__fade-in-animation {\n  from {\n    opacity: 0;\n    transform: scale(0); }\n  to {\n    opacity: 1;\n    transform: scale(1); } }\n\n.wp-block .block-list-appender .block-editor-inserter__toggle {\n  animation: block-editor-inserter__toggle__fade-in-animation 0.1s ease;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-block .block-list-appender .block-editor-inserter__toggle {\n      animation-duration: 1ms; } }\n\n.block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender {\n  display: none; }\n  .block-editor-block-list__block:not(.is-selected):not(.has-child-selected) .block-editor-default-block-appender .block-editor-inserter__toggle {\n    opacity: 0;\n    transform: scale(0); }\n\n.block-editor-block-list__block > .block-editor-block-list__insertion-point {\n  position: absolute;\n  top: -16px;\n  height: 28px;\n  bottom: auto;\n  left: 14px;\n  right: 14px; }\n\n.block-editor-block-list__block .block-editor-block-list__block-html-textarea {\n  display: block;\n  margin: 0;\n  width: 100%;\n  border: none;\n  outline: none;\n  box-shadow: none;\n  resize: none;\n  overflow: hidden;\n  font-family: Menlo, Consolas, monaco, monospace;\n  font-size: 15px;\n  line-height: 150%;\n  transition: padding 0.2s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-list__block .block-editor-block-list__block-html-textarea {\n      transition-duration: 0s; } }\n  .block-editor-block-list__block .block-editor-block-list__block-html-textarea:focus {\n    box-shadow: none; }\n\n/**\n * Block Toolbar when contextual.\n */\n.block-editor-block-contextual-toolbar {\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar-group,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__mover-switcher-container {\n    border-right-color: #1e1e1e; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__mover-switcher-container {\n    border-right-style: solid;\n    border-right-width: 1px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher__no-switcher-icon::before,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher__toggle::before {\n    width: 28px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-icon svg {\n    margin-left: 10px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher:last-child .block-editor-block-icon svg {\n    margin-left: auto; }\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .components-toolbar,\n  .block-editor-block-contextual-toolbar .block-editor-block-toolbar__block-switcher-wrapper .components-toolbar-group {\n    border-right: none; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover {\n    margin-left: -12px;\n    width: 36px; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal {\n      width: 48px; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n      min-width: 36px;\n      width: 36px; }\n      [draggable=\"true\"] .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n        cursor: grab; }\n        [draggable=\"true\"] .block-editor-block-contextual-toolbar .block-editor-block-mover .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button:active {\n          cursor: grabbing; }\n    .block-editor-block-contextual-toolbar .block-editor-block-mover.is-horizontal .components-button.has-icon.block-editor-block-mover-button.block-editor-block-mover-button {\n      min-width: 24px;\n      width: 24px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button > svg {\n    margin-left: 2px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button.is-up-button svg {\n    margin-top: 3px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button.is-down-button svg {\n    margin-bottom: 3px; }\n  .block-editor-block-contextual-toolbar .block-editor-block-mover:not(.is-horizontal) .block-editor-block-mover-button:focus::before {\n    left: 0 !important;\n    min-width: 0;\n    width: 28px; }\n\n/**\n * Block Label for Navigation/Selection Mode\n */\n.block-editor-block-list__block-selection-button {\n  display: block;\n  z-index: 22; }\n  .block-editor-block-list__block-selection-button .components-button {\n    font-size: 13px;\n    height: 46px;\n    padding: 12px 16px;\n    position: relative;\n    top: -1px;\n    box-shadow: 0 0 0 1px #1e1e1e;\n    border-radius: 1px;\n    background-color: #fff; }\n    .block-editor-block-list__block-selection-button .components-button:focus {\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n/**\n * Warnings.\n */\n.block-editor-block-list__block .block-editor-warning {\n  z-index: 5;\n  position: relative; }\n  .block-editor-block-list__block .block-editor-warning.block-editor-block-list__block-crash-warning {\n    margin-bottom: auto; }\n\n/**\n * Popovers.\n */\n.block-editor-block-list__insertion-point-popover.is-without-arrow {\n  z-index: 28;\n  position: absolute; }\n  .block-editor-block-list__insertion-point-popover.is-without-arrow .components-popover__content.components-popover__content {\n    background: none;\n    border: none;\n    box-shadow: none;\n    overflow-y: visible;\n    margin-left: 0; }\n\n.components-popover.block-editor-block-list__block-popover {\n  z-index: 31;\n  position: absolute; }\n  .components-popover.block-editor-block-list__block-popover .components-popover__content {\n    margin: 0 !important;\n    min-width: auto;\n    width: max-content;\n    background: none;\n    border: none;\n    box-shadow: none;\n    overflow-y: visible;\n    pointer-events: none; }\n    .components-popover.block-editor-block-list__block-popover .components-popover__content > * {\n      pointer-events: all; }\n    .components-popover.block-editor-block-list__block-popover .components-popover__content .block-editor-block-list__block-selection-button,\n    .components-popover.block-editor-block-list__block-popover .components-popover__content .block-editor-block-contextual-toolbar {\n      margin-bottom: 12px; }\n  .is-dragging-components-draggable .components-popover.block-editor-block-list__block-popover {\n    opacity: 0; }\n\n.is-dragging-components-draggable .components-tooltip {\n  display: none; }\n\n.block-editor-block-list__block .block-list-appender {\n  margin: 8px 0; }\n  .has-background .block-editor-block-list__block .block-list-appender {\n    margin: 20px 8px; }\n  .block-editor-block-list__block .block-list-appender .block-list-appender__toggle {\n    padding: 0;\n    opacity: 1;\n    transform: scale(1);\n    transition: all 0.1s ease; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-list__block .block-list-appender .block-list-appender__toggle {\n        transition-duration: 0s; } }\n\n.block-list-appender > .block-editor-inserter {\n  display: block; }\n\n.block-editor-block-list__block:not(.is-selected):not(.has-child-selected):not(.block-editor-block-list__layout) .block-editor-block-list__layout > .block-list-appender .block-list-appender__toggle {\n  opacity: 0;\n  transform: scale(0); }\n\n.block-editor-block-breadcrumb {\n  list-style: none;\n  padding: 0;\n  margin: 0; }\n  .block-editor-block-breadcrumb li {\n    display: inline-block;\n    margin: 0; }\n    .block-editor-block-breadcrumb li:not(:last-child)::after {\n      content: \"\\2192\"; }\n\n.block-editor-block-breadcrumb__button.components-button {\n  height: 24px;\n  line-height: 24px;\n  padding: 0;\n  position: relative; }\n  .block-editor-block-breadcrumb__button.components-button:hover:not(:disabled) {\n    text-decoration: underline;\n    box-shadow: none; }\n  .block-editor-block-breadcrumb__button.components-button:focus {\n    box-shadow: none; }\n  .block-editor-block-breadcrumb__button.components-button:focus::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n    border-radius: 2px;\n    top: 1px;\n    right: 1px;\n    bottom: 1px;\n    left: 1px;\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n.block-editor-block-breadcrumb__current {\n  cursor: default; }\n\n.block-editor-block-breadcrumb__button.components-button,\n.block-editor-block-breadcrumb__current {\n  color: #1e1e1e;\n  padding: 0 8px;\n  font-size: inherit; }\n\n.block-editor-block-card {\n  display: flex;\n  align-items: flex-start; }\n\n.block-editor-block-card__icon {\n  border: 1px solid #ccd0d4;\n  padding: 7px;\n  margin-right: 10px;\n  height: 36px;\n  width: 36px; }\n\n.block-editor-block-card__content {\n  flex-grow: 1; }\n\n.block-editor-block-card__title {\n  font-weight: 500; }\n  .block-editor-block-card__title.block-editor-block-card__title {\n    margin: 0 0 5px; }\n\n.block-editor-block-card__description {\n  font-size: 13px; }\n\n.block-editor-block-card .block-editor-block-icon {\n  margin-left: -2px;\n  margin-right: 10px;\n  padding: 0 3px;\n  width: 36px;\n  height: 24px; }\n\n/**\n * Invalid block comparison\n */\n.block-editor-block-compare {\n  overflow: auto;\n  height: auto; }\n  @media (min-width: 600px) {\n    .block-editor-block-compare {\n      max-height: 70%; } }\n\n.block-editor-block-compare__wrapper {\n  display: flex;\n  padding-bottom: 16px; }\n  .block-editor-block-compare__wrapper > div {\n    display: flex;\n    justify-content: space-between;\n    flex-direction: column;\n    width: 50%;\n    padding: 0 16px 0 0;\n    min-width: 200px; }\n    .block-editor-block-compare__wrapper > div button {\n      float: right; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__converted {\n    border-left: 1px solid #ddd;\n    padding-left: 15px;\n    padding-right: 0; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__html {\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 12px;\n    color: #1e1e1e;\n    border-bottom: 1px solid #ddd;\n    padding-bottom: 15px;\n    line-height: 1.7; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span {\n      background-color: #e6ffed;\n      padding-top: 3px;\n      padding-bottom: 3px; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__added {\n      background-color: #acf2bd; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__html span.block-editor-block-compare__removed {\n      background-color: #d94f4f; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__preview {\n    padding: 0;\n    padding-top: 14px; }\n    .block-editor-block-compare__wrapper .block-editor-block-compare__preview p {\n      font-size: 12px;\n      margin-top: 0; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__action {\n    margin-top: 14px; }\n  .block-editor-block-compare__wrapper .block-editor-block-compare__heading {\n    font-size: 1em;\n    font-weight: 400;\n    margin: 0.67em 0; }\n\n.block-editor-block-draggable-chip-wrapper {\n  position: absolute;\n  top: -60px; }\n\n.block-editor-block-draggable-chip {\n  background-color: #1e1e1e;\n  border-radius: 2px;\n  border: 1px solid #1e1e1e;\n  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);\n  color: #fff;\n  cursor: grabbing;\n  display: inline-flex;\n  height: 48px;\n  min-width: 72px;\n  padding: 0 12px;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none; }\n  .block-editor-block-draggable-chip svg {\n    fill: currentColor; }\n  .block-editor-block-draggable-chip .block-editor-block-draggable-chip__content {\n    margin: auto; }\n  .block-editor-block-draggable-chip .components-flex__item {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n\n.is-dragging.is-selected,\n.is-dragging.is-multi-selected {\n  display: none !important; }\n\n.block-editor-block-mobile-toolbar {\n  display: flex;\n  flex-direction: row;\n  border-right: 1px solid #ddd; }\n  .block-editor-block-mobile-toolbar .block-editor-block-mover-button {\n    width: 36px;\n    height: 36px;\n    border-radius: 2px;\n    padding: 3px;\n    margin: 0;\n    justify-content: center;\n    align-items: center; }\n    .block-editor-block-mobile-toolbar .block-editor-block-mover-button .dashicon {\n      margin: auto; }\n  .block-editor-block-mobile-toolbar .block-editor-block-mover {\n    display: flex;\n    margin-right: auto; }\n    .block-editor-block-mobile-toolbar .block-editor-block-mover .block-editor-block-mover-button {\n      float: left; }\n\n.block-editor-block-mover {\n  display: inline-flex;\n  flex-direction: row; }\n\n.block-editor-block-mover-button__description {\n  display: none; }\n\n.block-editor-block-mover-button.has-icon {\n  padding: 0; }\n\n.block-editor-block-mover .components-toolbar-group,\n.block-editor-block-mover .components-toolbar {\n  flex-direction: column;\n  flex: 1; }\n\n.block-editor-block-mover.is-horizontal .components-toolbar-group,\n.block-editor-block-mover.is-horizontal .components-toolbar {\n  flex-direction: row; }\n\n.block-editor-block-mover .block-editor-block-mover-button {\n  height: 24px;\n  width: 48px;\n  padding: 0 !important; }\n  .block-editor-block-mover .block-editor-block-mover-button::before {\n    left: 8px !important;\n    right: 8px !important; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-up-button svg,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-up-button svg {\n  margin-bottom: -8px; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-up-button::before,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-up-button::before {\n  bottom: 0;\n  height: calc(100% - 8px); }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-down-button svg,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-down-button svg {\n  margin-top: -8px; }\n\n.block-editor-block-mover .components-toolbar-group .block-editor-block-mover-button.is-down-button::before,\n.block-editor-block-mover .components-toolbar .block-editor-block-mover-button.is-down-button::before {\n  top: 0;\n  height: calc(100% - 8px); }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.has-icon {\n  height: 48px;\n  width: 24px;\n  min-width: 24px;\n  padding-left: 0;\n  padding-right: 0; }\n  .block-editor-block-mover.is-horizontal .block-editor-block-mover-button.has-icon::before {\n    top: 8px;\n    bottom: 8px;\n    min-width: 0;\n    width: auto;\n    height: auto; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-up-button.has-icon svg {\n  margin-left: 0;\n  margin-right: -8px;\n  margin-bottom: 0; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-up-button.has-icon::before {\n  left: 8px !important;\n  right: 0 !important; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-down-button.has-icon svg {\n  margin-left: -8px;\n  margin-right: 0;\n  margin-top: 0; }\n\n.block-editor-block-mover.is-horizontal .block-editor-block-mover-button.is-down-button.has-icon::before {\n  left: 0 !important;\n  right: 8px !important; }\n\n.block-editor-block-navigation__container {\n  padding: 7px; }\n\n.block-editor-block-navigation__label {\n  margin: 0 0 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-block-navigation__container {\n  padding: 7px; }\n\n.block-editor-block-navigation-tree {\n  width: 100%;\n  border-collapse: collapse;\n  padding: 0;\n  margin: 0; }\n\n.block-editor-block-navigation-leaf {\n  position: relative; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block-contents {\n    display: flex;\n    align-items: center;\n    width: calc(100% - 0.8em);\n    height: auto;\n    padding: 12px 6px;\n    margin-top: auto;\n    margin-bottom: auto;\n    text-align: left;\n    color: #40464d;\n    border-radius: 2px; }\n    .components-modal__content .block-editor-block-navigation-leaf .block-editor-block-navigation-block-contents {\n      padding-left: 0;\n      padding-right: 0; }\n  .block-editor-block-navigation-leaf.is-visible .block-editor-block-navigation-block-contents {\n    opacity: 1;\n    animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n    animation-fill-mode: forwards; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-navigation-leaf.is-visible .block-editor-block-navigation-block-contents {\n        animation-duration: 1ms; } }\n  .block-editor-block-navigation-leaf .block-editor-block-icon {\n    align-self: flex-start;\n    margin-right: 6px; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__contents-cell {\n    padding-top: 0;\n    padding-bottom: 0; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell {\n    width: 36px;\n    opacity: 0;\n    vertical-align: top; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n      .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell {\n        transition-duration: 0s; } }\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell.is-visible,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell.is-visible {\n      opacity: 1;\n      animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n      animation-fill-mode: forwards; }\n      @media (prefers-reduced-motion: reduce) {\n        .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell.is-visible,\n        .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell.is-visible {\n          animation-duration: 1ms; } }\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell .components-button.has-icon,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell,\n    .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell .components-button.has-icon {\n      width: 24px;\n      min-width: 24px;\n      padding: 0; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__menu-cell {\n    padding-top: 8px; }\n  .block-editor-block-navigation-leaf .block-editor-block-navigation-block__mover-cell-alignment-wrapper {\n    display: flex;\n    height: 100%;\n    flex-direction: column;\n    align-items: center; }\n  .block-editor-block-navigation-leaf .block-editor-block-mover-button {\n    position: relative;\n    width: 36px;\n    height: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button svg {\n      position: relative;\n      height: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-up-button {\n      align-items: flex-end; }\n      .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-up-button svg {\n        bottom: -4px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-down-button {\n      align-items: flex-start; }\n      .block-editor-block-navigation-leaf .block-editor-block-mover-button.is-down-button svg {\n        top: -4px; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus:enabled {\n      box-shadow: none;\n      outline: none; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus {\n      box-shadow: none;\n      outline: none; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button:focus::before {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n      outline: 2px solid transparent; }\n    .block-editor-block-navigation-leaf .block-editor-block-mover-button::before {\n      content: \"\";\n      position: absolute;\n      display: block;\n      border-radius: 2px;\n      height: 16px;\n      min-width: 100%;\n      left: 0;\n      right: 0;\n      animation: components-button__appear-animation 0.1s ease;\n      animation-fill-mode: forwards; }\n      @media (prefers-reduced-motion: reduce) {\n        .block-editor-block-navigation-leaf .block-editor-block-mover-button::before {\n          animation-duration: 1ms; } }\n  .block-editor-block-navigation-leaf .block-editor-inserter__toggle {\n    background: #1e1e1e;\n    color: #fff;\n    height: 24px;\n    margin: 6px 6px 6px 1px;\n    min-width: 24px; }\n    .block-editor-block-navigation-leaf .block-editor-inserter__toggle:active {\n      color: #fff; }\n\n.block-editor-block-navigation-block-slot__description,\n.block-editor-block-navigation-block-select-button__description,\n.block-editor-block-navigation-appender__description {\n  display: none; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-appender__container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-appender__container {\n  display: flex; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigation-block__contents-container,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigation-block__contents-container {\n  min-height: 56px; }\n\n.block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line,\n.block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line {\n  position: relative;\n  flex-shrink: 0;\n  width: 24px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line:first-child,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line:first-child {\n    width: 18px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item {\n    margin-right: 6px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line::before,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line::before {\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 1px;\n    bottom: -2px;\n    right: -1px;\n    border-right: 2px solid #a2aab2; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.is-terminated::before,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.is-terminated::before {\n    border-color: transparent; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item.is-last-row,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row {\n    height: 26px; }\n  .block-editor-block-navigation-block__contents-cell .block-editor-block-navigator-descender-line.has-item::after,\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item::after {\n    content: \"\";\n    display: block;\n    position: absolute;\n    top: 26px;\n    left: 100%;\n    width: 5px;\n    border-bottom: 2px solid #a2aab2; }\n\n.block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row {\n  height: 16px; }\n  .block-editor-block-navigation-appender__cell .block-editor-block-navigator-descender-line.has-item.is-last-row::after {\n    top: 100%; }\n\n.block-editor-block-parent-selector {\n  background: #fff;\n  border-radius: 2px; }\n  .block-editor-block-parent-selector .block-editor-block-parent-selector__button {\n    width: 48px;\n    height: 48px;\n    border: 1px solid #1e1e1e;\n    border-radius: 2px; }\n\n.block-editor-block-patterns-list__item {\n  border-radius: 2px;\n  cursor: pointer;\n  margin-top: 16px;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  border: 1px solid transparent; }\n  .block-editor-block-patterns-list__item:hover {\n    border: 1px solid #007cba;\n    border: 1px solid var(--wp-admin-theme-color); }\n  .block-editor-block-patterns-list__item:focus {\n    box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-block-patterns-list__item.is-placeholder {\n    min-height: 100px; }\n\n.block-editor-block-patterns-list__item-title {\n  padding: 4px;\n  font-size: 12px;\n  text-align: center; }\n\n.block-editor-block-preview__container {\n  position: relative;\n  width: 100%;\n  overflow: hidden; }\n  .block-editor-block-preview__container.editor-styles-wrapper {\n    padding: 0;\n    margin: 0; }\n\n.block-editor-block-preview__content {\n  position: absolute;\n  top: 0;\n  left: 0;\n  transform-origin: top left;\n  text-align: initial;\n  margin: 0;\n  overflow: visible;\n  min-height: auto; }\n  .block-editor-block-preview__content .block-editor-block-list__insertion-point,\n  .block-editor-block-preview__content .block-editor-block-drop-zone,\n  .block-editor-block-preview__content .reusable-block-indicator,\n  .block-editor-block-preview__content .block-list-appender {\n    display: none; }\n  .block-editor-block-preview__content .block-editor-block-list__layout.is-root-container {\n    padding-left: 0;\n    padding-right: 0; }\n    .block-editor-block-preview__content .block-editor-block-list__layout.is-root-container > .wp-block[data-align=\"full\"] {\n      margin-left: 0;\n      margin-right: 0; }\n\n.block-editor-block-settings-menu__popover .components-dropdown-menu__menu {\n  padding: 0; }\n\n.block-editor-block-styles {\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: space-between; }\n\n.block-editor-block-styles__item {\n  width: calc(50% - 4px);\n  margin: 4px 0;\n  flex-shrink: 0;\n  cursor: pointer;\n  overflow: hidden;\n  border-radius: 2px;\n  padding: 6px;\n  display: flex;\n  flex-direction: column; }\n  .block-editor-block-styles__item:focus {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-block-styles__item:hover .block-editor-block-styles__item-preview {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n  .block-editor-block-styles__item.is-active .block-editor-block-styles__item-label {\n    font-weight: bold; }\n  .block-editor-block-styles__item.is-active .block-editor-block-styles__item-preview {\n    border: 2px solid #1e1e1e; }\n\n.block-editor-block-styles__item-preview {\n  outline: 1px solid transparent;\n  padding: 0;\n  border-radius: 2px;\n  display: flex;\n  overflow: hidden;\n  background: #fff;\n  align-items: center;\n  flex-grow: 1;\n  min-height: 80px; }\n\n.block-editor-block-switcher__styles__menugroup {\n  position: relative; }\n\n.block-editor-block-styles__item-label {\n  text-align: center;\n  padding: 4px 0; }\n\n.block-editor-block-switcher {\n  position: relative; }\n\n.block-editor-block-switcher__no-switcher-icon,\n.block-editor-block-switcher__toggle {\n  position: relative; }\n\n.components-button.block-editor-block-switcher__toggle,\n.components-button.block-editor-block-switcher__no-switcher-icon {\n  margin: 0;\n  display: block;\n  height: 48px; }\n  .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,\n  .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon {\n    margin: auto; }\n\n.components-button.block-editor-block-switcher__no-switcher-icon {\n  width: 48px; }\n  .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-blocks-icon {\n    margin-right: auto;\n    margin-left: auto; }\n\n.components-button.block-editor-block-switcher__no-switcher-icon:disabled {\n  opacity: 1; }\n  .components-button.block-editor-block-switcher__no-switcher-icon:disabled,\n  .components-button.block-editor-block-switcher__no-switcher-icon:disabled .block-editor-block-icon.has-colors {\n    color: #1e1e1e !important; }\n\n.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon,\n.block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon {\n  padding: 0; }\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon .block-editor-block-icon {\n    height: 100%;\n    position: relative;\n    margin: 0 auto;\n    display: flex;\n    align-items: center; }\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__no-switcher-icon.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar-group .components-button.block-editor-block-switcher__toggle.has-icon.has-icon::before,\n  .block-editor-block-toolbar .components-toolbar .components-button.block-editor-block-switcher__toggle.has-icon.has-icon::before {\n    top: 8px;\n    right: 8px;\n    bottom: 8px;\n    left: 8px; }\n\n.components-popover.block-editor-block-switcher__popover .components-popover__content {\n  min-width: 300px; }\n\n.components-popover.block-editor-block-switcher__popover .components-popover__content > div {\n  min-width: auto;\n  display: flex;\n  background: #fff;\n  padding: 0; }\n  .components-popover.block-editor-block-switcher__popover .components-popover__content > div .components-menu-group {\n    padding: 16px;\n    margin: 0; }\n\n.block-editor-block-switcher__popover .components-popover__content .block-editor-block-styles {\n  margin: 0 -3px; }\n\n.block-editor-block-switcher__popover .components-popover__content .components-panel__body {\n  border: 0;\n  position: relative;\n  z-index: 1; }\n\n.block-editor-block-switcher__popover .components-popover__content .components-panel__body + .components-panel__body {\n  border-top: 1px solid #f0f0f0; }\n\n.block-editor-block-switcher__popover__preview__parent .block-editor-block-switcher__popover__preview__container {\n  position: absolute;\n  top: -12px;\n  left: calc(100% + 32px); }\n\n.block-editor-block-switcher__preview__popover {\n  display: none; }\n  .block-editor-block-switcher__preview__popover.components-popover {\n    margin-left: 4px;\n    margin-top: 11px; }\n  @media (min-width: 782px) {\n    .block-editor-block-switcher__preview__popover {\n      display: block; } }\n  .block-editor-block-switcher__preview__popover .components-popover__content {\n    box-shadow: none;\n    border: 1px solid #1e1e1e;\n    background: #fff;\n    border-radius: 2px; }\n  .block-editor-block-switcher__preview__popover .block-editor-block-switcher__preview {\n    width: 300px;\n    height: auto;\n    padding: 16px; }\n\n.block-editor-block-switcher__preview-title {\n  margin-bottom: 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon {\n  height: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon {\n  width: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-icon,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-icon,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform {\n  width: 48px;\n  height: 48px; }\n\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__no-switcher-icon .block-editor-block-switcher__transform,\n.block-editor-block-contextual-toolbar .components-button.block-editor-block-switcher__toggle .block-editor-block-switcher__transform {\n  padding: 12px; }\n\n.block-editor-block-types-list {\n  list-style: none;\n  padding: 4px;\n  margin-left: -4px;\n  margin-right: -4px;\n  overflow: hidden;\n  display: flex;\n  flex-wrap: wrap; }\n\n.block-editor-block-variation-picker .components-placeholder__instructions {\n  margin-bottom: 0; }\n\n.block-editor-block-variation-picker .components-placeholder__fieldset {\n  flex-direction: column; }\n\n.block-editor-block-variation-picker.has-many-variations .components-placeholder__fieldset {\n  max-width: 90%; }\n\n.block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations {\n  display: flex;\n  justify-content: flex-start;\n  flex-direction: row;\n  flex-wrap: wrap;\n  width: 100%;\n  margin: 16px 0;\n  padding: 0;\n  list-style: none; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations > li {\n    list-style: none;\n    margin: 8px 8px 0 0;\n    flex-shrink: 1;\n    max-width: 100px; }\n    .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations > li button {\n      display: flex; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation {\n    padding: 8px; }\n  .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations .block-editor-block-variation-picker__variation-label {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 12px;\n    display: block;\n    margin-right: 12px;\n    text-align: center; }\n\n.block-editor-block-variation-picker__variation {\n  width: 100%; }\n  .block-editor-block-variation-picker__variation.components-button.has-icon {\n    justify-content: center;\n    width: auto; }\n    .block-editor-block-variation-picker__variation.components-button.has-icon.is-secondary {\n      background-color: #fff; }\n  .block-editor-block-variation-picker__variation.components-button {\n    height: auto;\n    padding: 0; }\n  .block-editor-block-variation-picker__variation::before {\n    content: \"\";\n    padding-bottom: 100%; }\n  .block-editor-block-variation-picker__variation:first-child {\n    margin-left: 0; }\n  .block-editor-block-variation-picker__variation:last-child {\n    margin-right: 0; }\n\n.block-editor-button-block-appender {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 8px;\n  width: 100%;\n  height: auto;\n  color: #1e1e1e;\n  box-shadow: inset 0 0 0 1px #1e1e1e; }\n  .block-editor-button-block-appender:hover {\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); }\n  .block-editor-button-block-appender:focus {\n    box-shadow: inset 0 0 0 2px #007cba;\n    box-shadow: inset 0 0 0 2px var(--wp-admin-theme-color); }\n  .block-editor-button-block-appender:active {\n    color: #000; }\n  .block-editor-button-block-appender.block-list-appender__toggle {\n    display: flex;\n    flex-direction: row;\n    color: #1e1e1e;\n    box-shadow: none;\n    height: 24px;\n    padding: 0;\n    margin-left: 8px; }\n    .block-editor-button-block-appender.block-list-appender__toggle:active {\n      color: #fff; }\n    .block-editor-button-block-appender.block-list-appender__toggle > svg {\n      width: 24px;\n      background-color: #1e1e1e;\n      color: #fff;\n      border-radius: 2px; }\n\n.block-editor-color-gradient-control__color-indicator {\n  margin-bottom: 8px; }\n\n.block-editor-color-gradient-control__button-tabs {\n  display: block;\n  margin-bottom: 8px; }\n\n.block-editor-panel-color-gradient-settings .component-color-indicator {\n  vertical-align: text-bottom; }\n\n.block-editor-panel-color-gradient-settings__panel-title .component-color-indicator {\n  display: inline-block; }\n\n.block-editor-panel-color-gradient-settings.is-opened .block-editor-panel-color-gradient-settings__panel-title .component-color-indicator {\n  display: none; }\n\n.block-editor-contrast-checker > .components-notice {\n  margin: 0; }\n\n.block-editor-default-block-appender {\n  clear: both;\n  margin-left: auto;\n  margin-right: auto;\n  position: relative; }\n  .block-editor-default-block-appender[data-root-client-id=\"\"] .block-editor-default-block-appender__content:hover {\n    outline: 1px solid transparent; }\n  .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n    font-family: inherit;\n    font-size: inherit;\n    border: none;\n    background: none;\n    box-shadow: none;\n    display: block;\n    cursor: text;\n    width: 100%;\n    outline: 1px solid transparent;\n    transition: 0.2s outline;\n    resize: none;\n    margin-top: 28px;\n    margin-bottom: 28px;\n    padding: 0 50px 0 0;\n    color: rgba(30, 30, 30, 0.62); }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n        transition-duration: 0s; } }\n    .is-dark-theme .block-editor-default-block-appender textarea.block-editor-default-block-appender__content {\n      color: rgba(255, 255, 255, 0.65); }\n  .block-editor-default-block-appender .components-drop-zone__content-icon {\n    display: none; }\n\n.block-editor-default-block-appender__content {\n  line-height: 1.8; }\n\n.block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter,\n.block-editor-default-block-appender .block-editor-inserter {\n  position: absolute;\n  top: 0;\n  height: 32px; }\n  .block-editor-block-list__empty-block-inserter.block-editor-block-list__empty-block-inserter .block-editor-inserter__toggle,\n  .block-editor-default-block-appender .block-editor-inserter .block-editor-inserter__toggle {\n    margin-right: 0; }\n\n.block-editor-block-list__empty-block-inserter,\n.block-editor-default-block-appender .block-editor-inserter {\n  right: 8px; }\n  @media (min-width: 600px) {\n    .block-editor-block-list__empty-block-inserter,\n    .block-editor-default-block-appender .block-editor-inserter {\n      display: flex;\n      height: 100%; } }\n  .block-editor-block-list__empty-block-inserter:disabled,\n  .block-editor-default-block-appender .block-editor-inserter:disabled {\n    display: none; }\n\n@media (min-width: 600px) {\n  .block-editor-default-block-appender .block-editor-inserter {\n    align-items: center; } }\n\n.block-editor-link-control {\n  position: relative;\n  min-width: 360px; }\n  .components-popover__content .block-editor-link-control {\n    min-width: auto;\n    width: 90vw;\n    max-width: 360px; }\n\n.block-editor-link-control__search-input-wrapper {\n  position: relative; }\n\n.block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  width: calc(100% - 32px);\n  display: block;\n  padding: 11px 16px;\n  padding-right: 36px;\n  margin: 16px;\n  position: relative;\n  border: 1px solid #ddd;\n  border-radius: 2px; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.block-editor-link-control .block-editor-link-control__search-input .components-base-control__field {\n  margin-bottom: 0; }\n\n.block-editor-link-control__search-error {\n  margin: -8px 16px 16px; }\n\n.block-editor-link-control__search-actions {\n  position: absolute;\n  /*\n\t * Actions must be positioned on top of URLInput, since the input will grow\n\t * when suggestions are rendered.\n\t *\n\t * Compensate for:\n\t *  - Input margin ($grid-unit-20)\n\t *  - Border (1px)\n\t *  - Vertically, for the difference in height between the input (40px) and\n\t *    the icon buttons.\n\t *  - Horizontally, pad to the minimum of: default input padding, or the\n\t *    equivalent of the vertical padding.\n\t */\n  top: 19px;\n  right: 19px; }\n\n.block-editor-link-control__search-results-wrapper {\n  position: relative;\n  margin-top: -15px; }\n  .block-editor-link-control__search-results-wrapper::before, .block-editor-link-control__search-results-wrapper::after {\n    content: \"\";\n    position: absolute;\n    left: -1px;\n    right: 16px;\n    display: block;\n    pointer-events: none;\n    z-index: 100; }\n  .block-editor-link-control__search-results-wrapper::before {\n    height: 8px;\n    top: 0;\n    bottom: auto;\n    background: linear-gradient(to bottom, white 0%, rgba(255, 255, 255, 0) 100%); }\n  .block-editor-link-control__search-results-wrapper::after {\n    height: 16px;\n    bottom: 0;\n    top: auto;\n    background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, white 100%); }\n\n.block-editor-link-control__search-results-label {\n  padding: 15px 30px 0 30px;\n  display: block;\n  font-size: 1.1em; }\n\n.block-editor-link-control__search-results {\n  margin: 0;\n  padding: 8px 16px 8px;\n  max-height: 200px;\n  overflow-y: auto; }\n  .block-editor-link-control__search-results.is-loading {\n    opacity: 0.2; }\n\n.block-editor-link-control__search-item {\n  position: relative;\n  display: flex;\n  align-items: center;\n  font-size: 13px;\n  cursor: pointer;\n  background: #fff;\n  width: 100%;\n  border: none;\n  text-align: left;\n  padding: 10px 15px;\n  border-radius: 5px;\n  height: auto; }\n  .block-editor-link-control__search-item:hover, .block-editor-link-control__search-item:focus {\n    background-color: #ddd; }\n  .block-editor-link-control__search-item:focus:not(:disabled) {\n    box-shadow: 0 0 0 1.5px #007cba inset;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color) inset; }\n  .block-editor-link-control__search-item.is-selected {\n    background: #f0f0f0; }\n    .block-editor-link-control__search-item.is-selected .block-editor-link-control__search-item-type {\n      background: #fff; }\n  .block-editor-link-control__search-item.is-current {\n    background: transparent;\n    border: 0;\n    width: 100%;\n    cursor: default;\n    padding: 16px;\n    padding-left: 24px; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-header {\n    display: block;\n    margin-right: 24px;\n    overflow: hidden;\n    white-space: nowrap; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-icon {\n    margin-right: 1em;\n    min-width: 24px; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-info,\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title {\n    max-width: 230px;\n    overflow: hidden;\n    text-overflow: ellipsis; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark {\n    color: #1e1e1e; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-title {\n    display: block;\n    margin-bottom: 0.2em;\n    font-weight: 500; }\n    .block-editor-link-control__search-item .block-editor-link-control__search-item-title mark {\n      font-weight: 700;\n      color: #000;\n      background-color: transparent; }\n    .block-editor-link-control__search-item .block-editor-link-control__search-item-title span {\n      font-weight: normal; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-info {\n    display: block;\n    color: #6c7781;\n    font-size: 0.9em;\n    line-height: 1.3; }\n  .block-editor-link-control__search-item .block-editor-link-control__search-item-type {\n    display: block;\n    padding: 3px 8px;\n    margin-left: auto;\n    font-size: 0.9em;\n    background-color: #f0f0f0;\n    border-radius: 2px; }\n\n.block-editor-link-control__loading {\n  margin: 16px;\n  display: flex;\n  align-items: center; }\n  .block-editor-link-control__loading .components-spinner {\n    margin-top: 0; }\n\n.components-button + .block-editor-link-control__search-create {\n  margin-top: 20px;\n  overflow: visible;\n  padding: 12px 15px; }\n  .components-button + .block-editor-link-control__search-create::before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    left: 0;\n    display: block;\n    width: 100%;\n    border-top: 1px solid #ddd; }\n\n.block-editor-link-control__search-results div[role=\"menu\"] > .block-editor-link-control__search-item.block-editor-link-control__search-item {\n  padding: 10px; }\n\n.block-editor-link-control__settings {\n  border-top: 1px solid #ddd;\n  margin: 0;\n  padding: 16px 24px; }\n  .block-editor-link-control__settings :last-child {\n    margin-bottom: 0; }\n\n.block-editor-link-control__setting {\n  margin-bottom: 16px; }\n  .block-editor-link-control__setting :last-child {\n    margin-bottom: 0; }\n\n.block-editor-link-control .block-editor-link-control__search-input .components-spinner {\n  display: block; }\n  .block-editor-link-control .block-editor-link-control__search-input .components-spinner.components-spinner {\n    position: absolute;\n    left: auto;\n    bottom: auto;\n    /*\n\t\t * Position spinner to the left of the actions.\n\t\t *\n\t\t * Compensate for:\n\t\t *  - Input margin ($grid-unit-20)\n\t\t *  - Border (1px)\n\t\t *  - Vertically, for the difference in height between the input (40px)\n\t\t *    and the spinner.\n\t\t *  - Horizontally, adjust for the width occupied by the icon buttons,\n\t\t *    then artificially create spacing that mimics as if the spinner\n\t\t *    were center-padded to the same width as an icon button.\n\t\t */\n    top: 28px;\n    right: 62px; }\n\n.block-editor-link-control__search-item-action {\n  margin-left: auto;\n  flex-shrink: 0; }\n\n.block-editor-line-height-control {\n  margin-bottom: 24px; }\n  .block-editor-line-height-control input {\n    display: block;\n    max-width: 60px; }\n\n.block-editor-image-size-control {\n  margin-bottom: 1em; }\n  .block-editor-image-size-control .block-editor-image-size-control__row {\n    display: flex;\n    justify-content: space-between; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width,\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height {\n      margin-bottom: 0.5em; }\n      .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width input,\n      .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height input {\n        line-height: 1.25; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__width {\n      margin-right: 5px; }\n    .block-editor-image-size-control .block-editor-image-size-control__row .block-editor-image-size-control__height {\n      margin-left: 5px; }\n\n.block-editor-block-list__layout.has-overlay::after {\n  content: \"\";\n  position: absolute;\n  top: -14px;\n  right: -14px;\n  bottom: -14px;\n  left: -14px;\n  z-index: 60; }\n\n[data-align=\"full\"] .has-overlay::after {\n  right: 0;\n  left: 0; }\n\n.block-editor-block-types-list__list-item {\n  display: block;\n  width: 33.33%;\n  padding: 0;\n  margin: 0; }\n\n.components-button.block-editor-block-types-list__item {\n  display: flex;\n  flex-direction: column;\n  width: 100%;\n  font-size: 13px;\n  color: #32373c;\n  padding: 8px;\n  align-items: stretch;\n  justify-content: center;\n  cursor: pointer;\n  background: transparent;\n  word-break: break-word;\n  border-radius: 2px;\n  border: 1px solid transparent;\n  transition: all 0.05s ease-in-out;\n  position: relative;\n  height: auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-button.block-editor-block-types-list__item {\n      transition-duration: 0s; } }\n  .components-button.block-editor-block-types-list__item:disabled {\n    opacity: 0.6;\n    cursor: default; }\n  .components-button.block-editor-block-types-list__item:not(:disabled):hover {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    color: #007cba !important;\n    color: var(--wp-admin-theme-color) !important; }\n  .components-button.block-editor-block-types-list__item:not(:disabled).is-active {\n    color: #fff;\n    background: #1e1e1e;\n    outline: 2px solid transparent;\n    outline-offset: -2px; }\n\n.block-editor-block-types-list__item-icon {\n  padding: 12px 20px;\n  border-radius: 2px;\n  color: #1e1e1e;\n  transition: all 0.05s ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-types-list__item-icon {\n      transition-duration: 0s; } }\n  .block-editor-block-types-list__item-icon .block-editor-block-icon {\n    margin-left: auto;\n    margin-right: auto; }\n  .block-editor-block-types-list__item-icon svg {\n    transition: all 0.15s ease-out; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-block-types-list__item-icon svg {\n        transition-duration: 0s; } }\n\n.block-editor-block-types-list__item-title {\n  padding: 4px 2px 8px;\n  font-size: 12px; }\n\n.modal-open .block-editor-media-replace-flow__options {\n  display: none; }\n\n.block-editor-media-replace-flow__options .components-popover__content > div {\n  padding-top: 16px; }\n\n.block-editor-media-replace-flow__indicator {\n  margin-left: 4px; }\n\n.block-editor-media-replace-flow__media-upload-menu {\n  margin-bottom: 16px; }\n\n.block-editor-media-flow__url-input .block-editor-media-replace-flow__image-url-label {\n  top: 16px; }\n\n.block-editor-media-flow__url-input .block-editor-link-control {\n  margin-top: -16px;\n  width: auto; }\n  .block-editor-media-flow__url-input .block-editor-link-control .components-base-control .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item-title {\n    max-width: 180px;\n    margin-top: 16px; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-item.is-current {\n    width: auto;\n    padding: 0; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-input.block-editor-link-control__search-input input[type=\"text\"] {\n    margin: 16px 0 0 0;\n    width: 100%; }\n  .block-editor-media-flow__url-input .block-editor-link-control .block-editor-link-control__search-actions {\n    right: 4px; }\n\n.block-editor-media-flow__error {\n  padding: 0 20px 20px 20px;\n  max-width: 255px; }\n  .block-editor-media-flow__error .components-with-notices-ui {\n    max-width: 255px; }\n    .block-editor-media-flow__error .components-with-notices-ui .components-notice__content {\n      overflow: hidden;\n      word-wrap: break-word; }\n    .block-editor-media-flow__error .components-with-notices-ui .components-notice__dismiss {\n      position: absolute;\n      right: 10px; }\n\n.block-editor-media-placeholder__url-input-container .block-editor-media-placeholder__button {\n  margin-bottom: 0; }\n\n.block-editor-media-placeholder__url-input-form {\n  display: flex; }\n  .block-editor-media-placeholder__url-input-form input[type=\"url\"].block-editor-media-placeholder__url-input-field {\n    width: 100%;\n    flex-grow: 1;\n    border: none;\n    border-radius: 0;\n    margin: 2px; }\n    @media (min-width: 600px) {\n      .block-editor-media-placeholder__url-input-form input[type=\"url\"].block-editor-media-placeholder__url-input-field {\n        width: 300px; } }\n\n.block-editor-media-placeholder__url-input-submit-button {\n  flex-shrink: 1; }\n\n.block-editor-media-placeholder__button {\n  margin-bottom: 0.5rem; }\n\n.block-editor-media-placeholder__cancel-button.is-link {\n  margin: 1em;\n  display: block; }\n\n.block-editor-media-placeholder.is-appender {\n  min-height: 0; }\n  .block-editor-media-placeholder.is-appender:hover {\n    cursor: pointer;\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n.block-editor-multi-selection-inspector__card {\n  display: flex;\n  align-items: flex-start;\n  padding: 16px; }\n\n.block-editor-multi-selection-inspector__card-content {\n  flex-grow: 1; }\n\n.block-editor-multi-selection-inspector__card-title {\n  font-weight: 500;\n  margin-bottom: 5px; }\n\n.block-editor-multi-selection-inspector__card-description {\n  font-size: 13px; }\n\n.block-editor-multi-selection-inspector__card .block-editor-block-icon {\n  margin-left: -2px;\n  margin-right: 10px;\n  padding: 0 3px;\n  width: 36px;\n  height: 24px; }\n\n.block-editor .block-editor-plain-text {\n  box-shadow: none;\n  font-family: inherit;\n  font-size: inherit;\n  color: inherit;\n  line-height: inherit;\n  border: none;\n  padding: 0;\n  margin: 0;\n  width: 100%; }\n\n.block-editor-responsive-block-control {\n  margin-bottom: 28px;\n  border-bottom: 1px solid #d7dade;\n  padding-bottom: 14px; }\n  .block-editor-responsive-block-control:last-child {\n    padding-bottom: 0;\n    border-bottom: 0; }\n\n.block-editor-responsive-block-control__title {\n  margin: 0;\n  margin-bottom: 0.6em;\n  margin-left: -3px; }\n\n.block-editor-responsive-block-control__label {\n  font-weight: 600;\n  margin-bottom: 0.6em;\n  margin-left: -3px; }\n\n.block-editor-responsive-block-control__inner {\n  margin-left: -1px; }\n\n.block-editor-responsive-block-control__toggle {\n  margin-left: 1px; }\n\n.block-editor-responsive-block-control .components-base-control__help {\n  border: 0;\n  clip: rect(1px, 1px, 1px, 1px);\n  -webkit-clip-path: inset(50%);\n          clip-path: inset(50%);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n  word-wrap: normal !important; }\n\n.block-editor-format-toolbar .components-dropdown-menu__toggle {\n  justify-content: center; }\n\n.block-editor-rich-text__editable > p:first-child {\n  margin-top: 0; }\n\n.block-editor-rich-text__editable [data-rich-text-placeholder] {\n  pointer-events: none; }\n\n.block-editor-rich-text__editable [data-rich-text-placeholder]::after {\n  content: attr(data-rich-text-placeholder);\n  opacity: 0.62; }\n\n.block-editor-rich-text__editable:focus {\n  outline: none; }\n  .block-editor-rich-text__editable:focus [data-rich-text-format-boundary] {\n    border-radius: 2px; }\n  .block-editor-rich-text__editable:focus:not(.keep-placeholder-on-focus) [data-rich-text-placeholder]::after {\n    display: none; }\n\nfigcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before {\n  opacity: 0.8; }\n\n.components-popover.block-editor-rich-text__inline-format-toolbar {\n  z-index: 99998; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-popover__content {\n    width: auto;\n    min-width: auto;\n    margin-bottom: 8px;\n    box-shadow: none;\n    border: 1px solid #1e1e1e;\n    border-radius: 2px;\n    background-color: #fff; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar-group,\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar {\n    border: none; }\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-toolbar__control,\n  .components-popover.block-editor-rich-text__inline-format-toolbar .components-dropdown-menu__toggle {\n    min-width: 48px;\n    min-height: 48px;\n    padding-left: 12px;\n    padding-right: 12px; }\n\n.block-editor-skip-to-selected-block {\n  position: absolute;\n  top: -9999em; }\n  .block-editor-skip-to-selected-block:focus {\n    height: auto;\n    width: auto;\n    display: block;\n    font-size: 14px;\n    font-weight: 600;\n    padding: 15px 23px 14px;\n    background: #f1f1f1;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    line-height: normal;\n    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);\n    text-decoration: none;\n    outline: none;\n    z-index: 100000; }\n\n.block-editor-tool-selector__help {\n  margin-top: 8px;\n  margin-left: -12px;\n  margin-right: -12px;\n  margin-bottom: -12px;\n  padding: 12px 20px;\n  border-top: 1px solid #ddd;\n  color: #6c7781; }\n\n.block-editor-block-list__block .block-editor-url-input,\n.components-popover .block-editor-url-input,\n.block-editor-url-input {\n  flex-grow: 1;\n  position: relative;\n  padding: 1px; }\n  .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n  .components-popover .block-editor-url-input input[type=\"text\"],\n  .block-editor-url-input input[type=\"text\"] {\n    width: 100%;\n    padding: 8px;\n    border: none;\n    border-radius: 0;\n    margin-left: 0;\n    margin-right: 0;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (min-width: 600px) {\n      .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n      .components-popover .block-editor-url-input input[type=\"text\"],\n      .block-editor-url-input input[type=\"text\"] {\n        width: 300px; } }\n    @media (min-width: 600px) {\n      .block-editor-block-list__block .block-editor-url-input input[type=\"text\"],\n      .components-popover .block-editor-url-input input[type=\"text\"],\n      .block-editor-url-input input[type=\"text\"] {\n        font-size: 13px; } }\n    .block-editor-block-list__block .block-editor-url-input input[type=\"text\"]::-ms-clear,\n    .components-popover .block-editor-url-input input[type=\"text\"]::-ms-clear,\n    .block-editor-url-input input[type=\"text\"]::-ms-clear {\n      display: none; }\n  .block-editor-block-list__block .block-editor-url-input.is-full-width,\n  .components-popover .block-editor-url-input.is-full-width,\n  .block-editor-url-input.is-full-width {\n    width: 100%; }\n    .block-editor-block-list__block .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"],\n    .components-popover .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"],\n    .block-editor-url-input.is-full-width .block-editor-url-input__input[type=\"text\"] {\n      width: 100%; }\n    .block-editor-block-list__block .block-editor-url-input.is-full-width__suggestions,\n    .components-popover .block-editor-url-input.is-full-width__suggestions,\n    .block-editor-url-input.is-full-width__suggestions {\n      width: 100%; }\n  .block-editor-block-list__block .block-editor-url-input .components-spinner,\n  .components-popover .block-editor-url-input .components-spinner,\n  .block-editor-url-input .components-spinner {\n    position: absolute;\n    right: 8px;\n    bottom: 17px;\n    margin: 0; }\n\n.block-editor-url-input__input[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-url-input__input[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-url-input__input[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor-url-input__input[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor-url-input__input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-url-input__input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor-url-input__input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor-url-input__input[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.block-editor-url-input__suggestions {\n  max-height: 200px;\n  transition: all 0.15s ease-in-out;\n  padding: 4px 0;\n  width: 302px;\n  overflow-y: auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-url-input__suggestions {\n      transition-duration: 0s; } }\n\n.block-editor-url-input__suggestions,\n.block-editor-url-input .components-spinner {\n  display: none; }\n  @media (min-width: 600px) {\n    .block-editor-url-input__suggestions,\n    .block-editor-url-input .components-spinner {\n      display: inherit; } }\n\n.block-editor-url-input__suggestion {\n  padding: 4px 8px;\n  color: #6c7781;\n  display: block;\n  font-size: 13px;\n  cursor: pointer;\n  background: #fff;\n  width: 100%;\n  border: none;\n  text-align: left;\n  box-shadow: none; }\n  .block-editor-url-input__suggestion:hover {\n    background: #ddd; }\n  .block-editor-url-input__suggestion:focus, .block-editor-url-input__suggestion.is-selected {\n    background: #005a87;\n    background: var(--wp-admin-theme-color-darker-20);\n    color: #fff;\n    outline: none; }\n\n.components-toolbar-group > .block-editor-url-input__button,\n.components-toolbar > .block-editor-url-input__button {\n  position: inherit; }\n\n.block-editor-url-input__button .block-editor-url-input__back {\n  margin-right: 4px;\n  overflow: visible; }\n  .block-editor-url-input__button .block-editor-url-input__back::after {\n    content: \"\";\n    position: absolute;\n    display: block;\n    width: 1px;\n    height: 24px;\n    right: -1px;\n    background: #ddd; }\n\n.block-editor-url-input__button-modal {\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n  border: 1px solid #ddd;\n  background: #fff; }\n\n.block-editor-url-input__button-modal-line {\n  display: flex;\n  flex-direction: row;\n  flex-grow: 1;\n  flex-shrink: 1;\n  min-width: 0;\n  align-items: flex-start; }\n  .block-editor-url-input__button-modal-line .components-button {\n    flex-shrink: 0;\n    width: 36px;\n    height: 36px; }\n\n.block-editor-url-popover__additional-controls {\n  border-top: 1px solid #ddd; }\n\n.block-editor-url-popover__additional-controls > div[role=\"menu\"] .components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary) > svg {\n  box-shadow: none; }\n\n.block-editor-url-popover__additional-controls div[role=\"menu\"] > .components-button {\n  padding-left: 2px; }\n\n.block-editor-url-popover__row {\n  display: flex; }\n\n.block-editor-url-popover__row > :not(.block-editor-url-popover__settings-toggle) {\n  flex-grow: 1; }\n\n.block-editor-url-popover .components-button.has-icon {\n  padding: 3px; }\n  .block-editor-url-popover .components-button.has-icon > svg {\n    padding: 5px;\n    border-radius: 2px;\n    height: 30px;\n    width: 30px; }\n  .block-editor-url-popover .components-button.has-icon:not(:disabled):focus {\n    box-shadow: none; }\n    .block-editor-url-popover .components-button.has-icon:not(:disabled):focus > svg {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n      outline: 2px solid transparent; }\n\n.block-editor-url-popover__settings-toggle {\n  flex-shrink: 0;\n  border-radius: 0;\n  border-left: 1px solid #ddd;\n  margin-left: 1px; }\n  .block-editor-url-popover__settings-toggle[aria-expanded=\"true\"] .dashicon {\n    transform: rotate(180deg); }\n\n.block-editor-url-popover__input-container .components-base-control:last-child,\n.block-editor-url-popover__input-container .components-base-control:last-child .components-base-control__field {\n  margin-bottom: 0; }\n\n.block-editor-url-popover__settings {\n  display: block;\n  padding: 16px;\n  border-top: 1px solid #ddd; }\n\n.block-editor-url-popover__link-editor,\n.block-editor-url-popover__link-viewer {\n  display: flex; }\n  .block-editor-url-popover__link-editor .block-editor-url-input .components-base-control__field,\n  .block-editor-url-popover__link-viewer .block-editor-url-input .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-url-popover__link-editor .block-editor-url-input .components-spinner,\n  .block-editor-url-popover__link-viewer .block-editor-url-input .components-spinner {\n    bottom: 9px; }\n\n.block-editor-url-popover__link-viewer-url {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-url-popover__link-viewer-url.has-invalid-link {\n    color: #d94f4f; }\n\n.block-editor-warning {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 12px;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff; }\n  .block-editor-warning .block-editor-warning__message {\n    line-height: 1.4;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    margin: 1em 0; }\n  .block-editor-warning p.block-editor-warning__message.block-editor-warning__message {\n    min-height: auto; }\n  .block-editor-warning .block-editor-warning__contents {\n    display: flex;\n    flex-direction: row;\n    justify-content: space-between;\n    flex-wrap: wrap;\n    align-items: baseline;\n    width: 100%; }\n  .block-editor-warning .block-editor-warning__actions {\n    display: flex; }\n  .block-editor-warning .block-editor-warning__action {\n    margin: 0 0 0 8px; }\n\n.block-editor-warning__secondary {\n  margin: auto 0 auto 8px; }\n\n.block-editor-writing-flow {\n  display: flex;\n  flex-direction: column; }\n\n.block-editor-writing-flow__click-redirect {\n  cursor: text; }\n\n.html-anchor-control .components-external-link {\n  display: block;\n  margin-top: 8px; }\n\n#end-resizable-editor-section {\n  display: none; }\n\n/**\n * Block Toolbar\n */\n.block-editor-block-toolbar {\n  display: flex;\n  flex-grow: 1;\n  width: 100%;\n  overflow: auto;\n  position: relative;\n  transition: border-color 0.1s linear, box-shadow 0.1s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-toolbar {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor-block-toolbar {\n      overflow: inherit; } }\n  .block-editor-block-toolbar .components-toolbar-group,\n  .block-editor-block-toolbar .components-toolbar {\n    background: none;\n    line-height: 0;\n    margin-top: -1px;\n    margin-bottom: -1px;\n    border: 0;\n    border-right: 1px solid #ddd; }\n  .block-editor-block-toolbar > :last-child,\n  .block-editor-block-toolbar > :last-child .components-toolbar-group,\n  .block-editor-block-toolbar > :last-child .components-toolbar {\n    border-right: none; }\n\n.block-editor-block-toolbar .components-toolbar-group,\n.block-editor-block-toolbar .components-toolbar,\n.block-editor-format-toolbar .components-toolbar-group,\n.block-editor-format-toolbar .components-toolbar {\n  display: flex;\n  flex-wrap: nowrap; }\n\n.block-editor-block-toolbar__slot {\n  display: inline-block;\n  line-height: 0; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .block-editor-block-toolbar__slot {\n      display: inline-flex; } }\n\n.block-editor-block-toolbar__block-parent-selector-wrapper {\n  position: absolute;\n  top: -1px;\n  left: -1px;\n  opacity: 0;\n  transition: all 60ms linear;\n  z-index: -1; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-block-toolbar__block-parent-selector-wrapper {\n      transition-duration: 0s; } }\n  .is-showing-movers .block-editor-block-toolbar__block-parent-selector-wrapper {\n    opacity: 1;\n    transform: translateY(-60px); }\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar__block-parent-selector-wrapper {\n    display: none; }\n\n.block-editor-block-toolbar__mover-switcher-container {\n  display: flex; }\n\n.block-editor-block-toolbar__block-switcher-wrapper {\n  display: flex; }\n  .block-editor-block-toolbar__block-switcher-wrapper:not([draggable=\"false\"]) * {\n    cursor: grab; }\n  .block-editor-block-toolbar__block-switcher-wrapper .block-editor-block-switcher {\n    display: block; }\n\n.block-editor-inserter {\n  display: inline-block;\n  background: none;\n  border: none;\n  padding: 0;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  line-height: 1.4; }\n  @media (min-width: 782px) {\n    .block-editor-inserter {\n      position: relative; } }\n\n.block-editor-inserter__popover .block-editor-inserter__menu {\n  margin: -12px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__search {\n    top: -12px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__tabs .components-tab-panel__tabs {\n    top: 60px; }\n  .block-editor-inserter__popover .block-editor-inserter__menu .block-editor-inserter__main-area {\n    overflow: visible;\n    height: auto; }\n\n.block-editor-inserter__toggle.components-button {\n  display: inline-flex;\n  align-items: center;\n  cursor: pointer;\n  border: none;\n  outline: none;\n  padding: 0;\n  transition: color 0.2s ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor-inserter__toggle.components-button {\n      transition-duration: 0s; } }\n\n.block-editor-inserter__menu {\n  height: 100%;\n  position: relative;\n  overflow: visible; }\n\n.block-editor-inserter__main-area {\n  width: auto;\n  overflow-y: auto;\n  height: 100%; }\n  @media (min-width: 782px) {\n    .block-editor-inserter__main-area {\n      width: 350px; } }\n\n.block-editor-inserter__inline-elements {\n  margin-top: -1px; }\n\n.block-editor-inserter__menu.is-bottom::after {\n  border-bottom-color: #fff; }\n\n.components-popover.block-editor-inserter__popover {\n  z-index: 99998; }\n\n.block-editor-inserter__search {\n  padding: 16px;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  background: #fff;\n  z-index: 1; }\n  .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    display: block;\n    padding: 16px 48px 16px 16px;\n    background: #f0f0f0;\n    border: none;\n    width: 100%;\n    height: 48px;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (prefers-reduced-motion: reduce) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    @media (min-width: 600px) {\n      .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input {\n        font-size: 13px; } }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:focus {\n      background: #fff;\n      box-shadow: 0 0 0 1.5px #007cba;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color); }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input:-ms-input-placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-ms-input-placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::placeholder {\n      color: #606a73; }\n    .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-decoration, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-cancel-button, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-results-button, .block-editor-inserter__search input[type=\"search\"].block-editor-inserter__search-input::-webkit-search-results-decoration {\n      -webkit-appearance: none; }\n\n.block-editor-inserter__search-icon {\n  position: absolute;\n  top: 0;\n  right: 20px;\n  bottom: 0;\n  display: flex;\n  align-items: center; }\n  .block-editor-inserter__search-icon > svg {\n    margin: 8px; }\n\n.block-editor-inserter__tabs {\n  display: flex;\n  flex-direction: column;\n  margin-top: -8px; }\n  .block-editor-inserter__tabs .components-tab-panel__tabs {\n    position: -webkit-sticky;\n    position: sticky;\n    top: 72px;\n    background: #fff;\n    z-index: 1;\n    border-bottom: 1px solid #ddd; }\n    .block-editor-inserter__tabs .components-tab-panel__tabs .components-tab-panel__tabs-item {\n      flex-grow: 1;\n      margin-bottom: -1px; }\n  .block-editor-inserter__tabs .components-tab-panel__tab-content {\n    display: flex;\n    flex-grow: 1;\n    flex-direction: column;\n    position: relative; }\n\n.block-editor-inserter__panel-header {\n  display: inline-flex;\n  align-items: center;\n  padding: 16px 16px 0; }\n\n.block-editor-inserter__panel-content {\n  padding: 0 16px; }\n\n.block-editor-inserter__panel-title {\n  margin: 0 12px 0 0;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.block-editor-inserter__block-list {\n  flex-grow: 1;\n  position: relative; }\n\n.block-editor-inserter__popover .block-editor-block-types-list {\n  margin: 0 -8px; }\n\n.block-editor-inserter__reusable-blocks-panel {\n  position: relative;\n  text-align: right; }\n\n.block-editor-inserter__manage-reusable-blocks {\n  display: inline-block;\n  margin: 16px; }\n\n.block-editor-inserter__no-results {\n  padding: 32px;\n  margin-top: 64px;\n  text-align: center; }\n\n.block-editor-inserter__no-results-icon {\n  fill: #b5bcc2; }\n\n.block-editor-inserter__child-blocks {\n  padding: 0 16px; }\n\n.block-editor-inserter__parent-block-header {\n  display: flex;\n  align-items: center; }\n  .block-editor-inserter__parent-block-header h2 {\n    font-size: 13px; }\n  .block-editor-inserter__parent-block-header .block-editor-block-icon {\n    margin-right: 8px; }\n\n.block-editor-inserter__preview-container {\n  display: none;\n  width: 300px;\n  background: #fff;\n  border-radius: 2px;\n  border: 1px solid #ddd;\n  position: absolute;\n  top: 16px;\n  left: calc(100% + 16px); }\n  @media (min-width: 782px) {\n    .block-editor-inserter__preview-container {\n      display: block; } }\n  .block-editor-inserter__preview-container .block-editor-block-card {\n    padding: 16px; }\n  .block-editor-inserter__preview-container .block-editor-block-card__title {\n    font-size: 13px; }\n\n.block-editor-inserter__preview-content {\n  min-height: 144px;\n  background: #f0f0f0;\n  display: -ms-grid;\n  display: grid;\n  flex-grow: 1;\n  align-items: center; }\n\n.block-editor-inserter__preview-content-missing {\n  flex: 1;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  min-height: 144px;\n  color: #606a73;\n  background: #f0f0f0; }\n\n.block-editor-inserter__tips {\n  border-top: 1px solid #ddd;\n  padding: 16px;\n  flex-shrink: 0; }\n\n.block-editor-inserter__manage-reusable-blocks-container {\n  padding: 16px; }\n\n.block-editor-inserter__quick-inserter {\n  width: 100%; }\n  @media (min-width: 782px) {\n    .block-editor-inserter__quick-inserter {\n      width: 350px; } }\n\n.block-editor-inserter__quick-inserter-results {\n  padding-bottom: 16px; }\n  .block-editor-inserter__quick-inserter-results .block-editor-inserter__panel-header {\n    height: 0;\n    padding: 0;\n    float: left; }\n\n.block-editor-inserter__quick-inserter-patterns {\n  display: -ms-grid;\n  display: grid;\n  -ms-grid-columns: 1fr 1fr;\n  grid-template-columns: 1fr 1fr;\n  grid-gap: 8px; }\n\n.block-editor-inserter__quick-inserter-separator {\n  border-top: 1px solid #ddd; }\n\n.block-editor-inserter__popover.is-quick > .components-popover__content > div {\n  padding: 0; }\n\n.block-editor-inserter__quick-inserter-expand.components-button {\n  display: block;\n  background: #1e1e1e;\n  color: #fff;\n  width: 100%;\n  height: 44px;\n  border-radius: 0; }\n  .block-editor-inserter__quick-inserter-expand.components-button:hover {\n    color: #fff; }\n  .block-editor-inserter__quick-inserter-expand.components-button:focus:not(:disabled) {\n    box-shadow: inset 0 0 0 1.5px #1e1e1e, inset 0 0 0 2px #fff; }\n\n.block-editor-post-preview__dropdown {\n  display: none;\n  margin-right: 12px;\n  padding: 0; }\n\n.block-editor-post-preview__button-resize.block-editor-post-preview__button-resize {\n  padding-left: 40px; }\n  .block-editor-post-preview__button-resize.block-editor-post-preview__button-resize.has-icon {\n    padding-left: 8px; }\n\n.block-editor-post-preview__dropdown-content .components-popover__content {\n  overflow-y: visible; }\n\n.block-editor-post-preview__dropdown-content .components-menu-group + .components-menu-group {\n  border-top: 1px solid #ccc;\n  padding: 8px 12px;\n  margin-left: -12px;\n  margin-right: -12px; }\n\n@media (min-width: 600px) {\n  .editor-post-preview {\n    display: none; }\n  .block-editor-post-preview__dropdown {\n    display: flex; } }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/editor-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.block-editor ul.wp-block-archives {\n  padding-right: 2.5em; }\n\n.wp-block-audio {\n  margin-right: 0;\n  margin-left: 0; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow__click-redirect {\n  min-height: auto; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .is-root-container {\n  padding-right: 0;\n  padding-left: 0; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow {\n  display: block; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .components-disabled .block-list-appender {\n  display: none; }\n\n.wp-block[data-align=\"center\"] > .wp-block-button {\n  text-align: center;\n  margin-right: auto;\n  margin-left: auto; }\n\n.wp-block[data-align=\"right\"] > .wp-block-button {\n  text-align: right; }\n\n.wp-block-button {\n  position: relative;\n  cursor: text; }\n  .wp-block-button:not(.has-text-color):not(.is-style-outline) [data-rich-text-placeholder]::after {\n    color: #fff; }\n  .wp-block-button:focus {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color);\n    outline: 2px solid transparent;\n    outline-offset: -2px; }\n  .wp-block-button[data-rich-text-placeholder]::after {\n    opacity: 0.8; }\n\n.wp-block-button__inline-link {\n  color: #555d66;\n  height: 0;\n  overflow: hidden;\n  max-width: 290px; }\n  .wp-block-button__inline-link-input__suggestions {\n    max-width: 290px; }\n  @media (min-width: 782px) {\n    .wp-block-button__inline-link {\n      max-width: 260px; }\n      .wp-block-button__inline-link-input__suggestions {\n        max-width: 260px; } }\n  @media (min-width: 960px) {\n    .wp-block-button__inline-link {\n      max-width: 290px; }\n      .wp-block-button__inline-link-input__suggestions {\n        max-width: 290px; } }\n  .is-selected .wp-block-button__inline-link {\n    height: auto;\n    overflow: visible;\n    margin-top: 16px; }\n\ndiv[data-type=\"core/button\"] {\n  display: table; }\n\n.wp-block-buttons .wp-block.block-editor-block-list__block[data-type=\"core/button\"] {\n  display: inline-block;\n  width: auto; }\n\n.wp-block[data-align=\"center\"] > .wp-block-buttons {\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n  justify-content: center; }\n\n.wp-block[data-align=\"right\"] > .wp-block-buttons {\n  display: flex;\n  justify-content: flex-end; }\n\n.wp-block-buttons .block-list-appender {\n  display: inline-block; }\n\n.block-editor .wp-block-categories ul {\n  padding-right: 2.5em; }\n  .block-editor .wp-block-categories ul ul {\n    margin-top: 6px; }\n\n.wp-block-code > code {\n  display: block; }\n\n.wp-block-columns .wp-block {\n  max-width: none; }\n\n@media (min-width: 600px) {\n  .editor-styles-wrapper\n.block-editor-block-list__block.wp-block-column:nth-child(even) {\n    margin-right: 32px; } }\n\n@media (min-width: 782px) {\n  .editor-styles-wrapper\n.block-editor-block-list__block.wp-block-column:not(:first-child) {\n    margin-right: 32px; } }\n\n.block-editor-block-list__block.wp-block-column.wp-block-column {\n  margin-top: 0;\n  margin-bottom: 0; }\n\n.wp-block-cover {\n  position: relative; }\n  .wp-block-cover.is-placeholder {\n    min-height: auto !important;\n    padding: 0 !important; }\n  .wp-block-cover.components-placeholder h2 {\n    color: inherit; }\n  .wp-block-cover .block-editor-block-list__layout {\n    width: 100%; }\n  .wp-block-cover .wp-block-cover__inner-container {\n    text-align: right;\n    margin-right: 0;\n    margin-left: 0; }\n  .wp-block-cover .wp-block-cover__placeholder-background-options {\n    width: 100%; }\n\n[data-align=\"left\"] > .wp-block-cover,\n[data-align=\"right\"] > .wp-block-cover {\n  max-width: 290px;\n  width: 100%; }\n\n.block-library-cover__reset-button {\n  margin-right: auto; }\n\n.block-library-cover__resize-container {\n  position: absolute !important;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0; }\n\n.block-library-cover__resize-container:not(.is-resizing) {\n  height: auto !important; }\n\n.wp-block-embed {\n  margin-right: 0;\n  margin-left: 0;\n  clear: both; }\n  .wp-block-embed.is-loading {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    padding: 1em;\n    min-height: 200px;\n    text-align: center;\n    border-radius: 2px;\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #1e1e1e; }\n    .wp-block-embed.is-loading p {\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n      font-size: 13px; }\n  .wp-block-embed .components-placeholder__error {\n    word-break: break-word; }\n  .wp-block-embed .components-placeholder__learn-more {\n    margin-top: 1em; }\n\n.block-library-embed__interactive-overlay {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  opacity: 0; }\n\n.wp-block-file {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 0; }\n  .wp-block-file .wp-block-file__content-wrapper {\n    flex-grow: 1; }\n  .wp-block-file .wp-block-file__textlink {\n    display: inline-block;\n    min-width: 1em; }\n    .wp-block-file .wp-block-file__textlink:focus {\n      box-shadow: none; }\n  .wp-block-file .wp-block-file__button-richtext-wrapper {\n    display: inline-block;\n    margin-right: 0.75em; }\n  .wp-block-file .wp-block-file__copy-url-button {\n    margin-right: 1em; }\n\n.wp-block-freeform.block-library-rich-text__tinymce {\n  height: auto;\n  /* Allow height of embed iframes to be calculated properly */\n  /* Remove blue highlighting of selected images in WebKit */\n  /* Image captions */\n  /* WP Views */ }\n  .wp-block-freeform.block-library-rich-text__tinymce p,\n  .wp-block-freeform.block-library-rich-text__tinymce li {\n    line-height: 1.8; }\n  .wp-block-freeform.block-library-rich-text__tinymce ul,\n  .wp-block-freeform.block-library-rich-text__tinymce ol {\n    padding-right: 2.5em;\n    margin-right: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce blockquote {\n    margin: 0;\n    box-shadow: inset 0 0 0 0 #ddd;\n    border-right: 4px solid #000;\n    padding-right: 1em; }\n  .wp-block-freeform.block-library-rich-text__tinymce pre {\n    white-space: pre-wrap;\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 15px;\n    color: #1e1e1e; }\n  .wp-block-freeform.block-library-rich-text__tinymce > *:first-child {\n    margin-top: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce > *:last-child {\n    margin-bottom: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus {\n    outline: none; }\n  .wp-block-freeform.block-library-rich-text__tinymce a {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected] {\n    padding: 0 2px;\n    margin: 0 -2px;\n    border-radius: 2px;\n    box-shadow: 0 0 0 1px #e5f5fa;\n    background: #e5f5fa; }\n  .wp-block-freeform.block-library-rich-text__tinymce code {\n    padding: 2px;\n    border-radius: 2px;\n    color: #1e1e1e;\n    background: #f0f0f0;\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 14px; }\n  .wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected] {\n    background: #ddd; }\n  .wp-block-freeform.block-library-rich-text__tinymce .alignright {\n    float: right;\n    margin: 0.5em 0 0.5em 1em; }\n  .wp-block-freeform.block-library-rich-text__tinymce .alignleft {\n    float: left;\n    margin: 0.5em 1em 0.5em 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .aligncenter {\n    display: block;\n    margin-right: auto;\n    margin-left: auto; }\n  .wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag {\n    width: 96%;\n    height: 20px;\n    display: block;\n    margin: 15px auto;\n    outline: 0;\n    cursor: default;\n    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);\n    background-size: 1900px 20px;\n    background-repeat: no-repeat;\n    background-position: center; }\n  .wp-block-freeform.block-library-rich-text__tinymce img::selection {\n    background-color: transparent; }\n  .wp-block-freeform.block-library-rich-text__tinymce div.mceTemp {\n    -ms-user-select: element; }\n  .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption {\n    margin: 0;\n    /* dl browser reset */\n    max-width: 100%; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img {\n      display: block; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption * {\n      -webkit-user-drag: none; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd {\n      padding-top: 0.5em;\n      margin: 0;\n      /* browser dd reset */ }\n  .wp-block-freeform.block-library-rich-text__tinymce .wpview {\n    width: 99.99%;\n    /* All IE need hasLayout, incl. 11 (ugh, not again!!) */\n    position: relative;\n    clear: both;\n    margin-bottom: 16px;\n    border: 1px solid transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview iframe {\n      display: block;\n      max-width: 100%;\n      background: transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim {\n      position: absolute;\n      top: 0;\n      left: 0;\n      bottom: 0;\n      right: 0; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected=\"2\"] .mce-shim {\n      display: none; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder {\n      border: 1px dashed #ddd;\n      padding: 10px; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error {\n      border: 1px solid #ddd;\n      padding: 1em 0;\n      margin: 0;\n      word-wrap: break-word; }\n      .wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p {\n        margin: 0;\n        text-align: center; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error {\n      border-color: transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons {\n      display: block;\n      margin: 0 auto;\n      width: 32px;\n      height: 32px;\n      font-size: 32px; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery::after {\n      content: \"\";\n      display: table;\n      clear: both; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus {\n    outline: none; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery a {\n    cursor: default; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery {\n    margin: auto -6px;\n    padding: 6px 0;\n    line-height: 1;\n    overflow-x: hidden; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item {\n    float: right;\n    margin: 0;\n    text-align: center;\n    padding: 6px;\n    box-sizing: border-box; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon {\n    margin: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption {\n    font-size: 13px;\n    margin: 4px 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item {\n    width: 100%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item {\n    width: 50%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item {\n    width: 33.33333%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item {\n    width: 25%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item {\n    width: 20%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item {\n    width: 16.66667%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item {\n    width: 14.28571%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item {\n    width: 12.5%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item {\n    width: 11.11111%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery img {\n    max-width: 100%;\n    height: auto;\n    border: none;\n    padding: 0; }\n\ndiv[data-type=\"core/freeform\"]::before {\n  transition: border-color 0.1s linear, box-shadow 0.1s linear;\n  border: 1px solid #ddd;\n  outline: 1px solid transparent; }\n  @media (prefers-reduced-motion: reduce) {\n    div[data-type=\"core/freeform\"]::before {\n      transition-duration: 0s; } }\n\ndiv[data-type=\"core/freeform\"].is-selected::before {\n  border-color: #1e1e1e; }\n\ndiv[data-type=\"core/freeform\"] .block-editor-block-contextual-toolbar + div {\n  margin-top: 0;\n  padding-top: 0; }\n\ndiv[data-type=\"core/freeform\"].is-selected .block-library-rich-text__tinymce::after {\n  content: \"\";\n  display: table;\n  clear: both; }\n\n.mce-toolbar-grp .mce-btn.mce-active button,\n.mce-toolbar-grp .mce-btn.mce-active:hover button,\n.mce-toolbar-grp .mce-btn.mce-active i,\n.mce-toolbar-grp .mce-btn.mce-active:hover i {\n  color: #1e1e1e; }\n\n.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last {\n  margin-left: 0;\n  margin-right: 8px; }\n\n.mce-toolbar-grp .mce-btn i {\n  font-style: normal; }\n\n.block-library-classic__toolbar {\n  display: none;\n  width: auto;\n  margin: 0;\n  position: -webkit-sticky;\n  position: sticky;\n  z-index: 31;\n  top: 0;\n  border: 1px solid #ddd;\n  border-bottom: none;\n  border-radius: 2px;\n  margin-bottom: 8px;\n  padding: 0; }\n  div[data-type=\"core/freeform\"].is-selected .block-library-classic__toolbar,\n  div[data-type=\"core/freeform\"].is-typing .block-library-classic__toolbar {\n    display: block;\n    border-color: #1e1e1e; }\n  .block-library-classic__toolbar .mce-tinymce {\n    box-shadow: none; }\n  @media (min-width: 600px) {\n    .block-library-classic__toolbar {\n      padding: 0; } }\n  .block-library-classic__toolbar:empty {\n    display: block;\n    background: #f5f5f5;\n    border-bottom: 1px solid #e2e4e7; }\n    .block-library-classic__toolbar:empty::before {\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n      font-size: 13px;\n      content: attr(data-placeholder);\n      color: #555d66;\n      line-height: 37px;\n      padding: 14px; }\n  .block-library-classic__toolbar div.mce-toolbar-grp {\n    border-bottom: 1px solid #1e1e1e; }\n  .block-library-classic__toolbar .mce-tinymce-inline,\n  .block-library-classic__toolbar .mce-tinymce-inline > div,\n  .block-library-classic__toolbar div.mce-toolbar-grp,\n  .block-library-classic__toolbar div.mce-toolbar-grp > div,\n  .block-library-classic__toolbar .mce-menubar,\n  .block-library-classic__toolbar .mce-menubar > div {\n    height: auto !important;\n    width: 100% !important; }\n  .block-library-classic__toolbar .mce-container-body.mce-abs-layout {\n    overflow: visible; }\n  .block-library-classic__toolbar .mce-menubar,\n  .block-library-classic__toolbar div.mce-toolbar-grp {\n    position: static; }\n  .block-library-classic__toolbar .mce-toolbar-grp > div {\n    padding: 1px 3px; }\n  .block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {\n    display: none; }\n  .block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {\n    display: block; }\n\n.wp-block-gallery li {\n  list-style-type: none; }\n\n.wp-block-gallery .block-editor-media-placeholder {\n  margin-bottom: 12px;\n  padding: 12px; }\n  .wp-block-gallery .block-editor-media-placeholder .components-placeholder__label {\n    display: none; }\n  .wp-block-gallery .block-editor-media-placeholder .components-button {\n    margin-bottom: 0; }\n\nfigure.wp-block-gallery {\n  display: block;\n  margin: 0; }\n\n.blocks-gallery-grid.blocks-gallery-grid {\n  padding-right: 0;\n  margin-right: 0;\n  margin-bottom: 0; }\n\n.blocks-gallery-item figure:not(.is-selected):focus,\n.blocks-gallery-item img:focus {\n  outline: none; }\n\n.blocks-gallery-item figure.is-selected {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color);\n  border-radius: 2px;\n  outline: 2px solid transparent; }\n  .blocks-gallery-item figure.is-selected img {\n    border-radius: 2px; }\n\n.blocks-gallery-item figure.is-transient img {\n  opacity: 0.3; }\n\n.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu {\n  display: inline-flex; }\n\n.blocks-gallery-item .block-editor-media-placeholder {\n  margin: 0;\n  height: 100%; }\n  .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label {\n    display: flex; }\n\n.block-library-gallery-item__inline-menu {\n  display: none;\n  position: absolute;\n  top: -2px;\n  margin: 8px;\n  z-index: 20;\n  transition: box-shadow 0.2s ease-out;\n  border-radius: 2px;\n  background: #fff;\n  border: 1px solid #1e1e1e; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-library-gallery-item__inline-menu {\n      transition-duration: 0s; } }\n  .block-library-gallery-item__inline-menu:hover {\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); }\n  @media (min-width: 600px) {\n    .columns-7 .block-library-gallery-item__inline-menu,\n    .columns-8 .block-library-gallery-item__inline-menu {\n      padding: 2px; } }\n  .block-library-gallery-item__inline-menu .components-button.has-icon {\n    border: none;\n    box-shadow: none; }\n    @media (min-width: 600px) {\n      .columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,\n      .columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon {\n        padding: 0;\n        width: inherit;\n        height: inherit; } }\n  .block-library-gallery-item__inline-menu.is-left {\n    right: -2px; }\n  .block-library-gallery-item__inline-menu.is-right {\n    left: -2px; }\n\n.blocks-gallery-item .components-spinner {\n  position: absolute;\n  top: 50%;\n  right: 50%;\n  margin-top: -9px;\n  margin-right: -9px; }\n\n/**\n * Group: All Alignment Settings\n */\n.wp-block-group {\n  margin-top: 0;\n  margin-bottom: 0; }\n  .wp-block-group .block-editor-block-list__insertion-point {\n    right: 0;\n    left: 0; }\n  .wp-block-group > .wp-block-group__inner-container > [data-align=\"full\"] {\n    margin-right: auto;\n    margin-left: auto; }\n  .wp-block-group.has-background > .wp-block-group__inner-container > [data-align=\"full\"] {\n    margin-right: -30px;\n    width: calc(100% + 60px); }\n\n/**\n * Group: Full Width Alignment\n */\n[data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > .wp-block {\n  padding-right: 14px;\n  padding-left: 14px; }\n  @media (min-width: 600px) {\n    [data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > .wp-block {\n      padding-right: 0;\n      padding-left: 0; } }\n\n[data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > [data-align=\"full\"] {\n  padding-left: 0;\n  padding-right: 0;\n  right: 0;\n  width: 100%;\n  max-width: none; }\n\n[data-align=\"full\"] .wp-block-group.has-background > .wp-block-group__inner-container > [data-align=\"full\"] {\n  width: calc(100% + 60px); }\n\n[data-type=\"core/group\"].is-selected .block-list-appender {\n  margin-right: 0;\n  margin-left: 0; }\n\n[data-type=\"core/group\"].is-selected .has-background .block-list-appender {\n  margin-top: 18px;\n  margin-bottom: 18px; }\n\n.block-library-heading-level-dropdown .components-popover__content {\n  min-width: 230px; }\n  .block-library-heading-level-dropdown .components-popover__content > div {\n    padding: 0; }\n\n.block-library-heading-level-toolbar {\n  border: none; }\n\n.wp-block-html {\n  margin-bottom: 28px; }\n  .wp-block-html .block-library-html__preview-overlay {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    right: 0; }\n  .wp-block-html .block-editor-plain-text {\n    font-family: Menlo, Consolas, monaco, monospace;\n    color: #1e1e1e;\n    padding: 0.8em 1em;\n    border: 1px solid #ddd;\n    border-radius: 4px;\n    max-height: 250px;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (min-width: 600px) {\n      .wp-block-html .block-editor-plain-text {\n        font-size: 13px; } }\n    .wp-block-html .block-editor-plain-text:focus {\n      box-shadow: none; }\n\nfigure.wp-block-image:not(.wp-block) {\n  margin: 0; }\n\n.wp-block-image {\n  position: relative; }\n  .wp-block-image .is-applying img,\n  .wp-block-image.is-transient img {\n    opacity: 0.3; }\n  .wp-block-image figcaption img {\n    display: inline; }\n  .wp-block-image .components-spinner {\n    position: absolute;\n    top: 50%;\n    right: 50%;\n    margin-top: -9px;\n    margin-right: -9px; }\n\n.wp-block-image .components-resizable-box__container {\n  display: inline-block; }\n  .wp-block-image .components-resizable-box__container img {\n    display: block;\n    width: inherit;\n    height: inherit; }\n\n.block-editor-block-list__block[data-type=\"core/image\"] .block-editor-block-toolbar .block-editor-url-input__button-modal {\n  position: absolute;\n  right: 0;\n  left: 0;\n  margin: -1px 0; }\n  @media (min-width: 600px) {\n    .block-editor-block-list__block[data-type=\"core/image\"] .block-editor-block-toolbar .block-editor-url-input__button-modal {\n      margin: -1px; } }\n\n[data-align=\"wide\"] > .wp-block-image img,\n[data-align=\"full\"] > .wp-block-image img {\n  width: 100%; }\n\n.wp-block[data-align=\"left\"] > .wp-block-image {\n  margin-left: 1em;\n  margin-right: 0;\n  margin-top: 0.5em;\n  margin-bottom: 0.5em; }\n\n.wp-block[data-align=\"right\"] > .wp-block-image {\n  margin-right: 1em;\n  margin-left: 0;\n  margin-top: 0.5em;\n  margin-bottom: 0.5em; }\n\n.wp-block[data-align=\"center\"] > .wp-block-image {\n  margin-right: auto;\n  margin-left: auto;\n  text-align: center; }\n\n.wp-block-image__crop-area {\n  position: relative;\n  max-width: 100%;\n  width: 100%; }\n\n.wp-block-image__crop-icon {\n  padding: 0 8px;\n  min-width: 48px;\n  display: flex;\n  justify-content: center;\n  align-items: center; }\n  .wp-block-image__crop-icon svg {\n    fill: currentColor; }\n\n.wp-block-image__zoom .components-popover__content {\n  overflow: visible; }\n\n.wp-block-image__zoom .components-range-control {\n  flex: 1; }\n\n.wp-block-image__zoom .components-base-control__field {\n  display: flex;\n  margin-bottom: 0; }\n\n.wp-block-image__aspect-ratio {\n  height: 46px;\n  margin-top: -8px;\n  margin-bottom: -8px;\n  display: flex;\n  align-items: center; }\n  .wp-block-image__aspect-ratio .components-button {\n    width: 36px;\n    padding-right: 0;\n    padding-left: 0; }\n\n.wp-block-latest-comments.has-avatars .avatar {\n  margin-left: 10px; }\n\n.wp-block-latest-comments__comment-excerpt p {\n  font-size: 14px;\n  line-height: 1.8;\n  margin: 5px 0 20px;\n  padding-top: 0; }\n\n.wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment {\n  min-height: 36px; }\n\n.block-editor .wp-block-latest-posts {\n  padding-right: 2.5em; }\n  .block-editor .wp-block-latest-posts.is-grid {\n    padding-right: 0; }\n\n.wp-block-latest-posts li a > div {\n  display: inline; }\n\n.wp-block-legacy-widget__edit-container .widget-inside {\n  border: none;\n  display: block;\n  box-shadow: none; }\n\n.wp-block-legacy-widget__edit-container .widget.open {\n  z-index: 0; }\n\n.wp-block-legacy-widget__update-button {\n  margin-right: auto;\n  display: block; }\n\n.wp-block-legacy-widget__preview {\n  overflow: auto; }\n\n.wp-block-legacy-widget__preview,\n.wp-block-legacy-widget__edit-container,\n.wp-block-legacy-widget__edit-widget-title {\n  padding: 8px 14px; }\n\n.wp-block-legacy-widget__edit-widget-title {\n  background: #ddd;\n  color: #1e1e1e;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 8px 14px;\n  font-weight: 600; }\n\n.wp-block-media-text .__resizable_base__ {\n  -ms-grid-column: 1;\n  -ms-grid-column-span: 2;\n  grid-column: 1 / span 2;\n  -ms-grid-row: 2;\n  grid-row: 2; }\n\n.wp-block-media-text .editor-media-container__resizer {\n  width: 100% !important; }\n\n.wp-block-media-text.is-image-fill .editor-media-container__resizer {\n  height: 100% !important; }\n\n.wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block {\n  max-width: unset; }\n\n.block-editor-block-list__block[data-type=\"core/more\"] {\n  max-width: 100%;\n  text-align: center;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n.block-editor .wp-block-more {\n  display: block;\n  text-align: center;\n  white-space: nowrap; }\n  .block-editor .wp-block-more input[type=\"text\"] {\n    position: relative;\n    font-size: 13px;\n    text-transform: uppercase;\n    font-weight: 600;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    color: #6c7781;\n    border: none;\n    box-shadow: none;\n    white-space: nowrap;\n    text-align: center;\n    margin: 0;\n    border-radius: 4px;\n    background: #fff;\n    padding: 6px 8px;\n    height: 24px;\n    max-width: 100%; }\n    .block-editor .wp-block-more input[type=\"text\"]:focus {\n      box-shadow: none; }\n  .block-editor .wp-block-more::before {\n    content: \"\";\n    position: absolute;\n    top: calc(50%);\n    right: 0;\n    left: 0;\n    border-top: 3px dashed #ccd0d4; }\n\n.editor-styles-wrapper .wp-block-navigation ul,\n.editor-styles-wrapper .wp-block-navigation ol {\n  margin-bottom: 0;\n  margin-right: 0;\n  padding-right: 0; }\n\n.editor-styles-wrapper .wp-block-navigation .block-editor-block-list__block {\n  margin: 0; }\n\n.wp-block-navigation .block-list-appender {\n  margin: 0;\n  display: flex;\n  align-items: center; }\n\n.wp-block-navigation.is-vertical .block-list-appender {\n  margin: 8px; }\n\n.wp-block-navigation__inserter-content {\n  padding: 16px; }\n\n.wp-block-navigation__container.is-parent-of-selected-block {\n  visibility: visible;\n  opacity: 1; }\n\n.has-child > .wp-block-navigation__container, .has-child:hover > .wp-block-navigation__container {\n  opacity: 0;\n  visibility: hidden; }\n\n.has-child.is-selected > .wp-block-navigation__container, .has-child.has-child-selected > .wp-block-navigation__container {\n  opacity: 1;\n  visibility: visible; }\n\n/**\n * Colors Selector component\n */\n.block-library-colors-selector {\n  width: auto; }\n  .block-library-colors-selector .block-library-colors-selector__toggle {\n    display: block;\n    margin: 0 auto;\n    padding: 3px;\n    width: auto; }\n  .block-library-colors-selector .block-library-colors-selector__icon-container {\n    height: 30px;\n    position: relative;\n    margin: 0 auto;\n    padding: 3px;\n    display: flex;\n    align-items: center;\n    border-radius: 4px; }\n  .block-library-colors-selector .block-library-colors-selector__state-selection {\n    margin-right: auto;\n    margin-left: auto; }\n  .block-library-colors-selector .block-library-colors-selector__state-selection {\n    border-radius: 11px;\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);\n    width: 22px;\n    min-width: 22px;\n    height: 22px;\n    min-height: 22px;\n    line-height: 20px;\n    padding: 2px; }\n    .block-library-colors-selector .block-library-colors-selector__state-selection > svg {\n      min-width: auto !important; }\n    .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg,\n    .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path {\n      color: inherit; }\n\n.block-library-colors-selector__popover .color-palette-controller-container {\n  padding: 16px; }\n\n.block-library-colors-selector__popover .components-base-control__label {\n  height: 20px;\n  line-height: 20px; }\n\n.block-library-colors-selector__popover .component-color-indicator {\n  float: left;\n  margin-top: 2px; }\n\n.block-library-colors-selector__popover .components-panel__body-title {\n  display: none; }\n\n.is-editing > .wp-block-navigation__container {\n  visibility: visible;\n  opacity: 1;\n  display: flex;\n  flex-direction: column; }\n\n.wp-block-navigation.is-style-dark .block-editor-button-block-appender.block-list-appender__toggle {\n  color: #fff; }\n\n.wp-block-navigation.is-style-dark .block-editor-button-block-appender.block-list-appender__toggle > svg {\n  color: #000;\n  background-color: #fff; }\n\n.wp-block-navigation-placeholder .components-spinner {\n  margin-top: -4px;\n  margin-right: 4px;\n  vertical-align: middle;\n  margin-left: 7px; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__label {\n  margin-bottom: 1rem; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__button {\n  height: auto;\n  padding: 0.375rem 1.5rem 0.375rem 0.75rem;\n  min-width: 13.75rem; }\n\n.wp-block-navigation-placeholder .components-custom-select-control.has-menus .components-custom-select-control__item.is-create-empty-option {\n  position: relative;\n  margin-top: 20px; }\n  .wp-block-navigation-placeholder .components-custom-select-control.has-menus .components-custom-select-control__item.is-create-empty-option::before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    right: 25px;\n    left: 25px;\n    height: 15px;\n    border-top: 1px solid #757575; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__label {\n  font-size: 13px;\n  font-weight: normal; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__menu {\n  margin: 0;\n  max-height: none;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n\n.wp-block-navigation .block-editor-button-block-appender {\n  justify-content: flex-start; }\n\n.wp-block-navigation-link__field .components-text-control__input.components-text-control__input,\n.wp-block-navigation-link__container {\n  border-radius: 0;\n  line-height: 36px;\n  min-height: 36px; }\n\n/**\n * Adjust Navigation Item.\n */\n.wp-block-navigation-link .block-editor-block-list__layout {\n  display: block; }\n\n.wp-block-navigation-link.is-editing, .wp-block-navigation-link.is-selected {\n  min-width: 20px; }\n\n.wp-block-navigation-link .block-editor-rich-text__editable.is-selected:not(.keep-placeholder-on-focus):not(:focus)[data-rich-text-placeholder]::after {\n  display: inline-block; }\n\n.wp-block-navigation-link .block-list-appender {\n  margin: 16px;\n  margin-right: 10px;\n  margin-top: 10px; }\n\n.wp-block-navigation-link__nofollow-external-link {\n  display: block; }\n\n.wp-block-navigation-link__separator {\n  margin: 8px 0 8px;\n  border-top: 1px solid #ddd; }\n\n.components-popover.wp-block-navigation-link__dropdown-content {\n  margin-top: -1px;\n  margin-right: -4px; }\n\n.wp-block-navigation-link__dropdown-content .components-popover__content > div {\n  padding: 8px 0; }\n\n.wp-block-navigation .block-editor-block-list__block[data-type=\"core/navigation-link\"] > .block-editor-block-list__insertion-point {\n  display: none; }\n\n.block-editor-block-list__block[data-type=\"core/nextpage\"] {\n  max-width: 100%;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n.wp-block-nextpage {\n  display: block;\n  text-align: center;\n  white-space: nowrap; }\n  .wp-block-nextpage > span {\n    font-size: 13px;\n    position: relative;\n    display: inline-block;\n    text-transform: uppercase;\n    font-weight: 600;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    color: #6c7781;\n    border-radius: 4px;\n    background: #fff;\n    padding: 6px 8px;\n    height: 24px; }\n  .wp-block-nextpage::before {\n    content: \"\";\n    position: absolute;\n    top: calc(50%);\n    right: 0;\n    left: 0;\n    border-top: 3px dashed #ccd0d4; }\n\n.block-editor-block-list__block[data-type=\"core/paragraph\"].has-drop-cap:focus {\n  min-height: auto !important; }\n\n.wp-block-post-excerpt__excerpt.is-inline {\n  display: inline-block; }\n\n.wp-block-post-author {\n  display: flex;\n  flex-wrap: wrap;\n  line-height: 1.5; }\n  .wp-block-post-author .wp-block-post-author__byline {\n    font-size: 0.5em;\n    margin-top: 0;\n    position: relative;\n    font-style: normal; }\n  .wp-block-post-author .wp-block-post-author__content {\n    flex-grow: 1;\n    flex-basis: 0; }\n  .wp-block-post-author .wp-block-post-author__avatar img {\n    margin: 0; }\n  .wp-block-post-author .wp-block-post-author__avatar {\n    margin-bottom: -8px; }\n  .wp-block-post-author .wp-block-post-author__name {\n    margin: 0;\n    font-weight: bold; }\n  .wp-block-post-author .wp-block-post-author__bio {\n    margin: 0 0 8px;\n    font-size: 0.7em; }\n\n.wp-block[data-align=\"left\"] > .wp-block-pullquote p,\n.wp-block[data-align=\"right\"] > .wp-block-pullquote p {\n  font-size: 20px; }\n\n.wp-block-pullquote blockquote p {\n  font-size: 28px;\n  line-height: 1.6; }\n\n.wp-block-pullquote.is-style-solid-color {\n  margin-right: 0;\n  margin-left: 0; }\n  .wp-block-pullquote.is-style-solid-color blockquote p {\n    font-size: 32px; }\n  .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation {\n    text-transform: none;\n    font-style: normal; }\n\n.wp-block-pullquote .wp-block-pullquote__citation {\n  color: inherit; }\n\n.wp-block-quote__citation {\n  font-size: 13px; }\n\n.block-editor .wp-block-rss {\n  padding-right: 2.5em; }\n  .block-editor .wp-block-rss.is-grid {\n    padding-right: 0; }\n\n.wp-block-rss li a > div {\n  display: inline; }\n\n.wp-block-rss__placeholder-form {\n  display: flex;\n  align-items: stretch; }\n  .wp-block-rss__placeholder-form > * {\n    margin-bottom: 8px; }\n  @media (min-width: 782px) {\n    .wp-block-rss__placeholder-form > * {\n      margin-bottom: 0; } }\n\n.wp-block-rss__placeholder-input {\n  display: flex;\n  align-items: stretch;\n  flex-grow: 1; }\n  .wp-block-rss__placeholder-input .components-base-control__field {\n    margin: 0;\n    display: flex;\n    align-items: stretch;\n    flex-grow: 1;\n    margin-left: 8px; }\n\n.wp-block-search__input {\n  border-radius: 2px;\n  border: 1px solid #7e8993;\n  color: rgba(30, 30, 30, 0.62);\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 8px; }\n  .wp-block-search__input:focus {\n    outline: none; }\n\n.wp-block-search__button {\n  background: #f7f7f7;\n  border-radius: 2px;\n  border: 1px solid #ccc;\n  box-shadow: inset 0 -1px 0 #ccc;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 10px; }\n\n.block-editor-block-list__block[data-type=\"core/separator\"] {\n  padding-top: 0.1px;\n  padding-bottom: 0.1px; }\n  .block-editor-block-list__block[data-type=\"core/separator\"].block-editor-block-list__block {\n    margin-top: 0;\n    margin-bottom: 0; }\n\n.wp-block-shortcode {\n  display: flex;\n  flex-direction: column;\n  padding: 14px;\n  font-size: 13px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  margin-bottom: 28px; }\n  .wp-block-shortcode label {\n    display: flex;\n    align-items: center;\n    white-space: nowrap;\n    font-weight: 600;\n    flex-shrink: 0; }\n  .wp-block-shortcode .block-editor-plain-text {\n    max-height: 250px; }\n  .wp-block-shortcode .dashicon {\n    margin-left: 8px; }\n\n.block-editor .blocks-shortcode__textarea,\n.blocks-shortcode__textarea {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor .blocks-shortcode__textarea,\n    .blocks-shortcode__textarea {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor .blocks-shortcode__textarea,\n    .blocks-shortcode__textarea {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor .blocks-shortcode__textarea:focus,\n  .blocks-shortcode__textarea:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor .blocks-shortcode__textarea::-webkit-input-placeholder,\n  .blocks-shortcode__textarea::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor .blocks-shortcode__textarea::-moz-placeholder,\n  .blocks-shortcode__textarea::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor .blocks-shortcode__textarea:-ms-input-placeholder,\n  .blocks-shortcode__textarea:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea::-webkit-input-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea::-moz-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea:-ms-input-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.wp-block-social-links .wp-social-link button {\n  color: currentColor;\n  padding: 6px; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link button {\n  padding-right: 16px;\n  padding-left: 16px; }\n\n.wp-block-social-links div.block-editor-url-input {\n  display: inline-block;\n  margin-right: 8px; }\n\n.editor-styles-wrapper .wp-block-social-link {\n  margin: 0;\n  margin-left: 8px; }\n\n.editor-styles-wrapper .wp-block-social-links {\n  padding: 0; }\n\n.wp-block-social-links .block-list-appender {\n  margin: 0;\n  display: flex;\n  align-items: center; }\n\n.wp-block[data-align=\"center\"] > .wp-block-social-links {\n  justify-content: center; }\n\n.block-editor-block-preview__content .wp-social-link:disabled {\n  opacity: 1; }\n\n[data-type=\"core/social-links\"]:not(.is-selected):not(.has-child-selected) .wp-block-social-links {\n  min-height: 36px; }\n\n[data-type=\"core/social-links\"] .wp-social-link__is-incomplete {\n  transition: transform 0.1s ease;\n  transform-origin: center center; }\n\n[data-type=\"core/social-links\"]:not(.is-selected):not(.has-child-selected) .wp-social-link__is-incomplete {\n  opacity: 0;\n  transform: scale(0);\n  width: 0;\n  padding: 0;\n  margin-left: 0; }\n\n.wp-social-link.wp-social-link__is-incomplete {\n  opacity: 0.5; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-social-link.wp-social-link__is-incomplete {\n      transition-duration: 0s; } }\n\n.wp-block-social-links .is-selected .wp-social-link__is-incomplete,\n.wp-social-link.wp-social-link__is-incomplete:hover,\n.wp-social-link.wp-social-link__is-incomplete:focus {\n  opacity: 1; }\n\n[data-type=\"core/social-links\"] .wp-social-link:focus {\n  opacity: 1;\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #007cba;\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp-admin-theme-color);\n  outline: 2px solid transparent; }\n\n.is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block[data-type=\"core/social-link\"].is-selected::after,\n.block-editor-block-list__layout .block-editor-block-list__block[data-type=\"core/social-link\"]:not([contenteditable]):focus::after {\n  left: 8px; }\n\n.block-library-spacer__resize-container.has-show-handle {\n  background: #f0f0f0; }\n  .is-dark-theme .block-library-spacer__resize-container.has-show-handle {\n    background: rgba(255, 255, 255, 0.15); }\n\n.block-library-spacer__resize-container {\n  clear: both;\n  margin-bottom: 28px; }\n  .block-library-spacer__resize-container .components-resizable-box__handle::before {\n    content: none; }\n\n.edit-post-visual-editor p.wp-block-subhead {\n  color: #6c7781;\n  font-size: 1.1em;\n  font-style: italic; }\n\n.wp-block[data-align=\"left\"] > .wp-block-table,\n.wp-block[data-align=\"right\"] > .wp-block-table,\n.wp-block[data-align=\"center\"] > .wp-block-table {\n  height: auto; }\n  .wp-block[data-align=\"left\"] > .wp-block-table table,\n  .wp-block[data-align=\"right\"] > .wp-block-table table,\n  .wp-block[data-align=\"center\"] > .wp-block-table table {\n    width: auto; }\n  .wp-block[data-align=\"left\"] > .wp-block-table td,\n  .wp-block[data-align=\"left\"] > .wp-block-table th,\n  .wp-block[data-align=\"right\"] > .wp-block-table td,\n  .wp-block[data-align=\"right\"] > .wp-block-table th,\n  .wp-block[data-align=\"center\"] > .wp-block-table td,\n  .wp-block[data-align=\"center\"] > .wp-block-table th {\n    word-break: break-word; }\n\n.wp-block[data-align=\"center\"] > .wp-block-table {\n  text-align: initial; }\n  .wp-block[data-align=\"center\"] > .wp-block-table table {\n    margin: 0 auto; }\n\n.wp-block-table {\n  margin: 0; }\n  .wp-block-table table {\n    border-collapse: collapse; }\n  .wp-block-table td,\n  .wp-block-table th {\n    border: 1px solid; }\n  .wp-block-table td.is-selected,\n  .wp-block-table th.is-selected {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n    border-style: double; }\n  .wp-block-table figcaption {\n    color: #555d66;\n    font-size: 13px;\n    text-align: center; }\n\n.blocks-table__placeholder-form.blocks-table__placeholder-form {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start; }\n  .blocks-table__placeholder-form.blocks-table__placeholder-form > * {\n    margin-bottom: 8px; }\n  @media (min-width: 782px) {\n    .blocks-table__placeholder-form.blocks-table__placeholder-form {\n      flex-direction: row;\n      align-items: flex-end; }\n      .blocks-table__placeholder-form.blocks-table__placeholder-form > * {\n        margin-bottom: 0; } }\n\n.blocks-table__placeholder-input {\n  width: 112px;\n  margin-left: 8px;\n  margin-bottom: 0; }\n  .blocks-table__placeholder-input input {\n    height: 36px; }\n  .blocks-table__placeholder-input .components-base-control__field {\n    margin-bottom: 0; }\n\n.block-editor .wp-block-tag-cloud a {\n  display: inline-block;\n  margin-left: 5px; }\n\n.block-editor .wp-block-tag-cloud span {\n  display: inline-block;\n  margin-right: 5px;\n  color: #8f98a1;\n  text-decoration: none; }\n\n.wp-block-template-part__placeholder-preview-dropdown-content .components-popover__content {\n  min-width: 320px;\n  padding: 0; }\n\n.wp-block-template-part__placeholder-preview-search-form {\n  border-bottom: 1px solid #ddd; }\n\n.wp-block-template-part__placeholder-preview-container {\n  background: #fff;\n  padding-bottom: 16px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item {\n    border-radius: 2px;\n    cursor: pointer;\n    margin-top: 16px;\n    transition: all 0.05s ease-in-out;\n    border: 1px solid transparent; }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item:hover {\n      border: 1px solid #007cba;\n      border: 1px solid var(--wp-admin-theme-color); }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item:focus {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item.is-placeholder {\n      min-height: 100px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item-title {\n    padding: 4px;\n    font-size: 12px;\n    text-align: right; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-header {\n    padding: 16px 16px 0; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-content {\n    padding: 0 16px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-title {\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    text-transform: uppercase;\n    font-size: 11px;\n    font-weight: 500; }\n\n.wp-block-template-part__name-panel {\n  background-color: #fff;\n  border-radius: 2px;\n  box-shadow: 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent;\n  padding: 6px 12px; }\n  .wp-block-template-part__name-panel .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin-bottom: 0; }\n  .wp-block-template-part__name-panel .components-base-control__label {\n    margin-bottom: 0;\n    margin-left: 8px; }\n\n.is-navigate-mode .is-selected .wp-block-template-part__name-panel {\n  box-shadow: 0 0 0 1px #007cba;\n  box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n  .is-dark-theme .is-navigate-mode .is-selected .wp-block-template-part__name-panel {\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n.wp-block-text-columns .block-editor-rich-text__editable:focus {\n  outline: 1px solid #ddd; }\n\npre.wp-block-verse {\n  color: #1e1e1e;\n  white-space: nowrap;\n  font-family: inherit;\n  font-size: inherit;\n  padding: 1em;\n  overflow: auto; }\n\n.wp-block[data-align=\"center\"] > .wp-block-video {\n  text-align: center; }\n\n.editor-video-poster-control .components-base-control__label {\n  display: block; }\n\n.editor-video-poster-control .components-button {\n  margin-left: 8px; }\n\n.wp-block[data-type=\"core/widget-area\"] {\n  max-width: 700px; }\n\n.wp-block-widget-area > .components-panel__body > .block-editor-inner-blocks {\n  padding-top: 24px; }\n\n/**\n * Import styles from internal editor components used by the blocks.\n */\n.block-editor-block-list__layout .reusable-block-edit-panel {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 12px;\n  border-radius: 2px;\n  background-color: #fff;\n  box-shadow: 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {\n    margin-left: auto; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {\n    margin-left: 8px;\n    white-space: nowrap;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {\n    flex: 1 1 100%; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {\n    flex-shrink: 0; }\n  @media (min-width: 960px) {\n    .block-editor-block-list__layout .reusable-block-edit-panel {\n      flex-wrap: nowrap; }\n      .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {\n        margin: 0; }\n      .block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {\n        margin: 0 8px 0 0; } }\n\n.reusable-block-edit-panel__title[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .reusable-block-edit-panel__title[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .reusable-block-edit-panel__title[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .reusable-block-edit-panel__title[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .reusable-block-edit-panel__title[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .reusable-block-edit-panel__title[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .reusable-block-edit-panel__title[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.is-navigate-mode .is-selected .reusable-block-edit-panel {\n  box-shadow: 0 0 0 1px #007cba;\n  box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n  .is-dark-theme .is-navigate-mode .is-selected .reusable-block-edit-panel {\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n/**\n * Editor Normalization Styles\n *\n * These are only output in the editor, but styles here are NOT prefixed .editor-styles-wrapper.\n * This allows us to create normalization styles that are easily overridden by editor styles.\n */\n.block-editor-block-list__block {\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n#end-resizable-editor-section {\n  display: none; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/editor.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.block-editor ul.wp-block-archives {\n  padding-left: 2.5em; }\n\n.wp-block-audio {\n  margin-left: 0;\n  margin-right: 0; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow__click-redirect {\n  min-height: auto; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .is-root-container {\n  padding-left: 0;\n  padding-right: 0; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .block-editor-writing-flow {\n  display: block; }\n\n.edit-post-visual-editor .block-library-block__reusable-block-container .components-disabled .block-list-appender {\n  display: none; }\n\n.wp-block[data-align=\"center\"] > .wp-block-button {\n  text-align: center;\n  margin-left: auto;\n  margin-right: auto; }\n\n.wp-block[data-align=\"right\"] > .wp-block-button {\n  /*!rtl:ignore*/\n  text-align: right; }\n\n.wp-block-button {\n  position: relative;\n  cursor: text; }\n  .wp-block-button:not(.has-text-color):not(.is-style-outline) [data-rich-text-placeholder]::after {\n    color: #fff; }\n  .wp-block-button:focus {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color);\n    outline: 2px solid transparent;\n    outline-offset: -2px; }\n  .wp-block-button[data-rich-text-placeholder]::after {\n    opacity: 0.8; }\n\n.wp-block-button__inline-link {\n  color: #555d66;\n  height: 0;\n  overflow: hidden;\n  max-width: 290px; }\n  .wp-block-button__inline-link-input__suggestions {\n    max-width: 290px; }\n  @media (min-width: 782px) {\n    .wp-block-button__inline-link {\n      max-width: 260px; }\n      .wp-block-button__inline-link-input__suggestions {\n        max-width: 260px; } }\n  @media (min-width: 960px) {\n    .wp-block-button__inline-link {\n      max-width: 290px; }\n      .wp-block-button__inline-link-input__suggestions {\n        max-width: 290px; } }\n  .is-selected .wp-block-button__inline-link {\n    height: auto;\n    overflow: visible;\n    margin-top: 16px; }\n\ndiv[data-type=\"core/button\"] {\n  display: table; }\n\n.wp-block-buttons .wp-block.block-editor-block-list__block[data-type=\"core/button\"] {\n  display: inline-block;\n  width: auto; }\n\n.wp-block[data-align=\"center\"] > .wp-block-buttons {\n  display: flex;\n  align-items: center;\n  flex-wrap: wrap;\n  justify-content: center; }\n\n.wp-block[data-align=\"right\"] > .wp-block-buttons {\n  display: flex;\n  justify-content: flex-end; }\n\n.wp-block-buttons .block-list-appender {\n  display: inline-block; }\n\n.block-editor .wp-block-categories ul {\n  padding-left: 2.5em; }\n  .block-editor .wp-block-categories ul ul {\n    margin-top: 6px; }\n\n.wp-block-code > code {\n  display: block; }\n\n.wp-block-columns .wp-block {\n  max-width: none; }\n\n@media (min-width: 600px) {\n  .editor-styles-wrapper\n.block-editor-block-list__block.wp-block-column:nth-child(even) {\n    margin-left: 32px; } }\n\n@media (min-width: 782px) {\n  .editor-styles-wrapper\n.block-editor-block-list__block.wp-block-column:not(:first-child) {\n    margin-left: 32px; } }\n\n.block-editor-block-list__block.wp-block-column.wp-block-column {\n  margin-top: 0;\n  margin-bottom: 0; }\n\n.wp-block-cover {\n  position: relative; }\n  .wp-block-cover.is-placeholder {\n    min-height: auto !important;\n    padding: 0 !important; }\n  .wp-block-cover.components-placeholder h2 {\n    color: inherit; }\n  .wp-block-cover .block-editor-block-list__layout {\n    width: 100%; }\n  .wp-block-cover .wp-block-cover__inner-container {\n    text-align: left;\n    margin-left: 0;\n    margin-right: 0; }\n  .wp-block-cover .wp-block-cover__placeholder-background-options {\n    width: 100%; }\n\n[data-align=\"left\"] > .wp-block-cover,\n[data-align=\"right\"] > .wp-block-cover {\n  max-width: 290px;\n  width: 100%; }\n\n.block-library-cover__reset-button {\n  margin-left: auto; }\n\n.block-library-cover__resize-container {\n  position: absolute !important;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0; }\n\n.block-library-cover__resize-container:not(.is-resizing) {\n  height: auto !important; }\n\n.wp-block-embed {\n  margin-left: 0;\n  margin-right: 0;\n  clear: both; }\n  .wp-block-embed.is-loading {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    padding: 1em;\n    min-height: 200px;\n    text-align: center;\n    border-radius: 2px;\n    background-color: #fff;\n    box-shadow: inset 0 0 0 1px #1e1e1e; }\n    .wp-block-embed.is-loading p {\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n      font-size: 13px; }\n  .wp-block-embed .components-placeholder__error {\n    word-break: break-word; }\n  .wp-block-embed .components-placeholder__learn-more {\n    margin-top: 1em; }\n\n.block-library-embed__interactive-overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  opacity: 0; }\n\n.wp-block-file {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-bottom: 0; }\n  .wp-block-file .wp-block-file__content-wrapper {\n    flex-grow: 1; }\n  .wp-block-file .wp-block-file__textlink {\n    display: inline-block;\n    min-width: 1em; }\n    .wp-block-file .wp-block-file__textlink:focus {\n      box-shadow: none; }\n  .wp-block-file .wp-block-file__button-richtext-wrapper {\n    display: inline-block;\n    margin-left: 0.75em; }\n  .wp-block-file .wp-block-file__copy-url-button {\n    margin-left: 1em; }\n\n.wp-block-freeform.block-library-rich-text__tinymce {\n  height: auto;\n  /* Allow height of embed iframes to be calculated properly */\n  /* Remove blue highlighting of selected images in WebKit */\n  /* Image captions */\n  /* WP Views */ }\n  .wp-block-freeform.block-library-rich-text__tinymce p,\n  .wp-block-freeform.block-library-rich-text__tinymce li {\n    line-height: 1.8; }\n  .wp-block-freeform.block-library-rich-text__tinymce ul,\n  .wp-block-freeform.block-library-rich-text__tinymce ol {\n    padding-left: 2.5em;\n    margin-left: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce blockquote {\n    margin: 0;\n    box-shadow: inset 0 0 0 0 #ddd;\n    border-left: 4px solid #000;\n    padding-left: 1em; }\n  .wp-block-freeform.block-library-rich-text__tinymce pre {\n    white-space: pre-wrap;\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 15px;\n    color: #1e1e1e; }\n  .wp-block-freeform.block-library-rich-text__tinymce > *:first-child {\n    margin-top: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce > *:last-child {\n    margin-bottom: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce.mce-edit-focus {\n    outline: none; }\n  .wp-block-freeform.block-library-rich-text__tinymce a {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .wp-block-freeform.block-library-rich-text__tinymce:focus a[data-mce-selected] {\n    padding: 0 2px;\n    margin: 0 -2px;\n    border-radius: 2px;\n    box-shadow: 0 0 0 1px #e5f5fa;\n    background: #e5f5fa; }\n  .wp-block-freeform.block-library-rich-text__tinymce code {\n    padding: 2px;\n    border-radius: 2px;\n    color: #1e1e1e;\n    background: #f0f0f0;\n    font-family: Menlo, Consolas, monaco, monospace;\n    font-size: 14px; }\n  .wp-block-freeform.block-library-rich-text__tinymce:focus code[data-mce-selected] {\n    background: #ddd; }\n  .wp-block-freeform.block-library-rich-text__tinymce .alignright {\n    /*rtl:ignore*/\n    float: right;\n    /*rtl:ignore*/\n    margin: 0.5em 0 0.5em 1em; }\n  .wp-block-freeform.block-library-rich-text__tinymce .alignleft {\n    /*rtl:ignore*/\n    float: left;\n    /*rtl:ignore*/\n    margin: 0.5em 1em 0.5em 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .aligncenter {\n    display: block;\n    margin-left: auto;\n    margin-right: auto; }\n  .wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag {\n    width: 96%;\n    height: 20px;\n    display: block;\n    margin: 15px auto;\n    outline: 0;\n    cursor: default;\n    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADtgAAAAoBAMAAAA86gLBAAAAJFBMVEVMaXG7u7vBwcHDw8POzs68vLzGxsbMzMy+vr7AwMDQ0NDGxsYKLGzpAAAADHRSTlMA///zWf+/f///TMxNVGuqAAABwklEQVR4Ae3dMXLaQBTH4bfj8UCpx8hq0vgKvgFNemhT6Qo6gg6R+0ZahM2QLmyBJ99XWP9V5+o3jIUcLQEAAAAAAAAAAAAAAAAAAAAAAABQ8j0WL9lfTtlt18uNXAUA8O/KVtfa1tdcrOdSh9gCQAMlh1hMNbZZ1bsrsQWABsrhLRbz7z5in/32UbfUMUbkMQCAh5RfGYv82UdMdZ6HS2wjT2ILAI8r3XmM2B3WvM59vfO2xXYW2yYAENuPU8S+X/N67mKxzy225yaxBQCxLV392UdcvwV0jPVUj98ntkBWT7C7+9u2/V/vGtvXIWJ6/4rtbottWa6Ri0NUT/u72LYttrb97LHdvUXMxxrb8TO2W2TF1rYbbLG1bbGNjMi4+2Sbi1FsbbvNFlvbFtt5fDnE3d9sP1/XeIyV2Nr2U2/guZUuptNrH/dPI9eLB6SaAEBs6wPJf3/PNk9tYgsAYrv/8TFuzx/fvkFqGtrEFgDEdpcZUb7ejXy6ntrEFgDENvL6gsas4vbdyKt4DACI7TxElJv/Z7udpqFNbAFAbKduy2uU2trttM/x28UWAAAAAAAAAAAAAAAAAAAAAAAAAADgDyPwGmGTCZp7AAAAAElFTkSuQmCC);\n    background-size: 1900px 20px;\n    background-repeat: no-repeat;\n    background-position: center; }\n  .wp-block-freeform.block-library-rich-text__tinymce img::selection {\n    background-color: transparent; }\n  .wp-block-freeform.block-library-rich-text__tinymce div.mceTemp {\n    -ms-user-select: element; }\n  .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption {\n    margin: 0;\n    /* dl browser reset */\n    max-width: 100%; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img {\n      display: block; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption * {\n      -webkit-user-drag: none; }\n    .wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd {\n      padding-top: 0.5em;\n      margin: 0;\n      /* browser dd reset */ }\n  .wp-block-freeform.block-library-rich-text__tinymce .wpview {\n    width: 99.99%;\n    /* All IE need hasLayout, incl. 11 (ugh, not again!!) */\n    position: relative;\n    clear: both;\n    margin-bottom: 16px;\n    border: 1px solid transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview iframe {\n      display: block;\n      max-width: 100%;\n      background: transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim {\n      position: absolute;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected=\"2\"] .mce-shim {\n      display: none; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder {\n      border: 1px dashed #ddd;\n      padding: 10px; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error {\n      border: 1px solid #ddd;\n      padding: 1em 0;\n      margin: 0;\n      word-wrap: break-word; }\n      .wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p {\n        margin: 0;\n        text-align: center; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error {\n      border-color: transparent; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons {\n      display: block;\n      margin: 0 auto;\n      width: 32px;\n      height: 32px;\n      font-size: 32px; }\n    .wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery::after {\n      content: \"\";\n      display: table;\n      clear: both; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus {\n    outline: none; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery a {\n    cursor: default; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery {\n    margin: auto -6px;\n    padding: 6px 0;\n    line-height: 1;\n    overflow-x: hidden; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-item {\n    float: left;\n    margin: 0;\n    text-align: center;\n    padding: 6px;\n    box-sizing: border-box; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption,\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-icon {\n    margin: 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery .gallery-caption {\n    font-size: 13px;\n    margin: 4px 0; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-1 .gallery-item {\n    width: 100%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-2 .gallery-item {\n    width: 50%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-3 .gallery-item {\n    width: 33.33333%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-4 .gallery-item {\n    width: 25%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-5 .gallery-item {\n    width: 20%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-6 .gallery-item {\n    width: 16.66667%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-7 .gallery-item {\n    width: 14.28571%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-8 .gallery-item {\n    width: 12.5%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery-columns-9 .gallery-item {\n    width: 11.11111%; }\n  .wp-block-freeform.block-library-rich-text__tinymce .gallery img {\n    max-width: 100%;\n    height: auto;\n    border: none;\n    padding: 0; }\n\ndiv[data-type=\"core/freeform\"]::before {\n  transition: border-color 0.1s linear, box-shadow 0.1s linear;\n  border: 1px solid #ddd;\n  outline: 1px solid transparent; }\n  @media (prefers-reduced-motion: reduce) {\n    div[data-type=\"core/freeform\"]::before {\n      transition-duration: 0s; } }\n\ndiv[data-type=\"core/freeform\"].is-selected::before {\n  border-color: #1e1e1e; }\n\ndiv[data-type=\"core/freeform\"] .block-editor-block-contextual-toolbar + div {\n  margin-top: 0;\n  padding-top: 0; }\n\ndiv[data-type=\"core/freeform\"].is-selected .block-library-rich-text__tinymce::after {\n  content: \"\";\n  display: table;\n  clear: both; }\n\n.mce-toolbar-grp .mce-btn.mce-active button,\n.mce-toolbar-grp .mce-btn.mce-active:hover button,\n.mce-toolbar-grp .mce-btn.mce-active i,\n.mce-toolbar-grp .mce-btn.mce-active:hover i {\n  color: #1e1e1e; }\n\n.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last {\n  margin-right: 0;\n  margin-left: 8px; }\n\n.mce-toolbar-grp .mce-btn i {\n  font-style: normal; }\n\n.block-library-classic__toolbar {\n  display: none;\n  width: auto;\n  margin: 0;\n  position: -webkit-sticky;\n  position: sticky;\n  z-index: 31;\n  top: 0;\n  border: 1px solid #ddd;\n  border-bottom: none;\n  border-radius: 2px;\n  margin-bottom: 8px;\n  padding: 0; }\n  div[data-type=\"core/freeform\"].is-selected .block-library-classic__toolbar,\n  div[data-type=\"core/freeform\"].is-typing .block-library-classic__toolbar {\n    display: block;\n    border-color: #1e1e1e; }\n  .block-library-classic__toolbar .mce-tinymce {\n    box-shadow: none; }\n  @media (min-width: 600px) {\n    .block-library-classic__toolbar {\n      padding: 0; } }\n  .block-library-classic__toolbar:empty {\n    display: block;\n    background: #f5f5f5;\n    border-bottom: 1px solid #e2e4e7; }\n    .block-library-classic__toolbar:empty::before {\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n      font-size: 13px;\n      content: attr(data-placeholder);\n      color: #555d66;\n      line-height: 37px;\n      padding: 14px; }\n  .block-library-classic__toolbar div.mce-toolbar-grp {\n    border-bottom: 1px solid #1e1e1e; }\n  .block-library-classic__toolbar .mce-tinymce-inline,\n  .block-library-classic__toolbar .mce-tinymce-inline > div,\n  .block-library-classic__toolbar div.mce-toolbar-grp,\n  .block-library-classic__toolbar div.mce-toolbar-grp > div,\n  .block-library-classic__toolbar .mce-menubar,\n  .block-library-classic__toolbar .mce-menubar > div {\n    height: auto !important;\n    width: 100% !important; }\n  .block-library-classic__toolbar .mce-container-body.mce-abs-layout {\n    overflow: visible; }\n  .block-library-classic__toolbar .mce-menubar,\n  .block-library-classic__toolbar div.mce-toolbar-grp {\n    position: static; }\n  .block-library-classic__toolbar .mce-toolbar-grp > div {\n    padding: 1px 3px; }\n  .block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {\n    display: none; }\n  .block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {\n    display: block; }\n\n.wp-block-gallery li {\n  list-style-type: none; }\n\n.wp-block-gallery .block-editor-media-placeholder {\n  margin-bottom: 12px;\n  padding: 12px; }\n  .wp-block-gallery .block-editor-media-placeholder .components-placeholder__label {\n    display: none; }\n  .wp-block-gallery .block-editor-media-placeholder .components-button {\n    margin-bottom: 0; }\n\nfigure.wp-block-gallery {\n  display: block;\n  margin: 0; }\n\n.blocks-gallery-grid.blocks-gallery-grid {\n  padding-left: 0;\n  margin-left: 0;\n  margin-bottom: 0; }\n\n.blocks-gallery-item figure:not(.is-selected):focus,\n.blocks-gallery-item img:focus {\n  outline: none; }\n\n.blocks-gallery-item figure.is-selected {\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n  box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color);\n  border-radius: 2px;\n  outline: 2px solid transparent; }\n  .blocks-gallery-item figure.is-selected img {\n    border-radius: 2px; }\n\n.blocks-gallery-item figure.is-transient img {\n  opacity: 0.3; }\n\n.blocks-gallery-item .is-selected .block-library-gallery-item__inline-menu {\n  display: inline-flex; }\n\n.blocks-gallery-item .block-editor-media-placeholder {\n  margin: 0;\n  height: 100%; }\n  .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label {\n    display: flex; }\n\n.block-library-gallery-item__inline-menu {\n  display: none;\n  position: absolute;\n  top: -2px;\n  margin: 8px;\n  z-index: 20;\n  transition: box-shadow 0.2s ease-out;\n  border-radius: 2px;\n  background: #fff;\n  border: 1px solid #1e1e1e; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-library-gallery-item__inline-menu {\n      transition-duration: 0s; } }\n  .block-library-gallery-item__inline-menu:hover {\n    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05); }\n  @media (min-width: 600px) {\n    .columns-7 .block-library-gallery-item__inline-menu,\n    .columns-8 .block-library-gallery-item__inline-menu {\n      padding: 2px; } }\n  .block-library-gallery-item__inline-menu .components-button.has-icon {\n    border: none;\n    box-shadow: none; }\n    @media (min-width: 600px) {\n      .columns-7 .block-library-gallery-item__inline-menu .components-button.has-icon,\n      .columns-8 .block-library-gallery-item__inline-menu .components-button.has-icon {\n        padding: 0;\n        width: inherit;\n        height: inherit; } }\n  .block-library-gallery-item__inline-menu.is-left {\n    left: -2px; }\n  .block-library-gallery-item__inline-menu.is-right {\n    right: -2px; }\n\n.blocks-gallery-item .components-spinner {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  margin-top: -9px;\n  margin-left: -9px; }\n\n/**\n * Group: All Alignment Settings\n */\n.wp-block-group {\n  margin-top: 0;\n  margin-bottom: 0; }\n  .wp-block-group .block-editor-block-list__insertion-point {\n    left: 0;\n    right: 0; }\n  .wp-block-group > .wp-block-group__inner-container > [data-align=\"full\"] {\n    margin-left: auto;\n    margin-right: auto; }\n  .wp-block-group.has-background > .wp-block-group__inner-container > [data-align=\"full\"] {\n    margin-left: -30px;\n    width: calc(100% + 60px); }\n\n/**\n * Group: Full Width Alignment\n */\n[data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > .wp-block {\n  padding-left: 14px;\n  padding-right: 14px; }\n  @media (min-width: 600px) {\n    [data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > .wp-block {\n      padding-left: 0;\n      padding-right: 0; } }\n\n[data-align=\"full\"] .wp-block-group > .wp-block-group__inner-container > [data-align=\"full\"] {\n  padding-right: 0;\n  padding-left: 0;\n  left: 0;\n  width: 100%;\n  max-width: none; }\n\n[data-align=\"full\"] .wp-block-group.has-background > .wp-block-group__inner-container > [data-align=\"full\"] {\n  width: calc(100% + 60px); }\n\n[data-type=\"core/group\"].is-selected .block-list-appender {\n  margin-left: 0;\n  margin-right: 0; }\n\n[data-type=\"core/group\"].is-selected .has-background .block-list-appender {\n  margin-top: 18px;\n  margin-bottom: 18px; }\n\n.block-library-heading-level-dropdown .components-popover__content {\n  min-width: 230px; }\n  .block-library-heading-level-dropdown .components-popover__content > div {\n    padding: 0; }\n\n.block-library-heading-level-toolbar {\n  border: none; }\n\n.wp-block-html {\n  margin-bottom: 28px; }\n  .wp-block-html .block-library-html__preview-overlay {\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    top: 0;\n    left: 0; }\n  .wp-block-html .block-editor-plain-text {\n    font-family: Menlo, Consolas, monaco, monospace;\n    color: #1e1e1e;\n    padding: 0.8em 1em;\n    border: 1px solid #ddd;\n    border-radius: 4px;\n    max-height: 250px;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px; }\n    @media (min-width: 600px) {\n      .wp-block-html .block-editor-plain-text {\n        font-size: 13px; } }\n    .wp-block-html .block-editor-plain-text:focus {\n      box-shadow: none; }\n\nfigure.wp-block-image:not(.wp-block) {\n  margin: 0; }\n\n.wp-block-image {\n  position: relative; }\n  .wp-block-image .is-applying img,\n  .wp-block-image.is-transient img {\n    opacity: 0.3; }\n  .wp-block-image figcaption img {\n    display: inline; }\n  .wp-block-image .components-spinner {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -9px;\n    margin-left: -9px; }\n\n.wp-block-image .components-resizable-box__container {\n  display: inline-block; }\n  .wp-block-image .components-resizable-box__container img {\n    display: block;\n    width: inherit;\n    height: inherit; }\n\n.block-editor-block-list__block[data-type=\"core/image\"] .block-editor-block-toolbar .block-editor-url-input__button-modal {\n  position: absolute;\n  left: 0;\n  right: 0;\n  margin: -1px 0; }\n  @media (min-width: 600px) {\n    .block-editor-block-list__block[data-type=\"core/image\"] .block-editor-block-toolbar .block-editor-url-input__button-modal {\n      margin: -1px; } }\n\n[data-align=\"wide\"] > .wp-block-image img,\n[data-align=\"full\"] > .wp-block-image img {\n  width: 100%; }\n\n.wp-block[data-align=\"left\"] > .wp-block-image {\n  margin-right: 1em;\n  margin-left: 0;\n  margin-top: 0.5em;\n  margin-bottom: 0.5em; }\n\n.wp-block[data-align=\"right\"] > .wp-block-image {\n  margin-left: 1em;\n  margin-right: 0;\n  margin-top: 0.5em;\n  margin-bottom: 0.5em; }\n\n.wp-block[data-align=\"center\"] > .wp-block-image {\n  margin-left: auto;\n  margin-right: auto;\n  text-align: center; }\n\n.wp-block-image__crop-area {\n  position: relative;\n  max-width: 100%;\n  width: 100%; }\n\n.wp-block-image__crop-icon {\n  padding: 0 8px;\n  min-width: 48px;\n  display: flex;\n  justify-content: center;\n  align-items: center; }\n  .wp-block-image__crop-icon svg {\n    fill: currentColor; }\n\n.wp-block-image__zoom .components-popover__content {\n  overflow: visible; }\n\n.wp-block-image__zoom .components-range-control {\n  flex: 1; }\n\n.wp-block-image__zoom .components-base-control__field {\n  display: flex;\n  margin-bottom: 0; }\n\n.wp-block-image__aspect-ratio {\n  height: 46px;\n  margin-top: -8px;\n  margin-bottom: -8px;\n  display: flex;\n  align-items: center; }\n  .wp-block-image__aspect-ratio .components-button {\n    width: 36px;\n    padding-left: 0;\n    padding-right: 0; }\n\n.wp-block-latest-comments.has-avatars .avatar {\n  margin-right: 10px; }\n\n.wp-block-latest-comments__comment-excerpt p {\n  font-size: 14px;\n  line-height: 1.8;\n  margin: 5px 0 20px;\n  padding-top: 0; }\n\n.wp-block-latest-comments.has-avatars .wp-block-latest-comments__comment {\n  min-height: 36px; }\n\n.block-editor .wp-block-latest-posts {\n  padding-left: 2.5em; }\n  .block-editor .wp-block-latest-posts.is-grid {\n    padding-left: 0; }\n\n.wp-block-latest-posts li a > div {\n  display: inline; }\n\n.wp-block-legacy-widget__edit-container .widget-inside {\n  border: none;\n  display: block;\n  box-shadow: none; }\n\n.wp-block-legacy-widget__edit-container .widget.open {\n  z-index: 0; }\n\n.wp-block-legacy-widget__update-button {\n  margin-left: auto;\n  display: block; }\n\n.wp-block-legacy-widget__preview {\n  overflow: auto; }\n\n.wp-block-legacy-widget__preview,\n.wp-block-legacy-widget__edit-container,\n.wp-block-legacy-widget__edit-widget-title {\n  padding: 8px 14px; }\n\n.wp-block-legacy-widget__edit-widget-title {\n  background: #ddd;\n  color: #1e1e1e;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 8px 14px;\n  font-weight: 600; }\n\n.wp-block-media-text .__resizable_base__ {\n  -ms-grid-column: 1;\n  -ms-grid-column-span: 2;\n  grid-column: 1 / span 2;\n  -ms-grid-row: 2;\n  grid-row: 2; }\n\n.wp-block-media-text .editor-media-container__resizer {\n  width: 100% !important; }\n\n.wp-block-media-text.is-image-fill .editor-media-container__resizer {\n  height: 100% !important; }\n\n.wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block {\n  max-width: unset; }\n\n.block-editor-block-list__block[data-type=\"core/more\"] {\n  max-width: 100%;\n  text-align: center;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n.block-editor .wp-block-more {\n  display: block;\n  text-align: center;\n  white-space: nowrap; }\n  .block-editor .wp-block-more input[type=\"text\"] {\n    position: relative;\n    font-size: 13px;\n    text-transform: uppercase;\n    font-weight: 600;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    color: #6c7781;\n    border: none;\n    box-shadow: none;\n    white-space: nowrap;\n    text-align: center;\n    margin: 0;\n    border-radius: 4px;\n    background: #fff;\n    padding: 6px 8px;\n    height: 24px;\n    max-width: 100%; }\n    .block-editor .wp-block-more input[type=\"text\"]:focus {\n      box-shadow: none; }\n  .block-editor .wp-block-more::before {\n    content: \"\";\n    position: absolute;\n    top: calc(50%);\n    left: 0;\n    right: 0;\n    border-top: 3px dashed #ccd0d4; }\n\n.editor-styles-wrapper .wp-block-navigation ul,\n.editor-styles-wrapper .wp-block-navigation ol {\n  margin-bottom: 0;\n  margin-left: 0;\n  padding-left: 0; }\n\n.editor-styles-wrapper .wp-block-navigation .block-editor-block-list__block {\n  margin: 0; }\n\n.wp-block-navigation .block-list-appender {\n  margin: 0;\n  display: flex;\n  align-items: center; }\n\n.wp-block-navigation.is-vertical .block-list-appender {\n  margin: 8px; }\n\n.wp-block-navigation__inserter-content {\n  padding: 16px; }\n\n.wp-block-navigation__container.is-parent-of-selected-block {\n  visibility: visible;\n  opacity: 1; }\n\n.has-child > .wp-block-navigation__container, .has-child:hover > .wp-block-navigation__container {\n  opacity: 0;\n  visibility: hidden; }\n\n.has-child.is-selected > .wp-block-navigation__container, .has-child.has-child-selected > .wp-block-navigation__container {\n  opacity: 1;\n  visibility: visible; }\n\n/**\n * Colors Selector component\n */\n.block-library-colors-selector {\n  width: auto; }\n  .block-library-colors-selector .block-library-colors-selector__toggle {\n    display: block;\n    margin: 0 auto;\n    padding: 3px;\n    width: auto; }\n  .block-library-colors-selector .block-library-colors-selector__icon-container {\n    height: 30px;\n    position: relative;\n    margin: 0 auto;\n    padding: 3px;\n    display: flex;\n    align-items: center;\n    border-radius: 4px; }\n  .block-library-colors-selector .block-library-colors-selector__state-selection {\n    margin-left: auto;\n    margin-right: auto; }\n  .block-library-colors-selector .block-library-colors-selector__state-selection {\n    border-radius: 11px;\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);\n    width: 22px;\n    min-width: 22px;\n    height: 22px;\n    min-height: 22px;\n    line-height: 20px;\n    padding: 2px; }\n    .block-library-colors-selector .block-library-colors-selector__state-selection > svg {\n      min-width: auto !important; }\n    .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg,\n    .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path {\n      color: inherit; }\n\n.block-library-colors-selector__popover .color-palette-controller-container {\n  padding: 16px; }\n\n.block-library-colors-selector__popover .components-base-control__label {\n  height: 20px;\n  line-height: 20px; }\n\n.block-library-colors-selector__popover .component-color-indicator {\n  float: right;\n  margin-top: 2px; }\n\n.block-library-colors-selector__popover .components-panel__body-title {\n  display: none; }\n\n.is-editing > .wp-block-navigation__container {\n  visibility: visible;\n  opacity: 1;\n  display: flex;\n  flex-direction: column; }\n\n.wp-block-navigation.is-style-dark .block-editor-button-block-appender.block-list-appender__toggle {\n  color: #fff; }\n\n.wp-block-navigation.is-style-dark .block-editor-button-block-appender.block-list-appender__toggle > svg {\n  color: #000;\n  background-color: #fff; }\n\n.wp-block-navigation-placeholder .components-spinner {\n  margin-top: -4px;\n  margin-left: 4px;\n  vertical-align: middle;\n  margin-right: 7px; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__label {\n  margin-bottom: 1rem; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__button {\n  height: auto;\n  padding: 0.375rem 0.75rem 0.375rem 1.5rem;\n  min-width: 13.75rem; }\n\n.wp-block-navigation-placeholder .components-custom-select-control.has-menus .components-custom-select-control__item.is-create-empty-option {\n  position: relative;\n  margin-top: 20px; }\n  .wp-block-navigation-placeholder .components-custom-select-control.has-menus .components-custom-select-control__item.is-create-empty-option::before {\n    content: \"\";\n    position: absolute;\n    top: -10px;\n    left: 25px;\n    right: 25px;\n    height: 15px;\n    border-top: 1px solid #757575; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__label {\n  font-size: 13px;\n  font-weight: normal; }\n\n.wp-block-navigation-placeholder .components-custom-select-control__menu {\n  margin: 0;\n  max-height: none;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n\n.wp-block-navigation .block-editor-button-block-appender {\n  justify-content: flex-start; }\n\n.wp-block-navigation-link__field .components-text-control__input.components-text-control__input,\n.wp-block-navigation-link__container {\n  border-radius: 0;\n  line-height: 36px;\n  min-height: 36px; }\n\n/**\n * Adjust Navigation Item.\n */\n.wp-block-navigation-link .block-editor-block-list__layout {\n  display: block; }\n\n.wp-block-navigation-link.is-editing, .wp-block-navigation-link.is-selected {\n  min-width: 20px; }\n\n.wp-block-navigation-link .block-editor-rich-text__editable.is-selected:not(.keep-placeholder-on-focus):not(:focus)[data-rich-text-placeholder]::after {\n  display: inline-block; }\n\n.wp-block-navigation-link .block-list-appender {\n  margin: 16px;\n  margin-left: 10px;\n  margin-top: 10px; }\n\n.wp-block-navigation-link__nofollow-external-link {\n  display: block; }\n\n.wp-block-navigation-link__separator {\n  margin: 8px 0 8px;\n  border-top: 1px solid #ddd; }\n\n.components-popover.wp-block-navigation-link__dropdown-content {\n  margin-top: -1px;\n  margin-left: -4px; }\n\n.wp-block-navigation-link__dropdown-content .components-popover__content > div {\n  padding: 8px 0; }\n\n.wp-block-navigation .block-editor-block-list__block[data-type=\"core/navigation-link\"] > .block-editor-block-list__insertion-point {\n  display: none; }\n\n.block-editor-block-list__block[data-type=\"core/nextpage\"] {\n  max-width: 100%;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n.wp-block-nextpage {\n  display: block;\n  text-align: center;\n  white-space: nowrap; }\n  .wp-block-nextpage > span {\n    font-size: 13px;\n    position: relative;\n    display: inline-block;\n    text-transform: uppercase;\n    font-weight: 600;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    color: #6c7781;\n    border-radius: 4px;\n    background: #fff;\n    padding: 6px 8px;\n    height: 24px; }\n  .wp-block-nextpage::before {\n    content: \"\";\n    position: absolute;\n    top: calc(50%);\n    left: 0;\n    right: 0;\n    border-top: 3px dashed #ccd0d4; }\n\n.block-editor-block-list__block[data-type=\"core/paragraph\"].has-drop-cap:focus {\n  min-height: auto !important; }\n\n.wp-block-post-excerpt__excerpt.is-inline {\n  display: inline-block; }\n\n.wp-block-post-author {\n  display: flex;\n  flex-wrap: wrap;\n  line-height: 1.5; }\n  .wp-block-post-author .wp-block-post-author__byline {\n    font-size: 0.5em;\n    margin-top: 0;\n    position: relative;\n    font-style: normal; }\n  .wp-block-post-author .wp-block-post-author__content {\n    flex-grow: 1;\n    flex-basis: 0; }\n  .wp-block-post-author .wp-block-post-author__avatar img {\n    margin: 0; }\n  .wp-block-post-author .wp-block-post-author__avatar {\n    margin-bottom: -8px; }\n  .wp-block-post-author .wp-block-post-author__name {\n    margin: 0;\n    font-weight: bold; }\n  .wp-block-post-author .wp-block-post-author__bio {\n    margin: 0 0 8px;\n    font-size: 0.7em; }\n\n.wp-block[data-align=\"left\"] > .wp-block-pullquote p,\n.wp-block[data-align=\"right\"] > .wp-block-pullquote p {\n  font-size: 20px; }\n\n.wp-block-pullquote blockquote p {\n  font-size: 28px;\n  line-height: 1.6; }\n\n.wp-block-pullquote.is-style-solid-color {\n  margin-left: 0;\n  margin-right: 0; }\n  .wp-block-pullquote.is-style-solid-color blockquote p {\n    font-size: 32px; }\n  .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation {\n    text-transform: none;\n    font-style: normal; }\n\n.wp-block-pullquote .wp-block-pullquote__citation {\n  color: inherit; }\n\n.wp-block-quote__citation {\n  font-size: 13px; }\n\n.block-editor .wp-block-rss {\n  padding-left: 2.5em; }\n  .block-editor .wp-block-rss.is-grid {\n    padding-left: 0; }\n\n.wp-block-rss li a > div {\n  display: inline; }\n\n.wp-block-rss__placeholder-form {\n  display: flex;\n  align-items: stretch; }\n  .wp-block-rss__placeholder-form > * {\n    margin-bottom: 8px; }\n  @media (min-width: 782px) {\n    .wp-block-rss__placeholder-form > * {\n      margin-bottom: 0; } }\n\n.wp-block-rss__placeholder-input {\n  display: flex;\n  align-items: stretch;\n  flex-grow: 1; }\n  .wp-block-rss__placeholder-input .components-base-control__field {\n    margin: 0;\n    display: flex;\n    align-items: stretch;\n    flex-grow: 1;\n    margin-right: 8px; }\n\n.wp-block-search__input {\n  border-radius: 2px;\n  border: 1px solid #7e8993;\n  color: rgba(30, 30, 30, 0.62);\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 8px; }\n  .wp-block-search__input:focus {\n    outline: none; }\n\n.wp-block-search__button {\n  background: #f7f7f7;\n  border-radius: 2px;\n  border: 1px solid #ccc;\n  box-shadow: inset 0 -1px 0 #ccc;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 10px; }\n\n.block-editor-block-list__block[data-type=\"core/separator\"] {\n  padding-top: 0.1px;\n  padding-bottom: 0.1px; }\n  .block-editor-block-list__block[data-type=\"core/separator\"].block-editor-block-list__block {\n    margin-top: 0;\n    margin-bottom: 0; }\n\n.wp-block-shortcode {\n  display: flex;\n  flex-direction: column;\n  padding: 14px;\n  font-size: 13px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  margin-bottom: 28px; }\n  .wp-block-shortcode label {\n    display: flex;\n    align-items: center;\n    white-space: nowrap;\n    font-weight: 600;\n    flex-shrink: 0; }\n  .wp-block-shortcode .block-editor-plain-text {\n    max-height: 250px; }\n  .wp-block-shortcode .dashicon {\n    margin-right: 8px; }\n\n.block-editor .blocks-shortcode__textarea,\n.blocks-shortcode__textarea {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .block-editor .blocks-shortcode__textarea,\n    .blocks-shortcode__textarea {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .block-editor .blocks-shortcode__textarea,\n    .blocks-shortcode__textarea {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .block-editor .blocks-shortcode__textarea:focus,\n  .blocks-shortcode__textarea:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .block-editor .blocks-shortcode__textarea::-webkit-input-placeholder,\n  .blocks-shortcode__textarea::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor .blocks-shortcode__textarea::-moz-placeholder,\n  .blocks-shortcode__textarea::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .block-editor .blocks-shortcode__textarea:-ms-input-placeholder,\n  .blocks-shortcode__textarea:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea::-webkit-input-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea::-moz-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .block-editor .blocks-shortcode__textarea:-ms-input-placeholder, .is-dark-theme\n  .blocks-shortcode__textarea:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.wp-block-social-links .wp-social-link button {\n  color: currentColor;\n  padding: 6px; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link button {\n  padding-left: 16px;\n  padding-right: 16px; }\n\n.wp-block-social-links div.block-editor-url-input {\n  display: inline-block;\n  margin-left: 8px; }\n\n.editor-styles-wrapper .wp-block-social-link {\n  margin: 0;\n  margin-right: 8px; }\n\n.editor-styles-wrapper .wp-block-social-links {\n  padding: 0; }\n\n.wp-block-social-links .block-list-appender {\n  margin: 0;\n  display: flex;\n  align-items: center; }\n\n.wp-block[data-align=\"center\"] > .wp-block-social-links {\n  justify-content: center; }\n\n.block-editor-block-preview__content .wp-social-link:disabled {\n  opacity: 1; }\n\n[data-type=\"core/social-links\"]:not(.is-selected):not(.has-child-selected) .wp-block-social-links {\n  min-height: 36px; }\n\n[data-type=\"core/social-links\"] .wp-social-link__is-incomplete {\n  transition: transform 0.1s ease;\n  transform-origin: center center; }\n\n[data-type=\"core/social-links\"]:not(.is-selected):not(.has-child-selected) .wp-social-link__is-incomplete {\n  opacity: 0;\n  transform: scale(0);\n  width: 0;\n  padding: 0;\n  margin-right: 0; }\n\n.wp-social-link.wp-social-link__is-incomplete {\n  opacity: 0.5; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-social-link.wp-social-link__is-incomplete {\n      transition-duration: 0s; } }\n\n.wp-block-social-links .is-selected .wp-social-link__is-incomplete,\n.wp-social-link.wp-social-link__is-incomplete:hover,\n.wp-social-link.wp-social-link__is-incomplete:focus {\n  opacity: 1; }\n\n[data-type=\"core/social-links\"] .wp-social-link:focus {\n  opacity: 1;\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #007cba;\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp-admin-theme-color);\n  outline: 2px solid transparent; }\n\n.is-navigate-mode .block-editor-block-list__layout .block-editor-block-list__block[data-type=\"core/social-link\"].is-selected::after,\n.block-editor-block-list__layout .block-editor-block-list__block[data-type=\"core/social-link\"]:not([contenteditable]):focus::after {\n  right: 8px; }\n\n.block-library-spacer__resize-container.has-show-handle {\n  background: #f0f0f0; }\n  .is-dark-theme .block-library-spacer__resize-container.has-show-handle {\n    background: rgba(255, 255, 255, 0.15); }\n\n.block-library-spacer__resize-container {\n  clear: both;\n  margin-bottom: 28px; }\n  .block-library-spacer__resize-container .components-resizable-box__handle::before {\n    content: none; }\n\n.edit-post-visual-editor p.wp-block-subhead {\n  color: #6c7781;\n  font-size: 1.1em;\n  font-style: italic; }\n\n.wp-block[data-align=\"left\"] > .wp-block-table,\n.wp-block[data-align=\"right\"] > .wp-block-table,\n.wp-block[data-align=\"center\"] > .wp-block-table {\n  height: auto; }\n  .wp-block[data-align=\"left\"] > .wp-block-table table,\n  .wp-block[data-align=\"right\"] > .wp-block-table table,\n  .wp-block[data-align=\"center\"] > .wp-block-table table {\n    width: auto; }\n  .wp-block[data-align=\"left\"] > .wp-block-table td,\n  .wp-block[data-align=\"left\"] > .wp-block-table th,\n  .wp-block[data-align=\"right\"] > .wp-block-table td,\n  .wp-block[data-align=\"right\"] > .wp-block-table th,\n  .wp-block[data-align=\"center\"] > .wp-block-table td,\n  .wp-block[data-align=\"center\"] > .wp-block-table th {\n    word-break: break-word; }\n\n.wp-block[data-align=\"center\"] > .wp-block-table {\n  text-align: initial; }\n  .wp-block[data-align=\"center\"] > .wp-block-table table {\n    margin: 0 auto; }\n\n.wp-block-table {\n  margin: 0; }\n  .wp-block-table table {\n    border-collapse: collapse; }\n  .wp-block-table td,\n  .wp-block-table th {\n    border: 1px solid; }\n  .wp-block-table td.is-selected,\n  .wp-block-table th.is-selected {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n    border-style: double; }\n  .wp-block-table figcaption {\n    color: #555d66;\n    font-size: 13px;\n    text-align: center; }\n\n.blocks-table__placeholder-form.blocks-table__placeholder-form {\n  display: flex;\n  flex-direction: column;\n  align-items: flex-start; }\n  .blocks-table__placeholder-form.blocks-table__placeholder-form > * {\n    margin-bottom: 8px; }\n  @media (min-width: 782px) {\n    .blocks-table__placeholder-form.blocks-table__placeholder-form {\n      flex-direction: row;\n      align-items: flex-end; }\n      .blocks-table__placeholder-form.blocks-table__placeholder-form > * {\n        margin-bottom: 0; } }\n\n.blocks-table__placeholder-input {\n  width: 112px;\n  margin-right: 8px;\n  margin-bottom: 0; }\n  .blocks-table__placeholder-input input {\n    height: 36px; }\n  .blocks-table__placeholder-input .components-base-control__field {\n    margin-bottom: 0; }\n\n.block-editor .wp-block-tag-cloud a {\n  display: inline-block;\n  margin-right: 5px; }\n\n.block-editor .wp-block-tag-cloud span {\n  display: inline-block;\n  margin-left: 5px;\n  color: #8f98a1;\n  text-decoration: none; }\n\n.wp-block-template-part__placeholder-preview-dropdown-content .components-popover__content {\n  min-width: 320px;\n  padding: 0; }\n\n.wp-block-template-part__placeholder-preview-search-form {\n  border-bottom: 1px solid #ddd; }\n\n.wp-block-template-part__placeholder-preview-container {\n  background: #fff;\n  padding-bottom: 16px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item {\n    border-radius: 2px;\n    cursor: pointer;\n    margin-top: 16px;\n    transition: all 0.05s ease-in-out;\n    border: 1px solid transparent; }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item:hover {\n      border: 1px solid #007cba;\n      border: 1px solid var(--wp-admin-theme-color); }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item:focus {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item.is-placeholder {\n      min-height: 100px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-preview-item-title {\n    padding: 4px;\n    font-size: 12px;\n    text-align: left; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-header {\n    padding: 16px 16px 0; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-content {\n    padding: 0 16px; }\n  .wp-block-template-part__placeholder-preview-container .wp-block-template-part__placeholder-panel-group-title {\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    text-transform: uppercase;\n    font-size: 11px;\n    font-weight: 500; }\n\n.wp-block-template-part__name-panel {\n  background-color: #fff;\n  border-radius: 2px;\n  box-shadow: 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent;\n  padding: 6px 12px; }\n  .wp-block-template-part__name-panel .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin-bottom: 0; }\n  .wp-block-template-part__name-panel .components-base-control__label {\n    margin-bottom: 0;\n    margin-right: 8px; }\n\n.is-navigate-mode .is-selected .wp-block-template-part__name-panel {\n  box-shadow: 0 0 0 1px #007cba;\n  box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n  .is-dark-theme .is-navigate-mode .is-selected .wp-block-template-part__name-panel {\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n.wp-block-text-columns .block-editor-rich-text__editable:focus {\n  outline: 1px solid #ddd; }\n\npre.wp-block-verse {\n  color: #1e1e1e;\n  white-space: nowrap;\n  font-family: inherit;\n  font-size: inherit;\n  padding: 1em;\n  overflow: auto; }\n\n.wp-block[data-align=\"center\"] > .wp-block-video {\n  text-align: center; }\n\n.editor-video-poster-control .components-base-control__label {\n  display: block; }\n\n.editor-video-poster-control .components-button {\n  margin-right: 8px; }\n\n.wp-block[data-type=\"core/widget-area\"] {\n  max-width: 700px; }\n\n.wp-block-widget-area > .components-panel__body > .block-editor-inner-blocks {\n  padding-top: 24px; }\n\n/**\n * Import styles from internal editor components used by the blocks.\n */\n.block-editor-block-list__layout .reusable-block-edit-panel {\n  align-items: center;\n  display: flex;\n  flex-wrap: wrap;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  padding: 6px 12px;\n  border-radius: 2px;\n  background-color: #fff;\n  box-shadow: 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {\n    margin-right: auto; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {\n    margin-right: 8px;\n    white-space: nowrap;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {\n    flex: 1 1 100%; }\n  .block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {\n    flex-shrink: 0; }\n  @media (min-width: 960px) {\n    .block-editor-block-list__layout .reusable-block-edit-panel {\n      flex-wrap: nowrap; }\n      .block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {\n        margin: 0; }\n      .block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {\n        margin: 0 0 0 8px; } }\n\n.reusable-block-edit-panel__title[type=\"text\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .reusable-block-edit-panel__title[type=\"text\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .reusable-block-edit-panel__title[type=\"text\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .reusable-block-edit-panel__title[type=\"text\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .reusable-block-edit-panel__title[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .reusable-block-edit-panel__title[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .reusable-block-edit-panel__title[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .reusable-block-edit-panel__title[type=\"text\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.is-navigate-mode .is-selected .reusable-block-edit-panel {\n  box-shadow: 0 0 0 1px #007cba;\n  box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n  .is-dark-theme .is-navigate-mode .is-selected .reusable-block-edit-panel {\n    box-shadow: 0 0 0 1px #007cba;\n    box-shadow: 0 0 0 1px var(--wp-admin-theme-color); }\n\n/**\n * Editor Normalization Styles\n *\n * These are only output in the editor, but styles here are NOT prefixed .editor-styles-wrapper.\n * This allows us to create normalization styles that are easily overridden by editor styles.\n */\n.block-editor-block-list__block {\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\n#end-resizable-editor-section {\n  display: none; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.wp-block-audio figcaption {\n  margin-top: 0.5em;\n  margin-bottom: 1em; }\n\n.wp-block-audio audio {\n  width: 100%;\n  min-width: 300px; }\n\n.wp-block-button__link {\n  color: #fff;\n  background-color: #32373c;\n  border: none;\n  border-radius: 28px;\n  box-shadow: none;\n  cursor: pointer;\n  display: inline-block;\n  font-size: 18px;\n  padding: 12px 24px;\n  text-align: center;\n  text-decoration: none;\n  overflow-wrap: break-word; }\n  .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, .wp-block-button__link:visited {\n    color: #fff; }\n  .wp-block-button__link.aligncenter {\n    text-align: center; }\n  .wp-block-button__link.alignright {\n    text-align: right; }\n\n.wp-block-button.is-style-squared,\n.wp-block-button__link.wp-block-button.is-style-squared {\n  border-radius: 0; }\n\n.wp-block-button.no-border-radius,\n.wp-block-button__link.no-border-radius {\n  border-radius: 0 !important; }\n\n.wp-block-button.is-style-outline .wp-block-button__link,\n.wp-block-button__link.is-style-outline {\n  color: #32373c;\n  background-color: transparent;\n  border: 2px solid; }\n\n.wp-block-buttons .wp-block-button {\n  display: inline-block;\n  margin-left: 8px;\n  margin-bottom: 8px; }\n  .wp-block-buttons .wp-block-button:last-child {\n    margin-left: 0; }\n\n.wp-block-buttons.alignright .wp-block-button {\n  margin-right: 0;\n  margin-left: 8px; }\n  .wp-block-buttons.alignright .wp-block-button:first-child {\n    margin-right: 0; }\n\n.wp-block-buttons.alignleft .wp-block-button {\n  margin-left: 0;\n  margin-right: 8px; }\n  .wp-block-buttons.alignleft .wp-block-button:last-child {\n    margin-left: 0; }\n\n.wp-block-button.aligncenter,\n.wp-block-buttons.aligncenter {\n  text-align: center; }\n\n.wp-block-calendar {\n  text-align: center; }\n  .wp-block-calendar th,\n  .wp-block-calendar tbody td {\n    padding: 4px;\n    border: 1px solid #ddd; }\n  .wp-block-calendar tfoot td {\n    border: none; }\n  .wp-block-calendar table {\n    width: 100%;\n    border-collapse: collapse;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif; }\n  .wp-block-calendar table th {\n    font-weight: 400;\n    background: #ddd; }\n  .wp-block-calendar a {\n    text-decoration: underline; }\n  .wp-block-calendar tfoot a {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .wp-block-calendar table tbody,\n  .wp-block-calendar table caption {\n    color: #40464d; }\n\n.wp-block-categories.alignleft {\n  margin-right: 2em; }\n\n.wp-block-categories.alignright {\n  margin-left: 2em; }\n\n.wp-block-columns {\n  display: flex;\n  margin-bottom: 28px;\n  flex-wrap: wrap; }\n  @media (min-width: 782px) {\n    .wp-block-columns {\n      flex-wrap: nowrap; } }\n  .wp-block-columns.has-background {\n    padding: 20px 38px; }\n\n.wp-block-column {\n  flex-grow: 1;\n  min-width: 0;\n  word-break: break-word;\n  overflow-wrap: break-word; }\n  @media (max-width: 599px) {\n    .wp-block-column {\n      flex-basis: 100% !important; } }\n  @media (min-width: 600px) and (max-width: 781px) {\n    .wp-block-column {\n      flex-basis: calc(50% - 16px) !important;\n      flex-grow: 0; }\n      .wp-block-column:nth-child(even) {\n        margin-right: 32px; } }\n  @media (min-width: 782px) {\n    .wp-block-column {\n      flex-basis: 0;\n      flex-grow: 1; }\n      .wp-block-column[style*=\"flex-basis\"] {\n        flex-grow: 0; }\n      .wp-block-column:not(:first-child) {\n        margin-right: 32px; } }\n\n/**\n * All Columns Alignment\n */\n.wp-block-columns.are-vertically-aligned-top {\n  align-items: flex-start; }\n\n.wp-block-columns.are-vertically-aligned-center {\n  align-items: center; }\n\n.wp-block-columns.are-vertically-aligned-bottom {\n  align-items: flex-end; }\n\n/**\n * Individual Column Alignment\n */\n.wp-block-column.is-vertically-aligned-top {\n  align-self: flex-start; }\n\n.wp-block-column.is-vertically-aligned-center {\n  -ms-grid-row-align: center;\n      align-self: center; }\n\n.wp-block-column.is-vertically-aligned-bottom {\n  align-self: flex-end; }\n\n.wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom {\n  width: 100%; }\n\n.wp-block-cover-image,\n.wp-block-cover {\n  position: relative;\n  background-size: cover;\n  background-position: center center;\n  min-height: 430px;\n  height: 100%;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 16px; }\n  .wp-block-cover-image.has-parallax,\n  .wp-block-cover.has-parallax {\n    background-attachment: fixed; }\n    @supports (-webkit-overflow-scrolling: touch) {\n      .wp-block-cover-image.has-parallax,\n      .wp-block-cover.has-parallax {\n        background-attachment: scroll; } }\n    @media (prefers-reduced-motion: reduce) {\n      .wp-block-cover-image.has-parallax,\n      .wp-block-cover.has-parallax {\n        background-attachment: scroll; } }\n  .wp-block-cover-image.has-background-dim,\n  .wp-block-cover.has-background-dim {\n    background-color: #000; }\n    .wp-block-cover-image.has-background-dim::before,\n    .wp-block-cover.has-background-dim::before {\n      content: \"\";\n      background-color: inherit; }\n  .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover-image .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover .wp-block-cover__gradient-background {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    z-index: 1; }\n  .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover-image .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover .wp-block-cover__gradient-background {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before {\n    opacity: 0.1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background {\n    opacity: 0.1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before {\n    opacity: 0.2; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background {\n    opacity: 0.2; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before {\n    opacity: 0.3; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background {\n    opacity: 0.3; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before {\n    opacity: 0.4; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background {\n    opacity: 0.4; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before {\n    opacity: 0.6; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background {\n    opacity: 0.6; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before {\n    opacity: 0.7; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background {\n    opacity: 0.7; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before {\n    opacity: 0.8; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background {\n    opacity: 0.8; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before {\n    opacity: 0.9; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background {\n    opacity: 0.9; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before {\n    opacity: 1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background {\n    opacity: 1; }\n  .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright,\n  .wp-block-cover.alignleft,\n  .wp-block-cover.alignright {\n    max-width: 290px;\n    width: 100%; }\n  .wp-block-cover-image::after,\n  .wp-block-cover::after {\n    display: block;\n    content: \"\";\n    font-size: 0;\n    min-height: inherit; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .wp-block-cover-image::after,\n      .wp-block-cover::after {\n        content: none; } }\n  .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright,\n  .wp-block-cover.aligncenter,\n  .wp-block-cover.alignleft,\n  .wp-block-cover.alignright {\n    display: flex; }\n  .wp-block-cover-image .wp-block-cover__inner-container,\n  .wp-block-cover .wp-block-cover__inner-container {\n    width: calc(100% - 70px);\n    z-index: 1;\n    color: #fff; }\n  .wp-block-cover-image p:not(.has-text-color),\n  .wp-block-cover-image h1:not(.has-text-color),\n  .wp-block-cover-image h2:not(.has-text-color),\n  .wp-block-cover-image h3:not(.has-text-color),\n  .wp-block-cover-image h4:not(.has-text-color),\n  .wp-block-cover-image h5:not(.has-text-color),\n  .wp-block-cover-image h6:not(.has-text-color),\n  .wp-block-cover-image .wp-block-subhead:not(.has-text-color),\n  .wp-block-cover p:not(.has-text-color),\n  .wp-block-cover h1:not(.has-text-color),\n  .wp-block-cover h2:not(.has-text-color),\n  .wp-block-cover h3:not(.has-text-color),\n  .wp-block-cover h4:not(.has-text-color),\n  .wp-block-cover h5:not(.has-text-color),\n  .wp-block-cover h6:not(.has-text-color),\n  .wp-block-cover .wp-block-subhead:not(.has-text-color) {\n    color: inherit; }\n  .wp-block-cover-image.is-position-top-left,\n  .wp-block-cover.is-position-top-left {\n    align-items: flex-start;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-top-center,\n  .wp-block-cover.is-position-top-center {\n    align-items: flex-start;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-top-right,\n  .wp-block-cover.is-position-top-right {\n    align-items: flex-start;\n    justify-content: flex-end; }\n  .wp-block-cover-image.is-position-center-left,\n  .wp-block-cover.is-position-center-left {\n    align-items: center;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-center-center,\n  .wp-block-cover.is-position-center-center {\n    align-items: center;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-center-right,\n  .wp-block-cover.is-position-center-right {\n    align-items: center;\n    justify-content: flex-end; }\n  .wp-block-cover-image.is-position-bottom-left,\n  .wp-block-cover.is-position-bottom-left {\n    align-items: flex-end;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-bottom-center,\n  .wp-block-cover.is-position-bottom-center {\n    align-items: flex-end;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-bottom-right,\n  .wp-block-cover.is-position-bottom-right {\n    align-items: flex-end;\n    justify-content: flex-end; }\n  .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,\n  .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container {\n    margin: 0;\n    width: auto; }\n\n.wp-block-cover__video-background {\n  position: absolute;\n  top: 50%;\n  right: 50%;\n  transform: translateX(50%) translateY(-50%);\n  width: 100%;\n  height: 100%;\n  z-index: 0;\n  object-fit: cover; }\n\nsection.wp-block-cover-image h2,\n.wp-block-cover-image-text,\n.wp-block-cover-text {\n  color: #fff; }\n  section.wp-block-cover-image h2 a,\n  section.wp-block-cover-image h2 a:hover,\n  section.wp-block-cover-image h2 a:focus,\n  section.wp-block-cover-image h2 a:active,\n  .wp-block-cover-image-text a,\n  .wp-block-cover-image-text a:hover,\n  .wp-block-cover-image-text a:focus,\n  .wp-block-cover-image-text a:active,\n  .wp-block-cover-text a,\n  .wp-block-cover-text a:hover,\n  .wp-block-cover-text a:focus,\n  .wp-block-cover-text a:active {\n    color: #fff; }\n\n.wp-block-cover-image\n.wp-block-cover.has-left-content {\n  justify-content: flex-start; }\n\n.wp-block-cover-image\n.wp-block-cover.has-right-content {\n  justify-content: flex-end; }\n\nsection.wp-block-cover-image.has-left-content > h2,\n.wp-block-cover-image.has-left-content .wp-block-cover-image-text,\n.wp-block-cover.has-left-content .wp-block-cover-text {\n  margin-right: 0;\n  text-align: right; }\n\nsection.wp-block-cover-image.has-right-content > h2,\n.wp-block-cover-image.has-right-content .wp-block-cover-image-text,\n.wp-block-cover.has-right-content .wp-block-cover-text {\n  margin-left: 0;\n  text-align: left; }\n\nsection.wp-block-cover-image > h2,\n.wp-block-cover-image .wp-block-cover-image-text,\n.wp-block-cover .wp-block-cover-text {\n  font-size: 2em;\n  line-height: 1.25;\n  z-index: 1;\n  margin-bottom: 0;\n  max-width: 580px;\n  padding: 14px;\n  text-align: center; }\n\n.wp-block[data-align=\"left\"] > [data-type^=\"core-embed\"],\n.wp-block[data-align=\"right\"] > [data-type^=\"core-embed\"],\n.wp-block-embed.alignleft,\n.wp-block-embed.alignright {\n  max-width: 360px;\n  width: 100%; }\n  .wp-block[data-align=\"left\"] > [data-type^=\"core-embed\"] .wp-block-embed__wrapper,\n  .wp-block[data-align=\"right\"] > [data-type^=\"core-embed\"] .wp-block-embed__wrapper,\n  .wp-block-embed.alignleft .wp-block-embed__wrapper,\n  .wp-block-embed.alignright .wp-block-embed__wrapper {\n    min-width: 280px; }\n\n.wp-block-embed {\n  margin-bottom: 1em; }\n  .wp-block-embed figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n  .wp-block-embed iframe {\n    max-width: 100%; }\n\n.wp-block-embed__wrapper {\n  position: relative; }\n\n.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before {\n  content: \"\";\n  display: block;\n  padding-top: 50%; }\n\n.wp-embed-responsive .wp-has-aspect-ratio iframe {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  height: 100%;\n  width: 100%; }\n\n.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before {\n  padding-top: 42.85%; }\n\n.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before {\n  padding-top: 50%; }\n\n.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {\n  padding-top: 56.25%; }\n\n.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before {\n  padding-top: 75%; }\n\n.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before {\n  padding-top: 100%; }\n\n.wp-embed-responsive .wp-embed-aspect-9-6 .wp-block-embed__wrapper::before {\n  padding-top: 66.66%; }\n\n.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before {\n  padding-top: 200%; }\n\n.wp-block-file {\n  margin-bottom: 1.5em; }\n  .wp-block-file.aligncenter {\n    text-align: center; }\n  .wp-block-file.alignright {\n    text-align: right; }\n  .wp-block-file .wp-block-file__button {\n    background: #32373c;\n    border-radius: 2em;\n    color: #fff;\n    font-size: 13px;\n    padding: 0.5em 1em; }\n  .wp-block-file a.wp-block-file__button {\n    text-decoration: none; }\n    .wp-block-file a.wp-block-file__button:hover, .wp-block-file a.wp-block-file__button:visited, .wp-block-file a.wp-block-file__button:focus, .wp-block-file a.wp-block-file__button:active {\n      box-shadow: none;\n      color: #fff;\n      opacity: 0.85;\n      text-decoration: none; }\n  .wp-block-file * + .wp-block-file__button {\n    margin-right: 0.75em; }\n\n.wp-block-gallery,\n.blocks-gallery-grid {\n  display: flex;\n  flex-wrap: wrap;\n  list-style-type: none;\n  padding: 0;\n  margin: 0; }\n  .wp-block-gallery .blocks-gallery-image,\n  .wp-block-gallery .blocks-gallery-item,\n  .blocks-gallery-grid .blocks-gallery-image,\n  .blocks-gallery-grid .blocks-gallery-item {\n    margin: 0 0 16px 16px;\n    display: flex;\n    flex-grow: 1;\n    flex-direction: column;\n    justify-content: center;\n    position: relative; }\n    .wp-block-gallery .blocks-gallery-image figure,\n    .wp-block-gallery .blocks-gallery-item figure,\n    .blocks-gallery-grid .blocks-gallery-image figure,\n    .blocks-gallery-grid .blocks-gallery-item figure {\n      margin: 0;\n      height: 100%; }\n      @supports ((position: -webkit-sticky) or (position: sticky)) {\n        .wp-block-gallery .blocks-gallery-image figure,\n        .wp-block-gallery .blocks-gallery-item figure,\n        .blocks-gallery-grid .blocks-gallery-image figure,\n        .blocks-gallery-grid .blocks-gallery-item figure {\n          display: flex;\n          align-items: flex-end;\n          justify-content: flex-start; } }\n    .wp-block-gallery .blocks-gallery-image img,\n    .wp-block-gallery .blocks-gallery-item img,\n    .blocks-gallery-grid .blocks-gallery-image img,\n    .blocks-gallery-grid .blocks-gallery-item img {\n      display: block;\n      max-width: 100%;\n      height: auto; }\n    .wp-block-gallery .blocks-gallery-image img,\n    .wp-block-gallery .blocks-gallery-item img,\n    .blocks-gallery-grid .blocks-gallery-image img,\n    .blocks-gallery-grid .blocks-gallery-item img {\n      width: 100%; }\n      @supports ((position: -webkit-sticky) or (position: sticky)) {\n        .wp-block-gallery .blocks-gallery-image img,\n        .wp-block-gallery .blocks-gallery-item img,\n        .blocks-gallery-grid .blocks-gallery-image img,\n        .blocks-gallery-grid .blocks-gallery-item img {\n          width: auto; } }\n    .wp-block-gallery .blocks-gallery-image figcaption,\n    .wp-block-gallery .blocks-gallery-item figcaption,\n    .blocks-gallery-grid .blocks-gallery-image figcaption,\n    .blocks-gallery-grid .blocks-gallery-item figcaption {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      max-height: 100%;\n      overflow: auto;\n      padding: 40px 10px 9px;\n      color: #fff;\n      text-align: center;\n      font-size: 13px;\n      background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); }\n      .wp-block-gallery .blocks-gallery-image figcaption img,\n      .wp-block-gallery .blocks-gallery-item figcaption img,\n      .blocks-gallery-grid .blocks-gallery-image figcaption img,\n      .blocks-gallery-grid .blocks-gallery-item figcaption img {\n        display: inline; }\n  .wp-block-gallery.is-cropped .blocks-gallery-image a,\n  .wp-block-gallery.is-cropped .blocks-gallery-image img,\n  .wp-block-gallery.is-cropped .blocks-gallery-item a,\n  .wp-block-gallery.is-cropped .blocks-gallery-item img,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-image a,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-image img,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-item a,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-item img {\n    width: 100%; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .wp-block-gallery.is-cropped .blocks-gallery-image a,\n      .wp-block-gallery.is-cropped .blocks-gallery-image img,\n      .wp-block-gallery.is-cropped .blocks-gallery-item a,\n      .wp-block-gallery.is-cropped .blocks-gallery-item img,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-image a,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-image img,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-item a,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-item img {\n        height: 100%;\n        flex: 1;\n        object-fit: cover; } }\n  .wp-block-gallery .blocks-gallery-image,\n  .wp-block-gallery .blocks-gallery-item,\n  .blocks-gallery-grid .blocks-gallery-image,\n  .blocks-gallery-grid .blocks-gallery-item {\n    width: calc(50% - 16px); }\n    .wp-block-gallery .blocks-gallery-image:nth-of-type(even),\n    .wp-block-gallery .blocks-gallery-item:nth-of-type(even),\n    .blocks-gallery-grid .blocks-gallery-image:nth-of-type(even),\n    .blocks-gallery-grid .blocks-gallery-item:nth-of-type(even) {\n      margin-left: 0; }\n  .wp-block-gallery.columns-1 .blocks-gallery-image,\n  .wp-block-gallery.columns-1 .blocks-gallery-item,\n  .blocks-gallery-grid.columns-1 .blocks-gallery-image,\n  .blocks-gallery-grid.columns-1 .blocks-gallery-item {\n    width: 100%;\n    margin-left: 0; }\n  @media (min-width: 600px) {\n    .wp-block-gallery.columns-3 .blocks-gallery-image,\n    .wp-block-gallery.columns-3 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-3 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-3 .blocks-gallery-item {\n      width: calc(33.33333% - 10.66667px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-4 .blocks-gallery-image,\n    .wp-block-gallery.columns-4 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-4 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-4 .blocks-gallery-item {\n      width: calc(25% - 12px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-5 .blocks-gallery-image,\n    .wp-block-gallery.columns-5 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-5 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-5 .blocks-gallery-item {\n      width: calc(20% - 12.8px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-6 .blocks-gallery-image,\n    .wp-block-gallery.columns-6 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-6 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-6 .blocks-gallery-item {\n      width: calc(16.66667% - 13.33333px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-7 .blocks-gallery-image,\n    .wp-block-gallery.columns-7 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-7 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-7 .blocks-gallery-item {\n      width: calc(14.28571% - 13.71429px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-8 .blocks-gallery-image,\n    .wp-block-gallery.columns-8 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-8 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-8 .blocks-gallery-item {\n      width: calc(12.5% - 14px);\n      margin-left: 16px; }\n    .wp-block-gallery.columns-1 .blocks-gallery-image:nth-of-type(1n),\n    .wp-block-gallery.columns-1 .blocks-gallery-item:nth-of-type(1n),\n    .blocks-gallery-grid.columns-1 .blocks-gallery-image:nth-of-type(1n),\n    .blocks-gallery-grid.columns-1 .blocks-gallery-item:nth-of-type(1n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-2 .blocks-gallery-image:nth-of-type(2n),\n    .wp-block-gallery.columns-2 .blocks-gallery-item:nth-of-type(2n),\n    .blocks-gallery-grid.columns-2 .blocks-gallery-image:nth-of-type(2n),\n    .blocks-gallery-grid.columns-2 .blocks-gallery-item:nth-of-type(2n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-3 .blocks-gallery-image:nth-of-type(3n),\n    .wp-block-gallery.columns-3 .blocks-gallery-item:nth-of-type(3n),\n    .blocks-gallery-grid.columns-3 .blocks-gallery-image:nth-of-type(3n),\n    .blocks-gallery-grid.columns-3 .blocks-gallery-item:nth-of-type(3n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-4 .blocks-gallery-image:nth-of-type(4n),\n    .wp-block-gallery.columns-4 .blocks-gallery-item:nth-of-type(4n),\n    .blocks-gallery-grid.columns-4 .blocks-gallery-image:nth-of-type(4n),\n    .blocks-gallery-grid.columns-4 .blocks-gallery-item:nth-of-type(4n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-5 .blocks-gallery-image:nth-of-type(5n),\n    .wp-block-gallery.columns-5 .blocks-gallery-item:nth-of-type(5n),\n    .blocks-gallery-grid.columns-5 .blocks-gallery-image:nth-of-type(5n),\n    .blocks-gallery-grid.columns-5 .blocks-gallery-item:nth-of-type(5n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-6 .blocks-gallery-image:nth-of-type(6n),\n    .wp-block-gallery.columns-6 .blocks-gallery-item:nth-of-type(6n),\n    .blocks-gallery-grid.columns-6 .blocks-gallery-image:nth-of-type(6n),\n    .blocks-gallery-grid.columns-6 .blocks-gallery-item:nth-of-type(6n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-7 .blocks-gallery-image:nth-of-type(7n),\n    .wp-block-gallery.columns-7 .blocks-gallery-item:nth-of-type(7n),\n    .blocks-gallery-grid.columns-7 .blocks-gallery-image:nth-of-type(7n),\n    .blocks-gallery-grid.columns-7 .blocks-gallery-item:nth-of-type(7n) {\n      margin-left: 0; }\n    .wp-block-gallery.columns-8 .blocks-gallery-image:nth-of-type(8n),\n    .wp-block-gallery.columns-8 .blocks-gallery-item:nth-of-type(8n),\n    .blocks-gallery-grid.columns-8 .blocks-gallery-image:nth-of-type(8n),\n    .blocks-gallery-grid.columns-8 .blocks-gallery-item:nth-of-type(8n) {\n      margin-left: 0; } }\n  .wp-block-gallery .blocks-gallery-image:last-child,\n  .wp-block-gallery .blocks-gallery-item:last-child,\n  .blocks-gallery-grid .blocks-gallery-image:last-child,\n  .blocks-gallery-grid .blocks-gallery-item:last-child {\n    margin-left: 0; }\n  .wp-block-gallery.alignleft, .wp-block-gallery.alignright,\n  .blocks-gallery-grid.alignleft,\n  .blocks-gallery-grid.alignright {\n    max-width: 290px;\n    width: 100%; }\n  .wp-block-gallery.aligncenter .blocks-gallery-item figure,\n  .blocks-gallery-grid.aligncenter .blocks-gallery-item figure {\n    justify-content: center; }\n\nh1.has-background,\nh2.has-background,\nh3.has-background,\nh4.has-background,\nh5.has-background,\nh6.has-background {\n  padding: 20px 38px; }\n\n.wp-block-image {\n  margin-bottom: 1em; }\n  .wp-block-image img {\n    max-width: 100%; }\n  .wp-block-image.aligncenter {\n    text-align: center; }\n  .wp-block-image.alignfull img,\n  .wp-block-image.alignwide img {\n    width: 100%; }\n  .wp-block-image .alignleft,\n  .wp-block-image .alignright,\n  .wp-block-image .aligncenter, .wp-block-image.is-resized {\n    display: table; }\n    .wp-block-image .alignleft > figcaption,\n    .wp-block-image .alignright > figcaption,\n    .wp-block-image .aligncenter > figcaption, .wp-block-image.is-resized > figcaption {\n      display: table-caption;\n      caption-side: bottom; }\n  .wp-block-image .alignleft {\n    float: left;\n    margin-left: 0;\n    margin-left: 1em;\n    margin-top: 0.5em;\n    margin-bottom: 0.5em; }\n  .wp-block-image .alignright {\n    float: right;\n    margin-right: 0;\n    margin-right: 1em;\n    margin-top: 0.5em;\n    margin-bottom: 0.5em; }\n  .wp-block-image .aligncenter {\n    margin-right: auto;\n    margin-left: auto; }\n  .wp-block-image figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n\n.is-style-rounded img {\n  border-radius: 9999px; }\n\n.is-style-circle-mask img {\n  border-radius: 9999px; }\n  @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) {\n    .is-style-circle-mask img {\n      /* stylelint-disable */\n      -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"50\" cy=\"50\" r=\"50\"/></svg>');\n              mask-image: url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"50\" cy=\"50\" r=\"50\"/></svg>');\n      /* stylelint-enable */\n      mask-mode: alpha;\n      -webkit-mask-repeat: no-repeat;\n              mask-repeat: no-repeat;\n      -webkit-mask-size: contain;\n              mask-size: contain;\n      -webkit-mask-position: center;\n              mask-position: center;\n      border-radius: 0; } }\n\n.wp-block-latest-comments__comment {\n  font-size: 15px;\n  line-height: 1.1;\n  list-style: none;\n  margin-bottom: 1em; }\n  .has-avatars .wp-block-latest-comments__comment {\n    min-height: 36px;\n    list-style: none; }\n    .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta,\n    .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt {\n      margin-right: 52px; }\n  .has-dates .wp-block-latest-comments__comment,\n  .has-excerpts .wp-block-latest-comments__comment {\n    line-height: 1.5; }\n\n.wp-block-latest-comments__comment-excerpt p {\n  font-size: 14px;\n  line-height: 1.8;\n  margin: 5px 0 20px; }\n\n.wp-block-latest-comments__comment-date {\n  color: #8f98a1;\n  display: block;\n  font-size: 12px; }\n\n.wp-block-latest-comments .avatar,\n.wp-block-latest-comments__comment-avatar {\n  border-radius: 24px;\n  display: block;\n  float: right;\n  height: 40px;\n  margin-left: 12px;\n  width: 40px; }\n\n.wp-block-latest-posts.alignleft {\n  margin-right: 2em; }\n\n.wp-block-latest-posts.alignright {\n  margin-left: 2em; }\n\n.wp-block-latest-posts.wp-block-latest-posts__list {\n  list-style: none; }\n  .wp-block-latest-posts.wp-block-latest-posts__list li {\n    clear: both; }\n\n.wp-block-latest-posts.is-grid {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0; }\n  .wp-block-latest-posts.is-grid li {\n    margin: 0 0 20px 20px;\n    width: 100%; }\n\n@media (min-width: 600px) {\n  .wp-block-latest-posts.columns-2 li {\n    width: calc((100% / 2) - 20px); }\n  .wp-block-latest-posts.columns-3 li {\n    width: calc((100% / 3) - 20px); }\n  .wp-block-latest-posts.columns-4 li {\n    width: calc((100% / 4) - 20px); }\n  .wp-block-latest-posts.columns-5 li {\n    width: calc((100% / 5) - 20px); }\n  .wp-block-latest-posts.columns-6 li {\n    width: calc((100% / 6) - 20px); } }\n\n.wp-block-latest-posts__post-date,\n.wp-block-latest-posts__post-author {\n  display: block;\n  color: #6c7781;\n  font-size: 13px; }\n\n.wp-block-latest-posts__post-excerpt {\n  margin-top: 8px;\n  margin-bottom: 16px; }\n\n.wp-block-latest-posts__featured-image img {\n  height: auto;\n  width: auto; }\n\n.wp-block-latest-posts__featured-image.alignleft {\n  margin-right: 1em; }\n\n.wp-block-latest-posts__featured-image.alignright {\n  margin-left: 1em; }\n\n.wp-block-latest-posts__featured-image.aligncenter {\n  margin-bottom: 1em;\n  text-align: center; }\n\n.edit-post-visual-editor .wp-block-latest-posts.is-grid li {\n  margin-bottom: 20px; }\n\n.wp-block-media-text {\n  direction: ltr;\n  display: -ms-grid;\n  display: grid;\n  -ms-grid-columns: 50% 1fr;\n  grid-template-columns: 50% 1fr;\n  -ms-grid-rows: auto;\n  grid-template-rows: auto; }\n  .wp-block-media-text.has-media-on-the-right {\n    -ms-grid-columns: 1fr 50%;\n    grid-template-columns: 1fr 50%; }\n\n.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__media {\n  -ms-grid-row-align: start;\n      align-self: start; }\n\n.wp-block-media-text .wp-block-media-text__content,\n.wp-block-media-text .wp-block-media-text__media,\n.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__media {\n  -ms-grid-row-align: center;\n      align-self: center; }\n\n.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__media {\n  -ms-grid-row-align: end;\n      align-self: end; }\n\n.wp-block-media-text .wp-block-media-text__media {\n  -ms-grid-column: 1;\n  grid-column: 1;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  margin: 0; }\n\n.wp-block-media-text .wp-block-media-text__content {\n  direction: rtl;\n  -ms-grid-column: 2;\n  grid-column: 2;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  padding: 0 8% 0 8%;\n  word-break: break-word; }\n\n.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {\n  -ms-grid-column: 2;\n  grid-column: 2;\n  -ms-grid-row: 1;\n  grid-row: 1; }\n\n.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {\n  -ms-grid-column: 1;\n  grid-column: 1;\n  -ms-grid-row: 1;\n  grid-row: 1; }\n\n.wp-block-media-text__media img,\n.wp-block-media-text__media video {\n  max-width: unset;\n  width: 100%;\n  vertical-align: middle; }\n\n.wp-block-media-text.is-image-fill figure.wp-block-media-text__media {\n  height: 100%;\n  min-height: 250px;\n  background-size: cover; }\n\n.wp-block-media-text.is-image-fill figure.wp-block-media-text__media > img {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0; }\n\n/*\n* Here we here not able to use a mobile first CSS approach.\n* Custom widths are set using inline styles, and on mobile,\n* we need 100% width, so we use important to overwrite the inline style.\n* If the style were set on mobile first, on desktop styles,\n* we would have no way of setting the style again to the inline style.\n*/\n@media (max-width: 600px) {\n  .wp-block-media-text.is-stacked-on-mobile {\n    -ms-grid-columns: 100% !important;\n    grid-template-columns: 100% !important; }\n    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {\n      -ms-grid-column: 1;\n      grid-column: 1;\n      -ms-grid-row: 1;\n      grid-row: 1; }\n    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {\n      -ms-grid-column: 1;\n      grid-column: 1;\n      -ms-grid-row: 2;\n      grid-row: 2; }\n  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__media {\n    -ms-grid-column: 1;\n    grid-column: 1;\n    -ms-grid-row: 2;\n    grid-row: 2; }\n  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__content {\n    -ms-grid-column: 1;\n    grid-column: 1;\n    -ms-grid-row: 1;\n    grid-row: 1; } }\n\n.wp-block-navigation .wp-block-navigation-link:not(.has-text-color),\n.wp-block-navigation.is-style-light .wp-block-navigation-link:not(.has-text-color) {\n  color: #1e1e1e; }\n\n.wp-block-navigation:not(.has-background) .wp-block-navigation__container,\n.wp-block-navigation.is-style-light:not(.has-background) .wp-block-navigation__container {\n  background-color: #fff; }\n\n.wp-block-navigation.is-style-dark .wp-block-navigation-link:not(.has-text-color) {\n  color: #fff; }\n\n.wp-block-navigation.is-style-dark:not(.has-background) .wp-block-navigation__container {\n  background-color: #1e1e1e; }\n\n.items-justified-left > ul {\n  justify-content: flex-start; }\n\n.items-justified-center > ul {\n  justify-content: center; }\n\n.items-justified-right > ul {\n  justify-content: flex-end; }\n\n.wp-block-navigation-link {\n  display: flex;\n  align-items: center;\n  position: relative;\n  margin: 0; }\n  .wp-block-navigation-link .wp-block-navigation__container:empty {\n    display: none; }\n\n.wp-block-navigation__container {\n  list-style: none;\n  margin: 0;\n  padding-right: 0;\n  display: flex;\n  flex-wrap: wrap; }\n  .is-vertical .wp-block-navigation__container {\n    display: block; }\n\n.has-child .wp-block-navigation__container {\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  background-color: inherit;\n  color: inherit;\n  position: absolute;\n  right: 0;\n  top: 100%;\n  width: fit-content;\n  z-index: 1;\n  opacity: 0;\n  transition: opacity 0.1s linear;\n  visibility: hidden; }\n  .has-child .wp-block-navigation__container > .wp-block-navigation-link > .wp-block-navigation-link__content {\n    flex-grow: 1; }\n  .has-child .wp-block-navigation__container > .wp-block-navigation-link > .wp-block-navigation-link__submenu-icon {\n    padding-left: 8px; }\n  @media (min-width: 782px) {\n    .has-child .wp-block-navigation__container {\n      right: 24px; }\n      .has-child .wp-block-navigation__container .wp-block-navigation__container {\n        right: 100%;\n        top: -1px; }\n        .has-child .wp-block-navigation__container .wp-block-navigation__container::before {\n          content: \"\";\n          position: absolute;\n          left: 100%;\n          height: 100%;\n          display: block;\n          width: 8px;\n          background: transparent; }\n      .has-child .wp-block-navigation__container .wp-block-navigation-link__submenu-icon svg {\n        transform: rotate(0); } }\n\n.has-child:hover {\n  cursor: pointer; }\n  .has-child:hover > .wp-block-navigation__container {\n    visibility: visible;\n    opacity: 1;\n    display: flex;\n    flex-direction: column; }\n\n.has-child:focus-within {\n  cursor: pointer; }\n  .has-child:focus-within > .wp-block-navigation__container {\n    visibility: visible;\n    opacity: 1;\n    display: flex;\n    flex-direction: column; }\n\n.wp-block-navigation-link__content {\n  text-decoration: none;\n  padding: 8px 16px; }\n  .wp-block-navigation-link__content + .wp-block-navigation-link__content {\n    padding-top: 0; }\n  .has-text-color .wp-block-navigation-link__content {\n    color: inherit; }\n\n.wp-block-navigation-link__label {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  word-break: normal;\n  overflow-wrap: break-word; }\n\n.wp-block-navigation-link__submenu-icon {\n  height: inherit;\n  padding: 6px 16px; }\n  .wp-block-navigation-link__submenu-icon svg {\n    fill: currentColor; }\n    @media (min-width: 782px) {\n      .wp-block-navigation-link__submenu-icon svg {\n        transform: rotate(-90deg); } }\n\n.is-small-text {\n  font-size: 14px; }\n\n.is-regular-text {\n  font-size: 16px; }\n\n.is-large-text {\n  font-size: 36px; }\n\n.is-larger-text {\n  font-size: 48px; }\n\n.has-drop-cap:not(:focus)::first-letter {\n  float: right;\n  font-size: 8.4em;\n  line-height: 0.68;\n  font-weight: 100;\n  margin: 0.05em 0 0 0.1em;\n  text-transform: uppercase;\n  font-style: normal; }\n\np.has-background {\n  padding: 20px 38px; }\n\np.has-text-color a {\n  color: inherit; }\n\n.wp-block-post-author {\n  display: flex;\n  flex-wrap: wrap;\n  line-height: 1.5; }\n  .wp-block-post-author__byline {\n    width: 100%;\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 0.5em; }\n  .wp-block-post-author__avatar {\n    margin-left: 16px; }\n  .wp-block-post-author__bio {\n    margin-bottom: 8px;\n    font-size: 0.7em; }\n  .wp-block-post-author__content {\n    flex-grow: 1;\n    flex-basis: 0; }\n  .wp-block-post-author__name {\n    font-weight: bold;\n    margin: 0; }\n\n.wp-block-pullquote {\n  padding: 3em 0;\n  margin-right: 0;\n  margin-left: 0;\n  text-align: center; }\n  .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright {\n    max-width: 290px; }\n    .wp-block-pullquote.alignleft p, .wp-block-pullquote.alignright p {\n      font-size: 20px; }\n  .wp-block-pullquote p {\n    font-size: 28px;\n    line-height: 1.6; }\n  .wp-block-pullquote cite,\n  .wp-block-pullquote footer {\n    position: relative; }\n  .wp-block-pullquote .has-text-color a {\n    color: inherit; }\n\n.wp-block-pullquote:not(.is-style-solid-color) {\n  background: none; }\n\n.wp-block-pullquote.is-style-solid-color {\n  border: none; }\n  .wp-block-pullquote.is-style-solid-color blockquote {\n    margin-right: auto;\n    margin-left: auto;\n    text-align: right;\n    max-width: 60%; }\n    .wp-block-pullquote.is-style-solid-color blockquote p {\n      margin-top: 0;\n      margin-bottom: 0;\n      font-size: 32px; }\n    .wp-block-pullquote.is-style-solid-color blockquote cite {\n      text-transform: none;\n      font-style: normal; }\n\n.wp-block-pullquote cite {\n  color: inherit; }\n\n.wp-block-quote.is-style-large, .wp-block-quote.is-large {\n  margin: 0 0 16px;\n  padding: 0 1em; }\n  .wp-block-quote.is-style-large p, .wp-block-quote.is-large p {\n    font-size: 24px;\n    font-style: italic;\n    line-height: 1.6; }\n  .wp-block-quote.is-style-large cite,\n  .wp-block-quote.is-style-large footer, .wp-block-quote.is-large cite,\n  .wp-block-quote.is-large footer {\n    font-size: 18px;\n    text-align: left; }\n\n.wp-block-rss.alignleft {\n  margin-right: 2em; }\n\n.wp-block-rss.alignright {\n  margin-left: 2em; }\n\n.wp-block-rss.is-grid {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0;\n  list-style: none; }\n  .wp-block-rss.is-grid li {\n    margin: 0 0 16px 16px;\n    width: 100%; }\n\n@media (min-width: 600px) {\n  .wp-block-rss.columns-2 li {\n    width: calc(( 100% / 2 ) - 16px); }\n  .wp-block-rss.columns-3 li {\n    width: calc(( 100% / 3 ) - 16px); }\n  .wp-block-rss.columns-4 li {\n    width: calc(( 100% / 4 ) - 16px); }\n  .wp-block-rss.columns-5 li {\n    width: calc(( 100% / 5 ) - 16px); }\n  .wp-block-rss.columns-6 li {\n    width: calc(( 100% / 6 ) - 16px); } }\n\n.wp-block-rss__item-publish-date,\n.wp-block-rss__item-author {\n  display: block;\n  color: #6c7781;\n  font-size: 13px; }\n\n.wp-block-search {\n  display: flex;\n  flex-wrap: wrap; }\n  .wp-block-search .wp-block-search__label {\n    width: 100%; }\n  .wp-block-search .wp-block-search__input {\n    flex-grow: 1;\n    max-width: 360px; }\n  .wp-block-search .wp-block-search__button {\n    margin-right: 10px; }\n\n.wp-block-separator.is-style-wide {\n  border-bottom-width: 1px; }\n\n.wp-block-separator.is-style-dots {\n  background: none !important;\n  border: none;\n  text-align: center;\n  max-width: none;\n  line-height: 1;\n  height: auto; }\n  .wp-block-separator.is-style-dots::before {\n    content: \"\\00b7 \\00b7 \\00b7\";\n    color: currentColor;\n    font-size: 20px;\n    letter-spacing: 2em;\n    padding-left: 2em;\n    font-family: serif; }\n\n.wp-block-social-links {\n  display: flex;\n  justify-content: flex-start;\n  padding-right: 0;\n  padding-left: 0;\n  margin-right: 0; }\n  .wp-block-social-links .wp-social-link a,\n  .wp-block-social-links .wp-social-link a:hover {\n    text-decoration: none;\n    border-bottom: 0;\n    box-shadow: none; }\n\n.wp-social-link {\n  display: block;\n  width: 36px;\n  height: 36px;\n  border-radius: 36px;\n  margin-left: 8px;\n  transition: transform 0.1s ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-social-link {\n      transition-duration: 0s; } }\n  .wp-social-link a {\n    padding: 6px;\n    display: block;\n    line-height: 0;\n    transition: transform 0.1s ease; }\n  .wp-social-link a,\n  .wp-social-link a:hover,\n  .wp-social-link a:active,\n  .wp-social-link a:visited,\n  .wp-social-link svg {\n    color: currentColor;\n    fill: currentColor; }\n  .wp-social-link:hover {\n    transform: scale(1.1); }\n\n.wp-block-social-links.aligncenter {\n  justify-content: center;\n  display: flex; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link {\n  background-color: #f0f0f0;\n  color: #444; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon {\n  background-color: #f90;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp {\n  background-color: #1ea0c3;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance {\n  background-color: #0757fe;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen {\n  background-color: #1e1f26;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart {\n  background-color: #02e49b;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble {\n  background-color: #e94c89;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox {\n  background-color: #4280ff;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy {\n  background-color: #f45800;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook {\n  background-color: #1778f2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx {\n  background-color: #000;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr {\n  background-color: #0461dd;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare {\n  background-color: #e65678;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github {\n  background-color: #24292d;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads {\n  background-color: #eceadd;\n  color: #382110; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google {\n  background-color: #ea4434;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram {\n  background-color: #f00075;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm {\n  background-color: #e21b24;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin {\n  background-color: #0d66c2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon {\n  background-color: #3288d4;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium {\n  background-color: #02ab6c;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup {\n  background-color: #f6405f;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest {\n  background-color: #e60122;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket {\n  background-color: #ef4155;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit {\n  background-color: #fe4500;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype {\n  background-color: #0478d7;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat {\n  background-color: #fefc00;\n  color: #fff;\n  stroke: #000; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud {\n  background-color: #ff5600;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify {\n  background-color: #1bd760;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr {\n  background-color: #011835;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch {\n  background-color: #6440a4;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter {\n  background-color: #1da1f2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo {\n  background-color: #1eb7ea;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk {\n  background-color: #4680c2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress {\n  background-color: #3499cd;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp {\n  background-color: #d32422;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube {\n  background-color: #f00;\n  color: #fff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link {\n  background: none;\n  padding: 4px; }\n  .wp-block-social-links.is-style-logos-only .wp-social-link svg {\n    width: 28px;\n    height: 28px; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-amazon {\n  color: #f90; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp {\n  color: #1ea0c3; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-behance {\n  color: #0757fe; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-codepen {\n  color: #1e1f26; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart {\n  color: #02e49b; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble {\n  color: #e94c89; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox {\n  color: #4280ff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-etsy {\n  color: #f45800; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-facebook {\n  color: #1778f2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx {\n  color: #000; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-flickr {\n  color: #0461dd; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare {\n  color: #e65678; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-github {\n  color: #24292d; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads {\n  color: #382110; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-google {\n  color: #ea4434; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-instagram {\n  color: #f00075; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm {\n  color: #e21b24; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin {\n  color: #0d66c2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon {\n  color: #3288d4; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-medium {\n  color: #02ab6c; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-meetup {\n  color: #f6405f; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest {\n  color: #e60122; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-pocket {\n  color: #ef4155; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-reddit {\n  color: #fe4500; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-skype {\n  color: #0478d7; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat {\n  color: #fff;\n  stroke: #000; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud {\n  color: #ff5600; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-spotify {\n  color: #1bd760; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr {\n  color: #011835; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-twitch {\n  color: #6440a4; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-twitter {\n  color: #1da1f2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo {\n  color: #1eb7ea; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-vk {\n  color: #4680c2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress {\n  color: #3499cd; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-yelp {\n  background-color: #d32422;\n  color: #fff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-youtube {\n  color: #f00; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link {\n  width: auto; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link a {\n  padding-right: 16px;\n  padding-left: 16px; }\n\n.wp-block-spacer {\n  clear: both; }\n\np.wp-block-subhead {\n  font-size: 1.1em;\n  font-style: italic;\n  opacity: 0.75; }\n\n.wp-block-table {\n  overflow-x: auto; }\n  .wp-block-table table {\n    width: 100%; }\n  .wp-block-table .has-fixed-layout {\n    table-layout: fixed;\n    width: 100%; }\n    .wp-block-table .has-fixed-layout td,\n    .wp-block-table .has-fixed-layout th {\n      word-break: break-word; }\n  .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright {\n    display: table;\n    width: auto; }\n    .wp-block-table.alignleft td,\n    .wp-block-table.alignleft th, .wp-block-table.aligncenter td,\n    .wp-block-table.aligncenter th, .wp-block-table.alignright td,\n    .wp-block-table.alignright th {\n      word-break: break-word; }\n  .wp-block-table .has-subtle-light-gray-background-color {\n    background-color: #f3f4f5; }\n  .wp-block-table .has-subtle-pale-green-background-color {\n    background-color: #e9fbe5; }\n  .wp-block-table .has-subtle-pale-blue-background-color {\n    background-color: #e7f5fe; }\n  .wp-block-table .has-subtle-pale-pink-background-color {\n    background-color: #fcf0ef; }\n  .wp-block-table.is-style-stripes {\n    border-spacing: 0;\n    border-collapse: inherit;\n    background-color: transparent;\n    border-bottom: 1px solid #f0f0f0; }\n    .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {\n      background-color: #f0f0f0; }\n    .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) {\n      background-color: #f3f4f5; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) {\n      background-color: #e9fbe5; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) {\n      background-color: #e7f5fe; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) {\n      background-color: #fcf0ef; }\n    .wp-block-table.is-style-stripes th,\n    .wp-block-table.is-style-stripes td {\n      border-color: transparent; }\n\n.wp-block-text-columns {\n  display: flex; }\n  .wp-block-text-columns.aligncenter {\n    display: flex; }\n  .wp-block-text-columns .wp-block-column {\n    margin: 0 16px;\n    padding: 0; }\n    .wp-block-text-columns .wp-block-column:first-child {\n      margin-right: 0; }\n    .wp-block-text-columns .wp-block-column:last-child {\n      margin-left: 0; }\n  .wp-block-text-columns.columns-2 .wp-block-column {\n    width: calc(100% / 2); }\n  .wp-block-text-columns.columns-3 .wp-block-column {\n    width: calc(100% / 3); }\n  .wp-block-text-columns.columns-4 .wp-block-column {\n    width: calc(100% / 4); }\n\n.wp-block-video {\n  margin-right: 0;\n  margin-left: 0; }\n  .wp-block-video video {\n    max-width: 100%; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .wp-block-video [poster] {\n      object-fit: cover; } }\n  .wp-block-video.aligncenter {\n    text-align: center; }\n  .wp-block-video figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n\n:root .editor-styles-wrapper,\n:root {\n  /* stylelint-disable function-comma-space-after */\n  /* stylelint-enable function-comma-space-after */ }\n  :root .editor-styles-wrapper .has-pale-pink-background-color,\n  :root .has-pale-pink-background-color {\n    background-color: #f78da7; }\n  :root .editor-styles-wrapper .has-vivid-red-background-color,\n  :root .has-vivid-red-background-color {\n    background-color: #cf2e2e; }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-background-color,\n  :root .has-luminous-vivid-orange-background-color {\n    background-color: #ff6900; }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-background-color,\n  :root .has-luminous-vivid-amber-background-color {\n    background-color: #fcb900; }\n  :root .editor-styles-wrapper .has-light-green-cyan-background-color,\n  :root .has-light-green-cyan-background-color {\n    background-color: #7bdcb5; }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-background-color,\n  :root .has-vivid-green-cyan-background-color {\n    background-color: #00d084; }\n  :root .editor-styles-wrapper .has-pale-cyan-blue-background-color,\n  :root .has-pale-cyan-blue-background-color {\n    background-color: #8ed1fc; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-background-color,\n  :root .has-vivid-cyan-blue-background-color {\n    background-color: #0693e3; }\n  :root .editor-styles-wrapper .has-vivid-purple-background-color,\n  :root .has-vivid-purple-background-color {\n    background-color: #9b51e0; }\n  :root .editor-styles-wrapper .has-white-background-color,\n  :root .has-white-background-color {\n    background-color: #fff; }\n  :root .editor-styles-wrapper .has-very-light-gray-background-color,\n  :root .has-very-light-gray-background-color {\n    background-color: #eee; }\n  :root .editor-styles-wrapper .has-cyan-bluish-gray-background-color,\n  :root .has-cyan-bluish-gray-background-color {\n    background-color: #abb8c3; }\n  :root .editor-styles-wrapper .has-very-dark-gray-background-color,\n  :root .has-very-dark-gray-background-color {\n    background-color: #313131; }\n  :root .editor-styles-wrapper .has-black-background-color,\n  :root .has-black-background-color {\n    background-color: #000; }\n  :root .editor-styles-wrapper .has-pale-pink-color,\n  :root .has-pale-pink-color {\n    color: #f78da7; }\n  :root .editor-styles-wrapper .has-vivid-red-color,\n  :root .has-vivid-red-color {\n    color: #cf2e2e; }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-color,\n  :root .has-luminous-vivid-orange-color {\n    color: #ff6900; }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-color,\n  :root .has-luminous-vivid-amber-color {\n    color: #fcb900; }\n  :root .editor-styles-wrapper .has-light-green-cyan-color,\n  :root .has-light-green-cyan-color {\n    color: #7bdcb5; }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-color,\n  :root .has-vivid-green-cyan-color {\n    color: #00d084; }\n  :root .editor-styles-wrapper .has-pale-cyan-blue-color,\n  :root .has-pale-cyan-blue-color {\n    color: #8ed1fc; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-color,\n  :root .has-vivid-cyan-blue-color {\n    color: #0693e3; }\n  :root .editor-styles-wrapper .has-vivid-purple-color,\n  :root .has-vivid-purple-color {\n    color: #9b51e0; }\n  :root .editor-styles-wrapper .has-white-color,\n  :root .has-white-color {\n    color: #fff; }\n  :root .editor-styles-wrapper .has-very-light-gray-color,\n  :root .has-very-light-gray-color {\n    color: #eee; }\n  :root .editor-styles-wrapper .has-cyan-bluish-gray-color,\n  :root .has-cyan-bluish-gray-color {\n    color: #abb8c3; }\n  :root .editor-styles-wrapper .has-very-dark-gray-color,\n  :root .has-very-dark-gray-color {\n    color: #313131; }\n  :root .editor-styles-wrapper .has-black-color,\n  :root .has-black-color {\n    color: #000; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-to-vivid-purple-gradient-background,\n  :root .has-vivid-cyan-blue-to-vivid-purple-gradient-background {\n    background: linear-gradient(-135deg, #0693e3 0%, #9b51e0 100%); }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background,\n  :root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background {\n    background: linear-gradient(-135deg, #00d084 0%, #0693e3 100%); }\n  :root .editor-styles-wrapper .has-light-green-cyan-to-vivid-green-cyan-gradient-background,\n  :root .has-light-green-cyan-to-vivid-green-cyan-gradient-background {\n    background: linear-gradient(-135deg, #7adcb4 0%, #00d082 100%); }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background,\n  :root .has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background {\n    background: linear-gradient(-135deg, #fcb900 0%, #ff6900 100%); }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-to-vivid-red-gradient-background,\n  :root .has-luminous-vivid-orange-to-vivid-red-gradient-background {\n    background: linear-gradient(-135deg, #ff6900 0%, #cf2e2e 100%); }\n  :root .editor-styles-wrapper .has-very-light-gray-to-cyan-bluish-gray-gradient-background,\n  :root .has-very-light-gray-to-cyan-bluish-gray-gradient-background {\n    background: linear-gradient(-135deg, #eeeeee 0%, #a9b8c3 100%); }\n  :root .editor-styles-wrapper .has-cool-to-warm-spectrum-gradient-background,\n  :root .has-cool-to-warm-spectrum-gradient-background {\n    background: linear-gradient(-135deg, #4aeadc 0%, #9778d1 20%, #cf2aba 40%, #ee2c82 60%, #fb6962 80%, #fef84c 100%); }\n  :root .editor-styles-wrapper .has-blush-light-purple-gradient-background,\n  :root .has-blush-light-purple-gradient-background {\n    background: linear-gradient(-135deg, #ffceec 0%, #9896f0 100%); }\n  :root .editor-styles-wrapper .has-blush-bordeaux-gradient-background,\n  :root .has-blush-bordeaux-gradient-background {\n    background: linear-gradient(-135deg, #fecda5 0%, #fe2d2d 50%, #6b003e 100%); }\n  :root .editor-styles-wrapper .has-purple-crush-gradient-background,\n  :root .has-purple-crush-gradient-background {\n    background: linear-gradient(-135deg, #34e2e4 0%, #4721fb 50%, #ab1dfe 100%); }\n  :root .editor-styles-wrapper .has-luminous-dusk-gradient-background,\n  :root .has-luminous-dusk-gradient-background {\n    background: linear-gradient(-135deg, #ffcb70 0%, #c751c0 50%, #4158d0 100%); }\n  :root .editor-styles-wrapper .has-hazy-dawn-gradient-background,\n  :root .has-hazy-dawn-gradient-background {\n    background: linear-gradient(-135deg, #faaca8 0%, #dad0ec 100%); }\n  :root .editor-styles-wrapper .has-pale-ocean-gradient-background,\n  :root .has-pale-ocean-gradient-background {\n    background: linear-gradient(-135deg, #fff5cb 0%, #b6e3d4 50%, #33a7b5 100%); }\n  :root .editor-styles-wrapper .has-electric-grass-gradient-background,\n  :root .has-electric-grass-gradient-background {\n    background: linear-gradient(-135deg, #caf880 0%, #71ce7e 100%); }\n  :root .editor-styles-wrapper .has-subdued-olive-gradient-background,\n  :root .has-subdued-olive-gradient-background {\n    background: linear-gradient(-135deg, #fafae1 0%, #67a671 100%); }\n  :root .editor-styles-wrapper .has-atomic-cream-gradient-background,\n  :root .has-atomic-cream-gradient-background {\n    background: linear-gradient(-135deg, #fdd79a 0%, #004a59 100%); }\n  :root .editor-styles-wrapper .has-nightshade-gradient-background,\n  :root .has-nightshade-gradient-background {\n    background: linear-gradient(-135deg, #330968 0%, #31cdcf 100%); }\n  :root .editor-styles-wrapper .has-midnight-gradient-background,\n  :root .has-midnight-gradient-background {\n    background: linear-gradient(-135deg, #020381 0%, #2874fc 100%); }\n  :root .editor-styles-wrapper .has-link-color a,\n  :root .has-link-color a {\n    color: #00e;\n    color: var(--wp--style--color--link, #00e); }\n\n.editor-styles-wrapper .has-small-font-size,\n.has-small-font-size {\n  font-size: 13px; }\n\n.editor-styles-wrapper .has-regular-font-size,\n.editor-styles-wrapper .has-normal-font-size,\n.has-regular-font-size,\n.has-normal-font-size {\n  font-size: 16px; }\n\n.editor-styles-wrapper .has-medium-font-size,\n.has-medium-font-size {\n  font-size: 20px; }\n\n.editor-styles-wrapper .has-large-font-size,\n.has-large-font-size {\n  font-size: 36px; }\n\n.editor-styles-wrapper .has-larger-font-size,\n.editor-styles-wrapper .has-huge-font-size,\n.has-larger-font-size,\n.has-huge-font-size {\n  font-size: 42px; }\n\n.has-text-align-center {\n  text-align: center; }\n\n.has-text-align-left {\n  text-align: left; }\n\n.has-text-align-right {\n  text-align: right; }\n\n#end-resizable-editor-section {\n  display: none; }\n\n.aligncenter {\n  clear: both; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.wp-block-audio figcaption {\n  margin-top: 0.5em;\n  margin-bottom: 1em; }\n\n.wp-block-audio audio {\n  width: 100%;\n  min-width: 300px; }\n\n.wp-block-button__link {\n  color: #fff;\n  background-color: #32373c;\n  border: none;\n  border-radius: 28px;\n  box-shadow: none;\n  cursor: pointer;\n  display: inline-block;\n  font-size: 18px;\n  padding: 12px 24px;\n  text-align: center;\n  text-decoration: none;\n  overflow-wrap: break-word; }\n  .wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, .wp-block-button__link:visited {\n    color: #fff; }\n  .wp-block-button__link.aligncenter {\n    text-align: center; }\n  .wp-block-button__link.alignright {\n    /*rtl:ignore*/\n    text-align: right; }\n\n.wp-block-button.is-style-squared,\n.wp-block-button__link.wp-block-button.is-style-squared {\n  border-radius: 0; }\n\n.wp-block-button.no-border-radius,\n.wp-block-button__link.no-border-radius {\n  border-radius: 0 !important; }\n\n.wp-block-button.is-style-outline .wp-block-button__link,\n.wp-block-button__link.is-style-outline {\n  color: #32373c;\n  background-color: transparent;\n  border: 2px solid; }\n\n.wp-block-buttons .wp-block-button {\n  display: inline-block;\n  margin-right: 8px;\n  margin-bottom: 8px; }\n  .wp-block-buttons .wp-block-button:last-child {\n    margin-right: 0; }\n\n.wp-block-buttons.alignright .wp-block-button {\n  /*rtl:ignore*/\n  margin-right: 0;\n  /*rtl:ignore*/\n  margin-left: 8px; }\n  .wp-block-buttons.alignright .wp-block-button:first-child {\n    margin-left: 0; }\n\n.wp-block-buttons.alignleft .wp-block-button {\n  /*rtl:ignore*/\n  margin-left: 0;\n  /*rtl:ignore*/\n  margin-right: 8px; }\n  .wp-block-buttons.alignleft .wp-block-button:last-child {\n    margin-right: 0; }\n\n.wp-block-button.aligncenter,\n.wp-block-buttons.aligncenter {\n  text-align: center; }\n\n.wp-block-calendar {\n  text-align: center; }\n  .wp-block-calendar th,\n  .wp-block-calendar tbody td {\n    padding: 4px;\n    border: 1px solid #ddd; }\n  .wp-block-calendar tfoot td {\n    border: none; }\n  .wp-block-calendar table {\n    width: 100%;\n    border-collapse: collapse;\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif; }\n  .wp-block-calendar table th {\n    font-weight: 400;\n    background: #ddd; }\n  .wp-block-calendar a {\n    text-decoration: underline; }\n  .wp-block-calendar tfoot a {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .wp-block-calendar table tbody,\n  .wp-block-calendar table caption {\n    color: #40464d; }\n\n.wp-block-categories.alignleft {\n  /*rtl:ignore*/\n  margin-right: 2em; }\n\n.wp-block-categories.alignright {\n  /*rtl:ignore*/\n  margin-left: 2em; }\n\n.wp-block-columns {\n  display: flex;\n  margin-bottom: 28px;\n  flex-wrap: wrap; }\n  @media (min-width: 782px) {\n    .wp-block-columns {\n      flex-wrap: nowrap; } }\n  .wp-block-columns.has-background {\n    padding: 20px 38px; }\n\n.wp-block-column {\n  flex-grow: 1;\n  min-width: 0;\n  word-break: break-word;\n  overflow-wrap: break-word; }\n  @media (max-width: 599px) {\n    .wp-block-column {\n      flex-basis: 100% !important; } }\n  @media (min-width: 600px) and (max-width: 781px) {\n    .wp-block-column {\n      flex-basis: calc(50% - 16px) !important;\n      flex-grow: 0; }\n      .wp-block-column:nth-child(even) {\n        margin-left: 32px; } }\n  @media (min-width: 782px) {\n    .wp-block-column {\n      flex-basis: 0;\n      flex-grow: 1; }\n      .wp-block-column[style*=\"flex-basis\"] {\n        flex-grow: 0; }\n      .wp-block-column:not(:first-child) {\n        margin-left: 32px; } }\n\n/**\n * All Columns Alignment\n */\n.wp-block-columns.are-vertically-aligned-top {\n  align-items: flex-start; }\n\n.wp-block-columns.are-vertically-aligned-center {\n  align-items: center; }\n\n.wp-block-columns.are-vertically-aligned-bottom {\n  align-items: flex-end; }\n\n/**\n * Individual Column Alignment\n */\n.wp-block-column.is-vertically-aligned-top {\n  align-self: flex-start; }\n\n.wp-block-column.is-vertically-aligned-center {\n  -ms-grid-row-align: center;\n      align-self: center; }\n\n.wp-block-column.is-vertically-aligned-bottom {\n  align-self: flex-end; }\n\n.wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom {\n  width: 100%; }\n\n.wp-block-cover-image,\n.wp-block-cover {\n  position: relative;\n  background-size: cover;\n  background-position: center center;\n  min-height: 430px;\n  height: 100%;\n  width: 100%;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  padding: 16px; }\n  .wp-block-cover-image.has-parallax,\n  .wp-block-cover.has-parallax {\n    background-attachment: fixed; }\n    @supports (-webkit-overflow-scrolling: touch) {\n      .wp-block-cover-image.has-parallax,\n      .wp-block-cover.has-parallax {\n        background-attachment: scroll; } }\n    @media (prefers-reduced-motion: reduce) {\n      .wp-block-cover-image.has-parallax,\n      .wp-block-cover.has-parallax {\n        background-attachment: scroll; } }\n  .wp-block-cover-image.has-background-dim,\n  .wp-block-cover.has-background-dim {\n    background-color: #000; }\n    .wp-block-cover-image.has-background-dim::before,\n    .wp-block-cover.has-background-dim::before {\n      content: \"\";\n      background-color: inherit; }\n  .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover-image .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover .wp-block-cover__gradient-background {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    z-index: 1; }\n  .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover-image .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim:not(.has-background-gradient)::before,\n  .wp-block-cover .wp-block-cover__gradient-background {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before {\n    opacity: 0.1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background {\n    opacity: 0.1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before {\n    opacity: 0.2; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background {\n    opacity: 0.2; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before {\n    opacity: 0.3; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background {\n    opacity: 0.3; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before {\n    opacity: 0.4; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background {\n    opacity: 0.4; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background {\n    opacity: 0.5; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before {\n    opacity: 0.6; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background {\n    opacity: 0.6; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before {\n    opacity: 0.7; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background {\n    opacity: 0.7; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before {\n    opacity: 0.8; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background {\n    opacity: 0.8; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before {\n    opacity: 0.9; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background {\n    opacity: 0.9; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before,\n  .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before {\n    opacity: 1; }\n  .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,\n  .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background {\n    opacity: 1; }\n  .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright,\n  .wp-block-cover.alignleft,\n  .wp-block-cover.alignright {\n    max-width: 290px;\n    width: 100%; }\n  .wp-block-cover-image::after,\n  .wp-block-cover::after {\n    display: block;\n    content: \"\";\n    font-size: 0;\n    min-height: inherit; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .wp-block-cover-image::after,\n      .wp-block-cover::after {\n        content: none; } }\n  .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright,\n  .wp-block-cover.aligncenter,\n  .wp-block-cover.alignleft,\n  .wp-block-cover.alignright {\n    display: flex; }\n  .wp-block-cover-image .wp-block-cover__inner-container,\n  .wp-block-cover .wp-block-cover__inner-container {\n    width: calc(100% - 70px);\n    z-index: 1;\n    color: #fff; }\n  .wp-block-cover-image p:not(.has-text-color),\n  .wp-block-cover-image h1:not(.has-text-color),\n  .wp-block-cover-image h2:not(.has-text-color),\n  .wp-block-cover-image h3:not(.has-text-color),\n  .wp-block-cover-image h4:not(.has-text-color),\n  .wp-block-cover-image h5:not(.has-text-color),\n  .wp-block-cover-image h6:not(.has-text-color),\n  .wp-block-cover-image .wp-block-subhead:not(.has-text-color),\n  .wp-block-cover p:not(.has-text-color),\n  .wp-block-cover h1:not(.has-text-color),\n  .wp-block-cover h2:not(.has-text-color),\n  .wp-block-cover h3:not(.has-text-color),\n  .wp-block-cover h4:not(.has-text-color),\n  .wp-block-cover h5:not(.has-text-color),\n  .wp-block-cover h6:not(.has-text-color),\n  .wp-block-cover .wp-block-subhead:not(.has-text-color) {\n    color: inherit; }\n  .wp-block-cover-image.is-position-top-left,\n  .wp-block-cover.is-position-top-left {\n    align-items: flex-start;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-top-center,\n  .wp-block-cover.is-position-top-center {\n    align-items: flex-start;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-top-right,\n  .wp-block-cover.is-position-top-right {\n    align-items: flex-start;\n    justify-content: flex-end; }\n  .wp-block-cover-image.is-position-center-left,\n  .wp-block-cover.is-position-center-left {\n    align-items: center;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-center-center,\n  .wp-block-cover.is-position-center-center {\n    align-items: center;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-center-right,\n  .wp-block-cover.is-position-center-right {\n    align-items: center;\n    justify-content: flex-end; }\n  .wp-block-cover-image.is-position-bottom-left,\n  .wp-block-cover.is-position-bottom-left {\n    align-items: flex-end;\n    justify-content: flex-start; }\n  .wp-block-cover-image.is-position-bottom-center,\n  .wp-block-cover.is-position-bottom-center {\n    align-items: flex-end;\n    justify-content: center; }\n  .wp-block-cover-image.is-position-bottom-right,\n  .wp-block-cover.is-position-bottom-right {\n    align-items: flex-end;\n    justify-content: flex-end; }\n  .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,\n  .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container {\n    margin: 0;\n    width: auto; }\n\n.wp-block-cover__video-background {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translateX(-50%) translateY(-50%);\n  width: 100%;\n  height: 100%;\n  z-index: 0;\n  object-fit: cover; }\n\nsection.wp-block-cover-image h2,\n.wp-block-cover-image-text,\n.wp-block-cover-text {\n  color: #fff; }\n  section.wp-block-cover-image h2 a,\n  section.wp-block-cover-image h2 a:hover,\n  section.wp-block-cover-image h2 a:focus,\n  section.wp-block-cover-image h2 a:active,\n  .wp-block-cover-image-text a,\n  .wp-block-cover-image-text a:hover,\n  .wp-block-cover-image-text a:focus,\n  .wp-block-cover-image-text a:active,\n  .wp-block-cover-text a,\n  .wp-block-cover-text a:hover,\n  .wp-block-cover-text a:focus,\n  .wp-block-cover-text a:active {\n    color: #fff; }\n\n.wp-block-cover-image\n.wp-block-cover.has-left-content {\n  justify-content: flex-start; }\n\n.wp-block-cover-image\n.wp-block-cover.has-right-content {\n  justify-content: flex-end; }\n\nsection.wp-block-cover-image.has-left-content > h2,\n.wp-block-cover-image.has-left-content .wp-block-cover-image-text,\n.wp-block-cover.has-left-content .wp-block-cover-text {\n  margin-left: 0;\n  text-align: left; }\n\nsection.wp-block-cover-image.has-right-content > h2,\n.wp-block-cover-image.has-right-content .wp-block-cover-image-text,\n.wp-block-cover.has-right-content .wp-block-cover-text {\n  margin-right: 0;\n  text-align: right; }\n\nsection.wp-block-cover-image > h2,\n.wp-block-cover-image .wp-block-cover-image-text,\n.wp-block-cover .wp-block-cover-text {\n  font-size: 2em;\n  line-height: 1.25;\n  z-index: 1;\n  margin-bottom: 0;\n  max-width: 580px;\n  padding: 14px;\n  text-align: center; }\n\n.wp-block[data-align=\"left\"] > [data-type^=\"core-embed\"],\n.wp-block[data-align=\"right\"] > [data-type^=\"core-embed\"],\n.wp-block-embed.alignleft,\n.wp-block-embed.alignright {\n  max-width: 360px;\n  width: 100%; }\n  .wp-block[data-align=\"left\"] > [data-type^=\"core-embed\"] .wp-block-embed__wrapper,\n  .wp-block[data-align=\"right\"] > [data-type^=\"core-embed\"] .wp-block-embed__wrapper,\n  .wp-block-embed.alignleft .wp-block-embed__wrapper,\n  .wp-block-embed.alignright .wp-block-embed__wrapper {\n    min-width: 280px; }\n\n.wp-block-embed {\n  margin-bottom: 1em; }\n  .wp-block-embed figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n  .wp-block-embed iframe {\n    max-width: 100%; }\n\n.wp-block-embed__wrapper {\n  position: relative; }\n\n.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before {\n  content: \"\";\n  display: block;\n  padding-top: 50%; }\n\n.wp-embed-responsive .wp-has-aspect-ratio iframe {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  height: 100%;\n  width: 100%; }\n\n.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before {\n  padding-top: 42.85%; }\n\n.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before {\n  padding-top: 50%; }\n\n.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {\n  padding-top: 56.25%; }\n\n.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before {\n  padding-top: 75%; }\n\n.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before {\n  padding-top: 100%; }\n\n.wp-embed-responsive .wp-embed-aspect-9-6 .wp-block-embed__wrapper::before {\n  padding-top: 66.66%; }\n\n.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before {\n  padding-top: 200%; }\n\n.wp-block-file {\n  margin-bottom: 1.5em; }\n  .wp-block-file.aligncenter {\n    text-align: center; }\n  .wp-block-file.alignright {\n    /*rtl:ignore*/\n    text-align: right; }\n  .wp-block-file .wp-block-file__button {\n    background: #32373c;\n    border-radius: 2em;\n    color: #fff;\n    font-size: 13px;\n    padding: 0.5em 1em; }\n  .wp-block-file a.wp-block-file__button {\n    text-decoration: none; }\n    .wp-block-file a.wp-block-file__button:hover, .wp-block-file a.wp-block-file__button:visited, .wp-block-file a.wp-block-file__button:focus, .wp-block-file a.wp-block-file__button:active {\n      box-shadow: none;\n      color: #fff;\n      opacity: 0.85;\n      text-decoration: none; }\n  .wp-block-file * + .wp-block-file__button {\n    margin-left: 0.75em; }\n\n.wp-block-gallery,\n.blocks-gallery-grid {\n  display: flex;\n  flex-wrap: wrap;\n  list-style-type: none;\n  padding: 0;\n  margin: 0; }\n  .wp-block-gallery .blocks-gallery-image,\n  .wp-block-gallery .blocks-gallery-item,\n  .blocks-gallery-grid .blocks-gallery-image,\n  .blocks-gallery-grid .blocks-gallery-item {\n    margin: 0 16px 16px 0;\n    display: flex;\n    flex-grow: 1;\n    flex-direction: column;\n    justify-content: center;\n    position: relative; }\n    .wp-block-gallery .blocks-gallery-image figure,\n    .wp-block-gallery .blocks-gallery-item figure,\n    .blocks-gallery-grid .blocks-gallery-image figure,\n    .blocks-gallery-grid .blocks-gallery-item figure {\n      margin: 0;\n      height: 100%; }\n      @supports ((position: -webkit-sticky) or (position: sticky)) {\n        .wp-block-gallery .blocks-gallery-image figure,\n        .wp-block-gallery .blocks-gallery-item figure,\n        .blocks-gallery-grid .blocks-gallery-image figure,\n        .blocks-gallery-grid .blocks-gallery-item figure {\n          display: flex;\n          align-items: flex-end;\n          justify-content: flex-start; } }\n    .wp-block-gallery .blocks-gallery-image img,\n    .wp-block-gallery .blocks-gallery-item img,\n    .blocks-gallery-grid .blocks-gallery-image img,\n    .blocks-gallery-grid .blocks-gallery-item img {\n      display: block;\n      max-width: 100%;\n      height: auto; }\n    .wp-block-gallery .blocks-gallery-image img,\n    .wp-block-gallery .blocks-gallery-item img,\n    .blocks-gallery-grid .blocks-gallery-image img,\n    .blocks-gallery-grid .blocks-gallery-item img {\n      width: 100%; }\n      @supports ((position: -webkit-sticky) or (position: sticky)) {\n        .wp-block-gallery .blocks-gallery-image img,\n        .wp-block-gallery .blocks-gallery-item img,\n        .blocks-gallery-grid .blocks-gallery-image img,\n        .blocks-gallery-grid .blocks-gallery-item img {\n          width: auto; } }\n    .wp-block-gallery .blocks-gallery-image figcaption,\n    .wp-block-gallery .blocks-gallery-item figcaption,\n    .blocks-gallery-grid .blocks-gallery-image figcaption,\n    .blocks-gallery-grid .blocks-gallery-item figcaption {\n      position: absolute;\n      bottom: 0;\n      width: 100%;\n      max-height: 100%;\n      overflow: auto;\n      padding: 40px 10px 9px;\n      color: #fff;\n      text-align: center;\n      font-size: 13px;\n      background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); }\n      .wp-block-gallery .blocks-gallery-image figcaption img,\n      .wp-block-gallery .blocks-gallery-item figcaption img,\n      .blocks-gallery-grid .blocks-gallery-image figcaption img,\n      .blocks-gallery-grid .blocks-gallery-item figcaption img {\n        display: inline; }\n  .wp-block-gallery.is-cropped .blocks-gallery-image a,\n  .wp-block-gallery.is-cropped .blocks-gallery-image img,\n  .wp-block-gallery.is-cropped .blocks-gallery-item a,\n  .wp-block-gallery.is-cropped .blocks-gallery-item img,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-image a,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-image img,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-item a,\n  .blocks-gallery-grid.is-cropped .blocks-gallery-item img {\n    width: 100%; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .wp-block-gallery.is-cropped .blocks-gallery-image a,\n      .wp-block-gallery.is-cropped .blocks-gallery-image img,\n      .wp-block-gallery.is-cropped .blocks-gallery-item a,\n      .wp-block-gallery.is-cropped .blocks-gallery-item img,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-image a,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-image img,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-item a,\n      .blocks-gallery-grid.is-cropped .blocks-gallery-item img {\n        height: 100%;\n        flex: 1;\n        object-fit: cover; } }\n  .wp-block-gallery .blocks-gallery-image,\n  .wp-block-gallery .blocks-gallery-item,\n  .blocks-gallery-grid .blocks-gallery-image,\n  .blocks-gallery-grid .blocks-gallery-item {\n    width: calc(50% - 16px); }\n    .wp-block-gallery .blocks-gallery-image:nth-of-type(even),\n    .wp-block-gallery .blocks-gallery-item:nth-of-type(even),\n    .blocks-gallery-grid .blocks-gallery-image:nth-of-type(even),\n    .blocks-gallery-grid .blocks-gallery-item:nth-of-type(even) {\n      margin-right: 0; }\n  .wp-block-gallery.columns-1 .blocks-gallery-image,\n  .wp-block-gallery.columns-1 .blocks-gallery-item,\n  .blocks-gallery-grid.columns-1 .blocks-gallery-image,\n  .blocks-gallery-grid.columns-1 .blocks-gallery-item {\n    width: 100%;\n    margin-right: 0; }\n  @media (min-width: 600px) {\n    .wp-block-gallery.columns-3 .blocks-gallery-image,\n    .wp-block-gallery.columns-3 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-3 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-3 .blocks-gallery-item {\n      width: calc(33.33333% - 10.66667px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-4 .blocks-gallery-image,\n    .wp-block-gallery.columns-4 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-4 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-4 .blocks-gallery-item {\n      width: calc(25% - 12px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-5 .blocks-gallery-image,\n    .wp-block-gallery.columns-5 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-5 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-5 .blocks-gallery-item {\n      width: calc(20% - 12.8px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-6 .blocks-gallery-image,\n    .wp-block-gallery.columns-6 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-6 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-6 .blocks-gallery-item {\n      width: calc(16.66667% - 13.33333px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-7 .blocks-gallery-image,\n    .wp-block-gallery.columns-7 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-7 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-7 .blocks-gallery-item {\n      width: calc(14.28571% - 13.71429px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-8 .blocks-gallery-image,\n    .wp-block-gallery.columns-8 .blocks-gallery-item,\n    .blocks-gallery-grid.columns-8 .blocks-gallery-image,\n    .blocks-gallery-grid.columns-8 .blocks-gallery-item {\n      width: calc(12.5% - 14px);\n      margin-right: 16px; }\n    .wp-block-gallery.columns-1 .blocks-gallery-image:nth-of-type(1n),\n    .wp-block-gallery.columns-1 .blocks-gallery-item:nth-of-type(1n),\n    .blocks-gallery-grid.columns-1 .blocks-gallery-image:nth-of-type(1n),\n    .blocks-gallery-grid.columns-1 .blocks-gallery-item:nth-of-type(1n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-2 .blocks-gallery-image:nth-of-type(2n),\n    .wp-block-gallery.columns-2 .blocks-gallery-item:nth-of-type(2n),\n    .blocks-gallery-grid.columns-2 .blocks-gallery-image:nth-of-type(2n),\n    .blocks-gallery-grid.columns-2 .blocks-gallery-item:nth-of-type(2n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-3 .blocks-gallery-image:nth-of-type(3n),\n    .wp-block-gallery.columns-3 .blocks-gallery-item:nth-of-type(3n),\n    .blocks-gallery-grid.columns-3 .blocks-gallery-image:nth-of-type(3n),\n    .blocks-gallery-grid.columns-3 .blocks-gallery-item:nth-of-type(3n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-4 .blocks-gallery-image:nth-of-type(4n),\n    .wp-block-gallery.columns-4 .blocks-gallery-item:nth-of-type(4n),\n    .blocks-gallery-grid.columns-4 .blocks-gallery-image:nth-of-type(4n),\n    .blocks-gallery-grid.columns-4 .blocks-gallery-item:nth-of-type(4n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-5 .blocks-gallery-image:nth-of-type(5n),\n    .wp-block-gallery.columns-5 .blocks-gallery-item:nth-of-type(5n),\n    .blocks-gallery-grid.columns-5 .blocks-gallery-image:nth-of-type(5n),\n    .blocks-gallery-grid.columns-5 .blocks-gallery-item:nth-of-type(5n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-6 .blocks-gallery-image:nth-of-type(6n),\n    .wp-block-gallery.columns-6 .blocks-gallery-item:nth-of-type(6n),\n    .blocks-gallery-grid.columns-6 .blocks-gallery-image:nth-of-type(6n),\n    .blocks-gallery-grid.columns-6 .blocks-gallery-item:nth-of-type(6n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-7 .blocks-gallery-image:nth-of-type(7n),\n    .wp-block-gallery.columns-7 .blocks-gallery-item:nth-of-type(7n),\n    .blocks-gallery-grid.columns-7 .blocks-gallery-image:nth-of-type(7n),\n    .blocks-gallery-grid.columns-7 .blocks-gallery-item:nth-of-type(7n) {\n      margin-right: 0; }\n    .wp-block-gallery.columns-8 .blocks-gallery-image:nth-of-type(8n),\n    .wp-block-gallery.columns-8 .blocks-gallery-item:nth-of-type(8n),\n    .blocks-gallery-grid.columns-8 .blocks-gallery-image:nth-of-type(8n),\n    .blocks-gallery-grid.columns-8 .blocks-gallery-item:nth-of-type(8n) {\n      margin-right: 0; } }\n  .wp-block-gallery .blocks-gallery-image:last-child,\n  .wp-block-gallery .blocks-gallery-item:last-child,\n  .blocks-gallery-grid .blocks-gallery-image:last-child,\n  .blocks-gallery-grid .blocks-gallery-item:last-child {\n    margin-right: 0; }\n  .wp-block-gallery.alignleft, .wp-block-gallery.alignright,\n  .blocks-gallery-grid.alignleft,\n  .blocks-gallery-grid.alignright {\n    max-width: 290px;\n    width: 100%; }\n  .wp-block-gallery.aligncenter .blocks-gallery-item figure,\n  .blocks-gallery-grid.aligncenter .blocks-gallery-item figure {\n    justify-content: center; }\n\nh1.has-background,\nh2.has-background,\nh3.has-background,\nh4.has-background,\nh5.has-background,\nh6.has-background {\n  padding: 20px 38px; }\n\n.wp-block-image {\n  margin-bottom: 1em; }\n  .wp-block-image img {\n    max-width: 100%; }\n  .wp-block-image.aligncenter {\n    text-align: center; }\n  .wp-block-image.alignfull img,\n  .wp-block-image.alignwide img {\n    width: 100%; }\n  .wp-block-image .alignleft,\n  .wp-block-image .alignright,\n  .wp-block-image .aligncenter, .wp-block-image.is-resized {\n    display: table; }\n    .wp-block-image .alignleft > figcaption,\n    .wp-block-image .alignright > figcaption,\n    .wp-block-image .aligncenter > figcaption, .wp-block-image.is-resized > figcaption {\n      display: table-caption;\n      caption-side: bottom; }\n  .wp-block-image .alignleft {\n    /*rtl:ignore*/\n    float: left;\n    /*rtl:ignore*/\n    margin-left: 0;\n    margin-right: 1em;\n    margin-top: 0.5em;\n    margin-bottom: 0.5em; }\n  .wp-block-image .alignright {\n    /*rtl:ignore*/\n    float: right;\n    /*rtl:ignore*/\n    margin-right: 0;\n    margin-left: 1em;\n    margin-top: 0.5em;\n    margin-bottom: 0.5em; }\n  .wp-block-image .aligncenter {\n    margin-left: auto;\n    margin-right: auto; }\n  .wp-block-image figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n\n.is-style-rounded img {\n  border-radius: 9999px; }\n\n.is-style-circle-mask img {\n  border-radius: 9999px; }\n  @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) {\n    .is-style-circle-mask img {\n      /* stylelint-disable */\n      -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"50\" cy=\"50\" r=\"50\"/></svg>');\n              mask-image: url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"50\" cy=\"50\" r=\"50\"/></svg>');\n      /* stylelint-enable */\n      mask-mode: alpha;\n      -webkit-mask-repeat: no-repeat;\n              mask-repeat: no-repeat;\n      -webkit-mask-size: contain;\n              mask-size: contain;\n      -webkit-mask-position: center;\n              mask-position: center;\n      border-radius: 0; } }\n\n.wp-block-latest-comments__comment {\n  font-size: 15px;\n  line-height: 1.1;\n  list-style: none;\n  margin-bottom: 1em; }\n  .has-avatars .wp-block-latest-comments__comment {\n    min-height: 36px;\n    list-style: none; }\n    .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta,\n    .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt {\n      margin-left: 52px; }\n  .has-dates .wp-block-latest-comments__comment,\n  .has-excerpts .wp-block-latest-comments__comment {\n    line-height: 1.5; }\n\n.wp-block-latest-comments__comment-excerpt p {\n  font-size: 14px;\n  line-height: 1.8;\n  margin: 5px 0 20px; }\n\n.wp-block-latest-comments__comment-date {\n  color: #8f98a1;\n  display: block;\n  font-size: 12px; }\n\n.wp-block-latest-comments .avatar,\n.wp-block-latest-comments__comment-avatar {\n  border-radius: 24px;\n  display: block;\n  float: left;\n  height: 40px;\n  margin-right: 12px;\n  width: 40px; }\n\n.wp-block-latest-posts.alignleft {\n  /*rtl:ignore*/\n  margin-right: 2em; }\n\n.wp-block-latest-posts.alignright {\n  /*rtl:ignore*/\n  margin-left: 2em; }\n\n.wp-block-latest-posts.wp-block-latest-posts__list {\n  list-style: none; }\n  .wp-block-latest-posts.wp-block-latest-posts__list li {\n    clear: both; }\n\n.wp-block-latest-posts.is-grid {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0; }\n  .wp-block-latest-posts.is-grid li {\n    margin: 0 20px 20px 0;\n    width: 100%; }\n\n@media (min-width: 600px) {\n  .wp-block-latest-posts.columns-2 li {\n    width: calc((100% / 2) - 20px); }\n  .wp-block-latest-posts.columns-3 li {\n    width: calc((100% / 3) - 20px); }\n  .wp-block-latest-posts.columns-4 li {\n    width: calc((100% / 4) - 20px); }\n  .wp-block-latest-posts.columns-5 li {\n    width: calc((100% / 5) - 20px); }\n  .wp-block-latest-posts.columns-6 li {\n    width: calc((100% / 6) - 20px); } }\n\n.wp-block-latest-posts__post-date,\n.wp-block-latest-posts__post-author {\n  display: block;\n  color: #6c7781;\n  font-size: 13px; }\n\n.wp-block-latest-posts__post-excerpt {\n  margin-top: 8px;\n  margin-bottom: 16px; }\n\n.wp-block-latest-posts__featured-image img {\n  height: auto;\n  width: auto; }\n\n.wp-block-latest-posts__featured-image.alignleft {\n  /*rtl:ignore*/\n  margin-right: 1em; }\n\n.wp-block-latest-posts__featured-image.alignright {\n  /*rtl:ignore*/\n  margin-left: 1em; }\n\n.wp-block-latest-posts__featured-image.aligncenter {\n  margin-bottom: 1em;\n  text-align: center; }\n\n.edit-post-visual-editor .wp-block-latest-posts.is-grid li {\n  margin-bottom: 20px; }\n\n.wp-block-media-text {\n  /*!rtl:begin:ignore*/\n  direction: ltr;\n  /*!rtl:end:ignore*/\n  display: -ms-grid;\n  display: grid;\n  -ms-grid-columns: 50% 1fr;\n  grid-template-columns: 50% 1fr;\n  -ms-grid-rows: auto;\n  grid-template-rows: auto; }\n  .wp-block-media-text.has-media-on-the-right {\n    -ms-grid-columns: 1fr 50%;\n    grid-template-columns: 1fr 50%; }\n\n.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-top .wp-block-media-text__media {\n  -ms-grid-row-align: start;\n      align-self: start; }\n\n.wp-block-media-text .wp-block-media-text__content,\n.wp-block-media-text .wp-block-media-text__media,\n.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-center .wp-block-media-text__media {\n  -ms-grid-row-align: center;\n      align-self: center; }\n\n.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__content,\n.wp-block-media-text.is-vertically-aligned-bottom .wp-block-media-text__media {\n  -ms-grid-row-align: end;\n      align-self: end; }\n\n.wp-block-media-text .wp-block-media-text__media {\n  /*!rtl:begin:ignore*/\n  -ms-grid-column: 1;\n  grid-column: 1;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  /*!rtl:end:ignore*/\n  margin: 0; }\n\n.wp-block-media-text .wp-block-media-text__content {\n  direction: ltr;\n  /*!rtl:begin:ignore*/\n  -ms-grid-column: 2;\n  grid-column: 2;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  /*!rtl:end:ignore*/\n  padding: 0 8% 0 8%;\n  word-break: break-word; }\n\n.wp-block-media-text.has-media-on-the-right .wp-block-media-text__media {\n  /*!rtl:begin:ignore*/\n  -ms-grid-column: 2;\n  grid-column: 2;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  /*!rtl:end:ignore*/ }\n\n.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {\n  /*!rtl:begin:ignore*/\n  -ms-grid-column: 1;\n  grid-column: 1;\n  -ms-grid-row: 1;\n  grid-row: 1;\n  /*!rtl:end:ignore*/ }\n\n.wp-block-media-text__media img,\n.wp-block-media-text__media video {\n  max-width: unset;\n  width: 100%;\n  vertical-align: middle; }\n\n.wp-block-media-text.is-image-fill figure.wp-block-media-text__media {\n  height: 100%;\n  min-height: 250px;\n  background-size: cover; }\n\n.wp-block-media-text.is-image-fill figure.wp-block-media-text__media > img {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0; }\n\n/*\n* Here we here not able to use a mobile first CSS approach.\n* Custom widths are set using inline styles, and on mobile,\n* we need 100% width, so we use important to overwrite the inline style.\n* If the style were set on mobile first, on desktop styles,\n* we would have no way of setting the style again to the inline style.\n*/\n@media (max-width: 600px) {\n  .wp-block-media-text.is-stacked-on-mobile {\n    -ms-grid-columns: 100% !important;\n    grid-template-columns: 100% !important; }\n    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__media {\n      -ms-grid-column: 1;\n      grid-column: 1;\n      -ms-grid-row: 1;\n      grid-row: 1; }\n    .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {\n      -ms-grid-column: 1;\n      grid-column: 1;\n      -ms-grid-row: 2;\n      grid-row: 2; }\n  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__media {\n    -ms-grid-column: 1;\n    grid-column: 1;\n    -ms-grid-row: 2;\n    grid-row: 2; }\n  .wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right .wp-block-media-text__content {\n    -ms-grid-column: 1;\n    grid-column: 1;\n    -ms-grid-row: 1;\n    grid-row: 1; } }\n\n.wp-block-navigation .wp-block-navigation-link:not(.has-text-color),\n.wp-block-navigation.is-style-light .wp-block-navigation-link:not(.has-text-color) {\n  color: #1e1e1e; }\n\n.wp-block-navigation:not(.has-background) .wp-block-navigation__container,\n.wp-block-navigation.is-style-light:not(.has-background) .wp-block-navigation__container {\n  background-color: #fff; }\n\n.wp-block-navigation.is-style-dark .wp-block-navigation-link:not(.has-text-color) {\n  color: #fff; }\n\n.wp-block-navigation.is-style-dark:not(.has-background) .wp-block-navigation__container {\n  background-color: #1e1e1e; }\n\n.items-justified-left > ul {\n  justify-content: flex-start; }\n\n.items-justified-center > ul {\n  justify-content: center; }\n\n.items-justified-right > ul {\n  justify-content: flex-end; }\n\n.wp-block-navigation-link {\n  display: flex;\n  align-items: center;\n  position: relative;\n  margin: 0; }\n  .wp-block-navigation-link .wp-block-navigation__container:empty {\n    display: none; }\n\n.wp-block-navigation__container {\n  list-style: none;\n  margin: 0;\n  padding-left: 0;\n  display: flex;\n  flex-wrap: wrap; }\n  .is-vertical .wp-block-navigation__container {\n    display: block; }\n\n.has-child .wp-block-navigation__container {\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  background-color: inherit;\n  color: inherit;\n  position: absolute;\n  left: 0;\n  top: 100%;\n  width: fit-content;\n  z-index: 1;\n  opacity: 0;\n  transition: opacity 0.1s linear;\n  visibility: hidden; }\n  .has-child .wp-block-navigation__container > .wp-block-navigation-link > .wp-block-navigation-link__content {\n    flex-grow: 1; }\n  .has-child .wp-block-navigation__container > .wp-block-navigation-link > .wp-block-navigation-link__submenu-icon {\n    padding-right: 8px; }\n  @media (min-width: 782px) {\n    .has-child .wp-block-navigation__container {\n      left: 24px; }\n      .has-child .wp-block-navigation__container .wp-block-navigation__container {\n        left: 100%;\n        top: -1px; }\n        .has-child .wp-block-navigation__container .wp-block-navigation__container::before {\n          content: \"\";\n          position: absolute;\n          right: 100%;\n          height: 100%;\n          display: block;\n          width: 8px;\n          background: transparent; }\n      .has-child .wp-block-navigation__container .wp-block-navigation-link__submenu-icon svg {\n        transform: rotate(0); } }\n\n.has-child:hover {\n  cursor: pointer; }\n  .has-child:hover > .wp-block-navigation__container {\n    visibility: visible;\n    opacity: 1;\n    display: flex;\n    flex-direction: column; }\n\n.has-child:focus-within {\n  cursor: pointer; }\n  .has-child:focus-within > .wp-block-navigation__container {\n    visibility: visible;\n    opacity: 1;\n    display: flex;\n    flex-direction: column; }\n\n.wp-block-navigation-link__content {\n  text-decoration: none;\n  padding: 8px 16px; }\n  .wp-block-navigation-link__content + .wp-block-navigation-link__content {\n    padding-top: 0; }\n  .has-text-color .wp-block-navigation-link__content {\n    color: inherit; }\n\n.wp-block-navigation-link__label {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  word-break: normal;\n  overflow-wrap: break-word; }\n\n.wp-block-navigation-link__submenu-icon {\n  height: inherit;\n  padding: 6px 16px; }\n  .wp-block-navigation-link__submenu-icon svg {\n    fill: currentColor; }\n    @media (min-width: 782px) {\n      .wp-block-navigation-link__submenu-icon svg {\n        transform: rotate(90deg); } }\n\n.is-small-text {\n  font-size: 14px; }\n\n.is-regular-text {\n  font-size: 16px; }\n\n.is-large-text {\n  font-size: 36px; }\n\n.is-larger-text {\n  font-size: 48px; }\n\n.has-drop-cap:not(:focus)::first-letter {\n  float: left;\n  font-size: 8.4em;\n  line-height: 0.68;\n  font-weight: 100;\n  margin: 0.05em 0.1em 0 0;\n  text-transform: uppercase;\n  font-style: normal; }\n\np.has-background {\n  padding: 20px 38px; }\n\np.has-text-color a {\n  color: inherit; }\n\n.wp-block-post-author {\n  display: flex;\n  flex-wrap: wrap;\n  line-height: 1.5; }\n  .wp-block-post-author__byline {\n    width: 100%;\n    margin-top: 0;\n    margin-bottom: 0;\n    font-size: 0.5em; }\n  .wp-block-post-author__avatar {\n    margin-right: 16px; }\n  .wp-block-post-author__bio {\n    margin-bottom: 8px;\n    font-size: 0.7em; }\n  .wp-block-post-author__content {\n    flex-grow: 1;\n    flex-basis: 0; }\n  .wp-block-post-author__name {\n    font-weight: bold;\n    margin: 0; }\n\n.wp-block-pullquote {\n  padding: 3em 0;\n  margin-left: 0;\n  margin-right: 0;\n  text-align: center; }\n  .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright {\n    max-width: 290px; }\n    .wp-block-pullquote.alignleft p, .wp-block-pullquote.alignright p {\n      font-size: 20px; }\n  .wp-block-pullquote p {\n    font-size: 28px;\n    line-height: 1.6; }\n  .wp-block-pullquote cite,\n  .wp-block-pullquote footer {\n    position: relative; }\n  .wp-block-pullquote .has-text-color a {\n    color: inherit; }\n\n.wp-block-pullquote:not(.is-style-solid-color) {\n  background: none; }\n\n.wp-block-pullquote.is-style-solid-color {\n  border: none; }\n  .wp-block-pullquote.is-style-solid-color blockquote {\n    margin-left: auto;\n    margin-right: auto;\n    text-align: left;\n    max-width: 60%; }\n    .wp-block-pullquote.is-style-solid-color blockquote p {\n      margin-top: 0;\n      margin-bottom: 0;\n      font-size: 32px; }\n    .wp-block-pullquote.is-style-solid-color blockquote cite {\n      text-transform: none;\n      font-style: normal; }\n\n.wp-block-pullquote cite {\n  color: inherit; }\n\n.wp-block-quote.is-style-large, .wp-block-quote.is-large {\n  margin: 0 0 16px;\n  padding: 0 1em; }\n  .wp-block-quote.is-style-large p, .wp-block-quote.is-large p {\n    font-size: 24px;\n    font-style: italic;\n    line-height: 1.6; }\n  .wp-block-quote.is-style-large cite,\n  .wp-block-quote.is-style-large footer, .wp-block-quote.is-large cite,\n  .wp-block-quote.is-large footer {\n    font-size: 18px;\n    text-align: right; }\n\n.wp-block-rss.alignleft {\n  /*rtl:ignore*/\n  margin-right: 2em; }\n\n.wp-block-rss.alignright {\n  /*rtl:ignore*/\n  margin-left: 2em; }\n\n.wp-block-rss.is-grid {\n  display: flex;\n  flex-wrap: wrap;\n  padding: 0;\n  list-style: none; }\n  .wp-block-rss.is-grid li {\n    margin: 0 16px 16px 0;\n    width: 100%; }\n\n@media (min-width: 600px) {\n  .wp-block-rss.columns-2 li {\n    width: calc(( 100% / 2 ) - 16px); }\n  .wp-block-rss.columns-3 li {\n    width: calc(( 100% / 3 ) - 16px); }\n  .wp-block-rss.columns-4 li {\n    width: calc(( 100% / 4 ) - 16px); }\n  .wp-block-rss.columns-5 li {\n    width: calc(( 100% / 5 ) - 16px); }\n  .wp-block-rss.columns-6 li {\n    width: calc(( 100% / 6 ) - 16px); } }\n\n.wp-block-rss__item-publish-date,\n.wp-block-rss__item-author {\n  display: block;\n  color: #6c7781;\n  font-size: 13px; }\n\n.wp-block-search {\n  display: flex;\n  flex-wrap: wrap; }\n  .wp-block-search .wp-block-search__label {\n    width: 100%; }\n  .wp-block-search .wp-block-search__input {\n    flex-grow: 1;\n    max-width: 360px; }\n  .wp-block-search .wp-block-search__button {\n    margin-left: 10px; }\n\n.wp-block-separator.is-style-wide {\n  border-bottom-width: 1px; }\n\n.wp-block-separator.is-style-dots {\n  background: none !important;\n  border: none;\n  text-align: center;\n  max-width: none;\n  line-height: 1;\n  height: auto; }\n  .wp-block-separator.is-style-dots::before {\n    content: \"\\00b7 \\00b7 \\00b7\";\n    color: currentColor;\n    font-size: 20px;\n    letter-spacing: 2em;\n    /*rtl:ignore*/\n    padding-left: 2em;\n    font-family: serif; }\n\n.wp-block-social-links {\n  display: flex;\n  justify-content: flex-start;\n  padding-left: 0;\n  padding-right: 0;\n  margin-left: 0; }\n  .wp-block-social-links .wp-social-link a,\n  .wp-block-social-links .wp-social-link a:hover {\n    text-decoration: none;\n    border-bottom: 0;\n    box-shadow: none; }\n\n.wp-social-link {\n  display: block;\n  width: 36px;\n  height: 36px;\n  border-radius: 36px;\n  margin-right: 8px;\n  transition: transform 0.1s ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .wp-social-link {\n      transition-duration: 0s; } }\n  .wp-social-link a {\n    padding: 6px;\n    display: block;\n    line-height: 0;\n    transition: transform 0.1s ease; }\n  .wp-social-link a,\n  .wp-social-link a:hover,\n  .wp-social-link a:active,\n  .wp-social-link a:visited,\n  .wp-social-link svg {\n    color: currentColor;\n    fill: currentColor; }\n  .wp-social-link:hover {\n    transform: scale(1.1); }\n\n.wp-block-social-links.aligncenter {\n  justify-content: center;\n  display: flex; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link {\n  background-color: #f0f0f0;\n  color: #444; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-amazon {\n  background-color: #f90;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-bandcamp {\n  background-color: #1ea0c3;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-behance {\n  background-color: #0757fe;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-codepen {\n  background-color: #1e1f26;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-deviantart {\n  background-color: #02e49b;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dribbble {\n  background-color: #e94c89;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-dropbox {\n  background-color: #4280ff;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-etsy {\n  background-color: #f45800;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-facebook {\n  background-color: #1778f2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-fivehundredpx {\n  background-color: #000;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-flickr {\n  background-color: #0461dd;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-foursquare {\n  background-color: #e65678;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-github {\n  background-color: #24292d;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-goodreads {\n  background-color: #eceadd;\n  color: #382110; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-google {\n  background-color: #ea4434;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-instagram {\n  background-color: #f00075;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-lastfm {\n  background-color: #e21b24;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-linkedin {\n  background-color: #0d66c2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-mastodon {\n  background-color: #3288d4;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-medium {\n  background-color: #02ab6c;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-meetup {\n  background-color: #f6405f;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pinterest {\n  background-color: #e60122;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-pocket {\n  background-color: #ef4155;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-reddit {\n  background-color: #fe4500;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-skype {\n  background-color: #0478d7;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-snapchat {\n  background-color: #fefc00;\n  color: #fff;\n  stroke: #000; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-soundcloud {\n  background-color: #ff5600;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-spotify {\n  background-color: #1bd760;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-tumblr {\n  background-color: #011835;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitch {\n  background-color: #6440a4;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-twitter {\n  background-color: #1da1f2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vimeo {\n  background-color: #1eb7ea;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-vk {\n  background-color: #4680c2;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-wordpress {\n  background-color: #3499cd;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-yelp {\n  background-color: #d32422;\n  color: #fff; }\n\n.wp-block-social-links:not(.is-style-logos-only) .wp-social-link-youtube {\n  background-color: #f00;\n  color: #fff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link {\n  background: none;\n  padding: 4px; }\n  .wp-block-social-links.is-style-logos-only .wp-social-link svg {\n    width: 28px;\n    height: 28px; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-amazon {\n  color: #f90; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-bandcamp {\n  color: #1ea0c3; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-behance {\n  color: #0757fe; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-codepen {\n  color: #1e1f26; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-deviantart {\n  color: #02e49b; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-dribbble {\n  color: #e94c89; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-dropbox {\n  color: #4280ff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-etsy {\n  color: #f45800; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-facebook {\n  color: #1778f2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-fivehundredpx {\n  color: #000; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-flickr {\n  color: #0461dd; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-foursquare {\n  color: #e65678; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-github {\n  color: #24292d; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-goodreads {\n  color: #382110; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-google {\n  color: #ea4434; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-instagram {\n  color: #f00075; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-lastfm {\n  color: #e21b24; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-linkedin {\n  color: #0d66c2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-mastodon {\n  color: #3288d4; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-medium {\n  color: #02ab6c; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-meetup {\n  color: #f6405f; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-pinterest {\n  color: #e60122; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-pocket {\n  color: #ef4155; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-reddit {\n  color: #fe4500; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-skype {\n  color: #0478d7; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-snapchat {\n  color: #fff;\n  stroke: #000; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-soundcloud {\n  color: #ff5600; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-spotify {\n  color: #1bd760; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-tumblr {\n  color: #011835; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-twitch {\n  color: #6440a4; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-twitter {\n  color: #1da1f2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-vimeo {\n  color: #1eb7ea; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-vk {\n  color: #4680c2; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-wordpress {\n  color: #3499cd; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-yelp {\n  background-color: #d32422;\n  color: #fff; }\n\n.wp-block-social-links.is-style-logos-only .wp-social-link-youtube {\n  color: #f00; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link {\n  width: auto; }\n\n.wp-block-social-links.is-style-pill-shape .wp-social-link a {\n  padding-left: 16px;\n  padding-right: 16px; }\n\n.wp-block-spacer {\n  clear: both; }\n\np.wp-block-subhead {\n  font-size: 1.1em;\n  font-style: italic;\n  opacity: 0.75; }\n\n.wp-block-table {\n  overflow-x: auto; }\n  .wp-block-table table {\n    width: 100%; }\n  .wp-block-table .has-fixed-layout {\n    table-layout: fixed;\n    width: 100%; }\n    .wp-block-table .has-fixed-layout td,\n    .wp-block-table .has-fixed-layout th {\n      word-break: break-word; }\n  .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright {\n    display: table;\n    width: auto; }\n    .wp-block-table.alignleft td,\n    .wp-block-table.alignleft th, .wp-block-table.aligncenter td,\n    .wp-block-table.aligncenter th, .wp-block-table.alignright td,\n    .wp-block-table.alignright th {\n      word-break: break-word; }\n  .wp-block-table .has-subtle-light-gray-background-color {\n    background-color: #f3f4f5; }\n  .wp-block-table .has-subtle-pale-green-background-color {\n    background-color: #e9fbe5; }\n  .wp-block-table .has-subtle-pale-blue-background-color {\n    background-color: #e7f5fe; }\n  .wp-block-table .has-subtle-pale-pink-background-color {\n    background-color: #fcf0ef; }\n  .wp-block-table.is-style-stripes {\n    border-spacing: 0;\n    border-collapse: inherit;\n    background-color: transparent;\n    border-bottom: 1px solid #f0f0f0; }\n    .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {\n      background-color: #f0f0f0; }\n    .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) {\n      background-color: #f3f4f5; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) {\n      background-color: #e9fbe5; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) {\n      background-color: #e7f5fe; }\n    .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) {\n      background-color: #fcf0ef; }\n    .wp-block-table.is-style-stripes th,\n    .wp-block-table.is-style-stripes td {\n      border-color: transparent; }\n\n.wp-block-text-columns {\n  display: flex; }\n  .wp-block-text-columns.aligncenter {\n    display: flex; }\n  .wp-block-text-columns .wp-block-column {\n    margin: 0 16px;\n    padding: 0; }\n    .wp-block-text-columns .wp-block-column:first-child {\n      margin-left: 0; }\n    .wp-block-text-columns .wp-block-column:last-child {\n      margin-right: 0; }\n  .wp-block-text-columns.columns-2 .wp-block-column {\n    width: calc(100% / 2); }\n  .wp-block-text-columns.columns-3 .wp-block-column {\n    width: calc(100% / 3); }\n  .wp-block-text-columns.columns-4 .wp-block-column {\n    width: calc(100% / 4); }\n\n.wp-block-video {\n  margin-left: 0;\n  margin-right: 0; }\n  .wp-block-video video {\n    max-width: 100%; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .wp-block-video [poster] {\n      object-fit: cover; } }\n  .wp-block-video.aligncenter {\n    text-align: center; }\n  .wp-block-video figcaption {\n    margin-top: 0.5em;\n    margin-bottom: 1em; }\n\n:root .editor-styles-wrapper,\n:root {\n  /* stylelint-disable function-comma-space-after */\n  /* stylelint-enable function-comma-space-after */ }\n  :root .editor-styles-wrapper .has-pale-pink-background-color,\n  :root .has-pale-pink-background-color {\n    background-color: #f78da7; }\n  :root .editor-styles-wrapper .has-vivid-red-background-color,\n  :root .has-vivid-red-background-color {\n    background-color: #cf2e2e; }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-background-color,\n  :root .has-luminous-vivid-orange-background-color {\n    background-color: #ff6900; }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-background-color,\n  :root .has-luminous-vivid-amber-background-color {\n    background-color: #fcb900; }\n  :root .editor-styles-wrapper .has-light-green-cyan-background-color,\n  :root .has-light-green-cyan-background-color {\n    background-color: #7bdcb5; }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-background-color,\n  :root .has-vivid-green-cyan-background-color {\n    background-color: #00d084; }\n  :root .editor-styles-wrapper .has-pale-cyan-blue-background-color,\n  :root .has-pale-cyan-blue-background-color {\n    background-color: #8ed1fc; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-background-color,\n  :root .has-vivid-cyan-blue-background-color {\n    background-color: #0693e3; }\n  :root .editor-styles-wrapper .has-vivid-purple-background-color,\n  :root .has-vivid-purple-background-color {\n    background-color: #9b51e0; }\n  :root .editor-styles-wrapper .has-white-background-color,\n  :root .has-white-background-color {\n    background-color: #fff; }\n  :root .editor-styles-wrapper .has-very-light-gray-background-color,\n  :root .has-very-light-gray-background-color {\n    background-color: #eee; }\n  :root .editor-styles-wrapper .has-cyan-bluish-gray-background-color,\n  :root .has-cyan-bluish-gray-background-color {\n    background-color: #abb8c3; }\n  :root .editor-styles-wrapper .has-very-dark-gray-background-color,\n  :root .has-very-dark-gray-background-color {\n    background-color: #313131; }\n  :root .editor-styles-wrapper .has-black-background-color,\n  :root .has-black-background-color {\n    background-color: #000; }\n  :root .editor-styles-wrapper .has-pale-pink-color,\n  :root .has-pale-pink-color {\n    color: #f78da7; }\n  :root .editor-styles-wrapper .has-vivid-red-color,\n  :root .has-vivid-red-color {\n    color: #cf2e2e; }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-color,\n  :root .has-luminous-vivid-orange-color {\n    color: #ff6900; }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-color,\n  :root .has-luminous-vivid-amber-color {\n    color: #fcb900; }\n  :root .editor-styles-wrapper .has-light-green-cyan-color,\n  :root .has-light-green-cyan-color {\n    color: #7bdcb5; }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-color,\n  :root .has-vivid-green-cyan-color {\n    color: #00d084; }\n  :root .editor-styles-wrapper .has-pale-cyan-blue-color,\n  :root .has-pale-cyan-blue-color {\n    color: #8ed1fc; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-color,\n  :root .has-vivid-cyan-blue-color {\n    color: #0693e3; }\n  :root .editor-styles-wrapper .has-vivid-purple-color,\n  :root .has-vivid-purple-color {\n    color: #9b51e0; }\n  :root .editor-styles-wrapper .has-white-color,\n  :root .has-white-color {\n    color: #fff; }\n  :root .editor-styles-wrapper .has-very-light-gray-color,\n  :root .has-very-light-gray-color {\n    color: #eee; }\n  :root .editor-styles-wrapper .has-cyan-bluish-gray-color,\n  :root .has-cyan-bluish-gray-color {\n    color: #abb8c3; }\n  :root .editor-styles-wrapper .has-very-dark-gray-color,\n  :root .has-very-dark-gray-color {\n    color: #313131; }\n  :root .editor-styles-wrapper .has-black-color,\n  :root .has-black-color {\n    color: #000; }\n  :root .editor-styles-wrapper .has-vivid-cyan-blue-to-vivid-purple-gradient-background,\n  :root .has-vivid-cyan-blue-to-vivid-purple-gradient-background {\n    background: linear-gradient(135deg, #0693e3 0%, #9b51e0 100%); }\n  :root .editor-styles-wrapper .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background,\n  :root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background {\n    background: linear-gradient(135deg, #00d084 0%, #0693e3 100%); }\n  :root .editor-styles-wrapper .has-light-green-cyan-to-vivid-green-cyan-gradient-background,\n  :root .has-light-green-cyan-to-vivid-green-cyan-gradient-background {\n    background: linear-gradient(135deg, #7adcb4 0%, #00d082 100%); }\n  :root .editor-styles-wrapper .has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background,\n  :root .has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background {\n    background: linear-gradient(135deg, #fcb900 0%, #ff6900 100%); }\n  :root .editor-styles-wrapper .has-luminous-vivid-orange-to-vivid-red-gradient-background,\n  :root .has-luminous-vivid-orange-to-vivid-red-gradient-background {\n    background: linear-gradient(135deg, #ff6900 0%, #cf2e2e 100%); }\n  :root .editor-styles-wrapper .has-very-light-gray-to-cyan-bluish-gray-gradient-background,\n  :root .has-very-light-gray-to-cyan-bluish-gray-gradient-background {\n    background: linear-gradient(135deg, #eeeeee 0%, #a9b8c3 100%); }\n  :root .editor-styles-wrapper .has-cool-to-warm-spectrum-gradient-background,\n  :root .has-cool-to-warm-spectrum-gradient-background {\n    background: linear-gradient(135deg, #4aeadc 0%, #9778d1 20%, #cf2aba 40%, #ee2c82 60%, #fb6962 80%, #fef84c 100%); }\n  :root .editor-styles-wrapper .has-blush-light-purple-gradient-background,\n  :root .has-blush-light-purple-gradient-background {\n    background: linear-gradient(135deg, #ffceec 0%, #9896f0 100%); }\n  :root .editor-styles-wrapper .has-blush-bordeaux-gradient-background,\n  :root .has-blush-bordeaux-gradient-background {\n    background: linear-gradient(135deg, #fecda5 0%, #fe2d2d 50%, #6b003e 100%); }\n  :root .editor-styles-wrapper .has-purple-crush-gradient-background,\n  :root .has-purple-crush-gradient-background {\n    background: linear-gradient(135deg, #34e2e4 0%, #4721fb 50%, #ab1dfe 100%); }\n  :root .editor-styles-wrapper .has-luminous-dusk-gradient-background,\n  :root .has-luminous-dusk-gradient-background {\n    background: linear-gradient(135deg, #ffcb70 0%, #c751c0 50%, #4158d0 100%); }\n  :root .editor-styles-wrapper .has-hazy-dawn-gradient-background,\n  :root .has-hazy-dawn-gradient-background {\n    background: linear-gradient(135deg, #faaca8 0%, #dad0ec 100%); }\n  :root .editor-styles-wrapper .has-pale-ocean-gradient-background,\n  :root .has-pale-ocean-gradient-background {\n    background: linear-gradient(135deg, #fff5cb 0%, #b6e3d4 50%, #33a7b5 100%); }\n  :root .editor-styles-wrapper .has-electric-grass-gradient-background,\n  :root .has-electric-grass-gradient-background {\n    background: linear-gradient(135deg, #caf880 0%, #71ce7e 100%); }\n  :root .editor-styles-wrapper .has-subdued-olive-gradient-background,\n  :root .has-subdued-olive-gradient-background {\n    background: linear-gradient(135deg, #fafae1 0%, #67a671 100%); }\n  :root .editor-styles-wrapper .has-atomic-cream-gradient-background,\n  :root .has-atomic-cream-gradient-background {\n    background: linear-gradient(135deg, #fdd79a 0%, #004a59 100%); }\n  :root .editor-styles-wrapper .has-nightshade-gradient-background,\n  :root .has-nightshade-gradient-background {\n    background: linear-gradient(135deg, #330968 0%, #31cdcf 100%); }\n  :root .editor-styles-wrapper .has-midnight-gradient-background,\n  :root .has-midnight-gradient-background {\n    background: linear-gradient(135deg, #020381 0%, #2874fc 100%); }\n  :root .editor-styles-wrapper .has-link-color a,\n  :root .has-link-color a {\n    color: #00e;\n    color: var(--wp--style--color--link, #00e); }\n\n.editor-styles-wrapper .has-small-font-size,\n.has-small-font-size {\n  font-size: 13px; }\n\n.editor-styles-wrapper .has-regular-font-size,\n.editor-styles-wrapper .has-normal-font-size,\n.has-regular-font-size,\n.has-normal-font-size {\n  font-size: 16px; }\n\n.editor-styles-wrapper .has-medium-font-size,\n.has-medium-font-size {\n  font-size: 20px; }\n\n.editor-styles-wrapper .has-large-font-size,\n.has-large-font-size {\n  font-size: 36px; }\n\n.editor-styles-wrapper .has-larger-font-size,\n.editor-styles-wrapper .has-huge-font-size,\n.has-larger-font-size,\n.has-huge-font-size {\n  font-size: 42px; }\n\n.has-text-align-center {\n  text-align: center; }\n\n.has-text-align-left {\n  /*rtl:ignore*/\n  text-align: left; }\n\n.has-text-align-right {\n  /*rtl:ignore*/\n  text-align: right; }\n\n#end-resizable-editor-section {\n  display: none; }\n\n.aligncenter {\n  clear: both; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/theme-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.wp-block-audio figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-code {\n  font-family: Menlo, Consolas, monaco, monospace;\n  font-size: 15px;\n  color: #1e1e1e;\n  padding: 0.8em 1em;\n  border: 1px solid #ddd;\n  border-radius: 4px; }\n\n.wp-block-embed figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.blocks-gallery-caption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-image figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-pullquote {\n  border-top: 4px solid #555d66;\n  border-bottom: 4px solid #555d66;\n  margin-bottom: 28px;\n  color: #40464d; }\n  .wp-block-pullquote cite,\n  .wp-block-pullquote footer, .wp-block-pullquote__citation {\n    color: #40464d;\n    text-transform: uppercase;\n    font-size: 13px;\n    font-style: normal; }\n\n.wp-block-navigation ul,\n.wp-block-navigation ul li {\n  list-style: none; }\n\n.wp-block-navigation-link.wp-block-navigation-link {\n  margin: 0; }\n\n.wp-block-quote {\n  border-right: 4px solid #000;\n  margin: 0 0 28px 0;\n  padding-right: 1em; }\n  .wp-block-quote cite,\n  .wp-block-quote footer, .wp-block-quote__citation {\n    color: #6c7781;\n    font-size: 13px;\n    margin-top: 1em;\n    position: relative;\n    font-style: normal; }\n  .wp-block-quote.has-text-align-right, .wp-block-quote.has-text-align-right {\n    border-right: none;\n    border-left: 4px solid #000;\n    padding-right: 0;\n    padding-left: 1em; }\n  .wp-block-quote.has-text-align-center, .wp-block-quote.has-text-align-center {\n    border: none;\n    padding-right: 0; }\n  .wp-block-quote.is-style-large, .wp-block-quote.is-large {\n    border: none; }\n\n.wp-block-search .wp-block-search__label {\n  font-weight: bold; }\n\n.wp-block-group.has-background {\n  padding: 20px 30px;\n  margin-top: 0;\n  margin-bottom: 0; }\n\n.wp-block-separator {\n  border: none;\n  border-bottom: 2px solid #8f98a1;\n  margin-right: auto;\n  margin-left: auto; }\n  .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {\n    max-width: 100px; }\n  .wp-block-separator.has-background:not(.is-style-dots) {\n    border-bottom: none;\n    height: 1px; }\n  .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) {\n    height: 2px; }\n\n.wp-block-table {\n  border-collapse: collapse; }\n  .wp-block-table thead {\n    border-bottom: 3px solid; }\n  .wp-block-table tfoot {\n    border-top: 3px solid; }\n  .wp-block-table td,\n  .wp-block-table th {\n    padding: 0.5em;\n    border: 1px solid;\n    word-break: normal; }\n  .wp-block-table figcaption {\n    color: #555d66;\n    font-size: 13px;\n    text-align: center; }\n\n.wp-block-video figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n#end-resizable-editor-section {\n  display: none; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-block-library/theme.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n#start-resizable-editor-section {\n  display: none; }\n\n.wp-block-audio figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-code {\n  font-family: Menlo, Consolas, monaco, monospace;\n  font-size: 15px;\n  color: #1e1e1e;\n  padding: 0.8em 1em;\n  border: 1px solid #ddd;\n  border-radius: 4px; }\n\n.wp-block-embed figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.blocks-gallery-caption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-image figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n.wp-block-pullquote {\n  border-top: 4px solid #555d66;\n  border-bottom: 4px solid #555d66;\n  margin-bottom: 28px;\n  color: #40464d; }\n  .wp-block-pullquote cite,\n  .wp-block-pullquote footer, .wp-block-pullquote__citation {\n    color: #40464d;\n    text-transform: uppercase;\n    font-size: 13px;\n    font-style: normal; }\n\n.wp-block-navigation ul,\n.wp-block-navigation ul li {\n  list-style: none; }\n\n.wp-block-navigation-link.wp-block-navigation-link {\n  margin: 0; }\n\n.wp-block-quote {\n  border-left: 4px solid #000;\n  margin: 0 0 28px 0;\n  padding-left: 1em; }\n  .wp-block-quote cite,\n  .wp-block-quote footer, .wp-block-quote__citation {\n    color: #6c7781;\n    font-size: 13px;\n    margin-top: 1em;\n    position: relative;\n    font-style: normal; }\n  .wp-block-quote.has-text-align-right, .wp-block-quote.has-text-align-right {\n    border-left: none;\n    border-right: 4px solid #000;\n    padding-left: 0;\n    padding-right: 1em; }\n  .wp-block-quote.has-text-align-center, .wp-block-quote.has-text-align-center {\n    border: none;\n    padding-left: 0; }\n  .wp-block-quote.is-style-large, .wp-block-quote.is-large {\n    border: none; }\n\n.wp-block-search .wp-block-search__label {\n  font-weight: bold; }\n\n.wp-block-group.has-background {\n  padding: 20px 30px;\n  margin-top: 0;\n  margin-bottom: 0; }\n\n.wp-block-separator {\n  border: none;\n  border-bottom: 2px solid #8f98a1;\n  margin-left: auto;\n  margin-right: auto; }\n  .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {\n    max-width: 100px; }\n  .wp-block-separator.has-background:not(.is-style-dots) {\n    border-bottom: none;\n    height: 1px; }\n  .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) {\n    height: 2px; }\n\n.wp-block-table {\n  border-collapse: collapse; }\n  .wp-block-table thead {\n    border-bottom: 3px solid; }\n  .wp-block-table tfoot {\n    border-top: 3px solid; }\n  .wp-block-table td,\n  .wp-block-table th {\n    padding: 0.5em;\n    border: 1px solid;\n    word-break: normal; }\n  .wp-block-table figcaption {\n    color: #555d66;\n    font-size: 13px;\n    text-align: center; }\n\n.wp-block-video figcaption {\n  color: #555d66;\n  font-size: 13px;\n  text-align: center; }\n\n#end-resizable-editor-section {\n  display: none; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-components/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.components-animate__appear {\n  animation: components-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-animate__appear {\n      animation-duration: 1ms; } }\n  .components-animate__appear.is-from-top, .components-animate__appear.is-from-top.is-from-left {\n    transform-origin: top right; }\n  .components-animate__appear.is-from-top.is-from-right {\n    transform-origin: top left; }\n  .components-animate__appear.is-from-bottom, .components-animate__appear.is-from-bottom.is-from-left {\n    transform-origin: bottom right; }\n  .components-animate__appear.is-from-bottom.is-from-right {\n    transform-origin: bottom left; }\n\n@keyframes components-animate__appear-animation {\n  from {\n    transform: translateY(-2em) scaleY(0) scaleX(0); }\n  to {\n    transform: translateY(0%) scaleY(1) scaleX(1); } }\n\n.components-animate__slide-in {\n  animation: components-animate__slide-in-animation 0.1s cubic-bezier(0, 0, 0.2, 1);\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-animate__slide-in {\n      animation-duration: 1ms; } }\n  .components-animate__slide-in.is-from-left {\n    transform: translateX(-100%); }\n  .components-animate__slide-in.is-from-right {\n    transform: translateX(100%); }\n\n@keyframes components-animate__slide-in-animation {\n  100% {\n    transform: translateX(0%); } }\n\n.components-animate__loading {\n  animation: components-animate__loading 1.6s ease-in-out infinite; }\n\n@keyframes components-animate__loading {\n  0% {\n    opacity: 0.5; }\n  50% {\n    opacity: 1; }\n  100% {\n    opacity: 0.5; } }\n\n.components-angle-picker-control {\n  width: 50%; }\n  .components-angle-picker-control.components-base-control .components-base-control__label {\n    display: block; }\n\n.components-angle-picker-control__input-field[type=\"number\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  width: calc(100% - 36px);\n  max-width: 100px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-angle-picker-control__input-field[type=\"number\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-angle-picker-control__input-field[type=\"number\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-angle-picker-control__input-field[type=\"number\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-angle-picker-control__input-field[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-angle-picker-control__input-field[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-angle-picker-control__input-field[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-angle-picker-control__angle-circle {\n  width: 28px;\n  height: 28px;\n  border: 2px solid #555d66;\n  border-radius: 50%;\n  float: right;\n  margin-left: 4px;\n  cursor: grab; }\n\n.components-angle-picker-control__angle-circle-indicator-wrapper {\n  position: relative;\n  width: 100%;\n  height: 100%; }\n\n.components-angle-picker-control__angle-circle-indicator {\n  width: 1px;\n  height: 1px;\n  border-radius: 50%;\n  border: 3px solid #555d66;\n  display: block;\n  position: absolute;\n  top: -14px;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  margin: auto;\n  background: #555d66; }\n\n.components-autocomplete__popover .components-popover__content > div {\n  padding: 16px; }\n\n.components-autocomplete__result.components-button {\n  display: flex;\n  height: auto;\n  min-height: 36px;\n  text-align: right;\n  width: 100%; }\n  .components-autocomplete__result.components-button.is-selected {\n    box-shadow: 0 0 0 2px #007cba;\n    box-shadow: 0 0 0 2px var(--wp-admin-theme-color); }\n\n.components-base-control {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n  .components-base-control .components-base-control__field {\n    margin-bottom: 8px; }\n    .components-panel__row .components-base-control .components-base-control__field {\n      margin-bottom: inherit; }\n  .components-base-control .components-base-control__label {\n    display: inline-block;\n    margin-bottom: 8px; }\n  .components-base-control .components-base-control__help {\n    margin-top: -8px;\n    font-style: italic; }\n\n.components-button-group {\n  display: inline-block; }\n  .components-button-group .components-button {\n    border-radius: 0;\n    display: inline-flex;\n    color: #1e1e1e;\n    box-shadow: inset 0 0 0 1px #1e1e1e; }\n    .components-button-group .components-button + .components-button {\n      margin-right: -1px; }\n    .components-button-group .components-button:first-child {\n      border-radius: 0 2px 2px 0; }\n    .components-button-group .components-button:last-child {\n      border-radius: 2px 0 0 2px; }\n    .components-button-group .components-button:focus, .components-button-group .components-button.is-primary {\n      position: relative;\n      z-index: 1; }\n    .components-button-group .components-button.is-primary {\n      box-shadow: inset 0 0 0 1px #1e1e1e; }\n\n.components-button {\n  display: inline-flex;\n  text-decoration: none;\n  font-size: 13px;\n  margin: 0;\n  border: 0;\n  cursor: pointer;\n  -webkit-appearance: none;\n  background: none;\n  transition: box-shadow 0.1s linear;\n  height: 36px;\n  align-items: center;\n  box-sizing: border-box;\n  padding: 6px 12px;\n  border-radius: 2px;\n  color: #1e1e1e;\n  /**\n\t * Primary button style.\n\t */\n  /**\n\t * Secondary and tertiary buttons.\n\t */\n  /**\n\t * Secondary button style.\n\t */\n  /**\n\t * Tertiary buttons.\n\t */\n  /**\n\t * Link buttons.\n\t */\n  /**\n\t * Buttons that indicate destructive actions.\n\t */ }\n  @media (prefers-reduced-motion: reduce) {\n    .components-button {\n      transition-duration: 0s; } }\n  .components-button[aria-expanded=\"true\"], .components-button:hover {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .components-button[aria-disabled=\"true\"]:hover {\n    color: initial; }\n  .components-button:focus:not(:disabled) {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 1px solid transparent; }\n  .components-button.is-primary {\n    white-space: nowrap;\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    color: #fff;\n    text-decoration: none;\n    text-shadow: none; }\n    .components-button.is-primary:hover:not(:disabled) {\n      background: #006ba1;\n      background: var(--wp-admin-theme-color-darker-10);\n      color: #fff; }\n    .components-button.is-primary:active:not(:disabled) {\n      background: #005a87;\n      background: var(--wp-admin-theme-color-darker-20);\n      border-color: #005a87;\n      border-color: var(--wp-admin-theme-color-darker-20);\n      color: #fff; }\n    .components-button.is-primary:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 1px solid transparent; }\n    .components-button.is-primary:disabled, .components-button.is-primary:disabled:active:enabled, .components-button.is-primary[aria-disabled=\"true\"], .components-button.is-primary[aria-disabled=\"true\"]:enabled, .components-button.is-primary[aria-disabled=\"true\"]:active:enabled {\n      color: rgba(255, 255, 255, 0.4);\n      background: #007cba;\n      background: var(--wp-admin-theme-color);\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      opacity: 1; }\n      .components-button.is-primary:disabled:focus:enabled, .components-button.is-primary:disabled:active:enabled:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:enabled:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:active:enabled:focus:enabled {\n        box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n        box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n    .components-button.is-primary.is-busy, .components-button.is-primary.is-busy:disabled, .components-button.is-primary.is-busy[aria-disabled=\"true\"] {\n      color: #fff;\n      background-size: 100px 100%;\n      /* stylelint-disable */\n      background-image: linear-gradient(45deg, #007cba 28%, #005a87 28%, #005a87 72%, #007cba 72%);\n      background-image: linear-gradient(45deg, var(--wp-admin-theme-color) 28%, var(--wp-admin-theme-color-darker-20) 28%, var(--wp-admin-theme-color-darker-20) 72%, var(--wp-admin-theme-color) 72%);\n      /* stylelint-enable */\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color); }\n  .components-button.is-secondary:active:not(:disabled), .components-button.is-tertiary:active:not(:disabled) {\n    background: #ddd;\n    color: #006ba1;\n    color: var(--wp-admin-theme-color-darker-10);\n    box-shadow: none; }\n  .components-button.is-secondary:hover:not(:disabled), .components-button.is-tertiary:hover:not(:disabled) {\n    color: #006ba1;\n    color: var(--wp-admin-theme-color-darker-10);\n    box-shadow: inset 0 0 0 1px #006ba1;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color-darker-10); }\n  .components-button.is-secondary:disabled, .components-button.is-secondary[aria-disabled=\"true\"], .components-button.is-secondary[aria-disabled=\"true\"]:hover, .components-button.is-tertiary:disabled, .components-button.is-tertiary[aria-disabled=\"true\"], .components-button.is-tertiary[aria-disabled=\"true\"]:hover {\n    color: #828282;\n    background: #eaeaea;\n    transform: none;\n    opacity: 1;\n    box-shadow: none; }\n  .components-button.is-secondary {\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n    outline: 1px solid transparent;\n    white-space: nowrap;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    background: transparent; }\n  .components-button.is-tertiary {\n    white-space: nowrap;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    background: transparent;\n    padding: 6px;\n    outline: 1px dotted transparent; }\n    .components-button.is-tertiary .dashicon {\n      display: inline-block;\n      flex: 0 0 auto; }\n  .components-button.is-link {\n    margin: 0;\n    padding: 0;\n    box-shadow: none;\n    border: 0;\n    border-radius: 0;\n    background: none;\n    outline: none;\n    text-align: right;\n    /* Mimics the default link style in common.css */\n    color: #0073aa;\n    text-decoration: underline;\n    transition-property: border, background, color;\n    transition-duration: 0.05s;\n    transition-timing-function: ease-in-out;\n    height: auto; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-button.is-link {\n        transition-duration: 0s; } }\n    .components-button.is-link:hover:not(:disabled), .components-button.is-link:active:not(:disabled) {\n      color: #00a0d2; }\n    .components-button.is-link:focus {\n      color: #124964;\n      box-shadow: 0 0 0 1px #5b9dd9, 0 0 1.5px 1px rgba(30, 140, 190, 0.8); }\n  .components-button.is-destructive {\n    color: #b52727; }\n    .components-button.is-destructive.is-secondary {\n      box-shadow: inset 0 0 0 1px #b52727; }\n    .components-button.is-destructive:hover:not(:disabled), .components-button.is-destructive:active:not(:disabled) {\n      color: #a02222;\n      box-shadow: inset 0 0 0 1px #a02222; }\n    .components-button.is-destructive:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #a02222; }\n  .components-button:not([aria-disabled=\"true\"]):active {\n    color: inherit; }\n  .components-button:disabled, .components-button[aria-disabled=\"true\"] {\n    cursor: default;\n    opacity: 0.3; }\n  .components-button.is-busy, .components-button.is-secondary.is-busy, .components-button.is-secondary.is-busy:disabled, .components-button.is-secondary.is-busy[aria-disabled=\"true\"] {\n    animation: components-button__busy-animation 2500ms infinite linear;\n    opacity: 1;\n    background-size: 100px 100%;\n    /* stylelint-disable */\n    background-image: linear-gradient(45deg, #fafafa 28%, #e0e0e0 28%, #e0e0e0 72%, #fafafa 72%);\n    /* stylelint-enable */ }\n  .components-button.is-small {\n    height: 24px;\n    line-height: 22px;\n    padding: 0 8px;\n    font-size: 11px; }\n    .components-button.is-small.has-icon:not(.has-text) {\n      padding: 0 8px;\n      width: 24px; }\n  .components-button.has-icon {\n    padding: 6px;\n    min-width: 36px;\n    justify-content: center; }\n    .components-button.has-icon .dashicon {\n      display: inline-block;\n      flex: 0 0 auto; }\n    .components-button.has-icon.has-text {\n      justify-content: left; }\n    .components-button.has-icon.has-text svg {\n      margin-left: 8px; }\n  .components-button.is-pressed {\n    color: #fff;\n    background: #1e1e1e; }\n    .components-button.is-pressed:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .components-button.is-pressed:hover:not(:disabled) {\n      background: #1e1e1e; }\n  .components-button svg {\n    fill: currentColor;\n    outline: none; }\n  .components-button .components-visually-hidden {\n    height: auto; }\n\n@keyframes components-button__busy-animation {\n  0% {\n    background-position: 200px 0; } }\n\n.components-checkbox-control__input[type=\"checkbox\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  border: 1px solid #1e1e1e;\n  margin-left: 12px;\n  transition: none;\n  border-radius: 2px;\n  background: #fff;\n  color: #1e1e1e;\n  clear: none;\n  cursor: pointer;\n  display: inline-block;\n  line-height: 0;\n  margin: 0 0 0 4px;\n  outline: 0;\n  padding: 0 !important;\n  text-align: center;\n  vertical-align: top;\n  width: 24px;\n  height: 24px;\n  -webkit-appearance: none;\n          appearance: none;\n  transition: 0.1s border-color ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-checkbox-control__input[type=\"checkbox\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-checkbox-control__input[type=\"checkbox\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"]:checked::-ms-check {\n      opacity: 0; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked::before, .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n    margin: -3px -5px;\n    color: #fff; }\n    @media (min-width: 782px) {\n      .components-checkbox-control__input[type=\"checkbox\"]:checked::before, .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n        margin: -4px -5px 0 0; } }\n  .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"] {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n      content: \"\\f460\";\n      float: right;\n      display: inline-block;\n      vertical-align: middle;\n      width: 16px;\n      /* stylelint-disable */\n      font: normal 30px/1 dashicons;\n      /* stylelint-enable */\n      speak: none;\n      -webkit-font-smoothing: antialiased;\n      -moz-osx-font-smoothing: grayscale; }\n      @media (min-width: 782px) {\n        .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n          float: none;\n          font-size: 21px; } }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      height: 20px;\n      width: 20px; } }\n  @media (prefers-reduced-motion: reduce) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      transition-duration: 0s; } }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"]:checked::-ms-check {\n      opacity: 0; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked::before {\n    content: none; }\n\n.components-checkbox-control__input-container {\n  position: relative;\n  display: inline-block;\n  margin-left: 12px;\n  vertical-align: middle;\n  width: 24px;\n  height: 24px; }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input-container {\n      width: 20px;\n      height: 20px; } }\n\nsvg.components-checkbox-control__checked {\n  fill: #fff;\n  cursor: pointer;\n  position: absolute;\n  right: 0;\n  top: 0;\n  width: 24px;\n  height: 24px;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  pointer-events: none; }\n  @media (min-width: 600px) {\n    svg.components-checkbox-control__checked {\n      right: -2px;\n      top: -2px; } }\n\n.components-circular-option-picker {\n  display: inline-block;\n  margin-top: 0.6rem;\n  width: 100%; }\n  .components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper {\n    display: flex;\n    justify-content: flex-end; }\n\n.components-circular-option-picker__option-wrapper {\n  display: inline-block;\n  height: 28px;\n  width: 28px;\n  margin-left: 12px;\n  margin-bottom: 12px;\n  vertical-align: top;\n  transform: scale(1);\n  transition: 100ms transform ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-circular-option-picker__option-wrapper {\n      transition-duration: 0s; } }\n  .components-circular-option-picker__option-wrapper:hover {\n    transform: scale(1.2); }\n  .components-circular-option-picker__option-wrapper > div {\n    height: 100%;\n    width: 100%; }\n\n.components-circular-option-picker__option-wrapper::before {\n  content: \"\";\n  position: absolute;\n  top: 1px;\n  right: 1px;\n  bottom: 1px;\n  left: 1px;\n  border-radius: 50%;\n  z-index: -1;\n  /* stylelint-disable-next-line function-url-quotes */\n  background: url('data:image/svg+xml,%3Csvg width=\"28\" height=\"28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath d=\"M6 8V6H4v2h2zM8 8V6h2v2H8zM10 16H8v-2h2v2zM12 16v-2h2v2h-2zM12 18v-2h-2v2H8v2h2v-2h2zM14 18v2h-2v-2h2zM16 18h-2v-2h2v2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z\" fill=\"%23555D65\"/%3E%3Cpath d=\"M18 18v2h-2v-2h2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z\" fill=\"%23555D65\"/%3E%3C/svg%3E'); }\n\n.components-circular-option-picker__option {\n  display: inline-block;\n  vertical-align: top;\n  height: 100%;\n  width: 100%;\n  border: none;\n  border-radius: 50%;\n  background: transparent;\n  box-shadow: inset 0 0 0 14px;\n  transition: 100ms box-shadow ease;\n  cursor: pointer; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-circular-option-picker__option {\n      transition-duration: 0s; } }\n  .components-circular-option-picker__option:hover {\n    box-shadow: inset 0 0 0 14px !important; }\n  .components-circular-option-picker__option.is-pressed {\n    box-shadow: inset 0 0 0 4px;\n    position: relative;\n    z-index: 1;\n    overflow: visible; }\n    .components-circular-option-picker__option.is-pressed + svg {\n      position: absolute;\n      right: 2px;\n      top: 2px;\n      border-radius: 50%;\n      z-index: 2;\n      pointer-events: none; }\n  .components-circular-option-picker__option::after {\n    content: \"\";\n    position: absolute;\n    top: -1px;\n    right: -1px;\n    bottom: -1px;\n    left: -1px;\n    border-radius: 50%;\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);\n    border: 1px solid transparent; }\n  .components-circular-option-picker__option:focus::after {\n    content: \"\";\n    border: 2px solid #606a73;\n    width: 32px;\n    height: 32px;\n    position: absolute;\n    top: -2px;\n    right: -2px;\n    border-radius: 50%;\n    box-shadow: inset 0 0 0 2px #fff; }\n  .components-circular-option-picker__option.components-button:focus {\n    background-color: transparent;\n    box-shadow: inset 0 0 0 14px;\n    outline: none; }\n\n.components-circular-option-picker__button-action .components-circular-option-picker__option {\n  color: #fff;\n  background: #fff; }\n\n.components-circular-option-picker__dropdown-link-action {\n  margin-left: 16px; }\n  .components-circular-option-picker__dropdown-link-action .components-button {\n    line-height: 22px; }\n\n.component-color-indicator {\n  width: 25px;\n  height: 16px;\n  margin-right: 0.8rem;\n  border: 1px solid #dadada;\n  display: inline-block; }\n  .component-color-indicator + .component-color-indicator {\n    margin-right: 0.5rem; }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n.components-color-picker {\n  width: 100%; }\n  .components-color-picker * {\n    box-sizing: border-box; }\n\n.components-color-picker__saturation {\n  width: 100%;\n  padding-bottom: 55%;\n  position: relative; }\n\n.components-color-picker__body {\n  padding: 16px 16px 12px; }\n\n.components-color-picker__controls {\n  display: flex; }\n\n.components-color-picker__saturation-pointer,\n.components-color-picker__hue-pointer,\n.components-color-picker__alpha-pointer {\n  padding: 0;\n  position: absolute;\n  cursor: pointer;\n  box-shadow: none;\n  border: none; }\n\n/* CURRENT COLOR COMPONENT */\n.components-color-picker__swatch {\n  margin-left: 8px;\n  width: 32px;\n  height: 32px;\n  border-radius: 50%;\n  position: relative;\n  overflow: hidden;\n  background-image: linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, transparent 75%, #ddd 75%), linear-gradient(45deg, transparent 75%, #ddd 75%);\n  background-size: 10px 10px;\n  background-position: 100% 0, 100% 5px, 5px -5px, -5px 0; }\n  .is-alpha-disabled .components-color-picker__swatch {\n    width: 12px;\n    height: 12px;\n    margin-top: 0; }\n\n.components-color-picker__active {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0;\n  border-radius: 50%;\n  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n  z-index: 2; }\n\n/* SATURATION COMPONENT */\n.components-color-picker__saturation-color,\n.components-color-picker__saturation-white,\n.components-color-picker__saturation-black {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0; }\n\n.components-color-picker__saturation-color {\n  overflow: visible; }\n\n.components-color-picker__saturation-white {\n  background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); }\n\n.components-color-picker__saturation-black {\n  background: linear-gradient(to top, #000, rgba(0, 0, 0, 0)); }\n\n.components-button.components-color-picker__saturation-pointer {\n  width: 14px;\n  height: 14px;\n  padding: 0;\n  border-radius: 50%;\n  background-color: transparent;\n  transform: translate(50%, -50%);\n  box-shadow: 0 0 0 1px #fff, inset 0 0 0 1px #000, 0 0 0 2px #000; }\n  .components-button.components-color-picker__saturation-pointer:focus:not(:disabled) {\n    box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px #000, 0 0 0 3px #000; }\n\n/* HUE & ALPHA BARS */\n.components-color-picker__toggles {\n  flex: 1; }\n\n.components-color-picker__alpha {\n  background-image: linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, transparent 75%, #ddd 75%), linear-gradient(45deg, transparent 75%, #ddd 75%);\n  background-size: 10px 10px;\n  background-position: 100% 0, 100% 5px, 5px -5px, -5px 0; }\n\n.components-color-picker__hue-gradient,\n.components-color-picker__alpha-gradient {\n  position: absolute;\n  top: 0;\n  right: 0;\n  left: 0;\n  bottom: 0; }\n\n.components-color-picker__hue,\n.components-color-picker__alpha {\n  height: 12px;\n  position: relative; }\n\n.is-alpha-enabled .components-color-picker__hue {\n  margin-bottom: 8px; }\n\n.components-color-picker__hue-bar,\n.components-color-picker__alpha-bar {\n  position: relative;\n  margin: 0 3px;\n  height: 100%;\n  padding: 0 2px; }\n\n.components-color-picker__hue-gradient {\n  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); }\n\n.components-color-picker__hue-pointer,\n.components-color-picker__alpha-pointer {\n  left: 0;\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n  background: #fff;\n  transform: translate(7px, -1px); }\n\n.components-color-picker__hue-pointer,\n.components-color-picker__saturation-pointer {\n  transition: box-shadow 0.1s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-color-picker__hue-pointer,\n    .components-color-picker__saturation-pointer {\n      transition-duration: 0s; } }\n\n.components-color-picker__saturation-pointer:focus {\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #007cba, 0 0 5px 0 #007cba, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4);\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp-admin-theme-color), 0 0 5px 0 var(--wp-admin-theme-color), inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); }\n\n.components-color-picker__hue-pointer:focus,\n.components-color-picker__alpha-pointer:focus {\n  border-color: #007cba;\n  border-color: var(--wp-admin-theme-color);\n  box-shadow: 0 0 0 2px #007cba, 0 0 3px 0 #007cba;\n  box-shadow: 0 0 0 2px var(--wp-admin-theme-color), 0 0 3px 0 var(--wp-admin-theme-color);\n  outline: 2px solid transparent;\n  outline-offset: -2px; }\n\n/* INPUTS COMPONENT */\n.components-color-picker__inputs-wrapper {\n  margin: 0 -4px;\n  padding-top: 16px;\n  display: flex;\n  align-items: flex-end; }\n  .components-color-picker__inputs-wrapper fieldset {\n    flex: 1;\n    border: none;\n    margin: 0;\n    padding: 0; }\n  .components-color-picker__inputs-wrapper .components-color-picker__inputs-fields .components-text-control__input[type=\"number\"] {\n    padding: 6px 8px; }\n\n.components-color-picker__inputs-field {\n  width: 100%; }\n\n.components-color-picker__inputs-fields {\n  display: flex;\n  direction: ltr;\n  flex-grow: 1;\n  margin-left: 4px; }\n  .components-color-picker__inputs-fields .components-base-control + .components-base-control {\n    margin-top: 0; }\n  .components-color-picker__inputs-fields .components-base-control__field {\n    margin: 0 4px; }\n\n.components-color-picker__inputs-toggle {\n  height: 30px;\n  padding: 0 5px; }\n\n.components-combobox-control {\n  color: #555d66;\n  position: relative; }\n\n.components-combobox-control__label {\n  display: block;\n  margin-bottom: 5px; }\n\n.components-combobox-control__button {\n  border: 1px solid #7e8993;\n  border-radius: 4px;\n  color: #555d66;\n  display: inline-block;\n  min-height: 30px;\n  min-width: 130px;\n  position: relative;\n  text-align: right; }\n  .components-combobox-control__button:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n  .components-combobox-control__button-input {\n    border: none;\n    height: calc(100% - 2px);\n    right: 1px;\n    padding: 0 4px;\n    position: absolute;\n    top: 1px;\n    width: calc(100% - 2px); }\n  .components-combobox-control__button-button:hover {\n    box-shadow: none !important; }\n  .components-combobox-control__button-icon {\n    height: 100%;\n    padding: 0 4px;\n    position: absolute;\n    left: 0;\n    top: 0; }\n\n.components-combobox-control__menu {\n  background: #fff;\n  min-width: 100%;\n  padding: 0;\n  position: absolute;\n  z-index: 1000000; }\n\n.components-combobox-control__item {\n  align-items: center;\n  display: flex;\n  list-style-type: none;\n  padding: 10px 25px 10px 5px; }\n  .components-combobox-control__item.is-highlighted {\n    background: #ddd; }\n  .components-combobox-control__item-icon {\n    margin-right: -20px;\n    margin-left: 0; }\n\n.components-custom-gradient-picker {\n  margin-top: 8px; }\n\n.components-custom-gradient-picker__gradient-bar:not(.has-gradient) {\n  opacity: 0.4; }\n\n.components-custom-gradient-picker__gradient-bar {\n  width: 100%;\n  height: 24px;\n  border-radius: 24px;\n  margin-bottom: 8px;\n  padding-right: 3px;\n  padding-left: 21px; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container {\n    position: relative; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point {\n    border-radius: 50%;\n    background: #fff;\n    padding: 2px;\n    min-width: 24px;\n    width: 24px;\n    height: 24px;\n    position: relative; }\n    .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point svg {\n      height: 100%;\n      width: 100%; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button {\n    border: 2px solid #fff;\n    border-radius: 50%;\n    height: 18px;\n    padding: 0;\n    position: absolute;\n    width: 18px;\n    top: 3px; }\n    .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active {\n      background: #fafafa;\n      color: #23282d;\n      border-color: #999;\n      box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n      box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n\n.components-custom-gradient-picker__color-picker-popover .components-custom-gradient-picker__remove-control-point {\n  margin-right: auto;\n  margin-left: auto;\n  display: block;\n  margin-bottom: 8px; }\n\n.components-custom-gradient-picker__inserter {\n  width: 100%; }\n\n.components-custom-gradient-picker__liner-gradient-indicator {\n  display: inline-block;\n  flex: 0 auto;\n  width: 20px;\n  height: 20px; }\n\n.components-custom-gradient-picker__ui-line {\n  display: flex;\n  justify-content: space-between; }\n\n.components-custom-gradient-picker .components-custom-gradient-picker__ui-line .components-base-control.components-angle-picker,\n.components-custom-gradient-picker .components-custom-gradient-picker__ui-line .components-base-control.components-custom-gradient-picker__type-picker {\n  margin-bottom: 0; }\n\n.components-custom-gradient-picker .components-custom-gradient-picker__toolbar {\n  border: none; }\n  .components-custom-gradient-picker .components-custom-gradient-picker__toolbar > div + div {\n    margin-right: 1px; }\n  .components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed > svg {\n    background: #fff;\n    border: 1px solid #7e8993;\n    border-radius: 2px; }\n\n.components-custom-select-control {\n  position: relative; }\n\n.components-custom-select-control__label {\n  display: block;\n  margin-bottom: 8px; }\n\n.components-custom-select-control__button {\n  border: 1px solid #757575;\n  border-radius: 2px;\n  min-height: 30px;\n  min-width: 130px;\n  position: relative;\n  text-align: right; }\n  .components-custom-select-control__button.components-custom-select-control__button {\n    padding-left: 24px; }\n  .components-custom-select-control__button:focus:not(:disabled) {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color); }\n  .components-custom-select-control__button .components-custom-select-control__button-icon {\n    height: 100%;\n    padding: 0;\n    position: absolute;\n    left: 0;\n    top: 0; }\n\n.components-custom-select-control__menu {\n  background-color: #fff;\n  max-height: 400px;\n  min-width: 100%;\n  overflow: auto;\n  padding: 0;\n  position: absolute;\n  z-index: 1000000; }\n  .components-custom-select-control__menu:focus {\n    border: 1px solid #1e1e1e;\n    border-radius: 2px;\n    outline: none;\n    transition: none; }\n\n.components-custom-select-control__item {\n  align-items: center;\n  display: flex;\n  list-style-type: none;\n  padding: 10px 25px 10px 5px;\n  cursor: default; }\n  .components-custom-select-control__item.is-highlighted {\n    background: #ddd; }\n  .components-custom-select-control__item-icon {\n    margin-right: -20px;\n    margin-left: 0; }\n\nsvg.dashicon {\n  fill: currentColor;\n  outline: none; }\n.PresetDateRangePicker_panel {\n  padding: 0 22px 11px; }\n\n.PresetDateRangePicker_button {\n  position: relative;\n  height: 100%;\n  text-align: center;\n  background: 0 0;\n  border: 2px solid #00a699;\n  color: #00a699;\n  padding: 4px 12px;\n  margin-right: 8px;\n  font: inherit;\n  font-weight: 700;\n  line-height: normal;\n  overflow: visible;\n  box-sizing: border-box;\n  cursor: pointer; }\n\n.PresetDateRangePicker_button:active {\n  outline: 0; }\n\n.PresetDateRangePicker_button__selected {\n  color: #fff;\n  background: #00a699; }\n\n.SingleDatePickerInput {\n  display: inline-block;\n  background-color: #fff; }\n\n.SingleDatePickerInput__withBorder {\n  border-radius: 2px;\n  border: 1px solid #dbdbdb; }\n\n.SingleDatePickerInput__rtl {\n  direction: rtl; }\n\n.SingleDatePickerInput__disabled {\n  background-color: #f2f2f2; }\n\n.SingleDatePickerInput__block {\n  display: block; }\n\n.SingleDatePickerInput__showClearDate {\n  padding-right: 30px; }\n\n.SingleDatePickerInput_clearDate {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  padding: 10px;\n  margin: 0 10px 0 5px;\n  position: absolute;\n  right: 0;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.SingleDatePickerInput_clearDate__default:focus,\n.SingleDatePickerInput_clearDate__default:hover {\n  background: #dbdbdb;\n  border-radius: 50%; }\n\n.SingleDatePickerInput_clearDate__small {\n  padding: 6px; }\n\n.SingleDatePickerInput_clearDate__hide {\n  visibility: hidden; }\n\n.SingleDatePickerInput_clearDate_svg {\n  fill: #82888a;\n  height: 12px;\n  width: 15px;\n  vertical-align: middle; }\n\n.SingleDatePickerInput_clearDate_svg__small {\n  height: 9px; }\n\n.SingleDatePickerInput_calendarIcon {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  padding: 10px;\n  margin: 0 5px 0 10px; }\n\n.SingleDatePickerInput_calendarIcon_svg {\n  fill: #82888a;\n  height: 15px;\n  width: 14px;\n  vertical-align: middle; }\n\n.SingleDatePicker {\n  position: relative;\n  display: inline-block; }\n\n.SingleDatePicker__block {\n  display: block; }\n\n.SingleDatePicker_picker {\n  z-index: 1;\n  background-color: #fff;\n  position: absolute; }\n\n.SingleDatePicker_picker__rtl {\n  direction: rtl; }\n\n.SingleDatePicker_picker__directionLeft {\n  left: 0; }\n\n.SingleDatePicker_picker__directionRight {\n  right: 0; }\n\n.SingleDatePicker_picker__portal {\n  background-color: rgba(0, 0, 0, 0.3);\n  position: fixed;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%; }\n\n.SingleDatePicker_picker__fullScreenPortal {\n  background-color: #fff; }\n\n.SingleDatePicker_closeButton {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 15px;\n  z-index: 2; }\n\n.SingleDatePicker_closeButton:focus,\n.SingleDatePicker_closeButton:hover {\n  color: #b0b3b4;\n  text-decoration: none; }\n\n.SingleDatePicker_closeButton_svg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n\n.DayPickerKeyboardShortcuts_buttonReset {\n  background: 0 0;\n  border: 0;\n  border-radius: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  padding: 0;\n  cursor: pointer;\n  font-size: 14px; }\n\n.DayPickerKeyboardShortcuts_buttonReset:active {\n  outline: 0; }\n\n.DayPickerKeyboardShortcuts_show {\n  width: 22px;\n  position: absolute;\n  z-index: 2; }\n\n.DayPickerKeyboardShortcuts_show__bottomRight {\n  border-top: 26px solid transparent;\n  border-right: 33px solid #00a699;\n  bottom: 0;\n  right: 0; }\n\n.DayPickerKeyboardShortcuts_show__bottomRight:hover {\n  border-right: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_show__topRight {\n  border-bottom: 26px solid transparent;\n  border-right: 33px solid #00a699;\n  top: 0;\n  right: 0; }\n\n.DayPickerKeyboardShortcuts_show__topRight:hover {\n  border-right: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_show__topLeft {\n  border-bottom: 26px solid transparent;\n  border-left: 33px solid #00a699;\n  top: 0;\n  left: 0; }\n\n.DayPickerKeyboardShortcuts_show__topLeft:hover {\n  border-left: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_showSpan {\n  color: #fff;\n  position: absolute; }\n\n.DayPickerKeyboardShortcuts_showSpan__bottomRight {\n  bottom: 0;\n  right: -28px; }\n\n.DayPickerKeyboardShortcuts_showSpan__topRight {\n  top: 1px;\n  right: -28px; }\n\n.DayPickerKeyboardShortcuts_showSpan__topLeft {\n  top: 1px;\n  left: -28px; }\n\n.DayPickerKeyboardShortcuts_panel {\n  overflow: auto;\n  background: #fff;\n  border: 1px solid #dbdbdb;\n  border-radius: 2px;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  z-index: 2;\n  padding: 22px;\n  margin: 33px; }\n\n.DayPickerKeyboardShortcuts_title {\n  font-size: 16px;\n  font-weight: 700;\n  margin: 0; }\n\n.DayPickerKeyboardShortcuts_list {\n  list-style: none;\n  padding: 0;\n  font-size: 14px; }\n\n.DayPickerKeyboardShortcuts_close {\n  position: absolute;\n  right: 22px;\n  top: 22px;\n  z-index: 2; }\n\n.DayPickerKeyboardShortcuts_close:active {\n  outline: 0; }\n\n.DayPickerKeyboardShortcuts_closeSvg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n\n.DayPickerKeyboardShortcuts_closeSvg:focus,\n.DayPickerKeyboardShortcuts_closeSvg:hover {\n  fill: #82888a; }\n\n.CalendarDay {\n  box-sizing: border-box;\n  cursor: pointer;\n  font-size: 14px;\n  text-align: center; }\n\n.CalendarDay:active {\n  outline: 0; }\n\n.CalendarDay__defaultCursor {\n  cursor: default; }\n\n.CalendarDay__default {\n  border: 1px solid #e4e7e7;\n  color: #484848;\n  background: #fff; }\n\n.CalendarDay__default:hover {\n  background: #e4e7e7;\n  border: 1px double #e4e7e7;\n  color: inherit; }\n\n.CalendarDay__hovered_offset {\n  background: #f4f5f5;\n  border: 1px double #e4e7e7;\n  color: inherit; }\n\n.CalendarDay__outside {\n  border: 0;\n  background: #fff;\n  color: #484848; }\n\n.CalendarDay__outside:hover {\n  border: 0; }\n\n.CalendarDay__blocked_minimum_nights {\n  background: #fff;\n  border: 1px solid #eceeee;\n  color: #cacccd; }\n\n.CalendarDay__blocked_minimum_nights:active,\n.CalendarDay__blocked_minimum_nights:hover {\n  background: #fff;\n  color: #cacccd; }\n\n.CalendarDay__highlighted_calendar {\n  background: #ffe8bc;\n  color: #484848; }\n\n.CalendarDay__highlighted_calendar:active,\n.CalendarDay__highlighted_calendar:hover {\n  background: #ffce71;\n  color: #484848; }\n\n.CalendarDay__selected_span {\n  background: #66e2da;\n  border: 1px solid #33dacd;\n  color: #fff; }\n\n.CalendarDay__selected_span:active,\n.CalendarDay__selected_span:hover {\n  background: #33dacd;\n  border: 1px solid #33dacd;\n  color: #fff; }\n\n.CalendarDay__last_in_range {\n  border-right: #00a699; }\n\n.CalendarDay__selected,\n.CalendarDay__selected:active,\n.CalendarDay__selected:hover {\n  background: #00a699;\n  border: 1px solid #00a699;\n  color: #fff; }\n\n.CalendarDay__hovered_span,\n.CalendarDay__hovered_span:hover {\n  background: #b2f1ec;\n  border: 1px solid #80e8e0;\n  color: #007a87; }\n\n.CalendarDay__hovered_span:active {\n  background: #80e8e0;\n  border: 1px solid #80e8e0;\n  color: #007a87; }\n\n.CalendarDay__blocked_calendar,\n.CalendarDay__blocked_calendar:active,\n.CalendarDay__blocked_calendar:hover {\n  background: #cacccd;\n  border: 1px solid #cacccd;\n  color: #82888a; }\n\n.CalendarDay__blocked_out_of_range,\n.CalendarDay__blocked_out_of_range:active,\n.CalendarDay__blocked_out_of_range:hover {\n  background: #fff;\n  border: 1px solid #e4e7e7;\n  color: #cacccd; }\n\n.CalendarMonth {\n  background: #fff;\n  text-align: center;\n  vertical-align: top;\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n\n.CalendarMonth_table {\n  border-collapse: collapse;\n  border-spacing: 0; }\n\n.CalendarMonth_verticalSpacing {\n  border-collapse: separate; }\n\n.CalendarMonth_caption {\n  color: #484848;\n  font-size: 18px;\n  text-align: center;\n  padding-top: 22px;\n  padding-bottom: 37px;\n  caption-side: initial; }\n\n.CalendarMonth_caption__verticalScrollable {\n  padding-top: 12px;\n  padding-bottom: 7px; }\n\n.CalendarMonthGrid {\n  background: #fff;\n  text-align: left;\n  z-index: 0; }\n\n.CalendarMonthGrid__animating {\n  z-index: 1; }\n\n.CalendarMonthGrid__horizontal {\n  position: absolute;\n  left: 9px; }\n\n.CalendarMonthGrid__vertical {\n  margin: 0 auto; }\n\n.CalendarMonthGrid__vertical_scrollable {\n  margin: 0 auto;\n  overflow-y: scroll; }\n\n.CalendarMonthGrid_month__horizontal {\n  display: inline-block;\n  vertical-align: top;\n  min-height: 100%; }\n\n.CalendarMonthGrid_month__hideForAnimation {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n  pointer-events: none; }\n\n.CalendarMonthGrid_month__hidden {\n  visibility: hidden; }\n\n.DayPickerNavigation {\n  position: relative;\n  z-index: 2; }\n\n.DayPickerNavigation__horizontal {\n  height: 0; }\n\n.DayPickerNavigation__verticalDefault {\n  position: absolute;\n  width: 100%;\n  height: 52px;\n  bottom: 0;\n  left: 0; }\n\n.DayPickerNavigation__verticalScrollableDefault {\n  position: relative; }\n\n.DayPickerNavigation_button {\n  cursor: pointer;\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  border: 0;\n  padding: 0;\n  margin: 0; }\n\n.DayPickerNavigation_button__default {\n  border: 1px solid #e4e7e7;\n  background-color: #fff;\n  color: #757575; }\n\n.DayPickerNavigation_button__default:focus,\n.DayPickerNavigation_button__default:hover {\n  border: 1px solid #c4c4c4; }\n\n.DayPickerNavigation_button__default:active {\n  background: #f2f2f2; }\n\n.DayPickerNavigation_button__horizontalDefault {\n  position: absolute;\n  top: 18px;\n  line-height: .78;\n  border-radius: 3px;\n  padding: 6px 9px; }\n\n.DayPickerNavigation_leftButton__horizontalDefault {\n  left: 22px; }\n\n.DayPickerNavigation_rightButton__horizontalDefault {\n  right: 22px; }\n\n.DayPickerNavigation_button__verticalDefault {\n  padding: 5px;\n  background: #fff;\n  box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.1);\n  position: relative;\n  display: inline-block;\n  height: 100%;\n  width: 50%; }\n\n.DayPickerNavigation_nextButton__verticalDefault {\n  border-left: 0; }\n\n.DayPickerNavigation_nextButton__verticalScrollableDefault {\n  width: 100%; }\n\n.DayPickerNavigation_svg__horizontal {\n  height: 19px;\n  width: 19px;\n  fill: #82888a;\n  display: block; }\n\n.DayPickerNavigation_svg__vertical {\n  height: 42px;\n  width: 42px;\n  fill: #484848;\n  display: block; }\n\n.DayPicker {\n  background: #fff;\n  position: relative;\n  text-align: left; }\n\n.DayPicker__horizontal {\n  background: #fff; }\n\n.DayPicker__verticalScrollable {\n  height: 100%; }\n\n.DayPicker__hidden {\n  visibility: hidden; }\n\n.DayPicker__withBorder {\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07);\n  border-radius: 3px; }\n\n.DayPicker_portal__horizontal {\n  box-shadow: none;\n  position: absolute;\n  left: 50%;\n  top: 50%; }\n\n.DayPicker_portal__vertical {\n  position: initial; }\n\n.DayPicker_focusRegion {\n  outline: 0; }\n\n.DayPicker_calendarInfo__horizontal,\n.DayPicker_wrapper__horizontal {\n  display: inline-block;\n  vertical-align: top; }\n\n.DayPicker_weekHeaders {\n  position: relative; }\n\n.DayPicker_weekHeaders__horizontal {\n  margin-left: 9px; }\n\n.DayPicker_weekHeader {\n  color: #757575;\n  position: absolute;\n  top: 62px;\n  z-index: 2;\n  text-align: left; }\n\n.DayPicker_weekHeader__vertical {\n  left: 50%; }\n\n.DayPicker_weekHeader__verticalScrollable {\n  top: 0;\n  display: table-row;\n  border-bottom: 1px solid #dbdbdb;\n  background: #fff;\n  margin-left: 0;\n  left: 0;\n  width: 100%;\n  text-align: center; }\n\n.DayPicker_weekHeader_ul {\n  list-style: none;\n  margin: 1px 0;\n  padding-left: 0;\n  padding-right: 0;\n  font-size: 14px; }\n\n.DayPicker_weekHeader_li {\n  display: inline-block;\n  text-align: center; }\n\n.DayPicker_transitionContainer {\n  position: relative;\n  overflow: hidden;\n  border-radius: 3px; }\n\n.DayPicker_transitionContainer__horizontal {\n  transition: height .2s ease-in-out; }\n\n.DayPicker_transitionContainer__vertical {\n  width: 100%; }\n\n.DayPicker_transitionContainer__verticalScrollable {\n  padding-top: 20px;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  overflow-y: scroll; }\n\n.DateInput {\n  margin: 0;\n  padding: 0;\n  background: #fff;\n  position: relative;\n  display: inline-block;\n  width: 130px;\n  vertical-align: middle; }\n\n.DateInput__small {\n  width: 97px; }\n\n.DateInput__block {\n  width: 100%; }\n\n.DateInput__disabled {\n  background: #f2f2f2;\n  color: #dbdbdb; }\n\n.DateInput_input {\n  font-weight: 200;\n  font-size: 19px;\n  line-height: 24px;\n  color: #484848;\n  background-color: #fff;\n  width: 100%;\n  padding: 11px 11px 9px;\n  border: 0;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 2px solid transparent;\n  border-left: 0;\n  border-radius: 0; }\n\n.DateInput_input__small {\n  font-size: 15px;\n  line-height: 18px;\n  letter-spacing: .2px;\n  padding: 7px 7px 5px; }\n\n.DateInput_input__regular {\n  font-weight: auto; }\n\n.DateInput_input__readOnly {\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n\n.DateInput_input__focused {\n  outline: 0;\n  background: #fff;\n  border: 0;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 2px solid #008489;\n  border-left: 0; }\n\n.DateInput_input__disabled {\n  background: #f2f2f2;\n  font-style: italic; }\n\n.DateInput_screenReaderMessage {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.DateInput_fang {\n  position: absolute;\n  width: 20px;\n  height: 10px;\n  left: 22px;\n  z-index: 2; }\n\n.DateInput_fangShape {\n  fill: #fff; }\n\n.DateInput_fangStroke {\n  stroke: #dbdbdb;\n  fill: transparent; }\n\n.DateRangePickerInput {\n  background-color: #fff;\n  display: inline-block; }\n\n.DateRangePickerInput__disabled {\n  background: #f2f2f2; }\n\n.DateRangePickerInput__withBorder {\n  border-radius: 2px;\n  border: 1px solid #dbdbdb; }\n\n.DateRangePickerInput__rtl {\n  direction: rtl; }\n\n.DateRangePickerInput__block {\n  display: block; }\n\n.DateRangePickerInput__showClearDates {\n  padding-right: 30px; }\n\n.DateRangePickerInput_arrow {\n  display: inline-block;\n  vertical-align: middle;\n  color: #484848; }\n\n.DateRangePickerInput_arrow_svg {\n  vertical-align: middle;\n  fill: #484848;\n  height: 24px;\n  width: 24px; }\n\n.DateRangePickerInput_clearDates {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  padding: 10px;\n  margin: 0 10px 0 5px;\n  position: absolute;\n  right: 0;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.DateRangePickerInput_clearDates__small {\n  padding: 6px; }\n\n.DateRangePickerInput_clearDates_default:focus,\n.DateRangePickerInput_clearDates_default:hover {\n  background: #dbdbdb;\n  border-radius: 50%; }\n\n.DateRangePickerInput_clearDates__hide {\n  visibility: hidden; }\n\n.DateRangePickerInput_clearDates_svg {\n  fill: #82888a;\n  height: 12px;\n  width: 15px;\n  vertical-align: middle; }\n\n.DateRangePickerInput_clearDates_svg__small {\n  height: 9px; }\n\n.DateRangePickerInput_calendarIcon {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  padding: 10px;\n  margin: 0 5px 0 10px; }\n\n.DateRangePickerInput_calendarIcon_svg {\n  fill: #82888a;\n  height: 15px;\n  width: 14px;\n  vertical-align: middle; }\n\n.DateRangePicker {\n  position: relative;\n  display: inline-block; }\n\n.DateRangePicker__block {\n  display: block; }\n\n.DateRangePicker_picker {\n  z-index: 1;\n  background-color: #fff;\n  position: absolute; }\n\n.DateRangePicker_picker__rtl {\n  direction: rtl; }\n\n.DateRangePicker_picker__directionLeft {\n  left: 0; }\n\n.DateRangePicker_picker__directionRight {\n  right: 0; }\n\n.DateRangePicker_picker__portal {\n  background-color: rgba(0, 0, 0, 0.3);\n  position: fixed;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%; }\n\n.DateRangePicker_picker__fullScreenPortal {\n  background-color: #fff; }\n\n.DateRangePicker_closeButton {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 15px;\n  z-index: 2; }\n\n.DateRangePicker_closeButton:focus,\n.DateRangePicker_closeButton:hover {\n  color: #b0b3b4;\n  text-decoration: none; }\n\n.DateRangePicker_closeButton_svg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n.components-datetime {\n  padding: 0; }\n  .components-datetime .components-datetime__calendar-help {\n    padding: 16px; }\n    .components-datetime .components-datetime__calendar-help h4 {\n      margin: 0; }\n  .components-datetime .components-datetime__buttons {\n    display: flex;\n    justify-content: space-between; }\n  .components-datetime .components-datetime__date-help-toggle {\n    display: block;\n    margin-right: auto; }\n  .components-datetime fieldset {\n    border: 0;\n    padding: 0;\n    margin: 0; }\n  .components-datetime select,\n  .components-datetime input {\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-datetime select,\n      .components-datetime input {\n        transition-duration: 0s; } }\n  .components-datetime select,\n  .components-datetime input[type=\"number\"],\n  .components-datetime .components-button {\n    height: 30px;\n    margin-top: 0;\n    margin-bottom: 0; }\n\n.components-datetime__date {\n  min-height: 236px;\n  border-top: 1px solid #ddd; }\n  .components-datetime__date .DayPickerNavigation_leftButton__horizontalDefault {\n    right: 0; }\n  .components-datetime__date .CalendarMonth_caption {\n    font-size: 13px; }\n  .components-datetime__date .CalendarMonth_table {\n    border-collapse: separate;\n    border-spacing: 2px; }\n  .components-datetime__date .CalendarDay {\n    font-size: 13px;\n    border: none;\n    border-radius: 50%;\n    text-align: center; }\n    .components-datetime__date .CalendarDay:focus {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 2.5px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 2.5px #fff;\n      outline: 2px solid transparent; }\n  .components-datetime__date .CalendarDay__selected {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border: 2px solid transparent; }\n    .components-datetime__date .CalendarDay__selected:hover {\n      background: #005a87;\n      background: var(--wp-admin-theme-color-darker-20); }\n    .components-datetime__date .CalendarDay__selected:focus {\n      box-shadow: inset 0 0 0 1px #fff; }\n  .components-datetime__date .DayPickerNavigation_button__horizontalDefault {\n    padding: 2px 8px;\n    top: 20px; }\n    .components-datetime__date .DayPickerNavigation_button__horizontalDefault:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n  .components-datetime__date .DayPicker_weekHeader {\n    top: 50px; }\n    .components-datetime__date .DayPicker_weekHeader .DayPicker_weekHeader_ul {\n      margin: 1px 0;\n      padding-right: 0;\n      padding-left: 0; }\n  .components-datetime__date.is-description-visible .DayPicker {\n    visibility: hidden; }\n\n.components-datetime__time {\n  padding-bottom: 16px; }\n  .components-datetime__time fieldset {\n    position: relative;\n    margin-bottom: 0.5em; }\n  .components-datetime__time fieldset + fieldset {\n    margin-bottom: 0; }\n  .components-datetime__time .components-datetime__time-field-am-pm fieldset {\n    margin-top: 0; }\n  .components-datetime__time .components-datetime__time-wrapper {\n    display: flex; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-separator {\n      display: inline-block;\n      padding: 0 0 0 3px;\n      color: #555d66; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field-time {\n      direction: ltr; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field select {\n      margin-left: 4px; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field select:focus {\n        position: relative;\n        z-index: 1; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"] {\n      padding: 2px;\n      margin-left: 4px;\n      text-align: center;\n      -moz-appearance: textfield; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"]:focus {\n        position: relative;\n        z-index: 1; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"]::-webkit-inner-spin-button {\n        -webkit-appearance: none;\n        margin: 0; }\n  .components-datetime__time.is-12-hour .components-datetime__time-field-day input {\n    margin: -4px 0 0 !important;\n    border-radius: 0 2px 2px 0 !important; }\n  .components-datetime__time.is-12-hour .components-datetime__time-field-year input {\n    border-radius: 2px 0 0 2px !important; }\n\n.components-datetime__time-legend {\n  font-weight: 600;\n  margin-top: 0.5em; }\n  .components-datetime__time-legend.invisible {\n    position: absolute;\n    top: -999em;\n    right: -999em; }\n\n.components-datetime__time-field-hours-input,\n.components-datetime__time-field-minutes-input,\n.components-datetime__time-field-day-input {\n  width: 35px; }\n\n.components-datetime__time-field-year-input {\n  width: 55px; }\n\n.components-datetime__time-field-month-select {\n  max-width: 145px; }\n\n.components-popover .components-datetime__date {\n  padding-right: 4px; }\n\n.block-editor-dimension-control .components-base-control__field {\n  display: flex;\n  align-items: center; }\n\n.block-editor-dimension-control .components-base-control__label {\n  display: flex;\n  align-items: center;\n  margin-left: 1em;\n  margin-bottom: 0; }\n  .block-editor-dimension-control .components-base-control__label .dashicon {\n    margin-left: 0.5em; }\n\n.block-editor-dimension-control.is-manual .components-base-control__label {\n  width: 10em; }\n\n.components-disabled {\n  position: relative;\n  pointer-events: none; }\n  .components-disabled::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0; }\n  .components-disabled * {\n    pointer-events: none; }\n\nbody.is-dragging-components-draggable {\n  cursor: move;\n  /* Fallback for IE/Edge < 14 */\n  cursor: grabbing !important; }\n\n.components-draggable__invisible-drag-image {\n  position: fixed;\n  right: -1000px;\n  height: 50px;\n  width: 50px; }\n\n.components-draggable__clone {\n  position: fixed;\n  padding: 0;\n  background: transparent;\n  pointer-events: none;\n  z-index: 1000000000; }\n\n.components-drop-zone {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  z-index: 40;\n  visibility: hidden;\n  opacity: 0;\n  transition: 0.3s opacity, 0.3s background-color, 0s visibility 0.3s;\n  border: 2px solid #007cba;\n  border: 2px solid var(--wp-admin-theme-color);\n  border-radius: 2px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-drop-zone {\n      transition-duration: 0s; } }\n  .components-drop-zone.is-active {\n    opacity: 1;\n    visibility: visible;\n    transition: 0.3s opacity, 0.3s background-color; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-drop-zone.is-active {\n        transition-duration: 0s; } }\n  .components-drop-zone.is-dragging-over-element {\n    background-color: #007cba;\n    background-color: var(--wp-admin-theme-color); }\n\n.components-drop-zone__content {\n  position: absolute;\n  top: 50%;\n  right: 0;\n  left: 0;\n  z-index: 50;\n  transform: translateY(-50%);\n  width: 100%;\n  text-align: center;\n  color: #fff;\n  transition: transform 0.2s ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-drop-zone__content {\n      transition-duration: 0s; } }\n\n.components-drop-zone.is-dragging-over-element .components-drop-zone__content {\n  transform: translateY(-50%) scale(1.05); }\n\n.components-drop-zone__content-icon,\n.components-drop-zone__content-text {\n  display: block; }\n\n.components-drop-zone__content-icon {\n  margin: 0 auto;\n  line-height: 0;\n  fill: currentColor; }\n\n.components-drop-zone__content-text {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif; }\n\n.components-drop-zone__provider {\n  height: 100%; }\n\n.components-dropdown {\n  display: inline-block; }\n\n.components-dropdown__content .components-popover__content > div {\n  padding: 12px; }\n\n.components-dropdown-menu__popover .components-popover__content {\n  width: 200px; }\n\n.components-dropdown-menu__menu {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  line-height: 1.4; }\n  .components-dropdown-menu__menu .components-dropdown-menu__menu-item,\n  .components-dropdown-menu__menu .components-menu-item {\n    width: 100%;\n    padding: 6px;\n    outline: none;\n    cursor: pointer;\n    margin-bottom: 4px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,\n    .components-dropdown-menu__menu .components-menu-item.has-separator {\n      margin-top: 6px;\n      position: relative;\n      overflow: visible; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator::before,\n    .components-dropdown-menu__menu .components-menu-item.has-separator::before {\n      display: block;\n      content: \"\";\n      box-sizing: content-box;\n      background-color: #ddd;\n      position: absolute;\n      top: -3px;\n      right: 0;\n      left: 0;\n      height: 1px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,\n    .components-dropdown-menu__menu .components-menu-item.is-active svg {\n      color: #fff;\n      background: #1e1e1e;\n      box-shadow: 0 0 0 1px #1e1e1e;\n      border-radius: 1px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item > svg,\n    .components-dropdown-menu__menu .components-menu-item > svg {\n      border-radius: 2px;\n      width: 24px;\n      height: 24px; }\n  .components-dropdown-menu__menu .components-menu-item__button,\n  .components-dropdown-menu__menu .components-menu-item__button.components-button {\n    min-height: 36px;\n    height: auto;\n    padding-right: 40px;\n    text-align: right; }\n    .components-dropdown-menu__menu .components-menu-item__button.has-icon,\n    .components-dropdown-menu__menu .components-menu-item__button.components-button.has-icon {\n      padding-right: 8px; }\n  .components-dropdown-menu__menu .components-menu-group {\n    padding: 12px;\n    margin-top: 0;\n    margin-bottom: 0;\n    margin-right: -12px;\n    margin-left: -12px; }\n    .components-dropdown-menu__menu .components-menu-group:first-child {\n      margin-top: -12px; }\n    .components-dropdown-menu__menu .components-menu-group:last-child {\n      margin-bottom: -12px; }\n  .components-dropdown-menu__menu .components-menu-group + .components-menu-group {\n    margin-top: 0;\n    border-top: 1px solid #ccc;\n    padding: 12px; }\n    .is-alternate .components-dropdown-menu__menu .components-menu-group + .components-menu-group {\n      border-color: #1e1e1e; }\n\n.components-dropdown-menu__menu.no-icons .components-menu-item__button.components-button {\n  padding: 0 12px; }\n\n.components-external-link__icon {\n  width: 1.4em;\n  height: 1.4em;\n  margin: -0.2em 0.1em 0;\n  vertical-align: middle;\n  fill: currentColor; }\n\n.components-focal-point-picker-wrapper {\n  background-color: transparent;\n  border: 1px solid #ddd;\n  height: 200px;\n  width: 100%;\n  padding: 14px; }\n\n.components-focal-point-picker {\n  align-items: center;\n  cursor: pointer;\n  display: flex;\n  height: 100%;\n  justify-content: center;\n  position: relative;\n  width: 100%; }\n  .components-focal-point-picker img {\n    height: auto;\n    max-height: 100%;\n    max-width: 100%;\n    width: auto;\n    -webkit-user-select: none;\n        -ms-user-select: none;\n            user-select: none; }\n\n.components-focal-point-picker__icon_container {\n  background-color: transparent;\n  cursor: grab;\n  height: 30px;\n  opacity: 0.8;\n  position: absolute;\n  will-change: transform;\n  width: 30px;\n  z-index: 10000; }\n  .components-focal-point-picker__icon_container.is-dragging {\n    cursor: grabbing; }\n\n.components-focal-point-picker__icon {\n  display: block;\n  height: 100%;\n  right: -15px;\n  position: absolute;\n  top: -15px;\n  width: 100%; }\n  .components-focal-point-picker__icon .components-focal-point-picker__icon-outline {\n    fill: #fff; }\n  .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {\n    fill: #007cba;\n    fill: var(--wp-admin-theme-color); }\n\n.components-focal-point-picker_position-display-container {\n  margin: 1em 0;\n  display: flex; }\n  .components-focal-point-picker_position-display-container .components-base-control__field {\n    margin: 0 0 0 1em; }\n  .components-focal-point-picker_position-display-container input[type=\"number\"].components-text-control__input {\n    max-width: 4em;\n    padding: 6px 4px; }\n  .components-focal-point-picker_position-display-container span {\n    margin: 0 0.2em 0 0; }\n\n.components-font-size-picker__controls {\n  max-width: 248px;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  margin-bottom: 24px; }\n  .components-font-size-picker__controls .components-font-size-picker__number {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    display: inline-block;\n    font-weight: 500;\n    height: 30px;\n    margin-bottom: 0;\n    margin-right: 0;\n    margin-left: 8px;\n    margin-top: 8px;\n    width: 54px; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-font-size-picker__controls .components-font-size-picker__number {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .components-font-size-picker__controls .components-font-size-picker__number {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .components-font-size-picker__controls .components-font-size-picker__number:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .components-font-size-picker__controls .components-font-size-picker__number::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .components-font-size-picker__controls .components-font-size-picker__number::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .components-font-size-picker__controls .components-font-size-picker__number:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .components-font-size-picker__controls .components-font-size-picker__number[value=\"\"] + .components-button {\n      cursor: default;\n      opacity: 0.3;\n      pointer-events: none; }\n    .components-font-size-picker__controls .components-font-size-picker__number-container {\n      display: flex;\n      flex-direction: column; }\n  .components-font-size-picker__controls .components-font-size-picker__select {\n    margin-left: 8px; }\n  .components-font-size-picker__controls .components-color-palette__clear {\n    height: 30px;\n    margin-top: 26px; }\n\n.components-font-size-picker__custom-input .components-range-control__slider + .dashicon {\n  width: 30px;\n  height: 30px; }\n\n.components-font-size-picker {\n  border: 0;\n  padding: 0;\n  margin: 0; }\n\n.components-form-toggle {\n  position: relative;\n  display: inline-block; }\n  .components-form-toggle .components-form-toggle__track {\n    content: \"\";\n    display: inline-block;\n    box-sizing: border-box;\n    vertical-align: top;\n    background-color: #fff;\n    border: 1px solid #1e1e1e;\n    width: 36px;\n    height: 18px;\n    border-radius: 9px;\n    transition: 0.2s background ease; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-form-toggle .components-form-toggle__track {\n        transition-duration: 0s; } }\n  .components-form-toggle .components-form-toggle__thumb {\n    display: block;\n    position: absolute;\n    box-sizing: border-box;\n    top: 3px;\n    right: 3px;\n    width: 12px;\n    height: 12px;\n    border-radius: 50%;\n    transition: 0.1s transform ease;\n    background-color: #1e1e1e;\n    border: 5px solid #1e1e1e; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-form-toggle .components-form-toggle__thumb {\n        transition-duration: 0s; } }\n  .components-form-toggle.is-checked .components-form-toggle__track {\n    background-color: #007cba;\n    background-color: var(--wp-admin-theme-color);\n    border: 1px solid #007cba;\n    border: 1px solid var(--wp-admin-theme-color);\n    border: 9px solid transparent; }\n  .components-form-toggle .components-form-toggle__input:focus + .components-form-toggle__track {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent;\n    outline-offset: 2px; }\n  .components-form-toggle.is-checked .components-form-toggle__thumb {\n    background-color: #fff;\n    border-width: 0;\n    transform: translateX(-18px); }\n  .components-disabled .components-form-toggle {\n    opacity: 0.3; }\n\n.components-form-toggle input.components-form-toggle__input[type=\"checkbox\"] {\n  position: absolute;\n  top: 0;\n  right: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n  margin: 0;\n  padding: 0;\n  z-index: 1;\n  border: none; }\n  .components-form-toggle input.components-form-toggle__input[type=\"checkbox\"]:checked {\n    background: none; }\n  .components-form-toggle input.components-form-toggle__input[type=\"checkbox\"]::before {\n    content: \"\"; }\n\n.components-form-token-field__input-container {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  width: 100%;\n  margin: 0 0 8px 0;\n  padding: 4px;\n  cursor: text; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__input-container {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-form-token-field__input-container {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-form-token-field__input-container:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-form-token-field__input-container::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-form-token-field__input-container::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-form-token-field__input-container:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-form-token-field__input-container::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-form-token-field__input-container::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-form-token-field__input-container:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-form-token-field__input-container.is-disabled {\n    background: #ddd;\n    border-color: #ccd0d4; }\n  .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input {\n    display: inline-block;\n    width: 100%;\n    max-width: 100%;\n    margin-right: 4px;\n    padding: 0;\n    min-height: 24px;\n    background: inherit;\n    border: 0;\n    color: #1e1e1e;\n    box-shadow: none; }\n    .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input:focus,\n    .components-form-token-field.is-active .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input {\n      outline: none;\n      box-shadow: none; }\n  .components-form-token-field__input-container .components-form-token-field__token + input[type=\"text\"].components-form-token-field__input {\n    width: auto; }\n\n.components-form-token-field__label {\n  display: inline-block;\n  margin-bottom: 4px; }\n\n.components-form-token-field__help {\n  font-style: italic; }\n\n.components-form-token-field__token {\n  font-size: 13px;\n  display: flex;\n  margin: 2px 0 2px 4px;\n  color: #32373c;\n  overflow: hidden; }\n  .components-form-token-field__token.is-success .components-form-token-field__token-text,\n  .components-form-token-field__token.is-success .components-form-token-field__remove-token {\n    background: #4ab866; }\n  .components-form-token-field__token.is-error .components-form-token-field__token-text,\n  .components-form-token-field__token.is-error .components-form-token-field__remove-token {\n    background: #d94f4f; }\n  .components-form-token-field__token.is-validating .components-form-token-field__token-text,\n  .components-form-token-field__token.is-validating .components-form-token-field__remove-token {\n    color: #555d66; }\n  .components-form-token-field__token.is-borderless {\n    position: relative;\n    padding: 0 0 0 16px; }\n    .components-form-token-field__token.is-borderless .components-form-token-field__token-text {\n      background: transparent;\n      color: #007cba;\n      color: var(--wp-admin-theme-color); }\n    .components-form-token-field__token.is-borderless .components-form-token-field__remove-token {\n      background: transparent;\n      color: #555d66;\n      position: absolute;\n      top: 1px;\n      left: 0; }\n    .components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text {\n      color: #4ab866; }\n    .components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text {\n      color: #d94f4f;\n      border-radius: 0 4px 4px 0;\n      padding: 0 6px 0 4px; }\n    .components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text {\n      color: #1e1e1e; }\n  .components-form-token-field__token.is-disabled .components-form-token-field__remove-token {\n    cursor: default; }\n\n.components-form-token-field__token-text,\n.components-form-token-field__remove-token.components-button {\n  display: inline-block;\n  line-height: 24px;\n  height: auto;\n  background: #ddd;\n  transition: all 0.2s cubic-bezier(0.4, 1, 0.4, 1); }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__token-text,\n    .components-form-token-field__remove-token.components-button {\n      transition-duration: 0s;\n      animation-duration: 1ms; } }\n\n.components-form-token-field__token-text {\n  border-radius: 0 12px 12px 0;\n  padding: 0 8px 0 4px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis; }\n\n.components-form-token-field__remove-token.components-button {\n  cursor: pointer;\n  border-radius: 12px 0 0 12px;\n  padding: 0 2px;\n  color: #555d66;\n  line-height: 10px;\n  overflow: initial; }\n  .components-form-token-field__remove-token.components-button:hover {\n    color: #32373c; }\n\n.components-form-token-field__suggestions-list {\n  flex: 1 0 100%;\n  min-width: 100%;\n  max-height: 9em;\n  overflow-y: scroll;\n  transition: all 0.15s ease-in-out;\n  list-style: none;\n  border-top: 1px solid #6c7781;\n  margin: 4px -4px -4px;\n  padding-top: 3px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__suggestions-list {\n      transition-duration: 0s; } }\n\n.components-form-token-field__suggestion {\n  color: #555d66;\n  display: block;\n  font-size: 13px;\n  padding: 4px 8px;\n  cursor: pointer; }\n  .components-form-token-field__suggestion.is-selected {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    color: #fff; }\n\n.components-form-token-field__suggestion-match {\n  text-decoration: underline; }\n\n@media (min-width: 600px) {\n  .components-guide {\n    width: 600px; } }\n\n.components-guide .components-modal__header {\n  background: none;\n  border-bottom: none;\n  width: 100%;\n  padding: 0;\n  margin: 0; }\n  .components-guide .components-modal__header .components-button {\n    align-self: flex-start;\n    margin: 8px 0 0 8px;\n    position: static; }\n    .components-guide .components-modal__header .components-button:hover svg {\n      fill: #fff; }\n\n.components-guide__container {\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n  margin-top: -60px;\n  min-height: 100%; }\n\n.components-guide__page {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  position: relative; }\n  @media (min-width: 600px) {\n    .components-guide__page {\n      min-height: 300px; } }\n\n.components-guide__footer {\n  align-content: center;\n  display: flex;\n  height: 30px;\n  justify-content: center;\n  margin: 0 0 24px 0;\n  padding: 0 32px;\n  position: relative;\n  width: 100%; }\n  @media (max-width: 600px) {\n    .components-guide__footer {\n      position: absolute;\n      bottom: 0; } }\n\n.components-guide__page-control {\n  margin: 8px 0 8px 0;\n  text-align: center; }\n  .components-guide__page-control li {\n    display: inline-block; }\n  .components-guide__page-control .components-button {\n    height: 30px;\n    min-width: 20px; }\n\n.components-guide .components-modal__content {\n  padding: 0; }\n\n.components-modal__frame.components-guide {\n  border: none;\n  min-width: 312px;\n  height: 80vh;\n  max-height: 575px; }\n  @media (max-width: 600px) {\n    .components-modal__frame.components-guide {\n      bottom: 5%;\n      right: 16px;\n      left: 16px;\n      top: 5%;\n      margin: 0 auto; } }\n\n.components-button.components-guide__back-button, .components-button.components-guide__forward-button, .components-button.components-guide__finish-button {\n  height: 30px;\n  position: absolute; }\n\n.components-button.components-guide__back-button, .components-button.components-guide__forward-button {\n  font-size: 13px;\n  padding: 4px 2px; }\n  .components-button.components-guide__back-button.has-text svg, .components-button.components-guide__forward-button.has-text svg {\n    margin: 0; }\n  .components-button.components-guide__back-button:hover, .components-button.components-guide__forward-button:hover {\n    text-decoration: underline; }\n\n.components-button.components-guide__back-button {\n  right: 32px; }\n\n.components-button.components-guide__forward-button {\n  left: 32px;\n  color: #1386bf;\n  font-weight: bold; }\n\n.components-button.components-guide__finish-button {\n  left: 32px; }\n\n.components-button.components-guide__inline-finish-button {\n  display: none; }\n\n.components-navigate-regions.is-focusing-regions [role=\"region\"] {\n  position: relative; }\n  .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    right: 0;\n    left: 0;\n    pointer-events: none;\n    outline: 4px solid transparent;\n    box-shadow: inset 0 0 0 4px #007cba;\n    box-shadow: inset 0 0 0 4px var(--wp-admin-theme-color); }\n  @supports (outline-offset: 1px) {\n    .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus::after {\n      content: none; }\n    .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus {\n      outline-style: solid;\n      outline-color: #007cba;\n      outline-color: var(--wp-admin-theme-color);\n      outline-width: 4px;\n      outline-offset: -4px; } }\n\n.components-menu-group + .components-menu-group {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px solid #1e1e1e; }\n\n.components-menu-group__label {\n  padding: 0;\n  margin-bottom: 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.components-menu-item__button,\n.components-menu-item__button.components-button {\n  width: 100%; }\n  .components-menu-item__button .dashicon,\n  .components-menu-item__button .components-menu-items__item-icon,\n  .components-menu-item__button svg.components-menu-items__item-icon,\n  .components-menu-item__button > span > svg,\n  .components-menu-item__button.components-button .dashicon,\n  .components-menu-item__button.components-button .components-menu-items__item-icon,\n  .components-menu-item__button.components-button svg.components-menu-items__item-icon,\n  .components-menu-item__button.components-button > span > svg {\n    margin-left: 8px; }\n  .components-menu-item__button .components-menu-items__item-icon,\n  .components-menu-item__button.components-button .components-menu-items__item-icon {\n    display: inline-block;\n    flex: 0 0 auto; }\n\n.components-menu-item__info-wrapper {\n  display: flex;\n  flex-direction: column; }\n\n.components-menu-item__info {\n  margin-top: 4px;\n  font-size: 12px;\n  color: #757575; }\n\n.components-menu-item__shortcut {\n  -ms-grid-row-align: center;\n      align-self: center;\n  margin-left: 0;\n  margin-right: auto;\n  padding-right: 12px;\n  color: currentColor;\n  display: none; }\n  @media (min-width: 480px) {\n    .components-menu-item__shortcut {\n      display: inline; } }\n\n.components-menu-items-choice,\n.components-menu-items-choice.components-button {\n  padding-right: 40px; }\n  .components-menu-items-choice svg,\n  .components-menu-items-choice.components-button svg {\n    margin-left: 8px; }\n  .components-menu-items-choice.has-icon,\n  .components-menu-items-choice.components-button.has-icon {\n    padding-right: 8px; }\n\n.components-modal__screen-overlay {\n  position: fixed;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background-color: rgba(0, 0, 0, 0.7);\n  z-index: 100000;\n  animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-modal__screen-overlay {\n      animation-duration: 1ms; } }\n\n.components-modal__frame {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  box-sizing: border-box;\n  margin: 0;\n  border: 1px solid #ddd;\n  background: #fff;\n  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.2);\n  overflow: auto; }\n  @media (min-width: 600px) {\n    .components-modal__frame {\n      top: 50%;\n      left: auto;\n      bottom: auto;\n      right: 50%;\n      min-width: 360px;\n      max-width: calc(100% - 16px - 16px);\n      max-height: calc(100% - 60px - 60px);\n      transform: translate(50%, -50%);\n      animation: components-modal__appear-animation 0.1s ease-out;\n      animation-fill-mode: forwards; } }\n  @media (min-width: 600px) and (prefers-reduced-motion: reduce) {\n    .components-modal__frame {\n      animation-duration: 1ms; } }\n\n@keyframes components-modal__appear-animation {\n  from {\n    margin-top: 32px; }\n  to {\n    margin-top: 0; } }\n\n.components-modal__header {\n  box-sizing: border-box;\n  border-bottom: 1px solid #ddd;\n  padding: 0 24px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  background: #fff;\n  align-items: center;\n  height: 60px;\n  z-index: 10;\n  position: relative;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  margin: 0 -24px 24px; }\n  @supports (-ms-ime-align: auto) {\n    .components-modal__header {\n      position: fixed;\n      width: 100%; } }\n  .components-modal__header .components-modal__header-heading {\n    font-size: 1rem;\n    font-weight: 600; }\n  .components-modal__header h1 {\n    line-height: 1;\n    margin: 0; }\n  .components-modal__header .components-button {\n    position: relative;\n    right: 8px; }\n\n.components-modal__header-heading-container {\n  align-items: center;\n  flex-grow: 1;\n  display: flex;\n  flex-direction: row;\n  justify-content: left; }\n\n.components-modal__header-icon-container {\n  display: inline-block; }\n  .components-modal__header-icon-container svg {\n    max-width: 36px;\n    max-height: 36px;\n    padding: 8px; }\n\n.components-modal__content {\n  box-sizing: border-box;\n  height: 100%;\n  padding: 0 24px 24px; }\n  @supports (-ms-ime-align: auto) {\n    .components-modal__content {\n      padding-top: 60px; } }\n\n.components-notice {\n  display: flex;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  background-color: #fff;\n  border-right: 4px solid #007cba;\n  border-right: 4px solid var(--wp-admin-theme-color);\n  margin: 5px 15px 2px;\n  padding: 8px 12px;\n  align-items: center; }\n  .components-notice.is-dismissible {\n    padding-left: 36px;\n    position: relative; }\n  .components-notice.is-success {\n    border-right-color: #4ab866;\n    background-color: #eff9f1; }\n  .components-notice.is-warning {\n    border-right-color: #f0b849;\n    background-color: #fef8ee; }\n  .components-notice.is-error {\n    border-right-color: #d94f4f;\n    background-color: #f9e2e2; }\n\n.components-notice__content {\n  flex-grow: 1;\n  margin: 4px 0 4px 25px; }\n\n.components-notice__action.components-button, .components-notice__action.components-button.is-link {\n  margin-right: 12px; }\n\n.components-notice__action.components-button.is-secondary {\n  vertical-align: initial; }\n\n.components-notice__dismiss {\n  color: #6c7781;\n  align-self: flex-start;\n  flex-shrink: 0; }\n  .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover, .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):active, .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):focus {\n    color: #1e1e1e;\n    background-color: transparent; }\n  .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover {\n    box-shadow: none; }\n\n.components-notice-list {\n  max-width: 100vw;\n  box-sizing: border-box;\n  z-index: 29; }\n  .components-notice-list .components-notice__content {\n    margin-top: 12px;\n    margin-bottom: 12px;\n    line-height: 2; }\n  .components-notice-list .components-notice__action.components-button {\n    display: block;\n    margin-right: 0;\n    margin-top: 8px; }\n\n.components-panel {\n  background: #fff;\n  border: 1px solid #f0f0f0; }\n  .components-panel > .components-panel__header:first-child,\n  .components-panel > .components-panel__body:first-child {\n    margin-top: -1px; }\n  .components-panel > .components-panel__header:last-child,\n  .components-panel > .components-panel__body:last-child {\n    border-bottom-width: 0; }\n\n.components-panel + .components-panel {\n  margin-top: -1px; }\n\n.components-panel__body {\n  border-top: 1px solid #f0f0f0;\n  border-bottom: 1px solid #f0f0f0; }\n  .components-panel__body h3 {\n    margin: 0 0 0.5em; }\n  .components-panel__body.is-opened {\n    padding: 16px; }\n\n.components-panel__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 16px;\n  height: 48px;\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #ddd; }\n  .components-panel__header h2 {\n    margin: 0;\n    font-size: inherit;\n    color: inherit; }\n\n.components-panel__body + .components-panel__body,\n.components-panel__body + .components-panel__header,\n.components-panel__header + .components-panel__body,\n.components-panel__header + .components-panel__header {\n  margin-top: -1px; }\n\n.components-panel__body > .components-panel__body-title {\n  display: block;\n  padding: 0;\n  font-size: inherit;\n  margin-top: 0;\n  margin-bottom: 0;\n  transition: 0.1s background ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-panel__body > .components-panel__body-title {\n      transition-duration: 0s; } }\n\n.components-panel__body.is-opened > .components-panel__body-title {\n  margin: -16px;\n  margin-bottom: 5px; }\n\n.components-panel__body > .components-panel__body-title:hover {\n  background: #f0f0f0;\n  border: none; }\n\n.components-panel__body-toggle.components-button {\n  position: relative;\n  padding: 16px;\n  outline: none;\n  width: 100%;\n  font-weight: 500;\n  text-align: right;\n  color: #1e1e1e;\n  border: none;\n  box-shadow: none;\n  transition: 0.1s background ease-in-out;\n  height: auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-panel__body-toggle.components-button {\n      transition-duration: 0s; } }\n  .components-panel__body-toggle.components-button:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 0; }\n  .components-panel__body-toggle.components-button .components-panel__arrow {\n    position: absolute;\n    left: 16px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: #1e1e1e;\n    fill: currentColor;\n    transition: 0.1s color ease-in-out; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-panel__body-toggle.components-button .components-panel__arrow {\n        transition-duration: 0s; } }\n  body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right {\n    transform: scaleX(-1);\n    -ms-filter: fliph;\n    filter: FlipH;\n    margin-top: -10px; }\n\n.components-panel__icon {\n  color: #555d66;\n  margin: -2px 6px -2px 0; }\n\n.components-panel__body-toggle-icon {\n  margin-left: -5px; }\n\n.components-panel__color-title {\n  float: right;\n  height: 19px; }\n\n.components-panel__row {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-top: 8px;\n  min-height: 36px; }\n  .components-panel__row select {\n    min-width: 0; }\n  .components-panel__row label {\n    margin-left: 12px;\n    flex-shrink: 0;\n    max-width: 75%; }\n  .components-panel__row:empty, .components-panel__row:first-of-type {\n    margin-top: 0; }\n\n.components-panel .circle-picker {\n  padding-bottom: 20px; }\n\n.components-placeholder.components-placeholder {\n  position: relative;\n  padding: 1em;\n  min-height: 200px;\n  width: 100%;\n  text-align: right;\n  margin: 0;\n  color: #1e1e1e;\n  -moz-font-smoothing: subpixel-antialiased;\n  -webkit-font-smoothing: subpixel-antialiased;\n  border-radius: 2px;\n  background-color: #fff;\n  box-shadow: inset 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .components-placeholder.components-placeholder {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: flex-start; } }\n  .components-placeholder.components-placeholder .components-base-control__label {\n    font-size: 13px; }\n\n.components-placeholder__error,\n.components-placeholder__instructions,\n.components-placeholder__label,\n.components-placeholder__fieldset {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n\n.components-placeholder__label {\n  display: flex;\n  font-weight: 600;\n  margin-bottom: 16px;\n  align-items: center; }\n  .components-placeholder__label > svg,\n  .components-placeholder__label .dashicon,\n  .components-placeholder__label .block-editor-block-icon {\n    fill: currentColor;\n    margin-left: 1ch; }\n\n.components-placeholder__fieldset,\n.components-placeholder__fieldset form {\n  display: flex;\n  flex-direction: row;\n  width: 100%;\n  flex-wrap: wrap; }\n  .components-placeholder__fieldset p,\n  .components-placeholder__fieldset form p {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n\n.components-placeholder__fieldset.is-column-layout,\n.components-placeholder__fieldset.is-column-layout form {\n  flex-direction: column; }\n\n.components-placeholder__input[type=\"url\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  margin: 0 0 0 8px;\n  flex: 1 1 auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-placeholder__input[type=\"url\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-placeholder__input[type=\"url\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-placeholder__input[type=\"url\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-placeholder__input[type=\"url\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-placeholder__input[type=\"url\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-placeholder__input[type=\"url\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-placeholder__instructions {\n  margin-bottom: 1em; }\n\n.components-placeholder__error {\n  margin-top: 1em;\n  width: 100%; }\n\n.components-placeholder__preview img {\n  margin: 3%;\n  width: 50%; }\n\n.components-placeholder__fieldset .components-button {\n  margin-left: 12px;\n  margin-bottom: 12px; }\n  .components-placeholder__fieldset .components-button:last-child {\n    margin-bottom: 0;\n    margin-left: 0; }\n\n.components-placeholder__fieldset .components-button:not(.is-link) ~ .components-button.is-link {\n  margin-right: 10px;\n  margin-left: 10px; }\n  .components-placeholder__fieldset .components-button:not(.is-link) ~ .components-button.is-link:last-child {\n    margin-left: 0; }\n\n.components-placeholder.is-large .components-placeholder__label {\n  font-size: 18pt;\n  font-weight: normal; }\n\n.components-placeholder.is-medium .components-placeholder__instructions, .components-placeholder.is-small .components-placeholder__instructions {\n  display: none; }\n\n.components-placeholder.is-medium .components-placeholder__fieldset,\n.components-placeholder.is-medium .components-placeholder__fieldset form, .components-placeholder.is-small .components-placeholder__fieldset,\n.components-placeholder.is-small .components-placeholder__fieldset form {\n  flex-direction: column; }\n\n.components-placeholder.is-medium .components-placeholder__fieldset .components-button, .components-placeholder.is-small .components-placeholder__fieldset .components-button {\n  margin-left: auto; }\n\n.components-placeholder.is-small .components-button {\n  padding: 0 8px 2px; }\n.components-popover {\n  position: fixed;\n  z-index: 1000000;\n  top: 0;\n  left: 0;\n  opacity: 0; }\n  .components-popover.is-expanded, .components-popover[data-x-axis][data-y-axis] {\n    opacity: 1; }\n  .components-popover.is-expanded {\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 1000000 !important; }\n  .components-popover:not(.is-without-arrow) {\n    margin-left: 2px; }\n    .components-popover:not(.is-without-arrow)::before {\n      border: 8px solid #1e1e1e; }\n    .components-popover:not(.is-without-arrow)::after {\n      border: 8px solid #fff; }\n    .components-popover:not(.is-without-arrow)::before, .components-popover:not(.is-without-arrow)::after {\n      content: \"\";\n      position: absolute;\n      height: 0;\n      width: 0;\n      line-height: 0; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"] {\n      margin-top: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::before {\n        bottom: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::after {\n        bottom: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::after {\n        border-bottom: none;\n        border-left-color: transparent;\n        border-right-color: transparent;\n        border-top-style: solid;\n        margin-left: -10px; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"] {\n      margin-top: 8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::before {\n        top: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::after {\n        top: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::after {\n        border-bottom-style: solid;\n        border-left-color: transparent;\n        border-right-color: transparent;\n        border-top: none;\n        margin-left: -10px; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"] {\n      margin-left: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::before {\n        right: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::after {\n        right: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::after {\n        border-bottom-color: transparent;\n        border-left-style: solid;\n        border-right: none;\n        border-top-color: transparent; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"] {\n      margin-left: 8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::before {\n        left: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::after {\n        left: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::after {\n        border-bottom-color: transparent;\n        border-left: none;\n        border-right-style: solid;\n        border-top-color: transparent; }\n  .components-popover[data-y-axis=\"top\"] {\n    bottom: 100%; }\n  .components-popover[data-y-axis=\"bottom\"] {\n    top: 100%; }\n  .components-popover[data-y-axis=\"middle\"] {\n    align-items: center;\n    display: flex; }\n  .components-popover.is-from-top {\n    margin-top: 12px; }\n  .components-popover.is-from-bottom {\n    margin-top: -12px; }\n  .components-popover.is-from-left:not(.is-from-top):not(.is-from-bottom) {\n    margin-left: 12px; }\n  .components-popover.is-from-right:not(.is-from-top):not(.is-from-bottom) {\n    margin-right: 12px; }\n\n.components-popover__content {\n  height: 100%;\n  background: #fff;\n  border: 1px solid #ccc;\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n  border-radius: 2px; }\n  .is-alternate .components-popover__content {\n    border: 1px solid #1e1e1e;\n    box-shadow: none; }\n  .components-popover .components-popover__content {\n    position: absolute;\n    height: auto;\n    overflow-y: auto;\n    min-width: 260px; }\n  .components-popover.is-expanded .components-popover__content {\n    position: static;\n    height: calc(100% - 48px);\n    overflow-y: visible;\n    min-width: auto;\n    border: none;\n    border-top: 1px solid #1e1e1e; }\n  .components-popover[data-y-axis=\"top\"] .components-popover__content {\n    bottom: 100%; }\n  .components-popover[data-x-axis=\"center\"] .components-popover__content {\n    left: 50%;\n    transform: translateX(-50%); }\n  .components-popover[data-x-axis=\"right\"] .components-popover__content {\n    position: absolute;\n    left: 100%; }\n  .components-popover:not([data-y-axis=\"middle\"])[data-x-axis=\"right\"] .components-popover__content {\n    margin-left: -25px; }\n  .components-popover[data-x-axis=\"left\"] .components-popover__content {\n    position: absolute;\n    right: 100%; }\n  .components-popover:not([data-y-axis=\"middle\"])[data-x-axis=\"left\"] .components-popover__content {\n    margin-right: -25px; }\n\n.components-popover__header {\n  align-items: center;\n  background: #fff;\n  display: flex;\n  height: 48px;\n  justify-content: space-between;\n  padding: 0 8px 0 16px; }\n\n.components-popover__header-title {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  width: 100%; }\n\n.components-popover__close.components-button {\n  z-index: 5; }\n.components-radio-control {\n  display: flex;\n  flex-direction: column; }\n  .components-radio-control .components-base-control__help {\n    margin-top: 0; }\n  .components-radio-control .components-base-control__field {\n    margin-bottom: 0; }\n\n.components-radio-control__option:not(:last-child) {\n  margin-bottom: 4px; }\n\n.components-radio-control__input[type=\"radio\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  border: 1px solid #1e1e1e;\n  margin-left: 12px;\n  transition: none;\n  border-radius: 50%;\n  margin-top: 0;\n  margin-left: 6px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-radio-control__input[type=\"radio\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-radio-control__input[type=\"radio\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-radio-control__input[type=\"radio\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-radio-control__input[type=\"radio\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-radio-control__input[type=\"radio\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-radio-control__input[type=\"radio\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-radio-control__input[type=\"radio\"]:checked::before {\n    width: 7px;\n    height: 7px;\n    margin: 8px 8px 0 0;\n    background-color: #fff;\n    border: 3px solid #fff; }\n    @media (min-width: 782px) {\n      .components-radio-control__input[type=\"radio\"]:checked::before {\n        width: 6px;\n        height: 6px;\n        margin: 4px 4px 0 0; } }\n  .components-radio-control__input[type=\"radio\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-radio-control__input[type=\"radio\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n\n.components-resizable-box__handle {\n  display: none;\n  width: 23px;\n  height: 23px; }\n  .components-resizable-box__container.has-show-handle .components-resizable-box__handle {\n    display: block; }\n\n.components-resizable-box__handle::after {\n  display: block;\n  content: \"\";\n  width: 15px;\n  height: 15px;\n  border: 2px solid #fff;\n  border-radius: 50%;\n  background: #007cba;\n  background: var(--wp-admin-theme-color);\n  cursor: inherit;\n  position: absolute;\n  top: calc(50% - 8px);\n  left: calc(50% - 8px); }\n\n.components-resizable-box__side-handle::before {\n  display: block;\n  content: \"\";\n  width: 7px;\n  height: 7px;\n  border: 2px solid #fff;\n  background: #007cba;\n  background: var(--wp-admin-theme-color);\n  cursor: inherit;\n  position: absolute;\n  top: calc(50% - 4px);\n  left: calc(50% - 4px);\n  transition: transform 0.1s ease-in;\n  opacity: 0; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle::before {\n      transition-duration: 0s; } }\n\n.is-dark-theme .components-resizable-box__side-handle::before,\n.is-dark-theme .components-resizable-box__handle::after {\n  border-color: #d7dade; }\n\n.components-resizable-box__handle {\n  z-index: 2; }\n\n.components-resizable-box__side-handle {\n  z-index: 2; }\n\n.components-resizable-box__corner-handle {\n  z-index: 2; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-top,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom,\n.components-resizable-box__side-handle.components-resizable-box__handle-top::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom::before {\n  width: 100%;\n  right: 0;\n  border-right: 0;\n  border-left: 0; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-left,\n.components-resizable-box__side-handle.components-resizable-box__handle-right,\n.components-resizable-box__side-handle.components-resizable-box__handle-left::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right::before {\n  height: 100%;\n  top: 0;\n  border-top: 0;\n  border-bottom: 0; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-top:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-top:active::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active::before {\n  animation: components-resizable-box__top-bottom-animation 0.1s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle.components-resizable-box__handle-top:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-top:active::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-bottom:active::before {\n      animation-duration: 1ms; } }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-left:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-left:active::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right:active::before {\n  animation: components-resizable-box__left-right-animation 0.1s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle.components-resizable-box__handle-left:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-right:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-left:active::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-right:active::before {\n      animation-duration: 1ms; } }\n\n@keyframes components-resizable-box__top-bottom-animation {\n  from {\n    transform: scaleX(0);\n    opacity: 0; }\n  to {\n    transform: scaleX(1);\n    opacity: 1; } }\n\n@keyframes components-resizable-box__left-right-animation {\n  from {\n    transform: scaleY(0);\n    opacity: 0; }\n  to {\n    transform: scaleY(1);\n    opacity: 1; } }\n.components-resizable-box__handle-right {\n  right: calc(11.5px * -1); }\n\n.components-resizable-box__handle-left {\n  left: calc(11.5px * -1); }\n\n.components-resizable-box__handle-top {\n  top: calc(11.5px * -1); }\n\n.components-resizable-box__handle-bottom {\n  bottom: calc(11.5px * -1); }\n.components-responsive-wrapper {\n  position: relative;\n  max-width: 100%; }\n  .components-responsive-wrapper,\n  .components-responsive-wrapper > span {\n    display: block; }\n\n.components-responsive-wrapper__content {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  width: 100%;\n  height: 100%;\n  margin: auto; }\n\n.components-sandbox {\n  overflow: hidden; }\n\niframe.components-sandbox {\n  width: 100%; }\n\nhtml.lockscroll,\nbody.lockscroll {\n  overflow: hidden; }\n\n.components-select-control__input {\n  background: #fff;\n  height: 36px;\n  line-height: 36px;\n  margin: 1px;\n  outline: 0;\n  width: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important; }\n  @media (min-width: 782px) {\n    .components-select-control__input {\n      height: 28px;\n      line-height: 28px; } }\n\n@media (max-width: 782px) {\n  .components-base-control .components-base-control__field .components-select-control__input {\n    font-size: 16px; } }\n\n.components-snackbar {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  background-color: #1e1e1e;\n  border-radius: 2px;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n  color: #fff;\n  padding: 16px 24px;\n  width: 100%;\n  max-width: 600px;\n  box-sizing: border-box;\n  cursor: pointer; }\n  @media (min-width: 600px) {\n    .components-snackbar {\n      width: fit-content; } }\n  .components-snackbar:focus {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n\n.components-snackbar__action.components-button {\n  margin-right: 32px;\n  color: #fff;\n  height: auto;\n  flex-shrink: 0;\n  line-height: 1.4;\n  padding: 0; }\n  .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary) {\n    text-decoration: underline;\n    background-color: transparent; }\n    .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):focus {\n      color: #fff;\n      box-shadow: none;\n      outline: 1px dotted #fff; }\n    .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover {\n      color: #007cba;\n      color: var(--wp-admin-theme-color); }\n\n.components-snackbar__content {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  line-height: 1.4; }\n\n.components-snackbar-list {\n  position: absolute;\n  z-index: 100000;\n  width: 100%;\n  box-sizing: border-box; }\n\n.components-snackbar-list__notice-container {\n  position: relative;\n  padding-top: 8px; }\n\n.components-spinner {\n  display: inline-block;\n  background-color: #7e8993;\n  width: 18px;\n  height: 18px;\n  opacity: 0.7;\n  margin: 5px 11px 0;\n  border-radius: 100%;\n  position: relative; }\n  .components-spinner::before {\n    content: \"\";\n    position: absolute;\n    background-color: #fff;\n    top: 3px;\n    left: 3px;\n    width: 4px;\n    height: 4px;\n    border-radius: 100%;\n    transform-origin: 6px 6px;\n    animation: components-spinner__animation 1s infinite linear; }\n\n@keyframes components-spinner__animation {\n  from {\n    transform: rotate(0deg); }\n  to {\n    transform: rotate(-360deg); } }\n\n.components-tab-panel__tabs {\n  display: flex;\n  align-items: stretch; }\n\n.components-tab-panel__tabs-item {\n  background: transparent;\n  border: none;\n  box-shadow: none;\n  border-radius: 0;\n  cursor: pointer;\n  height: 48px;\n  padding: 3px 16px;\n  margin-right: 0;\n  font-weight: 500;\n  transition: box-shadow 0.1s linear;\n  box-sizing: border-box; }\n  .components-tab-panel__tabs-item::after {\n    content: attr(data-label);\n    display: block;\n    height: 0;\n    overflow: hidden;\n    speak: none;\n    visibility: hidden; }\n  .components-tab-panel__tabs-item:focus:not(:disabled) {\n    box-shadow: inset 0 1.5px #007cba;\n    box-shadow: inset 0 1.5px var(--wp-admin-theme-color); }\n  .components-tab-panel__tabs-item.is-active {\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 var(--wp-admin-theme-color);\n    position: relative; }\n    .components-tab-panel__tabs-item.is-active::before {\n      content: \"\";\n      position: absolute;\n      top: 0;\n      bottom: 1px;\n      left: 0;\n      right: 0;\n      border-bottom: 4px solid transparent; }\n  .components-tab-panel__tabs-item:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n  .components-tab-panel__tabs-item.is-active:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 -4px 0 0 var(--wp-admin-theme-color); }\n\n.components-text-control__input,\n.components-text-control__input[type=\"text\"],\n.components-text-control__input[type=\"tel\"],\n.components-text-control__input[type=\"time\"],\n.components-text-control__input[type=\"url\"],\n.components-text-control__input[type=\"week\"],\n.components-text-control__input[type=\"password\"],\n.components-text-control__input[type=\"color\"],\n.components-text-control__input[type=\"date\"],\n.components-text-control__input[type=\"datetime\"],\n.components-text-control__input[type=\"datetime-local\"],\n.components-text-control__input[type=\"email\"],\n.components-text-control__input[type=\"month\"],\n.components-text-control__input[type=\"number\"] {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-text-control__input,\n    .components-text-control__input[type=\"text\"],\n    .components-text-control__input[type=\"tel\"],\n    .components-text-control__input[type=\"time\"],\n    .components-text-control__input[type=\"url\"],\n    .components-text-control__input[type=\"week\"],\n    .components-text-control__input[type=\"password\"],\n    .components-text-control__input[type=\"color\"],\n    .components-text-control__input[type=\"date\"],\n    .components-text-control__input[type=\"datetime\"],\n    .components-text-control__input[type=\"datetime-local\"],\n    .components-text-control__input[type=\"email\"],\n    .components-text-control__input[type=\"month\"],\n    .components-text-control__input[type=\"number\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-text-control__input,\n    .components-text-control__input[type=\"text\"],\n    .components-text-control__input[type=\"tel\"],\n    .components-text-control__input[type=\"time\"],\n    .components-text-control__input[type=\"url\"],\n    .components-text-control__input[type=\"week\"],\n    .components-text-control__input[type=\"password\"],\n    .components-text-control__input[type=\"color\"],\n    .components-text-control__input[type=\"date\"],\n    .components-text-control__input[type=\"datetime\"],\n    .components-text-control__input[type=\"datetime-local\"],\n    .components-text-control__input[type=\"email\"],\n    .components-text-control__input[type=\"month\"],\n    .components-text-control__input[type=\"number\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-text-control__input:focus,\n  .components-text-control__input[type=\"text\"]:focus,\n  .components-text-control__input[type=\"tel\"]:focus,\n  .components-text-control__input[type=\"time\"]:focus,\n  .components-text-control__input[type=\"url\"]:focus,\n  .components-text-control__input[type=\"week\"]:focus,\n  .components-text-control__input[type=\"password\"]:focus,\n  .components-text-control__input[type=\"color\"]:focus,\n  .components-text-control__input[type=\"date\"]:focus,\n  .components-text-control__input[type=\"datetime\"]:focus,\n  .components-text-control__input[type=\"datetime-local\"]:focus,\n  .components-text-control__input[type=\"email\"]:focus,\n  .components-text-control__input[type=\"month\"]:focus,\n  .components-text-control__input[type=\"number\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-text-control__input::-webkit-input-placeholder,\n  .components-text-control__input[type=\"text\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"tel\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"time\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"url\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"week\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"password\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"color\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"date\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"datetime\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"email\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"month\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-text-control__input::-moz-placeholder,\n  .components-text-control__input[type=\"text\"]::-moz-placeholder,\n  .components-text-control__input[type=\"tel\"]::-moz-placeholder,\n  .components-text-control__input[type=\"time\"]::-moz-placeholder,\n  .components-text-control__input[type=\"url\"]::-moz-placeholder,\n  .components-text-control__input[type=\"week\"]::-moz-placeholder,\n  .components-text-control__input[type=\"password\"]::-moz-placeholder,\n  .components-text-control__input[type=\"color\"]::-moz-placeholder,\n  .components-text-control__input[type=\"date\"]::-moz-placeholder,\n  .components-text-control__input[type=\"datetime\"]::-moz-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]::-moz-placeholder,\n  .components-text-control__input[type=\"email\"]::-moz-placeholder,\n  .components-text-control__input[type=\"month\"]::-moz-placeholder,\n  .components-text-control__input[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-text-control__input:-ms-input-placeholder,\n  .components-text-control__input[type=\"text\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"tel\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"time\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"url\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"week\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"password\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"color\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"date\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"datetime\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"email\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"month\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-text-control__input::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-text-control__input::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-text-control__input:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-textarea-control__input {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-textarea-control__input {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-textarea-control__input {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-textarea-control__input:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-textarea-control__input::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-textarea-control__input::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-textarea-control__input:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-textarea-control__input::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-textarea-control__input::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-textarea-control__input:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-tip {\n  display: flex;\n  color: #555d66; }\n  .components-tip svg {\n    -ms-grid-row-align: center;\n        align-self: center;\n    fill: #f0b849;\n    flex-shrink: 0;\n    margin-left: 16px; }\n  .components-tip p {\n    margin: 0; }\n\n.components-toggle-control .components-base-control__field {\n  display: flex;\n  margin-bottom: 12px;\n  line-height: initial;\n  align-items: center; }\n  .components-toggle-control .components-base-control__field .components-form-toggle {\n    margin-left: 12px; }\n  .components-toggle-control .components-base-control__field .components-toggle-control__label {\n    display: block; }\n\n.components-accessible-toolbar {\n  display: inline-flex;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  flex-shrink: 0; }\n  .components-accessible-toolbar > .components-toolbar-group:last-child {\n    border-left: none; }\n\n.components-accessible-toolbar .components-button,\n.components-toolbar .components-button {\n  position: relative;\n  height: 48px;\n  z-index: 1;\n  padding-right: 16px;\n  padding-left: 16px; }\n  .components-accessible-toolbar .components-button:focus:enabled,\n  .components-toolbar .components-button:focus:enabled {\n    box-shadow: none;\n    outline: none; }\n  .components-accessible-toolbar .components-button::before,\n  .components-toolbar .components-button::before {\n    content: \"\";\n    position: absolute;\n    display: block;\n    border-radius: 2px;\n    height: 32px;\n    right: 8px;\n    left: 8px;\n    z-index: -1;\n    animation: components-button__appear-animation 0.1s ease;\n    animation-fill-mode: forwards; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-accessible-toolbar .components-button::before,\n      .components-toolbar .components-button::before {\n        animation-duration: 1ms; } }\n  .components-accessible-toolbar .components-button svg,\n  .components-toolbar .components-button svg {\n    position: relative;\n    margin-right: auto;\n    margin-left: auto; }\n  .components-accessible-toolbar .components-button.is-pressed,\n  .components-toolbar .components-button.is-pressed {\n    background: transparent; }\n    .components-accessible-toolbar .components-button.is-pressed:hover,\n    .components-toolbar .components-button.is-pressed:hover {\n      background: transparent; }\n    .components-accessible-toolbar .components-button.is-pressed::before,\n    .components-toolbar .components-button.is-pressed::before {\n      background: #1e1e1e; }\n  .components-accessible-toolbar .components-button:focus::before,\n  .components-toolbar .components-button:focus::before {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n    outline: 2px solid transparent; }\n  .components-accessible-toolbar .components-button.has-icon,\n  .components-toolbar .components-button.has-icon {\n    padding-right: 8px;\n    padding-left: 8px;\n    min-width: 48px;\n    justify-content: center; }\n  .components-accessible-toolbar .components-button.components-tab-button,\n  .components-toolbar .components-button.components-tab-button {\n    font-weight: 500; }\n    .components-accessible-toolbar .components-button.components-tab-button span,\n    .components-toolbar .components-button.components-tab-button span {\n      display: inline-block;\n      padding-right: 0;\n      padding-left: 0;\n      position: relative; }\n\n@keyframes components-button__appear-animation {\n  from {\n    transform: scaleY(0); }\n  to {\n    transform: scaleY(1); } }\n\n.components-toolbar__control.components-button {\n  position: relative; }\n  .components-toolbar__control.components-button[data-subscript] svg {\n    padding: 5px 0 5px 10px; }\n  .components-toolbar__control.components-button[data-subscript]::after {\n    content: attr(data-subscript);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 12px;\n    position: absolute;\n    left: 8px;\n    bottom: 10px; }\n  .components-toolbar__control.components-button:active::before {\n    display: none; }\n  .components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]::after {\n    color: #fff; }\n\n.components-toolbar-group {\n  min-height: 48px;\n  border-left: 1px solid #1e1e1e;\n  background-color: #fff;\n  display: inline-flex;\n  flex-shrink: 0;\n  flex-wrap: wrap;\n  line-height: 0; }\n  .components-toolbar-group .components-toolbar-group {\n    border-width: 0;\n    margin: 0; }\n\n.components-toolbar {\n  min-height: 48px;\n  margin: 0;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff;\n  display: inline-flex;\n  flex-shrink: 0;\n  flex-wrap: wrap; }\n\ndiv.components-toolbar > div {\n  display: block;\n  margin: 0; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    div.components-toolbar > div {\n      display: flex; } }\n\ndiv.components-toolbar > div + div.has-left-divider {\n  margin-right: 6px;\n  position: relative;\n  overflow: visible; }\n\ndiv.components-toolbar > div + div.has-left-divider::before {\n  display: inline-block;\n  content: \"\";\n  box-sizing: content-box;\n  background-color: #ddd;\n  position: absolute;\n  top: 8px;\n  right: -3px;\n  width: 1px;\n  height: 20px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon,\n.components-toolbar div > .components-button.components-button.has-icon {\n  min-width: 36px;\n  padding-right: 6px;\n  padding-left: 6px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon svg,\n  .components-toolbar div > .components-button.components-button.has-icon svg {\n    min-width: 24px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon::before,\n  .components-toolbar div > .components-button.components-button.has-icon::before {\n    right: 2px;\n    left: 2px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:first-child.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:first-child > .components-button.has-icon,\n.components-toolbar div:first-child .components-button.has-icon {\n  min-width: 42px;\n  padding-right: 11px;\n  padding-left: 6px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:first-child.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:first-child > .components-button.has-icon::before,\n  .components-toolbar div:first-child .components-button.has-icon::before {\n    right: 8px;\n    left: 2px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:last-child.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:last-child > .components-button.has-icon,\n.components-toolbar div:last-child .components-button.has-icon {\n  min-width: 42px;\n  padding-right: 6px;\n  padding-left: 11px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:last-child.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:last-child > .components-button.has-icon::before,\n  .components-toolbar div:last-child .components-button.has-icon::before {\n    right: 2px;\n    left: 8px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:first-of-type:last-of-type.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:first-child:last-child > .components-button.has-icon,\n.components-toolbar div:first-child:last-child > .components-button.has-icon {\n  min-width: 48px;\n  padding-right: 12px;\n  padding-left: 12px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:first-of-type:last-of-type.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:first-child:last-child > .components-button.has-icon::before,\n  .components-toolbar div:first-child:last-child > .components-button.has-icon::before {\n    right: 8px;\n    left: 8px; }\n\n.components-tooltip.components-popover {\n  z-index: 1000002; }\n  .components-tooltip.components-popover .components-popover__content {\n    min-width: 0; }\n\n.components-tooltip .components-popover__content {\n  background: #1e1e1e;\n  border-radius: 2px;\n  border-width: 0;\n  color: #fff;\n  white-space: nowrap;\n  text-align: center;\n  line-height: 1.4;\n  font-size: 12px;\n  box-shadow: none;\n  pointer-events: none; }\n  .components-tooltip .components-popover__content > div {\n    padding: 4px 8px; }\n\n.components-tooltip__shortcut {\n  display: inline-block;\n  margin-right: 8px; }\n\n.components-visually-hidden {\n  border: 0;\n  clip: rect(1px, 1px, 1px, 1px);\n  -webkit-clip-path: inset(50%);\n  clip-path: inset(50%);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n  word-wrap: normal !important; }\n\n.components-visually-hidden:focus {\n  background-color: #ddd;\n  clip: auto !important;\n  -webkit-clip-path: none;\n          clip-path: none;\n  color: #444;\n  display: block;\n  font-size: 1em;\n  height: auto;\n  right: 5px;\n  line-height: normal;\n  padding: 15px 23px 14px;\n  text-decoration: none;\n  top: 5px;\n  width: auto;\n  z-index: 100000; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-components/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.components-animate__appear {\n  animation: components-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-animate__appear {\n      animation-duration: 1ms; } }\n  .components-animate__appear.is-from-top, .components-animate__appear.is-from-top.is-from-left {\n    transform-origin: top left; }\n  .components-animate__appear.is-from-top.is-from-right {\n    transform-origin: top right; }\n  .components-animate__appear.is-from-bottom, .components-animate__appear.is-from-bottom.is-from-left {\n    transform-origin: bottom left; }\n  .components-animate__appear.is-from-bottom.is-from-right {\n    transform-origin: bottom right; }\n\n@keyframes components-animate__appear-animation {\n  from {\n    transform: translateY(-2em) scaleY(0) scaleX(0); }\n  to {\n    transform: translateY(0%) scaleY(1) scaleX(1); } }\n\n.components-animate__slide-in {\n  animation: components-animate__slide-in-animation 0.1s cubic-bezier(0, 0, 0.2, 1);\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-animate__slide-in {\n      animation-duration: 1ms; } }\n  .components-animate__slide-in.is-from-left {\n    transform: translateX(100%); }\n  .components-animate__slide-in.is-from-right {\n    transform: translateX(-100%); }\n\n@keyframes components-animate__slide-in-animation {\n  100% {\n    transform: translateX(0%); } }\n\n.components-animate__loading {\n  animation: components-animate__loading 1.6s ease-in-out infinite; }\n\n@keyframes components-animate__loading {\n  0% {\n    opacity: 0.5; }\n  50% {\n    opacity: 1; }\n  100% {\n    opacity: 0.5; } }\n\n.components-angle-picker-control {\n  width: 50%; }\n  .components-angle-picker-control.components-base-control .components-base-control__label {\n    display: block; }\n\n.components-angle-picker-control__input-field[type=\"number\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  width: calc(100% - 36px);\n  max-width: 100px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-angle-picker-control__input-field[type=\"number\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-angle-picker-control__input-field[type=\"number\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-angle-picker-control__input-field[type=\"number\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-angle-picker-control__input-field[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-angle-picker-control__input-field[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-angle-picker-control__input-field[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-angle-picker-control__input-field[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-angle-picker-control__angle-circle {\n  width: 28px;\n  height: 28px;\n  border: 2px solid #555d66;\n  border-radius: 50%;\n  float: left;\n  margin-right: 4px;\n  cursor: grab; }\n\n.components-angle-picker-control__angle-circle-indicator-wrapper {\n  position: relative;\n  width: 100%;\n  height: 100%; }\n\n.components-angle-picker-control__angle-circle-indicator {\n  width: 1px;\n  height: 1px;\n  border-radius: 50%;\n  border: 3px solid #555d66;\n  display: block;\n  position: absolute;\n  top: -14px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  margin: auto;\n  background: #555d66; }\n\n.components-autocomplete__popover .components-popover__content > div {\n  padding: 16px; }\n\n.components-autocomplete__result.components-button {\n  display: flex;\n  height: auto;\n  min-height: 36px;\n  text-align: left;\n  width: 100%; }\n  .components-autocomplete__result.components-button.is-selected {\n    box-shadow: 0 0 0 2px #007cba;\n    box-shadow: 0 0 0 2px var(--wp-admin-theme-color); }\n\n.components-base-control {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n  .components-base-control .components-base-control__field {\n    margin-bottom: 8px; }\n    .components-panel__row .components-base-control .components-base-control__field {\n      margin-bottom: inherit; }\n  .components-base-control .components-base-control__label {\n    display: inline-block;\n    margin-bottom: 8px; }\n  .components-base-control .components-base-control__help {\n    margin-top: -8px;\n    font-style: italic; }\n\n.components-button-group {\n  display: inline-block; }\n  .components-button-group .components-button {\n    border-radius: 0;\n    display: inline-flex;\n    color: #1e1e1e;\n    box-shadow: inset 0 0 0 1px #1e1e1e; }\n    .components-button-group .components-button + .components-button {\n      margin-left: -1px; }\n    .components-button-group .components-button:first-child {\n      border-radius: 2px 0 0 2px; }\n    .components-button-group .components-button:last-child {\n      border-radius: 0 2px 2px 0; }\n    .components-button-group .components-button:focus, .components-button-group .components-button.is-primary {\n      position: relative;\n      z-index: 1; }\n    .components-button-group .components-button.is-primary {\n      box-shadow: inset 0 0 0 1px #1e1e1e; }\n\n.components-button {\n  display: inline-flex;\n  text-decoration: none;\n  font-size: 13px;\n  margin: 0;\n  border: 0;\n  cursor: pointer;\n  -webkit-appearance: none;\n  background: none;\n  transition: box-shadow 0.1s linear;\n  height: 36px;\n  align-items: center;\n  box-sizing: border-box;\n  padding: 6px 12px;\n  border-radius: 2px;\n  color: #1e1e1e;\n  /**\n\t * Primary button style.\n\t */\n  /**\n\t * Secondary and tertiary buttons.\n\t */\n  /**\n\t * Secondary button style.\n\t */\n  /**\n\t * Tertiary buttons.\n\t */\n  /**\n\t * Link buttons.\n\t */\n  /**\n\t * Buttons that indicate destructive actions.\n\t */ }\n  @media (prefers-reduced-motion: reduce) {\n    .components-button {\n      transition-duration: 0s; } }\n  .components-button[aria-expanded=\"true\"], .components-button:hover {\n    color: #007cba;\n    color: var(--wp-admin-theme-color); }\n  .components-button[aria-disabled=\"true\"]:hover {\n    color: initial; }\n  .components-button:focus:not(:disabled) {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 1px solid transparent; }\n  .components-button.is-primary {\n    white-space: nowrap;\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    color: #fff;\n    text-decoration: none;\n    text-shadow: none; }\n    .components-button.is-primary:hover:not(:disabled) {\n      background: #006ba1;\n      background: var(--wp-admin-theme-color-darker-10);\n      color: #fff; }\n    .components-button.is-primary:active:not(:disabled) {\n      background: #005a87;\n      background: var(--wp-admin-theme-color-darker-20);\n      border-color: #005a87;\n      border-color: var(--wp-admin-theme-color-darker-20);\n      color: #fff; }\n    .components-button.is-primary:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 1px solid transparent; }\n    .components-button.is-primary:disabled, .components-button.is-primary:disabled:active:enabled, .components-button.is-primary[aria-disabled=\"true\"], .components-button.is-primary[aria-disabled=\"true\"]:enabled, .components-button.is-primary[aria-disabled=\"true\"]:active:enabled {\n      color: rgba(255, 255, 255, 0.4);\n      background: #007cba;\n      background: var(--wp-admin-theme-color);\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      opacity: 1; }\n      .components-button.is-primary:disabled:focus:enabled, .components-button.is-primary:disabled:active:enabled:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:enabled:focus:enabled, .components-button.is-primary[aria-disabled=\"true\"]:active:enabled:focus:enabled {\n        box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n        box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n    .components-button.is-primary.is-busy, .components-button.is-primary.is-busy:disabled, .components-button.is-primary.is-busy[aria-disabled=\"true\"] {\n      color: #fff;\n      background-size: 100px 100%;\n      /* stylelint-disable */\n      background-image: linear-gradient(-45deg, #007cba 28%, #005a87 28%, #005a87 72%, #007cba 72%);\n      background-image: linear-gradient(-45deg, var(--wp-admin-theme-color) 28%, var(--wp-admin-theme-color-darker-20) 28%, var(--wp-admin-theme-color-darker-20) 72%, var(--wp-admin-theme-color) 72%);\n      /* stylelint-enable */\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color); }\n  .components-button.is-secondary:active:not(:disabled), .components-button.is-tertiary:active:not(:disabled) {\n    background: #ddd;\n    color: #006ba1;\n    color: var(--wp-admin-theme-color-darker-10);\n    box-shadow: none; }\n  .components-button.is-secondary:hover:not(:disabled), .components-button.is-tertiary:hover:not(:disabled) {\n    color: #006ba1;\n    color: var(--wp-admin-theme-color-darker-10);\n    box-shadow: inset 0 0 0 1px #006ba1;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color-darker-10); }\n  .components-button.is-secondary:disabled, .components-button.is-secondary[aria-disabled=\"true\"], .components-button.is-secondary[aria-disabled=\"true\"]:hover, .components-button.is-tertiary:disabled, .components-button.is-tertiary[aria-disabled=\"true\"], .components-button.is-tertiary[aria-disabled=\"true\"]:hover {\n    color: #828282;\n    background: #eaeaea;\n    transform: none;\n    opacity: 1;\n    box-shadow: none; }\n  .components-button.is-secondary {\n    box-shadow: inset 0 0 0 1px #007cba;\n    box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n    outline: 1px solid transparent;\n    white-space: nowrap;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    background: transparent; }\n  .components-button.is-tertiary {\n    white-space: nowrap;\n    color: #007cba;\n    color: var(--wp-admin-theme-color);\n    background: transparent;\n    padding: 6px;\n    outline: 1px dotted transparent; }\n    .components-button.is-tertiary .dashicon {\n      display: inline-block;\n      flex: 0 0 auto; }\n  .components-button.is-link {\n    margin: 0;\n    padding: 0;\n    box-shadow: none;\n    border: 0;\n    border-radius: 0;\n    background: none;\n    outline: none;\n    text-align: left;\n    /* Mimics the default link style in common.css */\n    color: #0073aa;\n    text-decoration: underline;\n    transition-property: border, background, color;\n    transition-duration: 0.05s;\n    transition-timing-function: ease-in-out;\n    height: auto; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-button.is-link {\n        transition-duration: 0s; } }\n    .components-button.is-link:hover:not(:disabled), .components-button.is-link:active:not(:disabled) {\n      color: #00a0d2; }\n    .components-button.is-link:focus {\n      color: #124964;\n      box-shadow: 0 0 0 1px #5b9dd9, 0 0 1.5px 1px rgba(30, 140, 190, 0.8); }\n  .components-button.is-destructive {\n    color: #b52727; }\n    .components-button.is-destructive.is-secondary {\n      box-shadow: inset 0 0 0 1px #b52727; }\n    .components-button.is-destructive:hover:not(:disabled), .components-button.is-destructive:active:not(:disabled) {\n      color: #a02222;\n      box-shadow: inset 0 0 0 1px #a02222; }\n    .components-button.is-destructive:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #a02222; }\n  .components-button:not([aria-disabled=\"true\"]):active {\n    color: inherit; }\n  .components-button:disabled, .components-button[aria-disabled=\"true\"] {\n    cursor: default;\n    opacity: 0.3; }\n  .components-button.is-busy, .components-button.is-secondary.is-busy, .components-button.is-secondary.is-busy:disabled, .components-button.is-secondary.is-busy[aria-disabled=\"true\"] {\n    animation: components-button__busy-animation 2500ms infinite linear;\n    opacity: 1;\n    background-size: 100px 100%;\n    /* stylelint-disable */\n    background-image: linear-gradient(-45deg, #fafafa 28%, #e0e0e0 28%, #e0e0e0 72%, #fafafa 72%);\n    /* stylelint-enable */ }\n  .components-button.is-small {\n    height: 24px;\n    line-height: 22px;\n    padding: 0 8px;\n    font-size: 11px; }\n    .components-button.is-small.has-icon:not(.has-text) {\n      padding: 0 8px;\n      width: 24px; }\n  .components-button.has-icon {\n    padding: 6px;\n    min-width: 36px;\n    justify-content: center; }\n    .components-button.has-icon .dashicon {\n      display: inline-block;\n      flex: 0 0 auto; }\n    .components-button.has-icon.has-text {\n      justify-content: left; }\n    .components-button.has-icon.has-text svg {\n      margin-right: 8px; }\n  .components-button.is-pressed {\n    color: #fff;\n    background: #1e1e1e; }\n    .components-button.is-pressed:focus:not(:disabled) {\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px #007cba;\n      box-shadow: inset 0 0 0 1px #fff, 0 0 0 1.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .components-button.is-pressed:hover:not(:disabled) {\n      background: #1e1e1e; }\n  .components-button svg {\n    fill: currentColor;\n    outline: none; }\n  .components-button .components-visually-hidden {\n    height: auto; }\n\n@keyframes components-button__busy-animation {\n  0% {\n    background-position: 200px 0; } }\n\n.components-checkbox-control__input[type=\"checkbox\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  border: 1px solid #1e1e1e;\n  margin-right: 12px;\n  transition: none;\n  border-radius: 2px;\n  background: #fff;\n  color: #1e1e1e;\n  clear: none;\n  cursor: pointer;\n  display: inline-block;\n  line-height: 0;\n  margin: 0 4px 0 0;\n  outline: 0;\n  padding: 0 !important;\n  text-align: center;\n  vertical-align: top;\n  width: 24px;\n  height: 24px;\n  -webkit-appearance: none;\n          appearance: none;\n  transition: 0.1s border-color ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-checkbox-control__input[type=\"checkbox\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-checkbox-control__input[type=\"checkbox\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-checkbox-control__input[type=\"checkbox\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"]:checked::-ms-check {\n      opacity: 0; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked::before, .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n    margin: -3px -5px;\n    color: #fff; }\n    @media (min-width: 782px) {\n      .components-checkbox-control__input[type=\"checkbox\"]:checked::before, .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n        margin: -4px 0 0 -5px; } }\n  .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"] {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n      content: \"\\f460\";\n      float: left;\n      display: inline-block;\n      vertical-align: middle;\n      width: 16px;\n      /* stylelint-disable */\n      font: normal 30px/1 dashicons;\n      /* stylelint-enable */\n      speak: none;\n      -webkit-font-smoothing: antialiased;\n      -moz-osx-font-smoothing: grayscale; }\n      @media (min-width: 782px) {\n        .components-checkbox-control__input[type=\"checkbox\"][aria-checked=\"mixed\"]::before {\n          float: none;\n          font-size: 21px; } }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      height: 20px;\n      width: 20px; } }\n  @media (prefers-reduced-motion: reduce) {\n    .components-checkbox-control__input[type=\"checkbox\"] {\n      transition-duration: 0s; } }\n  .components-checkbox-control__input[type=\"checkbox\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n    .components-checkbox-control__input[type=\"checkbox\"]:checked::-ms-check {\n      opacity: 0; }\n  .components-checkbox-control__input[type=\"checkbox\"]:checked::before {\n    content: none; }\n\n.components-checkbox-control__input-container {\n  position: relative;\n  display: inline-block;\n  margin-right: 12px;\n  vertical-align: middle;\n  width: 24px;\n  height: 24px; }\n  @media (min-width: 600px) {\n    .components-checkbox-control__input-container {\n      width: 20px;\n      height: 20px; } }\n\nsvg.components-checkbox-control__checked {\n  fill: #fff;\n  cursor: pointer;\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 24px;\n  height: 24px;\n  -webkit-user-select: none;\n      -ms-user-select: none;\n          user-select: none;\n  pointer-events: none; }\n  @media (min-width: 600px) {\n    svg.components-checkbox-control__checked {\n      left: -2px;\n      top: -2px; } }\n\n.components-circular-option-picker {\n  display: inline-block;\n  margin-top: 0.6rem;\n  width: 100%; }\n  .components-circular-option-picker .components-circular-option-picker__custom-clear-wrapper {\n    display: flex;\n    justify-content: flex-end; }\n\n.components-circular-option-picker__option-wrapper {\n  display: inline-block;\n  height: 28px;\n  width: 28px;\n  margin-right: 12px;\n  margin-bottom: 12px;\n  vertical-align: top;\n  transform: scale(1);\n  transition: 100ms transform ease; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-circular-option-picker__option-wrapper {\n      transition-duration: 0s; } }\n  .components-circular-option-picker__option-wrapper:hover {\n    transform: scale(1.2); }\n  .components-circular-option-picker__option-wrapper > div {\n    height: 100%;\n    width: 100%; }\n\n.components-circular-option-picker__option-wrapper::before {\n  content: \"\";\n  position: absolute;\n  top: 1px;\n  left: 1px;\n  bottom: 1px;\n  right: 1px;\n  border-radius: 50%;\n  z-index: -1;\n  /* stylelint-disable-next-line function-url-quotes */\n  background: url('data:image/svg+xml,%3Csvg width=\"28\" height=\"28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cpath d=\"M6 8V6H4v2h2zM8 8V6h2v2H8zM10 16H8v-2h2v2zM12 16v-2h2v2h-2zM12 18v-2h-2v2H8v2h2v-2h2zM14 18v2h-2v-2h2zM16 18h-2v-2h2v2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 18h2v-2h-2v-2h2v-2h-2v-2h2V8h-2v2h-2V8h-2v2h2v2h-2v2h2v2h2v2zm-2-4v-2h2v2h-2z\" fill=\"%23555D65\"/%3E%3Cpath d=\"M18 18v2h-2v-2h2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8 10V8H6v2H4v2h2v2H4v2h2v2H4v2h2v2H4v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2v2h-2V4h-2v2h-2V4h-2v2h-2V4h-2v2h2v2h-2v2H8zm0 2v-2H6v2h2zm2 0v-2h2v2h-2zm0 2v-2H8v2H6v2h2v2H6v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h-2v2h-2V6h-2v2h-2v2h2v2h-2v2h-2z\" fill=\"%23555D65\"/%3E%3Cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 0H2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v2H0v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2h-2V0h-2v2H8V0H6v2H4V0zm0 4V2H2v2h2zm2 0V2h2v2H6zm0 2V4H4v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2H2v2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h2v2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2v-2h-2v-2h2V8h-2V6h2V4h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2h-2V2h-2v2H8v2H6z\" fill=\"%23555D65\"/%3E%3C/svg%3E'); }\n\n.components-circular-option-picker__option {\n  display: inline-block;\n  vertical-align: top;\n  height: 100%;\n  width: 100%;\n  border: none;\n  border-radius: 50%;\n  background: transparent;\n  box-shadow: inset 0 0 0 14px;\n  transition: 100ms box-shadow ease;\n  cursor: pointer; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-circular-option-picker__option {\n      transition-duration: 0s; } }\n  .components-circular-option-picker__option:hover {\n    box-shadow: inset 0 0 0 14px !important; }\n  .components-circular-option-picker__option.is-pressed {\n    box-shadow: inset 0 0 0 4px;\n    position: relative;\n    z-index: 1;\n    overflow: visible; }\n    .components-circular-option-picker__option.is-pressed + svg {\n      position: absolute;\n      left: 2px;\n      top: 2px;\n      border-radius: 50%;\n      z-index: 2;\n      pointer-events: none; }\n  .components-circular-option-picker__option::after {\n    content: \"\";\n    position: absolute;\n    top: -1px;\n    left: -1px;\n    bottom: -1px;\n    right: -1px;\n    border-radius: 50%;\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);\n    border: 1px solid transparent; }\n  .components-circular-option-picker__option:focus::after {\n    content: \"\";\n    border: 2px solid #606a73;\n    width: 32px;\n    height: 32px;\n    position: absolute;\n    top: -2px;\n    left: -2px;\n    border-radius: 50%;\n    box-shadow: inset 0 0 0 2px #fff; }\n  .components-circular-option-picker__option.components-button:focus {\n    background-color: transparent;\n    box-shadow: inset 0 0 0 14px;\n    outline: none; }\n\n.components-circular-option-picker__button-action .components-circular-option-picker__option {\n  color: #fff;\n  background: #fff; }\n\n.components-circular-option-picker__dropdown-link-action {\n  margin-right: 16px; }\n  .components-circular-option-picker__dropdown-link-action .components-button {\n    line-height: 22px; }\n\n.component-color-indicator {\n  width: 25px;\n  height: 16px;\n  margin-left: 0.8rem;\n  border: 1px solid #dadada;\n  display: inline-block; }\n  .component-color-indicator + .component-color-indicator {\n    margin-left: 0.5rem; }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n.components-color-picker {\n  width: 100%; }\n  .components-color-picker * {\n    box-sizing: border-box; }\n\n.components-color-picker__saturation {\n  width: 100%;\n  padding-bottom: 55%;\n  position: relative; }\n\n.components-color-picker__body {\n  padding: 16px 16px 12px; }\n\n.components-color-picker__controls {\n  display: flex; }\n\n.components-color-picker__saturation-pointer,\n.components-color-picker__hue-pointer,\n.components-color-picker__alpha-pointer {\n  padding: 0;\n  position: absolute;\n  cursor: pointer;\n  box-shadow: none;\n  border: none; }\n\n/* CURRENT COLOR COMPONENT */\n.components-color-picker__swatch {\n  margin-right: 8px;\n  width: 32px;\n  height: 32px;\n  border-radius: 50%;\n  position: relative;\n  overflow: hidden;\n  background-image: linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ddd 75%), linear-gradient(-45deg, transparent 75%, #ddd 75%);\n  background-size: 10px 10px;\n  background-position: 0 0, 0 5px, 5px -5px, -5px 0; }\n  .is-alpha-disabled .components-color-picker__swatch {\n    width: 12px;\n    height: 12px;\n    margin-top: 0; }\n\n.components-color-picker__active {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  border-radius: 50%;\n  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n  z-index: 2; }\n\n/* SATURATION COMPONENT */\n.components-color-picker__saturation-color,\n.components-color-picker__saturation-white,\n.components-color-picker__saturation-black {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0; }\n\n.components-color-picker__saturation-color {\n  overflow: visible; }\n\n.components-color-picker__saturation-white {\n  /*rtl:ignore*/\n  background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)); }\n\n.components-color-picker__saturation-black {\n  background: linear-gradient(to top, #000, rgba(0, 0, 0, 0)); }\n\n.components-button.components-color-picker__saturation-pointer {\n  width: 14px;\n  height: 14px;\n  padding: 0;\n  border-radius: 50%;\n  background-color: transparent;\n  transform: translate(-50%, -50%);\n  box-shadow: 0 0 0 1px #fff, inset 0 0 0 1px #000, 0 0 0 2px #000; }\n  .components-button.components-color-picker__saturation-pointer:focus:not(:disabled) {\n    box-shadow: 0 0 0 2px #fff, inset 0 0 0 1px #000, 0 0 0 3px #000; }\n\n/* HUE & ALPHA BARS */\n.components-color-picker__toggles {\n  flex: 1; }\n\n.components-color-picker__alpha {\n  background-image: linear-gradient(45deg, #ddd 25%, transparent 25%), linear-gradient(-45deg, #ddd 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ddd 75%), linear-gradient(-45deg, transparent 75%, #ddd 75%);\n  background-size: 10px 10px;\n  background-position: 0 0, 0 5px, 5px -5px, -5px 0; }\n\n.components-color-picker__hue-gradient,\n.components-color-picker__alpha-gradient {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0; }\n\n.components-color-picker__hue,\n.components-color-picker__alpha {\n  height: 12px;\n  position: relative; }\n\n.is-alpha-enabled .components-color-picker__hue {\n  margin-bottom: 8px; }\n\n.components-color-picker__hue-bar,\n.components-color-picker__alpha-bar {\n  position: relative;\n  margin: 0 3px;\n  height: 100%;\n  padding: 0 2px; }\n\n.components-color-picker__hue-gradient {\n  /*rtl:ignore*/\n  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%); }\n\n.components-color-picker__hue-pointer,\n.components-color-picker__alpha-pointer {\n  /*rtl:ignore*/\n  left: 0;\n  width: 14px;\n  height: 14px;\n  border-radius: 50%;\n  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n  background: #fff;\n  transform: translate(-7px, -1px); }\n\n.components-color-picker__hue-pointer,\n.components-color-picker__saturation-pointer {\n  transition: box-shadow 0.1s linear; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-color-picker__hue-pointer,\n    .components-color-picker__saturation-pointer {\n      transition-duration: 0s; } }\n\n.components-color-picker__saturation-pointer:focus {\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #007cba, 0 0 5px 0 #007cba, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4);\n  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--wp-admin-theme-color), 0 0 5px 0 var(--wp-admin-theme-color), inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); }\n\n.components-color-picker__hue-pointer:focus,\n.components-color-picker__alpha-pointer:focus {\n  border-color: #007cba;\n  border-color: var(--wp-admin-theme-color);\n  box-shadow: 0 0 0 2px #007cba, 0 0 3px 0 #007cba;\n  box-shadow: 0 0 0 2px var(--wp-admin-theme-color), 0 0 3px 0 var(--wp-admin-theme-color);\n  outline: 2px solid transparent;\n  outline-offset: -2px; }\n\n/* INPUTS COMPONENT */\n.components-color-picker__inputs-wrapper {\n  margin: 0 -4px;\n  padding-top: 16px;\n  display: flex;\n  align-items: flex-end; }\n  .components-color-picker__inputs-wrapper fieldset {\n    flex: 1;\n    border: none;\n    margin: 0;\n    padding: 0; }\n  .components-color-picker__inputs-wrapper .components-color-picker__inputs-fields .components-text-control__input[type=\"number\"] {\n    padding: 6px 8px; }\n\n.components-color-picker__inputs-field {\n  width: 100%; }\n\n.components-color-picker__inputs-fields {\n  display: flex;\n  /*rtl:ignore*/\n  direction: ltr;\n  flex-grow: 1;\n  margin-right: 4px; }\n  .components-color-picker__inputs-fields .components-base-control + .components-base-control {\n    margin-top: 0; }\n  .components-color-picker__inputs-fields .components-base-control__field {\n    margin: 0 4px; }\n\n.components-color-picker__inputs-toggle {\n  height: 30px;\n  padding: 0 5px; }\n\n.components-combobox-control {\n  color: #555d66;\n  position: relative; }\n\n.components-combobox-control__label {\n  display: block;\n  margin-bottom: 5px; }\n\n.components-combobox-control__button {\n  border: 1px solid #7e8993;\n  border-radius: 4px;\n  color: #555d66;\n  display: inline-block;\n  min-height: 30px;\n  min-width: 130px;\n  position: relative;\n  text-align: left; }\n  .components-combobox-control__button:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n  .components-combobox-control__button-input {\n    border: none;\n    height: calc(100% - 2px);\n    left: 1px;\n    padding: 0 4px;\n    position: absolute;\n    top: 1px;\n    width: calc(100% - 2px); }\n  .components-combobox-control__button-button:hover {\n    box-shadow: none !important; }\n  .components-combobox-control__button-icon {\n    height: 100%;\n    padding: 0 4px;\n    position: absolute;\n    right: 0;\n    top: 0; }\n\n.components-combobox-control__menu {\n  background: #fff;\n  min-width: 100%;\n  padding: 0;\n  position: absolute;\n  z-index: 1000000; }\n\n.components-combobox-control__item {\n  align-items: center;\n  display: flex;\n  list-style-type: none;\n  padding: 10px 5px 10px 25px; }\n  .components-combobox-control__item.is-highlighted {\n    background: #ddd; }\n  .components-combobox-control__item-icon {\n    margin-left: -20px;\n    margin-right: 0; }\n\n.components-custom-gradient-picker {\n  margin-top: 8px; }\n\n.components-custom-gradient-picker__gradient-bar:not(.has-gradient) {\n  opacity: 0.4; }\n\n.components-custom-gradient-picker__gradient-bar {\n  width: 100%;\n  height: 24px;\n  border-radius: 24px;\n  margin-bottom: 8px;\n  padding-left: 3px;\n  padding-right: 21px; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__markers-container {\n    position: relative; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point {\n    border-radius: 50%;\n    background: #fff;\n    padding: 2px;\n    min-width: 24px;\n    width: 24px;\n    height: 24px;\n    position: relative; }\n    .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__insert-point svg {\n      height: 100%;\n      width: 100%; }\n  .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button {\n    border: 2px solid #fff;\n    border-radius: 50%;\n    height: 18px;\n    padding: 0;\n    position: absolute;\n    width: 18px;\n    top: 3px; }\n    .components-custom-gradient-picker__gradient-bar .components-custom-gradient-picker__control-point-button.is-active {\n      background: #fafafa;\n      color: #23282d;\n      border-color: #999;\n      box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n      box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n\n.components-custom-gradient-picker__color-picker-popover .components-custom-gradient-picker__remove-control-point {\n  margin-left: auto;\n  margin-right: auto;\n  display: block;\n  margin-bottom: 8px; }\n\n.components-custom-gradient-picker__inserter {\n  width: 100%; }\n\n.components-custom-gradient-picker__liner-gradient-indicator {\n  display: inline-block;\n  flex: 0 auto;\n  width: 20px;\n  height: 20px; }\n\n.components-custom-gradient-picker__ui-line {\n  display: flex;\n  justify-content: space-between; }\n\n.components-custom-gradient-picker .components-custom-gradient-picker__ui-line .components-base-control.components-angle-picker,\n.components-custom-gradient-picker .components-custom-gradient-picker__ui-line .components-base-control.components-custom-gradient-picker__type-picker {\n  margin-bottom: 0; }\n\n.components-custom-gradient-picker .components-custom-gradient-picker__toolbar {\n  border: none; }\n  .components-custom-gradient-picker .components-custom-gradient-picker__toolbar > div + div {\n    margin-left: 1px; }\n  .components-custom-gradient-picker .components-custom-gradient-picker__toolbar button.is-pressed > svg {\n    background: #fff;\n    border: 1px solid #7e8993;\n    border-radius: 2px; }\n\n.components-custom-select-control {\n  position: relative; }\n\n.components-custom-select-control__label {\n  display: block;\n  margin-bottom: 8px; }\n\n.components-custom-select-control__button {\n  border: 1px solid #757575;\n  border-radius: 2px;\n  min-height: 30px;\n  min-width: 130px;\n  position: relative;\n  text-align: left; }\n  .components-custom-select-control__button.components-custom-select-control__button {\n    padding-right: 24px; }\n  .components-custom-select-control__button:focus:not(:disabled) {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color); }\n  .components-custom-select-control__button .components-custom-select-control__button-icon {\n    height: 100%;\n    padding: 0;\n    position: absolute;\n    right: 0;\n    top: 0; }\n\n.components-custom-select-control__menu {\n  background-color: #fff;\n  max-height: 400px;\n  min-width: 100%;\n  overflow: auto;\n  padding: 0;\n  position: absolute;\n  z-index: 1000000; }\n  .components-custom-select-control__menu:focus {\n    border: 1px solid #1e1e1e;\n    border-radius: 2px;\n    outline: none;\n    transition: none; }\n\n.components-custom-select-control__item {\n  align-items: center;\n  display: flex;\n  list-style-type: none;\n  padding: 10px 5px 10px 25px;\n  cursor: default; }\n  .components-custom-select-control__item.is-highlighted {\n    background: #ddd; }\n  .components-custom-select-control__item-icon {\n    margin-left: -20px;\n    margin-right: 0; }\n\nsvg.dashicon {\n  fill: currentColor;\n  outline: none; }\n\n/*rtl:begin:ignore*/\n.PresetDateRangePicker_panel {\n  padding: 0 22px 11px; }\n\n.PresetDateRangePicker_button {\n  position: relative;\n  height: 100%;\n  text-align: center;\n  background: 0 0;\n  border: 2px solid #00a699;\n  color: #00a699;\n  padding: 4px 12px;\n  margin-right: 8px;\n  font: inherit;\n  font-weight: 700;\n  line-height: normal;\n  overflow: visible;\n  box-sizing: border-box;\n  cursor: pointer; }\n\n.PresetDateRangePicker_button:active {\n  outline: 0; }\n\n.PresetDateRangePicker_button__selected {\n  color: #fff;\n  background: #00a699; }\n\n.SingleDatePickerInput {\n  display: inline-block;\n  background-color: #fff; }\n\n.SingleDatePickerInput__withBorder {\n  border-radius: 2px;\n  border: 1px solid #dbdbdb; }\n\n.SingleDatePickerInput__rtl {\n  direction: rtl; }\n\n.SingleDatePickerInput__disabled {\n  background-color: #f2f2f2; }\n\n.SingleDatePickerInput__block {\n  display: block; }\n\n.SingleDatePickerInput__showClearDate {\n  padding-right: 30px; }\n\n.SingleDatePickerInput_clearDate {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  padding: 10px;\n  margin: 0 10px 0 5px;\n  position: absolute;\n  right: 0;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.SingleDatePickerInput_clearDate__default:focus,\n.SingleDatePickerInput_clearDate__default:hover {\n  background: #dbdbdb;\n  border-radius: 50%; }\n\n.SingleDatePickerInput_clearDate__small {\n  padding: 6px; }\n\n.SingleDatePickerInput_clearDate__hide {\n  visibility: hidden; }\n\n.SingleDatePickerInput_clearDate_svg {\n  fill: #82888a;\n  height: 12px;\n  width: 15px;\n  vertical-align: middle; }\n\n.SingleDatePickerInput_clearDate_svg__small {\n  height: 9px; }\n\n.SingleDatePickerInput_calendarIcon {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  padding: 10px;\n  margin: 0 5px 0 10px; }\n\n.SingleDatePickerInput_calendarIcon_svg {\n  fill: #82888a;\n  height: 15px;\n  width: 14px;\n  vertical-align: middle; }\n\n.SingleDatePicker {\n  position: relative;\n  display: inline-block; }\n\n.SingleDatePicker__block {\n  display: block; }\n\n.SingleDatePicker_picker {\n  z-index: 1;\n  background-color: #fff;\n  position: absolute; }\n\n.SingleDatePicker_picker__rtl {\n  direction: rtl; }\n\n.SingleDatePicker_picker__directionLeft {\n  left: 0; }\n\n.SingleDatePicker_picker__directionRight {\n  right: 0; }\n\n.SingleDatePicker_picker__portal {\n  background-color: rgba(0, 0, 0, 0.3);\n  position: fixed;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%; }\n\n.SingleDatePicker_picker__fullScreenPortal {\n  background-color: #fff; }\n\n.SingleDatePicker_closeButton {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 15px;\n  z-index: 2; }\n\n.SingleDatePicker_closeButton:focus,\n.SingleDatePicker_closeButton:hover {\n  color: #b0b3b4;\n  text-decoration: none; }\n\n.SingleDatePicker_closeButton_svg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n\n.DayPickerKeyboardShortcuts_buttonReset {\n  background: 0 0;\n  border: 0;\n  border-radius: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  padding: 0;\n  cursor: pointer;\n  font-size: 14px; }\n\n.DayPickerKeyboardShortcuts_buttonReset:active {\n  outline: 0; }\n\n.DayPickerKeyboardShortcuts_show {\n  width: 22px;\n  position: absolute;\n  z-index: 2; }\n\n.DayPickerKeyboardShortcuts_show__bottomRight {\n  border-top: 26px solid transparent;\n  border-right: 33px solid #00a699;\n  bottom: 0;\n  right: 0; }\n\n.DayPickerKeyboardShortcuts_show__bottomRight:hover {\n  border-right: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_show__topRight {\n  border-bottom: 26px solid transparent;\n  border-right: 33px solid #00a699;\n  top: 0;\n  right: 0; }\n\n.DayPickerKeyboardShortcuts_show__topRight:hover {\n  border-right: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_show__topLeft {\n  border-bottom: 26px solid transparent;\n  border-left: 33px solid #00a699;\n  top: 0;\n  left: 0; }\n\n.DayPickerKeyboardShortcuts_show__topLeft:hover {\n  border-left: 33px solid #008489; }\n\n.DayPickerKeyboardShortcuts_showSpan {\n  color: #fff;\n  position: absolute; }\n\n.DayPickerKeyboardShortcuts_showSpan__bottomRight {\n  bottom: 0;\n  right: -28px; }\n\n.DayPickerKeyboardShortcuts_showSpan__topRight {\n  top: 1px;\n  right: -28px; }\n\n.DayPickerKeyboardShortcuts_showSpan__topLeft {\n  top: 1px;\n  left: -28px; }\n\n.DayPickerKeyboardShortcuts_panel {\n  overflow: auto;\n  background: #fff;\n  border: 1px solid #dbdbdb;\n  border-radius: 2px;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  z-index: 2;\n  padding: 22px;\n  margin: 33px; }\n\n.DayPickerKeyboardShortcuts_title {\n  font-size: 16px;\n  font-weight: 700;\n  margin: 0; }\n\n.DayPickerKeyboardShortcuts_list {\n  list-style: none;\n  padding: 0;\n  font-size: 14px; }\n\n.DayPickerKeyboardShortcuts_close {\n  position: absolute;\n  right: 22px;\n  top: 22px;\n  z-index: 2; }\n\n.DayPickerKeyboardShortcuts_close:active {\n  outline: 0; }\n\n.DayPickerKeyboardShortcuts_closeSvg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n\n.DayPickerKeyboardShortcuts_closeSvg:focus,\n.DayPickerKeyboardShortcuts_closeSvg:hover {\n  fill: #82888a; }\n\n.CalendarDay {\n  box-sizing: border-box;\n  cursor: pointer;\n  font-size: 14px;\n  text-align: center; }\n\n.CalendarDay:active {\n  outline: 0; }\n\n.CalendarDay__defaultCursor {\n  cursor: default; }\n\n.CalendarDay__default {\n  border: 1px solid #e4e7e7;\n  color: #484848;\n  background: #fff; }\n\n.CalendarDay__default:hover {\n  background: #e4e7e7;\n  border: 1px double #e4e7e7;\n  color: inherit; }\n\n.CalendarDay__hovered_offset {\n  background: #f4f5f5;\n  border: 1px double #e4e7e7;\n  color: inherit; }\n\n.CalendarDay__outside {\n  border: 0;\n  background: #fff;\n  color: #484848; }\n\n.CalendarDay__outside:hover {\n  border: 0; }\n\n.CalendarDay__blocked_minimum_nights {\n  background: #fff;\n  border: 1px solid #eceeee;\n  color: #cacccd; }\n\n.CalendarDay__blocked_minimum_nights:active,\n.CalendarDay__blocked_minimum_nights:hover {\n  background: #fff;\n  color: #cacccd; }\n\n.CalendarDay__highlighted_calendar {\n  background: #ffe8bc;\n  color: #484848; }\n\n.CalendarDay__highlighted_calendar:active,\n.CalendarDay__highlighted_calendar:hover {\n  background: #ffce71;\n  color: #484848; }\n\n.CalendarDay__selected_span {\n  background: #66e2da;\n  border: 1px solid #33dacd;\n  color: #fff; }\n\n.CalendarDay__selected_span:active,\n.CalendarDay__selected_span:hover {\n  background: #33dacd;\n  border: 1px solid #33dacd;\n  color: #fff; }\n\n.CalendarDay__last_in_range {\n  border-right: #00a699; }\n\n.CalendarDay__selected,\n.CalendarDay__selected:active,\n.CalendarDay__selected:hover {\n  background: #00a699;\n  border: 1px solid #00a699;\n  color: #fff; }\n\n.CalendarDay__hovered_span,\n.CalendarDay__hovered_span:hover {\n  background: #b2f1ec;\n  border: 1px solid #80e8e0;\n  color: #007a87; }\n\n.CalendarDay__hovered_span:active {\n  background: #80e8e0;\n  border: 1px solid #80e8e0;\n  color: #007a87; }\n\n.CalendarDay__blocked_calendar,\n.CalendarDay__blocked_calendar:active,\n.CalendarDay__blocked_calendar:hover {\n  background: #cacccd;\n  border: 1px solid #cacccd;\n  color: #82888a; }\n\n.CalendarDay__blocked_out_of_range,\n.CalendarDay__blocked_out_of_range:active,\n.CalendarDay__blocked_out_of_range:hover {\n  background: #fff;\n  border: 1px solid #e4e7e7;\n  color: #cacccd; }\n\n.CalendarMonth {\n  background: #fff;\n  text-align: center;\n  vertical-align: top;\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n\n.CalendarMonth_table {\n  border-collapse: collapse;\n  border-spacing: 0; }\n\n.CalendarMonth_verticalSpacing {\n  border-collapse: separate; }\n\n.CalendarMonth_caption {\n  color: #484848;\n  font-size: 18px;\n  text-align: center;\n  padding-top: 22px;\n  padding-bottom: 37px;\n  caption-side: initial; }\n\n.CalendarMonth_caption__verticalScrollable {\n  padding-top: 12px;\n  padding-bottom: 7px; }\n\n.CalendarMonthGrid {\n  background: #fff;\n  text-align: left;\n  z-index: 0; }\n\n.CalendarMonthGrid__animating {\n  z-index: 1; }\n\n.CalendarMonthGrid__horizontal {\n  position: absolute;\n  left: 9px; }\n\n.CalendarMonthGrid__vertical {\n  margin: 0 auto; }\n\n.CalendarMonthGrid__vertical_scrollable {\n  margin: 0 auto;\n  overflow-y: scroll; }\n\n.CalendarMonthGrid_month__horizontal {\n  display: inline-block;\n  vertical-align: top;\n  min-height: 100%; }\n\n.CalendarMonthGrid_month__hideForAnimation {\n  position: absolute;\n  z-index: -1;\n  opacity: 0;\n  pointer-events: none; }\n\n.CalendarMonthGrid_month__hidden {\n  visibility: hidden; }\n\n.DayPickerNavigation {\n  position: relative;\n  z-index: 2; }\n\n.DayPickerNavigation__horizontal {\n  height: 0; }\n\n.DayPickerNavigation__verticalDefault {\n  position: absolute;\n  width: 100%;\n  height: 52px;\n  bottom: 0;\n  left: 0; }\n\n.DayPickerNavigation__verticalScrollableDefault {\n  position: relative; }\n\n.DayPickerNavigation_button {\n  cursor: pointer;\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  border: 0;\n  padding: 0;\n  margin: 0; }\n\n.DayPickerNavigation_button__default {\n  border: 1px solid #e4e7e7;\n  background-color: #fff;\n  color: #757575; }\n\n.DayPickerNavigation_button__default:focus,\n.DayPickerNavigation_button__default:hover {\n  border: 1px solid #c4c4c4; }\n\n.DayPickerNavigation_button__default:active {\n  background: #f2f2f2; }\n\n.DayPickerNavigation_button__horizontalDefault {\n  position: absolute;\n  top: 18px;\n  line-height: .78;\n  border-radius: 3px;\n  padding: 6px 9px; }\n\n.DayPickerNavigation_leftButton__horizontalDefault {\n  left: 22px; }\n\n.DayPickerNavigation_rightButton__horizontalDefault {\n  right: 22px; }\n\n.DayPickerNavigation_button__verticalDefault {\n  padding: 5px;\n  background: #fff;\n  box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.1);\n  position: relative;\n  display: inline-block;\n  height: 100%;\n  width: 50%; }\n\n.DayPickerNavigation_nextButton__verticalDefault {\n  border-left: 0; }\n\n.DayPickerNavigation_nextButton__verticalScrollableDefault {\n  width: 100%; }\n\n.DayPickerNavigation_svg__horizontal {\n  height: 19px;\n  width: 19px;\n  fill: #82888a;\n  display: block; }\n\n.DayPickerNavigation_svg__vertical {\n  height: 42px;\n  width: 42px;\n  fill: #484848;\n  display: block; }\n\n.DayPicker {\n  background: #fff;\n  position: relative;\n  text-align: left; }\n\n.DayPicker__horizontal {\n  background: #fff; }\n\n.DayPicker__verticalScrollable {\n  height: 100%; }\n\n.DayPicker__hidden {\n  visibility: hidden; }\n\n.DayPicker__withBorder {\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07);\n  border-radius: 3px; }\n\n.DayPicker_portal__horizontal {\n  box-shadow: none;\n  position: absolute;\n  left: 50%;\n  top: 50%; }\n\n.DayPicker_portal__vertical {\n  position: initial; }\n\n.DayPicker_focusRegion {\n  outline: 0; }\n\n.DayPicker_calendarInfo__horizontal,\n.DayPicker_wrapper__horizontal {\n  display: inline-block;\n  vertical-align: top; }\n\n.DayPicker_weekHeaders {\n  position: relative; }\n\n.DayPicker_weekHeaders__horizontal {\n  margin-left: 9px; }\n\n.DayPicker_weekHeader {\n  color: #757575;\n  position: absolute;\n  top: 62px;\n  z-index: 2;\n  text-align: left; }\n\n.DayPicker_weekHeader__vertical {\n  left: 50%; }\n\n.DayPicker_weekHeader__verticalScrollable {\n  top: 0;\n  display: table-row;\n  border-bottom: 1px solid #dbdbdb;\n  background: #fff;\n  margin-left: 0;\n  left: 0;\n  width: 100%;\n  text-align: center; }\n\n.DayPicker_weekHeader_ul {\n  list-style: none;\n  margin: 1px 0;\n  padding-left: 0;\n  padding-right: 0;\n  font-size: 14px; }\n\n.DayPicker_weekHeader_li {\n  display: inline-block;\n  text-align: center; }\n\n.DayPicker_transitionContainer {\n  position: relative;\n  overflow: hidden;\n  border-radius: 3px; }\n\n.DayPicker_transitionContainer__horizontal {\n  transition: height .2s ease-in-out; }\n\n.DayPicker_transitionContainer__vertical {\n  width: 100%; }\n\n.DayPicker_transitionContainer__verticalScrollable {\n  padding-top: 20px;\n  height: 100%;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  overflow-y: scroll; }\n\n.DateInput {\n  margin: 0;\n  padding: 0;\n  background: #fff;\n  position: relative;\n  display: inline-block;\n  width: 130px;\n  vertical-align: middle; }\n\n.DateInput__small {\n  width: 97px; }\n\n.DateInput__block {\n  width: 100%; }\n\n.DateInput__disabled {\n  background: #f2f2f2;\n  color: #dbdbdb; }\n\n.DateInput_input {\n  font-weight: 200;\n  font-size: 19px;\n  line-height: 24px;\n  color: #484848;\n  background-color: #fff;\n  width: 100%;\n  padding: 11px 11px 9px;\n  border: 0;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 2px solid transparent;\n  border-left: 0;\n  border-radius: 0; }\n\n.DateInput_input__small {\n  font-size: 15px;\n  line-height: 18px;\n  letter-spacing: .2px;\n  padding: 7px 7px 5px; }\n\n.DateInput_input__regular {\n  font-weight: auto; }\n\n.DateInput_input__readOnly {\n  -webkit-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n\n.DateInput_input__focused {\n  outline: 0;\n  background: #fff;\n  border: 0;\n  border-top: 0;\n  border-right: 0;\n  border-bottom: 2px solid #008489;\n  border-left: 0; }\n\n.DateInput_input__disabled {\n  background: #f2f2f2;\n  font-style: italic; }\n\n.DateInput_screenReaderMessage {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n.DateInput_fang {\n  position: absolute;\n  width: 20px;\n  height: 10px;\n  left: 22px;\n  z-index: 2; }\n\n.DateInput_fangShape {\n  fill: #fff; }\n\n.DateInput_fangStroke {\n  stroke: #dbdbdb;\n  fill: transparent; }\n\n.DateRangePickerInput {\n  background-color: #fff;\n  display: inline-block; }\n\n.DateRangePickerInput__disabled {\n  background: #f2f2f2; }\n\n.DateRangePickerInput__withBorder {\n  border-radius: 2px;\n  border: 1px solid #dbdbdb; }\n\n.DateRangePickerInput__rtl {\n  direction: rtl; }\n\n.DateRangePickerInput__block {\n  display: block; }\n\n.DateRangePickerInput__showClearDates {\n  padding-right: 30px; }\n\n.DateRangePickerInput_arrow {\n  display: inline-block;\n  vertical-align: middle;\n  color: #484848; }\n\n.DateRangePickerInput_arrow_svg {\n  vertical-align: middle;\n  fill: #484848;\n  height: 24px;\n  width: 24px; }\n\n.DateRangePickerInput_clearDates {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  padding: 10px;\n  margin: 0 10px 0 5px;\n  position: absolute;\n  right: 0;\n  top: 50%;\n  transform: translateY(-50%); }\n\n.DateRangePickerInput_clearDates__small {\n  padding: 6px; }\n\n.DateRangePickerInput_clearDates_default:focus,\n.DateRangePickerInput_clearDates_default:hover {\n  background: #dbdbdb;\n  border-radius: 50%; }\n\n.DateRangePickerInput_clearDates__hide {\n  visibility: hidden; }\n\n.DateRangePickerInput_clearDates_svg {\n  fill: #82888a;\n  height: 12px;\n  width: 15px;\n  vertical-align: middle; }\n\n.DateRangePickerInput_clearDates_svg__small {\n  height: 9px; }\n\n.DateRangePickerInput_calendarIcon {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  display: inline-block;\n  vertical-align: middle;\n  padding: 10px;\n  margin: 0 5px 0 10px; }\n\n.DateRangePickerInput_calendarIcon_svg {\n  fill: #82888a;\n  height: 15px;\n  width: 14px;\n  vertical-align: middle; }\n\n.DateRangePicker {\n  position: relative;\n  display: inline-block; }\n\n.DateRangePicker__block {\n  display: block; }\n\n.DateRangePicker_picker {\n  z-index: 1;\n  background-color: #fff;\n  position: absolute; }\n\n.DateRangePicker_picker__rtl {\n  direction: rtl; }\n\n.DateRangePicker_picker__directionLeft {\n  left: 0; }\n\n.DateRangePicker_picker__directionRight {\n  right: 0; }\n\n.DateRangePicker_picker__portal {\n  background-color: rgba(0, 0, 0, 0.3);\n  position: fixed;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%; }\n\n.DateRangePicker_picker__fullScreenPortal {\n  background-color: #fff; }\n\n.DateRangePicker_closeButton {\n  background: 0 0;\n  border: 0;\n  color: inherit;\n  font: inherit;\n  line-height: normal;\n  overflow: visible;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  right: 0;\n  padding: 15px;\n  z-index: 2; }\n\n.DateRangePicker_closeButton:focus,\n.DateRangePicker_closeButton:hover {\n  color: #b0b3b4;\n  text-decoration: none; }\n\n.DateRangePicker_closeButton_svg {\n  height: 15px;\n  width: 15px;\n  fill: #cacccd; }\n\n/*rtl:end:ignore*/\n.components-datetime {\n  padding: 0; }\n  .components-datetime .components-datetime__calendar-help {\n    padding: 16px; }\n    .components-datetime .components-datetime__calendar-help h4 {\n      margin: 0; }\n  .components-datetime .components-datetime__buttons {\n    display: flex;\n    justify-content: space-between; }\n  .components-datetime .components-datetime__date-help-toggle {\n    display: block;\n    margin-left: auto; }\n  .components-datetime fieldset {\n    border: 0;\n    padding: 0;\n    margin: 0; }\n  .components-datetime select,\n  .components-datetime input {\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-datetime select,\n      .components-datetime input {\n        transition-duration: 0s; } }\n  .components-datetime select,\n  .components-datetime input[type=\"number\"],\n  .components-datetime .components-button {\n    height: 30px;\n    margin-top: 0;\n    margin-bottom: 0; }\n\n.components-datetime__date {\n  min-height: 236px;\n  border-top: 1px solid #ddd; }\n  .components-datetime__date .DayPickerNavigation_leftButton__horizontalDefault {\n    left: 0; }\n  .components-datetime__date .CalendarMonth_caption {\n    font-size: 13px; }\n  .components-datetime__date .CalendarMonth_table {\n    border-collapse: separate;\n    border-spacing: 2px; }\n  .components-datetime__date .CalendarDay {\n    font-size: 13px;\n    border: none;\n    border-radius: 50%;\n    text-align: center; }\n    .components-datetime__date .CalendarDay:focus {\n      box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 2.5px #fff;\n      box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 2.5px #fff;\n      outline: 2px solid transparent; }\n  .components-datetime__date .CalendarDay__selected {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border: 2px solid transparent; }\n    .components-datetime__date .CalendarDay__selected:hover {\n      background: #005a87;\n      background: var(--wp-admin-theme-color-darker-20); }\n    .components-datetime__date .CalendarDay__selected:focus {\n      box-shadow: inset 0 0 0 1px #fff; }\n  .components-datetime__date .DayPickerNavigation_button__horizontalDefault {\n    padding: 2px 8px;\n    top: 20px; }\n    .components-datetime__date .DayPickerNavigation_button__horizontalDefault:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n  .components-datetime__date .DayPicker_weekHeader {\n    top: 50px; }\n    .components-datetime__date .DayPicker_weekHeader .DayPicker_weekHeader_ul {\n      margin: 1px 0;\n      padding-left: 0;\n      padding-right: 0; }\n  .components-datetime__date.is-description-visible .DayPicker {\n    visibility: hidden; }\n\n.components-datetime__time {\n  padding-bottom: 16px; }\n  .components-datetime__time fieldset {\n    position: relative;\n    margin-bottom: 0.5em; }\n  .components-datetime__time fieldset + fieldset {\n    margin-bottom: 0; }\n  .components-datetime__time .components-datetime__time-field-am-pm fieldset {\n    margin-top: 0; }\n  .components-datetime__time .components-datetime__time-wrapper {\n    display: flex; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-separator {\n      display: inline-block;\n      padding: 0 3px 0 0;\n      color: #555d66; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field-time {\n      /*rtl:ignore*/\n      direction: ltr; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field select {\n      margin-right: 4px; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field select:focus {\n        position: relative;\n        z-index: 1; }\n    .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"] {\n      padding: 2px;\n      margin-right: 4px;\n      text-align: center;\n      -moz-appearance: textfield; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"]:focus {\n        position: relative;\n        z-index: 1; }\n      .components-datetime__time .components-datetime__time-wrapper .components-datetime__time-field input[type=\"number\"]::-webkit-inner-spin-button {\n        -webkit-appearance: none;\n        margin: 0; }\n  .components-datetime__time.is-12-hour .components-datetime__time-field-day input {\n    margin: -4px 0 0 !important;\n    border-radius: 2px 0 0 2px !important; }\n  .components-datetime__time.is-12-hour .components-datetime__time-field-year input {\n    border-radius: 0 2px 2px 0 !important; }\n\n.components-datetime__time-legend {\n  font-weight: 600;\n  margin-top: 0.5em; }\n  .components-datetime__time-legend.invisible {\n    position: absolute;\n    top: -999em;\n    left: -999em; }\n\n.components-datetime__time-field-hours-input,\n.components-datetime__time-field-minutes-input,\n.components-datetime__time-field-day-input {\n  width: 35px; }\n\n.components-datetime__time-field-year-input {\n  width: 55px; }\n\n.components-datetime__time-field-month-select {\n  max-width: 145px; }\n\n.components-popover .components-datetime__date {\n  padding-left: 4px; }\n\n.block-editor-dimension-control .components-base-control__field {\n  display: flex;\n  align-items: center; }\n\n.block-editor-dimension-control .components-base-control__label {\n  display: flex;\n  align-items: center;\n  margin-right: 1em;\n  margin-bottom: 0; }\n  .block-editor-dimension-control .components-base-control__label .dashicon {\n    margin-right: 0.5em; }\n\n.block-editor-dimension-control.is-manual .components-base-control__label {\n  width: 10em; }\n\n.components-disabled {\n  position: relative;\n  pointer-events: none; }\n  .components-disabled::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0; }\n  .components-disabled * {\n    pointer-events: none; }\n\nbody.is-dragging-components-draggable {\n  cursor: move;\n  /* Fallback for IE/Edge < 14 */\n  cursor: grabbing !important; }\n\n.components-draggable__invisible-drag-image {\n  position: fixed;\n  left: -1000px;\n  height: 50px;\n  width: 50px; }\n\n.components-draggable__clone {\n  position: fixed;\n  padding: 0;\n  background: transparent;\n  pointer-events: none;\n  z-index: 1000000000; }\n\n.components-drop-zone {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 40;\n  visibility: hidden;\n  opacity: 0;\n  transition: 0.3s opacity, 0.3s background-color, 0s visibility 0.3s;\n  border: 2px solid #007cba;\n  border: 2px solid var(--wp-admin-theme-color);\n  border-radius: 2px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-drop-zone {\n      transition-duration: 0s; } }\n  .components-drop-zone.is-active {\n    opacity: 1;\n    visibility: visible;\n    transition: 0.3s opacity, 0.3s background-color; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-drop-zone.is-active {\n        transition-duration: 0s; } }\n  .components-drop-zone.is-dragging-over-element {\n    background-color: #007cba;\n    background-color: var(--wp-admin-theme-color); }\n\n.components-drop-zone__content {\n  position: absolute;\n  top: 50%;\n  left: 0;\n  right: 0;\n  z-index: 50;\n  transform: translateY(-50%);\n  width: 100%;\n  text-align: center;\n  color: #fff;\n  transition: transform 0.2s ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-drop-zone__content {\n      transition-duration: 0s; } }\n\n.components-drop-zone.is-dragging-over-element .components-drop-zone__content {\n  transform: translateY(-50%) scale(1.05); }\n\n.components-drop-zone__content-icon,\n.components-drop-zone__content-text {\n  display: block; }\n\n.components-drop-zone__content-icon {\n  margin: 0 auto;\n  line-height: 0;\n  fill: currentColor; }\n\n.components-drop-zone__content-text {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif; }\n\n.components-drop-zone__provider {\n  height: 100%; }\n\n.components-dropdown {\n  display: inline-block; }\n\n.components-dropdown__content .components-popover__content > div {\n  padding: 12px; }\n\n.components-dropdown-menu__popover .components-popover__content {\n  width: 200px; }\n\n.components-dropdown-menu__menu {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  line-height: 1.4; }\n  .components-dropdown-menu__menu .components-dropdown-menu__menu-item,\n  .components-dropdown-menu__menu .components-menu-item {\n    width: 100%;\n    padding: 6px;\n    outline: none;\n    cursor: pointer;\n    margin-bottom: 4px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator,\n    .components-dropdown-menu__menu .components-menu-item.has-separator {\n      margin-top: 6px;\n      position: relative;\n      overflow: visible; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.has-separator::before,\n    .components-dropdown-menu__menu .components-menu-item.has-separator::before {\n      display: block;\n      content: \"\";\n      box-sizing: content-box;\n      background-color: #ddd;\n      position: absolute;\n      top: -3px;\n      left: 0;\n      right: 0;\n      height: 1px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item.is-active svg,\n    .components-dropdown-menu__menu .components-menu-item.is-active svg {\n      color: #fff;\n      background: #1e1e1e;\n      box-shadow: 0 0 0 1px #1e1e1e;\n      border-radius: 1px; }\n    .components-dropdown-menu__menu .components-dropdown-menu__menu-item > svg,\n    .components-dropdown-menu__menu .components-menu-item > svg {\n      border-radius: 2px;\n      width: 24px;\n      height: 24px; }\n  .components-dropdown-menu__menu .components-menu-item__button,\n  .components-dropdown-menu__menu .components-menu-item__button.components-button {\n    min-height: 36px;\n    height: auto;\n    padding-left: 40px;\n    text-align: left; }\n    .components-dropdown-menu__menu .components-menu-item__button.has-icon,\n    .components-dropdown-menu__menu .components-menu-item__button.components-button.has-icon {\n      padding-left: 8px; }\n  .components-dropdown-menu__menu .components-menu-group {\n    padding: 12px;\n    margin-top: 0;\n    margin-bottom: 0;\n    margin-left: -12px;\n    margin-right: -12px; }\n    .components-dropdown-menu__menu .components-menu-group:first-child {\n      margin-top: -12px; }\n    .components-dropdown-menu__menu .components-menu-group:last-child {\n      margin-bottom: -12px; }\n  .components-dropdown-menu__menu .components-menu-group + .components-menu-group {\n    margin-top: 0;\n    border-top: 1px solid #ccc;\n    padding: 12px; }\n    .is-alternate .components-dropdown-menu__menu .components-menu-group + .components-menu-group {\n      border-color: #1e1e1e; }\n\n.components-dropdown-menu__menu.no-icons .components-menu-item__button.components-button {\n  padding: 0 12px; }\n\n.components-external-link__icon {\n  width: 1.4em;\n  height: 1.4em;\n  margin: -0.2em 0.1em 0;\n  vertical-align: middle;\n  fill: currentColor; }\n\n.components-focal-point-picker-wrapper {\n  background-color: transparent;\n  border: 1px solid #ddd;\n  height: 200px;\n  width: 100%;\n  padding: 14px; }\n\n.components-focal-point-picker {\n  align-items: center;\n  cursor: pointer;\n  display: flex;\n  height: 100%;\n  justify-content: center;\n  position: relative;\n  width: 100%; }\n  .components-focal-point-picker img {\n    height: auto;\n    max-height: 100%;\n    max-width: 100%;\n    width: auto;\n    -webkit-user-select: none;\n        -ms-user-select: none;\n            user-select: none; }\n\n.components-focal-point-picker__icon_container {\n  background-color: transparent;\n  cursor: grab;\n  height: 30px;\n  opacity: 0.8;\n  position: absolute;\n  will-change: transform;\n  width: 30px;\n  z-index: 10000; }\n  .components-focal-point-picker__icon_container.is-dragging {\n    cursor: grabbing; }\n\n.components-focal-point-picker__icon {\n  display: block;\n  height: 100%;\n  left: -15px;\n  position: absolute;\n  top: -15px;\n  width: 100%; }\n  .components-focal-point-picker__icon .components-focal-point-picker__icon-outline {\n    fill: #fff; }\n  .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {\n    fill: #007cba;\n    fill: var(--wp-admin-theme-color); }\n\n.components-focal-point-picker_position-display-container {\n  margin: 1em 0;\n  display: flex; }\n  .components-focal-point-picker_position-display-container .components-base-control__field {\n    margin: 0 1em 0 0; }\n  .components-focal-point-picker_position-display-container input[type=\"number\"].components-text-control__input {\n    max-width: 4em;\n    padding: 6px 4px; }\n  .components-focal-point-picker_position-display-container span {\n    margin: 0 0 0 0.2em; }\n\n.components-font-size-picker__controls {\n  max-width: 248px;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  margin-bottom: 24px; }\n  .components-font-size-picker__controls .components-font-size-picker__number {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    display: inline-block;\n    font-weight: 500;\n    height: 30px;\n    margin-bottom: 0;\n    margin-left: 0;\n    margin-right: 8px;\n    margin-top: 8px;\n    width: 54px; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-font-size-picker__controls .components-font-size-picker__number {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .components-font-size-picker__controls .components-font-size-picker__number {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .components-font-size-picker__controls .components-font-size-picker__number:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .components-font-size-picker__controls .components-font-size-picker__number::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .components-font-size-picker__controls .components-font-size-picker__number::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .components-font-size-picker__controls .components-font-size-picker__number:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .components-font-size-picker__controls .components-font-size-picker__number:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .components-font-size-picker__controls .components-font-size-picker__number[value=\"\"] + .components-button {\n      cursor: default;\n      opacity: 0.3;\n      pointer-events: none; }\n    .components-font-size-picker__controls .components-font-size-picker__number-container {\n      display: flex;\n      flex-direction: column; }\n  .components-font-size-picker__controls .components-font-size-picker__select {\n    margin-right: 8px; }\n  .components-font-size-picker__controls .components-color-palette__clear {\n    height: 30px;\n    margin-top: 26px; }\n\n.components-font-size-picker__custom-input .components-range-control__slider + .dashicon {\n  width: 30px;\n  height: 30px; }\n\n.components-font-size-picker {\n  border: 0;\n  padding: 0;\n  margin: 0; }\n\n.components-form-toggle {\n  position: relative;\n  display: inline-block; }\n  .components-form-toggle .components-form-toggle__track {\n    content: \"\";\n    display: inline-block;\n    box-sizing: border-box;\n    vertical-align: top;\n    background-color: #fff;\n    border: 1px solid #1e1e1e;\n    width: 36px;\n    height: 18px;\n    border-radius: 9px;\n    transition: 0.2s background ease; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-form-toggle .components-form-toggle__track {\n        transition-duration: 0s; } }\n  .components-form-toggle .components-form-toggle__thumb {\n    display: block;\n    position: absolute;\n    box-sizing: border-box;\n    top: 3px;\n    left: 3px;\n    width: 12px;\n    height: 12px;\n    border-radius: 50%;\n    transition: 0.1s transform ease;\n    background-color: #1e1e1e;\n    border: 5px solid #1e1e1e; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-form-toggle .components-form-toggle__thumb {\n        transition-duration: 0s; } }\n  .components-form-toggle.is-checked .components-form-toggle__track {\n    background-color: #007cba;\n    background-color: var(--wp-admin-theme-color);\n    border: 1px solid #007cba;\n    border: 1px solid var(--wp-admin-theme-color);\n    border: 9px solid transparent; }\n  .components-form-toggle .components-form-toggle__input:focus + .components-form-toggle__track {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent;\n    outline-offset: 2px; }\n  .components-form-toggle.is-checked .components-form-toggle__thumb {\n    background-color: #fff;\n    border-width: 0;\n    transform: translateX(18px); }\n  .components-disabled .components-form-toggle {\n    opacity: 0.3; }\n\n.components-form-toggle input.components-form-toggle__input[type=\"checkbox\"] {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n  margin: 0;\n  padding: 0;\n  z-index: 1;\n  border: none; }\n  .components-form-toggle input.components-form-toggle__input[type=\"checkbox\"]:checked {\n    background: none; }\n  .components-form-toggle input.components-form-toggle__input[type=\"checkbox\"]::before {\n    content: \"\"; }\n\n.components-form-token-field__input-container {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: flex-start;\n  width: 100%;\n  margin: 0 0 8px 0;\n  padding: 4px;\n  cursor: text; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__input-container {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-form-token-field__input-container {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-form-token-field__input-container:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-form-token-field__input-container::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-form-token-field__input-container::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-form-token-field__input-container:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-form-token-field__input-container::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-form-token-field__input-container::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-form-token-field__input-container:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-form-token-field__input-container.is-disabled {\n    background: #ddd;\n    border-color: #ccd0d4; }\n  .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input {\n    display: inline-block;\n    width: 100%;\n    max-width: 100%;\n    margin-left: 4px;\n    padding: 0;\n    min-height: 24px;\n    background: inherit;\n    border: 0;\n    color: #1e1e1e;\n    box-shadow: none; }\n    .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input:focus,\n    .components-form-token-field.is-active .components-form-token-field__input-container input[type=\"text\"].components-form-token-field__input {\n      outline: none;\n      box-shadow: none; }\n  .components-form-token-field__input-container .components-form-token-field__token + input[type=\"text\"].components-form-token-field__input {\n    width: auto; }\n\n.components-form-token-field__label {\n  display: inline-block;\n  margin-bottom: 4px; }\n\n.components-form-token-field__help {\n  font-style: italic; }\n\n.components-form-token-field__token {\n  font-size: 13px;\n  display: flex;\n  margin: 2px 4px 2px 0;\n  color: #32373c;\n  overflow: hidden; }\n  .components-form-token-field__token.is-success .components-form-token-field__token-text,\n  .components-form-token-field__token.is-success .components-form-token-field__remove-token {\n    background: #4ab866; }\n  .components-form-token-field__token.is-error .components-form-token-field__token-text,\n  .components-form-token-field__token.is-error .components-form-token-field__remove-token {\n    background: #d94f4f; }\n  .components-form-token-field__token.is-validating .components-form-token-field__token-text,\n  .components-form-token-field__token.is-validating .components-form-token-field__remove-token {\n    color: #555d66; }\n  .components-form-token-field__token.is-borderless {\n    position: relative;\n    padding: 0 16px 0 0; }\n    .components-form-token-field__token.is-borderless .components-form-token-field__token-text {\n      background: transparent;\n      color: #007cba;\n      color: var(--wp-admin-theme-color); }\n    .components-form-token-field__token.is-borderless .components-form-token-field__remove-token {\n      background: transparent;\n      color: #555d66;\n      position: absolute;\n      top: 1px;\n      right: 0; }\n    .components-form-token-field__token.is-borderless.is-success .components-form-token-field__token-text {\n      color: #4ab866; }\n    .components-form-token-field__token.is-borderless.is-error .components-form-token-field__token-text {\n      color: #d94f4f;\n      border-radius: 4px 0 0 4px;\n      padding: 0 4px 0 6px; }\n    .components-form-token-field__token.is-borderless.is-validating .components-form-token-field__token-text {\n      color: #1e1e1e; }\n  .components-form-token-field__token.is-disabled .components-form-token-field__remove-token {\n    cursor: default; }\n\n.components-form-token-field__token-text,\n.components-form-token-field__remove-token.components-button {\n  display: inline-block;\n  line-height: 24px;\n  height: auto;\n  background: #ddd;\n  transition: all 0.2s cubic-bezier(0.4, 1, 0.4, 1); }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__token-text,\n    .components-form-token-field__remove-token.components-button {\n      transition-duration: 0s;\n      animation-duration: 1ms; } }\n\n.components-form-token-field__token-text {\n  border-radius: 12px 0 0 12px;\n  padding: 0 4px 0 8px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis; }\n\n.components-form-token-field__remove-token.components-button {\n  cursor: pointer;\n  border-radius: 0 12px 12px 0;\n  padding: 0 2px;\n  color: #555d66;\n  line-height: 10px;\n  overflow: initial; }\n  .components-form-token-field__remove-token.components-button:hover {\n    color: #32373c; }\n\n.components-form-token-field__suggestions-list {\n  flex: 1 0 100%;\n  min-width: 100%;\n  max-height: 9em;\n  overflow-y: scroll;\n  transition: all 0.15s ease-in-out;\n  list-style: none;\n  border-top: 1px solid #6c7781;\n  margin: 4px -4px -4px;\n  padding-top: 3px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-form-token-field__suggestions-list {\n      transition-duration: 0s; } }\n\n.components-form-token-field__suggestion {\n  color: #555d66;\n  display: block;\n  font-size: 13px;\n  padding: 4px 8px;\n  cursor: pointer; }\n  .components-form-token-field__suggestion.is-selected {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    color: #fff; }\n\n.components-form-token-field__suggestion-match {\n  text-decoration: underline; }\n\n@media (min-width: 600px) {\n  .components-guide {\n    width: 600px; } }\n\n.components-guide .components-modal__header {\n  background: none;\n  border-bottom: none;\n  width: 100%;\n  padding: 0;\n  margin: 0; }\n  .components-guide .components-modal__header .components-button {\n    align-self: flex-start;\n    margin: 8px 8px 0 0;\n    position: static; }\n    .components-guide .components-modal__header .components-button:hover svg {\n      fill: #fff; }\n\n.components-guide__container {\n  display: flex;\n  flex-direction: column;\n  justify-content: space-between;\n  margin-top: -60px;\n  min-height: 100%; }\n\n.components-guide__page {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  position: relative; }\n  @media (min-width: 600px) {\n    .components-guide__page {\n      min-height: 300px; } }\n\n.components-guide__footer {\n  align-content: center;\n  display: flex;\n  height: 30px;\n  justify-content: center;\n  margin: 0 0 24px 0;\n  padding: 0 32px;\n  position: relative;\n  width: 100%; }\n  @media (max-width: 600px) {\n    .components-guide__footer {\n      position: absolute;\n      bottom: 0; } }\n\n.components-guide__page-control {\n  margin: 8px 0 8px 0;\n  text-align: center; }\n  .components-guide__page-control li {\n    display: inline-block; }\n  .components-guide__page-control .components-button {\n    height: 30px;\n    min-width: 20px; }\n\n.components-guide .components-modal__content {\n  padding: 0; }\n\n.components-modal__frame.components-guide {\n  border: none;\n  min-width: 312px;\n  height: 80vh;\n  max-height: 575px; }\n  @media (max-width: 600px) {\n    .components-modal__frame.components-guide {\n      bottom: 5%;\n      left: 16px;\n      right: 16px;\n      top: 5%;\n      margin: 0 auto; } }\n\n.components-button.components-guide__back-button, .components-button.components-guide__forward-button, .components-button.components-guide__finish-button {\n  height: 30px;\n  position: absolute; }\n\n.components-button.components-guide__back-button, .components-button.components-guide__forward-button {\n  font-size: 13px;\n  padding: 4px 2px; }\n  .components-button.components-guide__back-button.has-text svg, .components-button.components-guide__forward-button.has-text svg {\n    margin: 0; }\n  .components-button.components-guide__back-button:hover, .components-button.components-guide__forward-button:hover {\n    text-decoration: underline; }\n\n.components-button.components-guide__back-button {\n  left: 32px; }\n\n.components-button.components-guide__forward-button {\n  right: 32px;\n  color: #1386bf;\n  font-weight: bold; }\n\n.components-button.components-guide__finish-button {\n  right: 32px; }\n\n.components-button.components-guide__inline-finish-button {\n  display: none; }\n\n.components-navigate-regions.is-focusing-regions [role=\"region\"] {\n  position: relative; }\n  .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    bottom: 0;\n    left: 0;\n    right: 0;\n    pointer-events: none;\n    outline: 4px solid transparent;\n    box-shadow: inset 0 0 0 4px #007cba;\n    box-shadow: inset 0 0 0 4px var(--wp-admin-theme-color); }\n  @supports (outline-offset: 1px) {\n    .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus::after {\n      content: none; }\n    .components-navigate-regions.is-focusing-regions [role=\"region\"]:focus {\n      outline-style: solid;\n      outline-color: #007cba;\n      outline-color: var(--wp-admin-theme-color);\n      outline-width: 4px;\n      outline-offset: -4px; } }\n\n.components-menu-group + .components-menu-group {\n  margin-top: 8px;\n  padding-top: 8px;\n  border-top: 1px solid #1e1e1e; }\n\n.components-menu-group__label {\n  padding: 0;\n  margin-bottom: 12px;\n  color: #757575;\n  text-transform: uppercase;\n  font-size: 11px;\n  font-weight: 500; }\n\n.components-menu-item__button,\n.components-menu-item__button.components-button {\n  width: 100%; }\n  .components-menu-item__button .dashicon,\n  .components-menu-item__button .components-menu-items__item-icon,\n  .components-menu-item__button svg.components-menu-items__item-icon,\n  .components-menu-item__button > span > svg,\n  .components-menu-item__button.components-button .dashicon,\n  .components-menu-item__button.components-button .components-menu-items__item-icon,\n  .components-menu-item__button.components-button svg.components-menu-items__item-icon,\n  .components-menu-item__button.components-button > span > svg {\n    margin-right: 8px; }\n  .components-menu-item__button .components-menu-items__item-icon,\n  .components-menu-item__button.components-button .components-menu-items__item-icon {\n    display: inline-block;\n    flex: 0 0 auto; }\n\n.components-menu-item__info-wrapper {\n  display: flex;\n  flex-direction: column; }\n\n.components-menu-item__info {\n  margin-top: 4px;\n  font-size: 12px;\n  color: #757575; }\n\n.components-menu-item__shortcut {\n  -ms-grid-row-align: center;\n      align-self: center;\n  margin-right: 0;\n  margin-left: auto;\n  padding-left: 12px;\n  color: currentColor;\n  display: none; }\n  @media (min-width: 480px) {\n    .components-menu-item__shortcut {\n      display: inline; } }\n\n.components-menu-items-choice,\n.components-menu-items-choice.components-button {\n  padding-left: 40px; }\n  .components-menu-items-choice svg,\n  .components-menu-items-choice.components-button svg {\n    margin-right: 8px; }\n  .components-menu-items-choice.has-icon,\n  .components-menu-items-choice.components-button.has-icon {\n    padding-left: 8px; }\n\n.components-modal__screen-overlay {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  background-color: rgba(0, 0, 0, 0.7);\n  z-index: 100000;\n  animation: edit-post__fade-in-animation 0.2s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-modal__screen-overlay {\n      animation-duration: 1ms; } }\n\n.components-modal__frame {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  box-sizing: border-box;\n  margin: 0;\n  border: 1px solid #ddd;\n  background: #fff;\n  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.2);\n  overflow: auto; }\n  @media (min-width: 600px) {\n    .components-modal__frame {\n      top: 50%;\n      right: auto;\n      bottom: auto;\n      left: 50%;\n      min-width: 360px;\n      max-width: calc(100% - 16px - 16px);\n      max-height: calc(100% - 60px - 60px);\n      transform: translate(-50%, -50%);\n      animation: components-modal__appear-animation 0.1s ease-out;\n      animation-fill-mode: forwards; } }\n  @media (min-width: 600px) and (prefers-reduced-motion: reduce) {\n    .components-modal__frame {\n      animation-duration: 1ms; } }\n\n@keyframes components-modal__appear-animation {\n  from {\n    margin-top: 32px; }\n  to {\n    margin-top: 0; } }\n\n.components-modal__header {\n  box-sizing: border-box;\n  border-bottom: 1px solid #ddd;\n  padding: 0 24px;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  background: #fff;\n  align-items: center;\n  height: 60px;\n  z-index: 10;\n  position: relative;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  margin: 0 -24px 24px; }\n  @supports (-ms-ime-align: auto) {\n    .components-modal__header {\n      position: fixed;\n      width: 100%; } }\n  .components-modal__header .components-modal__header-heading {\n    font-size: 1rem;\n    font-weight: 600; }\n  .components-modal__header h1 {\n    line-height: 1;\n    margin: 0; }\n  .components-modal__header .components-button {\n    position: relative;\n    left: 8px; }\n\n.components-modal__header-heading-container {\n  align-items: center;\n  flex-grow: 1;\n  display: flex;\n  flex-direction: row;\n  justify-content: left; }\n\n.components-modal__header-icon-container {\n  display: inline-block; }\n  .components-modal__header-icon-container svg {\n    max-width: 36px;\n    max-height: 36px;\n    padding: 8px; }\n\n.components-modal__content {\n  box-sizing: border-box;\n  height: 100%;\n  padding: 0 24px 24px; }\n  @supports (-ms-ime-align: auto) {\n    .components-modal__content {\n      padding-top: 60px; } }\n\n.components-notice {\n  display: flex;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  background-color: #fff;\n  border-left: 4px solid #007cba;\n  border-left: 4px solid var(--wp-admin-theme-color);\n  margin: 5px 15px 2px;\n  padding: 8px 12px;\n  align-items: center; }\n  .components-notice.is-dismissible {\n    padding-right: 36px;\n    position: relative; }\n  .components-notice.is-success {\n    border-left-color: #4ab866;\n    background-color: #eff9f1; }\n  .components-notice.is-warning {\n    border-left-color: #f0b849;\n    background-color: #fef8ee; }\n  .components-notice.is-error {\n    border-left-color: #d94f4f;\n    background-color: #f9e2e2; }\n\n.components-notice__content {\n  flex-grow: 1;\n  margin: 4px 25px 4px 0; }\n\n.components-notice__action.components-button, .components-notice__action.components-button.is-link {\n  margin-left: 12px; }\n\n.components-notice__action.components-button.is-secondary {\n  vertical-align: initial; }\n\n.components-notice__dismiss {\n  color: #6c7781;\n  align-self: flex-start;\n  flex-shrink: 0; }\n  .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover, .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):active, .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):focus {\n    color: #1e1e1e;\n    background-color: transparent; }\n  .components-notice__dismiss:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover {\n    box-shadow: none; }\n\n.components-notice-list {\n  max-width: 100vw;\n  box-sizing: border-box;\n  z-index: 29; }\n  .components-notice-list .components-notice__content {\n    margin-top: 12px;\n    margin-bottom: 12px;\n    line-height: 2; }\n  .components-notice-list .components-notice__action.components-button {\n    display: block;\n    margin-left: 0;\n    margin-top: 8px; }\n\n.components-panel {\n  background: #fff;\n  border: 1px solid #f0f0f0; }\n  .components-panel > .components-panel__header:first-child,\n  .components-panel > .components-panel__body:first-child {\n    margin-top: -1px; }\n  .components-panel > .components-panel__header:last-child,\n  .components-panel > .components-panel__body:last-child {\n    border-bottom-width: 0; }\n\n.components-panel + .components-panel {\n  margin-top: -1px; }\n\n.components-panel__body {\n  border-top: 1px solid #f0f0f0;\n  border-bottom: 1px solid #f0f0f0; }\n  .components-panel__body h3 {\n    margin: 0 0 0.5em; }\n  .components-panel__body.is-opened {\n    padding: 16px; }\n\n.components-panel__header {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  padding: 0 16px;\n  height: 48px;\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #ddd; }\n  .components-panel__header h2 {\n    margin: 0;\n    font-size: inherit;\n    color: inherit; }\n\n.components-panel__body + .components-panel__body,\n.components-panel__body + .components-panel__header,\n.components-panel__header + .components-panel__body,\n.components-panel__header + .components-panel__header {\n  margin-top: -1px; }\n\n.components-panel__body > .components-panel__body-title {\n  display: block;\n  padding: 0;\n  font-size: inherit;\n  margin-top: 0;\n  margin-bottom: 0;\n  transition: 0.1s background ease-in-out; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-panel__body > .components-panel__body-title {\n      transition-duration: 0s; } }\n\n.components-panel__body.is-opened > .components-panel__body-title {\n  margin: -16px;\n  margin-bottom: 5px; }\n\n.components-panel__body > .components-panel__body-title:hover {\n  background: #f0f0f0;\n  border: none; }\n\n.components-panel__body-toggle.components-button {\n  position: relative;\n  padding: 16px;\n  outline: none;\n  width: 100%;\n  font-weight: 500;\n  text-align: left;\n  color: #1e1e1e;\n  border: none;\n  box-shadow: none;\n  transition: 0.1s background ease-in-out;\n  height: auto;\n  /* rtl:begin:ignore */\n  /* rtl:end:ignore */ }\n  @media (prefers-reduced-motion: reduce) {\n    .components-panel__body-toggle.components-button {\n      transition-duration: 0s; } }\n  .components-panel__body-toggle.components-button:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 0; }\n  .components-panel__body-toggle.components-button .components-panel__arrow {\n    position: absolute;\n    right: 16px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: #1e1e1e;\n    fill: currentColor;\n    transition: 0.1s color ease-in-out; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-panel__body-toggle.components-button .components-panel__arrow {\n        transition-duration: 0s; } }\n  body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right {\n    transform: scaleX(-1);\n    -ms-filter: fliph;\n    filter: FlipH;\n    margin-top: -10px; }\n\n.components-panel__icon {\n  color: #555d66;\n  margin: -2px 0 -2px 6px; }\n\n.components-panel__body-toggle-icon {\n  margin-right: -5px; }\n\n.components-panel__color-title {\n  float: left;\n  height: 19px; }\n\n.components-panel__row {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  margin-top: 8px;\n  min-height: 36px; }\n  .components-panel__row select {\n    min-width: 0; }\n  .components-panel__row label {\n    margin-right: 12px;\n    flex-shrink: 0;\n    max-width: 75%; }\n  .components-panel__row:empty, .components-panel__row:first-of-type {\n    margin-top: 0; }\n\n.components-panel .circle-picker {\n  padding-bottom: 20px; }\n\n.components-placeholder.components-placeholder {\n  position: relative;\n  padding: 1em;\n  min-height: 200px;\n  width: 100%;\n  text-align: left;\n  margin: 0;\n  color: #1e1e1e;\n  -moz-font-smoothing: subpixel-antialiased;\n  -webkit-font-smoothing: subpixel-antialiased;\n  border-radius: 2px;\n  background-color: #fff;\n  box-shadow: inset 0 0 0 1px #1e1e1e;\n  outline: 1px solid transparent; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .components-placeholder.components-placeholder {\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      align-items: flex-start; } }\n  .components-placeholder.components-placeholder .components-base-control__label {\n    font-size: 13px; }\n\n.components-placeholder__error,\n.components-placeholder__instructions,\n.components-placeholder__label,\n.components-placeholder__fieldset {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px; }\n\n.components-placeholder__label {\n  display: flex;\n  font-weight: 600;\n  margin-bottom: 16px;\n  align-items: center; }\n  .components-placeholder__label > svg,\n  .components-placeholder__label .dashicon,\n  .components-placeholder__label .block-editor-block-icon {\n    fill: currentColor;\n    margin-right: 1ch; }\n\n.components-placeholder__fieldset,\n.components-placeholder__fieldset form {\n  display: flex;\n  flex-direction: row;\n  width: 100%;\n  flex-wrap: wrap; }\n  .components-placeholder__fieldset p,\n  .components-placeholder__fieldset form p {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px; }\n\n.components-placeholder__fieldset.is-column-layout,\n.components-placeholder__fieldset.is-column-layout form {\n  flex-direction: column; }\n\n.components-placeholder__input[type=\"url\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  margin: 0 8px 0 0;\n  flex: 1 1 auto; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-placeholder__input[type=\"url\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-placeholder__input[type=\"url\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-placeholder__input[type=\"url\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-placeholder__input[type=\"url\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-placeholder__input[type=\"url\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-placeholder__input[type=\"url\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-placeholder__input[type=\"url\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-placeholder__instructions {\n  margin-bottom: 1em; }\n\n.components-placeholder__error {\n  margin-top: 1em;\n  width: 100%; }\n\n.components-placeholder__preview img {\n  margin: 3%;\n  width: 50%; }\n\n.components-placeholder__fieldset .components-button {\n  margin-right: 12px;\n  margin-bottom: 12px; }\n  .components-placeholder__fieldset .components-button:last-child {\n    margin-bottom: 0;\n    margin-right: 0; }\n\n.components-placeholder__fieldset .components-button:not(.is-link) ~ .components-button.is-link {\n  margin-left: 10px;\n  margin-right: 10px; }\n  .components-placeholder__fieldset .components-button:not(.is-link) ~ .components-button.is-link:last-child {\n    margin-right: 0; }\n\n.components-placeholder.is-large .components-placeholder__label {\n  font-size: 18pt;\n  font-weight: normal; }\n\n.components-placeholder.is-medium .components-placeholder__instructions, .components-placeholder.is-small .components-placeholder__instructions {\n  display: none; }\n\n.components-placeholder.is-medium .components-placeholder__fieldset,\n.components-placeholder.is-medium .components-placeholder__fieldset form, .components-placeholder.is-small .components-placeholder__fieldset,\n.components-placeholder.is-small .components-placeholder__fieldset form {\n  flex-direction: column; }\n\n.components-placeholder.is-medium .components-placeholder__fieldset .components-button, .components-placeholder.is-small .components-placeholder__fieldset .components-button {\n  margin-right: auto; }\n\n.components-placeholder.is-small .components-button {\n  padding: 0 8px 2px; }\n\n/*!rtl:begin:ignore*/\n.components-popover {\n  position: fixed;\n  z-index: 1000000;\n  top: 0;\n  left: 0;\n  opacity: 0; }\n  .components-popover.is-expanded, .components-popover[data-x-axis][data-y-axis] {\n    opacity: 1; }\n  .components-popover.is-expanded {\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    z-index: 1000000 !important; }\n  .components-popover:not(.is-without-arrow) {\n    margin-left: 2px; }\n    .components-popover:not(.is-without-arrow)::before {\n      border: 8px solid #1e1e1e; }\n    .components-popover:not(.is-without-arrow)::after {\n      border: 8px solid #fff; }\n    .components-popover:not(.is-without-arrow)::before, .components-popover:not(.is-without-arrow)::after {\n      content: \"\";\n      position: absolute;\n      height: 0;\n      width: 0;\n      line-height: 0; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"] {\n      margin-top: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::before {\n        bottom: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::after {\n        bottom: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"top\"]::after {\n        border-bottom: none;\n        border-left-color: transparent;\n        border-right-color: transparent;\n        border-top-style: solid;\n        margin-left: -10px; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"] {\n      margin-top: 8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::before {\n        top: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::after {\n        top: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"bottom\"]::after {\n        border-bottom-style: solid;\n        border-left-color: transparent;\n        border-right-color: transparent;\n        border-top: none;\n        margin-left: -10px; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"] {\n      margin-left: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::before {\n        right: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::after {\n        right: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"left\"]::after {\n        border-bottom-color: transparent;\n        border-left-style: solid;\n        border-right: none;\n        border-top-color: transparent; }\n    .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"] {\n      margin-left: 8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::before {\n        left: -8px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::after {\n        left: -6px; }\n      .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::before, .components-popover:not(.is-without-arrow)[data-y-axis=\"middle\"][data-x-axis=\"right\"]::after {\n        border-bottom-color: transparent;\n        border-left: none;\n        border-right-style: solid;\n        border-top-color: transparent; }\n  .components-popover[data-y-axis=\"top\"] {\n    bottom: 100%; }\n  .components-popover[data-y-axis=\"bottom\"] {\n    top: 100%; }\n  .components-popover[data-y-axis=\"middle\"] {\n    align-items: center;\n    display: flex; }\n  .components-popover.is-from-top {\n    margin-top: 12px; }\n  .components-popover.is-from-bottom {\n    margin-top: -12px; }\n  .components-popover.is-from-left:not(.is-from-top):not(.is-from-bottom) {\n    margin-left: 12px; }\n  .components-popover.is-from-right:not(.is-from-top):not(.is-from-bottom) {\n    margin-right: 12px; }\n\n.components-popover__content {\n  height: 100%;\n  background: #fff;\n  border: 1px solid #ccc;\n  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n  border-radius: 2px; }\n  .is-alternate .components-popover__content {\n    border: 1px solid #1e1e1e;\n    box-shadow: none; }\n  .components-popover .components-popover__content {\n    position: absolute;\n    height: auto;\n    overflow-y: auto;\n    min-width: 260px; }\n  .components-popover.is-expanded .components-popover__content {\n    position: static;\n    height: calc(100% - 48px);\n    overflow-y: visible;\n    min-width: auto;\n    border: none;\n    border-top: 1px solid #1e1e1e; }\n  .components-popover[data-y-axis=\"top\"] .components-popover__content {\n    bottom: 100%; }\n  .components-popover[data-x-axis=\"center\"] .components-popover__content {\n    left: 50%;\n    transform: translateX(-50%); }\n  .components-popover[data-x-axis=\"right\"] .components-popover__content {\n    position: absolute;\n    left: 100%; }\n  .components-popover:not([data-y-axis=\"middle\"])[data-x-axis=\"right\"] .components-popover__content {\n    margin-left: -25px; }\n  .components-popover[data-x-axis=\"left\"] .components-popover__content {\n    position: absolute;\n    right: 100%; }\n  .components-popover:not([data-y-axis=\"middle\"])[data-x-axis=\"left\"] .components-popover__content {\n    margin-right: -25px; }\n\n.components-popover__header {\n  align-items: center;\n  background: #fff;\n  display: flex;\n  height: 48px;\n  justify-content: space-between;\n  padding: 0 8px 0 16px; }\n\n.components-popover__header-title {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  width: 100%; }\n\n.components-popover__close.components-button {\n  z-index: 5; }\n\n/*!rtl:end:ignore*/\n.components-radio-control {\n  display: flex;\n  flex-direction: column; }\n  .components-radio-control .components-base-control__help {\n    margin-top: 0; }\n  .components-radio-control .components-base-control__field {\n    margin-bottom: 0; }\n\n.components-radio-control__option:not(:last-child) {\n  margin-bottom: 4px; }\n\n.components-radio-control__input[type=\"radio\"] {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal;\n  border: 1px solid #1e1e1e;\n  margin-right: 12px;\n  transition: none;\n  border-radius: 50%;\n  margin-top: 0;\n  margin-right: 6px; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-radio-control__input[type=\"radio\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-radio-control__input[type=\"radio\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-radio-control__input[type=\"radio\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-radio-control__input[type=\"radio\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-radio-control__input[type=\"radio\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-radio-control__input[type=\"radio\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-radio-control__input[type=\"radio\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .components-radio-control__input[type=\"radio\"]:checked::before {\n    width: 7px;\n    height: 7px;\n    margin: 8px 0 0 8px;\n    background-color: #fff;\n    border: 3px solid #fff; }\n    @media (min-width: 782px) {\n      .components-radio-control__input[type=\"radio\"]:checked::before {\n        width: 6px;\n        height: 6px;\n        margin: 4px 0 0 4px; } }\n  .components-radio-control__input[type=\"radio\"]:focus {\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n    box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-radio-control__input[type=\"radio\"]:checked {\n    background: #007cba;\n    background: var(--wp-admin-theme-color);\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color); }\n\n.components-resizable-box__handle {\n  display: none;\n  width: 23px;\n  height: 23px; }\n  .components-resizable-box__container.has-show-handle .components-resizable-box__handle {\n    display: block; }\n\n.components-resizable-box__handle::after {\n  display: block;\n  content: \"\";\n  width: 15px;\n  height: 15px;\n  border: 2px solid #fff;\n  border-radius: 50%;\n  background: #007cba;\n  background: var(--wp-admin-theme-color);\n  cursor: inherit;\n  position: absolute;\n  top: calc(50% - 8px);\n  right: calc(50% - 8px); }\n\n.components-resizable-box__side-handle::before {\n  display: block;\n  content: \"\";\n  width: 7px;\n  height: 7px;\n  border: 2px solid #fff;\n  background: #007cba;\n  background: var(--wp-admin-theme-color);\n  cursor: inherit;\n  position: absolute;\n  top: calc(50% - 4px);\n  right: calc(50% - 4px);\n  transition: transform 0.1s ease-in;\n  opacity: 0; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle::before {\n      transition-duration: 0s; } }\n\n.is-dark-theme .components-resizable-box__side-handle::before,\n.is-dark-theme .components-resizable-box__handle::after {\n  border-color: #d7dade; }\n\n.components-resizable-box__handle {\n  z-index: 2; }\n\n.components-resizable-box__side-handle {\n  z-index: 2; }\n\n.components-resizable-box__corner-handle {\n  z-index: 2; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-top,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom,\n.components-resizable-box__side-handle.components-resizable-box__handle-top::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom::before {\n  width: 100%;\n  left: 0;\n  border-left: 0;\n  border-right: 0; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-left,\n.components-resizable-box__side-handle.components-resizable-box__handle-right,\n.components-resizable-box__side-handle.components-resizable-box__handle-left::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right::before {\n  height: 100%;\n  top: 0;\n  border-top: 0;\n  border-bottom: 0; }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-top:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-top:active::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-bottom:active::before {\n  animation: components-resizable-box__top-bottom-animation 0.1s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle.components-resizable-box__handle-top:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-bottom:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-top:active::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-bottom:active::before {\n      animation-duration: 1ms; } }\n\n.components-resizable-box__side-handle.components-resizable-box__handle-left:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right:hover::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-left:active::before,\n.components-resizable-box__side-handle.components-resizable-box__handle-right:active::before {\n  animation: components-resizable-box__left-right-animation 0.1s ease-out 0s;\n  animation-fill-mode: forwards; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-resizable-box__side-handle.components-resizable-box__handle-left:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-right:hover::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-left:active::before,\n    .components-resizable-box__side-handle.components-resizable-box__handle-right:active::before {\n      animation-duration: 1ms; } }\n\n@keyframes components-resizable-box__top-bottom-animation {\n  from {\n    transform: scaleX(0);\n    opacity: 0; }\n  to {\n    transform: scaleX(1);\n    opacity: 1; } }\n\n@keyframes components-resizable-box__left-right-animation {\n  from {\n    transform: scaleY(0);\n    opacity: 0; }\n  to {\n    transform: scaleY(1);\n    opacity: 1; } }\n\n/*!rtl:begin:ignore*/\n.components-resizable-box__handle-right {\n  right: calc(11.5px * -1); }\n\n.components-resizable-box__handle-left {\n  left: calc(11.5px * -1); }\n\n.components-resizable-box__handle-top {\n  top: calc(11.5px * -1); }\n\n.components-resizable-box__handle-bottom {\n  bottom: calc(11.5px * -1); }\n\n/*!rtl:end:ignore*/\n.components-responsive-wrapper {\n  position: relative;\n  max-width: 100%; }\n  .components-responsive-wrapper,\n  .components-responsive-wrapper > span {\n    display: block; }\n\n.components-responsive-wrapper__content {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  margin: auto; }\n\n.components-sandbox {\n  overflow: hidden; }\n\niframe.components-sandbox {\n  width: 100%; }\n\nhtml.lockscroll,\nbody.lockscroll {\n  overflow: hidden; }\n\n.components-select-control__input {\n  background: #fff;\n  height: 36px;\n  line-height: 36px;\n  margin: 1px;\n  outline: 0;\n  width: 100%;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important; }\n  @media (min-width: 782px) {\n    .components-select-control__input {\n      height: 28px;\n      line-height: 28px; } }\n\n@media (max-width: 782px) {\n  .components-base-control .components-base-control__field .components-select-control__input {\n    font-size: 16px; } }\n\n.components-snackbar {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  font-size: 13px;\n  background-color: #1e1e1e;\n  border-radius: 2px;\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n  color: #fff;\n  padding: 16px 24px;\n  width: 100%;\n  max-width: 600px;\n  box-sizing: border-box;\n  cursor: pointer; }\n  @media (min-width: 600px) {\n    .components-snackbar {\n      width: fit-content; } }\n  .components-snackbar:focus {\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba;\n    box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); }\n\n.components-snackbar__action.components-button {\n  margin-left: 32px;\n  color: #fff;\n  height: auto;\n  flex-shrink: 0;\n  line-height: 1.4;\n  padding: 0; }\n  .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary) {\n    text-decoration: underline;\n    background-color: transparent; }\n    .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):focus {\n      color: #fff;\n      box-shadow: none;\n      outline: 1px dotted #fff; }\n    .components-snackbar__action.components-button:not(:disabled):not([aria-disabled=\"true\"]):not(.is-secondary):hover {\n      color: #007cba;\n      color: var(--wp-admin-theme-color); }\n\n.components-snackbar__content {\n  display: flex;\n  align-items: baseline;\n  justify-content: space-between;\n  line-height: 1.4; }\n\n.components-snackbar-list {\n  position: absolute;\n  z-index: 100000;\n  width: 100%;\n  box-sizing: border-box; }\n\n.components-snackbar-list__notice-container {\n  position: relative;\n  padding-top: 8px; }\n\n.components-spinner {\n  display: inline-block;\n  background-color: #7e8993;\n  width: 18px;\n  height: 18px;\n  opacity: 0.7;\n  margin: 5px 11px 0;\n  border-radius: 100%;\n  position: relative; }\n  .components-spinner::before {\n    /* rtl:begin:ignore */\n    content: \"\";\n    position: absolute;\n    background-color: #fff;\n    top: 3px;\n    left: 3px;\n    width: 4px;\n    height: 4px;\n    border-radius: 100%;\n    transform-origin: 6px 6px;\n    animation: components-spinner__animation 1s infinite linear;\n    /* rtl:end:ignore */ }\n\n@keyframes components-spinner__animation {\n  from {\n    transform: rotate(0deg); }\n  to {\n    transform: rotate(360deg); } }\n\n.components-tab-panel__tabs {\n  display: flex;\n  align-items: stretch; }\n\n.components-tab-panel__tabs-item {\n  background: transparent;\n  border: none;\n  box-shadow: none;\n  border-radius: 0;\n  cursor: pointer;\n  height: 48px;\n  padding: 3px 16px;\n  margin-left: 0;\n  font-weight: 500;\n  transition: box-shadow 0.1s linear;\n  box-sizing: border-box; }\n  .components-tab-panel__tabs-item::after {\n    content: attr(data-label);\n    display: block;\n    height: 0;\n    overflow: hidden;\n    speak: none;\n    visibility: hidden; }\n  .components-tab-panel__tabs-item:focus:not(:disabled) {\n    box-shadow: inset 0 1.5px #007cba;\n    box-shadow: inset 0 1.5px var(--wp-admin-theme-color); }\n  .components-tab-panel__tabs-item.is-active {\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 var(--wp-admin-theme-color);\n    position: relative; }\n    .components-tab-panel__tabs-item.is-active::before {\n      content: \"\";\n      position: absolute;\n      top: 0;\n      bottom: 1px;\n      right: 0;\n      left: 0;\n      border-bottom: 4px solid transparent; }\n  .components-tab-panel__tabs-item:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n  .components-tab-panel__tabs-item.is-active:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 -4px 0 0 var(--wp-admin-theme-color); }\n\n.components-text-control__input,\n.components-text-control__input[type=\"text\"],\n.components-text-control__input[type=\"tel\"],\n.components-text-control__input[type=\"time\"],\n.components-text-control__input[type=\"url\"],\n.components-text-control__input[type=\"week\"],\n.components-text-control__input[type=\"password\"],\n.components-text-control__input[type=\"color\"],\n.components-text-control__input[type=\"date\"],\n.components-text-control__input[type=\"datetime\"],\n.components-text-control__input[type=\"datetime-local\"],\n.components-text-control__input[type=\"email\"],\n.components-text-control__input[type=\"month\"],\n.components-text-control__input[type=\"number\"] {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-text-control__input,\n    .components-text-control__input[type=\"text\"],\n    .components-text-control__input[type=\"tel\"],\n    .components-text-control__input[type=\"time\"],\n    .components-text-control__input[type=\"url\"],\n    .components-text-control__input[type=\"week\"],\n    .components-text-control__input[type=\"password\"],\n    .components-text-control__input[type=\"color\"],\n    .components-text-control__input[type=\"date\"],\n    .components-text-control__input[type=\"datetime\"],\n    .components-text-control__input[type=\"datetime-local\"],\n    .components-text-control__input[type=\"email\"],\n    .components-text-control__input[type=\"month\"],\n    .components-text-control__input[type=\"number\"] {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-text-control__input,\n    .components-text-control__input[type=\"text\"],\n    .components-text-control__input[type=\"tel\"],\n    .components-text-control__input[type=\"time\"],\n    .components-text-control__input[type=\"url\"],\n    .components-text-control__input[type=\"week\"],\n    .components-text-control__input[type=\"password\"],\n    .components-text-control__input[type=\"color\"],\n    .components-text-control__input[type=\"date\"],\n    .components-text-control__input[type=\"datetime\"],\n    .components-text-control__input[type=\"datetime-local\"],\n    .components-text-control__input[type=\"email\"],\n    .components-text-control__input[type=\"month\"],\n    .components-text-control__input[type=\"number\"] {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-text-control__input:focus,\n  .components-text-control__input[type=\"text\"]:focus,\n  .components-text-control__input[type=\"tel\"]:focus,\n  .components-text-control__input[type=\"time\"]:focus,\n  .components-text-control__input[type=\"url\"]:focus,\n  .components-text-control__input[type=\"week\"]:focus,\n  .components-text-control__input[type=\"password\"]:focus,\n  .components-text-control__input[type=\"color\"]:focus,\n  .components-text-control__input[type=\"date\"]:focus,\n  .components-text-control__input[type=\"datetime\"]:focus,\n  .components-text-control__input[type=\"datetime-local\"]:focus,\n  .components-text-control__input[type=\"email\"]:focus,\n  .components-text-control__input[type=\"month\"]:focus,\n  .components-text-control__input[type=\"number\"]:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-text-control__input::-webkit-input-placeholder,\n  .components-text-control__input[type=\"text\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"tel\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"time\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"url\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"week\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"password\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"color\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"date\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"datetime\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"email\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"month\"]::-webkit-input-placeholder,\n  .components-text-control__input[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-text-control__input::-moz-placeholder,\n  .components-text-control__input[type=\"text\"]::-moz-placeholder,\n  .components-text-control__input[type=\"tel\"]::-moz-placeholder,\n  .components-text-control__input[type=\"time\"]::-moz-placeholder,\n  .components-text-control__input[type=\"url\"]::-moz-placeholder,\n  .components-text-control__input[type=\"week\"]::-moz-placeholder,\n  .components-text-control__input[type=\"password\"]::-moz-placeholder,\n  .components-text-control__input[type=\"color\"]::-moz-placeholder,\n  .components-text-control__input[type=\"date\"]::-moz-placeholder,\n  .components-text-control__input[type=\"datetime\"]::-moz-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]::-moz-placeholder,\n  .components-text-control__input[type=\"email\"]::-moz-placeholder,\n  .components-text-control__input[type=\"month\"]::-moz-placeholder,\n  .components-text-control__input[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-text-control__input:-ms-input-placeholder,\n  .components-text-control__input[type=\"text\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"tel\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"time\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"url\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"week\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"password\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"color\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"date\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"datetime\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"datetime-local\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"email\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"month\"]:-ms-input-placeholder,\n  .components-text-control__input[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-text-control__input::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]::-webkit-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-text-control__input::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]::-moz-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-text-control__input:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"text\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"tel\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"time\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"url\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"week\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"password\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"color\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"date\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"datetime-local\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"email\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"month\"]:-ms-input-placeholder, .is-dark-theme\n  .components-text-control__input[type=\"number\"]:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-textarea-control__input {\n  width: 100%;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n  padding: 6px 8px;\n  box-shadow: 0 0 0 transparent;\n  transition: box-shadow 0.1s linear;\n  border-radius: 2px;\n  border: 1px solid #757575;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px;\n  /* Override core line-height. To be reviewed. */\n  line-height: normal; }\n  @media (prefers-reduced-motion: reduce) {\n    .components-textarea-control__input {\n      transition-duration: 0s; } }\n  @media (min-width: 600px) {\n    .components-textarea-control__input {\n      font-size: 13px;\n      /* Override core line-height. To be reviewed. */\n      line-height: normal; } }\n  .components-textarea-control__input:focus {\n    border-color: #007cba;\n    border-color: var(--wp-admin-theme-color);\n    box-shadow: 0 0 0 0.5px #007cba;\n    box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n  .components-textarea-control__input::-webkit-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .components-textarea-control__input::-moz-placeholder {\n    opacity: 1;\n    color: rgba(30, 30, 30, 0.62); }\n  .components-textarea-control__input:-ms-input-placeholder {\n    color: rgba(30, 30, 30, 0.62); }\n  .is-dark-theme .components-textarea-control__input::-webkit-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-textarea-control__input::-moz-placeholder {\n    opacity: 1;\n    color: rgba(255, 255, 255, 0.65); }\n  .is-dark-theme .components-textarea-control__input:-ms-input-placeholder {\n    color: rgba(255, 255, 255, 0.65); }\n\n.components-tip {\n  display: flex;\n  color: #555d66; }\n  .components-tip svg {\n    -ms-grid-row-align: center;\n        align-self: center;\n    fill: #f0b849;\n    flex-shrink: 0;\n    margin-right: 16px; }\n  .components-tip p {\n    margin: 0; }\n\n.components-toggle-control .components-base-control__field {\n  display: flex;\n  margin-bottom: 12px;\n  line-height: initial;\n  align-items: center; }\n  .components-toggle-control .components-base-control__field .components-form-toggle {\n    margin-right: 12px; }\n  .components-toggle-control .components-base-control__field .components-toggle-control__label {\n    display: block; }\n\n.components-accessible-toolbar {\n  display: inline-flex;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  flex-shrink: 0; }\n  .components-accessible-toolbar > .components-toolbar-group:last-child {\n    border-right: none; }\n\n.components-accessible-toolbar .components-button,\n.components-toolbar .components-button {\n  position: relative;\n  height: 48px;\n  z-index: 1;\n  padding-left: 16px;\n  padding-right: 16px; }\n  .components-accessible-toolbar .components-button:focus:enabled,\n  .components-toolbar .components-button:focus:enabled {\n    box-shadow: none;\n    outline: none; }\n  .components-accessible-toolbar .components-button::before,\n  .components-toolbar .components-button::before {\n    content: \"\";\n    position: absolute;\n    display: block;\n    border-radius: 2px;\n    height: 32px;\n    left: 8px;\n    right: 8px;\n    z-index: -1;\n    animation: components-button__appear-animation 0.1s ease;\n    animation-fill-mode: forwards; }\n    @media (prefers-reduced-motion: reduce) {\n      .components-accessible-toolbar .components-button::before,\n      .components-toolbar .components-button::before {\n        animation-duration: 1ms; } }\n  .components-accessible-toolbar .components-button svg,\n  .components-toolbar .components-button svg {\n    position: relative;\n    margin-left: auto;\n    margin-right: auto; }\n  .components-accessible-toolbar .components-button.is-pressed,\n  .components-toolbar .components-button.is-pressed {\n    background: transparent; }\n    .components-accessible-toolbar .components-button.is-pressed:hover,\n    .components-toolbar .components-button.is-pressed:hover {\n      background: transparent; }\n    .components-accessible-toolbar .components-button.is-pressed::before,\n    .components-toolbar .components-button.is-pressed::before {\n      background: #1e1e1e; }\n  .components-accessible-toolbar .components-button:focus::before,\n  .components-toolbar .components-button:focus::before {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 4px #fff;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 4px #fff;\n    outline: 2px solid transparent; }\n  .components-accessible-toolbar .components-button.has-icon,\n  .components-toolbar .components-button.has-icon {\n    padding-left: 8px;\n    padding-right: 8px;\n    min-width: 48px;\n    justify-content: center; }\n  .components-accessible-toolbar .components-button.components-tab-button,\n  .components-toolbar .components-button.components-tab-button {\n    font-weight: 500; }\n    .components-accessible-toolbar .components-button.components-tab-button span,\n    .components-toolbar .components-button.components-tab-button span {\n      display: inline-block;\n      padding-left: 0;\n      padding-right: 0;\n      position: relative; }\n\n@keyframes components-button__appear-animation {\n  from {\n    transform: scaleY(0); }\n  to {\n    transform: scaleY(1); } }\n\n.components-toolbar__control.components-button {\n  position: relative; }\n  .components-toolbar__control.components-button[data-subscript] svg {\n    padding: 5px 10px 5px 0; }\n  .components-toolbar__control.components-button[data-subscript]::after {\n    content: attr(data-subscript);\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    font-weight: 600;\n    line-height: 12px;\n    position: absolute;\n    right: 8px;\n    bottom: 10px; }\n  .components-toolbar__control.components-button:active::before {\n    display: none; }\n  .components-toolbar__control.components-button:not(:disabled).is-pressed[data-subscript]::after {\n    color: #fff; }\n\n.components-toolbar-group {\n  min-height: 48px;\n  border-right: 1px solid #1e1e1e;\n  background-color: #fff;\n  display: inline-flex;\n  flex-shrink: 0;\n  flex-wrap: wrap;\n  line-height: 0; }\n  .components-toolbar-group .components-toolbar-group {\n    border-width: 0;\n    margin: 0; }\n\n.components-toolbar {\n  min-height: 48px;\n  margin: 0;\n  border: 1px solid #1e1e1e;\n  border-radius: 2px;\n  background-color: #fff;\n  display: inline-flex;\n  flex-shrink: 0;\n  flex-wrap: wrap; }\n\ndiv.components-toolbar > div {\n  display: block;\n  margin: 0; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    div.components-toolbar > div {\n      display: flex; } }\n\ndiv.components-toolbar > div + div.has-left-divider {\n  margin-left: 6px;\n  position: relative;\n  overflow: visible; }\n\ndiv.components-toolbar > div + div.has-left-divider::before {\n  display: inline-block;\n  content: \"\";\n  box-sizing: content-box;\n  background-color: #ddd;\n  position: absolute;\n  top: 8px;\n  left: -3px;\n  width: 1px;\n  height: 20px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon,\n.components-toolbar div > .components-button.components-button.has-icon {\n  min-width: 36px;\n  padding-left: 6px;\n  padding-right: 6px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon svg,\n  .components-toolbar div > .components-button.components-button.has-icon svg {\n    min-width: 24px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button.components-button.has-icon::before,\n  .components-toolbar div > .components-button.components-button.has-icon::before {\n    left: 2px;\n    right: 2px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:first-child.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:first-child > .components-button.has-icon,\n.components-toolbar div:first-child .components-button.has-icon {\n  min-width: 42px;\n  padding-left: 11px;\n  padding-right: 6px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:first-child.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:first-child > .components-button.has-icon::before,\n  .components-toolbar div:first-child .components-button.has-icon::before {\n    left: 8px;\n    right: 2px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:last-child.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:last-child > .components-button.has-icon,\n.components-toolbar div:last-child .components-button.has-icon {\n  min-width: 42px;\n  padding-left: 6px;\n  padding-right: 11px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:last-child.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:last-child > .components-button.has-icon::before,\n  .components-toolbar div:last-child .components-button.has-icon::before {\n    left: 2px;\n    right: 8px; }\n\n.components-accessible-toolbar .components-toolbar-group > .components-button:first-of-type:last-of-type.has-icon,\n.components-accessible-toolbar .components-toolbar-group > div:first-child:last-child > .components-button.has-icon,\n.components-toolbar div:first-child:last-child > .components-button.has-icon {\n  min-width: 48px;\n  padding-left: 12px;\n  padding-right: 12px; }\n  .components-accessible-toolbar .components-toolbar-group > .components-button:first-of-type:last-of-type.has-icon::before,\n  .components-accessible-toolbar .components-toolbar-group > div:first-child:last-child > .components-button.has-icon::before,\n  .components-toolbar div:first-child:last-child > .components-button.has-icon::before {\n    left: 8px;\n    right: 8px; }\n\n.components-tooltip.components-popover {\n  z-index: 1000002; }\n  .components-tooltip.components-popover .components-popover__content {\n    min-width: 0; }\n\n.components-tooltip .components-popover__content {\n  background: #1e1e1e;\n  border-radius: 2px;\n  border-width: 0;\n  color: #fff;\n  white-space: nowrap;\n  text-align: center;\n  line-height: 1.4;\n  font-size: 12px;\n  box-shadow: none;\n  pointer-events: none; }\n  .components-tooltip .components-popover__content > div {\n    padding: 4px 8px; }\n\n.components-tooltip__shortcut {\n  display: inline-block;\n  margin-left: 8px; }\n\n.components-visually-hidden {\n  border: 0;\n  clip: rect(1px, 1px, 1px, 1px);\n  -webkit-clip-path: inset(50%);\n  clip-path: inset(50%);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n  word-wrap: normal !important; }\n\n.components-visually-hidden:focus {\n  background-color: #ddd;\n  clip: auto !important;\n  -webkit-clip-path: none;\n          clip-path: none;\n  color: #444;\n  display: block;\n  font-size: 1em;\n  height: auto;\n  left: 5px;\n  line-height: normal;\n  padding: 15px 23px 14px;\n  text-decoration: none;\n  top: 5px;\n  width: auto;\n  z-index: 100000; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-edit-post/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.components-panel__header.interface-complementary-area-header__small {\n  background: #fff;\n  padding-left: 4px; }\n  .components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    width: 100%; }\n  @media (min-width: 782px) {\n    .components-panel__header.interface-complementary-area-header__small {\n      display: none; } }\n\n.interface-complementary-area-header {\n  background: #fff;\n  padding-left: 4px; }\n  .interface-complementary-area-header .components-button.has-icon {\n    display: none;\n    margin-right: auto; }\n    .interface-complementary-area-header .components-button.has-icon ~ .components-button {\n      margin-right: 0; }\n    @media (min-width: 782px) {\n      .interface-complementary-area-header .components-button.has-icon {\n        display: flex; } }\n\n.interface-complementary-area {\n  background: #fff;\n  color: #1e1e1e;\n  overflow: visible; }\n  @media (min-width: 600px) {\n    .interface-complementary-area {\n      z-index: auto;\n      height: 100%;\n      overflow: auto;\n      -webkit-overflow-scrolling: touch; } }\n  @media (min-width: 782px) {\n    .interface-complementary-area {\n      width: 280px; } }\n  .interface-complementary-area > .components-panel {\n    border-right: none;\n    border-left: none;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    height: auto;\n    max-height: calc(100vh - 142px);\n    margin-top: -1px;\n    margin-bottom: -1px;\n    position: relative; }\n    @media (min-width: 600px) {\n      .interface-complementary-area > .components-panel {\n        overflow: visible;\n        height: auto;\n        max-height: none; } }\n  .interface-complementary-area > .components-panel .components-panel__header {\n    position: fixed;\n    z-index: 1;\n    top: 0;\n    right: 0;\n    left: 0;\n    height: 48px; }\n    @media (min-width: 600px) {\n      .interface-complementary-area > .components-panel .components-panel__header {\n        position: inherit;\n        top: auto;\n        right: auto;\n        left: auto; } }\n  .interface-complementary-area p {\n    margin-top: 0; }\n  .interface-complementary-area h2,\n  .interface-complementary-area h3 {\n    font-size: 13px;\n    color: #1e1e1e;\n    margin-bottom: 1.5em; }\n  .interface-complementary-area hr {\n    border-top: none;\n    border-bottom: 1px solid #f0f0f0;\n    margin: 1.5em 0; }\n  .interface-complementary-area div.components-toolbar-group,\n  .interface-complementary-area div.components-toolbar {\n    box-shadow: none;\n    margin-bottom: 1.5em; }\n    .interface-complementary-area div.components-toolbar-group:last-child,\n    .interface-complementary-area div.components-toolbar:last-child {\n      margin-bottom: 0; }\n  .interface-complementary-area .block-editor-skip-to-selected-block:focus {\n    top: auto;\n    left: 10px;\n    bottom: 10px;\n    right: auto; }\n\n@media (min-width: 782px) {\n  body.js.is-fullscreen-mode {\n    margin-top: -32px;\n    height: calc(100% + 32px); }\n    body.js.is-fullscreen-mode #adminmenumain,\n    body.js.is-fullscreen-mode #wpadminbar {\n      display: none; }\n    body.js.is-fullscreen-mode #wpcontent,\n    body.js.is-fullscreen-mode #wpfooter {\n      margin-right: 0; } }\n\nhtml.interface-interface-skeleton__html-container {\n  position: fixed;\n  width: 100%; }\n  @media (min-width: 782px) {\n    html.interface-interface-skeleton__html-container {\n      position: initial;\n      width: initial; } }\n\n.interface-interface-skeleton {\n  display: flex;\n  flex-direction: column;\n  height: auto;\n  max-height: 100%;\n  position: fixed;\n  top: 46px;\n  right: 0;\n  left: 0;\n  bottom: 0; }\n  @media (min-width: 783px) {\n    .interface-interface-skeleton {\n      top: 32px; }\n      .is-fullscreen-mode .interface-interface-skeleton {\n        top: 0; } }\n\n.interface-interface-skeleton {\n  /* Set left position when auto-fold is not on the body element. */\n  right: 0; }\n  @media (min-width: 783px) {\n    .interface-interface-skeleton {\n      right: 160px; } }\n\n.auto-fold .interface-interface-skeleton {\n  /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }\n  @media (min-width: 783px) {\n    .auto-fold .interface-interface-skeleton {\n      right: 36px; } }\n  @media (min-width: 961px) {\n    .auto-fold .interface-interface-skeleton {\n      right: 160px; } }\n\n/* Sidebar manually collapsed. */\n.folded .interface-interface-skeleton {\n  right: 0; }\n  @media (min-width: 783px) {\n    .folded .interface-interface-skeleton {\n      right: 36px; } }\n\n/* Mobile menu opened. */\n@media (max-width: 783px) {\n  .auto-fold .wp-responsive-open .interface-interface-skeleton {\n    right: 190px; } }\n\n/* In small screens with responsive menu expanded there is small white space. */\n@media (max-width: 600px) {\n  .auto-fold .wp-responsive-open .interface-interface-skeleton {\n    margin-right: -18px; } }\n\nbody.is-fullscreen-mode .interface-interface-skeleton {\n  right: 0 !important; }\n\n.interface-interface-skeleton__body {\n  flex-grow: 1;\n  display: flex;\n  overflow: auto;\n  overscroll-behavior-y: none; }\n\n.interface-interface-skeleton__content {\n  flex-grow: 1;\n  display: flex;\n  flex-direction: column;\n  overflow: auto; }\n\n.interface-interface-skeleton__left-sidebar,\n.interface-interface-skeleton__sidebar {\n  display: block;\n  width: auto;\n  flex-shrink: 0;\n  position: absolute;\n  z-index: 100000;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  background: #fff;\n  color: #1e1e1e; }\n  @media (min-width: 782px) {\n    .interface-interface-skeleton__left-sidebar,\n    .interface-interface-skeleton__sidebar {\n      position: relative !important;\n      z-index: 90; } }\n\n@media (min-width: 782px) {\n  .interface-interface-skeleton__sidebar {\n    overflow: auto;\n    border-right: 1px solid #f0f0f0; } }\n\n@media (min-width: 782px) {\n  .interface-interface-skeleton__left-sidebar {\n    border-left: 1px solid #f0f0f0; } }\n\n.interface-interface-skeleton__header {\n  flex-shrink: 0;\n  height: auto;\n  border-bottom: 1px solid #f0f0f0;\n  z-index: 30;\n  color: #1e1e1e;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0; }\n  @media (min-width: 600px) {\n    .interface-interface-skeleton__header {\n      position: initial;\n      top: 0; } }\n\n.interface-interface-skeleton__footer {\n  height: auto;\n  flex-shrink: 0;\n  border-top: 1px solid #f0f0f0;\n  color: #1e1e1e;\n  display: none; }\n  @media (min-width: 782px) {\n    .interface-interface-skeleton__footer {\n      display: block; } }\n\n.interface-interface-skeleton__actions {\n  z-index: 100000;\n  position: fixed !important;\n  top: -9999em;\n  bottom: auto;\n  right: auto;\n  left: 0;\n  width: 280px;\n  color: #1e1e1e; }\n  .interface-interface-skeleton__actions:focus {\n    top: auto;\n    bottom: 0; }\n\n.interface-pinned-items {\n  display: flex; }\n  .interface-pinned-items .components-button {\n    margin-right: 4px; }\n    .interface-pinned-items .components-button svg {\n      max-width: 24px;\n      max-height: 24px; }\n\n.edit-post-header {\n  height: 60px;\n  background: #fff;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  max-width: 100vw; }\n  @media (min-width: 280px) {\n    .edit-post-header {\n      flex-wrap: nowrap; } }\n  .edit-post-header > .edit-post-header__settings {\n    order: 1; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .edit-post-header > .edit-post-header__settings {\n        order: initial; } }\n\n.edit-post-header__toolbar {\n  display: flex;\n  flex-grow: 1;\n  padding-right: 8px; }\n  @media (min-width: 600px) {\n    .edit-post-header__toolbar {\n      padding-right: 24px; } }\n  .edit-post-header__toolbar .table-of-contents {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header__toolbar .table-of-contents {\n        display: block; } }\n\n.edit-post-header__settings {\n  display: inline-flex;\n  align-items: center;\n  flex-wrap: wrap;\n  padding-left: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings {\n      padding-left: 16px; } }\n\n/**\n * Buttons in the Toolbar\n */\n.edit-post-header__settings .components-button.editor-post-save-draft,\n.edit-post-header__settings .editor-post-saved-state,\n.edit-post-header__settings .components-button.editor-post-switch-to-draft,\n.edit-post-header__settings .components-button.editor-post-preview,\n.edit-post-header__settings .components-button.block-editor-post-preview__dropdown {\n  padding: 0 6px;\n  margin-left: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings .components-button.editor-post-save-draft,\n    .edit-post-header__settings .editor-post-saved-state,\n    .edit-post-header__settings .components-button.editor-post-switch-to-draft,\n    .edit-post-header__settings .components-button.editor-post-preview,\n    .edit-post-header__settings .components-button.block-editor-post-preview__dropdown {\n      margin-left: 12px; } }\n\n.edit-post-header__settings .components-button.editor-post-save-draft,\n.edit-post-header__settings .components-button.editor-post-switch-to-draft,\n.edit-post-header__settings .components-button.editor-post-preview,\n.edit-post-header__settings .components-button.block-editor-post-preview__button-toggle {\n  color: #1e1e1e; }\n\n.edit-post-header__settings .components-button.block-editor-post-preview__dropdown,\n.edit-post-header__settings .components-button.editor-post-publish-button,\n.edit-post-header__settings .components-button.editor-post-publish-panel__toggle {\n  padding: 0 6px;\n  margin-left: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings .components-button.block-editor-post-preview__dropdown,\n    .edit-post-header__settings .components-button.editor-post-publish-button,\n    .edit-post-header__settings .components-button.editor-post-publish-panel__toggle {\n      padding: 0 12px;\n      margin-left: 12px; } }\n\n.edit-post-header-preview__grouping-external {\n  display: flex;\n  position: relative;\n  padding-bottom: 0; }\n\n.edit-post-header-preview__button-external {\n  padding-right: 8px;\n  margin-left: auto;\n  width: 100%;\n  display: flex;\n  justify-content: flex-start; }\n  .edit-post-header-preview__button-external svg {\n    margin-left: 8px; }\n\n.edit-post-post-preview-dropdown .components-popover__content > div {\n  padding-bottom: 0; }\n\n.edit-post-fullscreen-mode-close.has-icon {\n  display: none; }\n  @media (min-width: 782px) {\n    .edit-post-fullscreen-mode-close.has-icon {\n      display: flex;\n      align-items: center;\n      align-self: stretch;\n      border: none;\n      background: #23282e;\n      color: #fff;\n      border-radius: 0;\n      height: auto;\n      width: 60px; }\n      .edit-post-fullscreen-mode-close.has-icon:hover {\n        background: #32373d; }\n      .edit-post-fullscreen-mode-close.has-icon:active {\n        color: #fff; }\n      .edit-post-fullscreen-mode-close.has-icon:focus {\n        box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 2.5px #fff;\n        box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 2.5px #fff; } }\n\n.edit-post-header-toolbar {\n  display: inline-flex;\n  align-items: center;\n  border: none; }\n  .edit-post-header-toolbar > .components-button {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header-toolbar > .components-button {\n        display: inline-flex; } }\n  .edit-post-header-toolbar > .edit-post-header-toolbar__inserter-toggle {\n    display: inline-flex; }\n  .edit-post-header-toolbar .block-editor-block-navigation {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header-toolbar .block-editor-block-navigation {\n        display: flex; } }\n  .edit-post-header-toolbar > .components-button.has-icon,\n  .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon {\n    height: 36px;\n    min-width: 36px;\n    padding: 6px; }\n    .edit-post-header-toolbar > .components-button.has-icon.is-pressed,\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon.is-pressed {\n      background: #1e1e1e; }\n    .edit-post-header-toolbar > .components-button.has-icon:focus:not(:disabled),\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon:focus:not(:disabled) {\n      box-shadow: 0 0 0 1.5px #007cba, inset 0 0 0 1px #fff;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 1px #fff;\n      outline: 1px solid transparent; }\n    .edit-post-header-toolbar > .components-button.has-icon::before,\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon::before {\n      display: none; }\n\n.edit-post-header-toolbar__block-toolbar {\n  position: absolute;\n  top: 61px;\n  right: 0;\n  left: 0;\n  background: #fff;\n  border-bottom: 1px solid #ddd; }\n  .edit-post-header-toolbar__block-toolbar:empty {\n    display: none; }\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar-group,\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar {\n    border-top: none;\n    border-bottom: none; }\n  .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n    display: none; }\n  @media (min-width: 782px) {\n    .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n      display: block;\n      left: 280px; } }\n  @media (min-width: 1280px) {\n    .edit-post-header-toolbar__block-toolbar {\n      padding-right: 8px;\n      position: static;\n      right: auto;\n      left: auto;\n      background: none;\n      border-bottom: none; }\n      .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n        left: auto; }\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar {\n        border-right: 1px solid #ddd; }\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar-group,\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar {\n        height: 60px;\n        padding: 6px 0; } }\n\n.edit-post-header-toolbar .edit-post-header-toolbar__inserter-toggle.has-icon {\n  margin-left: 8px;\n  min-width: 32px;\n  width: 32px;\n  height: 32px;\n  padding: 0; }\n\n.edit-post-more-menu {\n  margin-right: -4px; }\n  .edit-post-more-menu .components-button {\n    width: auto;\n    padding: 0 2px; }\n  @media (min-width: 600px) {\n    .edit-post-more-menu {\n      margin-right: 0; }\n      .edit-post-more-menu .components-button {\n        padding: 0 4px; } }\n\n.edit-post-more-menu__content .components-popover__content {\n  min-width: 260px; }\n  @media (min-width: 480px) {\n    .edit-post-more-menu__content .components-popover__content {\n      width: auto;\n      max-width: 480px; } }\n  .edit-post-more-menu__content .components-popover__content .components-dropdown-menu__menu {\n    padding: 0; }\n\n.components-popover.edit-post-more-menu__content {\n  z-index: 99998; }\n\n.edit-post-keyboard-shortcut-help-modal__section {\n  margin: 0 0 2rem 0; }\n\n.edit-post-keyboard-shortcut-help-modal__main-shortcuts .edit-post-keyboard-shortcut-help-modal__shortcut-list {\n  margin-top: -25px; }\n\n.edit-post-keyboard-shortcut-help-modal__section-title {\n  font-size: 0.9rem;\n  font-weight: 600; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut {\n  display: flex;\n  align-items: baseline;\n  padding: 0.6rem 0;\n  border-top: 1px solid #ddd;\n  margin-bottom: 0; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut:empty {\n    display: none; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-term {\n  font-weight: 600;\n  margin: 0 1rem 0 0;\n  text-align: left; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-description {\n  flex: 1;\n  margin: 0;\n  flex-basis: auto; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination {\n  display: block;\n  background: none;\n  margin: 0;\n  padding: 0; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut-key-combination + .edit-post-keyboard-shortcut-help-modal__shortcut-key-combination {\n    margin-top: 10px; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-key {\n  padding: 0.25rem 0.5rem;\n  border-radius: 8%;\n  margin: 0 0.2rem 0 0.2rem; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child {\n    margin: 0 0.2rem 0 0; }\n\n.edit-post-layout__metaboxes {\n  flex-shrink: 0; }\n\n.edit-post-layout__metaboxes:not(:empty) {\n  border-top: 1px solid #ddd;\n  padding: 10px 0 10px;\n  clear: both; }\n  .edit-post-layout__metaboxes:not(:empty) .edit-post-meta-boxes-area {\n    margin: auto 20px; }\n\n.edit-post-layout .components-editor-notices__snackbar {\n  position: fixed;\n  left: 0;\n  bottom: 40px;\n  padding-right: 16px;\n  padding-left: 16px; }\n\n.edit-post-layout .components-editor-notices__snackbar {\n  /* Set left position when auto-fold is not on the body element. */\n  right: 0; }\n  @media (min-width: 783px) {\n    .edit-post-layout .components-editor-notices__snackbar {\n      right: 160px; } }\n\n.auto-fold .edit-post-layout .components-editor-notices__snackbar {\n  /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }\n  @media (min-width: 783px) {\n    .auto-fold .edit-post-layout .components-editor-notices__snackbar {\n      right: 36px; } }\n  @media (min-width: 961px) {\n    .auto-fold .edit-post-layout .components-editor-notices__snackbar {\n      right: 160px; } }\n\n/* Sidebar manually collapsed. */\n.folded .edit-post-layout .components-editor-notices__snackbar {\n  right: 0; }\n  @media (min-width: 783px) {\n    .folded .edit-post-layout .components-editor-notices__snackbar {\n      right: 36px; } }\n\n/* Mobile menu opened. */\n@media (max-width: 783px) {\n  .auto-fold .wp-responsive-open .edit-post-layout .components-editor-notices__snackbar {\n    right: 190px; } }\n\n/* In small screens with responsive menu expanded there is small white space. */\n@media (max-width: 600px) {\n  .auto-fold .wp-responsive-open .edit-post-layout .components-editor-notices__snackbar {\n    margin-right: -18px; } }\n\nbody.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar {\n  right: 0 !important; }\n\n.edit-post-layout .editor-post-publish-panel {\n  position: fixed;\n  z-index: 100001;\n  top: 46px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  overflow: auto; }\n  @media (min-width: 782px) {\n    .edit-post-layout .editor-post-publish-panel {\n      z-index: 99998;\n      top: 32px;\n      right: auto;\n      width: 281px;\n      border-right: 1px solid #ddd;\n      transform: translateX(-100%);\n      animation: edit-post-post-publish-panel__slide-in-animation 0.1s forwards; } }\n  @media (min-width: 782px) and (prefers-reduced-motion: reduce) {\n    .edit-post-layout .editor-post-publish-panel {\n      animation-duration: 1ms; } }\n  @media (min-width: 782px) {\n      body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel {\n        top: 0; }\n      .is-focusing-regions .edit-post-layout .editor-post-publish-panel {\n        transform: translateX(0%); } }\n\n@keyframes edit-post-post-publish-panel__slide-in-animation {\n  100% {\n    transform: translateX(0%); } }\n\n.interface-interface-skeleton__sidebar > div {\n  height: 100%; }\n\n.edit-post-layout .editor-post-publish-panel__header-publish-button {\n  justify-content: center; }\n\n.edit-post-layout__toggle-publish-panel,\n.edit-post-layout__toogle-sidebar-panel,\n.edit-post-layout__toggle-entities-saved-states-panel {\n  z-index: 100000;\n  position: fixed !important;\n  top: -9999em;\n  bottom: auto;\n  right: auto;\n  left: 0;\n  width: 280px;\n  background-color: #fff;\n  border: 1px dotted #ddd;\n  height: auto !important;\n  padding: 24px;\n  display: flex;\n  justify-content: center; }\n  .interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel, .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toogle-sidebar-panel, .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toggle-entities-saved-states-panel {\n    top: auto;\n    bottom: 0; }\n\n.edit-post-layout__footer {\n  display: none;\n  z-index: 30; }\n  @media (min-width: 782px) {\n    .edit-post-layout__footer {\n      display: flex;\n      background: #fff;\n      height: 24px;\n      align-items: center;\n      font-size: 13px;\n      padding: 0 18px; } }\n\n.edit-post-layout .interface-interface-skeleton__content {\n  background-color: #ccd0d4; }\n\n.edit-post-layout__inserter-panel {\n  height: 100%;\n  display: flex;\n  flex-direction: column; }\n\n.edit-post-layout__inserter-panel-header {\n  padding-top: 8px;\n  padding-left: 8px;\n  display: flex;\n  justify-content: flex-end; }\n  @media (min-width: 782px) {\n    .edit-post-layout__inserter-panel-header {\n      display: none; } }\n\n.edit-post-layout__inserter-panel-content {\n  height: calc(100% - 36px - 8px); }\n  @media (min-width: 782px) {\n    .edit-post-layout__inserter-panel-content {\n      height: 100%; } }\n\n@media (min-width: 600px) {\n  .edit-post-manage-blocks-modal {\n    height: calc(100% - 60px - 60px); } }\n\n.edit-post-manage-blocks-modal .components-modal__content {\n  padding-bottom: 0;\n  display: flex;\n  flex-direction: column; }\n\n.edit-post-manage-blocks-modal .components-modal__header {\n  flex-shrink: 0;\n  margin-bottom: 0; }\n\n.edit-post-manage-blocks-modal__content {\n  display: flex;\n  flex-direction: column;\n  flex: 0 1 100%;\n  min-height: 0; }\n\n.edit-post-manage-blocks-modal__no-results {\n  font-style: italic;\n  padding: 24px 0;\n  text-align: center; }\n\n.edit-post-manage-blocks-modal__search {\n  margin: 16px 0; }\n  .edit-post-manage-blocks-modal__search .components-base-control__field {\n    margin-bottom: 0; }\n  .edit-post-manage-blocks-modal__search .components-base-control__label {\n    margin-top: -4px; }\n  .edit-post-manage-blocks-modal__search input[type=\"search\"].components-text-control__input {\n    padding: 8px;\n    border-radius: 2px; }\n\n.edit-post-manage-blocks-modal__disabled-blocks-count {\n  border-top: 1px solid #ddd;\n  margin-right: -24px;\n  margin-left: -24px;\n  padding-top: 0.6rem;\n  padding-bottom: 0.6rem;\n  padding-right: 24px;\n  padding-left: 24px;\n  background-color: #f0f0f0; }\n\n.edit-post-manage-blocks-modal__category {\n  margin: 0 0 2rem 0; }\n\n.edit-post-manage-blocks-modal__category-title {\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  padding: 16px 0;\n  background-color: #fff;\n  z-index: 1; }\n  .edit-post-manage-blocks-modal__category-title .components-base-control__field {\n    margin-bottom: 0; }\n  .edit-post-manage-blocks-modal__category-title .components-checkbox-control__label {\n    font-size: 0.9rem;\n    font-weight: 600; }\n\n.edit-post-manage-blocks-modal__show-all {\n  margin-left: 8px; }\n\n.edit-post-manage-blocks-modal__checklist {\n  margin-top: 0; }\n\n.edit-post-manage-blocks-modal__checklist-item {\n  margin-bottom: 0;\n  padding-right: 16px;\n  border-top: 1px solid #ddd; }\n  .edit-post-manage-blocks-modal__checklist-item:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-manage-blocks-modal__checklist-item .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin: 0; }\n  .components-modal__content .edit-post-manage-blocks-modal__checklist-item.components-checkbox-control__input-container {\n    margin: 0 8px; }\n  .edit-post-manage-blocks-modal__checklist-item .components-checkbox-control__label {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-grow: 1;\n    padding: 0.6rem 10px 0.6rem 0; }\n  .edit-post-manage-blocks-modal__checklist-item .block-editor-block-icon {\n    margin-left: 10px;\n    fill: #555d66; }\n\n.edit-post-manage-blocks-modal__results {\n  height: 100%;\n  overflow: auto;\n  margin-right: -24px;\n  margin-left: -24px;\n  padding-right: 24px;\n  padding-left: 24px;\n  border-top: 1px solid #ddd; }\n\n.edit-post-meta-boxes-area {\n  position: relative;\n  /**\n\t * The wordpress default for most meta-box elements is content-box. Some\n\t * elements such as textarea and input are set to border-box in forms.css.\n\t * These elements therefore specifically set back to border-box here, while\n\t * other elements (such as .button) are unaffected by Gutenberg's style\n\t * because of their higher specificity.\n\t */\n  /* Match width and positioning of the meta boxes. Override default styles. */\n  /* Override Default meta box stylings */ }\n  .edit-post-meta-boxes-area__container,\n  .edit-post-meta-boxes-area .inside {\n    box-sizing: content-box; }\n  .edit-post-meta-boxes-area textarea,\n  .edit-post-meta-boxes-area input {\n    box-sizing: border-box; }\n  .edit-post-meta-boxes-area #poststuff {\n    margin: 0 auto;\n    padding-top: 0;\n    min-width: auto; }\n  .edit-post-meta-boxes-area #poststuff h3.hndle,\n  .edit-post-meta-boxes-area #poststuff .stuffbox > h3,\n  .edit-post-meta-boxes-area #poststuff h2.hndle {\n    /* WordPress selectors yolo */\n    border-bottom: 1px solid #ddd;\n    box-sizing: border-box;\n    color: inherit;\n    font-weight: 600;\n    outline: none;\n    padding: 15px;\n    position: relative;\n    width: 100%; }\n  .edit-post-meta-boxes-area .postbox {\n    border: 0;\n    color: inherit;\n    margin-bottom: 0; }\n  .edit-post-meta-boxes-area .postbox > .inside {\n    border-bottom: 1px solid #ddd;\n    color: inherit;\n    padding: 0 14px 14px;\n    margin: 0; }\n  .edit-post-meta-boxes-area .postbox .handlediv {\n    height: 44px;\n    width: 44px; }\n  .edit-post-meta-boxes-area.is-loading::before {\n    position: absolute;\n    top: 0;\n    right: 0;\n    left: 0;\n    bottom: 0;\n    content: \"\";\n    background: transparent;\n    z-index: 1; }\n  .edit-post-meta-boxes-area .components-spinner {\n    position: absolute;\n    top: 10px;\n    left: 20px;\n    z-index: 5; }\n  .edit-post-meta-boxes-area .is-hidden {\n    display: none; }\n  .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"] {\n    border: 1px solid #6c7781; }\n    .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"]:checked {\n      background: #fff;\n      border-color: #6c7781; }\n    .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"]::before {\n      margin: -3px -4px; }\n\n.edit-post-meta-boxes-area__clear {\n  clear: both; }\n\n.components-panel__header.edit-post-sidebar__panel-tabs {\n  justify-content: flex-start;\n  padding-right: 0;\n  padding-left: 16px;\n  border-top: 0;\n  margin-top: 0; }\n  .components-panel__header.edit-post-sidebar__panel-tabs ul {\n    display: flex; }\n  .components-panel__header.edit-post-sidebar__panel-tabs li {\n    margin: 0; }\n  .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon {\n    display: none;\n    margin: 0 auto 0 0;\n    padding: 0;\n    min-width: 24px;\n    height: 24px; }\n    @media (min-width: 782px) {\n      .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon {\n        display: flex; } }\n\n.components-panel__body.is-opened.edit-post-last-revision__panel {\n  padding: 0;\n  height: 48px; }\n\n.editor-post-last-revision__title.components-button {\n  padding: 16px; }\n\n.editor-post-author__select {\n  margin: -5px 0;\n  width: 100%; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .editor-post-author__select {\n      width: auto; } }\n\n.edit-post-post-link__link-post-name {\n  font-weight: 600; }\n\n.edit-post-post-link__preview-label {\n  font-weight: 400;\n  margin: 0; }\n\n.edit-post-post-link__link {\n  text-align: right;\n  word-wrap: break-word;\n  display: block; }\n.edit-post-post-link__preview-link-container {\n  direction: ltr; }\n.edit-post-post-schedule {\n  width: 100%;\n  position: relative;\n  justify-content: left; }\n  .edit-post-post-schedule span {\n    display: block;\n    width: 45%; }\n\n.components-button.edit-post-post-schedule__toggle {\n  text-align: left; }\n\n.editor-post-slug__input {\n  margin: -5px 0;\n  padding: 2px; }\n\n.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft {\n  margin-top: 15px;\n  width: 100%;\n  text-align: center; }\n\n.edit-post-post-visibility {\n  width: 100%;\n  justify-content: left; }\n  .edit-post-post-visibility span {\n    display: block;\n    width: 45%; }\n\n@media (min-width: 782px) {\n  .edit-post-post-visibility__dialog .components-popover__content {\n    width: 257px; } }\n\n.edit-post-post-visibility__dialog-legend {\n  font-weight: 600; }\n\n.edit-post-post-visibility__choice {\n  margin: 10px 0; }\n\n.edit-post-post-visibility__dialog-radio,\n.edit-post-post-visibility__dialog-label {\n  vertical-align: top; }\n\n.edit-post-post-visibility__dialog-password-input {\n  width: calc(100% - 20px);\n  margin-right: 20px; }\n\n.edit-post-post-visibility__dialog-info {\n  color: #7e8993;\n  padding-right: 20px;\n  font-style: italic;\n  margin: 4px 0 0;\n  line-height: 1.4; }\n\n.components-button.edit-post-sidebar__panel-tab {\n  border-radius: 0;\n  height: 48px;\n  background: transparent;\n  border: none;\n  box-shadow: none;\n  cursor: pointer;\n  display: inline-block;\n  padding: 3px 15px;\n  margin-right: 0;\n  font-weight: 500; }\n  .components-button.edit-post-sidebar__panel-tab::after {\n    content: attr(data-label);\n    display: block;\n    font-weight: 600;\n    height: 0;\n    overflow: hidden;\n    speak: none;\n    visibility: hidden; }\n  .components-button.edit-post-sidebar__panel-tab.is-active {\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 var(--wp-admin-theme-color);\n    position: relative;\n    z-index: 1; }\n    .components-button.edit-post-sidebar__panel-tab.is-active::before {\n      content: \"\";\n      position: absolute;\n      top: 0;\n      bottom: 1px;\n      left: 0;\n      right: 0;\n      border-bottom: 4px solid transparent; }\n  .components-button.edit-post-sidebar__panel-tab:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    position: relative;\n    z-index: 1; }\n  .components-button.edit-post-sidebar__panel-tab.is-active:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 -4px 0 0 var(--wp-admin-theme-color); }\n\n.edit-post-text-editor {\n  position: relative;\n  width: 100%;\n  background-color: #fff;\n  flex-grow: 1; }\n  .edit-post-text-editor .wp-block.editor-post-title {\n    max-width: none;\n    line-height: 1.4; }\n    .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input.editor-post-title__input.editor-post-title__input {\n      font-family: Menlo, Consolas, monaco, monospace;\n      font-size: 2.5em;\n      font-weight: normal; }\n    .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input {\n      border: 1px solid #ccc;\n      margin-bottom: -1px;\n      padding: 16px; }\n      @media (min-width: 600px) {\n        .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input {\n          padding: 24px; } }\n      .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input:focus {\n        border: 1px solid #1e1e1e; }\n    @media (min-width: 600px) {\n      .edit-post-text-editor .wp-block.editor-post-title {\n        padding: 0; } }\n\n.edit-post-text-editor__body {\n  width: 100%;\n  padding: 0 12px 12px 12px;\n  max-width: 1080px;\n  margin-right: auto;\n  margin-left: auto; }\n  @media (min-width: 960px) {\n    .edit-post-text-editor__body {\n      padding: 16px 24px 96px 24px;\n      padding: 0 24px 24px 24px; } }\n\n.edit-post-text-editor__toolbar {\n  position: -webkit-sticky;\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  right: 0;\n  left: 0;\n  display: flex;\n  background: rgba(255, 255, 255, 0.8);\n  padding: 4px 12px; }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__toolbar {\n      padding: 12px; } }\n  @media (min-width: 960px) {\n    .edit-post-text-editor__toolbar {\n      padding: 12px 24px; } }\n  .edit-post-text-editor__toolbar h2 {\n    line-height: 36px;\n    margin: 0 0 0 auto;\n    font-size: 13px;\n    color: #1e1e1e; }\n  .edit-post-text-editor__toolbar .components-button svg {\n    order: 1; }\n\n.edit-post-visual-editor {\n  position: relative;\n  padding-top: 50px;\n  background-color: #fff;\n  flex: 1 1 auto; }\n  .edit-post-visual-editor .components-button {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    padding: 6px 12px; }\n    .edit-post-visual-editor .components-button.is-tertiary, .edit-post-visual-editor .components-button.has-icon {\n      padding: 6px; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .edit-post-visual-editor {\n      flex-basis: 100%; } }\n\n.edit-post-visual-editor > .block-editor__typewriter,\n.edit-post-visual-editor > .block-editor__typewriter > div,\n.edit-post-visual-editor > .block-editor__typewriter > div > .block-editor-writing-flow,\n.edit-post-visual-editor > .block-editor__typewriter > div > .block-editor-writing-flow > .block-editor-writing-flow__click-redirect {\n  height: 100%; }\n\n.edit-post-visual-editor .block-editor-writing-flow__click-redirect {\n  min-height: 40vh;\n  width: 100%; }\n\n.has-metaboxes .edit-post-visual-editor .block-editor-writing-flow__click-redirect {\n  height: 0; }\n\n.edit-post-visual-editor__post-title-wrapper .editor-post-title {\n  margin-top: 2em;\n  margin-right: auto;\n  margin-left: auto;\n  margin-bottom: 32px; }\n\n.edit-post-options-modal__section {\n  margin: 0 0 2rem 0; }\n\n.edit-post-options-modal__section-title {\n  font-size: 0.9rem;\n  font-weight: 600; }\n\n.edit-post-options-modal__option {\n  border-top: 1px solid #ddd; }\n  .edit-post-options-modal__option:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-options-modal__option .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin: 0; }\n  .edit-post-options-modal__option .components-checkbox-control__label {\n    flex-grow: 1;\n    padding: 0.6rem 10px 0.6rem 0; }\n\n.edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n  margin: 0 48px 0.6rem 0; }\n  @media (min-width: 782px) {\n    .edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n      margin-right: 38px; } }\n  @media (min-width: 600px) {\n    .edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n      max-width: 300px; } }\n\n.edit-post-welcome-guide {\n  width: 312px; }\n  .edit-post-welcome-guide__image {\n    background: #00a0d2;\n    height: 240px; }\n    .edit-post-welcome-guide__image__prm-r {\n      display: none; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-welcome-guide__image__prm-r {\n        display: block; }\n      .edit-post-welcome-guide__image__prm-np {\n        display: none; } }\n  .edit-post-welcome-guide__heading {\n    font-family: \"Noto Serif\", serif;\n    font-size: 24px;\n    line-height: 1.4;\n    margin: 0 0 16px 0;\n    padding: 0 32px; }\n  .edit-post-welcome-guide__text {\n    font-size: 13px;\n    line-height: 1.4;\n    margin: 0 0 24px 0;\n    padding: 0 32px; }\n  .edit-post-welcome-guide__inserter-icon {\n    margin: 0 4px;\n    vertical-align: text-top; }\n\n/**\n * Animations\n */\n@keyframes edit-post__fade-in-animation {\n  from {\n    opacity: 0; }\n  to {\n    opacity: 1; } }\n\nhtml.wp-toolbar {\n  background: #fff; }\n\nbody.block-editor-page {\n  background: #fff;\n  /* We hide legacy notices in Gutenberg Based Pages, because they were not designed in a way that scaled well.\n\t   Plugins can use Gutenberg notices if they need to pass on information to the user when they are editing. */ }\n  body.block-editor-page #wpcontent {\n    padding-right: 0; }\n  body.block-editor-page #wpbody-content {\n    padding-bottom: 0; }\n  body.block-editor-page #wpbody-content > div:not(.block-editor):not(#screen-meta) {\n    display: none; }\n  body.block-editor-page #wpfooter {\n    display: none; }\n  body.block-editor-page .a11y-speak-region {\n    right: -1px;\n    top: -1px; }\n  body.block-editor-page ul#adminmenu a.wp-has-current-submenu::after,\n  body.block-editor-page ul#adminmenu > li.current > a.current::after {\n    border-left-color: #fff; }\n  body.block-editor-page .media-frame select.attachment-filters:last-of-type {\n    width: auto;\n    max-width: 100%; }\n\n.edit-post-header,\n.edit-post-visual-editor,\n.edit-post-text-editor,\n.edit-post-sidebar,\n.editor-post-publish-panel,\n.components-popover,\n.components-modal__frame,\n.edit-post-layout__inserter-panel {\n  box-sizing: border-box; }\n  .edit-post-header *,\n  .edit-post-header *::before,\n  .edit-post-header *::after,\n  .edit-post-visual-editor *,\n  .edit-post-visual-editor *::before,\n  .edit-post-visual-editor *::after,\n  .edit-post-text-editor *,\n  .edit-post-text-editor *::before,\n  .edit-post-text-editor *::after,\n  .edit-post-sidebar *,\n  .edit-post-sidebar *::before,\n  .edit-post-sidebar *::after,\n  .editor-post-publish-panel *,\n  .editor-post-publish-panel *::before,\n  .editor-post-publish-panel *::after,\n  .components-popover *,\n  .components-popover *::before,\n  .components-popover *::after,\n  .components-modal__frame *,\n  .components-modal__frame *::before,\n  .components-modal__frame *::after,\n  .edit-post-layout__inserter-panel *,\n  .edit-post-layout__inserter-panel *::before,\n  .edit-post-layout__inserter-panel *::after {\n    box-sizing: inherit; }\n\n@media (min-width: 600px) {\n  .block-editor__container {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    right: 0;\n    min-height: calc(100vh - 46px); } }\n\n@media (min-width: 782px) {\n  .block-editor__container {\n    min-height: calc(100vh - 32px); }\n    body.is-fullscreen-mode .block-editor__container {\n      min-height: 100vh; } }\n\n.block-editor__container img {\n  max-width: 100%;\n  height: auto; }\n\n.block-editor__container iframe {\n  width: 100%; }\n\n.block-editor__container .components-navigate-regions {\n  height: 100%; }\n\n.wp-block {\n  max-width: 580px; }\n  .wp-block[data-align=\"wide\"] {\n    max-width: 1100px; }\n  .wp-block[data-align=\"full\"] {\n    max-width: none; }\n\nbody.admin-color-light {\n  --wp-admin-theme-color: #0085ba;\n  --wp-admin-theme-color-darker-10: #0073a1;\n  --wp-admin-theme-color-darker-20: #006187; }\n\nbody.admin-color-modern {\n  --wp-admin-theme-color: #3858e9;\n  --wp-admin-theme-color-darker-10: #2145e6;\n  --wp-admin-theme-color-darker-20: #183ad6; }\n\nbody.admin-color-blue {\n  --wp-admin-theme-color: #096484;\n  --wp-admin-theme-color-darker-10: #07526c;\n  --wp-admin-theme-color-darker-20: #064054; }\n\nbody.admin-color-coffee {\n  --wp-admin-theme-color: #46403c;\n  --wp-admin-theme-color-darker-10: #383330;\n  --wp-admin-theme-color-darker-20: #2b2724; }\n\nbody.admin-color-ectoplasm {\n  --wp-admin-theme-color: #523f6d;\n  --wp-admin-theme-color-darker-10: #46365d;\n  --wp-admin-theme-color-darker-20: #3a2c4d; }\n\nbody.admin-color-midnight {\n  --wp-admin-theme-color: #e14d43;\n  --wp-admin-theme-color-darker-10: #dd382d;\n  --wp-admin-theme-color-darker-20: #d02c21; }\n\nbody.admin-color-ocean {\n  --wp-admin-theme-color: #627c83;\n  --wp-admin-theme-color-darker-10: #576e74;\n  --wp-admin-theme-color-darker-20: #4c6066; }\n\nbody.admin-color-sunrise {\n  --wp-admin-theme-color: #dd823b;\n  --wp-admin-theme-color-darker-10: #d97426;\n  --wp-admin-theme-color-darker-20: #c36922; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-edit-post/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.components-panel__header.interface-complementary-area-header__small {\n  background: #fff;\n  padding-right: 4px; }\n  .components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title {\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n    width: 100%; }\n  @media (min-width: 782px) {\n    .components-panel__header.interface-complementary-area-header__small {\n      display: none; } }\n\n.interface-complementary-area-header {\n  background: #fff;\n  padding-right: 4px; }\n  .interface-complementary-area-header .components-button.has-icon {\n    display: none;\n    margin-left: auto; }\n    .interface-complementary-area-header .components-button.has-icon ~ .components-button {\n      margin-left: 0; }\n    @media (min-width: 782px) {\n      .interface-complementary-area-header .components-button.has-icon {\n        display: flex; } }\n\n.interface-complementary-area {\n  background: #fff;\n  color: #1e1e1e;\n  overflow: visible; }\n  @media (min-width: 600px) {\n    .interface-complementary-area {\n      z-index: auto;\n      height: 100%;\n      overflow: auto;\n      -webkit-overflow-scrolling: touch; } }\n  @media (min-width: 782px) {\n    .interface-complementary-area {\n      width: 280px; } }\n  .interface-complementary-area > .components-panel {\n    border-left: none;\n    border-right: none;\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    height: auto;\n    max-height: calc(100vh - 142px);\n    margin-top: -1px;\n    margin-bottom: -1px;\n    position: relative; }\n    @media (min-width: 600px) {\n      .interface-complementary-area > .components-panel {\n        overflow: visible;\n        height: auto;\n        max-height: none; } }\n  .interface-complementary-area > .components-panel .components-panel__header {\n    position: fixed;\n    z-index: 1;\n    top: 0;\n    left: 0;\n    right: 0;\n    height: 48px; }\n    @media (min-width: 600px) {\n      .interface-complementary-area > .components-panel .components-panel__header {\n        position: inherit;\n        top: auto;\n        left: auto;\n        right: auto; } }\n  .interface-complementary-area p {\n    margin-top: 0; }\n  .interface-complementary-area h2,\n  .interface-complementary-area h3 {\n    font-size: 13px;\n    color: #1e1e1e;\n    margin-bottom: 1.5em; }\n  .interface-complementary-area hr {\n    border-top: none;\n    border-bottom: 1px solid #f0f0f0;\n    margin: 1.5em 0; }\n  .interface-complementary-area div.components-toolbar-group,\n  .interface-complementary-area div.components-toolbar {\n    box-shadow: none;\n    margin-bottom: 1.5em; }\n    .interface-complementary-area div.components-toolbar-group:last-child,\n    .interface-complementary-area div.components-toolbar:last-child {\n      margin-bottom: 0; }\n  .interface-complementary-area .block-editor-skip-to-selected-block:focus {\n    top: auto;\n    right: 10px;\n    bottom: 10px;\n    left: auto; }\n\n@media (min-width: 782px) {\n  body.js.is-fullscreen-mode {\n    margin-top: -32px;\n    height: calc(100% + 32px); }\n    body.js.is-fullscreen-mode #adminmenumain,\n    body.js.is-fullscreen-mode #wpadminbar {\n      display: none; }\n    body.js.is-fullscreen-mode #wpcontent,\n    body.js.is-fullscreen-mode #wpfooter {\n      margin-left: 0; } }\n\nhtml.interface-interface-skeleton__html-container {\n  position: fixed;\n  width: 100%; }\n  @media (min-width: 782px) {\n    html.interface-interface-skeleton__html-container {\n      position: initial;\n      width: initial; } }\n\n.interface-interface-skeleton {\n  display: flex;\n  flex-direction: column;\n  height: auto;\n  max-height: 100%;\n  position: fixed;\n  top: 46px;\n  left: 0;\n  right: 0;\n  bottom: 0; }\n  @media (min-width: 783px) {\n    .interface-interface-skeleton {\n      top: 32px; }\n      .is-fullscreen-mode .interface-interface-skeleton {\n        top: 0; } }\n\n.interface-interface-skeleton {\n  /* Set left position when auto-fold is not on the body element. */\n  left: 0; }\n  @media (min-width: 783px) {\n    .interface-interface-skeleton {\n      left: 160px; } }\n\n.auto-fold .interface-interface-skeleton {\n  /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }\n  @media (min-width: 783px) {\n    .auto-fold .interface-interface-skeleton {\n      left: 36px; } }\n  @media (min-width: 961px) {\n    .auto-fold .interface-interface-skeleton {\n      left: 160px; } }\n\n/* Sidebar manually collapsed. */\n.folded .interface-interface-skeleton {\n  left: 0; }\n  @media (min-width: 783px) {\n    .folded .interface-interface-skeleton {\n      left: 36px; } }\n\n/* Mobile menu opened. */\n@media (max-width: 783px) {\n  .auto-fold .wp-responsive-open .interface-interface-skeleton {\n    left: 190px; } }\n\n/* In small screens with responsive menu expanded there is small white space. */\n@media (max-width: 600px) {\n  .auto-fold .wp-responsive-open .interface-interface-skeleton {\n    margin-left: -18px; } }\n\nbody.is-fullscreen-mode .interface-interface-skeleton {\n  left: 0 !important; }\n\n.interface-interface-skeleton__body {\n  flex-grow: 1;\n  display: flex;\n  overflow: auto;\n  overscroll-behavior-y: none; }\n\n.interface-interface-skeleton__content {\n  flex-grow: 1;\n  display: flex;\n  flex-direction: column;\n  overflow: auto; }\n\n.interface-interface-skeleton__left-sidebar,\n.interface-interface-skeleton__sidebar {\n  display: block;\n  width: auto;\n  flex-shrink: 0;\n  position: absolute;\n  z-index: 100000;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  background: #fff;\n  color: #1e1e1e; }\n  @media (min-width: 782px) {\n    .interface-interface-skeleton__left-sidebar,\n    .interface-interface-skeleton__sidebar {\n      position: relative !important;\n      z-index: 90; } }\n\n@media (min-width: 782px) {\n  .interface-interface-skeleton__sidebar {\n    overflow: auto;\n    border-left: 1px solid #f0f0f0; } }\n\n@media (min-width: 782px) {\n  .interface-interface-skeleton__left-sidebar {\n    border-right: 1px solid #f0f0f0; } }\n\n.interface-interface-skeleton__header {\n  flex-shrink: 0;\n  height: auto;\n  border-bottom: 1px solid #f0f0f0;\n  z-index: 30;\n  color: #1e1e1e;\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0; }\n  @media (min-width: 600px) {\n    .interface-interface-skeleton__header {\n      position: initial;\n      top: 0; } }\n\n.interface-interface-skeleton__footer {\n  height: auto;\n  flex-shrink: 0;\n  border-top: 1px solid #f0f0f0;\n  color: #1e1e1e;\n  display: none; }\n  @media (min-width: 782px) {\n    .interface-interface-skeleton__footer {\n      display: block; } }\n\n.interface-interface-skeleton__actions {\n  z-index: 100000;\n  position: fixed !important;\n  top: -9999em;\n  bottom: auto;\n  left: auto;\n  right: 0;\n  width: 280px;\n  color: #1e1e1e; }\n  .interface-interface-skeleton__actions:focus {\n    top: auto;\n    bottom: 0; }\n\n.interface-pinned-items {\n  display: flex; }\n  .interface-pinned-items .components-button {\n    margin-left: 4px; }\n    .interface-pinned-items .components-button svg {\n      max-width: 24px;\n      max-height: 24px; }\n\n.edit-post-header {\n  height: 60px;\n  background: #fff;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  max-width: 100vw; }\n  @media (min-width: 280px) {\n    .edit-post-header {\n      flex-wrap: nowrap; } }\n  .edit-post-header > .edit-post-header__settings {\n    order: 1; }\n    @supports ((position: -webkit-sticky) or (position: sticky)) {\n      .edit-post-header > .edit-post-header__settings {\n        order: initial; } }\n\n.edit-post-header__toolbar {\n  display: flex;\n  flex-grow: 1;\n  padding-left: 8px; }\n  @media (min-width: 600px) {\n    .edit-post-header__toolbar {\n      padding-left: 24px; } }\n  .edit-post-header__toolbar .table-of-contents {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header__toolbar .table-of-contents {\n        display: block; } }\n\n.edit-post-header__settings {\n  display: inline-flex;\n  align-items: center;\n  flex-wrap: wrap;\n  padding-right: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings {\n      padding-right: 16px; } }\n\n/**\n * Buttons in the Toolbar\n */\n.edit-post-header__settings .components-button.editor-post-save-draft,\n.edit-post-header__settings .editor-post-saved-state,\n.edit-post-header__settings .components-button.editor-post-switch-to-draft,\n.edit-post-header__settings .components-button.editor-post-preview,\n.edit-post-header__settings .components-button.block-editor-post-preview__dropdown {\n  padding: 0 6px;\n  margin-right: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings .components-button.editor-post-save-draft,\n    .edit-post-header__settings .editor-post-saved-state,\n    .edit-post-header__settings .components-button.editor-post-switch-to-draft,\n    .edit-post-header__settings .components-button.editor-post-preview,\n    .edit-post-header__settings .components-button.block-editor-post-preview__dropdown {\n      margin-right: 12px; } }\n\n.edit-post-header__settings .components-button.editor-post-save-draft,\n.edit-post-header__settings .components-button.editor-post-switch-to-draft,\n.edit-post-header__settings .components-button.editor-post-preview,\n.edit-post-header__settings .components-button.block-editor-post-preview__button-toggle {\n  color: #1e1e1e; }\n\n.edit-post-header__settings .components-button.block-editor-post-preview__dropdown,\n.edit-post-header__settings .components-button.editor-post-publish-button,\n.edit-post-header__settings .components-button.editor-post-publish-panel__toggle {\n  padding: 0 6px;\n  margin-right: 4px; }\n  @media (min-width: 600px) {\n    .edit-post-header__settings .components-button.block-editor-post-preview__dropdown,\n    .edit-post-header__settings .components-button.editor-post-publish-button,\n    .edit-post-header__settings .components-button.editor-post-publish-panel__toggle {\n      padding: 0 12px;\n      margin-right: 12px; } }\n\n.edit-post-header-preview__grouping-external {\n  display: flex;\n  position: relative;\n  padding-bottom: 0; }\n\n.edit-post-header-preview__button-external {\n  padding-left: 8px;\n  margin-right: auto;\n  width: 100%;\n  display: flex;\n  justify-content: flex-start; }\n  .edit-post-header-preview__button-external svg {\n    margin-right: 8px; }\n\n.edit-post-post-preview-dropdown .components-popover__content > div {\n  padding-bottom: 0; }\n\n.edit-post-fullscreen-mode-close.has-icon {\n  display: none; }\n  @media (min-width: 782px) {\n    .edit-post-fullscreen-mode-close.has-icon {\n      display: flex;\n      align-items: center;\n      align-self: stretch;\n      border: none;\n      background: #23282e;\n      color: #fff;\n      border-radius: 0;\n      height: auto;\n      width: 60px; }\n      .edit-post-fullscreen-mode-close.has-icon:hover {\n        background: #32373d; }\n      .edit-post-fullscreen-mode-close.has-icon:active {\n        color: #fff; }\n      .edit-post-fullscreen-mode-close.has-icon:focus {\n        box-shadow: inset 0 0 0 1.5px #007cba, inset 0 0 0 2.5px #fff;\n        box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 2.5px #fff; } }\n\n.edit-post-header-toolbar {\n  display: inline-flex;\n  align-items: center;\n  border: none; }\n  .edit-post-header-toolbar > .components-button {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header-toolbar > .components-button {\n        display: inline-flex; } }\n  .edit-post-header-toolbar > .edit-post-header-toolbar__inserter-toggle {\n    display: inline-flex; }\n  .edit-post-header-toolbar .block-editor-block-navigation {\n    display: none; }\n    @media (min-width: 600px) {\n      .edit-post-header-toolbar .block-editor-block-navigation {\n        display: flex; } }\n  .edit-post-header-toolbar > .components-button.has-icon,\n  .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon {\n    height: 36px;\n    min-width: 36px;\n    padding: 6px; }\n    .edit-post-header-toolbar > .components-button.has-icon.is-pressed,\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon.is-pressed {\n      background: #1e1e1e; }\n    .edit-post-header-toolbar > .components-button.has-icon:focus:not(:disabled),\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon:focus:not(:disabled) {\n      box-shadow: 0 0 0 1.5px #007cba, inset 0 0 0 1px #fff;\n      box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 0 0 1px #fff;\n      outline: 1px solid transparent; }\n    .edit-post-header-toolbar > .components-button.has-icon::before,\n    .edit-post-header-toolbar > .components-dropdown > .components-button.has-icon::before {\n      display: none; }\n\n.edit-post-header-toolbar__block-toolbar {\n  position: absolute;\n  top: 61px;\n  left: 0;\n  right: 0;\n  background: #fff;\n  border-bottom: 1px solid #ddd; }\n  .edit-post-header-toolbar__block-toolbar:empty {\n    display: none; }\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar-group,\n  .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar {\n    border-top: none;\n    border-bottom: none; }\n  .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n    display: none; }\n  @media (min-width: 782px) {\n    .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n      display: block;\n      right: 280px; } }\n  @media (min-width: 1280px) {\n    .edit-post-header-toolbar__block-toolbar {\n      padding-left: 8px;\n      position: static;\n      left: auto;\n      right: auto;\n      background: none;\n      border-bottom: none; }\n      .is-sidebar-opened .edit-post-header-toolbar__block-toolbar {\n        right: auto; }\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar {\n        border-left: 1px solid #ddd; }\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar-group,\n      .edit-post-header-toolbar__block-toolbar .block-editor-block-toolbar .components-toolbar {\n        height: 60px;\n        padding: 6px 0; } }\n\n.edit-post-header-toolbar .edit-post-header-toolbar__inserter-toggle.has-icon {\n  margin-right: 8px;\n  min-width: 32px;\n  width: 32px;\n  height: 32px;\n  padding: 0; }\n\n.edit-post-more-menu {\n  margin-left: -4px; }\n  .edit-post-more-menu .components-button {\n    width: auto;\n    padding: 0 2px; }\n  @media (min-width: 600px) {\n    .edit-post-more-menu {\n      margin-left: 0; }\n      .edit-post-more-menu .components-button {\n        padding: 0 4px; } }\n\n.edit-post-more-menu__content .components-popover__content {\n  min-width: 260px; }\n  @media (min-width: 480px) {\n    .edit-post-more-menu__content .components-popover__content {\n      width: auto;\n      max-width: 480px; } }\n  .edit-post-more-menu__content .components-popover__content .components-dropdown-menu__menu {\n    padding: 0; }\n\n.components-popover.edit-post-more-menu__content {\n  z-index: 99998; }\n\n.edit-post-keyboard-shortcut-help-modal__section {\n  margin: 0 0 2rem 0; }\n\n.edit-post-keyboard-shortcut-help-modal__main-shortcuts .edit-post-keyboard-shortcut-help-modal__shortcut-list {\n  margin-top: -25px; }\n\n.edit-post-keyboard-shortcut-help-modal__section-title {\n  font-size: 0.9rem;\n  font-weight: 600; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut {\n  display: flex;\n  align-items: baseline;\n  padding: 0.6rem 0;\n  border-top: 1px solid #ddd;\n  margin-bottom: 0; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut:empty {\n    display: none; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-term {\n  font-weight: 600;\n  margin: 0 0 0 1rem;\n  text-align: right; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-description {\n  flex: 1;\n  margin: 0;\n  flex-basis: auto; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-key-combination {\n  display: block;\n  background: none;\n  margin: 0;\n  padding: 0; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut-key-combination + .edit-post-keyboard-shortcut-help-modal__shortcut-key-combination {\n    margin-top: 10px; }\n\n.edit-post-keyboard-shortcut-help-modal__shortcut-key {\n  padding: 0.25rem 0.5rem;\n  border-radius: 8%;\n  margin: 0 0.2rem 0 0.2rem; }\n  .edit-post-keyboard-shortcut-help-modal__shortcut-key:last-child {\n    margin: 0 0 0 0.2rem; }\n\n.edit-post-layout__metaboxes {\n  flex-shrink: 0; }\n\n.edit-post-layout__metaboxes:not(:empty) {\n  border-top: 1px solid #ddd;\n  padding: 10px 0 10px;\n  clear: both; }\n  .edit-post-layout__metaboxes:not(:empty) .edit-post-meta-boxes-area {\n    margin: auto 20px; }\n\n.edit-post-layout .components-editor-notices__snackbar {\n  position: fixed;\n  right: 0;\n  bottom: 40px;\n  padding-left: 16px;\n  padding-right: 16px; }\n\n.edit-post-layout .components-editor-notices__snackbar {\n  /* Set left position when auto-fold is not on the body element. */\n  left: 0; }\n  @media (min-width: 783px) {\n    .edit-post-layout .components-editor-notices__snackbar {\n      left: 160px; } }\n\n.auto-fold .edit-post-layout .components-editor-notices__snackbar {\n  /* Auto fold is when on smaller breakpoints, nav menu auto collapses. */ }\n  @media (min-width: 783px) {\n    .auto-fold .edit-post-layout .components-editor-notices__snackbar {\n      left: 36px; } }\n  @media (min-width: 961px) {\n    .auto-fold .edit-post-layout .components-editor-notices__snackbar {\n      left: 160px; } }\n\n/* Sidebar manually collapsed. */\n.folded .edit-post-layout .components-editor-notices__snackbar {\n  left: 0; }\n  @media (min-width: 783px) {\n    .folded .edit-post-layout .components-editor-notices__snackbar {\n      left: 36px; } }\n\n/* Mobile menu opened. */\n@media (max-width: 783px) {\n  .auto-fold .wp-responsive-open .edit-post-layout .components-editor-notices__snackbar {\n    left: 190px; } }\n\n/* In small screens with responsive menu expanded there is small white space. */\n@media (max-width: 600px) {\n  .auto-fold .wp-responsive-open .edit-post-layout .components-editor-notices__snackbar {\n    margin-left: -18px; } }\n\nbody.is-fullscreen-mode .edit-post-layout .components-editor-notices__snackbar {\n  left: 0 !important; }\n\n.edit-post-layout .editor-post-publish-panel {\n  position: fixed;\n  z-index: 100001;\n  top: 46px;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  overflow: auto; }\n  @media (min-width: 782px) {\n    .edit-post-layout .editor-post-publish-panel {\n      z-index: 99998;\n      top: 32px;\n      left: auto;\n      width: 281px;\n      border-left: 1px solid #ddd;\n      transform: translateX(100%);\n      animation: edit-post-post-publish-panel__slide-in-animation 0.1s forwards; } }\n  @media (min-width: 782px) and (prefers-reduced-motion: reduce) {\n    .edit-post-layout .editor-post-publish-panel {\n      animation-duration: 1ms; } }\n  @media (min-width: 782px) {\n      body.is-fullscreen-mode .edit-post-layout .editor-post-publish-panel {\n        top: 0; }\n      .is-focusing-regions .edit-post-layout .editor-post-publish-panel {\n        transform: translateX(0%); } }\n\n@keyframes edit-post-post-publish-panel__slide-in-animation {\n  100% {\n    transform: translateX(0%); } }\n\n.interface-interface-skeleton__sidebar > div {\n  height: 100%; }\n\n.edit-post-layout .editor-post-publish-panel__header-publish-button {\n  justify-content: center; }\n\n.edit-post-layout__toggle-publish-panel,\n.edit-post-layout__toogle-sidebar-panel,\n.edit-post-layout__toggle-entities-saved-states-panel {\n  z-index: 100000;\n  position: fixed !important;\n  top: -9999em;\n  bottom: auto;\n  left: auto;\n  right: 0;\n  width: 280px;\n  background-color: #fff;\n  border: 1px dotted #ddd;\n  height: auto !important;\n  padding: 24px;\n  display: flex;\n  justify-content: center; }\n  .interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus .edit-post-layout__toggle-publish-panel,\n  .interface-interface-skeleton__actions:focus-within .edit-post-layout__toggle-publish-panel, .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toogle-sidebar-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toogle-sidebar-panel, .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus\n  .edit-post-layout__toggle-entities-saved-states-panel,\n  .interface-interface-skeleton__actions:focus-within\n  .edit-post-layout__toggle-entities-saved-states-panel {\n    top: auto;\n    bottom: 0; }\n\n.edit-post-layout__footer {\n  display: none;\n  z-index: 30; }\n  @media (min-width: 782px) {\n    .edit-post-layout__footer {\n      display: flex;\n      background: #fff;\n      height: 24px;\n      align-items: center;\n      font-size: 13px;\n      padding: 0 18px; } }\n\n.edit-post-layout .interface-interface-skeleton__content {\n  background-color: #ccd0d4; }\n\n.edit-post-layout__inserter-panel {\n  height: 100%;\n  display: flex;\n  flex-direction: column; }\n\n.edit-post-layout__inserter-panel-header {\n  padding-top: 8px;\n  padding-right: 8px;\n  display: flex;\n  justify-content: flex-end; }\n  @media (min-width: 782px) {\n    .edit-post-layout__inserter-panel-header {\n      display: none; } }\n\n.edit-post-layout__inserter-panel-content {\n  height: calc(100% - 36px - 8px); }\n  @media (min-width: 782px) {\n    .edit-post-layout__inserter-panel-content {\n      height: 100%; } }\n\n@media (min-width: 600px) {\n  .edit-post-manage-blocks-modal {\n    height: calc(100% - 60px - 60px); } }\n\n.edit-post-manage-blocks-modal .components-modal__content {\n  padding-bottom: 0;\n  display: flex;\n  flex-direction: column; }\n\n.edit-post-manage-blocks-modal .components-modal__header {\n  flex-shrink: 0;\n  margin-bottom: 0; }\n\n.edit-post-manage-blocks-modal__content {\n  display: flex;\n  flex-direction: column;\n  flex: 0 1 100%;\n  min-height: 0; }\n\n.edit-post-manage-blocks-modal__no-results {\n  font-style: italic;\n  padding: 24px 0;\n  text-align: center; }\n\n.edit-post-manage-blocks-modal__search {\n  margin: 16px 0; }\n  .edit-post-manage-blocks-modal__search .components-base-control__field {\n    margin-bottom: 0; }\n  .edit-post-manage-blocks-modal__search .components-base-control__label {\n    margin-top: -4px; }\n  .edit-post-manage-blocks-modal__search input[type=\"search\"].components-text-control__input {\n    padding: 8px;\n    border-radius: 2px; }\n\n.edit-post-manage-blocks-modal__disabled-blocks-count {\n  border-top: 1px solid #ddd;\n  margin-left: -24px;\n  margin-right: -24px;\n  padding-top: 0.6rem;\n  padding-bottom: 0.6rem;\n  padding-left: 24px;\n  padding-right: 24px;\n  background-color: #f0f0f0; }\n\n.edit-post-manage-blocks-modal__category {\n  margin: 0 0 2rem 0; }\n\n.edit-post-manage-blocks-modal__category-title {\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  padding: 16px 0;\n  background-color: #fff;\n  z-index: 1; }\n  .edit-post-manage-blocks-modal__category-title .components-base-control__field {\n    margin-bottom: 0; }\n  .edit-post-manage-blocks-modal__category-title .components-checkbox-control__label {\n    font-size: 0.9rem;\n    font-weight: 600; }\n\n.edit-post-manage-blocks-modal__show-all {\n  margin-right: 8px; }\n\n.edit-post-manage-blocks-modal__checklist {\n  margin-top: 0; }\n\n.edit-post-manage-blocks-modal__checklist-item {\n  margin-bottom: 0;\n  padding-left: 16px;\n  border-top: 1px solid #ddd; }\n  .edit-post-manage-blocks-modal__checklist-item:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-manage-blocks-modal__checklist-item .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin: 0; }\n  .components-modal__content .edit-post-manage-blocks-modal__checklist-item.components-checkbox-control__input-container {\n    margin: 0 8px; }\n  .edit-post-manage-blocks-modal__checklist-item .components-checkbox-control__label {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    flex-grow: 1;\n    padding: 0.6rem 0 0.6rem 10px; }\n  .edit-post-manage-blocks-modal__checklist-item .block-editor-block-icon {\n    margin-right: 10px;\n    fill: #555d66; }\n\n.edit-post-manage-blocks-modal__results {\n  height: 100%;\n  overflow: auto;\n  margin-left: -24px;\n  margin-right: -24px;\n  padding-left: 24px;\n  padding-right: 24px;\n  border-top: 1px solid #ddd; }\n\n.edit-post-meta-boxes-area {\n  position: relative;\n  /**\n\t * The wordpress default for most meta-box elements is content-box. Some\n\t * elements such as textarea and input are set to border-box in forms.css.\n\t * These elements therefore specifically set back to border-box here, while\n\t * other elements (such as .button) are unaffected by Gutenberg's style\n\t * because of their higher specificity.\n\t */\n  /* Match width and positioning of the meta boxes. Override default styles. */\n  /* Override Default meta box stylings */ }\n  .edit-post-meta-boxes-area__container,\n  .edit-post-meta-boxes-area .inside {\n    box-sizing: content-box; }\n  .edit-post-meta-boxes-area textarea,\n  .edit-post-meta-boxes-area input {\n    box-sizing: border-box; }\n  .edit-post-meta-boxes-area #poststuff {\n    margin: 0 auto;\n    padding-top: 0;\n    min-width: auto; }\n  .edit-post-meta-boxes-area #poststuff h3.hndle,\n  .edit-post-meta-boxes-area #poststuff .stuffbox > h3,\n  .edit-post-meta-boxes-area #poststuff h2.hndle {\n    /* WordPress selectors yolo */\n    border-bottom: 1px solid #ddd;\n    box-sizing: border-box;\n    color: inherit;\n    font-weight: 600;\n    outline: none;\n    padding: 15px;\n    position: relative;\n    width: 100%; }\n  .edit-post-meta-boxes-area .postbox {\n    border: 0;\n    color: inherit;\n    margin-bottom: 0; }\n  .edit-post-meta-boxes-area .postbox > .inside {\n    border-bottom: 1px solid #ddd;\n    color: inherit;\n    padding: 0 14px 14px;\n    margin: 0; }\n  .edit-post-meta-boxes-area .postbox .handlediv {\n    height: 44px;\n    width: 44px; }\n  .edit-post-meta-boxes-area.is-loading::before {\n    position: absolute;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    content: \"\";\n    background: transparent;\n    z-index: 1; }\n  .edit-post-meta-boxes-area .components-spinner {\n    position: absolute;\n    top: 10px;\n    right: 20px;\n    z-index: 5; }\n  .edit-post-meta-boxes-area .is-hidden {\n    display: none; }\n  .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"] {\n    border: 1px solid #6c7781; }\n    .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"]:checked {\n      background: #fff;\n      border-color: #6c7781; }\n    .edit-post-meta-boxes-area .metabox-location-side .postbox input[type=\"checkbox\"]::before {\n      margin: -3px -4px; }\n\n.edit-post-meta-boxes-area__clear {\n  clear: both; }\n\n.components-panel__header.edit-post-sidebar__panel-tabs {\n  justify-content: flex-start;\n  padding-left: 0;\n  padding-right: 16px;\n  border-top: 0;\n  margin-top: 0; }\n  .components-panel__header.edit-post-sidebar__panel-tabs ul {\n    display: flex; }\n  .components-panel__header.edit-post-sidebar__panel-tabs li {\n    margin: 0; }\n  .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon {\n    display: none;\n    margin: 0 0 0 auto;\n    padding: 0;\n    min-width: 24px;\n    height: 24px; }\n    @media (min-width: 782px) {\n      .components-panel__header.edit-post-sidebar__panel-tabs .components-button.has-icon {\n        display: flex; } }\n\n.components-panel__body.is-opened.edit-post-last-revision__panel {\n  padding: 0;\n  height: 48px; }\n\n.editor-post-last-revision__title.components-button {\n  padding: 16px; }\n\n.editor-post-author__select {\n  margin: -5px 0;\n  width: 100%; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .editor-post-author__select {\n      width: auto; } }\n\n.edit-post-post-link__link-post-name {\n  font-weight: 600; }\n\n.edit-post-post-link__preview-label {\n  font-weight: 400;\n  margin: 0; }\n\n.edit-post-post-link__link {\n  text-align: left;\n  word-wrap: break-word;\n  display: block; }\n\n/* rtl:begin:ignore */\n.edit-post-post-link__preview-link-container {\n  direction: ltr; }\n\n/* rtl:end:ignore */\n.edit-post-post-schedule {\n  width: 100%;\n  position: relative;\n  justify-content: left; }\n  .edit-post-post-schedule span {\n    display: block;\n    width: 45%; }\n\n.components-button.edit-post-post-schedule__toggle {\n  text-align: right; }\n\n.editor-post-slug__input {\n  margin: -5px 0;\n  padding: 2px; }\n\n.edit-post-post-status .edit-post-post-publish-dropdown__switch-to-draft {\n  margin-top: 15px;\n  width: 100%;\n  text-align: center; }\n\n.edit-post-post-visibility {\n  width: 100%;\n  justify-content: left; }\n  .edit-post-post-visibility span {\n    display: block;\n    width: 45%; }\n\n@media (min-width: 782px) {\n  .edit-post-post-visibility__dialog .components-popover__content {\n    width: 257px; } }\n\n.edit-post-post-visibility__dialog-legend {\n  font-weight: 600; }\n\n.edit-post-post-visibility__choice {\n  margin: 10px 0; }\n\n.edit-post-post-visibility__dialog-radio,\n.edit-post-post-visibility__dialog-label {\n  vertical-align: top; }\n\n.edit-post-post-visibility__dialog-password-input {\n  width: calc(100% - 20px);\n  margin-left: 20px; }\n\n.edit-post-post-visibility__dialog-info {\n  color: #7e8993;\n  padding-left: 20px;\n  font-style: italic;\n  margin: 4px 0 0;\n  line-height: 1.4; }\n\n.components-button.edit-post-sidebar__panel-tab {\n  border-radius: 0;\n  height: 48px;\n  background: transparent;\n  border: none;\n  box-shadow: none;\n  cursor: pointer;\n  display: inline-block;\n  padding: 3px 15px;\n  margin-left: 0;\n  font-weight: 500; }\n  .components-button.edit-post-sidebar__panel-tab::after {\n    content: attr(data-label);\n    display: block;\n    font-weight: 600;\n    height: 0;\n    overflow: hidden;\n    speak: none;\n    visibility: hidden; }\n  .components-button.edit-post-sidebar__panel-tab.is-active {\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px transparent, inset 0 -4px 0 0 var(--wp-admin-theme-color);\n    position: relative;\n    z-index: 1; }\n    .components-button.edit-post-sidebar__panel-tab.is-active::before {\n      content: \"\";\n      position: absolute;\n      top: 0;\n      bottom: 1px;\n      right: 0;\n      left: 0;\n      border-bottom: 4px solid transparent; }\n  .components-button.edit-post-sidebar__panel-tab:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    position: relative;\n    z-index: 1; }\n  .components-button.edit-post-sidebar__panel-tab.is-active:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba, inset 0 -4px 0 0 #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color), inset 0 -4px 0 0 var(--wp-admin-theme-color); }\n\n.edit-post-text-editor {\n  position: relative;\n  width: 100%;\n  background-color: #fff;\n  flex-grow: 1; }\n  .edit-post-text-editor .wp-block.editor-post-title {\n    max-width: none;\n    line-height: 1.4; }\n    .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input.editor-post-title__input.editor-post-title__input {\n      font-family: Menlo, Consolas, monaco, monospace;\n      font-size: 2.5em;\n      font-weight: normal; }\n    .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input {\n      border: 1px solid #ccc;\n      margin-bottom: -1px;\n      padding: 16px; }\n      @media (min-width: 600px) {\n        .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input {\n          padding: 24px; } }\n      .edit-post-text-editor .wp-block.editor-post-title .editor-post-title__input:focus {\n        border: 1px solid #1e1e1e; }\n    @media (min-width: 600px) {\n      .edit-post-text-editor .wp-block.editor-post-title {\n        padding: 0; } }\n\n.edit-post-text-editor__body {\n  width: 100%;\n  padding: 0 12px 12px 12px;\n  max-width: 1080px;\n  margin-left: auto;\n  margin-right: auto; }\n  @media (min-width: 960px) {\n    .edit-post-text-editor__body {\n      padding: 16px 24px 96px 24px;\n      padding: 0 24px 24px 24px; } }\n\n.edit-post-text-editor__toolbar {\n  position: -webkit-sticky;\n  position: sticky;\n  z-index: 1;\n  top: 0;\n  left: 0;\n  right: 0;\n  display: flex;\n  background: rgba(255, 255, 255, 0.8);\n  padding: 4px 12px; }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__toolbar {\n      padding: 12px; } }\n  @media (min-width: 960px) {\n    .edit-post-text-editor__toolbar {\n      padding: 12px 24px; } }\n  .edit-post-text-editor__toolbar h2 {\n    line-height: 36px;\n    margin: 0 auto 0 0;\n    font-size: 13px;\n    color: #1e1e1e; }\n  .edit-post-text-editor__toolbar .components-button svg {\n    order: 1; }\n\n.edit-post-visual-editor {\n  position: relative;\n  padding-top: 50px;\n  background-color: #fff;\n  flex: 1 1 auto; }\n  .edit-post-visual-editor .components-button {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    font-size: 13px;\n    padding: 6px 12px; }\n    .edit-post-visual-editor .components-button.is-tertiary, .edit-post-visual-editor .components-button.has-icon {\n      padding: 6px; }\n  @supports ((position: -webkit-sticky) or (position: sticky)) {\n    .edit-post-visual-editor {\n      flex-basis: 100%; } }\n\n.edit-post-visual-editor > .block-editor__typewriter,\n.edit-post-visual-editor > .block-editor__typewriter > div,\n.edit-post-visual-editor > .block-editor__typewriter > div > .block-editor-writing-flow,\n.edit-post-visual-editor > .block-editor__typewriter > div > .block-editor-writing-flow > .block-editor-writing-flow__click-redirect {\n  height: 100%; }\n\n.edit-post-visual-editor .block-editor-writing-flow__click-redirect {\n  min-height: 40vh;\n  width: 100%; }\n\n.has-metaboxes .edit-post-visual-editor .block-editor-writing-flow__click-redirect {\n  height: 0; }\n\n.edit-post-visual-editor__post-title-wrapper .editor-post-title {\n  margin-top: 2em;\n  margin-left: auto;\n  margin-right: auto;\n  margin-bottom: 32px; }\n\n.edit-post-options-modal__section {\n  margin: 0 0 2rem 0; }\n\n.edit-post-options-modal__section-title {\n  font-size: 0.9rem;\n  font-weight: 600; }\n\n.edit-post-options-modal__option {\n  border-top: 1px solid #ddd; }\n  .edit-post-options-modal__option:last-child {\n    border-bottom: 1px solid #ddd; }\n  .edit-post-options-modal__option .components-base-control__field {\n    align-items: center;\n    display: flex;\n    margin: 0; }\n  .edit-post-options-modal__option .components-checkbox-control__label {\n    flex-grow: 1;\n    padding: 0.6rem 0 0.6rem 10px; }\n\n.edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n  margin: 0 0 0.6rem 48px; }\n  @media (min-width: 782px) {\n    .edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n      margin-left: 38px; } }\n  @media (min-width: 600px) {\n    .edit-post-options-modal__custom-fields-confirmation-message, .edit-post-options-modal__custom-fields-confirmation-button {\n      max-width: 300px; } }\n\n.edit-post-welcome-guide {\n  width: 312px; }\n  .edit-post-welcome-guide__image {\n    background: #00a0d2;\n    height: 240px; }\n    .edit-post-welcome-guide__image__prm-r {\n      display: none; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-welcome-guide__image__prm-r {\n        display: block; }\n      .edit-post-welcome-guide__image__prm-np {\n        display: none; } }\n  .edit-post-welcome-guide__heading {\n    font-family: \"Noto Serif\", serif;\n    font-size: 24px;\n    line-height: 1.4;\n    margin: 0 0 16px 0;\n    padding: 0 32px; }\n  .edit-post-welcome-guide__text {\n    font-size: 13px;\n    line-height: 1.4;\n    margin: 0 0 24px 0;\n    padding: 0 32px; }\n  .edit-post-welcome-guide__inserter-icon {\n    margin: 0 4px;\n    vertical-align: text-top; }\n\n/**\n * Animations\n */\n@keyframes edit-post__fade-in-animation {\n  from {\n    opacity: 0; }\n  to {\n    opacity: 1; } }\n\nhtml.wp-toolbar {\n  background: #fff; }\n\nbody.block-editor-page {\n  background: #fff;\n  /* We hide legacy notices in Gutenberg Based Pages, because they were not designed in a way that scaled well.\n\t   Plugins can use Gutenberg notices if they need to pass on information to the user when they are editing. */ }\n  body.block-editor-page #wpcontent {\n    padding-left: 0; }\n  body.block-editor-page #wpbody-content {\n    padding-bottom: 0; }\n  body.block-editor-page #wpbody-content > div:not(.block-editor):not(#screen-meta) {\n    display: none; }\n  body.block-editor-page #wpfooter {\n    display: none; }\n  body.block-editor-page .a11y-speak-region {\n    left: -1px;\n    top: -1px; }\n  body.block-editor-page ul#adminmenu a.wp-has-current-submenu::after,\n  body.block-editor-page ul#adminmenu > li.current > a.current::after {\n    border-right-color: #fff; }\n  body.block-editor-page .media-frame select.attachment-filters:last-of-type {\n    width: auto;\n    max-width: 100%; }\n\n.edit-post-header,\n.edit-post-visual-editor,\n.edit-post-text-editor,\n.edit-post-sidebar,\n.editor-post-publish-panel,\n.components-popover,\n.components-modal__frame,\n.edit-post-layout__inserter-panel {\n  box-sizing: border-box; }\n  .edit-post-header *,\n  .edit-post-header *::before,\n  .edit-post-header *::after,\n  .edit-post-visual-editor *,\n  .edit-post-visual-editor *::before,\n  .edit-post-visual-editor *::after,\n  .edit-post-text-editor *,\n  .edit-post-text-editor *::before,\n  .edit-post-text-editor *::after,\n  .edit-post-sidebar *,\n  .edit-post-sidebar *::before,\n  .edit-post-sidebar *::after,\n  .editor-post-publish-panel *,\n  .editor-post-publish-panel *::before,\n  .editor-post-publish-panel *::after,\n  .components-popover *,\n  .components-popover *::before,\n  .components-popover *::after,\n  .components-modal__frame *,\n  .components-modal__frame *::before,\n  .components-modal__frame *::after,\n  .edit-post-layout__inserter-panel *,\n  .edit-post-layout__inserter-panel *::before,\n  .edit-post-layout__inserter-panel *::after {\n    box-sizing: inherit; }\n\n@media (min-width: 600px) {\n  .block-editor__container {\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    min-height: calc(100vh - 46px); } }\n\n@media (min-width: 782px) {\n  .block-editor__container {\n    min-height: calc(100vh - 32px); }\n    body.is-fullscreen-mode .block-editor__container {\n      min-height: 100vh; } }\n\n.block-editor__container img {\n  max-width: 100%;\n  height: auto; }\n\n.block-editor__container iframe {\n  width: 100%; }\n\n.block-editor__container .components-navigate-regions {\n  height: 100%; }\n\n.wp-block {\n  max-width: 580px; }\n  .wp-block[data-align=\"wide\"] {\n    max-width: 1100px; }\n  .wp-block[data-align=\"full\"] {\n    max-width: none; }\n\nbody.admin-color-light {\n  --wp-admin-theme-color: #0085ba;\n  --wp-admin-theme-color-darker-10: #0073a1;\n  --wp-admin-theme-color-darker-20: #006187; }\n\nbody.admin-color-modern {\n  --wp-admin-theme-color: #3858e9;\n  --wp-admin-theme-color-darker-10: #2145e6;\n  --wp-admin-theme-color-darker-20: #183ad6; }\n\nbody.admin-color-blue {\n  --wp-admin-theme-color: #096484;\n  --wp-admin-theme-color-darker-10: #07526c;\n  --wp-admin-theme-color-darker-20: #064054; }\n\nbody.admin-color-coffee {\n  --wp-admin-theme-color: #46403c;\n  --wp-admin-theme-color-darker-10: #383330;\n  --wp-admin-theme-color-darker-20: #2b2724; }\n\nbody.admin-color-ectoplasm {\n  --wp-admin-theme-color: #523f6d;\n  --wp-admin-theme-color-darker-10: #46365d;\n  --wp-admin-theme-color-darker-20: #3a2c4d; }\n\nbody.admin-color-midnight {\n  --wp-admin-theme-color: #e14d43;\n  --wp-admin-theme-color-darker-10: #dd382d;\n  --wp-admin-theme-color-darker-20: #d02c21; }\n\nbody.admin-color-ocean {\n  --wp-admin-theme-color: #627c83;\n  --wp-admin-theme-color-darker-10: #576e74;\n  --wp-admin-theme-color-darker-20: #4c6066; }\n\nbody.admin-color-sunrise {\n  --wp-admin-theme-color: #dd823b;\n  --wp-admin-theme-color-darker-10: #d97426;\n  --wp-admin-theme-color-darker-20: #c36922; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-editor/editor-styles-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n/**\n * Editor Normalization Styles\n *\n * These are only output in the editor, but styles here are prefixed .editor-styles-wrapper and affect the theming\n * of the editor by themes.\n * Why do these exist? Why not rely on browser defaults?\n * These styles are necessary so long as CSS can bleed from the wp-admin into the editing canvas itself.\n * Let's continue working to refactor these away, whether through Shadow DOM or better scoping of upstream styles.\n */\nbody {\n  font-family: \"Noto Serif\", serif;\n  font-size: 16px;\n  line-height: 1.8;\n  color: #1e1e1e;\n  padding: 10px; }\n\n.block-editor-block-list__layout.is-root-container > .wp-block[data-align=\"full\"] {\n  margin-right: -10px;\n  margin-left: -10px; }\n\n/* Headings */\nh1 {\n  font-size: 2.44em; }\n\nh2 {\n  font-size: 1.95em; }\n\nh3 {\n  font-size: 1.56em; }\n\nh4 {\n  font-size: 1.25em; }\n\nh5 {\n  font-size: 1em; }\n\nh6 {\n  font-size: 0.8em; }\n\nh1,\nh2,\nh3 {\n  line-height: 1.4; }\n\nh4 {\n  line-height: 1.5; }\n\nh1 {\n  margin-top: 0.67em;\n  margin-bottom: 0.67em; }\n\nh2 {\n  margin-top: 0.83em;\n  margin-bottom: 0.83em; }\n\nh3 {\n  margin-top: 1em;\n  margin-bottom: 1em; }\n\nh4 {\n  margin-top: 1.33em;\n  margin-bottom: 1.33em; }\n\nh5 {\n  margin-top: 1.67em;\n  margin-bottom: 1.67em; }\n\nh6 {\n  margin-top: 2.33em;\n  margin-bottom: 2.33em; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  color: inherit; }\n\np {\n  font-size: inherit;\n  line-height: inherit;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\nul,\nol {\n  margin-bottom: 28px;\n  padding-right: 1.3em;\n  margin-right: 1.3em; }\n  ul ul,\n  ul ol,\n  ol ul,\n  ol ol {\n    margin-bottom: 0; }\n  ul li,\n  ol li {\n    margin-bottom: initial; }\n\nul {\n  list-style-type: disc; }\n\nol {\n  list-style-type: decimal; }\n\nul ul,\nol ul {\n  list-style-type: circle; }\n\n.wp-align-wrapper {\n  max-width: 580px; }\n  .wp-align-wrapper > .wp-block, .wp-align-wrapper.wp-align-full {\n    max-width: none; }\n  .wp-align-wrapper.wp-align-wide {\n    max-width: 1100px; }\n\na {\n  transition: none; }\n\ncode,\nkbd {\n  padding: 0;\n  margin: 0;\n  background: inherit;\n  font-size: inherit;\n  font-family: monospace; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-editor/editor-styles.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n/**\n * Editor Normalization Styles\n *\n * These are only output in the editor, but styles here are prefixed .editor-styles-wrapper and affect the theming\n * of the editor by themes.\n * Why do these exist? Why not rely on browser defaults?\n * These styles are necessary so long as CSS can bleed from the wp-admin into the editing canvas itself.\n * Let's continue working to refactor these away, whether through Shadow DOM or better scoping of upstream styles.\n */\nbody {\n  font-family: \"Noto Serif\", serif;\n  font-size: 16px;\n  line-height: 1.8;\n  color: #1e1e1e;\n  padding: 10px; }\n\n.block-editor-block-list__layout.is-root-container > .wp-block[data-align=\"full\"] {\n  margin-left: -10px;\n  margin-right: -10px; }\n\n/* Headings */\nh1 {\n  font-size: 2.44em; }\n\nh2 {\n  font-size: 1.95em; }\n\nh3 {\n  font-size: 1.56em; }\n\nh4 {\n  font-size: 1.25em; }\n\nh5 {\n  font-size: 1em; }\n\nh6 {\n  font-size: 0.8em; }\n\nh1,\nh2,\nh3 {\n  line-height: 1.4; }\n\nh4 {\n  line-height: 1.5; }\n\nh1 {\n  margin-top: 0.67em;\n  margin-bottom: 0.67em; }\n\nh2 {\n  margin-top: 0.83em;\n  margin-bottom: 0.83em; }\n\nh3 {\n  margin-top: 1em;\n  margin-bottom: 1em; }\n\nh4 {\n  margin-top: 1.33em;\n  margin-bottom: 1.33em; }\n\nh5 {\n  margin-top: 1.67em;\n  margin-bottom: 1.67em; }\n\nh6 {\n  margin-top: 2.33em;\n  margin-bottom: 2.33em; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  color: inherit; }\n\np {\n  font-size: inherit;\n  line-height: inherit;\n  margin-top: 28px;\n  margin-bottom: 28px; }\n\nul,\nol {\n  margin-bottom: 28px;\n  padding-left: 1.3em;\n  margin-left: 1.3em; }\n  ul ul,\n  ul ol,\n  ol ul,\n  ol ol {\n    margin-bottom: 0; }\n  ul li,\n  ol li {\n    margin-bottom: initial; }\n\nul {\n  list-style-type: disc; }\n\nol {\n  list-style-type: decimal; }\n\nul ul,\nol ul {\n  list-style-type: circle; }\n\n.wp-align-wrapper {\n  max-width: 580px; }\n  .wp-align-wrapper > .wp-block, .wp-align-wrapper.wp-align-full {\n    max-width: none; }\n  .wp-align-wrapper.wp-align-wide {\n    max-width: 1100px; }\n\na {\n  transition: none; }\n\ncode,\nkbd {\n  padding: 0;\n  margin: 0;\n  background: inherit;\n  font-size: inherit;\n  font-family: monospace; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-editor/style-rtl.css",
    "content": "@charset \"UTF-8\";\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.editor-autocompleters__user .editor-autocompleters__no-avatar::before {\n  /* stylelint-disable */\n  font: normal 20px/1 dashicons;\n  /* stylelint-enable */\n  content: \"\\f110\";\n  margin-left: 5px;\n  vertical-align: middle; }\n\n.editor-autocompleters__user .editor-autocompleters__user-avatar {\n  margin-left: 8px;\n  flex-grow: 0;\n  flex-shrink: 0;\n  max-width: none;\n  width: 24px;\n  height: 24px; }\n\n.editor-autocompleters__user .editor-autocompleters__user-name {\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  max-width: 200px;\n  flex-shrink: 0;\n  flex-grow: 1; }\n\n.editor-autocompleters__user .editor-autocompleters__user-slug {\n  margin-right: 8px;\n  color: #8f98a1;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: none;\n  max-width: 100px;\n  flex-grow: 0;\n  flex-shrink: 0; }\n\n.editor-autocompleters__user:hover .editor-autocompleters__user-slug {\n  color: #007cba;\n  color: var(--wp-admin-theme-color); }\n\n.document-outline {\n  margin: 20px 0; }\n  .document-outline ul {\n    margin: 0;\n    padding: 0; }\n\n.document-outline__item {\n  display: flex;\n  margin: 4px 0; }\n  .document-outline__item a {\n    text-decoration: none; }\n  .document-outline__item .document-outline__emdash::before {\n    color: #ddd;\n    margin-left: 4px; }\n  .document-outline__item.is-h2 .document-outline__emdash::before {\n    content: \"—\"; }\n  .document-outline__item.is-h3 .document-outline__emdash::before {\n    content: \"——\"; }\n  .document-outline__item.is-h4 .document-outline__emdash::before {\n    content: \"———\"; }\n  .document-outline__item.is-h5 .document-outline__emdash::before {\n    content: \"————\"; }\n  .document-outline__item.is-h6 .document-outline__emdash::before {\n    content: \"—————\"; }\n\n.document-outline__button {\n  cursor: pointer;\n  background: none;\n  border: none;\n  display: flex;\n  align-items: flex-start;\n  margin: 0 -1px 0 0;\n  padding: 2px 1px 2px 5px;\n  color: #1e1e1e;\n  text-align: right;\n  border-radius: 2px; }\n  .document-outline__button:disabled {\n    cursor: default; }\n  .document-outline__button:focus {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n\n.document-outline__level {\n  background: #ddd;\n  color: #1e1e1e;\n  border-radius: 3px;\n  font-size: 13px;\n  padding: 1px 6px;\n  margin-left: 4px; }\n  .is-invalid .document-outline__level {\n    background: #f0b849; }\n\n.document-outline__item-content {\n  padding: 1px 0; }\n\n.components-editor-notices__dismissible {\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  left: 0;\n  color: #1e1e1e; }\n\n.components-editor-notices__pinned {\n  position: relative;\n  right: 0;\n  top: 0;\n  left: 0;\n  color: #1e1e1e; }\n\n.components-editor-notices__dismissible .components-notice,\n.components-editor-notices__pinned .components-notice {\n  box-sizing: border-box;\n  margin: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  padding: 0 12px;\n  min-height: 60px; }\n  .components-editor-notices__dismissible .components-notice .components-notice__dismiss,\n  .components-editor-notices__pinned .components-notice .components-notice__dismiss {\n    margin-top: 12px; }\n\n.components-editor-notices__snackbar {\n  width: 100%; }\n  @media (min-width: 782px) {\n    .components-editor-notices__snackbar {\n      width: fit-content;\n      width: -moz-fit-content; } }\n\n.entities-saved-states__panel {\n  box-sizing: border-box;\n  background: #fff;\n  position: fixed;\n  z-index: 100001;\n  top: 46px;\n  bottom: 0;\n  left: 0;\n  right: 0;\n  overflow: auto;\n  box-sizing: border-box; }\n  .entities-saved-states__panel *,\n  .entities-saved-states__panel *::before,\n  .entities-saved-states__panel *::after {\n    box-sizing: inherit; }\n  .entities-saved-states__panel .entities-saved-states__find-entity {\n    display: none; }\n  .entities-saved-states__panel .entities-saved-states__find-entity-small {\n    display: block; }\n  @media (min-width: 782px) {\n    .entities-saved-states__panel {\n      z-index: 99998;\n      top: 32px;\n      right: auto;\n      width: 280px;\n      border-right: 1px solid #ddd; }\n      body.is-fullscreen-mode .entities-saved-states__panel {\n        top: 0; }\n      .entities-saved-states__panel .entities-saved-states__find-entity {\n        display: block; }\n      .entities-saved-states__panel .entities-saved-states__find-entity-small {\n        display: none; } }\n  .entities-saved-states__panel .entities-saved-states__panel-header {\n    background: #fff;\n    padding-right: 8px;\n    padding-left: 8px;\n    height: 61px;\n    border-bottom: 1px solid #ddd;\n    display: flex;\n    align-items: center;\n    align-content: space-between; }\n    .entities-saved-states__panel .entities-saved-states__panel-header .editor-entities-saved-states__save-button {\n      margin: auto; }\n    .entities-saved-states__panel .entities-saved-states__panel-header .components-button.has-icon {\n      position: absolute;\n      left: 8px; }\n  .entities-saved-states__panel .entities-saved-states__text-prompt {\n    border-bottom: 1px solid #ddd;\n    padding: 16px;\n    padding-bottom: 4px; }\n\n.editor-error-boundary {\n  margin: auto;\n  max-width: 780px;\n  padding: 20px;\n  margin-top: 60px;\n  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.2); }\n\n.editor-page-attributes__template {\n  margin-bottom: 10px; }\n  .editor-page-attributes__template label,\n  .editor-page-attributes__template select {\n    width: 100%; }\n\n.editor-page-attributes__order {\n  width: 100%; }\n  .editor-page-attributes__order .components-base-control__field {\n    display: flex;\n    justify-content: space-between;\n    align-items: center; }\n  .editor-page-attributes__order input {\n    width: 66px; }\n\n.editor-post-excerpt__textarea {\n  width: 100%;\n  margin-bottom: 10px; }\n\n.editor-post-featured-image {\n  padding: 0; }\n  .editor-post-featured-image__container {\n    margin-bottom: 1em;\n    position: relative; }\n  .editor-post-featured-image .components-spinner {\n    position: absolute;\n    top: 50%;\n    right: 50%;\n    margin-top: -9px;\n    margin-right: -9px; }\n  .editor-post-featured-image .components-button + .components-button {\n    display: block;\n    margin-top: 1em; }\n  .editor-post-featured-image .components-responsive-wrapper__content {\n    max-width: 100%;\n    width: auto; }\n\n.editor-post-featured-image__toggle,\n.editor-post-featured-image__preview {\n  display: block;\n  width: 100%;\n  padding: 0;\n  transition: all 0.1s ease-out;\n  box-shadow: 0 0 0 0 #007cba;\n  box-shadow: 0 0 0 0 var(--wp-admin-theme-color); }\n  @media (prefers-reduced-motion: reduce) {\n    .editor-post-featured-image__toggle,\n    .editor-post-featured-image__preview {\n      transition-duration: 0s; } }\n\n.editor-post-featured-image__preview {\n  height: auto; }\n\n.editor-post-featured-image__preview:not(:disabled):not([aria-disabled=\"true\"]):focus {\n  box-shadow: 0 0 0 4px #007cba;\n  box-shadow: 0 0 0 4px var(--wp-admin-theme-color); }\n\n.editor-post-featured-image__toggle {\n  border-radius: 2px;\n  background-color: #f0f0f0;\n  min-height: 90px;\n  line-height: 20px;\n  padding: 8px 0;\n  text-align: center; }\n  .editor-post-featured-image__toggle:hover {\n    background: #ddd;\n    color: #1e1e1e; }\n\n.editor-post-format {\n  flex-direction: column;\n  align-items: stretch;\n  width: 100%; }\n\n.editor-post-format__content {\n  display: inline-flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%; }\n\n.editor-post-format__suggestion {\n  text-align: left;\n  font-size: 13px; }\n\n.editor-post-last-revision__title {\n  width: 100%;\n  font-weight: 600; }\n  .editor-post-last-revision__title .dashicon {\n    margin-left: 5px; }\n\n.components-button.editor-post-last-revision__title {\n  height: 100%; }\n  .components-button.editor-post-last-revision__title:hover, .components-button.editor-post-last-revision__title:active {\n    background: #f0f0f0; }\n  .components-button.editor-post-last-revision__title:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 0; }\n\n.editor-post-locked-modal {\n  height: auto;\n  padding-left: 10px;\n  padding-right: 10px;\n  padding-top: 10px;\n  max-width: 480px; }\n  .editor-post-locked-modal .components-modal__header {\n    height: 36px; }\n  .editor-post-locked-modal .components-modal__content {\n    height: auto; }\n\n.editor-post-locked-modal__buttons {\n  margin-top: 10px; }\n  .editor-post-locked-modal__buttons .components-button {\n    margin-left: 5px; }\n\n.editor-post-locked-modal__avatar {\n  float: right;\n  margin: 5px;\n  margin-left: 15px; }\n\n.editor-post-publish-button__button.has-changes-dot::before {\n  background: currentcolor;\n  border-radius: 4px;\n  content: \"\";\n  height: 8px;\n  margin: auto -3px auto 5px;\n  width: 8px; }\n\n.editor-post-publish-panel {\n  background: #fff; }\n\n.editor-post-publish-panel__content {\n  min-height: calc(100% - 144px); }\n  .editor-post-publish-panel__content .components-spinner {\n    display: block;\n    margin: 100px auto 0; }\n\n.editor-post-publish-panel__header {\n  background: #fff;\n  padding-right: 16px;\n  padding-left: 16px;\n  height: 61px;\n  border-bottom: 1px solid #ddd;\n  display: flex;\n  align-items: center;\n  align-content: space-between; }\n  .editor-post-publish-panel__header .components-button {\n    width: 100%;\n    justify-content: center; }\n  .editor-post-publish-panel__header .has-icon {\n    margin-right: auto;\n    width: auto; }\n\n.editor-post-publish-panel__header-publish-button,\n.editor-post-publish-panel__header-cancel-button {\n  flex-grow: 1; }\n  @media (min-width: 480px) {\n    .editor-post-publish-panel__header-publish-button,\n    .editor-post-publish-panel__header-cancel-button {\n      max-width: 160px; } }\n\n.editor-post-publish-panel__header-publish-button {\n  padding-left: 4px; }\n\n.editor-post-publish-panel__header-cancel-button {\n  padding-right: 4px; }\n\n.editor-post-publish-panel__header-published {\n  flex-grow: 1; }\n\n.editor-post-publish-panel__footer {\n  padding: 16px; }\n\n.components-button.editor-post-publish-panel__toggle.is-primary {\n  display: inline-flex;\n  align-items: center; }\n  .components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon {\n    display: none; }\n  .components-button.editor-post-publish-panel__toggle.is-primary .dashicon {\n    margin-left: -4px; }\n\n.editor-post-publish-panel__link {\n  font-weight: 400;\n  padding-right: 4px; }\n\n.editor-post-publish-panel__prepublish {\n  padding: 16px; }\n  .editor-post-publish-panel__prepublish strong {\n    color: #1e1e1e; }\n  .editor-post-publish-panel__prepublish .components-panel__body {\n    background: #fff;\n    margin-right: -16px;\n    margin-left: -16px; }\n  .editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend {\n    display: none; }\n\n.post-publish-panel__postpublish .components-panel__body {\n  border-bottom: 1px solid #f0f0f0;\n  border-top: none; }\n\n.post-publish-panel__postpublish-buttons {\n  display: flex;\n  align-content: space-between;\n  flex-wrap: wrap;\n  margin: -5px; }\n  .post-publish-panel__postpublish-buttons > * {\n    flex-grow: 1;\n    margin: 5px; }\n  .post-publish-panel__postpublish-buttons .components-button {\n    height: auto;\n    justify-content: center;\n    padding: 3px 10px 4px;\n    line-height: 1.6;\n    text-align: center;\n    white-space: normal; }\n  .post-publish-panel__postpublish-buttons .components-clipboard-button {\n    width: 100%; }\n\n.post-publish-panel__postpublish-post-address {\n  margin-bottom: 16px; }\n  .post-publish-panel__postpublish-post-address input[readonly] {\n    padding: 10px;\n    background: #ddd;\n    overflow: hidden;\n    text-overflow: ellipsis; }\n\n.post-publish-panel__postpublish-header {\n  font-weight: 500; }\n\n.post-publish-panel__postpublish-subheader {\n  margin: 0 0 8px; }\n\n.post-publish-panel__tip {\n  color: #f0b849; }\n\n.editor-post-saved-state {\n  display: flex;\n  align-items: center;\n  width: 28px;\n  padding: 12px 4px;\n  color: #757575;\n  overflow: hidden;\n  white-space: nowrap; }\n  .editor-post-saved-state svg {\n    display: inline-block;\n    flex: 0 0 auto;\n    fill: currentColor;\n    margin-left: 8px; }\n  @media (min-width: 600px) {\n    .editor-post-saved-state {\n      width: auto;\n      padding: 8px 12px;\n      text-indent: inherit; }\n      .editor-post-saved-state svg {\n        margin-left: 4px; } }\n\n.editor-post-taxonomies__hierarchical-terms-list {\n  max-height: 14em;\n  overflow: auto;\n  padding-right: 2px; }\n\n.editor-post-taxonomies__hierarchical-terms-choice {\n  margin-bottom: 8px; }\n\n.editor-post-taxonomies__hierarchical-terms-subchoices {\n  margin-top: 8px;\n  margin-right: 16px; }\n\n.components-button.editor-post-taxonomies__hierarchical-terms-submit,\n.components-button.editor-post-taxonomies__hierarchical-terms-add {\n  margin-top: 12px; }\n\n.editor-post-taxonomies__hierarchical-terms-label {\n  display: inline-block;\n  margin-top: 12px; }\n\n.editor-post-taxonomies__hierarchical-terms-input {\n  margin-top: 8px;\n  width: 100%; }\n\n.editor-post-taxonomies__hierarchical-terms-filter {\n  margin-bottom: 8px;\n  width: 100%; }\n\n.edit-post-text-editor__body textarea.editor-post-text-editor {\n  border: 1px solid #ccc;\n  display: block;\n  margin: 0;\n  width: 100%;\n  box-shadow: none;\n  resize: none;\n  overflow: hidden;\n  font-family: Menlo, Consolas, monaco, monospace;\n  line-height: 2.4;\n  border-radius: 0;\n  min-height: 200px;\n  padding: 16px;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px !important; }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__body textarea.editor-post-text-editor {\n      padding: 24px; } }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__body textarea.editor-post-text-editor {\n      font-size: 15px !important; } }\n  .edit-post-text-editor__body textarea.editor-post-text-editor:focus {\n    border: 1px solid #1e1e1e;\n    box-shadow: none;\n    position: relative; }\n\n.edit-post-post-visibility__dialog,\n.editor-post-visibility__dialog-fieldset {\n  padding: 4px;\n  padding-top: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-legend,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-legend {\n    font-weight: 600;\n    margin-bottom: 1em;\n    margin-top: 0.5em;\n    padding: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    border: 1px solid #1e1e1e;\n    margin-left: 12px;\n    transition: none;\n    border-radius: 50%;\n    margin-top: 2px; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before {\n      width: 7px;\n      height: 7px;\n      margin: 8px 8px 0 0;\n      background-color: #fff;\n      border: 3px solid #fff; }\n      @media (min-width: 782px) {\n        .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before,\n        .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before {\n          width: 6px;\n          height: 6px;\n          margin: 4px 4px 0 0; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:focus {\n      box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n      box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked {\n      background: #007cba;\n      background: var(--wp-admin-theme-color);\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color); }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-label,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-label {\n    font-weight: 600; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-info,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-info {\n    margin-top: 0;\n    margin-right: 28px; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__choice:last-child .editor-post-visibility__dialog-info,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__dialog-info {\n    margin-bottom: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    margin-right: 28px; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n\n.editor-post-title {\n  position: relative; }\n  .editor-post-title .editor-post-title__input {\n    display: block;\n    width: 100%;\n    margin: 0;\n    box-shadow: none;\n    background: transparent;\n    transition: border 0.1s ease-out, box-shadow 0.1s linear;\n    padding: 19px 0;\n    word-break: keep-all;\n    font-family: inherit;\n    color: inherit;\n    border: 1px solid transparent;\n    border-right-width: 0;\n    border-left-width: 0;\n    border-radius: 0;\n    outline: 1px solid transparent;\n    font-size: 2.44em;\n    font-weight: bold;\n    line-height: 1.4; }\n    @media (prefers-reduced-motion: reduce) {\n      .editor-post-title .editor-post-title__input {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .editor-post-title .editor-post-title__input {\n        border-width: 1px; } }\n    .editor-post-title .editor-post-title__input::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input::-moz-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input:focus {\n      border: 1px solid transparent;\n      outline: 1px solid transparent;\n      box-shadow: none; }\n  .editor-post-title.is-focus-mode .editor-post-title__input {\n    opacity: 0.5;\n    transition: opacity 0.1s linear; }\n    @media (prefers-reduced-motion: reduce) {\n      .editor-post-title.is-focus-mode .editor-post-title__input {\n        transition-duration: 0s; } }\n    .editor-post-title.is-focus-mode .editor-post-title__input:focus {\n      opacity: 1; }\n\n.editor-post-trash.components-button {\n  margin-right: -6px; }\n\n.table-of-contents__popover.components-popover .components-popover__content {\n  min-width: 380px; }\n\n.components-popover.table-of-contents__popover {\n  z-index: 99998; }\n\n.table-of-contents__popover .components-popover__content > div {\n  padding: 16px; }\n\n@media (min-width: 600px) {\n  .table-of-contents__popover .components-popover__content {\n    max-height: calc(100vh - 120px);\n    overflow-y: auto; } }\n\n.table-of-contents__popover hr {\n  margin: 10px -16px 0; }\n\n.table-of-contents__wrapper:focus::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  right: 0;\n  box-shadow: inset 0 0 0 1.5px #007cba;\n  box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n.table-of-contents__counts {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0; }\n\n.table-of-contents__count {\n  flex-basis: 25%;\n  display: flex;\n  flex-direction: column;\n  font-size: 13px;\n  color: #6c7781;\n  padding-left: 8px;\n  margin-bottom: 0; }\n  .table-of-contents__count:last-child {\n    padding-left: 0; }\n\n.table-of-contents__number,\n.table-of-contents__popover .word-count {\n  font-size: 21px;\n  font-weight: 400;\n  line-height: 30px;\n  color: #555d66; }\n\n.table-of-contents__title {\n  display: block;\n  margin-top: 20px;\n  font-size: 15px;\n  font-weight: 600; }\n\n.editor-template-validation-notice {\n  display: flex;\n  justify-content: space-between;\n  align-items: center; }\n  .editor-template-validation-notice .components-button {\n    margin-right: 5px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-editor/style.css",
    "content": "@charset \"UTF-8\";\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.editor-autocompleters__user .editor-autocompleters__no-avatar::before {\n  /* stylelint-disable */\n  font: normal 20px/1 dashicons;\n  /* stylelint-enable */\n  content: \"\\f110\";\n  margin-right: 5px;\n  vertical-align: middle; }\n\n.editor-autocompleters__user .editor-autocompleters__user-avatar {\n  margin-right: 8px;\n  flex-grow: 0;\n  flex-shrink: 0;\n  max-width: none;\n  width: 24px;\n  height: 24px; }\n\n.editor-autocompleters__user .editor-autocompleters__user-name {\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  max-width: 200px;\n  flex-shrink: 0;\n  flex-grow: 1; }\n\n.editor-autocompleters__user .editor-autocompleters__user-slug {\n  margin-left: 8px;\n  color: #8f98a1;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: none;\n  max-width: 100px;\n  flex-grow: 0;\n  flex-shrink: 0; }\n\n.editor-autocompleters__user:hover .editor-autocompleters__user-slug {\n  color: #007cba;\n  color: var(--wp-admin-theme-color); }\n\n.document-outline {\n  margin: 20px 0; }\n  .document-outline ul {\n    margin: 0;\n    padding: 0; }\n\n.document-outline__item {\n  display: flex;\n  margin: 4px 0; }\n  .document-outline__item a {\n    text-decoration: none; }\n  .document-outline__item .document-outline__emdash::before {\n    color: #ddd;\n    margin-right: 4px; }\n  .document-outline__item.is-h2 .document-outline__emdash::before {\n    content: \"—\"; }\n  .document-outline__item.is-h3 .document-outline__emdash::before {\n    content: \"——\"; }\n  .document-outline__item.is-h4 .document-outline__emdash::before {\n    content: \"———\"; }\n  .document-outline__item.is-h5 .document-outline__emdash::before {\n    content: \"————\"; }\n  .document-outline__item.is-h6 .document-outline__emdash::before {\n    content: \"—————\"; }\n\n.document-outline__button {\n  cursor: pointer;\n  background: none;\n  border: none;\n  display: flex;\n  align-items: flex-start;\n  margin: 0 0 0 -1px;\n  padding: 2px 5px 2px 1px;\n  color: #1e1e1e;\n  text-align: left;\n  border-radius: 2px; }\n  .document-outline__button:disabled {\n    cursor: default; }\n  .document-outline__button:focus {\n    box-shadow: 0 0 0 1.5px #007cba;\n    box-shadow: 0 0 0 1.5px var(--wp-admin-theme-color);\n    outline: 2px solid transparent; }\n\n.document-outline__level {\n  background: #ddd;\n  color: #1e1e1e;\n  border-radius: 3px;\n  font-size: 13px;\n  padding: 1px 6px;\n  margin-right: 4px; }\n  .is-invalid .document-outline__level {\n    background: #f0b849; }\n\n.document-outline__item-content {\n  padding: 1px 0; }\n\n.components-editor-notices__dismissible {\n  position: -webkit-sticky;\n  position: sticky;\n  top: 0;\n  right: 0;\n  color: #1e1e1e; }\n\n.components-editor-notices__pinned {\n  position: relative;\n  left: 0;\n  top: 0;\n  right: 0;\n  color: #1e1e1e; }\n\n.components-editor-notices__dismissible .components-notice,\n.components-editor-notices__pinned .components-notice {\n  box-sizing: border-box;\n  margin: 0;\n  border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n  padding: 0 12px;\n  min-height: 60px; }\n  .components-editor-notices__dismissible .components-notice .components-notice__dismiss,\n  .components-editor-notices__pinned .components-notice .components-notice__dismiss {\n    margin-top: 12px; }\n\n.components-editor-notices__snackbar {\n  width: 100%; }\n  @media (min-width: 782px) {\n    .components-editor-notices__snackbar {\n      width: fit-content;\n      width: -moz-fit-content; } }\n\n.entities-saved-states__panel {\n  box-sizing: border-box;\n  background: #fff;\n  position: fixed;\n  z-index: 100001;\n  top: 46px;\n  bottom: 0;\n  right: 0;\n  left: 0;\n  overflow: auto;\n  box-sizing: border-box; }\n  .entities-saved-states__panel *,\n  .entities-saved-states__panel *::before,\n  .entities-saved-states__panel *::after {\n    box-sizing: inherit; }\n  .entities-saved-states__panel .entities-saved-states__find-entity {\n    display: none; }\n  .entities-saved-states__panel .entities-saved-states__find-entity-small {\n    display: block; }\n  @media (min-width: 782px) {\n    .entities-saved-states__panel {\n      z-index: 99998;\n      top: 32px;\n      left: auto;\n      width: 280px;\n      border-left: 1px solid #ddd; }\n      body.is-fullscreen-mode .entities-saved-states__panel {\n        top: 0; }\n      .entities-saved-states__panel .entities-saved-states__find-entity {\n        display: block; }\n      .entities-saved-states__panel .entities-saved-states__find-entity-small {\n        display: none; } }\n  .entities-saved-states__panel .entities-saved-states__panel-header {\n    background: #fff;\n    padding-left: 8px;\n    padding-right: 8px;\n    height: 61px;\n    border-bottom: 1px solid #ddd;\n    display: flex;\n    align-items: center;\n    align-content: space-between; }\n    .entities-saved-states__panel .entities-saved-states__panel-header .editor-entities-saved-states__save-button {\n      margin: auto; }\n    .entities-saved-states__panel .entities-saved-states__panel-header .components-button.has-icon {\n      position: absolute;\n      right: 8px; }\n  .entities-saved-states__panel .entities-saved-states__text-prompt {\n    border-bottom: 1px solid #ddd;\n    padding: 16px;\n    padding-bottom: 4px; }\n\n.editor-error-boundary {\n  margin: auto;\n  max-width: 780px;\n  padding: 20px;\n  margin-top: 60px;\n  box-shadow: 0 3px 30px rgba(0, 0, 0, 0.2); }\n\n.editor-page-attributes__template {\n  margin-bottom: 10px; }\n  .editor-page-attributes__template label,\n  .editor-page-attributes__template select {\n    width: 100%; }\n\n.editor-page-attributes__order {\n  width: 100%; }\n  .editor-page-attributes__order .components-base-control__field {\n    display: flex;\n    justify-content: space-between;\n    align-items: center; }\n  .editor-page-attributes__order input {\n    width: 66px; }\n\n.editor-post-excerpt__textarea {\n  width: 100%;\n  margin-bottom: 10px; }\n\n.editor-post-featured-image {\n  padding: 0; }\n  .editor-post-featured-image__container {\n    margin-bottom: 1em;\n    position: relative; }\n  .editor-post-featured-image .components-spinner {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    margin-top: -9px;\n    margin-left: -9px; }\n  .editor-post-featured-image .components-button + .components-button {\n    display: block;\n    margin-top: 1em; }\n  .editor-post-featured-image .components-responsive-wrapper__content {\n    max-width: 100%;\n    width: auto; }\n\n.editor-post-featured-image__toggle,\n.editor-post-featured-image__preview {\n  display: block;\n  width: 100%;\n  padding: 0;\n  transition: all 0.1s ease-out;\n  box-shadow: 0 0 0 0 #007cba;\n  box-shadow: 0 0 0 0 var(--wp-admin-theme-color); }\n  @media (prefers-reduced-motion: reduce) {\n    .editor-post-featured-image__toggle,\n    .editor-post-featured-image__preview {\n      transition-duration: 0s; } }\n\n.editor-post-featured-image__preview {\n  height: auto; }\n\n.editor-post-featured-image__preview:not(:disabled):not([aria-disabled=\"true\"]):focus {\n  box-shadow: 0 0 0 4px #007cba;\n  box-shadow: 0 0 0 4px var(--wp-admin-theme-color); }\n\n.editor-post-featured-image__toggle {\n  border-radius: 2px;\n  background-color: #f0f0f0;\n  min-height: 90px;\n  line-height: 20px;\n  padding: 8px 0;\n  text-align: center; }\n  .editor-post-featured-image__toggle:hover {\n    background: #ddd;\n    color: #1e1e1e; }\n\n.editor-post-format {\n  flex-direction: column;\n  align-items: stretch;\n  width: 100%; }\n\n.editor-post-format__content {\n  display: inline-flex;\n  justify-content: space-between;\n  align-items: center;\n  width: 100%; }\n\n.editor-post-format__suggestion {\n  text-align: right;\n  font-size: 13px; }\n\n.editor-post-last-revision__title {\n  width: 100%;\n  font-weight: 600; }\n  .editor-post-last-revision__title .dashicon {\n    margin-right: 5px; }\n\n.components-button.editor-post-last-revision__title {\n  height: 100%; }\n  .components-button.editor-post-last-revision__title:hover, .components-button.editor-post-last-revision__title:active {\n    background: #f0f0f0; }\n  .components-button.editor-post-last-revision__title:focus {\n    box-shadow: inset 0 0 0 1.5px #007cba;\n    box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color);\n    border-radius: 0; }\n\n.editor-post-locked-modal {\n  height: auto;\n  padding-right: 10px;\n  padding-left: 10px;\n  padding-top: 10px;\n  max-width: 480px; }\n  .editor-post-locked-modal .components-modal__header {\n    height: 36px; }\n  .editor-post-locked-modal .components-modal__content {\n    height: auto; }\n\n.editor-post-locked-modal__buttons {\n  margin-top: 10px; }\n  .editor-post-locked-modal__buttons .components-button {\n    margin-right: 5px; }\n\n.editor-post-locked-modal__avatar {\n  float: left;\n  margin: 5px;\n  margin-right: 15px; }\n\n.editor-post-publish-button__button.has-changes-dot::before {\n  background: currentcolor;\n  border-radius: 4px;\n  content: \"\";\n  height: 8px;\n  margin: auto 5px auto -3px;\n  width: 8px; }\n\n.editor-post-publish-panel {\n  background: #fff; }\n\n.editor-post-publish-panel__content {\n  min-height: calc(100% - 144px); }\n  .editor-post-publish-panel__content .components-spinner {\n    display: block;\n    margin: 100px auto 0; }\n\n.editor-post-publish-panel__header {\n  background: #fff;\n  padding-left: 16px;\n  padding-right: 16px;\n  height: 61px;\n  border-bottom: 1px solid #ddd;\n  display: flex;\n  align-items: center;\n  align-content: space-between; }\n  .editor-post-publish-panel__header .components-button {\n    width: 100%;\n    justify-content: center; }\n  .editor-post-publish-panel__header .has-icon {\n    margin-left: auto;\n    width: auto; }\n\n.editor-post-publish-panel__header-publish-button,\n.editor-post-publish-panel__header-cancel-button {\n  flex-grow: 1; }\n  @media (min-width: 480px) {\n    .editor-post-publish-panel__header-publish-button,\n    .editor-post-publish-panel__header-cancel-button {\n      max-width: 160px; } }\n\n.editor-post-publish-panel__header-publish-button {\n  padding-right: 4px; }\n\n.editor-post-publish-panel__header-cancel-button {\n  padding-left: 4px; }\n\n.editor-post-publish-panel__header-published {\n  flex-grow: 1; }\n\n.editor-post-publish-panel__footer {\n  padding: 16px; }\n\n.components-button.editor-post-publish-panel__toggle.is-primary {\n  display: inline-flex;\n  align-items: center; }\n  .components-button.editor-post-publish-panel__toggle.is-primary.is-busy .dashicon {\n    display: none; }\n  .components-button.editor-post-publish-panel__toggle.is-primary .dashicon {\n    margin-right: -4px; }\n\n.editor-post-publish-panel__link {\n  font-weight: 400;\n  padding-left: 4px; }\n\n.editor-post-publish-panel__prepublish {\n  padding: 16px; }\n  .editor-post-publish-panel__prepublish strong {\n    color: #1e1e1e; }\n  .editor-post-publish-panel__prepublish .components-panel__body {\n    background: #fff;\n    margin-left: -16px;\n    margin-right: -16px; }\n  .editor-post-publish-panel__prepublish .editor-post-visibility__dialog-legend {\n    display: none; }\n\n.post-publish-panel__postpublish .components-panel__body {\n  border-bottom: 1px solid #f0f0f0;\n  border-top: none; }\n\n.post-publish-panel__postpublish-buttons {\n  display: flex;\n  align-content: space-between;\n  flex-wrap: wrap;\n  margin: -5px; }\n  .post-publish-panel__postpublish-buttons > * {\n    flex-grow: 1;\n    margin: 5px; }\n  .post-publish-panel__postpublish-buttons .components-button {\n    height: auto;\n    justify-content: center;\n    padding: 3px 10px 4px;\n    line-height: 1.6;\n    text-align: center;\n    white-space: normal; }\n  .post-publish-panel__postpublish-buttons .components-clipboard-button {\n    width: 100%; }\n\n.post-publish-panel__postpublish-post-address {\n  margin-bottom: 16px; }\n  .post-publish-panel__postpublish-post-address input[readonly] {\n    padding: 10px;\n    background: #ddd;\n    overflow: hidden;\n    text-overflow: ellipsis; }\n\n.post-publish-panel__postpublish-header {\n  font-weight: 500; }\n\n.post-publish-panel__postpublish-subheader {\n  margin: 0 0 8px; }\n\n.post-publish-panel__tip {\n  color: #f0b849; }\n\n.editor-post-saved-state {\n  display: flex;\n  align-items: center;\n  width: 28px;\n  padding: 12px 4px;\n  color: #757575;\n  overflow: hidden;\n  white-space: nowrap; }\n  .editor-post-saved-state svg {\n    display: inline-block;\n    flex: 0 0 auto;\n    fill: currentColor;\n    margin-right: 8px; }\n  @media (min-width: 600px) {\n    .editor-post-saved-state {\n      width: auto;\n      padding: 8px 12px;\n      text-indent: inherit; }\n      .editor-post-saved-state svg {\n        margin-right: 4px; } }\n\n.editor-post-taxonomies__hierarchical-terms-list {\n  max-height: 14em;\n  overflow: auto;\n  padding-left: 2px; }\n\n.editor-post-taxonomies__hierarchical-terms-choice {\n  margin-bottom: 8px; }\n\n.editor-post-taxonomies__hierarchical-terms-subchoices {\n  margin-top: 8px;\n  margin-left: 16px; }\n\n.components-button.editor-post-taxonomies__hierarchical-terms-submit,\n.components-button.editor-post-taxonomies__hierarchical-terms-add {\n  margin-top: 12px; }\n\n.editor-post-taxonomies__hierarchical-terms-label {\n  display: inline-block;\n  margin-top: 12px; }\n\n.editor-post-taxonomies__hierarchical-terms-input {\n  margin-top: 8px;\n  width: 100%; }\n\n.editor-post-taxonomies__hierarchical-terms-filter {\n  margin-bottom: 8px;\n  width: 100%; }\n\n.edit-post-text-editor__body textarea.editor-post-text-editor {\n  border: 1px solid #ccc;\n  display: block;\n  margin: 0;\n  width: 100%;\n  box-shadow: none;\n  resize: none;\n  overflow: hidden;\n  font-family: Menlo, Consolas, monaco, monospace;\n  line-height: 2.4;\n  border-radius: 0;\n  min-height: 200px;\n  padding: 16px;\n  /* Fonts smaller than 16px causes mobile safari to zoom. */\n  font-size: 16px !important; }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__body textarea.editor-post-text-editor {\n      padding: 24px; } }\n  @media (min-width: 600px) {\n    .edit-post-text-editor__body textarea.editor-post-text-editor {\n      font-size: 15px !important; } }\n  .edit-post-text-editor__body textarea.editor-post-text-editor:focus {\n    border: 1px solid #1e1e1e;\n    box-shadow: none;\n    position: relative; }\n\n.edit-post-post-visibility__dialog,\n.editor-post-visibility__dialog-fieldset {\n  padding: 4px;\n  padding-top: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-legend,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-legend {\n    font-weight: 600;\n    margin-bottom: 1em;\n    margin-top: 0.5em;\n    padding: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    border: 1px solid #1e1e1e;\n    margin-right: 12px;\n    transition: none;\n    border-radius: 50%;\n    margin-top: 2px; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"] {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before {\n      width: 7px;\n      height: 7px;\n      margin: 8px 0 0 8px;\n      background-color: #fff;\n      border: 3px solid #fff; }\n      @media (min-width: 782px) {\n        .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before,\n        .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked::before {\n          width: 6px;\n          height: 6px;\n          margin: 4px 0 0 4px; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:focus {\n      box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #007cba;\n      box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-radio[type=\"radio\"]:checked,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-radio[type=\"radio\"]:checked {\n      background: #007cba;\n      background: var(--wp-admin-theme-color);\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color); }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-label,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-label {\n    font-weight: 600; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-info,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-info {\n    margin-top: 0;\n    margin-left: 28px; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__choice:last-child .editor-post-visibility__dialog-info,\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__choice:last-child .editor-post-visibility__dialog-info {\n    margin-bottom: 0; }\n  .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n  .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n    font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n    padding: 6px 8px;\n    box-shadow: 0 0 0 transparent;\n    transition: box-shadow 0.1s linear;\n    border-radius: 2px;\n    border: 1px solid #757575;\n    /* Fonts smaller than 16px causes mobile safari to zoom. */\n    font-size: 16px;\n    /* Override core line-height. To be reviewed. */\n    line-height: normal;\n    margin-left: 28px; }\n    @media (prefers-reduced-motion: reduce) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"],\n      .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"] {\n        font-size: 13px;\n        /* Override core line-height. To be reviewed. */\n        line-height: normal; } }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:focus,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:focus {\n      border-color: #007cba;\n      border-color: var(--wp-admin-theme-color);\n      box-shadow: 0 0 0 0.5px #007cba;\n      box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n      outline: 2px solid transparent; }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(30, 30, 30, 0.62); }\n    .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder,\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.62); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-webkit-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]::-moz-placeholder {\n      opacity: 1;\n      color: rgba(255, 255, 255, 0.65); }\n    .is-dark-theme .edit-post-post-visibility__dialog .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder, .is-dark-theme\n    .editor-post-visibility__dialog-fieldset .editor-post-visibility__dialog-password-input[type=\"text\"]:-ms-input-placeholder {\n      color: rgba(255, 255, 255, 0.65); }\n\n.editor-post-title {\n  position: relative; }\n  .editor-post-title .editor-post-title__input {\n    display: block;\n    width: 100%;\n    margin: 0;\n    box-shadow: none;\n    background: transparent;\n    transition: border 0.1s ease-out, box-shadow 0.1s linear;\n    padding: 19px 0;\n    word-break: keep-all;\n    font-family: inherit;\n    color: inherit;\n    border: 1px solid transparent;\n    border-left-width: 0;\n    border-right-width: 0;\n    border-radius: 0;\n    outline: 1px solid transparent;\n    font-size: 2.44em;\n    font-weight: bold;\n    line-height: 1.4; }\n    @media (prefers-reduced-motion: reduce) {\n      .editor-post-title .editor-post-title__input {\n        transition-duration: 0s; } }\n    @media (min-width: 600px) {\n      .editor-post-title .editor-post-title__input {\n        border-width: 1px; } }\n    .editor-post-title .editor-post-title__input::-webkit-input-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input::-moz-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input:-ms-input-placeholder {\n      color: rgba(30, 30, 30, 0.55); }\n    .editor-post-title .editor-post-title__input:focus {\n      border: 1px solid transparent;\n      outline: 1px solid transparent;\n      box-shadow: none; }\n  .editor-post-title.is-focus-mode .editor-post-title__input {\n    opacity: 0.5;\n    transition: opacity 0.1s linear; }\n    @media (prefers-reduced-motion: reduce) {\n      .editor-post-title.is-focus-mode .editor-post-title__input {\n        transition-duration: 0s; } }\n    .editor-post-title.is-focus-mode .editor-post-title__input:focus {\n      opacity: 1; }\n\n.editor-post-trash.components-button {\n  margin-left: -6px; }\n\n.table-of-contents__popover.components-popover .components-popover__content {\n  min-width: 380px; }\n\n.components-popover.table-of-contents__popover {\n  z-index: 99998; }\n\n.table-of-contents__popover .components-popover__content > div {\n  padding: 16px; }\n\n@media (min-width: 600px) {\n  .table-of-contents__popover .components-popover__content {\n    max-height: calc(100vh - 120px);\n    overflow-y: auto; } }\n\n.table-of-contents__popover hr {\n  margin: 10px -16px 0; }\n\n.table-of-contents__wrapper:focus::before {\n  content: \"\";\n  display: block;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  box-shadow: inset 0 0 0 1.5px #007cba;\n  box-shadow: inset 0 0 0 1.5px var(--wp-admin-theme-color); }\n\n.table-of-contents__counts {\n  display: flex;\n  flex-wrap: wrap;\n  margin: 0; }\n\n.table-of-contents__count {\n  flex-basis: 25%;\n  display: flex;\n  flex-direction: column;\n  font-size: 13px;\n  color: #6c7781;\n  padding-right: 8px;\n  margin-bottom: 0; }\n  .table-of-contents__count:last-child {\n    padding-right: 0; }\n\n.table-of-contents__number,\n.table-of-contents__popover .word-count {\n  font-size: 21px;\n  font-weight: 400;\n  line-height: 30px;\n  color: #555d66; }\n\n.table-of-contents__title {\n  display: block;\n  margin-top: 20px;\n  font-size: 15px;\n  font-weight: 600; }\n\n.editor-template-validation-notice {\n  display: flex;\n  justify-content: space-between;\n  align-items: center; }\n  .editor-template-validation-notice .components-button {\n    margin-left: 5px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-format-library/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.block-editor-format-toolbar__image-container-content {\n  display: flex; }\n  .block-editor-format-toolbar__image-container-content .components-button {\n    align-self: flex-end;\n    height: 30px;\n    margin-bottom: 8px;\n    margin-left: 8px;\n    padding: 0 6px; }\n\n.block-editor-format-toolbar__image-container-value {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__label {\n    display: block; }\n\n.block-editor-format-toolbar__link-container-content {\n  display: flex; }\n\n.block-editor-format-toolbar__link-container-value {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-format-toolbar__link-container-value.has-invalid-link {\n    color: #d94f4f; }\n\n.components-inline-color__indicator {\n  position: absolute;\n  background: #000;\n  height: 3px;\n  width: 20px;\n  bottom: 6px;\n  right: auto;\n  left: auto;\n  margin: 0 5px; }\n\n.components-inline-color-popover .components-popover__content > div {\n  padding: 20px 18px; }\n\n.components-inline-color-popover .components-popover__content .components-color-palette {\n  margin-top: 0.6rem; }\n\n.components-inline-color-popover .components-popover__content .components-base-control__title {\n  display: block;\n  margin-bottom: 16px;\n  font-weight: 600;\n  color: #191e23; }\n\n.components-inline-color-popover .components-popover__content .component-color-indicator {\n  vertical-align: text-bottom; }\n\n.format-library-text-color-button {\n  position: relative; }\n\n.format-library-text-color-button__indicator {\n  height: 4px;\n  width: 20px;\n  position: absolute;\n  bottom: 10px;\n  right: 8px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-format-library/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.block-editor-format-toolbar__image-container-content {\n  display: flex; }\n  .block-editor-format-toolbar__image-container-content .components-button {\n    align-self: flex-end;\n    height: 30px;\n    margin-bottom: 8px;\n    margin-right: 8px;\n    padding: 0 6px; }\n\n.block-editor-format-toolbar__image-container-value {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field {\n    margin-bottom: 0; }\n  .block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__label {\n    display: block; }\n\n.block-editor-format-toolbar__link-container-content {\n  display: flex; }\n\n.block-editor-format-toolbar__link-container-value {\n  margin: 7px;\n  flex-grow: 1;\n  flex-shrink: 1;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n  min-width: 150px;\n  max-width: 500px; }\n  .block-editor-format-toolbar__link-container-value.has-invalid-link {\n    color: #d94f4f; }\n\n.components-inline-color__indicator {\n  position: absolute;\n  background: #000;\n  height: 3px;\n  width: 20px;\n  bottom: 6px;\n  left: auto;\n  right: auto;\n  margin: 0 5px; }\n\n.components-inline-color-popover .components-popover__content > div {\n  padding: 20px 18px; }\n\n.components-inline-color-popover .components-popover__content .components-color-palette {\n  margin-top: 0.6rem; }\n\n.components-inline-color-popover .components-popover__content .components-base-control__title {\n  display: block;\n  margin-bottom: 16px;\n  font-weight: 600;\n  color: #191e23; }\n\n.components-inline-color-popover .components-popover__content .component-color-indicator {\n  vertical-align: text-bottom; }\n\n.format-library-text-color-button {\n  position: relative; }\n\n.format-library-text-color-button__indicator {\n  height: 4px;\n  width: 20px;\n  position: absolute;\n  bottom: 10px;\n  left: 8px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-list-reusable-blocks/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.list-reusable-blocks-import-dropdown__content .components-popover__content > div {\n  padding: 10px; }\n\n.list-reusable-blocks-import-form__label {\n  display: block;\n  margin-bottom: 10px; }\n\n.list-reusable-blocks-import-form__button {\n  margin-top: 20px;\n  float: left; }\n\n.list-reusable-blocks-import-form .components-notice__content {\n  margin: 0; }\n\n.list-reusable-blocks__container {\n  display: inline-flex;\n  align-items: center;\n  position: relative;\n  top: -3px; }\n  .list-reusable-blocks__container .components-button {\n    height: 26px; }\n\nbody.admin-color-light {\n  --wp-admin-theme-color: #0085ba;\n  --wp-admin-theme-color-darker-10: #0073a1;\n  --wp-admin-theme-color-darker-20: #006187; }\n\nbody.admin-color-modern {\n  --wp-admin-theme-color: #3858e9;\n  --wp-admin-theme-color-darker-10: #2145e6;\n  --wp-admin-theme-color-darker-20: #183ad6; }\n\nbody.admin-color-blue {\n  --wp-admin-theme-color: #096484;\n  --wp-admin-theme-color-darker-10: #07526c;\n  --wp-admin-theme-color-darker-20: #064054; }\n\nbody.admin-color-coffee {\n  --wp-admin-theme-color: #46403c;\n  --wp-admin-theme-color-darker-10: #383330;\n  --wp-admin-theme-color-darker-20: #2b2724; }\n\nbody.admin-color-ectoplasm {\n  --wp-admin-theme-color: #523f6d;\n  --wp-admin-theme-color-darker-10: #46365d;\n  --wp-admin-theme-color-darker-20: #3a2c4d; }\n\nbody.admin-color-midnight {\n  --wp-admin-theme-color: #e14d43;\n  --wp-admin-theme-color-darker-10: #dd382d;\n  --wp-admin-theme-color-darker-20: #d02c21; }\n\nbody.admin-color-ocean {\n  --wp-admin-theme-color: #627c83;\n  --wp-admin-theme-color-darker-10: #576e74;\n  --wp-admin-theme-color-darker-20: #4c6066; }\n\nbody.admin-color-sunrise {\n  --wp-admin-theme-color: #dd823b;\n  --wp-admin-theme-color-darker-10: #d97426;\n  --wp-admin-theme-color-darker-20: #c36922; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-list-reusable-blocks/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.list-reusable-blocks-import-dropdown__content .components-popover__content > div {\n  padding: 10px; }\n\n.list-reusable-blocks-import-form__label {\n  display: block;\n  margin-bottom: 10px; }\n\n.list-reusable-blocks-import-form__button {\n  margin-top: 20px;\n  float: right; }\n\n.list-reusable-blocks-import-form .components-notice__content {\n  margin: 0; }\n\n.list-reusable-blocks__container {\n  display: inline-flex;\n  align-items: center;\n  position: relative;\n  top: -3px; }\n  .list-reusable-blocks__container .components-button {\n    height: 26px; }\n\nbody.admin-color-light {\n  --wp-admin-theme-color: #0085ba;\n  --wp-admin-theme-color-darker-10: #0073a1;\n  --wp-admin-theme-color-darker-20: #006187; }\n\nbody.admin-color-modern {\n  --wp-admin-theme-color: #3858e9;\n  --wp-admin-theme-color-darker-10: #2145e6;\n  --wp-admin-theme-color-darker-20: #183ad6; }\n\nbody.admin-color-blue {\n  --wp-admin-theme-color: #096484;\n  --wp-admin-theme-color-darker-10: #07526c;\n  --wp-admin-theme-color-darker-20: #064054; }\n\nbody.admin-color-coffee {\n  --wp-admin-theme-color: #46403c;\n  --wp-admin-theme-color-darker-10: #383330;\n  --wp-admin-theme-color-darker-20: #2b2724; }\n\nbody.admin-color-ectoplasm {\n  --wp-admin-theme-color: #523f6d;\n  --wp-admin-theme-color-darker-10: #46365d;\n  --wp-admin-theme-color-darker-20: #3a2c4d; }\n\nbody.admin-color-midnight {\n  --wp-admin-theme-color: #e14d43;\n  --wp-admin-theme-color-darker-10: #dd382d;\n  --wp-admin-theme-color-darker-20: #d02c21; }\n\nbody.admin-color-ocean {\n  --wp-admin-theme-color: #627c83;\n  --wp-admin-theme-color-darker-10: #576e74;\n  --wp-admin-theme-color-darker-20: #4c6066; }\n\nbody.admin-color-sunrise {\n  --wp-admin-theme-color: #dd823b;\n  --wp-admin-theme-color-darker-10: #d97426;\n  --wp-admin-theme-color-darker-20: #c36922; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-nux/style-rtl.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.nux-dot-tip::before, .nux-dot-tip::after {\n  border-radius: 100%;\n  content: \" \";\n  pointer-events: none;\n  position: absolute; }\n\n.nux-dot-tip::before {\n  animation: nux-pulse 1.6s infinite cubic-bezier(0.17, 0.67, 0.92, 0.62);\n  background: rgba(0, 115, 156, 0.9);\n  opacity: 0.9;\n  height: 24px;\n  right: -12px;\n  top: -12px;\n  transform: scale(0.33333);\n  width: 24px; }\n\n.nux-dot-tip::after {\n  background: #00739c;\n  height: 8px;\n  right: -4px;\n  top: -4px;\n  width: 8px; }\n\n@keyframes nux-pulse {\n  100% {\n    background: rgba(0, 115, 156, 0);\n    transform: scale(1); } }\n\n.nux-dot-tip .components-popover__content {\n  width: 350px; }\n  .nux-dot-tip .components-popover__content > div {\n    padding: 20px 18px; }\n  @media (min-width: 600px) {\n    .nux-dot-tip .components-popover__content {\n      width: 450px; } }\n  .nux-dot-tip .components-popover__content .nux-dot-tip__disable {\n    position: absolute;\n    left: 0;\n    top: 0; }\n\n.nux-dot-tip[data-y-axis=\"top\"] {\n  margin-top: -4px; }\n\n.nux-dot-tip[data-y-axis=\"bottom\"] {\n  margin-top: 4px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"left\"] {\n  margin-right: -4px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"right\"] {\n  margin-right: 4px; }\n\n.nux-dot-tip[data-y-axis=\"top\"] .components-popover__content {\n  margin-bottom: 20px; }\n\n.nux-dot-tip[data-y-axis=\"bottom\"] .components-popover__content {\n  margin-top: 20px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"left\"] .components-popover__content {\n  margin-left: 20px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"right\"] .components-popover__content {\n  margin-right: 20px; }\n\n.nux-dot-tip[data-y-axis=\"left\"], .nux-dot-tip[data-y-axis=\"center\"], .nux-dot-tip[data-y-axis=\"right\"] {\n  z-index: 1000001; }\n  @media (max-width: 600px) {\n    .nux-dot-tip[data-y-axis=\"left\"] .components-popover__content, .nux-dot-tip[data-y-axis=\"center\"] .components-popover__content, .nux-dot-tip[data-y-axis=\"right\"] .components-popover__content {\n      -ms-grid-row-align: end;\n          align-self: end;\n      right: 5px;\n      margin: 20px 0 0 0;\n      max-width: none !important;\n      position: fixed;\n      left: 5px;\n      width: auto; } }\n\n.nux-dot-tip.components-popover:not([data-y-axis=\"middle\"])[data-y-axis=\"right\"] .components-popover__content {\n  margin-left: 0; }\n\n.nux-dot-tip.components-popover:not([data-y-axis=\"middle\"])[data-y-axis=\"left\"] .components-popover__content {\n  margin-right: 0; }\n\n.nux-dot-tip.components-popover.edit-post-more-menu__content:not([data-y-axis=\"middle\"])[data-y-axis=\"right\"] .components-popover__content {\n  margin-left: -12px; }\n\n.nux-dot-tip.components-popover.edit-post-more-menu__content:not([data-y-axis=\"middle\"])[data-y-axis=\"left\"] .components-popover__content {\n  margin-right: -12px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/styles/wp-nux/style.css",
    "content": "/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * Colors\n */\n/**\n * Deprecated colors.\n * Please avoid using these.\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Dimensions.\n */\n/**\n * Shadows.\n */\n/**\n * Editor widths.\n */\n/**\n * Block UI.\n */\n/**\n * Border radii.\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n  --wp-admin-theme-color: #007cba;\n  --wp-admin-theme-color-darker-10: #006ba1;\n  --wp-admin-theme-color-darker-20: #005a87; }\n\n.nux-dot-tip::before, .nux-dot-tip::after {\n  border-radius: 100%;\n  content: \" \";\n  pointer-events: none;\n  position: absolute; }\n\n.nux-dot-tip::before {\n  animation: nux-pulse 1.6s infinite cubic-bezier(0.17, 0.67, 0.92, 0.62);\n  background: rgba(0, 115, 156, 0.9);\n  opacity: 0.9;\n  height: 24px;\n  left: -12px;\n  top: -12px;\n  transform: scale(0.33333);\n  width: 24px; }\n\n.nux-dot-tip::after {\n  background: #00739c;\n  height: 8px;\n  left: -4px;\n  top: -4px;\n  width: 8px; }\n\n@keyframes nux-pulse {\n  100% {\n    background: rgba(0, 115, 156, 0);\n    transform: scale(1); } }\n\n.nux-dot-tip .components-popover__content {\n  width: 350px; }\n  .nux-dot-tip .components-popover__content > div {\n    padding: 20px 18px; }\n  @media (min-width: 600px) {\n    .nux-dot-tip .components-popover__content {\n      width: 450px; } }\n  .nux-dot-tip .components-popover__content .nux-dot-tip__disable {\n    position: absolute;\n    right: 0;\n    top: 0; }\n\n.nux-dot-tip[data-y-axis=\"top\"] {\n  margin-top: -4px; }\n\n.nux-dot-tip[data-y-axis=\"bottom\"] {\n  margin-top: 4px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"left\"] {\n  margin-left: -4px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"right\"] {\n  margin-left: 4px; }\n\n.nux-dot-tip[data-y-axis=\"top\"] .components-popover__content {\n  margin-bottom: 20px; }\n\n.nux-dot-tip[data-y-axis=\"bottom\"] .components-popover__content {\n  margin-top: 20px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"left\"] .components-popover__content {\n  margin-right: 20px; }\n\n.nux-dot-tip[data-y-axis=\"middle\"][data-y-axis=\"right\"] .components-popover__content {\n  margin-left: 20px; }\n\n.nux-dot-tip[data-y-axis=\"left\"], .nux-dot-tip[data-y-axis=\"center\"], .nux-dot-tip[data-y-axis=\"right\"] {\n  z-index: 1000001; }\n  @media (max-width: 600px) {\n    .nux-dot-tip[data-y-axis=\"left\"] .components-popover__content, .nux-dot-tip[data-y-axis=\"center\"] .components-popover__content, .nux-dot-tip[data-y-axis=\"right\"] .components-popover__content {\n      -ms-grid-row-align: end;\n          align-self: end;\n      left: 5px;\n      margin: 20px 0 0 0;\n      max-width: none !important;\n      position: fixed;\n      right: 5px;\n      width: auto; } }\n\n.nux-dot-tip.components-popover:not([data-y-axis=\"middle\"])[data-y-axis=\"right\"] .components-popover__content {\n  /*!rtl:ignore*/\n  margin-left: 0; }\n\n.nux-dot-tip.components-popover:not([data-y-axis=\"middle\"])[data-y-axis=\"left\"] .components-popover__content {\n  /*!rtl:ignore*/\n  margin-right: 0; }\n\n.nux-dot-tip.components-popover.edit-post-more-menu__content:not([data-y-axis=\"middle\"])[data-y-axis=\"right\"] .components-popover__content {\n  /*!rtl:ignore*/\n  margin-left: -12px; }\n\n.nux-dot-tip.components-popover.edit-post-more-menu__content:not([data-y-axis=\"middle\"])[data-y-axis=\"left\"] .components-popover__content {\n  /*!rtl:ignore*/\n  margin-right: -12px; }\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/lodash.js",
    "content": "/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n  /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n  var undefined;\n\n  /** Used as the semantic version number. */\n  var VERSION = '4.17.19';\n\n  /** Used as the size to enable large array optimizations. */\n  var LARGE_ARRAY_SIZE = 200;\n\n  /** Error message constants. */\n  var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n      FUNC_ERROR_TEXT = 'Expected a function';\n\n  /** Used to stand-in for `undefined` hash values. */\n  var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n  /** Used as the maximum memoize cache size. */\n  var MAX_MEMOIZE_SIZE = 500;\n\n  /** Used as the internal argument placeholder. */\n  var PLACEHOLDER = '__lodash_placeholder__';\n\n  /** Used to compose bitmasks for cloning. */\n  var CLONE_DEEP_FLAG = 1,\n      CLONE_FLAT_FLAG = 2,\n      CLONE_SYMBOLS_FLAG = 4;\n\n  /** Used to compose bitmasks for value comparisons. */\n  var COMPARE_PARTIAL_FLAG = 1,\n      COMPARE_UNORDERED_FLAG = 2;\n\n  /** Used to compose bitmasks for function metadata. */\n  var WRAP_BIND_FLAG = 1,\n      WRAP_BIND_KEY_FLAG = 2,\n      WRAP_CURRY_BOUND_FLAG = 4,\n      WRAP_CURRY_FLAG = 8,\n      WRAP_CURRY_RIGHT_FLAG = 16,\n      WRAP_PARTIAL_FLAG = 32,\n      WRAP_PARTIAL_RIGHT_FLAG = 64,\n      WRAP_ARY_FLAG = 128,\n      WRAP_REARG_FLAG = 256,\n      WRAP_FLIP_FLAG = 512;\n\n  /** Used as default options for `_.truncate`. */\n  var DEFAULT_TRUNC_LENGTH = 30,\n      DEFAULT_TRUNC_OMISSION = '...';\n\n  /** Used to detect hot functions by number of calls within a span of milliseconds. */\n  var HOT_COUNT = 800,\n      HOT_SPAN = 16;\n\n  /** Used to indicate the type of lazy iteratees. */\n  var LAZY_FILTER_FLAG = 1,\n      LAZY_MAP_FLAG = 2,\n      LAZY_WHILE_FLAG = 3;\n\n  /** Used as references for various `Number` constants. */\n  var INFINITY = 1 / 0,\n      MAX_SAFE_INTEGER = 9007199254740991,\n      MAX_INTEGER = 1.7976931348623157e+308,\n      NAN = 0 / 0;\n\n  /** Used as references for the maximum length and index of an array. */\n  var MAX_ARRAY_LENGTH = 4294967295,\n      MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n      HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n  /** Used to associate wrap methods with their bit flags. */\n  var wrapFlags = [\n    ['ary', WRAP_ARY_FLAG],\n    ['bind', WRAP_BIND_FLAG],\n    ['bindKey', WRAP_BIND_KEY_FLAG],\n    ['curry', WRAP_CURRY_FLAG],\n    ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n    ['flip', WRAP_FLIP_FLAG],\n    ['partial', WRAP_PARTIAL_FLAG],\n    ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n    ['rearg', WRAP_REARG_FLAG]\n  ];\n\n  /** `Object#toString` result references. */\n  var argsTag = '[object Arguments]',\n      arrayTag = '[object Array]',\n      asyncTag = '[object AsyncFunction]',\n      boolTag = '[object Boolean]',\n      dateTag = '[object Date]',\n      domExcTag = '[object DOMException]',\n      errorTag = '[object Error]',\n      funcTag = '[object Function]',\n      genTag = '[object GeneratorFunction]',\n      mapTag = '[object Map]',\n      numberTag = '[object Number]',\n      nullTag = '[object Null]',\n      objectTag = '[object Object]',\n      promiseTag = '[object Promise]',\n      proxyTag = '[object Proxy]',\n      regexpTag = '[object RegExp]',\n      setTag = '[object Set]',\n      stringTag = '[object String]',\n      symbolTag = '[object Symbol]',\n      undefinedTag = '[object Undefined]',\n      weakMapTag = '[object WeakMap]',\n      weakSetTag = '[object WeakSet]';\n\n  var arrayBufferTag = '[object ArrayBuffer]',\n      dataViewTag = '[object DataView]',\n      float32Tag = '[object Float32Array]',\n      float64Tag = '[object Float64Array]',\n      int8Tag = '[object Int8Array]',\n      int16Tag = '[object Int16Array]',\n      int32Tag = '[object Int32Array]',\n      uint8Tag = '[object Uint8Array]',\n      uint8ClampedTag = '[object Uint8ClampedArray]',\n      uint16Tag = '[object Uint16Array]',\n      uint32Tag = '[object Uint32Array]';\n\n  /** Used to match empty string literals in compiled template source. */\n  var reEmptyStringLeading = /\\b__p \\+= '';/g,\n      reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n      reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n  /** Used to match HTML entities and HTML characters. */\n  var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n      reUnescapedHtml = /[&<>\"']/g,\n      reHasEscapedHtml = RegExp(reEscapedHtml.source),\n      reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n  /** Used to match template delimiters. */\n  var reEscape = /<%-([\\s\\S]+?)%>/g,\n      reEvaluate = /<%([\\s\\S]+?)%>/g,\n      reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n  /** Used to match property names within property paths. */\n  var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n      reIsPlainProp = /^\\w*$/,\n      rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n  /**\n   * Used to match `RegExp`\n   * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n   */\n  var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n      reHasRegExpChar = RegExp(reRegExpChar.source);\n\n  /** Used to match leading and trailing whitespace. */\n  var reTrim = /^\\s+|\\s+$/g,\n      reTrimStart = /^\\s+/,\n      reTrimEnd = /\\s+$/;\n\n  /** Used to match wrap detail comments. */\n  var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n      reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n      reSplitDetails = /,? & /;\n\n  /** Used to match words composed of alphanumeric characters. */\n  var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n  /** Used to match backslashes in property paths. */\n  var reEscapeChar = /\\\\(\\\\)?/g;\n\n  /**\n   * Used to match\n   * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n   */\n  var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n  /** Used to match `RegExp` flags from their coerced string values. */\n  var reFlags = /\\w*$/;\n\n  /** Used to detect bad signed hexadecimal string values. */\n  var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n  /** Used to detect binary string values. */\n  var reIsBinary = /^0b[01]+$/i;\n\n  /** Used to detect host constructors (Safari). */\n  var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n  /** Used to detect octal string values. */\n  var reIsOctal = /^0o[0-7]+$/i;\n\n  /** Used to detect unsigned integer values. */\n  var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n  /** Used to match Latin Unicode letters (excluding mathematical operators). */\n  var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n  /** Used to ensure capturing order of template delimiters. */\n  var reNoMatch = /($^)/;\n\n  /** Used to match unescaped characters in compiled string literals. */\n  var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n  /** Used to compose unicode character classes. */\n  var rsAstralRange = '\\\\ud800-\\\\udfff',\n      rsComboMarksRange = '\\\\u0300-\\\\u036f',\n      reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n      rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n      rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n      rsDingbatRange = '\\\\u2700-\\\\u27bf',\n      rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n      rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n      rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n      rsPunctuationRange = '\\\\u2000-\\\\u206f',\n      rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n      rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n      rsVarRange = '\\\\ufe0e\\\\ufe0f',\n      rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n  /** Used to compose unicode capture groups. */\n  var rsApos = \"['\\u2019]\",\n      rsAstral = '[' + rsAstralRange + ']',\n      rsBreak = '[' + rsBreakRange + ']',\n      rsCombo = '[' + rsComboRange + ']',\n      rsDigits = '\\\\d+',\n      rsDingbat = '[' + rsDingbatRange + ']',\n      rsLower = '[' + rsLowerRange + ']',\n      rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n      rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n      rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n      rsNonAstral = '[^' + rsAstralRange + ']',\n      rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n      rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n      rsUpper = '[' + rsUpperRange + ']',\n      rsZWJ = '\\\\u200d';\n\n  /** Used to compose unicode regexes. */\n  var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n      rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n      rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n      rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n      reOptMod = rsModifier + '?',\n      rsOptVar = '[' + rsVarRange + ']?',\n      rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n      rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n      rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n      rsSeq = rsOptVar + reOptMod + rsOptJoin,\n      rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n      rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n  /** Used to match apostrophes. */\n  var reApos = RegExp(rsApos, 'g');\n\n  /**\n   * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n   * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n   */\n  var reComboMark = RegExp(rsCombo, 'g');\n\n  /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n  var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n  /** Used to match complex or compound words. */\n  var reUnicodeWord = RegExp([\n    rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n    rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n    rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n    rsUpper + '+' + rsOptContrUpper,\n    rsOrdUpper,\n    rsOrdLower,\n    rsDigits,\n    rsEmoji\n  ].join('|'), 'g');\n\n  /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n  var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n  /** Used to detect strings that need a more robust regexp to match words. */\n  var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n  /** Used to assign default `context` object properties. */\n  var contextProps = [\n    'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n    'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n    'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n    'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n    '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n  ];\n\n  /** Used to make template sourceURLs easier to identify. */\n  var templateCounter = -1;\n\n  /** Used to identify `toStringTag` values of typed arrays. */\n  var typedArrayTags = {};\n  typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n  typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n  typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n  typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n  typedArrayTags[uint32Tag] = true;\n  typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n  typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n  typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n  typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n  typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n  typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n  typedArrayTags[setTag] = typedArrayTags[stringTag] =\n  typedArrayTags[weakMapTag] = false;\n\n  /** Used to identify `toStringTag` values supported by `_.clone`. */\n  var cloneableTags = {};\n  cloneableTags[argsTag] = cloneableTags[arrayTag] =\n  cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n  cloneableTags[boolTag] = cloneableTags[dateTag] =\n  cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n  cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n  cloneableTags[int32Tag] = cloneableTags[mapTag] =\n  cloneableTags[numberTag] = cloneableTags[objectTag] =\n  cloneableTags[regexpTag] = cloneableTags[setTag] =\n  cloneableTags[stringTag] = cloneableTags[symbolTag] =\n  cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n  cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n  cloneableTags[errorTag] = cloneableTags[funcTag] =\n  cloneableTags[weakMapTag] = false;\n\n  /** Used to map Latin Unicode letters to basic Latin letters. */\n  var deburredLetters = {\n    // Latin-1 Supplement block.\n    '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n    '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n    '\\xc7': 'C',  '\\xe7': 'c',\n    '\\xd0': 'D',  '\\xf0': 'd',\n    '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n    '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n    '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n    '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n    '\\xd1': 'N',  '\\xf1': 'n',\n    '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n    '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n    '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n    '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n    '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n    '\\xc6': 'Ae', '\\xe6': 'ae',\n    '\\xde': 'Th', '\\xfe': 'th',\n    '\\xdf': 'ss',\n    // Latin Extended-A block.\n    '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n    '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n    '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n    '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n    '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n    '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n    '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n    '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n    '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n    '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n    '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n    '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n    '\\u0134': 'J',  '\\u0135': 'j',\n    '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n    '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n    '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n    '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n    '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n    '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n    '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n    '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n    '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n    '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n    '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n    '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n    '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n    '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n    '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n    '\\u0174': 'W',  '\\u0175': 'w',\n    '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n    '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n    '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n    '\\u0132': 'IJ', '\\u0133': 'ij',\n    '\\u0152': 'Oe', '\\u0153': 'oe',\n    '\\u0149': \"'n\", '\\u017f': 's'\n  };\n\n  /** Used to map characters to HTML entities. */\n  var htmlEscapes = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;'\n  };\n\n  /** Used to map HTML entities to characters. */\n  var htmlUnescapes = {\n    '&amp;': '&',\n    '&lt;': '<',\n    '&gt;': '>',\n    '&quot;': '\"',\n    '&#39;': \"'\"\n  };\n\n  /** Used to escape characters for inclusion in compiled string literals. */\n  var stringEscapes = {\n    '\\\\': '\\\\',\n    \"'\": \"'\",\n    '\\n': 'n',\n    '\\r': 'r',\n    '\\u2028': 'u2028',\n    '\\u2029': 'u2029'\n  };\n\n  /** Built-in method references without a dependency on `root`. */\n  var freeParseFloat = parseFloat,\n      freeParseInt = parseInt;\n\n  /** Detect free variable `global` from Node.js. */\n  var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n  /** Detect free variable `self`. */\n  var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n  /** Used as a reference to the global object. */\n  var root = freeGlobal || freeSelf || Function('return this')();\n\n  /** Detect free variable `exports`. */\n  var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n  /** Detect free variable `module`. */\n  var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n  /** Detect the popular CommonJS extension `module.exports`. */\n  var moduleExports = freeModule && freeModule.exports === freeExports;\n\n  /** Detect free variable `process` from Node.js. */\n  var freeProcess = moduleExports && freeGlobal.process;\n\n  /** Used to access faster Node.js helpers. */\n  var nodeUtil = (function() {\n    try {\n      // Use `util.types` for Node.js 10+.\n      var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n      if (types) {\n        return types;\n      }\n\n      // Legacy `process.binding('util')` for Node.js < 10.\n      return freeProcess && freeProcess.binding && freeProcess.binding('util');\n    } catch (e) {}\n  }());\n\n  /* Node.js helper references. */\n  var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n      nodeIsDate = nodeUtil && nodeUtil.isDate,\n      nodeIsMap = nodeUtil && nodeUtil.isMap,\n      nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n      nodeIsSet = nodeUtil && nodeUtil.isSet,\n      nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * A faster alternative to `Function#apply`, this function invokes `func`\n   * with the `this` binding of `thisArg` and the arguments of `args`.\n   *\n   * @private\n   * @param {Function} func The function to invoke.\n   * @param {*} thisArg The `this` binding of `func`.\n   * @param {Array} args The arguments to invoke `func` with.\n   * @returns {*} Returns the result of `func`.\n   */\n  function apply(func, thisArg, args) {\n    switch (args.length) {\n      case 0: return func.call(thisArg);\n      case 1: return func.call(thisArg, args[0]);\n      case 2: return func.call(thisArg, args[0], args[1]);\n      case 3: return func.call(thisArg, args[0], args[1], args[2]);\n    }\n    return func.apply(thisArg, args);\n  }\n\n  /**\n   * A specialized version of `baseAggregator` for arrays.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} setter The function to set `accumulator` values.\n   * @param {Function} iteratee The iteratee to transform keys.\n   * @param {Object} accumulator The initial aggregated object.\n   * @returns {Function} Returns `accumulator`.\n   */\n  function arrayAggregator(array, setter, iteratee, accumulator) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      var value = array[index];\n      setter(accumulator, value, iteratee(value), array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.forEach` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayEach(array, iteratee) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (iteratee(array[index], index, array) === false) {\n        break;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.forEachRight` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayEachRight(array, iteratee) {\n    var length = array == null ? 0 : array.length;\n\n    while (length--) {\n      if (iteratee(array[length], length, array) === false) {\n        break;\n      }\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.every` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {boolean} Returns `true` if all elements pass the predicate check,\n   *  else `false`.\n   */\n  function arrayEvery(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (!predicate(array[index], index, array)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  /**\n   * A specialized version of `_.filter` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {Array} Returns the new filtered array.\n   */\n  function arrayFilter(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length,\n        resIndex = 0,\n        result = [];\n\n    while (++index < length) {\n      var value = array[index];\n      if (predicate(value, index, array)) {\n        result[resIndex++] = value;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * A specialized version of `_.includes` for arrays without support for\n   * specifying an index to search from.\n   *\n   * @private\n   * @param {Array} [array] The array to inspect.\n   * @param {*} target The value to search for.\n   * @returns {boolean} Returns `true` if `target` is found, else `false`.\n   */\n  function arrayIncludes(array, value) {\n    var length = array == null ? 0 : array.length;\n    return !!length && baseIndexOf(array, value, 0) > -1;\n  }\n\n  /**\n   * This function is like `arrayIncludes` except that it accepts a comparator.\n   *\n   * @private\n   * @param {Array} [array] The array to inspect.\n   * @param {*} target The value to search for.\n   * @param {Function} comparator The comparator invoked per element.\n   * @returns {boolean} Returns `true` if `target` is found, else `false`.\n   */\n  function arrayIncludesWith(array, value, comparator) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (comparator(value, array[index])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * A specialized version of `_.map` for arrays without support for iteratee\n   * shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns the new mapped array.\n   */\n  function arrayMap(array, iteratee) {\n    var index = -1,\n        length = array == null ? 0 : array.length,\n        result = Array(length);\n\n    while (++index < length) {\n      result[index] = iteratee(array[index], index, array);\n    }\n    return result;\n  }\n\n  /**\n   * Appends the elements of `values` to `array`.\n   *\n   * @private\n   * @param {Array} array The array to modify.\n   * @param {Array} values The values to append.\n   * @returns {Array} Returns `array`.\n   */\n  function arrayPush(array, values) {\n    var index = -1,\n        length = values.length,\n        offset = array.length;\n\n    while (++index < length) {\n      array[offset + index] = values[index];\n    }\n    return array;\n  }\n\n  /**\n   * A specialized version of `_.reduce` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} [accumulator] The initial value.\n   * @param {boolean} [initAccum] Specify using the first element of `array` as\n   *  the initial value.\n   * @returns {*} Returns the accumulated value.\n   */\n  function arrayReduce(array, iteratee, accumulator, initAccum) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    if (initAccum && length) {\n      accumulator = array[++index];\n    }\n    while (++index < length) {\n      accumulator = iteratee(accumulator, array[index], index, array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.reduceRight` for arrays without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} [accumulator] The initial value.\n   * @param {boolean} [initAccum] Specify using the last element of `array` as\n   *  the initial value.\n   * @returns {*} Returns the accumulated value.\n   */\n  function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n    var length = array == null ? 0 : array.length;\n    if (initAccum && length) {\n      accumulator = array[--length];\n    }\n    while (length--) {\n      accumulator = iteratee(accumulator, array[length], length, array);\n    }\n    return accumulator;\n  }\n\n  /**\n   * A specialized version of `_.some` for arrays without support for iteratee\n   * shorthands.\n   *\n   * @private\n   * @param {Array} [array] The array to iterate over.\n   * @param {Function} predicate The function invoked per iteration.\n   * @returns {boolean} Returns `true` if any element passes the predicate check,\n   *  else `false`.\n   */\n  function arraySome(array, predicate) {\n    var index = -1,\n        length = array == null ? 0 : array.length;\n\n    while (++index < length) {\n      if (predicate(array[index], index, array)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Gets the size of an ASCII `string`.\n   *\n   * @private\n   * @param {string} string The string inspect.\n   * @returns {number} Returns the string size.\n   */\n  var asciiSize = baseProperty('length');\n\n  /**\n   * Converts an ASCII `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function asciiToArray(string) {\n    return string.split('');\n  }\n\n  /**\n   * Splits an ASCII `string` into an array of its words.\n   *\n   * @private\n   * @param {string} The string to inspect.\n   * @returns {Array} Returns the words of `string`.\n   */\n  function asciiWords(string) {\n    return string.match(reAsciiWord) || [];\n  }\n\n  /**\n   * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n   * without support for iteratee shorthands, which iterates over `collection`\n   * using `eachFunc`.\n   *\n   * @private\n   * @param {Array|Object} collection The collection to inspect.\n   * @param {Function} predicate The function invoked per iteration.\n   * @param {Function} eachFunc The function to iterate over `collection`.\n   * @returns {*} Returns the found element or its key, else `undefined`.\n   */\n  function baseFindKey(collection, predicate, eachFunc) {\n    var result;\n    eachFunc(collection, function(value, key, collection) {\n      if (predicate(value, key, collection)) {\n        result = key;\n        return false;\n      }\n    });\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.findIndex` and `_.findLastIndex` without\n   * support for iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {Function} predicate The function invoked per iteration.\n   * @param {number} fromIndex The index to search from.\n   * @param {boolean} [fromRight] Specify iterating from right to left.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseFindIndex(array, predicate, fromIndex, fromRight) {\n    var length = array.length,\n        index = fromIndex + (fromRight ? 1 : -1);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (predicate(array[index], index, array)) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseIndexOf(array, value, fromIndex) {\n    return value === value\n      ? strictIndexOf(array, value, fromIndex)\n      : baseFindIndex(array, baseIsNaN, fromIndex);\n  }\n\n  /**\n   * This function is like `baseIndexOf` except that it accepts a comparator.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @param {Function} comparator The comparator invoked per element.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function baseIndexOfWith(array, value, fromIndex, comparator) {\n    var index = fromIndex - 1,\n        length = array.length;\n\n    while (++index < length) {\n      if (comparator(array[index], value)) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * The base implementation of `_.isNaN` without support for number objects.\n   *\n   * @private\n   * @param {*} value The value to check.\n   * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n   */\n  function baseIsNaN(value) {\n    return value !== value;\n  }\n\n  /**\n   * The base implementation of `_.mean` and `_.meanBy` without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {number} Returns the mean.\n   */\n  function baseMean(array, iteratee) {\n    var length = array == null ? 0 : array.length;\n    return length ? (baseSum(array, iteratee) / length) : NAN;\n  }\n\n  /**\n   * The base implementation of `_.property` without support for deep paths.\n   *\n   * @private\n   * @param {string} key The key of the property to get.\n   * @returns {Function} Returns the new accessor function.\n   */\n  function baseProperty(key) {\n    return function(object) {\n      return object == null ? undefined : object[key];\n    };\n  }\n\n  /**\n   * The base implementation of `_.propertyOf` without support for deep paths.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @returns {Function} Returns the new accessor function.\n   */\n  function basePropertyOf(object) {\n    return function(key) {\n      return object == null ? undefined : object[key];\n    };\n  }\n\n  /**\n   * The base implementation of `_.reduce` and `_.reduceRight`, without support\n   * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n   *\n   * @private\n   * @param {Array|Object} collection The collection to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @param {*} accumulator The initial value.\n   * @param {boolean} initAccum Specify using the first or last element of\n   *  `collection` as the initial value.\n   * @param {Function} eachFunc The function to iterate over `collection`.\n   * @returns {*} Returns the accumulated value.\n   */\n  function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n    eachFunc(collection, function(value, index, collection) {\n      accumulator = initAccum\n        ? (initAccum = false, value)\n        : iteratee(accumulator, value, index, collection);\n    });\n    return accumulator;\n  }\n\n  /**\n   * The base implementation of `_.sortBy` which uses `comparer` to define the\n   * sort order of `array` and replaces criteria objects with their corresponding\n   * values.\n   *\n   * @private\n   * @param {Array} array The array to sort.\n   * @param {Function} comparer The function to define sort order.\n   * @returns {Array} Returns `array`.\n   */\n  function baseSortBy(array, comparer) {\n    var length = array.length;\n\n    array.sort(comparer);\n    while (length--) {\n      array[length] = array[length].value;\n    }\n    return array;\n  }\n\n  /**\n   * The base implementation of `_.sum` and `_.sumBy` without support for\n   * iteratee shorthands.\n   *\n   * @private\n   * @param {Array} array The array to iterate over.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {number} Returns the sum.\n   */\n  function baseSum(array, iteratee) {\n    var result,\n        index = -1,\n        length = array.length;\n\n    while (++index < length) {\n      var current = iteratee(array[index]);\n      if (current !== undefined) {\n        result = result === undefined ? current : (result + current);\n      }\n    }\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.times` without support for iteratee shorthands\n   * or max array length checks.\n   *\n   * @private\n   * @param {number} n The number of times to invoke `iteratee`.\n   * @param {Function} iteratee The function invoked per iteration.\n   * @returns {Array} Returns the array of results.\n   */\n  function baseTimes(n, iteratee) {\n    var index = -1,\n        result = Array(n);\n\n    while (++index < n) {\n      result[index] = iteratee(index);\n    }\n    return result;\n  }\n\n  /**\n   * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n   * of key-value pairs for `object` corresponding to the property names of `props`.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @param {Array} props The property names to get values for.\n   * @returns {Object} Returns the key-value pairs.\n   */\n  function baseToPairs(object, props) {\n    return arrayMap(props, function(key) {\n      return [key, object[key]];\n    });\n  }\n\n  /**\n   * The base implementation of `_.unary` without support for storing metadata.\n   *\n   * @private\n   * @param {Function} func The function to cap arguments for.\n   * @returns {Function} Returns the new capped function.\n   */\n  function baseUnary(func) {\n    return function(value) {\n      return func(value);\n    };\n  }\n\n  /**\n   * The base implementation of `_.values` and `_.valuesIn` which creates an\n   * array of `object` property values corresponding to the property names\n   * of `props`.\n   *\n   * @private\n   * @param {Object} object The object to query.\n   * @param {Array} props The property names to get values for.\n   * @returns {Object} Returns the array of property values.\n   */\n  function baseValues(object, props) {\n    return arrayMap(props, function(key) {\n      return object[key];\n    });\n  }\n\n  /**\n   * Checks if a `cache` value for `key` exists.\n   *\n   * @private\n   * @param {Object} cache The cache to query.\n   * @param {string} key The key of the entry to check.\n   * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n   */\n  function cacheHas(cache, key) {\n    return cache.has(key);\n  }\n\n  /**\n   * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n   * that is not found in the character symbols.\n   *\n   * @private\n   * @param {Array} strSymbols The string symbols to inspect.\n   * @param {Array} chrSymbols The character symbols to find.\n   * @returns {number} Returns the index of the first unmatched string symbol.\n   */\n  function charsStartIndex(strSymbols, chrSymbols) {\n    var index = -1,\n        length = strSymbols.length;\n\n    while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n    return index;\n  }\n\n  /**\n   * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n   * that is not found in the character symbols.\n   *\n   * @private\n   * @param {Array} strSymbols The string symbols to inspect.\n   * @param {Array} chrSymbols The character symbols to find.\n   * @returns {number} Returns the index of the last unmatched string symbol.\n   */\n  function charsEndIndex(strSymbols, chrSymbols) {\n    var index = strSymbols.length;\n\n    while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n    return index;\n  }\n\n  /**\n   * Gets the number of `placeholder` occurrences in `array`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} placeholder The placeholder to search for.\n   * @returns {number} Returns the placeholder count.\n   */\n  function countHolders(array, placeholder) {\n    var length = array.length,\n        result = 0;\n\n    while (length--) {\n      if (array[length] === placeholder) {\n        ++result;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n   * letters to basic Latin letters.\n   *\n   * @private\n   * @param {string} letter The matched letter to deburr.\n   * @returns {string} Returns the deburred letter.\n   */\n  var deburrLetter = basePropertyOf(deburredLetters);\n\n  /**\n   * Used by `_.escape` to convert characters to HTML entities.\n   *\n   * @private\n   * @param {string} chr The matched character to escape.\n   * @returns {string} Returns the escaped character.\n   */\n  var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n  /**\n   * Used by `_.template` to escape characters for inclusion in compiled string literals.\n   *\n   * @private\n   * @param {string} chr The matched character to escape.\n   * @returns {string} Returns the escaped character.\n   */\n  function escapeStringChar(chr) {\n    return '\\\\' + stringEscapes[chr];\n  }\n\n  /**\n   * Gets the value at `key` of `object`.\n   *\n   * @private\n   * @param {Object} [object] The object to query.\n   * @param {string} key The key of the property to get.\n   * @returns {*} Returns the property value.\n   */\n  function getValue(object, key) {\n    return object == null ? undefined : object[key];\n  }\n\n  /**\n   * Checks if `string` contains Unicode symbols.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n   */\n  function hasUnicode(string) {\n    return reHasUnicode.test(string);\n  }\n\n  /**\n   * Checks if `string` contains a word composed of Unicode symbols.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {boolean} Returns `true` if a word is found, else `false`.\n   */\n  function hasUnicodeWord(string) {\n    return reHasUnicodeWord.test(string);\n  }\n\n  /**\n   * Converts `iterator` to an array.\n   *\n   * @private\n   * @param {Object} iterator The iterator to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function iteratorToArray(iterator) {\n    var data,\n        result = [];\n\n    while (!(data = iterator.next()).done) {\n      result.push(data.value);\n    }\n    return result;\n  }\n\n  /**\n   * Converts `map` to its key-value pairs.\n   *\n   * @private\n   * @param {Object} map The map to convert.\n   * @returns {Array} Returns the key-value pairs.\n   */\n  function mapToArray(map) {\n    var index = -1,\n        result = Array(map.size);\n\n    map.forEach(function(value, key) {\n      result[++index] = [key, value];\n    });\n    return result;\n  }\n\n  /**\n   * Creates a unary function that invokes `func` with its argument transformed.\n   *\n   * @private\n   * @param {Function} func The function to wrap.\n   * @param {Function} transform The argument transform.\n   * @returns {Function} Returns the new function.\n   */\n  function overArg(func, transform) {\n    return function(arg) {\n      return func(transform(arg));\n    };\n  }\n\n  /**\n   * Replaces all `placeholder` elements in `array` with an internal placeholder\n   * and returns an array of their indexes.\n   *\n   * @private\n   * @param {Array} array The array to modify.\n   * @param {*} placeholder The placeholder to replace.\n   * @returns {Array} Returns the new array of placeholder indexes.\n   */\n  function replaceHolders(array, placeholder) {\n    var index = -1,\n        length = array.length,\n        resIndex = 0,\n        result = [];\n\n    while (++index < length) {\n      var value = array[index];\n      if (value === placeholder || value === PLACEHOLDER) {\n        array[index] = PLACEHOLDER;\n        result[resIndex++] = index;\n      }\n    }\n    return result;\n  }\n\n  /**\n   * Converts `set` to an array of its values.\n   *\n   * @private\n   * @param {Object} set The set to convert.\n   * @returns {Array} Returns the values.\n   */\n  function setToArray(set) {\n    var index = -1,\n        result = Array(set.size);\n\n    set.forEach(function(value) {\n      result[++index] = value;\n    });\n    return result;\n  }\n\n  /**\n   * Converts `set` to its value-value pairs.\n   *\n   * @private\n   * @param {Object} set The set to convert.\n   * @returns {Array} Returns the value-value pairs.\n   */\n  function setToPairs(set) {\n    var index = -1,\n        result = Array(set.size);\n\n    set.forEach(function(value) {\n      result[++index] = [value, value];\n    });\n    return result;\n  }\n\n  /**\n   * A specialized version of `_.indexOf` which performs strict equality\n   * comparisons of values, i.e. `===`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function strictIndexOf(array, value, fromIndex) {\n    var index = fromIndex - 1,\n        length = array.length;\n\n    while (++index < length) {\n      if (array[index] === value) {\n        return index;\n      }\n    }\n    return -1;\n  }\n\n  /**\n   * A specialized version of `_.lastIndexOf` which performs strict equality\n   * comparisons of values, i.e. `===`.\n   *\n   * @private\n   * @param {Array} array The array to inspect.\n   * @param {*} value The value to search for.\n   * @param {number} fromIndex The index to search from.\n   * @returns {number} Returns the index of the matched value, else `-1`.\n   */\n  function strictLastIndexOf(array, value, fromIndex) {\n    var index = fromIndex + 1;\n    while (index--) {\n      if (array[index] === value) {\n        return index;\n      }\n    }\n    return index;\n  }\n\n  /**\n   * Gets the number of symbols in `string`.\n   *\n   * @private\n   * @param {string} string The string to inspect.\n   * @returns {number} Returns the string size.\n   */\n  function stringSize(string) {\n    return hasUnicode(string)\n      ? unicodeSize(string)\n      : asciiSize(string);\n  }\n\n  /**\n   * Converts `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function stringToArray(string) {\n    return hasUnicode(string)\n      ? unicodeToArray(string)\n      : asciiToArray(string);\n  }\n\n  /**\n   * Used by `_.unescape` to convert HTML entities to characters.\n   *\n   * @private\n   * @param {string} chr The matched character to unescape.\n   * @returns {string} Returns the unescaped character.\n   */\n  var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n  /**\n   * Gets the size of a Unicode `string`.\n   *\n   * @private\n   * @param {string} string The string inspect.\n   * @returns {number} Returns the string size.\n   */\n  function unicodeSize(string) {\n    var result = reUnicode.lastIndex = 0;\n    while (reUnicode.test(string)) {\n      ++result;\n    }\n    return result;\n  }\n\n  /**\n   * Converts a Unicode `string` to an array.\n   *\n   * @private\n   * @param {string} string The string to convert.\n   * @returns {Array} Returns the converted array.\n   */\n  function unicodeToArray(string) {\n    return string.match(reUnicode) || [];\n  }\n\n  /**\n   * Splits a Unicode `string` into an array of its words.\n   *\n   * @private\n   * @param {string} The string to inspect.\n   * @returns {Array} Returns the words of `string`.\n   */\n  function unicodeWords(string) {\n    return string.match(reUnicodeWord) || [];\n  }\n\n  /*--------------------------------------------------------------------------*/\n\n  /**\n   * Create a new pristine `lodash` function using the `context` object.\n   *\n   * @static\n   * @memberOf _\n   * @since 1.1.0\n   * @category Util\n   * @param {Object} [context=root] The context object.\n   * @returns {Function} Returns a new `lodash` function.\n   * @example\n   *\n   * _.mixin({ 'foo': _.constant('foo') });\n   *\n   * var lodash = _.runInContext();\n   * lodash.mixin({ 'bar': lodash.constant('bar') });\n   *\n   * _.isFunction(_.foo);\n   * // => true\n   * _.isFunction(_.bar);\n   * // => false\n   *\n   * lodash.isFunction(lodash.foo);\n   * // => false\n   * lodash.isFunction(lodash.bar);\n   * // => true\n   *\n   * // Create a suped-up `defer` in Node.js.\n   * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n   */\n  var runInContext = (function runInContext(context) {\n    context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n    /** Built-in constructor references. */\n    var Array = context.Array,\n        Date = context.Date,\n        Error = context.Error,\n        Function = context.Function,\n        Math = context.Math,\n        Object = context.Object,\n        RegExp = context.RegExp,\n        String = context.String,\n        TypeError = context.TypeError;\n\n    /** Used for built-in method references. */\n    var arrayProto = Array.prototype,\n        funcProto = Function.prototype,\n        objectProto = Object.prototype;\n\n    /** Used to detect overreaching core-js shims. */\n    var coreJsData = context['__core-js_shared__'];\n\n    /** Used to resolve the decompiled source of functions. */\n    var funcToString = funcProto.toString;\n\n    /** Used to check objects for own properties. */\n    var hasOwnProperty = objectProto.hasOwnProperty;\n\n    /** Used to generate unique IDs. */\n    var idCounter = 0;\n\n    /** Used to detect methods masquerading as native. */\n    var maskSrcKey = (function() {\n      var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n      return uid ? ('Symbol(src)_1.' + uid) : '';\n    }());\n\n    /**\n     * Used to resolve the\n     * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n     * of values.\n     */\n    var nativeObjectToString = objectProto.toString;\n\n    /** Used to infer the `Object` constructor. */\n    var objectCtorString = funcToString.call(Object);\n\n    /** Used to restore the original `_` reference in `_.noConflict`. */\n    var oldDash = root._;\n\n    /** Used to detect if a method is native. */\n    var reIsNative = RegExp('^' +\n      funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n      .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n    );\n\n    /** Built-in value references. */\n    var Buffer = moduleExports ? context.Buffer : undefined,\n        Symbol = context.Symbol,\n        Uint8Array = context.Uint8Array,\n        allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n        getPrototype = overArg(Object.getPrototypeOf, Object),\n        objectCreate = Object.create,\n        propertyIsEnumerable = objectProto.propertyIsEnumerable,\n        splice = arrayProto.splice,\n        spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n        symIterator = Symbol ? Symbol.iterator : undefined,\n        symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n    var defineProperty = (function() {\n      try {\n        var func = getNative(Object, 'defineProperty');\n        func({}, '', {});\n        return func;\n      } catch (e) {}\n    }());\n\n    /** Mocked built-ins. */\n    var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n        ctxNow = Date && Date.now !== root.Date.now && Date.now,\n        ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n    /* Built-in method references for those with the same name as other `lodash` methods. */\n    var nativeCeil = Math.ceil,\n        nativeFloor = Math.floor,\n        nativeGetSymbols = Object.getOwnPropertySymbols,\n        nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n        nativeIsFinite = context.isFinite,\n        nativeJoin = arrayProto.join,\n        nativeKeys = overArg(Object.keys, Object),\n        nativeMax = Math.max,\n        nativeMin = Math.min,\n        nativeNow = Date.now,\n        nativeParseInt = context.parseInt,\n        nativeRandom = Math.random,\n        nativeReverse = arrayProto.reverse;\n\n    /* Built-in method references that are verified to be native. */\n    var DataView = getNative(context, 'DataView'),\n        Map = getNative(context, 'Map'),\n        Promise = getNative(context, 'Promise'),\n        Set = getNative(context, 'Set'),\n        WeakMap = getNative(context, 'WeakMap'),\n        nativeCreate = getNative(Object, 'create');\n\n    /** Used to store function metadata. */\n    var metaMap = WeakMap && new WeakMap;\n\n    /** Used to lookup unminified function names. */\n    var realNames = {};\n\n    /** Used to detect maps, sets, and weakmaps. */\n    var dataViewCtorString = toSource(DataView),\n        mapCtorString = toSource(Map),\n        promiseCtorString = toSource(Promise),\n        setCtorString = toSource(Set),\n        weakMapCtorString = toSource(WeakMap);\n\n    /** Used to convert symbols to primitives and strings. */\n    var symbolProto = Symbol ? Symbol.prototype : undefined,\n        symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n        symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a `lodash` object which wraps `value` to enable implicit method\n     * chain sequences. Methods that operate on and return arrays, collections,\n     * and functions can be chained together. Methods that retrieve a single value\n     * or may return a primitive value will automatically end the chain sequence\n     * and return the unwrapped value. Otherwise, the value must be unwrapped\n     * with `_#value`.\n     *\n     * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n     * enabled using `_.chain`.\n     *\n     * The execution of chained methods is lazy, that is, it's deferred until\n     * `_#value` is implicitly or explicitly called.\n     *\n     * Lazy evaluation allows several methods to support shortcut fusion.\n     * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n     * the creation of intermediate arrays and can greatly reduce the number of\n     * iteratee executions. Sections of a chain sequence qualify for shortcut\n     * fusion if the section is applied to an array and iteratees accept only\n     * one argument. The heuristic for whether a section qualifies for shortcut\n     * fusion is subject to change.\n     *\n     * Chaining is supported in custom builds as long as the `_#value` method is\n     * directly or indirectly included in the build.\n     *\n     * In addition to lodash methods, wrappers have `Array` and `String` methods.\n     *\n     * The wrapper `Array` methods are:\n     * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n     *\n     * The wrapper `String` methods are:\n     * `replace` and `split`\n     *\n     * The wrapper methods that support shortcut fusion are:\n     * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n     * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n     * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n     *\n     * The chainable wrapper methods are:\n     * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n     * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n     * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n     * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n     * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n     * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n     * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n     * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n     * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n     * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n     * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n     * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n     * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n     * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n     * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n     * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n     * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n     * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n     * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n     * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n     * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n     * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n     * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n     * `zipObject`, `zipObjectDeep`, and `zipWith`\n     *\n     * The wrapper methods that are **not** chainable by default are:\n     * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n     * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n     * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n     * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n     * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n     * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n     * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n     * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n     * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n     * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n     * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n     * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n     * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n     * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n     * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n     * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n     * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n     * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n     * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n     * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n     * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n     * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n     * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n     * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n     * `upperFirst`, `value`, and `words`\n     *\n     * @name _\n     * @constructor\n     * @category Seq\n     * @param {*} value The value to wrap in a `lodash` instance.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var wrapped = _([1, 2, 3]);\n     *\n     * // Returns an unwrapped value.\n     * wrapped.reduce(_.add);\n     * // => 6\n     *\n     * // Returns a wrapped value.\n     * var squares = wrapped.map(square);\n     *\n     * _.isArray(squares);\n     * // => false\n     *\n     * _.isArray(squares.value());\n     * // => true\n     */\n    function lodash(value) {\n      if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n        if (value instanceof LodashWrapper) {\n          return value;\n        }\n        if (hasOwnProperty.call(value, '__wrapped__')) {\n          return wrapperClone(value);\n        }\n      }\n      return new LodashWrapper(value);\n    }\n\n    /**\n     * The base implementation of `_.create` without support for assigning\n     * properties to the created object.\n     *\n     * @private\n     * @param {Object} proto The object to inherit from.\n     * @returns {Object} Returns the new object.\n     */\n    var baseCreate = (function() {\n      function object() {}\n      return function(proto) {\n        if (!isObject(proto)) {\n          return {};\n        }\n        if (objectCreate) {\n          return objectCreate(proto);\n        }\n        object.prototype = proto;\n        var result = new object;\n        object.prototype = undefined;\n        return result;\n      };\n    }());\n\n    /**\n     * The function whose prototype chain sequence wrappers inherit from.\n     *\n     * @private\n     */\n    function baseLodash() {\n      // No operation performed.\n    }\n\n    /**\n     * The base constructor for creating `lodash` wrapper objects.\n     *\n     * @private\n     * @param {*} value The value to wrap.\n     * @param {boolean} [chainAll] Enable explicit method chain sequences.\n     */\n    function LodashWrapper(value, chainAll) {\n      this.__wrapped__ = value;\n      this.__actions__ = [];\n      this.__chain__ = !!chainAll;\n      this.__index__ = 0;\n      this.__values__ = undefined;\n    }\n\n    /**\n     * By default, the template delimiters used by lodash are like those in\n     * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n     * following template settings to use alternative delimiters.\n     *\n     * @static\n     * @memberOf _\n     * @type {Object}\n     */\n    lodash.templateSettings = {\n\n      /**\n       * Used to detect `data` property values to be HTML-escaped.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'escape': reEscape,\n\n      /**\n       * Used to detect code to be evaluated.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'evaluate': reEvaluate,\n\n      /**\n       * Used to detect `data` property values to inject.\n       *\n       * @memberOf _.templateSettings\n       * @type {RegExp}\n       */\n      'interpolate': reInterpolate,\n\n      /**\n       * Used to reference the data object in the template text.\n       *\n       * @memberOf _.templateSettings\n       * @type {string}\n       */\n      'variable': '',\n\n      /**\n       * Used to import variables into the compiled template.\n       *\n       * @memberOf _.templateSettings\n       * @type {Object}\n       */\n      'imports': {\n\n        /**\n         * A reference to the `lodash` function.\n         *\n         * @memberOf _.templateSettings.imports\n         * @type {Function}\n         */\n        '_': lodash\n      }\n    };\n\n    // Ensure wrappers are instances of `baseLodash`.\n    lodash.prototype = baseLodash.prototype;\n    lodash.prototype.constructor = lodash;\n\n    LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n    LodashWrapper.prototype.constructor = LodashWrapper;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n     *\n     * @private\n     * @constructor\n     * @param {*} value The value to wrap.\n     */\n    function LazyWrapper(value) {\n      this.__wrapped__ = value;\n      this.__actions__ = [];\n      this.__dir__ = 1;\n      this.__filtered__ = false;\n      this.__iteratees__ = [];\n      this.__takeCount__ = MAX_ARRAY_LENGTH;\n      this.__views__ = [];\n    }\n\n    /**\n     * Creates a clone of the lazy wrapper object.\n     *\n     * @private\n     * @name clone\n     * @memberOf LazyWrapper\n     * @returns {Object} Returns the cloned `LazyWrapper` object.\n     */\n    function lazyClone() {\n      var result = new LazyWrapper(this.__wrapped__);\n      result.__actions__ = copyArray(this.__actions__);\n      result.__dir__ = this.__dir__;\n      result.__filtered__ = this.__filtered__;\n      result.__iteratees__ = copyArray(this.__iteratees__);\n      result.__takeCount__ = this.__takeCount__;\n      result.__views__ = copyArray(this.__views__);\n      return result;\n    }\n\n    /**\n     * Reverses the direction of lazy iteration.\n     *\n     * @private\n     * @name reverse\n     * @memberOf LazyWrapper\n     * @returns {Object} Returns the new reversed `LazyWrapper` object.\n     */\n    function lazyReverse() {\n      if (this.__filtered__) {\n        var result = new LazyWrapper(this);\n        result.__dir__ = -1;\n        result.__filtered__ = true;\n      } else {\n        result = this.clone();\n        result.__dir__ *= -1;\n      }\n      return result;\n    }\n\n    /**\n     * Extracts the unwrapped value from its lazy wrapper.\n     *\n     * @private\n     * @name value\n     * @memberOf LazyWrapper\n     * @returns {*} Returns the unwrapped value.\n     */\n    function lazyValue() {\n      var array = this.__wrapped__.value(),\n          dir = this.__dir__,\n          isArr = isArray(array),\n          isRight = dir < 0,\n          arrLength = isArr ? array.length : 0,\n          view = getView(0, arrLength, this.__views__),\n          start = view.start,\n          end = view.end,\n          length = end - start,\n          index = isRight ? end : (start - 1),\n          iteratees = this.__iteratees__,\n          iterLength = iteratees.length,\n          resIndex = 0,\n          takeCount = nativeMin(length, this.__takeCount__);\n\n      if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n        return baseWrapperValue(array, this.__actions__);\n      }\n      var result = [];\n\n      outer:\n      while (length-- && resIndex < takeCount) {\n        index += dir;\n\n        var iterIndex = -1,\n            value = array[index];\n\n        while (++iterIndex < iterLength) {\n          var data = iteratees[iterIndex],\n              iteratee = data.iteratee,\n              type = data.type,\n              computed = iteratee(value);\n\n          if (type == LAZY_MAP_FLAG) {\n            value = computed;\n          } else if (!computed) {\n            if (type == LAZY_FILTER_FLAG) {\n              continue outer;\n            } else {\n              break outer;\n            }\n          }\n        }\n        result[resIndex++] = value;\n      }\n      return result;\n    }\n\n    // Ensure `LazyWrapper` is an instance of `baseLodash`.\n    LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n    LazyWrapper.prototype.constructor = LazyWrapper;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a hash object.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function Hash(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the hash.\n     *\n     * @private\n     * @name clear\n     * @memberOf Hash\n     */\n    function hashClear() {\n      this.__data__ = nativeCreate ? nativeCreate(null) : {};\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the hash.\n     *\n     * @private\n     * @name delete\n     * @memberOf Hash\n     * @param {Object} hash The hash to modify.\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function hashDelete(key) {\n      var result = this.has(key) && delete this.__data__[key];\n      this.size -= result ? 1 : 0;\n      return result;\n    }\n\n    /**\n     * Gets the hash value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf Hash\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function hashGet(key) {\n      var data = this.__data__;\n      if (nativeCreate) {\n        var result = data[key];\n        return result === HASH_UNDEFINED ? undefined : result;\n      }\n      return hasOwnProperty.call(data, key) ? data[key] : undefined;\n    }\n\n    /**\n     * Checks if a hash value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf Hash\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function hashHas(key) {\n      var data = this.__data__;\n      return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n    }\n\n    /**\n     * Sets the hash `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf Hash\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the hash instance.\n     */\n    function hashSet(key, value) {\n      var data = this.__data__;\n      this.size += this.has(key) ? 0 : 1;\n      data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n      return this;\n    }\n\n    // Add methods to `Hash`.\n    Hash.prototype.clear = hashClear;\n    Hash.prototype['delete'] = hashDelete;\n    Hash.prototype.get = hashGet;\n    Hash.prototype.has = hashHas;\n    Hash.prototype.set = hashSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an list cache object.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function ListCache(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the list cache.\n     *\n     * @private\n     * @name clear\n     * @memberOf ListCache\n     */\n    function listCacheClear() {\n      this.__data__ = [];\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the list cache.\n     *\n     * @private\n     * @name delete\n     * @memberOf ListCache\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function listCacheDelete(key) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      if (index < 0) {\n        return false;\n      }\n      var lastIndex = data.length - 1;\n      if (index == lastIndex) {\n        data.pop();\n      } else {\n        splice.call(data, index, 1);\n      }\n      --this.size;\n      return true;\n    }\n\n    /**\n     * Gets the list cache value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf ListCache\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function listCacheGet(key) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      return index < 0 ? undefined : data[index][1];\n    }\n\n    /**\n     * Checks if a list cache value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf ListCache\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function listCacheHas(key) {\n      return assocIndexOf(this.__data__, key) > -1;\n    }\n\n    /**\n     * Sets the list cache `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf ListCache\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the list cache instance.\n     */\n    function listCacheSet(key, value) {\n      var data = this.__data__,\n          index = assocIndexOf(data, key);\n\n      if (index < 0) {\n        ++this.size;\n        data.push([key, value]);\n      } else {\n        data[index][1] = value;\n      }\n      return this;\n    }\n\n    // Add methods to `ListCache`.\n    ListCache.prototype.clear = listCacheClear;\n    ListCache.prototype['delete'] = listCacheDelete;\n    ListCache.prototype.get = listCacheGet;\n    ListCache.prototype.has = listCacheHas;\n    ListCache.prototype.set = listCacheSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a map cache object to store key-value pairs.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function MapCache(entries) {\n      var index = -1,\n          length = entries == null ? 0 : entries.length;\n\n      this.clear();\n      while (++index < length) {\n        var entry = entries[index];\n        this.set(entry[0], entry[1]);\n      }\n    }\n\n    /**\n     * Removes all key-value entries from the map.\n     *\n     * @private\n     * @name clear\n     * @memberOf MapCache\n     */\n    function mapCacheClear() {\n      this.size = 0;\n      this.__data__ = {\n        'hash': new Hash,\n        'map': new (Map || ListCache),\n        'string': new Hash\n      };\n    }\n\n    /**\n     * Removes `key` and its value from the map.\n     *\n     * @private\n     * @name delete\n     * @memberOf MapCache\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function mapCacheDelete(key) {\n      var result = getMapData(this, key)['delete'](key);\n      this.size -= result ? 1 : 0;\n      return result;\n    }\n\n    /**\n     * Gets the map value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf MapCache\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function mapCacheGet(key) {\n      return getMapData(this, key).get(key);\n    }\n\n    /**\n     * Checks if a map value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf MapCache\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function mapCacheHas(key) {\n      return getMapData(this, key).has(key);\n    }\n\n    /**\n     * Sets the map `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf MapCache\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the map cache instance.\n     */\n    function mapCacheSet(key, value) {\n      var data = getMapData(this, key),\n          size = data.size;\n\n      data.set(key, value);\n      this.size += data.size == size ? 0 : 1;\n      return this;\n    }\n\n    // Add methods to `MapCache`.\n    MapCache.prototype.clear = mapCacheClear;\n    MapCache.prototype['delete'] = mapCacheDelete;\n    MapCache.prototype.get = mapCacheGet;\n    MapCache.prototype.has = mapCacheHas;\n    MapCache.prototype.set = mapCacheSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     *\n     * Creates an array cache object to store unique values.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [values] The values to cache.\n     */\n    function SetCache(values) {\n      var index = -1,\n          length = values == null ? 0 : values.length;\n\n      this.__data__ = new MapCache;\n      while (++index < length) {\n        this.add(values[index]);\n      }\n    }\n\n    /**\n     * Adds `value` to the array cache.\n     *\n     * @private\n     * @name add\n     * @memberOf SetCache\n     * @alias push\n     * @param {*} value The value to cache.\n     * @returns {Object} Returns the cache instance.\n     */\n    function setCacheAdd(value) {\n      this.__data__.set(value, HASH_UNDEFINED);\n      return this;\n    }\n\n    /**\n     * Checks if `value` is in the array cache.\n     *\n     * @private\n     * @name has\n     * @memberOf SetCache\n     * @param {*} value The value to search for.\n     * @returns {number} Returns `true` if `value` is found, else `false`.\n     */\n    function setCacheHas(value) {\n      return this.__data__.has(value);\n    }\n\n    // Add methods to `SetCache`.\n    SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n    SetCache.prototype.has = setCacheHas;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a stack cache object to store key-value pairs.\n     *\n     * @private\n     * @constructor\n     * @param {Array} [entries] The key-value pairs to cache.\n     */\n    function Stack(entries) {\n      var data = this.__data__ = new ListCache(entries);\n      this.size = data.size;\n    }\n\n    /**\n     * Removes all key-value entries from the stack.\n     *\n     * @private\n     * @name clear\n     * @memberOf Stack\n     */\n    function stackClear() {\n      this.__data__ = new ListCache;\n      this.size = 0;\n    }\n\n    /**\n     * Removes `key` and its value from the stack.\n     *\n     * @private\n     * @name delete\n     * @memberOf Stack\n     * @param {string} key The key of the value to remove.\n     * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n     */\n    function stackDelete(key) {\n      var data = this.__data__,\n          result = data['delete'](key);\n\n      this.size = data.size;\n      return result;\n    }\n\n    /**\n     * Gets the stack value for `key`.\n     *\n     * @private\n     * @name get\n     * @memberOf Stack\n     * @param {string} key The key of the value to get.\n     * @returns {*} Returns the entry value.\n     */\n    function stackGet(key) {\n      return this.__data__.get(key);\n    }\n\n    /**\n     * Checks if a stack value for `key` exists.\n     *\n     * @private\n     * @name has\n     * @memberOf Stack\n     * @param {string} key The key of the entry to check.\n     * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n     */\n    function stackHas(key) {\n      return this.__data__.has(key);\n    }\n\n    /**\n     * Sets the stack `key` to `value`.\n     *\n     * @private\n     * @name set\n     * @memberOf Stack\n     * @param {string} key The key of the value to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns the stack cache instance.\n     */\n    function stackSet(key, value) {\n      var data = this.__data__;\n      if (data instanceof ListCache) {\n        var pairs = data.__data__;\n        if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n          pairs.push([key, value]);\n          this.size = ++data.size;\n          return this;\n        }\n        data = this.__data__ = new MapCache(pairs);\n      }\n      data.set(key, value);\n      this.size = data.size;\n      return this;\n    }\n\n    // Add methods to `Stack`.\n    Stack.prototype.clear = stackClear;\n    Stack.prototype['delete'] = stackDelete;\n    Stack.prototype.get = stackGet;\n    Stack.prototype.has = stackHas;\n    Stack.prototype.set = stackSet;\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an array of the enumerable property names of the array-like `value`.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @param {boolean} inherited Specify returning inherited property names.\n     * @returns {Array} Returns the array of property names.\n     */\n    function arrayLikeKeys(value, inherited) {\n      var isArr = isArray(value),\n          isArg = !isArr && isArguments(value),\n          isBuff = !isArr && !isArg && isBuffer(value),\n          isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n          skipIndexes = isArr || isArg || isBuff || isType,\n          result = skipIndexes ? baseTimes(value.length, String) : [],\n          length = result.length;\n\n      for (var key in value) {\n        if ((inherited || hasOwnProperty.call(value, key)) &&\n            !(skipIndexes && (\n               // Safari 9 has enumerable `arguments.length` in strict mode.\n               key == 'length' ||\n               // Node.js 0.10 has enumerable non-index properties on buffers.\n               (isBuff && (key == 'offset' || key == 'parent')) ||\n               // PhantomJS 2 has enumerable non-index properties on typed arrays.\n               (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n               // Skip index properties.\n               isIndex(key, length)\n            ))) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * A specialized version of `_.sample` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to sample.\n     * @returns {*} Returns the random element.\n     */\n    function arraySample(array) {\n      var length = array.length;\n      return length ? array[baseRandom(0, length - 1)] : undefined;\n    }\n\n    /**\n     * A specialized version of `_.sampleSize` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to sample.\n     * @param {number} n The number of elements to sample.\n     * @returns {Array} Returns the random elements.\n     */\n    function arraySampleSize(array, n) {\n      return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n    }\n\n    /**\n     * A specialized version of `_.shuffle` for arrays.\n     *\n     * @private\n     * @param {Array} array The array to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     */\n    function arrayShuffle(array) {\n      return shuffleSelf(copyArray(array));\n    }\n\n    /**\n     * This function is like `assignValue` except that it doesn't assign\n     * `undefined` values.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function assignMergeValue(object, key, value) {\n      if ((value !== undefined && !eq(object[key], value)) ||\n          (value === undefined && !(key in object))) {\n        baseAssignValue(object, key, value);\n      }\n    }\n\n    /**\n     * Assigns `value` to `key` of `object` if the existing value is not equivalent\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function assignValue(object, key, value) {\n      var objValue = object[key];\n      if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n          (value === undefined && !(key in object))) {\n        baseAssignValue(object, key, value);\n      }\n    }\n\n    /**\n     * Gets the index at which the `key` is found in `array` of key-value pairs.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {*} key The key to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     */\n    function assocIndexOf(array, key) {\n      var length = array.length;\n      while (length--) {\n        if (eq(array[length][0], key)) {\n          return length;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * Aggregates elements of `collection` on `accumulator` with keys transformed\n     * by `iteratee` and values set by `setter`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} setter The function to set `accumulator` values.\n     * @param {Function} iteratee The iteratee to transform keys.\n     * @param {Object} accumulator The initial aggregated object.\n     * @returns {Function} Returns `accumulator`.\n     */\n    function baseAggregator(collection, setter, iteratee, accumulator) {\n      baseEach(collection, function(value, key, collection) {\n        setter(accumulator, value, iteratee(value), collection);\n      });\n      return accumulator;\n    }\n\n    /**\n     * The base implementation of `_.assign` without support for multiple sources\n     * or `customizer` functions.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @returns {Object} Returns `object`.\n     */\n    function baseAssign(object, source) {\n      return object && copyObject(source, keys(source), object);\n    }\n\n    /**\n     * The base implementation of `_.assignIn` without support for multiple sources\n     * or `customizer` functions.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @returns {Object} Returns `object`.\n     */\n    function baseAssignIn(object, source) {\n      return object && copyObject(source, keysIn(source), object);\n    }\n\n    /**\n     * The base implementation of `assignValue` and `assignMergeValue` without\n     * value checks.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {string} key The key of the property to assign.\n     * @param {*} value The value to assign.\n     */\n    function baseAssignValue(object, key, value) {\n      if (key == '__proto__' && defineProperty) {\n        defineProperty(object, key, {\n          'configurable': true,\n          'enumerable': true,\n          'value': value,\n          'writable': true\n        });\n      } else {\n        object[key] = value;\n      }\n    }\n\n    /**\n     * The base implementation of `_.at` without support for individual paths.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {string[]} paths The property paths to pick.\n     * @returns {Array} Returns the picked elements.\n     */\n    function baseAt(object, paths) {\n      var index = -1,\n          length = paths.length,\n          result = Array(length),\n          skip = object == null;\n\n      while (++index < length) {\n        result[index] = skip ? undefined : get(object, paths[index]);\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.clamp` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {number} number The number to clamp.\n     * @param {number} [lower] The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the clamped number.\n     */\n    function baseClamp(number, lower, upper) {\n      if (number === number) {\n        if (upper !== undefined) {\n          number = number <= upper ? number : upper;\n        }\n        if (lower !== undefined) {\n          number = number >= lower ? number : lower;\n        }\n      }\n      return number;\n    }\n\n    /**\n     * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n     * traversed objects.\n     *\n     * @private\n     * @param {*} value The value to clone.\n     * @param {boolean} bitmask The bitmask flags.\n     *  1 - Deep clone\n     *  2 - Flatten inherited properties\n     *  4 - Clone symbols\n     * @param {Function} [customizer] The function to customize cloning.\n     * @param {string} [key] The key of `value`.\n     * @param {Object} [object] The parent object of `value`.\n     * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n     * @returns {*} Returns the cloned value.\n     */\n    function baseClone(value, bitmask, customizer, key, object, stack) {\n      var result,\n          isDeep = bitmask & CLONE_DEEP_FLAG,\n          isFlat = bitmask & CLONE_FLAT_FLAG,\n          isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n      if (customizer) {\n        result = object ? customizer(value, key, object, stack) : customizer(value);\n      }\n      if (result !== undefined) {\n        return result;\n      }\n      if (!isObject(value)) {\n        return value;\n      }\n      var isArr = isArray(value);\n      if (isArr) {\n        result = initCloneArray(value);\n        if (!isDeep) {\n          return copyArray(value, result);\n        }\n      } else {\n        var tag = getTag(value),\n            isFunc = tag == funcTag || tag == genTag;\n\n        if (isBuffer(value)) {\n          return cloneBuffer(value, isDeep);\n        }\n        if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n          result = (isFlat || isFunc) ? {} : initCloneObject(value);\n          if (!isDeep) {\n            return isFlat\n              ? copySymbolsIn(value, baseAssignIn(result, value))\n              : copySymbols(value, baseAssign(result, value));\n          }\n        } else {\n          if (!cloneableTags[tag]) {\n            return object ? value : {};\n          }\n          result = initCloneByTag(value, tag, isDeep);\n        }\n      }\n      // Check for circular references and return its corresponding clone.\n      stack || (stack = new Stack);\n      var stacked = stack.get(value);\n      if (stacked) {\n        return stacked;\n      }\n      stack.set(value, result);\n\n      if (isSet(value)) {\n        value.forEach(function(subValue) {\n          result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n        });\n      } else if (isMap(value)) {\n        value.forEach(function(subValue, key) {\n          result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n        });\n      }\n\n      var keysFunc = isFull\n        ? (isFlat ? getAllKeysIn : getAllKeys)\n        : (isFlat ? keysIn : keys);\n\n      var props = isArr ? undefined : keysFunc(value);\n      arrayEach(props || value, function(subValue, key) {\n        if (props) {\n          key = subValue;\n          subValue = value[key];\n        }\n        // Recursively populate clone (susceptible to call stack limits).\n        assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.conforms` which doesn't clone `source`.\n     *\n     * @private\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseConforms(source) {\n      var props = keys(source);\n      return function(object) {\n        return baseConformsTo(object, source, props);\n      };\n    }\n\n    /**\n     * The base implementation of `_.conformsTo` which accepts `props` to check.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n     */\n    function baseConformsTo(object, source, props) {\n      var length = props.length;\n      if (object == null) {\n        return !length;\n      }\n      object = Object(object);\n      while (length--) {\n        var key = props[length],\n            predicate = source[key],\n            value = object[key];\n\n        if ((value === undefined && !(key in object)) || !predicate(value)) {\n          return false;\n        }\n      }\n      return true;\n    }\n\n    /**\n     * The base implementation of `_.delay` and `_.defer` which accepts `args`\n     * to provide to `func`.\n     *\n     * @private\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @param {Array} args The arguments to provide to `func`.\n     * @returns {number|Object} Returns the timer id or timeout object.\n     */\n    function baseDelay(func, wait, args) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      return setTimeout(function() { func.apply(undefined, args); }, wait);\n    }\n\n    /**\n     * The base implementation of methods like `_.difference` without support\n     * for excluding multiple arrays or iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Array} values The values to exclude.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     */\n    function baseDifference(array, values, iteratee, comparator) {\n      var index = -1,\n          includes = arrayIncludes,\n          isCommon = true,\n          length = array.length,\n          result = [],\n          valuesLength = values.length;\n\n      if (!length) {\n        return result;\n      }\n      if (iteratee) {\n        values = arrayMap(values, baseUnary(iteratee));\n      }\n      if (comparator) {\n        includes = arrayIncludesWith;\n        isCommon = false;\n      }\n      else if (values.length >= LARGE_ARRAY_SIZE) {\n        includes = cacheHas;\n        isCommon = false;\n        values = new SetCache(values);\n      }\n      outer:\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee == null ? value : iteratee(value);\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (isCommon && computed === computed) {\n          var valuesIndex = valuesLength;\n          while (valuesIndex--) {\n            if (values[valuesIndex] === computed) {\n              continue outer;\n            }\n          }\n          result.push(value);\n        }\n        else if (!includes(values, computed, comparator)) {\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.forEach` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     */\n    var baseEach = createBaseEach(baseForOwn);\n\n    /**\n     * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     */\n    var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n    /**\n     * The base implementation of `_.every` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {boolean} Returns `true` if all elements pass the predicate check,\n     *  else `false`\n     */\n    function baseEvery(collection, predicate) {\n      var result = true;\n      baseEach(collection, function(value, index, collection) {\n        result = !!predicate(value, index, collection);\n        return result;\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of methods like `_.max` and `_.min` which accepts a\n     * `comparator` to determine the extremum value.\n     *\n     * @private\n     * @param {Array} array The array to iterate over.\n     * @param {Function} iteratee The iteratee invoked per iteration.\n     * @param {Function} comparator The comparator used to compare values.\n     * @returns {*} Returns the extremum value.\n     */\n    function baseExtremum(array, iteratee, comparator) {\n      var index = -1,\n          length = array.length;\n\n      while (++index < length) {\n        var value = array[index],\n            current = iteratee(value);\n\n        if (current != null && (computed === undefined\n              ? (current === current && !isSymbol(current))\n              : comparator(current, computed)\n            )) {\n          var computed = current,\n              result = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.fill` without an iteratee call guard.\n     *\n     * @private\n     * @param {Array} array The array to fill.\n     * @param {*} value The value to fill `array` with.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns `array`.\n     */\n    function baseFill(array, value, start, end) {\n      var length = array.length;\n\n      start = toInteger(start);\n      if (start < 0) {\n        start = -start > length ? 0 : (length + start);\n      }\n      end = (end === undefined || end > length) ? length : toInteger(end);\n      if (end < 0) {\n        end += length;\n      }\n      end = start > end ? 0 : toLength(end);\n      while (start < end) {\n        array[start++] = value;\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.filter` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     */\n    function baseFilter(collection, predicate) {\n      var result = [];\n      baseEach(collection, function(value, index, collection) {\n        if (predicate(value, index, collection)) {\n          result.push(value);\n        }\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.flatten` with support for restricting flattening.\n     *\n     * @private\n     * @param {Array} array The array to flatten.\n     * @param {number} depth The maximum recursion depth.\n     * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n     * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n     * @param {Array} [result=[]] The initial result value.\n     * @returns {Array} Returns the new flattened array.\n     */\n    function baseFlatten(array, depth, predicate, isStrict, result) {\n      var index = -1,\n          length = array.length;\n\n      predicate || (predicate = isFlattenable);\n      result || (result = []);\n\n      while (++index < length) {\n        var value = array[index];\n        if (depth > 0 && predicate(value)) {\n          if (depth > 1) {\n            // Recursively flatten arrays (susceptible to call stack limits).\n            baseFlatten(value, depth - 1, predicate, isStrict, result);\n          } else {\n            arrayPush(result, value);\n          }\n        } else if (!isStrict) {\n          result[result.length] = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `baseForOwn` which iterates over `object`\n     * properties returned by `keysFunc` and invokes `iteratee` for each property.\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @returns {Object} Returns `object`.\n     */\n    var baseFor = createBaseFor();\n\n    /**\n     * This function is like `baseFor` except that it iterates over properties\n     * in the opposite order.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @returns {Object} Returns `object`.\n     */\n    var baseForRight = createBaseFor(true);\n\n    /**\n     * The base implementation of `_.forOwn` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     */\n    function baseForOwn(object, iteratee) {\n      return object && baseFor(object, iteratee, keys);\n    }\n\n    /**\n     * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     */\n    function baseForOwnRight(object, iteratee) {\n      return object && baseForRight(object, iteratee, keys);\n    }\n\n    /**\n     * The base implementation of `_.functions` which creates an array of\n     * `object` function property names filtered from `props`.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Array} props The property names to filter.\n     * @returns {Array} Returns the function names.\n     */\n    function baseFunctions(object, props) {\n      return arrayFilter(props, function(key) {\n        return isFunction(object[key]);\n      });\n    }\n\n    /**\n     * The base implementation of `_.get` without support for default values.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to get.\n     * @returns {*} Returns the resolved value.\n     */\n    function baseGet(object, path) {\n      path = castPath(path, object);\n\n      var index = 0,\n          length = path.length;\n\n      while (object != null && index < length) {\n        object = object[toKey(path[index++])];\n      }\n      return (index && index == length) ? object : undefined;\n    }\n\n    /**\n     * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n     * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n     * symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Function} keysFunc The function to get the keys of `object`.\n     * @param {Function} symbolsFunc The function to get the symbols of `object`.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n      var result = keysFunc(object);\n      return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n    }\n\n    /**\n     * The base implementation of `getTag` without fallbacks for buggy environments.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the `toStringTag`.\n     */\n    function baseGetTag(value) {\n      if (value == null) {\n        return value === undefined ? undefinedTag : nullTag;\n      }\n      return (symToStringTag && symToStringTag in Object(value))\n        ? getRawTag(value)\n        : objectToString(value);\n    }\n\n    /**\n     * The base implementation of `_.gt` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than `other`,\n     *  else `false`.\n     */\n    function baseGt(value, other) {\n      return value > other;\n    }\n\n    /**\n     * The base implementation of `_.has` without support for deep paths.\n     *\n     * @private\n     * @param {Object} [object] The object to query.\n     * @param {Array|string} key The key to check.\n     * @returns {boolean} Returns `true` if `key` exists, else `false`.\n     */\n    function baseHas(object, key) {\n      return object != null && hasOwnProperty.call(object, key);\n    }\n\n    /**\n     * The base implementation of `_.hasIn` without support for deep paths.\n     *\n     * @private\n     * @param {Object} [object] The object to query.\n     * @param {Array|string} key The key to check.\n     * @returns {boolean} Returns `true` if `key` exists, else `false`.\n     */\n    function baseHasIn(object, key) {\n      return object != null && key in Object(object);\n    }\n\n    /**\n     * The base implementation of `_.inRange` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {number} number The number to check.\n     * @param {number} start The start of the range.\n     * @param {number} end The end of the range.\n     * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n     */\n    function baseInRange(number, start, end) {\n      return number >= nativeMin(start, end) && number < nativeMax(start, end);\n    }\n\n    /**\n     * The base implementation of methods like `_.intersection`, without support\n     * for iteratee shorthands, that accepts an array of arrays to inspect.\n     *\n     * @private\n     * @param {Array} arrays The arrays to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of shared values.\n     */\n    function baseIntersection(arrays, iteratee, comparator) {\n      var includes = comparator ? arrayIncludesWith : arrayIncludes,\n          length = arrays[0].length,\n          othLength = arrays.length,\n          othIndex = othLength,\n          caches = Array(othLength),\n          maxLength = Infinity,\n          result = [];\n\n      while (othIndex--) {\n        var array = arrays[othIndex];\n        if (othIndex && iteratee) {\n          array = arrayMap(array, baseUnary(iteratee));\n        }\n        maxLength = nativeMin(array.length, maxLength);\n        caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n          ? new SetCache(othIndex && array)\n          : undefined;\n      }\n      array = arrays[0];\n\n      var index = -1,\n          seen = caches[0];\n\n      outer:\n      while (++index < length && result.length < maxLength) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (!(seen\n              ? cacheHas(seen, computed)\n              : includes(result, computed, comparator)\n            )) {\n          othIndex = othLength;\n          while (--othIndex) {\n            var cache = caches[othIndex];\n            if (!(cache\n                  ? cacheHas(cache, computed)\n                  : includes(arrays[othIndex], computed, comparator))\n                ) {\n              continue outer;\n            }\n          }\n          if (seen) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.invert` and `_.invertBy` which inverts\n     * `object` with values transformed by `iteratee` and set by `setter`.\n     *\n     * @private\n     * @param {Object} object The object to iterate over.\n     * @param {Function} setter The function to set `accumulator` values.\n     * @param {Function} iteratee The iteratee to transform values.\n     * @param {Object} accumulator The initial inverted object.\n     * @returns {Function} Returns `accumulator`.\n     */\n    function baseInverter(object, setter, iteratee, accumulator) {\n      baseForOwn(object, function(value, key, object) {\n        setter(accumulator, iteratee(value), key, object);\n      });\n      return accumulator;\n    }\n\n    /**\n     * The base implementation of `_.invoke` without support for individual\n     * method arguments.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {Array} args The arguments to invoke the method with.\n     * @returns {*} Returns the result of the invoked method.\n     */\n    function baseInvoke(object, path, args) {\n      path = castPath(path, object);\n      object = parent(object, path);\n      var func = object == null ? object : object[toKey(last(path))];\n      return func == null ? undefined : apply(func, object, args);\n    }\n\n    /**\n     * The base implementation of `_.isArguments`.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n     */\n    function baseIsArguments(value) {\n      return isObjectLike(value) && baseGetTag(value) == argsTag;\n    }\n\n    /**\n     * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n     */\n    function baseIsArrayBuffer(value) {\n      return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n    }\n\n    /**\n     * The base implementation of `_.isDate` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n     */\n    function baseIsDate(value) {\n      return isObjectLike(value) && baseGetTag(value) == dateTag;\n    }\n\n    /**\n     * The base implementation of `_.isEqual` which supports partial comparisons\n     * and tracks traversed objects.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @param {boolean} bitmask The bitmask flags.\n     *  1 - Unordered comparison\n     *  2 - Partial comparison\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     */\n    function baseIsEqual(value, other, bitmask, customizer, stack) {\n      if (value === other) {\n        return true;\n      }\n      if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n        return value !== value && other !== other;\n      }\n      return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n    }\n\n    /**\n     * A specialized version of `baseIsEqual` for arrays and objects which performs\n     * deep comparisons and tracks traversed objects enabling objects with circular\n     * references to be compared.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n      var objIsArr = isArray(object),\n          othIsArr = isArray(other),\n          objTag = objIsArr ? arrayTag : getTag(object),\n          othTag = othIsArr ? arrayTag : getTag(other);\n\n      objTag = objTag == argsTag ? objectTag : objTag;\n      othTag = othTag == argsTag ? objectTag : othTag;\n\n      var objIsObj = objTag == objectTag,\n          othIsObj = othTag == objectTag,\n          isSameTag = objTag == othTag;\n\n      if (isSameTag && isBuffer(object)) {\n        if (!isBuffer(other)) {\n          return false;\n        }\n        objIsArr = true;\n        objIsObj = false;\n      }\n      if (isSameTag && !objIsObj) {\n        stack || (stack = new Stack);\n        return (objIsArr || isTypedArray(object))\n          ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n          : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n      }\n      if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n        var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n            othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n        if (objIsWrapped || othIsWrapped) {\n          var objUnwrapped = objIsWrapped ? object.value() : object,\n              othUnwrapped = othIsWrapped ? other.value() : other;\n\n          stack || (stack = new Stack);\n          return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n        }\n      }\n      if (!isSameTag) {\n        return false;\n      }\n      stack || (stack = new Stack);\n      return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n    }\n\n    /**\n     * The base implementation of `_.isMap` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n     */\n    function baseIsMap(value) {\n      return isObjectLike(value) && getTag(value) == mapTag;\n    }\n\n    /**\n     * The base implementation of `_.isMatch` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @param {Array} matchData The property names, values, and compare flags to match.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     */\n    function baseIsMatch(object, source, matchData, customizer) {\n      var index = matchData.length,\n          length = index,\n          noCustomizer = !customizer;\n\n      if (object == null) {\n        return !length;\n      }\n      object = Object(object);\n      while (index--) {\n        var data = matchData[index];\n        if ((noCustomizer && data[2])\n              ? data[1] !== object[data[0]]\n              : !(data[0] in object)\n            ) {\n          return false;\n        }\n      }\n      while (++index < length) {\n        data = matchData[index];\n        var key = data[0],\n            objValue = object[key],\n            srcValue = data[1];\n\n        if (noCustomizer && data[2]) {\n          if (objValue === undefined && !(key in object)) {\n            return false;\n          }\n        } else {\n          var stack = new Stack;\n          if (customizer) {\n            var result = customizer(objValue, srcValue, key, object, source, stack);\n          }\n          if (!(result === undefined\n                ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n                : result\n              )) {\n            return false;\n          }\n        }\n      }\n      return true;\n    }\n\n    /**\n     * The base implementation of `_.isNative` without bad shim checks.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a native function,\n     *  else `false`.\n     */\n    function baseIsNative(value) {\n      if (!isObject(value) || isMasked(value)) {\n        return false;\n      }\n      var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n      return pattern.test(toSource(value));\n    }\n\n    /**\n     * The base implementation of `_.isRegExp` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n     */\n    function baseIsRegExp(value) {\n      return isObjectLike(value) && baseGetTag(value) == regexpTag;\n    }\n\n    /**\n     * The base implementation of `_.isSet` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n     */\n    function baseIsSet(value) {\n      return isObjectLike(value) && getTag(value) == setTag;\n    }\n\n    /**\n     * The base implementation of `_.isTypedArray` without Node.js optimizations.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n     */\n    function baseIsTypedArray(value) {\n      return isObjectLike(value) &&\n        isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n    }\n\n    /**\n     * The base implementation of `_.iteratee`.\n     *\n     * @private\n     * @param {*} [value=_.identity] The value to convert to an iteratee.\n     * @returns {Function} Returns the iteratee.\n     */\n    function baseIteratee(value) {\n      // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n      // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n      if (typeof value == 'function') {\n        return value;\n      }\n      if (value == null) {\n        return identity;\n      }\n      if (typeof value == 'object') {\n        return isArray(value)\n          ? baseMatchesProperty(value[0], value[1])\n          : baseMatches(value);\n      }\n      return property(value);\n    }\n\n    /**\n     * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function baseKeys(object) {\n      if (!isPrototype(object)) {\n        return nativeKeys(object);\n      }\n      var result = [];\n      for (var key in Object(object)) {\n        if (hasOwnProperty.call(object, key) && key != 'constructor') {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function baseKeysIn(object) {\n      if (!isObject(object)) {\n        return nativeKeysIn(object);\n      }\n      var isProto = isPrototype(object),\n          result = [];\n\n      for (var key in object) {\n        if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.lt` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than `other`,\n     *  else `false`.\n     */\n    function baseLt(value, other) {\n      return value < other;\n    }\n\n    /**\n     * The base implementation of `_.map` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} iteratee The function invoked per iteration.\n     * @returns {Array} Returns the new mapped array.\n     */\n    function baseMap(collection, iteratee) {\n      var index = -1,\n          result = isArrayLike(collection) ? Array(collection.length) : [];\n\n      baseEach(collection, function(value, key, collection) {\n        result[++index] = iteratee(value, key, collection);\n      });\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.matches` which doesn't clone `source`.\n     *\n     * @private\n     * @param {Object} source The object of property values to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseMatches(source) {\n      var matchData = getMatchData(source);\n      if (matchData.length == 1 && matchData[0][2]) {\n        return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n      }\n      return function(object) {\n        return object === source || baseIsMatch(object, source, matchData);\n      };\n    }\n\n    /**\n     * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n     *\n     * @private\n     * @param {string} path The path of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function baseMatchesProperty(path, srcValue) {\n      if (isKey(path) && isStrictComparable(srcValue)) {\n        return matchesStrictComparable(toKey(path), srcValue);\n      }\n      return function(object) {\n        var objValue = get(object, path);\n        return (objValue === undefined && objValue === srcValue)\n          ? hasIn(object, path)\n          : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n      };\n    }\n\n    /**\n     * The base implementation of `_.merge` without support for multiple sources.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @param {number} srcIndex The index of `source`.\n     * @param {Function} [customizer] The function to customize merged values.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     */\n    function baseMerge(object, source, srcIndex, customizer, stack) {\n      if (object === source) {\n        return;\n      }\n      baseFor(source, function(srcValue, key) {\n        stack || (stack = new Stack);\n        if (isObject(srcValue)) {\n          baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n        }\n        else {\n          var newValue = customizer\n            ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n            : undefined;\n\n          if (newValue === undefined) {\n            newValue = srcValue;\n          }\n          assignMergeValue(object, key, newValue);\n        }\n      }, keysIn);\n    }\n\n    /**\n     * A specialized version of `baseMerge` for arrays and objects which performs\n     * deep merges and tracks traversed objects enabling objects with circular\n     * references to be merged.\n     *\n     * @private\n     * @param {Object} object The destination object.\n     * @param {Object} source The source object.\n     * @param {string} key The key of the value to merge.\n     * @param {number} srcIndex The index of `source`.\n     * @param {Function} mergeFunc The function to merge values.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     */\n    function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n      var objValue = safeGet(object, key),\n          srcValue = safeGet(source, key),\n          stacked = stack.get(srcValue);\n\n      if (stacked) {\n        assignMergeValue(object, key, stacked);\n        return;\n      }\n      var newValue = customizer\n        ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      var isCommon = newValue === undefined;\n\n      if (isCommon) {\n        var isArr = isArray(srcValue),\n            isBuff = !isArr && isBuffer(srcValue),\n            isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n        newValue = srcValue;\n        if (isArr || isBuff || isTyped) {\n          if (isArray(objValue)) {\n            newValue = objValue;\n          }\n          else if (isArrayLikeObject(objValue)) {\n            newValue = copyArray(objValue);\n          }\n          else if (isBuff) {\n            isCommon = false;\n            newValue = cloneBuffer(srcValue, true);\n          }\n          else if (isTyped) {\n            isCommon = false;\n            newValue = cloneTypedArray(srcValue, true);\n          }\n          else {\n            newValue = [];\n          }\n        }\n        else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n          newValue = objValue;\n          if (isArguments(objValue)) {\n            newValue = toPlainObject(objValue);\n          }\n          else if (!isObject(objValue) || isFunction(objValue)) {\n            newValue = initCloneObject(srcValue);\n          }\n        }\n        else {\n          isCommon = false;\n        }\n      }\n      if (isCommon) {\n        // Recursively merge objects and arrays (susceptible to call stack limits).\n        stack.set(srcValue, newValue);\n        mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n        stack['delete'](srcValue);\n      }\n      assignMergeValue(object, key, newValue);\n    }\n\n    /**\n     * The base implementation of `_.nth` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {Array} array The array to query.\n     * @param {number} n The index of the element to return.\n     * @returns {*} Returns the nth element of `array`.\n     */\n    function baseNth(array, n) {\n      var length = array.length;\n      if (!length) {\n        return;\n      }\n      n += n < 0 ? length : 0;\n      return isIndex(n, length) ? array[n] : undefined;\n    }\n\n    /**\n     * The base implementation of `_.orderBy` without param guards.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n     * @param {string[]} orders The sort orders of `iteratees`.\n     * @returns {Array} Returns the new sorted array.\n     */\n    function baseOrderBy(collection, iteratees, orders) {\n      if (iteratees.length) {\n        iteratees = arrayMap(iteratees, function(iteratee) {\n          if (isArray(iteratee)) {\n            return function(value) {\n              return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n            }\n          }\n          return iteratee;\n        });\n      } else {\n        iteratees = [identity];\n      }\n\n      var index = -1;\n      iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n      var result = baseMap(collection, function(value, key, collection) {\n        var criteria = arrayMap(iteratees, function(iteratee) {\n          return iteratee(value);\n        });\n        return { 'criteria': criteria, 'index': ++index, 'value': value };\n      });\n\n      return baseSortBy(result, function(object, other) {\n        return compareMultiple(object, other, orders);\n      });\n    }\n\n    /**\n     * The base implementation of `_.pick` without support for individual\n     * property identifiers.\n     *\n     * @private\n     * @param {Object} object The source object.\n     * @param {string[]} paths The property paths to pick.\n     * @returns {Object} Returns the new object.\n     */\n    function basePick(object, paths) {\n      return basePickBy(object, paths, function(value, path) {\n        return hasIn(object, path);\n      });\n    }\n\n    /**\n     * The base implementation of  `_.pickBy` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Object} object The source object.\n     * @param {string[]} paths The property paths to pick.\n     * @param {Function} predicate The function invoked per property.\n     * @returns {Object} Returns the new object.\n     */\n    function basePickBy(object, paths, predicate) {\n      var index = -1,\n          length = paths.length,\n          result = {};\n\n      while (++index < length) {\n        var path = paths[index],\n            value = baseGet(object, path);\n\n        if (predicate(value, path)) {\n          baseSet(result, castPath(path, object), value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseProperty` which supports deep paths.\n     *\n     * @private\n     * @param {Array|string} path The path of the property to get.\n     * @returns {Function} Returns the new accessor function.\n     */\n    function basePropertyDeep(path) {\n      return function(object) {\n        return baseGet(object, path);\n      };\n    }\n\n    /**\n     * The base implementation of `_.pullAllBy` without support for iteratee\n     * shorthands.\n     *\n     * @private\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns `array`.\n     */\n    function basePullAll(array, values, iteratee, comparator) {\n      var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n          index = -1,\n          length = values.length,\n          seen = array;\n\n      if (array === values) {\n        values = copyArray(values);\n      }\n      if (iteratee) {\n        seen = arrayMap(array, baseUnary(iteratee));\n      }\n      while (++index < length) {\n        var fromIndex = 0,\n            value = values[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n          if (seen !== array) {\n            splice.call(seen, fromIndex, 1);\n          }\n          splice.call(array, fromIndex, 1);\n        }\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.pullAt` without support for individual\n     * indexes or capturing the removed elements.\n     *\n     * @private\n     * @param {Array} array The array to modify.\n     * @param {number[]} indexes The indexes of elements to remove.\n     * @returns {Array} Returns `array`.\n     */\n    function basePullAt(array, indexes) {\n      var length = array ? indexes.length : 0,\n          lastIndex = length - 1;\n\n      while (length--) {\n        var index = indexes[length];\n        if (length == lastIndex || index !== previous) {\n          var previous = index;\n          if (isIndex(index)) {\n            splice.call(array, index, 1);\n          } else {\n            baseUnset(array, index);\n          }\n        }\n      }\n      return array;\n    }\n\n    /**\n     * The base implementation of `_.random` without support for returning\n     * floating-point numbers.\n     *\n     * @private\n     * @param {number} lower The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the random number.\n     */\n    function baseRandom(lower, upper) {\n      return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n    }\n\n    /**\n     * The base implementation of `_.range` and `_.rangeRight` which doesn't\n     * coerce arguments.\n     *\n     * @private\n     * @param {number} start The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} step The value to increment or decrement by.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Array} Returns the range of numbers.\n     */\n    function baseRange(start, end, step, fromRight) {\n      var index = -1,\n          length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n          result = Array(length);\n\n      while (length--) {\n        result[fromRight ? length : ++index] = start;\n        start += step;\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.repeat` which doesn't coerce arguments.\n     *\n     * @private\n     * @param {string} string The string to repeat.\n     * @param {number} n The number of times to repeat the string.\n     * @returns {string} Returns the repeated string.\n     */\n    function baseRepeat(string, n) {\n      var result = '';\n      if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n        return result;\n      }\n      // Leverage the exponentiation by squaring algorithm for a faster repeat.\n      // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n      do {\n        if (n % 2) {\n          result += string;\n        }\n        n = nativeFloor(n / 2);\n        if (n) {\n          string += string;\n        }\n      } while (n);\n\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @returns {Function} Returns the new function.\n     */\n    function baseRest(func, start) {\n      return setToString(overRest(func, start, identity), func + '');\n    }\n\n    /**\n     * The base implementation of `_.sample`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to sample.\n     * @returns {*} Returns the random element.\n     */\n    function baseSample(collection) {\n      return arraySample(values(collection));\n    }\n\n    /**\n     * The base implementation of `_.sampleSize` without param guards.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to sample.\n     * @param {number} n The number of elements to sample.\n     * @returns {Array} Returns the random elements.\n     */\n    function baseSampleSize(collection, n) {\n      var array = values(collection);\n      return shuffleSelf(array, baseClamp(n, 0, array.length));\n    }\n\n    /**\n     * The base implementation of `_.set`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @param {Function} [customizer] The function to customize path creation.\n     * @returns {Object} Returns `object`.\n     */\n    function baseSet(object, path, value, customizer) {\n      if (!isObject(object)) {\n        return object;\n      }\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length,\n          lastIndex = length - 1,\n          nested = object;\n\n      while (nested != null && ++index < length) {\n        var key = toKey(path[index]),\n            newValue = value;\n\n        if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n          return object;\n        }\n\n        if (index != lastIndex) {\n          var objValue = nested[key];\n          newValue = customizer ? customizer(objValue, key, nested) : undefined;\n          if (newValue === undefined) {\n            newValue = isObject(objValue)\n              ? objValue\n              : (isIndex(path[index + 1]) ? [] : {});\n          }\n        }\n        assignValue(nested, key, newValue);\n        nested = nested[key];\n      }\n      return object;\n    }\n\n    /**\n     * The base implementation of `setData` without support for hot loop shorting.\n     *\n     * @private\n     * @param {Function} func The function to associate metadata with.\n     * @param {*} data The metadata.\n     * @returns {Function} Returns `func`.\n     */\n    var baseSetData = !metaMap ? identity : function(func, data) {\n      metaMap.set(func, data);\n      return func;\n    };\n\n    /**\n     * The base implementation of `setToString` without support for hot loop shorting.\n     *\n     * @private\n     * @param {Function} func The function to modify.\n     * @param {Function} string The `toString` result.\n     * @returns {Function} Returns `func`.\n     */\n    var baseSetToString = !defineProperty ? identity : function(func, string) {\n      return defineProperty(func, 'toString', {\n        'configurable': true,\n        'enumerable': false,\n        'value': constant(string),\n        'writable': true\n      });\n    };\n\n    /**\n     * The base implementation of `_.shuffle`.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     */\n    function baseShuffle(collection) {\n      return shuffleSelf(values(collection));\n    }\n\n    /**\n     * The base implementation of `_.slice` without an iteratee call guard.\n     *\n     * @private\n     * @param {Array} array The array to slice.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function baseSlice(array, start, end) {\n      var index = -1,\n          length = array.length;\n\n      if (start < 0) {\n        start = -start > length ? 0 : (length + start);\n      }\n      end = end > length ? length : end;\n      if (end < 0) {\n        end += length;\n      }\n      length = start > end ? 0 : ((end - start) >>> 0);\n      start >>>= 0;\n\n      var result = Array(length);\n      while (++index < length) {\n        result[index] = array[index + start];\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.some` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} predicate The function invoked per iteration.\n     * @returns {boolean} Returns `true` if any element passes the predicate check,\n     *  else `false`.\n     */\n    function baseSome(collection, predicate) {\n      var result;\n\n      baseEach(collection, function(value, index, collection) {\n        result = predicate(value, index, collection);\n        return !result;\n      });\n      return !!result;\n    }\n\n    /**\n     * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n     * performs a binary search of `array` to determine the index at which `value`\n     * should be inserted into `array` in order to maintain its sort order.\n     *\n     * @private\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {boolean} [retHighest] Specify returning the highest qualified index.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     */\n    function baseSortedIndex(array, value, retHighest) {\n      var low = 0,\n          high = array == null ? low : array.length;\n\n      if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n        while (low < high) {\n          var mid = (low + high) >>> 1,\n              computed = array[mid];\n\n          if (computed !== null && !isSymbol(computed) &&\n              (retHighest ? (computed <= value) : (computed < value))) {\n            low = mid + 1;\n          } else {\n            high = mid;\n          }\n        }\n        return high;\n      }\n      return baseSortedIndexBy(array, value, identity, retHighest);\n    }\n\n    /**\n     * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n     * which invokes `iteratee` for `value` and each element of `array` to compute\n     * their sort ranking. The iteratee is invoked with one argument; (value).\n     *\n     * @private\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} iteratee The iteratee invoked per element.\n     * @param {boolean} [retHighest] Specify returning the highest qualified index.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     */\n    function baseSortedIndexBy(array, value, iteratee, retHighest) {\n      var low = 0,\n          high = array == null ? 0 : array.length;\n      if (high === 0) {\n        return 0;\n      }\n\n      value = iteratee(value);\n      var valIsNaN = value !== value,\n          valIsNull = value === null,\n          valIsSymbol = isSymbol(value),\n          valIsUndefined = value === undefined;\n\n      while (low < high) {\n        var mid = nativeFloor((low + high) / 2),\n            computed = iteratee(array[mid]),\n            othIsDefined = computed !== undefined,\n            othIsNull = computed === null,\n            othIsReflexive = computed === computed,\n            othIsSymbol = isSymbol(computed);\n\n        if (valIsNaN) {\n          var setLow = retHighest || othIsReflexive;\n        } else if (valIsUndefined) {\n          setLow = othIsReflexive && (retHighest || othIsDefined);\n        } else if (valIsNull) {\n          setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n        } else if (valIsSymbol) {\n          setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n        } else if (othIsNull || othIsSymbol) {\n          setLow = false;\n        } else {\n          setLow = retHighest ? (computed <= value) : (computed < value);\n        }\n        if (setLow) {\n          low = mid + 1;\n        } else {\n          high = mid;\n        }\n      }\n      return nativeMin(high, MAX_ARRAY_INDEX);\n    }\n\n    /**\n     * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n     * support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     */\n    function baseSortedUniq(array, iteratee) {\n      var index = -1,\n          length = array.length,\n          resIndex = 0,\n          result = [];\n\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        if (!index || !eq(computed, seen)) {\n          var seen = computed;\n          result[resIndex++] = value === 0 ? 0 : value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.toNumber` which doesn't ensure correct\n     * conversions of binary, hexadecimal, or octal string values.\n     *\n     * @private\n     * @param {*} value The value to process.\n     * @returns {number} Returns the number.\n     */\n    function baseToNumber(value) {\n      if (typeof value == 'number') {\n        return value;\n      }\n      if (isSymbol(value)) {\n        return NAN;\n      }\n      return +value;\n    }\n\n    /**\n     * The base implementation of `_.toString` which doesn't convert nullish\n     * values to empty strings.\n     *\n     * @private\n     * @param {*} value The value to process.\n     * @returns {string} Returns the string.\n     */\n    function baseToString(value) {\n      // Exit early for strings to avoid a performance hit in some environments.\n      if (typeof value == 'string') {\n        return value;\n      }\n      if (isArray(value)) {\n        // Recursively convert values (susceptible to call stack limits).\n        return arrayMap(value, baseToString) + '';\n      }\n      if (isSymbol(value)) {\n        return symbolToString ? symbolToString.call(value) : '';\n      }\n      var result = (value + '');\n      return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n    }\n\n    /**\n     * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     */\n    function baseUniq(array, iteratee, comparator) {\n      var index = -1,\n          includes = arrayIncludes,\n          length = array.length,\n          isCommon = true,\n          result = [],\n          seen = result;\n\n      if (comparator) {\n        isCommon = false;\n        includes = arrayIncludesWith;\n      }\n      else if (length >= LARGE_ARRAY_SIZE) {\n        var set = iteratee ? null : createSet(array);\n        if (set) {\n          return setToArray(set);\n        }\n        isCommon = false;\n        includes = cacheHas;\n        seen = new SetCache;\n      }\n      else {\n        seen = iteratee ? [] : result;\n      }\n      outer:\n      while (++index < length) {\n        var value = array[index],\n            computed = iteratee ? iteratee(value) : value;\n\n        value = (comparator || value !== 0) ? value : 0;\n        if (isCommon && computed === computed) {\n          var seenIndex = seen.length;\n          while (seenIndex--) {\n            if (seen[seenIndex] === computed) {\n              continue outer;\n            }\n          }\n          if (iteratee) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n        else if (!includes(seen, computed, comparator)) {\n          if (seen !== result) {\n            seen.push(computed);\n          }\n          result.push(value);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * The base implementation of `_.unset`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The property path to unset.\n     * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n     */\n    function baseUnset(object, path) {\n      path = castPath(path, object);\n      object = parent(object, path);\n      return object == null || delete object[toKey(last(path))];\n    }\n\n    /**\n     * The base implementation of `_.update`.\n     *\n     * @private\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to update.\n     * @param {Function} updater The function to produce the updated value.\n     * @param {Function} [customizer] The function to customize path creation.\n     * @returns {Object} Returns `object`.\n     */\n    function baseUpdate(object, path, updater, customizer) {\n      return baseSet(object, path, updater(baseGet(object, path)), customizer);\n    }\n\n    /**\n     * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n     * without support for iteratee shorthands.\n     *\n     * @private\n     * @param {Array} array The array to query.\n     * @param {Function} predicate The function invoked per iteration.\n     * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function baseWhile(array, predicate, isDrop, fromRight) {\n      var length = array.length,\n          index = fromRight ? length : -1;\n\n      while ((fromRight ? index-- : ++index < length) &&\n        predicate(array[index], index, array)) {}\n\n      return isDrop\n        ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n        : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n    }\n\n    /**\n     * The base implementation of `wrapperValue` which returns the result of\n     * performing a sequence of actions on the unwrapped `value`, where each\n     * successive action is supplied the return value of the previous.\n     *\n     * @private\n     * @param {*} value The unwrapped value.\n     * @param {Array} actions Actions to perform to resolve the unwrapped value.\n     * @returns {*} Returns the resolved value.\n     */\n    function baseWrapperValue(value, actions) {\n      var result = value;\n      if (result instanceof LazyWrapper) {\n        result = result.value();\n      }\n      return arrayReduce(actions, function(result, action) {\n        return action.func.apply(action.thisArg, arrayPush([result], action.args));\n      }, result);\n    }\n\n    /**\n     * The base implementation of methods like `_.xor`, without support for\n     * iteratee shorthands, that accepts an array of arrays to inspect.\n     *\n     * @private\n     * @param {Array} arrays The arrays to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of values.\n     */\n    function baseXor(arrays, iteratee, comparator) {\n      var length = arrays.length;\n      if (length < 2) {\n        return length ? baseUniq(arrays[0]) : [];\n      }\n      var index = -1,\n          result = Array(length);\n\n      while (++index < length) {\n        var array = arrays[index],\n            othIndex = -1;\n\n        while (++othIndex < length) {\n          if (othIndex != index) {\n            result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n          }\n        }\n      }\n      return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n    }\n\n    /**\n     * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n     *\n     * @private\n     * @param {Array} props The property identifiers.\n     * @param {Array} values The property values.\n     * @param {Function} assignFunc The function to assign values.\n     * @returns {Object} Returns the new object.\n     */\n    function baseZipObject(props, values, assignFunc) {\n      var index = -1,\n          length = props.length,\n          valsLength = values.length,\n          result = {};\n\n      while (++index < length) {\n        var value = index < valsLength ? values[index] : undefined;\n        assignFunc(result, props[index], value);\n      }\n      return result;\n    }\n\n    /**\n     * Casts `value` to an empty array if it's not an array like object.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {Array|Object} Returns the cast array-like object.\n     */\n    function castArrayLikeObject(value) {\n      return isArrayLikeObject(value) ? value : [];\n    }\n\n    /**\n     * Casts `value` to `identity` if it's not a function.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {Function} Returns cast function.\n     */\n    function castFunction(value) {\n      return typeof value == 'function' ? value : identity;\n    }\n\n    /**\n     * Casts `value` to a path array if it's not one.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @param {Object} [object] The object to query keys on.\n     * @returns {Array} Returns the cast property path array.\n     */\n    function castPath(value, object) {\n      if (isArray(value)) {\n        return value;\n      }\n      return isKey(value, object) ? [value] : stringToPath(toString(value));\n    }\n\n    /**\n     * A `baseRest` alias which can be replaced with `identity` by module\n     * replacement plugins.\n     *\n     * @private\n     * @type {Function}\n     * @param {Function} func The function to apply a rest parameter to.\n     * @returns {Function} Returns the new function.\n     */\n    var castRest = baseRest;\n\n    /**\n     * Casts `array` to a slice if it's needed.\n     *\n     * @private\n     * @param {Array} array The array to inspect.\n     * @param {number} start The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the cast slice.\n     */\n    function castSlice(array, start, end) {\n      var length = array.length;\n      end = end === undefined ? length : end;\n      return (!start && end >= length) ? array : baseSlice(array, start, end);\n    }\n\n    /**\n     * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n     *\n     * @private\n     * @param {number|Object} id The timer id or timeout object of the timer to clear.\n     */\n    var clearTimeout = ctxClearTimeout || function(id) {\n      return root.clearTimeout(id);\n    };\n\n    /**\n     * Creates a clone of  `buffer`.\n     *\n     * @private\n     * @param {Buffer} buffer The buffer to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Buffer} Returns the cloned buffer.\n     */\n    function cloneBuffer(buffer, isDeep) {\n      if (isDeep) {\n        return buffer.slice();\n      }\n      var length = buffer.length,\n          result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n      buffer.copy(result);\n      return result;\n    }\n\n    /**\n     * Creates a clone of `arrayBuffer`.\n     *\n     * @private\n     * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n     * @returns {ArrayBuffer} Returns the cloned array buffer.\n     */\n    function cloneArrayBuffer(arrayBuffer) {\n      var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n      new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n      return result;\n    }\n\n    /**\n     * Creates a clone of `dataView`.\n     *\n     * @private\n     * @param {Object} dataView The data view to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the cloned data view.\n     */\n    function cloneDataView(dataView, isDeep) {\n      var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n      return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n    }\n\n    /**\n     * Creates a clone of `regexp`.\n     *\n     * @private\n     * @param {Object} regexp The regexp to clone.\n     * @returns {Object} Returns the cloned regexp.\n     */\n    function cloneRegExp(regexp) {\n      var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n      result.lastIndex = regexp.lastIndex;\n      return result;\n    }\n\n    /**\n     * Creates a clone of the `symbol` object.\n     *\n     * @private\n     * @param {Object} symbol The symbol object to clone.\n     * @returns {Object} Returns the cloned symbol object.\n     */\n    function cloneSymbol(symbol) {\n      return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n    }\n\n    /**\n     * Creates a clone of `typedArray`.\n     *\n     * @private\n     * @param {Object} typedArray The typed array to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the cloned typed array.\n     */\n    function cloneTypedArray(typedArray, isDeep) {\n      var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n      return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n    }\n\n    /**\n     * Compares values to sort them in ascending order.\n     *\n     * @private\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {number} Returns the sort order indicator for `value`.\n     */\n    function compareAscending(value, other) {\n      if (value !== other) {\n        var valIsDefined = value !== undefined,\n            valIsNull = value === null,\n            valIsReflexive = value === value,\n            valIsSymbol = isSymbol(value);\n\n        var othIsDefined = other !== undefined,\n            othIsNull = other === null,\n            othIsReflexive = other === other,\n            othIsSymbol = isSymbol(other);\n\n        if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n            (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n            (valIsNull && othIsDefined && othIsReflexive) ||\n            (!valIsDefined && othIsReflexive) ||\n            !valIsReflexive) {\n          return 1;\n        }\n        if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n            (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n            (othIsNull && valIsDefined && valIsReflexive) ||\n            (!othIsDefined && valIsReflexive) ||\n            !othIsReflexive) {\n          return -1;\n        }\n      }\n      return 0;\n    }\n\n    /**\n     * Used by `_.orderBy` to compare multiple properties of a value to another\n     * and stable sort them.\n     *\n     * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n     * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n     * of corresponding values.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {boolean[]|string[]} orders The order to sort by for each property.\n     * @returns {number} Returns the sort order indicator for `object`.\n     */\n    function compareMultiple(object, other, orders) {\n      var index = -1,\n          objCriteria = object.criteria,\n          othCriteria = other.criteria,\n          length = objCriteria.length,\n          ordersLength = orders.length;\n\n      while (++index < length) {\n        var result = compareAscending(objCriteria[index], othCriteria[index]);\n        if (result) {\n          if (index >= ordersLength) {\n            return result;\n          }\n          var order = orders[index];\n          return result * (order == 'desc' ? -1 : 1);\n        }\n      }\n      // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n      // that causes it, under certain circumstances, to provide the same value for\n      // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n      // for more details.\n      //\n      // This also ensures a stable sort in V8 and other engines.\n      // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n      return object.index - other.index;\n    }\n\n    /**\n     * Creates an array that is the composition of partially applied arguments,\n     * placeholders, and provided arguments into a single array of arguments.\n     *\n     * @private\n     * @param {Array} args The provided arguments.\n     * @param {Array} partials The arguments to prepend to those provided.\n     * @param {Array} holders The `partials` placeholder indexes.\n     * @params {boolean} [isCurried] Specify composing for a curried function.\n     * @returns {Array} Returns the new array of composed arguments.\n     */\n    function composeArgs(args, partials, holders, isCurried) {\n      var argsIndex = -1,\n          argsLength = args.length,\n          holdersLength = holders.length,\n          leftIndex = -1,\n          leftLength = partials.length,\n          rangeLength = nativeMax(argsLength - holdersLength, 0),\n          result = Array(leftLength + rangeLength),\n          isUncurried = !isCurried;\n\n      while (++leftIndex < leftLength) {\n        result[leftIndex] = partials[leftIndex];\n      }\n      while (++argsIndex < holdersLength) {\n        if (isUncurried || argsIndex < argsLength) {\n          result[holders[argsIndex]] = args[argsIndex];\n        }\n      }\n      while (rangeLength--) {\n        result[leftIndex++] = args[argsIndex++];\n      }\n      return result;\n    }\n\n    /**\n     * This function is like `composeArgs` except that the arguments composition\n     * is tailored for `_.partialRight`.\n     *\n     * @private\n     * @param {Array} args The provided arguments.\n     * @param {Array} partials The arguments to append to those provided.\n     * @param {Array} holders The `partials` placeholder indexes.\n     * @params {boolean} [isCurried] Specify composing for a curried function.\n     * @returns {Array} Returns the new array of composed arguments.\n     */\n    function composeArgsRight(args, partials, holders, isCurried) {\n      var argsIndex = -1,\n          argsLength = args.length,\n          holdersIndex = -1,\n          holdersLength = holders.length,\n          rightIndex = -1,\n          rightLength = partials.length,\n          rangeLength = nativeMax(argsLength - holdersLength, 0),\n          result = Array(rangeLength + rightLength),\n          isUncurried = !isCurried;\n\n      while (++argsIndex < rangeLength) {\n        result[argsIndex] = args[argsIndex];\n      }\n      var offset = argsIndex;\n      while (++rightIndex < rightLength) {\n        result[offset + rightIndex] = partials[rightIndex];\n      }\n      while (++holdersIndex < holdersLength) {\n        if (isUncurried || argsIndex < argsLength) {\n          result[offset + holders[holdersIndex]] = args[argsIndex++];\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Copies the values of `source` to `array`.\n     *\n     * @private\n     * @param {Array} source The array to copy values from.\n     * @param {Array} [array=[]] The array to copy values to.\n     * @returns {Array} Returns `array`.\n     */\n    function copyArray(source, array) {\n      var index = -1,\n          length = source.length;\n\n      array || (array = Array(length));\n      while (++index < length) {\n        array[index] = source[index];\n      }\n      return array;\n    }\n\n    /**\n     * Copies properties of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy properties from.\n     * @param {Array} props The property identifiers to copy.\n     * @param {Object} [object={}] The object to copy properties to.\n     * @param {Function} [customizer] The function to customize copied values.\n     * @returns {Object} Returns `object`.\n     */\n    function copyObject(source, props, object, customizer) {\n      var isNew = !object;\n      object || (object = {});\n\n      var index = -1,\n          length = props.length;\n\n      while (++index < length) {\n        var key = props[index];\n\n        var newValue = customizer\n          ? customizer(object[key], source[key], key, object, source)\n          : undefined;\n\n        if (newValue === undefined) {\n          newValue = source[key];\n        }\n        if (isNew) {\n          baseAssignValue(object, key, newValue);\n        } else {\n          assignValue(object, key, newValue);\n        }\n      }\n      return object;\n    }\n\n    /**\n     * Copies own symbols of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy symbols from.\n     * @param {Object} [object={}] The object to copy symbols to.\n     * @returns {Object} Returns `object`.\n     */\n    function copySymbols(source, object) {\n      return copyObject(source, getSymbols(source), object);\n    }\n\n    /**\n     * Copies own and inherited symbols of `source` to `object`.\n     *\n     * @private\n     * @param {Object} source The object to copy symbols from.\n     * @param {Object} [object={}] The object to copy symbols to.\n     * @returns {Object} Returns `object`.\n     */\n    function copySymbolsIn(source, object) {\n      return copyObject(source, getSymbolsIn(source), object);\n    }\n\n    /**\n     * Creates a function like `_.groupBy`.\n     *\n     * @private\n     * @param {Function} setter The function to set accumulator values.\n     * @param {Function} [initializer] The accumulator object initializer.\n     * @returns {Function} Returns the new aggregator function.\n     */\n    function createAggregator(setter, initializer) {\n      return function(collection, iteratee) {\n        var func = isArray(collection) ? arrayAggregator : baseAggregator,\n            accumulator = initializer ? initializer() : {};\n\n        return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n      };\n    }\n\n    /**\n     * Creates a function like `_.assign`.\n     *\n     * @private\n     * @param {Function} assigner The function to assign values.\n     * @returns {Function} Returns the new assigner function.\n     */\n    function createAssigner(assigner) {\n      return baseRest(function(object, sources) {\n        var index = -1,\n            length = sources.length,\n            customizer = length > 1 ? sources[length - 1] : undefined,\n            guard = length > 2 ? sources[2] : undefined;\n\n        customizer = (assigner.length > 3 && typeof customizer == 'function')\n          ? (length--, customizer)\n          : undefined;\n\n        if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n          customizer = length < 3 ? undefined : customizer;\n          length = 1;\n        }\n        object = Object(object);\n        while (++index < length) {\n          var source = sources[index];\n          if (source) {\n            assigner(object, source, index, customizer);\n          }\n        }\n        return object;\n      });\n    }\n\n    /**\n     * Creates a `baseEach` or `baseEachRight` function.\n     *\n     * @private\n     * @param {Function} eachFunc The function to iterate over a collection.\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new base function.\n     */\n    function createBaseEach(eachFunc, fromRight) {\n      return function(collection, iteratee) {\n        if (collection == null) {\n          return collection;\n        }\n        if (!isArrayLike(collection)) {\n          return eachFunc(collection, iteratee);\n        }\n        var length = collection.length,\n            index = fromRight ? length : -1,\n            iterable = Object(collection);\n\n        while ((fromRight ? index-- : ++index < length)) {\n          if (iteratee(iterable[index], index, iterable) === false) {\n            break;\n          }\n        }\n        return collection;\n      };\n    }\n\n    /**\n     * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new base function.\n     */\n    function createBaseFor(fromRight) {\n      return function(object, iteratee, keysFunc) {\n        var index = -1,\n            iterable = Object(object),\n            props = keysFunc(object),\n            length = props.length;\n\n        while (length--) {\n          var key = props[fromRight ? length : ++index];\n          if (iteratee(iterable[key], key, iterable) === false) {\n            break;\n          }\n        }\n        return object;\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with the optional `this`\n     * binding of `thisArg`.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createBind(func, bitmask, thisArg) {\n      var isBind = bitmask & WRAP_BIND_FLAG,\n          Ctor = createCtor(func);\n\n      function wrapper() {\n        var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n        return fn.apply(isBind ? thisArg : this, arguments);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a function like `_.lowerFirst`.\n     *\n     * @private\n     * @param {string} methodName The name of the `String` case method to use.\n     * @returns {Function} Returns the new case function.\n     */\n    function createCaseFirst(methodName) {\n      return function(string) {\n        string = toString(string);\n\n        var strSymbols = hasUnicode(string)\n          ? stringToArray(string)\n          : undefined;\n\n        var chr = strSymbols\n          ? strSymbols[0]\n          : string.charAt(0);\n\n        var trailing = strSymbols\n          ? castSlice(strSymbols, 1).join('')\n          : string.slice(1);\n\n        return chr[methodName]() + trailing;\n      };\n    }\n\n    /**\n     * Creates a function like `_.camelCase`.\n     *\n     * @private\n     * @param {Function} callback The function to combine each word.\n     * @returns {Function} Returns the new compounder function.\n     */\n    function createCompounder(callback) {\n      return function(string) {\n        return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n      };\n    }\n\n    /**\n     * Creates a function that produces an instance of `Ctor` regardless of\n     * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n     *\n     * @private\n     * @param {Function} Ctor The constructor to wrap.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createCtor(Ctor) {\n      return function() {\n        // Use a `switch` statement to work with class constructors. See\n        // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n        // for more details.\n        var args = arguments;\n        switch (args.length) {\n          case 0: return new Ctor;\n          case 1: return new Ctor(args[0]);\n          case 2: return new Ctor(args[0], args[1]);\n          case 3: return new Ctor(args[0], args[1], args[2]);\n          case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n          case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n          case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n          case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n        }\n        var thisBinding = baseCreate(Ctor.prototype),\n            result = Ctor.apply(thisBinding, args);\n\n        // Mimic the constructor's `return` behavior.\n        // See https://es5.github.io/#x13.2.2 for more details.\n        return isObject(result) ? result : thisBinding;\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to enable currying.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {number} arity The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createCurry(func, bitmask, arity) {\n      var Ctor = createCtor(func);\n\n      function wrapper() {\n        var length = arguments.length,\n            args = Array(length),\n            index = length,\n            placeholder = getHolder(wrapper);\n\n        while (index--) {\n          args[index] = arguments[index];\n        }\n        var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n          ? []\n          : replaceHolders(args, placeholder);\n\n        length -= holders.length;\n        if (length < arity) {\n          return createRecurry(\n            func, bitmask, createHybrid, wrapper.placeholder, undefined,\n            args, holders, undefined, undefined, arity - length);\n        }\n        var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n        return apply(fn, this, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a `_.find` or `_.findLast` function.\n     *\n     * @private\n     * @param {Function} findIndexFunc The function to find the collection index.\n     * @returns {Function} Returns the new find function.\n     */\n    function createFind(findIndexFunc) {\n      return function(collection, predicate, fromIndex) {\n        var iterable = Object(collection);\n        if (!isArrayLike(collection)) {\n          var iteratee = getIteratee(predicate, 3);\n          collection = keys(collection);\n          predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n        }\n        var index = findIndexFunc(collection, predicate, fromIndex);\n        return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n      };\n    }\n\n    /**\n     * Creates a `_.flow` or `_.flowRight` function.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new flow function.\n     */\n    function createFlow(fromRight) {\n      return flatRest(function(funcs) {\n        var length = funcs.length,\n            index = length,\n            prereq = LodashWrapper.prototype.thru;\n\n        if (fromRight) {\n          funcs.reverse();\n        }\n        while (index--) {\n          var func = funcs[index];\n          if (typeof func != 'function') {\n            throw new TypeError(FUNC_ERROR_TEXT);\n          }\n          if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n            var wrapper = new LodashWrapper([], true);\n          }\n        }\n        index = wrapper ? index : length;\n        while (++index < length) {\n          func = funcs[index];\n\n          var funcName = getFuncName(func),\n              data = funcName == 'wrapper' ? getData(func) : undefined;\n\n          if (data && isLaziable(data[0]) &&\n                data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n                !data[4].length && data[9] == 1\n              ) {\n            wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n          } else {\n            wrapper = (func.length == 1 && isLaziable(func))\n              ? wrapper[funcName]()\n              : wrapper.thru(func);\n          }\n        }\n        return function() {\n          var args = arguments,\n              value = args[0];\n\n          if (wrapper && args.length == 1 && isArray(value)) {\n            return wrapper.plant(value).value();\n          }\n          var index = 0,\n              result = length ? funcs[index].apply(this, args) : value;\n\n          while (++index < length) {\n            result = funcs[index].call(this, result);\n          }\n          return result;\n        };\n      });\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with optional `this`\n     * binding of `thisArg`, partial application, and currying.\n     *\n     * @private\n     * @param {Function|string} func The function or method name to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to prepend to those provided to\n     *  the new function.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [partialsRight] The arguments to append to those provided\n     *  to the new function.\n     * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n      var isAry = bitmask & WRAP_ARY_FLAG,\n          isBind = bitmask & WRAP_BIND_FLAG,\n          isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n          isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n          isFlip = bitmask & WRAP_FLIP_FLAG,\n          Ctor = isBindKey ? undefined : createCtor(func);\n\n      function wrapper() {\n        var length = arguments.length,\n            args = Array(length),\n            index = length;\n\n        while (index--) {\n          args[index] = arguments[index];\n        }\n        if (isCurried) {\n          var placeholder = getHolder(wrapper),\n              holdersCount = countHolders(args, placeholder);\n        }\n        if (partials) {\n          args = composeArgs(args, partials, holders, isCurried);\n        }\n        if (partialsRight) {\n          args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n        }\n        length -= holdersCount;\n        if (isCurried && length < arity) {\n          var newHolders = replaceHolders(args, placeholder);\n          return createRecurry(\n            func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n            args, newHolders, argPos, ary, arity - length\n          );\n        }\n        var thisBinding = isBind ? thisArg : this,\n            fn = isBindKey ? thisBinding[func] : func;\n\n        length = args.length;\n        if (argPos) {\n          args = reorder(args, argPos);\n        } else if (isFlip && length > 1) {\n          args.reverse();\n        }\n        if (isAry && ary < length) {\n          args.length = ary;\n        }\n        if (this && this !== root && this instanceof wrapper) {\n          fn = Ctor || createCtor(fn);\n        }\n        return fn.apply(thisBinding, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a function like `_.invertBy`.\n     *\n     * @private\n     * @param {Function} setter The function to set accumulator values.\n     * @param {Function} toIteratee The function to resolve iteratees.\n     * @returns {Function} Returns the new inverter function.\n     */\n    function createInverter(setter, toIteratee) {\n      return function(object, iteratee) {\n        return baseInverter(object, setter, toIteratee(iteratee), {});\n      };\n    }\n\n    /**\n     * Creates a function that performs a mathematical operation on two values.\n     *\n     * @private\n     * @param {Function} operator The function to perform the operation.\n     * @param {number} [defaultValue] The value used for `undefined` arguments.\n     * @returns {Function} Returns the new mathematical operation function.\n     */\n    function createMathOperation(operator, defaultValue) {\n      return function(value, other) {\n        var result;\n        if (value === undefined && other === undefined) {\n          return defaultValue;\n        }\n        if (value !== undefined) {\n          result = value;\n        }\n        if (other !== undefined) {\n          if (result === undefined) {\n            return other;\n          }\n          if (typeof value == 'string' || typeof other == 'string') {\n            value = baseToString(value);\n            other = baseToString(other);\n          } else {\n            value = baseToNumber(value);\n            other = baseToNumber(other);\n          }\n          result = operator(value, other);\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Creates a function like `_.over`.\n     *\n     * @private\n     * @param {Function} arrayFunc The function to iterate over iteratees.\n     * @returns {Function} Returns the new over function.\n     */\n    function createOver(arrayFunc) {\n      return flatRest(function(iteratees) {\n        iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n        return baseRest(function(args) {\n          var thisArg = this;\n          return arrayFunc(iteratees, function(iteratee) {\n            return apply(iteratee, thisArg, args);\n          });\n        });\n      });\n    }\n\n    /**\n     * Creates the padding for `string` based on `length`. The `chars` string\n     * is truncated if the number of characters exceeds `length`.\n     *\n     * @private\n     * @param {number} length The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padding for `string`.\n     */\n    function createPadding(length, chars) {\n      chars = chars === undefined ? ' ' : baseToString(chars);\n\n      var charsLength = chars.length;\n      if (charsLength < 2) {\n        return charsLength ? baseRepeat(chars, length) : chars;\n      }\n      var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n      return hasUnicode(chars)\n        ? castSlice(stringToArray(result), 0, length).join('')\n        : result.slice(0, length);\n    }\n\n    /**\n     * Creates a function that wraps `func` to invoke it with the `this` binding\n     * of `thisArg` and `partials` prepended to the arguments it receives.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {*} thisArg The `this` binding of `func`.\n     * @param {Array} partials The arguments to prepend to those provided to\n     *  the new function.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createPartial(func, bitmask, thisArg, partials) {\n      var isBind = bitmask & WRAP_BIND_FLAG,\n          Ctor = createCtor(func);\n\n      function wrapper() {\n        var argsIndex = -1,\n            argsLength = arguments.length,\n            leftIndex = -1,\n            leftLength = partials.length,\n            args = Array(leftLength + argsLength),\n            fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n        while (++leftIndex < leftLength) {\n          args[leftIndex] = partials[leftIndex];\n        }\n        while (argsLength--) {\n          args[leftIndex++] = arguments[++argsIndex];\n        }\n        return apply(fn, isBind ? thisArg : this, args);\n      }\n      return wrapper;\n    }\n\n    /**\n     * Creates a `_.range` or `_.rangeRight` function.\n     *\n     * @private\n     * @param {boolean} [fromRight] Specify iterating from right to left.\n     * @returns {Function} Returns the new range function.\n     */\n    function createRange(fromRight) {\n      return function(start, end, step) {\n        if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n          end = step = undefined;\n        }\n        // Ensure the sign of `-0` is preserved.\n        start = toFinite(start);\n        if (end === undefined) {\n          end = start;\n          start = 0;\n        } else {\n          end = toFinite(end);\n        }\n        step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n        return baseRange(start, end, step, fromRight);\n      };\n    }\n\n    /**\n     * Creates a function that performs a relational operation on two values.\n     *\n     * @private\n     * @param {Function} operator The function to perform the operation.\n     * @returns {Function} Returns the new relational operation function.\n     */\n    function createRelationalOperation(operator) {\n      return function(value, other) {\n        if (!(typeof value == 'string' && typeof other == 'string')) {\n          value = toNumber(value);\n          other = toNumber(other);\n        }\n        return operator(value, other);\n      };\n    }\n\n    /**\n     * Creates a function that wraps `func` to continue currying.\n     *\n     * @private\n     * @param {Function} func The function to wrap.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @param {Function} wrapFunc The function to create the `func` wrapper.\n     * @param {*} placeholder The placeholder value.\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to prepend to those provided to\n     *  the new function.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n      var isCurry = bitmask & WRAP_CURRY_FLAG,\n          newHolders = isCurry ? holders : undefined,\n          newHoldersRight = isCurry ? undefined : holders,\n          newPartials = isCurry ? partials : undefined,\n          newPartialsRight = isCurry ? undefined : partials;\n\n      bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n      bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n      if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n        bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n      }\n      var newData = [\n        func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n        newHoldersRight, argPos, ary, arity\n      ];\n\n      var result = wrapFunc.apply(undefined, newData);\n      if (isLaziable(func)) {\n        setData(result, newData);\n      }\n      result.placeholder = placeholder;\n      return setWrapToString(result, func, bitmask);\n    }\n\n    /**\n     * Creates a function like `_.round`.\n     *\n     * @private\n     * @param {string} methodName The name of the `Math` method to use when rounding.\n     * @returns {Function} Returns the new round function.\n     */\n    function createRound(methodName) {\n      var func = Math[methodName];\n      return function(number, precision) {\n        number = toNumber(number);\n        precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n        if (precision && nativeIsFinite(number)) {\n          // Shift with exponential notation to avoid floating-point issues.\n          // See [MDN](https://mdn.io/round#Examples) for more details.\n          var pair = (toString(number) + 'e').split('e'),\n              value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n          pair = (toString(value) + 'e').split('e');\n          return +(pair[0] + 'e' + (+pair[1] - precision));\n        }\n        return func(number);\n      };\n    }\n\n    /**\n     * Creates a set object of `values`.\n     *\n     * @private\n     * @param {Array} values The values to add to the set.\n     * @returns {Object} Returns the new set.\n     */\n    var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n      return new Set(values);\n    };\n\n    /**\n     * Creates a `_.toPairs` or `_.toPairsIn` function.\n     *\n     * @private\n     * @param {Function} keysFunc The function to get the keys of a given object.\n     * @returns {Function} Returns the new pairs function.\n     */\n    function createToPairs(keysFunc) {\n      return function(object) {\n        var tag = getTag(object);\n        if (tag == mapTag) {\n          return mapToArray(object);\n        }\n        if (tag == setTag) {\n          return setToPairs(object);\n        }\n        return baseToPairs(object, keysFunc(object));\n      };\n    }\n\n    /**\n     * Creates a function that either curries or invokes `func` with optional\n     * `this` binding and partially applied arguments.\n     *\n     * @private\n     * @param {Function|string} func The function or method name to wrap.\n     * @param {number} bitmask The bitmask flags.\n     *    1 - `_.bind`\n     *    2 - `_.bindKey`\n     *    4 - `_.curry` or `_.curryRight` of a bound function\n     *    8 - `_.curry`\n     *   16 - `_.curryRight`\n     *   32 - `_.partial`\n     *   64 - `_.partialRight`\n     *  128 - `_.rearg`\n     *  256 - `_.ary`\n     *  512 - `_.flip`\n     * @param {*} [thisArg] The `this` binding of `func`.\n     * @param {Array} [partials] The arguments to be partially applied.\n     * @param {Array} [holders] The `partials` placeholder indexes.\n     * @param {Array} [argPos] The argument positions of the new function.\n     * @param {number} [ary] The arity cap of `func`.\n     * @param {number} [arity] The arity of `func`.\n     * @returns {Function} Returns the new wrapped function.\n     */\n    function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n      var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n      if (!isBindKey && typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      var length = partials ? partials.length : 0;\n      if (!length) {\n        bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n        partials = holders = undefined;\n      }\n      ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n      arity = arity === undefined ? arity : toInteger(arity);\n      length -= holders ? holders.length : 0;\n\n      if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n        var partialsRight = partials,\n            holdersRight = holders;\n\n        partials = holders = undefined;\n      }\n      var data = isBindKey ? undefined : getData(func);\n\n      var newData = [\n        func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n        argPos, ary, arity\n      ];\n\n      if (data) {\n        mergeData(newData, data);\n      }\n      func = newData[0];\n      bitmask = newData[1];\n      thisArg = newData[2];\n      partials = newData[3];\n      holders = newData[4];\n      arity = newData[9] = newData[9] === undefined\n        ? (isBindKey ? 0 : func.length)\n        : nativeMax(newData[9] - length, 0);\n\n      if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n        bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n      }\n      if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n        var result = createBind(func, bitmask, thisArg);\n      } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n        result = createCurry(func, bitmask, arity);\n      } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n        result = createPartial(func, bitmask, thisArg, partials);\n      } else {\n        result = createHybrid.apply(undefined, newData);\n      }\n      var setter = data ? baseSetData : setData;\n      return setWrapToString(setter(result, newData), func, bitmask);\n    }\n\n    /**\n     * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n     * of source objects to the destination object for all destination properties\n     * that resolve to `undefined`.\n     *\n     * @private\n     * @param {*} objValue The destination value.\n     * @param {*} srcValue The source value.\n     * @param {string} key The key of the property to assign.\n     * @param {Object} object The parent object of `objValue`.\n     * @returns {*} Returns the value to assign.\n     */\n    function customDefaultsAssignIn(objValue, srcValue, key, object) {\n      if (objValue === undefined ||\n          (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n        return srcValue;\n      }\n      return objValue;\n    }\n\n    /**\n     * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n     * objects into destination objects that are passed thru.\n     *\n     * @private\n     * @param {*} objValue The destination value.\n     * @param {*} srcValue The source value.\n     * @param {string} key The key of the property to merge.\n     * @param {Object} object The parent object of `objValue`.\n     * @param {Object} source The parent object of `srcValue`.\n     * @param {Object} [stack] Tracks traversed source values and their merged\n     *  counterparts.\n     * @returns {*} Returns the value to assign.\n     */\n    function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n      if (isObject(objValue) && isObject(srcValue)) {\n        // Recursively merge objects and arrays (susceptible to call stack limits).\n        stack.set(srcValue, objValue);\n        baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n        stack['delete'](srcValue);\n      }\n      return objValue;\n    }\n\n    /**\n     * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n     * objects.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @param {string} key The key of the property to inspect.\n     * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n     */\n    function customOmitClone(value) {\n      return isPlainObject(value) ? undefined : value;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for arrays with support for\n     * partial deep comparisons.\n     *\n     * @private\n     * @param {Array} array The array to compare.\n     * @param {Array} other The other array to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `array` and `other` objects.\n     * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n     */\n    function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n          arrLength = array.length,\n          othLength = other.length;\n\n      if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n        return false;\n      }\n      // Check that cyclic values are equal.\n      var arrStacked = stack.get(array);\n      var othStacked = stack.get(other);\n      if (arrStacked && othStacked) {\n        return arrStacked == other && othStacked == array;\n      }\n      var index = -1,\n          result = true,\n          seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n      stack.set(array, other);\n      stack.set(other, array);\n\n      // Ignore non-index properties.\n      while (++index < arrLength) {\n        var arrValue = array[index],\n            othValue = other[index];\n\n        if (customizer) {\n          var compared = isPartial\n            ? customizer(othValue, arrValue, index, other, array, stack)\n            : customizer(arrValue, othValue, index, array, other, stack);\n        }\n        if (compared !== undefined) {\n          if (compared) {\n            continue;\n          }\n          result = false;\n          break;\n        }\n        // Recursively compare arrays (susceptible to call stack limits).\n        if (seen) {\n          if (!arraySome(other, function(othValue, othIndex) {\n                if (!cacheHas(seen, othIndex) &&\n                    (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n                  return seen.push(othIndex);\n                }\n              })) {\n            result = false;\n            break;\n          }\n        } else if (!(\n              arrValue === othValue ||\n                equalFunc(arrValue, othValue, bitmask, customizer, stack)\n            )) {\n          result = false;\n          break;\n        }\n      }\n      stack['delete'](array);\n      stack['delete'](other);\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for comparing objects of\n     * the same `toStringTag`.\n     *\n     * **Note:** This function only supports comparing values with tags of\n     * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {string} tag The `toStringTag` of the objects to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n      switch (tag) {\n        case dataViewTag:\n          if ((object.byteLength != other.byteLength) ||\n              (object.byteOffset != other.byteOffset)) {\n            return false;\n          }\n          object = object.buffer;\n          other = other.buffer;\n\n        case arrayBufferTag:\n          if ((object.byteLength != other.byteLength) ||\n              !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n            return false;\n          }\n          return true;\n\n        case boolTag:\n        case dateTag:\n        case numberTag:\n          // Coerce booleans to `1` or `0` and dates to milliseconds.\n          // Invalid dates are coerced to `NaN`.\n          return eq(+object, +other);\n\n        case errorTag:\n          return object.name == other.name && object.message == other.message;\n\n        case regexpTag:\n        case stringTag:\n          // Coerce regexes to strings and treat strings, primitives and objects,\n          // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n          // for more details.\n          return object == (other + '');\n\n        case mapTag:\n          var convert = mapToArray;\n\n        case setTag:\n          var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n          convert || (convert = setToArray);\n\n          if (object.size != other.size && !isPartial) {\n            return false;\n          }\n          // Assume cyclic values are equal.\n          var stacked = stack.get(object);\n          if (stacked) {\n            return stacked == other;\n          }\n          bitmask |= COMPARE_UNORDERED_FLAG;\n\n          // Recursively compare objects (susceptible to call stack limits).\n          stack.set(object, other);\n          var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n          stack['delete'](object);\n          return result;\n\n        case symbolTag:\n          if (symbolValueOf) {\n            return symbolValueOf.call(object) == symbolValueOf.call(other);\n          }\n      }\n      return false;\n    }\n\n    /**\n     * A specialized version of `baseIsEqualDeep` for objects with support for\n     * partial deep comparisons.\n     *\n     * @private\n     * @param {Object} object The object to compare.\n     * @param {Object} other The other object to compare.\n     * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n     * @param {Function} customizer The function to customize comparisons.\n     * @param {Function} equalFunc The function to determine equivalents of values.\n     * @param {Object} stack Tracks traversed `object` and `other` objects.\n     * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n     */\n    function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n          objProps = getAllKeys(object),\n          objLength = objProps.length,\n          othProps = getAllKeys(other),\n          othLength = othProps.length;\n\n      if (objLength != othLength && !isPartial) {\n        return false;\n      }\n      var index = objLength;\n      while (index--) {\n        var key = objProps[index];\n        if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n          return false;\n        }\n      }\n      // Check that cyclic values are equal.\n      var objStacked = stack.get(object);\n      var othStacked = stack.get(other);\n      if (objStacked && othStacked) {\n        return objStacked == other && othStacked == object;\n      }\n      var result = true;\n      stack.set(object, other);\n      stack.set(other, object);\n\n      var skipCtor = isPartial;\n      while (++index < objLength) {\n        key = objProps[index];\n        var objValue = object[key],\n            othValue = other[key];\n\n        if (customizer) {\n          var compared = isPartial\n            ? customizer(othValue, objValue, key, other, object, stack)\n            : customizer(objValue, othValue, key, object, other, stack);\n        }\n        // Recursively compare objects (susceptible to call stack limits).\n        if (!(compared === undefined\n              ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n              : compared\n            )) {\n          result = false;\n          break;\n        }\n        skipCtor || (skipCtor = key == 'constructor');\n      }\n      if (result && !skipCtor) {\n        var objCtor = object.constructor,\n            othCtor = other.constructor;\n\n        // Non `Object` object instances with different constructors are not equal.\n        if (objCtor != othCtor &&\n            ('constructor' in object && 'constructor' in other) &&\n            !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n              typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n          result = false;\n        }\n      }\n      stack['delete'](object);\n      stack['delete'](other);\n      return result;\n    }\n\n    /**\n     * A specialized version of `baseRest` which flattens the rest array.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @returns {Function} Returns the new function.\n     */\n    function flatRest(func) {\n      return setToString(overRest(func, undefined, flatten), func + '');\n    }\n\n    /**\n     * Creates an array of own enumerable property names and symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function getAllKeys(object) {\n      return baseGetAllKeys(object, keys, getSymbols);\n    }\n\n    /**\n     * Creates an array of own and inherited enumerable property names and\n     * symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names and symbols.\n     */\n    function getAllKeysIn(object) {\n      return baseGetAllKeys(object, keysIn, getSymbolsIn);\n    }\n\n    /**\n     * Gets metadata for `func`.\n     *\n     * @private\n     * @param {Function} func The function to query.\n     * @returns {*} Returns the metadata for `func`.\n     */\n    var getData = !metaMap ? noop : function(func) {\n      return metaMap.get(func);\n    };\n\n    /**\n     * Gets the name of `func`.\n     *\n     * @private\n     * @param {Function} func The function to query.\n     * @returns {string} Returns the function name.\n     */\n    function getFuncName(func) {\n      var result = (func.name + ''),\n          array = realNames[result],\n          length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n      while (length--) {\n        var data = array[length],\n            otherFunc = data.func;\n        if (otherFunc == null || otherFunc == func) {\n          return data.name;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Gets the argument placeholder value for `func`.\n     *\n     * @private\n     * @param {Function} func The function to inspect.\n     * @returns {*} Returns the placeholder value.\n     */\n    function getHolder(func) {\n      var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n      return object.placeholder;\n    }\n\n    /**\n     * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n     * this function returns the custom method, otherwise it returns `baseIteratee`.\n     * If arguments are provided, the chosen function is invoked with them and\n     * its result is returned.\n     *\n     * @private\n     * @param {*} [value] The value to convert to an iteratee.\n     * @param {number} [arity] The arity of the created iteratee.\n     * @returns {Function} Returns the chosen function or its result.\n     */\n    function getIteratee() {\n      var result = lodash.iteratee || iteratee;\n      result = result === iteratee ? baseIteratee : result;\n      return arguments.length ? result(arguments[0], arguments[1]) : result;\n    }\n\n    /**\n     * Gets the data for `map`.\n     *\n     * @private\n     * @param {Object} map The map to query.\n     * @param {string} key The reference key.\n     * @returns {*} Returns the map data.\n     */\n    function getMapData(map, key) {\n      var data = map.__data__;\n      return isKeyable(key)\n        ? data[typeof key == 'string' ? 'string' : 'hash']\n        : data.map;\n    }\n\n    /**\n     * Gets the property names, values, and compare flags of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the match data of `object`.\n     */\n    function getMatchData(object) {\n      var result = keys(object),\n          length = result.length;\n\n      while (length--) {\n        var key = result[length],\n            value = object[key];\n\n        result[length] = [key, value, isStrictComparable(value)];\n      }\n      return result;\n    }\n\n    /**\n     * Gets the native function at `key` of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {string} key The key of the method to get.\n     * @returns {*} Returns the function if it's native, else `undefined`.\n     */\n    function getNative(object, key) {\n      var value = getValue(object, key);\n      return baseIsNative(value) ? value : undefined;\n    }\n\n    /**\n     * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the raw `toStringTag`.\n     */\n    function getRawTag(value) {\n      var isOwn = hasOwnProperty.call(value, symToStringTag),\n          tag = value[symToStringTag];\n\n      try {\n        value[symToStringTag] = undefined;\n        var unmasked = true;\n      } catch (e) {}\n\n      var result = nativeObjectToString.call(value);\n      if (unmasked) {\n        if (isOwn) {\n          value[symToStringTag] = tag;\n        } else {\n          delete value[symToStringTag];\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Creates an array of the own enumerable symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of symbols.\n     */\n    var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n      if (object == null) {\n        return [];\n      }\n      object = Object(object);\n      return arrayFilter(nativeGetSymbols(object), function(symbol) {\n        return propertyIsEnumerable.call(object, symbol);\n      });\n    };\n\n    /**\n     * Creates an array of the own and inherited enumerable symbols of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of symbols.\n     */\n    var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n      var result = [];\n      while (object) {\n        arrayPush(result, getSymbols(object));\n        object = getPrototype(object);\n      }\n      return result;\n    };\n\n    /**\n     * Gets the `toStringTag` of `value`.\n     *\n     * @private\n     * @param {*} value The value to query.\n     * @returns {string} Returns the `toStringTag`.\n     */\n    var getTag = baseGetTag;\n\n    // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n    if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n        (Map && getTag(new Map) != mapTag) ||\n        (Promise && getTag(Promise.resolve()) != promiseTag) ||\n        (Set && getTag(new Set) != setTag) ||\n        (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n      getTag = function(value) {\n        var result = baseGetTag(value),\n            Ctor = result == objectTag ? value.constructor : undefined,\n            ctorString = Ctor ? toSource(Ctor) : '';\n\n        if (ctorString) {\n          switch (ctorString) {\n            case dataViewCtorString: return dataViewTag;\n            case mapCtorString: return mapTag;\n            case promiseCtorString: return promiseTag;\n            case setCtorString: return setTag;\n            case weakMapCtorString: return weakMapTag;\n          }\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Gets the view, applying any `transforms` to the `start` and `end` positions.\n     *\n     * @private\n     * @param {number} start The start of the view.\n     * @param {number} end The end of the view.\n     * @param {Array} transforms The transformations to apply to the view.\n     * @returns {Object} Returns an object containing the `start` and `end`\n     *  positions of the view.\n     */\n    function getView(start, end, transforms) {\n      var index = -1,\n          length = transforms.length;\n\n      while (++index < length) {\n        var data = transforms[index],\n            size = data.size;\n\n        switch (data.type) {\n          case 'drop':      start += size; break;\n          case 'dropRight': end -= size; break;\n          case 'take':      end = nativeMin(end, start + size); break;\n          case 'takeRight': start = nativeMax(start, end - size); break;\n        }\n      }\n      return { 'start': start, 'end': end };\n    }\n\n    /**\n     * Extracts wrapper details from the `source` body comment.\n     *\n     * @private\n     * @param {string} source The source to inspect.\n     * @returns {Array} Returns the wrapper details.\n     */\n    function getWrapDetails(source) {\n      var match = source.match(reWrapDetails);\n      return match ? match[1].split(reSplitDetails) : [];\n    }\n\n    /**\n     * Checks if `path` exists on `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @param {Function} hasFunc The function to check properties.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     */\n    function hasPath(object, path, hasFunc) {\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length,\n          result = false;\n\n      while (++index < length) {\n        var key = toKey(path[index]);\n        if (!(result = object != null && hasFunc(object, key))) {\n          break;\n        }\n        object = object[key];\n      }\n      if (result || ++index != length) {\n        return result;\n      }\n      length = object == null ? 0 : object.length;\n      return !!length && isLength(length) && isIndex(key, length) &&\n        (isArray(object) || isArguments(object));\n    }\n\n    /**\n     * Initializes an array clone.\n     *\n     * @private\n     * @param {Array} array The array to clone.\n     * @returns {Array} Returns the initialized clone.\n     */\n    function initCloneArray(array) {\n      var length = array.length,\n          result = new array.constructor(length);\n\n      // Add properties assigned by `RegExp#exec`.\n      if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n        result.index = array.index;\n        result.input = array.input;\n      }\n      return result;\n    }\n\n    /**\n     * Initializes an object clone.\n     *\n     * @private\n     * @param {Object} object The object to clone.\n     * @returns {Object} Returns the initialized clone.\n     */\n    function initCloneObject(object) {\n      return (typeof object.constructor == 'function' && !isPrototype(object))\n        ? baseCreate(getPrototype(object))\n        : {};\n    }\n\n    /**\n     * Initializes an object clone based on its `toStringTag`.\n     *\n     * **Note:** This function only supports cloning values with tags of\n     * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n     *\n     * @private\n     * @param {Object} object The object to clone.\n     * @param {string} tag The `toStringTag` of the object to clone.\n     * @param {boolean} [isDeep] Specify a deep clone.\n     * @returns {Object} Returns the initialized clone.\n     */\n    function initCloneByTag(object, tag, isDeep) {\n      var Ctor = object.constructor;\n      switch (tag) {\n        case arrayBufferTag:\n          return cloneArrayBuffer(object);\n\n        case boolTag:\n        case dateTag:\n          return new Ctor(+object);\n\n        case dataViewTag:\n          return cloneDataView(object, isDeep);\n\n        case float32Tag: case float64Tag:\n        case int8Tag: case int16Tag: case int32Tag:\n        case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n          return cloneTypedArray(object, isDeep);\n\n        case mapTag:\n          return new Ctor;\n\n        case numberTag:\n        case stringTag:\n          return new Ctor(object);\n\n        case regexpTag:\n          return cloneRegExp(object);\n\n        case setTag:\n          return new Ctor;\n\n        case symbolTag:\n          return cloneSymbol(object);\n      }\n    }\n\n    /**\n     * Inserts wrapper `details` in a comment at the top of the `source` body.\n     *\n     * @private\n     * @param {string} source The source to modify.\n     * @returns {Array} details The details to insert.\n     * @returns {string} Returns the modified source.\n     */\n    function insertWrapDetails(source, details) {\n      var length = details.length;\n      if (!length) {\n        return source;\n      }\n      var lastIndex = length - 1;\n      details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n      details = details.join(length > 2 ? ', ' : ' ');\n      return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n    }\n\n    /**\n     * Checks if `value` is a flattenable `arguments` object or array.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n     */\n    function isFlattenable(value) {\n      return isArray(value) || isArguments(value) ||\n        !!(spreadableSymbol && value && value[spreadableSymbol]);\n    }\n\n    /**\n     * Checks if `value` is a valid array-like index.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n     * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n     */\n    function isIndex(value, length) {\n      var type = typeof value;\n      length = length == null ? MAX_SAFE_INTEGER : length;\n\n      return !!length &&\n        (type == 'number' ||\n          (type != 'symbol' && reIsUint.test(value))) &&\n            (value > -1 && value % 1 == 0 && value < length);\n    }\n\n    /**\n     * Checks if the given arguments are from an iteratee call.\n     *\n     * @private\n     * @param {*} value The potential iteratee value argument.\n     * @param {*} index The potential iteratee index or key argument.\n     * @param {*} object The potential iteratee object argument.\n     * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n     *  else `false`.\n     */\n    function isIterateeCall(value, index, object) {\n      if (!isObject(object)) {\n        return false;\n      }\n      var type = typeof index;\n      if (type == 'number'\n            ? (isArrayLike(object) && isIndex(index, object.length))\n            : (type == 'string' && index in object)\n          ) {\n        return eq(object[index], value);\n      }\n      return false;\n    }\n\n    /**\n     * Checks if `value` is a property name and not a property path.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @param {Object} [object] The object to query keys on.\n     * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n     */\n    function isKey(value, object) {\n      if (isArray(value)) {\n        return false;\n      }\n      var type = typeof value;\n      if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n          value == null || isSymbol(value)) {\n        return true;\n      }\n      return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n        (object != null && value in Object(object));\n    }\n\n    /**\n     * Checks if `value` is suitable for use as unique object key.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n     */\n    function isKeyable(value) {\n      var type = typeof value;\n      return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n        ? (value !== '__proto__')\n        : (value === null);\n    }\n\n    /**\n     * Checks if `func` has a lazy counterpart.\n     *\n     * @private\n     * @param {Function} func The function to check.\n     * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n     *  else `false`.\n     */\n    function isLaziable(func) {\n      var funcName = getFuncName(func),\n          other = lodash[funcName];\n\n      if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n        return false;\n      }\n      if (func === other) {\n        return true;\n      }\n      var data = getData(other);\n      return !!data && func === data[0];\n    }\n\n    /**\n     * Checks if `func` has its source masked.\n     *\n     * @private\n     * @param {Function} func The function to check.\n     * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n     */\n    function isMasked(func) {\n      return !!maskSrcKey && (maskSrcKey in func);\n    }\n\n    /**\n     * Checks if `func` is capable of being masked.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n     */\n    var isMaskable = coreJsData ? isFunction : stubFalse;\n\n    /**\n     * Checks if `value` is likely a prototype object.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n     */\n    function isPrototype(value) {\n      var Ctor = value && value.constructor,\n          proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n      return value === proto;\n    }\n\n    /**\n     * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n     *\n     * @private\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` if suitable for strict\n     *  equality comparisons, else `false`.\n     */\n    function isStrictComparable(value) {\n      return value === value && !isObject(value);\n    }\n\n    /**\n     * A specialized version of `matchesProperty` for source values suitable\n     * for strict equality comparisons, i.e. `===`.\n     *\n     * @private\n     * @param {string} key The key of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     */\n    function matchesStrictComparable(key, srcValue) {\n      return function(object) {\n        if (object == null) {\n          return false;\n        }\n        return object[key] === srcValue &&\n          (srcValue !== undefined || (key in Object(object)));\n      };\n    }\n\n    /**\n     * A specialized version of `_.memoize` which clears the memoized function's\n     * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n     *\n     * @private\n     * @param {Function} func The function to have its output memoized.\n     * @returns {Function} Returns the new memoized function.\n     */\n    function memoizeCapped(func) {\n      var result = memoize(func, function(key) {\n        if (cache.size === MAX_MEMOIZE_SIZE) {\n          cache.clear();\n        }\n        return key;\n      });\n\n      var cache = result.cache;\n      return result;\n    }\n\n    /**\n     * Merges the function metadata of `source` into `data`.\n     *\n     * Merging metadata reduces the number of wrappers used to invoke a function.\n     * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n     * may be applied regardless of execution order. Methods like `_.ary` and\n     * `_.rearg` modify function arguments, making the order in which they are\n     * executed important, preventing the merging of metadata. However, we make\n     * an exception for a safe combined case where curried functions have `_.ary`\n     * and or `_.rearg` applied.\n     *\n     * @private\n     * @param {Array} data The destination metadata.\n     * @param {Array} source The source metadata.\n     * @returns {Array} Returns `data`.\n     */\n    function mergeData(data, source) {\n      var bitmask = data[1],\n          srcBitmask = source[1],\n          newBitmask = bitmask | srcBitmask,\n          isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n      var isCombo =\n        ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n        ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n        ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n      // Exit early if metadata can't be merged.\n      if (!(isCommon || isCombo)) {\n        return data;\n      }\n      // Use source `thisArg` if available.\n      if (srcBitmask & WRAP_BIND_FLAG) {\n        data[2] = source[2];\n        // Set when currying a bound function.\n        newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n      }\n      // Compose partial arguments.\n      var value = source[3];\n      if (value) {\n        var partials = data[3];\n        data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n        data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n      }\n      // Compose partial right arguments.\n      value = source[5];\n      if (value) {\n        partials = data[5];\n        data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n        data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n      }\n      // Use source `argPos` if available.\n      value = source[7];\n      if (value) {\n        data[7] = value;\n      }\n      // Use source `ary` if it's smaller.\n      if (srcBitmask & WRAP_ARY_FLAG) {\n        data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n      }\n      // Use source `arity` if one is not provided.\n      if (data[9] == null) {\n        data[9] = source[9];\n      }\n      // Use source `func` and merge bitmasks.\n      data[0] = source[0];\n      data[1] = newBitmask;\n\n      return data;\n    }\n\n    /**\n     * This function is like\n     * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n     * except that it includes inherited enumerable properties.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     */\n    function nativeKeysIn(object) {\n      var result = [];\n      if (object != null) {\n        for (var key in Object(object)) {\n          result.push(key);\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Converts `value` to a string using `Object.prototype.toString`.\n     *\n     * @private\n     * @param {*} value The value to convert.\n     * @returns {string} Returns the converted string.\n     */\n    function objectToString(value) {\n      return nativeObjectToString.call(value);\n    }\n\n    /**\n     * A specialized version of `baseRest` which transforms the rest array.\n     *\n     * @private\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @param {Function} transform The rest array transform.\n     * @returns {Function} Returns the new function.\n     */\n    function overRest(func, start, transform) {\n      start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n      return function() {\n        var args = arguments,\n            index = -1,\n            length = nativeMax(args.length - start, 0),\n            array = Array(length);\n\n        while (++index < length) {\n          array[index] = args[start + index];\n        }\n        index = -1;\n        var otherArgs = Array(start + 1);\n        while (++index < start) {\n          otherArgs[index] = args[index];\n        }\n        otherArgs[start] = transform(array);\n        return apply(func, this, otherArgs);\n      };\n    }\n\n    /**\n     * Gets the parent value at `path` of `object`.\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {Array} path The path to get the parent value of.\n     * @returns {*} Returns the parent value.\n     */\n    function parent(object, path) {\n      return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n    }\n\n    /**\n     * Reorder `array` according to the specified indexes where the element at\n     * the first index is assigned as the first element, the element at\n     * the second index is assigned as the second element, and so on.\n     *\n     * @private\n     * @param {Array} array The array to reorder.\n     * @param {Array} indexes The arranged array indexes.\n     * @returns {Array} Returns `array`.\n     */\n    function reorder(array, indexes) {\n      var arrLength = array.length,\n          length = nativeMin(indexes.length, arrLength),\n          oldArray = copyArray(array);\n\n      while (length--) {\n        var index = indexes[length];\n        array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n      }\n      return array;\n    }\n\n    /**\n     * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n     *\n     * @private\n     * @param {Object} object The object to query.\n     * @param {string} key The key of the property to get.\n     * @returns {*} Returns the property value.\n     */\n    function safeGet(object, key) {\n      if (key === 'constructor' && typeof object[key] === 'function') {\n        return;\n      }\n\n      if (key == '__proto__') {\n        return;\n      }\n\n      return object[key];\n    }\n\n    /**\n     * Sets metadata for `func`.\n     *\n     * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n     * period of time, it will trip its breaker and transition to an identity\n     * function to avoid garbage collection pauses in V8. See\n     * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n     * for more details.\n     *\n     * @private\n     * @param {Function} func The function to associate metadata with.\n     * @param {*} data The metadata.\n     * @returns {Function} Returns `func`.\n     */\n    var setData = shortOut(baseSetData);\n\n    /**\n     * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n     *\n     * @private\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @returns {number|Object} Returns the timer id or timeout object.\n     */\n    var setTimeout = ctxSetTimeout || function(func, wait) {\n      return root.setTimeout(func, wait);\n    };\n\n    /**\n     * Sets the `toString` method of `func` to return `string`.\n     *\n     * @private\n     * @param {Function} func The function to modify.\n     * @param {Function} string The `toString` result.\n     * @returns {Function} Returns `func`.\n     */\n    var setToString = shortOut(baseSetToString);\n\n    /**\n     * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n     * with wrapper details in a comment at the top of the source body.\n     *\n     * @private\n     * @param {Function} wrapper The function to modify.\n     * @param {Function} reference The reference function.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @returns {Function} Returns `wrapper`.\n     */\n    function setWrapToString(wrapper, reference, bitmask) {\n      var source = (reference + '');\n      return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n    }\n\n    /**\n     * Creates a function that'll short out and invoke `identity` instead\n     * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n     * milliseconds.\n     *\n     * @private\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new shortable function.\n     */\n    function shortOut(func) {\n      var count = 0,\n          lastCalled = 0;\n\n      return function() {\n        var stamp = nativeNow(),\n            remaining = HOT_SPAN - (stamp - lastCalled);\n\n        lastCalled = stamp;\n        if (remaining > 0) {\n          if (++count >= HOT_COUNT) {\n            return arguments[0];\n          }\n        } else {\n          count = 0;\n        }\n        return func.apply(undefined, arguments);\n      };\n    }\n\n    /**\n     * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n     *\n     * @private\n     * @param {Array} array The array to shuffle.\n     * @param {number} [size=array.length] The size of `array`.\n     * @returns {Array} Returns `array`.\n     */\n    function shuffleSelf(array, size) {\n      var index = -1,\n          length = array.length,\n          lastIndex = length - 1;\n\n      size = size === undefined ? length : size;\n      while (++index < size) {\n        var rand = baseRandom(index, lastIndex),\n            value = array[rand];\n\n        array[rand] = array[index];\n        array[index] = value;\n      }\n      array.length = size;\n      return array;\n    }\n\n    /**\n     * Converts `string` to a property path array.\n     *\n     * @private\n     * @param {string} string The string to convert.\n     * @returns {Array} Returns the property path array.\n     */\n    var stringToPath = memoizeCapped(function(string) {\n      var result = [];\n      if (string.charCodeAt(0) === 46 /* . */) {\n        result.push('');\n      }\n      string.replace(rePropName, function(match, number, quote, subString) {\n        result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n      });\n      return result;\n    });\n\n    /**\n     * Converts `value` to a string key if it's not a string or symbol.\n     *\n     * @private\n     * @param {*} value The value to inspect.\n     * @returns {string|symbol} Returns the key.\n     */\n    function toKey(value) {\n      if (typeof value == 'string' || isSymbol(value)) {\n        return value;\n      }\n      var result = (value + '');\n      return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n    }\n\n    /**\n     * Converts `func` to its source code.\n     *\n     * @private\n     * @param {Function} func The function to convert.\n     * @returns {string} Returns the source code.\n     */\n    function toSource(func) {\n      if (func != null) {\n        try {\n          return funcToString.call(func);\n        } catch (e) {}\n        try {\n          return (func + '');\n        } catch (e) {}\n      }\n      return '';\n    }\n\n    /**\n     * Updates wrapper `details` based on `bitmask` flags.\n     *\n     * @private\n     * @returns {Array} details The details to modify.\n     * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n     * @returns {Array} Returns `details`.\n     */\n    function updateWrapDetails(details, bitmask) {\n      arrayEach(wrapFlags, function(pair) {\n        var value = '_.' + pair[0];\n        if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n          details.push(value);\n        }\n      });\n      return details.sort();\n    }\n\n    /**\n     * Creates a clone of `wrapper`.\n     *\n     * @private\n     * @param {Object} wrapper The wrapper to clone.\n     * @returns {Object} Returns the cloned wrapper.\n     */\n    function wrapperClone(wrapper) {\n      if (wrapper instanceof LazyWrapper) {\n        return wrapper.clone();\n      }\n      var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n      result.__actions__ = copyArray(wrapper.__actions__);\n      result.__index__  = wrapper.__index__;\n      result.__values__ = wrapper.__values__;\n      return result;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an array of elements split into groups the length of `size`.\n     * If `array` can't be split evenly, the final chunk will be the remaining\n     * elements.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to process.\n     * @param {number} [size=1] The length of each chunk\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the new array of chunks.\n     * @example\n     *\n     * _.chunk(['a', 'b', 'c', 'd'], 2);\n     * // => [['a', 'b'], ['c', 'd']]\n     *\n     * _.chunk(['a', 'b', 'c', 'd'], 3);\n     * // => [['a', 'b', 'c'], ['d']]\n     */\n    function chunk(array, size, guard) {\n      if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n        size = 1;\n      } else {\n        size = nativeMax(toInteger(size), 0);\n      }\n      var length = array == null ? 0 : array.length;\n      if (!length || size < 1) {\n        return [];\n      }\n      var index = 0,\n          resIndex = 0,\n          result = Array(nativeCeil(length / size));\n\n      while (index < length) {\n        result[resIndex++] = baseSlice(array, index, (index += size));\n      }\n      return result;\n    }\n\n    /**\n     * Creates an array with all falsey values removed. The values `false`, `null`,\n     * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to compact.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.compact([0, 1, false, 2, '', 3]);\n     * // => [1, 2, 3]\n     */\n    function compact(array) {\n      var index = -1,\n          length = array == null ? 0 : array.length,\n          resIndex = 0,\n          result = [];\n\n      while (++index < length) {\n        var value = array[index];\n        if (value) {\n          result[resIndex++] = value;\n        }\n      }\n      return result;\n    }\n\n    /**\n     * Creates a new array concatenating `array` with any additional arrays\n     * and/or values.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to concatenate.\n     * @param {...*} [values] The values to concatenate.\n     * @returns {Array} Returns the new concatenated array.\n     * @example\n     *\n     * var array = [1];\n     * var other = _.concat(array, 2, [3], [[4]]);\n     *\n     * console.log(other);\n     * // => [1, 2, 3, [4]]\n     *\n     * console.log(array);\n     * // => [1]\n     */\n    function concat() {\n      var length = arguments.length;\n      if (!length) {\n        return [];\n      }\n      var args = Array(length - 1),\n          array = arguments[0],\n          index = length;\n\n      while (index--) {\n        args[index - 1] = arguments[index];\n      }\n      return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n    }\n\n    /**\n     * Creates an array of `array` values not included in the other given arrays\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. The order and references of result values are\n     * determined by the first array.\n     *\n     * **Note:** Unlike `_.pullAll`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.without, _.xor\n     * @example\n     *\n     * _.difference([2, 1], [2, 3]);\n     * // => [1]\n     */\n    var difference = baseRest(function(array, values) {\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n        : [];\n    });\n\n    /**\n     * This method is like `_.difference` except that it accepts `iteratee` which\n     * is invoked for each element of `array` and `values` to generate the criterion\n     * by which they're compared. The order and references of result values are\n     * determined by the first array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n     * // => [{ 'x': 2 }]\n     */\n    var differenceBy = baseRest(function(array, values) {\n      var iteratee = last(values);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n        : [];\n    });\n\n    /**\n     * This method is like `_.difference` except that it accepts `comparator`\n     * which is invoked to compare elements of `array` to `values`. The order and\n     * references of result values are determined by the first array. The comparator\n     * is invoked with two arguments: (arrVal, othVal).\n     *\n     * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...Array} [values] The values to exclude.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     *\n     * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n     * // => [{ 'x': 2, 'y': 1 }]\n     */\n    var differenceWith = baseRest(function(array, values) {\n      var comparator = last(values);\n      if (isArrayLikeObject(comparator)) {\n        comparator = undefined;\n      }\n      return isArrayLikeObject(array)\n        ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n        : [];\n    });\n\n    /**\n     * Creates a slice of `array` with `n` elements dropped from the beginning.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to drop.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.drop([1, 2, 3]);\n     * // => [2, 3]\n     *\n     * _.drop([1, 2, 3], 2);\n     * // => [3]\n     *\n     * _.drop([1, 2, 3], 5);\n     * // => []\n     *\n     * _.drop([1, 2, 3], 0);\n     * // => [1, 2, 3]\n     */\n    function drop(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      return baseSlice(array, n < 0 ? 0 : n, length);\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements dropped from the end.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to drop.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.dropRight([1, 2, 3]);\n     * // => [1, 2]\n     *\n     * _.dropRight([1, 2, 3], 2);\n     * // => [1]\n     *\n     * _.dropRight([1, 2, 3], 5);\n     * // => []\n     *\n     * _.dropRight([1, 2, 3], 0);\n     * // => [1, 2, 3]\n     */\n    function dropRight(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      n = length - n;\n      return baseSlice(array, 0, n < 0 ? 0 : n);\n    }\n\n    /**\n     * Creates a slice of `array` excluding elements dropped from the end.\n     * Elements are dropped until `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.dropRightWhile(users, function(o) { return !o.active; });\n     * // => objects for ['barney']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.dropRightWhile(users, ['active', false]);\n     * // => objects for ['barney']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.dropRightWhile(users, 'active');\n     * // => objects for ['barney', 'fred', 'pebbles']\n     */\n    function dropRightWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), true, true)\n        : [];\n    }\n\n    /**\n     * Creates a slice of `array` excluding elements dropped from the beginning.\n     * Elements are dropped until `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.dropWhile(users, function(o) { return !o.active; });\n     * // => objects for ['pebbles']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.dropWhile(users, { 'user': 'barney', 'active': false });\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.dropWhile(users, ['active', false]);\n     * // => objects for ['pebbles']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.dropWhile(users, 'active');\n     * // => objects for ['barney', 'fred', 'pebbles']\n     */\n    function dropWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), true)\n        : [];\n    }\n\n    /**\n     * Fills elements of `array` with `value` from `start` up to, but not\n     * including, `end`.\n     *\n     * **Note:** This method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Array\n     * @param {Array} array The array to fill.\n     * @param {*} value The value to fill `array` with.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _.fill(array, 'a');\n     * console.log(array);\n     * // => ['a', 'a', 'a']\n     *\n     * _.fill(Array(3), 2);\n     * // => [2, 2, 2]\n     *\n     * _.fill([4, 6, 8, 10], '*', 1, 3);\n     * // => [4, '*', '*', 10]\n     */\n    function fill(array, value, start, end) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n        start = 0;\n        end = length;\n      }\n      return baseFill(array, value, start, end);\n    }\n\n    /**\n     * This method is like `_.find` except that it returns the index of the first\n     * element `predicate` returns truthy for instead of the element itself.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {number} Returns the index of the found element, else `-1`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.findIndex(users, function(o) { return o.user == 'barney'; });\n     * // => 0\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findIndex(users, { 'user': 'fred', 'active': false });\n     * // => 1\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findIndex(users, ['active', false]);\n     * // => 0\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findIndex(users, 'active');\n     * // => 2\n     */\n    function findIndex(array, predicate, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = fromIndex == null ? 0 : toInteger(fromIndex);\n      if (index < 0) {\n        index = nativeMax(length + index, 0);\n      }\n      return baseFindIndex(array, getIteratee(predicate, 3), index);\n    }\n\n    /**\n     * This method is like `_.findIndex` except that it iterates over elements\n     * of `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=array.length-1] The index to search from.\n     * @returns {number} Returns the index of the found element, else `-1`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n     * // => 2\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n     * // => 0\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findLastIndex(users, ['active', false]);\n     * // => 2\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findLastIndex(users, 'active');\n     * // => 0\n     */\n    function findLastIndex(array, predicate, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = length - 1;\n      if (fromIndex !== undefined) {\n        index = toInteger(fromIndex);\n        index = fromIndex < 0\n          ? nativeMax(length + index, 0)\n          : nativeMin(index, length - 1);\n      }\n      return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n    }\n\n    /**\n     * Flattens `array` a single level deep.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * _.flatten([1, [2, [3, [4]], 5]]);\n     * // => [1, 2, [3, [4]], 5]\n     */\n    function flatten(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseFlatten(array, 1) : [];\n    }\n\n    /**\n     * Recursively flattens `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * _.flattenDeep([1, [2, [3, [4]], 5]]);\n     * // => [1, 2, 3, 4, 5]\n     */\n    function flattenDeep(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseFlatten(array, INFINITY) : [];\n    }\n\n    /**\n     * Recursively flatten `array` up to `depth` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.4.0\n     * @category Array\n     * @param {Array} array The array to flatten.\n     * @param {number} [depth=1] The maximum recursion depth.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * var array = [1, [2, [3, [4]], 5]];\n     *\n     * _.flattenDepth(array, 1);\n     * // => [1, 2, [3, [4]], 5]\n     *\n     * _.flattenDepth(array, 2);\n     * // => [1, 2, 3, [4], 5]\n     */\n    function flattenDepth(array, depth) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      depth = depth === undefined ? 1 : toInteger(depth);\n      return baseFlatten(array, depth);\n    }\n\n    /**\n     * The inverse of `_.toPairs`; this method returns an object composed\n     * from key-value `pairs`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} pairs The key-value pairs.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.fromPairs([['a', 1], ['b', 2]]);\n     * // => { 'a': 1, 'b': 2 }\n     */\n    function fromPairs(pairs) {\n      var index = -1,\n          length = pairs == null ? 0 : pairs.length,\n          result = {};\n\n      while (++index < length) {\n        var pair = pairs[index];\n        result[pair[0]] = pair[1];\n      }\n      return result;\n    }\n\n    /**\n     * Gets the first element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @alias first\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {*} Returns the first element of `array`.\n     * @example\n     *\n     * _.head([1, 2, 3]);\n     * // => 1\n     *\n     * _.head([]);\n     * // => undefined\n     */\n    function head(array) {\n      return (array && array.length) ? array[0] : undefined;\n    }\n\n    /**\n     * Gets the index at which the first occurrence of `value` is found in `array`\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. If `fromIndex` is negative, it's used as the\n     * offset from the end of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.indexOf([1, 2, 1, 2], 2);\n     * // => 1\n     *\n     * // Search from the `fromIndex`.\n     * _.indexOf([1, 2, 1, 2], 2, 2);\n     * // => 3\n     */\n    function indexOf(array, value, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = fromIndex == null ? 0 : toInteger(fromIndex);\n      if (index < 0) {\n        index = nativeMax(length + index, 0);\n      }\n      return baseIndexOf(array, value, index);\n    }\n\n    /**\n     * Gets all but the last element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.initial([1, 2, 3]);\n     * // => [1, 2]\n     */\n    function initial(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseSlice(array, 0, -1) : [];\n    }\n\n    /**\n     * Creates an array of unique values that are included in all given arrays\n     * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons. The order and references of result values are\n     * determined by the first array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * _.intersection([2, 1], [2, 3]);\n     * // => [2]\n     */\n    var intersection = baseRest(function(arrays) {\n      var mapped = arrayMap(arrays, castArrayLikeObject);\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped)\n        : [];\n    });\n\n    /**\n     * This method is like `_.intersection` except that it accepts `iteratee`\n     * which is invoked for each element of each `arrays` to generate the criterion\n     * by which they're compared. The order and references of result values are\n     * determined by the first array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [2.1]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }]\n     */\n    var intersectionBy = baseRest(function(arrays) {\n      var iteratee = last(arrays),\n          mapped = arrayMap(arrays, castArrayLikeObject);\n\n      if (iteratee === last(mapped)) {\n        iteratee = undefined;\n      } else {\n        mapped.pop();\n      }\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped, getIteratee(iteratee, 2))\n        : [];\n    });\n\n    /**\n     * This method is like `_.intersection` except that it accepts `comparator`\n     * which is invoked to compare elements of `arrays`. The order and references\n     * of result values are determined by the first array. The comparator is\n     * invoked with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of intersecting values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.intersectionWith(objects, others, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }]\n     */\n    var intersectionWith = baseRest(function(arrays) {\n      var comparator = last(arrays),\n          mapped = arrayMap(arrays, castArrayLikeObject);\n\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      if (comparator) {\n        mapped.pop();\n      }\n      return (mapped.length && mapped[0] === arrays[0])\n        ? baseIntersection(mapped, undefined, comparator)\n        : [];\n    });\n\n    /**\n     * Converts all elements in `array` into a string separated by `separator`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to convert.\n     * @param {string} [separator=','] The element separator.\n     * @returns {string} Returns the joined string.\n     * @example\n     *\n     * _.join(['a', 'b', 'c'], '~');\n     * // => 'a~b~c'\n     */\n    function join(array, separator) {\n      return array == null ? '' : nativeJoin.call(array, separator);\n    }\n\n    /**\n     * Gets the last element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {*} Returns the last element of `array`.\n     * @example\n     *\n     * _.last([1, 2, 3]);\n     * // => 3\n     */\n    function last(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? array[length - 1] : undefined;\n    }\n\n    /**\n     * This method is like `_.indexOf` except that it iterates over elements of\n     * `array` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=array.length-1] The index to search from.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.lastIndexOf([1, 2, 1, 2], 2);\n     * // => 3\n     *\n     * // Search from the `fromIndex`.\n     * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n     * // => 1\n     */\n    function lastIndexOf(array, value, fromIndex) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return -1;\n      }\n      var index = length;\n      if (fromIndex !== undefined) {\n        index = toInteger(fromIndex);\n        index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n      }\n      return value === value\n        ? strictLastIndexOf(array, value, index)\n        : baseFindIndex(array, baseIsNaN, index, true);\n    }\n\n    /**\n     * Gets the element at index `n` of `array`. If `n` is negative, the nth\n     * element from the end is returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.11.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=0] The index of the element to return.\n     * @returns {*} Returns the nth element of `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'd'];\n     *\n     * _.nth(array, 1);\n     * // => 'b'\n     *\n     * _.nth(array, -2);\n     * // => 'c';\n     */\n    function nth(array, n) {\n      return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n    }\n\n    /**\n     * Removes all given values from `array` using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n     * to remove elements from an array by predicate.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {...*} [values] The values to remove.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n     *\n     * _.pull(array, 'a', 'c');\n     * console.log(array);\n     * // => ['b', 'b']\n     */\n    var pull = baseRest(pullAll);\n\n    /**\n     * This method is like `_.pull` except that it accepts an array of values to remove.\n     *\n     * **Note:** Unlike `_.difference`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n     *\n     * _.pullAll(array, ['a', 'c']);\n     * console.log(array);\n     * // => ['b', 'b']\n     */\n    function pullAll(array, values) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values)\n        : array;\n    }\n\n    /**\n     * This method is like `_.pullAll` except that it accepts `iteratee` which is\n     * invoked for each element of `array` and `values` to generate the criterion\n     * by which they're compared. The iteratee is invoked with one argument: (value).\n     *\n     * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n     *\n     * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n     * console.log(array);\n     * // => [{ 'x': 2 }]\n     */\n    function pullAllBy(array, values, iteratee) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values, getIteratee(iteratee, 2))\n        : array;\n    }\n\n    /**\n     * This method is like `_.pullAll` except that it accepts `comparator` which\n     * is invoked to compare elements of `array` to `values`. The comparator is\n     * invoked with two arguments: (arrVal, othVal).\n     *\n     * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Array} values The values to remove.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n     *\n     * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n     * console.log(array);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n     */\n    function pullAllWith(array, values, comparator) {\n      return (array && array.length && values && values.length)\n        ? basePullAll(array, values, undefined, comparator)\n        : array;\n    }\n\n    /**\n     * Removes elements from `array` corresponding to `indexes` and returns an\n     * array of removed elements.\n     *\n     * **Note:** Unlike `_.at`, this method mutates `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n     * @returns {Array} Returns the new array of removed elements.\n     * @example\n     *\n     * var array = ['a', 'b', 'c', 'd'];\n     * var pulled = _.pullAt(array, [1, 3]);\n     *\n     * console.log(array);\n     * // => ['a', 'c']\n     *\n     * console.log(pulled);\n     * // => ['b', 'd']\n     */\n    var pullAt = flatRest(function(array, indexes) {\n      var length = array == null ? 0 : array.length,\n          result = baseAt(array, indexes);\n\n      basePullAt(array, arrayMap(indexes, function(index) {\n        return isIndex(index, length) ? +index : index;\n      }).sort(compareAscending));\n\n      return result;\n    });\n\n    /**\n     * Removes all elements from `array` that `predicate` returns truthy for\n     * and returns an array of the removed elements. The predicate is invoked\n     * with three arguments: (value, index, array).\n     *\n     * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n     * to pull elements from an array by value.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new array of removed elements.\n     * @example\n     *\n     * var array = [1, 2, 3, 4];\n     * var evens = _.remove(array, function(n) {\n     *   return n % 2 == 0;\n     * });\n     *\n     * console.log(array);\n     * // => [1, 3]\n     *\n     * console.log(evens);\n     * // => [2, 4]\n     */\n    function remove(array, predicate) {\n      var result = [];\n      if (!(array && array.length)) {\n        return result;\n      }\n      var index = -1,\n          indexes = [],\n          length = array.length;\n\n      predicate = getIteratee(predicate, 3);\n      while (++index < length) {\n        var value = array[index];\n        if (predicate(value, index, array)) {\n          result.push(value);\n          indexes.push(index);\n        }\n      }\n      basePullAt(array, indexes);\n      return result;\n    }\n\n    /**\n     * Reverses `array` so that the first element becomes the last, the second\n     * element becomes the second to last, and so on.\n     *\n     * **Note:** This method mutates `array` and is based on\n     * [`Array#reverse`](https://mdn.io/Array/reverse).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to modify.\n     * @returns {Array} Returns `array`.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _.reverse(array);\n     * // => [3, 2, 1]\n     *\n     * console.log(array);\n     * // => [3, 2, 1]\n     */\n    function reverse(array) {\n      return array == null ? array : nativeReverse.call(array);\n    }\n\n    /**\n     * Creates a slice of `array` from `start` up to, but not including, `end`.\n     *\n     * **Note:** This method is used instead of\n     * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n     * returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to slice.\n     * @param {number} [start=0] The start position.\n     * @param {number} [end=array.length] The end position.\n     * @returns {Array} Returns the slice of `array`.\n     */\n    function slice(array, start, end) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n        start = 0;\n        end = length;\n      }\n      else {\n        start = start == null ? 0 : toInteger(start);\n        end = end === undefined ? length : toInteger(end);\n      }\n      return baseSlice(array, start, end);\n    }\n\n    /**\n     * Uses a binary search to determine the lowest index at which `value`\n     * should be inserted into `array` in order to maintain its sort order.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * _.sortedIndex([30, 50], 40);\n     * // => 1\n     */\n    function sortedIndex(array, value) {\n      return baseSortedIndex(array, value);\n    }\n\n    /**\n     * This method is like `_.sortedIndex` except that it accepts `iteratee`\n     * which is invoked for `value` and each element of `array` to compute their\n     * sort ranking. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * var objects = [{ 'x': 4 }, { 'x': 5 }];\n     *\n     * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n     * // => 0\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n     * // => 0\n     */\n    function sortedIndexBy(array, value, iteratee) {\n      return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n    }\n\n    /**\n     * This method is like `_.indexOf` except that it performs a binary\n     * search on a sorted `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n     * // => 1\n     */\n    function sortedIndexOf(array, value) {\n      var length = array == null ? 0 : array.length;\n      if (length) {\n        var index = baseSortedIndex(array, value);\n        if (index < length && eq(array[index], value)) {\n          return index;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * This method is like `_.sortedIndex` except that it returns the highest\n     * index at which `value` should be inserted into `array` in order to\n     * maintain its sort order.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n     * // => 4\n     */\n    function sortedLastIndex(array, value) {\n      return baseSortedIndex(array, value, true);\n    }\n\n    /**\n     * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n     * which is invoked for `value` and each element of `array` to compute their\n     * sort ranking. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The sorted array to inspect.\n     * @param {*} value The value to evaluate.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the index at which `value` should be inserted\n     *  into `array`.\n     * @example\n     *\n     * var objects = [{ 'x': 4 }, { 'x': 5 }];\n     *\n     * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n     * // => 1\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n     * // => 1\n     */\n    function sortedLastIndexBy(array, value, iteratee) {\n      return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n    }\n\n    /**\n     * This method is like `_.lastIndexOf` except that it performs a binary\n     * search on a sorted `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {*} value The value to search for.\n     * @returns {number} Returns the index of the matched value, else `-1`.\n     * @example\n     *\n     * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n     * // => 3\n     */\n    function sortedLastIndexOf(array, value) {\n      var length = array == null ? 0 : array.length;\n      if (length) {\n        var index = baseSortedIndex(array, value, true) - 1;\n        if (eq(array[index], value)) {\n          return index;\n        }\n      }\n      return -1;\n    }\n\n    /**\n     * This method is like `_.uniq` except that it's designed and optimized\n     * for sorted arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.sortedUniq([1, 1, 2]);\n     * // => [1, 2]\n     */\n    function sortedUniq(array) {\n      return (array && array.length)\n        ? baseSortedUniq(array)\n        : [];\n    }\n\n    /**\n     * This method is like `_.uniqBy` except that it's designed and optimized\n     * for sorted arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n     * // => [1.1, 2.3]\n     */\n    function sortedUniqBy(array, iteratee) {\n      return (array && array.length)\n        ? baseSortedUniq(array, getIteratee(iteratee, 2))\n        : [];\n    }\n\n    /**\n     * Gets all but the first element of `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.tail([1, 2, 3]);\n     * // => [2, 3]\n     */\n    function tail(array) {\n      var length = array == null ? 0 : array.length;\n      return length ? baseSlice(array, 1, length) : [];\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements taken from the beginning.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to take.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.take([1, 2, 3]);\n     * // => [1]\n     *\n     * _.take([1, 2, 3], 2);\n     * // => [1, 2]\n     *\n     * _.take([1, 2, 3], 5);\n     * // => [1, 2, 3]\n     *\n     * _.take([1, 2, 3], 0);\n     * // => []\n     */\n    function take(array, n, guard) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      return baseSlice(array, 0, n < 0 ? 0 : n);\n    }\n\n    /**\n     * Creates a slice of `array` with `n` elements taken from the end.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {number} [n=1] The number of elements to take.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * _.takeRight([1, 2, 3]);\n     * // => [3]\n     *\n     * _.takeRight([1, 2, 3], 2);\n     * // => [2, 3]\n     *\n     * _.takeRight([1, 2, 3], 5);\n     * // => [1, 2, 3]\n     *\n     * _.takeRight([1, 2, 3], 0);\n     * // => []\n     */\n    function takeRight(array, n, guard) {\n      var length = array == null ? 0 : array.length;\n      if (!length) {\n        return [];\n      }\n      n = (guard || n === undefined) ? 1 : toInteger(n);\n      n = length - n;\n      return baseSlice(array, n < 0 ? 0 : n, length);\n    }\n\n    /**\n     * Creates a slice of `array` with elements taken from the end. Elements are\n     * taken until `predicate` returns falsey. The predicate is invoked with\n     * three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': true },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': false }\n     * ];\n     *\n     * _.takeRightWhile(users, function(o) { return !o.active; });\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n     * // => objects for ['pebbles']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.takeRightWhile(users, ['active', false]);\n     * // => objects for ['fred', 'pebbles']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.takeRightWhile(users, 'active');\n     * // => []\n     */\n    function takeRightWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3), false, true)\n        : [];\n    }\n\n    /**\n     * Creates a slice of `array` with elements taken from the beginning. Elements\n     * are taken until `predicate` returns falsey. The predicate is invoked with\n     * three arguments: (value, index, array).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Array\n     * @param {Array} array The array to query.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the slice of `array`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'active': false },\n     *   { 'user': 'fred',    'active': false },\n     *   { 'user': 'pebbles', 'active': true }\n     * ];\n     *\n     * _.takeWhile(users, function(o) { return !o.active; });\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.takeWhile(users, { 'user': 'barney', 'active': false });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.takeWhile(users, ['active', false]);\n     * // => objects for ['barney', 'fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.takeWhile(users, 'active');\n     * // => []\n     */\n    function takeWhile(array, predicate) {\n      return (array && array.length)\n        ? baseWhile(array, getIteratee(predicate, 3))\n        : [];\n    }\n\n    /**\n     * Creates an array of unique values, in order, from all given arrays using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * _.union([2], [1, 2]);\n     * // => [2, 1]\n     */\n    var union = baseRest(function(arrays) {\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n    });\n\n    /**\n     * This method is like `_.union` except that it accepts `iteratee` which is\n     * invoked for each element of each `arrays` to generate the criterion by\n     * which uniqueness is computed. Result values are chosen from the first\n     * array in which the value occurs. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n     * // => [2.1, 1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }, { 'x': 2 }]\n     */\n    var unionBy = baseRest(function(arrays) {\n      var iteratee = last(arrays);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n    });\n\n    /**\n     * This method is like `_.union` except that it accepts `comparator` which\n     * is invoked to compare elements of `arrays`. Result values are chosen from\n     * the first array in which the value occurs. The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of combined values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.unionWith(objects, others, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n     */\n    var unionWith = baseRest(function(arrays) {\n      var comparator = last(arrays);\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n    });\n\n    /**\n     * Creates a duplicate-free version of an array, using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons, in which only the first occurrence of each element\n     * is kept. The order of result values is determined by the order they occur\n     * in the array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.uniq([2, 1, 2]);\n     * // => [2, 1]\n     */\n    function uniq(array) {\n      return (array && array.length) ? baseUniq(array) : [];\n    }\n\n    /**\n     * This method is like `_.uniq` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * uniqueness is computed. The order of result values is determined by the\n     * order they occur in the array. The iteratee is invoked with one argument:\n     * (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n     * // => [2.1, 1.2]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 1 }, { 'x': 2 }]\n     */\n    function uniqBy(array, iteratee) {\n      return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n    }\n\n    /**\n     * This method is like `_.uniq` except that it accepts `comparator` which\n     * is invoked to compare elements of `array`. The order of result values is\n     * determined by the order they occur in the array.The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new duplicate free array.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.uniqWith(objects, _.isEqual);\n     * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n     */\n    function uniqWith(array, comparator) {\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n    }\n\n    /**\n     * This method is like `_.zip` except that it accepts an array of grouped\n     * elements and creates an array regrouping the elements to their pre-zip\n     * configuration.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.2.0\n     * @category Array\n     * @param {Array} array The array of grouped elements to process.\n     * @returns {Array} Returns the new array of regrouped elements.\n     * @example\n     *\n     * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n     * // => [['a', 1, true], ['b', 2, false]]\n     *\n     * _.unzip(zipped);\n     * // => [['a', 'b'], [1, 2], [true, false]]\n     */\n    function unzip(array) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      var length = 0;\n      array = arrayFilter(array, function(group) {\n        if (isArrayLikeObject(group)) {\n          length = nativeMax(group.length, length);\n          return true;\n        }\n      });\n      return baseTimes(length, function(index) {\n        return arrayMap(array, baseProperty(index));\n      });\n    }\n\n    /**\n     * This method is like `_.unzip` except that it accepts `iteratee` to specify\n     * how regrouped values should be combined. The iteratee is invoked with the\n     * elements of each group: (...group).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Array\n     * @param {Array} array The array of grouped elements to process.\n     * @param {Function} [iteratee=_.identity] The function to combine\n     *  regrouped values.\n     * @returns {Array} Returns the new array of regrouped elements.\n     * @example\n     *\n     * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n     * // => [[1, 10, 100], [2, 20, 200]]\n     *\n     * _.unzipWith(zipped, _.add);\n     * // => [3, 30, 300]\n     */\n    function unzipWith(array, iteratee) {\n      if (!(array && array.length)) {\n        return [];\n      }\n      var result = unzip(array);\n      if (iteratee == null) {\n        return result;\n      }\n      return arrayMap(result, function(group) {\n        return apply(iteratee, undefined, group);\n      });\n    }\n\n    /**\n     * Creates an array excluding all given values using\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * for equality comparisons.\n     *\n     * **Note:** Unlike `_.pull`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {Array} array The array to inspect.\n     * @param {...*} [values] The values to exclude.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.difference, _.xor\n     * @example\n     *\n     * _.without([2, 1, 2, 3], 1, 2);\n     * // => [3]\n     */\n    var without = baseRest(function(array, values) {\n      return isArrayLikeObject(array)\n        ? baseDifference(array, values)\n        : [];\n    });\n\n    /**\n     * Creates an array of unique values that is the\n     * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n     * of the given arrays. The order of result values is determined by the order\n     * they occur in the arrays.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @returns {Array} Returns the new array of filtered values.\n     * @see _.difference, _.without\n     * @example\n     *\n     * _.xor([2, 1], [2, 3]);\n     * // => [1, 3]\n     */\n    var xor = baseRest(function(arrays) {\n      return baseXor(arrayFilter(arrays, isArrayLikeObject));\n    });\n\n    /**\n     * This method is like `_.xor` except that it accepts `iteratee` which is\n     * invoked for each element of each `arrays` to generate the criterion by\n     * which by which they're compared. The order of result values is determined\n     * by the order they occur in the arrays. The iteratee is invoked with one\n     * argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n     * // => [1.2, 3.4]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n     * // => [{ 'x': 2 }]\n     */\n    var xorBy = baseRest(function(arrays) {\n      var iteratee = last(arrays);\n      if (isArrayLikeObject(iteratee)) {\n        iteratee = undefined;\n      }\n      return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n    });\n\n    /**\n     * This method is like `_.xor` except that it accepts `comparator` which is\n     * invoked to compare elements of `arrays`. The order of result values is\n     * determined by the order they occur in the arrays. The comparator is invoked\n     * with two arguments: (arrVal, othVal).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to inspect.\n     * @param {Function} [comparator] The comparator invoked per element.\n     * @returns {Array} Returns the new array of filtered values.\n     * @example\n     *\n     * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n     * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n     *\n     * _.xorWith(objects, others, _.isEqual);\n     * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n     */\n    var xorWith = baseRest(function(arrays) {\n      var comparator = last(arrays);\n      comparator = typeof comparator == 'function' ? comparator : undefined;\n      return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n    });\n\n    /**\n     * Creates an array of grouped elements, the first of which contains the\n     * first elements of the given arrays, the second of which contains the\n     * second elements of the given arrays, and so on.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to process.\n     * @returns {Array} Returns the new array of grouped elements.\n     * @example\n     *\n     * _.zip(['a', 'b'], [1, 2], [true, false]);\n     * // => [['a', 1, true], ['b', 2, false]]\n     */\n    var zip = baseRest(unzip);\n\n    /**\n     * This method is like `_.fromPairs` except that it accepts two arrays,\n     * one of property identifiers and one of corresponding values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.4.0\n     * @category Array\n     * @param {Array} [props=[]] The property identifiers.\n     * @param {Array} [values=[]] The property values.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.zipObject(['a', 'b'], [1, 2]);\n     * // => { 'a': 1, 'b': 2 }\n     */\n    function zipObject(props, values) {\n      return baseZipObject(props || [], values || [], assignValue);\n    }\n\n    /**\n     * This method is like `_.zipObject` except that it supports property paths.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.1.0\n     * @category Array\n     * @param {Array} [props=[]] The property identifiers.\n     * @param {Array} [values=[]] The property values.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n     * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n     */\n    function zipObjectDeep(props, values) {\n      return baseZipObject(props || [], values || [], baseSet);\n    }\n\n    /**\n     * This method is like `_.zip` except that it accepts `iteratee` to specify\n     * how grouped values should be combined. The iteratee is invoked with the\n     * elements of each group: (...group).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Array\n     * @param {...Array} [arrays] The arrays to process.\n     * @param {Function} [iteratee=_.identity] The function to combine\n     *  grouped values.\n     * @returns {Array} Returns the new array of grouped elements.\n     * @example\n     *\n     * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n     *   return a + b + c;\n     * });\n     * // => [111, 222]\n     */\n    var zipWith = baseRest(function(arrays) {\n      var length = arrays.length,\n          iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n      iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n      return unzipWith(arrays, iteratee);\n    });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n     * chain sequences enabled. The result of such sequences must be unwrapped\n     * with `_#value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.3.0\n     * @category Seq\n     * @param {*} value The value to wrap.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36 },\n     *   { 'user': 'fred',    'age': 40 },\n     *   { 'user': 'pebbles', 'age': 1 }\n     * ];\n     *\n     * var youngest = _\n     *   .chain(users)\n     *   .sortBy('age')\n     *   .map(function(o) {\n     *     return o.user + ' is ' + o.age;\n     *   })\n     *   .head()\n     *   .value();\n     * // => 'pebbles is 1'\n     */\n    function chain(value) {\n      var result = lodash(value);\n      result.__chain__ = true;\n      return result;\n    }\n\n    /**\n     * This method invokes `interceptor` and returns `value`. The interceptor\n     * is invoked with one argument; (value). The purpose of this method is to\n     * \"tap into\" a method chain sequence in order to modify intermediate results.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @param {*} value The value to provide to `interceptor`.\n     * @param {Function} interceptor The function to invoke.\n     * @returns {*} Returns `value`.\n     * @example\n     *\n     * _([1, 2, 3])\n     *  .tap(function(array) {\n     *    // Mutate input array.\n     *    array.pop();\n     *  })\n     *  .reverse()\n     *  .value();\n     * // => [2, 1]\n     */\n    function tap(value, interceptor) {\n      interceptor(value);\n      return value;\n    }\n\n    /**\n     * This method is like `_.tap` except that it returns the result of `interceptor`.\n     * The purpose of this method is to \"pass thru\" values replacing intermediate\n     * results in a method chain sequence.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Seq\n     * @param {*} value The value to provide to `interceptor`.\n     * @param {Function} interceptor The function to invoke.\n     * @returns {*} Returns the result of `interceptor`.\n     * @example\n     *\n     * _('  abc  ')\n     *  .chain()\n     *  .trim()\n     *  .thru(function(value) {\n     *    return [value];\n     *  })\n     *  .value();\n     * // => ['abc']\n     */\n    function thru(value, interceptor) {\n      return interceptor(value);\n    }\n\n    /**\n     * This method is the wrapper version of `_.at`.\n     *\n     * @name at\n     * @memberOf _\n     * @since 1.0.0\n     * @category Seq\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n     *\n     * _(object).at(['a[0].b.c', 'a[1]']).value();\n     * // => [3, 4]\n     */\n    var wrapperAt = flatRest(function(paths) {\n      var length = paths.length,\n          start = length ? paths[0] : 0,\n          value = this.__wrapped__,\n          interceptor = function(object) { return baseAt(object, paths); };\n\n      if (length > 1 || this.__actions__.length ||\n          !(value instanceof LazyWrapper) || !isIndex(start)) {\n        return this.thru(interceptor);\n      }\n      value = value.slice(start, +start + (length ? 1 : 0));\n      value.__actions__.push({\n        'func': thru,\n        'args': [interceptor],\n        'thisArg': undefined\n      });\n      return new LodashWrapper(value, this.__chain__).thru(function(array) {\n        if (length && !array.length) {\n          array.push(undefined);\n        }\n        return array;\n      });\n    });\n\n    /**\n     * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n     *\n     * @name chain\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36 },\n     *   { 'user': 'fred',   'age': 40 }\n     * ];\n     *\n     * // A sequence without explicit chaining.\n     * _(users).head();\n     * // => { 'user': 'barney', 'age': 36 }\n     *\n     * // A sequence with explicit chaining.\n     * _(users)\n     *   .chain()\n     *   .head()\n     *   .pick('user')\n     *   .value();\n     * // => { 'user': 'barney' }\n     */\n    function wrapperChain() {\n      return chain(this);\n    }\n\n    /**\n     * Executes the chain sequence and returns the wrapped result.\n     *\n     * @name commit\n     * @memberOf _\n     * @since 3.2.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var array = [1, 2];\n     * var wrapped = _(array).push(3);\n     *\n     * console.log(array);\n     * // => [1, 2]\n     *\n     * wrapped = wrapped.commit();\n     * console.log(array);\n     * // => [1, 2, 3]\n     *\n     * wrapped.last();\n     * // => 3\n     *\n     * console.log(array);\n     * // => [1, 2, 3]\n     */\n    function wrapperCommit() {\n      return new LodashWrapper(this.value(), this.__chain__);\n    }\n\n    /**\n     * Gets the next value on a wrapped object following the\n     * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n     *\n     * @name next\n     * @memberOf _\n     * @since 4.0.0\n     * @category Seq\n     * @returns {Object} Returns the next iterator value.\n     * @example\n     *\n     * var wrapped = _([1, 2]);\n     *\n     * wrapped.next();\n     * // => { 'done': false, 'value': 1 }\n     *\n     * wrapped.next();\n     * // => { 'done': false, 'value': 2 }\n     *\n     * wrapped.next();\n     * // => { 'done': true, 'value': undefined }\n     */\n    function wrapperNext() {\n      if (this.__values__ === undefined) {\n        this.__values__ = toArray(this.value());\n      }\n      var done = this.__index__ >= this.__values__.length,\n          value = done ? undefined : this.__values__[this.__index__++];\n\n      return { 'done': done, 'value': value };\n    }\n\n    /**\n     * Enables the wrapper to be iterable.\n     *\n     * @name Symbol.iterator\n     * @memberOf _\n     * @since 4.0.0\n     * @category Seq\n     * @returns {Object} Returns the wrapper object.\n     * @example\n     *\n     * var wrapped = _([1, 2]);\n     *\n     * wrapped[Symbol.iterator]() === wrapped;\n     * // => true\n     *\n     * Array.from(wrapped);\n     * // => [1, 2]\n     */\n    function wrapperToIterator() {\n      return this;\n    }\n\n    /**\n     * Creates a clone of the chain sequence planting `value` as the wrapped value.\n     *\n     * @name plant\n     * @memberOf _\n     * @since 3.2.0\n     * @category Seq\n     * @param {*} value The value to plant.\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var wrapped = _([1, 2]).map(square);\n     * var other = wrapped.plant([3, 4]);\n     *\n     * other.value();\n     * // => [9, 16]\n     *\n     * wrapped.value();\n     * // => [1, 4]\n     */\n    function wrapperPlant(value) {\n      var result,\n          parent = this;\n\n      while (parent instanceof baseLodash) {\n        var clone = wrapperClone(parent);\n        clone.__index__ = 0;\n        clone.__values__ = undefined;\n        if (result) {\n          previous.__wrapped__ = clone;\n        } else {\n          result = clone;\n        }\n        var previous = clone;\n        parent = parent.__wrapped__;\n      }\n      previous.__wrapped__ = value;\n      return result;\n    }\n\n    /**\n     * This method is the wrapper version of `_.reverse`.\n     *\n     * **Note:** This method mutates the wrapped array.\n     *\n     * @name reverse\n     * @memberOf _\n     * @since 0.1.0\n     * @category Seq\n     * @returns {Object} Returns the new `lodash` wrapper instance.\n     * @example\n     *\n     * var array = [1, 2, 3];\n     *\n     * _(array).reverse().value()\n     * // => [3, 2, 1]\n     *\n     * console.log(array);\n     * // => [3, 2, 1]\n     */\n    function wrapperReverse() {\n      var value = this.__wrapped__;\n      if (value instanceof LazyWrapper) {\n        var wrapped = value;\n        if (this.__actions__.length) {\n          wrapped = new LazyWrapper(this);\n        }\n        wrapped = wrapped.reverse();\n        wrapped.__actions__.push({\n          'func': thru,\n          'args': [reverse],\n          'thisArg': undefined\n        });\n        return new LodashWrapper(wrapped, this.__chain__);\n      }\n      return this.thru(reverse);\n    }\n\n    /**\n     * Executes the chain sequence to resolve the unwrapped value.\n     *\n     * @name value\n     * @memberOf _\n     * @since 0.1.0\n     * @alias toJSON, valueOf\n     * @category Seq\n     * @returns {*} Returns the resolved unwrapped value.\n     * @example\n     *\n     * _([1, 2, 3]).value();\n     * // => [1, 2, 3]\n     */\n    function wrapperValue() {\n      return baseWrapperValue(this.__wrapped__, this.__actions__);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The corresponding value of\n     * each key is the number of times the key was returned by `iteratee`. The\n     * iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * _.countBy([6.1, 4.2, 6.3], Math.floor);\n     * // => { '4': 1, '6': 2 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.countBy(['one', 'two', 'three'], 'length');\n     * // => { '3': 2, '5': 1 }\n     */\n    var countBy = createAggregator(function(result, value, key) {\n      if (hasOwnProperty.call(result, key)) {\n        ++result[key];\n      } else {\n        baseAssignValue(result, key, 1);\n      }\n    });\n\n    /**\n     * Checks if `predicate` returns truthy for **all** elements of `collection`.\n     * Iteration is stopped once `predicate` returns falsey. The predicate is\n     * invoked with three arguments: (value, index|key, collection).\n     *\n     * **Note:** This method returns `true` for\n     * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n     * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n     * elements of empty collections.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {boolean} Returns `true` if all elements pass the predicate check,\n     *  else `false`.\n     * @example\n     *\n     * _.every([true, 1, null, 'yes'], Boolean);\n     * // => false\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': false },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.every(users, { 'user': 'barney', 'active': false });\n     * // => false\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.every(users, ['active', false]);\n     * // => true\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.every(users, 'active');\n     * // => false\n     */\n    function every(collection, predicate, guard) {\n      var func = isArray(collection) ? arrayEvery : baseEvery;\n      if (guard && isIterateeCall(collection, predicate, guard)) {\n        predicate = undefined;\n      }\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Iterates over elements of `collection`, returning an array of all elements\n     * `predicate` returns truthy for. The predicate is invoked with three\n     * arguments: (value, index|key, collection).\n     *\n     * **Note:** Unlike `_.remove`, this method returns a new array.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     * @see _.reject\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': true },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * _.filter(users, function(o) { return !o.active; });\n     * // => objects for ['fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.filter(users, { 'age': 36, 'active': true });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.filter(users, ['active', false]);\n     * // => objects for ['fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.filter(users, 'active');\n     * // => objects for ['barney']\n     *\n     * // Combining several predicates using `_.overEvery` or `_.overSome`.\n     * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n     * // => objects for ['fred', 'barney']\n     */\n    function filter(collection, predicate) {\n      var func = isArray(collection) ? arrayFilter : baseFilter;\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Iterates over elements of `collection`, returning the first element\n     * `predicate` returns truthy for. The predicate is invoked with three\n     * arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @returns {*} Returns the matched element, else `undefined`.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36, 'active': true },\n     *   { 'user': 'fred',    'age': 40, 'active': false },\n     *   { 'user': 'pebbles', 'age': 1,  'active': true }\n     * ];\n     *\n     * _.find(users, function(o) { return o.age < 40; });\n     * // => object for 'barney'\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.find(users, { 'age': 1, 'active': true });\n     * // => object for 'pebbles'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.find(users, ['active', false]);\n     * // => object for 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.find(users, 'active');\n     * // => object for 'barney'\n     */\n    var find = createFind(findIndex);\n\n    /**\n     * This method is like `_.find` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param {number} [fromIndex=collection.length-1] The index to search from.\n     * @returns {*} Returns the matched element, else `undefined`.\n     * @example\n     *\n     * _.findLast([1, 2, 3, 4], function(n) {\n     *   return n % 2 == 1;\n     * });\n     * // => 3\n     */\n    var findLast = createFind(findLastIndex);\n\n    /**\n     * Creates a flattened array of values by running each element in `collection`\n     * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n     * with three arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [n, n];\n     * }\n     *\n     * _.flatMap([1, 2], duplicate);\n     * // => [1, 1, 2, 2]\n     */\n    function flatMap(collection, iteratee) {\n      return baseFlatten(map(collection, iteratee), 1);\n    }\n\n    /**\n     * This method is like `_.flatMap` except that it recursively flattens the\n     * mapped results.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [[[n, n]]];\n     * }\n     *\n     * _.flatMapDeep([1, 2], duplicate);\n     * // => [1, 1, 2, 2]\n     */\n    function flatMapDeep(collection, iteratee) {\n      return baseFlatten(map(collection, iteratee), INFINITY);\n    }\n\n    /**\n     * This method is like `_.flatMap` except that it recursively flattens the\n     * mapped results up to `depth` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {number} [depth=1] The maximum recursion depth.\n     * @returns {Array} Returns the new flattened array.\n     * @example\n     *\n     * function duplicate(n) {\n     *   return [[[n, n]]];\n     * }\n     *\n     * _.flatMapDepth([1, 2], duplicate, 2);\n     * // => [[1, 1], [2, 2]]\n     */\n    function flatMapDepth(collection, iteratee, depth) {\n      depth = depth === undefined ? 1 : toInteger(depth);\n      return baseFlatten(map(collection, iteratee), depth);\n    }\n\n    /**\n     * Iterates over elements of `collection` and invokes `iteratee` for each element.\n     * The iteratee is invoked with three arguments: (value, index|key, collection).\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n     * property are iterated like arrays. To avoid this behavior use `_.forIn`\n     * or `_.forOwn` for object iteration.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @alias each\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     * @see _.forEachRight\n     * @example\n     *\n     * _.forEach([1, 2], function(value) {\n     *   console.log(value);\n     * });\n     * // => Logs `1` then `2`.\n     *\n     * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n     */\n    function forEach(collection, iteratee) {\n      var func = isArray(collection) ? arrayEach : baseEach;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.forEach` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @alias eachRight\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array|Object} Returns `collection`.\n     * @see _.forEach\n     * @example\n     *\n     * _.forEachRight([1, 2], function(value) {\n     *   console.log(value);\n     * });\n     * // => Logs `2` then `1`.\n     */\n    function forEachRight(collection, iteratee) {\n      var func = isArray(collection) ? arrayEachRight : baseEachRight;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The order of grouped values\n     * is determined by the order they occur in `collection`. The corresponding\n     * value of each key is an array of elements responsible for generating the\n     * key. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n     * // => { '4': [4.2], '6': [6.1, 6.3] }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.groupBy(['one', 'two', 'three'], 'length');\n     * // => { '3': ['one', 'two'], '5': ['three'] }\n     */\n    var groupBy = createAggregator(function(result, value, key) {\n      if (hasOwnProperty.call(result, key)) {\n        result[key].push(value);\n      } else {\n        baseAssignValue(result, key, [value]);\n      }\n    });\n\n    /**\n     * Checks if `value` is in `collection`. If `collection` is a string, it's\n     * checked for a substring of `value`, otherwise\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * is used for equality comparisons. If `fromIndex` is negative, it's used as\n     * the offset from the end of `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object|string} collection The collection to inspect.\n     * @param {*} value The value to search for.\n     * @param {number} [fromIndex=0] The index to search from.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n     * @returns {boolean} Returns `true` if `value` is found, else `false`.\n     * @example\n     *\n     * _.includes([1, 2, 3], 1);\n     * // => true\n     *\n     * _.includes([1, 2, 3], 1, 2);\n     * // => false\n     *\n     * _.includes({ 'a': 1, 'b': 2 }, 1);\n     * // => true\n     *\n     * _.includes('abcd', 'bc');\n     * // => true\n     */\n    function includes(collection, value, fromIndex, guard) {\n      collection = isArrayLike(collection) ? collection : values(collection);\n      fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n      var length = collection.length;\n      if (fromIndex < 0) {\n        fromIndex = nativeMax(length + fromIndex, 0);\n      }\n      return isString(collection)\n        ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n        : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n    }\n\n    /**\n     * Invokes the method at `path` of each element in `collection`, returning\n     * an array of the results of each invoked method. Any additional arguments\n     * are provided to each invoked method. If `path` is a function, it's invoked\n     * for, and `this` bound to, each element in `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Array|Function|string} path The path of the method to invoke or\n     *  the function invoked per iteration.\n     * @param {...*} [args] The arguments to invoke each method with.\n     * @returns {Array} Returns the array of results.\n     * @example\n     *\n     * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n     * // => [[1, 5, 7], [1, 2, 3]]\n     *\n     * _.invokeMap([123, 456], String.prototype.split, '');\n     * // => [['1', '2', '3'], ['4', '5', '6']]\n     */\n    var invokeMap = baseRest(function(collection, path, args) {\n      var index = -1,\n          isFunc = typeof path == 'function',\n          result = isArrayLike(collection) ? Array(collection.length) : [];\n\n      baseEach(collection, function(value) {\n        result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n      });\n      return result;\n    });\n\n    /**\n     * Creates an object composed of keys generated from the results of running\n     * each element of `collection` thru `iteratee`. The corresponding value of\n     * each key is the last element responsible for generating the key. The\n     * iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n     * @returns {Object} Returns the composed aggregate object.\n     * @example\n     *\n     * var array = [\n     *   { 'dir': 'left', 'code': 97 },\n     *   { 'dir': 'right', 'code': 100 }\n     * ];\n     *\n     * _.keyBy(array, function(o) {\n     *   return String.fromCharCode(o.code);\n     * });\n     * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n     *\n     * _.keyBy(array, 'dir');\n     * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n     */\n    var keyBy = createAggregator(function(result, value, key) {\n      baseAssignValue(result, key, value);\n    });\n\n    /**\n     * Creates an array of values by running each element in `collection` thru\n     * `iteratee`. The iteratee is invoked with three arguments:\n     * (value, index|key, collection).\n     *\n     * Many lodash methods are guarded to work as iteratees for methods like\n     * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n     *\n     * The guarded methods are:\n     * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n     * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n     * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n     * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new mapped array.\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * _.map([4, 8], square);\n     * // => [16, 64]\n     *\n     * _.map({ 'a': 4, 'b': 8 }, square);\n     * // => [16, 64] (iteration order is not guaranteed)\n     *\n     * var users = [\n     *   { 'user': 'barney' },\n     *   { 'user': 'fred' }\n     * ];\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.map(users, 'user');\n     * // => ['barney', 'fred']\n     */\n    function map(collection, iteratee) {\n      var func = isArray(collection) ? arrayMap : baseMap;\n      return func(collection, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.sortBy` except that it allows specifying the sort\n     * orders of the iteratees to sort by. If `orders` is unspecified, all values\n     * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n     * descending or \"asc\" for ascending sort order of corresponding values.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n     *  The iteratees to sort by.\n     * @param {string[]} [orders] The sort orders of `iteratees`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n     * @returns {Array} Returns the new sorted array.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'fred',   'age': 48 },\n     *   { 'user': 'barney', 'age': 34 },\n     *   { 'user': 'fred',   'age': 40 },\n     *   { 'user': 'barney', 'age': 36 }\n     * ];\n     *\n     * // Sort by `user` in ascending order and by `age` in descending order.\n     * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n     * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n     */\n    function orderBy(collection, iteratees, orders, guard) {\n      if (collection == null) {\n        return [];\n      }\n      if (!isArray(iteratees)) {\n        iteratees = iteratees == null ? [] : [iteratees];\n      }\n      orders = guard ? undefined : orders;\n      if (!isArray(orders)) {\n        orders = orders == null ? [] : [orders];\n      }\n      return baseOrderBy(collection, iteratees, orders);\n    }\n\n    /**\n     * Creates an array of elements split into two groups, the first of which\n     * contains elements `predicate` returns truthy for, the second of which\n     * contains elements `predicate` returns falsey for. The predicate is\n     * invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the array of grouped elements.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney',  'age': 36, 'active': false },\n     *   { 'user': 'fred',    'age': 40, 'active': true },\n     *   { 'user': 'pebbles', 'age': 1,  'active': false }\n     * ];\n     *\n     * _.partition(users, function(o) { return o.active; });\n     * // => objects for [['fred'], ['barney', 'pebbles']]\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.partition(users, { 'age': 1, 'active': false });\n     * // => objects for [['pebbles'], ['barney', 'fred']]\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.partition(users, ['active', false]);\n     * // => objects for [['barney', 'pebbles'], ['fred']]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.partition(users, 'active');\n     * // => objects for [['fred'], ['barney', 'pebbles']]\n     */\n    var partition = createAggregator(function(result, value, key) {\n      result[key ? 0 : 1].push(value);\n    }, function() { return [[], []]; });\n\n    /**\n     * Reduces `collection` to a value which is the accumulated result of running\n     * each element in `collection` thru `iteratee`, where each successive\n     * invocation is supplied the return value of the previous. If `accumulator`\n     * is not given, the first element of `collection` is used as the initial\n     * value. The iteratee is invoked with four arguments:\n     * (accumulator, value, index|key, collection).\n     *\n     * Many lodash methods are guarded to work as iteratees for methods like\n     * `_.reduce`, `_.reduceRight`, and `_.transform`.\n     *\n     * The guarded methods are:\n     * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n     * and `sortBy`\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The initial value.\n     * @returns {*} Returns the accumulated value.\n     * @see _.reduceRight\n     * @example\n     *\n     * _.reduce([1, 2], function(sum, n) {\n     *   return sum + n;\n     * }, 0);\n     * // => 3\n     *\n     * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n     *   (result[value] || (result[value] = [])).push(key);\n     *   return result;\n     * }, {});\n     * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n     */\n    function reduce(collection, iteratee, accumulator) {\n      var func = isArray(collection) ? arrayReduce : baseReduce,\n          initAccum = arguments.length < 3;\n\n      return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n    }\n\n    /**\n     * This method is like `_.reduce` except that it iterates over elements of\n     * `collection` from right to left.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The initial value.\n     * @returns {*} Returns the accumulated value.\n     * @see _.reduce\n     * @example\n     *\n     * var array = [[0, 1], [2, 3], [4, 5]];\n     *\n     * _.reduceRight(array, function(flattened, other) {\n     *   return flattened.concat(other);\n     * }, []);\n     * // => [4, 5, 2, 3, 0, 1]\n     */\n    function reduceRight(collection, iteratee, accumulator) {\n      var func = isArray(collection) ? arrayReduceRight : baseReduce,\n          initAccum = arguments.length < 3;\n\n      return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n    }\n\n    /**\n     * The opposite of `_.filter`; this method returns the elements of `collection`\n     * that `predicate` does **not** return truthy for.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the new filtered array.\n     * @see _.filter\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': false },\n     *   { 'user': 'fred',   'age': 40, 'active': true }\n     * ];\n     *\n     * _.reject(users, function(o) { return !o.active; });\n     * // => objects for ['fred']\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.reject(users, { 'age': 40, 'active': true });\n     * // => objects for ['barney']\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.reject(users, ['active', false]);\n     * // => objects for ['fred']\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.reject(users, 'active');\n     * // => objects for ['barney']\n     */\n    function reject(collection, predicate) {\n      var func = isArray(collection) ? arrayFilter : baseFilter;\n      return func(collection, negate(getIteratee(predicate, 3)));\n    }\n\n    /**\n     * Gets a random element from `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to sample.\n     * @returns {*} Returns the random element.\n     * @example\n     *\n     * _.sample([1, 2, 3, 4]);\n     * // => 2\n     */\n    function sample(collection) {\n      var func = isArray(collection) ? arraySample : baseSample;\n      return func(collection);\n    }\n\n    /**\n     * Gets `n` random elements at unique keys from `collection` up to the\n     * size of `collection`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to sample.\n     * @param {number} [n=1] The number of elements to sample.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the random elements.\n     * @example\n     *\n     * _.sampleSize([1, 2, 3], 2);\n     * // => [3, 1]\n     *\n     * _.sampleSize([1, 2, 3], 4);\n     * // => [2, 3, 1]\n     */\n    function sampleSize(collection, n, guard) {\n      if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n        n = 1;\n      } else {\n        n = toInteger(n);\n      }\n      var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n      return func(collection, n);\n    }\n\n    /**\n     * Creates an array of shuffled values, using a version of the\n     * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to shuffle.\n     * @returns {Array} Returns the new shuffled array.\n     * @example\n     *\n     * _.shuffle([1, 2, 3, 4]);\n     * // => [4, 1, 3, 2]\n     */\n    function shuffle(collection) {\n      var func = isArray(collection) ? arrayShuffle : baseShuffle;\n      return func(collection);\n    }\n\n    /**\n     * Gets the size of `collection` by returning its length for array-like\n     * values or the number of own enumerable string keyed properties for objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object|string} collection The collection to inspect.\n     * @returns {number} Returns the collection size.\n     * @example\n     *\n     * _.size([1, 2, 3]);\n     * // => 3\n     *\n     * _.size({ 'a': 1, 'b': 2 });\n     * // => 2\n     *\n     * _.size('pebbles');\n     * // => 7\n     */\n    function size(collection) {\n      if (collection == null) {\n        return 0;\n      }\n      if (isArrayLike(collection)) {\n        return isString(collection) ? stringSize(collection) : collection.length;\n      }\n      var tag = getTag(collection);\n      if (tag == mapTag || tag == setTag) {\n        return collection.size;\n      }\n      return baseKeys(collection).length;\n    }\n\n    /**\n     * Checks if `predicate` returns truthy for **any** element of `collection`.\n     * Iteration is stopped once `predicate` returns truthy. The predicate is\n     * invoked with three arguments: (value, index|key, collection).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {boolean} Returns `true` if any element passes the predicate check,\n     *  else `false`.\n     * @example\n     *\n     * _.some([null, 0, 'yes', false], Boolean);\n     * // => true\n     *\n     * var users = [\n     *   { 'user': 'barney', 'active': true },\n     *   { 'user': 'fred',   'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.some(users, { 'user': 'barney', 'active': false });\n     * // => false\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.some(users, ['active', false]);\n     * // => true\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.some(users, 'active');\n     * // => true\n     */\n    function some(collection, predicate, guard) {\n      var func = isArray(collection) ? arraySome : baseSome;\n      if (guard && isIterateeCall(collection, predicate, guard)) {\n        predicate = undefined;\n      }\n      return func(collection, getIteratee(predicate, 3));\n    }\n\n    /**\n     * Creates an array of elements, sorted in ascending order by the results of\n     * running each element in a collection thru each iteratee. This method\n     * performs a stable sort, that is, it preserves the original sort order of\n     * equal elements. The iteratees are invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Collection\n     * @param {Array|Object} collection The collection to iterate over.\n     * @param {...(Function|Function[])} [iteratees=[_.identity]]\n     *  The iteratees to sort by.\n     * @returns {Array} Returns the new sorted array.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'fred',   'age': 48 },\n     *   { 'user': 'barney', 'age': 36 },\n     *   { 'user': 'fred',   'age': 30 },\n     *   { 'user': 'barney', 'age': 34 }\n     * ];\n     *\n     * _.sortBy(users, [function(o) { return o.user; }]);\n     * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n     *\n     * _.sortBy(users, ['user', 'age']);\n     * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n     */\n    var sortBy = baseRest(function(collection, iteratees) {\n      if (collection == null) {\n        return [];\n      }\n      var length = iteratees.length;\n      if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n        iteratees = [];\n      } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n        iteratees = [iteratees[0]];\n      }\n      return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n    });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Gets the timestamp of the number of milliseconds that have elapsed since\n     * the Unix epoch (1 January 1970 00:00:00 UTC).\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Date\n     * @returns {number} Returns the timestamp.\n     * @example\n     *\n     * _.defer(function(stamp) {\n     *   console.log(_.now() - stamp);\n     * }, _.now());\n     * // => Logs the number of milliseconds it took for the deferred invocation.\n     */\n    var now = ctxNow || function() {\n      return root.Date.now();\n    };\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * The opposite of `_.before`; this method creates a function that invokes\n     * `func` once it's called `n` or more times.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {number} n The number of calls before `func` is invoked.\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * var saves = ['profile', 'settings'];\n     *\n     * var done = _.after(saves.length, function() {\n     *   console.log('done saving!');\n     * });\n     *\n     * _.forEach(saves, function(type) {\n     *   asyncSave({ 'type': type, 'complete': done });\n     * });\n     * // => Logs 'done saving!' after the two async saves have completed.\n     */\n    function after(n, func) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      n = toInteger(n);\n      return function() {\n        if (--n < 1) {\n          return func.apply(this, arguments);\n        }\n      };\n    }\n\n    /**\n     * Creates a function that invokes `func`, with up to `n` arguments,\n     * ignoring any additional arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to cap arguments for.\n     * @param {number} [n=func.length] The arity cap.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new capped function.\n     * @example\n     *\n     * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n     * // => [6, 8, 10]\n     */\n    function ary(func, n, guard) {\n      n = guard ? undefined : n;\n      n = (func && n == null) ? func.length : n;\n      return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n    }\n\n    /**\n     * Creates a function that invokes `func`, with the `this` binding and arguments\n     * of the created function, while it's called less than `n` times. Subsequent\n     * calls to the created function return the result of the last `func` invocation.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {number} n The number of calls at which `func` is no longer invoked.\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * jQuery(element).on('click', _.before(5, addContactToList));\n     * // => Allows adding up to 4 contacts to the list.\n     */\n    function before(n, func) {\n      var result;\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      n = toInteger(n);\n      return function() {\n        if (--n > 0) {\n          result = func.apply(this, arguments);\n        }\n        if (n <= 1) {\n          func = undefined;\n        }\n        return result;\n      };\n    }\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of `thisArg`\n     * and `partials` prepended to the arguments it receives.\n     *\n     * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n     * may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n     * property of bound functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to bind.\n     * @param {*} thisArg The `this` binding of `func`.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new bound function.\n     * @example\n     *\n     * function greet(greeting, punctuation) {\n     *   return greeting + ' ' + this.user + punctuation;\n     * }\n     *\n     * var object = { 'user': 'fred' };\n     *\n     * var bound = _.bind(greet, object, 'hi');\n     * bound('!');\n     * // => 'hi fred!'\n     *\n     * // Bound with placeholders.\n     * var bound = _.bind(greet, object, _, '!');\n     * bound('hi');\n     * // => 'hi fred!'\n     */\n    var bind = baseRest(function(func, thisArg, partials) {\n      var bitmask = WRAP_BIND_FLAG;\n      if (partials.length) {\n        var holders = replaceHolders(partials, getHolder(bind));\n        bitmask |= WRAP_PARTIAL_FLAG;\n      }\n      return createWrap(func, bitmask, thisArg, partials, holders);\n    });\n\n    /**\n     * Creates a function that invokes the method at `object[key]` with `partials`\n     * prepended to the arguments it receives.\n     *\n     * This method differs from `_.bind` by allowing bound functions to reference\n     * methods that may be redefined or don't yet exist. See\n     * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n     * for more details.\n     *\n     * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.10.0\n     * @category Function\n     * @param {Object} object The object to invoke the method on.\n     * @param {string} key The key of the method.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new bound function.\n     * @example\n     *\n     * var object = {\n     *   'user': 'fred',\n     *   'greet': function(greeting, punctuation) {\n     *     return greeting + ' ' + this.user + punctuation;\n     *   }\n     * };\n     *\n     * var bound = _.bindKey(object, 'greet', 'hi');\n     * bound('!');\n     * // => 'hi fred!'\n     *\n     * object.greet = function(greeting, punctuation) {\n     *   return greeting + 'ya ' + this.user + punctuation;\n     * };\n     *\n     * bound('!');\n     * // => 'hiya fred!'\n     *\n     * // Bound with placeholders.\n     * var bound = _.bindKey(object, 'greet', _, '!');\n     * bound('hi');\n     * // => 'hiya fred!'\n     */\n    var bindKey = baseRest(function(object, key, partials) {\n      var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n      if (partials.length) {\n        var holders = replaceHolders(partials, getHolder(bindKey));\n        bitmask |= WRAP_PARTIAL_FLAG;\n      }\n      return createWrap(key, bitmask, object, partials, holders);\n    });\n\n    /**\n     * Creates a function that accepts arguments of `func` and either invokes\n     * `func` returning its result, if at least `arity` number of arguments have\n     * been provided, or returns a function that accepts the remaining `func`\n     * arguments, and so on. The arity of `func` may be specified if `func.length`\n     * is not sufficient.\n     *\n     * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n     * may be used as a placeholder for provided arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of curried functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Function\n     * @param {Function} func The function to curry.\n     * @param {number} [arity=func.length] The arity of `func`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new curried function.\n     * @example\n     *\n     * var abc = function(a, b, c) {\n     *   return [a, b, c];\n     * };\n     *\n     * var curried = _.curry(abc);\n     *\n     * curried(1)(2)(3);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2)(3);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2, 3);\n     * // => [1, 2, 3]\n     *\n     * // Curried with placeholders.\n     * curried(1)(_, 3)(2);\n     * // => [1, 2, 3]\n     */\n    function curry(func, arity, guard) {\n      arity = guard ? undefined : arity;\n      var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n      result.placeholder = curry.placeholder;\n      return result;\n    }\n\n    /**\n     * This method is like `_.curry` except that arguments are applied to `func`\n     * in the manner of `_.partialRight` instead of `_.partial`.\n     *\n     * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for provided arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of curried functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to curry.\n     * @param {number} [arity=func.length] The arity of `func`.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the new curried function.\n     * @example\n     *\n     * var abc = function(a, b, c) {\n     *   return [a, b, c];\n     * };\n     *\n     * var curried = _.curryRight(abc);\n     *\n     * curried(3)(2)(1);\n     * // => [1, 2, 3]\n     *\n     * curried(2, 3)(1);\n     * // => [1, 2, 3]\n     *\n     * curried(1, 2, 3);\n     * // => [1, 2, 3]\n     *\n     * // Curried with placeholders.\n     * curried(3)(1, _)(2);\n     * // => [1, 2, 3]\n     */\n    function curryRight(func, arity, guard) {\n      arity = guard ? undefined : arity;\n      var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n      result.placeholder = curryRight.placeholder;\n      return result;\n    }\n\n    /**\n     * Creates a debounced function that delays invoking `func` until after `wait`\n     * milliseconds have elapsed since the last time the debounced function was\n     * invoked. The debounced function comes with a `cancel` method to cancel\n     * delayed `func` invocations and a `flush` method to immediately invoke them.\n     * Provide `options` to indicate whether `func` should be invoked on the\n     * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n     * with the last arguments provided to the debounced function. Subsequent\n     * calls to the debounced function return the result of the last `func`\n     * invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the debounced function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `_.debounce` and `_.throttle`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to debounce.\n     * @param {number} [wait=0] The number of milliseconds to delay.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.leading=false]\n     *  Specify invoking on the leading edge of the timeout.\n     * @param {number} [options.maxWait]\n     *  The maximum time `func` is allowed to be delayed before it's invoked.\n     * @param {boolean} [options.trailing=true]\n     *  Specify invoking on the trailing edge of the timeout.\n     * @returns {Function} Returns the new debounced function.\n     * @example\n     *\n     * // Avoid costly calculations while the window size is in flux.\n     * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n     *\n     * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n     * jQuery(element).on('click', _.debounce(sendMail, 300, {\n     *   'leading': true,\n     *   'trailing': false\n     * }));\n     *\n     * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n     * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n     * var source = new EventSource('/stream');\n     * jQuery(source).on('message', debounced);\n     *\n     * // Cancel the trailing debounced invocation.\n     * jQuery(window).on('popstate', debounced.cancel);\n     */\n    function debounce(func, wait, options) {\n      var lastArgs,\n          lastThis,\n          maxWait,\n          result,\n          timerId,\n          lastCallTime,\n          lastInvokeTime = 0,\n          leading = false,\n          maxing = false,\n          trailing = true;\n\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      wait = toNumber(wait) || 0;\n      if (isObject(options)) {\n        leading = !!options.leading;\n        maxing = 'maxWait' in options;\n        maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n        trailing = 'trailing' in options ? !!options.trailing : trailing;\n      }\n\n      function invokeFunc(time) {\n        var args = lastArgs,\n            thisArg = lastThis;\n\n        lastArgs = lastThis = undefined;\n        lastInvokeTime = time;\n        result = func.apply(thisArg, args);\n        return result;\n      }\n\n      function leadingEdge(time) {\n        // Reset any `maxWait` timer.\n        lastInvokeTime = time;\n        // Start the timer for the trailing edge.\n        timerId = setTimeout(timerExpired, wait);\n        // Invoke the leading edge.\n        return leading ? invokeFunc(time) : result;\n      }\n\n      function remainingWait(time) {\n        var timeSinceLastCall = time - lastCallTime,\n            timeSinceLastInvoke = time - lastInvokeTime,\n            timeWaiting = wait - timeSinceLastCall;\n\n        return maxing\n          ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n          : timeWaiting;\n      }\n\n      function shouldInvoke(time) {\n        var timeSinceLastCall = time - lastCallTime,\n            timeSinceLastInvoke = time - lastInvokeTime;\n\n        // Either this is the first call, activity has stopped and we're at the\n        // trailing edge, the system time has gone backwards and we're treating\n        // it as the trailing edge, or we've hit the `maxWait` limit.\n        return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n          (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n      }\n\n      function timerExpired() {\n        var time = now();\n        if (shouldInvoke(time)) {\n          return trailingEdge(time);\n        }\n        // Restart the timer.\n        timerId = setTimeout(timerExpired, remainingWait(time));\n      }\n\n      function trailingEdge(time) {\n        timerId = undefined;\n\n        // Only invoke if we have `lastArgs` which means `func` has been\n        // debounced at least once.\n        if (trailing && lastArgs) {\n          return invokeFunc(time);\n        }\n        lastArgs = lastThis = undefined;\n        return result;\n      }\n\n      function cancel() {\n        if (timerId !== undefined) {\n          clearTimeout(timerId);\n        }\n        lastInvokeTime = 0;\n        lastArgs = lastCallTime = lastThis = timerId = undefined;\n      }\n\n      function flush() {\n        return timerId === undefined ? result : trailingEdge(now());\n      }\n\n      function debounced() {\n        var time = now(),\n            isInvoking = shouldInvoke(time);\n\n        lastArgs = arguments;\n        lastThis = this;\n        lastCallTime = time;\n\n        if (isInvoking) {\n          if (timerId === undefined) {\n            return leadingEdge(lastCallTime);\n          }\n          if (maxing) {\n            // Handle invocations in a tight loop.\n            clearTimeout(timerId);\n            timerId = setTimeout(timerExpired, wait);\n            return invokeFunc(lastCallTime);\n          }\n        }\n        if (timerId === undefined) {\n          timerId = setTimeout(timerExpired, wait);\n        }\n        return result;\n      }\n      debounced.cancel = cancel;\n      debounced.flush = flush;\n      return debounced;\n    }\n\n    /**\n     * Defers invoking the `func` until the current call stack has cleared. Any\n     * additional arguments are provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to defer.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {number} Returns the timer id.\n     * @example\n     *\n     * _.defer(function(text) {\n     *   console.log(text);\n     * }, 'deferred');\n     * // => Logs 'deferred' after one millisecond.\n     */\n    var defer = baseRest(function(func, args) {\n      return baseDelay(func, 1, args);\n    });\n\n    /**\n     * Invokes `func` after `wait` milliseconds. Any additional arguments are\n     * provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to delay.\n     * @param {number} wait The number of milliseconds to delay invocation.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {number} Returns the timer id.\n     * @example\n     *\n     * _.delay(function(text) {\n     *   console.log(text);\n     * }, 1000, 'later');\n     * // => Logs 'later' after one second.\n     */\n    var delay = baseRest(function(func, wait, args) {\n      return baseDelay(func, toNumber(wait) || 0, args);\n    });\n\n    /**\n     * Creates a function that invokes `func` with arguments reversed.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to flip arguments for.\n     * @returns {Function} Returns the new flipped function.\n     * @example\n     *\n     * var flipped = _.flip(function() {\n     *   return _.toArray(arguments);\n     * });\n     *\n     * flipped('a', 'b', 'c', 'd');\n     * // => ['d', 'c', 'b', 'a']\n     */\n    function flip(func) {\n      return createWrap(func, WRAP_FLIP_FLAG);\n    }\n\n    /**\n     * Creates a function that memoizes the result of `func`. If `resolver` is\n     * provided, it determines the cache key for storing the result based on the\n     * arguments provided to the memoized function. By default, the first argument\n     * provided to the memoized function is used as the map cache key. The `func`\n     * is invoked with the `this` binding of the memoized function.\n     *\n     * **Note:** The cache is exposed as the `cache` property on the memoized\n     * function. Its creation may be customized by replacing the `_.memoize.Cache`\n     * constructor with one whose instances implement the\n     * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n     * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to have its output memoized.\n     * @param {Function} [resolver] The function to resolve the cache key.\n     * @returns {Function} Returns the new memoized function.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     * var other = { 'c': 3, 'd': 4 };\n     *\n     * var values = _.memoize(_.values);\n     * values(object);\n     * // => [1, 2]\n     *\n     * values(other);\n     * // => [3, 4]\n     *\n     * object.a = 2;\n     * values(object);\n     * // => [1, 2]\n     *\n     * // Modify the result cache.\n     * values.cache.set(object, ['a', 'b']);\n     * values(object);\n     * // => ['a', 'b']\n     *\n     * // Replace `_.memoize.Cache`.\n     * _.memoize.Cache = WeakMap;\n     */\n    function memoize(func, resolver) {\n      if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      var memoized = function() {\n        var args = arguments,\n            key = resolver ? resolver.apply(this, args) : args[0],\n            cache = memoized.cache;\n\n        if (cache.has(key)) {\n          return cache.get(key);\n        }\n        var result = func.apply(this, args);\n        memoized.cache = cache.set(key, result) || cache;\n        return result;\n      };\n      memoized.cache = new (memoize.Cache || MapCache);\n      return memoized;\n    }\n\n    // Expose `MapCache`.\n    memoize.Cache = MapCache;\n\n    /**\n     * Creates a function that negates the result of the predicate `func`. The\n     * `func` predicate is invoked with the `this` binding and arguments of the\n     * created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} predicate The predicate to negate.\n     * @returns {Function} Returns the new negated function.\n     * @example\n     *\n     * function isEven(n) {\n     *   return n % 2 == 0;\n     * }\n     *\n     * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n     * // => [1, 3, 5]\n     */\n    function negate(predicate) {\n      if (typeof predicate != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      return function() {\n        var args = arguments;\n        switch (args.length) {\n          case 0: return !predicate.call(this);\n          case 1: return !predicate.call(this, args[0]);\n          case 2: return !predicate.call(this, args[0], args[1]);\n          case 3: return !predicate.call(this, args[0], args[1], args[2]);\n        }\n        return !predicate.apply(this, args);\n      };\n    }\n\n    /**\n     * Creates a function that is restricted to invoking `func` once. Repeat calls\n     * to the function return the value of the first invocation. The `func` is\n     * invoked with the `this` binding and arguments of the created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to restrict.\n     * @returns {Function} Returns the new restricted function.\n     * @example\n     *\n     * var initialize = _.once(createApplication);\n     * initialize();\n     * initialize();\n     * // => `createApplication` is invoked once\n     */\n    function once(func) {\n      return before(2, func);\n    }\n\n    /**\n     * Creates a function that invokes `func` with its arguments transformed.\n     *\n     * @static\n     * @since 4.0.0\n     * @memberOf _\n     * @category Function\n     * @param {Function} func The function to wrap.\n     * @param {...(Function|Function[])} [transforms=[_.identity]]\n     *  The argument transforms.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * function doubled(n) {\n     *   return n * 2;\n     * }\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var func = _.overArgs(function(x, y) {\n     *   return [x, y];\n     * }, [square, doubled]);\n     *\n     * func(9, 3);\n     * // => [81, 6]\n     *\n     * func(10, 5);\n     * // => [100, 10]\n     */\n    var overArgs = castRest(function(func, transforms) {\n      transforms = (transforms.length == 1 && isArray(transforms[0]))\n        ? arrayMap(transforms[0], baseUnary(getIteratee()))\n        : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n      var funcsLength = transforms.length;\n      return baseRest(function(args) {\n        var index = -1,\n            length = nativeMin(args.length, funcsLength);\n\n        while (++index < length) {\n          args[index] = transforms[index].call(this, args[index]);\n        }\n        return apply(func, this, args);\n      });\n    });\n\n    /**\n     * Creates a function that invokes `func` with `partials` prepended to the\n     * arguments it receives. This method is like `_.bind` except it does **not**\n     * alter the `this` binding.\n     *\n     * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of partially\n     * applied functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.2.0\n     * @category Function\n     * @param {Function} func The function to partially apply arguments to.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new partially applied function.\n     * @example\n     *\n     * function greet(greeting, name) {\n     *   return greeting + ' ' + name;\n     * }\n     *\n     * var sayHelloTo = _.partial(greet, 'hello');\n     * sayHelloTo('fred');\n     * // => 'hello fred'\n     *\n     * // Partially applied with placeholders.\n     * var greetFred = _.partial(greet, _, 'fred');\n     * greetFred('hi');\n     * // => 'hi fred'\n     */\n    var partial = baseRest(function(func, partials) {\n      var holders = replaceHolders(partials, getHolder(partial));\n      return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n    });\n\n    /**\n     * This method is like `_.partial` except that partially applied arguments\n     * are appended to the arguments it receives.\n     *\n     * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n     * builds, may be used as a placeholder for partially applied arguments.\n     *\n     * **Note:** This method doesn't set the \"length\" property of partially\n     * applied functions.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Function\n     * @param {Function} func The function to partially apply arguments to.\n     * @param {...*} [partials] The arguments to be partially applied.\n     * @returns {Function} Returns the new partially applied function.\n     * @example\n     *\n     * function greet(greeting, name) {\n     *   return greeting + ' ' + name;\n     * }\n     *\n     * var greetFred = _.partialRight(greet, 'fred');\n     * greetFred('hi');\n     * // => 'hi fred'\n     *\n     * // Partially applied with placeholders.\n     * var sayHelloTo = _.partialRight(greet, 'hello', _);\n     * sayHelloTo('fred');\n     * // => 'hello fred'\n     */\n    var partialRight = baseRest(function(func, partials) {\n      var holders = replaceHolders(partials, getHolder(partialRight));\n      return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n    });\n\n    /**\n     * Creates a function that invokes `func` with arguments arranged according\n     * to the specified `indexes` where the argument value at the first index is\n     * provided as the first argument, the argument value at the second index is\n     * provided as the second argument, and so on.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Function\n     * @param {Function} func The function to rearrange arguments for.\n     * @param {...(number|number[])} indexes The arranged argument indexes.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var rearged = _.rearg(function(a, b, c) {\n     *   return [a, b, c];\n     * }, [2, 0, 1]);\n     *\n     * rearged('b', 'c', 'a')\n     * // => ['a', 'b', 'c']\n     */\n    var rearg = flatRest(function(func, indexes) {\n      return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n    });\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of the\n     * created function and arguments from `start` and beyond provided as\n     * an array.\n     *\n     * **Note:** This method is based on the\n     * [rest parameter](https://mdn.io/rest_parameters).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to apply a rest parameter to.\n     * @param {number} [start=func.length-1] The start position of the rest parameter.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var say = _.rest(function(what, names) {\n     *   return what + ' ' + _.initial(names).join(', ') +\n     *     (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n     * });\n     *\n     * say('hello', 'fred', 'barney', 'pebbles');\n     * // => 'hello fred, barney, & pebbles'\n     */\n    function rest(func, start) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      start = start === undefined ? start : toInteger(start);\n      return baseRest(func, start);\n    }\n\n    /**\n     * Creates a function that invokes `func` with the `this` binding of the\n     * create function and an array of arguments much like\n     * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n     *\n     * **Note:** This method is based on the\n     * [spread operator](https://mdn.io/spread_operator).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Function\n     * @param {Function} func The function to spread arguments over.\n     * @param {number} [start=0] The start position of the spread.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var say = _.spread(function(who, what) {\n     *   return who + ' says ' + what;\n     * });\n     *\n     * say(['fred', 'hello']);\n     * // => 'fred says hello'\n     *\n     * var numbers = Promise.all([\n     *   Promise.resolve(40),\n     *   Promise.resolve(36)\n     * ]);\n     *\n     * numbers.then(_.spread(function(x, y) {\n     *   return x + y;\n     * }));\n     * // => a Promise of 76\n     */\n    function spread(func, start) {\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      start = start == null ? 0 : nativeMax(toInteger(start), 0);\n      return baseRest(function(args) {\n        var array = args[start],\n            otherArgs = castSlice(args, 0, start);\n\n        if (array) {\n          arrayPush(otherArgs, array);\n        }\n        return apply(func, this, otherArgs);\n      });\n    }\n\n    /**\n     * Creates a throttled function that only invokes `func` at most once per\n     * every `wait` milliseconds. The throttled function comes with a `cancel`\n     * method to cancel delayed `func` invocations and a `flush` method to\n     * immediately invoke them. Provide `options` to indicate whether `func`\n     * should be invoked on the leading and/or trailing edge of the `wait`\n     * timeout. The `func` is invoked with the last arguments provided to the\n     * throttled function. Subsequent calls to the throttled function return the\n     * result of the last `func` invocation.\n     *\n     * **Note:** If `leading` and `trailing` options are `true`, `func` is\n     * invoked on the trailing edge of the timeout only if the throttled function\n     * is invoked more than once during the `wait` timeout.\n     *\n     * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n     * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n     *\n     * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n     * for details over the differences between `_.throttle` and `_.debounce`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {Function} func The function to throttle.\n     * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.leading=true]\n     *  Specify invoking on the leading edge of the timeout.\n     * @param {boolean} [options.trailing=true]\n     *  Specify invoking on the trailing edge of the timeout.\n     * @returns {Function} Returns the new throttled function.\n     * @example\n     *\n     * // Avoid excessively updating the position while scrolling.\n     * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n     *\n     * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n     * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n     * jQuery(element).on('click', throttled);\n     *\n     * // Cancel the trailing throttled invocation.\n     * jQuery(window).on('popstate', throttled.cancel);\n     */\n    function throttle(func, wait, options) {\n      var leading = true,\n          trailing = true;\n\n      if (typeof func != 'function') {\n        throw new TypeError(FUNC_ERROR_TEXT);\n      }\n      if (isObject(options)) {\n        leading = 'leading' in options ? !!options.leading : leading;\n        trailing = 'trailing' in options ? !!options.trailing : trailing;\n      }\n      return debounce(func, wait, {\n        'leading': leading,\n        'maxWait': wait,\n        'trailing': trailing\n      });\n    }\n\n    /**\n     * Creates a function that accepts up to one argument, ignoring any\n     * additional arguments.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Function\n     * @param {Function} func The function to cap arguments for.\n     * @returns {Function} Returns the new capped function.\n     * @example\n     *\n     * _.map(['6', '8', '10'], _.unary(parseInt));\n     * // => [6, 8, 10]\n     */\n    function unary(func) {\n      return ary(func, 1);\n    }\n\n    /**\n     * Creates a function that provides `value` to `wrapper` as its first\n     * argument. Any additional arguments provided to the function are appended\n     * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n     * binding of the created function.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Function\n     * @param {*} value The value to wrap.\n     * @param {Function} [wrapper=identity] The wrapper function.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var p = _.wrap(_.escape, function(func, text) {\n     *   return '<p>' + func(text) + '</p>';\n     * });\n     *\n     * p('fred, barney, & pebbles');\n     * // => '<p>fred, barney, &amp; pebbles</p>'\n     */\n    function wrap(value, wrapper) {\n      return partial(castFunction(wrapper), value);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Casts `value` as an array if it's not one.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.4.0\n     * @category Lang\n     * @param {*} value The value to inspect.\n     * @returns {Array} Returns the cast array.\n     * @example\n     *\n     * _.castArray(1);\n     * // => [1]\n     *\n     * _.castArray({ 'a': 1 });\n     * // => [{ 'a': 1 }]\n     *\n     * _.castArray('abc');\n     * // => ['abc']\n     *\n     * _.castArray(null);\n     * // => [null]\n     *\n     * _.castArray(undefined);\n     * // => [undefined]\n     *\n     * _.castArray();\n     * // => []\n     *\n     * var array = [1, 2, 3];\n     * console.log(_.castArray(array) === array);\n     * // => true\n     */\n    function castArray() {\n      if (!arguments.length) {\n        return [];\n      }\n      var value = arguments[0];\n      return isArray(value) ? value : [value];\n    }\n\n    /**\n     * Creates a shallow clone of `value`.\n     *\n     * **Note:** This method is loosely based on the\n     * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n     * and supports cloning arrays, array buffers, booleans, date objects, maps,\n     * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n     * arrays. The own enumerable properties of `arguments` objects are cloned\n     * as plain objects. An empty object is returned for uncloneable values such\n     * as error objects, functions, DOM nodes, and WeakMaps.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to clone.\n     * @returns {*} Returns the cloned value.\n     * @see _.cloneDeep\n     * @example\n     *\n     * var objects = [{ 'a': 1 }, { 'b': 2 }];\n     *\n     * var shallow = _.clone(objects);\n     * console.log(shallow[0] === objects[0]);\n     * // => true\n     */\n    function clone(value) {\n      return baseClone(value, CLONE_SYMBOLS_FLAG);\n    }\n\n    /**\n     * This method is like `_.clone` except that it accepts `customizer` which\n     * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n     * cloning is handled by the method instead. The `customizer` is invoked with\n     * up to four arguments; (value [, index|key, object, stack]).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to clone.\n     * @param {Function} [customizer] The function to customize cloning.\n     * @returns {*} Returns the cloned value.\n     * @see _.cloneDeepWith\n     * @example\n     *\n     * function customizer(value) {\n     *   if (_.isElement(value)) {\n     *     return value.cloneNode(false);\n     *   }\n     * }\n     *\n     * var el = _.cloneWith(document.body, customizer);\n     *\n     * console.log(el === document.body);\n     * // => false\n     * console.log(el.nodeName);\n     * // => 'BODY'\n     * console.log(el.childNodes.length);\n     * // => 0\n     */\n    function cloneWith(value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n    }\n\n    /**\n     * This method is like `_.clone` except that it recursively clones `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Lang\n     * @param {*} value The value to recursively clone.\n     * @returns {*} Returns the deep cloned value.\n     * @see _.clone\n     * @example\n     *\n     * var objects = [{ 'a': 1 }, { 'b': 2 }];\n     *\n     * var deep = _.cloneDeep(objects);\n     * console.log(deep[0] === objects[0]);\n     * // => false\n     */\n    function cloneDeep(value) {\n      return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n    }\n\n    /**\n     * This method is like `_.cloneWith` except that it recursively clones `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to recursively clone.\n     * @param {Function} [customizer] The function to customize cloning.\n     * @returns {*} Returns the deep cloned value.\n     * @see _.cloneWith\n     * @example\n     *\n     * function customizer(value) {\n     *   if (_.isElement(value)) {\n     *     return value.cloneNode(true);\n     *   }\n     * }\n     *\n     * var el = _.cloneDeepWith(document.body, customizer);\n     *\n     * console.log(el === document.body);\n     * // => false\n     * console.log(el.nodeName);\n     * // => 'BODY'\n     * console.log(el.childNodes.length);\n     * // => 20\n     */\n    function cloneDeepWith(value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n    }\n\n    /**\n     * Checks if `object` conforms to `source` by invoking the predicate\n     * properties of `source` with the corresponding property values of `object`.\n     *\n     * **Note:** This method is equivalent to `_.conforms` when `source` is\n     * partially applied.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.14.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     *\n     * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n     * // => true\n     *\n     * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n     * // => false\n     */\n    function conformsTo(object, source) {\n      return source == null || baseConformsTo(object, source, keys(source));\n    }\n\n    /**\n     * Performs a\n     * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n     * comparison between two values to determine if they are equivalent.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     * var other = { 'a': 1 };\n     *\n     * _.eq(object, object);\n     * // => true\n     *\n     * _.eq(object, other);\n     * // => false\n     *\n     * _.eq('a', 'a');\n     * // => true\n     *\n     * _.eq('a', Object('a'));\n     * // => false\n     *\n     * _.eq(NaN, NaN);\n     * // => true\n     */\n    function eq(value, other) {\n      return value === other || (value !== value && other !== other);\n    }\n\n    /**\n     * Checks if `value` is greater than `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than `other`,\n     *  else `false`.\n     * @see _.lt\n     * @example\n     *\n     * _.gt(3, 1);\n     * // => true\n     *\n     * _.gt(3, 3);\n     * // => false\n     *\n     * _.gt(1, 3);\n     * // => false\n     */\n    var gt = createRelationalOperation(baseGt);\n\n    /**\n     * Checks if `value` is greater than or equal to `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is greater than or equal to\n     *  `other`, else `false`.\n     * @see _.lte\n     * @example\n     *\n     * _.gte(3, 1);\n     * // => true\n     *\n     * _.gte(3, 3);\n     * // => true\n     *\n     * _.gte(1, 3);\n     * // => false\n     */\n    var gte = createRelationalOperation(function(value, other) {\n      return value >= other;\n    });\n\n    /**\n     * Checks if `value` is likely an `arguments` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n     *  else `false`.\n     * @example\n     *\n     * _.isArguments(function() { return arguments; }());\n     * // => true\n     *\n     * _.isArguments([1, 2, 3]);\n     * // => false\n     */\n    var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n      return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n        !propertyIsEnumerable.call(value, 'callee');\n    };\n\n    /**\n     * Checks if `value` is classified as an `Array` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n     * @example\n     *\n     * _.isArray([1, 2, 3]);\n     * // => true\n     *\n     * _.isArray(document.body.children);\n     * // => false\n     *\n     * _.isArray('abc');\n     * // => false\n     *\n     * _.isArray(_.noop);\n     * // => false\n     */\n    var isArray = Array.isArray;\n\n    /**\n     * Checks if `value` is classified as an `ArrayBuffer` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n     * @example\n     *\n     * _.isArrayBuffer(new ArrayBuffer(2));\n     * // => true\n     *\n     * _.isArrayBuffer(new Array(2));\n     * // => false\n     */\n    var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n    /**\n     * Checks if `value` is array-like. A value is considered array-like if it's\n     * not a function and has a `value.length` that's an integer greater than or\n     * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n     * @example\n     *\n     * _.isArrayLike([1, 2, 3]);\n     * // => true\n     *\n     * _.isArrayLike(document.body.children);\n     * // => true\n     *\n     * _.isArrayLike('abc');\n     * // => true\n     *\n     * _.isArrayLike(_.noop);\n     * // => false\n     */\n    function isArrayLike(value) {\n      return value != null && isLength(value.length) && !isFunction(value);\n    }\n\n    /**\n     * This method is like `_.isArrayLike` except that it also checks if `value`\n     * is an object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an array-like object,\n     *  else `false`.\n     * @example\n     *\n     * _.isArrayLikeObject([1, 2, 3]);\n     * // => true\n     *\n     * _.isArrayLikeObject(document.body.children);\n     * // => true\n     *\n     * _.isArrayLikeObject('abc');\n     * // => false\n     *\n     * _.isArrayLikeObject(_.noop);\n     * // => false\n     */\n    function isArrayLikeObject(value) {\n      return isObjectLike(value) && isArrayLike(value);\n    }\n\n    /**\n     * Checks if `value` is classified as a boolean primitive or object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n     * @example\n     *\n     * _.isBoolean(false);\n     * // => true\n     *\n     * _.isBoolean(null);\n     * // => false\n     */\n    function isBoolean(value) {\n      return value === true || value === false ||\n        (isObjectLike(value) && baseGetTag(value) == boolTag);\n    }\n\n    /**\n     * Checks if `value` is a buffer.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n     * @example\n     *\n     * _.isBuffer(new Buffer(2));\n     * // => true\n     *\n     * _.isBuffer(new Uint8Array(2));\n     * // => false\n     */\n    var isBuffer = nativeIsBuffer || stubFalse;\n\n    /**\n     * Checks if `value` is classified as a `Date` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n     * @example\n     *\n     * _.isDate(new Date);\n     * // => true\n     *\n     * _.isDate('Mon April 23 2012');\n     * // => false\n     */\n    var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n    /**\n     * Checks if `value` is likely a DOM element.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n     * @example\n     *\n     * _.isElement(document.body);\n     * // => true\n     *\n     * _.isElement('<body>');\n     * // => false\n     */\n    function isElement(value) {\n      return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n    }\n\n    /**\n     * Checks if `value` is an empty object, collection, map, or set.\n     *\n     * Objects are considered empty if they have no own enumerable string keyed\n     * properties.\n     *\n     * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n     * jQuery-like collections are considered empty if they have a `length` of `0`.\n     * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n     * @example\n     *\n     * _.isEmpty(null);\n     * // => true\n     *\n     * _.isEmpty(true);\n     * // => true\n     *\n     * _.isEmpty(1);\n     * // => true\n     *\n     * _.isEmpty([1, 2, 3]);\n     * // => false\n     *\n     * _.isEmpty({ 'a': 1 });\n     * // => false\n     */\n    function isEmpty(value) {\n      if (value == null) {\n        return true;\n      }\n      if (isArrayLike(value) &&\n          (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n            isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n        return !value.length;\n      }\n      var tag = getTag(value);\n      if (tag == mapTag || tag == setTag) {\n        return !value.size;\n      }\n      if (isPrototype(value)) {\n        return !baseKeys(value).length;\n      }\n      for (var key in value) {\n        if (hasOwnProperty.call(value, key)) {\n          return false;\n        }\n      }\n      return true;\n    }\n\n    /**\n     * Performs a deep comparison between two values to determine if they are\n     * equivalent.\n     *\n     * **Note:** This method supports comparing arrays, array buffers, booleans,\n     * date objects, error objects, maps, numbers, `Object` objects, regexes,\n     * sets, strings, symbols, and typed arrays. `Object` objects are compared\n     * by their own, not inherited, enumerable properties. Functions and DOM\n     * nodes are compared by strict equality, i.e. `===`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     * var other = { 'a': 1 };\n     *\n     * _.isEqual(object, other);\n     * // => true\n     *\n     * object === other;\n     * // => false\n     */\n    function isEqual(value, other) {\n      return baseIsEqual(value, other);\n    }\n\n    /**\n     * This method is like `_.isEqual` except that it accepts `customizer` which\n     * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n     * are handled by the method instead. The `customizer` is invoked with up to\n     * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n     * @example\n     *\n     * function isGreeting(value) {\n     *   return /^h(?:i|ello)$/.test(value);\n     * }\n     *\n     * function customizer(objValue, othValue) {\n     *   if (isGreeting(objValue) && isGreeting(othValue)) {\n     *     return true;\n     *   }\n     * }\n     *\n     * var array = ['hello', 'goodbye'];\n     * var other = ['hi', 'goodbye'];\n     *\n     * _.isEqualWith(array, other, customizer);\n     * // => true\n     */\n    function isEqualWith(value, other, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      var result = customizer ? customizer(value, other) : undefined;\n      return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n    }\n\n    /**\n     * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n     * `SyntaxError`, `TypeError`, or `URIError` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n     * @example\n     *\n     * _.isError(new Error);\n     * // => true\n     *\n     * _.isError(Error);\n     * // => false\n     */\n    function isError(value) {\n      if (!isObjectLike(value)) {\n        return false;\n      }\n      var tag = baseGetTag(value);\n      return tag == errorTag || tag == domExcTag ||\n        (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n    }\n\n    /**\n     * Checks if `value` is a finite primitive number.\n     *\n     * **Note:** This method is based on\n     * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n     * @example\n     *\n     * _.isFinite(3);\n     * // => true\n     *\n     * _.isFinite(Number.MIN_VALUE);\n     * // => true\n     *\n     * _.isFinite(Infinity);\n     * // => false\n     *\n     * _.isFinite('3');\n     * // => false\n     */\n    function isFinite(value) {\n      return typeof value == 'number' && nativeIsFinite(value);\n    }\n\n    /**\n     * Checks if `value` is classified as a `Function` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n     * @example\n     *\n     * _.isFunction(_);\n     * // => true\n     *\n     * _.isFunction(/abc/);\n     * // => false\n     */\n    function isFunction(value) {\n      if (!isObject(value)) {\n        return false;\n      }\n      // The use of `Object#toString` avoids issues with the `typeof` operator\n      // in Safari 9 which returns 'object' for typed arrays and other constructors.\n      var tag = baseGetTag(value);\n      return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n    }\n\n    /**\n     * Checks if `value` is an integer.\n     *\n     * **Note:** This method is based on\n     * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n     * @example\n     *\n     * _.isInteger(3);\n     * // => true\n     *\n     * _.isInteger(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isInteger(Infinity);\n     * // => false\n     *\n     * _.isInteger('3');\n     * // => false\n     */\n    function isInteger(value) {\n      return typeof value == 'number' && value == toInteger(value);\n    }\n\n    /**\n     * Checks if `value` is a valid array-like length.\n     *\n     * **Note:** This method is loosely based on\n     * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n     * @example\n     *\n     * _.isLength(3);\n     * // => true\n     *\n     * _.isLength(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isLength(Infinity);\n     * // => false\n     *\n     * _.isLength('3');\n     * // => false\n     */\n    function isLength(value) {\n      return typeof value == 'number' &&\n        value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n    }\n\n    /**\n     * Checks if `value` is the\n     * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n     * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n     * @example\n     *\n     * _.isObject({});\n     * // => true\n     *\n     * _.isObject([1, 2, 3]);\n     * // => true\n     *\n     * _.isObject(_.noop);\n     * // => true\n     *\n     * _.isObject(null);\n     * // => false\n     */\n    function isObject(value) {\n      var type = typeof value;\n      return value != null && (type == 'object' || type == 'function');\n    }\n\n    /**\n     * Checks if `value` is object-like. A value is object-like if it's not `null`\n     * and has a `typeof` result of \"object\".\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n     * @example\n     *\n     * _.isObjectLike({});\n     * // => true\n     *\n     * _.isObjectLike([1, 2, 3]);\n     * // => true\n     *\n     * _.isObjectLike(_.noop);\n     * // => false\n     *\n     * _.isObjectLike(null);\n     * // => false\n     */\n    function isObjectLike(value) {\n      return value != null && typeof value == 'object';\n    }\n\n    /**\n     * Checks if `value` is classified as a `Map` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n     * @example\n     *\n     * _.isMap(new Map);\n     * // => true\n     *\n     * _.isMap(new WeakMap);\n     * // => false\n     */\n    var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n    /**\n     * Performs a partial deep comparison between `object` and `source` to\n     * determine if `object` contains equivalent property values.\n     *\n     * **Note:** This method is equivalent to `_.matches` when `source` is\n     * partially applied.\n     *\n     * Partial comparisons will match empty array and empty object `source`\n     * values against any array or object value, respectively. See `_.isEqual`\n     * for a list of supported value comparisons.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2 };\n     *\n     * _.isMatch(object, { 'b': 2 });\n     * // => true\n     *\n     * _.isMatch(object, { 'b': 1 });\n     * // => false\n     */\n    function isMatch(object, source) {\n      return object === source || baseIsMatch(object, source, getMatchData(source));\n    }\n\n    /**\n     * This method is like `_.isMatch` except that it accepts `customizer` which\n     * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n     * are handled by the method instead. The `customizer` is invoked with five\n     * arguments: (objValue, srcValue, index|key, object, source).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {Object} object The object to inspect.\n     * @param {Object} source The object of property values to match.\n     * @param {Function} [customizer] The function to customize comparisons.\n     * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n     * @example\n     *\n     * function isGreeting(value) {\n     *   return /^h(?:i|ello)$/.test(value);\n     * }\n     *\n     * function customizer(objValue, srcValue) {\n     *   if (isGreeting(objValue) && isGreeting(srcValue)) {\n     *     return true;\n     *   }\n     * }\n     *\n     * var object = { 'greeting': 'hello' };\n     * var source = { 'greeting': 'hi' };\n     *\n     * _.isMatchWith(object, source, customizer);\n     * // => true\n     */\n    function isMatchWith(object, source, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return baseIsMatch(object, source, getMatchData(source), customizer);\n    }\n\n    /**\n     * Checks if `value` is `NaN`.\n     *\n     * **Note:** This method is based on\n     * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n     * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n     * `undefined` and other non-number values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n     * @example\n     *\n     * _.isNaN(NaN);\n     * // => true\n     *\n     * _.isNaN(new Number(NaN));\n     * // => true\n     *\n     * isNaN(undefined);\n     * // => true\n     *\n     * _.isNaN(undefined);\n     * // => false\n     */\n    function isNaN(value) {\n      // An `NaN` primitive is the only value that is not equal to itself.\n      // Perform the `toStringTag` check first to avoid errors with some\n      // ActiveX objects in IE.\n      return isNumber(value) && value != +value;\n    }\n\n    /**\n     * Checks if `value` is a pristine native function.\n     *\n     * **Note:** This method can't reliably detect native functions in the presence\n     * of the core-js package because core-js circumvents this kind of detection.\n     * Despite multiple requests, the core-js maintainer has made it clear: any\n     * attempt to fix the detection will be obstructed. As a result, we're left\n     * with little choice but to throw an error. Unfortunately, this also affects\n     * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n     * which rely on core-js.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a native function,\n     *  else `false`.\n     * @example\n     *\n     * _.isNative(Array.prototype.push);\n     * // => true\n     *\n     * _.isNative(_);\n     * // => false\n     */\n    function isNative(value) {\n      if (isMaskable(value)) {\n        throw new Error(CORE_ERROR_TEXT);\n      }\n      return baseIsNative(value);\n    }\n\n    /**\n     * Checks if `value` is `null`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n     * @example\n     *\n     * _.isNull(null);\n     * // => true\n     *\n     * _.isNull(void 0);\n     * // => false\n     */\n    function isNull(value) {\n      return value === null;\n    }\n\n    /**\n     * Checks if `value` is `null` or `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n     * @example\n     *\n     * _.isNil(null);\n     * // => true\n     *\n     * _.isNil(void 0);\n     * // => true\n     *\n     * _.isNil(NaN);\n     * // => false\n     */\n    function isNil(value) {\n      return value == null;\n    }\n\n    /**\n     * Checks if `value` is classified as a `Number` primitive or object.\n     *\n     * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n     * classified as numbers, use the `_.isFinite` method.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n     * @example\n     *\n     * _.isNumber(3);\n     * // => true\n     *\n     * _.isNumber(Number.MIN_VALUE);\n     * // => true\n     *\n     * _.isNumber(Infinity);\n     * // => true\n     *\n     * _.isNumber('3');\n     * // => false\n     */\n    function isNumber(value) {\n      return typeof value == 'number' ||\n        (isObjectLike(value) && baseGetTag(value) == numberTag);\n    }\n\n    /**\n     * Checks if `value` is a plain object, that is, an object created by the\n     * `Object` constructor or one with a `[[Prototype]]` of `null`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.8.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * _.isPlainObject(new Foo);\n     * // => false\n     *\n     * _.isPlainObject([1, 2, 3]);\n     * // => false\n     *\n     * _.isPlainObject({ 'x': 0, 'y': 0 });\n     * // => true\n     *\n     * _.isPlainObject(Object.create(null));\n     * // => true\n     */\n    function isPlainObject(value) {\n      if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n        return false;\n      }\n      var proto = getPrototype(value);\n      if (proto === null) {\n        return true;\n      }\n      var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n      return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n        funcToString.call(Ctor) == objectCtorString;\n    }\n\n    /**\n     * Checks if `value` is classified as a `RegExp` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.1.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n     * @example\n     *\n     * _.isRegExp(/abc/);\n     * // => true\n     *\n     * _.isRegExp('/abc/');\n     * // => false\n     */\n    var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n    /**\n     * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n     * double precision number which isn't the result of a rounded unsafe integer.\n     *\n     * **Note:** This method is based on\n     * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n     * @example\n     *\n     * _.isSafeInteger(3);\n     * // => true\n     *\n     * _.isSafeInteger(Number.MIN_VALUE);\n     * // => false\n     *\n     * _.isSafeInteger(Infinity);\n     * // => false\n     *\n     * _.isSafeInteger('3');\n     * // => false\n     */\n    function isSafeInteger(value) {\n      return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n    }\n\n    /**\n     * Checks if `value` is classified as a `Set` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n     * @example\n     *\n     * _.isSet(new Set);\n     * // => true\n     *\n     * _.isSet(new WeakSet);\n     * // => false\n     */\n    var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n    /**\n     * Checks if `value` is classified as a `String` primitive or object.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n     * @example\n     *\n     * _.isString('abc');\n     * // => true\n     *\n     * _.isString(1);\n     * // => false\n     */\n    function isString(value) {\n      return typeof value == 'string' ||\n        (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n    }\n\n    /**\n     * Checks if `value` is classified as a `Symbol` primitive or object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n     * @example\n     *\n     * _.isSymbol(Symbol.iterator);\n     * // => true\n     *\n     * _.isSymbol('abc');\n     * // => false\n     */\n    function isSymbol(value) {\n      return typeof value == 'symbol' ||\n        (isObjectLike(value) && baseGetTag(value) == symbolTag);\n    }\n\n    /**\n     * Checks if `value` is classified as a typed array.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n     * @example\n     *\n     * _.isTypedArray(new Uint8Array);\n     * // => true\n     *\n     * _.isTypedArray([]);\n     * // => false\n     */\n    var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n    /**\n     * Checks if `value` is `undefined`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n     * @example\n     *\n     * _.isUndefined(void 0);\n     * // => true\n     *\n     * _.isUndefined(null);\n     * // => false\n     */\n    function isUndefined(value) {\n      return value === undefined;\n    }\n\n    /**\n     * Checks if `value` is classified as a `WeakMap` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n     * @example\n     *\n     * _.isWeakMap(new WeakMap);\n     * // => true\n     *\n     * _.isWeakMap(new Map);\n     * // => false\n     */\n    function isWeakMap(value) {\n      return isObjectLike(value) && getTag(value) == weakMapTag;\n    }\n\n    /**\n     * Checks if `value` is classified as a `WeakSet` object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.3.0\n     * @category Lang\n     * @param {*} value The value to check.\n     * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n     * @example\n     *\n     * _.isWeakSet(new WeakSet);\n     * // => true\n     *\n     * _.isWeakSet(new Set);\n     * // => false\n     */\n    function isWeakSet(value) {\n      return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n    }\n\n    /**\n     * Checks if `value` is less than `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than `other`,\n     *  else `false`.\n     * @see _.gt\n     * @example\n     *\n     * _.lt(1, 3);\n     * // => true\n     *\n     * _.lt(3, 3);\n     * // => false\n     *\n     * _.lt(3, 1);\n     * // => false\n     */\n    var lt = createRelationalOperation(baseLt);\n\n    /**\n     * Checks if `value` is less than or equal to `other`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.9.0\n     * @category Lang\n     * @param {*} value The value to compare.\n     * @param {*} other The other value to compare.\n     * @returns {boolean} Returns `true` if `value` is less than or equal to\n     *  `other`, else `false`.\n     * @see _.gte\n     * @example\n     *\n     * _.lte(1, 3);\n     * // => true\n     *\n     * _.lte(3, 3);\n     * // => true\n     *\n     * _.lte(3, 1);\n     * // => false\n     */\n    var lte = createRelationalOperation(function(value, other) {\n      return value <= other;\n    });\n\n    /**\n     * Converts `value` to an array.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {Array} Returns the converted array.\n     * @example\n     *\n     * _.toArray({ 'a': 1, 'b': 2 });\n     * // => [1, 2]\n     *\n     * _.toArray('abc');\n     * // => ['a', 'b', 'c']\n     *\n     * _.toArray(1);\n     * // => []\n     *\n     * _.toArray(null);\n     * // => []\n     */\n    function toArray(value) {\n      if (!value) {\n        return [];\n      }\n      if (isArrayLike(value)) {\n        return isString(value) ? stringToArray(value) : copyArray(value);\n      }\n      if (symIterator && value[symIterator]) {\n        return iteratorToArray(value[symIterator]());\n      }\n      var tag = getTag(value),\n          func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n      return func(value);\n    }\n\n    /**\n     * Converts `value` to a finite number.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.12.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted number.\n     * @example\n     *\n     * _.toFinite(3.2);\n     * // => 3.2\n     *\n     * _.toFinite(Number.MIN_VALUE);\n     * // => 5e-324\n     *\n     * _.toFinite(Infinity);\n     * // => 1.7976931348623157e+308\n     *\n     * _.toFinite('3.2');\n     * // => 3.2\n     */\n    function toFinite(value) {\n      if (!value) {\n        return value === 0 ? value : 0;\n      }\n      value = toNumber(value);\n      if (value === INFINITY || value === -INFINITY) {\n        var sign = (value < 0 ? -1 : 1);\n        return sign * MAX_INTEGER;\n      }\n      return value === value ? value : 0;\n    }\n\n    /**\n     * Converts `value` to an integer.\n     *\n     * **Note:** This method is loosely based on\n     * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toInteger(3.2);\n     * // => 3\n     *\n     * _.toInteger(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toInteger(Infinity);\n     * // => 1.7976931348623157e+308\n     *\n     * _.toInteger('3.2');\n     * // => 3\n     */\n    function toInteger(value) {\n      var result = toFinite(value),\n          remainder = result % 1;\n\n      return result === result ? (remainder ? result - remainder : result) : 0;\n    }\n\n    /**\n     * Converts `value` to an integer suitable for use as the length of an\n     * array-like object.\n     *\n     * **Note:** This method is based on\n     * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toLength(3.2);\n     * // => 3\n     *\n     * _.toLength(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toLength(Infinity);\n     * // => 4294967295\n     *\n     * _.toLength('3.2');\n     * // => 3\n     */\n    function toLength(value) {\n      return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n    }\n\n    /**\n     * Converts `value` to a number.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to process.\n     * @returns {number} Returns the number.\n     * @example\n     *\n     * _.toNumber(3.2);\n     * // => 3.2\n     *\n     * _.toNumber(Number.MIN_VALUE);\n     * // => 5e-324\n     *\n     * _.toNumber(Infinity);\n     * // => Infinity\n     *\n     * _.toNumber('3.2');\n     * // => 3.2\n     */\n    function toNumber(value) {\n      if (typeof value == 'number') {\n        return value;\n      }\n      if (isSymbol(value)) {\n        return NAN;\n      }\n      if (isObject(value)) {\n        var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n        value = isObject(other) ? (other + '') : other;\n      }\n      if (typeof value != 'string') {\n        return value === 0 ? value : +value;\n      }\n      value = value.replace(reTrim, '');\n      var isBinary = reIsBinary.test(value);\n      return (isBinary || reIsOctal.test(value))\n        ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n        : (reIsBadHex.test(value) ? NAN : +value);\n    }\n\n    /**\n     * Converts `value` to a plain object flattening inherited enumerable string\n     * keyed properties of `value` to own properties of the plain object.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {Object} Returns the converted plain object.\n     * @example\n     *\n     * function Foo() {\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.assign({ 'a': 1 }, new Foo);\n     * // => { 'a': 1, 'b': 2 }\n     *\n     * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n     * // => { 'a': 1, 'b': 2, 'c': 3 }\n     */\n    function toPlainObject(value) {\n      return copyObject(value, keysIn(value));\n    }\n\n    /**\n     * Converts `value` to a safe integer. A safe integer can be compared and\n     * represented correctly.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.toSafeInteger(3.2);\n     * // => 3\n     *\n     * _.toSafeInteger(Number.MIN_VALUE);\n     * // => 0\n     *\n     * _.toSafeInteger(Infinity);\n     * // => 9007199254740991\n     *\n     * _.toSafeInteger('3.2');\n     * // => 3\n     */\n    function toSafeInteger(value) {\n      return value\n        ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n        : (value === 0 ? value : 0);\n    }\n\n    /**\n     * Converts `value` to a string. An empty string is returned for `null`\n     * and `undefined` values. The sign of `-0` is preserved.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Lang\n     * @param {*} value The value to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.toString(null);\n     * // => ''\n     *\n     * _.toString(-0);\n     * // => '-0'\n     *\n     * _.toString([1, 2, 3]);\n     * // => '1,2,3'\n     */\n    function toString(value) {\n      return value == null ? '' : baseToString(value);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Assigns own enumerable string keyed properties of source objects to the\n     * destination object. Source objects are applied from left to right.\n     * Subsequent sources overwrite property assignments of previous sources.\n     *\n     * **Note:** This method mutates `object` and is loosely based on\n     * [`Object.assign`](https://mdn.io/Object/assign).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.10.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.assignIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * function Bar() {\n     *   this.c = 3;\n     * }\n     *\n     * Foo.prototype.b = 2;\n     * Bar.prototype.d = 4;\n     *\n     * _.assign({ 'a': 0 }, new Foo, new Bar);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    var assign = createAssigner(function(object, source) {\n      if (isPrototype(source) || isArrayLike(source)) {\n        copyObject(source, keys(source), object);\n        return;\n      }\n      for (var key in source) {\n        if (hasOwnProperty.call(source, key)) {\n          assignValue(object, key, source[key]);\n        }\n      }\n    });\n\n    /**\n     * This method is like `_.assign` except that it iterates over own and\n     * inherited source properties.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias extend\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.assign\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     * }\n     *\n     * function Bar() {\n     *   this.c = 3;\n     * }\n     *\n     * Foo.prototype.b = 2;\n     * Bar.prototype.d = 4;\n     *\n     * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n     * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n     */\n    var assignIn = createAssigner(function(object, source) {\n      copyObject(source, keysIn(source), object);\n    });\n\n    /**\n     * This method is like `_.assignIn` except that it accepts `customizer`\n     * which is invoked to produce the assigned values. If `customizer` returns\n     * `undefined`, assignment is handled by the method instead. The `customizer`\n     * is invoked with five arguments: (objValue, srcValue, key, object, source).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias extendWith\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @see _.assignWith\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   return _.isUndefined(objValue) ? srcValue : objValue;\n     * }\n     *\n     * var defaults = _.partialRight(_.assignInWith, customizer);\n     *\n     * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n      copyObject(source, keysIn(source), object, customizer);\n    });\n\n    /**\n     * This method is like `_.assign` except that it accepts `customizer`\n     * which is invoked to produce the assigned values. If `customizer` returns\n     * `undefined`, assignment is handled by the method instead. The `customizer`\n     * is invoked with five arguments: (objValue, srcValue, key, object, source).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @see _.assignInWith\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   return _.isUndefined(objValue) ? srcValue : objValue;\n     * }\n     *\n     * var defaults = _.partialRight(_.assignWith, customizer);\n     *\n     * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n      copyObject(source, keys(source), object, customizer);\n    });\n\n    /**\n     * Creates an array of values corresponding to `paths` of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Array} Returns the picked values.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n     *\n     * _.at(object, ['a[0].b.c', 'a[1]']);\n     * // => [3, 4]\n     */\n    var at = flatRest(baseAt);\n\n    /**\n     * Creates an object that inherits from the `prototype` object. If a\n     * `properties` object is given, its own enumerable string keyed properties\n     * are assigned to the created object.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.3.0\n     * @category Object\n     * @param {Object} prototype The object to inherit from.\n     * @param {Object} [properties] The properties to assign to the object.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * function Shape() {\n     *   this.x = 0;\n     *   this.y = 0;\n     * }\n     *\n     * function Circle() {\n     *   Shape.call(this);\n     * }\n     *\n     * Circle.prototype = _.create(Shape.prototype, {\n     *   'constructor': Circle\n     * });\n     *\n     * var circle = new Circle;\n     * circle instanceof Circle;\n     * // => true\n     *\n     * circle instanceof Shape;\n     * // => true\n     */\n    function create(prototype, properties) {\n      var result = baseCreate(prototype);\n      return properties == null ? result : baseAssign(result, properties);\n    }\n\n    /**\n     * Assigns own and inherited enumerable string keyed properties of source\n     * objects to the destination object for all destination properties that\n     * resolve to `undefined`. Source objects are applied from left to right.\n     * Once a property is set, additional values of the same property are ignored.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.defaultsDeep\n     * @example\n     *\n     * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n     * // => { 'a': 1, 'b': 2 }\n     */\n    var defaults = baseRest(function(object, sources) {\n      object = Object(object);\n\n      var index = -1;\n      var length = sources.length;\n      var guard = length > 2 ? sources[2] : undefined;\n\n      if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n        length = 1;\n      }\n\n      while (++index < length) {\n        var source = sources[index];\n        var props = keysIn(source);\n        var propsIndex = -1;\n        var propsLength = props.length;\n\n        while (++propsIndex < propsLength) {\n          var key = props[propsIndex];\n          var value = object[key];\n\n          if (value === undefined ||\n              (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n            object[key] = source[key];\n          }\n        }\n      }\n\n      return object;\n    });\n\n    /**\n     * This method is like `_.defaults` except that it recursively assigns\n     * default properties.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @see _.defaults\n     * @example\n     *\n     * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n     * // => { 'a': { 'b': 2, 'c': 3 } }\n     */\n    var defaultsDeep = baseRest(function(args) {\n      args.push(undefined, customDefaultsMerge);\n      return apply(mergeWith, undefined, args);\n    });\n\n    /**\n     * This method is like `_.find` except that it returns the key of the first\n     * element `predicate` returns truthy for instead of the element itself.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {string|undefined} Returns the key of the matched element,\n     *  else `undefined`.\n     * @example\n     *\n     * var users = {\n     *   'barney':  { 'age': 36, 'active': true },\n     *   'fred':    { 'age': 40, 'active': false },\n     *   'pebbles': { 'age': 1,  'active': true }\n     * };\n     *\n     * _.findKey(users, function(o) { return o.age < 40; });\n     * // => 'barney' (iteration order is not guaranteed)\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findKey(users, { 'age': 1, 'active': true });\n     * // => 'pebbles'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findKey(users, ['active', false]);\n     * // => 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findKey(users, 'active');\n     * // => 'barney'\n     */\n    function findKey(object, predicate) {\n      return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n    }\n\n    /**\n     * This method is like `_.findKey` except that it iterates over elements of\n     * a collection in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @param {Function} [predicate=_.identity] The function invoked per iteration.\n     * @returns {string|undefined} Returns the key of the matched element,\n     *  else `undefined`.\n     * @example\n     *\n     * var users = {\n     *   'barney':  { 'age': 36, 'active': true },\n     *   'fred':    { 'age': 40, 'active': false },\n     *   'pebbles': { 'age': 1,  'active': true }\n     * };\n     *\n     * _.findLastKey(users, function(o) { return o.age < 40; });\n     * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.findLastKey(users, { 'age': 36, 'active': true });\n     * // => 'barney'\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.findLastKey(users, ['active', false]);\n     * // => 'fred'\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.findLastKey(users, 'active');\n     * // => 'pebbles'\n     */\n    function findLastKey(object, predicate) {\n      return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n    }\n\n    /**\n     * Iterates over own and inherited enumerable string keyed properties of an\n     * object and invokes `iteratee` for each property. The iteratee is invoked\n     * with three arguments: (value, key, object). Iteratee functions may exit\n     * iteration early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forInRight\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forIn(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n     */\n    function forIn(object, iteratee) {\n      return object == null\n        ? object\n        : baseFor(object, getIteratee(iteratee, 3), keysIn);\n    }\n\n    /**\n     * This method is like `_.forIn` except that it iterates over properties of\n     * `object` in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forInRight(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n     */\n    function forInRight(object, iteratee) {\n      return object == null\n        ? object\n        : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n    }\n\n    /**\n     * Iterates over own enumerable string keyed properties of an object and\n     * invokes `iteratee` for each property. The iteratee is invoked with three\n     * arguments: (value, key, object). Iteratee functions may exit iteration\n     * early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forOwnRight\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forOwn(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n     */\n    function forOwn(object, iteratee) {\n      return object && baseForOwn(object, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * This method is like `_.forOwn` except that it iterates over properties of\n     * `object` in the opposite order.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.0.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns `object`.\n     * @see _.forOwn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.forOwnRight(new Foo, function(value, key) {\n     *   console.log(key);\n     * });\n     * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n     */\n    function forOwnRight(object, iteratee) {\n      return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n    }\n\n    /**\n     * Creates an array of function property names from own enumerable properties\n     * of `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @returns {Array} Returns the function names.\n     * @see _.functionsIn\n     * @example\n     *\n     * function Foo() {\n     *   this.a = _.constant('a');\n     *   this.b = _.constant('b');\n     * }\n     *\n     * Foo.prototype.c = _.constant('c');\n     *\n     * _.functions(new Foo);\n     * // => ['a', 'b']\n     */\n    function functions(object) {\n      return object == null ? [] : baseFunctions(object, keys(object));\n    }\n\n    /**\n     * Creates an array of function property names from own and inherited\n     * enumerable properties of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to inspect.\n     * @returns {Array} Returns the function names.\n     * @see _.functions\n     * @example\n     *\n     * function Foo() {\n     *   this.a = _.constant('a');\n     *   this.b = _.constant('b');\n     * }\n     *\n     * Foo.prototype.c = _.constant('c');\n     *\n     * _.functionsIn(new Foo);\n     * // => ['a', 'b', 'c']\n     */\n    function functionsIn(object) {\n      return object == null ? [] : baseFunctions(object, keysIn(object));\n    }\n\n    /**\n     * Gets the value at `path` of `object`. If the resolved value is\n     * `undefined`, the `defaultValue` is returned in its place.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to get.\n     * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.get(object, 'a[0].b.c');\n     * // => 3\n     *\n     * _.get(object, ['a', '0', 'b', 'c']);\n     * // => 3\n     *\n     * _.get(object, 'a.b.c', 'default');\n     * // => 'default'\n     */\n    function get(object, path, defaultValue) {\n      var result = object == null ? undefined : baseGet(object, path);\n      return result === undefined ? defaultValue : result;\n    }\n\n    /**\n     * Checks if `path` is a direct property of `object`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     * @example\n     *\n     * var object = { 'a': { 'b': 2 } };\n     * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n     *\n     * _.has(object, 'a');\n     * // => true\n     *\n     * _.has(object, 'a.b');\n     * // => true\n     *\n     * _.has(object, ['a', 'b']);\n     * // => true\n     *\n     * _.has(other, 'a');\n     * // => false\n     */\n    function has(object, path) {\n      return object != null && hasPath(object, path, baseHas);\n    }\n\n    /**\n     * Checks if `path` is a direct or inherited property of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path to check.\n     * @returns {boolean} Returns `true` if `path` exists, else `false`.\n     * @example\n     *\n     * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n     *\n     * _.hasIn(object, 'a');\n     * // => true\n     *\n     * _.hasIn(object, 'a.b');\n     * // => true\n     *\n     * _.hasIn(object, ['a', 'b']);\n     * // => true\n     *\n     * _.hasIn(object, 'b');\n     * // => false\n     */\n    function hasIn(object, path) {\n      return object != null && hasPath(object, path, baseHasIn);\n    }\n\n    /**\n     * Creates an object composed of the inverted keys and values of `object`.\n     * If `object` contains duplicate values, subsequent values overwrite\n     * property assignments of previous values.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.7.0\n     * @category Object\n     * @param {Object} object The object to invert.\n     * @returns {Object} Returns the new inverted object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2, 'c': 1 };\n     *\n     * _.invert(object);\n     * // => { '1': 'c', '2': 'b' }\n     */\n    var invert = createInverter(function(result, value, key) {\n      if (value != null &&\n          typeof value.toString != 'function') {\n        value = nativeObjectToString.call(value);\n      }\n\n      result[value] = key;\n    }, constant(identity));\n\n    /**\n     * This method is like `_.invert` except that the inverted object is generated\n     * from the results of running each element of `object` thru `iteratee`. The\n     * corresponding inverted value of each inverted key is an array of keys\n     * responsible for generating the inverted value. The iteratee is invoked\n     * with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.1.0\n     * @category Object\n     * @param {Object} object The object to invert.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {Object} Returns the new inverted object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': 2, 'c': 1 };\n     *\n     * _.invertBy(object);\n     * // => { '1': ['a', 'c'], '2': ['b'] }\n     *\n     * _.invertBy(object, function(value) {\n     *   return 'group' + value;\n     * });\n     * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n     */\n    var invertBy = createInverter(function(result, value, key) {\n      if (value != null &&\n          typeof value.toString != 'function') {\n        value = nativeObjectToString.call(value);\n      }\n\n      if (hasOwnProperty.call(result, value)) {\n        result[value].push(key);\n      } else {\n        result[value] = [key];\n      }\n    }, getIteratee);\n\n    /**\n     * Invokes the method at `path` of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {*} Returns the result of the invoked method.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n     *\n     * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n     * // => [2, 3]\n     */\n    var invoke = baseRest(baseInvoke);\n\n    /**\n     * Creates an array of the own enumerable property names of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects. See the\n     * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n     * for more details.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.keys(new Foo);\n     * // => ['a', 'b'] (iteration order is not guaranteed)\n     *\n     * _.keys('hi');\n     * // => ['0', '1']\n     */\n    function keys(object) {\n      return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n    }\n\n    /**\n     * Creates an array of the own and inherited enumerable property names of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property names.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.keysIn(new Foo);\n     * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n     */\n    function keysIn(object) {\n      return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n    }\n\n    /**\n     * The opposite of `_.mapValues`; this method creates an object with the\n     * same values as `object` and keys generated by running each own enumerable\n     * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n     * with three arguments: (value, key, object).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.8.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns the new mapped object.\n     * @see _.mapValues\n     * @example\n     *\n     * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n     *   return key + value;\n     * });\n     * // => { 'a1': 1, 'b2': 2 }\n     */\n    function mapKeys(object, iteratee) {\n      var result = {};\n      iteratee = getIteratee(iteratee, 3);\n\n      baseForOwn(object, function(value, key, object) {\n        baseAssignValue(result, iteratee(value, key, object), value);\n      });\n      return result;\n    }\n\n    /**\n     * Creates an object with the same keys as `object` and values generated\n     * by running each own enumerable string keyed property of `object` thru\n     * `iteratee`. The iteratee is invoked with three arguments:\n     * (value, key, object).\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Object} Returns the new mapped object.\n     * @see _.mapKeys\n     * @example\n     *\n     * var users = {\n     *   'fred':    { 'user': 'fred',    'age': 40 },\n     *   'pebbles': { 'user': 'pebbles', 'age': 1 }\n     * };\n     *\n     * _.mapValues(users, function(o) { return o.age; });\n     * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.mapValues(users, 'age');\n     * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n     */\n    function mapValues(object, iteratee) {\n      var result = {};\n      iteratee = getIteratee(iteratee, 3);\n\n      baseForOwn(object, function(value, key, object) {\n        baseAssignValue(result, key, iteratee(value, key, object));\n      });\n      return result;\n    }\n\n    /**\n     * This method is like `_.assign` except that it recursively merges own and\n     * inherited enumerable string keyed properties of source objects into the\n     * destination object. Source properties that resolve to `undefined` are\n     * skipped if a destination value exists. Array and plain object properties\n     * are merged recursively. Other objects and value types are overridden by\n     * assignment. Source objects are applied from left to right. Subsequent\n     * sources overwrite property assignments of previous sources.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.5.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} [sources] The source objects.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {\n     *   'a': [{ 'b': 2 }, { 'd': 4 }]\n     * };\n     *\n     * var other = {\n     *   'a': [{ 'c': 3 }, { 'e': 5 }]\n     * };\n     *\n     * _.merge(object, other);\n     * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n     */\n    var merge = createAssigner(function(object, source, srcIndex) {\n      baseMerge(object, source, srcIndex);\n    });\n\n    /**\n     * This method is like `_.merge` except that it accepts `customizer` which\n     * is invoked to produce the merged values of the destination and source\n     * properties. If `customizer` returns `undefined`, merging is handled by the\n     * method instead. The `customizer` is invoked with six arguments:\n     * (objValue, srcValue, key, object, source, stack).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The destination object.\n     * @param {...Object} sources The source objects.\n     * @param {Function} customizer The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * function customizer(objValue, srcValue) {\n     *   if (_.isArray(objValue)) {\n     *     return objValue.concat(srcValue);\n     *   }\n     * }\n     *\n     * var object = { 'a': [1], 'b': [2] };\n     * var other = { 'a': [3], 'b': [4] };\n     *\n     * _.mergeWith(object, other, customizer);\n     * // => { 'a': [1, 3], 'b': [2, 4] }\n     */\n    var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n      baseMerge(object, source, srcIndex, customizer);\n    });\n\n    /**\n     * The opposite of `_.pick`; this method creates an object composed of the\n     * own and inherited enumerable property paths of `object` that are not omitted.\n     *\n     * **Note:** This method is considerably slower than `_.pick`.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {...(string|string[])} [paths] The property paths to omit.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.omit(object, ['a', 'c']);\n     * // => { 'b': '2' }\n     */\n    var omit = flatRest(function(object, paths) {\n      var result = {};\n      if (object == null) {\n        return result;\n      }\n      var isDeep = false;\n      paths = arrayMap(paths, function(path) {\n        path = castPath(path, object);\n        isDeep || (isDeep = path.length > 1);\n        return path;\n      });\n      copyObject(object, getAllKeysIn(object), result);\n      if (isDeep) {\n        result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n      }\n      var length = paths.length;\n      while (length--) {\n        baseUnset(result, paths[length]);\n      }\n      return result;\n    });\n\n    /**\n     * The opposite of `_.pickBy`; this method creates an object composed of\n     * the own and inherited enumerable string keyed properties of `object` that\n     * `predicate` doesn't return truthy for. The predicate is invoked with two\n     * arguments: (value, key).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {Function} [predicate=_.identity] The function invoked per property.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.omitBy(object, _.isNumber);\n     * // => { 'b': '2' }\n     */\n    function omitBy(object, predicate) {\n      return pickBy(object, negate(getIteratee(predicate)));\n    }\n\n    /**\n     * Creates an object composed of the picked `object` properties.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {...(string|string[])} [paths] The property paths to pick.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.pick(object, ['a', 'c']);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    var pick = flatRest(function(object, paths) {\n      return object == null ? {} : basePick(object, paths);\n    });\n\n    /**\n     * Creates an object composed of the `object` properties `predicate` returns\n     * truthy for. The predicate is invoked with two arguments: (value, key).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The source object.\n     * @param {Function} [predicate=_.identity] The function invoked per property.\n     * @returns {Object} Returns the new object.\n     * @example\n     *\n     * var object = { 'a': 1, 'b': '2', 'c': 3 };\n     *\n     * _.pickBy(object, _.isNumber);\n     * // => { 'a': 1, 'c': 3 }\n     */\n    function pickBy(object, predicate) {\n      if (object == null) {\n        return {};\n      }\n      var props = arrayMap(getAllKeysIn(object), function(prop) {\n        return [prop];\n      });\n      predicate = getIteratee(predicate);\n      return basePickBy(object, props, function(value, path) {\n        return predicate(value, path[0]);\n      });\n    }\n\n    /**\n     * This method is like `_.get` except that if the resolved value is a\n     * function it's invoked with the `this` binding of its parent object and\n     * its result is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @param {Array|string} path The path of the property to resolve.\n     * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n     *\n     * _.result(object, 'a[0].b.c1');\n     * // => 3\n     *\n     * _.result(object, 'a[0].b.c2');\n     * // => 4\n     *\n     * _.result(object, 'a[0].b.c3', 'default');\n     * // => 'default'\n     *\n     * _.result(object, 'a[0].b.c3', _.constant('default'));\n     * // => 'default'\n     */\n    function result(object, path, defaultValue) {\n      path = castPath(path, object);\n\n      var index = -1,\n          length = path.length;\n\n      // Ensure the loop is entered when path is empty.\n      if (!length) {\n        length = 1;\n        object = undefined;\n      }\n      while (++index < length) {\n        var value = object == null ? undefined : object[toKey(path[index])];\n        if (value === undefined) {\n          index = length;\n          value = defaultValue;\n        }\n        object = isFunction(value) ? value.call(object) : value;\n      }\n      return object;\n    }\n\n    /**\n     * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n     * it's created. Arrays are created for missing index properties while objects\n     * are created for all other missing properties. Use `_.setWith` to customize\n     * `path` creation.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.set(object, 'a[0].b.c', 4);\n     * console.log(object.a[0].b.c);\n     * // => 4\n     *\n     * _.set(object, ['x', '0', 'y', 'z'], 5);\n     * console.log(object.x[0].y.z);\n     * // => 5\n     */\n    function set(object, path, value) {\n      return object == null ? object : baseSet(object, path, value);\n    }\n\n    /**\n     * This method is like `_.set` except that it accepts `customizer` which is\n     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`\n     * path creation is handled by the method instead. The `customizer` is invoked\n     * with three arguments: (nsValue, key, nsObject).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {*} value The value to set.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {};\n     *\n     * _.setWith(object, '[0][1]', 'a', Object);\n     * // => { '0': { '1': 'a' } }\n     */\n    function setWith(object, path, value, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return object == null ? object : baseSet(object, path, value, customizer);\n    }\n\n    /**\n     * Creates an array of own enumerable string keyed-value pairs for `object`\n     * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n     * entries are returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias entries\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the key-value pairs.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.toPairs(new Foo);\n     * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n     */\n    var toPairs = createToPairs(keys);\n\n    /**\n     * Creates an array of own and inherited enumerable string keyed-value pairs\n     * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n     * or set, its entries are returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @alias entriesIn\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the key-value pairs.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.toPairsIn(new Foo);\n     * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n     */\n    var toPairsIn = createToPairs(keysIn);\n\n    /**\n     * An alternative to `_.reduce`; this method transforms `object` to a new\n     * `accumulator` object which is the result of running each of its own\n     * enumerable string keyed properties thru `iteratee`, with each invocation\n     * potentially mutating the `accumulator` object. If `accumulator` is not\n     * provided, a new object with the same `[[Prototype]]` will be used. The\n     * iteratee is invoked with four arguments: (accumulator, value, key, object).\n     * Iteratee functions may exit iteration early by explicitly returning `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.3.0\n     * @category Object\n     * @param {Object} object The object to iterate over.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @param {*} [accumulator] The custom accumulator value.\n     * @returns {*} Returns the accumulated value.\n     * @example\n     *\n     * _.transform([2, 3, 4], function(result, n) {\n     *   result.push(n *= n);\n     *   return n % 2 == 0;\n     * }, []);\n     * // => [4, 9]\n     *\n     * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n     *   (result[value] || (result[value] = [])).push(key);\n     * }, {});\n     * // => { '1': ['a', 'c'], '2': ['b'] }\n     */\n    function transform(object, iteratee, accumulator) {\n      var isArr = isArray(object),\n          isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n      iteratee = getIteratee(iteratee, 4);\n      if (accumulator == null) {\n        var Ctor = object && object.constructor;\n        if (isArrLike) {\n          accumulator = isArr ? new Ctor : [];\n        }\n        else if (isObject(object)) {\n          accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n        }\n        else {\n          accumulator = {};\n        }\n      }\n      (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n        return iteratee(accumulator, value, index, object);\n      });\n      return accumulator;\n    }\n\n    /**\n     * Removes the property at `path` of `object`.\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to unset.\n     * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n     * _.unset(object, 'a[0].b.c');\n     * // => true\n     *\n     * console.log(object);\n     * // => { 'a': [{ 'b': {} }] };\n     *\n     * _.unset(object, ['a', '0', 'b', 'c']);\n     * // => true\n     *\n     * console.log(object);\n     * // => { 'a': [{ 'b': {} }] };\n     */\n    function unset(object, path) {\n      return object == null ? true : baseUnset(object, path);\n    }\n\n    /**\n     * This method is like `_.set` except that accepts `updater` to produce the\n     * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n     * is invoked with one argument: (value).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {Function} updater The function to produce the updated value.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n     *\n     * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n     * console.log(object.a[0].b.c);\n     * // => 9\n     *\n     * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n     * console.log(object.x[0].y.z);\n     * // => 0\n     */\n    function update(object, path, updater) {\n      return object == null ? object : baseUpdate(object, path, castFunction(updater));\n    }\n\n    /**\n     * This method is like `_.update` except that it accepts `customizer` which is\n     * invoked to produce the objects of `path`.  If `customizer` returns `undefined`\n     * path creation is handled by the method instead. The `customizer` is invoked\n     * with three arguments: (nsValue, key, nsObject).\n     *\n     * **Note:** This method mutates `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.6.0\n     * @category Object\n     * @param {Object} object The object to modify.\n     * @param {Array|string} path The path of the property to set.\n     * @param {Function} updater The function to produce the updated value.\n     * @param {Function} [customizer] The function to customize assigned values.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var object = {};\n     *\n     * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n     * // => { '0': { '1': 'a' } }\n     */\n    function updateWith(object, path, updater, customizer) {\n      customizer = typeof customizer == 'function' ? customizer : undefined;\n      return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n    }\n\n    /**\n     * Creates an array of the own enumerable string keyed property values of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property values.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.values(new Foo);\n     * // => [1, 2] (iteration order is not guaranteed)\n     *\n     * _.values('hi');\n     * // => ['h', 'i']\n     */\n    function values(object) {\n      return object == null ? [] : baseValues(object, keys(object));\n    }\n\n    /**\n     * Creates an array of the own and inherited enumerable string keyed property\n     * values of `object`.\n     *\n     * **Note:** Non-object values are coerced to objects.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Object\n     * @param {Object} object The object to query.\n     * @returns {Array} Returns the array of property values.\n     * @example\n     *\n     * function Foo() {\n     *   this.a = 1;\n     *   this.b = 2;\n     * }\n     *\n     * Foo.prototype.c = 3;\n     *\n     * _.valuesIn(new Foo);\n     * // => [1, 2, 3] (iteration order is not guaranteed)\n     */\n    function valuesIn(object) {\n      return object == null ? [] : baseValues(object, keysIn(object));\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Clamps `number` within the inclusive `lower` and `upper` bounds.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Number\n     * @param {number} number The number to clamp.\n     * @param {number} [lower] The lower bound.\n     * @param {number} upper The upper bound.\n     * @returns {number} Returns the clamped number.\n     * @example\n     *\n     * _.clamp(-10, -5, 5);\n     * // => -5\n     *\n     * _.clamp(10, -5, 5);\n     * // => 5\n     */\n    function clamp(number, lower, upper) {\n      if (upper === undefined) {\n        upper = lower;\n        lower = undefined;\n      }\n      if (upper !== undefined) {\n        upper = toNumber(upper);\n        upper = upper === upper ? upper : 0;\n      }\n      if (lower !== undefined) {\n        lower = toNumber(lower);\n        lower = lower === lower ? lower : 0;\n      }\n      return baseClamp(toNumber(number), lower, upper);\n    }\n\n    /**\n     * Checks if `n` is between `start` and up to, but not including, `end`. If\n     * `end` is not specified, it's set to `start` with `start` then set to `0`.\n     * If `start` is greater than `end` the params are swapped to support\n     * negative ranges.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.3.0\n     * @category Number\n     * @param {number} number The number to check.\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n     * @see _.range, _.rangeRight\n     * @example\n     *\n     * _.inRange(3, 2, 4);\n     * // => true\n     *\n     * _.inRange(4, 8);\n     * // => true\n     *\n     * _.inRange(4, 2);\n     * // => false\n     *\n     * _.inRange(2, 2);\n     * // => false\n     *\n     * _.inRange(1.2, 2);\n     * // => true\n     *\n     * _.inRange(5.2, 4);\n     * // => false\n     *\n     * _.inRange(-3, -2, -6);\n     * // => true\n     */\n    function inRange(number, start, end) {\n      start = toFinite(start);\n      if (end === undefined) {\n        end = start;\n        start = 0;\n      } else {\n        end = toFinite(end);\n      }\n      number = toNumber(number);\n      return baseInRange(number, start, end);\n    }\n\n    /**\n     * Produces a random number between the inclusive `lower` and `upper` bounds.\n     * If only one argument is provided a number between `0` and the given number\n     * is returned. If `floating` is `true`, or either `lower` or `upper` are\n     * floats, a floating-point number is returned instead of an integer.\n     *\n     * **Note:** JavaScript follows the IEEE-754 standard for resolving\n     * floating-point values which can produce unexpected results.\n     *\n     * @static\n     * @memberOf _\n     * @since 0.7.0\n     * @category Number\n     * @param {number} [lower=0] The lower bound.\n     * @param {number} [upper=1] The upper bound.\n     * @param {boolean} [floating] Specify returning a floating-point number.\n     * @returns {number} Returns the random number.\n     * @example\n     *\n     * _.random(0, 5);\n     * // => an integer between 0 and 5\n     *\n     * _.random(5);\n     * // => also an integer between 0 and 5\n     *\n     * _.random(5, true);\n     * // => a floating-point number between 0 and 5\n     *\n     * _.random(1.2, 5.2);\n     * // => a floating-point number between 1.2 and 5.2\n     */\n    function random(lower, upper, floating) {\n      if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n        upper = floating = undefined;\n      }\n      if (floating === undefined) {\n        if (typeof upper == 'boolean') {\n          floating = upper;\n          upper = undefined;\n        }\n        else if (typeof lower == 'boolean') {\n          floating = lower;\n          lower = undefined;\n        }\n      }\n      if (lower === undefined && upper === undefined) {\n        lower = 0;\n        upper = 1;\n      }\n      else {\n        lower = toFinite(lower);\n        if (upper === undefined) {\n          upper = lower;\n          lower = 0;\n        } else {\n          upper = toFinite(upper);\n        }\n      }\n      if (lower > upper) {\n        var temp = lower;\n        lower = upper;\n        upper = temp;\n      }\n      if (floating || lower % 1 || upper % 1) {\n        var rand = nativeRandom();\n        return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n      }\n      return baseRandom(lower, upper);\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the camel cased string.\n     * @example\n     *\n     * _.camelCase('Foo Bar');\n     * // => 'fooBar'\n     *\n     * _.camelCase('--foo-bar--');\n     * // => 'fooBar'\n     *\n     * _.camelCase('__FOO_BAR__');\n     * // => 'fooBar'\n     */\n    var camelCase = createCompounder(function(result, word, index) {\n      word = word.toLowerCase();\n      return result + (index ? capitalize(word) : word);\n    });\n\n    /**\n     * Converts the first character of `string` to upper case and the remaining\n     * to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to capitalize.\n     * @returns {string} Returns the capitalized string.\n     * @example\n     *\n     * _.capitalize('FRED');\n     * // => 'Fred'\n     */\n    function capitalize(string) {\n      return upperFirst(toString(string).toLowerCase());\n    }\n\n    /**\n     * Deburrs `string` by converting\n     * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n     * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n     * letters to basic Latin letters and removing\n     * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to deburr.\n     * @returns {string} Returns the deburred string.\n     * @example\n     *\n     * _.deburr('déjà vu');\n     * // => 'deja vu'\n     */\n    function deburr(string) {\n      string = toString(string);\n      return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n    }\n\n    /**\n     * Checks if `string` ends with the given target string.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {string} [target] The string to search for.\n     * @param {number} [position=string.length] The position to search up to.\n     * @returns {boolean} Returns `true` if `string` ends with `target`,\n     *  else `false`.\n     * @example\n     *\n     * _.endsWith('abc', 'c');\n     * // => true\n     *\n     * _.endsWith('abc', 'b');\n     * // => false\n     *\n     * _.endsWith('abc', 'b', 2);\n     * // => true\n     */\n    function endsWith(string, target, position) {\n      string = toString(string);\n      target = baseToString(target);\n\n      var length = string.length;\n      position = position === undefined\n        ? length\n        : baseClamp(toInteger(position), 0, length);\n\n      var end = position;\n      position -= target.length;\n      return position >= 0 && string.slice(position, end) == target;\n    }\n\n    /**\n     * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n     * corresponding HTML entities.\n     *\n     * **Note:** No other characters are escaped. To escape additional\n     * characters use a third-party library like [_he_](https://mths.be/he).\n     *\n     * Though the \">\" character is escaped for symmetry, characters like\n     * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n     * unless they're part of a tag or unquoted attribute value. See\n     * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n     * (under \"semi-related fun fact\") for more details.\n     *\n     * When working with HTML you should always\n     * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n     * XSS vectors.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category String\n     * @param {string} [string=''] The string to escape.\n     * @returns {string} Returns the escaped string.\n     * @example\n     *\n     * _.escape('fred, barney, & pebbles');\n     * // => 'fred, barney, &amp; pebbles'\n     */\n    function escape(string) {\n      string = toString(string);\n      return (string && reHasUnescapedHtml.test(string))\n        ? string.replace(reUnescapedHtml, escapeHtmlChar)\n        : string;\n    }\n\n    /**\n     * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n     * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to escape.\n     * @returns {string} Returns the escaped string.\n     * @example\n     *\n     * _.escapeRegExp('[lodash](https://lodash.com/)');\n     * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n     */\n    function escapeRegExp(string) {\n      string = toString(string);\n      return (string && reHasRegExpChar.test(string))\n        ? string.replace(reRegExpChar, '\\\\$&')\n        : string;\n    }\n\n    /**\n     * Converts `string` to\n     * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the kebab cased string.\n     * @example\n     *\n     * _.kebabCase('Foo Bar');\n     * // => 'foo-bar'\n     *\n     * _.kebabCase('fooBar');\n     * // => 'foo-bar'\n     *\n     * _.kebabCase('__FOO_BAR__');\n     * // => 'foo-bar'\n     */\n    var kebabCase = createCompounder(function(result, word, index) {\n      return result + (index ? '-' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Converts `string`, as space separated words, to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the lower cased string.\n     * @example\n     *\n     * _.lowerCase('--Foo-Bar--');\n     * // => 'foo bar'\n     *\n     * _.lowerCase('fooBar');\n     * // => 'foo bar'\n     *\n     * _.lowerCase('__FOO_BAR__');\n     * // => 'foo bar'\n     */\n    var lowerCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Converts the first character of `string` to lower case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.lowerFirst('Fred');\n     * // => 'fred'\n     *\n     * _.lowerFirst('FRED');\n     * // => 'fRED'\n     */\n    var lowerFirst = createCaseFirst('toLowerCase');\n\n    /**\n     * Pads `string` on the left and right sides if it's shorter than `length`.\n     * Padding characters are truncated if they can't be evenly divided by `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.pad('abc', 8);\n     * // => '  abc   '\n     *\n     * _.pad('abc', 8, '_-');\n     * // => '_-abc_-_'\n     *\n     * _.pad('abc', 3);\n     * // => 'abc'\n     */\n    function pad(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      if (!length || strLength >= length) {\n        return string;\n      }\n      var mid = (length - strLength) / 2;\n      return (\n        createPadding(nativeFloor(mid), chars) +\n        string +\n        createPadding(nativeCeil(mid), chars)\n      );\n    }\n\n    /**\n     * Pads `string` on the right side if it's shorter than `length`. Padding\n     * characters are truncated if they exceed `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.padEnd('abc', 6);\n     * // => 'abc   '\n     *\n     * _.padEnd('abc', 6, '_-');\n     * // => 'abc_-_'\n     *\n     * _.padEnd('abc', 3);\n     * // => 'abc'\n     */\n    function padEnd(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      return (length && strLength < length)\n        ? (string + createPadding(length - strLength, chars))\n        : string;\n    }\n\n    /**\n     * Pads `string` on the left side if it's shorter than `length`. Padding\n     * characters are truncated if they exceed `length`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to pad.\n     * @param {number} [length=0] The padding length.\n     * @param {string} [chars=' '] The string used as padding.\n     * @returns {string} Returns the padded string.\n     * @example\n     *\n     * _.padStart('abc', 6);\n     * // => '   abc'\n     *\n     * _.padStart('abc', 6, '_-');\n     * // => '_-_abc'\n     *\n     * _.padStart('abc', 3);\n     * // => 'abc'\n     */\n    function padStart(string, length, chars) {\n      string = toString(string);\n      length = toInteger(length);\n\n      var strLength = length ? stringSize(string) : 0;\n      return (length && strLength < length)\n        ? (createPadding(length - strLength, chars) + string)\n        : string;\n    }\n\n    /**\n     * Converts `string` to an integer of the specified radix. If `radix` is\n     * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n     * hexadecimal, in which case a `radix` of `16` is used.\n     *\n     * **Note:** This method aligns with the\n     * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n     *\n     * @static\n     * @memberOf _\n     * @since 1.1.0\n     * @category String\n     * @param {string} string The string to convert.\n     * @param {number} [radix=10] The radix to interpret `value` by.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {number} Returns the converted integer.\n     * @example\n     *\n     * _.parseInt('08');\n     * // => 8\n     *\n     * _.map(['6', '08', '10'], _.parseInt);\n     * // => [6, 8, 10]\n     */\n    function parseInt(string, radix, guard) {\n      if (guard || radix == null) {\n        radix = 0;\n      } else if (radix) {\n        radix = +radix;\n      }\n      return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n    }\n\n    /**\n     * Repeats the given string `n` times.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to repeat.\n     * @param {number} [n=1] The number of times to repeat the string.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the repeated string.\n     * @example\n     *\n     * _.repeat('*', 3);\n     * // => '***'\n     *\n     * _.repeat('abc', 2);\n     * // => 'abcabc'\n     *\n     * _.repeat('abc', 0);\n     * // => ''\n     */\n    function repeat(string, n, guard) {\n      if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n        n = 1;\n      } else {\n        n = toInteger(n);\n      }\n      return baseRepeat(toString(string), n);\n    }\n\n    /**\n     * Replaces matches for `pattern` in `string` with `replacement`.\n     *\n     * **Note:** This method is based on\n     * [`String#replace`](https://mdn.io/String/replace).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to modify.\n     * @param {RegExp|string} pattern The pattern to replace.\n     * @param {Function|string} replacement The match replacement.\n     * @returns {string} Returns the modified string.\n     * @example\n     *\n     * _.replace('Hi Fred', 'Fred', 'Barney');\n     * // => 'Hi Barney'\n     */\n    function replace() {\n      var args = arguments,\n          string = toString(args[0]);\n\n      return args.length < 3 ? string : string.replace(args[1], args[2]);\n    }\n\n    /**\n     * Converts `string` to\n     * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the snake cased string.\n     * @example\n     *\n     * _.snakeCase('Foo Bar');\n     * // => 'foo_bar'\n     *\n     * _.snakeCase('fooBar');\n     * // => 'foo_bar'\n     *\n     * _.snakeCase('--FOO-BAR--');\n     * // => 'foo_bar'\n     */\n    var snakeCase = createCompounder(function(result, word, index) {\n      return result + (index ? '_' : '') + word.toLowerCase();\n    });\n\n    /**\n     * Splits `string` by `separator`.\n     *\n     * **Note:** This method is based on\n     * [`String#split`](https://mdn.io/String/split).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to split.\n     * @param {RegExp|string} separator The separator pattern to split by.\n     * @param {number} [limit] The length to truncate results to.\n     * @returns {Array} Returns the string segments.\n     * @example\n     *\n     * _.split('a-b-c', '-', 2);\n     * // => ['a', 'b']\n     */\n    function split(string, separator, limit) {\n      if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n        separator = limit = undefined;\n      }\n      limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n      if (!limit) {\n        return [];\n      }\n      string = toString(string);\n      if (string && (\n            typeof separator == 'string' ||\n            (separator != null && !isRegExp(separator))\n          )) {\n        separator = baseToString(separator);\n        if (!separator && hasUnicode(string)) {\n          return castSlice(stringToArray(string), 0, limit);\n        }\n      }\n      return string.split(separator, limit);\n    }\n\n    /**\n     * Converts `string` to\n     * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n     *\n     * @static\n     * @memberOf _\n     * @since 3.1.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the start cased string.\n     * @example\n     *\n     * _.startCase('--foo-bar--');\n     * // => 'Foo Bar'\n     *\n     * _.startCase('fooBar');\n     * // => 'Foo Bar'\n     *\n     * _.startCase('__FOO_BAR__');\n     * // => 'FOO BAR'\n     */\n    var startCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + upperFirst(word);\n    });\n\n    /**\n     * Checks if `string` starts with the given target string.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {string} [target] The string to search for.\n     * @param {number} [position=0] The position to search from.\n     * @returns {boolean} Returns `true` if `string` starts with `target`,\n     *  else `false`.\n     * @example\n     *\n     * _.startsWith('abc', 'a');\n     * // => true\n     *\n     * _.startsWith('abc', 'b');\n     * // => false\n     *\n     * _.startsWith('abc', 'b', 1);\n     * // => true\n     */\n    function startsWith(string, target, position) {\n      string = toString(string);\n      position = position == null\n        ? 0\n        : baseClamp(toInteger(position), 0, string.length);\n\n      target = baseToString(target);\n      return string.slice(position, position + target.length) == target;\n    }\n\n    /**\n     * Creates a compiled template function that can interpolate data properties\n     * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n     * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n     * properties may be accessed as free variables in the template. If a setting\n     * object is given, it takes precedence over `_.templateSettings` values.\n     *\n     * **Note:** In the development build `_.template` utilizes\n     * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n     * for easier debugging.\n     *\n     * For more information on precompiling templates see\n     * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n     *\n     * For more information on Chrome extension sandboxes see\n     * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category String\n     * @param {string} [string=''] The template string.\n     * @param {Object} [options={}] The options object.\n     * @param {RegExp} [options.escape=_.templateSettings.escape]\n     *  The HTML \"escape\" delimiter.\n     * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n     *  The \"evaluate\" delimiter.\n     * @param {Object} [options.imports=_.templateSettings.imports]\n     *  An object to import into the template as free variables.\n     * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n     *  The \"interpolate\" delimiter.\n     * @param {string} [options.sourceURL='lodash.templateSources[n]']\n     *  The sourceURL of the compiled template.\n     * @param {string} [options.variable='obj']\n     *  The data object variable name.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Function} Returns the compiled template function.\n     * @example\n     *\n     * // Use the \"interpolate\" delimiter to create a compiled template.\n     * var compiled = _.template('hello <%= user %>!');\n     * compiled({ 'user': 'fred' });\n     * // => 'hello fred!'\n     *\n     * // Use the HTML \"escape\" delimiter to escape data property values.\n     * var compiled = _.template('<b><%- value %></b>');\n     * compiled({ 'value': '<script>' });\n     * // => '<b>&lt;script&gt;</b>'\n     *\n     * // Use the \"evaluate\" delimiter to execute JavaScript and generate HTML.\n     * var compiled = _.template('<% _.forEach(users, function(user) { %><li><%- user %></li><% }); %>');\n     * compiled({ 'users': ['fred', 'barney'] });\n     * // => '<li>fred</li><li>barney</li>'\n     *\n     * // Use the internal `print` function in \"evaluate\" delimiters.\n     * var compiled = _.template('<% print(\"hello \" + user); %>!');\n     * compiled({ 'user': 'barney' });\n     * // => 'hello barney!'\n     *\n     * // Use the ES template literal delimiter as an \"interpolate\" delimiter.\n     * // Disable support by replacing the \"interpolate\" delimiter.\n     * var compiled = _.template('hello ${ user }!');\n     * compiled({ 'user': 'pebbles' });\n     * // => 'hello pebbles!'\n     *\n     * // Use backslashes to treat delimiters as plain text.\n     * var compiled = _.template('<%= \"\\\\<%- value %\\\\>\" %>');\n     * compiled({ 'value': 'ignored' });\n     * // => '<%- value %>'\n     *\n     * // Use the `imports` option to import `jQuery` as `jq`.\n     * var text = '<% jq.each(users, function(user) { %><li><%- user %></li><% }); %>';\n     * var compiled = _.template(text, { 'imports': { 'jq': jQuery } });\n     * compiled({ 'users': ['fred', 'barney'] });\n     * // => '<li>fred</li><li>barney</li>'\n     *\n     * // Use the `sourceURL` option to specify a custom sourceURL for the template.\n     * var compiled = _.template('hello <%= user %>!', { 'sourceURL': '/basic/greeting.jst' });\n     * compiled(data);\n     * // => Find the source of \"greeting.jst\" under the Sources tab or Resources panel of the web inspector.\n     *\n     * // Use the `variable` option to ensure a with-statement isn't used in the compiled template.\n     * var compiled = _.template('hi <%= data.user %>!', { 'variable': 'data' });\n     * compiled.source;\n     * // => function(data) {\n     * //   var __t, __p = '';\n     * //   __p += 'hi ' + ((__t = ( data.user )) == null ? '' : __t) + '!';\n     * //   return __p;\n     * // }\n     *\n     * // Use custom template delimiters.\n     * _.templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n     * var compiled = _.template('hello {{ user }}!');\n     * compiled({ 'user': 'mustache' });\n     * // => 'hello mustache!'\n     *\n     * // Use the `source` property to inline compiled templates for meaningful\n     * // line numbers in error messages and stack traces.\n     * fs.writeFileSync(path.join(process.cwd(), 'jst.js'), '\\\n     *   var JST = {\\\n     *     \"main\": ' + _.template(mainText).source + '\\\n     *   };\\\n     * ');\n     */\n    function template(string, options, guard) {\n      // Based on John Resig's `tmpl` implementation\n      // (http://ejohn.org/blog/javascript-micro-templating/)\n      // and Laura Doktorova's doT.js (https://github.com/olado/doT).\n      var settings = lodash.templateSettings;\n\n      if (guard && isIterateeCall(string, options, guard)) {\n        options = undefined;\n      }\n      string = toString(string);\n      options = assignInWith({}, options, settings, customDefaultsAssignIn);\n\n      var imports = assignInWith({}, options.imports, settings.imports, customDefaultsAssignIn),\n          importsKeys = keys(imports),\n          importsValues = baseValues(imports, importsKeys);\n\n      var isEscaping,\n          isEvaluating,\n          index = 0,\n          interpolate = options.interpolate || reNoMatch,\n          source = \"__p += '\";\n\n      // Compile the regexp to match each delimiter.\n      var reDelimiters = RegExp(\n        (options.escape || reNoMatch).source + '|' +\n        interpolate.source + '|' +\n        (interpolate === reInterpolate ? reEsTemplate : reNoMatch).source + '|' +\n        (options.evaluate || reNoMatch).source + '|$'\n      , 'g');\n\n      // Use a sourceURL for easier debugging.\n      // The sourceURL gets injected into the source that's eval-ed, so be careful\n      // to normalize all kinds of whitespace, so e.g. newlines (and unicode versions of it) can't sneak in\n      // and escape the comment, thus injecting code that gets evaled.\n      var sourceURL = '//# sourceURL=' +\n        (hasOwnProperty.call(options, 'sourceURL')\n          ? (options.sourceURL + '').replace(/\\s/g, ' ')\n          : ('lodash.templateSources[' + (++templateCounter) + ']')\n        ) + '\\n';\n\n      string.replace(reDelimiters, function(match, escapeValue, interpolateValue, esTemplateValue, evaluateValue, offset) {\n        interpolateValue || (interpolateValue = esTemplateValue);\n\n        // Escape characters that can't be included in string literals.\n        source += string.slice(index, offset).replace(reUnescapedString, escapeStringChar);\n\n        // Replace delimiters with snippets.\n        if (escapeValue) {\n          isEscaping = true;\n          source += \"' +\\n__e(\" + escapeValue + \") +\\n'\";\n        }\n        if (evaluateValue) {\n          isEvaluating = true;\n          source += \"';\\n\" + evaluateValue + \";\\n__p += '\";\n        }\n        if (interpolateValue) {\n          source += \"' +\\n((__t = (\" + interpolateValue + \")) == null ? '' : __t) +\\n'\";\n        }\n        index = offset + match.length;\n\n        // The JS engine embedded in Adobe products needs `match` returned in\n        // order to produce the correct `offset` value.\n        return match;\n      });\n\n      source += \"';\\n\";\n\n      // If `variable` is not specified wrap a with-statement around the generated\n      // code to add the data object to the top of the scope chain.\n      var variable = hasOwnProperty.call(options, 'variable') && options.variable;\n      if (!variable) {\n        source = 'with (obj) {\\n' + source + '\\n}\\n';\n      }\n      // Cleanup code by stripping empty strings.\n      source = (isEvaluating ? source.replace(reEmptyStringLeading, '') : source)\n        .replace(reEmptyStringMiddle, '$1')\n        .replace(reEmptyStringTrailing, '$1;');\n\n      // Frame code as the function body.\n      source = 'function(' + (variable || 'obj') + ') {\\n' +\n        (variable\n          ? ''\n          : 'obj || (obj = {});\\n'\n        ) +\n        \"var __t, __p = ''\" +\n        (isEscaping\n           ? ', __e = _.escape'\n           : ''\n        ) +\n        (isEvaluating\n          ? ', __j = Array.prototype.join;\\n' +\n            \"function print() { __p += __j.call(arguments, '') }\\n\"\n          : ';\\n'\n        ) +\n        source +\n        'return __p\\n}';\n\n      var result = attempt(function() {\n        return Function(importsKeys, sourceURL + 'return ' + source)\n          .apply(undefined, importsValues);\n      });\n\n      // Provide the compiled function's source by its `toString` method or\n      // the `source` property as a convenience for inlining compiled templates.\n      result.source = source;\n      if (isError(result)) {\n        throw result;\n      }\n      return result;\n    }\n\n    /**\n     * Converts `string`, as a whole, to lower case just like\n     * [String#toLowerCase](https://mdn.io/toLowerCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the lower cased string.\n     * @example\n     *\n     * _.toLower('--Foo-Bar--');\n     * // => '--foo-bar--'\n     *\n     * _.toLower('fooBar');\n     * // => 'foobar'\n     *\n     * _.toLower('__FOO_BAR__');\n     * // => '__foo_bar__'\n     */\n    function toLower(value) {\n      return toString(value).toLowerCase();\n    }\n\n    /**\n     * Converts `string`, as a whole, to upper case just like\n     * [String#toUpperCase](https://mdn.io/toUpperCase).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the upper cased string.\n     * @example\n     *\n     * _.toUpper('--foo-bar--');\n     * // => '--FOO-BAR--'\n     *\n     * _.toUpper('fooBar');\n     * // => 'FOOBAR'\n     *\n     * _.toUpper('__foo_bar__');\n     * // => '__FOO_BAR__'\n     */\n    function toUpper(value) {\n      return toString(value).toUpperCase();\n    }\n\n    /**\n     * Removes leading and trailing whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trim('  abc  ');\n     * // => 'abc'\n     *\n     * _.trim('-_-abc-_-', '_-');\n     * // => 'abc'\n     *\n     * _.map(['  foo  ', '  bar  '], _.trim);\n     * // => ['foo', 'bar']\n     */\n    function trim(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrim, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          chrSymbols = stringToArray(chars),\n          start = charsStartIndex(strSymbols, chrSymbols),\n          end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n      return castSlice(strSymbols, start, end).join('');\n    }\n\n    /**\n     * Removes trailing whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trimEnd('  abc  ');\n     * // => '  abc'\n     *\n     * _.trimEnd('-_-abc-_-', '_-');\n     * // => '-_-abc'\n     */\n    function trimEnd(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrimEnd, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          end = charsEndIndex(strSymbols, stringToArray(chars)) + 1;\n\n      return castSlice(strSymbols, 0, end).join('');\n    }\n\n    /**\n     * Removes leading whitespace or specified characters from `string`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to trim.\n     * @param {string} [chars=whitespace] The characters to trim.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {string} Returns the trimmed string.\n     * @example\n     *\n     * _.trimStart('  abc  ');\n     * // => 'abc  '\n     *\n     * _.trimStart('-_-abc-_-', '_-');\n     * // => 'abc-_-'\n     */\n    function trimStart(string, chars, guard) {\n      string = toString(string);\n      if (string && (guard || chars === undefined)) {\n        return string.replace(reTrimStart, '');\n      }\n      if (!string || !(chars = baseToString(chars))) {\n        return string;\n      }\n      var strSymbols = stringToArray(string),\n          start = charsStartIndex(strSymbols, stringToArray(chars));\n\n      return castSlice(strSymbols, start).join('');\n    }\n\n    /**\n     * Truncates `string` if it's longer than the given maximum string length.\n     * The last characters of the truncated string are replaced with the omission\n     * string which defaults to \"...\".\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to truncate.\n     * @param {Object} [options={}] The options object.\n     * @param {number} [options.length=30] The maximum string length.\n     * @param {string} [options.omission='...'] The string to indicate text is omitted.\n     * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n     * @returns {string} Returns the truncated string.\n     * @example\n     *\n     * _.truncate('hi-diddly-ho there, neighborino');\n     * // => 'hi-diddly-ho there, neighbo...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'length': 24,\n     *   'separator': ' '\n     * });\n     * // => 'hi-diddly-ho there,...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'length': 24,\n     *   'separator': /,? +/\n     * });\n     * // => 'hi-diddly-ho there...'\n     *\n     * _.truncate('hi-diddly-ho there, neighborino', {\n     *   'omission': ' [...]'\n     * });\n     * // => 'hi-diddly-ho there, neig [...]'\n     */\n    function truncate(string, options) {\n      var length = DEFAULT_TRUNC_LENGTH,\n          omission = DEFAULT_TRUNC_OMISSION;\n\n      if (isObject(options)) {\n        var separator = 'separator' in options ? options.separator : separator;\n        length = 'length' in options ? toInteger(options.length) : length;\n        omission = 'omission' in options ? baseToString(options.omission) : omission;\n      }\n      string = toString(string);\n\n      var strLength = string.length;\n      if (hasUnicode(string)) {\n        var strSymbols = stringToArray(string);\n        strLength = strSymbols.length;\n      }\n      if (length >= strLength) {\n        return string;\n      }\n      var end = length - stringSize(omission);\n      if (end < 1) {\n        return omission;\n      }\n      var result = strSymbols\n        ? castSlice(strSymbols, 0, end).join('')\n        : string.slice(0, end);\n\n      if (separator === undefined) {\n        return result + omission;\n      }\n      if (strSymbols) {\n        end += (result.length - end);\n      }\n      if (isRegExp(separator)) {\n        if (string.slice(end).search(separator)) {\n          var match,\n              substring = result;\n\n          if (!separator.global) {\n            separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n          }\n          separator.lastIndex = 0;\n          while ((match = separator.exec(substring))) {\n            var newEnd = match.index;\n          }\n          result = result.slice(0, newEnd === undefined ? end : newEnd);\n        }\n      } else if (string.indexOf(baseToString(separator), end) != end) {\n        var index = result.lastIndexOf(separator);\n        if (index > -1) {\n          result = result.slice(0, index);\n        }\n      }\n      return result + omission;\n    }\n\n    /**\n     * The inverse of `_.escape`; this method converts the HTML entities\n     * `&amp;`, `&lt;`, `&gt;`, `&quot;`, and `&#39;` in `string` to\n     * their corresponding characters.\n     *\n     * **Note:** No other HTML entities are unescaped. To unescape additional\n     * HTML entities use a third-party library like [_he_](https://mths.be/he).\n     *\n     * @static\n     * @memberOf _\n     * @since 0.6.0\n     * @category String\n     * @param {string} [string=''] The string to unescape.\n     * @returns {string} Returns the unescaped string.\n     * @example\n     *\n     * _.unescape('fred, barney, &amp; pebbles');\n     * // => 'fred, barney, & pebbles'\n     */\n    function unescape(string) {\n      string = toString(string);\n      return (string && reHasEscapedHtml.test(string))\n        ? string.replace(reEscapedHtml, unescapeHtmlChar)\n        : string;\n    }\n\n    /**\n     * Converts `string`, as space separated words, to upper case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the upper cased string.\n     * @example\n     *\n     * _.upperCase('--foo-bar');\n     * // => 'FOO BAR'\n     *\n     * _.upperCase('fooBar');\n     * // => 'FOO BAR'\n     *\n     * _.upperCase('__foo_bar__');\n     * // => 'FOO BAR'\n     */\n    var upperCase = createCompounder(function(result, word, index) {\n      return result + (index ? ' ' : '') + word.toUpperCase();\n    });\n\n    /**\n     * Converts the first character of `string` to upper case.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category String\n     * @param {string} [string=''] The string to convert.\n     * @returns {string} Returns the converted string.\n     * @example\n     *\n     * _.upperFirst('fred');\n     * // => 'Fred'\n     *\n     * _.upperFirst('FRED');\n     * // => 'FRED'\n     */\n    var upperFirst = createCaseFirst('toUpperCase');\n\n    /**\n     * Splits `string` into an array of its words.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category String\n     * @param {string} [string=''] The string to inspect.\n     * @param {RegExp|string} [pattern] The pattern to match words.\n     * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n     * @returns {Array} Returns the words of `string`.\n     * @example\n     *\n     * _.words('fred, barney, & pebbles');\n     * // => ['fred', 'barney', 'pebbles']\n     *\n     * _.words('fred, barney, & pebbles', /[^, ]+/g);\n     * // => ['fred', 'barney', '&', 'pebbles']\n     */\n    function words(string, pattern, guard) {\n      string = toString(string);\n      pattern = guard ? undefined : pattern;\n\n      if (pattern === undefined) {\n        return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n      }\n      return string.match(pattern) || [];\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Attempts to invoke `func`, returning either the result or the caught error\n     * object. Any additional arguments are provided to `func` when it's invoked.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Function} func The function to attempt.\n     * @param {...*} [args] The arguments to invoke `func` with.\n     * @returns {*} Returns the `func` result or error object.\n     * @example\n     *\n     * // Avoid throwing errors for invalid selectors.\n     * var elements = _.attempt(function(selector) {\n     *   return document.querySelectorAll(selector);\n     * }, '>_>');\n     *\n     * if (_.isError(elements)) {\n     *   elements = [];\n     * }\n     */\n    var attempt = baseRest(function(func, args) {\n      try {\n        return apply(func, undefined, args);\n      } catch (e) {\n        return isError(e) ? e : new Error(e);\n      }\n    });\n\n    /**\n     * Binds methods of an object to the object itself, overwriting the existing\n     * method.\n     *\n     * **Note:** This method doesn't set the \"length\" property of bound functions.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {Object} object The object to bind and assign the bound methods to.\n     * @param {...(string|string[])} methodNames The object method names to bind.\n     * @returns {Object} Returns `object`.\n     * @example\n     *\n     * var view = {\n     *   'label': 'docs',\n     *   'click': function() {\n     *     console.log('clicked ' + this.label);\n     *   }\n     * };\n     *\n     * _.bindAll(view, ['click']);\n     * jQuery(element).on('click', view.click);\n     * // => Logs 'clicked docs' when clicked.\n     */\n    var bindAll = flatRest(function(object, methodNames) {\n      arrayEach(methodNames, function(key) {\n        key = toKey(key);\n        baseAssignValue(object, key, bind(object[key], object));\n      });\n      return object;\n    });\n\n    /**\n     * Creates a function that iterates over `pairs` and invokes the corresponding\n     * function of the first predicate to return truthy. The predicate-function\n     * pairs are invoked with the `this` binding and arguments of the created\n     * function.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {Array} pairs The predicate-function pairs.\n     * @returns {Function} Returns the new composite function.\n     * @example\n     *\n     * var func = _.cond([\n     *   [_.matches({ 'a': 1 }),           _.constant('matches A')],\n     *   [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n     *   [_.stubTrue,                      _.constant('no match')]\n     * ]);\n     *\n     * func({ 'a': 1, 'b': 2 });\n     * // => 'matches A'\n     *\n     * func({ 'a': 0, 'b': 1 });\n     * // => 'matches B'\n     *\n     * func({ 'a': '1', 'b': '2' });\n     * // => 'no match'\n     */\n    function cond(pairs) {\n      var length = pairs == null ? 0 : pairs.length,\n          toIteratee = getIteratee();\n\n      pairs = !length ? [] : arrayMap(pairs, function(pair) {\n        if (typeof pair[1] != 'function') {\n          throw new TypeError(FUNC_ERROR_TEXT);\n        }\n        return [toIteratee(pair[0]), pair[1]];\n      });\n\n      return baseRest(function(args) {\n        var index = -1;\n        while (++index < length) {\n          var pair = pairs[index];\n          if (apply(pair[0], this, args)) {\n            return apply(pair[1], this, args);\n          }\n        }\n      });\n    }\n\n    /**\n     * Creates a function that invokes the predicate properties of `source` with\n     * the corresponding property values of a given object, returning `true` if\n     * all predicates return truthy, else `false`.\n     *\n     * **Note:** The created function is equivalent to `_.conformsTo` with\n     * `source` partially applied.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {Object} source The object of property predicates to conform to.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 2, 'b': 1 },\n     *   { 'a': 1, 'b': 2 }\n     * ];\n     *\n     * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n     * // => [{ 'a': 1, 'b': 2 }]\n     */\n    function conforms(source) {\n      return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that returns `value`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Util\n     * @param {*} value The value to return from the new function.\n     * @returns {Function} Returns the new constant function.\n     * @example\n     *\n     * var objects = _.times(2, _.constant({ 'a': 1 }));\n     *\n     * console.log(objects);\n     * // => [{ 'a': 1 }, { 'a': 1 }]\n     *\n     * console.log(objects[0] === objects[1]);\n     * // => true\n     */\n    function constant(value) {\n      return function() {\n        return value;\n      };\n    }\n\n    /**\n     * Checks `value` to determine whether a default value should be returned in\n     * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n     * or `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.14.0\n     * @category Util\n     * @param {*} value The value to check.\n     * @param {*} defaultValue The default value.\n     * @returns {*} Returns the resolved value.\n     * @example\n     *\n     * _.defaultTo(1, 10);\n     * // => 1\n     *\n     * _.defaultTo(undefined, 10);\n     * // => 10\n     */\n    function defaultTo(value, defaultValue) {\n      return (value == null || value !== value) ? defaultValue : value;\n    }\n\n    /**\n     * Creates a function that returns the result of invoking the given functions\n     * with the `this` binding of the created function, where each successive\n     * invocation is supplied the return value of the previous.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [funcs] The functions to invoke.\n     * @returns {Function} Returns the new composite function.\n     * @see _.flowRight\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var addSquare = _.flow([_.add, square]);\n     * addSquare(1, 2);\n     * // => 9\n     */\n    var flow = createFlow();\n\n    /**\n     * This method is like `_.flow` except that it creates a function that\n     * invokes the given functions from right to left.\n     *\n     * @static\n     * @since 3.0.0\n     * @memberOf _\n     * @category Util\n     * @param {...(Function|Function[])} [funcs] The functions to invoke.\n     * @returns {Function} Returns the new composite function.\n     * @see _.flow\n     * @example\n     *\n     * function square(n) {\n     *   return n * n;\n     * }\n     *\n     * var addSquare = _.flowRight([square, _.add]);\n     * addSquare(1, 2);\n     * // => 9\n     */\n    var flowRight = createFlow(true);\n\n    /**\n     * This method returns the first argument it receives.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {*} value Any value.\n     * @returns {*} Returns `value`.\n     * @example\n     *\n     * var object = { 'a': 1 };\n     *\n     * console.log(_.identity(object) === object);\n     * // => true\n     */\n    function identity(value) {\n      return value;\n    }\n\n    /**\n     * Creates a function that invokes `func` with the arguments of the created\n     * function. If `func` is a property name, the created function returns the\n     * property value for a given element. If `func` is an array or object, the\n     * created function returns `true` for elements that contain the equivalent\n     * source properties, otherwise it returns `false`.\n     *\n     * @static\n     * @since 4.0.0\n     * @memberOf _\n     * @category Util\n     * @param {*} [func=_.identity] The value to convert to a callback.\n     * @returns {Function} Returns the callback.\n     * @example\n     *\n     * var users = [\n     *   { 'user': 'barney', 'age': 36, 'active': true },\n     *   { 'user': 'fred',   'age': 40, 'active': false }\n     * ];\n     *\n     * // The `_.matches` iteratee shorthand.\n     * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n     * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n     *\n     * // The `_.matchesProperty` iteratee shorthand.\n     * _.filter(users, _.iteratee(['user', 'fred']));\n     * // => [{ 'user': 'fred', 'age': 40 }]\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.map(users, _.iteratee('user'));\n     * // => ['barney', 'fred']\n     *\n     * // Create custom iteratee shorthands.\n     * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n     *   return !_.isRegExp(func) ? iteratee(func) : function(string) {\n     *     return func.test(string);\n     *   };\n     * });\n     *\n     * _.filter(['abc', 'def'], /ef/);\n     * // => ['def']\n     */\n    function iteratee(func) {\n      return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that performs a partial deep comparison between a given\n     * object and `source`, returning `true` if the given object has equivalent\n     * property values, else `false`.\n     *\n     * **Note:** The created function is equivalent to `_.isMatch` with `source`\n     * partially applied.\n     *\n     * Partial comparisons will match empty array and empty object `source`\n     * values against any array or object value, respectively. See `_.isEqual`\n     * for a list of supported value comparisons.\n     *\n     * **Note:** Multiple values can be checked by combining several matchers\n     * using `_.overSome`\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Object} source The object of property values to match.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 1, 'b': 2, 'c': 3 },\n     *   { 'a': 4, 'b': 5, 'c': 6 }\n     * ];\n     *\n     * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n     * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n     *\n     * // Checking for several possible values\n     * _.filter(users, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n     * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n     */\n    function matches(source) {\n      return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that performs a partial deep comparison between the\n     * value at `path` of a given object to `srcValue`, returning `true` if the\n     * object value is equivalent, else `false`.\n     *\n     * **Note:** Partial comparisons will match empty array and empty object\n     * `srcValue` values against any array or object value, respectively. See\n     * `_.isEqual` for a list of supported value comparisons.\n     *\n     * **Note:** Multiple values can be checked by combining several matchers\n     * using `_.overSome`\n     *\n     * @static\n     * @memberOf _\n     * @since 3.2.0\n     * @category Util\n     * @param {Array|string} path The path of the property to get.\n     * @param {*} srcValue The value to match.\n     * @returns {Function} Returns the new spec function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': 1, 'b': 2, 'c': 3 },\n     *   { 'a': 4, 'b': 5, 'c': 6 }\n     * ];\n     *\n     * _.find(objects, _.matchesProperty('a', 4));\n     * // => { 'a': 4, 'b': 5, 'c': 6 }\n     *\n     * // Checking for several possible values\n     * _.filter(users, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n     * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n     */\n    function matchesProperty(path, srcValue) {\n      return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n    }\n\n    /**\n     * Creates a function that invokes the method at `path` of a given object.\n     * Any additional arguments are provided to the invoked method.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Util\n     * @param {Array|string} path The path of the method to invoke.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {Function} Returns the new invoker function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': { 'b': _.constant(2) } },\n     *   { 'a': { 'b': _.constant(1) } }\n     * ];\n     *\n     * _.map(objects, _.method('a.b'));\n     * // => [2, 1]\n     *\n     * _.map(objects, _.method(['a', 'b']));\n     * // => [2, 1]\n     */\n    var method = baseRest(function(path, args) {\n      return function(object) {\n        return baseInvoke(object, path, args);\n      };\n    });\n\n    /**\n     * The opposite of `_.method`; this method creates a function that invokes\n     * the method at a given path of `object`. Any additional arguments are\n     * provided to the invoked method.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.7.0\n     * @category Util\n     * @param {Object} object The object to query.\n     * @param {...*} [args] The arguments to invoke the method with.\n     * @returns {Function} Returns the new invoker function.\n     * @example\n     *\n     * var array = _.times(3, _.constant),\n     *     object = { 'a': array, 'b': array, 'c': array };\n     *\n     * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n     * // => [2, 0]\n     *\n     * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n     * // => [2, 0]\n     */\n    var methodOf = baseRest(function(object, args) {\n      return function(path) {\n        return baseInvoke(object, path, args);\n      };\n    });\n\n    /**\n     * Adds all own enumerable string keyed function properties of a source\n     * object to the destination object. If `object` is a function, then methods\n     * are added to its prototype as well.\n     *\n     * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n     * avoid conflicts caused by modifying the original.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {Function|Object} [object=lodash] The destination object.\n     * @param {Object} source The object of functions to add.\n     * @param {Object} [options={}] The options object.\n     * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n     * @returns {Function|Object} Returns `object`.\n     * @example\n     *\n     * function vowels(string) {\n     *   return _.filter(string, function(v) {\n     *     return /[aeiou]/i.test(v);\n     *   });\n     * }\n     *\n     * _.mixin({ 'vowels': vowels });\n     * _.vowels('fred');\n     * // => ['e']\n     *\n     * _('fred').vowels().value();\n     * // => ['e']\n     *\n     * _.mixin({ 'vowels': vowels }, { 'chain': false });\n     * _('fred').vowels();\n     * // => ['e']\n     */\n    function mixin(object, source, options) {\n      var props = keys(source),\n          methodNames = baseFunctions(source, props);\n\n      if (options == null &&\n          !(isObject(source) && (methodNames.length || !props.length))) {\n        options = source;\n        source = object;\n        object = this;\n        methodNames = baseFunctions(source, keys(source));\n      }\n      var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n          isFunc = isFunction(object);\n\n      arrayEach(methodNames, function(methodName) {\n        var func = source[methodName];\n        object[methodName] = func;\n        if (isFunc) {\n          object.prototype[methodName] = function() {\n            var chainAll = this.__chain__;\n            if (chain || chainAll) {\n              var result = object(this.__wrapped__),\n                  actions = result.__actions__ = copyArray(this.__actions__);\n\n              actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n              result.__chain__ = chainAll;\n              return result;\n            }\n            return func.apply(object, arrayPush([this.value()], arguments));\n          };\n        }\n      });\n\n      return object;\n    }\n\n    /**\n     * Reverts the `_` variable to its previous value and returns a reference to\n     * the `lodash` function.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @returns {Function} Returns the `lodash` function.\n     * @example\n     *\n     * var lodash = _.noConflict();\n     */\n    function noConflict() {\n      if (root._ === this) {\n        root._ = oldDash;\n      }\n      return this;\n    }\n\n    /**\n     * This method returns `undefined`.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.3.0\n     * @category Util\n     * @example\n     *\n     * _.times(2, _.noop);\n     * // => [undefined, undefined]\n     */\n    function noop() {\n      // No operation performed.\n    }\n\n    /**\n     * Creates a function that gets the argument at index `n`. If `n` is negative,\n     * the nth argument from the end is returned.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {number} [n=0] The index of the argument to return.\n     * @returns {Function} Returns the new pass-thru function.\n     * @example\n     *\n     * var func = _.nthArg(1);\n     * func('a', 'b', 'c', 'd');\n     * // => 'b'\n     *\n     * var func = _.nthArg(-2);\n     * func('a', 'b', 'c', 'd');\n     * // => 'c'\n     */\n    function nthArg(n) {\n      n = toInteger(n);\n      return baseRest(function(args) {\n        return baseNth(args, n);\n      });\n    }\n\n    /**\n     * Creates a function that invokes `iteratees` with the arguments it receives\n     * and returns their results.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [iteratees=[_.identity]]\n     *  The iteratees to invoke.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.over([Math.max, Math.min]);\n     *\n     * func(1, 2, 3, 4);\n     * // => [4, 1]\n     */\n    var over = createOver(arrayMap);\n\n    /**\n     * Creates a function that checks if **all** of the `predicates` return\n     * truthy when invoked with the arguments it receives.\n     *\n     * Following shorthands are possible for providing predicates.\n     * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n     * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [predicates=[_.identity]]\n     *  The predicates to check.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.overEvery([Boolean, isFinite]);\n     *\n     * func('1');\n     * // => true\n     *\n     * func(null);\n     * // => false\n     *\n     * func(NaN);\n     * // => false\n     */\n    var overEvery = createOver(arrayEvery);\n\n    /**\n     * Creates a function that checks if **any** of the `predicates` return\n     * truthy when invoked with the arguments it receives.\n     *\n     * Following shorthands are possible for providing predicates.\n     * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n     * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {...(Function|Function[])} [predicates=[_.identity]]\n     *  The predicates to check.\n     * @returns {Function} Returns the new function.\n     * @example\n     *\n     * var func = _.overSome([Boolean, isFinite]);\n     *\n     * func('1');\n     * // => true\n     *\n     * func(null);\n     * // => true\n     *\n     * func(NaN);\n     * // => false\n     *\n     * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n     * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n     */\n    var overSome = createOver(arraySome);\n\n    /**\n     * Creates a function that returns the value at `path` of a given object.\n     *\n     * @static\n     * @memberOf _\n     * @since 2.4.0\n     * @category Util\n     * @param {Array|string} path The path of the property to get.\n     * @returns {Function} Returns the new accessor function.\n     * @example\n     *\n     * var objects = [\n     *   { 'a': { 'b': 2 } },\n     *   { 'a': { 'b': 1 } }\n     * ];\n     *\n     * _.map(objects, _.property('a.b'));\n     * // => [2, 1]\n     *\n     * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n     * // => [1, 2]\n     */\n    function property(path) {\n      return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n    }\n\n    /**\n     * The opposite of `_.property`; this method creates a function that returns\n     * the value at a given path of `object`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.0.0\n     * @category Util\n     * @param {Object} object The object to query.\n     * @returns {Function} Returns the new accessor function.\n     * @example\n     *\n     * var array = [0, 1, 2],\n     *     object = { 'a': array, 'b': array, 'c': array };\n     *\n     * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n     * // => [2, 0]\n     *\n     * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n     * // => [2, 0]\n     */\n    function propertyOf(object) {\n      return function(path) {\n        return object == null ? undefined : baseGet(object, path);\n      };\n    }\n\n    /**\n     * Creates an array of numbers (positive and/or negative) progressing from\n     * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n     * `start` is specified without an `end` or `step`. If `end` is not specified,\n     * it's set to `start` with `start` then set to `0`.\n     *\n     * **Note:** JavaScript follows the IEEE-754 standard for resolving\n     * floating-point values which can produce unexpected results.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} [step=1] The value to increment or decrement by.\n     * @returns {Array} Returns the range of numbers.\n     * @see _.inRange, _.rangeRight\n     * @example\n     *\n     * _.range(4);\n     * // => [0, 1, 2, 3]\n     *\n     * _.range(-4);\n     * // => [0, -1, -2, -3]\n     *\n     * _.range(1, 5);\n     * // => [1, 2, 3, 4]\n     *\n     * _.range(0, 20, 5);\n     * // => [0, 5, 10, 15]\n     *\n     * _.range(0, -4, -1);\n     * // => [0, -1, -2, -3]\n     *\n     * _.range(1, 4, 0);\n     * // => [1, 1, 1]\n     *\n     * _.range(0);\n     * // => []\n     */\n    var range = createRange();\n\n    /**\n     * This method is like `_.range` except that it populates values in\n     * descending order.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {number} [start=0] The start of the range.\n     * @param {number} end The end of the range.\n     * @param {number} [step=1] The value to increment or decrement by.\n     * @returns {Array} Returns the range of numbers.\n     * @see _.inRange, _.range\n     * @example\n     *\n     * _.rangeRight(4);\n     * // => [3, 2, 1, 0]\n     *\n     * _.rangeRight(-4);\n     * // => [-3, -2, -1, 0]\n     *\n     * _.rangeRight(1, 5);\n     * // => [4, 3, 2, 1]\n     *\n     * _.rangeRight(0, 20, 5);\n     * // => [15, 10, 5, 0]\n     *\n     * _.rangeRight(0, -4, -1);\n     * // => [-3, -2, -1, 0]\n     *\n     * _.rangeRight(1, 4, 0);\n     * // => [1, 1, 1]\n     *\n     * _.rangeRight(0);\n     * // => []\n     */\n    var rangeRight = createRange(true);\n\n    /**\n     * This method returns a new empty array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {Array} Returns the new empty array.\n     * @example\n     *\n     * var arrays = _.times(2, _.stubArray);\n     *\n     * console.log(arrays);\n     * // => [[], []]\n     *\n     * console.log(arrays[0] === arrays[1]);\n     * // => false\n     */\n    function stubArray() {\n      return [];\n    }\n\n    /**\n     * This method returns `false`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {boolean} Returns `false`.\n     * @example\n     *\n     * _.times(2, _.stubFalse);\n     * // => [false, false]\n     */\n    function stubFalse() {\n      return false;\n    }\n\n    /**\n     * This method returns a new empty object.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {Object} Returns the new empty object.\n     * @example\n     *\n     * var objects = _.times(2, _.stubObject);\n     *\n     * console.log(objects);\n     * // => [{}, {}]\n     *\n     * console.log(objects[0] === objects[1]);\n     * // => false\n     */\n    function stubObject() {\n      return {};\n    }\n\n    /**\n     * This method returns an empty string.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {string} Returns the empty string.\n     * @example\n     *\n     * _.times(2, _.stubString);\n     * // => ['', '']\n     */\n    function stubString() {\n      return '';\n    }\n\n    /**\n     * This method returns `true`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.13.0\n     * @category Util\n     * @returns {boolean} Returns `true`.\n     * @example\n     *\n     * _.times(2, _.stubTrue);\n     * // => [true, true]\n     */\n    function stubTrue() {\n      return true;\n    }\n\n    /**\n     * Invokes the iteratee `n` times, returning an array of the results of\n     * each invocation. The iteratee is invoked with one argument; (index).\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {number} n The number of times to invoke `iteratee`.\n     * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n     * @returns {Array} Returns the array of results.\n     * @example\n     *\n     * _.times(3, String);\n     * // => ['0', '1', '2']\n     *\n     *  _.times(4, _.constant(0));\n     * // => [0, 0, 0, 0]\n     */\n    function times(n, iteratee) {\n      n = toInteger(n);\n      if (n < 1 || n > MAX_SAFE_INTEGER) {\n        return [];\n      }\n      var index = MAX_ARRAY_LENGTH,\n          length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n      iteratee = getIteratee(iteratee);\n      n -= MAX_ARRAY_LENGTH;\n\n      var result = baseTimes(length, iteratee);\n      while (++index < n) {\n        iteratee(index);\n      }\n      return result;\n    }\n\n    /**\n     * Converts `value` to a property path array.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Util\n     * @param {*} value The value to convert.\n     * @returns {Array} Returns the new property path array.\n     * @example\n     *\n     * _.toPath('a.b.c');\n     * // => ['a', 'b', 'c']\n     *\n     * _.toPath('a[0].b.c');\n     * // => ['a', '0', 'b', 'c']\n     */\n    function toPath(value) {\n      if (isArray(value)) {\n        return arrayMap(value, toKey);\n      }\n      return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n    }\n\n    /**\n     * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Util\n     * @param {string} [prefix=''] The value to prefix the ID with.\n     * @returns {string} Returns the unique ID.\n     * @example\n     *\n     * _.uniqueId('contact_');\n     * // => 'contact_104'\n     *\n     * _.uniqueId();\n     * // => '105'\n     */\n    function uniqueId(prefix) {\n      var id = ++idCounter;\n      return toString(prefix) + id;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * Adds two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.4.0\n     * @category Math\n     * @param {number} augend The first number in an addition.\n     * @param {number} addend The second number in an addition.\n     * @returns {number} Returns the total.\n     * @example\n     *\n     * _.add(6, 4);\n     * // => 10\n     */\n    var add = createMathOperation(function(augend, addend) {\n      return augend + addend;\n    }, 0);\n\n    /**\n     * Computes `number` rounded up to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round up.\n     * @param {number} [precision=0] The precision to round up to.\n     * @returns {number} Returns the rounded up number.\n     * @example\n     *\n     * _.ceil(4.006);\n     * // => 5\n     *\n     * _.ceil(6.004, 2);\n     * // => 6.01\n     *\n     * _.ceil(6040, -2);\n     * // => 6100\n     */\n    var ceil = createRound('ceil');\n\n    /**\n     * Divide two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {number} dividend The first number in a division.\n     * @param {number} divisor The second number in a division.\n     * @returns {number} Returns the quotient.\n     * @example\n     *\n     * _.divide(6, 4);\n     * // => 1.5\n     */\n    var divide = createMathOperation(function(dividend, divisor) {\n      return dividend / divisor;\n    }, 1);\n\n    /**\n     * Computes `number` rounded down to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round down.\n     * @param {number} [precision=0] The precision to round down to.\n     * @returns {number} Returns the rounded down number.\n     * @example\n     *\n     * _.floor(4.006);\n     * // => 4\n     *\n     * _.floor(0.046, 2);\n     * // => 0.04\n     *\n     * _.floor(4060, -2);\n     * // => 4000\n     */\n    var floor = createRound('floor');\n\n    /**\n     * Computes the maximum value of `array`. If `array` is empty or falsey,\n     * `undefined` is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {*} Returns the maximum value.\n     * @example\n     *\n     * _.max([4, 2, 8, 6]);\n     * // => 8\n     *\n     * _.max([]);\n     * // => undefined\n     */\n    function max(array) {\n      return (array && array.length)\n        ? baseExtremum(array, identity, baseGt)\n        : undefined;\n    }\n\n    /**\n     * This method is like `_.max` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * the value is ranked. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {*} Returns the maximum value.\n     * @example\n     *\n     * var objects = [{ 'n': 1 }, { 'n': 2 }];\n     *\n     * _.maxBy(objects, function(o) { return o.n; });\n     * // => { 'n': 2 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.maxBy(objects, 'n');\n     * // => { 'n': 2 }\n     */\n    function maxBy(array, iteratee) {\n      return (array && array.length)\n        ? baseExtremum(array, getIteratee(iteratee, 2), baseGt)\n        : undefined;\n    }\n\n    /**\n     * Computes the mean of the values in `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {number} Returns the mean.\n     * @example\n     *\n     * _.mean([4, 2, 8, 6]);\n     * // => 5\n     */\n    function mean(array) {\n      return baseMean(array, identity);\n    }\n\n    /**\n     * This method is like `_.mean` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the value to be averaged.\n     * The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the mean.\n     * @example\n     *\n     * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n     *\n     * _.meanBy(objects, function(o) { return o.n; });\n     * // => 5\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.meanBy(objects, 'n');\n     * // => 5\n     */\n    function meanBy(array, iteratee) {\n      return baseMean(array, getIteratee(iteratee, 2));\n    }\n\n    /**\n     * Computes the minimum value of `array`. If `array` is empty or falsey,\n     * `undefined` is returned.\n     *\n     * @static\n     * @since 0.1.0\n     * @memberOf _\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {*} Returns the minimum value.\n     * @example\n     *\n     * _.min([4, 2, 8, 6]);\n     * // => 2\n     *\n     * _.min([]);\n     * // => undefined\n     */\n    function min(array) {\n      return (array && array.length)\n        ? baseExtremum(array, identity, baseLt)\n        : undefined;\n    }\n\n    /**\n     * This method is like `_.min` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the criterion by which\n     * the value is ranked. The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {*} Returns the minimum value.\n     * @example\n     *\n     * var objects = [{ 'n': 1 }, { 'n': 2 }];\n     *\n     * _.minBy(objects, function(o) { return o.n; });\n     * // => { 'n': 1 }\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.minBy(objects, 'n');\n     * // => { 'n': 1 }\n     */\n    function minBy(array, iteratee) {\n      return (array && array.length)\n        ? baseExtremum(array, getIteratee(iteratee, 2), baseLt)\n        : undefined;\n    }\n\n    /**\n     * Multiply two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.7.0\n     * @category Math\n     * @param {number} multiplier The first number in a multiplication.\n     * @param {number} multiplicand The second number in a multiplication.\n     * @returns {number} Returns the product.\n     * @example\n     *\n     * _.multiply(6, 4);\n     * // => 24\n     */\n    var multiply = createMathOperation(function(multiplier, multiplicand) {\n      return multiplier * multiplicand;\n    }, 1);\n\n    /**\n     * Computes `number` rounded to `precision`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.10.0\n     * @category Math\n     * @param {number} number The number to round.\n     * @param {number} [precision=0] The precision to round to.\n     * @returns {number} Returns the rounded number.\n     * @example\n     *\n     * _.round(4.006);\n     * // => 4\n     *\n     * _.round(4.006, 2);\n     * // => 4.01\n     *\n     * _.round(4060, -2);\n     * // => 4100\n     */\n    var round = createRound('round');\n\n    /**\n     * Subtract two numbers.\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {number} minuend The first number in a subtraction.\n     * @param {number} subtrahend The second number in a subtraction.\n     * @returns {number} Returns the difference.\n     * @example\n     *\n     * _.subtract(6, 4);\n     * // => 2\n     */\n    var subtract = createMathOperation(function(minuend, subtrahend) {\n      return minuend - subtrahend;\n    }, 0);\n\n    /**\n     * Computes the sum of the values in `array`.\n     *\n     * @static\n     * @memberOf _\n     * @since 3.4.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @returns {number} Returns the sum.\n     * @example\n     *\n     * _.sum([4, 2, 8, 6]);\n     * // => 20\n     */\n    function sum(array) {\n      return (array && array.length)\n        ? baseSum(array, identity)\n        : 0;\n    }\n\n    /**\n     * This method is like `_.sum` except that it accepts `iteratee` which is\n     * invoked for each element in `array` to generate the value to be summed.\n     * The iteratee is invoked with one argument: (value).\n     *\n     * @static\n     * @memberOf _\n     * @since 4.0.0\n     * @category Math\n     * @param {Array} array The array to iterate over.\n     * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n     * @returns {number} Returns the sum.\n     * @example\n     *\n     * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n     *\n     * _.sumBy(objects, function(o) { return o.n; });\n     * // => 20\n     *\n     * // The `_.property` iteratee shorthand.\n     * _.sumBy(objects, 'n');\n     * // => 20\n     */\n    function sumBy(array, iteratee) {\n      return (array && array.length)\n        ? baseSum(array, getIteratee(iteratee, 2))\n        : 0;\n    }\n\n    /*------------------------------------------------------------------------*/\n\n    // Add methods that return wrapped values in chain sequences.\n    lodash.after = after;\n    lodash.ary = ary;\n    lodash.assign = assign;\n    lodash.assignIn = assignIn;\n    lodash.assignInWith = assignInWith;\n    lodash.assignWith = assignWith;\n    lodash.at = at;\n    lodash.before = before;\n    lodash.bind = bind;\n    lodash.bindAll = bindAll;\n    lodash.bindKey = bindKey;\n    lodash.castArray = castArray;\n    lodash.chain = chain;\n    lodash.chunk = chunk;\n    lodash.compact = compact;\n    lodash.concat = concat;\n    lodash.cond = cond;\n    lodash.conforms = conforms;\n    lodash.constant = constant;\n    lodash.countBy = countBy;\n    lodash.create = create;\n    lodash.curry = curry;\n    lodash.curryRight = curryRight;\n    lodash.debounce = debounce;\n    lodash.defaults = defaults;\n    lodash.defaultsDeep = defaultsDeep;\n    lodash.defer = defer;\n    lodash.delay = delay;\n    lodash.difference = difference;\n    lodash.differenceBy = differenceBy;\n    lodash.differenceWith = differenceWith;\n    lodash.drop = drop;\n    lodash.dropRight = dropRight;\n    lodash.dropRightWhile = dropRightWhile;\n    lodash.dropWhile = dropWhile;\n    lodash.fill = fill;\n    lodash.filter = filter;\n    lodash.flatMap = flatMap;\n    lodash.flatMapDeep = flatMapDeep;\n    lodash.flatMapDepth = flatMapDepth;\n    lodash.flatten = flatten;\n    lodash.flattenDeep = flattenDeep;\n    lodash.flattenDepth = flattenDepth;\n    lodash.flip = flip;\n    lodash.flow = flow;\n    lodash.flowRight = flowRight;\n    lodash.fromPairs = fromPairs;\n    lodash.functions = functions;\n    lodash.functionsIn = functionsIn;\n    lodash.groupBy = groupBy;\n    lodash.initial = initial;\n    lodash.intersection = intersection;\n    lodash.intersectionBy = intersectionBy;\n    lodash.intersectionWith = intersectionWith;\n    lodash.invert = invert;\n    lodash.invertBy = invertBy;\n    lodash.invokeMap = invokeMap;\n    lodash.iteratee = iteratee;\n    lodash.keyBy = keyBy;\n    lodash.keys = keys;\n    lodash.keysIn = keysIn;\n    lodash.map = map;\n    lodash.mapKeys = mapKeys;\n    lodash.mapValues = mapValues;\n    lodash.matches = matches;\n    lodash.matchesProperty = matchesProperty;\n    lodash.memoize = memoize;\n    lodash.merge = merge;\n    lodash.mergeWith = mergeWith;\n    lodash.method = method;\n    lodash.methodOf = methodOf;\n    lodash.mixin = mixin;\n    lodash.negate = negate;\n    lodash.nthArg = nthArg;\n    lodash.omit = omit;\n    lodash.omitBy = omitBy;\n    lodash.once = once;\n    lodash.orderBy = orderBy;\n    lodash.over = over;\n    lodash.overArgs = overArgs;\n    lodash.overEvery = overEvery;\n    lodash.overSome = overSome;\n    lodash.partial = partial;\n    lodash.partialRight = partialRight;\n    lodash.partition = partition;\n    lodash.pick = pick;\n    lodash.pickBy = pickBy;\n    lodash.property = property;\n    lodash.propertyOf = propertyOf;\n    lodash.pull = pull;\n    lodash.pullAll = pullAll;\n    lodash.pullAllBy = pullAllBy;\n    lodash.pullAllWith = pullAllWith;\n    lodash.pullAt = pullAt;\n    lodash.range = range;\n    lodash.rangeRight = rangeRight;\n    lodash.rearg = rearg;\n    lodash.reject = reject;\n    lodash.remove = remove;\n    lodash.rest = rest;\n    lodash.reverse = reverse;\n    lodash.sampleSize = sampleSize;\n    lodash.set = set;\n    lodash.setWith = setWith;\n    lodash.shuffle = shuffle;\n    lodash.slice = slice;\n    lodash.sortBy = sortBy;\n    lodash.sortedUniq = sortedUniq;\n    lodash.sortedUniqBy = sortedUniqBy;\n    lodash.split = split;\n    lodash.spread = spread;\n    lodash.tail = tail;\n    lodash.take = take;\n    lodash.takeRight = takeRight;\n    lodash.takeRightWhile = takeRightWhile;\n    lodash.takeWhile = takeWhile;\n    lodash.tap = tap;\n    lodash.throttle = throttle;\n    lodash.thru = thru;\n    lodash.toArray = toArray;\n    lodash.toPairs = toPairs;\n    lodash.toPairsIn = toPairsIn;\n    lodash.toPath = toPath;\n    lodash.toPlainObject = toPlainObject;\n    lodash.transform = transform;\n    lodash.unary = unary;\n    lodash.union = union;\n    lodash.unionBy = unionBy;\n    lodash.unionWith = unionWith;\n    lodash.uniq = uniq;\n    lodash.uniqBy = uniqBy;\n    lodash.uniqWith = uniqWith;\n    lodash.unset = unset;\n    lodash.unzip = unzip;\n    lodash.unzipWith = unzipWith;\n    lodash.update = update;\n    lodash.updateWith = updateWith;\n    lodash.values = values;\n    lodash.valuesIn = valuesIn;\n    lodash.without = without;\n    lodash.words = words;\n    lodash.wrap = wrap;\n    lodash.xor = xor;\n    lodash.xorBy = xorBy;\n    lodash.xorWith = xorWith;\n    lodash.zip = zip;\n    lodash.zipObject = zipObject;\n    lodash.zipObjectDeep = zipObjectDeep;\n    lodash.zipWith = zipWith;\n\n    // Add aliases.\n    lodash.entries = toPairs;\n    lodash.entriesIn = toPairsIn;\n    lodash.extend = assignIn;\n    lodash.extendWith = assignInWith;\n\n    // Add methods to `lodash.prototype`.\n    mixin(lodash, lodash);\n\n    /*------------------------------------------------------------------------*/\n\n    // Add methods that return unwrapped values in chain sequences.\n    lodash.add = add;\n    lodash.attempt = attempt;\n    lodash.camelCase = camelCase;\n    lodash.capitalize = capitalize;\n    lodash.ceil = ceil;\n    lodash.clamp = clamp;\n    lodash.clone = clone;\n    lodash.cloneDeep = cloneDeep;\n    lodash.cloneDeepWith = cloneDeepWith;\n    lodash.cloneWith = cloneWith;\n    lodash.conformsTo = conformsTo;\n    lodash.deburr = deburr;\n    lodash.defaultTo = defaultTo;\n    lodash.divide = divide;\n    lodash.endsWith = endsWith;\n    lodash.eq = eq;\n    lodash.escape = escape;\n    lodash.escapeRegExp = escapeRegExp;\n    lodash.every = every;\n    lodash.find = find;\n    lodash.findIndex = findIndex;\n    lodash.findKey = findKey;\n    lodash.findLast = findLast;\n    lodash.findLastIndex = findLastIndex;\n    lodash.findLastKey = findLastKey;\n    lodash.floor = floor;\n    lodash.forEach = forEach;\n    lodash.forEachRight = forEachRight;\n    lodash.forIn = forIn;\n    lodash.forInRight = forInRight;\n    lodash.forOwn = forOwn;\n    lodash.forOwnRight = forOwnRight;\n    lodash.get = get;\n    lodash.gt = gt;\n    lodash.gte = gte;\n    lodash.has = has;\n    lodash.hasIn = hasIn;\n    lodash.head = head;\n    lodash.identity = identity;\n    lodash.includes = includes;\n    lodash.indexOf = indexOf;\n    lodash.inRange = inRange;\n    lodash.invoke = invoke;\n    lodash.isArguments = isArguments;\n    lodash.isArray = isArray;\n    lodash.isArrayBuffer = isArrayBuffer;\n    lodash.isArrayLike = isArrayLike;\n    lodash.isArrayLikeObject = isArrayLikeObject;\n    lodash.isBoolean = isBoolean;\n    lodash.isBuffer = isBuffer;\n    lodash.isDate = isDate;\n    lodash.isElement = isElement;\n    lodash.isEmpty = isEmpty;\n    lodash.isEqual = isEqual;\n    lodash.isEqualWith = isEqualWith;\n    lodash.isError = isError;\n    lodash.isFinite = isFinite;\n    lodash.isFunction = isFunction;\n    lodash.isInteger = isInteger;\n    lodash.isLength = isLength;\n    lodash.isMap = isMap;\n    lodash.isMatch = isMatch;\n    lodash.isMatchWith = isMatchWith;\n    lodash.isNaN = isNaN;\n    lodash.isNative = isNative;\n    lodash.isNil = isNil;\n    lodash.isNull = isNull;\n    lodash.isNumber = isNumber;\n    lodash.isObject = isObject;\n    lodash.isObjectLike = isObjectLike;\n    lodash.isPlainObject = isPlainObject;\n    lodash.isRegExp = isRegExp;\n    lodash.isSafeInteger = isSafeInteger;\n    lodash.isSet = isSet;\n    lodash.isString = isString;\n    lodash.isSymbol = isSymbol;\n    lodash.isTypedArray = isTypedArray;\n    lodash.isUndefined = isUndefined;\n    lodash.isWeakMap = isWeakMap;\n    lodash.isWeakSet = isWeakSet;\n    lodash.join = join;\n    lodash.kebabCase = kebabCase;\n    lodash.last = last;\n    lodash.lastIndexOf = lastIndexOf;\n    lodash.lowerCase = lowerCase;\n    lodash.lowerFirst = lowerFirst;\n    lodash.lt = lt;\n    lodash.lte = lte;\n    lodash.max = max;\n    lodash.maxBy = maxBy;\n    lodash.mean = mean;\n    lodash.meanBy = meanBy;\n    lodash.min = min;\n    lodash.minBy = minBy;\n    lodash.stubArray = stubArray;\n    lodash.stubFalse = stubFalse;\n    lodash.stubObject = stubObject;\n    lodash.stubString = stubString;\n    lodash.stubTrue = stubTrue;\n    lodash.multiply = multiply;\n    lodash.nth = nth;\n    lodash.noConflict = noConflict;\n    lodash.noop = noop;\n    lodash.now = now;\n    lodash.pad = pad;\n    lodash.padEnd = padEnd;\n    lodash.padStart = padStart;\n    lodash.parseInt = parseInt;\n    lodash.random = random;\n    lodash.reduce = reduce;\n    lodash.reduceRight = reduceRight;\n    lodash.repeat = repeat;\n    lodash.replace = replace;\n    lodash.result = result;\n    lodash.round = round;\n    lodash.runInContext = runInContext;\n    lodash.sample = sample;\n    lodash.size = size;\n    lodash.snakeCase = snakeCase;\n    lodash.some = some;\n    lodash.sortedIndex = sortedIndex;\n    lodash.sortedIndexBy = sortedIndexBy;\n    lodash.sortedIndexOf = sortedIndexOf;\n    lodash.sortedLastIndex = sortedLastIndex;\n    lodash.sortedLastIndexBy = sortedLastIndexBy;\n    lodash.sortedLastIndexOf = sortedLastIndexOf;\n    lodash.startCase = startCase;\n    lodash.startsWith = startsWith;\n    lodash.subtract = subtract;\n    lodash.sum = sum;\n    lodash.sumBy = sumBy;\n    lodash.template = template;\n    lodash.times = times;\n    lodash.toFinite = toFinite;\n    lodash.toInteger = toInteger;\n    lodash.toLength = toLength;\n    lodash.toLower = toLower;\n    lodash.toNumber = toNumber;\n    lodash.toSafeInteger = toSafeInteger;\n    lodash.toString = toString;\n    lodash.toUpper = toUpper;\n    lodash.trim = trim;\n    lodash.trimEnd = trimEnd;\n    lodash.trimStart = trimStart;\n    lodash.truncate = truncate;\n    lodash.unescape = unescape;\n    lodash.uniqueId = uniqueId;\n    lodash.upperCase = upperCase;\n    lodash.upperFirst = upperFirst;\n\n    // Add aliases.\n    lodash.each = forEach;\n    lodash.eachRight = forEachRight;\n    lodash.first = head;\n\n    mixin(lodash, (function() {\n      var source = {};\n      baseForOwn(lodash, function(func, methodName) {\n        if (!hasOwnProperty.call(lodash.prototype, methodName)) {\n          source[methodName] = func;\n        }\n      });\n      return source;\n    }()), { 'chain': false });\n\n    /*------------------------------------------------------------------------*/\n\n    /**\n     * The semantic version number.\n     *\n     * @static\n     * @memberOf _\n     * @type {string}\n     */\n    lodash.VERSION = VERSION;\n\n    // Assign default placeholders.\n    arrayEach(['bind', 'bindKey', 'curry', 'curryRight', 'partial', 'partialRight'], function(methodName) {\n      lodash[methodName].placeholder = lodash;\n    });\n\n    // Add `LazyWrapper` methods for `_.drop` and `_.take` variants.\n    arrayEach(['drop', 'take'], function(methodName, index) {\n      LazyWrapper.prototype[methodName] = function(n) {\n        n = n === undefined ? 1 : nativeMax(toInteger(n), 0);\n\n        var result = (this.__filtered__ && !index)\n          ? new LazyWrapper(this)\n          : this.clone();\n\n        if (result.__filtered__) {\n          result.__takeCount__ = nativeMin(n, result.__takeCount__);\n        } else {\n          result.__views__.push({\n            'size': nativeMin(n, MAX_ARRAY_LENGTH),\n            'type': methodName + (result.__dir__ < 0 ? 'Right' : '')\n          });\n        }\n        return result;\n      };\n\n      LazyWrapper.prototype[methodName + 'Right'] = function(n) {\n        return this.reverse()[methodName](n).reverse();\n      };\n    });\n\n    // Add `LazyWrapper` methods that accept an `iteratee` value.\n    arrayEach(['filter', 'map', 'takeWhile'], function(methodName, index) {\n      var type = index + 1,\n          isFilter = type == LAZY_FILTER_FLAG || type == LAZY_WHILE_FLAG;\n\n      LazyWrapper.prototype[methodName] = function(iteratee) {\n        var result = this.clone();\n        result.__iteratees__.push({\n          'iteratee': getIteratee(iteratee, 3),\n          'type': type\n        });\n        result.__filtered__ = result.__filtered__ || isFilter;\n        return result;\n      };\n    });\n\n    // Add `LazyWrapper` methods for `_.head` and `_.last`.\n    arrayEach(['head', 'last'], function(methodName, index) {\n      var takeName = 'take' + (index ? 'Right' : '');\n\n      LazyWrapper.prototype[methodName] = function() {\n        return this[takeName](1).value()[0];\n      };\n    });\n\n    // Add `LazyWrapper` methods for `_.initial` and `_.tail`.\n    arrayEach(['initial', 'tail'], function(methodName, index) {\n      var dropName = 'drop' + (index ? '' : 'Right');\n\n      LazyWrapper.prototype[methodName] = function() {\n        return this.__filtered__ ? new LazyWrapper(this) : this[dropName](1);\n      };\n    });\n\n    LazyWrapper.prototype.compact = function() {\n      return this.filter(identity);\n    };\n\n    LazyWrapper.prototype.find = function(predicate) {\n      return this.filter(predicate).head();\n    };\n\n    LazyWrapper.prototype.findLast = function(predicate) {\n      return this.reverse().find(predicate);\n    };\n\n    LazyWrapper.prototype.invokeMap = baseRest(function(path, args) {\n      if (typeof path == 'function') {\n        return new LazyWrapper(this);\n      }\n      return this.map(function(value) {\n        return baseInvoke(value, path, args);\n      });\n    });\n\n    LazyWrapper.prototype.reject = function(predicate) {\n      return this.filter(negate(getIteratee(predicate)));\n    };\n\n    LazyWrapper.prototype.slice = function(start, end) {\n      start = toInteger(start);\n\n      var result = this;\n      if (result.__filtered__ && (start > 0 || end < 0)) {\n        return new LazyWrapper(result);\n      }\n      if (start < 0) {\n        result = result.takeRight(-start);\n      } else if (start) {\n        result = result.drop(start);\n      }\n      if (end !== undefined) {\n        end = toInteger(end);\n        result = end < 0 ? result.dropRight(-end) : result.take(end - start);\n      }\n      return result;\n    };\n\n    LazyWrapper.prototype.takeRightWhile = function(predicate) {\n      return this.reverse().takeWhile(predicate).reverse();\n    };\n\n    LazyWrapper.prototype.toArray = function() {\n      return this.take(MAX_ARRAY_LENGTH);\n    };\n\n    // Add `LazyWrapper` methods to `lodash.prototype`.\n    baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n      var checkIteratee = /^(?:filter|find|map|reject)|While$/.test(methodName),\n          isTaker = /^(?:head|last)$/.test(methodName),\n          lodashFunc = lodash[isTaker ? ('take' + (methodName == 'last' ? 'Right' : '')) : methodName],\n          retUnwrapped = isTaker || /^find/.test(methodName);\n\n      if (!lodashFunc) {\n        return;\n      }\n      lodash.prototype[methodName] = function() {\n        var value = this.__wrapped__,\n            args = isTaker ? [1] : arguments,\n            isLazy = value instanceof LazyWrapper,\n            iteratee = args[0],\n            useLazy = isLazy || isArray(value);\n\n        var interceptor = function(value) {\n          var result = lodashFunc.apply(lodash, arrayPush([value], args));\n          return (isTaker && chainAll) ? result[0] : result;\n        };\n\n        if (useLazy && checkIteratee && typeof iteratee == 'function' && iteratee.length != 1) {\n          // Avoid lazy use if the iteratee has a \"length\" value other than `1`.\n          isLazy = useLazy = false;\n        }\n        var chainAll = this.__chain__,\n            isHybrid = !!this.__actions__.length,\n            isUnwrapped = retUnwrapped && !chainAll,\n            onlyLazy = isLazy && !isHybrid;\n\n        if (!retUnwrapped && useLazy) {\n          value = onlyLazy ? value : new LazyWrapper(this);\n          var result = func.apply(value, args);\n          result.__actions__.push({ 'func': thru, 'args': [interceptor], 'thisArg': undefined });\n          return new LodashWrapper(result, chainAll);\n        }\n        if (isUnwrapped && onlyLazy) {\n          return func.apply(this, args);\n        }\n        result = this.thru(interceptor);\n        return isUnwrapped ? (isTaker ? result.value()[0] : result.value()) : result;\n      };\n    });\n\n    // Add `Array` methods to `lodash.prototype`.\n    arrayEach(['pop', 'push', 'shift', 'sort', 'splice', 'unshift'], function(methodName) {\n      var func = arrayProto[methodName],\n          chainName = /^(?:push|sort|unshift)$/.test(methodName) ? 'tap' : 'thru',\n          retUnwrapped = /^(?:pop|shift)$/.test(methodName);\n\n      lodash.prototype[methodName] = function() {\n        var args = arguments;\n        if (retUnwrapped && !this.__chain__) {\n          var value = this.value();\n          return func.apply(isArray(value) ? value : [], args);\n        }\n        return this[chainName](function(value) {\n          return func.apply(isArray(value) ? value : [], args);\n        });\n      };\n    });\n\n    // Map minified method names to their real names.\n    baseForOwn(LazyWrapper.prototype, function(func, methodName) {\n      var lodashFunc = lodash[methodName];\n      if (lodashFunc) {\n        var key = lodashFunc.name + '';\n        if (!hasOwnProperty.call(realNames, key)) {\n          realNames[key] = [];\n        }\n        realNames[key].push({ 'name': methodName, 'func': lodashFunc });\n      }\n    });\n\n    realNames[createHybrid(undefined, WRAP_BIND_KEY_FLAG).name] = [{\n      'name': 'wrapper',\n      'func': undefined\n    }];\n\n    // Add methods to `LazyWrapper`.\n    LazyWrapper.prototype.clone = lazyClone;\n    LazyWrapper.prototype.reverse = lazyReverse;\n    LazyWrapper.prototype.value = lazyValue;\n\n    // Add chain sequence methods to the `lodash` wrapper.\n    lodash.prototype.at = wrapperAt;\n    lodash.prototype.chain = wrapperChain;\n    lodash.prototype.commit = wrapperCommit;\n    lodash.prototype.next = wrapperNext;\n    lodash.prototype.plant = wrapperPlant;\n    lodash.prototype.reverse = wrapperReverse;\n    lodash.prototype.toJSON = lodash.prototype.valueOf = lodash.prototype.value = wrapperValue;\n\n    // Add lazy aliases.\n    lodash.prototype.first = lodash.prototype.head;\n\n    if (symIterator) {\n      lodash.prototype[symIterator] = wrapperToIterator;\n    }\n    return lodash;\n  });\n\n  /*--------------------------------------------------------------------------*/\n\n  // Export lodash.\n  var _ = runInContext();\n\n  // Some AMD build optimizers, like r.js, check for condition patterns like:\n  if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n    // Expose Lodash on the global object to prevent errors when Lodash is\n    // loaded by a script tag in the presence of an AMD loader.\n    // See http://requirejs.org/docs/errors.html#mismatch for more details.\n    // Use `_.noConflict` to remove Lodash from the global object.\n    root._ = _;\n\n    // Define as an anonymous module so, through path mapping, it can be\n    // referenced as the \"underscore\" module.\n    define(function() {\n      return _;\n    });\n  }\n  // Check for `exports` after `define` in case a build optimizer adds it.\n  else if (freeModule) {\n    // Export for Node.js.\n    (freeModule.exports = _)._ = _;\n    // Export for CommonJS support.\n    freeExports._ = _;\n  }\n  else {\n    // Export to the global object.\n    root._ = _;\n  }\n}.call(this));\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/moment.js",
    "content": "//! moment.js\n//! version : 2.27.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n    typeof define === 'function' && define.amd ? define(factory) :\n    global.moment = factory()\n}(this, (function () { 'use strict';\n\n    var hookCallback;\n\n    function hooks() {\n        return hookCallback.apply(null, arguments);\n    }\n\n    // This is done to register the method called with moment()\n    // without creating circular dependencies.\n    function setHookCallback(callback) {\n        hookCallback = callback;\n    }\n\n    function isArray(input) {\n        return (\n            input instanceof Array ||\n            Object.prototype.toString.call(input) === '[object Array]'\n        );\n    }\n\n    function isObject(input) {\n        // IE8 will treat undefined and null as object if it wasn't for\n        // input != null\n        return (\n            input != null &&\n            Object.prototype.toString.call(input) === '[object Object]'\n        );\n    }\n\n    function hasOwnProp(a, b) {\n        return Object.prototype.hasOwnProperty.call(a, b);\n    }\n\n    function isObjectEmpty(obj) {\n        if (Object.getOwnPropertyNames) {\n            return Object.getOwnPropertyNames(obj).length === 0;\n        } else {\n            var k;\n            for (k in obj) {\n                if (hasOwnProp(obj, k)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n    }\n\n    function isUndefined(input) {\n        return input === void 0;\n    }\n\n    function isNumber(input) {\n        return (\n            typeof input === 'number' ||\n            Object.prototype.toString.call(input) === '[object Number]'\n        );\n    }\n\n    function isDate(input) {\n        return (\n            input instanceof Date ||\n            Object.prototype.toString.call(input) === '[object Date]'\n        );\n    }\n\n    function map(arr, fn) {\n        var res = [],\n            i;\n        for (i = 0; i < arr.length; ++i) {\n            res.push(fn(arr[i], i));\n        }\n        return res;\n    }\n\n    function extend(a, b) {\n        for (var i in b) {\n            if (hasOwnProp(b, i)) {\n                a[i] = b[i];\n            }\n        }\n\n        if (hasOwnProp(b, 'toString')) {\n            a.toString = b.toString;\n        }\n\n        if (hasOwnProp(b, 'valueOf')) {\n            a.valueOf = b.valueOf;\n        }\n\n        return a;\n    }\n\n    function createUTC(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, true).utc();\n    }\n\n    function defaultParsingFlags() {\n        // We need to deep clone this object.\n        return {\n            empty: false,\n            unusedTokens: [],\n            unusedInput: [],\n            overflow: -2,\n            charsLeftOver: 0,\n            nullInput: false,\n            invalidEra: null,\n            invalidMonth: null,\n            invalidFormat: false,\n            userInvalidated: false,\n            iso: false,\n            parsedDateParts: [],\n            era: null,\n            meridiem: null,\n            rfc2822: false,\n            weekdayMismatch: false,\n        };\n    }\n\n    function getParsingFlags(m) {\n        if (m._pf == null) {\n            m._pf = defaultParsingFlags();\n        }\n        return m._pf;\n    }\n\n    var some;\n    if (Array.prototype.some) {\n        some = Array.prototype.some;\n    } else {\n        some = function (fun) {\n            var t = Object(this),\n                len = t.length >>> 0,\n                i;\n\n            for (i = 0; i < len; i++) {\n                if (i in t && fun.call(this, t[i], i, t)) {\n                    return true;\n                }\n            }\n\n            return false;\n        };\n    }\n\n    function isValid(m) {\n        if (m._isValid == null) {\n            var flags = getParsingFlags(m),\n                parsedParts = some.call(flags.parsedDateParts, function (i) {\n                    return i != null;\n                }),\n                isNowValid =\n                    !isNaN(m._d.getTime()) &&\n                    flags.overflow < 0 &&\n                    !flags.empty &&\n                    !flags.invalidEra &&\n                    !flags.invalidMonth &&\n                    !flags.invalidWeekday &&\n                    !flags.weekdayMismatch &&\n                    !flags.nullInput &&\n                    !flags.invalidFormat &&\n                    !flags.userInvalidated &&\n                    (!flags.meridiem || (flags.meridiem && parsedParts));\n\n            if (m._strict) {\n                isNowValid =\n                    isNowValid &&\n                    flags.charsLeftOver === 0 &&\n                    flags.unusedTokens.length === 0 &&\n                    flags.bigHour === undefined;\n            }\n\n            if (Object.isFrozen == null || !Object.isFrozen(m)) {\n                m._isValid = isNowValid;\n            } else {\n                return isNowValid;\n            }\n        }\n        return m._isValid;\n    }\n\n    function createInvalid(flags) {\n        var m = createUTC(NaN);\n        if (flags != null) {\n            extend(getParsingFlags(m), flags);\n        } else {\n            getParsingFlags(m).userInvalidated = true;\n        }\n\n        return m;\n    }\n\n    // Plugins that add properties should also add the key here (null value),\n    // so we can properly clone ourselves.\n    var momentProperties = (hooks.momentProperties = []),\n        updateInProgress = false;\n\n    function copyConfig(to, from) {\n        var i, prop, val;\n\n        if (!isUndefined(from._isAMomentObject)) {\n            to._isAMomentObject = from._isAMomentObject;\n        }\n        if (!isUndefined(from._i)) {\n            to._i = from._i;\n        }\n        if (!isUndefined(from._f)) {\n            to._f = from._f;\n        }\n        if (!isUndefined(from._l)) {\n            to._l = from._l;\n        }\n        if (!isUndefined(from._strict)) {\n            to._strict = from._strict;\n        }\n        if (!isUndefined(from._tzm)) {\n            to._tzm = from._tzm;\n        }\n        if (!isUndefined(from._isUTC)) {\n            to._isUTC = from._isUTC;\n        }\n        if (!isUndefined(from._offset)) {\n            to._offset = from._offset;\n        }\n        if (!isUndefined(from._pf)) {\n            to._pf = getParsingFlags(from);\n        }\n        if (!isUndefined(from._locale)) {\n            to._locale = from._locale;\n        }\n\n        if (momentProperties.length > 0) {\n            for (i = 0; i < momentProperties.length; i++) {\n                prop = momentProperties[i];\n                val = from[prop];\n                if (!isUndefined(val)) {\n                    to[prop] = val;\n                }\n            }\n        }\n\n        return to;\n    }\n\n    // Moment prototype object\n    function Moment(config) {\n        copyConfig(this, config);\n        this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n        if (!this.isValid()) {\n            this._d = new Date(NaN);\n        }\n        // Prevent infinite loop in case updateOffset creates new moment\n        // objects.\n        if (updateInProgress === false) {\n            updateInProgress = true;\n            hooks.updateOffset(this);\n            updateInProgress = false;\n        }\n    }\n\n    function isMoment(obj) {\n        return (\n            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n        );\n    }\n\n    function warn(msg) {\n        if (\n            hooks.suppressDeprecationWarnings === false &&\n            typeof console !== 'undefined' &&\n            console.warn\n        ) {\n            console.warn('Deprecation warning: ' + msg);\n        }\n    }\n\n    function deprecate(msg, fn) {\n        var firstTime = true;\n\n        return extend(function () {\n            if (hooks.deprecationHandler != null) {\n                hooks.deprecationHandler(null, msg);\n            }\n            if (firstTime) {\n                var args = [],\n                    arg,\n                    i,\n                    key;\n                for (i = 0; i < arguments.length; i++) {\n                    arg = '';\n                    if (typeof arguments[i] === 'object') {\n                        arg += '\\n[' + i + '] ';\n                        for (key in arguments[0]) {\n                            if (hasOwnProp(arguments[0], key)) {\n                                arg += key + ': ' + arguments[0][key] + ', ';\n                            }\n                        }\n                        arg = arg.slice(0, -2); // Remove trailing comma and space\n                    } else {\n                        arg = arguments[i];\n                    }\n                    args.push(arg);\n                }\n                warn(\n                    msg +\n                        '\\nArguments: ' +\n                        Array.prototype.slice.call(args).join('') +\n                        '\\n' +\n                        new Error().stack\n                );\n                firstTime = false;\n            }\n            return fn.apply(this, arguments);\n        }, fn);\n    }\n\n    var deprecations = {};\n\n    function deprecateSimple(name, msg) {\n        if (hooks.deprecationHandler != null) {\n            hooks.deprecationHandler(name, msg);\n        }\n        if (!deprecations[name]) {\n            warn(msg);\n            deprecations[name] = true;\n        }\n    }\n\n    hooks.suppressDeprecationWarnings = false;\n    hooks.deprecationHandler = null;\n\n    function isFunction(input) {\n        return (\n            (typeof Function !== 'undefined' && input instanceof Function) ||\n            Object.prototype.toString.call(input) === '[object Function]'\n        );\n    }\n\n    function set(config) {\n        var prop, i;\n        for (i in config) {\n            if (hasOwnProp(config, i)) {\n                prop = config[i];\n                if (isFunction(prop)) {\n                    this[i] = prop;\n                } else {\n                    this['_' + i] = prop;\n                }\n            }\n        }\n        this._config = config;\n        // Lenient ordinal parsing accepts just a number in addition to\n        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        this._dayOfMonthOrdinalParseLenient = new RegExp(\n            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n                '|' +\n                /\\d{1,2}/.source\n        );\n    }\n\n    function mergeConfigs(parentConfig, childConfig) {\n        var res = extend({}, parentConfig),\n            prop;\n        for (prop in childConfig) {\n            if (hasOwnProp(childConfig, prop)) {\n                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n                    res[prop] = {};\n                    extend(res[prop], parentConfig[prop]);\n                    extend(res[prop], childConfig[prop]);\n                } else if (childConfig[prop] != null) {\n                    res[prop] = childConfig[prop];\n                } else {\n                    delete res[prop];\n                }\n            }\n        }\n        for (prop in parentConfig) {\n            if (\n                hasOwnProp(parentConfig, prop) &&\n                !hasOwnProp(childConfig, prop) &&\n                isObject(parentConfig[prop])\n            ) {\n                // make sure changes to properties don't modify parent config\n                res[prop] = extend({}, res[prop]);\n            }\n        }\n        return res;\n    }\n\n    function Locale(config) {\n        if (config != null) {\n            this.set(config);\n        }\n    }\n\n    var keys;\n\n    if (Object.keys) {\n        keys = Object.keys;\n    } else {\n        keys = function (obj) {\n            var i,\n                res = [];\n            for (i in obj) {\n                if (hasOwnProp(obj, i)) {\n                    res.push(i);\n                }\n            }\n            return res;\n        };\n    }\n\n    var defaultCalendar = {\n        sameDay: '[Today at] LT',\n        nextDay: '[Tomorrow at] LT',\n        nextWeek: 'dddd [at] LT',\n        lastDay: '[Yesterday at] LT',\n        lastWeek: '[Last] dddd [at] LT',\n        sameElse: 'L',\n    };\n\n    function calendar(key, mom, now) {\n        var output = this._calendar[key] || this._calendar['sameElse'];\n        return isFunction(output) ? output.call(mom, now) : output;\n    }\n\n    function zeroFill(number, targetLength, forceSign) {\n        var absNumber = '' + Math.abs(number),\n            zerosToFill = targetLength - absNumber.length,\n            sign = number >= 0;\n        return (\n            (sign ? (forceSign ? '+' : '') : '-') +\n            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n            absNumber\n        );\n    }\n\n    var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n        localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n        formatFunctions = {},\n        formatTokenFunctions = {};\n\n    // token:    'M'\n    // padded:   ['MM', 2]\n    // ordinal:  'Mo'\n    // callback: function () { this.month() + 1 }\n    function addFormatToken(token, padded, ordinal, callback) {\n        var func = callback;\n        if (typeof callback === 'string') {\n            func = function () {\n                return this[callback]();\n            };\n        }\n        if (token) {\n            formatTokenFunctions[token] = func;\n        }\n        if (padded) {\n            formatTokenFunctions[padded[0]] = function () {\n                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n            };\n        }\n        if (ordinal) {\n            formatTokenFunctions[ordinal] = function () {\n                return this.localeData().ordinal(\n                    func.apply(this, arguments),\n                    token\n                );\n            };\n        }\n    }\n\n    function removeFormattingTokens(input) {\n        if (input.match(/\\[[\\s\\S]/)) {\n            return input.replace(/^\\[|\\]$/g, '');\n        }\n        return input.replace(/\\\\/g, '');\n    }\n\n    function makeFormatFunction(format) {\n        var array = format.match(formattingTokens),\n            i,\n            length;\n\n        for (i = 0, length = array.length; i < length; i++) {\n            if (formatTokenFunctions[array[i]]) {\n                array[i] = formatTokenFunctions[array[i]];\n            } else {\n                array[i] = removeFormattingTokens(array[i]);\n            }\n        }\n\n        return function (mom) {\n            var output = '',\n                i;\n            for (i = 0; i < length; i++) {\n                output += isFunction(array[i])\n                    ? array[i].call(mom, format)\n                    : array[i];\n            }\n            return output;\n        };\n    }\n\n    // format date using native date object\n    function formatMoment(m, format) {\n        if (!m.isValid()) {\n            return m.localeData().invalidDate();\n        }\n\n        format = expandFormat(format, m.localeData());\n        formatFunctions[format] =\n            formatFunctions[format] || makeFormatFunction(format);\n\n        return formatFunctions[format](m);\n    }\n\n    function expandFormat(format, locale) {\n        var i = 5;\n\n        function replaceLongDateFormatTokens(input) {\n            return locale.longDateFormat(input) || input;\n        }\n\n        localFormattingTokens.lastIndex = 0;\n        while (i >= 0 && localFormattingTokens.test(format)) {\n            format = format.replace(\n                localFormattingTokens,\n                replaceLongDateFormatTokens\n            );\n            localFormattingTokens.lastIndex = 0;\n            i -= 1;\n        }\n\n        return format;\n    }\n\n    var defaultLongDateFormat = {\n        LTS: 'h:mm:ss A',\n        LT: 'h:mm A',\n        L: 'MM/DD/YYYY',\n        LL: 'MMMM D, YYYY',\n        LLL: 'MMMM D, YYYY h:mm A',\n        LLLL: 'dddd, MMMM D, YYYY h:mm A',\n    };\n\n    function longDateFormat(key) {\n        var format = this._longDateFormat[key],\n            formatUpper = this._longDateFormat[key.toUpperCase()];\n\n        if (format || !formatUpper) {\n            return format;\n        }\n\n        this._longDateFormat[key] = formatUpper\n            .match(formattingTokens)\n            .map(function (tok) {\n                if (\n                    tok === 'MMMM' ||\n                    tok === 'MM' ||\n                    tok === 'DD' ||\n                    tok === 'dddd'\n                ) {\n                    return tok.slice(1);\n                }\n                return tok;\n            })\n            .join('');\n\n        return this._longDateFormat[key];\n    }\n\n    var defaultInvalidDate = 'Invalid date';\n\n    function invalidDate() {\n        return this._invalidDate;\n    }\n\n    var defaultOrdinal = '%d',\n        defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n    function ordinal(number) {\n        return this._ordinal.replace('%d', number);\n    }\n\n    var defaultRelativeTime = {\n        future: 'in %s',\n        past: '%s ago',\n        s: 'a few seconds',\n        ss: '%d seconds',\n        m: 'a minute',\n        mm: '%d minutes',\n        h: 'an hour',\n        hh: '%d hours',\n        d: 'a day',\n        dd: '%d days',\n        w: 'a week',\n        ww: '%d weeks',\n        M: 'a month',\n        MM: '%d months',\n        y: 'a year',\n        yy: '%d years',\n    };\n\n    function relativeTime(number, withoutSuffix, string, isFuture) {\n        var output = this._relativeTime[string];\n        return isFunction(output)\n            ? output(number, withoutSuffix, string, isFuture)\n            : output.replace(/%d/i, number);\n    }\n\n    function pastFuture(diff, output) {\n        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n        return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n    }\n\n    var aliases = {};\n\n    function addUnitAlias(unit, shorthand) {\n        var lowerCase = unit.toLowerCase();\n        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n    }\n\n    function normalizeUnits(units) {\n        return typeof units === 'string'\n            ? aliases[units] || aliases[units.toLowerCase()]\n            : undefined;\n    }\n\n    function normalizeObjectUnits(inputObject) {\n        var normalizedInput = {},\n            normalizedProp,\n            prop;\n\n        for (prop in inputObject) {\n            if (hasOwnProp(inputObject, prop)) {\n                normalizedProp = normalizeUnits(prop);\n                if (normalizedProp) {\n                    normalizedInput[normalizedProp] = inputObject[prop];\n                }\n            }\n        }\n\n        return normalizedInput;\n    }\n\n    var priorities = {};\n\n    function addUnitPriority(unit, priority) {\n        priorities[unit] = priority;\n    }\n\n    function getPrioritizedUnits(unitsObj) {\n        var units = [],\n            u;\n        for (u in unitsObj) {\n            if (hasOwnProp(unitsObj, u)) {\n                units.push({ unit: u, priority: priorities[u] });\n            }\n        }\n        units.sort(function (a, b) {\n            return a.priority - b.priority;\n        });\n        return units;\n    }\n\n    function isLeapYear(year) {\n        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n    }\n\n    function absFloor(number) {\n        if (number < 0) {\n            // -0 -> 0\n            return Math.ceil(number) || 0;\n        } else {\n            return Math.floor(number);\n        }\n    }\n\n    function toInt(argumentForCoercion) {\n        var coercedNumber = +argumentForCoercion,\n            value = 0;\n\n        if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n            value = absFloor(coercedNumber);\n        }\n\n        return value;\n    }\n\n    function makeGetSet(unit, keepTime) {\n        return function (value) {\n            if (value != null) {\n                set$1(this, unit, value);\n                hooks.updateOffset(this, keepTime);\n                return this;\n            } else {\n                return get(this, unit);\n            }\n        };\n    }\n\n    function get(mom, unit) {\n        return mom.isValid()\n            ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n            : NaN;\n    }\n\n    function set$1(mom, unit, value) {\n        if (mom.isValid() && !isNaN(value)) {\n            if (\n                unit === 'FullYear' &&\n                isLeapYear(mom.year()) &&\n                mom.month() === 1 &&\n                mom.date() === 29\n            ) {\n                value = toInt(value);\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n                    value,\n                    mom.month(),\n                    daysInMonth(value, mom.month())\n                );\n            } else {\n                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function stringGet(units) {\n        units = normalizeUnits(units);\n        if (isFunction(this[units])) {\n            return this[units]();\n        }\n        return this;\n    }\n\n    function stringSet(units, value) {\n        if (typeof units === 'object') {\n            units = normalizeObjectUnits(units);\n            var prioritized = getPrioritizedUnits(units),\n                i;\n            for (i = 0; i < prioritized.length; i++) {\n                this[prioritized[i].unit](units[prioritized[i].unit]);\n            }\n        } else {\n            units = normalizeUnits(units);\n            if (isFunction(this[units])) {\n                return this[units](value);\n            }\n        }\n        return this;\n    }\n\n    var match1 = /\\d/, //       0 - 9\n        match2 = /\\d\\d/, //      00 - 99\n        match3 = /\\d{3}/, //     000 - 999\n        match4 = /\\d{4}/, //    0000 - 9999\n        match6 = /[+-]?\\d{6}/, // -999999 - 999999\n        match1to2 = /\\d\\d?/, //       0 - 99\n        match3to4 = /\\d\\d\\d\\d?/, //     999 - 9999\n        match5to6 = /\\d\\d\\d\\d\\d\\d?/, //   99999 - 999999\n        match1to3 = /\\d{1,3}/, //       0 - 999\n        match1to4 = /\\d{1,4}/, //       0 - 9999\n        match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n        matchUnsigned = /\\d+/, //       0 - inf\n        matchSigned = /[+-]?\\d+/, //    -inf - inf\n        matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n        matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n        matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n        // any word (or two) characters or numbers including two/three word month in arabic.\n        // includes scottish gaelic two word and hyphenated months\n        matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n        regexes;\n\n    regexes = {};\n\n    function addRegexToken(token, regex, strictRegex) {\n        regexes[token] = isFunction(regex)\n            ? regex\n            : function (isStrict, localeData) {\n                  return isStrict && strictRegex ? strictRegex : regex;\n              };\n    }\n\n    function getParseRegexForToken(token, config) {\n        if (!hasOwnProp(regexes, token)) {\n            return new RegExp(unescapeFormat(token));\n        }\n\n        return regexes[token](config._strict, config._locale);\n    }\n\n    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n    function unescapeFormat(s) {\n        return regexEscape(\n            s\n                .replace('\\\\', '')\n                .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n                    matched,\n                    p1,\n                    p2,\n                    p3,\n                    p4\n                ) {\n                    return p1 || p2 || p3 || p4;\n                })\n        );\n    }\n\n    function regexEscape(s) {\n        return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n    }\n\n    var tokens = {};\n\n    function addParseToken(token, callback) {\n        var i,\n            func = callback;\n        if (typeof token === 'string') {\n            token = [token];\n        }\n        if (isNumber(callback)) {\n            func = function (input, array) {\n                array[callback] = toInt(input);\n            };\n        }\n        for (i = 0; i < token.length; i++) {\n            tokens[token[i]] = func;\n        }\n    }\n\n    function addWeekParseToken(token, callback) {\n        addParseToken(token, function (input, array, config, token) {\n            config._w = config._w || {};\n            callback(input, config._w, config, token);\n        });\n    }\n\n    function addTimeToArrayFromToken(token, input, config) {\n        if (input != null && hasOwnProp(tokens, token)) {\n            tokens[token](input, config._a, config, token);\n        }\n    }\n\n    var YEAR = 0,\n        MONTH = 1,\n        DATE = 2,\n        HOUR = 3,\n        MINUTE = 4,\n        SECOND = 5,\n        MILLISECOND = 6,\n        WEEK = 7,\n        WEEKDAY = 8;\n\n    function mod(n, x) {\n        return ((n % x) + x) % x;\n    }\n\n    var indexOf;\n\n    if (Array.prototype.indexOf) {\n        indexOf = Array.prototype.indexOf;\n    } else {\n        indexOf = function (o) {\n            // I know\n            var i;\n            for (i = 0; i < this.length; ++i) {\n                if (this[i] === o) {\n                    return i;\n                }\n            }\n            return -1;\n        };\n    }\n\n    function daysInMonth(year, month) {\n        if (isNaN(year) || isNaN(month)) {\n            return NaN;\n        }\n        var modMonth = mod(month, 12);\n        year += (month - modMonth) / 12;\n        return modMonth === 1\n            ? isLeapYear(year)\n                ? 29\n                : 28\n            : 31 - ((modMonth % 7) % 2);\n    }\n\n    // FORMATTING\n\n    addFormatToken('M', ['MM', 2], 'Mo', function () {\n        return this.month() + 1;\n    });\n\n    addFormatToken('MMM', 0, 0, function (format) {\n        return this.localeData().monthsShort(this, format);\n    });\n\n    addFormatToken('MMMM', 0, 0, function (format) {\n        return this.localeData().months(this, format);\n    });\n\n    // ALIASES\n\n    addUnitAlias('month', 'M');\n\n    // PRIORITY\n\n    addUnitPriority('month', 8);\n\n    // PARSING\n\n    addRegexToken('M', match1to2);\n    addRegexToken('MM', match1to2, match2);\n    addRegexToken('MMM', function (isStrict, locale) {\n        return locale.monthsShortRegex(isStrict);\n    });\n    addRegexToken('MMMM', function (isStrict, locale) {\n        return locale.monthsRegex(isStrict);\n    });\n\n    addParseToken(['M', 'MM'], function (input, array) {\n        array[MONTH] = toInt(input) - 1;\n    });\n\n    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n        var month = config._locale.monthsParse(input, token, config._strict);\n        // if we didn't find a month name, mark the date as invalid.\n        if (month != null) {\n            array[MONTH] = month;\n        } else {\n            getParsingFlags(config).invalidMonth = input;\n        }\n    });\n\n    // LOCALES\n\n    var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n            '_'\n        ),\n        defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n            '_'\n        ),\n        MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n        defaultMonthsShortRegex = matchWord,\n        defaultMonthsRegex = matchWord;\n\n    function localeMonths(m, format) {\n        if (!m) {\n            return isArray(this._months)\n                ? this._months\n                : this._months['standalone'];\n        }\n        return isArray(this._months)\n            ? this._months[m.month()]\n            : this._months[\n                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n                      ? 'format'\n                      : 'standalone'\n              ][m.month()];\n    }\n\n    function localeMonthsShort(m, format) {\n        if (!m) {\n            return isArray(this._monthsShort)\n                ? this._monthsShort\n                : this._monthsShort['standalone'];\n        }\n        return isArray(this._monthsShort)\n            ? this._monthsShort[m.month()]\n            : this._monthsShort[\n                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n              ][m.month()];\n    }\n\n    function handleStrictParse(monthName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = monthName.toLocaleLowerCase();\n        if (!this._monthsParse) {\n            // this is not used\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n            for (i = 0; i < 12; ++i) {\n                mom = createUTC([2000, i]);\n                this._shortMonthsParse[i] = this.monthsShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'MMM') {\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._longMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._longMonthsParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortMonthsParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeMonthsParse(monthName, format, strict) {\n        var i, mom, regex;\n\n        if (this._monthsParseExact) {\n            return handleStrictParse.call(this, monthName, format, strict);\n        }\n\n        if (!this._monthsParse) {\n            this._monthsParse = [];\n            this._longMonthsParse = [];\n            this._shortMonthsParse = [];\n        }\n\n        // TODO: add sorting\n        // Sorting makes sure if one month (or abbr) is a prefix of another\n        // see sorting in computeMonthsParse\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            if (strict && !this._longMonthsParse[i]) {\n                this._longMonthsParse[i] = new RegExp(\n                    '^' + this.months(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n                this._shortMonthsParse[i] = new RegExp(\n                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n                    'i'\n                );\n            }\n            if (!strict && !this._monthsParse[i]) {\n                regex =\n                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'MMMM' &&\n                this._longMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'MMM' &&\n                this._shortMonthsParse[i].test(monthName)\n            ) {\n                return i;\n            } else if (!strict && this._monthsParse[i].test(monthName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function setMonth(mom, value) {\n        var dayOfMonth;\n\n        if (!mom.isValid()) {\n            // No op\n            return mom;\n        }\n\n        if (typeof value === 'string') {\n            if (/^\\d+$/.test(value)) {\n                value = toInt(value);\n            } else {\n                value = mom.localeData().monthsParse(value);\n                // TODO: Another silent failure?\n                if (!isNumber(value)) {\n                    return mom;\n                }\n            }\n        }\n\n        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n        return mom;\n    }\n\n    function getSetMonth(value) {\n        if (value != null) {\n            setMonth(this, value);\n            hooks.updateOffset(this, true);\n            return this;\n        } else {\n            return get(this, 'Month');\n        }\n    }\n\n    function getDaysInMonth() {\n        return daysInMonth(this.year(), this.month());\n    }\n\n    function monthsShortRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsShortStrictRegex;\n            } else {\n                return this._monthsShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsShortRegex')) {\n                this._monthsShortRegex = defaultMonthsShortRegex;\n            }\n            return this._monthsShortStrictRegex && isStrict\n                ? this._monthsShortStrictRegex\n                : this._monthsShortRegex;\n        }\n    }\n\n    function monthsRegex(isStrict) {\n        if (this._monthsParseExact) {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                computeMonthsParse.call(this);\n            }\n            if (isStrict) {\n                return this._monthsStrictRegex;\n            } else {\n                return this._monthsRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_monthsRegex')) {\n                this._monthsRegex = defaultMonthsRegex;\n            }\n            return this._monthsStrictRegex && isStrict\n                ? this._monthsStrictRegex\n                : this._monthsRegex;\n        }\n    }\n\n    function computeMonthsParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom;\n        for (i = 0; i < 12; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, i]);\n            shortPieces.push(this.monthsShort(mom, ''));\n            longPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.months(mom, ''));\n            mixedPieces.push(this.monthsShort(mom, ''));\n        }\n        // Sorting makes sure if one month (or abbr) is a prefix of another it\n        // will match the longer piece.\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n        for (i = 0; i < 12; i++) {\n            shortPieces[i] = regexEscape(shortPieces[i]);\n            longPieces[i] = regexEscape(longPieces[i]);\n        }\n        for (i = 0; i < 24; i++) {\n            mixedPieces[i] = regexEscape(mixedPieces[i]);\n        }\n\n        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._monthsShortRegex = this._monthsRegex;\n        this._monthsStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._monthsShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    addFormatToken('Y', 0, 0, function () {\n        var y = this.year();\n        return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n    });\n\n    addFormatToken(0, ['YY', 2], 0, function () {\n        return this.year() % 100;\n    });\n\n    addFormatToken(0, ['YYYY', 4], 0, 'year');\n    addFormatToken(0, ['YYYYY', 5], 0, 'year');\n    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n    // ALIASES\n\n    addUnitAlias('year', 'y');\n\n    // PRIORITIES\n\n    addUnitPriority('year', 1);\n\n    // PARSING\n\n    addRegexToken('Y', matchSigned);\n    addRegexToken('YY', match1to2, match2);\n    addRegexToken('YYYY', match1to4, match4);\n    addRegexToken('YYYYY', match1to6, match6);\n    addRegexToken('YYYYYY', match1to6, match6);\n\n    addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n    addParseToken('YYYY', function (input, array) {\n        array[YEAR] =\n            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n    });\n    addParseToken('YY', function (input, array) {\n        array[YEAR] = hooks.parseTwoDigitYear(input);\n    });\n    addParseToken('Y', function (input, array) {\n        array[YEAR] = parseInt(input, 10);\n    });\n\n    // HELPERS\n\n    function daysInYear(year) {\n        return isLeapYear(year) ? 366 : 365;\n    }\n\n    // HOOKS\n\n    hooks.parseTwoDigitYear = function (input) {\n        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n    };\n\n    // MOMENTS\n\n    var getSetYear = makeGetSet('FullYear', true);\n\n    function getIsLeapYear() {\n        return isLeapYear(this.year());\n    }\n\n    function createDate(y, m, d, h, M, s, ms) {\n        // can't just apply() to create a date:\n        // https://stackoverflow.com/q/181348\n        var date;\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            date = new Date(y + 400, m, d, h, M, s, ms);\n            if (isFinite(date.getFullYear())) {\n                date.setFullYear(y);\n            }\n        } else {\n            date = new Date(y, m, d, h, M, s, ms);\n        }\n\n        return date;\n    }\n\n    function createUTCDate(y) {\n        var date, args;\n        // the Date.UTC function remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            args = Array.prototype.slice.call(arguments);\n            // preserve leap years using a full 400 year cycle, then reset\n            args[0] = y + 400;\n            date = new Date(Date.UTC.apply(null, args));\n            if (isFinite(date.getUTCFullYear())) {\n                date.setUTCFullYear(y);\n            }\n        } else {\n            date = new Date(Date.UTC.apply(null, arguments));\n        }\n\n        return date;\n    }\n\n    // start-of-first-week - start-of-year\n    function firstWeekOffset(year, dow, doy) {\n        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n            fwd = 7 + dow - doy,\n            // first-week day local weekday -- which local weekday is fwd\n            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n        return -fwdlw + fwd - 1;\n    }\n\n    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n        var localWeekday = (7 + weekday - dow) % 7,\n            weekOffset = firstWeekOffset(year, dow, doy),\n            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n            resYear,\n            resDayOfYear;\n\n        if (dayOfYear <= 0) {\n            resYear = year - 1;\n            resDayOfYear = daysInYear(resYear) + dayOfYear;\n        } else if (dayOfYear > daysInYear(year)) {\n            resYear = year + 1;\n            resDayOfYear = dayOfYear - daysInYear(year);\n        } else {\n            resYear = year;\n            resDayOfYear = dayOfYear;\n        }\n\n        return {\n            year: resYear,\n            dayOfYear: resDayOfYear,\n        };\n    }\n\n    function weekOfYear(mom, dow, doy) {\n        var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n            resWeek,\n            resYear;\n\n        if (week < 1) {\n            resYear = mom.year() - 1;\n            resWeek = week + weeksInYear(resYear, dow, doy);\n        } else if (week > weeksInYear(mom.year(), dow, doy)) {\n            resWeek = week - weeksInYear(mom.year(), dow, doy);\n            resYear = mom.year() + 1;\n        } else {\n            resYear = mom.year();\n            resWeek = week;\n        }\n\n        return {\n            week: resWeek,\n            year: resYear,\n        };\n    }\n\n    function weeksInYear(year, dow, doy) {\n        var weekOffset = firstWeekOffset(year, dow, doy),\n            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n    }\n\n    // FORMATTING\n\n    addFormatToken('w', ['ww', 2], 'wo', 'week');\n    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n    // ALIASES\n\n    addUnitAlias('week', 'w');\n    addUnitAlias('isoWeek', 'W');\n\n    // PRIORITIES\n\n    addUnitPriority('week', 5);\n    addUnitPriority('isoWeek', 5);\n\n    // PARSING\n\n    addRegexToken('w', match1to2);\n    addRegexToken('ww', match1to2, match2);\n    addRegexToken('W', match1to2);\n    addRegexToken('WW', match1to2, match2);\n\n    addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n        input,\n        week,\n        config,\n        token\n    ) {\n        week[token.substr(0, 1)] = toInt(input);\n    });\n\n    // HELPERS\n\n    // LOCALES\n\n    function localeWeek(mom) {\n        return weekOfYear(mom, this._week.dow, this._week.doy).week;\n    }\n\n    var defaultLocaleWeek = {\n        dow: 0, // Sunday is the first day of the week.\n        doy: 6, // The week that contains Jan 6th is the first week of the year.\n    };\n\n    function localeFirstDayOfWeek() {\n        return this._week.dow;\n    }\n\n    function localeFirstDayOfYear() {\n        return this._week.doy;\n    }\n\n    // MOMENTS\n\n    function getSetWeek(input) {\n        var week = this.localeData().week(this);\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    function getSetISOWeek(input) {\n        var week = weekOfYear(this, 1, 4).week;\n        return input == null ? week : this.add((input - week) * 7, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('d', 0, 'do', 'day');\n\n    addFormatToken('dd', 0, 0, function (format) {\n        return this.localeData().weekdaysMin(this, format);\n    });\n\n    addFormatToken('ddd', 0, 0, function (format) {\n        return this.localeData().weekdaysShort(this, format);\n    });\n\n    addFormatToken('dddd', 0, 0, function (format) {\n        return this.localeData().weekdays(this, format);\n    });\n\n    addFormatToken('e', 0, 0, 'weekday');\n    addFormatToken('E', 0, 0, 'isoWeekday');\n\n    // ALIASES\n\n    addUnitAlias('day', 'd');\n    addUnitAlias('weekday', 'e');\n    addUnitAlias('isoWeekday', 'E');\n\n    // PRIORITY\n    addUnitPriority('day', 11);\n    addUnitPriority('weekday', 11);\n    addUnitPriority('isoWeekday', 11);\n\n    // PARSING\n\n    addRegexToken('d', match1to2);\n    addRegexToken('e', match1to2);\n    addRegexToken('E', match1to2);\n    addRegexToken('dd', function (isStrict, locale) {\n        return locale.weekdaysMinRegex(isStrict);\n    });\n    addRegexToken('ddd', function (isStrict, locale) {\n        return locale.weekdaysShortRegex(isStrict);\n    });\n    addRegexToken('dddd', function (isStrict, locale) {\n        return locale.weekdaysRegex(isStrict);\n    });\n\n    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n        var weekday = config._locale.weekdaysParse(input, token, config._strict);\n        // if we didn't get a weekday name, mark the date as invalid\n        if (weekday != null) {\n            week.d = weekday;\n        } else {\n            getParsingFlags(config).invalidWeekday = input;\n        }\n    });\n\n    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n        week[token] = toInt(input);\n    });\n\n    // HELPERS\n\n    function parseWeekday(input, locale) {\n        if (typeof input !== 'string') {\n            return input;\n        }\n\n        if (!isNaN(input)) {\n            return parseInt(input, 10);\n        }\n\n        input = locale.weekdaysParse(input);\n        if (typeof input === 'number') {\n            return input;\n        }\n\n        return null;\n    }\n\n    function parseIsoWeekday(input, locale) {\n        if (typeof input === 'string') {\n            return locale.weekdaysParse(input) % 7 || 7;\n        }\n        return isNaN(input) ? null : input;\n    }\n\n    // LOCALES\n    function shiftWeekdays(ws, n) {\n        return ws.slice(n, 7).concat(ws.slice(0, n));\n    }\n\n    var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n            '_'\n        ),\n        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n        defaultWeekdaysRegex = matchWord,\n        defaultWeekdaysShortRegex = matchWord,\n        defaultWeekdaysMinRegex = matchWord;\n\n    function localeWeekdays(m, format) {\n        var weekdays = isArray(this._weekdays)\n            ? this._weekdays\n            : this._weekdays[\n                  m && m !== true && this._weekdays.isFormat.test(format)\n                      ? 'format'\n                      : 'standalone'\n              ];\n        return m === true\n            ? shiftWeekdays(weekdays, this._week.dow)\n            : m\n            ? weekdays[m.day()]\n            : weekdays;\n    }\n\n    function localeWeekdaysShort(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n            : m\n            ? this._weekdaysShort[m.day()]\n            : this._weekdaysShort;\n    }\n\n    function localeWeekdaysMin(m) {\n        return m === true\n            ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n            : m\n            ? this._weekdaysMin[m.day()]\n            : this._weekdaysMin;\n    }\n\n    function handleStrictParse$1(weekdayName, format, strict) {\n        var i,\n            ii,\n            mom,\n            llc = weekdayName.toLocaleLowerCase();\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._minWeekdaysParse = [];\n\n            for (i = 0; i < 7; ++i) {\n                mom = createUTC([2000, 1]).day(i);\n                this._minWeekdaysParse[i] = this.weekdaysMin(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._shortWeekdaysParse[i] = this.weekdaysShort(\n                    mom,\n                    ''\n                ).toLocaleLowerCase();\n                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n            }\n        }\n\n        if (strict) {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        } else {\n            if (format === 'dddd') {\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else if (format === 'ddd') {\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            } else {\n                ii = indexOf.call(this._minWeekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._weekdaysParse, llc);\n                if (ii !== -1) {\n                    return ii;\n                }\n                ii = indexOf.call(this._shortWeekdaysParse, llc);\n                return ii !== -1 ? ii : null;\n            }\n        }\n    }\n\n    function localeWeekdaysParse(weekdayName, format, strict) {\n        var i, mom, regex;\n\n        if (this._weekdaysParseExact) {\n            return handleStrictParse$1.call(this, weekdayName, format, strict);\n        }\n\n        if (!this._weekdaysParse) {\n            this._weekdaysParse = [];\n            this._minWeekdaysParse = [];\n            this._shortWeekdaysParse = [];\n            this._fullWeekdaysParse = [];\n        }\n\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n\n            mom = createUTC([2000, 1]).day(i);\n            if (strict && !this._fullWeekdaysParse[i]) {\n                this._fullWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._shortWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n                this._minWeekdaysParse[i] = new RegExp(\n                    '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n                    'i'\n                );\n            }\n            if (!this._weekdaysParse[i]) {\n                regex =\n                    '^' +\n                    this.weekdays(mom, '') +\n                    '|^' +\n                    this.weekdaysShort(mom, '') +\n                    '|^' +\n                    this.weekdaysMin(mom, '');\n                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n            }\n            // test the regex\n            if (\n                strict &&\n                format === 'dddd' &&\n                this._fullWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'ddd' &&\n                this._shortWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (\n                strict &&\n                format === 'dd' &&\n                this._minWeekdaysParse[i].test(weekdayName)\n            ) {\n                return i;\n            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n                return i;\n            }\n        }\n    }\n\n    // MOMENTS\n\n    function getSetDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n        if (input != null) {\n            input = parseWeekday(input, this.localeData());\n            return this.add(input - day, 'd');\n        } else {\n            return day;\n        }\n    }\n\n    function getSetLocaleDayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n        return input == null ? weekday : this.add(input - weekday, 'd');\n    }\n\n    function getSetISODayOfWeek(input) {\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n\n        // behaves the same as moment#day except\n        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n        // as a setter, sunday should belong to the previous week.\n\n        if (input != null) {\n            var weekday = parseIsoWeekday(input, this.localeData());\n            return this.day(this.day() % 7 ? weekday : weekday - 7);\n        } else {\n            return this.day() || 7;\n        }\n    }\n\n    function weekdaysRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysStrictRegex;\n            } else {\n                return this._weekdaysRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                this._weekdaysRegex = defaultWeekdaysRegex;\n            }\n            return this._weekdaysStrictRegex && isStrict\n                ? this._weekdaysStrictRegex\n                : this._weekdaysRegex;\n        }\n    }\n\n    function weekdaysShortRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysShortStrictRegex;\n            } else {\n                return this._weekdaysShortRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n                this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n            }\n            return this._weekdaysShortStrictRegex && isStrict\n                ? this._weekdaysShortStrictRegex\n                : this._weekdaysShortRegex;\n        }\n    }\n\n    function weekdaysMinRegex(isStrict) {\n        if (this._weekdaysParseExact) {\n            if (!hasOwnProp(this, '_weekdaysRegex')) {\n                computeWeekdaysParse.call(this);\n            }\n            if (isStrict) {\n                return this._weekdaysMinStrictRegex;\n            } else {\n                return this._weekdaysMinRegex;\n            }\n        } else {\n            if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n                this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n            }\n            return this._weekdaysMinStrictRegex && isStrict\n                ? this._weekdaysMinStrictRegex\n                : this._weekdaysMinRegex;\n        }\n    }\n\n    function computeWeekdaysParse() {\n        function cmpLenRev(a, b) {\n            return b.length - a.length;\n        }\n\n        var minPieces = [],\n            shortPieces = [],\n            longPieces = [],\n            mixedPieces = [],\n            i,\n            mom,\n            minp,\n            shortp,\n            longp;\n        for (i = 0; i < 7; i++) {\n            // make the regex if we don't have it already\n            mom = createUTC([2000, 1]).day(i);\n            minp = regexEscape(this.weekdaysMin(mom, ''));\n            shortp = regexEscape(this.weekdaysShort(mom, ''));\n            longp = regexEscape(this.weekdays(mom, ''));\n            minPieces.push(minp);\n            shortPieces.push(shortp);\n            longPieces.push(longp);\n            mixedPieces.push(minp);\n            mixedPieces.push(shortp);\n            mixedPieces.push(longp);\n        }\n        // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n        // will match the longer piece.\n        minPieces.sort(cmpLenRev);\n        shortPieces.sort(cmpLenRev);\n        longPieces.sort(cmpLenRev);\n        mixedPieces.sort(cmpLenRev);\n\n        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._weekdaysShortRegex = this._weekdaysRegex;\n        this._weekdaysMinRegex = this._weekdaysRegex;\n\n        this._weekdaysStrictRegex = new RegExp(\n            '^(' + longPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysShortStrictRegex = new RegExp(\n            '^(' + shortPieces.join('|') + ')',\n            'i'\n        );\n        this._weekdaysMinStrictRegex = new RegExp(\n            '^(' + minPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    function hFormat() {\n        return this.hours() % 12 || 12;\n    }\n\n    function kFormat() {\n        return this.hours() || 24;\n    }\n\n    addFormatToken('H', ['HH', 2], 0, 'hour');\n    addFormatToken('h', ['hh', 2], 0, hFormat);\n    addFormatToken('k', ['kk', 2], 0, kFormat);\n\n    addFormatToken('hmm', 0, 0, function () {\n        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('hmmss', 0, 0, function () {\n        return (\n            '' +\n            hFormat.apply(this) +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    addFormatToken('Hmm', 0, 0, function () {\n        return '' + this.hours() + zeroFill(this.minutes(), 2);\n    });\n\n    addFormatToken('Hmmss', 0, 0, function () {\n        return (\n            '' +\n            this.hours() +\n            zeroFill(this.minutes(), 2) +\n            zeroFill(this.seconds(), 2)\n        );\n    });\n\n    function meridiem(token, lowercase) {\n        addFormatToken(token, 0, 0, function () {\n            return this.localeData().meridiem(\n                this.hours(),\n                this.minutes(),\n                lowercase\n            );\n        });\n    }\n\n    meridiem('a', true);\n    meridiem('A', false);\n\n    // ALIASES\n\n    addUnitAlias('hour', 'h');\n\n    // PRIORITY\n    addUnitPriority('hour', 13);\n\n    // PARSING\n\n    function matchMeridiem(isStrict, locale) {\n        return locale._meridiemParse;\n    }\n\n    addRegexToken('a', matchMeridiem);\n    addRegexToken('A', matchMeridiem);\n    addRegexToken('H', match1to2);\n    addRegexToken('h', match1to2);\n    addRegexToken('k', match1to2);\n    addRegexToken('HH', match1to2, match2);\n    addRegexToken('hh', match1to2, match2);\n    addRegexToken('kk', match1to2, match2);\n\n    addRegexToken('hmm', match3to4);\n    addRegexToken('hmmss', match5to6);\n    addRegexToken('Hmm', match3to4);\n    addRegexToken('Hmmss', match5to6);\n\n    addParseToken(['H', 'HH'], HOUR);\n    addParseToken(['k', 'kk'], function (input, array, config) {\n        var kInput = toInt(input);\n        array[HOUR] = kInput === 24 ? 0 : kInput;\n    });\n    addParseToken(['a', 'A'], function (input, array, config) {\n        config._isPm = config._locale.isPM(input);\n        config._meridiem = input;\n    });\n    addParseToken(['h', 'hh'], function (input, array, config) {\n        array[HOUR] = toInt(input);\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n        getParsingFlags(config).bigHour = true;\n    });\n    addParseToken('Hmm', function (input, array, config) {\n        var pos = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos));\n        array[MINUTE] = toInt(input.substr(pos));\n    });\n    addParseToken('Hmmss', function (input, array, config) {\n        var pos1 = input.length - 4,\n            pos2 = input.length - 2;\n        array[HOUR] = toInt(input.substr(0, pos1));\n        array[MINUTE] = toInt(input.substr(pos1, 2));\n        array[SECOND] = toInt(input.substr(pos2));\n    });\n\n    // LOCALES\n\n    function localeIsPM(input) {\n        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n        // Using charAt should be more compatible.\n        return (input + '').toLowerCase().charAt(0) === 'p';\n    }\n\n    var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n        // Setting the hour should keep the time, because the user explicitly\n        // specified which hour they want. So trying to maintain the same hour (in\n        // a new timezone) makes sense. Adding/subtracting hours does not follow\n        // this rule.\n        getSetHour = makeGetSet('Hours', true);\n\n    function localeMeridiem(hours, minutes, isLower) {\n        if (hours > 11) {\n            return isLower ? 'pm' : 'PM';\n        } else {\n            return isLower ? 'am' : 'AM';\n        }\n    }\n\n    var baseConfig = {\n        calendar: defaultCalendar,\n        longDateFormat: defaultLongDateFormat,\n        invalidDate: defaultInvalidDate,\n        ordinal: defaultOrdinal,\n        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n        relativeTime: defaultRelativeTime,\n\n        months: defaultLocaleMonths,\n        monthsShort: defaultLocaleMonthsShort,\n\n        week: defaultLocaleWeek,\n\n        weekdays: defaultLocaleWeekdays,\n        weekdaysMin: defaultLocaleWeekdaysMin,\n        weekdaysShort: defaultLocaleWeekdaysShort,\n\n        meridiemParse: defaultLocaleMeridiemParse,\n    };\n\n    // internal storage for locale config files\n    var locales = {},\n        localeFamilies = {},\n        globalLocale;\n\n    function commonPrefix(arr1, arr2) {\n        var i,\n            minl = Math.min(arr1.length, arr2.length);\n        for (i = 0; i < minl; i += 1) {\n            if (arr1[i] !== arr2[i]) {\n                return i;\n            }\n        }\n        return minl;\n    }\n\n    function normalizeLocale(key) {\n        return key ? key.toLowerCase().replace('_', '-') : key;\n    }\n\n    // pick the locale from the array\n    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n    function chooseLocale(names) {\n        var i = 0,\n            j,\n            next,\n            locale,\n            split;\n\n        while (i < names.length) {\n            split = normalizeLocale(names[i]).split('-');\n            j = split.length;\n            next = normalizeLocale(names[i + 1]);\n            next = next ? next.split('-') : null;\n            while (j > 0) {\n                locale = loadLocale(split.slice(0, j).join('-'));\n                if (locale) {\n                    return locale;\n                }\n                if (\n                    next &&\n                    next.length >= j &&\n                    commonPrefix(split, next) >= j - 1\n                ) {\n                    //the next array item is better than a shallower substring of this one\n                    break;\n                }\n                j--;\n            }\n            i++;\n        }\n        return globalLocale;\n    }\n\n    function loadLocale(name) {\n        var oldLocale = null,\n            aliasedRequire;\n        // TODO: Find a better way to register and load all the locales in Node\n        if (\n            locales[name] === undefined &&\n            typeof module !== 'undefined' &&\n            module &&\n            module.exports\n        ) {\n            try {\n                oldLocale = globalLocale._abbr;\n                aliasedRequire = require;\n                aliasedRequire('./locale/' + name);\n                getSetGlobalLocale(oldLocale);\n            } catch (e) {\n                // mark as not found to avoid repeating expensive file require call causing high CPU\n                // when trying to find en-US, en_US, en-us for every format call\n                locales[name] = null; // null means not found\n            }\n        }\n        return locales[name];\n    }\n\n    // This function will load locale and then set the global locale.  If\n    // no arguments are passed in, it will simply return the current global\n    // locale key.\n    function getSetGlobalLocale(key, values) {\n        var data;\n        if (key) {\n            if (isUndefined(values)) {\n                data = getLocale(key);\n            } else {\n                data = defineLocale(key, values);\n            }\n\n            if (data) {\n                // moment.duration._locale = moment._locale = data;\n                globalLocale = data;\n            } else {\n                if (typeof console !== 'undefined' && console.warn) {\n                    //warn user if arguments are passed but the locale could not be set\n                    console.warn(\n                        'Locale ' + key + ' not found. Did you forget to load it?'\n                    );\n                }\n            }\n        }\n\n        return globalLocale._abbr;\n    }\n\n    function defineLocale(name, config) {\n        if (config !== null) {\n            var locale,\n                parentConfig = baseConfig;\n            config.abbr = name;\n            if (locales[name] != null) {\n                deprecateSimple(\n                    'defineLocaleOverride',\n                    'use moment.updateLocale(localeName, config) to change ' +\n                        'an existing locale. moment.defineLocale(localeName, ' +\n                        'config) should only be used for creating a new locale ' +\n                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n                );\n                parentConfig = locales[name]._config;\n            } else if (config.parentLocale != null) {\n                if (locales[config.parentLocale] != null) {\n                    parentConfig = locales[config.parentLocale]._config;\n                } else {\n                    locale = loadLocale(config.parentLocale);\n                    if (locale != null) {\n                        parentConfig = locale._config;\n                    } else {\n                        if (!localeFamilies[config.parentLocale]) {\n                            localeFamilies[config.parentLocale] = [];\n                        }\n                        localeFamilies[config.parentLocale].push({\n                            name: name,\n                            config: config,\n                        });\n                        return null;\n                    }\n                }\n            }\n            locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n            if (localeFamilies[name]) {\n                localeFamilies[name].forEach(function (x) {\n                    defineLocale(x.name, x.config);\n                });\n            }\n\n            // backwards compat for now: also set the locale\n            // make sure we set the locale AFTER all child locales have been\n            // created, so we won't end up with the child locale set.\n            getSetGlobalLocale(name);\n\n            return locales[name];\n        } else {\n            // useful for testing\n            delete locales[name];\n            return null;\n        }\n    }\n\n    function updateLocale(name, config) {\n        if (config != null) {\n            var locale,\n                tmpLocale,\n                parentConfig = baseConfig;\n\n            if (locales[name] != null && locales[name].parentLocale != null) {\n                // Update existing child locale in-place to avoid memory-leaks\n                locales[name].set(mergeConfigs(locales[name]._config, config));\n            } else {\n                // MERGE\n                tmpLocale = loadLocale(name);\n                if (tmpLocale != null) {\n                    parentConfig = tmpLocale._config;\n                }\n                config = mergeConfigs(parentConfig, config);\n                if (tmpLocale == null) {\n                    // updateLocale is called for creating a new locale\n                    // Set abbr so it will have a name (getters return\n                    // undefined otherwise).\n                    config.abbr = name;\n                }\n                locale = new Locale(config);\n                locale.parentLocale = locales[name];\n                locales[name] = locale;\n            }\n\n            // backwards compat for now: also set the locale\n            getSetGlobalLocale(name);\n        } else {\n            // pass null for config to unupdate, useful for tests\n            if (locales[name] != null) {\n                if (locales[name].parentLocale != null) {\n                    locales[name] = locales[name].parentLocale;\n                    if (name === getSetGlobalLocale()) {\n                        getSetGlobalLocale(name);\n                    }\n                } else if (locales[name] != null) {\n                    delete locales[name];\n                }\n            }\n        }\n        return locales[name];\n    }\n\n    // returns locale data\n    function getLocale(key) {\n        var locale;\n\n        if (key && key._locale && key._locale._abbr) {\n            key = key._locale._abbr;\n        }\n\n        if (!key) {\n            return globalLocale;\n        }\n\n        if (!isArray(key)) {\n            //short-circuit everything else\n            locale = loadLocale(key);\n            if (locale) {\n                return locale;\n            }\n            key = [key];\n        }\n\n        return chooseLocale(key);\n    }\n\n    function listLocales() {\n        return keys(locales);\n    }\n\n    function checkOverflow(m) {\n        var overflow,\n            a = m._a;\n\n        if (a && getParsingFlags(m).overflow === -2) {\n            overflow =\n                a[MONTH] < 0 || a[MONTH] > 11\n                    ? MONTH\n                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n                    ? DATE\n                    : a[HOUR] < 0 ||\n                      a[HOUR] > 24 ||\n                      (a[HOUR] === 24 &&\n                          (a[MINUTE] !== 0 ||\n                              a[SECOND] !== 0 ||\n                              a[MILLISECOND] !== 0))\n                    ? HOUR\n                    : a[MINUTE] < 0 || a[MINUTE] > 59\n                    ? MINUTE\n                    : a[SECOND] < 0 || a[SECOND] > 59\n                    ? SECOND\n                    : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n                    ? MILLISECOND\n                    : -1;\n\n            if (\n                getParsingFlags(m)._overflowDayOfYear &&\n                (overflow < YEAR || overflow > DATE)\n            ) {\n                overflow = DATE;\n            }\n            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n                overflow = WEEK;\n            }\n            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n                overflow = WEEKDAY;\n            }\n\n            getParsingFlags(m).overflow = overflow;\n        }\n\n        return m;\n    }\n\n    // iso 8601 regex\n    // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n    var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n        tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n        isoDates = [\n            ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n            ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n            ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n            ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n            ['YYYY-DDD', /\\d{4}-\\d{3}/],\n            ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n            ['YYYYYYMMDD', /[+-]\\d{10}/],\n            ['YYYYMMDD', /\\d{8}/],\n            ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n            ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n            ['YYYYDDD', /\\d{7}/],\n            ['YYYYMM', /\\d{6}/, false],\n            ['YYYY', /\\d{4}/, false],\n        ],\n        // iso time formats and regexes\n        isoTimes = [\n            ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n            ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n            ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n            ['HH:mm', /\\d\\d:\\d\\d/],\n            ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n            ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n            ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n            ['HHmm', /\\d\\d\\d\\d/],\n            ['HH', /\\d\\d/],\n        ],\n        aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n        rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n        obsOffsets = {\n            UT: 0,\n            GMT: 0,\n            EDT: -4 * 60,\n            EST: -5 * 60,\n            CDT: -5 * 60,\n            CST: -6 * 60,\n            MDT: -6 * 60,\n            MST: -7 * 60,\n            PDT: -7 * 60,\n            PST: -8 * 60,\n        };\n\n    // date from iso format\n    function configFromISO(config) {\n        var i,\n            l,\n            string = config._i,\n            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n            allowTime,\n            dateFormat,\n            timeFormat,\n            tzFormat;\n\n        if (match) {\n            getParsingFlags(config).iso = true;\n\n            for (i = 0, l = isoDates.length; i < l; i++) {\n                if (isoDates[i][1].exec(match[1])) {\n                    dateFormat = isoDates[i][0];\n                    allowTime = isoDates[i][2] !== false;\n                    break;\n                }\n            }\n            if (dateFormat == null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[3]) {\n                for (i = 0, l = isoTimes.length; i < l; i++) {\n                    if (isoTimes[i][1].exec(match[3])) {\n                        // match[2] should be 'T' or space\n                        timeFormat = (match[2] || ' ') + isoTimes[i][0];\n                        break;\n                    }\n                }\n                if (timeFormat == null) {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            if (!allowTime && timeFormat != null) {\n                config._isValid = false;\n                return;\n            }\n            if (match[4]) {\n                if (tzRegex.exec(match[4])) {\n                    tzFormat = 'Z';\n                } else {\n                    config._isValid = false;\n                    return;\n                }\n            }\n            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n            configFromStringAndFormat(config);\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    function extractFromRFC2822Strings(\n        yearStr,\n        monthStr,\n        dayStr,\n        hourStr,\n        minuteStr,\n        secondStr\n    ) {\n        var result = [\n            untruncateYear(yearStr),\n            defaultLocaleMonthsShort.indexOf(monthStr),\n            parseInt(dayStr, 10),\n            parseInt(hourStr, 10),\n            parseInt(minuteStr, 10),\n        ];\n\n        if (secondStr) {\n            result.push(parseInt(secondStr, 10));\n        }\n\n        return result;\n    }\n\n    function untruncateYear(yearStr) {\n        var year = parseInt(yearStr, 10);\n        if (year <= 49) {\n            return 2000 + year;\n        } else if (year <= 999) {\n            return 1900 + year;\n        }\n        return year;\n    }\n\n    function preprocessRFC2822(s) {\n        // Remove comments and folding whitespace and replace multiple-spaces with a single space\n        return s\n            .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n            .replace(/(\\s\\s+)/g, ' ')\n            .replace(/^\\s\\s*/, '')\n            .replace(/\\s\\s*$/, '');\n    }\n\n    function checkWeekday(weekdayStr, parsedInput, config) {\n        if (weekdayStr) {\n            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n                weekdayActual = new Date(\n                    parsedInput[0],\n                    parsedInput[1],\n                    parsedInput[2]\n                ).getDay();\n            if (weekdayProvided !== weekdayActual) {\n                getParsingFlags(config).weekdayMismatch = true;\n                config._isValid = false;\n                return false;\n            }\n        }\n        return true;\n    }\n\n    function calculateOffset(obsOffset, militaryOffset, numOffset) {\n        if (obsOffset) {\n            return obsOffsets[obsOffset];\n        } else if (militaryOffset) {\n            // the only allowed military tz is Z\n            return 0;\n        } else {\n            var hm = parseInt(numOffset, 10),\n                m = hm % 100,\n                h = (hm - m) / 100;\n            return h * 60 + m;\n        }\n    }\n\n    // date and time from ref 2822 format\n    function configFromRFC2822(config) {\n        var match = rfc2822.exec(preprocessRFC2822(config._i)),\n            parsedArray;\n        if (match) {\n            parsedArray = extractFromRFC2822Strings(\n                match[4],\n                match[3],\n                match[2],\n                match[5],\n                match[6],\n                match[7]\n            );\n            if (!checkWeekday(match[1], parsedArray, config)) {\n                return;\n            }\n\n            config._a = parsedArray;\n            config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n            config._d = createUTCDate.apply(null, config._a);\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n            getParsingFlags(config).rfc2822 = true;\n        } else {\n            config._isValid = false;\n        }\n    }\n\n    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n    function configFromString(config) {\n        var matched = aspNetJsonRegex.exec(config._i);\n        if (matched !== null) {\n            config._d = new Date(+matched[1]);\n            return;\n        }\n\n        configFromISO(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        configFromRFC2822(config);\n        if (config._isValid === false) {\n            delete config._isValid;\n        } else {\n            return;\n        }\n\n        if (config._strict) {\n            config._isValid = false;\n        } else {\n            // Final attempt, use Input Fallback\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    hooks.createFromInputFallback = deprecate(\n        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n            'discouraged and will be removed in an upcoming major release. Please refer to ' +\n            'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n        function (config) {\n            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n        }\n    );\n\n    // Pick the first defined of two or three arguments.\n    function defaults(a, b, c) {\n        if (a != null) {\n            return a;\n        }\n        if (b != null) {\n            return b;\n        }\n        return c;\n    }\n\n    function currentDateArray(config) {\n        // hooks is actually the exported moment object\n        var nowValue = new Date(hooks.now());\n        if (config._useUTC) {\n            return [\n                nowValue.getUTCFullYear(),\n                nowValue.getUTCMonth(),\n                nowValue.getUTCDate(),\n            ];\n        }\n        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n    }\n\n    // convert an array to a date.\n    // the array should mirror the parameters below\n    // note: all values past the year are optional and will default to the lowest possible value.\n    // [year, month, day , hour, minute, second, millisecond]\n    function configFromArray(config) {\n        var i,\n            date,\n            input = [],\n            currentDate,\n            expectedWeekday,\n            yearToUse;\n\n        if (config._d) {\n            return;\n        }\n\n        currentDate = currentDateArray(config);\n\n        //compute day of the year from weeks and weekdays\n        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n            dayOfYearFromWeekInfo(config);\n        }\n\n        //if the day of the year is set, figure out what it is\n        if (config._dayOfYear != null) {\n            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n            if (\n                config._dayOfYear > daysInYear(yearToUse) ||\n                config._dayOfYear === 0\n            ) {\n                getParsingFlags(config)._overflowDayOfYear = true;\n            }\n\n            date = createUTCDate(yearToUse, 0, config._dayOfYear);\n            config._a[MONTH] = date.getUTCMonth();\n            config._a[DATE] = date.getUTCDate();\n        }\n\n        // Default to current date.\n        // * if no year, month, day of month are given, default to today\n        // * if day of month is given, default month and year\n        // * if month is given, default only year\n        // * if year is given, don't default anything\n        for (i = 0; i < 3 && config._a[i] == null; ++i) {\n            config._a[i] = input[i] = currentDate[i];\n        }\n\n        // Zero out whatever was not defaulted, including time\n        for (; i < 7; i++) {\n            config._a[i] = input[i] =\n                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n        }\n\n        // Check for 24:00:00.000\n        if (\n            config._a[HOUR] === 24 &&\n            config._a[MINUTE] === 0 &&\n            config._a[SECOND] === 0 &&\n            config._a[MILLISECOND] === 0\n        ) {\n            config._nextDay = true;\n            config._a[HOUR] = 0;\n        }\n\n        config._d = (config._useUTC ? createUTCDate : createDate).apply(\n            null,\n            input\n        );\n        expectedWeekday = config._useUTC\n            ? config._d.getUTCDay()\n            : config._d.getDay();\n\n        // Apply timezone offset from input. The actual utcOffset can be changed\n        // with parseZone.\n        if (config._tzm != null) {\n            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n        }\n\n        if (config._nextDay) {\n            config._a[HOUR] = 24;\n        }\n\n        // check for mismatching day of week\n        if (\n            config._w &&\n            typeof config._w.d !== 'undefined' &&\n            config._w.d !== expectedWeekday\n        ) {\n            getParsingFlags(config).weekdayMismatch = true;\n        }\n    }\n\n    function dayOfYearFromWeekInfo(config) {\n        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n        w = config._w;\n        if (w.GG != null || w.W != null || w.E != null) {\n            dow = 1;\n            doy = 4;\n\n            // TODO: We need to take the current isoWeekYear, but that depends on\n            // how we interpret now (local, utc, fixed offset). So create\n            // a now version of current config (take local/utc/offset flags, and\n            // create now).\n            weekYear = defaults(\n                w.GG,\n                config._a[YEAR],\n                weekOfYear(createLocal(), 1, 4).year\n            );\n            week = defaults(w.W, 1);\n            weekday = defaults(w.E, 1);\n            if (weekday < 1 || weekday > 7) {\n                weekdayOverflow = true;\n            }\n        } else {\n            dow = config._locale._week.dow;\n            doy = config._locale._week.doy;\n\n            curWeek = weekOfYear(createLocal(), dow, doy);\n\n            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n            // Default to current week.\n            week = defaults(w.w, curWeek.week);\n\n            if (w.d != null) {\n                // weekday -- low day numbers are considered next week\n                weekday = w.d;\n                if (weekday < 0 || weekday > 6) {\n                    weekdayOverflow = true;\n                }\n            } else if (w.e != null) {\n                // local weekday -- counting starts from beginning of week\n                weekday = w.e + dow;\n                if (w.e < 0 || w.e > 6) {\n                    weekdayOverflow = true;\n                }\n            } else {\n                // default to beginning of week\n                weekday = dow;\n            }\n        }\n        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n            getParsingFlags(config)._overflowWeeks = true;\n        } else if (weekdayOverflow != null) {\n            getParsingFlags(config)._overflowWeekday = true;\n        } else {\n            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n            config._a[YEAR] = temp.year;\n            config._dayOfYear = temp.dayOfYear;\n        }\n    }\n\n    // constant that refers to the ISO standard\n    hooks.ISO_8601 = function () {};\n\n    // constant that refers to the RFC 2822 form\n    hooks.RFC_2822 = function () {};\n\n    // date from string and format string\n    function configFromStringAndFormat(config) {\n        // TODO: Move this to another part of the creation flow to prevent circular deps\n        if (config._f === hooks.ISO_8601) {\n            configFromISO(config);\n            return;\n        }\n        if (config._f === hooks.RFC_2822) {\n            configFromRFC2822(config);\n            return;\n        }\n        config._a = [];\n        getParsingFlags(config).empty = true;\n\n        // This array is used to make a Date, either with `new Date` or `Date.UTC`\n        var string = '' + config._i,\n            i,\n            parsedInput,\n            tokens,\n            token,\n            skipped,\n            stringLength = string.length,\n            totalParsedInputLength = 0,\n            era;\n\n        tokens =\n            expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n        for (i = 0; i < tokens.length; i++) {\n            token = tokens[i];\n            parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n                [])[0];\n            if (parsedInput) {\n                skipped = string.substr(0, string.indexOf(parsedInput));\n                if (skipped.length > 0) {\n                    getParsingFlags(config).unusedInput.push(skipped);\n                }\n                string = string.slice(\n                    string.indexOf(parsedInput) + parsedInput.length\n                );\n                totalParsedInputLength += parsedInput.length;\n            }\n            // don't parse if it's not a known token\n            if (formatTokenFunctions[token]) {\n                if (parsedInput) {\n                    getParsingFlags(config).empty = false;\n                } else {\n                    getParsingFlags(config).unusedTokens.push(token);\n                }\n                addTimeToArrayFromToken(token, parsedInput, config);\n            } else if (config._strict && !parsedInput) {\n                getParsingFlags(config).unusedTokens.push(token);\n            }\n        }\n\n        // add remaining unparsed input length to the string\n        getParsingFlags(config).charsLeftOver =\n            stringLength - totalParsedInputLength;\n        if (string.length > 0) {\n            getParsingFlags(config).unusedInput.push(string);\n        }\n\n        // clear _12h flag if hour is <= 12\n        if (\n            config._a[HOUR] <= 12 &&\n            getParsingFlags(config).bigHour === true &&\n            config._a[HOUR] > 0\n        ) {\n            getParsingFlags(config).bigHour = undefined;\n        }\n\n        getParsingFlags(config).parsedDateParts = config._a.slice(0);\n        getParsingFlags(config).meridiem = config._meridiem;\n        // handle meridiem\n        config._a[HOUR] = meridiemFixWrap(\n            config._locale,\n            config._a[HOUR],\n            config._meridiem\n        );\n\n        // handle era\n        era = getParsingFlags(config).era;\n        if (era !== null) {\n            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n        }\n\n        configFromArray(config);\n        checkOverflow(config);\n    }\n\n    function meridiemFixWrap(locale, hour, meridiem) {\n        var isPm;\n\n        if (meridiem == null) {\n            // nothing to do\n            return hour;\n        }\n        if (locale.meridiemHour != null) {\n            return locale.meridiemHour(hour, meridiem);\n        } else if (locale.isPM != null) {\n            // Fallback\n            isPm = locale.isPM(meridiem);\n            if (isPm && hour < 12) {\n                hour += 12;\n            }\n            if (!isPm && hour === 12) {\n                hour = 0;\n            }\n            return hour;\n        } else {\n            // this is not supposed to happen\n            return hour;\n        }\n    }\n\n    // date from string and array of format strings\n    function configFromStringAndArray(config) {\n        var tempConfig,\n            bestMoment,\n            scoreToBeat,\n            i,\n            currentScore,\n            validFormatFound,\n            bestFormatIsValid = false;\n\n        if (config._f.length === 0) {\n            getParsingFlags(config).invalidFormat = true;\n            config._d = new Date(NaN);\n            return;\n        }\n\n        for (i = 0; i < config._f.length; i++) {\n            currentScore = 0;\n            validFormatFound = false;\n            tempConfig = copyConfig({}, config);\n            if (config._useUTC != null) {\n                tempConfig._useUTC = config._useUTC;\n            }\n            tempConfig._f = config._f[i];\n            configFromStringAndFormat(tempConfig);\n\n            if (isValid(tempConfig)) {\n                validFormatFound = true;\n            }\n\n            // if there is any input that was not parsed add a penalty for that format\n            currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n            //or tokens\n            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n            getParsingFlags(tempConfig).score = currentScore;\n\n            if (!bestFormatIsValid) {\n                if (\n                    scoreToBeat == null ||\n                    currentScore < scoreToBeat ||\n                    validFormatFound\n                ) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                    if (validFormatFound) {\n                        bestFormatIsValid = true;\n                    }\n                }\n            } else {\n                if (currentScore < scoreToBeat) {\n                    scoreToBeat = currentScore;\n                    bestMoment = tempConfig;\n                }\n            }\n        }\n\n        extend(config, bestMoment || tempConfig);\n    }\n\n    function configFromObject(config) {\n        if (config._d) {\n            return;\n        }\n\n        var i = normalizeObjectUnits(config._i),\n            dayOrDate = i.day === undefined ? i.date : i.day;\n        config._a = map(\n            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n            function (obj) {\n                return obj && parseInt(obj, 10);\n            }\n        );\n\n        configFromArray(config);\n    }\n\n    function createFromConfig(config) {\n        var res = new Moment(checkOverflow(prepareConfig(config)));\n        if (res._nextDay) {\n            // Adding is smart enough around DST\n            res.add(1, 'd');\n            res._nextDay = undefined;\n        }\n\n        return res;\n    }\n\n    function prepareConfig(config) {\n        var input = config._i,\n            format = config._f;\n\n        config._locale = config._locale || getLocale(config._l);\n\n        if (input === null || (format === undefined && input === '')) {\n            return createInvalid({ nullInput: true });\n        }\n\n        if (typeof input === 'string') {\n            config._i = input = config._locale.preparse(input);\n        }\n\n        if (isMoment(input)) {\n            return new Moment(checkOverflow(input));\n        } else if (isDate(input)) {\n            config._d = input;\n        } else if (isArray(format)) {\n            configFromStringAndArray(config);\n        } else if (format) {\n            configFromStringAndFormat(config);\n        } else {\n            configFromInput(config);\n        }\n\n        if (!isValid(config)) {\n            config._d = null;\n        }\n\n        return config;\n    }\n\n    function configFromInput(config) {\n        var input = config._i;\n        if (isUndefined(input)) {\n            config._d = new Date(hooks.now());\n        } else if (isDate(input)) {\n            config._d = new Date(input.valueOf());\n        } else if (typeof input === 'string') {\n            configFromString(config);\n        } else if (isArray(input)) {\n            config._a = map(input.slice(0), function (obj) {\n                return parseInt(obj, 10);\n            });\n            configFromArray(config);\n        } else if (isObject(input)) {\n            configFromObject(config);\n        } else if (isNumber(input)) {\n            // from milliseconds\n            config._d = new Date(input);\n        } else {\n            hooks.createFromInputFallback(config);\n        }\n    }\n\n    function createLocalOrUTC(input, format, locale, strict, isUTC) {\n        var c = {};\n\n        if (format === true || format === false) {\n            strict = format;\n            format = undefined;\n        }\n\n        if (locale === true || locale === false) {\n            strict = locale;\n            locale = undefined;\n        }\n\n        if (\n            (isObject(input) && isObjectEmpty(input)) ||\n            (isArray(input) && input.length === 0)\n        ) {\n            input = undefined;\n        }\n        // object construction must be done this way.\n        // https://github.com/moment/moment/issues/1423\n        c._isAMomentObject = true;\n        c._useUTC = c._isUTC = isUTC;\n        c._l = locale;\n        c._i = input;\n        c._f = format;\n        c._strict = strict;\n\n        return createFromConfig(c);\n    }\n\n    function createLocal(input, format, locale, strict) {\n        return createLocalOrUTC(input, format, locale, strict, false);\n    }\n\n    var prototypeMin = deprecate(\n            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other < this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        ),\n        prototypeMax = deprecate(\n            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n            function () {\n                var other = createLocal.apply(null, arguments);\n                if (this.isValid() && other.isValid()) {\n                    return other > this ? this : other;\n                } else {\n                    return createInvalid();\n                }\n            }\n        );\n\n    // Pick a moment m from moments so that m[fn](other) is true for all\n    // other. This relies on the function fn to be transitive.\n    //\n    // moments should either be an array of moment objects or an array, whose\n    // first element is an array of moment objects.\n    function pickBy(fn, moments) {\n        var res, i;\n        if (moments.length === 1 && isArray(moments[0])) {\n            moments = moments[0];\n        }\n        if (!moments.length) {\n            return createLocal();\n        }\n        res = moments[0];\n        for (i = 1; i < moments.length; ++i) {\n            if (!moments[i].isValid() || moments[i][fn](res)) {\n                res = moments[i];\n            }\n        }\n        return res;\n    }\n\n    // TODO: Use [].sort instead?\n    function min() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isBefore', args);\n    }\n\n    function max() {\n        var args = [].slice.call(arguments, 0);\n\n        return pickBy('isAfter', args);\n    }\n\n    var now = function () {\n        return Date.now ? Date.now() : +new Date();\n    };\n\n    var ordering = [\n        'year',\n        'quarter',\n        'month',\n        'week',\n        'day',\n        'hour',\n        'minute',\n        'second',\n        'millisecond',\n    ];\n\n    function isDurationValid(m) {\n        var key,\n            unitHasDecimal = false,\n            i;\n        for (key in m) {\n            if (\n                hasOwnProp(m, key) &&\n                !(\n                    indexOf.call(ordering, key) !== -1 &&\n                    (m[key] == null || !isNaN(m[key]))\n                )\n            ) {\n                return false;\n            }\n        }\n\n        for (i = 0; i < ordering.length; ++i) {\n            if (m[ordering[i]]) {\n                if (unitHasDecimal) {\n                    return false; // only allow non-integers for smallest unit\n                }\n                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n                    unitHasDecimal = true;\n                }\n            }\n        }\n\n        return true;\n    }\n\n    function isValid$1() {\n        return this._isValid;\n    }\n\n    function createInvalid$1() {\n        return createDuration(NaN);\n    }\n\n    function Duration(duration) {\n        var normalizedInput = normalizeObjectUnits(duration),\n            years = normalizedInput.year || 0,\n            quarters = normalizedInput.quarter || 0,\n            months = normalizedInput.month || 0,\n            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n            days = normalizedInput.day || 0,\n            hours = normalizedInput.hour || 0,\n            minutes = normalizedInput.minute || 0,\n            seconds = normalizedInput.second || 0,\n            milliseconds = normalizedInput.millisecond || 0;\n\n        this._isValid = isDurationValid(normalizedInput);\n\n        // representation for dateAddRemove\n        this._milliseconds =\n            +milliseconds +\n            seconds * 1e3 + // 1000\n            minutes * 6e4 + // 1000 * 60\n            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n        // Because of dateAddRemove treats 24 hours as different from a\n        // day when working around DST, we need to store them separately\n        this._days = +days + weeks * 7;\n        // It is impossible to translate months into days without knowing\n        // which months you are are talking about, so we have to store\n        // it separately.\n        this._months = +months + quarters * 3 + years * 12;\n\n        this._data = {};\n\n        this._locale = getLocale();\n\n        this._bubble();\n    }\n\n    function isDuration(obj) {\n        return obj instanceof Duration;\n    }\n\n    function absRound(number) {\n        if (number < 0) {\n            return Math.round(-1 * number) * -1;\n        } else {\n            return Math.round(number);\n        }\n    }\n\n    // compare two arrays, return the number of differences\n    function compareArrays(array1, array2, dontConvert) {\n        var len = Math.min(array1.length, array2.length),\n            lengthDiff = Math.abs(array1.length - array2.length),\n            diffs = 0,\n            i;\n        for (i = 0; i < len; i++) {\n            if (\n                (dontConvert && array1[i] !== array2[i]) ||\n                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n            ) {\n                diffs++;\n            }\n        }\n        return diffs + lengthDiff;\n    }\n\n    // FORMATTING\n\n    function offset(token, separator) {\n        addFormatToken(token, 0, 0, function () {\n            var offset = this.utcOffset(),\n                sign = '+';\n            if (offset < 0) {\n                offset = -offset;\n                sign = '-';\n            }\n            return (\n                sign +\n                zeroFill(~~(offset / 60), 2) +\n                separator +\n                zeroFill(~~offset % 60, 2)\n            );\n        });\n    }\n\n    offset('Z', ':');\n    offset('ZZ', '');\n\n    // PARSING\n\n    addRegexToken('Z', matchShortOffset);\n    addRegexToken('ZZ', matchShortOffset);\n    addParseToken(['Z', 'ZZ'], function (input, array, config) {\n        config._useUTC = true;\n        config._tzm = offsetFromString(matchShortOffset, input);\n    });\n\n    // HELPERS\n\n    // timezone chunker\n    // '+10:00' > ['10',  '00']\n    // '-1530'  > ['-15', '30']\n    var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n    function offsetFromString(matcher, string) {\n        var matches = (string || '').match(matcher),\n            chunk,\n            parts,\n            minutes;\n\n        if (matches === null) {\n            return null;\n        }\n\n        chunk = matches[matches.length - 1] || [];\n        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n        minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n    }\n\n    // Return a moment from input, that is local/utc/zone equivalent to model.\n    function cloneWithOffset(input, model) {\n        var res, diff;\n        if (model._isUTC) {\n            res = model.clone();\n            diff =\n                (isMoment(input) || isDate(input)\n                    ? input.valueOf()\n                    : createLocal(input).valueOf()) - res.valueOf();\n            // Use low-level api, because this fn is low-level api.\n            res._d.setTime(res._d.valueOf() + diff);\n            hooks.updateOffset(res, false);\n            return res;\n        } else {\n            return createLocal(input).local();\n        }\n    }\n\n    function getDateOffset(m) {\n        // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n        // https://github.com/moment/moment/pull/1871\n        return -Math.round(m._d.getTimezoneOffset());\n    }\n\n    // HOOKS\n\n    // This function will be called whenever a moment is mutated.\n    // It is intended to keep the offset in sync with the timezone.\n    hooks.updateOffset = function () {};\n\n    // MOMENTS\n\n    // keepLocalTime = true means only change the timezone, without\n    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n    // +0200, so we adjust the time as needed, to be valid.\n    //\n    // Keeping the time actually adds/subtracts (one hour)\n    // from the actual represented time. That is why we call updateOffset\n    // a second time. In case it wants us to change the offset again\n    // _changeInProgress == true case, then we have to adjust, because\n    // there is no such time in the given timezone.\n    function getSetOffset(input, keepLocalTime, keepMinutes) {\n        var offset = this._offset || 0,\n            localAdjust;\n        if (!this.isValid()) {\n            return input != null ? this : NaN;\n        }\n        if (input != null) {\n            if (typeof input === 'string') {\n                input = offsetFromString(matchShortOffset, input);\n                if (input === null) {\n                    return this;\n                }\n            } else if (Math.abs(input) < 16 && !keepMinutes) {\n                input = input * 60;\n            }\n            if (!this._isUTC && keepLocalTime) {\n                localAdjust = getDateOffset(this);\n            }\n            this._offset = input;\n            this._isUTC = true;\n            if (localAdjust != null) {\n                this.add(localAdjust, 'm');\n            }\n            if (offset !== input) {\n                if (!keepLocalTime || this._changeInProgress) {\n                    addSubtract(\n                        this,\n                        createDuration(input - offset, 'm'),\n                        1,\n                        false\n                    );\n                } else if (!this._changeInProgress) {\n                    this._changeInProgress = true;\n                    hooks.updateOffset(this, true);\n                    this._changeInProgress = null;\n                }\n            }\n            return this;\n        } else {\n            return this._isUTC ? offset : getDateOffset(this);\n        }\n    }\n\n    function getSetZone(input, keepLocalTime) {\n        if (input != null) {\n            if (typeof input !== 'string') {\n                input = -input;\n            }\n\n            this.utcOffset(input, keepLocalTime);\n\n            return this;\n        } else {\n            return -this.utcOffset();\n        }\n    }\n\n    function setOffsetToUTC(keepLocalTime) {\n        return this.utcOffset(0, keepLocalTime);\n    }\n\n    function setOffsetToLocal(keepLocalTime) {\n        if (this._isUTC) {\n            this.utcOffset(0, keepLocalTime);\n            this._isUTC = false;\n\n            if (keepLocalTime) {\n                this.subtract(getDateOffset(this), 'm');\n            }\n        }\n        return this;\n    }\n\n    function setOffsetToParsedOffset() {\n        if (this._tzm != null) {\n            this.utcOffset(this._tzm, false, true);\n        } else if (typeof this._i === 'string') {\n            var tZone = offsetFromString(matchOffset, this._i);\n            if (tZone != null) {\n                this.utcOffset(tZone);\n            } else {\n                this.utcOffset(0, true);\n            }\n        }\n        return this;\n    }\n\n    function hasAlignedHourOffset(input) {\n        if (!this.isValid()) {\n            return false;\n        }\n        input = input ? createLocal(input).utcOffset() : 0;\n\n        return (this.utcOffset() - input) % 60 === 0;\n    }\n\n    function isDaylightSavingTime() {\n        return (\n            this.utcOffset() > this.clone().month(0).utcOffset() ||\n            this.utcOffset() > this.clone().month(5).utcOffset()\n        );\n    }\n\n    function isDaylightSavingTimeShifted() {\n        if (!isUndefined(this._isDSTShifted)) {\n            return this._isDSTShifted;\n        }\n\n        var c = {},\n            other;\n\n        copyConfig(c, this);\n        c = prepareConfig(c);\n\n        if (c._a) {\n            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n            this._isDSTShifted =\n                this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n        } else {\n            this._isDSTShifted = false;\n        }\n\n        return this._isDSTShifted;\n    }\n\n    function isLocal() {\n        return this.isValid() ? !this._isUTC : false;\n    }\n\n    function isUtcOffset() {\n        return this.isValid() ? this._isUTC : false;\n    }\n\n    function isUtc() {\n        return this.isValid() ? this._isUTC && this._offset === 0 : false;\n    }\n\n    // ASP.NET json date format regex\n    var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n        // and further modified to allow for strings containing both week and day\n        isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n    function createDuration(input, key) {\n        var duration = input,\n            // matching against regexp is expensive, do it on demand\n            match = null,\n            sign,\n            ret,\n            diffRes;\n\n        if (isDuration(input)) {\n            duration = {\n                ms: input._milliseconds,\n                d: input._days,\n                M: input._months,\n            };\n        } else if (isNumber(input) || !isNaN(+input)) {\n            duration = {};\n            if (key) {\n                duration[key] = +input;\n            } else {\n                duration.milliseconds = +input;\n            }\n        } else if ((match = aspNetRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: 0,\n                d: toInt(match[DATE]) * sign,\n                h: toInt(match[HOUR]) * sign,\n                m: toInt(match[MINUTE]) * sign,\n                s: toInt(match[SECOND]) * sign,\n                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n            };\n        } else if ((match = isoRegex.exec(input))) {\n            sign = match[1] === '-' ? -1 : 1;\n            duration = {\n                y: parseIso(match[2], sign),\n                M: parseIso(match[3], sign),\n                w: parseIso(match[4], sign),\n                d: parseIso(match[5], sign),\n                h: parseIso(match[6], sign),\n                m: parseIso(match[7], sign),\n                s: parseIso(match[8], sign),\n            };\n        } else if (duration == null) {\n            // checks for null or undefined\n            duration = {};\n        } else if (\n            typeof duration === 'object' &&\n            ('from' in duration || 'to' in duration)\n        ) {\n            diffRes = momentsDifference(\n                createLocal(duration.from),\n                createLocal(duration.to)\n            );\n\n            duration = {};\n            duration.ms = diffRes.milliseconds;\n            duration.M = diffRes.months;\n        }\n\n        ret = new Duration(duration);\n\n        if (isDuration(input) && hasOwnProp(input, '_locale')) {\n            ret._locale = input._locale;\n        }\n\n        if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n            ret._isValid = input._isValid;\n        }\n\n        return ret;\n    }\n\n    createDuration.fn = Duration.prototype;\n    createDuration.invalid = createInvalid$1;\n\n    function parseIso(inp, sign) {\n        // We'd normally use ~~inp for this, but unfortunately it also\n        // converts floats to ints.\n        // inp may be undefined, so careful calling replace on it.\n        var res = inp && parseFloat(inp.replace(',', '.'));\n        // apply sign while we're at it\n        return (isNaN(res) ? 0 : res) * sign;\n    }\n\n    function positiveMomentsDifference(base, other) {\n        var res = {};\n\n        res.months =\n            other.month() - base.month() + (other.year() - base.year()) * 12;\n        if (base.clone().add(res.months, 'M').isAfter(other)) {\n            --res.months;\n        }\n\n        res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n        return res;\n    }\n\n    function momentsDifference(base, other) {\n        var res;\n        if (!(base.isValid() && other.isValid())) {\n            return { milliseconds: 0, months: 0 };\n        }\n\n        other = cloneWithOffset(other, base);\n        if (base.isBefore(other)) {\n            res = positiveMomentsDifference(base, other);\n        } else {\n            res = positiveMomentsDifference(other, base);\n            res.milliseconds = -res.milliseconds;\n            res.months = -res.months;\n        }\n\n        return res;\n    }\n\n    // TODO: remove 'name' arg after deprecation is removed\n    function createAdder(direction, name) {\n        return function (val, period) {\n            var dur, tmp;\n            //invert the arguments, but complain about it\n            if (period !== null && !isNaN(+period)) {\n                deprecateSimple(\n                    name,\n                    'moment().' +\n                        name +\n                        '(period, number) is deprecated. Please use moment().' +\n                        name +\n                        '(number, period). ' +\n                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n                );\n                tmp = val;\n                val = period;\n                period = tmp;\n            }\n\n            dur = createDuration(val, period);\n            addSubtract(this, dur, direction);\n            return this;\n        };\n    }\n\n    function addSubtract(mom, duration, isAdding, updateOffset) {\n        var milliseconds = duration._milliseconds,\n            days = absRound(duration._days),\n            months = absRound(duration._months);\n\n        if (!mom.isValid()) {\n            // No op\n            return;\n        }\n\n        updateOffset = updateOffset == null ? true : updateOffset;\n\n        if (months) {\n            setMonth(mom, get(mom, 'Month') + months * isAdding);\n        }\n        if (days) {\n            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n        }\n        if (milliseconds) {\n            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n        }\n        if (updateOffset) {\n            hooks.updateOffset(mom, days || months);\n        }\n    }\n\n    var add = createAdder(1, 'add'),\n        subtract = createAdder(-1, 'subtract');\n\n    function isString(input) {\n        return typeof input === 'string' || input instanceof String;\n    }\n\n    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n    function isMomentInput(input) {\n        return (\n            isMoment(input) ||\n            isDate(input) ||\n            isString(input) ||\n            isNumber(input) ||\n            isNumberOrStringArray(input) ||\n            isMomentInputObject(input) ||\n            input === null ||\n            input === undefined\n        );\n    }\n\n    function isMomentInputObject(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'years',\n                'year',\n                'y',\n                'months',\n                'month',\n                'M',\n                'days',\n                'day',\n                'd',\n                'dates',\n                'date',\n                'D',\n                'hours',\n                'hour',\n                'h',\n                'minutes',\n                'minute',\n                'm',\n                'seconds',\n                'second',\n                's',\n                'milliseconds',\n                'millisecond',\n                'ms',\n            ],\n            i,\n            property;\n\n        for (i = 0; i < properties.length; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function isNumberOrStringArray(input) {\n        var arrayTest = isArray(input),\n            dataTypeTest = false;\n        if (arrayTest) {\n            dataTypeTest =\n                input.filter(function (item) {\n                    return !isNumber(item) && isString(input);\n                }).length === 0;\n        }\n        return arrayTest && dataTypeTest;\n    }\n\n    function isCalendarSpec(input) {\n        var objectTest = isObject(input) && !isObjectEmpty(input),\n            propertyTest = false,\n            properties = [\n                'sameDay',\n                'nextDay',\n                'lastDay',\n                'nextWeek',\n                'lastWeek',\n                'sameElse',\n            ],\n            i,\n            property;\n\n        for (i = 0; i < properties.length; i += 1) {\n            property = properties[i];\n            propertyTest = propertyTest || hasOwnProp(input, property);\n        }\n\n        return objectTest && propertyTest;\n    }\n\n    function getCalendarFormat(myMoment, now) {\n        var diff = myMoment.diff(now, 'days', true);\n        return diff < -6\n            ? 'sameElse'\n            : diff < -1\n            ? 'lastWeek'\n            : diff < 0\n            ? 'lastDay'\n            : diff < 1\n            ? 'sameDay'\n            : diff < 2\n            ? 'nextDay'\n            : diff < 7\n            ? 'nextWeek'\n            : 'sameElse';\n    }\n\n    function calendar$1(time, formats) {\n        // Support for single parameter, formats only overload to the calendar function\n        if (arguments.length === 1) {\n            if (isMomentInput(arguments[0])) {\n                time = arguments[0];\n                formats = undefined;\n            } else if (isCalendarSpec(arguments[0])) {\n                formats = arguments[0];\n                time = undefined;\n            }\n        }\n        // We want to compare the start of today, vs this.\n        // Getting start-of-today depends on whether we're local/utc/offset or not.\n        var now = time || createLocal(),\n            sod = cloneWithOffset(now, this).startOf('day'),\n            format = hooks.calendarFormat(this, sod) || 'sameElse',\n            output =\n                formats &&\n                (isFunction(formats[format])\n                    ? formats[format].call(this, now)\n                    : formats[format]);\n\n        return this.format(\n            output || this.localeData().calendar(format, this, createLocal(now))\n        );\n    }\n\n    function clone() {\n        return new Moment(this);\n    }\n\n    function isAfter(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() > localInput.valueOf();\n        } else {\n            return localInput.valueOf() < this.clone().startOf(units).valueOf();\n        }\n    }\n\n    function isBefore(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input);\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() < localInput.valueOf();\n        } else {\n            return this.clone().endOf(units).valueOf() < localInput.valueOf();\n        }\n    }\n\n    function isBetween(from, to, units, inclusivity) {\n        var localFrom = isMoment(from) ? from : createLocal(from),\n            localTo = isMoment(to) ? to : createLocal(to);\n        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n            return false;\n        }\n        inclusivity = inclusivity || '()';\n        return (\n            (inclusivity[0] === '('\n                ? this.isAfter(localFrom, units)\n                : !this.isBefore(localFrom, units)) &&\n            (inclusivity[1] === ')'\n                ? this.isBefore(localTo, units)\n                : !this.isAfter(localTo, units))\n        );\n    }\n\n    function isSame(input, units) {\n        var localInput = isMoment(input) ? input : createLocal(input),\n            inputMs;\n        if (!(this.isValid() && localInput.isValid())) {\n            return false;\n        }\n        units = normalizeUnits(units) || 'millisecond';\n        if (units === 'millisecond') {\n            return this.valueOf() === localInput.valueOf();\n        } else {\n            inputMs = localInput.valueOf();\n            return (\n                this.clone().startOf(units).valueOf() <= inputMs &&\n                inputMs <= this.clone().endOf(units).valueOf()\n            );\n        }\n    }\n\n    function isSameOrAfter(input, units) {\n        return this.isSame(input, units) || this.isAfter(input, units);\n    }\n\n    function isSameOrBefore(input, units) {\n        return this.isSame(input, units) || this.isBefore(input, units);\n    }\n\n    function diff(input, units, asFloat) {\n        var that, zoneDelta, output;\n\n        if (!this.isValid()) {\n            return NaN;\n        }\n\n        that = cloneWithOffset(input, this);\n\n        if (!that.isValid()) {\n            return NaN;\n        }\n\n        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n        units = normalizeUnits(units);\n\n        switch (units) {\n            case 'year':\n                output = monthDiff(this, that) / 12;\n                break;\n            case 'month':\n                output = monthDiff(this, that);\n                break;\n            case 'quarter':\n                output = monthDiff(this, that) / 3;\n                break;\n            case 'second':\n                output = (this - that) / 1e3;\n                break; // 1000\n            case 'minute':\n                output = (this - that) / 6e4;\n                break; // 1000 * 60\n            case 'hour':\n                output = (this - that) / 36e5;\n                break; // 1000 * 60 * 60\n            case 'day':\n                output = (this - that - zoneDelta) / 864e5;\n                break; // 1000 * 60 * 60 * 24, negate dst\n            case 'week':\n                output = (this - that - zoneDelta) / 6048e5;\n                break; // 1000 * 60 * 60 * 24 * 7, negate dst\n            default:\n                output = this - that;\n        }\n\n        return asFloat ? output : absFloor(output);\n    }\n\n    function monthDiff(a, b) {\n        if (a.date() < b.date()) {\n            // end-of-month calculations work correct when the start month has more\n            // days than the end month.\n            return -monthDiff(b, a);\n        }\n        // difference in months\n        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n            // b is in (anchor - 1 month, anchor + 1 month)\n            anchor = a.clone().add(wholeMonthDiff, 'months'),\n            anchor2,\n            adjust;\n\n        if (b - anchor < 0) {\n            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor - anchor2);\n        } else {\n            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n            // linear across the month\n            adjust = (b - anchor) / (anchor2 - anchor);\n        }\n\n        //check for negative zero, return zero if negative zero\n        return -(wholeMonthDiff + adjust) || 0;\n    }\n\n    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n    function toString() {\n        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n    }\n\n    function toISOString(keepOffset) {\n        if (!this.isValid()) {\n            return null;\n        }\n        var utc = keepOffset !== true,\n            m = utc ? this.clone().utc() : this;\n        if (m.year() < 0 || m.year() > 9999) {\n            return formatMoment(\n                m,\n                utc\n                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n            );\n        }\n        if (isFunction(Date.prototype.toISOString)) {\n            // native implementation is ~50x faster, use it when we can\n            if (utc) {\n                return this.toDate().toISOString();\n            } else {\n                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n                    .toISOString()\n                    .replace('Z', formatMoment(m, 'Z'));\n            }\n        }\n        return formatMoment(\n            m,\n            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n        );\n    }\n\n    /**\n     * Return a human readable representation of a moment that can\n     * also be evaluated to get a new moment which is the same\n     *\n     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n     */\n    function inspect() {\n        if (!this.isValid()) {\n            return 'moment.invalid(/* ' + this._i + ' */)';\n        }\n        var func = 'moment',\n            zone = '',\n            prefix,\n            year,\n            datetime,\n            suffix;\n        if (!this.isLocal()) {\n            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n            zone = 'Z';\n        }\n        prefix = '[' + func + '(\"]';\n        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n        datetime = '-MM-DD[T]HH:mm:ss.SSS';\n        suffix = zone + '[\")]';\n\n        return this.format(prefix + year + datetime + suffix);\n    }\n\n    function format(inputString) {\n        if (!inputString) {\n            inputString = this.isUtc()\n                ? hooks.defaultFormatUtc\n                : hooks.defaultFormat;\n        }\n        var output = formatMoment(this, inputString);\n        return this.localeData().postformat(output);\n    }\n\n    function from(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ to: this, from: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function fromNow(withoutSuffix) {\n        return this.from(createLocal(), withoutSuffix);\n    }\n\n    function to(time, withoutSuffix) {\n        if (\n            this.isValid() &&\n            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n        ) {\n            return createDuration({ from: this, to: time })\n                .locale(this.locale())\n                .humanize(!withoutSuffix);\n        } else {\n            return this.localeData().invalidDate();\n        }\n    }\n\n    function toNow(withoutSuffix) {\n        return this.to(createLocal(), withoutSuffix);\n    }\n\n    // If passed a locale key, it will set the locale for this\n    // instance.  Otherwise, it will return the locale configuration\n    // variables for this instance.\n    function locale(key) {\n        var newLocaleData;\n\n        if (key === undefined) {\n            return this._locale._abbr;\n        } else {\n            newLocaleData = getLocale(key);\n            if (newLocaleData != null) {\n                this._locale = newLocaleData;\n            }\n            return this;\n        }\n    }\n\n    var lang = deprecate(\n        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n        function (key) {\n            if (key === undefined) {\n                return this.localeData();\n            } else {\n                return this.locale(key);\n            }\n        }\n    );\n\n    function localeData() {\n        return this._locale;\n    }\n\n    var MS_PER_SECOND = 1000,\n        MS_PER_MINUTE = 60 * MS_PER_SECOND,\n        MS_PER_HOUR = 60 * MS_PER_MINUTE,\n        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n    // actual modulo - handles negative numbers (for dates before 1970):\n    function mod$1(dividend, divisor) {\n        return ((dividend % divisor) + divisor) % divisor;\n    }\n\n    function localStartOfDate(y, m, d) {\n        // the date constructor remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return new Date(y, m, d).valueOf();\n        }\n    }\n\n    function utcStartOfDate(y, m, d) {\n        // Date.UTC remaps years 0-99 to 1900-1999\n        if (y < 100 && y >= 0) {\n            // preserve leap years using a full 400 year cycle, then reset\n            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n        } else {\n            return Date.UTC(y, m, d);\n        }\n    }\n\n    function startOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year(), 0, 1);\n                break;\n            case 'quarter':\n                time = startOfDate(\n                    this.year(),\n                    this.month() - (this.month() % 3),\n                    1\n                );\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month(), 1);\n                break;\n            case 'week':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - this.weekday()\n                );\n                break;\n            case 'isoWeek':\n                time = startOfDate(\n                    this.year(),\n                    this.month(),\n                    this.date() - (this.isoWeekday() - 1)\n                );\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date());\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time -= mod$1(\n                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                    MS_PER_HOUR\n                );\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_MINUTE);\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time -= mod$1(time, MS_PER_SECOND);\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function endOf(units) {\n        var time, startOfDate;\n        units = normalizeUnits(units);\n        if (units === undefined || units === 'millisecond' || !this.isValid()) {\n            return this;\n        }\n\n        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n        switch (units) {\n            case 'year':\n                time = startOfDate(this.year() + 1, 0, 1) - 1;\n                break;\n            case 'quarter':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month() - (this.month() % 3) + 3,\n                        1\n                    ) - 1;\n                break;\n            case 'month':\n                time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n                break;\n            case 'week':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - this.weekday() + 7\n                    ) - 1;\n                break;\n            case 'isoWeek':\n                time =\n                    startOfDate(\n                        this.year(),\n                        this.month(),\n                        this.date() - (this.isoWeekday() - 1) + 7\n                    ) - 1;\n                break;\n            case 'day':\n            case 'date':\n                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n                break;\n            case 'hour':\n                time = this._d.valueOf();\n                time +=\n                    MS_PER_HOUR -\n                    mod$1(\n                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n                        MS_PER_HOUR\n                    ) -\n                    1;\n                break;\n            case 'minute':\n                time = this._d.valueOf();\n                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n                break;\n            case 'second':\n                time = this._d.valueOf();\n                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n                break;\n        }\n\n        this._d.setTime(time);\n        hooks.updateOffset(this, true);\n        return this;\n    }\n\n    function valueOf() {\n        return this._d.valueOf() - (this._offset || 0) * 60000;\n    }\n\n    function unix() {\n        return Math.floor(this.valueOf() / 1000);\n    }\n\n    function toDate() {\n        return new Date(this.valueOf());\n    }\n\n    function toArray() {\n        var m = this;\n        return [\n            m.year(),\n            m.month(),\n            m.date(),\n            m.hour(),\n            m.minute(),\n            m.second(),\n            m.millisecond(),\n        ];\n    }\n\n    function toObject() {\n        var m = this;\n        return {\n            years: m.year(),\n            months: m.month(),\n            date: m.date(),\n            hours: m.hours(),\n            minutes: m.minutes(),\n            seconds: m.seconds(),\n            milliseconds: m.milliseconds(),\n        };\n    }\n\n    function toJSON() {\n        // new Date(NaN).toJSON() === null\n        return this.isValid() ? this.toISOString() : null;\n    }\n\n    function isValid$2() {\n        return isValid(this);\n    }\n\n    function parsingFlags() {\n        return extend({}, getParsingFlags(this));\n    }\n\n    function invalidAt() {\n        return getParsingFlags(this).overflow;\n    }\n\n    function creationData() {\n        return {\n            input: this._i,\n            format: this._f,\n            locale: this._locale,\n            isUTC: this._isUTC,\n            strict: this._strict,\n        };\n    }\n\n    addFormatToken('N', 0, 0, 'eraAbbr');\n    addFormatToken('NN', 0, 0, 'eraAbbr');\n    addFormatToken('NNN', 0, 0, 'eraAbbr');\n    addFormatToken('NNNN', 0, 0, 'eraName');\n    addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n    addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n    addFormatToken('y', ['yy', 2], 0, 'eraYear');\n    addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n    addRegexToken('N', matchEraAbbr);\n    addRegexToken('NN', matchEraAbbr);\n    addRegexToken('NNN', matchEraAbbr);\n    addRegexToken('NNNN', matchEraName);\n    addRegexToken('NNNNN', matchEraNarrow);\n\n    addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n        input,\n        array,\n        config,\n        token\n    ) {\n        var era = config._locale.erasParse(input, token, config._strict);\n        if (era) {\n            getParsingFlags(config).era = era;\n        } else {\n            getParsingFlags(config).invalidEra = input;\n        }\n    });\n\n    addRegexToken('y', matchUnsigned);\n    addRegexToken('yy', matchUnsigned);\n    addRegexToken('yyy', matchUnsigned);\n    addRegexToken('yyyy', matchUnsigned);\n    addRegexToken('yo', matchEraYearOrdinal);\n\n    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n    addParseToken(['yo'], function (input, array, config, token) {\n        var match;\n        if (config._locale._eraYearOrdinalRegex) {\n            match = input.match(config._locale._eraYearOrdinalRegex);\n        }\n\n        if (config._locale.eraYearOrdinalParse) {\n            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n        } else {\n            array[YEAR] = parseInt(input, 10);\n        }\n    });\n\n    function localeEras(m, format) {\n        var i,\n            l,\n            date,\n            eras = this._eras || getLocale('en')._eras;\n        for (i = 0, l = eras.length; i < l; ++i) {\n            switch (typeof eras[i].since) {\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].since).startOf('day');\n                    eras[i].since = date.valueOf();\n                    break;\n            }\n\n            switch (typeof eras[i].until) {\n                case 'undefined':\n                    eras[i].until = +Infinity;\n                    break;\n                case 'string':\n                    // truncate time\n                    date = hooks(eras[i].until).startOf('day').valueOf();\n                    eras[i].until = date.valueOf();\n                    break;\n            }\n        }\n        return eras;\n    }\n\n    function localeErasParse(eraName, format, strict) {\n        var i,\n            l,\n            eras = this.eras(),\n            name,\n            abbr,\n            narrow;\n        eraName = eraName.toUpperCase();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            name = eras[i].name.toUpperCase();\n            abbr = eras[i].abbr.toUpperCase();\n            narrow = eras[i].narrow.toUpperCase();\n\n            if (strict) {\n                switch (format) {\n                    case 'N':\n                    case 'NN':\n                    case 'NNN':\n                        if (abbr === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNN':\n                        if (name === eraName) {\n                            return eras[i];\n                        }\n                        break;\n\n                    case 'NNNNN':\n                        if (narrow === eraName) {\n                            return eras[i];\n                        }\n                        break;\n                }\n            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n                return eras[i];\n            }\n        }\n    }\n\n    function localeErasConvertYear(era, year) {\n        var dir = era.since <= era.until ? +1 : -1;\n        if (year === undefined) {\n            return hooks(era.since).year();\n        } else {\n            return hooks(era.since).year() + (year - era.offset) * dir;\n        }\n    }\n\n    function getEraName() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].name;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].name;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraNarrow() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].narrow;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].narrow;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraAbbr() {\n        var i,\n            l,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            // truncate time\n            val = this.startOf('day').valueOf();\n\n            if (eras[i].since <= val && val <= eras[i].until) {\n                return eras[i].abbr;\n            }\n            if (eras[i].until <= val && val <= eras[i].since) {\n                return eras[i].abbr;\n            }\n        }\n\n        return '';\n    }\n\n    function getEraYear() {\n        var i,\n            l,\n            dir,\n            val,\n            eras = this.localeData().eras();\n        for (i = 0, l = eras.length; i < l; ++i) {\n            dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n            // truncate time\n            val = this.startOf('day').valueOf();\n\n            if (\n                (eras[i].since <= val && val <= eras[i].until) ||\n                (eras[i].until <= val && val <= eras[i].since)\n            ) {\n                return (\n                    (this.year() - hooks(eras[i].since).year()) * dir +\n                    eras[i].offset\n                );\n            }\n        }\n\n        return this.year();\n    }\n\n    function erasNameRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNameRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNameRegex : this._erasRegex;\n    }\n\n    function erasAbbrRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasAbbrRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasAbbrRegex : this._erasRegex;\n    }\n\n    function erasNarrowRegex(isStrict) {\n        if (!hasOwnProp(this, '_erasNarrowRegex')) {\n            computeErasParse.call(this);\n        }\n        return isStrict ? this._erasNarrowRegex : this._erasRegex;\n    }\n\n    function matchEraAbbr(isStrict, locale) {\n        return locale.erasAbbrRegex(isStrict);\n    }\n\n    function matchEraName(isStrict, locale) {\n        return locale.erasNameRegex(isStrict);\n    }\n\n    function matchEraNarrow(isStrict, locale) {\n        return locale.erasNarrowRegex(isStrict);\n    }\n\n    function matchEraYearOrdinal(isStrict, locale) {\n        return locale._eraYearOrdinalRegex || matchUnsigned;\n    }\n\n    function computeErasParse() {\n        var abbrPieces = [],\n            namePieces = [],\n            narrowPieces = [],\n            mixedPieces = [],\n            i,\n            l,\n            eras = this.eras();\n\n        for (i = 0, l = eras.length; i < l; ++i) {\n            namePieces.push(regexEscape(eras[i].name));\n            abbrPieces.push(regexEscape(eras[i].abbr));\n            narrowPieces.push(regexEscape(eras[i].narrow));\n\n            mixedPieces.push(regexEscape(eras[i].name));\n            mixedPieces.push(regexEscape(eras[i].abbr));\n            mixedPieces.push(regexEscape(eras[i].narrow));\n        }\n\n        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n        this._erasNarrowRegex = new RegExp(\n            '^(' + narrowPieces.join('|') + ')',\n            'i'\n        );\n    }\n\n    // FORMATTING\n\n    addFormatToken(0, ['gg', 2], 0, function () {\n        return this.weekYear() % 100;\n    });\n\n    addFormatToken(0, ['GG', 2], 0, function () {\n        return this.isoWeekYear() % 100;\n    });\n\n    function addWeekYearFormatToken(token, getter) {\n        addFormatToken(0, [token, token.length], 0, getter);\n    }\n\n    addWeekYearFormatToken('gggg', 'weekYear');\n    addWeekYearFormatToken('ggggg', 'weekYear');\n    addWeekYearFormatToken('GGGG', 'isoWeekYear');\n    addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n    // ALIASES\n\n    addUnitAlias('weekYear', 'gg');\n    addUnitAlias('isoWeekYear', 'GG');\n\n    // PRIORITY\n\n    addUnitPriority('weekYear', 1);\n    addUnitPriority('isoWeekYear', 1);\n\n    // PARSING\n\n    addRegexToken('G', matchSigned);\n    addRegexToken('g', matchSigned);\n    addRegexToken('GG', match1to2, match2);\n    addRegexToken('gg', match1to2, match2);\n    addRegexToken('GGGG', match1to4, match4);\n    addRegexToken('gggg', match1to4, match4);\n    addRegexToken('GGGGG', match1to6, match6);\n    addRegexToken('ggggg', match1to6, match6);\n\n    addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n        input,\n        week,\n        config,\n        token\n    ) {\n        week[token.substr(0, 2)] = toInt(input);\n    });\n\n    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n        week[token] = hooks.parseTwoDigitYear(input);\n    });\n\n    // MOMENTS\n\n    function getSetWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.week(),\n            this.weekday(),\n            this.localeData()._week.dow,\n            this.localeData()._week.doy\n        );\n    }\n\n    function getSetISOWeekYear(input) {\n        return getSetWeekYearHelper.call(\n            this,\n            input,\n            this.isoWeek(),\n            this.isoWeekday(),\n            1,\n            4\n        );\n    }\n\n    function getISOWeeksInYear() {\n        return weeksInYear(this.year(), 1, 4);\n    }\n\n    function getISOWeeksInISOWeekYear() {\n        return weeksInYear(this.isoWeekYear(), 1, 4);\n    }\n\n    function getWeeksInYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getWeeksInWeekYear() {\n        var weekInfo = this.localeData()._week;\n        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n    }\n\n    function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n        var weeksTarget;\n        if (input == null) {\n            return weekOfYear(this, dow, doy).year;\n        } else {\n            weeksTarget = weeksInYear(input, dow, doy);\n            if (week > weeksTarget) {\n                week = weeksTarget;\n            }\n            return setWeekAll.call(this, input, week, weekday, dow, doy);\n        }\n    }\n\n    function setWeekAll(weekYear, week, weekday, dow, doy) {\n        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n        this.year(date.getUTCFullYear());\n        this.month(date.getUTCMonth());\n        this.date(date.getUTCDate());\n        return this;\n    }\n\n    // FORMATTING\n\n    addFormatToken('Q', 0, 'Qo', 'quarter');\n\n    // ALIASES\n\n    addUnitAlias('quarter', 'Q');\n\n    // PRIORITY\n\n    addUnitPriority('quarter', 7);\n\n    // PARSING\n\n    addRegexToken('Q', match1);\n    addParseToken('Q', function (input, array) {\n        array[MONTH] = (toInt(input) - 1) * 3;\n    });\n\n    // MOMENTS\n\n    function getSetQuarter(input) {\n        return input == null\n            ? Math.ceil((this.month() + 1) / 3)\n            : this.month((input - 1) * 3 + (this.month() % 3));\n    }\n\n    // FORMATTING\n\n    addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n    // ALIASES\n\n    addUnitAlias('date', 'D');\n\n    // PRIORITY\n    addUnitPriority('date', 9);\n\n    // PARSING\n\n    addRegexToken('D', match1to2);\n    addRegexToken('DD', match1to2, match2);\n    addRegexToken('Do', function (isStrict, locale) {\n        // TODO: Remove \"ordinalParse\" fallback in next major release.\n        return isStrict\n            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n            : locale._dayOfMonthOrdinalParseLenient;\n    });\n\n    addParseToken(['D', 'DD'], DATE);\n    addParseToken('Do', function (input, array) {\n        array[DATE] = toInt(input.match(match1to2)[0]);\n    });\n\n    // MOMENTS\n\n    var getSetDayOfMonth = makeGetSet('Date', true);\n\n    // FORMATTING\n\n    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n    // ALIASES\n\n    addUnitAlias('dayOfYear', 'DDD');\n\n    // PRIORITY\n    addUnitPriority('dayOfYear', 4);\n\n    // PARSING\n\n    addRegexToken('DDD', match1to3);\n    addRegexToken('DDDD', match3);\n    addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n        config._dayOfYear = toInt(input);\n    });\n\n    // HELPERS\n\n    // MOMENTS\n\n    function getSetDayOfYear(input) {\n        var dayOfYear =\n            Math.round(\n                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n            ) + 1;\n        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n    }\n\n    // FORMATTING\n\n    addFormatToken('m', ['mm', 2], 0, 'minute');\n\n    // ALIASES\n\n    addUnitAlias('minute', 'm');\n\n    // PRIORITY\n\n    addUnitPriority('minute', 14);\n\n    // PARSING\n\n    addRegexToken('m', match1to2);\n    addRegexToken('mm', match1to2, match2);\n    addParseToken(['m', 'mm'], MINUTE);\n\n    // MOMENTS\n\n    var getSetMinute = makeGetSet('Minutes', false);\n\n    // FORMATTING\n\n    addFormatToken('s', ['ss', 2], 0, 'second');\n\n    // ALIASES\n\n    addUnitAlias('second', 's');\n\n    // PRIORITY\n\n    addUnitPriority('second', 15);\n\n    // PARSING\n\n    addRegexToken('s', match1to2);\n    addRegexToken('ss', match1to2, match2);\n    addParseToken(['s', 'ss'], SECOND);\n\n    // MOMENTS\n\n    var getSetSecond = makeGetSet('Seconds', false);\n\n    // FORMATTING\n\n    addFormatToken('S', 0, 0, function () {\n        return ~~(this.millisecond() / 100);\n    });\n\n    addFormatToken(0, ['SS', 2], 0, function () {\n        return ~~(this.millisecond() / 10);\n    });\n\n    addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n    addFormatToken(0, ['SSSS', 4], 0, function () {\n        return this.millisecond() * 10;\n    });\n    addFormatToken(0, ['SSSSS', 5], 0, function () {\n        return this.millisecond() * 100;\n    });\n    addFormatToken(0, ['SSSSSS', 6], 0, function () {\n        return this.millisecond() * 1000;\n    });\n    addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n        return this.millisecond() * 10000;\n    });\n    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n        return this.millisecond() * 100000;\n    });\n    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n        return this.millisecond() * 1000000;\n    });\n\n    // ALIASES\n\n    addUnitAlias('millisecond', 'ms');\n\n    // PRIORITY\n\n    addUnitPriority('millisecond', 16);\n\n    // PARSING\n\n    addRegexToken('S', match1to3, match1);\n    addRegexToken('SS', match1to3, match2);\n    addRegexToken('SSS', match1to3, match3);\n\n    var token, getSetMillisecond;\n    for (token = 'SSSS'; token.length <= 9; token += 'S') {\n        addRegexToken(token, matchUnsigned);\n    }\n\n    function parseMs(input, array) {\n        array[MILLISECOND] = toInt(('0.' + input) * 1000);\n    }\n\n    for (token = 'S'; token.length <= 9; token += 'S') {\n        addParseToken(token, parseMs);\n    }\n\n    getSetMillisecond = makeGetSet('Milliseconds', false);\n\n    // FORMATTING\n\n    addFormatToken('z', 0, 0, 'zoneAbbr');\n    addFormatToken('zz', 0, 0, 'zoneName');\n\n    // MOMENTS\n\n    function getZoneAbbr() {\n        return this._isUTC ? 'UTC' : '';\n    }\n\n    function getZoneName() {\n        return this._isUTC ? 'Coordinated Universal Time' : '';\n    }\n\n    var proto = Moment.prototype;\n\n    proto.add = add;\n    proto.calendar = calendar$1;\n    proto.clone = clone;\n    proto.diff = diff;\n    proto.endOf = endOf;\n    proto.format = format;\n    proto.from = from;\n    proto.fromNow = fromNow;\n    proto.to = to;\n    proto.toNow = toNow;\n    proto.get = stringGet;\n    proto.invalidAt = invalidAt;\n    proto.isAfter = isAfter;\n    proto.isBefore = isBefore;\n    proto.isBetween = isBetween;\n    proto.isSame = isSame;\n    proto.isSameOrAfter = isSameOrAfter;\n    proto.isSameOrBefore = isSameOrBefore;\n    proto.isValid = isValid$2;\n    proto.lang = lang;\n    proto.locale = locale;\n    proto.localeData = localeData;\n    proto.max = prototypeMax;\n    proto.min = prototypeMin;\n    proto.parsingFlags = parsingFlags;\n    proto.set = stringSet;\n    proto.startOf = startOf;\n    proto.subtract = subtract;\n    proto.toArray = toArray;\n    proto.toObject = toObject;\n    proto.toDate = toDate;\n    proto.toISOString = toISOString;\n    proto.inspect = inspect;\n    if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n            return 'Moment<' + this.format() + '>';\n        };\n    }\n    proto.toJSON = toJSON;\n    proto.toString = toString;\n    proto.unix = unix;\n    proto.valueOf = valueOf;\n    proto.creationData = creationData;\n    proto.eraName = getEraName;\n    proto.eraNarrow = getEraNarrow;\n    proto.eraAbbr = getEraAbbr;\n    proto.eraYear = getEraYear;\n    proto.year = getSetYear;\n    proto.isLeapYear = getIsLeapYear;\n    proto.weekYear = getSetWeekYear;\n    proto.isoWeekYear = getSetISOWeekYear;\n    proto.quarter = proto.quarters = getSetQuarter;\n    proto.month = getSetMonth;\n    proto.daysInMonth = getDaysInMonth;\n    proto.week = proto.weeks = getSetWeek;\n    proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n    proto.weeksInYear = getWeeksInYear;\n    proto.weeksInWeekYear = getWeeksInWeekYear;\n    proto.isoWeeksInYear = getISOWeeksInYear;\n    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n    proto.date = getSetDayOfMonth;\n    proto.day = proto.days = getSetDayOfWeek;\n    proto.weekday = getSetLocaleDayOfWeek;\n    proto.isoWeekday = getSetISODayOfWeek;\n    proto.dayOfYear = getSetDayOfYear;\n    proto.hour = proto.hours = getSetHour;\n    proto.minute = proto.minutes = getSetMinute;\n    proto.second = proto.seconds = getSetSecond;\n    proto.millisecond = proto.milliseconds = getSetMillisecond;\n    proto.utcOffset = getSetOffset;\n    proto.utc = setOffsetToUTC;\n    proto.local = setOffsetToLocal;\n    proto.parseZone = setOffsetToParsedOffset;\n    proto.hasAlignedHourOffset = hasAlignedHourOffset;\n    proto.isDST = isDaylightSavingTime;\n    proto.isLocal = isLocal;\n    proto.isUtcOffset = isUtcOffset;\n    proto.isUtc = isUtc;\n    proto.isUTC = isUtc;\n    proto.zoneAbbr = getZoneAbbr;\n    proto.zoneName = getZoneName;\n    proto.dates = deprecate(\n        'dates accessor is deprecated. Use date instead.',\n        getSetDayOfMonth\n    );\n    proto.months = deprecate(\n        'months accessor is deprecated. Use month instead',\n        getSetMonth\n    );\n    proto.years = deprecate(\n        'years accessor is deprecated. Use year instead',\n        getSetYear\n    );\n    proto.zone = deprecate(\n        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n        getSetZone\n    );\n    proto.isDSTShifted = deprecate(\n        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n        isDaylightSavingTimeShifted\n    );\n\n    function createUnix(input) {\n        return createLocal(input * 1000);\n    }\n\n    function createInZone() {\n        return createLocal.apply(null, arguments).parseZone();\n    }\n\n    function preParsePostFormat(string) {\n        return string;\n    }\n\n    var proto$1 = Locale.prototype;\n\n    proto$1.calendar = calendar;\n    proto$1.longDateFormat = longDateFormat;\n    proto$1.invalidDate = invalidDate;\n    proto$1.ordinal = ordinal;\n    proto$1.preparse = preParsePostFormat;\n    proto$1.postformat = preParsePostFormat;\n    proto$1.relativeTime = relativeTime;\n    proto$1.pastFuture = pastFuture;\n    proto$1.set = set;\n    proto$1.eras = localeEras;\n    proto$1.erasParse = localeErasParse;\n    proto$1.erasConvertYear = localeErasConvertYear;\n    proto$1.erasAbbrRegex = erasAbbrRegex;\n    proto$1.erasNameRegex = erasNameRegex;\n    proto$1.erasNarrowRegex = erasNarrowRegex;\n\n    proto$1.months = localeMonths;\n    proto$1.monthsShort = localeMonthsShort;\n    proto$1.monthsParse = localeMonthsParse;\n    proto$1.monthsRegex = monthsRegex;\n    proto$1.monthsShortRegex = monthsShortRegex;\n    proto$1.week = localeWeek;\n    proto$1.firstDayOfYear = localeFirstDayOfYear;\n    proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n    proto$1.weekdays = localeWeekdays;\n    proto$1.weekdaysMin = localeWeekdaysMin;\n    proto$1.weekdaysShort = localeWeekdaysShort;\n    proto$1.weekdaysParse = localeWeekdaysParse;\n\n    proto$1.weekdaysRegex = weekdaysRegex;\n    proto$1.weekdaysShortRegex = weekdaysShortRegex;\n    proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n    proto$1.isPM = localeIsPM;\n    proto$1.meridiem = localeMeridiem;\n\n    function get$1(format, index, field, setter) {\n        var locale = getLocale(),\n            utc = createUTC().set(setter, index);\n        return locale[field](utc, format);\n    }\n\n    function listMonthsImpl(format, index, field) {\n        if (isNumber(format)) {\n            index = format;\n            format = undefined;\n        }\n\n        format = format || '';\n\n        if (index != null) {\n            return get$1(format, index, field, 'month');\n        }\n\n        var i,\n            out = [];\n        for (i = 0; i < 12; i++) {\n            out[i] = get$1(format, i, field, 'month');\n        }\n        return out;\n    }\n\n    // ()\n    // (5)\n    // (fmt, 5)\n    // (fmt)\n    // (true)\n    // (true, 5)\n    // (true, fmt, 5)\n    // (true, fmt)\n    function listWeekdaysImpl(localeSorted, format, index, field) {\n        if (typeof localeSorted === 'boolean') {\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        } else {\n            format = localeSorted;\n            index = format;\n            localeSorted = false;\n\n            if (isNumber(format)) {\n                index = format;\n                format = undefined;\n            }\n\n            format = format || '';\n        }\n\n        var locale = getLocale(),\n            shift = localeSorted ? locale._week.dow : 0,\n            i,\n            out = [];\n\n        if (index != null) {\n            return get$1(format, (index + shift) % 7, field, 'day');\n        }\n\n        for (i = 0; i < 7; i++) {\n            out[i] = get$1(format, (i + shift) % 7, field, 'day');\n        }\n        return out;\n    }\n\n    function listMonths(format, index) {\n        return listMonthsImpl(format, index, 'months');\n    }\n\n    function listMonthsShort(format, index) {\n        return listMonthsImpl(format, index, 'monthsShort');\n    }\n\n    function listWeekdays(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n    }\n\n    function listWeekdaysShort(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n    }\n\n    function listWeekdaysMin(localeSorted, format, index) {\n        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n    }\n\n    getSetGlobalLocale('en', {\n        eras: [\n            {\n                since: '0001-01-01',\n                until: +Infinity,\n                offset: 1,\n                name: 'Anno Domini',\n                narrow: 'AD',\n                abbr: 'AD',\n            },\n            {\n                since: '0000-12-31',\n                until: -Infinity,\n                offset: 1,\n                name: 'Before Christ',\n                narrow: 'BC',\n                abbr: 'BC',\n            },\n        ],\n        dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n        ordinal: function (number) {\n            var b = number % 10,\n                output =\n                    toInt((number % 100) / 10) === 1\n                        ? 'th'\n                        : b === 1\n                        ? 'st'\n                        : b === 2\n                        ? 'nd'\n                        : b === 3\n                        ? 'rd'\n                        : 'th';\n            return number + output;\n        },\n    });\n\n    // Side effect imports\n\n    hooks.lang = deprecate(\n        'moment.lang is deprecated. Use moment.locale instead.',\n        getSetGlobalLocale\n    );\n    hooks.langData = deprecate(\n        'moment.langData is deprecated. Use moment.localeData instead.',\n        getLocale\n    );\n\n    var mathAbs = Math.abs;\n\n    function abs() {\n        var data = this._data;\n\n        this._milliseconds = mathAbs(this._milliseconds);\n        this._days = mathAbs(this._days);\n        this._months = mathAbs(this._months);\n\n        data.milliseconds = mathAbs(data.milliseconds);\n        data.seconds = mathAbs(data.seconds);\n        data.minutes = mathAbs(data.minutes);\n        data.hours = mathAbs(data.hours);\n        data.months = mathAbs(data.months);\n        data.years = mathAbs(data.years);\n\n        return this;\n    }\n\n    function addSubtract$1(duration, input, value, direction) {\n        var other = createDuration(input, value);\n\n        duration._milliseconds += direction * other._milliseconds;\n        duration._days += direction * other._days;\n        duration._months += direction * other._months;\n\n        return duration._bubble();\n    }\n\n    // supports only 2.0-style add(1, 's') or add(duration)\n    function add$1(input, value) {\n        return addSubtract$1(this, input, value, 1);\n    }\n\n    // supports only 2.0-style subtract(1, 's') or subtract(duration)\n    function subtract$1(input, value) {\n        return addSubtract$1(this, input, value, -1);\n    }\n\n    function absCeil(number) {\n        if (number < 0) {\n            return Math.floor(number);\n        } else {\n            return Math.ceil(number);\n        }\n    }\n\n    function bubble() {\n        var milliseconds = this._milliseconds,\n            days = this._days,\n            months = this._months,\n            data = this._data,\n            seconds,\n            minutes,\n            hours,\n            years,\n            monthsFromDays;\n\n        // if we have a mix of positive and negative values, bubble down first\n        // check: https://github.com/moment/moment/issues/2166\n        if (\n            !(\n                (milliseconds >= 0 && days >= 0 && months >= 0) ||\n                (milliseconds <= 0 && days <= 0 && months <= 0)\n            )\n        ) {\n            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n            days = 0;\n            months = 0;\n        }\n\n        // The following code bubbles up values, see the tests for\n        // examples of what that means.\n        data.milliseconds = milliseconds % 1000;\n\n        seconds = absFloor(milliseconds / 1000);\n        data.seconds = seconds % 60;\n\n        minutes = absFloor(seconds / 60);\n        data.minutes = minutes % 60;\n\n        hours = absFloor(minutes / 60);\n        data.hours = hours % 24;\n\n        days += absFloor(hours / 24);\n\n        // convert days to months\n        monthsFromDays = absFloor(daysToMonths(days));\n        months += monthsFromDays;\n        days -= absCeil(monthsToDays(monthsFromDays));\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        data.days = days;\n        data.months = months;\n        data.years = years;\n\n        return this;\n    }\n\n    function daysToMonths(days) {\n        // 400 years have 146097 days (taking into account leap year rules)\n        // 400 years have 12 months === 4800\n        return (days * 4800) / 146097;\n    }\n\n    function monthsToDays(months) {\n        // the reverse of daysToMonths\n        return (months * 146097) / 4800;\n    }\n\n    function as(units) {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        var days,\n            months,\n            milliseconds = this._milliseconds;\n\n        units = normalizeUnits(units);\n\n        if (units === 'month' || units === 'quarter' || units === 'year') {\n            days = this._days + milliseconds / 864e5;\n            months = this._months + daysToMonths(days);\n            switch (units) {\n                case 'month':\n                    return months;\n                case 'quarter':\n                    return months / 3;\n                case 'year':\n                    return months / 12;\n            }\n        } else {\n            // handle milliseconds separately because of floating point math errors (issue #1867)\n            days = this._days + Math.round(monthsToDays(this._months));\n            switch (units) {\n                case 'week':\n                    return days / 7 + milliseconds / 6048e5;\n                case 'day':\n                    return days + milliseconds / 864e5;\n                case 'hour':\n                    return days * 24 + milliseconds / 36e5;\n                case 'minute':\n                    return days * 1440 + milliseconds / 6e4;\n                case 'second':\n                    return days * 86400 + milliseconds / 1000;\n                // Math.floor prevents floating point math errors here\n                case 'millisecond':\n                    return Math.floor(days * 864e5) + milliseconds;\n                default:\n                    throw new Error('Unknown unit ' + units);\n            }\n        }\n    }\n\n    // TODO: Use this.as('ms')?\n    function valueOf$1() {\n        if (!this.isValid()) {\n            return NaN;\n        }\n        return (\n            this._milliseconds +\n            this._days * 864e5 +\n            (this._months % 12) * 2592e6 +\n            toInt(this._months / 12) * 31536e6\n        );\n    }\n\n    function makeAs(alias) {\n        return function () {\n            return this.as(alias);\n        };\n    }\n\n    var asMilliseconds = makeAs('ms'),\n        asSeconds = makeAs('s'),\n        asMinutes = makeAs('m'),\n        asHours = makeAs('h'),\n        asDays = makeAs('d'),\n        asWeeks = makeAs('w'),\n        asMonths = makeAs('M'),\n        asQuarters = makeAs('Q'),\n        asYears = makeAs('y');\n\n    function clone$1() {\n        return createDuration(this);\n    }\n\n    function get$2(units) {\n        units = normalizeUnits(units);\n        return this.isValid() ? this[units + 's']() : NaN;\n    }\n\n    function makeGetter(name) {\n        return function () {\n            return this.isValid() ? this._data[name] : NaN;\n        };\n    }\n\n    var milliseconds = makeGetter('milliseconds'),\n        seconds = makeGetter('seconds'),\n        minutes = makeGetter('minutes'),\n        hours = makeGetter('hours'),\n        days = makeGetter('days'),\n        months = makeGetter('months'),\n        years = makeGetter('years');\n\n    function weeks() {\n        return absFloor(this.days() / 7);\n    }\n\n    var round = Math.round,\n        thresholds = {\n            ss: 44, // a few seconds to seconds\n            s: 45, // seconds to minute\n            m: 45, // minutes to hour\n            h: 22, // hours to day\n            d: 26, // days to month/week\n            w: null, // weeks to month\n            M: 11, // months to year\n        };\n\n    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n    }\n\n    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n        var duration = createDuration(posNegDuration).abs(),\n            seconds = round(duration.as('s')),\n            minutes = round(duration.as('m')),\n            hours = round(duration.as('h')),\n            days = round(duration.as('d')),\n            months = round(duration.as('M')),\n            weeks = round(duration.as('w')),\n            years = round(duration.as('y')),\n            a =\n                (seconds <= thresholds.ss && ['s', seconds]) ||\n                (seconds < thresholds.s && ['ss', seconds]) ||\n                (minutes <= 1 && ['m']) ||\n                (minutes < thresholds.m && ['mm', minutes]) ||\n                (hours <= 1 && ['h']) ||\n                (hours < thresholds.h && ['hh', hours]) ||\n                (days <= 1 && ['d']) ||\n                (days < thresholds.d && ['dd', days]);\n\n        if (thresholds.w != null) {\n            a =\n                a ||\n                (weeks <= 1 && ['w']) ||\n                (weeks < thresholds.w && ['ww', weeks]);\n        }\n        a = a ||\n            (months <= 1 && ['M']) ||\n            (months < thresholds.M && ['MM', months]) ||\n            (years <= 1 && ['y']) || ['yy', years];\n\n        a[2] = withoutSuffix;\n        a[3] = +posNegDuration > 0;\n        a[4] = locale;\n        return substituteTimeAgo.apply(null, a);\n    }\n\n    // This function allows you to set the rounding function for relative time strings\n    function getSetRelativeTimeRounding(roundingFunction) {\n        if (roundingFunction === undefined) {\n            return round;\n        }\n        if (typeof roundingFunction === 'function') {\n            round = roundingFunction;\n            return true;\n        }\n        return false;\n    }\n\n    // This function allows you to set a threshold for relative time strings\n    function getSetRelativeTimeThreshold(threshold, limit) {\n        if (thresholds[threshold] === undefined) {\n            return false;\n        }\n        if (limit === undefined) {\n            return thresholds[threshold];\n        }\n        thresholds[threshold] = limit;\n        if (threshold === 's') {\n            thresholds.ss = limit - 1;\n        }\n        return true;\n    }\n\n    function humanize(argWithSuffix, argThresholds) {\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var withSuffix = false,\n            th = thresholds,\n            locale,\n            output;\n\n        if (typeof argWithSuffix === 'object') {\n            argThresholds = argWithSuffix;\n            argWithSuffix = false;\n        }\n        if (typeof argWithSuffix === 'boolean') {\n            withSuffix = argWithSuffix;\n        }\n        if (typeof argThresholds === 'object') {\n            th = Object.assign({}, thresholds, argThresholds);\n            if (argThresholds.s != null && argThresholds.ss == null) {\n                th.ss = argThresholds.s - 1;\n            }\n        }\n\n        locale = this.localeData();\n        output = relativeTime$1(this, !withSuffix, th, locale);\n\n        if (withSuffix) {\n            output = locale.pastFuture(+this, output);\n        }\n\n        return locale.postformat(output);\n    }\n\n    var abs$1 = Math.abs;\n\n    function sign(x) {\n        return (x > 0) - (x < 0) || +x;\n    }\n\n    function toISOString$1() {\n        // for ISO strings we do not use the normal bubbling rules:\n        //  * milliseconds bubble up until they become hours\n        //  * days do not bubble at all\n        //  * months bubble up until they become years\n        // This is because there is no context-free conversion between hours and days\n        // (think of clock changes)\n        // and also not between days and months (28-31 days per month)\n        if (!this.isValid()) {\n            return this.localeData().invalidDate();\n        }\n\n        var seconds = abs$1(this._milliseconds) / 1000,\n            days = abs$1(this._days),\n            months = abs$1(this._months),\n            minutes,\n            hours,\n            years,\n            s,\n            total = this.asSeconds(),\n            totalSign,\n            ymSign,\n            daysSign,\n            hmsSign;\n\n        if (!total) {\n            // this is the same as C#'s (Noda) and python (isodate)...\n            // but not other JS (goog.date)\n            return 'P0D';\n        }\n\n        // 3600 seconds -> 60 minutes -> 1 hour\n        minutes = absFloor(seconds / 60);\n        hours = absFloor(minutes / 60);\n        seconds %= 60;\n        minutes %= 60;\n\n        // 12 months -> 1 year\n        years = absFloor(months / 12);\n        months %= 12;\n\n        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n        s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n        totalSign = total < 0 ? '-' : '';\n        ymSign = sign(this._months) !== sign(total) ? '-' : '';\n        daysSign = sign(this._days) !== sign(total) ? '-' : '';\n        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n        return (\n            totalSign +\n            'P' +\n            (years ? ymSign + years + 'Y' : '') +\n            (months ? ymSign + months + 'M' : '') +\n            (days ? daysSign + days + 'D' : '') +\n            (hours || minutes || seconds ? 'T' : '') +\n            (hours ? hmsSign + hours + 'H' : '') +\n            (minutes ? hmsSign + minutes + 'M' : '') +\n            (seconds ? hmsSign + s + 'S' : '')\n        );\n    }\n\n    var proto$2 = Duration.prototype;\n\n    proto$2.isValid = isValid$1;\n    proto$2.abs = abs;\n    proto$2.add = add$1;\n    proto$2.subtract = subtract$1;\n    proto$2.as = as;\n    proto$2.asMilliseconds = asMilliseconds;\n    proto$2.asSeconds = asSeconds;\n    proto$2.asMinutes = asMinutes;\n    proto$2.asHours = asHours;\n    proto$2.asDays = asDays;\n    proto$2.asWeeks = asWeeks;\n    proto$2.asMonths = asMonths;\n    proto$2.asQuarters = asQuarters;\n    proto$2.asYears = asYears;\n    proto$2.valueOf = valueOf$1;\n    proto$2._bubble = bubble;\n    proto$2.clone = clone$1;\n    proto$2.get = get$2;\n    proto$2.milliseconds = milliseconds;\n    proto$2.seconds = seconds;\n    proto$2.minutes = minutes;\n    proto$2.hours = hours;\n    proto$2.days = days;\n    proto$2.weeks = weeks;\n    proto$2.months = months;\n    proto$2.years = years;\n    proto$2.humanize = humanize;\n    proto$2.toISOString = toISOString$1;\n    proto$2.toString = toISOString$1;\n    proto$2.toJSON = toISOString$1;\n    proto$2.locale = locale;\n    proto$2.localeData = localeData;\n\n    proto$2.toIsoString = deprecate(\n        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n        toISOString$1\n    );\n    proto$2.lang = lang;\n\n    // FORMATTING\n\n    addFormatToken('X', 0, 0, 'unix');\n    addFormatToken('x', 0, 0, 'valueOf');\n\n    // PARSING\n\n    addRegexToken('x', matchSigned);\n    addRegexToken('X', matchTimestamp);\n    addParseToken('X', function (input, array, config) {\n        config._d = new Date(parseFloat(input) * 1000);\n    });\n    addParseToken('x', function (input, array, config) {\n        config._d = new Date(toInt(input));\n    });\n\n    //! moment.js\n\n    hooks.version = '2.27.0';\n\n    setHookCallback(createLocal);\n\n    hooks.fn = proto;\n    hooks.min = min;\n    hooks.max = max;\n    hooks.now = now;\n    hooks.utc = createUTC;\n    hooks.unix = createUnix;\n    hooks.months = listMonths;\n    hooks.isDate = isDate;\n    hooks.locale = getSetGlobalLocale;\n    hooks.invalid = createInvalid;\n    hooks.duration = createDuration;\n    hooks.isMoment = isMoment;\n    hooks.weekdays = listWeekdays;\n    hooks.parseZone = createInZone;\n    hooks.localeData = getLocale;\n    hooks.isDuration = isDuration;\n    hooks.monthsShort = listMonthsShort;\n    hooks.weekdaysMin = listWeekdaysMin;\n    hooks.defineLocale = defineLocale;\n    hooks.updateLocale = updateLocale;\n    hooks.locales = listLocales;\n    hooks.weekdaysShort = listWeekdaysShort;\n    hooks.normalizeUnits = normalizeUnits;\n    hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n    hooks.calendarFormat = getCalendarFormat;\n    hooks.prototype = proto;\n\n    // currently HTML5 input type only supports 24-hour formats\n    hooks.HTML5_FMT = {\n        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n        DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n        TIME: 'HH:mm', // <input type=\"time\" />\n        TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n        TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n        WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n        MONTH: 'YYYY-MM', // <input type=\"month\" />\n    };\n\n    return hooks;\n\n})));\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/react-dom.js",
    "content": "/** @license React v16.9.0\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react')) :\n\ttypeof define === 'function' && define.amd ? define(['react'], factory) :\n\t(global.ReactDOM = factory(global.React));\n}(this, (function (React) { 'use strict';\n\n// Do not require this module directly! Use normal `invariant` calls with\n// template literal strings. The messages will be converted to ReactError during\n// build, and in production they will be minified.\n\n// Do not require this module directly! Use normal `invariant` calls with\n// template literal strings. The messages will be converted to ReactError during\n// build, and in production they will be minified.\n\nfunction ReactError(error) {\n  error.name = 'Invariant Violation';\n  return error;\n}\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\n(function () {\n  if (!React) {\n    {\n      throw ReactError(Error('ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.'));\n    }\n  }\n})();\n\n/**\n * Injectable ordering of event plugins.\n */\nvar eventPluginOrder = null;\n\n/**\n * Injectable mapping from names to event plugin modules.\n */\nvar namesToPlugins = {};\n\n/**\n * Recomputes the plugin list using the injected plugins and plugin ordering.\n *\n * @private\n */\nfunction recomputePluginOrdering() {\n  if (!eventPluginOrder) {\n    // Wait until an `eventPluginOrder` is injected.\n    return;\n  }\n  for (var pluginName in namesToPlugins) {\n    var pluginModule = namesToPlugins[pluginName];\n    var pluginIndex = eventPluginOrder.indexOf(pluginName);\n    (function () {\n      if (!(pluginIndex > -1)) {\n        {\n          throw ReactError(Error('EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `' + pluginName + '`.'));\n        }\n      }\n    })();\n    if (plugins[pluginIndex]) {\n      continue;\n    }\n    (function () {\n      if (!pluginModule.extractEvents) {\n        {\n          throw ReactError(Error('EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `' + pluginName + '` does not.'));\n        }\n      }\n    })();\n    plugins[pluginIndex] = pluginModule;\n    var publishedEvents = pluginModule.eventTypes;\n    for (var eventName in publishedEvents) {\n      (function () {\n        if (!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName)) {\n          {\n            throw ReactError(Error('EventPluginRegistry: Failed to publish event `' + eventName + '` for plugin `' + pluginName + '`.'));\n          }\n        }\n      })();\n    }\n  }\n}\n\n/**\n * Publishes an event so that it can be dispatched by the supplied plugin.\n *\n * @param {object} dispatchConfig Dispatch configuration for the event.\n * @param {object} PluginModule Plugin publishing the event.\n * @return {boolean} True if the event was successfully published.\n * @private\n */\nfunction publishEventForPlugin(dispatchConfig, pluginModule, eventName) {\n  (function () {\n    if (!!eventNameDispatchConfigs.hasOwnProperty(eventName)) {\n      {\n        throw ReactError(Error('EventPluginHub: More than one plugin attempted to publish the same event name, `' + eventName + '`.'));\n      }\n    }\n  })();\n  eventNameDispatchConfigs[eventName] = dispatchConfig;\n\n  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;\n  if (phasedRegistrationNames) {\n    for (var phaseName in phasedRegistrationNames) {\n      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {\n        var phasedRegistrationName = phasedRegistrationNames[phaseName];\n        publishRegistrationName(phasedRegistrationName, pluginModule, eventName);\n      }\n    }\n    return true;\n  } else if (dispatchConfig.registrationName) {\n    publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);\n    return true;\n  }\n  return false;\n}\n\n/**\n * Publishes a registration name that is used to identify dispatched events.\n *\n * @param {string} registrationName Registration name to add.\n * @param {object} PluginModule Plugin publishing the event.\n * @private\n */\nfunction publishRegistrationName(registrationName, pluginModule, eventName) {\n  (function () {\n    if (!!registrationNameModules[registrationName]) {\n      {\n        throw ReactError(Error('EventPluginHub: More than one plugin attempted to publish the same registration name, `' + registrationName + '`.'));\n      }\n    }\n  })();\n  registrationNameModules[registrationName] = pluginModule;\n  registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;\n\n  {\n    var lowerCasedName = registrationName.toLowerCase();\n    possibleRegistrationNames[lowerCasedName] = registrationName;\n\n    if (registrationName === 'onDoubleClick') {\n      possibleRegistrationNames.ondblclick = registrationName;\n    }\n  }\n}\n\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 */\nvar plugins = [];\n\n/**\n * Mapping from event name to dispatch config\n */\nvar eventNameDispatchConfigs = {};\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\nvar registrationNameDependencies = {};\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 */\nfunction injectEventPluginOrder(injectedEventPluginOrder) {\n  (function () {\n    if (!!eventPluginOrder) {\n      {\n        throw ReactError(Error('EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.'));\n      }\n    }\n  })();\n  // Clone the ordering so it cannot be dynamically mutated.\n  eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);\n  recomputePluginOrdering();\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 */\nfunction injectEventPluginsByName(injectedNamesToPlugins) {\n  var isOrderingDirty = false;\n  for (var pluginName in injectedNamesToPlugins) {\n    if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {\n      continue;\n    }\n    var pluginModule = injectedNamesToPlugins[pluginName];\n    if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {\n      (function () {\n        if (!!namesToPlugins[pluginName]) {\n          {\n            throw ReactError(Error('EventPluginRegistry: Cannot inject two different event plugins using the same name, `' + pluginName + '`.'));\n          }\n        }\n      })();\n      namesToPlugins[pluginName] = pluginModule;\n      isOrderingDirty = true;\n    }\n  }\n  if (isOrderingDirty) {\n    recomputePluginOrdering();\n  }\n}\n\nvar invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {\n  var funcArgs = Array.prototype.slice.call(arguments, 3);\n  try {\n    func.apply(context, funcArgs);\n  } catch (error) {\n    this.onError(error);\n  }\n};\n\n{\n  // In DEV mode, we swap out invokeGuardedCallback for a special version\n  // that plays more nicely with the browser's DevTools. The idea is to preserve\n  // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n  // functions in invokeGuardedCallback, and the production version of\n  // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n  // like caught exceptions, and the DevTools won't pause unless the developer\n  // takes the extra step of enabling pause on caught exceptions. This is\n  // unintuitive, though, because even though React has caught the error, from\n  // the developer's perspective, the error is uncaught.\n  //\n  // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n  // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n  // DOM node, and call the user-provided callback from inside an event handler\n  // for that fake event. If the callback throws, the error is \"captured\" using\n  // a global event handler. But because the error happens in a different\n  // event loop context, it does not interrupt the normal program flow.\n  // Effectively, this gives us try-catch behavior without actually using\n  // try-catch. Neat!\n\n  // Check that the browser supports the APIs we need to implement our special\n  // DEV version of invokeGuardedCallback\n  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n    var fakeNode = document.createElement('react');\n\n    var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {\n      // If document doesn't exist we know for sure we will crash in this method\n      // when we call document.createEvent(). However this can cause confusing\n      // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n      // So we preemptively throw with a better message instead.\n      (function () {\n        if (!(typeof document !== 'undefined')) {\n          {\n            throw ReactError(Error('The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.'));\n          }\n        }\n      })();\n      var evt = document.createEvent('Event');\n\n      // Keeps track of whether the user-provided callback threw an error. We\n      // set this to true at the beginning, then set it to false right after\n      // calling the function. If the function errors, `didError` will never be\n      // set to false. This strategy works even if the browser is flaky and\n      // fails to call our global error handler, because it doesn't rely on\n      // the error event at all.\n      var didError = true;\n\n      // Keeps track of the value of window.event so that we can reset it\n      // during the callback to let user code access window.event in the\n      // browsers that support it.\n      var windowEvent = window.event;\n\n      // Keeps track of the descriptor of window.event to restore it after event\n      // dispatching: https://github.com/facebook/react/issues/13688\n      var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n      // Create an event handler for our fake event. We will synchronously\n      // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n      // call the user-provided callback.\n      var funcArgs = Array.prototype.slice.call(arguments, 3);\n      function callCallback() {\n        // We immediately remove the callback from event listeners so that\n        // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n        // nested call would trigger the fake event handlers of any call higher\n        // in the stack.\n        fakeNode.removeEventListener(evtType, callCallback, false);\n\n        // We check for window.hasOwnProperty('event') to prevent the\n        // window.event assignment in both IE <= 10 as they throw an error\n        // \"Member not found\" in strict mode, and in Firefox which does not\n        // support window.event.\n        if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n          window.event = windowEvent;\n        }\n\n        func.apply(context, funcArgs);\n        didError = false;\n      }\n\n      // Create a global error event handler. We use this to capture the value\n      // that was thrown. It's possible that this error handler will fire more\n      // than once; for example, if non-React code also calls `dispatchEvent`\n      // and a handler for that event throws. We should be resilient to most of\n      // those cases. Even if our error event handler fires more than once, the\n      // last error event is always used. If the callback actually does error,\n      // we know that the last error event is the correct one, because it's not\n      // possible for anything else to have happened in between our callback\n      // erroring and the code that follows the `dispatchEvent` call below. If\n      // the callback doesn't error, but the error event was fired, we know to\n      // ignore it because `didError` will be false, as described above.\n      var error = void 0;\n      // Use this to track whether the error event is ever called.\n      var didSetError = false;\n      var isCrossOriginError = false;\n\n      function handleWindowError(event) {\n        error = event.error;\n        didSetError = true;\n        if (error === null && event.colno === 0 && event.lineno === 0) {\n          isCrossOriginError = true;\n        }\n        if (event.defaultPrevented) {\n          // Some other error handler has prevented default.\n          // Browsers silence the error report if this happens.\n          // We'll remember this to later decide whether to log it or not.\n          if (error != null && typeof error === 'object') {\n            try {\n              error._suppressLogging = true;\n            } catch (inner) {\n              // Ignore.\n            }\n          }\n        }\n      }\n\n      // Create a fake event type.\n      var evtType = 'react-' + (name ? name : 'invokeguardedcallback');\n\n      // Attach our event handlers\n      window.addEventListener('error', handleWindowError);\n      fakeNode.addEventListener(evtType, callCallback, false);\n\n      // Synchronously dispatch our fake event. If the user-provided function\n      // errors, it will trigger our global error handler.\n      evt.initEvent(evtType, false, false);\n      fakeNode.dispatchEvent(evt);\n\n      if (windowEventDescriptor) {\n        Object.defineProperty(window, 'event', windowEventDescriptor);\n      }\n\n      if (didError) {\n        if (!didSetError) {\n          // The callback errored, but the error event never fired.\n          error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n        } else if (isCrossOriginError) {\n          error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');\n        }\n        this.onError(error);\n      }\n\n      // Remove our event listeners\n      window.removeEventListener('error', handleWindowError);\n    };\n\n    invokeGuardedCallbackImpl = invokeGuardedCallbackDev;\n  }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\n// Used by Fiber to simulate a try-catch.\nvar hasError = false;\nvar caughtError = null;\n\n// Used by event system to capture/rethrow the first error.\nvar hasRethrowError = false;\nvar rethrowError = null;\n\nvar reporter = {\n  onError: function (error) {\n    hasError = true;\n    caughtError = error;\n  }\n};\n\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n  hasError = false;\n  caughtError = null;\n  invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n  invokeGuardedCallback.apply(this, arguments);\n  if (hasError) {\n    var error = clearCaughtError();\n    if (!hasRethrowError) {\n      hasRethrowError = true;\n      rethrowError = error;\n    }\n  }\n}\n\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\nfunction rethrowCaughtError() {\n  if (hasRethrowError) {\n    var error = rethrowError;\n    hasRethrowError = false;\n    rethrowError = null;\n    throw error;\n  }\n}\n\nfunction hasCaughtError() {\n  return hasError;\n}\n\nfunction clearCaughtError() {\n  if (hasError) {\n    var error = caughtError;\n    hasError = false;\n    caughtError = null;\n    return error;\n  } else {\n    (function () {\n      {\n        {\n          throw ReactError(Error('clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n}\n\n/**\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\nvar getFiberCurrentPropsFromNode = null;\nvar getInstanceFromNode = null;\nvar getNodeFromInstance = null;\n\nfunction setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {\n  getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;\n  getInstanceFromNode = getInstanceFromNodeImpl;\n  getNodeFromInstance = getNodeFromInstanceImpl;\n  {\n    !(getNodeFromInstance && getInstanceFromNode) ? warningWithoutStack$1(false, 'EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;\n  }\n}\n\nvar validateEventDispatches = void 0;\n{\n  validateEventDispatches = function (event) {\n    var dispatchListeners = event._dispatchListeners;\n    var dispatchInstances = event._dispatchInstances;\n\n    var listenersIsArr = Array.isArray(dispatchListeners);\n    var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;\n\n    var instancesIsArr = Array.isArray(dispatchInstances);\n    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;\n\n    !(instancesIsArr === listenersIsArr && instancesLen === listenersLen) ? warningWithoutStack$1(false, 'EventPluginUtils: Invalid `event`.') : void 0;\n  };\n}\n\n/**\n * Dispatch the event to the listener.\n * @param {SyntheticEvent} event SyntheticEvent to handle\n * @param {function} listener Application-level callback\n * @param {*} inst Internal component instance\n */\nfunction executeDispatch(event, listener, inst) {\n  var type = event.type || 'unknown-event';\n  event.currentTarget = getNodeFromInstance(inst);\n  invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n  event.currentTarget = null;\n}\n\n/**\n * Standard/simple iteration through an event's collected dispatches.\n */\nfunction executeDispatchesInOrder(event) {\n  var dispatchListeners = event._dispatchListeners;\n  var dispatchInstances = event._dispatchInstances;\n  {\n    validateEventDispatches(event);\n  }\n  if (Array.isArray(dispatchListeners)) {\n    for (var i = 0; i < dispatchListeners.length; i++) {\n      if (event.isPropagationStopped()) {\n        break;\n      }\n      // Listeners and Instances are two parallel arrays that are always in sync.\n      executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);\n    }\n  } else if (dispatchListeners) {\n    executeDispatch(event, dispatchListeners, dispatchInstances);\n  }\n  event._dispatchListeners = null;\n  event._dispatchInstances = null;\n}\n\n/**\n * @see executeDispatchesInOrderStopAtTrueImpl\n */\n\n\n/**\n * Execution of a \"direct\" dispatch - there must be at most one dispatch\n * accumulated on the event or it is considered an error. It doesn't really make\n * sense for an event with multiple dispatches (bubbled) to keep track of the\n * return values at each dispatch execution, but it does tend to make sense when\n * dealing with \"direct\" dispatches.\n *\n * @return {*} The return value of executing the single dispatch.\n */\n\n\n/**\n * @param {SyntheticEvent} event\n * @return {boolean} True iff number of dispatches accumulated is greater than 0.\n */\n\n/**\n * Accumulates items that must not be null or undefined into the first one. This\n * is used to conserve memory by avoiding array allocations, and thus sacrifices\n * API cleanness. Since `current` can be null before being passed in and not\n * null after this function, make sure to assign it back to `current`:\n *\n * `a = accumulateInto(a, b);`\n *\n * This API should be sparingly used. Try `accumulate` for something cleaner.\n *\n * @return {*|array<*>} An accumulation of items.\n */\n\nfunction accumulateInto(current, next) {\n  (function () {\n    if (!(next != null)) {\n      {\n        throw ReactError(Error('accumulateInto(...): Accumulated items must not be null or undefined.'));\n      }\n    }\n  })();\n\n  if (current == null) {\n    return next;\n  }\n\n  // Both are not empty. Warning: Never call x.concat(y) when you are not\n  // certain that x is an Array (x could be a string with concat method).\n  if (Array.isArray(current)) {\n    if (Array.isArray(next)) {\n      current.push.apply(current, next);\n      return current;\n    }\n    current.push(next);\n    return current;\n  }\n\n  if (Array.isArray(next)) {\n    // A bit too dangerous to mutate `next`.\n    return [current].concat(next);\n  }\n\n  return [current, next];\n}\n\n/**\n * @param {array} arr an \"accumulation\" of items which is either an Array or\n * a single item. Useful when paired with the `accumulate` module. This is a\n * simple utility that allows us to reason about a collection of items, but\n * handling the case when there is exactly one item (and we do not need to\n * allocate an array).\n * @param {function} cb Callback invoked with each element or a collection.\n * @param {?} [scope] Scope used as `this` in a callback.\n */\nfunction forEachAccumulated(arr, cb, scope) {\n  if (Array.isArray(arr)) {\n    arr.forEach(cb, scope);\n  } else if (arr) {\n    cb.call(scope, arr);\n  }\n}\n\n/**\n * Internal queue of events that have accumulated their dispatches and are\n * waiting to have their dispatches executed.\n */\nvar eventQueue = null;\n\n/**\n * Dispatches an event and releases it back into the pool, unless persistent.\n *\n * @param {?object} event Synthetic event to be dispatched.\n * @private\n */\nvar executeDispatchesAndRelease = function (event) {\n  if (event) {\n    executeDispatchesInOrder(event);\n\n    if (!event.isPersistent()) {\n      event.constructor.release(event);\n    }\n  }\n};\nvar executeDispatchesAndReleaseTopLevel = function (e) {\n  return executeDispatchesAndRelease(e);\n};\n\nfunction runEventsInBatch(events) {\n  if (events !== null) {\n    eventQueue = accumulateInto(eventQueue, events);\n  }\n\n  // Set `eventQueue` to null before processing it so that we can tell if more\n  // events get enqueued while processing.\n  var processingEventQueue = eventQueue;\n  eventQueue = null;\n\n  if (!processingEventQueue) {\n    return;\n  }\n\n  forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);\n  (function () {\n    if (!!eventQueue) {\n      {\n        throw ReactError(Error('processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.'));\n      }\n    }\n  })();\n  // This would be a good time to rethrow if any of the event handlers threw.\n  rethrowCaughtError();\n}\n\nfunction isInteractive(tag) {\n  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n  switch (name) {\n    case 'onClick':\n    case 'onClickCapture':\n    case 'onDoubleClick':\n    case 'onDoubleClickCapture':\n    case 'onMouseDown':\n    case 'onMouseDownCapture':\n    case 'onMouseMove':\n    case 'onMouseMoveCapture':\n    case 'onMouseUp':\n    case 'onMouseUpCapture':\n      return !!(props.disabled && isInteractive(type));\n    default:\n      return false;\n  }\n}\n\n/**\n * This is a unified interface for event plugins to be installed and configured.\n *\n * Event plugins can implement the following properties:\n *\n *   `extractEvents` {function(string, DOMEventTarget, string, object): *}\n *     Required. When a top-level event is fired, this method is expected to\n *     extract synthetic events that will in turn be queued and dispatched.\n *\n *   `eventTypes` {object}\n *     Optional, plugins that fire events must publish a mapping of registration\n *     names that are used to register listeners. Values of this mapping must\n *     be objects that contain `registrationName` or `phasedRegistrationNames`.\n *\n *   `executeDispatch` {function(object, function, string)}\n *     Optional, allows plugins to override how an event gets dispatched. By\n *     default, the listener is simply invoked.\n *\n * Each plugin that is injected into `EventsPluginHub` is immediately operable.\n *\n * @public\n */\n\n/**\n * Methods for injecting dependencies.\n */\nvar injection = {\n  /**\n   * @param {array} InjectedEventPluginOrder\n   * @public\n   */\n  injectEventPluginOrder: injectEventPluginOrder,\n\n  /**\n   * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n   */\n  injectEventPluginsByName: injectEventPluginsByName\n};\n\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\nfunction getListener(inst, registrationName) {\n  var listener = void 0;\n\n  // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not\n  // live here; needs to be moved to a better place soon\n  var stateNode = inst.stateNode;\n  if (!stateNode) {\n    // Work in progress (ex: onload events in incremental mode).\n    return null;\n  }\n  var props = getFiberCurrentPropsFromNode(stateNode);\n  if (!props) {\n    // Work in progress.\n    return null;\n  }\n  listener = props[registrationName];\n  if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n    return null;\n  }\n  (function () {\n    if (!(!listener || typeof listener === 'function')) {\n      {\n        throw ReactError(Error('Expected `' + registrationName + '` listener to be a function, instead got a value of `' + typeof listener + '` type.'));\n      }\n    }\n  })();\n  return listener;\n}\n\n/**\n * Allows registered plugins an opportunity to extract events from top-level\n * native browser events.\n *\n * @return {*} An accumulation of synthetic events.\n * @internal\n */\nfunction extractPluginEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var events = null;\n  for (var i = 0; i < plugins.length; i++) {\n    // Not every plugin in the ordering may be loaded at runtime.\n    var possiblePlugin = plugins[i];\n    if (possiblePlugin) {\n      var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n      if (extractedEvents) {\n        events = accumulateInto(events, extractedEvents);\n      }\n    }\n  }\n  return events;\n}\n\nfunction runExtractedPluginEventsInBatch(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var events = extractPluginEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n  runEventsInBatch(events);\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedSuspenseComponent = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactInternalInstance$' + randomKey;\nvar internalEventHandlersKey = '__reactEventHandlers$' + randomKey;\n\nfunction precacheFiberNode(hostInst, node) {\n  node[internalInstanceKey] = hostInst;\n}\n\n/**\n * Given a DOM node, return the closest ReactDOMComponent or\n * ReactDOMTextComponent instance ancestor.\n */\nfunction getClosestInstanceFromNode(node) {\n  if (node[internalInstanceKey]) {\n    return node[internalInstanceKey];\n  }\n\n  while (!node[internalInstanceKey]) {\n    if (node.parentNode) {\n      node = node.parentNode;\n    } else {\n      // Top of the tree. This node must not be part of a React tree (or is\n      // unmounted, potentially).\n      return null;\n    }\n  }\n\n  var inst = node[internalInstanceKey];\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber, this will always be the deepest root.\n    return inst;\n  }\n\n  return null;\n}\n\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\nfunction getInstanceFromNode$1(node) {\n  var inst = node[internalInstanceKey];\n  if (inst) {\n    if (inst.tag === HostComponent || inst.tag === HostText) {\n      return inst;\n    } else {\n      return null;\n    }\n  }\n  return null;\n}\n\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\nfunction getNodeFromInstance$1(inst) {\n  if (inst.tag === HostComponent || inst.tag === HostText) {\n    // In Fiber this, is just the state node right now. We assume it will be\n    // a host component or host text.\n    return inst.stateNode;\n  }\n\n  // Without this first invariant, passing a non-DOM-component triggers the next\n  // invariant for a missing parent, which is super confusing.\n  (function () {\n    {\n      {\n        throw ReactError(Error('getNodeFromInstance: Invalid argument.'));\n      }\n    }\n  })();\n}\n\nfunction getFiberCurrentPropsFromNode$1(node) {\n  return node[internalEventHandlersKey] || null;\n}\n\nfunction updateFiberProps(node, props) {\n  node[internalEventHandlersKey] = props;\n}\n\nfunction getParent(inst) {\n  do {\n    inst = inst.return;\n    // TODO: If this is a HostRoot we might want to bail out.\n    // That is depending on if we want nested subtrees (layers) to bubble\n    // events to their parent. We could also go through parentNode on the\n    // host node but that wouldn't work for React Native and doesn't let us\n    // do the portal feature.\n  } while (inst && inst.tag !== HostComponent);\n  if (inst) {\n    return inst;\n  }\n  return null;\n}\n\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\nfunction getLowestCommonAncestor(instA, instB) {\n  var depthA = 0;\n  for (var tempA = instA; tempA; tempA = getParent(tempA)) {\n    depthA++;\n  }\n  var depthB = 0;\n  for (var tempB = instB; tempB; tempB = getParent(tempB)) {\n    depthB++;\n  }\n\n  // If A is deeper, crawl up.\n  while (depthA - depthB > 0) {\n    instA = getParent(instA);\n    depthA--;\n  }\n\n  // If B is deeper, crawl up.\n  while (depthB - depthA > 0) {\n    instB = getParent(instB);\n    depthB--;\n  }\n\n  // Walk in lockstep until we find a match.\n  var depth = depthA;\n  while (depth--) {\n    if (instA === instB || instA === instB.alternate) {\n      return instA;\n    }\n    instA = getParent(instA);\n    instB = getParent(instB);\n  }\n  return null;\n}\n\n/**\n * Return if A is an ancestor of B.\n */\n\n\n/**\n * Return the parent instance of the passed-in instance.\n */\n\n\n/**\n * Simulates the traversal of a two-phase, capture/bubble event dispatch.\n */\nfunction traverseTwoPhase(inst, fn, arg) {\n  var path = [];\n  while (inst) {\n    path.push(inst);\n    inst = getParent(inst);\n  }\n  var i = void 0;\n  for (i = path.length; i-- > 0;) {\n    fn(path[i], 'captured', arg);\n  }\n  for (i = 0; i < path.length; i++) {\n    fn(path[i], 'bubbled', arg);\n  }\n}\n\n/**\n * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that\n * should would receive a `mouseEnter` or `mouseLeave` event.\n *\n * Does not invoke the callback on the nearest common ancestor because nothing\n * \"entered\" or \"left\" that element.\n */\nfunction traverseEnterLeave(from, to, fn, argFrom, argTo) {\n  var common = from && to ? getLowestCommonAncestor(from, to) : null;\n  var pathFrom = [];\n  while (true) {\n    if (!from) {\n      break;\n    }\n    if (from === common) {\n      break;\n    }\n    var alternate = from.alternate;\n    if (alternate !== null && alternate === common) {\n      break;\n    }\n    pathFrom.push(from);\n    from = getParent(from);\n  }\n  var pathTo = [];\n  while (true) {\n    if (!to) {\n      break;\n    }\n    if (to === common) {\n      break;\n    }\n    var _alternate = to.alternate;\n    if (_alternate !== null && _alternate === common) {\n      break;\n    }\n    pathTo.push(to);\n    to = getParent(to);\n  }\n  for (var i = 0; i < pathFrom.length; i++) {\n    fn(pathFrom[i], 'bubbled', argFrom);\n  }\n  for (var _i = pathTo.length; _i-- > 0;) {\n    fn(pathTo[_i], 'captured', argTo);\n  }\n}\n\n/**\n * Some event types have a notion of different registration names for different\n * \"phases\" of propagation. This finds listeners by a given phase.\n */\nfunction listenerAtPhase(inst, event, propagationPhase) {\n  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];\n  return getListener(inst, registrationName);\n}\n\n/**\n * A small set of propagation patterns, each of which will accept a small amount\n * of information, and generate a set of \"dispatch ready event objects\" - which\n * are sets of events that have already been annotated with a set of dispatched\n * listener functions/ids. The API is designed this way to discourage these\n * propagation strategies from actually executing the dispatches, since we\n * always want to collect the entire set of dispatches before executing even a\n * single one.\n */\n\n/**\n * Tags a `SyntheticEvent` with dispatched listeners. Creating this function\n * here, allows us to not have to bind or create functions for each event.\n * Mutating the event's members allows us to not have to create a wrapping\n * \"dispatch\" object that pairs the event with the listener.\n */\nfunction accumulateDirectionalDispatches(inst, phase, event) {\n  {\n    !inst ? warningWithoutStack$1(false, 'Dispatching inst must not be null') : void 0;\n  }\n  var listener = listenerAtPhase(inst, event, phase);\n  if (listener) {\n    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n  }\n}\n\n/**\n * Collect dispatches (must be entirely collected before dispatching - see unit\n * tests). Lazily allocate the array to conserve memory.  We must loop through\n * each event and perform the traversal for each one. We cannot perform a\n * single traversal for the entire collection of events because each event may\n * have a different target.\n */\nfunction accumulateTwoPhaseDispatchesSingle(event) {\n  if (event && event.dispatchConfig.phasedRegistrationNames) {\n    traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);\n  }\n}\n\n/**\n * Accumulates without regard to direction, does not look for phased\n * registration names. Same as `accumulateDirectDispatchesSingle` but without\n * requiring that the `dispatchMarker` be the same as the dispatched ID.\n */\nfunction accumulateDispatches(inst, ignoredDirection, event) {\n  if (inst && event && event.dispatchConfig.registrationName) {\n    var registrationName = event.dispatchConfig.registrationName;\n    var listener = getListener(inst, registrationName);\n    if (listener) {\n      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);\n      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);\n    }\n  }\n}\n\n/**\n * Accumulates dispatches on an `SyntheticEvent`, but only for the\n * `dispatchMarker`.\n * @param {SyntheticEvent} event\n */\nfunction accumulateDirectDispatchesSingle(event) {\n  if (event && event.dispatchConfig.registrationName) {\n    accumulateDispatches(event._targetInst, null, event);\n  }\n}\n\nfunction accumulateTwoPhaseDispatches(events) {\n  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);\n}\n\n\n\nfunction accumulateEnterLeaveDispatches(leave, enter, from, to) {\n  traverseEnterLeave(from, to, accumulateDispatches, leave, enter);\n}\n\nfunction accumulateDirectDispatches(events) {\n  forEachAccumulated(events, accumulateDirectDispatchesSingle);\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\n// Do not use the below two methods directly!\n// Instead use constants exported from DOMTopLevelEventTypes in ReactDOM.\n// (It is the only module that is allowed to access these methods.)\n\nfunction unsafeCastStringToDOMTopLevelType(topLevelType) {\n  return topLevelType;\n}\n\nfunction unsafeCastDOMTopLevelTypeToString(topLevelType) {\n  return topLevelType;\n}\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n  prefixes['Moz' + styleProp] = 'moz' + eventName;\n\n  return prefixes;\n}\n\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\nvar vendorPrefixes = {\n  animationend: makePrefixMap('Animation', 'AnimationEnd'),\n  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n  animationstart: makePrefixMap('Animation', 'AnimationStart'),\n  transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\nvar prefixedEventNames = {};\n\n/**\n * Element to check for prefixes on.\n */\nvar style = {};\n\n/**\n * Bootstrap if a DOM exists.\n */\nif (canUseDOM) {\n  style = document.createElement('div').style;\n\n  // On some platforms, in particular some releases of Android 4.x,\n  // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n  // style object but the events that fire will still be prefixed, so we need\n  // to check if the un-prefixed events are usable, and if not remove them from the map.\n  if (!('AnimationEvent' in window)) {\n    delete vendorPrefixes.animationend.animation;\n    delete vendorPrefixes.animationiteration.animation;\n    delete vendorPrefixes.animationstart.animation;\n  }\n\n  // Same as above\n  if (!('TransitionEvent' in window)) {\n    delete vendorPrefixes.transitionend.transition;\n  }\n}\n\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  } else if (!vendorPrefixes[eventName]) {\n    return eventName;\n  }\n\n  var prefixMap = vendorPrefixes[eventName];\n\n  for (var styleProp in prefixMap) {\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n      return prefixedEventNames[eventName] = prefixMap[styleProp];\n    }\n  }\n\n  return eventName;\n}\n\n/**\n * To identify top level events in ReactDOM, we use constants defined by this\n * module. This is the only module that uses the unsafe* methods to express\n * that the constants actually correspond to the browser event names. This lets\n * us save some bundle size by avoiding a top level type -> event name map.\n * The rest of ReactDOM code should import top level types from this file.\n */\nvar TOP_ABORT = unsafeCastStringToDOMTopLevelType('abort');\nvar TOP_ANIMATION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationend'));\nvar TOP_ANIMATION_ITERATION = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationiteration'));\nvar TOP_ANIMATION_START = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationstart'));\nvar TOP_BLUR = unsafeCastStringToDOMTopLevelType('blur');\nvar TOP_CAN_PLAY = unsafeCastStringToDOMTopLevelType('canplay');\nvar TOP_CAN_PLAY_THROUGH = unsafeCastStringToDOMTopLevelType('canplaythrough');\nvar TOP_CANCEL = unsafeCastStringToDOMTopLevelType('cancel');\nvar TOP_CHANGE = unsafeCastStringToDOMTopLevelType('change');\nvar TOP_CLICK = unsafeCastStringToDOMTopLevelType('click');\nvar TOP_CLOSE = unsafeCastStringToDOMTopLevelType('close');\nvar TOP_COMPOSITION_END = unsafeCastStringToDOMTopLevelType('compositionend');\nvar TOP_COMPOSITION_START = unsafeCastStringToDOMTopLevelType('compositionstart');\nvar TOP_COMPOSITION_UPDATE = unsafeCastStringToDOMTopLevelType('compositionupdate');\nvar TOP_CONTEXT_MENU = unsafeCastStringToDOMTopLevelType('contextmenu');\nvar TOP_COPY = unsafeCastStringToDOMTopLevelType('copy');\nvar TOP_CUT = unsafeCastStringToDOMTopLevelType('cut');\nvar TOP_DOUBLE_CLICK = unsafeCastStringToDOMTopLevelType('dblclick');\nvar TOP_AUX_CLICK = unsafeCastStringToDOMTopLevelType('auxclick');\nvar TOP_DRAG = unsafeCastStringToDOMTopLevelType('drag');\nvar TOP_DRAG_END = unsafeCastStringToDOMTopLevelType('dragend');\nvar TOP_DRAG_ENTER = unsafeCastStringToDOMTopLevelType('dragenter');\nvar TOP_DRAG_EXIT = unsafeCastStringToDOMTopLevelType('dragexit');\nvar TOP_DRAG_LEAVE = unsafeCastStringToDOMTopLevelType('dragleave');\nvar TOP_DRAG_OVER = unsafeCastStringToDOMTopLevelType('dragover');\nvar TOP_DRAG_START = unsafeCastStringToDOMTopLevelType('dragstart');\nvar TOP_DROP = unsafeCastStringToDOMTopLevelType('drop');\nvar TOP_DURATION_CHANGE = unsafeCastStringToDOMTopLevelType('durationchange');\nvar TOP_EMPTIED = unsafeCastStringToDOMTopLevelType('emptied');\nvar TOP_ENCRYPTED = unsafeCastStringToDOMTopLevelType('encrypted');\nvar TOP_ENDED = unsafeCastStringToDOMTopLevelType('ended');\nvar TOP_ERROR = unsafeCastStringToDOMTopLevelType('error');\nvar TOP_FOCUS = unsafeCastStringToDOMTopLevelType('focus');\nvar TOP_GOT_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('gotpointercapture');\nvar TOP_INPUT = unsafeCastStringToDOMTopLevelType('input');\nvar TOP_INVALID = unsafeCastStringToDOMTopLevelType('invalid');\nvar TOP_KEY_DOWN = unsafeCastStringToDOMTopLevelType('keydown');\nvar TOP_KEY_PRESS = unsafeCastStringToDOMTopLevelType('keypress');\nvar TOP_KEY_UP = unsafeCastStringToDOMTopLevelType('keyup');\nvar TOP_LOAD = unsafeCastStringToDOMTopLevelType('load');\nvar TOP_LOAD_START = unsafeCastStringToDOMTopLevelType('loadstart');\nvar TOP_LOADED_DATA = unsafeCastStringToDOMTopLevelType('loadeddata');\nvar TOP_LOADED_METADATA = unsafeCastStringToDOMTopLevelType('loadedmetadata');\nvar TOP_LOST_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('lostpointercapture');\nvar TOP_MOUSE_DOWN = unsafeCastStringToDOMTopLevelType('mousedown');\nvar TOP_MOUSE_MOVE = unsafeCastStringToDOMTopLevelType('mousemove');\nvar TOP_MOUSE_OUT = unsafeCastStringToDOMTopLevelType('mouseout');\nvar TOP_MOUSE_OVER = unsafeCastStringToDOMTopLevelType('mouseover');\nvar TOP_MOUSE_UP = unsafeCastStringToDOMTopLevelType('mouseup');\nvar TOP_PASTE = unsafeCastStringToDOMTopLevelType('paste');\nvar TOP_PAUSE = unsafeCastStringToDOMTopLevelType('pause');\nvar TOP_PLAY = unsafeCastStringToDOMTopLevelType('play');\nvar TOP_PLAYING = unsafeCastStringToDOMTopLevelType('playing');\nvar TOP_POINTER_CANCEL = unsafeCastStringToDOMTopLevelType('pointercancel');\nvar TOP_POINTER_DOWN = unsafeCastStringToDOMTopLevelType('pointerdown');\n\n\nvar TOP_POINTER_MOVE = unsafeCastStringToDOMTopLevelType('pointermove');\nvar TOP_POINTER_OUT = unsafeCastStringToDOMTopLevelType('pointerout');\nvar TOP_POINTER_OVER = unsafeCastStringToDOMTopLevelType('pointerover');\nvar TOP_POINTER_UP = unsafeCastStringToDOMTopLevelType('pointerup');\nvar TOP_PROGRESS = unsafeCastStringToDOMTopLevelType('progress');\nvar TOP_RATE_CHANGE = unsafeCastStringToDOMTopLevelType('ratechange');\nvar TOP_RESET = unsafeCastStringToDOMTopLevelType('reset');\nvar TOP_SCROLL = unsafeCastStringToDOMTopLevelType('scroll');\nvar TOP_SEEKED = unsafeCastStringToDOMTopLevelType('seeked');\nvar TOP_SEEKING = unsafeCastStringToDOMTopLevelType('seeking');\nvar TOP_SELECTION_CHANGE = unsafeCastStringToDOMTopLevelType('selectionchange');\nvar TOP_STALLED = unsafeCastStringToDOMTopLevelType('stalled');\nvar TOP_SUBMIT = unsafeCastStringToDOMTopLevelType('submit');\nvar TOP_SUSPEND = unsafeCastStringToDOMTopLevelType('suspend');\nvar TOP_TEXT_INPUT = unsafeCastStringToDOMTopLevelType('textInput');\nvar TOP_TIME_UPDATE = unsafeCastStringToDOMTopLevelType('timeupdate');\nvar TOP_TOGGLE = unsafeCastStringToDOMTopLevelType('toggle');\nvar TOP_TOUCH_CANCEL = unsafeCastStringToDOMTopLevelType('touchcancel');\nvar TOP_TOUCH_END = unsafeCastStringToDOMTopLevelType('touchend');\nvar TOP_TOUCH_MOVE = unsafeCastStringToDOMTopLevelType('touchmove');\nvar TOP_TOUCH_START = unsafeCastStringToDOMTopLevelType('touchstart');\nvar TOP_TRANSITION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('transitionend'));\nvar TOP_VOLUME_CHANGE = unsafeCastStringToDOMTopLevelType('volumechange');\nvar TOP_WAITING = unsafeCastStringToDOMTopLevelType('waiting');\nvar TOP_WHEEL = unsafeCastStringToDOMTopLevelType('wheel');\n\n// List of events that need to be individually attached to media elements.\n// Note that events in this list will *not* be listened to at the top level\n// unless they're explicitly whitelisted in `ReactBrowserEventEmitter.listenTo`.\nvar mediaEventTypes = [TOP_ABORT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_VOLUME_CHANGE, TOP_WAITING];\n\nfunction getRawEventName(topLevelType) {\n  return unsafeCastDOMTopLevelTypeToString(topLevelType);\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\n\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\n\nfunction initialize(nativeEventTarget) {\n  root = nativeEventTarget;\n  startText = getText();\n  return true;\n}\n\nfunction reset() {\n  root = null;\n  startText = null;\n  fallbackText = null;\n}\n\nfunction getData() {\n  if (fallbackText) {\n    return fallbackText;\n  }\n\n  var start = void 0;\n  var startValue = startText;\n  var startLength = startValue.length;\n  var end = void 0;\n  var endValue = getText();\n  var endLength = endValue.length;\n\n  for (start = 0; start < startLength; start++) {\n    if (startValue[start] !== endValue[start]) {\n      break;\n    }\n  }\n\n  var minEnd = startLength - start;\n  for (end = 1; end <= minEnd; end++) {\n    if (startValue[startLength - end] !== endValue[endLength - end]) {\n      break;\n    }\n  }\n\n  var sliceTail = end > 1 ? 1 - end : undefined;\n  fallbackText = endValue.slice(start, sliceTail);\n  return fallbackText;\n}\n\nfunction getText() {\n  if ('value' in root) {\n    return root.value;\n  }\n  return root.textContent;\n}\n\nvar ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar _assign = ReactInternals.assign;\n\n/* eslint valid-typeof: 0 */\n\nvar EVENT_POOL_SIZE = 10;\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar EventInterface = {\n  type: null,\n  target: null,\n  // currentTarget is set when dispatching; no use in copying it here\n  currentTarget: function () {\n    return null;\n  },\n  eventPhase: null,\n  bubbles: null,\n  cancelable: null,\n  timeStamp: function (event) {\n    return event.timeStamp || Date.now();\n  },\n  defaultPrevented: null,\n  isTrusted: null\n};\n\nfunction functionThatReturnsTrue() {\n  return true;\n}\n\nfunction functionThatReturnsFalse() {\n  return false;\n}\n\n/**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n *\n * @param {object} dispatchConfig Configuration used to dispatch this event.\n * @param {*} targetInst Marker identifying the event target.\n * @param {object} nativeEvent Native browser event.\n * @param {DOMEventTarget} nativeEventTarget Target node.\n */\nfunction SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {\n  {\n    // these have a getter/setter for warnings\n    delete this.nativeEvent;\n    delete this.preventDefault;\n    delete this.stopPropagation;\n    delete this.isDefaultPrevented;\n    delete this.isPropagationStopped;\n  }\n\n  this.dispatchConfig = dispatchConfig;\n  this._targetInst = targetInst;\n  this.nativeEvent = nativeEvent;\n\n  var Interface = this.constructor.Interface;\n  for (var propName in Interface) {\n    if (!Interface.hasOwnProperty(propName)) {\n      continue;\n    }\n    {\n      delete this[propName]; // this has a getter/setter for warnings\n    }\n    var normalize = Interface[propName];\n    if (normalize) {\n      this[propName] = normalize(nativeEvent);\n    } else {\n      if (propName === 'target') {\n        this.target = nativeEventTarget;\n      } else {\n        this[propName] = nativeEvent[propName];\n      }\n    }\n  }\n\n  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n  if (defaultPrevented) {\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  } else {\n    this.isDefaultPrevented = functionThatReturnsFalse;\n  }\n  this.isPropagationStopped = functionThatReturnsFalse;\n  return this;\n}\n\n_assign(SyntheticEvent.prototype, {\n  preventDefault: function () {\n    this.defaultPrevented = true;\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.preventDefault) {\n      event.preventDefault();\n    } else if (typeof event.returnValue !== 'unknown') {\n      event.returnValue = false;\n    }\n    this.isDefaultPrevented = functionThatReturnsTrue;\n  },\n\n  stopPropagation: function () {\n    var event = this.nativeEvent;\n    if (!event) {\n      return;\n    }\n\n    if (event.stopPropagation) {\n      event.stopPropagation();\n    } else if (typeof event.cancelBubble !== 'unknown') {\n      // The ChangeEventPlugin registers a \"propertychange\" event for\n      // IE. This event does not support bubbling or cancelling, and\n      // any references to cancelBubble throw \"Member not found\".  A\n      // typeof check of \"unknown\" circumvents this issue (and is also\n      // IE specific).\n      event.cancelBubble = true;\n    }\n\n    this.isPropagationStopped = functionThatReturnsTrue;\n  },\n\n  /**\n   * We release all dispatched `SyntheticEvent`s after each event loop, adding\n   * them back into the pool. This allows a way to hold onto a reference that\n   * won't be added back into the pool.\n   */\n  persist: function () {\n    this.isPersistent = functionThatReturnsTrue;\n  },\n\n  /**\n   * Checks if this event should be released back into the pool.\n   *\n   * @return {boolean} True if this should not be released, false otherwise.\n   */\n  isPersistent: functionThatReturnsFalse,\n\n  /**\n   * `PooledClass` looks for `destructor` on each instance it releases.\n   */\n  destructor: function () {\n    var Interface = this.constructor.Interface;\n    for (var propName in Interface) {\n      {\n        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));\n      }\n    }\n    this.dispatchConfig = null;\n    this._targetInst = null;\n    this.nativeEvent = null;\n    this.isDefaultPrevented = functionThatReturnsFalse;\n    this.isPropagationStopped = functionThatReturnsFalse;\n    this._dispatchListeners = null;\n    this._dispatchInstances = null;\n    {\n      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));\n      Object.defineProperty(this, 'isDefaultPrevented', getPooledWarningPropertyDefinition('isDefaultPrevented', functionThatReturnsFalse));\n      Object.defineProperty(this, 'isPropagationStopped', getPooledWarningPropertyDefinition('isPropagationStopped', functionThatReturnsFalse));\n      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', function () {}));\n      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', function () {}));\n    }\n  }\n});\n\nSyntheticEvent.Interface = EventInterface;\n\n/**\n * Helper to reduce boilerplate when creating subclasses.\n */\nSyntheticEvent.extend = function (Interface) {\n  var Super = this;\n\n  var E = function () {};\n  E.prototype = Super.prototype;\n  var prototype = new E();\n\n  function Class() {\n    return Super.apply(this, arguments);\n  }\n  _assign(prototype, Class.prototype);\n  Class.prototype = prototype;\n  Class.prototype.constructor = Class;\n\n  Class.Interface = _assign({}, Super.Interface, Interface);\n  Class.extend = Super.extend;\n  addEventPoolingTo(Class);\n\n  return Class;\n};\n\naddEventPoolingTo(SyntheticEvent);\n\n/**\n * Helper to nullify syntheticEvent instance properties when destructing\n *\n * @param {String} propName\n * @param {?object} getVal\n * @return {object} defineProperty object\n */\nfunction getPooledWarningPropertyDefinition(propName, getVal) {\n  var isFunction = typeof getVal === 'function';\n  return {\n    configurable: true,\n    set: set,\n    get: get\n  };\n\n  function set(val) {\n    var action = isFunction ? 'setting the method' : 'setting the property';\n    warn(action, 'This is effectively a no-op');\n    return val;\n  }\n\n  function get() {\n    var action = isFunction ? 'accessing the method' : 'accessing the property';\n    var result = isFunction ? 'This is a no-op function' : 'This is set to null';\n    warn(action, result);\n    return getVal;\n  }\n\n  function warn(action, result) {\n    var warningCondition = false;\n    !warningCondition ? warningWithoutStack$1(false, \"This synthetic event is reused for performance reasons. If you're seeing this, \" + \"you're %s `%s` on a released/nullified synthetic event. %s. \" + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;\n  }\n}\n\nfunction getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {\n  var EventConstructor = this;\n  if (EventConstructor.eventPool.length) {\n    var instance = EventConstructor.eventPool.pop();\n    EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);\n    return instance;\n  }\n  return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);\n}\n\nfunction releasePooledEvent(event) {\n  var EventConstructor = this;\n  (function () {\n    if (!(event instanceof EventConstructor)) {\n      {\n        throw ReactError(Error('Trying to release an event instance into a pool of a different type.'));\n      }\n    }\n  })();\n  event.destructor();\n  if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {\n    EventConstructor.eventPool.push(event);\n  }\n}\n\nfunction addEventPoolingTo(EventConstructor) {\n  EventConstructor.eventPool = [];\n  EventConstructor.getPooled = getPooledEvent;\n  EventConstructor.release = releasePooledEvent;\n}\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\nvar SyntheticCompositionEvent = SyntheticEvent.extend({\n  data: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */\nvar SyntheticInputEvent = SyntheticEvent.extend({\n  data: null\n});\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\nvar START_KEYCODE = 229;\n\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\n\nvar documentMode = null;\nif (canUseDOM && 'documentMode' in document) {\n  documentMode = document.documentMode;\n}\n\n// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode;\n\n// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\n\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\n// Events and their corresponding property names.\nvar eventTypes = {\n  beforeInput: {\n    phasedRegistrationNames: {\n      bubbled: 'onBeforeInput',\n      captured: 'onBeforeInputCapture'\n    },\n    dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]\n  },\n  compositionEnd: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionEnd',\n      captured: 'onCompositionEndCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionStart: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionStart',\n      captured: 'onCompositionStartCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  },\n  compositionUpdate: {\n    phasedRegistrationNames: {\n      bubbled: 'onCompositionUpdate',\n      captured: 'onCompositionUpdateCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_COMPOSITION_UPDATE, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]\n  }\n};\n\n// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress = false;\n\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\nfunction isKeypressCommand(nativeEvent) {\n  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&\n  // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n  !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n\n/**\n * Translate native top level events into event types.\n *\n * @param {string} topLevelType\n * @return {object}\n */\nfunction getCompositionEventType(topLevelType) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_START:\n      return eventTypes.compositionStart;\n    case TOP_COMPOSITION_END:\n      return eventTypes.compositionEnd;\n    case TOP_COMPOSITION_UPDATE:\n      return eventTypes.compositionUpdate;\n  }\n}\n\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionStart(topLevelType, nativeEvent) {\n  return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;\n}\n\n/**\n * Does our fallback mode think that this event is the end of composition?\n *\n * @param {string} topLevelType\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isFallbackCompositionEnd(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_KEY_UP:\n      // Command keys insert or clear IME input.\n      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n    case TOP_KEY_DOWN:\n      // Expect IME keyCode on each keydown. If we get any other\n      // code we must have exited earlier.\n      return nativeEvent.keyCode !== START_KEYCODE;\n    case TOP_KEY_PRESS:\n    case TOP_MOUSE_DOWN:\n    case TOP_BLUR:\n      // Events are not possible without cancelling IME.\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\nfunction getDataFromCustomEvent(nativeEvent) {\n  var detail = nativeEvent.detail;\n  if (typeof detail === 'object' && 'data' in detail) {\n    return detail.data;\n  }\n  return null;\n}\n\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\nfunction isUsingKoreanIME(nativeEvent) {\n  return nativeEvent.locale === 'ko';\n}\n\n// Track the current IME composition status, if any.\nvar isComposing = false;\n\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\nfunction extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var eventType = void 0;\n  var fallbackData = void 0;\n\n  if (canUseCompositionEvent) {\n    eventType = getCompositionEventType(topLevelType);\n  } else if (!isComposing) {\n    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {\n      eventType = eventTypes.compositionStart;\n    }\n  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n    eventType = eventTypes.compositionEnd;\n  }\n\n  if (!eventType) {\n    return null;\n  }\n\n  if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n    // The current composition is stored statically and must not be\n    // overwritten while composition continues.\n    if (!isComposing && eventType === eventTypes.compositionStart) {\n      isComposing = initialize(nativeEventTarget);\n    } else if (eventType === eventTypes.compositionEnd) {\n      if (isComposing) {\n        fallbackData = getData();\n      }\n    }\n  }\n\n  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);\n\n  if (fallbackData) {\n    // Inject data generated from fallback path into the synthetic event.\n    // This matches the property of native CompositionEventInterface.\n    event.data = fallbackData;\n  } else {\n    var customData = getDataFromCustomEvent(nativeEvent);\n    if (customData !== null) {\n      event.data = customData;\n    }\n  }\n\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * @param {TopLevelType} topLevelType Number from `TopLevelType`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The string corresponding to this `beforeInput` event.\n */\nfunction getNativeBeforeInputChars(topLevelType, nativeEvent) {\n  switch (topLevelType) {\n    case TOP_COMPOSITION_END:\n      return getDataFromCustomEvent(nativeEvent);\n    case TOP_KEY_PRESS:\n      /**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */\n      var which = nativeEvent.which;\n      if (which !== SPACEBAR_CODE) {\n        return null;\n      }\n\n      hasSpaceKeypress = true;\n      return SPACEBAR_CHAR;\n\n    case TOP_TEXT_INPUT:\n      // Record the characters to be added to the DOM.\n      var chars = nativeEvent.data;\n\n      // If it's a spacebar character, assume that we have already handled\n      // it at the keypress level and bail immediately. Android Chrome\n      // doesn't give us keycodes, so we need to ignore it.\n      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n        return null;\n      }\n\n      return chars;\n\n    default:\n      // For other native event types, do nothing.\n      return null;\n  }\n}\n\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n *\n * @param {number} topLevelType Number from `TopLevelEventTypes`.\n * @param {object} nativeEvent Native browser event.\n * @return {?string} The fallback string for this `beforeInput` event.\n */\nfunction getFallbackBeforeInputChars(topLevelType, nativeEvent) {\n  // If we are currently composing (IME) and using a fallback to do so,\n  // try to extract the composed characters from the fallback object.\n  // If composition event is available, we extract a string only at\n  // compositionevent, otherwise extract it at fallback events.\n  if (isComposing) {\n    if (topLevelType === TOP_COMPOSITION_END || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {\n      var chars = getData();\n      reset();\n      isComposing = false;\n      return chars;\n    }\n    return null;\n  }\n\n  switch (topLevelType) {\n    case TOP_PASTE:\n      // If a paste event occurs after a keypress, throw out the input\n      // chars. Paste events should not lead to BeforeInput events.\n      return null;\n    case TOP_KEY_PRESS:\n      /**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */\n      if (!isKeypressCommand(nativeEvent)) {\n        // IE fires the `keypress` event when a user types an emoji via\n        // Touch keyboard of Windows.  In such a case, the `char` property\n        // holds an emoji character like `\\uD83D\\uDE0A`.  Because its length\n        // is 2, the property `which` does not represent an emoji correctly.\n        // In such a case, we directly return the `char` property instead of\n        // using `which`.\n        if (nativeEvent.char && nativeEvent.char.length > 1) {\n          return nativeEvent.char;\n        } else if (nativeEvent.which) {\n          return String.fromCharCode(nativeEvent.which);\n        }\n      }\n      return null;\n    case TOP_COMPOSITION_END:\n      return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n    default:\n      return null;\n  }\n}\n\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\nfunction extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n  var chars = void 0;\n\n  if (canUseTextInputEvent) {\n    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);\n  } else {\n    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);\n  }\n\n  // If no characters are being inserted, no BeforeInput event should\n  // be fired.\n  if (!chars) {\n    return null;\n  }\n\n  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);\n\n  event.data = chars;\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\nvar BeforeInputEventPlugin = {\n  eventTypes: eventTypes,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var composition = extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n\n    var beforeInput = extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);\n\n    if (composition === null) {\n      return beforeInput;\n    }\n\n    if (beforeInput === null) {\n      return composition;\n    }\n\n    return [composition, beforeInput];\n  }\n};\n\n// Use to restore controlled state after a change event has fired.\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n  // We perform this translation at the end of the event loop so that we\n  // always receive the correct fiber here\n  var internalInstance = getInstanceFromNode(target);\n  if (!internalInstance) {\n    // Unmounted\n    return;\n  }\n  (function () {\n    if (!(typeof restoreImpl === 'function')) {\n      {\n        throw ReactError(Error('setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n  var props = getFiberCurrentPropsFromNode(internalInstance.stateNode);\n  restoreImpl(internalInstance.stateNode, internalInstance.type, props);\n}\n\nfunction setRestoreImplementation(impl) {\n  restoreImpl = impl;\n}\n\nfunction enqueueStateRestore(target) {\n  if (restoreTarget) {\n    if (restoreQueue) {\n      restoreQueue.push(target);\n    } else {\n      restoreQueue = [target];\n    }\n  } else {\n    restoreTarget = target;\n  }\n}\n\nfunction needsStateRestore() {\n  return restoreTarget !== null || restoreQueue !== null;\n}\n\nfunction restoreStateIfNeeded() {\n  if (!restoreTarget) {\n    return;\n  }\n  var target = restoreTarget;\n  var queuedTargets = restoreQueue;\n  restoreTarget = null;\n  restoreQueue = null;\n\n  restoreStateOfTarget(target);\n  if (queuedTargets) {\n    for (var i = 0; i < queuedTargets.length; i++) {\n      restoreStateOfTarget(queuedTargets[i]);\n    }\n  }\n}\n\nvar enableUserTimingAPI = true;\n\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\nvar debugRenderPhaseSideEffects = false;\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:\nvar debugRenderPhaseSideEffectsForStrictMode = true;\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.\nvar replayFailedUnitOfWorkWithInvokeGuardedCallback = true;\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\nvar warnAboutDeprecatedLifecycles = true;\n\n// Gather advanced timing metrics for Profiler subtrees.\nvar enableProfilerTimer = true;\n\n// Trace which interactions trigger each commit.\nvar enableSchedulerTracing = true;\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// Disable javascript: URL strings in href for XSS protection.\nvar disableJavaScriptURLs = false;\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\nvar disableInputAttributeSyncing = false;\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.\nvar enableStableConcurrentModeAPIs = false;\n\nvar warnAboutShorthandPropertyCollision = false;\n\n// See https://github.com/react-native-community/discussions-and-proposals/issues/72 for more information\n// This is a flag so we can fix warnings in RN core before turning it on\n\n\n// Experimental React Flare event system and event components support.\nvar enableFlareAPI = false;\n\n// Experimental Host Component support.\nvar enableFundamentalAPI = false;\n\n// New API for JSX transforms to target - https://github.com/reactjs/rfcs/pull/107\n\n\n// We will enforce mocking scheduler with scheduler/unstable_mock at some point. (v17?)\n// Till then, we warn about the missing mock, but still fallback to a sync mode compatible version\nvar warnAboutUnmockedScheduler = false;\n// Temporary flag to revert the fix in #15650\nvar revertPassiveEffectsChange = false;\n\n// For tests, we flush suspense fallbacks in an act scope;\n// *except* in some of our own tests, where we test incremental loading states.\nvar flushSuspenseFallbacksInTests = true;\n\n// Changes priority of some events like mousemove to user-blocking priority,\n// but without making them discrete. The flag exists in case it causes\n// starvation problems.\nvar enableUserBlockingEvents = false;\n\n// Add a callback property to suspense to notify which promises are currently\n// in the update queue. This allows reporting and tracing of what is causing\n// the user to see a loading state.\nvar enableSuspenseCallback = false;\n\n// Part of the simplification of React.createElement so we can eventually move\n// from React.createElement to React.jsx\n// https://github.com/reactjs/rfcs/blob/createlement-rfc/text/0000-create-element-changes.md\nvar warnAboutDefaultPropsOnFunctionComponents = false;\n\nvar disableLegacyContext = false;\n\nvar disableSchedulerTimeoutBasedOnReactExpirationTime = false;\n\n// Used as a way to call batchedUpdates when we don't have a reference to\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n\n// Defaults\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n  return fn(bookkeeping);\n};\nvar discreteUpdatesImpl = function (fn, a, b, c) {\n  return fn(a, b, c);\n};\nvar flushDiscreteUpdatesImpl = function () {};\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\n\nvar isInsideEventHandler = false;\n\nfunction finishEventHandler() {\n  // Here we wait until all updates have propagated, which is important\n  // when using controlled components within layers:\n  // https://github.com/facebook/react/issues/1698\n  // Then we restore state of any controlled component.\n  var controlledComponentsHavePendingUpdates = needsStateRestore();\n  if (controlledComponentsHavePendingUpdates) {\n    // If a controlled event was fired, we may need to restore the state of\n    // the DOM node back to the controlled value. This is necessary when React\n    // bails out of the update without touching the DOM.\n    flushDiscreteUpdatesImpl();\n    restoreStateIfNeeded();\n  }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n  if (isInsideEventHandler) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(bookkeeping);\n  }\n  isInsideEventHandler = true;\n  try {\n    return batchedUpdatesImpl(fn, bookkeeping);\n  } finally {\n    isInsideEventHandler = false;\n    finishEventHandler();\n  }\n}\n\nfunction batchedEventUpdates(fn, a, b) {\n  if (isInsideEventHandler) {\n    // If we are currently inside another batch, we need to wait until it\n    // fully completes before restoring state.\n    return fn(a, b);\n  }\n  isInsideEventHandler = true;\n  try {\n    return batchedEventUpdatesImpl(fn, a, b);\n  } finally {\n    isInsideEventHandler = false;\n    finishEventHandler();\n  }\n}\n\nfunction discreteUpdates(fn, a, b, c) {\n  var prevIsInsideEventHandler = isInsideEventHandler;\n  isInsideEventHandler = true;\n  try {\n    return discreteUpdatesImpl(fn, a, b, c);\n  } finally {\n    isInsideEventHandler = prevIsInsideEventHandler;\n    if (!isInsideEventHandler) {\n      finishEventHandler();\n    }\n  }\n}\n\nvar lastFlushedEventTimeStamp = 0;\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n  // event.timeStamp isn't overly reliable due to inconsistencies in\n  // how different browsers have historically provided the time stamp.\n  // Some browsers provide high-resolution time stamps for all events,\n  // some provide low-resolution time stamps for all events. FF < 52\n  // even mixes both time stamps together. Some browsers even report\n  // negative time stamps or time stamps that are 0 (iOS9) in some cases.\n  // Given we are only comparing two time stamps with equality (!==),\n  // we are safe from the resolution differences. If the time stamp is 0\n  // we bail-out of preventing the flush, which can affect semantics,\n  // such as if an earlier flush removes or adds event listeners that\n  // are fired in the subsequent flush. However, this is the same\n  // behaviour as we had before this change, so the risks are low.\n  if (!isInsideEventHandler && (!enableFlareAPI || timeStamp === 0 || lastFlushedEventTimeStamp !== timeStamp)) {\n    lastFlushedEventTimeStamp = timeStamp;\n    flushDiscreteUpdatesImpl();\n  }\n}\n\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n  batchedUpdatesImpl = _batchedUpdatesImpl;\n  discreteUpdatesImpl = _discreteUpdatesImpl;\n  flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n  batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n  color: true,\n  date: true,\n  datetime: true,\n  'datetime-local': true,\n  email: true,\n  month: true,\n  number: true,\n  password: true,\n  range: true,\n  search: true,\n  tel: true,\n  text: true,\n  time: true,\n  url: true,\n  week: true\n};\n\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n  if (nodeName === 'input') {\n    return !!supportedInputTypes[elem.type];\n  }\n\n  if (nodeName === 'textarea') {\n    return true;\n  }\n\n  return false;\n}\n\n/**\n * HTML nodeType values that represent the type of the node\n */\n\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\nfunction getEventTarget(nativeEvent) {\n  // Fallback to nativeEvent.srcElement for IE9\n  // https://github.com/facebook/react/issues/12506\n  var target = nativeEvent.target || nativeEvent.srcElement || window;\n\n  // Normalize SVG <use> element events #4963\n  if (target.correspondingUseElement) {\n    target = target.correspondingUseElement;\n  }\n\n  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n  // @see http://www.quirksmode.org/js/events_properties.html\n  return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix) {\n  if (!canUseDOM) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  return isSupported;\n}\n\nfunction isCheckable(elem) {\n  var type = elem.type;\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n  return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n  node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n  var value = '';\n  if (!node) {\n    return value;\n  }\n\n  if (isCheckable(node)) {\n    value = node.checked ? 'true' : 'false';\n  } else {\n    value = node.value;\n  }\n\n  return value;\n}\n\nfunction trackValueOnNode(node) {\n  var valueField = isCheckable(node) ? 'checked' : 'value';\n  var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n\n  var currentValue = '' + node[valueField];\n\n  // if someone has already defined a value or Safari, then bail\n  // and don't track value will cause over reporting of changes,\n  // but it's better then a hard failure\n  // (needed for certain tests that spyOn input values and Safari)\n  if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n    return;\n  }\n  var get = descriptor.get,\n      set = descriptor.set;\n\n  Object.defineProperty(node, valueField, {\n    configurable: true,\n    get: function () {\n      return get.call(this);\n    },\n    set: function (value) {\n      currentValue = '' + value;\n      set.call(this, value);\n    }\n  });\n  // We could've passed this the first time\n  // but it triggers a bug in IE11 and Edge 14/15.\n  // Calling defineProperty() again should be equivalent.\n  // https://github.com/facebook/react/issues/11768\n  Object.defineProperty(node, valueField, {\n    enumerable: descriptor.enumerable\n  });\n\n  var tracker = {\n    getValue: function () {\n      return currentValue;\n    },\n    setValue: function (value) {\n      currentValue = '' + value;\n    },\n    stopTracking: function () {\n      detachTracker(node);\n      delete node[valueField];\n    }\n  };\n  return tracker;\n}\n\nfunction track(node) {\n  if (getTracker(node)) {\n    return;\n  }\n\n  // TODO: Once it's just Fiber we can move this to node._wrapperState\n  node._valueTracker = trackValueOnNode(node);\n}\n\nfunction updateValueIfChanged(node) {\n  if (!node) {\n    return false;\n  }\n\n  var tracker = getTracker(node);\n  // if there is no tracker at this point it's unlikely\n  // that trying again will succeed\n  if (!tracker) {\n    return true;\n  }\n\n  var lastValue = tracker.getValue();\n  var nextValue = getValueFromNode(node);\n  if (nextValue !== lastValue) {\n    tracker.setValue(nextValue);\n    return true;\n  }\n  return false;\n}\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}\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentBatchConfig')) {\n  ReactSharedInternals.ReactCurrentBatchConfig = {\n    suspense: null\n  };\n}\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// 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\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n  return null;\n}\n\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\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_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    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\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          break;\n        }\n    }\n  }\n  return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction describeFiber(fiber) {\n  switch (fiber.tag) {\n    case HostRoot:\n    case HostPortal:\n    case HostText:\n    case Fragment:\n    case ContextProvider:\n    case ContextConsumer:\n      return '';\n    default:\n      var owner = fiber._debugOwner;\n      var source = fiber._debugSource;\n      var name = getComponentName(fiber.type);\n      var ownerName = null;\n      if (owner) {\n        ownerName = getComponentName(owner.type);\n      }\n      return describeComponentFrame(name, source, ownerName);\n  }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n  var info = '';\n  var node = workInProgress;\n  do {\n    info += describeFiber(node);\n    node = node.return;\n  } while (node);\n  return info;\n}\n\nvar current = null;\nvar phase = null;\n\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n  {\n    if (current === null) {\n      return null;\n    }\n    var owner = current._debugOwner;\n    if (owner !== null && typeof owner !== 'undefined') {\n      return getComponentName(owner.type);\n    }\n  }\n  return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n  {\n    if (current === null) {\n      return '';\n    }\n    // Safe because if current fiber exists, we are reconciling,\n    // and it is guaranteed to be the work-in-progress version.\n    return getStackByFiberInDevAndProd(current);\n  }\n  return '';\n}\n\nfunction resetCurrentFiber() {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = null;\n    current = null;\n    phase = null;\n  }\n}\n\nfunction setCurrentFiber(fiber) {\n  {\n    ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n    current = fiber;\n    phase = null;\n  }\n}\n\nfunction setCurrentPhase(lifeCyclePhase) {\n  {\n    phase = lifeCyclePhase;\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\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 = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n    return true;\n  }\n  if (hasOwnProperty.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, sanitizeURL) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n  this.sanitizeURL = sanitizeURL;\n}\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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', 'disablePictureInPicture', '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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\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, // attributeNamespace\n  false);\n} // sanitizeURL\n);\n\n// String SVG attributes with the xlink namespace.\n['xlink:actuate', 'xlink:arcrole', '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', false);\n} // sanitizeURL\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', false);\n} // sanitizeURL\n);\n\n// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  false);\n} // sanitizeURL\n);\n\n// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true);\n\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n  properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n  attributeName.toLowerCase(), // attributeName\n  null, // attributeNamespace\n  true);\n} // sanitizeURL\n);\n\nvar ReactDebugCurrentFrame$1 = null;\n{\n  ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\n// A javascript: URL can contain leading C0 control or \\u0020 SPACE,\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\n\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n  if (disableJavaScriptURLs) {\n    (function () {\n      if (!!isJavaScriptProtocol.test(url)) {\n        {\n          throw ReactError(Error('React has blocked a javascript: URL as a security precaution.' + (ReactDebugCurrentFrame$1.getStackAddendum())));\n        }\n      }\n    })();\n  } else if (true && !didWarn && isJavaScriptProtocol.test(url)) {\n    didWarn = true;\n    warning$1(false, 'A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n  }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n  {\n    if (propertyInfo.mustUseProperty) {\n      var propertyName = propertyInfo.propertyName;\n\n      return node[propertyName];\n    } else {\n      if (!disableJavaScriptURLs && propertyInfo.sanitizeURL) {\n        // If we haven't fully disabled javascript: URLs, and if\n        // the hydration is successful of a javascript: URL, we\n        // still want to warn on the client.\n        sanitizeURL('' + expected);\n      }\n\n      var attributeName = propertyInfo.attributeName;\n\n      var stringValue = null;\n\n      if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n        if (node.hasAttribute(attributeName)) {\n          var value = node.getAttribute(attributeName);\n          if (value === '') {\n            return true;\n          }\n          if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n            return value;\n          }\n          if (value === '' + expected) {\n            return expected;\n          }\n          return value;\n        }\n      } else if (node.hasAttribute(attributeName)) {\n        if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n          // We had an attribute but shouldn't have had one, so read it\n          // for the error message.\n          return node.getAttribute(attributeName);\n        }\n        if (propertyInfo.type === BOOLEAN) {\n          // If this was a boolean, it doesn't matter what the value is\n          // the fact that we have it is the same as the expected.\n          return expected;\n        }\n        // Even if this property uses a namespace we use getAttribute\n        // because we assume its namespaced name is the same as our config.\n        // To use getAttributeNS we need the local name which we don't have\n        // in our config atm.\n        stringValue = node.getAttribute(attributeName);\n      }\n\n      if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n        return stringValue === null ? expected : stringValue;\n      } else if (stringValue === '' + expected) {\n        return expected;\n      } else {\n        return stringValue;\n      }\n    }\n  }\n}\n\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\nfunction getValueForAttribute(node, name, expected) {\n  {\n    if (!isAttributeNameSafe(name)) {\n      return;\n    }\n    if (!node.hasAttribute(name)) {\n      return expected === undefined ? undefined : null;\n    }\n    var value = node.getAttribute(name);\n    if (value === '' + expected) {\n      return expected;\n    }\n    return value;\n  }\n}\n\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n  var propertyInfo = getPropertyInfo(name);\n  if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n    return;\n  }\n  if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n    value = null;\n  }\n  // If the prop isn't in the special list, treat it as a simple attribute.\n  if (isCustomComponentTag || propertyInfo === null) {\n    if (isAttributeNameSafe(name)) {\n      var _attributeName = name;\n      if (value === null) {\n        node.removeAttribute(_attributeName);\n      } else {\n        node.setAttribute(_attributeName, '' + value);\n      }\n    }\n    return;\n  }\n  var mustUseProperty = propertyInfo.mustUseProperty;\n\n  if (mustUseProperty) {\n    var propertyName = propertyInfo.propertyName;\n\n    if (value === null) {\n      var type = propertyInfo.type;\n\n      node[propertyName] = type === BOOLEAN ? false : '';\n    } else {\n      // Contrary to `setAttribute`, object properties are properly\n      // `toString`ed by IE8/9.\n      node[propertyName] = value;\n    }\n    return;\n  }\n  // The rest are treated as attributes with special cases.\n  var attributeName = propertyInfo.attributeName,\n      attributeNamespace = propertyInfo.attributeNamespace;\n\n  if (value === null) {\n    node.removeAttribute(attributeName);\n  } else {\n    var _type = propertyInfo.type;\n\n    var attributeValue = void 0;\n    if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n      attributeValue = '';\n    } else {\n      // `setAttribute` with objects becomes only `[object]` in IE8/9,\n      // ('' + value) makes it output the correct toString()-value.\n      attributeValue = '' + value;\n      if (propertyInfo.sanitizeURL) {\n        sanitizeURL(attributeValue);\n      }\n    }\n    if (attributeNamespace) {\n      node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n    } else {\n      node.setAttribute(attributeName, attributeValue);\n    }\n  }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n  return '' + value;\n}\n\nfunction getToStringValue(value) {\n  switch (typeof value) {\n    case 'boolean':\n    case 'number':\n    case 'object':\n    case 'string':\n    case 'undefined':\n      return value;\n    default:\n      // function, symbol are assigned as empty strings\n      return '';\n  }\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nvar ReactPropTypesSecret_1 = ReactPropTypesSecret$1;\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function() {};\n\n{\n  var ReactPropTypesSecret = ReactPropTypesSecret_1;\n  var loggedTypeFailures = {};\n\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  {\n    for (var typeSpecName in typeSpecs) {\n      if (typeSpecs.hasOwnProperty(typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\nvar checkPropTypes_1 = checkPropTypes;\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 || enableFlareAPI && props.listeners) {\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 || enableFlareAPI && props.listeners) {\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_1(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n  };\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n  var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n  return usesChecked ? props.checked != null : props.value != null;\n}\n\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\nfunction getHostProps(element, props) {\n  var node = element;\n  var checked = props.checked;\n\n  var hostProps = _assign({}, props, {\n    defaultChecked: undefined,\n    defaultValue: undefined,\n    value: undefined,\n    checked: checked != null ? checked : node._wrapperState.initialChecked\n  });\n\n  return hostProps;\n}\n\nfunction initWrapperState(element, props) {\n  {\n    ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n    if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\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', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n      didWarnCheckedDefaultChecked = true;\n    }\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\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', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n      didWarnValueDefaultValue = true;\n    }\n  }\n\n  var node = element;\n  var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n\n  node._wrapperState = {\n    initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n    initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n    controlled: isControlled(props)\n  };\n}\n\nfunction updateChecked(element, props) {\n  var node = element;\n  var checked = props.checked;\n  if (checked != null) {\n    setValueForProperty(node, 'checked', checked, false);\n  }\n}\n\nfunction updateWrapper(element, props) {\n  var node = element;\n  {\n    var _controlled = isControlled(props);\n\n    if (!node._wrapperState.controlled && _controlled && !didWarnUncontrolledToControlled) {\n      warning$1(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n      didWarnUncontrolledToControlled = true;\n    }\n    if (node._wrapperState.controlled && !_controlled && !didWarnControlledToUncontrolled) {\n      warning$1(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);\n      didWarnControlledToUncontrolled = true;\n    }\n  }\n\n  updateChecked(element, props);\n\n  var value = getToStringValue(props.value);\n  var type = props.type;\n\n  if (value != null) {\n    if (type === 'number') {\n      if (value === 0 && node.value === '' ||\n      // We explicitly want to coerce to number here if possible.\n      // eslint-disable-next-line\n      node.value != value) {\n        node.value = toString(value);\n      }\n    } else if (node.value !== toString(value)) {\n      node.value = toString(value);\n    }\n  } else if (type === 'submit' || type === 'reset') {\n    // Submit/reset inputs need the attribute removed completely to avoid\n    // blank-text buttons.\n    node.removeAttribute('value');\n    return;\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the value attribute, React only assigns a new value\n    // whenever the defaultValue React prop has changed. When not present,\n    // React does nothing\n    if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  } else {\n    // When syncing the value attribute, the value comes from a cascade of\n    // properties:\n    //  1. The value React property\n    //  2. The defaultValue React property\n    //  3. Otherwise there should be no change\n    if (props.hasOwnProperty('value')) {\n      setDefaultValue(node, props.type, value);\n    } else if (props.hasOwnProperty('defaultValue')) {\n      setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n    }\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the checked attribute, the attribute is directly\n    // controllable from the defaultValue React property. It needs to be\n    // updated as new props come in.\n    if (props.defaultChecked == null) {\n      node.removeAttribute('checked');\n    } else {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  } else {\n    // When syncing the checked attribute, it only changes when it needs\n    // to be removed, such as transitioning from a checkbox into a text input\n    if (props.checked == null && props.defaultChecked != null) {\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  }\n}\n\nfunction postMountWrapper(element, props, isHydrating) {\n  var node = element;\n\n  // Do not assign value if it is already set. This prevents user text input\n  // from being lost during SSR hydration.\n  if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n    var type = props.type;\n    var isButton = type === 'submit' || type === 'reset';\n\n    // Avoid setting value attribute on submit/reset inputs as it overrides the\n    // default value provided by the browser. See: #12872\n    if (isButton && (props.value === undefined || props.value === null)) {\n      return;\n    }\n\n    var _initialValue = toString(node._wrapperState.initialValue);\n\n    // Do not assign value if it is already set. This prevents user text input\n    // from being lost during SSR hydration.\n    if (!isHydrating) {\n      if (disableInputAttributeSyncing) {\n        var value = getToStringValue(props.value);\n\n        // When not syncing the value attribute, the value property points\n        // directly to the React prop. Only assign it if it exists.\n        if (value != null) {\n          // Always assign on buttons so that it is possible to assign an\n          // empty string to clear button text.\n          //\n          // Otherwise, do not re-assign the value property if is empty. This\n          // potentially avoids a DOM write and prevents Firefox (~60.0.1) from\n          // prematurely marking required inputs as invalid. Equality is compared\n          // to the current value in case the browser provided value is not an\n          // empty string.\n          if (isButton || value !== node.value) {\n            node.value = toString(value);\n          }\n        }\n      } else {\n        // When syncing the value attribute, the value property should use\n        // the wrapperState._initialValue property. This uses:\n        //\n        //   1. The value React property when present\n        //   2. The defaultValue React property when present\n        //   3. An empty string\n        if (_initialValue !== node.value) {\n          node.value = _initialValue;\n        }\n      }\n    }\n\n    if (disableInputAttributeSyncing) {\n      // When not syncing the value attribute, assign the value attribute\n      // directly from the defaultValue React property (when present)\n      var defaultValue = getToStringValue(props.defaultValue);\n      if (defaultValue != null) {\n        node.defaultValue = toString(defaultValue);\n      }\n    } else {\n      // Otherwise, the value attribute is synchronized to the property,\n      // so we assign defaultValue to the same thing as the value property\n      // assignment step above.\n      node.defaultValue = _initialValue;\n    }\n  }\n\n  // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n  // this is needed to work around a chrome bug where setting defaultChecked\n  // will sometimes influence the value of checked (even after detachment).\n  // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n  // We need to temporarily unset name to avoid disrupting radio button groups.\n  var name = node.name;\n  if (name !== '') {\n    node.name = '';\n  }\n\n  if (disableInputAttributeSyncing) {\n    // When not syncing the checked attribute, the checked property\n    // never gets assigned. It must be manually set. We don't want\n    // to do this when hydrating so that existing user input isn't\n    // modified\n    if (!isHydrating) {\n      updateChecked(element, props);\n    }\n\n    // Only assign the checked attribute if it is defined. This saves\n    // a DOM write when controlling the checked attribute isn't needed\n    // (text inputs, submit/reset)\n    if (props.hasOwnProperty('defaultChecked')) {\n      node.defaultChecked = !node.defaultChecked;\n      node.defaultChecked = !!props.defaultChecked;\n    }\n  } else {\n    // When syncing the checked attribute, both the checked property and\n    // attribute are assigned at the same time using defaultChecked. This uses:\n    //\n    //   1. The checked React property when present\n    //   2. The defaultChecked React property when present\n    //   3. Otherwise, false\n    node.defaultChecked = !node.defaultChecked;\n    node.defaultChecked = !!node._wrapperState.initialChecked;\n  }\n\n  if (name !== '') {\n    node.name = name;\n  }\n}\n\nfunction restoreControlledState(element, props) {\n  var node = element;\n  updateWrapper(node, props);\n  updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n  var name = props.name;\n  if (props.type === 'radio' && name != null) {\n    var queryRoot = rootNode;\n\n    while (queryRoot.parentNode) {\n      queryRoot = queryRoot.parentNode;\n    }\n\n    // If `rootNode.form` was non-null, then we could try `form.elements`,\n    // but that sometimes behaves strangely in IE8. We could also try using\n    // `form.getElementsByName`, but that will only return direct children\n    // and won't include inputs that use the HTML5 `form=` attribute. Since\n    // the input might not even be in a form. It might not even be in the\n    // document. Let's just use the local `querySelectorAll` to ensure we don't\n    // miss anything.\n    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n    for (var i = 0; i < group.length; i++) {\n      var otherNode = group[i];\n      if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n        continue;\n      }\n      // This will throw if radio buttons rendered by different copies of React\n      // and the same name are rendered into the same form (same as #1939).\n      // That's probably okay; we don't support it just as we don't support\n      // mixing React radio buttons with non-React ones.\n      var otherProps = getFiberCurrentPropsFromNode$1(otherNode);\n      (function () {\n        if (!otherProps) {\n          {\n            throw ReactError(Error('ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.'));\n          }\n        }\n      })();\n\n      // We need update the tracked value on the named cousin since the value\n      // was changed but the input saw no event or value set\n      updateValueIfChanged(otherNode);\n\n      // If this is a controlled radio button group, forcing the input that\n      // was previously checked to update will cause it to be come re-checked\n      // as appropriate.\n      updateWrapper(otherNode, otherProps);\n    }\n  }\n}\n\n// In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\nfunction setDefaultValue(node, type, value) {\n  if (\n  // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n  type !== 'number' || node.ownerDocument.activeElement !== node) {\n    if (value == null) {\n      node.defaultValue = toString(node._wrapperState.initialValue);\n    } else if (node.defaultValue !== toString(value)) {\n      node.defaultValue = toString(value);\n    }\n  }\n}\n\nvar eventTypes$1 = {\n  change: {\n    phasedRegistrationNames: {\n      bubbled: 'onChange',\n      captured: 'onChangeCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CHANGE, TOP_CLICK, TOP_FOCUS, TOP_INPUT, TOP_KEY_DOWN, TOP_KEY_UP, TOP_SELECTION_CHANGE]\n  }\n};\n\nfunction createAndAccumulateChangeEvent(inst, nativeEvent, target) {\n  var event = SyntheticEvent.getPooled(eventTypes$1.change, inst, nativeEvent, target);\n  event.type = 'change';\n  // Flag this event loop as needing state restore.\n  enqueueStateRestore(target);\n  accumulateTwoPhaseDispatches(event);\n  return event;\n}\n/**\n * For IE shims\n */\nvar activeElement = null;\nvar activeElementInst = null;\n\n/**\n * SECTION: handle `change` event\n */\nfunction shouldUseChangeEvent(elem) {\n  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n  var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));\n\n  // If change and propertychange bubbled, we'd just bind to it like all the\n  // other events and have it go through ReactBrowserEventEmitter. Since it\n  // doesn't, we manually listen for the events and so we have to enqueue and\n  // process the abstract event manually.\n  //\n  // Batching is necessary here in order to ensure that all event handlers run\n  // before the next rerender (including event handlers attached to ancestor\n  // elements instead of directly on the input). Without this, controlled\n  // components don't work properly in conjunction with event bubbling because\n  // the component is rerendered and the value reverted before all the event\n  // handlers can run. See https://github.com/facebook/react/issues/708.\n  batchedUpdates(runEventInBatch, event);\n}\n\nfunction runEventInBatch(event) {\n  runEventsInBatch(event);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n  var targetNode = getNodeFromInstance$1(targetInst);\n  if (updateValueIfChanged(targetNode)) {\n    return targetInst;\n  }\n}\n\nfunction getTargetInstForChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CHANGE) {\n    return targetInst;\n  }\n}\n\n/**\n * SECTION: handle `input` event\n */\nvar isInputEventSupported = false;\nif (canUseDOM) {\n  // IE9 claims to support the input event but fails to trigger it when\n  // deleting text, so we ignore its input events.\n  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\nfunction startWatchingForValueChange(target, targetInst) {\n  activeElement = target;\n  activeElementInst = targetInst;\n  activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\nfunction stopWatchingForValueChange() {\n  if (!activeElement) {\n    return;\n  }\n  activeElement.detachEvent('onpropertychange', handlePropertyChange);\n  activeElement = null;\n  activeElementInst = null;\n}\n\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\nfunction handlePropertyChange(nativeEvent) {\n  if (nativeEvent.propertyName !== 'value') {\n    return;\n  }\n  if (getInstIfValueChanged(activeElementInst)) {\n    manualDispatchChangeEvent(nativeEvent);\n  }\n}\n\nfunction handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {\n  if (topLevelType === TOP_FOCUS) {\n    // In IE9, propertychange fires for most input events but is buggy and\n    // doesn't fire when text is deleted, but conveniently, selectionchange\n    // appears to fire in all of the remaining cases so we catch those and\n    // forward the event if the value has changed\n    // In either case, we don't want to call the event handler if the value\n    // is changed from JS so we redefine a setter for `.value` that updates\n    // our activeElementValue variable, allowing us to ignore those changes\n    //\n    // stopWatching() should be a noop here but we call it just in case we\n    // missed a blur event somehow.\n    stopWatchingForValueChange();\n    startWatchingForValueChange(target, targetInst);\n  } else if (topLevelType === TOP_BLUR) {\n    stopWatchingForValueChange();\n  }\n}\n\n// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(topLevelType, targetInst) {\n  if (topLevelType === TOP_SELECTION_CHANGE || topLevelType === TOP_KEY_UP || topLevelType === TOP_KEY_DOWN) {\n    // On the selectionchange event, the target is just document which isn't\n    // helpful for us so just check activeElement instead.\n    //\n    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n    // propertychange on the first input event after setting `value` from a\n    // script and fires only keydown, keypress, keyup. Catching keyup usually\n    // gets it and catching keydown lets us fire an event for the first\n    // keystroke if user does a key repeat (it'll be a little delayed: right\n    // before the second keystroke). Other input methods (e.g., paste) seem to\n    // fire selectionchange normally.\n    return getInstIfValueChanged(activeElementInst);\n  }\n}\n\n/**\n * SECTION: handle `click` event\n */\nfunction shouldUseClickEvent(elem) {\n  // Use the `click` event to detect changes to checkbox and radio inputs.\n  // This approach works across all browsers, whereas `change` does not fire\n  // until `blur` in IE8.\n  var nodeName = elem.nodeName;\n  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_CLICK) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {\n  if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {\n    return getInstIfValueChanged(targetInst);\n  }\n}\n\nfunction handleControlledInputBlur(node) {\n  var state = node._wrapperState;\n\n  if (!state || !state.controlled || node.type !== 'number') {\n    return;\n  }\n\n  if (!disableInputAttributeSyncing) {\n    // If controlled, assign the value attribute to the current value on blur\n    setDefaultValue(node, 'number', node.value);\n  }\n}\n\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\nvar ChangeEventPlugin = {\n  eventTypes: eventTypes$1,\n\n  _isInputEventSupported: isInputEventSupported,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n    var getTargetInstFunc = void 0,\n        handleEventFunc = void 0;\n    if (shouldUseChangeEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForChangeEvent;\n    } else if (isTextInputElement(targetNode)) {\n      if (isInputEventSupported) {\n        getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n      } else {\n        getTargetInstFunc = getTargetInstForInputEventPolyfill;\n        handleEventFunc = handleEventsForInputEventPolyfill;\n      }\n    } else if (shouldUseClickEvent(targetNode)) {\n      getTargetInstFunc = getTargetInstForClickEvent;\n    }\n\n    if (getTargetInstFunc) {\n      var inst = getTargetInstFunc(topLevelType, targetInst);\n      if (inst) {\n        var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);\n        return event;\n      }\n    }\n\n    if (handleEventFunc) {\n      handleEventFunc(topLevelType, targetNode, targetInst);\n    }\n\n    // When blurring, set the value attribute for number inputs\n    if (topLevelType === TOP_BLUR) {\n      handleControlledInputBlur(targetNode);\n    }\n  }\n};\n\n/**\n * Module that is injectable into `EventPluginHub`, that specifies a\n * deterministic ordering of `EventPlugin`s. A convenient way to reason about\n * plugins, without having to package every one of them. This is better than\n * having plugins be ordered in the same order that they are injected because\n * that ordering would be influenced by the packaging order.\n * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that\n * preventing default on events is convenient in `SimpleEventPlugin` handlers.\n */\nvar DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];\n\nvar SyntheticUIEvent = SyntheticEvent.extend({\n  view: null,\n  detail: null\n});\n\nvar modifierKeyToProp = {\n  Alt: 'altKey',\n  Control: 'ctrlKey',\n  Meta: 'metaKey',\n  Shift: 'shiftKey'\n};\n\n// Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\nfunction modifierStateGetter(keyArg) {\n  var syntheticEvent = this;\n  var nativeEvent = syntheticEvent.nativeEvent;\n  if (nativeEvent.getModifierState) {\n    return nativeEvent.getModifierState(keyArg);\n  }\n  var keyProp = modifierKeyToProp[keyArg];\n  return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n  return modifierStateGetter;\n}\n\nvar previousScreenX = 0;\nvar previousScreenY = 0;\n// Use flags to signal movementX/Y has already been set\nvar isMovementXSet = false;\nvar isMovementYSet = false;\n\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticMouseEvent = SyntheticUIEvent.extend({\n  screenX: null,\n  screenY: null,\n  clientX: null,\n  clientY: null,\n  pageX: null,\n  pageY: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  getModifierState: getEventModifierState,\n  button: null,\n  buttons: null,\n  relatedTarget: function (event) {\n    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);\n  },\n  movementX: function (event) {\n    if ('movementX' in event) {\n      return event.movementX;\n    }\n\n    var screenX = previousScreenX;\n    previousScreenX = event.screenX;\n\n    if (!isMovementXSet) {\n      isMovementXSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenX - screenX : 0;\n  },\n  movementY: function (event) {\n    if ('movementY' in event) {\n      return event.movementY;\n    }\n\n    var screenY = previousScreenY;\n    previousScreenY = event.screenY;\n\n    if (!isMovementYSet) {\n      isMovementYSet = true;\n      return 0;\n    }\n\n    return event.type === 'mousemove' ? event.screenY - screenY : 0;\n  }\n});\n\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\nvar SyntheticPointerEvent = SyntheticMouseEvent.extend({\n  pointerId: null,\n  width: null,\n  height: null,\n  pressure: null,\n  tangentialPressure: null,\n  tiltX: null,\n  tiltY: null,\n  twist: null,\n  pointerType: null,\n  isPrimary: null\n});\n\nvar eventTypes$2 = {\n  mouseEnter: {\n    registrationName: 'onMouseEnter',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  mouseLeave: {\n    registrationName: 'onMouseLeave',\n    dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]\n  },\n  pointerEnter: {\n    registrationName: 'onPointerEnter',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  },\n  pointerLeave: {\n    registrationName: 'onPointerLeave',\n    dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]\n  }\n};\n\nvar EnterLeaveEventPlugin = {\n  eventTypes: eventTypes$2,\n\n  /**\n   * For almost every interaction we care about, there will be both a top-level\n   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n   * we do not extract duplicate events. However, moving the mouse into the\n   * browser from outside will not fire a `mouseout` event. In this case, we use\n   * the `mouseover` top-level event.\n   */\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var isOverEvent = topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;\n    var isOutEvent = topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_POINTER_OUT;\n\n    if (isOverEvent && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {\n      return null;\n    }\n\n    if (!isOutEvent && !isOverEvent) {\n      // Must not be a mouse or pointer in or out - ignoring.\n      return null;\n    }\n\n    var win = void 0;\n    if (nativeEventTarget.window === nativeEventTarget) {\n      // `nativeEventTarget` is probably a window object.\n      win = nativeEventTarget;\n    } else {\n      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n      var doc = nativeEventTarget.ownerDocument;\n      if (doc) {\n        win = doc.defaultView || doc.parentWindow;\n      } else {\n        win = window;\n      }\n    }\n\n    var from = void 0;\n    var to = void 0;\n    if (isOutEvent) {\n      from = targetInst;\n      var related = nativeEvent.relatedTarget || nativeEvent.toElement;\n      to = related ? getClosestInstanceFromNode(related) : null;\n    } else {\n      // Moving to a node from outside the window.\n      from = null;\n      to = targetInst;\n    }\n\n    if (from === to) {\n      // Nothing pertains to our managed components.\n      return null;\n    }\n\n    var eventInterface = void 0,\n        leaveEventType = void 0,\n        enterEventType = void 0,\n        eventTypePrefix = void 0;\n\n    if (topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_MOUSE_OVER) {\n      eventInterface = SyntheticMouseEvent;\n      leaveEventType = eventTypes$2.mouseLeave;\n      enterEventType = eventTypes$2.mouseEnter;\n      eventTypePrefix = 'mouse';\n    } else if (topLevelType === TOP_POINTER_OUT || topLevelType === TOP_POINTER_OVER) {\n      eventInterface = SyntheticPointerEvent;\n      leaveEventType = eventTypes$2.pointerLeave;\n      enterEventType = eventTypes$2.pointerEnter;\n      eventTypePrefix = 'pointer';\n    }\n\n    var fromNode = from == null ? win : getNodeFromInstance$1(from);\n    var toNode = to == null ? win : getNodeFromInstance$1(to);\n\n    var leave = eventInterface.getPooled(leaveEventType, from, nativeEvent, nativeEventTarget);\n    leave.type = eventTypePrefix + 'leave';\n    leave.target = fromNode;\n    leave.relatedTarget = toNode;\n\n    var enter = eventInterface.getPooled(enterEventType, to, nativeEvent, nativeEventTarget);\n    enter.type = eventTypePrefix + 'enter';\n    enter.target = toNode;\n    enter.relatedTarget = fromNode;\n\n    accumulateEnterLeaveDispatches(leave, enter, from, to);\n\n    return [leave, enter];\n  }\n};\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n  ;\n}\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty$1.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar ReactInternals$1 = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar _ReactInternals$Sched = ReactInternals$1.Scheduler;\nvar unstable_cancelCallback = _ReactInternals$Sched.unstable_cancelCallback;\nvar unstable_now = _ReactInternals$Sched.unstable_now;\nvar unstable_scheduleCallback = _ReactInternals$Sched.unstable_scheduleCallback;\nvar unstable_shouldYield = _ReactInternals$Sched.unstable_shouldYield;\nvar unstable_requestPaint = _ReactInternals$Sched.unstable_requestPaint;\nvar unstable_getFirstCallbackNode = _ReactInternals$Sched.unstable_getFirstCallbackNode;\nvar unstable_runWithPriority = _ReactInternals$Sched.unstable_runWithPriority;\nvar unstable_next = _ReactInternals$Sched.unstable_next;\nvar unstable_continueExecution = _ReactInternals$Sched.unstable_continueExecution;\nvar unstable_pauseExecution = _ReactInternals$Sched.unstable_pauseExecution;\nvar unstable_getCurrentPriorityLevel = _ReactInternals$Sched.unstable_getCurrentPriorityLevel;\nvar unstable_ImmediatePriority = _ReactInternals$Sched.unstable_ImmediatePriority;\nvar unstable_UserBlockingPriority = _ReactInternals$Sched.unstable_UserBlockingPriority;\nvar unstable_NormalPriority = _ReactInternals$Sched.unstable_NormalPriority;\nvar unstable_LowPriority = _ReactInternals$Sched.unstable_LowPriority;\nvar unstable_IdlePriority = _ReactInternals$Sched.unstable_IdlePriority;\nvar unstable_forceFrameRate = _ReactInternals$Sched.unstable_forceFrameRate;\nvar unstable_flushAllWithoutAsserting = _ReactInternals$Sched.unstable_flushAllWithoutAsserting;\n\nvar PLUGIN_EVENT_SYSTEM = 1;\nvar RESPONDER_EVENT_SYSTEM = 1 << 1;\nvar IS_PASSIVE = 1 << 2;\nvar IS_ACTIVE = 1 << 3;\nvar PASSIVE_NOT_SUPPORTED = 1 << 4;\n\nfunction createResponderListener(responder, props) {\n  var eventResponderListener = {\n    responder: responder,\n    props: props\n  };\n  {\n    Object.freeze(eventResponderListener);\n  }\n  return eventResponderListener;\n}\n\nfunction isFiberSuspenseAndTimedOut(fiber) {\n  return fiber.tag === SuspenseComponent && fiber.memoizedState !== null;\n}\n\nfunction getSuspenseFallbackChild(fiber) {\n  return fiber.child.sibling.child;\n}\n\n\n\n\n\nfunction createResponderInstance(responder, responderProps, responderState, target, fiber) {\n  return {\n    fiber: fiber,\n    props: responderProps,\n    responder: responder,\n    rootEventTypes: null,\n    state: responderState,\n    target: target\n  };\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\n// CommonJS interop named imports.\nvar UserBlockingPriority$1 = unstable_UserBlockingPriority;\nvar runWithPriority$1 = unstable_runWithPriority;\n\n\nvar listenToResponderEventTypesImpl = void 0;\n\nfunction setListenToResponderEventTypes(_listenToResponderEventTypesImpl) {\n  listenToResponderEventTypesImpl = _listenToResponderEventTypesImpl;\n}\n\nvar activeTimeouts = new Map();\nvar rootEventTypesToEventResponderInstances = new Map();\nvar ownershipChangeListeners = new Set();\n\nvar globalOwner = null;\n\nvar currentTimeStamp = 0;\nvar currentTimers = new Map();\nvar currentInstance = null;\nvar currentEventQueue = null;\nvar currentEventQueuePriority = ContinuousEvent;\nvar currentTimerIDCounter = 0;\nvar currentDocument = null;\n\nvar eventResponderContext = {\n  dispatchEvent: function (eventValue, eventListener, eventPriority) {\n    validateResponderContext();\n    validateEventValue(eventValue);\n    if (eventPriority < currentEventQueuePriority) {\n      currentEventQueuePriority = eventPriority;\n    }\n    currentEventQueue.push(createEventQueueItem(eventValue, eventListener));\n  },\n  isTargetWithinResponder: function (target) {\n    validateResponderContext();\n    if (target != null) {\n      var fiber = getClosestInstanceFromNode(target);\n      var responderFiber = currentInstance.fiber;\n\n      while (fiber !== null) {\n        if (fiber === responderFiber || fiber.alternate === responderFiber) {\n          return true;\n        }\n        fiber = fiber.return;\n      }\n    }\n    return false;\n  },\n  isTargetWithinResponderScope: function (target) {\n    validateResponderContext();\n    var componentInstance = currentInstance;\n    var responder = componentInstance.responder;\n\n    if (target != null) {\n      var fiber = getClosestInstanceFromNode(target);\n      var responderFiber = currentInstance.fiber;\n\n      while (fiber !== null) {\n        if (fiber === responderFiber || fiber.alternate === responderFiber) {\n          return true;\n        }\n        if (doesFiberHaveResponder(fiber, responder)) {\n          return false;\n        }\n        fiber = fiber.return;\n      }\n    }\n    return false;\n  },\n  isTargetWithinNode: function (childTarget, parentTarget) {\n    validateResponderContext();\n    var childFiber = getClosestInstanceFromNode(childTarget);\n    var parentFiber = getClosestInstanceFromNode(parentTarget);\n    var parentAlternateFiber = parentFiber.alternate;\n\n    var node = childFiber;\n    while (node !== null) {\n      if (node === parentFiber || node === parentAlternateFiber) {\n        return true;\n      }\n      node = node.return;\n    }\n    return false;\n  },\n  addRootEventTypes: function (rootEventTypes) {\n    validateResponderContext();\n    var activeDocument = getActiveDocument();\n    listenToResponderEventTypesImpl(rootEventTypes, activeDocument);\n    for (var i = 0; i < rootEventTypes.length; i++) {\n      var rootEventType = rootEventTypes[i];\n      var eventResponderInstance = currentInstance;\n      registerRootEventType(rootEventType, eventResponderInstance);\n    }\n  },\n  removeRootEventTypes: function (rootEventTypes) {\n    validateResponderContext();\n    for (var i = 0; i < rootEventTypes.length; i++) {\n      var rootEventType = rootEventTypes[i];\n      var rootEventResponders = rootEventTypesToEventResponderInstances.get(rootEventType);\n      var rootEventTypesSet = currentInstance.rootEventTypes;\n      if (rootEventTypesSet !== null) {\n        rootEventTypesSet.delete(rootEventType);\n      }\n      if (rootEventResponders !== undefined) {\n        rootEventResponders.delete(currentInstance);\n      }\n    }\n  },\n  hasOwnership: function () {\n    validateResponderContext();\n    return globalOwner === currentInstance;\n  },\n  requestGlobalOwnership: function () {\n    validateResponderContext();\n    if (globalOwner !== null) {\n      return false;\n    }\n    globalOwner = currentInstance;\n    triggerOwnershipListeners();\n    return true;\n  },\n  releaseOwnership: function () {\n    validateResponderContext();\n    return releaseOwnershipForEventResponderInstance(currentInstance);\n  },\n  setTimeout: function (func, delay) {\n    validateResponderContext();\n    if (currentTimers === null) {\n      currentTimers = new Map();\n    }\n    var timeout = currentTimers.get(delay);\n\n    var timerId = currentTimerIDCounter++;\n    if (timeout === undefined) {\n      var _timers = new Map();\n      var _id = setTimeout(function () {\n        processTimers(_timers, delay);\n      }, delay);\n      timeout = {\n        id: _id,\n        timers: _timers\n      };\n      currentTimers.set(delay, timeout);\n    }\n    timeout.timers.set(timerId, {\n      instance: currentInstance,\n      func: func,\n      id: timerId,\n      timeStamp: currentTimeStamp\n    });\n    activeTimeouts.set(timerId, timeout);\n    return timerId;\n  },\n  clearTimeout: function (timerId) {\n    validateResponderContext();\n    var timeout = activeTimeouts.get(timerId);\n\n    if (timeout !== undefined) {\n      var _timers2 = timeout.timers;\n      _timers2.delete(timerId);\n      if (_timers2.size === 0) {\n        clearTimeout(timeout.id);\n      }\n    }\n  },\n  getFocusableElementsInScope: function (deep) {\n    validateResponderContext();\n    var focusableElements = [];\n    var eventResponderInstance = currentInstance;\n    var currentResponder = eventResponderInstance.responder;\n    var focusScopeFiber = eventResponderInstance.fiber;\n    if (deep) {\n      var deepNode = focusScopeFiber.return;\n      while (deepNode !== null) {\n        if (doesFiberHaveResponder(deepNode, currentResponder)) {\n          focusScopeFiber = deepNode;\n        }\n        deepNode = deepNode.return;\n      }\n    }\n    var child = focusScopeFiber.child;\n\n    if (child !== null) {\n      collectFocusableElements(child, focusableElements);\n    }\n    return focusableElements;\n  },\n\n  getActiveDocument: getActiveDocument,\n  objectAssign: _assign,\n  getTimeStamp: function () {\n    validateResponderContext();\n    return currentTimeStamp;\n  },\n  isTargetWithinHostComponent: function (target, elementType) {\n    validateResponderContext();\n    var fiber = getClosestInstanceFromNode(target);\n\n    while (fiber !== null) {\n      if (fiber.tag === HostComponent && fiber.type === elementType) {\n        return true;\n      }\n      fiber = fiber.return;\n    }\n    return false;\n  },\n\n  enqueueStateRestore: enqueueStateRestore\n};\n\nfunction validateEventValue(eventValue) {\n  if (typeof eventValue === 'object' && eventValue !== null) {\n    var target = eventValue.target,\n        type = eventValue.type,\n        _timeStamp = eventValue.timeStamp;\n\n\n    if (target == null || type == null || _timeStamp == null) {\n      throw new Error('context.dispatchEvent: \"target\", \"timeStamp\", and \"type\" fields on event object are required.');\n    }\n    var showWarning = function (name) {\n      {\n        warning$1(false, '%s is not available on event objects created from event responder modules (React Flare). ' + 'Try wrapping in a conditional, i.e. `if (event.type !== \"press\") { event.%s }`', name, name);\n      }\n    };\n    eventValue.preventDefault = function () {\n      {\n        showWarning('preventDefault()');\n      }\n    };\n    eventValue.stopPropagation = function () {\n      {\n        showWarning('stopPropagation()');\n      }\n    };\n    eventValue.isDefaultPrevented = function () {\n      {\n        showWarning('isDefaultPrevented()');\n      }\n    };\n    eventValue.isPropagationStopped = function () {\n      {\n        showWarning('isPropagationStopped()');\n      }\n    };\n    // $FlowFixMe: we don't need value, Flow thinks we do\n    Object.defineProperty(eventValue, 'nativeEvent', {\n      get: function () {\n        {\n          showWarning('nativeEvent');\n        }\n      }\n    });\n  }\n}\n\nfunction collectFocusableElements(node, focusableElements) {\n  if (isFiberSuspenseAndTimedOut(node)) {\n    var fallbackChild = getSuspenseFallbackChild(node);\n    if (fallbackChild !== null) {\n      collectFocusableElements(fallbackChild, focusableElements);\n    }\n  } else {\n    if (isFiberHostComponentFocusable(node)) {\n      focusableElements.push(node.stateNode);\n    } else {\n      var child = node.child;\n\n      if (child !== null) {\n        collectFocusableElements(child, focusableElements);\n      }\n    }\n  }\n  var sibling = node.sibling;\n\n  if (sibling !== null) {\n    collectFocusableElements(sibling, focusableElements);\n  }\n}\n\nfunction createEventQueueItem(value, listener) {\n  return {\n    value: value,\n    listener: listener\n  };\n}\n\nfunction doesFiberHaveResponder(fiber, responder) {\n  if (fiber.tag === HostComponent) {\n    var dependencies = fiber.dependencies;\n    if (dependencies !== null) {\n      var respondersMap = dependencies.responders;\n      if (respondersMap !== null && respondersMap.has(responder)) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\n\nfunction getActiveDocument() {\n  return currentDocument;\n}\n\nfunction releaseOwnershipForEventResponderInstance(eventResponderInstance) {\n  if (globalOwner === eventResponderInstance) {\n    globalOwner = null;\n    triggerOwnershipListeners();\n    return true;\n  }\n  return false;\n}\n\nfunction isFiberHostComponentFocusable(fiber) {\n  if (fiber.tag !== HostComponent) {\n    return false;\n  }\n  var type = fiber.type,\n      memoizedProps = fiber.memoizedProps;\n\n  if (memoizedProps.tabIndex === -1 || memoizedProps.disabled) {\n    return false;\n  }\n  if (memoizedProps.tabIndex === 0 || memoizedProps.contentEditable === true) {\n    return true;\n  }\n  if (type === 'a' || type === 'area') {\n    return !!memoizedProps.href && memoizedProps.rel !== 'ignore';\n  }\n  if (type === 'input') {\n    return memoizedProps.type !== 'hidden' && memoizedProps.type !== 'file';\n  }\n  return type === 'button' || type === 'textarea' || type === 'object' || type === 'select' || type === 'iframe' || type === 'embed';\n}\n\nfunction processTimers(timers, delay) {\n  var timersArr = Array.from(timers.values());\n  currentEventQueuePriority = ContinuousEvent;\n  try {\n    for (var i = 0; i < timersArr.length; i++) {\n      var _timersArr$i = timersArr[i],\n          _instance = _timersArr$i.instance,\n          _func = _timersArr$i.func,\n          _id2 = _timersArr$i.id,\n          _timeStamp2 = _timersArr$i.timeStamp;\n\n      currentInstance = _instance;\n      currentEventQueue = [];\n      currentTimeStamp = _timeStamp2 + delay;\n      try {\n        _func();\n      } finally {\n        activeTimeouts.delete(_id2);\n      }\n    }\n    processEventQueue();\n  } finally {\n    currentTimers = null;\n    currentInstance = null;\n    currentEventQueue = null;\n    currentTimeStamp = 0;\n  }\n}\n\nfunction createDOMResponderEvent(topLevelType, nativeEvent, nativeEventTarget, passive, passiveSupported) {\n  var _ref = nativeEvent,\n      pointerType = _ref.pointerType;\n\n  var eventPointerType = '';\n  var pointerId = null;\n\n  if (pointerType !== undefined) {\n    eventPointerType = pointerType;\n    pointerId = nativeEvent.pointerId;\n  } else if (nativeEvent.key !== undefined) {\n    eventPointerType = 'keyboard';\n  } else if (nativeEvent.button !== undefined) {\n    eventPointerType = 'mouse';\n  } else if (nativeEvent.changedTouches !== undefined) {\n    eventPointerType = 'touch';\n  }\n\n  return {\n    nativeEvent: nativeEvent,\n    passive: passive,\n    passiveSupported: passiveSupported,\n    pointerId: pointerId,\n    pointerType: eventPointerType,\n    responderTarget: null,\n    target: nativeEventTarget,\n    type: topLevelType\n  };\n}\n\nfunction processEvents(eventQueue) {\n  for (var i = 0, length = eventQueue.length; i < length; i++) {\n    var _eventQueue$i = eventQueue[i],\n        _value = _eventQueue$i.value,\n        _listener = _eventQueue$i.listener;\n\n    var type = typeof _value === 'object' && _value !== null ? _value.type : '';\n    invokeGuardedCallbackAndCatchFirstError(type, _listener, undefined, _value);\n  }\n}\n\nfunction processEventQueue() {\n  var eventQueue = currentEventQueue;\n  if (eventQueue.length === 0) {\n    return;\n  }\n  switch (currentEventQueuePriority) {\n    case DiscreteEvent:\n      {\n        flushDiscreteUpdatesIfNeeded(currentTimeStamp);\n        discreteUpdates(function () {\n          batchedEventUpdates(processEvents, eventQueue);\n        });\n        break;\n      }\n    case UserBlockingEvent:\n      {\n        if (enableUserBlockingEvents) {\n          runWithPriority$1(UserBlockingPriority$1, batchedEventUpdates.bind(null, processEvents, eventQueue));\n        } else {\n          batchedEventUpdates(processEvents, eventQueue);\n        }\n        break;\n      }\n    case ContinuousEvent:\n      {\n        batchedEventUpdates(processEvents, eventQueue);\n        break;\n      }\n  }\n}\n\nfunction responderEventTypesContainType(eventTypes, type) {\n  for (var i = 0, len = eventTypes.length; i < len; i++) {\n    if (eventTypes[i] === type) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction validateResponderTargetEventTypes(eventType, responder) {\n  var targetEventTypes = responder.targetEventTypes;\n  // Validate the target event type exists on the responder\n\n  if (targetEventTypes !== null) {\n    return responderEventTypesContainType(targetEventTypes, eventType);\n  }\n  return false;\n}\n\nfunction validateOwnership(responderInstance) {\n  return globalOwner === null || globalOwner === responderInstance;\n}\n\nfunction traverseAndHandleEventResponderInstances(topLevelType, targetFiber, nativeEvent, nativeEventTarget, eventSystemFlags) {\n  var isPassiveEvent = (eventSystemFlags & IS_PASSIVE) !== 0;\n  var isPassiveSupported = (eventSystemFlags & PASSIVE_NOT_SUPPORTED) === 0;\n  var isPassive = isPassiveEvent || !isPassiveSupported;\n  var eventType = isPassive ? topLevelType : topLevelType + '_active';\n\n  // Trigger event responders in this order:\n  // - Bubble target responder phase\n  // - Root responder phase\n\n  var visitedResponders = new Set();\n  var responderEvent = createDOMResponderEvent(topLevelType, nativeEvent, nativeEventTarget, isPassiveEvent, isPassiveSupported);\n  var node = targetFiber;\n  while (node !== null) {\n    var _node = node,\n        dependencies = _node.dependencies,\n        tag = _node.tag;\n\n    if (tag === HostComponent && dependencies !== null) {\n      var respondersMap = dependencies.responders;\n      if (respondersMap !== null) {\n        var responderInstances = Array.from(respondersMap.values());\n        for (var i = 0, length = responderInstances.length; i < length; i++) {\n          var responderInstance = responderInstances[i];\n\n          if (validateOwnership(responderInstance)) {\n            var props = responderInstance.props,\n                responder = responderInstance.responder,\n                state = responderInstance.state,\n                target = responderInstance.target;\n\n            if (!visitedResponders.has(responder) && validateResponderTargetEventTypes(eventType, responder)) {\n              visitedResponders.add(responder);\n              var onEvent = responder.onEvent;\n              if (onEvent !== null) {\n                currentInstance = responderInstance;\n                responderEvent.responderTarget = target;\n                onEvent(responderEvent, eventResponderContext, props, state);\n              }\n            }\n          }\n        }\n      }\n    }\n    node = node.return;\n  }\n  // Root phase\n  var rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(eventType);\n  if (rootEventResponderInstances !== undefined) {\n    var _responderInstances = Array.from(rootEventResponderInstances);\n\n    for (var _i = 0; _i < _responderInstances.length; _i++) {\n      var _responderInstance = _responderInstances[_i];\n      if (!validateOwnership(_responderInstance)) {\n        continue;\n      }\n      var _props = _responderInstance.props,\n          _responder = _responderInstance.responder,\n          _state = _responderInstance.state,\n          _target = _responderInstance.target;\n\n      var onRootEvent = _responder.onRootEvent;\n      if (onRootEvent !== null) {\n        currentInstance = _responderInstance;\n        responderEvent.responderTarget = _target;\n        onRootEvent(responderEvent, eventResponderContext, _props, _state);\n      }\n    }\n  }\n}\n\nfunction triggerOwnershipListeners() {\n  var listeningInstances = Array.from(ownershipChangeListeners);\n  var previousInstance = currentInstance;\n  var previousEventQueuePriority = currentEventQueuePriority;\n  var previousEventQueue = currentEventQueue;\n  try {\n    for (var i = 0; i < listeningInstances.length; i++) {\n      var _instance2 = listeningInstances[i];\n      var props = _instance2.props,\n          responder = _instance2.responder,\n          state = _instance2.state;\n\n      currentInstance = _instance2;\n      currentEventQueuePriority = ContinuousEvent;\n      currentEventQueue = [];\n      var onOwnershipChange = responder.onOwnershipChange;\n      if (onOwnershipChange !== null) {\n        onOwnershipChange(eventResponderContext, props, state);\n      }\n    }\n    processEventQueue();\n  } finally {\n    currentInstance = previousInstance;\n    currentEventQueue = previousEventQueue;\n    currentEventQueuePriority = previousEventQueuePriority;\n  }\n}\n\nfunction mountEventResponder(responder, responderInstance, props, state) {\n  if (responder.onOwnershipChange !== null) {\n    ownershipChangeListeners.add(responderInstance);\n  }\n  var onMount = responder.onMount;\n  if (onMount !== null) {\n    currentEventQueuePriority = ContinuousEvent;\n    currentInstance = responderInstance;\n    currentEventQueue = [];\n    try {\n      onMount(eventResponderContext, props, state);\n      processEventQueue();\n    } finally {\n      currentEventQueue = null;\n      currentInstance = null;\n      currentTimers = null;\n    }\n  }\n}\n\nfunction unmountEventResponder(responderInstance) {\n  var responder = responderInstance.responder;\n  var onUnmount = responder.onUnmount;\n  if (onUnmount !== null) {\n    var props = responderInstance.props,\n        state = responderInstance.state;\n\n    currentEventQueue = [];\n    currentEventQueuePriority = ContinuousEvent;\n    currentInstance = responderInstance;\n    try {\n      onUnmount(eventResponderContext, props, state);\n      processEventQueue();\n    } finally {\n      currentEventQueue = null;\n      currentInstance = null;\n      currentTimers = null;\n    }\n  }\n  releaseOwnershipForEventResponderInstance(responderInstance);\n  if (responder.onOwnershipChange !== null) {\n    ownershipChangeListeners.delete(responderInstance);\n  }\n  var rootEventTypesSet = responderInstance.rootEventTypes;\n  if (rootEventTypesSet !== null) {\n    var rootEventTypes = Array.from(rootEventTypesSet);\n\n    for (var i = 0; i < rootEventTypes.length; i++) {\n      var topLevelEventType = rootEventTypes[i];\n      var rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(topLevelEventType);\n      if (rootEventResponderInstances !== undefined) {\n        rootEventResponderInstances.delete(responderInstance);\n      }\n    }\n  }\n}\n\nfunction validateResponderContext() {\n  (function () {\n    if (!(currentInstance !== null)) {\n      {\n        throw ReactError(Error('An event responder context was used outside of an event cycle. Use context.setTimeout() to use asynchronous responder context outside of event cycle .'));\n      }\n    }\n  })();\n}\n\nfunction dispatchEventForResponderEventSystem(topLevelType, targetFiber, nativeEvent, nativeEventTarget, eventSystemFlags) {\n  if (enableFlareAPI) {\n    var previousEventQueue = currentEventQueue;\n    var previousInstance = currentInstance;\n    var previousTimers = currentTimers;\n    var previousTimeStamp = currentTimeStamp;\n    var previousDocument = currentDocument;\n    var previousEventQueuePriority = currentEventQueuePriority;\n    currentTimers = null;\n    currentEventQueue = [];\n    currentEventQueuePriority = ContinuousEvent;\n    // nodeType 9 is DOCUMENT_NODE\n    currentDocument = nativeEventTarget.nodeType === 9 ? nativeEventTarget : nativeEventTarget.ownerDocument;\n    // We might want to control timeStamp another way here\n    currentTimeStamp = nativeEvent.timeStamp;\n    try {\n      traverseAndHandleEventResponderInstances(topLevelType, targetFiber, nativeEvent, nativeEventTarget, eventSystemFlags);\n      processEventQueue();\n    } finally {\n      currentTimers = previousTimers;\n      currentInstance = previousInstance;\n      currentEventQueue = previousEventQueue;\n      currentTimeStamp = previousTimeStamp;\n      currentDocument = previousDocument;\n      currentEventQueuePriority = previousEventQueuePriority;\n    }\n  }\n}\n\nfunction addRootEventTypesForResponderInstance(responderInstance, rootEventTypes) {\n  for (var i = 0; i < rootEventTypes.length; i++) {\n    var rootEventType = rootEventTypes[i];\n    registerRootEventType(rootEventType, responderInstance);\n  }\n}\n\nfunction registerRootEventType(rootEventType, eventResponderInstance) {\n  var rootEventResponderInstances = rootEventTypesToEventResponderInstances.get(rootEventType);\n  if (rootEventResponderInstances === undefined) {\n    rootEventResponderInstances = new Set();\n    rootEventTypesToEventResponderInstances.set(rootEventType, rootEventResponderInstances);\n  }\n  var rootEventTypesSet = eventResponderInstance.rootEventTypes;\n  if (rootEventTypesSet === null) {\n    rootEventTypesSet = eventResponderInstance.rootEventTypes = new Set();\n  }\n  (function () {\n    if (!!rootEventTypesSet.has(rootEventType)) {\n      {\n        throw ReactError(Error('addRootEventTypes() found a duplicate root event type of \"' + rootEventType + '\". This might be because the event type exists in the event responder \"rootEventTypes\" array or because of a previous addRootEventTypes() using this root event type.'));\n      }\n    }\n  })();\n  rootEventTypesSet.add(rootEventType);\n  rootEventResponderInstances.add(eventResponderInstance);\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\n\n/**\n * This API should be called `delete` but we'd have to make sure to always\n * transform these to strings for IE support. When this transform is fully\n * supported we can rename it.\n */\n\n\nfunction get(key) {\n  return key._reactInternalFiber;\n}\n\nfunction has(key) {\n  return key._reactInternalFiber !== undefined;\n}\n\nfunction set(key, value) {\n  key._reactInternalFiber = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoEffect = /*              */0;\nvar PerformedWork = /*         */1;\n\n// You can change the rest (and add more).\nvar Placement = /*             */2;\nvar Update = /*                */4;\nvar PlacementAndUpdate = /*    */6;\nvar Deletion = /*              */8;\nvar ContentReset = /*          */16;\nvar Callback = /*              */32;\nvar DidCapture = /*            */64;\nvar Ref = /*                   */128;\nvar Snapshot = /*              */256;\nvar Passive = /*               */512;\n\n// Passive & Update & Callback & Ref & Snapshot\nvar LifecycleEffectMask = /*   */932;\n\n// Union of all host effects\nvar HostEffectMask = /*        */1023;\n\nvar Incomplete = /*            */1024;\nvar ShouldCapture = /*         */2048;\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n\nvar MOUNTING = 1;\nvar MOUNTED = 2;\nvar UNMOUNTED = 3;\n\nfunction isFiberMountedImpl(fiber) {\n  var node = fiber;\n  if (!fiber.alternate) {\n    // If there is no alternate, this might be a new tree that isn't inserted\n    // yet. If it is, then it will have a pending insertion effect on it.\n    if ((node.effectTag & Placement) !== NoEffect) {\n      return MOUNTING;\n    }\n    while (node.return) {\n      node = node.return;\n      if ((node.effectTag & Placement) !== NoEffect) {\n        return MOUNTING;\n      }\n    }\n  } else {\n    while (node.return) {\n      node = node.return;\n    }\n  }\n  if (node.tag === HostRoot) {\n    // TODO: Check if this was a nested HostRoot when used with\n    // renderContainerIntoSubtree.\n    return MOUNTED;\n  }\n  // If we didn't hit the root, that means that we're in an disconnected tree\n  // that has been unmounted.\n  return UNMOUNTED;\n}\n\nfunction isFiberMounted(fiber) {\n  return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction isMounted(component) {\n  {\n    var owner = ReactCurrentOwner$1.current;\n    if (owner !== null && owner.tag === ClassComponent) {\n      var ownerFiber = owner;\n      var instance = ownerFiber.stateNode;\n      !instance._warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component') : void 0;\n      instance._warnedAboutRefsInRender = true;\n    }\n  }\n\n  var fiber = get(component);\n  if (!fiber) {\n    return false;\n  }\n  return isFiberMountedImpl(fiber) === MOUNTED;\n}\n\nfunction assertIsMounted(fiber) {\n  (function () {\n    if (!(isFiberMountedImpl(fiber) === MOUNTED)) {\n      {\n        throw ReactError(Error('Unable to find node on an unmounted component.'));\n      }\n    }\n  })();\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n  var alternate = fiber.alternate;\n  if (!alternate) {\n    // If there is no alternate, then we only need to check if it is mounted.\n    var state = isFiberMountedImpl(fiber);\n    (function () {\n      if (!(state !== UNMOUNTED)) {\n        {\n          throw ReactError(Error('Unable to find node on an unmounted component.'));\n        }\n      }\n    })();\n    if (state === MOUNTING) {\n      return null;\n    }\n    return fiber;\n  }\n  // If we have two possible branches, we'll walk backwards up to the root\n  // to see what path the root points to. On the way we may hit one of the\n  // special cases and we'll deal with them.\n  var a = fiber;\n  var b = alternate;\n  while (true) {\n    var parentA = a.return;\n    if (parentA === null) {\n      // We're at the root.\n      break;\n    }\n    var parentB = parentA.alternate;\n    if (parentB === null) {\n      // There is no alternate. This is an unusual case. Currently, it only\n      // happens when a Suspense component is hidden. An extra fragment fiber\n      // is inserted in between the Suspense fiber and its children. Skip\n      // over this extra fragment fiber and proceed to the next parent.\n      var nextParent = parentA.return;\n      if (nextParent !== null) {\n        a = b = nextParent;\n        continue;\n      }\n      // If there's no parent, we're at the root.\n      break;\n    }\n\n    // If both copies of the parent fiber point to the same child, we can\n    // assume that the child is current. This happens when we bailout on low\n    // priority: the bailed out fiber's child reuses the current child.\n    if (parentA.child === parentB.child) {\n      var child = parentA.child;\n      while (child) {\n        if (child === a) {\n          // We've determined that A is the current branch.\n          assertIsMounted(parentA);\n          return fiber;\n        }\n        if (child === b) {\n          // We've determined that B is the current branch.\n          assertIsMounted(parentA);\n          return alternate;\n        }\n        child = child.sibling;\n      }\n      // We should never have an alternate for any mounting node. So the only\n      // way this could possibly happen is if this was unmounted, if at all.\n      (function () {\n        {\n          {\n            throw ReactError(Error('Unable to find node on an unmounted component.'));\n          }\n        }\n      })();\n    }\n\n    if (a.return !== b.return) {\n      // The return pointer of A and the return pointer of B point to different\n      // fibers. We assume that return pointers never criss-cross, so A must\n      // belong to the child set of A.return, and B must belong to the child\n      // set of B.return.\n      a = parentA;\n      b = parentB;\n    } else {\n      // The return pointers point to the same fiber. We'll have to use the\n      // default, slow path: scan the child sets of each parent alternate to see\n      // which child belongs to which set.\n      //\n      // Search parent A's child set\n      var didFindChild = false;\n      var _child = parentA.child;\n      while (_child) {\n        if (_child === a) {\n          didFindChild = true;\n          a = parentA;\n          b = parentB;\n          break;\n        }\n        if (_child === b) {\n          didFindChild = true;\n          b = parentA;\n          a = parentB;\n          break;\n        }\n        _child = _child.sibling;\n      }\n      if (!didFindChild) {\n        // Search parent B's child set\n        _child = parentB.child;\n        while (_child) {\n          if (_child === a) {\n            didFindChild = true;\n            a = parentB;\n            b = parentA;\n            break;\n          }\n          if (_child === b) {\n            didFindChild = true;\n            b = parentB;\n            a = parentA;\n            break;\n          }\n          _child = _child.sibling;\n        }\n        (function () {\n          if (!didFindChild) {\n            {\n              throw ReactError(Error('Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.'));\n            }\n          }\n        })();\n      }\n    }\n\n    (function () {\n      if (!(a.alternate === b)) {\n        {\n          throw ReactError(Error('Return fibers should always be each others\\' alternates. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n  // If the root is not a host container, we're in a disconnected tree. I.e.\n  // unmounted.\n  (function () {\n    if (!(a.tag === HostRoot)) {\n      {\n        throw ReactError(Error('Unable to find node on an unmounted component.'));\n      }\n    }\n  })();\n  if (a.stateNode.current === a) {\n    // We've determined that A is the current branch.\n    return fiber;\n  }\n  // Otherwise B has to be current branch.\n  return alternate;\n}\n\nfunction findCurrentHostFiber(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  if (!currentParent) {\n    return null;\n  }\n\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  var node = currentParent;\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText) {\n      return node;\n    } else if (node.child) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === currentParent) {\n      return null;\n    }\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n  return null;\n}\n\nfunction findCurrentHostFiberWithNoPortals(parent) {\n  var currentParent = findCurrentFiberUsingSlowPath(parent);\n  if (!currentParent) {\n    return null;\n  }\n\n  // Next we'll drill down this component to find the first HostComponent/Text.\n  var node = currentParent;\n  while (true) {\n    if (node.tag === HostComponent || node.tag === HostText || node.tag === FundamentalComponent) {\n      return node;\n    } else if (node.child && node.tag !== HostPortal) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === currentParent) {\n      return null;\n    }\n    while (!node.sibling) {\n      if (!node.return || node.return === currentParent) {\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  // Flow needs the return null here, but ESLint complains about it.\n  // eslint-disable-next-line no-unreachable\n  return null;\n}\n\nfunction addEventBubbleListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, false);\n}\n\nfunction addEventCaptureListener(element, eventType, listener) {\n  element.addEventListener(eventType, listener, true);\n}\n\nfunction addEventCaptureListenerWithPassiveFlag(element, eventType, listener, passive) {\n  element.addEventListener(eventType, listener, {\n    capture: true,\n    passive: passive\n  });\n}\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\nvar SyntheticAnimationEvent = SyntheticEvent.extend({\n  animationName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\nvar SyntheticClipboardEvent = SyntheticEvent.extend({\n  clipboardData: function (event) {\n    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n  }\n});\n\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticFocusEvent = SyntheticUIEvent.extend({\n  relatedTarget: null\n});\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n  var charCode = void 0;\n  var keyCode = nativeEvent.keyCode;\n\n  if ('charCode' in nativeEvent) {\n    charCode = nativeEvent.charCode;\n\n    // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n    if (charCode === 0 && keyCode === 13) {\n      charCode = 13;\n    }\n  } else {\n    // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n    charCode = keyCode;\n  }\n\n  // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n  // report Enter as charCode 10 when ctrl is pressed.\n  if (charCode === 10) {\n    charCode = 13;\n  }\n\n  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n  // Must not discard the (non-)printable Enter-key.\n  if (charCode >= 32 || charCode === 13) {\n    return charCode;\n  }\n\n  return 0;\n}\n\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar normalizeKey = {\n  Esc: 'Escape',\n  Spacebar: ' ',\n  Left: 'ArrowLeft',\n  Up: 'ArrowUp',\n  Right: 'ArrowRight',\n  Down: 'ArrowDown',\n  Del: 'Delete',\n  Win: 'OS',\n  Menu: 'ContextMenu',\n  Apps: 'ContextMenu',\n  Scroll: 'ScrollLock',\n  MozPrintableKey: 'Unidentified'\n};\n\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\nvar translateToKey = {\n  '8': 'Backspace',\n  '9': 'Tab',\n  '12': 'Clear',\n  '13': 'Enter',\n  '16': 'Shift',\n  '17': 'Control',\n  '18': 'Alt',\n  '19': 'Pause',\n  '20': 'CapsLock',\n  '27': 'Escape',\n  '32': ' ',\n  '33': 'PageUp',\n  '34': 'PageDown',\n  '35': 'End',\n  '36': 'Home',\n  '37': 'ArrowLeft',\n  '38': 'ArrowUp',\n  '39': 'ArrowRight',\n  '40': 'ArrowDown',\n  '45': 'Insert',\n  '46': 'Delete',\n  '112': 'F1',\n  '113': 'F2',\n  '114': 'F3',\n  '115': 'F4',\n  '116': 'F5',\n  '117': 'F6',\n  '118': 'F7',\n  '119': 'F8',\n  '120': 'F9',\n  '121': 'F10',\n  '122': 'F11',\n  '123': 'F12',\n  '144': 'NumLock',\n  '145': 'ScrollLock',\n  '224': 'Meta'\n};\n\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\nfunction getEventKey(nativeEvent) {\n  if (nativeEvent.key) {\n    // Normalize inconsistent values reported by browsers due to\n    // implementations of a working draft specification.\n\n    // FireFox implements `key` but returns `MozPrintableKey` for all\n    // printable characters (normalized to `Unidentified`), ignore it.\n    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n    if (key !== 'Unidentified') {\n      return key;\n    }\n  }\n\n  // Browser does not implement `key`, polyfill as much of it as we can.\n  if (nativeEvent.type === 'keypress') {\n    var charCode = getEventCharCode(nativeEvent);\n\n    // The enter-key is technically both printable and non-printable and can\n    // thus be captured by `keypress`, no other non-printable key should.\n    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n  }\n  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n    // While user keyboard layout determines the actual meaning of each\n    // `keyCode` value, almost all function keys have a universal value.\n    return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n  }\n  return '';\n}\n\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticKeyboardEvent = SyntheticUIEvent.extend({\n  key: getEventKey,\n  location: null,\n  ctrlKey: null,\n  shiftKey: null,\n  altKey: null,\n  metaKey: null,\n  repeat: null,\n  locale: null,\n  getModifierState: getEventModifierState,\n  // Legacy Interface\n  charCode: function (event) {\n    // `charCode` is the result of a KeyPress event and represents the value of\n    // the actual printable character.\n\n    // KeyPress is deprecated, but its replacement is not yet final and not\n    // implemented in any major browser. Only KeyPress has charCode.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    return 0;\n  },\n  keyCode: function (event) {\n    // `keyCode` is the result of a KeyDown/Up event and represents the value of\n    // physical keyboard key.\n\n    // The actual meaning of the value depends on the users' keyboard layout\n    // which cannot be detected. Assuming that it is a US keyboard layout\n    // provides a surprisingly accurate mapping for US and European users.\n    // Due to this, it is left to the user to implement at this time.\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  },\n  which: function (event) {\n    // `which` is an alias for either `keyCode` or `charCode` depending on the\n    // type of the event.\n    if (event.type === 'keypress') {\n      return getEventCharCode(event);\n    }\n    if (event.type === 'keydown' || event.type === 'keyup') {\n      return event.keyCode;\n    }\n    return 0;\n  }\n});\n\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticDragEvent = SyntheticMouseEvent.extend({\n  dataTransfer: null\n});\n\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\nvar SyntheticTouchEvent = SyntheticUIEvent.extend({\n  touches: null,\n  targetTouches: null,\n  changedTouches: null,\n  altKey: null,\n  metaKey: null,\n  ctrlKey: null,\n  shiftKey: null,\n  getModifierState: getEventModifierState\n});\n\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\nvar SyntheticTransitionEvent = SyntheticEvent.extend({\n  propertyName: null,\n  elapsedTime: null,\n  pseudoElement: null\n});\n\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\nvar SyntheticWheelEvent = SyntheticMouseEvent.extend({\n  deltaX: function (event) {\n    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n  },\n  deltaY: function (event) {\n    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n    'wheelDelta' in event ? -event.wheelDelta : 0;\n  },\n\n  deltaZ: null,\n\n  // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n  // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n  deltaMode: null\n});\n\n/**\n * Turns\n * ['abort', ...]\n * into\n * eventTypes = {\n *   'abort': {\n *     phasedRegistrationNames: {\n *       bubbled: 'onAbort',\n *       captured: 'onAbortCapture',\n *     },\n *     dependencies: [TOP_ABORT],\n *   },\n *   ...\n * };\n * topLevelEventsToDispatchConfig = new Map([\n *   [TOP_ABORT, { sameConfig }],\n * ]);\n */\n\nvar eventTuples = [\n// Discrete events\n[TOP_BLUR, 'blur', DiscreteEvent], [TOP_CANCEL, 'cancel', DiscreteEvent], [TOP_CLICK, 'click', DiscreteEvent], [TOP_CLOSE, 'close', DiscreteEvent], [TOP_CONTEXT_MENU, 'contextMenu', DiscreteEvent], [TOP_COPY, 'copy', DiscreteEvent], [TOP_CUT, 'cut', DiscreteEvent], [TOP_AUX_CLICK, 'auxClick', DiscreteEvent], [TOP_DOUBLE_CLICK, 'doubleClick', DiscreteEvent], [TOP_DRAG_END, 'dragEnd', DiscreteEvent], [TOP_DRAG_START, 'dragStart', DiscreteEvent], [TOP_DROP, 'drop', DiscreteEvent], [TOP_FOCUS, 'focus', DiscreteEvent], [TOP_INPUT, 'input', DiscreteEvent], [TOP_INVALID, 'invalid', DiscreteEvent], [TOP_KEY_DOWN, 'keyDown', DiscreteEvent], [TOP_KEY_PRESS, 'keyPress', DiscreteEvent], [TOP_KEY_UP, 'keyUp', DiscreteEvent], [TOP_MOUSE_DOWN, 'mouseDown', DiscreteEvent], [TOP_MOUSE_UP, 'mouseUp', DiscreteEvent], [TOP_PASTE, 'paste', DiscreteEvent], [TOP_PAUSE, 'pause', DiscreteEvent], [TOP_PLAY, 'play', DiscreteEvent], [TOP_POINTER_CANCEL, 'pointerCancel', DiscreteEvent], [TOP_POINTER_DOWN, 'pointerDown', DiscreteEvent], [TOP_POINTER_UP, 'pointerUp', DiscreteEvent], [TOP_RATE_CHANGE, 'rateChange', DiscreteEvent], [TOP_RESET, 'reset', DiscreteEvent], [TOP_SEEKED, 'seeked', DiscreteEvent], [TOP_SUBMIT, 'submit', DiscreteEvent], [TOP_TOUCH_CANCEL, 'touchCancel', DiscreteEvent], [TOP_TOUCH_END, 'touchEnd', DiscreteEvent], [TOP_TOUCH_START, 'touchStart', DiscreteEvent], [TOP_VOLUME_CHANGE, 'volumeChange', DiscreteEvent],\n\n// User-blocking events\n[TOP_DRAG, 'drag', UserBlockingEvent], [TOP_DRAG_ENTER, 'dragEnter', UserBlockingEvent], [TOP_DRAG_EXIT, 'dragExit', UserBlockingEvent], [TOP_DRAG_LEAVE, 'dragLeave', UserBlockingEvent], [TOP_DRAG_OVER, 'dragOver', UserBlockingEvent], [TOP_MOUSE_MOVE, 'mouseMove', UserBlockingEvent], [TOP_MOUSE_OUT, 'mouseOut', UserBlockingEvent], [TOP_MOUSE_OVER, 'mouseOver', UserBlockingEvent], [TOP_POINTER_MOVE, 'pointerMove', UserBlockingEvent], [TOP_POINTER_OUT, 'pointerOut', UserBlockingEvent], [TOP_POINTER_OVER, 'pointerOver', UserBlockingEvent], [TOP_SCROLL, 'scroll', UserBlockingEvent], [TOP_TOGGLE, 'toggle', UserBlockingEvent], [TOP_TOUCH_MOVE, 'touchMove', UserBlockingEvent], [TOP_WHEEL, 'wheel', UserBlockingEvent],\n\n// Continuous events\n[TOP_ABORT, 'abort', ContinuousEvent], [TOP_ANIMATION_END, 'animationEnd', ContinuousEvent], [TOP_ANIMATION_ITERATION, 'animationIteration', ContinuousEvent], [TOP_ANIMATION_START, 'animationStart', ContinuousEvent], [TOP_CAN_PLAY, 'canPlay', ContinuousEvent], [TOP_CAN_PLAY_THROUGH, 'canPlayThrough', ContinuousEvent], [TOP_DURATION_CHANGE, 'durationChange', ContinuousEvent], [TOP_EMPTIED, 'emptied', ContinuousEvent], [TOP_ENCRYPTED, 'encrypted', ContinuousEvent], [TOP_ENDED, 'ended', ContinuousEvent], [TOP_ERROR, 'error', ContinuousEvent], [TOP_GOT_POINTER_CAPTURE, 'gotPointerCapture', ContinuousEvent], [TOP_LOAD, 'load', ContinuousEvent], [TOP_LOADED_DATA, 'loadedData', ContinuousEvent], [TOP_LOADED_METADATA, 'loadedMetadata', ContinuousEvent], [TOP_LOAD_START, 'loadStart', ContinuousEvent], [TOP_LOST_POINTER_CAPTURE, 'lostPointerCapture', ContinuousEvent], [TOP_PLAYING, 'playing', ContinuousEvent], [TOP_PROGRESS, 'progress', ContinuousEvent], [TOP_SEEKING, 'seeking', ContinuousEvent], [TOP_STALLED, 'stalled', ContinuousEvent], [TOP_SUSPEND, 'suspend', ContinuousEvent], [TOP_TIME_UPDATE, 'timeUpdate', ContinuousEvent], [TOP_TRANSITION_END, 'transitionEnd', ContinuousEvent], [TOP_WAITING, 'waiting', ContinuousEvent]];\n\nvar eventTypes$4 = {};\nvar topLevelEventsToDispatchConfig = {};\n\nfor (var i = 0; i < eventTuples.length; i++) {\n  var eventTuple = eventTuples[i];\n  var topEvent = eventTuple[0];\n  var event = eventTuple[1];\n  var eventPriority = eventTuple[2];\n\n  var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n  var onEvent = 'on' + capitalizedEvent;\n\n  var config = {\n    phasedRegistrationNames: {\n      bubbled: onEvent,\n      captured: onEvent + 'Capture'\n    },\n    dependencies: [topEvent],\n    eventPriority: eventPriority\n  };\n  eventTypes$4[event] = config;\n  topLevelEventsToDispatchConfig[topEvent] = config;\n}\n\n// Only used in DEV for exhaustiveness validation.\nvar knownHTMLTopLevelTypes = [TOP_ABORT, TOP_CANCEL, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_CLOSE, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_INPUT, TOP_INVALID, TOP_LOAD, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_RESET, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUBMIT, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_TOGGLE, TOP_VOLUME_CHANGE, TOP_WAITING];\n\nvar SimpleEventPlugin = {\n  eventTypes: eventTypes$4,\n\n  getEventPriority: function (topLevelType) {\n    var config = topLevelEventsToDispatchConfig[topLevelType];\n    return config !== undefined ? config.eventPriority : ContinuousEvent;\n  },\n\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];\n    if (!dispatchConfig) {\n      return null;\n    }\n    var EventConstructor = void 0;\n    switch (topLevelType) {\n      case TOP_KEY_PRESS:\n        // Firefox creates a keypress event for function keys too. This removes\n        // the unwanted keypress events. Enter is however both printable and\n        // non-printable. One would expect Tab to be as well (but it isn't).\n        if (getEventCharCode(nativeEvent) === 0) {\n          return null;\n        }\n      /* falls through */\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        EventConstructor = SyntheticKeyboardEvent;\n        break;\n      case TOP_BLUR:\n      case TOP_FOCUS:\n        EventConstructor = SyntheticFocusEvent;\n        break;\n      case TOP_CLICK:\n        // Firefox creates a click event on right mouse clicks. This removes the\n        // unwanted click events.\n        if (nativeEvent.button === 2) {\n          return null;\n        }\n      /* falls through */\n      case TOP_AUX_CLICK:\n      case TOP_DOUBLE_CLICK:\n      case TOP_MOUSE_DOWN:\n      case TOP_MOUSE_MOVE:\n      case TOP_MOUSE_UP:\n      // TODO: Disabled elements should not respond to mouse events\n      /* falls through */\n      case TOP_MOUSE_OUT:\n      case TOP_MOUSE_OVER:\n      case TOP_CONTEXT_MENU:\n        EventConstructor = SyntheticMouseEvent;\n        break;\n      case TOP_DRAG:\n      case TOP_DRAG_END:\n      case TOP_DRAG_ENTER:\n      case TOP_DRAG_EXIT:\n      case TOP_DRAG_LEAVE:\n      case TOP_DRAG_OVER:\n      case TOP_DRAG_START:\n      case TOP_DROP:\n        EventConstructor = SyntheticDragEvent;\n        break;\n      case TOP_TOUCH_CANCEL:\n      case TOP_TOUCH_END:\n      case TOP_TOUCH_MOVE:\n      case TOP_TOUCH_START:\n        EventConstructor = SyntheticTouchEvent;\n        break;\n      case TOP_ANIMATION_END:\n      case TOP_ANIMATION_ITERATION:\n      case TOP_ANIMATION_START:\n        EventConstructor = SyntheticAnimationEvent;\n        break;\n      case TOP_TRANSITION_END:\n        EventConstructor = SyntheticTransitionEvent;\n        break;\n      case TOP_SCROLL:\n        EventConstructor = SyntheticUIEvent;\n        break;\n      case TOP_WHEEL:\n        EventConstructor = SyntheticWheelEvent;\n        break;\n      case TOP_COPY:\n      case TOP_CUT:\n      case TOP_PASTE:\n        EventConstructor = SyntheticClipboardEvent;\n        break;\n      case TOP_GOT_POINTER_CAPTURE:\n      case TOP_LOST_POINTER_CAPTURE:\n      case TOP_POINTER_CANCEL:\n      case TOP_POINTER_DOWN:\n      case TOP_POINTER_MOVE:\n      case TOP_POINTER_OUT:\n      case TOP_POINTER_OVER:\n      case TOP_POINTER_UP:\n        EventConstructor = SyntheticPointerEvent;\n        break;\n      default:\n        {\n          if (knownHTMLTopLevelTypes.indexOf(topLevelType) === -1) {\n            warningWithoutStack$1(false, 'SimpleEventPlugin: Unhandled event type, `%s`. This warning ' + 'is likely caused by a bug in React. Please file an issue.', topLevelType);\n          }\n        }\n        // HTML Events\n        // @see http://www.w3.org/TR/html5/index.html#events-0\n        EventConstructor = SyntheticEvent;\n        break;\n    }\n    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);\n    accumulateTwoPhaseDispatches(event);\n    return event;\n  }\n};\n\nvar passiveBrowserEventsSupported = false;\n\n// Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nif (enableFlareAPI && canUseDOM) {\n  try {\n    var options = {};\n    // $FlowFixMe: Ignore Flow complaining about needing a value\n    Object.defineProperty(options, 'passive', {\n      get: function () {\n        passiveBrowserEventsSupported = true;\n      }\n    });\n    window.addEventListener('test', options, options);\n    window.removeEventListener('test', options, options);\n  } catch (e) {\n    passiveBrowserEventsSupported = false;\n  }\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\n// CommonJS interop named imports.\nvar UserBlockingPriority = unstable_UserBlockingPriority;\nvar runWithPriority = unstable_runWithPriority;\nvar getEventPriority = SimpleEventPlugin.getEventPriority;\n\n\nvar CALLBACK_BOOKKEEPING_POOL_SIZE = 10;\nvar callbackBookkeepingPool = [];\n\n/**\n * Find the deepest React component completely containing the root of the\n * passed-in instance (for use when entire React trees are nested within each\n * other). If React trees are not nested, returns null.\n */\nfunction findRootContainerNode(inst) {\n  // TODO: It may be a good idea to cache this to prevent unnecessary DOM\n  // traversal, but caching is difficult to do correctly without using a\n  // mutation observer to listen for all DOM changes.\n  while (inst.return) {\n    inst = inst.return;\n  }\n  if (inst.tag !== HostRoot) {\n    // This can happen if we're in a detached tree.\n    return null;\n  }\n  return inst.stateNode.containerInfo;\n}\n\n// Used to store ancestor hierarchy in top level callback\nfunction getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {\n  if (callbackBookkeepingPool.length) {\n    var instance = callbackBookkeepingPool.pop();\n    instance.topLevelType = topLevelType;\n    instance.nativeEvent = nativeEvent;\n    instance.targetInst = targetInst;\n    return instance;\n  }\n  return {\n    topLevelType: topLevelType,\n    nativeEvent: nativeEvent,\n    targetInst: targetInst,\n    ancestors: []\n  };\n}\n\nfunction releaseTopLevelCallbackBookKeeping(instance) {\n  instance.topLevelType = null;\n  instance.nativeEvent = null;\n  instance.targetInst = null;\n  instance.ancestors.length = 0;\n  if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {\n    callbackBookkeepingPool.push(instance);\n  }\n}\n\nfunction handleTopLevel(bookKeeping) {\n  var targetInst = bookKeeping.targetInst;\n\n  // Loop through the hierarchy, in case there's any nested components.\n  // It's important that we build the array of ancestors before calling any\n  // event handlers, because event handlers can modify the DOM, leading to\n  // inconsistencies with ReactMount's node cache. See #1105.\n  var ancestor = targetInst;\n  do {\n    if (!ancestor) {\n      var _ancestors = bookKeeping.ancestors;\n      _ancestors.push(ancestor);\n      break;\n    }\n    var root = findRootContainerNode(ancestor);\n    if (!root) {\n      break;\n    }\n    bookKeeping.ancestors.push(ancestor);\n    ancestor = getClosestInstanceFromNode(root);\n  } while (ancestor);\n\n  for (var i = 0; i < bookKeeping.ancestors.length; i++) {\n    targetInst = bookKeeping.ancestors[i];\n    var eventTarget = getEventTarget(bookKeeping.nativeEvent);\n    var _topLevelType = bookKeeping.topLevelType;\n    var _nativeEvent = bookKeeping.nativeEvent;\n\n    runExtractedPluginEventsInBatch(_topLevelType, targetInst, _nativeEvent, eventTarget);\n  }\n}\n\n// TODO: can we stop exporting these?\nvar _enabled = true;\n\nfunction setEnabled(enabled) {\n  _enabled = !!enabled;\n}\n\nfunction isEnabled() {\n  return _enabled;\n}\n\nfunction trapBubbledEvent(topLevelType, element) {\n  trapEventForPluginEventSystem(element, topLevelType, false);\n}\n\nfunction trapCapturedEvent(topLevelType, element) {\n  trapEventForPluginEventSystem(element, topLevelType, true);\n}\n\nfunction trapEventForResponderEventSystem(element, topLevelType, passive) {\n  if (enableFlareAPI) {\n    var rawEventName = getRawEventName(topLevelType);\n    var eventFlags = RESPONDER_EVENT_SYSTEM;\n\n    // If passive option is not supported, then the event will be\n    // active and not passive, but we flag it as using not being\n    // supported too. This way the responder event plugins know,\n    // and can provide polyfills if needed.\n    if (passive) {\n      if (passiveBrowserEventsSupported) {\n        eventFlags |= IS_PASSIVE;\n      } else {\n        eventFlags |= IS_ACTIVE;\n        eventFlags |= PASSIVE_NOT_SUPPORTED;\n        passive = false;\n      }\n    } else {\n      eventFlags |= IS_ACTIVE;\n    }\n    // Check if interactive and wrap in discreteUpdates\n    var listener = dispatchEvent.bind(null, topLevelType, eventFlags);\n    if (passiveBrowserEventsSupported) {\n      addEventCaptureListenerWithPassiveFlag(element, rawEventName, listener, passive);\n    } else {\n      addEventCaptureListener(element, rawEventName, listener);\n    }\n  }\n}\n\nfunction trapEventForPluginEventSystem(element, topLevelType, capture) {\n  var listener = void 0;\n  switch (getEventPriority(topLevelType)) {\n    case DiscreteEvent:\n      listener = dispatchDiscreteEvent.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM);\n      break;\n    case UserBlockingEvent:\n      listener = dispatchUserBlockingUpdate.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM);\n      break;\n    case ContinuousEvent:\n    default:\n      listener = dispatchEvent.bind(null, topLevelType, PLUGIN_EVENT_SYSTEM);\n      break;\n  }\n\n  var rawEventName = getRawEventName(topLevelType);\n  if (capture) {\n    addEventCaptureListener(element, rawEventName, listener);\n  } else {\n    addEventBubbleListener(element, rawEventName, listener);\n  }\n}\n\nfunction dispatchDiscreteEvent(topLevelType, eventSystemFlags, nativeEvent) {\n  flushDiscreteUpdatesIfNeeded(nativeEvent.timeStamp);\n  discreteUpdates(dispatchEvent, topLevelType, eventSystemFlags, nativeEvent);\n}\n\nfunction dispatchUserBlockingUpdate(topLevelType, eventSystemFlags, nativeEvent) {\n  if (enableUserBlockingEvents) {\n    runWithPriority(UserBlockingPriority, dispatchEvent.bind(null, topLevelType, eventSystemFlags, nativeEvent));\n  } else {\n    dispatchEvent(topLevelType, eventSystemFlags, nativeEvent);\n  }\n}\n\nfunction dispatchEventForPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, targetInst) {\n  var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst);\n\n  try {\n    // Event queue being processed in the same cycle allows\n    // `preventDefault`.\n    batchedEventUpdates(handleTopLevel, bookKeeping);\n  } finally {\n    releaseTopLevelCallbackBookKeeping(bookKeeping);\n  }\n}\n\nfunction dispatchEvent(topLevelType, eventSystemFlags, nativeEvent) {\n  if (!_enabled) {\n    return;\n  }\n  var nativeEventTarget = getEventTarget(nativeEvent);\n  var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n  if (targetInst !== null && typeof targetInst.tag === 'number' && !isFiberMounted(targetInst)) {\n    // If we get an event (ex: img onload) before committing that\n    // component's mount, ignore it for now (that is, treat it as if it was an\n    // event on a non-React tree). We might also consider queueing events and\n    // dispatching them after the mount.\n    targetInst = null;\n  }\n\n  if (enableFlareAPI) {\n    if (eventSystemFlags === PLUGIN_EVENT_SYSTEM) {\n      dispatchEventForPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, targetInst);\n    } else {\n      // React Flare event system\n      dispatchEventForResponderEventSystem(topLevelType, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n    }\n  } else {\n    dispatchEventForPluginEventSystem(topLevelType, eventSystemFlags, nativeEvent, targetInst);\n  }\n}\n\n/**\n * Summary of `ReactBrowserEventEmitter` event handling:\n *\n *  - Top-level delegation is used to trap most native browser events. This\n *    may only occur in the main thread and is the responsibility of\n *    ReactDOMEventListener, which is injected and can therefore support\n *    pluggable event sources. This is the only work that occurs in the main\n *    thread.\n *\n *  - We normalize and de-duplicate events to account for browser quirks. This\n *    may be done in the worker thread.\n *\n *  - Forward these native events (with the associated top-level type used to\n *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want\n *    to extract any synthetic events.\n *\n *  - The `EventPluginHub` will then process each event by annotating them with\n *    \"dispatches\", a sequence of listeners and IDs that care about that event.\n *\n *  - The `EventPluginHub` then dispatches the events.\n *\n * Overview of React and the event system:\n *\n * +------------+    .\n * |    DOM     |    .\n * +------------+    .\n *       |           .\n *       v           .\n * +------------+    .\n * | ReactEvent |    .\n * |  Listener  |    .\n * +------------+    .                         +-----------+\n *       |           .               +--------+|SimpleEvent|\n *       |           .               |         |Plugin     |\n * +-----|------+    .               v         +-----------+\n * |     |      |    .    +--------------+                    +------------+\n * |     +-----------.--->|EventPluginHub|                    |    Event   |\n * |            |    .    |              |     +-----------+  | Propagators|\n * | ReactEvent |    .    |              |     |TapEvent   |  |------------|\n * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|\n * |            |    .    |              |     +-----------+  |  utilities |\n * |     +-----------.--->|              |                    +------------+\n * |     |      |    .    +--------------+\n * +-----|------+    .                ^        +-----------+\n *       |           .                |        |Enter/Leave|\n *       +           .                +-------+|Plugin     |\n * +-------------+   .                         +-----------+\n * | application |   .\n * |-------------|   .\n * |             |   .\n * |             |   .\n * +-------------+   .\n *                   .\n *    React Core     .  General Purpose Event Plugin System\n */\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\nvar elementListeningSets = new PossiblyWeakMap();\n\nfunction getListeningSetForElement(element) {\n  var listeningSet = elementListeningSets.get(element);\n  if (listeningSet === undefined) {\n    listeningSet = new Set();\n    elementListeningSets.set(element, listeningSet);\n  }\n  return listeningSet;\n}\n\n/**\n * We listen for bubbled touch events on the document object.\n *\n * Firefox v8.01 (and possibly others) exhibited strange behavior when\n * mounting `onmousemove` events at some node that was not the document\n * element. The symptoms were that if your mouse is not moving over something\n * contained within that mount point (for example on the background) the\n * top-level listeners for `onmousemove` won't be called. However, if you\n * register the `mousemove` on the document object, then it will of course\n * catch all `mousemove`s. This along with iOS quirks, justifies restricting\n * top-level listeners to the document object only, at least for these\n * movement types of events and possibly all events.\n *\n * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n *\n * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but\n * they bubble to document.\n *\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @param {object} mountAt Container where to mount the listener\n */\nfunction listenTo(registrationName, mountAt) {\n  var listeningSet = getListeningSetForElement(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n    if (!listeningSet.has(dependency)) {\n      switch (dependency) {\n        case TOP_SCROLL:\n          trapCapturedEvent(TOP_SCROLL, mountAt);\n          break;\n        case TOP_FOCUS:\n        case TOP_BLUR:\n          trapCapturedEvent(TOP_FOCUS, mountAt);\n          trapCapturedEvent(TOP_BLUR, mountAt);\n          // We set the flag for a single dependency later in this function,\n          // but this ensures we mark both as attached rather than just one.\n          listeningSet.add(TOP_BLUR);\n          listeningSet.add(TOP_FOCUS);\n          break;\n        case TOP_CANCEL:\n        case TOP_CLOSE:\n          if (isEventSupported(getRawEventName(dependency))) {\n            trapCapturedEvent(dependency, mountAt);\n          }\n          break;\n        case TOP_INVALID:\n        case TOP_SUBMIT:\n        case TOP_RESET:\n          // We listen to them on the target DOM elements.\n          // Some of them bubble so we don't want them to fire twice.\n          break;\n        default:\n          // By default, listen on the top level to all non-media events.\n          // Media events don't bubble so adding the listener wouldn't do anything.\n          var isMediaEvent = mediaEventTypes.indexOf(dependency) !== -1;\n          if (!isMediaEvent) {\n            trapBubbledEvent(dependency, mountAt);\n          }\n          break;\n      }\n      listeningSet.add(dependency);\n    }\n  }\n}\n\nfunction isListeningToAllDependencies(registrationName, mountAt) {\n  var listeningSet = getListeningSetForElement(mountAt);\n  var dependencies = registrationNameDependencies[registrationName];\n\n  for (var i = 0; i < dependencies.length; i++) {\n    var dependency = dependencies[i];\n    if (!listeningSet.has(dependency)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getActiveElement(doc) {\n  doc = doc || (typeof document !== 'undefined' ? document : undefined);\n  if (typeof doc === 'undefined') {\n    return null;\n  }\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\nfunction getLeafNode(node) {\n  while (node && node.firstChild) {\n    node = node.firstChild;\n  }\n  return node;\n}\n\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\nfunction getSiblingNode(node) {\n  while (node) {\n    if (node.nextSibling) {\n      return node.nextSibling;\n    }\n    node = node.parentNode;\n  }\n}\n\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  var nodeStart = 0;\n  var nodeEnd = 0;\n\n  while (node) {\n    if (node.nodeType === TEXT_NODE) {\n      nodeEnd = nodeStart + node.textContent.length;\n\n      if (nodeStart <= offset && nodeEnd >= offset) {\n        return {\n          node: node,\n          offset: offset - nodeStart\n        };\n      }\n\n      nodeStart = nodeEnd;\n    }\n\n    node = getLeafNode(getSiblingNode(node));\n  }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\nfunction getOffsets(outerNode) {\n  var ownerDocument = outerNode.ownerDocument;\n\n  var win = ownerDocument && ownerDocument.defaultView || window;\n  var selection = win.getSelection && win.getSelection();\n\n  if (!selection || selection.rangeCount === 0) {\n    return null;\n  }\n\n  var anchorNode = selection.anchorNode,\n      anchorOffset = selection.anchorOffset,\n      focusNode = selection.focusNode,\n      focusOffset = selection.focusOffset;\n\n  // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n  // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n  // expose properties, triggering a \"Permission denied error\" if any of its\n  // properties are accessed. The only seemingly possible way to avoid erroring\n  // is to access a property that typically works for non-anonymous divs and\n  // catch any error that may otherwise arise. See\n  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n  try {\n    /* eslint-disable no-unused-expressions */\n    anchorNode.nodeType;\n    focusNode.nodeType;\n    /* eslint-enable no-unused-expressions */\n  } catch (e) {\n    return null;\n  }\n\n  return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n  var length = 0;\n  var start = -1;\n  var end = -1;\n  var indexWithinAnchor = 0;\n  var indexWithinFocus = 0;\n  var node = outerNode;\n  var parentNode = null;\n\n  outer: while (true) {\n    var next = null;\n\n    while (true) {\n      if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n        start = length + anchorOffset;\n      }\n      if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n        end = length + focusOffset;\n      }\n\n      if (node.nodeType === TEXT_NODE) {\n        length += node.nodeValue.length;\n      }\n\n      if ((next = node.firstChild) === null) {\n        break;\n      }\n      // Moving from `node` to its first child `next`.\n      parentNode = node;\n      node = next;\n    }\n\n    while (true) {\n      if (node === outerNode) {\n        // If `outerNode` has children, this is always the second time visiting\n        // it. If it has no children, this is still the first loop, and the only\n        // valid selection is anchorNode and focusNode both equal to this node\n        // and both offsets 0, in which case we will have handled above.\n        break outer;\n      }\n      if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n        start = length;\n      }\n      if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n        end = length;\n      }\n      if ((next = node.nextSibling) !== null) {\n        break;\n      }\n      node = parentNode;\n      parentNode = node.parentNode;\n    }\n\n    // Moving from `node` to its next sibling `next`.\n    node = next;\n  }\n\n  if (start === -1 || end === -1) {\n    // This should never happen. (Would happen if the anchor/focus nodes aren't\n    // actually inside the passed-in node.)\n    return null;\n  }\n\n  return {\n    start: start,\n    end: end\n  };\n}\n\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\nfunction setOffsets(node, offsets) {\n  var doc = node.ownerDocument || document;\n  var win = doc && doc.defaultView || window;\n\n  // Edge fails with \"Object expected\" in some scenarios.\n  // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n  // fails when pasting 100+ items)\n  if (!win.getSelection) {\n    return;\n  }\n\n  var selection = win.getSelection();\n  var length = node.textContent.length;\n  var start = Math.min(offsets.start, length);\n  var end = offsets.end === undefined ? start : Math.min(offsets.end, length);\n\n  // IE 11 uses modern selection, but doesn't support the extend method.\n  // Flip backward selections, so we can set with a single range.\n  if (!selection.extend && start > end) {\n    var temp = end;\n    end = start;\n    start = temp;\n  }\n\n  var startMarker = getNodeForCharacterOffset(node, start);\n  var endMarker = getNodeForCharacterOffset(node, end);\n\n  if (startMarker && endMarker) {\n    if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n      return;\n    }\n    var range = doc.createRange();\n    range.setStart(startMarker.node, startMarker.offset);\n    selection.removeAllRanges();\n\n    if (start > end) {\n      selection.addRange(range);\n      selection.extend(endMarker.node, endMarker.offset);\n    } else {\n      range.setEnd(endMarker.node, endMarker.offset);\n      selection.addRange(range);\n    }\n  }\n}\n\nfunction isTextNode(node) {\n  return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n  if (!outerNode || !innerNode) {\n    return false;\n  } else if (outerNode === innerNode) {\n    return true;\n  } else if (isTextNode(outerNode)) {\n    return false;\n  } else if (isTextNode(innerNode)) {\n    return containsNode(outerNode, innerNode.parentNode);\n  } else if ('contains' in outerNode) {\n    return outerNode.contains(innerNode);\n  } else if (outerNode.compareDocumentPosition) {\n    return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n  } else {\n    return false;\n  }\n}\n\nfunction isInDocument(node) {\n  return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n  try {\n    // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n    // to throw, e.g. if it has a cross-origin src attribute.\n    // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n    // iframe.contentDocument.defaultView;\n    // A safety way is to access one of the cross origin properties: Window or Location\n    // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n    // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n\n    return typeof iframe.contentWindow.location.href === 'string';\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction getActiveElementDeep() {\n  var win = window;\n  var element = getActiveElement();\n  while (element instanceof win.HTMLIFrameElement) {\n    if (isSameOriginFrame(element)) {\n      win = element.contentWindow;\n    } else {\n      return element;\n    }\n    element = getActiveElement(win.document);\n  }\n  return element;\n}\n\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\nfunction hasSelectionCapabilities(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\n\nfunction getSelectionInformation() {\n  var focusedElem = getActiveElementDeep();\n  return {\n    focusedElem: focusedElem,\n    selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection$1(focusedElem) : null\n  };\n}\n\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\nfunction restoreSelection(priorSelectionInformation) {\n  var curFocusedElem = getActiveElementDeep();\n  var priorFocusedElem = priorSelectionInformation.focusedElem;\n  var priorSelectionRange = priorSelectionInformation.selectionRange;\n  if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n    if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n      setSelection(priorFocusedElem, priorSelectionRange);\n    }\n\n    // Focusing a node can change the scroll position, which is undesirable\n    var ancestors = [];\n    var ancestor = priorFocusedElem;\n    while (ancestor = ancestor.parentNode) {\n      if (ancestor.nodeType === ELEMENT_NODE) {\n        ancestors.push({\n          element: ancestor,\n          left: ancestor.scrollLeft,\n          top: ancestor.scrollTop\n        });\n      }\n    }\n\n    if (typeof priorFocusedElem.focus === 'function') {\n      priorFocusedElem.focus();\n    }\n\n    for (var i = 0; i < ancestors.length; i++) {\n      var info = ancestors[i];\n      info.element.scrollLeft = info.left;\n      info.element.scrollTop = info.top;\n    }\n  }\n}\n\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\nfunction getSelection$1(input) {\n  var selection = void 0;\n\n  if ('selectionStart' in input) {\n    // Modern browser with input or textarea.\n    selection = {\n      start: input.selectionStart,\n      end: input.selectionEnd\n    };\n  } else {\n    // Content editable or old IE textarea.\n    selection = getOffsets(input);\n  }\n\n  return selection || { start: 0, end: 0 };\n}\n\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input     Set selection bounds of this input or textarea\n * -@offsets   Object of same form that is returned from get*\n */\nfunction setSelection(input, offsets) {\n  var start = offsets.start,\n      end = offsets.end;\n\n  if (end === undefined) {\n    end = start;\n  }\n\n  if ('selectionStart' in input) {\n    input.selectionStart = start;\n    input.selectionEnd = Math.min(end, input.value.length);\n  } else {\n    setOffsets(input, offsets);\n  }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nvar eventTypes$3 = {\n  select: {\n    phasedRegistrationNames: {\n      bubbled: 'onSelect',\n      captured: 'onSelectCapture'\n    },\n    dependencies: [TOP_BLUR, TOP_CONTEXT_MENU, TOP_DRAG_END, TOP_FOCUS, TOP_KEY_DOWN, TOP_KEY_UP, TOP_MOUSE_DOWN, TOP_MOUSE_UP, TOP_SELECTION_CHANGE]\n  }\n};\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n *\n * @param {DOMElement} node\n * @return {object}\n */\nfunction getSelection(node) {\n  if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n    return {\n      start: node.selectionStart,\n      end: node.selectionEnd\n    };\n  } else {\n    var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n    var selection = win.getSelection();\n    return {\n      anchorNode: selection.anchorNode,\n      anchorOffset: selection.anchorOffset,\n      focusNode: selection.focusNode,\n      focusOffset: selection.focusOffset\n    };\n  }\n}\n\n/**\n * Get document associated with the event target.\n *\n * @param {object} nativeEventTarget\n * @return {Document}\n */\nfunction getEventTargetDocument(eventTarget) {\n  return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\nfunction constructSelectEvent(nativeEvent, nativeEventTarget) {\n  // Ensure we have the right element, and that the user is not dragging a\n  // selection (this matches native `select` event behavior). In HTML5, select\n  // fires only on input and textarea thus if there's no focused element we\n  // won't dispatch.\n  var doc = getEventTargetDocument(nativeEventTarget);\n\n  if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n    return null;\n  }\n\n  // Only fire when selection has actually changed.\n  var currentSelection = getSelection(activeElement$1);\n  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n    lastSelection = currentSelection;\n\n    var syntheticEvent = SyntheticEvent.getPooled(eventTypes$3.select, activeElementInst$1, nativeEvent, nativeEventTarget);\n\n    syntheticEvent.type = 'select';\n    syntheticEvent.target = activeElement$1;\n\n    accumulateTwoPhaseDispatches(syntheticEvent);\n\n    return syntheticEvent;\n  }\n\n  return null;\n}\n\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\nvar SelectEventPlugin = {\n  eventTypes: eventTypes$3,\n\n  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n    var doc = getEventTargetDocument(nativeEventTarget);\n    // Track whether all listeners exists for this plugin. If none exist, we do\n    // not extract events. See #3639.\n    if (!doc || !isListeningToAllDependencies('onSelect', doc)) {\n      return null;\n    }\n\n    var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;\n\n    switch (topLevelType) {\n      // Track the input node that has focus.\n      case TOP_FOCUS:\n        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n          activeElement$1 = targetNode;\n          activeElementInst$1 = targetInst;\n          lastSelection = null;\n        }\n        break;\n      case TOP_BLUR:\n        activeElement$1 = null;\n        activeElementInst$1 = null;\n        lastSelection = null;\n        break;\n      // Don't fire the event while the user is dragging. This matches the\n      // semantics of the native select event.\n      case TOP_MOUSE_DOWN:\n        mouseDown = true;\n        break;\n      case TOP_CONTEXT_MENU:\n      case TOP_MOUSE_UP:\n      case TOP_DRAG_END:\n        mouseDown = false;\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n      // Chrome and IE fire non-standard event when selection is changed (and\n      // sometimes when it hasn't). IE's event fires out of order with respect\n      // to key and input events on deletion, so we discard it.\n      //\n      // Firefox doesn't support selectionchange, so check selection status\n      // after each key entry. The selection changes after keydown and before\n      // keyup, but we check on keydown as well in the case of holding down a\n      // key, when multiple keydown events are fired but only one keyup is.\n      // This is also our approach for IE handling, for the reason above.\n      case TOP_SELECTION_CHANGE:\n        if (skipSelectionChangeEvent) {\n          break;\n        }\n      // falls through\n      case TOP_KEY_DOWN:\n      case TOP_KEY_UP:\n        return constructSelectEvent(nativeEvent, nativeEventTarget);\n    }\n\n    return null;\n  }\n};\n\n/**\n * Inject modules for resolving DOM hierarchy and plugin ordering.\n */\ninjection.injectEventPluginOrder(DOMEventPluginOrder);\nsetComponentTree(getFiberCurrentPropsFromNode$1, getInstanceFromNode$1, getNodeFromInstance$1);\n\n/**\n * Some important event plugins included by default (without having to require\n * them).\n */\ninjection.injectEventPluginsByName({\n  SimpleEventPlugin: SimpleEventPlugin,\n  EnterLeaveEventPlugin: EnterLeaveEventPlugin,\n  ChangeEventPlugin: ChangeEventPlugin,\n  SelectEventPlugin: SelectEventPlugin,\n  BeforeInputEventPlugin: BeforeInputEventPlugin\n});\n\nfunction endsWith(subject, search) {\n  var length = subject.length;\n  return subject.substring(length - search.length, length) === search;\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n  var content = '';\n\n  // Flatten children. We'll warn if they are invalid\n  // during validateProps() which runs for hydration too.\n  // Note that this would throw on non-element objects.\n  // Elements are stringified (which is normally irrelevant\n  // but matters for <fbt>).\n  React.Children.forEach(children, function (child) {\n    if (child == null) {\n      return;\n    }\n    content += child;\n    // Note: we don't warn about invalid children here.\n    // Instead, this is done separately below so that\n    // it happens during the hydration codepath too.\n  });\n\n  return content;\n}\n\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\nfunction validateProps(element, props) {\n  {\n    // This mirrors the codepath above, but runs for hydration too.\n    // Warn about invalid children here so that client and hydration are consistent.\n    // TODO: this seems like it could cause a DEV-only throw for hydration\n    // if children contains a non-element object. We should try to avoid that.\n    if (typeof props.children === 'object' && props.children !== null) {\n      React.Children.forEach(props.children, function (child) {\n        if (child == null) {\n          return;\n        }\n        if (typeof child === 'string' || typeof child === 'number') {\n          return;\n        }\n        if (typeof child.type !== 'string') {\n          return;\n        }\n        if (!didWarnInvalidChild) {\n          didWarnInvalidChild = true;\n          warning$1(false, 'Only strings and numbers are supported as <option> children.');\n        }\n      });\n    }\n\n    // TODO: Remove support for `selected` in <option>.\n    if (props.selected != null && !didWarnSelectedSetOnOption) {\n      warning$1(false, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n      didWarnSelectedSetOnOption = true;\n    }\n  }\n}\n\nfunction postMountWrapper$1(element, props) {\n  // value=\"\" should make a value attribute (#6219)\n  if (props.value != null) {\n    element.setAttribute('value', toString(getToStringValue(props.value)));\n  }\n}\n\nfunction getHostProps$1(element, props) {\n  var hostProps = _assign({ children: undefined }, props);\n  var content = flattenChildren(props.children);\n\n  if (content) {\n    hostProps.children = content;\n  }\n\n  return hostProps;\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnValueDefaultValue$1 = void 0;\n\n{\n  didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n  if (ownerName) {\n    return '\\n\\nCheck the render method of `' + ownerName + '`.';\n  }\n  return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n\n/**\n * Validation function for `value` and `defaultValue`.\n */\nfunction checkSelectPropTypes(props) {\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.%s', propName, getDeclarationErrorAddendum());\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.%s', propName, getDeclarationErrorAddendum());\n    }\n  }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n  var options = node.options;\n\n  if (multiple) {\n    var selectedValues = propValue;\n    var selectedValue = {};\n    for (var i = 0; i < selectedValues.length; i++) {\n      // Prefix to avoid chaos with special keys.\n      selectedValue['$' + selectedValues[i]] = true;\n    }\n    for (var _i = 0; _i < options.length; _i++) {\n      var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n      if (options[_i].selected !== selected) {\n        options[_i].selected = selected;\n      }\n      if (selected && setDefaultSelected) {\n        options[_i].defaultSelected = true;\n      }\n    }\n  } else {\n    // Do not set `select.value` as exact behavior isn't consistent across all\n    // browsers for all cases.\n    var _selectedValue = toString(getToStringValue(propValue));\n    var defaultSelected = null;\n    for (var _i2 = 0; _i2 < options.length; _i2++) {\n      if (options[_i2].value === _selectedValue) {\n        options[_i2].selected = true;\n        if (setDefaultSelected) {\n          options[_i2].defaultSelected = true;\n        }\n        return;\n      }\n      if (defaultSelected === null && !options[_i2].disabled) {\n        defaultSelected = options[_i2];\n      }\n    }\n    if (defaultSelected !== null) {\n      defaultSelected.selected = true;\n    }\n  }\n}\n\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\nfunction getHostProps$2(element, props) {\n  return _assign({}, props, {\n    value: undefined\n  });\n}\n\nfunction initWrapperState$1(element, props) {\n  var node = element;\n  {\n    checkSelectPropTypes(props);\n  }\n\n  node._wrapperState = {\n    wasMultiple: !!props.multiple\n  };\n\n  {\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n      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      didWarnValueDefaultValue$1 = true;\n    }\n  }\n}\n\nfunction postMountWrapper$2(element, props) {\n  var node = element;\n  node.multiple = !!props.multiple;\n  var value = props.value;\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (props.defaultValue != null) {\n    updateOptions(node, !!props.multiple, props.defaultValue, true);\n  }\n}\n\nfunction postUpdateWrapper(element, props) {\n  var node = element;\n  var wasMultiple = node._wrapperState.wasMultiple;\n  node._wrapperState.wasMultiple = !!props.multiple;\n\n  var value = props.value;\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  } else if (wasMultiple !== !!props.multiple) {\n    // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n    if (props.defaultValue != null) {\n      updateOptions(node, !!props.multiple, props.defaultValue, true);\n    } else {\n      // Revert the select back to its default unselected state.\n      updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n    }\n  }\n}\n\nfunction restoreControlledState$2(element, props) {\n  var node = element;\n  var value = props.value;\n\n  if (value != null) {\n    updateOptions(node, !!props.multiple, value, false);\n  }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\n\nfunction getHostProps$3(element, props) {\n  var node = element;\n  (function () {\n    if (!(props.dangerouslySetInnerHTML == null)) {\n      {\n        throw ReactError(Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.'));\n      }\n    }\n  })();\n\n  // Always set children to the same thing. In IE9, the selection range will\n  // get reset if `textContent` is mutated.  We could add a check in setTextContent\n  // to only set the value if/when the value differs from the node value (which would\n  // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n  // solution. The value can be a boolean or object so that's why it's forced\n  // to be a string.\n  var hostProps = _assign({}, props, {\n    value: undefined,\n    defaultValue: undefined,\n    children: toString(node._wrapperState.initialValue)\n  });\n\n  return hostProps;\n}\n\nfunction initWrapperState$2(element, props) {\n  var node = element;\n  {\n    ReactControlledValuePropTypes.checkPropTypes('textarea', props);\n    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n      warning$1(false, '%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnValDefaultVal = true;\n    }\n  }\n\n  var initialValue = props.value;\n\n  // Only bother fetching default value if we're going to use it\n  if (initialValue == null) {\n    var defaultValue = props.defaultValue;\n    // TODO (yungsters): Remove support for children content in <textarea>.\n    var children = props.children;\n    if (children != null) {\n      {\n        warning$1(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n      }\n      (function () {\n        if (!(defaultValue == null)) {\n          {\n            throw ReactError(Error('If you supply `defaultValue` on a <textarea>, do not pass children.'));\n          }\n        }\n      })();\n      if (Array.isArray(children)) {\n        (function () {\n          if (!(children.length <= 1)) {\n            {\n              throw ReactError(Error('<textarea> can only have at most one child.'));\n            }\n          }\n        })();\n        children = children[0];\n      }\n\n      defaultValue = children;\n    }\n    if (defaultValue == null) {\n      defaultValue = '';\n    }\n    initialValue = defaultValue;\n  }\n\n  node._wrapperState = {\n    initialValue: getToStringValue(initialValue)\n  };\n}\n\nfunction updateWrapper$1(element, props) {\n  var node = element;\n  var value = getToStringValue(props.value);\n  var defaultValue = getToStringValue(props.defaultValue);\n  if (value != null) {\n    // Cast `value` to a string to ensure the value is set correctly. While\n    // browsers typically do this as necessary, jsdom doesn't.\n    var newValue = toString(value);\n    // To avoid side effects (such as losing text selection), only set value if changed\n    if (newValue !== node.value) {\n      node.value = newValue;\n    }\n    if (props.defaultValue == null && node.defaultValue !== newValue) {\n      node.defaultValue = newValue;\n    }\n  }\n  if (defaultValue != null) {\n    node.defaultValue = toString(defaultValue);\n  }\n}\n\nfunction postMountWrapper$3(element, props) {\n  var node = element;\n  // This is in postMount because we need access to the DOM node, which is not\n  // available until after the component has mounted.\n  var textContent = node.textContent;\n\n  // Only set node.value if textContent is equal to the expected\n  // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n  // will populate textContent as well.\n  // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n  if (textContent === node._wrapperState.initialValue) {\n    node.value = textContent;\n  }\n}\n\nfunction restoreControlledState$3(element, props) {\n  // DOM component is still mounted; update\n  updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE$1 = '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$1,\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$1;\n  }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE$1) {\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$1;\n  }\n  // By default, pass namespace below.\n  return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n    return function (arg0, arg1, arg2, arg3) {\n      MSApp.execUnsafeLocalFunction(function () {\n        return func(arg0, arg1, arg2, arg3);\n      });\n    };\n  } else {\n    return func;\n  }\n};\n\n// SVG temp container for IE lacking innerHTML\nvar reusableSVGContainer = void 0;\n\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n  // IE does not have innerHTML for SVG nodes, so instead we inject the\n  // new markup in a temp node and then move the child nodes across into\n  // the target node\n\n  if (node.namespaceURI === Namespaces.svg && !('innerHTML' in node)) {\n    reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n    reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';\n    var svgNode = reusableSVGContainer.firstChild;\n    while (node.firstChild) {\n      node.removeChild(node.firstChild);\n    }\n    while (svgNode.firstChild) {\n      node.appendChild(svgNode.firstChild);\n    }\n  } else {\n    node.innerHTML = html;\n  }\n});\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\nvar setTextContent = function (node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n\n    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n  node.textContent = text;\n};\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n  animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n  background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n  backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n  border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n  borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n  borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n  borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n  borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n  borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n  borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n  borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n  borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n  borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n  borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n  borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n  borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n  columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n  columns: ['columnCount', 'columnWidth'],\n  flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n  flexFlow: ['flexDirection', 'flexWrap'],\n  font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n  fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n  gap: ['columnGap', 'rowGap'],\n  grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n  gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n  gridColumnGap: ['columnGap'],\n  gridGap: ['columnGap', 'rowGap'],\n  gridRow: ['gridRowEnd', 'gridRowStart'],\n  gridRowGap: ['rowGap'],\n  gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n  listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n  margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n  marker: ['markerEnd', 'markerMid', 'markerStart'],\n  mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n  maskPosition: ['maskPositionX', 'maskPositionY'],\n  outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n  overflow: ['overflowX', 'overflowY'],\n  padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n  placeContent: ['alignContent', 'justifyContent'],\n  placeItems: ['alignItems', 'justifyItems'],\n  placeSelf: ['alignSelf', 'justifySelf'],\n  textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n  textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n  transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n  wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  columns: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridArea: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\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\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\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\nfunction createDangerousStringForStyles(styles) {\n  {\n    var serialized = '';\n    var delimiter = '';\n    for (var styleName in styles) {\n      if (!styles.hasOwnProperty(styleName)) {\n        continue;\n      }\n      var styleValue = styles[styleName];\n      if (styleValue != null) {\n        var isCustomProperty = styleName.indexOf('--') === 0;\n        serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n        serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n        delimiter = ';';\n      }\n    }\n    return serialized || null;\n  }\n}\n\n/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\nfunction setValueForStyles(node, styles) {\n  var style = node.style;\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n    var isCustomProperty = styleName.indexOf('--') === 0;\n    {\n      if (!isCustomProperty) {\n        warnValidStyle$1(styleName, styles[styleName]);\n      }\n    }\n    var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n    if (styleName === 'float') {\n      styleName = 'cssFloat';\n    }\n    if (isCustomProperty) {\n      style.setProperty(styleName, styleValue);\n    } else {\n      style[styleName] = styleValue;\n    }\n  }\n}\n\nfunction isValueEmpty(value) {\n  return value == null || typeof value === 'boolean' || value === '';\n}\n\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n *   color: 'color',\n *   overflowX: 'overflow',\n *   overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\nfunction expandShorthandMap(styles) {\n  var expanded = {};\n  for (var key in styles) {\n    var longhands = shorthandToLonghand[key] || [key];\n    for (var i = 0; i < longhands.length; i++) {\n      expanded[longhands[i]] = key;\n    }\n  }\n  return expanded;\n}\n\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n *   becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n *   {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n *   becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n *   becomes .style.fontVariant = ''\n */\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n  if (!warnAboutShorthandPropertyCollision) {\n    return;\n  }\n\n  if (!nextStyles) {\n    return;\n  }\n\n  var expandedUpdates = expandShorthandMap(styleUpdates);\n  var expandedStyles = expandShorthandMap(nextStyles);\n  var warnedAbout = {};\n  for (var key in expandedUpdates) {\n    var originalKey = expandedUpdates[key];\n    var correctOriginalKey = expandedStyles[key];\n    if (correctOriginalKey && originalKey !== correctOriginalKey) {\n      var warningKey = originalKey + ',' + correctOriginalKey;\n      if (warnedAbout[warningKey]) {\n        continue;\n      }\n      warnedAbout[warningKey] = true;\n      warning$1(false, '%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n    }\n  }\n}\n\n// 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$1 = '__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    (function () {\n      if (!(props.children == null && props.dangerouslySetInnerHTML == null)) {\n        {\n          throw ReactError(Error(tag + ' is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.' + (ReactDebugCurrentFrame$3.getStackAddendum())));\n        }\n      }\n    })();\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    (function () {\n      if (!(props.children == null)) {\n        {\n          throw ReactError(Error('Can only set one of `children` or `props.dangerouslySetInnerHTML`.'));\n        }\n      }\n    })();\n    (function () {\n      if (!(typeof props.dangerouslySetInnerHTML === 'object' && HTML$1 in props.dangerouslySetInnerHTML)) {\n        {\n          throw ReactError(Error('`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.'));\n        }\n      }\n    })();\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  (function () {\n    if (!(props.style == null || typeof props.style === 'object')) {\n      {\n        throw ReactError(Error('The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.' + (ReactDebugCurrentFrame$3.getStackAddendum())));\n      }\n    }\n  })();\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\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  disablepictureinpicture: 'disablePictureInPicture',\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 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\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\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar didWarnInvalidHydration = false;\nvar didWarnShadyDOM = false;\n\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE$1 = 'style';\nvar HTML = '__html';\nvar LISTENERS = 'listeners';\n\nvar HTML_NAMESPACE = Namespaces.html;\n\n\nvar warnedUnknownTags = void 0;\nvar suppressHydrationWarning = void 0;\n\nvar validatePropertiesInDevelopment = void 0;\nvar warnForTextDifference = void 0;\nvar warnForPropDifference = void 0;\nvar warnForExtraAttributes = void 0;\nvar warnForInvalidEventListener = void 0;\nvar canDiffStyleForHydrationWarning = void 0;\n\nvar normalizeMarkupForTextOrAttribute = void 0;\nvar normalizeHTML = void 0;\n\n{\n  warnedUnknownTags = {\n    // Chrome is the only major browser not shipping <time>. But as of July\n    // 2017 it intends to ship it due to widespread usage. We intentionally\n    // *don't* warn for <time> even if it's unrecognized by Chrome because\n    // it soon will be, and many apps have been using it anyway.\n    time: true,\n    // There are working polyfills for <dialog>. Let people use it.\n    dialog: true,\n    // Electron ships a custom <webview> tag to display external web content in\n    // an isolated frame and process.\n    // This tag is not present in non Electron environments such as JSDom which\n    // is often used for testing purposes.\n    // @see https://electronjs.org/docs/api/webview-tag\n    webview: true\n  };\n\n  validatePropertiesInDevelopment = function (type, props) {\n    validateProperties(type, props);\n    validateProperties$1(type, props);\n    validateProperties$2(type, props, /* canUseEventSystem */true);\n  };\n\n  // IE 11 parses & normalizes the style attribute as opposed to other\n  // browsers. It adds spaces and sorts the properties in some\n  // non-alphabetical order. Handling that would require sorting CSS\n  // properties in the client & server versions or applying\n  // `expectedStyle` to a temporary DOM node to read its `style` attribute\n  // normalized. Since it only affects IE, we're skipping style warnings\n  // in that browser completely in favor of doing all that work.\n  // See https://github.com/facebook/react/issues/11807\n  canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode;\n\n  // HTML parsing normalizes CR and CRLF to LF.\n  // It also can turn \\u0000 into \\uFFFD inside attributes.\n  // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n  // If we have a mismatch, it might be caused by that.\n  // We will still patch up in this case but not fire the warning.\n  var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n  var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n  normalizeMarkupForTextOrAttribute = function (markup) {\n    var markupString = typeof markup === 'string' ? markup : '' + markup;\n    return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n  };\n\n  warnForTextDifference = function (serverText, clientText) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n    var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n    if (normalizedServerText === normalizedClientText) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n  };\n\n  warnForPropDifference = function (propName, serverValue, clientValue) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n    var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n    if (normalizedServerValue === normalizedClientValue) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n  };\n\n  warnForExtraAttributes = function (attributeNames) {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    var names = [];\n    attributeNames.forEach(function (name) {\n      names.push(name);\n    });\n    warningWithoutStack$1(false, 'Extra attributes from the server: %s', names);\n  };\n\n  warnForInvalidEventListener = function (registrationName, listener) {\n    if (listener === false) {\n      warning$1(false, 'Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n    } else {\n      warning$1(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n    }\n  };\n\n  // Parse the HTML and read it back to normalize the HTML string so that it\n  // can be used for comparison.\n  normalizeHTML = function (parent, html) {\n    // We could have created a separate document here to avoid\n    // re-initializing custom elements if they exist. But this breaks\n    // how <noscript> is being handled. So we use the same document.\n    // See the discussion in https://github.com/facebook/react/pull/11157.\n    var testElement = parent.namespaceURI === HTML_NAMESPACE ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n    testElement.innerHTML = html;\n    return testElement.innerHTML;\n  };\n}\n\nfunction ensureListeningTo(rootContainerElement, registrationName) {\n  var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE;\n  var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;\n  listenTo(registrationName, doc);\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n  return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n  // Mobile Safari does not fire properly bubble click events on\n  // non-interactive elements, which means delegated click listeners do not\n  // fire. The workaround for this bug involves attaching an empty click\n  // listener on the target node.\n  // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n  // Just set it using the onclick property so that we don't have to manage any\n  // bookkeeping for it. Not sure if we need to clear it when the listener is\n  // removed.\n  // TODO: Only do this for the relevant Safaris maybe?\n  node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n  for (var propKey in nextProps) {\n    if (!nextProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n    var nextProp = nextProps[propKey];\n    if (propKey === STYLE$1) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n      // Relies on `updateStylesByID` not mutating `styleUpdates`.\n      setValueForStyles(domElement, nextProp);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML] : undefined;\n      if (nextHtml != null) {\n        setInnerHTML(domElement, nextHtml);\n      }\n    } else if (propKey === CHILDREN) {\n      if (typeof nextProp === 'string') {\n        // Avoid setting initial textContent when the text is empty. In IE11 setting\n        // textContent on a <textarea> will cause the placeholder to not\n        // show within the <textarea> until it has been focused and blurred again.\n        // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n        var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n        if (canSetTextContent) {\n          setTextContent(domElement, nextProp);\n        }\n      } else if (typeof nextProp === 'number') {\n        setTextContent(domElement, '' + nextProp);\n      }\n    } else if (enableFlareAPI && propKey === LISTENERS || propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (propKey === AUTOFOCUS) {\n      // We polyfill it separately on the client during commit.\n      // We could have excluded it in the property list instead of\n      // adding a special case here, but then it wouldn't be emitted\n      // on server rendering (but we *do* want to emit it in SSR).\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if (nextProp != null) {\n      setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n    }\n  }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n  // TODO: Handle wasCustomComponentTag\n  for (var i = 0; i < updatePayload.length; i += 2) {\n    var propKey = updatePayload[i];\n    var propValue = updatePayload[i + 1];\n    if (propKey === STYLE$1) {\n      setValueForStyles(domElement, propValue);\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      setInnerHTML(domElement, propValue);\n    } else if (propKey === CHILDREN) {\n      setTextContent(domElement, propValue);\n    } else {\n      setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n    }\n  }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n  var isCustomComponentTag = void 0;\n\n  // We create tags in the namespace of their parent container, except HTML\n  // tags get no namespace.\n  var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n  var domElement = void 0;\n  var namespaceURI = parentNamespace;\n  if (namespaceURI === HTML_NAMESPACE) {\n    namespaceURI = getIntrinsicNamespace(type);\n  }\n  if (namespaceURI === HTML_NAMESPACE) {\n    {\n      isCustomComponentTag = isCustomComponent(type, props);\n      // Should this check be gated by parent namespace? Not sure we want to\n      // allow <SVG> or <mATH>.\n      !(isCustomComponentTag || type === type.toLowerCase()) ? warning$1(false, '<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type) : void 0;\n    }\n\n    if (type === 'script') {\n      // Create the script via .innerHTML so its \"parser-inserted\" flag is\n      // set to true and it does not execute\n      var div = ownerDocument.createElement('div');\n      div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n      // This is guaranteed to yield a script element.\n      var firstChild = div.firstChild;\n      domElement = div.removeChild(firstChild);\n    } else if (typeof props.is === 'string') {\n      // $FlowIssue `createElement` should be updated for Web Components\n      domElement = ownerDocument.createElement(type, { is: props.is });\n    } else {\n      // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n      // See discussion in https://github.com/facebook/react/pull/6896\n      // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n      domElement = ownerDocument.createElement(type);\n      // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n      // attributes on `select`s needs to be added before `option`s are inserted.\n      // This prevents:\n      // - a bug where the `select` does not scroll to the correct option because singular\n      //  `select` elements automatically pick the first item #13222\n      // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n      // See https://github.com/facebook/react/issues/13222\n      // and https://github.com/facebook/react/issues/14239\n      if (type === 'select') {\n        var node = domElement;\n        if (props.multiple) {\n          node.multiple = true;\n        } else if (props.size) {\n          // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n          // it is possible that no option is selected.\n          //\n          // This is only necessary when a select in \"single selection mode\".\n          node.size = props.size;\n        }\n      }\n    }\n  } else {\n    domElement = ownerDocument.createElementNS(namespaceURI, type);\n  }\n\n  {\n    if (namespaceURI === HTML_NAMESPACE) {\n      if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n        warnedUnknownTags[type] = true;\n        warning$1(false, 'The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n      }\n    }\n  }\n\n  return domElement;\n}\n\nfunction createTextNode(text, rootContainerElement) {\n  return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\n\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n  var isCustomComponentTag = isCustomComponent(tag, rawProps);\n  {\n    validatePropertiesInDevelopment(tag, rawProps);\n    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnShadyDOM = true;\n    }\n  }\n\n  // TODO: Make sure that we check isMounted before firing any of these events.\n  var props = void 0;\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n      props = rawProps;\n      break;\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      props = rawProps;\n      break;\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      props = rawProps;\n      break;\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      props = rawProps;\n      break;\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      props = rawProps;\n      break;\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      props = getHostProps(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'option':\n      validateProps(domElement, rawProps);\n      props = getHostProps$1(domElement, rawProps);\n      break;\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      props = getHostProps$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      props = getHostProps$3(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    default:\n      props = rawProps;\n  }\n\n  assertValidProps(tag, props);\n\n  setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, false);\n      break;\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement, rawProps);\n      break;\n    case 'option':\n      postMountWrapper$1(domElement, rawProps);\n      break;\n    case 'select':\n      postMountWrapper$2(domElement, rawProps);\n      break;\n    default:\n      if (typeof props.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n}\n\n// Calculate the diff between the two objects.\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n  {\n    validatePropertiesInDevelopment(tag, nextRawProps);\n  }\n\n  var updatePayload = null;\n\n  var lastProps = void 0;\n  var nextProps = void 0;\n  switch (tag) {\n    case 'input':\n      lastProps = getHostProps(domElement, lastRawProps);\n      nextProps = getHostProps(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'option':\n      lastProps = getHostProps$1(domElement, lastRawProps);\n      nextProps = getHostProps$1(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'select':\n      lastProps = getHostProps$2(domElement, lastRawProps);\n      nextProps = getHostProps$2(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    case 'textarea':\n      lastProps = getHostProps$3(domElement, lastRawProps);\n      nextProps = getHostProps$3(domElement, nextRawProps);\n      updatePayload = [];\n      break;\n    default:\n      lastProps = lastRawProps;\n      nextProps = nextRawProps;\n      if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n\n  assertValidProps(tag, nextProps);\n\n  var propKey = void 0;\n  var styleName = void 0;\n  var styleUpdates = null;\n  for (propKey in lastProps) {\n    if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n      continue;\n    }\n    if (propKey === STYLE$1) {\n      var lastStyle = lastProps[propKey];\n      for (styleName in lastStyle) {\n        if (lastStyle.hasOwnProperty(styleName)) {\n          if (!styleUpdates) {\n            styleUpdates = {};\n          }\n          styleUpdates[styleName] = '';\n        }\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {\n      // Noop. This is handled by the clear text mechanism.\n    } else if (enableFlareAPI && propKey === LISTENERS || propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (propKey === AUTOFOCUS) {\n      // Noop. It doesn't work on updates anyway.\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      // This is a special case. If any listener updates we need to ensure\n      // that the \"current\" fiber pointer gets updated so we need a commit\n      // to update this element.\n      if (!updatePayload) {\n        updatePayload = [];\n      }\n    } else {\n      // For all other deleted properties we add it to the queue. We use\n      // the whitelist in the commit phase instead.\n      (updatePayload = updatePayload || []).push(propKey, null);\n    }\n  }\n  for (propKey in nextProps) {\n    var nextProp = nextProps[propKey];\n    var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n    if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n      continue;\n    }\n    if (propKey === STYLE$1) {\n      {\n        if (nextProp) {\n          // Freeze the next style object so that we can assume it won't be\n          // mutated. We have already warned for this in the past.\n          Object.freeze(nextProp);\n        }\n      }\n      if (lastProp) {\n        // Unset styles on `lastProp` but not on `nextProp`.\n        for (styleName in lastProp) {\n          if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n            styleUpdates[styleName] = '';\n          }\n        }\n        // Update styles that changed since `lastProp`.\n        for (styleName in nextProp) {\n          if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n            if (!styleUpdates) {\n              styleUpdates = {};\n            }\n            styleUpdates[styleName] = nextProp[styleName];\n          }\n        }\n      } else {\n        // Relies on `updateStylesByID` not mutating `styleUpdates`.\n        if (!styleUpdates) {\n          if (!updatePayload) {\n            updatePayload = [];\n          }\n          updatePayload.push(propKey, styleUpdates);\n        }\n        styleUpdates = nextProp;\n      }\n    } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n      var nextHtml = nextProp ? nextProp[HTML] : undefined;\n      var lastHtml = lastProp ? lastProp[HTML] : undefined;\n      if (nextHtml != null) {\n        if (lastHtml !== nextHtml) {\n          (updatePayload = updatePayload || []).push(propKey, '' + nextHtml);\n        }\n      } else {\n        // TODO: It might be too late to clear this if we have children\n        // inserted already.\n      }\n    } else if (propKey === CHILDREN) {\n      if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {\n        (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n      }\n    } else if (enableFlareAPI && propKey === LISTENERS || propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1) {\n      // Noop\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        // We eagerly listen to this even though we haven't committed yet.\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n      if (!updatePayload && lastProp !== nextProp) {\n        // This is a special case. If any listener updates we need to ensure\n        // that the \"current\" props pointer gets updated so we need a commit\n        // to update this element.\n        updatePayload = [];\n      }\n    } else {\n      // For any other property we always add it to the queue and then we\n      // filter it out using the whitelist during the commit.\n      (updatePayload = updatePayload || []).push(propKey, nextProp);\n    }\n  }\n  if (styleUpdates) {\n    {\n      validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE$1]);\n    }\n    (updatePayload = updatePayload || []).push(STYLE$1, styleUpdates);\n  }\n  return updatePayload;\n}\n\n// Apply the diff.\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n  // Update checked *before* name.\n  // In the middle of an update, it is possible to have multiple checked.\n  // When a checked radio tries to change name, browser makes another radio's checked false.\n  if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n    updateChecked(domElement, nextRawProps);\n  }\n\n  var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n  var isCustomComponentTag = isCustomComponent(tag, nextRawProps);\n  // Apply the diff.\n  updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag);\n\n  // TODO: Ensure that an update gets scheduled if any of the special props\n  // changed.\n  switch (tag) {\n    case 'input':\n      // Update the wrapper around inputs *after* updating props. This has to\n      // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n      // raise warnings and prevent the new value from being assigned.\n      updateWrapper(domElement, nextRawProps);\n      break;\n    case 'textarea':\n      updateWrapper$1(domElement, nextRawProps);\n      break;\n    case 'select':\n      // <select> value update needs to occur after <option> children\n      // reconciliation\n      postUpdateWrapper(domElement, nextRawProps);\n      break;\n  }\n}\n\nfunction getPossibleStandardName(propName) {\n  {\n    var lowerCasedName = propName.toLowerCase();\n    if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      return null;\n    }\n    return possibleStandardNames[lowerCasedName] || null;\n  }\n  return null;\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n  var isCustomComponentTag = void 0;\n  var extraAttributeNames = void 0;\n\n  {\n    suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING$1] === true;\n    isCustomComponentTag = isCustomComponent(tag, rawProps);\n    validatePropertiesInDevelopment(tag, rawProps);\n    if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {\n      warning$1(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n      didWarnShadyDOM = true;\n    }\n  }\n\n  // TODO: Make sure that we check isMounted before firing any of these events.\n  switch (tag) {\n    case 'iframe':\n    case 'object':\n    case 'embed':\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n    case 'video':\n    case 'audio':\n      // Create listener for each media event\n      for (var i = 0; i < mediaEventTypes.length; i++) {\n        trapBubbledEvent(mediaEventTypes[i], domElement);\n      }\n      break;\n    case 'source':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      break;\n    case 'img':\n    case 'image':\n    case 'link':\n      trapBubbledEvent(TOP_ERROR, domElement);\n      trapBubbledEvent(TOP_LOAD, domElement);\n      break;\n    case 'form':\n      trapBubbledEvent(TOP_RESET, domElement);\n      trapBubbledEvent(TOP_SUBMIT, domElement);\n      break;\n    case 'details':\n      trapBubbledEvent(TOP_TOGGLE, domElement);\n      break;\n    case 'input':\n      initWrapperState(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'option':\n      validateProps(domElement, rawProps);\n      break;\n    case 'select':\n      initWrapperState$1(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n    case 'textarea':\n      initWrapperState$2(domElement, rawProps);\n      trapBubbledEvent(TOP_INVALID, domElement);\n      // For controlled components we always need to ensure we're listening\n      // to onChange. Even if there is no listener.\n      ensureListeningTo(rootContainerElement, 'onChange');\n      break;\n  }\n\n  assertValidProps(tag, rawProps);\n\n  {\n    extraAttributeNames = new Set();\n    var attributes = domElement.attributes;\n    for (var _i = 0; _i < attributes.length; _i++) {\n      var name = attributes[_i].name.toLowerCase();\n      switch (name) {\n        // Built-in SSR attribute is whitelisted\n        case 'data-reactroot':\n          break;\n        // Controlled attributes are not validated\n        // TODO: Only ignore them on controlled tags.\n        case 'value':\n          break;\n        case 'checked':\n          break;\n        case 'selected':\n          break;\n        default:\n          // Intentionally use the original name.\n          // See discussion in https://github.com/facebook/react/pull/10676.\n          extraAttributeNames.add(attributes[_i].name);\n      }\n    }\n  }\n\n  var updatePayload = null;\n  for (var propKey in rawProps) {\n    if (!rawProps.hasOwnProperty(propKey)) {\n      continue;\n    }\n    var nextProp = rawProps[propKey];\n    if (propKey === CHILDREN) {\n      // For text content children we compare against textContent. This\n      // might match additional HTML that is hidden when we read it using\n      // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n      // satisfies our requirement. Our requirement is not to produce perfect\n      // HTML and attributes. Ideally we should preserve structure but it's\n      // ok not to if the visible content is still enough to indicate what\n      // even listeners these nodes might be wired up to.\n      // TODO: Warn if there is more than a single textNode as a child.\n      // TODO: Should we use domElement.firstChild.nodeValue to compare?\n      if (typeof nextProp === 'string') {\n        if (domElement.textContent !== nextProp) {\n          if (true && !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n          updatePayload = [CHILDREN, nextProp];\n        }\n      } else if (typeof nextProp === 'number') {\n        if (domElement.textContent !== '' + nextProp) {\n          if (true && !suppressHydrationWarning) {\n            warnForTextDifference(domElement.textContent, nextProp);\n          }\n          updatePayload = [CHILDREN, '' + nextProp];\n        }\n      }\n    } else if (registrationNameModules.hasOwnProperty(propKey)) {\n      if (nextProp != null) {\n        if (true && typeof nextProp !== 'function') {\n          warnForInvalidEventListener(propKey, nextProp);\n        }\n        ensureListeningTo(rootContainerElement, propKey);\n      }\n    } else if (true &&\n    // Convince Flow we've calculated it (it's DEV-only in this method.)\n    typeof isCustomComponentTag === 'boolean') {\n      // Validate that the properties correspond to their expected values.\n      var serverValue = void 0;\n      var propertyInfo = getPropertyInfo(propKey);\n      if (suppressHydrationWarning) {\n        // Don't bother comparing. We're ignoring all these warnings.\n      } else if (enableFlareAPI && propKey === LISTENERS || propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING$1 ||\n      // Controlled attributes are not validated\n      // TODO: Only ignore them on controlled tags.\n      propKey === 'value' || propKey === 'checked' || propKey === 'selected') {\n        // Noop\n      } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n        var serverHTML = domElement.innerHTML;\n        var nextHtml = nextProp ? nextProp[HTML] : undefined;\n        var expectedHTML = normalizeHTML(domElement, nextHtml != null ? nextHtml : '');\n        if (expectedHTML !== serverHTML) {\n          warnForPropDifference(propKey, serverHTML, expectedHTML);\n        }\n      } else if (propKey === STYLE$1) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey);\n\n        if (canDiffStyleForHydrationWarning) {\n          var expectedStyle = createDangerousStringForStyles(nextProp);\n          serverValue = domElement.getAttribute('style');\n          if (expectedStyle !== serverValue) {\n            warnForPropDifference(propKey, serverValue, expectedStyle);\n          }\n        }\n      } else if (isCustomComponentTag) {\n        // $FlowFixMe - Should be inferred as not undefined.\n        extraAttributeNames.delete(propKey.toLowerCase());\n        serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n        if (nextProp !== serverValue) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n        var isMismatchDueToBadCasing = false;\n        if (propertyInfo !== null) {\n          // $FlowFixMe - Should be inferred as not undefined.\n          extraAttributeNames.delete(propertyInfo.attributeName);\n          serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n        } else {\n          var ownNamespace = parentNamespace;\n          if (ownNamespace === HTML_NAMESPACE) {\n            ownNamespace = getIntrinsicNamespace(tag);\n          }\n          if (ownNamespace === HTML_NAMESPACE) {\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey.toLowerCase());\n          } else {\n            var standardName = getPossibleStandardName(propKey);\n            if (standardName !== null && standardName !== propKey) {\n              // If an SVG prop is supplied with bad casing, it will\n              // be successfully parsed from HTML, but will produce a mismatch\n              // (and would be incorrectly rendered on the client).\n              // However, we already warn about bad casing elsewhere.\n              // So we'll skip the misleading extra mismatch warning in this case.\n              isMismatchDueToBadCasing = true;\n              // $FlowFixMe - Should be inferred as not undefined.\n              extraAttributeNames.delete(standardName);\n            }\n            // $FlowFixMe - Should be inferred as not undefined.\n            extraAttributeNames.delete(propKey);\n          }\n          serverValue = getValueForAttribute(domElement, propKey, nextProp);\n        }\n\n        if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n          warnForPropDifference(propKey, serverValue, nextProp);\n        }\n      }\n    }\n  }\n\n  {\n    // $FlowFixMe - Should be inferred as not undefined.\n    if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n      // $FlowFixMe - Should be inferred as not undefined.\n      warnForExtraAttributes(extraAttributeNames);\n    }\n  }\n\n  switch (tag) {\n    case 'input':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper(domElement, rawProps, true);\n      break;\n    case 'textarea':\n      // TODO: Make sure we check if this is still unmounted or do any clean\n      // up necessary since we never stop tracking anymore.\n      track(domElement);\n      postMountWrapper$3(domElement, rawProps);\n      break;\n    case 'select':\n    case 'option':\n      // For input and textarea we current always set the value property at\n      // post mount to force it to diverge from attributes. However, for\n      // option and select we don't quite do the same thing and select\n      // is not resilient to the DOM state changing so we don't do that here.\n      // TODO: Consider not doing this for input and textarea.\n      break;\n    default:\n      if (typeof rawProps.onClick === 'function') {\n        // TODO: This cast may not be sound for SVG, MathML or custom elements.\n        trapClickOnNonInteractiveElement(domElement);\n      }\n      break;\n  }\n\n  return updatePayload;\n}\n\nfunction diffHydratedText(textNode, text) {\n  var isDifferent = textNode.nodeValue !== text;\n  return isDifferent;\n}\n\nfunction warnForUnmatchedText(textNode, text) {\n  {\n    warnForTextDifference(textNode.nodeValue, text);\n  }\n}\n\nfunction warnForDeletedHydratableElement(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForDeletedHydratableText(parentNode, child) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n  {\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction warnForInsertedHydratedText(parentNode, text) {\n  {\n    if (text === '') {\n      // We expect to insert empty text nodes since they're not represented in\n      // the HTML.\n      // TODO: Remove this special case if we can just avoid inserting empty\n      // text nodes.\n      return;\n    }\n    if (didWarnInvalidHydration) {\n      return;\n    }\n    didWarnInvalidHydration = true;\n    warningWithoutStack$1(false, 'Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n  }\n}\n\nfunction restoreControlledState$1(domElement, tag, props) {\n  switch (tag) {\n    case 'input':\n      restoreControlledState(domElement, props);\n      return;\n    case 'textarea':\n      restoreControlledState$3(domElement, props);\n      return;\n    case 'select':\n      restoreControlledState$2(domElement, props);\n      return;\n  }\n}\n\nfunction listenToEventResponderEventTypes(eventTypes, element) {\n  if (enableFlareAPI) {\n    // Get the listening Set for this element. We use this to track\n    // what events we're listening to.\n    var listeningSet = getListeningSetForElement(element);\n\n    // Go through each target event type of the event responder\n    for (var i = 0, length = eventTypes.length; i < length; ++i) {\n      var eventType = eventTypes[i];\n      var isPassive = !endsWith(eventType, '_active');\n      var eventKey = isPassive ? eventType + '_passive' : eventType;\n      var targetEventType = isPassive ? eventType : eventType.substring(0, eventType.length - 7);\n      if (!listeningSet.has(eventKey)) {\n        trapEventForResponderEventSystem(element, targetEventType, isPassive);\n        listeningSet.add(eventKey);\n      }\n    }\n  }\n}\n\n// We can remove this once the event API is stable and out of a flag\nif (enableFlareAPI) {\n  setListenToResponderEventTypes(listenToEventResponderEventTypes);\n}\n\n// TODO: direct imports like some-package/src/* are bad. Fix me.\nvar validateDOMNesting = function () {};\nvar updatedAncestorInfo = function () {};\n\n{\n  // This validation code was written based on the HTML5 parsing spec:\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  //\n  // Note: this does not catch all invalid nesting, nor does it try to (as it's\n  // not clear what practical benefit doing so provides); instead, we warn only\n  // for cases where the parser will give a parse tree differing from what React\n  // intended. For example, <b><div></div></b> is invalid but we don't warn\n  // because it still parses correctly; we do warn for other cases like nested\n  // <p> tags where the beginning of the second element implicitly closes the\n  // first, causing a confusing mess.\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#special\n  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n  // TODO: Distinguish by namespace here -- for <title>, including it here\n  // errs on the side of fewer warnings\n  'foreignObject', 'desc', 'title'];\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n  var buttonScopeTags = inScopeTags.concat(['button']);\n\n  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n\n  var emptyAncestorInfo = {\n    current: null,\n\n    formTag: null,\n    aTagInScope: null,\n    buttonTagInScope: null,\n    nobrTagInScope: null,\n    pTagInButtonScope: null,\n\n    listItemTagAutoclosing: null,\n    dlItemTagAutoclosing: null\n  };\n\n  updatedAncestorInfo = function (oldInfo, tag) {\n    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n    var info = { tag: tag };\n\n    if (inScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.aTagInScope = null;\n      ancestorInfo.buttonTagInScope = null;\n      ancestorInfo.nobrTagInScope = null;\n    }\n    if (buttonScopeTags.indexOf(tag) !== -1) {\n      ancestorInfo.pTagInButtonScope = null;\n    }\n\n    // See rules for 'li', 'dd', 'dt' start tags in\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n      ancestorInfo.listItemTagAutoclosing = null;\n      ancestorInfo.dlItemTagAutoclosing = null;\n    }\n\n    ancestorInfo.current = info;\n\n    if (tag === 'form') {\n      ancestorInfo.formTag = info;\n    }\n    if (tag === 'a') {\n      ancestorInfo.aTagInScope = info;\n    }\n    if (tag === 'button') {\n      ancestorInfo.buttonTagInScope = info;\n    }\n    if (tag === 'nobr') {\n      ancestorInfo.nobrTagInScope = info;\n    }\n    if (tag === 'p') {\n      ancestorInfo.pTagInButtonScope = info;\n    }\n    if (tag === 'li') {\n      ancestorInfo.listItemTagAutoclosing = info;\n    }\n    if (tag === 'dd' || tag === 'dt') {\n      ancestorInfo.dlItemTagAutoclosing = info;\n    }\n\n    return ancestorInfo;\n  };\n\n  /**\n   * Returns whether\n   */\n  var isTagValidWithParent = function (tag, parentTag) {\n    // First, let's check if we're in an unusual parsing mode...\n    switch (parentTag) {\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n      case 'select':\n        return tag === 'option' || tag === 'optgroup' || tag === '#text';\n      case 'optgroup':\n        return tag === 'option' || tag === '#text';\n      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n      // but\n      case 'option':\n        return tag === '#text';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n      // No special behavior since these rules fall back to \"in body\" mode for\n      // all except special table nodes which cause bad parsing behavior anyway.\n\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n      case 'tr':\n        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n      case 'tbody':\n      case 'thead':\n      case 'tfoot':\n        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n      case 'colgroup':\n        return tag === 'col' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n      case 'table':\n        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n      case 'head':\n        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n      case 'html':\n        return tag === 'head' || tag === 'body' || tag === 'frameset';\n      case 'frameset':\n        return tag === 'frame';\n      case '#document':\n        return tag === 'html';\n    }\n\n    // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n    // where the parsing rules cause implicit opens or closes to be added.\n    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n    switch (tag) {\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n      case 'rp':\n      case 'rt':\n        return impliedEndTags.indexOf(parentTag) === -1;\n\n      case 'body':\n      case 'caption':\n      case 'col':\n      case 'colgroup':\n      case 'frameset':\n      case 'frame':\n      case 'head':\n      case 'html':\n      case 'tbody':\n      case 'td':\n      case 'tfoot':\n      case 'th':\n      case 'thead':\n      case 'tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n      case 'pre':\n      case 'listing':\n      case 'table':\n      case 'hr':\n      case 'xmp':\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  var didWarn$1 = {};\n\n  validateDOMNesting = function (childTag, childText, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    if (childText != null) {\n      !(childTag == null) ? warningWithoutStack$1(false, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;\n      childTag = '#text';\n    }\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var invalidParentOrAncestor = invalidParent || invalidAncestor;\n    if (!invalidParentOrAncestor) {\n      return;\n    }\n\n    var ancestorTag = invalidParentOrAncestor.tag;\n    var addendum = getCurrentFiberStackInDev();\n\n    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;\n    if (didWarn$1[warnKey]) {\n      return;\n    }\n    didWarn$1[warnKey] = true;\n\n    var tagDisplayName = childTag;\n    var whitespaceInfo = '';\n    if (childTag === '#text') {\n      if (/\\S/.test(childText)) {\n        tagDisplayName = 'Text nodes';\n      } else {\n        tagDisplayName = 'Whitespace text nodes';\n        whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n      }\n    } else {\n      tagDisplayName = '<' + childTag + '>';\n    }\n\n    if (invalidParent) {\n      var info = '';\n      if (ancestorTag === 'table' && childTag === 'tr') {\n        info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';\n      }\n      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info, addendum);\n    } else {\n      warningWithoutStack$1(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.%s', tagDisplayName, ancestorTag, addendum);\n    }\n  };\n}\n\n// Renderers that don't support persistence\n// can re-export everything from this module.\n\nfunction shim() {\n  (function () {\n    {\n      {\n        throw ReactError(Error('The current renderer does not support persistence. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n}\n\n// Persistence (when unsupported)\nvar supportsPersistence = false;\nvar cloneInstance = shim;\nvar cloneFundamentalInstance = shim;\nvar createContainerChildSet = shim;\nvar appendChildToContainerChildSet = shim;\nvar finalizeContainerChildren = shim;\nvar replaceContainerChildren = shim;\nvar cloneHiddenInstance = shim;\nvar cloneHiddenTextInstance = shim;\n\nvar SUPPRESS_HYDRATION_WARNING = void 0;\n{\n  SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\n}\n\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\n\nvar STYLE = 'style';\n\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n  switch (type) {\n    case 'button':\n    case 'input':\n    case 'select':\n    case 'textarea':\n      return !!props.autoFocus;\n  }\n  return false;\n}\n\nfunction getRootHostContext(rootContainerInstance) {\n  var type = void 0;\n  var namespace = void 0;\n  var nodeType = rootContainerInstance.nodeType;\n  switch (nodeType) {\n    case DOCUMENT_NODE:\n    case DOCUMENT_FRAGMENT_NODE:\n      {\n        type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n        var root = rootContainerInstance.documentElement;\n        namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n        break;\n      }\n    default:\n      {\n        var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n        var ownNamespace = container.namespaceURI || null;\n        type = container.tagName;\n        namespace = getChildNamespace(ownNamespace, type);\n        break;\n      }\n  }\n  {\n    var validatedTag = type.toLowerCase();\n    var _ancestorInfo = updatedAncestorInfo(null, validatedTag);\n    return { namespace: namespace, ancestorInfo: _ancestorInfo };\n  }\n  return namespace;\n}\n\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n  {\n    var parentHostContextDev = parentHostContext;\n    var _namespace = getChildNamespace(parentHostContextDev.namespace, type);\n    var _ancestorInfo2 = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n    return { namespace: _namespace, ancestorInfo: _ancestorInfo2 };\n  }\n  var parentNamespace = parentHostContext;\n  return getChildNamespace(parentNamespace, type);\n}\n\nfunction getPublicInstance(instance) {\n  return instance;\n}\n\nfunction prepareForCommit(containerInfo) {\n  eventsEnabled = isEnabled();\n  selectionInformation = getSelectionInformation();\n  setEnabled(false);\n}\n\nfunction resetAfterCommit(containerInfo) {\n  restoreSelection(selectionInformation);\n  selectionInformation = null;\n  setEnabled(eventsEnabled);\n  eventsEnabled = null;\n}\n\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  var parentNamespace = void 0;\n  {\n    // TODO: take namespace into account when validating.\n    var hostContextDev = hostContext;\n    validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n    if (typeof props.children === 'string' || typeof props.children === 'number') {\n      var string = '' + props.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n    parentNamespace = hostContextDev.namespace;\n  }\n  var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n  precacheFiberNode(internalInstanceHandle, domElement);\n  updateFiberProps(domElement, props);\n  return domElement;\n}\n\nfunction appendInitialChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\n\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n  setInitialProperties(domElement, type, props, rootContainerInstance);\n  return shouldAutoFocusHostComponent(type, props);\n}\n\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n  {\n    var hostContextDev = hostContext;\n    if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n      var string = '' + newProps.children;\n      var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n      validateDOMNesting(null, string, ownAncestorInfo);\n    }\n  }\n  return diffProperties(domElement, type, oldProps, newProps, rootContainerInstance);\n}\n\nfunction shouldSetTextContent(type, props) {\n  return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\n\nfunction shouldDeprioritizeSubtree(type, props) {\n  return !!props.hidden;\n}\n\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n  {\n    var hostContextDev = hostContext;\n    validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n  }\n  var textNode = createTextNode(text, rootContainerInstance);\n  precacheFiberNode(internalInstanceHandle, textNode);\n  return textNode;\n}\n\nvar isPrimaryRenderer = true;\nvar warnsIfNotActing = true;\n// This initialization code may run even on server environments\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1;\n\n// -------------------\n//     Mutation\n// -------------------\n\nvar supportsMutation = true;\n\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n  // Despite the naming that might imply otherwise, this method only\n  // fires if there is an `Update` effect scheduled during mounting.\n  // This happens if `finalizeInitialChildren` returns `true` (which it\n  // does to implement the `autoFocus` attribute on the client). But\n  // there are also other cases when this might happen (such as patching\n  // up text content during hydration mismatch). So we'll check this again.\n  if (shouldAutoFocusHostComponent(type, newProps)) {\n    domElement.focus();\n  }\n}\n\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n  // Update the props handle so that we know which props are the ones with\n  // with current event handlers.\n  updateFiberProps(domElement, newProps);\n  // Apply the diff to the DOM node.\n  updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\n\nfunction resetTextContent(domElement) {\n  setTextContent(domElement, '');\n}\n\nfunction commitTextUpdate(textInstance, oldText, newText) {\n  textInstance.nodeValue = newText;\n}\n\nfunction appendChild(parentInstance, child) {\n  parentInstance.appendChild(child);\n}\n\nfunction appendChildToContainer(container, child) {\n  var parentNode = void 0;\n  if (container.nodeType === COMMENT_NODE) {\n    parentNode = container.parentNode;\n    parentNode.insertBefore(child, container);\n  } else {\n    parentNode = container;\n    parentNode.appendChild(child);\n  }\n  // This container might be used for a portal.\n  // If something inside a portal is clicked, that click should bubble\n  // through the React tree. However, on Mobile Safari the click would\n  // never bubble through the *DOM* tree unless an ancestor with onclick\n  // event exists. So we wouldn't see it and dispatch it.\n  // This is why we ensure that non React root containers have inline onclick\n  // defined.\n  // https://github.com/facebook/react/issues/11918\n  var reactRootContainer = container._reactRootContainer;\n  if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n    // TODO: This cast may not be sound for SVG, MathML or custom elements.\n    trapClickOnNonInteractiveElement(parentNode);\n  }\n}\n\nfunction insertBefore(parentInstance, child, beforeChild) {\n  parentInstance.insertBefore(child, beforeChild);\n}\n\nfunction insertInContainerBefore(container, child, beforeChild) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.insertBefore(child, beforeChild);\n  } else {\n    container.insertBefore(child, beforeChild);\n  }\n}\n\nfunction removeChild(parentInstance, child) {\n  parentInstance.removeChild(child);\n}\n\nfunction removeChildFromContainer(container, child) {\n  if (container.nodeType === COMMENT_NODE) {\n    container.parentNode.removeChild(child);\n  } else {\n    container.removeChild(child);\n  }\n}\n\nfunction clearSuspenseBoundary(parentInstance, suspenseInstance) {\n  var node = suspenseInstance;\n  // Delete all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n  var depth = 0;\n  do {\n    var nextNode = node.nextSibling;\n    parentInstance.removeChild(node);\n    if (nextNode && nextNode.nodeType === COMMENT_NODE) {\n      var data = nextNode.data;\n      if (data === SUSPENSE_END_DATA) {\n        if (depth === 0) {\n          parentInstance.removeChild(nextNode);\n          return;\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_PENDING_START_DATA || data === SUSPENSE_FALLBACK_START_DATA) {\n        depth++;\n      }\n    }\n    node = nextNode;\n  } while (node);\n  // TODO: Warn, we didn't find the end comment boundary.\n}\n\nfunction clearSuspenseBoundaryFromContainer(container, suspenseInstance) {\n  if (container.nodeType === COMMENT_NODE) {\n    clearSuspenseBoundary(container.parentNode, suspenseInstance);\n  } else if (container.nodeType === ELEMENT_NODE) {\n    clearSuspenseBoundary(container, suspenseInstance);\n  } else {\n    // Document nodes should never contain suspense boundaries.\n  }\n}\n\nfunction hideInstance(instance) {\n  // TODO: Does this work for all element types? What about MathML? Should we\n  // pass host context to this method?\n  instance = instance;\n  var style = instance.style;\n  if (typeof style.setProperty === 'function') {\n    style.setProperty('display', 'none', 'important');\n  } else {\n    style.display = 'none';\n  }\n}\n\nfunction hideTextInstance(textInstance) {\n  textInstance.nodeValue = '';\n}\n\nfunction unhideInstance(instance, props) {\n  instance = instance;\n  var styleProp = props[STYLE];\n  var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n  instance.style.display = dangerousStyleValue('display', display);\n}\n\nfunction unhideTextInstance(textInstance, text) {\n  textInstance.nodeValue = text;\n}\n\n// -------------------\n//     Hydration\n// -------------------\n\nvar supportsHydration = true;\n\nfunction canHydrateInstance(instance, type, props) {\n  if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n    return null;\n  }\n  // This has now been refined to an element node.\n  return instance;\n}\n\nfunction canHydrateTextInstance(instance, text) {\n  if (text === '' || instance.nodeType !== TEXT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  }\n  // This has now been refined to a text node.\n  return instance;\n}\n\nfunction canHydrateSuspenseInstance(instance) {\n  if (instance.nodeType !== COMMENT_NODE) {\n    // Empty strings are not parsed by HTML so there won't be a correct match here.\n    return null;\n  }\n  // This has now been refined to a suspense node.\n  return instance;\n}\n\nfunction isSuspenseInstancePending(instance) {\n  return instance.data === SUSPENSE_PENDING_START_DATA;\n}\n\nfunction isSuspenseInstanceFallback(instance) {\n  return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\n\nfunction registerSuspenseInstanceRetry(instance, callback) {\n  instance._reactRetry = callback;\n}\n\nfunction getNextHydratable(node) {\n  // Skip non-hydratable nodes.\n  for (; node != null; node = node.nextSibling) {\n    var nodeType = node.nodeType;\n    if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n      break;\n    }\n    if (enableSuspenseServerRenderer) {\n      if (nodeType === COMMENT_NODE) {\n        break;\n      }\n      var nodeData = node.data;\n      if (nodeData === SUSPENSE_START_DATA || nodeData === SUSPENSE_FALLBACK_START_DATA || nodeData === SUSPENSE_PENDING_START_DATA) {\n        break;\n      }\n    }\n  }\n  return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n  return getNextHydratable(instance.nextSibling);\n}\n\nfunction getFirstHydratableChild(parentInstance) {\n  return getNextHydratable(parentInstance.firstChild);\n}\n\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, instance);\n  // TODO: Possibly defer this until the commit phase where all the events\n  // get attached.\n  updateFiberProps(instance, props);\n  var parentNamespace = void 0;\n  {\n    var hostContextDev = hostContext;\n    parentNamespace = hostContextDev.namespace;\n  }\n  return diffHydratedProperties(instance, type, props, parentNamespace, rootContainerInstance);\n}\n\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n  precacheFiberNode(internalInstanceHandle, textInstance);\n  return diffHydratedText(textInstance, text);\n}\n\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n  var node = suspenseInstance.nextSibling;\n  // Skip past all nodes within this suspense boundary.\n  // There might be nested nodes so we need to keep track of how\n  // deep we are and only break out when we're back on top.\n  var depth = 0;\n  while (node) {\n    if (node.nodeType === COMMENT_NODE) {\n      var data = node.data;\n      if (data === SUSPENSE_END_DATA) {\n        if (depth === 0) {\n          return getNextHydratableSibling(node);\n        } else {\n          depth--;\n        }\n      } else if (data === SUSPENSE_START_DATA) {\n        depth++;\n      }\n    }\n    node = node.nextSibling;\n  }\n  // TODO: Warn, we didn't find the end comment boundary.\n  return null;\n}\n\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n  {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\n\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForUnmatchedText(textInstance, text);\n  }\n}\n\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n  {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentContainer, instance);\n    } else if (instance.nodeType === COMMENT_NODE) {\n      // TODO: warnForDeletedHydratableSuspenseBoundary\n    } else {\n      warnForDeletedHydratableText(parentContainer, instance);\n    }\n  }\n}\n\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    if (instance.nodeType === ELEMENT_NODE) {\n      warnForDeletedHydratableElement(parentInstance, instance);\n    } else if (instance.nodeType === COMMENT_NODE) {\n      // TODO: warnForDeletedHydratableSuspenseBoundary\n    } else {\n      warnForDeletedHydratableText(parentInstance, instance);\n    }\n  }\n}\n\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n  {\n    warnForInsertedHydratedElement(parentContainer, type, props);\n  }\n}\n\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n  {\n    warnForInsertedHydratedText(parentContainer, text);\n  }\n}\n\n\n\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForInsertedHydratedElement(parentInstance, type, props);\n  }\n}\n\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    warnForInsertedHydratedText(parentInstance, text);\n  }\n}\n\nfunction didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {\n  if (true && parentProps[SUPPRESS_HYDRATION_WARNING] !== true) {\n    // TODO: warnForInsertedHydratedSuspense(parentInstance);\n  }\n}\n\nfunction mountResponderInstance(responder, responderInstance, responderProps, responderState, instance, rootContainerInstance) {\n  // Listen to events\n  var doc = rootContainerInstance.ownerDocument;\n  var documentBody = doc.body || doc;\n  var _ref = responder,\n      rootEventTypes = _ref.rootEventTypes,\n      targetEventTypes = _ref.targetEventTypes;\n\n  if (targetEventTypes !== null) {\n    listenToEventResponderEventTypes(targetEventTypes, documentBody);\n  }\n  if (rootEventTypes !== null) {\n    addRootEventTypesForResponderInstance(responderInstance, rootEventTypes);\n    listenToEventResponderEventTypes(rootEventTypes, documentBody);\n  }\n  mountEventResponder(responder, responderInstance, responderProps, responderState);\n  return responderInstance;\n}\n\nfunction unmountResponderInstance(responderInstance) {\n  if (enableFlareAPI) {\n    // TODO stop listening to targetEventTypes\n    unmountEventResponder(responderInstance);\n  }\n}\n\nfunction getFundamentalComponentInstance(fundamentalInstance) {\n  if (enableFundamentalAPI) {\n    var currentFiber = fundamentalInstance.currentFiber,\n        impl = fundamentalInstance.impl,\n        _props = fundamentalInstance.props,\n        state = fundamentalInstance.state;\n\n    var instance = impl.getInstance(null, _props, state);\n    precacheFiberNode(currentFiber, instance);\n    return instance;\n  }\n  // Because of the flag above, this gets around the Flow error;\n  return null;\n}\n\nfunction mountFundamentalComponent(fundamentalInstance) {\n  if (enableFundamentalAPI) {\n    var impl = fundamentalInstance.impl,\n        instance = fundamentalInstance.instance,\n        _props2 = fundamentalInstance.props,\n        state = fundamentalInstance.state;\n\n    var onMount = impl.onMount;\n    if (onMount !== undefined) {\n      onMount(null, instance, _props2, state);\n    }\n  }\n}\n\nfunction shouldUpdateFundamentalComponent(fundamentalInstance) {\n  if (enableFundamentalAPI) {\n    var impl = fundamentalInstance.impl,\n        prevProps = fundamentalInstance.prevProps,\n        _props3 = fundamentalInstance.props,\n        state = fundamentalInstance.state;\n\n    var shouldUpdate = impl.shouldUpdate;\n    if (shouldUpdate !== undefined) {\n      return shouldUpdate(null, prevProps, _props3, state);\n    }\n  }\n  return true;\n}\n\nfunction updateFundamentalComponent(fundamentalInstance) {\n  if (enableFundamentalAPI) {\n    var impl = fundamentalInstance.impl,\n        instance = fundamentalInstance.instance,\n        prevProps = fundamentalInstance.prevProps,\n        _props4 = fundamentalInstance.props,\n        state = fundamentalInstance.state;\n\n    var onUpdate = impl.onUpdate;\n    if (onUpdate !== undefined) {\n      onUpdate(null, instance, prevProps, _props4, state);\n    }\n  }\n}\n\nfunction unmountFundamentalComponent(fundamentalInstance) {\n  if (enableFundamentalAPI) {\n    var impl = fundamentalInstance.impl,\n        instance = fundamentalInstance.instance,\n        _props5 = fundamentalInstance.props,\n        state = fundamentalInstance.state;\n\n    var onUnmount = impl.onUnmount;\n    if (onUnmount !== undefined) {\n      onUnmount(null, instance, _props5, state);\n    }\n  }\n}\n\n// Prefix measurements so that it's possible to filter them.\n// Longer prefixes are hard to read in DevTools.\nvar reactEmoji = '\\u269B';\nvar warningEmoji = '\\u26D4';\nvar supportsUserTiming = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';\n\n// Keep track of current fiber so that we know the path to unwind on pause.\n// TODO: this looks the same as nextUnitOfWork in scheduler. Can we unify them?\nvar currentFiber = null;\n// If we're in the middle of user code, which fiber and method is it?\n// Reusing `currentFiber` would be confusing for this because user code fiber\n// can change during commit phase too, but we don't need to unwind it (since\n// lifecycles in the commit phase don't resemble a tree).\nvar currentPhase = null;\nvar currentPhaseFiber = null;\n// Did lifecycle hook schedule an update? This is often a performance problem,\n// so we will keep track of it, and include it in the report.\n// Track commits caused by cascading updates.\nvar isCommitting = false;\nvar hasScheduledUpdateInCurrentCommit = false;\nvar hasScheduledUpdateInCurrentPhase = false;\nvar commitCountInCurrentWorkLoop = 0;\nvar effectCountInCurrentCommit = 0;\nvar isWaitingForCallback = false;\n// During commits, we only show a measurement once per method name\n// to avoid stretch the commit phase with measurement overhead.\nvar labelsInCurrentCommit = new Set();\n\nvar formatMarkName = function (markName) {\n  return reactEmoji + ' ' + markName;\n};\n\nvar formatLabel = function (label, warning) {\n  var prefix = warning ? warningEmoji + ' ' : reactEmoji + ' ';\n  var suffix = warning ? ' Warning: ' + warning : '';\n  return '' + prefix + label + suffix;\n};\n\nvar beginMark = function (markName) {\n  performance.mark(formatMarkName(markName));\n};\n\nvar clearMark = function (markName) {\n  performance.clearMarks(formatMarkName(markName));\n};\n\nvar endMark = function (label, markName, warning) {\n  var formattedMarkName = formatMarkName(markName);\n  var formattedLabel = formatLabel(label, warning);\n  try {\n    performance.measure(formattedLabel, formattedMarkName);\n  } catch (err) {}\n  // If previous mark was missing for some reason, this will throw.\n  // This could only happen if React crashed in an unexpected place earlier.\n  // Don't pile on with more errors.\n\n  // Clear marks immediately to avoid growing buffer.\n  performance.clearMarks(formattedMarkName);\n  performance.clearMeasures(formattedLabel);\n};\n\nvar getFiberMarkName = function (label, debugID) {\n  return label + ' (#' + debugID + ')';\n};\n\nvar getFiberLabel = function (componentName, isMounted, phase) {\n  if (phase === null) {\n    // These are composite component total time measurements.\n    return componentName + ' [' + (isMounted ? 'update' : 'mount') + ']';\n  } else {\n    // Composite component methods.\n    return componentName + '.' + phase;\n  }\n};\n\nvar beginFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n\n  if (isCommitting && labelsInCurrentCommit.has(label)) {\n    // During the commit phase, we don't show duplicate labels because\n    // there is a fixed overhead for every measurement, and we don't\n    // want to stretch the commit phase beyond necessary.\n    return false;\n  }\n  labelsInCurrentCommit.add(label);\n\n  var markName = getFiberMarkName(label, debugID);\n  beginMark(markName);\n  return true;\n};\n\nvar clearFiberMark = function (fiber, phase) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  clearMark(markName);\n};\n\nvar endFiberMark = function (fiber, phase, warning) {\n  var componentName = getComponentName(fiber.type) || 'Unknown';\n  var debugID = fiber._debugID;\n  var isMounted = fiber.alternate !== null;\n  var label = getFiberLabel(componentName, isMounted, phase);\n  var markName = getFiberMarkName(label, debugID);\n  endMark(label, markName, warning);\n};\n\nvar shouldIgnoreFiber = function (fiber) {\n  // Host components should be skipped in the timeline.\n  // We could check typeof fiber.type, but does this work with RN?\n  switch (fiber.tag) {\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n    case Fragment:\n    case ContextProvider:\n    case ContextConsumer:\n    case Mode:\n      return true;\n    default:\n      return false;\n  }\n};\n\nvar clearPendingPhaseMeasurement = function () {\n  if (currentPhase !== null && currentPhaseFiber !== null) {\n    clearFiberMark(currentPhaseFiber, currentPhase);\n  }\n  currentPhaseFiber = null;\n  currentPhase = null;\n  hasScheduledUpdateInCurrentPhase = false;\n};\n\nvar pauseTimers = function () {\n  // Stops all currently active measurements so that they can be resumed\n  // if we continue in a later deferred loop from the same unit of work.\n  var fiber = currentFiber;\n  while (fiber) {\n    if (fiber._debugIsCurrentlyTiming) {\n      endFiberMark(fiber, null, null);\n    }\n    fiber = fiber.return;\n  }\n};\n\nvar resumeTimersRecursively = function (fiber) {\n  if (fiber.return !== null) {\n    resumeTimersRecursively(fiber.return);\n  }\n  if (fiber._debugIsCurrentlyTiming) {\n    beginFiberMark(fiber, null);\n  }\n};\n\nvar resumeTimers = function () {\n  // Resumes all measurements that were active during the last deferred loop.\n  if (currentFiber !== null) {\n    resumeTimersRecursively(currentFiber);\n  }\n};\n\nfunction recordEffect() {\n  if (enableUserTimingAPI) {\n    effectCountInCurrentCommit++;\n  }\n}\n\nfunction recordScheduleUpdate() {\n  if (enableUserTimingAPI) {\n    if (isCommitting) {\n      hasScheduledUpdateInCurrentCommit = true;\n    }\n    if (currentPhase !== null && currentPhase !== 'componentWillMount' && currentPhase !== 'componentWillReceiveProps') {\n      hasScheduledUpdateInCurrentPhase = true;\n    }\n  }\n}\n\nfunction startRequestCallbackTimer() {\n  if (enableUserTimingAPI) {\n    if (supportsUserTiming && !isWaitingForCallback) {\n      isWaitingForCallback = true;\n      beginMark('(Waiting for async callback...)');\n    }\n  }\n}\n\nfunction stopRequestCallbackTimer(didExpire) {\n  if (enableUserTimingAPI) {\n    if (supportsUserTiming) {\n      isWaitingForCallback = false;\n      var warning = didExpire ? 'Update expired; will flush synchronously' : null;\n      endMark('(Waiting for async callback...)', '(Waiting for async callback...)', warning);\n    }\n  }\n}\n\nfunction startWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, this is the fiber to unwind from.\n    currentFiber = fiber;\n    if (!beginFiberMark(fiber, null)) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = true;\n  }\n}\n\nfunction cancelWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // Remember we shouldn't complete measurement for this fiber.\n    // Otherwise flamechart will be deep even for small updates.\n    fiber._debugIsCurrentlyTiming = false;\n    clearFiberMark(fiber, null);\n  }\n}\n\nfunction stopWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, its parent is the fiber to unwind from.\n    currentFiber = fiber.return;\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = false;\n    endFiberMark(fiber, null, null);\n  }\n}\n\nfunction stopFailedWorkTimer(fiber) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming || shouldIgnoreFiber(fiber)) {\n      return;\n    }\n    // If we pause, its parent is the fiber to unwind from.\n    currentFiber = fiber.return;\n    if (!fiber._debugIsCurrentlyTiming) {\n      return;\n    }\n    fiber._debugIsCurrentlyTiming = false;\n    var warning = fiber.tag === SuspenseComponent || fiber.tag === DehydratedSuspenseComponent ? 'Rendering was suspended' : 'An error was thrown inside this error boundary';\n    endFiberMark(fiber, null, warning);\n  }\n}\n\nfunction startPhaseTimer(fiber, phase) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    clearPendingPhaseMeasurement();\n    if (!beginFiberMark(fiber, phase)) {\n      return;\n    }\n    currentPhaseFiber = fiber;\n    currentPhase = phase;\n  }\n}\n\nfunction stopPhaseTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    if (currentPhase !== null && currentPhaseFiber !== null) {\n      var warning = hasScheduledUpdateInCurrentPhase ? 'Scheduled a cascading update' : null;\n      endFiberMark(currentPhaseFiber, currentPhase, warning);\n    }\n    currentPhase = null;\n    currentPhaseFiber = null;\n  }\n}\n\nfunction startWorkLoopTimer(nextUnitOfWork) {\n  if (enableUserTimingAPI) {\n    currentFiber = nextUnitOfWork;\n    if (!supportsUserTiming) {\n      return;\n    }\n    commitCountInCurrentWorkLoop = 0;\n    // This is top level call.\n    // Any other measurements are performed within.\n    beginMark('(React Tree Reconciliation)');\n    // Resume any measurements that were in progress during the last loop.\n    resumeTimers();\n  }\n}\n\nfunction stopWorkLoopTimer(interruptedBy, didCompleteRoot) {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var warning = null;\n    if (interruptedBy !== null) {\n      if (interruptedBy.tag === HostRoot) {\n        warning = 'A top-level update interrupted the previous render';\n      } else {\n        var componentName = getComponentName(interruptedBy.type) || 'Unknown';\n        warning = 'An update to ' + componentName + ' interrupted the previous render';\n      }\n    } else if (commitCountInCurrentWorkLoop > 1) {\n      warning = 'There were cascading updates';\n    }\n    commitCountInCurrentWorkLoop = 0;\n    var label = didCompleteRoot ? '(React Tree Reconciliation: Completed Root)' : '(React Tree Reconciliation: Yielded)';\n    // Pause any measurements until the next loop.\n    pauseTimers();\n    endMark(label, '(React Tree Reconciliation)', warning);\n  }\n}\n\nfunction startCommitTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    isCommitting = true;\n    hasScheduledUpdateInCurrentCommit = false;\n    labelsInCurrentCommit.clear();\n    beginMark('(Committing Changes)');\n  }\n}\n\nfunction stopCommitTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n\n    var warning = null;\n    if (hasScheduledUpdateInCurrentCommit) {\n      warning = 'Lifecycle hook scheduled a cascading update';\n    } else if (commitCountInCurrentWorkLoop > 0) {\n      warning = 'Caused by a cascading update in earlier commit';\n    }\n    hasScheduledUpdateInCurrentCommit = false;\n    commitCountInCurrentWorkLoop++;\n    isCommitting = false;\n    labelsInCurrentCommit.clear();\n\n    endMark('(Committing Changes)', '(Committing Changes)', warning);\n  }\n}\n\nfunction startCommitSnapshotEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Snapshot Effects)');\n  }\n}\n\nfunction stopCommitSnapshotEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Committing Snapshot Effects: ' + count + ' Total)', '(Committing Snapshot Effects)', null);\n  }\n}\n\nfunction startCommitHostEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Committing Host Effects)');\n  }\n}\n\nfunction stopCommitHostEffectsTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Committing Host Effects: ' + count + ' Total)', '(Committing Host Effects)', null);\n  }\n}\n\nfunction startCommitLifeCyclesTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    effectCountInCurrentCommit = 0;\n    beginMark('(Calling Lifecycle Methods)');\n  }\n}\n\nfunction stopCommitLifeCyclesTimer() {\n  if (enableUserTimingAPI) {\n    if (!supportsUserTiming) {\n      return;\n    }\n    var count = effectCountInCurrentCommit;\n    effectCountInCurrentCommit = 0;\n    endMark('(Calling Lifecycle Methods: ' + count + ' Total)', '(Calling Lifecycle Methods)', null);\n  }\n}\n\nvar valueStack = [];\n\nvar fiberStack = void 0;\n\n{\n  fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n  return {\n    current: defaultValue\n  };\n}\n\nfunction pop(cursor, fiber) {\n  if (index < 0) {\n    {\n      warningWithoutStack$1(false, 'Unexpected pop.');\n    }\n    return;\n  }\n\n  {\n    if (fiber !== fiberStack[index]) {\n      warningWithoutStack$1(false, 'Unexpected Fiber popped.');\n    }\n  }\n\n  cursor.current = valueStack[index];\n\n  valueStack[index] = null;\n\n  {\n    fiberStack[index] = null;\n  }\n\n  index--;\n}\n\nfunction push(cursor, value, fiber) {\n  index++;\n\n  valueStack[index] = cursor.current;\n\n  {\n    fiberStack[index] = fiber;\n  }\n\n  cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext = void 0;\n\n{\n  warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n{\n  Object.freeze(emptyContextObject);\n}\n\n// A cursor to the current merged context object on the stack.\nvar contextStackCursor = createCursor(emptyContextObject);\n// A cursor to a boolean indicating whether the context has changed.\nvar didPerformWorkStackCursor = createCursor(false);\n// Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n  if (disableLegacyContext) {\n    return emptyContextObject;\n  } else {\n    if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n      // If the fiber is a context provider itself, when we read its context\n      // we may have already pushed its own child context on the stack. A context\n      // provider should not \"see\" its own child context. Therefore we read the\n      // previous (parent) context instead for a context provider.\n      return previousContext;\n    }\n    return contextStackCursor.current;\n  }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n  if (disableLegacyContext) {\n    return;\n  } else {\n    var instance = workInProgress.stateNode;\n    instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n    instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n  }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n  if (disableLegacyContext) {\n    return emptyContextObject;\n  } else {\n    var type = workInProgress.type;\n    var contextTypes = type.contextTypes;\n    if (!contextTypes) {\n      return emptyContextObject;\n    }\n\n    // Avoid recreating masked context unless unmasked context has changed.\n    // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n    // This may trigger infinite loops if componentWillReceiveProps calls setState.\n    var instance = workInProgress.stateNode;\n    if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n      return instance.__reactInternalMemoizedMaskedChildContext;\n    }\n\n    var context = {};\n    for (var key in contextTypes) {\n      context[key] = unmaskedContext[key];\n    }\n\n    {\n      var name = getComponentName(type) || 'Unknown';\n      checkPropTypes_1(contextTypes, context, 'context', name, getCurrentFiberStackInDev);\n    }\n\n    // Cache unmasked context so we can avoid recreating masked context unless necessary.\n    // Context is created before the class component is instantiated so check for instance.\n    if (instance) {\n      cacheContext(workInProgress, unmaskedContext, context);\n    }\n\n    return context;\n  }\n}\n\nfunction hasContextChanged() {\n  if (disableLegacyContext) {\n    return false;\n  } else {\n    return didPerformWorkStackCursor.current;\n  }\n}\n\nfunction isContextProvider(type) {\n  if (disableLegacyContext) {\n    return false;\n  } else {\n    var childContextTypes = type.childContextTypes;\n    return childContextTypes !== null && childContextTypes !== undefined;\n  }\n}\n\nfunction popContext(fiber) {\n  if (disableLegacyContext) {\n    return;\n  } else {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction popTopLevelContextObject(fiber) {\n  if (disableLegacyContext) {\n    return;\n  } else {\n    pop(didPerformWorkStackCursor, fiber);\n    pop(contextStackCursor, fiber);\n  }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n  if (disableLegacyContext) {\n    return;\n  } else {\n    (function () {\n      if (!(contextStackCursor.current === emptyContextObject)) {\n        {\n          throw ReactError(Error('Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n\n    push(contextStackCursor, context, fiber);\n    push(didPerformWorkStackCursor, didChange, fiber);\n  }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n  if (disableLegacyContext) {\n    return parentContext;\n  } else {\n    var instance = fiber.stateNode;\n    var childContextTypes = type.childContextTypes;\n\n    // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n    // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n    if (typeof instance.getChildContext !== 'function') {\n      {\n        var componentName = getComponentName(type) || 'Unknown';\n\n        if (!warnedAboutMissingGetChildContext[componentName]) {\n          warnedAboutMissingGetChildContext[componentName] = true;\n          warningWithoutStack$1(false, '%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n        }\n      }\n      return parentContext;\n    }\n\n    var childContext = void 0;\n    {\n      setCurrentPhase('getChildContext');\n    }\n    startPhaseTimer(fiber, 'getChildContext');\n    childContext = instance.getChildContext();\n    stopPhaseTimer();\n    {\n      setCurrentPhase(null);\n    }\n    for (var contextKey in childContext) {\n      (function () {\n        if (!(contextKey in childContextTypes)) {\n          {\n            throw ReactError(Error((getComponentName(type) || 'Unknown') + '.getChildContext(): key \"' + contextKey + '\" is not defined in childContextTypes.'));\n          }\n        }\n      })();\n    }\n    {\n      var name = getComponentName(type) || 'Unknown';\n      checkPropTypes_1(childContextTypes, childContext, 'child context', name,\n      // In practice, there is one case in which we won't get a stack. It's when\n      // somebody calls unstable_renderSubtreeIntoContainer() and we process\n      // context from the parent component instance. The stack will be missing\n      // because it's outside of the reconciliation, and so the pointer has not\n      // been set. This is rare and doesn't matter. We'll also remove that API.\n      getCurrentFiberStackInDev);\n    }\n\n    return _assign({}, parentContext, childContext);\n  }\n}\n\nfunction pushContextProvider(workInProgress) {\n  if (disableLegacyContext) {\n    return false;\n  } else {\n    var instance = workInProgress.stateNode;\n    // We push the context as early as possible to ensure stack integrity.\n    // If the instance does not exist yet, we will push null at first,\n    // and replace it on the stack later when invalidating the context.\n    var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject;\n\n    // Remember the parent context so we can merge with it later.\n    // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n    previousContext = contextStackCursor.current;\n    push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n    push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n\n    return true;\n  }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n  if (disableLegacyContext) {\n    return;\n  } else {\n    var instance = workInProgress.stateNode;\n    (function () {\n      if (!instance) {\n        {\n          throw ReactError(Error('Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n\n    if (didChange) {\n      // Merge parent and own context.\n      // Skip this if we're not updating due to sCU.\n      // This avoids unnecessarily recomputing memoized values.\n      var mergedContext = processChildContext(workInProgress, type, previousContext);\n      instance.__reactInternalMemoizedMergedChildContext = mergedContext;\n\n      // Replace the old (or empty) context with the new one.\n      // It is important to unwind the context in the reverse order.\n      pop(didPerformWorkStackCursor, workInProgress);\n      pop(contextStackCursor, workInProgress);\n      // Now push the new context and mark that it has changed.\n      push(contextStackCursor, mergedContext, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    } else {\n      pop(didPerformWorkStackCursor, workInProgress);\n      push(didPerformWorkStackCursor, didChange, workInProgress);\n    }\n  }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n  if (disableLegacyContext) {\n    return emptyContextObject;\n  } else {\n    // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n    // makes sense elsewhere\n    (function () {\n      if (!(isFiberMounted(fiber) && fiber.tag === ClassComponent)) {\n        {\n          throw ReactError(Error('Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n\n    var node = fiber;\n    do {\n      switch (node.tag) {\n        case HostRoot:\n          return node.stateNode.context;\n        case ClassComponent:\n          {\n            var Component = node.type;\n            if (isContextProvider(Component)) {\n              return node.stateNode.__reactInternalMemoizedMergedChildContext;\n            }\n            break;\n          }\n      }\n      node = node.return;\n    } while (node !== null);\n    (function () {\n      {\n        {\n          throw ReactError(Error('Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n}\n\nvar LegacyRoot = 0;\nvar BatchedRoot = 1;\nvar ConcurrentRoot = 2;\n\nvar ReactInternals$2 = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nvar _ReactInternals$Sched$1 = ReactInternals$2.SchedulerTracing;\nvar __interactionsRef = _ReactInternals$Sched$1.__interactionsRef;\nvar __subscriberRef = _ReactInternals$Sched$1.__subscriberRef;\nvar unstable_clear = _ReactInternals$Sched$1.unstable_clear;\nvar unstable_getCurrent = _ReactInternals$Sched$1.unstable_getCurrent;\nvar unstable_getThreadID = _ReactInternals$Sched$1.unstable_getThreadID;\nvar unstable_subscribe = _ReactInternals$Sched$1.unstable_subscribe;\nvar unstable_trace = _ReactInternals$Sched$1.unstable_trace;\nvar unstable_unsubscribe = _ReactInternals$Sched$1.unstable_unsubscribe;\nvar unstable_wrap = _ReactInternals$Sched$1.unstable_wrap;\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\n// CommonJS interop named imports.\nvar Scheduler_runWithPriority = unstable_runWithPriority;\nvar Scheduler_scheduleCallback = unstable_scheduleCallback;\nvar Scheduler_cancelCallback = unstable_cancelCallback;\nvar Scheduler_shouldYield = unstable_shouldYield;\nvar Scheduler_requestPaint = unstable_requestPaint;\nvar Scheduler_now = unstable_now;\nvar Scheduler_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nvar Scheduler_ImmediatePriority = unstable_ImmediatePriority;\nvar Scheduler_UserBlockingPriority = unstable_UserBlockingPriority;\nvar Scheduler_NormalPriority = unstable_NormalPriority;\nvar Scheduler_LowPriority = unstable_LowPriority;\nvar Scheduler_IdlePriority = unstable_IdlePriority;\n\n\nif (enableSchedulerTracing) {\n  // Provide explicit error message when production+profiling bundle of e.g.\n  // react-dom is used with production (non-profiling) bundle of\n  // scheduler/tracing\n  (function () {\n    if (!(__interactionsRef != null && __interactionsRef.current != null)) {\n      {\n        throw ReactError(Error('It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at http://fb.me/react-profiling'));\n      }\n    }\n  })();\n}\n\nvar fakeCallbackNode = {};\n\n// Except for NoPriority, these correspond to Scheduler priorities. We use\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\nvar ImmediatePriority = 99;\nvar UserBlockingPriority$2 = 98;\nvar NormalPriority = 97;\nvar LowPriority = 96;\nvar IdlePriority = 95;\n// NoPriority is the absence of priority. Also React-only.\nvar NoPriority = 90;\n\nvar shouldYield = Scheduler_shouldYield;\nvar requestPaint =\n// Fall back gracefully if we're running an older version of Scheduler.\nScheduler_requestPaint !== undefined ? Scheduler_requestPaint : function () {};\n\nvar syncQueue = null;\nvar immediateQueueCallbackNode = null;\nvar isFlushingSyncQueue = false;\nvar initialTimeMs = Scheduler_now();\n\n// If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n// This will be the case for modern browsers that support `performance.now`. In\n// older browsers, Scheduler falls back to `Date.now`, which returns a Unix\n// timestamp. In that case, subtract the module initialization time to simulate\n// the behavior of performance.now and keep our times small enough to fit\n// within 32 bits.\n// TODO: Consider lifting this into Scheduler.\nvar now = initialTimeMs < 10000 ? Scheduler_now : function () {\n  return Scheduler_now() - initialTimeMs;\n};\n\nfunction getCurrentPriorityLevel() {\n  switch (Scheduler_getCurrentPriorityLevel()) {\n    case Scheduler_ImmediatePriority:\n      return ImmediatePriority;\n    case Scheduler_UserBlockingPriority:\n      return UserBlockingPriority$2;\n    case Scheduler_NormalPriority:\n      return NormalPriority;\n    case Scheduler_LowPriority:\n      return LowPriority;\n    case Scheduler_IdlePriority:\n      return IdlePriority;\n    default:\n      (function () {\n        {\n          {\n            throw ReactError(Error('Unknown priority level.'));\n          }\n        }\n      })();\n  }\n}\n\nfunction reactPriorityToSchedulerPriority(reactPriorityLevel) {\n  switch (reactPriorityLevel) {\n    case ImmediatePriority:\n      return Scheduler_ImmediatePriority;\n    case UserBlockingPriority$2:\n      return Scheduler_UserBlockingPriority;\n    case NormalPriority:\n      return Scheduler_NormalPriority;\n    case LowPriority:\n      return Scheduler_LowPriority;\n    case IdlePriority:\n      return Scheduler_IdlePriority;\n    default:\n      (function () {\n        {\n          {\n            throw ReactError(Error('Unknown priority level.'));\n          }\n        }\n      })();\n  }\n}\n\nfunction runWithPriority$2(reactPriorityLevel, fn) {\n  var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n  return Scheduler_runWithPriority(priorityLevel, fn);\n}\n\nfunction scheduleCallback(reactPriorityLevel, callback, options) {\n  var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n  return Scheduler_scheduleCallback(priorityLevel, callback, options);\n}\n\nfunction scheduleSyncCallback(callback) {\n  // Push this callback into an internal queue. We'll flush these either in\n  // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n  if (syncQueue === null) {\n    syncQueue = [callback];\n    // Flush the queue in the next tick, at the earliest.\n    immediateQueueCallbackNode = Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueueImpl);\n  } else {\n    // Push onto existing queue. Don't need to schedule a callback because\n    // we already scheduled one when we created the queue.\n    syncQueue.push(callback);\n  }\n  return fakeCallbackNode;\n}\n\nfunction cancelCallback(callbackNode) {\n  if (callbackNode !== fakeCallbackNode) {\n    Scheduler_cancelCallback(callbackNode);\n  }\n}\n\nfunction flushSyncCallbackQueue() {\n  if (immediateQueueCallbackNode !== null) {\n    Scheduler_cancelCallback(immediateQueueCallbackNode);\n  }\n  flushSyncCallbackQueueImpl();\n}\n\nfunction flushSyncCallbackQueueImpl() {\n  if (!isFlushingSyncQueue && syncQueue !== null) {\n    // Prevent re-entrancy.\n    isFlushingSyncQueue = true;\n    var i = 0;\n    try {\n      var _isSync = true;\n      var queue = syncQueue;\n      runWithPriority$2(ImmediatePriority, function () {\n        for (; i < queue.length; i++) {\n          var callback = queue[i];\n          do {\n            callback = callback(_isSync);\n          } while (callback !== null);\n        }\n      });\n      syncQueue = null;\n    } catch (error) {\n      // If something throws, leave the remaining callbacks on the queue.\n      if (syncQueue !== null) {\n        syncQueue = syncQueue.slice(i + 1);\n      }\n      // Resume flushing in the next tick\n      Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueue);\n      throw error;\n    } finally {\n      isFlushingSyncQueue = false;\n    }\n  }\n}\n\nvar NoMode = 0;\nvar StrictMode = 1;\n// TODO: Remove BatchedMode and ConcurrentMode by reading from the root\n// tag instead\nvar BatchedMode = 2;\nvar ConcurrentMode = 4;\nvar ProfileMode = 8;\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nvar NoWork = 0;\nvar Never = 1;\nvar Sync = MAX_SIGNED_31_BIT_INT;\nvar Batched = Sync - 1;\n\nvar UNIT_SIZE = 10;\nvar MAGIC_NUMBER_OFFSET = Batched - 1;\n\n// 1 unit of expiration time represents 10ms.\nfunction msToExpirationTime(ms) {\n  // Always add an offset so that we don't clash with the magic number for NoWork.\n  return MAGIC_NUMBER_OFFSET - (ms / UNIT_SIZE | 0);\n}\n\nfunction expirationTimeToMs(expirationTime) {\n  return (MAGIC_NUMBER_OFFSET - expirationTime) * UNIT_SIZE;\n}\n\nfunction ceiling(num, precision) {\n  return ((num / precision | 0) + 1) * precision;\n}\n\nfunction computeExpirationBucket(currentTime, expirationInMs, bucketSizeMs) {\n  return MAGIC_NUMBER_OFFSET - ceiling(MAGIC_NUMBER_OFFSET - currentTime + expirationInMs / UNIT_SIZE, bucketSizeMs / UNIT_SIZE);\n}\n\n// TODO: This corresponds to Scheduler's NormalPriority, not LowPriority. Update\n// the names to reflect.\nvar LOW_PRIORITY_EXPIRATION = 5000;\nvar LOW_PRIORITY_BATCH_SIZE = 250;\n\nfunction computeAsyncExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, LOW_PRIORITY_EXPIRATION, LOW_PRIORITY_BATCH_SIZE);\n}\n\nfunction computeSuspenseExpiration(currentTime, timeoutMs) {\n  // TODO: Should we warn if timeoutMs is lower than the normal pri expiration time?\n  return computeExpirationBucket(currentTime, timeoutMs, LOW_PRIORITY_BATCH_SIZE);\n}\n\n// We intentionally set a higher expiration time for interactive updates in\n// dev than in production.\n//\n// If the main thread is being blocked so long that you hit the expiration,\n// it's a problem that could be solved with better scheduling.\n//\n// People will be more likely to notice this and fix it with the long\n// expiration time in development.\n//\n// In production we opt for better UX at the risk of masking scheduling\n// problems, by expiring fast.\nvar HIGH_PRIORITY_EXPIRATION = 500;\nvar HIGH_PRIORITY_BATCH_SIZE = 100;\n\nfunction computeInteractiveExpiration(currentTime) {\n  return computeExpirationBucket(currentTime, HIGH_PRIORITY_EXPIRATION, HIGH_PRIORITY_BATCH_SIZE);\n}\n\nfunction inferPriorityFromExpirationTime(currentTime, expirationTime) {\n  if (expirationTime === Sync) {\n    return ImmediatePriority;\n  }\n  if (expirationTime === Never) {\n    return IdlePriority;\n  }\n  var msUntil = expirationTimeToMs(expirationTime) - expirationTimeToMs(currentTime);\n  if (msUntil <= 0) {\n    return ImmediatePriority;\n  }\n  if (msUntil <= HIGH_PRIORITY_EXPIRATION + HIGH_PRIORITY_BATCH_SIZE) {\n    return UserBlockingPriority$2;\n  }\n  if (msUntil <= LOW_PRIORITY_EXPIRATION + LOW_PRIORITY_BATCH_SIZE) {\n    return NormalPriority;\n  }\n\n  // TODO: Handle LowPriority\n\n  // Assume anything lower has idle priority\n  return IdlePriority;\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$1 = 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$1.apply(undefined, [format].concat(args));\n    }\n  };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nvar ReactStrictModeWarnings = {\n  recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n  flushPendingUnsafeLifecycleWarnings: function () {},\n  recordLegacyContextWarning: function (fiber, instance) {},\n  flushLegacyContextWarning: function () {},\n  discardPendingWarnings: function () {}\n};\n\n{\n  var findStrictRoot = function (fiber) {\n    var maybeStrictRoot = null;\n\n    var node = fiber;\n    while (node !== null) {\n      if (node.mode & StrictMode) {\n        maybeStrictRoot = node;\n      }\n      node = node.return;\n    }\n\n    return maybeStrictRoot;\n  };\n\n  var setToSortedString = function (set) {\n    var array = [];\n    set.forEach(function (value) {\n      array.push(value);\n    });\n    return array.sort().join(', ');\n  };\n\n  var pendingComponentWillMountWarnings = [];\n  var pendingUNSAFE_ComponentWillMountWarnings = [];\n  var pendingComponentWillReceivePropsWarnings = [];\n  var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n  var pendingComponentWillUpdateWarnings = [];\n  var pendingUNSAFE_ComponentWillUpdateWarnings = [];\n\n  // Tracks components we have already warned about.\n  var didWarnAboutUnsafeLifecycles = new Set();\n\n  ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n    // Dedup strategy: Warn once per component.\n    if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n      return;\n    }\n\n    if (typeof instance.componentWillMount === 'function' &&\n    // Don't warn about react-lifecycles-compat polyfilled components.\n    instance.componentWillMount.__suppressDeprecationWarning !== true) {\n      pendingComponentWillMountWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n      pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n      pendingComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n    }\n\n    if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n      pendingComponentWillUpdateWarnings.push(fiber);\n    }\n\n    if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n      pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n    // We do an initial pass to gather component names\n    var componentWillMountUniqueNames = new Set();\n    if (pendingComponentWillMountWarnings.length > 0) {\n      pendingComponentWillMountWarnings.forEach(function (fiber) {\n        componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingComponentWillMountWarnings = [];\n    }\n\n    var UNSAFE_componentWillMountUniqueNames = new Set();\n    if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n      pendingUNSAFE_ComponentWillMountWarnings = [];\n    }\n\n    var componentWillReceivePropsUniqueNames = new Set();\n    if (pendingComponentWillReceivePropsWarnings.length > 0) {\n      pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n\n      pendingComponentWillReceivePropsWarnings = [];\n    }\n\n    var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n    if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n\n      pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    }\n\n    var componentWillUpdateUniqueNames = new Set();\n    if (pendingComponentWillUpdateWarnings.length > 0) {\n      pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n        componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n\n      pendingComponentWillUpdateWarnings = [];\n    }\n\n    var UNSAFE_componentWillUpdateUniqueNames = new Set();\n    if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n      pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n        UNSAFE_componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutUnsafeLifecycles.add(fiber.type);\n      });\n\n      pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    }\n\n    // Finally, we flush all the warnings\n    // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n    if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n      var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n      warningWithoutStack$1(false, 'Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n    }\n\n    if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n      warningWithoutStack$1(false, 'Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n    }\n\n    if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n      warningWithoutStack$1(false, 'Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n    }\n\n    if (componentWillMountUniqueNames.size > 0) {\n      var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n      lowPriorityWarning$1(false, 'componentWillMount has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n    }\n\n    if (componentWillReceivePropsUniqueNames.size > 0) {\n      var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n      lowPriorityWarning$1(false, 'componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://fb.me/react-derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n    }\n\n    if (componentWillUpdateUniqueNames.size > 0) {\n      var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n      lowPriorityWarning$1(false, 'componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://fb.me/react-async-component-lifecycle-hooks for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n    }\n  };\n\n  var pendingLegacyContextWarning = new Map();\n\n  // Tracks components we have already warned about.\n  var didWarnAboutLegacyContext = new Set();\n\n  ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n    var strictRoot = findStrictRoot(fiber);\n    if (strictRoot === null) {\n      warningWithoutStack$1(false, 'Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n      return;\n    }\n\n    // Dedup strategy: Warn once per component.\n    if (didWarnAboutLegacyContext.has(fiber.type)) {\n      return;\n    }\n\n    var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n    if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n      if (warningsForRoot === undefined) {\n        warningsForRoot = [];\n        pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n      }\n      warningsForRoot.push(fiber);\n    }\n  };\n\n  ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n    pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n      var uniqueNames = new Set();\n      fiberArray.forEach(function (fiber) {\n        uniqueNames.add(getComponentName(fiber.type) || 'Component');\n        didWarnAboutLegacyContext.add(fiber.type);\n      });\n\n      var sortedNames = setToSortedString(uniqueNames);\n      var strictRootComponentStack = getStackByFiberInDevAndProd(strictRoot);\n\n      warningWithoutStack$1(false, 'Legacy context API has been detected within a strict-mode tree: %s' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here:' + '\\nhttps://fb.me/react-legacy-context', strictRootComponentStack, sortedNames);\n    });\n  };\n\n  ReactStrictModeWarnings.discardPendingWarnings = function () {\n    pendingComponentWillMountWarnings = [];\n    pendingUNSAFE_ComponentWillMountWarnings = [];\n    pendingComponentWillReceivePropsWarnings = [];\n    pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n    pendingComponentWillUpdateWarnings = [];\n    pendingUNSAFE_ComponentWillUpdateWarnings = [];\n    pendingLegacyContextWarning = new Map();\n  };\n}\n\n// Resolves type to a family.\n\n\n// Used by React Refresh runtime through DevTools Global Hook.\n\n\nvar resolveFamily = null;\n// $FlowFixMe Flow gets confused by a WeakSet feature check below.\nvar failedBoundaries = null;\n\nvar setRefreshHandler = function (handler) {\n  {\n    resolveFamily = handler;\n  }\n};\n\nfunction resolveFunctionForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n    var family = resolveFamily(type);\n    if (family === undefined) {\n      return type;\n    }\n    // Use the latest known implementation.\n    return family.current;\n  }\n}\n\nfunction resolveClassForHotReloading(type) {\n  // No implementation differences.\n  return resolveFunctionForHotReloading(type);\n}\n\nfunction resolveForwardRefForHotReloading(type) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return type;\n    }\n    var family = resolveFamily(type);\n    if (family === undefined) {\n      // Check if we're dealing with a real forwardRef. Don't want to crash early.\n      if (type !== null && type !== undefined && typeof type.render === 'function') {\n        // ForwardRef is special because its resolved .type is an object,\n        // but it's possible that we only have its inner render function in the map.\n        // If that inner render function is different, we'll build a new forwardRef type.\n        var currentRender = resolveFunctionForHotReloading(type.render);\n        if (type.render !== currentRender) {\n          var syntheticType = {\n            $$typeof: REACT_FORWARD_REF_TYPE,\n            render: currentRender\n          };\n          if (type.displayName !== undefined) {\n            syntheticType.displayName = type.displayName;\n          }\n          return syntheticType;\n        }\n      }\n      return type;\n    }\n    // Use the latest known implementation.\n    return family.current;\n  }\n}\n\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return false;\n    }\n\n    var prevType = fiber.elementType;\n    var nextType = element.type;\n\n    // If we got here, we know types aren't === equal.\n    var needsCompareFamilies = false;\n\n    var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n    switch (fiber.tag) {\n      case ClassComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          }\n          break;\n        }\n      case FunctionComponent:\n        {\n          if (typeof nextType === 'function') {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            // We don't know the inner type yet.\n            // We're going to assume that the lazy inner type is stable,\n            // and so it is sufficient to avoid reconciling it away.\n            // We're not going to unwrap or actually use the new lazy type.\n            needsCompareFamilies = true;\n          }\n          break;\n        }\n      case ForwardRef:\n        {\n          if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n          break;\n        }\n      case MemoComponent:\n      case SimpleMemoComponent:\n        {\n          if ($$typeofNextType === REACT_MEMO_TYPE) {\n            // TODO: if it was but can no longer be simple,\n            // we shouldn't set this.\n            needsCompareFamilies = true;\n          } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n            needsCompareFamilies = true;\n          }\n          break;\n        }\n      default:\n        return false;\n    }\n\n    // Check if both types have a family and it's the same one.\n    if (needsCompareFamilies) {\n      // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n      // This means both of them need to be registered to preserve state.\n      // If we unwrapped and compared the inner types for wrappers instead,\n      // then we would risk falsely saying two separate memo(Foo)\n      // calls are equivalent because they wrap the same Foo function.\n      var prevFamily = resolveFamily(prevType);\n      if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n        return true;\n      }\n    }\n    return false;\n  }\n}\n\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n    if (typeof WeakSet !== 'function') {\n      return;\n    }\n    if (failedBoundaries === null) {\n      failedBoundaries = new WeakSet();\n    }\n    failedBoundaries.add(fiber);\n  }\n}\n\nvar scheduleRefresh = function (root, update) {\n  {\n    if (resolveFamily === null) {\n      // Hot reloading is disabled.\n      return;\n    }\n    var _staleFamilies = update.staleFamilies,\n        _updatedFamilies = update.updatedFamilies;\n\n    flushPassiveEffects();\n    flushSync(function () {\n      scheduleFibersWithFamiliesRecursively(root.current, _updatedFamilies, _staleFamilies);\n    });\n  }\n};\n\nvar scheduleRoot = function (root, element) {\n  {\n    if (root.context !== emptyContextObject) {\n      // Super edge case: root has a legacy _renderSubtree context\n      // but we don't know the parentComponent so we can't pass it.\n      // Just ignore. We'll delete this with _renderSubtree code path later.\n      return;\n    }\n    flushPassiveEffects();\n    updateContainerAtExpirationTime(element, root, null, Sync, null);\n  }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n  {\n    var alternate = fiber.alternate,\n        child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n\n\n    var candidateType = null;\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n      default:\n        break;\n    }\n\n    if (resolveFamily === null) {\n      throw new Error('Expected resolveFamily to be set during hot reload.');\n    }\n\n    var needsRender = false;\n    var needsRemount = false;\n    if (candidateType !== null) {\n      var family = resolveFamily(candidateType);\n      if (family !== undefined) {\n        if (staleFamilies.has(family)) {\n          needsRemount = true;\n        } else if (updatedFamilies.has(family)) {\n          needsRender = true;\n        }\n      }\n    }\n    if (failedBoundaries !== null) {\n      if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n        needsRemount = true;\n      }\n    }\n\n    if (needsRemount) {\n      fiber._debugNeedsRemount = true;\n    }\n    if (needsRemount || needsRender) {\n      scheduleWork(fiber, Sync);\n    }\n    if (child !== null && !needsRemount) {\n      scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n    }\n    if (sibling !== null) {\n      scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n    }\n  }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n  {\n    var hostInstances = new Set();\n    var types = new Set(families.map(function (family) {\n      return family.current;\n    }));\n    findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n    return hostInstances;\n  }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n  {\n    var child = fiber.child,\n        sibling = fiber.sibling,\n        tag = fiber.tag,\n        type = fiber.type;\n\n\n    var candidateType = null;\n    switch (tag) {\n      case FunctionComponent:\n      case SimpleMemoComponent:\n      case ClassComponent:\n        candidateType = type;\n        break;\n      case ForwardRef:\n        candidateType = type.render;\n        break;\n      default:\n        break;\n    }\n\n    var didMatch = false;\n    if (candidateType !== null) {\n      if (types.has(candidateType)) {\n        didMatch = true;\n      }\n    }\n\n    if (didMatch) {\n      // We have a match. This only drills down to the closest host components.\n      // There's no need to search deeper because for the purpose of giving\n      // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n      findHostInstancesForFiberShallowly(fiber, hostInstances);\n    } else {\n      // If there's no match, maybe there will be one further down in the child tree.\n      if (child !== null) {\n        findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n      }\n    }\n\n    if (sibling !== null) {\n      findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n    }\n  }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n    if (foundHostInstances) {\n      return;\n    }\n    // If we didn't find any host children, fallback to closest host parent.\n    var node = fiber;\n    while (true) {\n      switch (node.tag) {\n        case HostComponent:\n          hostInstances.add(node.stateNode);\n          return;\n        case HostPortal:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n        case HostRoot:\n          hostInstances.add(node.stateNode.containerInfo);\n          return;\n      }\n      if (node.return === null) {\n        throw new Error('Expected to reach root first.');\n      }\n      node = node.return;\n    }\n  }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n  {\n    var node = fiber;\n    var foundHostInstances = false;\n    while (true) {\n      if (node.tag === HostComponent) {\n        // We got a match.\n        foundHostInstances = true;\n        hostInstances.add(node.stateNode);\n        // There may still be more, so keep searching.\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      if (node === fiber) {\n        return foundHostInstances;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === fiber) {\n          return foundHostInstances;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n  return false;\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n  if (Component && Component.defaultProps) {\n    // Resolve default props. Taken from ReactElement\n    var props = _assign({}, baseProps);\n    var defaultProps = Component.defaultProps;\n    for (var propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n    return props;\n  }\n  return baseProps;\n}\n\nfunction readLazyComponentType(lazyComponent) {\n  var status = lazyComponent._status;\n  var result = lazyComponent._result;\n  switch (status) {\n    case Resolved:\n      {\n        var Component = result;\n        return Component;\n      }\n    case Rejected:\n      {\n        var error = result;\n        throw error;\n      }\n    case Pending:\n      {\n        var thenable = result;\n        throw thenable;\n      }\n    default:\n      {\n        lazyComponent._status = Pending;\n        var ctor = lazyComponent._ctor;\n        var _thenable = ctor();\n        _thenable.then(function (moduleObject) {\n          if (lazyComponent._status === Pending) {\n            var defaultExport = moduleObject.default;\n            {\n              if (defaultExport === undefined) {\n                warning$1(false, 'lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + \"const MyComponent = lazy(() => import('./MyComponent'))\", moduleObject);\n              }\n            }\n            lazyComponent._status = Resolved;\n            lazyComponent._result = defaultExport;\n          }\n        }, function (error) {\n          if (lazyComponent._status === Pending) {\n            lazyComponent._status = Rejected;\n            lazyComponent._result = error;\n          }\n        });\n        // Handle synchronous thenables.\n        switch (lazyComponent._status) {\n          case Resolved:\n            return lazyComponent._result;\n          case Rejected:\n            throw lazyComponent._result;\n        }\n        lazyComponent._result = _thenable;\n        throw _thenable;\n      }\n  }\n}\n\nvar valueCursor = createCursor(null);\n\nvar rendererSigil = void 0;\n{\n  // Use this to detect multiple renderers using the same context\n  rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\n\nvar isDisallowedContextReadInDEV = false;\n\nfunction resetContextDependencies() {\n  // This is called right before React yields execution, to ensure `readContext`\n  // cannot be called outside the render phase.\n  currentlyRenderingFiber = null;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\n\nfunction enterDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = true;\n  }\n}\n\nfunction exitDisallowedContextReadInDEV() {\n  {\n    isDisallowedContextReadInDEV = false;\n  }\n}\n\nfunction pushProvider(providerFiber, nextValue) {\n  var context = providerFiber.type._context;\n\n  if (isPrimaryRenderer) {\n    push(valueCursor, context._currentValue, providerFiber);\n\n    context._currentValue = nextValue;\n    {\n      !(context._currentRenderer === undefined || context._currentRenderer === null || context._currentRenderer === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;\n      context._currentRenderer = rendererSigil;\n    }\n  } else {\n    push(valueCursor, context._currentValue2, providerFiber);\n\n    context._currentValue2 = nextValue;\n    {\n      !(context._currentRenderer2 === undefined || context._currentRenderer2 === null || context._currentRenderer2 === rendererSigil) ? warningWithoutStack$1(false, 'Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.') : void 0;\n      context._currentRenderer2 = rendererSigil;\n    }\n  }\n}\n\nfunction popProvider(providerFiber) {\n  var currentValue = valueCursor.current;\n\n  pop(valueCursor, providerFiber);\n\n  var context = providerFiber.type._context;\n  if (isPrimaryRenderer) {\n    context._currentValue = currentValue;\n  } else {\n    context._currentValue2 = currentValue;\n  }\n}\n\nfunction calculateChangedBits(context, newValue, oldValue) {\n  if (is(oldValue, newValue)) {\n    // No change\n    return 0;\n  } else {\n    var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n    {\n      !((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits) ? warning$1(false, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits) : void 0;\n    }\n    return changedBits | 0;\n  }\n}\n\nfunction scheduleWorkOnParentPath(parent, renderExpirationTime) {\n  // Update the child expiration time of all the ancestors, including\n  // the alternates.\n  var node = parent;\n  while (node !== null) {\n    var alternate = node.alternate;\n    if (node.childExpirationTime < renderExpirationTime) {\n      node.childExpirationTime = renderExpirationTime;\n      if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {\n        alternate.childExpirationTime = renderExpirationTime;\n      }\n    } else if (alternate !== null && alternate.childExpirationTime < renderExpirationTime) {\n      alternate.childExpirationTime = renderExpirationTime;\n    } else {\n      // Neither alternate was updated, which means the rest of the\n      // ancestor path already has sufficient priority.\n      break;\n    }\n    node = node.return;\n  }\n}\n\nfunction propagateContextChange(workInProgress, context, changedBits, renderExpirationTime) {\n  var fiber = workInProgress.child;\n  if (fiber !== null) {\n    // Set the return pointer of the child to the work-in-progress fiber.\n    fiber.return = workInProgress;\n  }\n  while (fiber !== null) {\n    var nextFiber = void 0;\n\n    // Visit this fiber.\n    var list = fiber.dependencies;\n    if (list !== null) {\n      nextFiber = fiber.child;\n\n      var dependency = list.firstContext;\n      while (dependency !== null) {\n        // Check if the context matches.\n        if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n          // Match! Schedule an update on this fiber.\n\n          if (fiber.tag === ClassComponent) {\n            // Schedule a force update on the work-in-progress.\n            var update = createUpdate(renderExpirationTime, null);\n            update.tag = ForceUpdate;\n            // TODO: Because we don't have a work-in-progress, this will add the\n            // update to the current fiber, too, which means it will persist even if\n            // this render is thrown away. Since it's a race condition, not sure it's\n            // worth fixing.\n            enqueueUpdate(fiber, update);\n          }\n\n          if (fiber.expirationTime < renderExpirationTime) {\n            fiber.expirationTime = renderExpirationTime;\n          }\n          var alternate = fiber.alternate;\n          if (alternate !== null && alternate.expirationTime < renderExpirationTime) {\n            alternate.expirationTime = renderExpirationTime;\n          }\n\n          scheduleWorkOnParentPath(fiber.return, renderExpirationTime);\n\n          // Mark the expiration time on the list, too.\n          if (list.expirationTime < renderExpirationTime) {\n            list.expirationTime = renderExpirationTime;\n          }\n\n          // Since we already found a match, we can stop traversing the\n          // dependency list.\n          break;\n        }\n        dependency = dependency.next;\n      }\n    } else if (fiber.tag === ContextProvider) {\n      // Don't scan deeper if this is a matching provider\n      nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n    } else if (enableSuspenseServerRenderer && fiber.tag === DehydratedSuspenseComponent) {\n      // If a dehydrated suspense component is in this subtree, we don't know\n      // if it will have any context consumers in it. The best we can do is\n      // mark it as having updates on its children.\n      if (fiber.expirationTime < renderExpirationTime) {\n        fiber.expirationTime = renderExpirationTime;\n      }\n      var _alternate = fiber.alternate;\n      if (_alternate !== null && _alternate.expirationTime < renderExpirationTime) {\n        _alternate.expirationTime = renderExpirationTime;\n      }\n      // This is intentionally passing this fiber as the parent\n      // because we want to schedule this fiber as having work\n      // on its children. We'll use the childExpirationTime on\n      // this fiber to indicate that a context has changed.\n      scheduleWorkOnParentPath(fiber, renderExpirationTime);\n      nextFiber = fiber.sibling;\n    } else {\n      // Traverse down.\n      nextFiber = fiber.child;\n    }\n\n    if (nextFiber !== null) {\n      // Set the return pointer of the child to the work-in-progress fiber.\n      nextFiber.return = fiber;\n    } else {\n      // No child. Traverse to next sibling.\n      nextFiber = fiber;\n      while (nextFiber !== null) {\n        if (nextFiber === workInProgress) {\n          // We're back to the root of this subtree. Exit.\n          nextFiber = null;\n          break;\n        }\n        var sibling = nextFiber.sibling;\n        if (sibling !== null) {\n          // Set the return pointer of the sibling to the work-in-progress fiber.\n          sibling.return = nextFiber.return;\n          nextFiber = sibling;\n          break;\n        }\n        // No more siblings. Traverse up.\n        nextFiber = nextFiber.return;\n      }\n    }\n    fiber = nextFiber;\n  }\n}\n\nfunction prepareToReadContext(workInProgress, renderExpirationTime) {\n  currentlyRenderingFiber = workInProgress;\n  lastContextDependency = null;\n  lastContextWithAllBitsObserved = null;\n\n  var dependencies = workInProgress.dependencies;\n  if (dependencies !== null) {\n    var firstContext = dependencies.firstContext;\n    if (firstContext !== null) {\n      if (dependencies.expirationTime >= renderExpirationTime) {\n        // Context list has a pending update. Mark that this fiber performed work.\n        markWorkInProgressReceivedUpdate();\n      }\n      // Reset the work-in-progress list\n      dependencies.firstContext = null;\n    }\n  }\n}\n\nfunction readContext(context, observedBits) {\n  {\n    // This warning would fire if you read context inside a Hook like useMemo.\n    // Unlike the class check below, it's not enforced in production for perf.\n    !!isDisallowedContextReadInDEV ? 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\n  if (lastContextWithAllBitsObserved === context) {\n    // Nothing to do. We already observe everything in this context.\n  } else if (observedBits === false || observedBits === 0) {\n    // Do not observe any updates.\n  } else {\n    var resolvedObservedBits = void 0; // Avoid deopting on observable arguments or heterogeneous types.\n    if (typeof observedBits !== 'number' || observedBits === MAX_SIGNED_31_BIT_INT) {\n      // Observe all updates.\n      lastContextWithAllBitsObserved = context;\n      resolvedObservedBits = MAX_SIGNED_31_BIT_INT;\n    } else {\n      resolvedObservedBits = observedBits;\n    }\n\n    var contextItem = {\n      context: context,\n      observedBits: resolvedObservedBits,\n      next: null\n    };\n\n    if (lastContextDependency === null) {\n      (function () {\n        if (!(currentlyRenderingFiber !== null)) {\n          {\n            throw ReactError(Error('Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().'));\n          }\n        }\n      })();\n\n      // This is the first dependency for this component. Create a new list.\n      lastContextDependency = contextItem;\n      currentlyRenderingFiber.dependencies = {\n        expirationTime: NoWork,\n        firstContext: contextItem,\n        responders: null\n      };\n    } else {\n      // Append a new context item.\n      lastContextDependency = lastContextDependency.next = contextItem;\n    }\n  }\n  return isPrimaryRenderer ? context._currentValue : context._currentValue2;\n}\n\n// UpdateQueue is a linked list of prioritized updates.\n//\n// Like fibers, update queues come in pairs: a current queue, which represents\n// the visible state of the screen, and a work-in-progress queue, which can be\n// mutated and processed asynchronously before it is committed — a form of\n// double buffering. If a work-in-progress render is discarded before finishing,\n// we create a new work-in-progress by cloning the current queue.\n//\n// Both queues share a persistent, singly-linked list structure. To schedule an\n// update, we append it to the end of both queues. Each queue maintains a\n// pointer to first update in the persistent list that hasn't been processed.\n// The work-in-progress pointer always has a position equal to or greater than\n// the current queue, since we always work on that one. The current queue's\n// pointer is only updated during the commit phase, when we swap in the\n// work-in-progress.\n//\n// For example:\n//\n//   Current pointer:           A - B - C - D - E - F\n//   Work-in-progress pointer:              D - E - F\n//                                          ^\n//                                          The work-in-progress queue has\n//                                          processed more updates than current.\n//\n// The reason we append to both queues is because otherwise we might drop\n// updates without ever processing them. For example, if we only add updates to\n// the work-in-progress queue, some updates could be lost whenever a work-in\n// -progress render restarts by cloning from current. Similarly, if we only add\n// updates to the current queue, the updates will be lost whenever an already\n// in-progress queue commits and swaps with the current queue. However, by\n// adding to both queues, we guarantee that the update will be part of the next\n// work-in-progress. (And because the work-in-progress queue becomes the\n// current queue once it commits, there's no danger of applying the same\n// update twice.)\n//\n// Prioritization\n// --------------\n//\n// Updates are not sorted by priority, but by insertion; new updates are always\n// appended to the end of the list.\n//\n// The priority is still important, though. When processing the update queue\n// during the render phase, only the updates with sufficient priority are\n// included in the result. If we skip an update because it has insufficient\n// priority, it remains in the queue to be processed later, during a lower\n// priority render. Crucially, all updates subsequent to a skipped update also\n// remain in the queue *regardless of their priority*. That means high priority\n// updates are sometimes processed twice, at two separate priorities. We also\n// keep track of a base state, that represents the state before the first\n// update in the queue is applied.\n//\n// For example:\n//\n//   Given a base state of '', and the following queue of updates\n//\n//     A1 - B2 - C1 - D2\n//\n//   where the number indicates the priority, and the update is applied to the\n//   previous state by appending a letter, React will process these updates as\n//   two separate renders, one per distinct priority level:\n//\n//   First render, at priority 1:\n//     Base state: ''\n//     Updates: [A1, C1]\n//     Result state: 'AC'\n//\n//   Second render, at priority 2:\n//     Base state: 'A'            <-  The base state does not include C1,\n//                                    because B2 was skipped.\n//     Updates: [B2, C1, D2]      <-  C1 was rebased on top of B2\n//     Result state: 'ABCD'\n//\n// Because we process updates in insertion order, and rebase high priority\n// updates when preceding updates are skipped, the final result is deterministic\n// regardless of priority. Intermediate state may vary according to system\n// resources, but the final state is always the same.\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3;\n\n// Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\nvar hasForceUpdate = false;\n\nvar didWarnUpdateInsideUpdate = void 0;\nvar currentlyProcessingQueue = void 0;\n\n{\n  didWarnUpdateInsideUpdate = false;\n  currentlyProcessingQueue = null;\n  \n}\n\nfunction createUpdateQueue(baseState) {\n  var queue = {\n    baseState: baseState,\n    firstUpdate: null,\n    lastUpdate: null,\n    firstCapturedUpdate: null,\n    lastCapturedUpdate: null,\n    firstEffect: null,\n    lastEffect: null,\n    firstCapturedEffect: null,\n    lastCapturedEffect: null\n  };\n  return queue;\n}\n\nfunction cloneUpdateQueue(currentQueue) {\n  var queue = {\n    baseState: currentQueue.baseState,\n    firstUpdate: currentQueue.firstUpdate,\n    lastUpdate: currentQueue.lastUpdate,\n\n    // TODO: With resuming, if we bail out and resuse the child tree, we should\n    // keep these effects.\n    firstCapturedUpdate: null,\n    lastCapturedUpdate: null,\n\n    firstEffect: null,\n    lastEffect: null,\n\n    firstCapturedEffect: null,\n    lastCapturedEffect: null\n  };\n  return queue;\n}\n\nfunction createUpdate(expirationTime, suspenseConfig) {\n  var update = {\n    expirationTime: expirationTime,\n    suspenseConfig: suspenseConfig,\n\n    tag: UpdateState,\n    payload: null,\n    callback: null,\n\n    next: null,\n    nextEffect: null\n  };\n  {\n    update.priority = getCurrentPriorityLevel();\n  }\n  return update;\n}\n\nfunction appendUpdateToQueue(queue, update) {\n  // Append the update to the end of the list.\n  if (queue.lastUpdate === null) {\n    // Queue is empty\n    queue.firstUpdate = queue.lastUpdate = update;\n  } else {\n    queue.lastUpdate.next = update;\n    queue.lastUpdate = update;\n  }\n}\n\nfunction enqueueUpdate(fiber, update) {\n  // Update queues are created lazily.\n  var alternate = fiber.alternate;\n  var queue1 = void 0;\n  var queue2 = void 0;\n  if (alternate === null) {\n    // There's only one fiber.\n    queue1 = fiber.updateQueue;\n    queue2 = null;\n    if (queue1 === null) {\n      queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);\n    }\n  } else {\n    // There are two owners.\n    queue1 = fiber.updateQueue;\n    queue2 = alternate.updateQueue;\n    if (queue1 === null) {\n      if (queue2 === null) {\n        // Neither fiber has an update queue. Create new ones.\n        queue1 = fiber.updateQueue = createUpdateQueue(fiber.memoizedState);\n        queue2 = alternate.updateQueue = createUpdateQueue(alternate.memoizedState);\n      } else {\n        // Only one fiber has an update queue. Clone to create a new one.\n        queue1 = fiber.updateQueue = cloneUpdateQueue(queue2);\n      }\n    } else {\n      if (queue2 === null) {\n        // Only one fiber has an update queue. Clone to create a new one.\n        queue2 = alternate.updateQueue = cloneUpdateQueue(queue1);\n      } else {\n        // Both owners have an update queue.\n      }\n    }\n  }\n  if (queue2 === null || queue1 === queue2) {\n    // There's only a single queue.\n    appendUpdateToQueue(queue1, update);\n  } else {\n    // There are two queues. We need to append the update to both queues,\n    // while accounting for the persistent structure of the list — we don't\n    // want the same update to be added multiple times.\n    if (queue1.lastUpdate === null || queue2.lastUpdate === null) {\n      // One of the queues is not empty. We must add the update to both queues.\n      appendUpdateToQueue(queue1, update);\n      appendUpdateToQueue(queue2, update);\n    } else {\n      // Both queues are non-empty. The last update is the same in both lists,\n      // because of structural sharing. So, only append to one of the lists.\n      appendUpdateToQueue(queue1, update);\n      // But we still need to update the `lastUpdate` pointer of queue2.\n      queue2.lastUpdate = update;\n    }\n  }\n\n  {\n    if (fiber.tag === ClassComponent && (currentlyProcessingQueue === queue1 || queue2 !== null && currentlyProcessingQueue === queue2) && !didWarnUpdateInsideUpdate) {\n      warningWithoutStack$1(false, 'An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n      didWarnUpdateInsideUpdate = true;\n    }\n  }\n}\n\nfunction enqueueCapturedUpdate(workInProgress, update) {\n  // Captured updates go into a separate list, and only on the work-in-\n  // progress queue.\n  var workInProgressQueue = workInProgress.updateQueue;\n  if (workInProgressQueue === null) {\n    workInProgressQueue = workInProgress.updateQueue = createUpdateQueue(workInProgress.memoizedState);\n  } else {\n    // TODO: I put this here rather than createWorkInProgress so that we don't\n    // clone the queue unnecessarily. There's probably a better way to\n    // structure this.\n    workInProgressQueue = ensureWorkInProgressQueueIsAClone(workInProgress, workInProgressQueue);\n  }\n\n  // Append the update to the end of the list.\n  if (workInProgressQueue.lastCapturedUpdate === null) {\n    // This is the first render phase update\n    workInProgressQueue.firstCapturedUpdate = workInProgressQueue.lastCapturedUpdate = update;\n  } else {\n    workInProgressQueue.lastCapturedUpdate.next = update;\n    workInProgressQueue.lastCapturedUpdate = update;\n  }\n}\n\nfunction ensureWorkInProgressQueueIsAClone(workInProgress, queue) {\n  var current = workInProgress.alternate;\n  if (current !== null) {\n    // If the work-in-progress queue is equal to the current queue,\n    // we need to clone it first.\n    if (queue === current.updateQueue) {\n      queue = workInProgress.updateQueue = cloneUpdateQueue(queue);\n    }\n  }\n  return queue;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n  switch (update.tag) {\n    case ReplaceState:\n      {\n        var _payload = update.payload;\n        if (typeof _payload === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n              _payload.call(instance, prevState, nextProps);\n            }\n          }\n          var nextState = _payload.call(instance, prevState, nextProps);\n          {\n            exitDisallowedContextReadInDEV();\n          }\n          return nextState;\n        }\n        // State object\n        return _payload;\n      }\n    case CaptureUpdate:\n      {\n        workInProgress.effectTag = workInProgress.effectTag & ~ShouldCapture | DidCapture;\n      }\n    // Intentional fallthrough\n    case UpdateState:\n      {\n        var _payload2 = update.payload;\n        var partialState = void 0;\n        if (typeof _payload2 === 'function') {\n          // Updater function\n          {\n            enterDisallowedContextReadInDEV();\n            if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n              _payload2.call(instance, prevState, nextProps);\n            }\n          }\n          partialState = _payload2.call(instance, prevState, nextProps);\n          {\n            exitDisallowedContextReadInDEV();\n          }\n        } else {\n          // Partial state object\n          partialState = _payload2;\n        }\n        if (partialState === null || partialState === undefined) {\n          // Null and undefined are treated as no-ops.\n          return prevState;\n        }\n        // Merge the partial state and the previous state.\n        return _assign({}, prevState, partialState);\n      }\n    case ForceUpdate:\n      {\n        hasForceUpdate = true;\n        return prevState;\n      }\n  }\n  return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, queue, props, instance, renderExpirationTime) {\n  hasForceUpdate = false;\n\n  queue = ensureWorkInProgressQueueIsAClone(workInProgress, queue);\n\n  {\n    currentlyProcessingQueue = queue;\n  }\n\n  // These values may change as we process the queue.\n  var newBaseState = queue.baseState;\n  var newFirstUpdate = null;\n  var newExpirationTime = NoWork;\n\n  // Iterate through the list of updates to compute the result.\n  var update = queue.firstUpdate;\n  var resultState = newBaseState;\n  while (update !== null) {\n    var updateExpirationTime = update.expirationTime;\n    if (updateExpirationTime < renderExpirationTime) {\n      // This update does not have sufficient priority. Skip it.\n      if (newFirstUpdate === null) {\n        // This is the first skipped update. It will be the first update in\n        // the new list.\n        newFirstUpdate = update;\n        // Since this is the first update that was skipped, the current result\n        // is the new base state.\n        newBaseState = resultState;\n      }\n      // Since this update will remain in the list, update the remaining\n      // expiration time.\n      if (newExpirationTime < updateExpirationTime) {\n        newExpirationTime = updateExpirationTime;\n      }\n    } else {\n      // This update does have sufficient priority.\n\n      // Mark the event time of this update as relevant to this render pass.\n      // TODO: This should ideally use the true event time of this update rather than\n      // its priority which is a derived and not reverseable value.\n      // TODO: We should skip this update if it was already committed but currently\n      // we have no way of detecting the difference between a committed and suspended\n      // update here.\n      markRenderEventTimeAndConfig(updateExpirationTime, update.suspenseConfig);\n\n      // Process it and compute a new result.\n      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);\n      var _callback = update.callback;\n      if (_callback !== null) {\n        workInProgress.effectTag |= Callback;\n        // Set this to null, in case it was mutated during an aborted render.\n        update.nextEffect = null;\n        if (queue.lastEffect === null) {\n          queue.firstEffect = queue.lastEffect = update;\n        } else {\n          queue.lastEffect.nextEffect = update;\n          queue.lastEffect = update;\n        }\n      }\n    }\n    // Continue to the next update.\n    update = update.next;\n  }\n\n  // Separately, iterate though the list of captured updates.\n  var newFirstCapturedUpdate = null;\n  update = queue.firstCapturedUpdate;\n  while (update !== null) {\n    var _updateExpirationTime = update.expirationTime;\n    if (_updateExpirationTime < renderExpirationTime) {\n      // This update does not have sufficient priority. Skip it.\n      if (newFirstCapturedUpdate === null) {\n        // This is the first skipped captured update. It will be the first\n        // update in the new list.\n        newFirstCapturedUpdate = update;\n        // If this is the first update that was skipped, the current result is\n        // the new base state.\n        if (newFirstUpdate === null) {\n          newBaseState = resultState;\n        }\n      }\n      // Since this update will remain in the list, update the remaining\n      // expiration time.\n      if (newExpirationTime < _updateExpirationTime) {\n        newExpirationTime = _updateExpirationTime;\n      }\n    } else {\n      // This update does have sufficient priority. Process it and compute\n      // a new result.\n      resultState = getStateFromUpdate(workInProgress, queue, update, resultState, props, instance);\n      var _callback2 = update.callback;\n      if (_callback2 !== null) {\n        workInProgress.effectTag |= Callback;\n        // Set this to null, in case it was mutated during an aborted render.\n        update.nextEffect = null;\n        if (queue.lastCapturedEffect === null) {\n          queue.firstCapturedEffect = queue.lastCapturedEffect = update;\n        } else {\n          queue.lastCapturedEffect.nextEffect = update;\n          queue.lastCapturedEffect = update;\n        }\n      }\n    }\n    update = update.next;\n  }\n\n  if (newFirstUpdate === null) {\n    queue.lastUpdate = null;\n  }\n  if (newFirstCapturedUpdate === null) {\n    queue.lastCapturedUpdate = null;\n  } else {\n    workInProgress.effectTag |= Callback;\n  }\n  if (newFirstUpdate === null && newFirstCapturedUpdate === null) {\n    // We processed every update, without skipping. That means the new base\n    // state is the same as the result state.\n    newBaseState = resultState;\n  }\n\n  queue.baseState = newBaseState;\n  queue.firstUpdate = newFirstUpdate;\n  queue.firstCapturedUpdate = newFirstCapturedUpdate;\n\n  // Set the remaining expiration time to be whatever is remaining in the queue.\n  // This should be fine because the only two other things that contribute to\n  // expiration time are props and context. We're already in the middle of the\n  // begin phase by the time we start processing the queue, so we've already\n  // dealt with the props. Context in components that specify\n  // shouldComponentUpdate is tricky; but we'll have to account for\n  // that regardless.\n  workInProgress.expirationTime = newExpirationTime;\n  workInProgress.memoizedState = resultState;\n\n  {\n    currentlyProcessingQueue = null;\n  }\n}\n\nfunction callCallback(callback, context) {\n  (function () {\n    if (!(typeof callback === 'function')) {\n      {\n        throw ReactError(Error('Invalid argument passed as callback. Expected a function. Instead received: ' + callback));\n      }\n    }\n  })();\n  callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n  hasForceUpdate = false;\n}\n\nfunction checkHasForceUpdateAfterProcessing() {\n  return hasForceUpdate;\n}\n\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance, renderExpirationTime) {\n  // If the finished render included captured updates, and there are still\n  // lower priority updates left over, we need to keep the captured updates\n  // in the queue so that they are rebased and not dropped once we process the\n  // queue again at the lower priority.\n  if (finishedQueue.firstCapturedUpdate !== null) {\n    // Join the captured update list to the end of the normal list.\n    if (finishedQueue.lastUpdate !== null) {\n      finishedQueue.lastUpdate.next = finishedQueue.firstCapturedUpdate;\n      finishedQueue.lastUpdate = finishedQueue.lastCapturedUpdate;\n    }\n    // Clear the list of captured updates.\n    finishedQueue.firstCapturedUpdate = finishedQueue.lastCapturedUpdate = null;\n  }\n\n  // Commit the effects\n  commitUpdateEffects(finishedQueue.firstEffect, instance);\n  finishedQueue.firstEffect = finishedQueue.lastEffect = null;\n\n  commitUpdateEffects(finishedQueue.firstCapturedEffect, instance);\n  finishedQueue.firstCapturedEffect = finishedQueue.lastCapturedEffect = null;\n}\n\nfunction commitUpdateEffects(effect, instance) {\n  while (effect !== null) {\n    var _callback3 = effect.callback;\n    if (_callback3 !== null) {\n      effect.callback = null;\n      callCallback(_callback3, instance);\n    }\n    effect = effect.nextEffect;\n  }\n}\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\n\n\nfunction requestCurrentSuspenseConfig() {\n  return ReactCurrentBatchConfig.suspense;\n}\n\nvar fakeInternalInstance = {};\nvar isArray$1 = Array.isArray;\n\n// React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\nvar emptyRefsObject = new React.Component().refs;\n\nvar didWarnAboutStateAssignmentForComponent = void 0;\nvar didWarnAboutUninitializedState = void 0;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = void 0;\nvar didWarnAboutLegacyLifecyclesAndDerivedState = void 0;\nvar didWarnAboutUndefinedDerivedState = void 0;\nvar warnOnUndefinedDerivedState = void 0;\nvar warnOnInvalidCallback$1 = void 0;\nvar didWarnAboutDirectlyAssigningPropsToState = void 0;\nvar didWarnAboutContextTypeAndContextTypes = void 0;\nvar didWarnAboutInvalidateContextType = void 0;\n\n{\n  didWarnAboutStateAssignmentForComponent = new Set();\n  didWarnAboutUninitializedState = new Set();\n  didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n  didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n  didWarnAboutDirectlyAssigningPropsToState = new Set();\n  didWarnAboutUndefinedDerivedState = new Set();\n  didWarnAboutContextTypeAndContextTypes = new Set();\n  didWarnAboutInvalidateContextType = new Set();\n\n  var didWarnOnInvalidCallback = new Set();\n\n  warnOnInvalidCallback$1 = function (callback, callerName) {\n    if (callback === null || typeof callback === 'function') {\n      return;\n    }\n    var key = callerName + '_' + callback;\n    if (!didWarnOnInvalidCallback.has(key)) {\n      didWarnOnInvalidCallback.add(key);\n      warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n    }\n  };\n\n  warnOnUndefinedDerivedState = function (type, partialState) {\n    if (partialState === undefined) {\n      var componentName = getComponentName(type) || 'Component';\n      if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n        didWarnAboutUndefinedDerivedState.add(componentName);\n        warningWithoutStack$1(false, '%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n      }\n    }\n  };\n\n  // This is so gross but it's at least non-critical and can be removed if\n  // it causes problems. This is meant to give a nicer error message for\n  // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n  // ...)) which otherwise throws a \"_processChildContext is not a function\"\n  // exception.\n  Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n    enumerable: false,\n    value: function () {\n      (function () {\n        {\n          {\n            throw ReactError(Error('_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn\\'t supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).'));\n          }\n        }\n      })();\n    }\n  });\n  Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n  var prevState = workInProgress.memoizedState;\n\n  {\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      // Invoke the function an extra time to help detect side-effects.\n      getDerivedStateFromProps(nextProps, prevState);\n    }\n  }\n\n  var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n  {\n    warnOnUndefinedDerivedState(ctor, partialState);\n  }\n  // Merge the partial state and the previous state.\n  var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n  workInProgress.memoizedState = memoizedState;\n\n  // Once the update queue is empty, persist the derived state onto the\n  // base state.\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null && workInProgress.expirationTime === NoWork) {\n    updateQueue.baseState = memoizedState;\n  }\n}\n\nvar classComponentUpdater = {\n  isMounted: isMounted,\n  enqueueSetState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.payload = payload;\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'setState');\n      }\n      update.callback = callback;\n    }\n\n    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueReplaceState: function (inst, payload, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.tag = ReplaceState;\n    update.payload = payload;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'replaceState');\n      }\n      update.callback = callback;\n    }\n\n    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  },\n  enqueueForceUpdate: function (inst, callback) {\n    var fiber = get(inst);\n    var currentTime = requestCurrentTime();\n    var suspenseConfig = requestCurrentSuspenseConfig();\n    var expirationTime = computeExpirationForFiber(currentTime, fiber, suspenseConfig);\n\n    var update = createUpdate(expirationTime, suspenseConfig);\n    update.tag = ForceUpdate;\n\n    if (callback !== undefined && callback !== null) {\n      {\n        warnOnInvalidCallback$1(callback, 'forceUpdate');\n      }\n      update.callback = callback;\n    }\n\n    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n    enqueueUpdate(fiber, update);\n    scheduleWork(fiber, expirationTime);\n  }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n  var instance = workInProgress.stateNode;\n  if (typeof instance.shouldComponentUpdate === 'function') {\n    startPhaseTimer(workInProgress, 'shouldComponentUpdate');\n    var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n    stopPhaseTimer();\n\n    {\n      !(shouldUpdate !== undefined) ? warningWithoutStack$1(false, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component') : void 0;\n    }\n\n    return shouldUpdate;\n  }\n\n  if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n    return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n  }\n\n  return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n  var instance = workInProgress.stateNode;\n  {\n    var name = getComponentName(ctor) || 'Component';\n    var renderPresent = instance.render;\n\n    if (!renderPresent) {\n      if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n      } else {\n        warningWithoutStack$1(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n      }\n    }\n\n    var noGetInitialStateOnES6 = !instance.getInitialState || instance.getInitialState.isReactClassApproved || instance.state;\n    !noGetInitialStateOnES6 ? warningWithoutStack$1(false, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name) : void 0;\n    var noGetDefaultPropsOnES6 = !instance.getDefaultProps || instance.getDefaultProps.isReactClassApproved;\n    !noGetDefaultPropsOnES6 ? warningWithoutStack$1(false, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name) : void 0;\n    var noInstancePropTypes = !instance.propTypes;\n    !noInstancePropTypes ? warningWithoutStack$1(false, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name) : void 0;\n    var noInstanceContextType = !instance.contextType;\n    !noInstanceContextType ? warningWithoutStack$1(false, 'contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name) : void 0;\n\n    if (disableLegacyContext) {\n      if (ctor.childContextTypes) {\n        warningWithoutStack$1(false, '%s uses the legacy childContextTypes API which is no longer supported. ' + 'Use React.createContext() instead.', name);\n      }\n      if (ctor.contextTypes) {\n        warningWithoutStack$1(false, '%s uses the legacy contextTypes API which is no longer supported. ' + 'Use React.createContext() with static contextType instead.', name);\n      }\n    } else {\n      var noInstanceContextTypes = !instance.contextTypes;\n      !noInstanceContextTypes ? warningWithoutStack$1(false, 'contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name) : void 0;\n\n      if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n        didWarnAboutContextTypeAndContextTypes.add(ctor);\n        warningWithoutStack$1(false, '%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n      }\n    }\n\n    var noComponentShouldUpdate = typeof instance.componentShouldUpdate !== 'function';\n    !noComponentShouldUpdate ? warningWithoutStack$1(false, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name) : void 0;\n    if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n      warningWithoutStack$1(false, '%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n    }\n    var noComponentDidUnmount = typeof instance.componentDidUnmount !== 'function';\n    !noComponentDidUnmount ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name) : void 0;\n    var noComponentDidReceiveProps = typeof instance.componentDidReceiveProps !== 'function';\n    !noComponentDidReceiveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name) : void 0;\n    var noComponentWillRecieveProps = typeof instance.componentWillRecieveProps !== 'function';\n    !noComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name) : void 0;\n    var noUnsafeComponentWillRecieveProps = typeof instance.UNSAFE_componentWillRecieveProps !== 'function';\n    !noUnsafeComponentWillRecieveProps ? warningWithoutStack$1(false, '%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name) : void 0;\n    var hasMutatedProps = instance.props !== newProps;\n    !(instance.props === undefined || !hasMutatedProps) ? warningWithoutStack$1(false, '%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name) : void 0;\n    var noInstanceDefaultProps = !instance.defaultProps;\n    !noInstanceDefaultProps ? warningWithoutStack$1(false, 'Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name) : void 0;\n\n    if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n      didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n      warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n    }\n\n    var noInstanceGetDerivedStateFromProps = typeof instance.getDerivedStateFromProps !== 'function';\n    !noInstanceGetDerivedStateFromProps ? warningWithoutStack$1(false, '%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;\n    var noInstanceGetDerivedStateFromCatch = typeof instance.getDerivedStateFromError !== 'function';\n    !noInstanceGetDerivedStateFromCatch ? warningWithoutStack$1(false, '%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name) : void 0;\n    var noStaticGetSnapshotBeforeUpdate = typeof ctor.getSnapshotBeforeUpdate !== 'function';\n    !noStaticGetSnapshotBeforeUpdate ? warningWithoutStack$1(false, '%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name) : void 0;\n    var _state = instance.state;\n    if (_state && (typeof _state !== 'object' || isArray$1(_state))) {\n      warningWithoutStack$1(false, '%s.state: must be set to an object or null', name);\n    }\n    if (typeof instance.getChildContext === 'function') {\n      !(typeof ctor.childContextTypes === 'object') ? warningWithoutStack$1(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name) : void 0;\n    }\n  }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n  instance.updater = classComponentUpdater;\n  workInProgress.stateNode = instance;\n  // The instance needs access to the fiber so that it can schedule updates\n  set(instance, workInProgress);\n  {\n    instance._reactInternalInstance = fakeInternalInstance;\n  }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props, renderExpirationTime) {\n  var isLegacyContextConsumer = false;\n  var unmaskedContext = emptyContextObject;\n  var context = emptyContextObject;\n  var contextType = ctor.contextType;\n\n  {\n    if ('contextType' in ctor) {\n      var isValid =\n      // Allow null for conditional declaration\n      contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n      if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n        didWarnAboutInvalidateContextType.add(ctor);\n\n        var addendum = '';\n        if (contextType === undefined) {\n          addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n        } else if (typeof contextType !== 'object') {\n          addendum = ' However, it is set to a ' + typeof contextType + '.';\n        } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n          addendum = ' Did you accidentally pass the Context.Provider instead?';\n        } else if (contextType._context !== undefined) {\n          // <Context.Consumer>\n          addendum = ' Did you accidentally pass the Context.Consumer instead?';\n        } else {\n          addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n        }\n        warningWithoutStack$1(false, '%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(ctor) || 'Component', addendum);\n      }\n    }\n  }\n\n  if (typeof contextType === 'object' && contextType !== null) {\n    context = readContext(contextType);\n  } else if (!disableLegacyContext) {\n    unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    var contextTypes = ctor.contextTypes;\n    isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n    context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n  }\n\n  // Instantiate twice to help detect side-effects.\n  {\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      new ctor(props, context); // eslint-disable-line no-new\n    }\n  }\n\n  var instance = new ctor(props, context);\n  var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n  adoptClassInstance(workInProgress, instance);\n\n  {\n    if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n      var componentName = getComponentName(ctor) || 'Component';\n      if (!didWarnAboutUninitializedState.has(componentName)) {\n        didWarnAboutUninitializedState.add(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, instance.state === null ? 'null' : 'undefined', componentName);\n      }\n    }\n\n    // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n    // Warn about these lifecycles if they are present.\n    // Don't warn about react-lifecycles-compat polyfilled methods though.\n    if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n      var foundWillMountName = null;\n      var foundWillReceivePropsName = null;\n      var foundWillUpdateName = null;\n      if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n        foundWillMountName = 'componentWillMount';\n      } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        foundWillMountName = 'UNSAFE_componentWillMount';\n      }\n      if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n        foundWillReceivePropsName = 'componentWillReceiveProps';\n      } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n        foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n      }\n      if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n        foundWillUpdateName = 'componentWillUpdate';\n      } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n      }\n      if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n        var _componentName = getComponentName(ctor) || 'Component';\n        var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n        if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n          didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n          warningWithoutStack$1(false, 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://fb.me/react-async-component-lifecycle-hooks', _componentName, newApiName, foundWillMountName !== null ? '\\n  ' + foundWillMountName : '', foundWillReceivePropsName !== null ? '\\n  ' + foundWillReceivePropsName : '', foundWillUpdateName !== null ? '\\n  ' + foundWillUpdateName : '');\n        }\n      }\n    }\n  }\n\n  // Cache unmasked context so we can avoid recreating masked context unless necessary.\n  // ReactFiberContext usually updates this cache but can't for newly-created instances.\n  if (isLegacyContextConsumer) {\n    cacheContext(workInProgress, unmaskedContext, context);\n  }\n\n  return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n  startPhaseTimer(workInProgress, 'componentWillMount');\n  var oldState = instance.state;\n\n  if (typeof instance.componentWillMount === 'function') {\n    instance.componentWillMount();\n  }\n  if (typeof instance.UNSAFE_componentWillMount === 'function') {\n    instance.UNSAFE_componentWillMount();\n  }\n\n  stopPhaseTimer();\n\n  if (oldState !== instance.state) {\n    {\n      warningWithoutStack$1(false, '%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n    }\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n  var oldState = instance.state;\n  startPhaseTimer(workInProgress, 'componentWillReceiveProps');\n  if (typeof instance.componentWillReceiveProps === 'function') {\n    instance.componentWillReceiveProps(newProps, nextContext);\n  }\n  if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n  }\n  stopPhaseTimer();\n\n  if (instance.state !== oldState) {\n    {\n      var componentName = getComponentName(workInProgress.type) || 'Component';\n      if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n        didWarnAboutStateAssignmentForComponent.add(componentName);\n        warningWithoutStack$1(false, '%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n      }\n    }\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n  }\n}\n\n// Invokes the mount life-cycles on a previously never rendered instance.\nfunction mountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  {\n    checkClassInstance(workInProgress, ctor, newProps);\n  }\n\n  var instance = workInProgress.stateNode;\n  instance.props = newProps;\n  instance.state = workInProgress.memoizedState;\n  instance.refs = emptyRefsObject;\n\n  var contextType = ctor.contextType;\n  if (typeof contextType === 'object' && contextType !== null) {\n    instance.context = readContext(contextType);\n  } else if (disableLegacyContext) {\n    instance.context = emptyContextObject;\n  } else {\n    var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    instance.context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  {\n    if (instance.state === newProps) {\n      var componentName = getComponentName(ctor) || 'Component';\n      if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n        didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n        warningWithoutStack$1(false, '%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n    }\n\n    if (warnAboutDeprecatedLifecycles) {\n      ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n    }\n  }\n\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    instance.state = workInProgress.memoizedState;\n  }\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n    callComponentWillMount(workInProgress, instance);\n    // If we had additional state updates during this life-cycle, let's\n    // process them now.\n    updateQueue = workInProgress.updateQueue;\n    if (updateQueue !== null) {\n      processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n      instance.state = workInProgress.memoizedState;\n    }\n  }\n\n  if (typeof instance.componentDidMount === 'function') {\n    workInProgress.effectTag |= Update;\n  }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = oldProps;\n\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else if (!disableLegacyContext) {\n    var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';\n\n  // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    newState = workInProgress.memoizedState;\n  }\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillMount');\n      if (typeof instance.componentWillMount === 'function') {\n        instance.componentWillMount();\n      }\n      if (typeof instance.UNSAFE_componentWillMount === 'function') {\n        instance.UNSAFE_componentWillMount();\n      }\n      stopPhaseTimer();\n    }\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidMount === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n\n    // If shouldComponentUpdate returned false, we should still update the\n    // memoized state to indicate that this work can be reused.\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  }\n\n  // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n\n  return shouldUpdate;\n}\n\n// Invokes the update life-cycles and returns false if it shouldn't rerender.\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderExpirationTime) {\n  var instance = workInProgress.stateNode;\n\n  var oldProps = workInProgress.memoizedProps;\n  instance.props = workInProgress.type === workInProgress.elementType ? oldProps : resolveDefaultProps(workInProgress.type, oldProps);\n\n  var oldContext = instance.context;\n  var contextType = ctor.contextType;\n  var nextContext = emptyContextObject;\n  if (typeof contextType === 'object' && contextType !== null) {\n    nextContext = readContext(contextType);\n  } else if (!disableLegacyContext) {\n    var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n    nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n  }\n\n  var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n  var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function';\n\n  // Note: During these life-cycles, instance.props/instance.state are what\n  // ever the previously attempted to render - not the \"current\". However,\n  // during componentDidUpdate we pass the \"current\" props.\n\n  // In order to support react-lifecycles-compat polyfilled components,\n  // Unsafe lifecycles should not be invoked for components using the new APIs.\n  if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n    if (oldProps !== newProps || oldContext !== nextContext) {\n      callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n    }\n  }\n\n  resetHasForceUpdateBeforeProcessing();\n\n  var oldState = workInProgress.memoizedState;\n  var newState = instance.state = oldState;\n  var updateQueue = workInProgress.updateQueue;\n  if (updateQueue !== null) {\n    processUpdateQueue(workInProgress, updateQueue, newProps, instance, renderExpirationTime);\n    newState = workInProgress.memoizedState;\n  }\n\n  if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    }\n    return false;\n  }\n\n  if (typeof getDerivedStateFromProps === 'function') {\n    applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n    newState = workInProgress.memoizedState;\n  }\n\n  var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n  if (shouldUpdate) {\n    // In order to support react-lifecycles-compat polyfilled components,\n    // Unsafe lifecycles should not be invoked for components using the new APIs.\n    if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n      startPhaseTimer(workInProgress, 'componentWillUpdate');\n      if (typeof instance.componentWillUpdate === 'function') {\n        instance.componentWillUpdate(newProps, newState, nextContext);\n      }\n      if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n        instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n      }\n      stopPhaseTimer();\n    }\n    if (typeof instance.componentDidUpdate === 'function') {\n      workInProgress.effectTag |= Update;\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      workInProgress.effectTag |= Snapshot;\n    }\n  } else {\n    // If an update was already in progress, we should schedule an Update\n    // effect even though we're bailing out, so that cWU/cDU are called.\n    if (typeof instance.componentDidUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Update;\n      }\n    }\n    if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n      if (oldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n        workInProgress.effectTag |= Snapshot;\n      }\n    }\n\n    // If shouldComponentUpdate returned false, we should still update the\n    // memoized props/state to indicate that this work can be reused.\n    workInProgress.memoizedProps = newProps;\n    workInProgress.memoizedState = newState;\n  }\n\n  // Update the existing instance's state, props, and context pointers even\n  // if shouldComponentUpdate returns false.\n  instance.props = newProps;\n  instance.state = newState;\n  instance.context = nextContext;\n\n  return shouldUpdate;\n}\n\nvar didWarnAboutMaps = void 0;\nvar didWarnAboutGenerators = void 0;\nvar didWarnAboutStringRefInStrictMode = void 0;\nvar ownerHasKeyUseWarning = void 0;\nvar ownerHasFunctionTypeWarning = void 0;\nvar warnForMissingKey = function (child) {};\n\n{\n  didWarnAboutMaps = false;\n  didWarnAboutGenerators = false;\n  didWarnAboutStringRefInStrictMode = {};\n\n  /**\n   * Warn if there's no key explicitly set on dynamic arrays of children or\n   * object keys are not valid. This allows us to keep track of children between\n   * updates.\n   */\n  ownerHasKeyUseWarning = {};\n  ownerHasFunctionTypeWarning = {};\n\n  warnForMissingKey = function (child) {\n    if (child === null || typeof child !== 'object') {\n      return;\n    }\n    if (!child._store || child._store.validated || child.key != null) {\n      return;\n    }\n    (function () {\n      if (!(typeof child._store === 'object')) {\n        {\n          throw ReactError(Error('React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n    child._store.validated = true;\n\n    var currentComponentErrorInfo = 'Each child in a list should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.' + getCurrentFiberStackInDev();\n    if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n      return;\n    }\n    ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n    warning$1(false, 'Each child in a list should have a unique ' + '\"key\" prop. See https://fb.me/react-warning-keys for ' + 'more information.');\n  };\n}\n\nvar isArray = Array.isArray;\n\nfunction coerceRef(returnFiber, current$$1, element) {\n  var mixedRef = element.ref;\n  if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n    {\n      if (returnFiber.mode & StrictMode) {\n        var componentName = getComponentName(returnFiber.type) || 'Component';\n        if (!didWarnAboutStringRefInStrictMode[componentName]) {\n          warningWithoutStack$1(false, 'A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using createRef() instead.' + '\\n%s' + '\\n\\nLearn more about using refs safely here:' + '\\nhttps://fb.me/react-strict-mode-string-ref', mixedRef, getStackByFiberInDevAndProd(returnFiber));\n          didWarnAboutStringRefInStrictMode[componentName] = true;\n        }\n      }\n    }\n\n    if (element._owner) {\n      var owner = element._owner;\n      var inst = void 0;\n      if (owner) {\n        var ownerFiber = owner;\n        (function () {\n          if (!(ownerFiber.tag === ClassComponent)) {\n            {\n              throw ReactError(Error('Function components cannot have refs. Did you mean to use React.forwardRef()?'));\n            }\n          }\n        })();\n        inst = ownerFiber.stateNode;\n      }\n      (function () {\n        if (!inst) {\n          {\n            throw ReactError(Error('Missing owner for string ref ' + mixedRef + '. This error is likely caused by a bug in React. Please file an issue.'));\n          }\n        }\n      })();\n      var stringRef = '' + mixedRef;\n      // Check if previous string ref matches new string ref\n      if (current$$1 !== null && current$$1.ref !== null && typeof current$$1.ref === 'function' && current$$1.ref._stringRef === stringRef) {\n        return current$$1.ref;\n      }\n      var ref = function (value) {\n        var refs = inst.refs;\n        if (refs === emptyRefsObject) {\n          // This is a lazy pooled frozen object, so we need to initialize.\n          refs = inst.refs = {};\n        }\n        if (value === null) {\n          delete refs[stringRef];\n        } else {\n          refs[stringRef] = value;\n        }\n      };\n      ref._stringRef = stringRef;\n      return ref;\n    } else {\n      (function () {\n        if (!(typeof mixedRef === 'string')) {\n          {\n            throw ReactError(Error('Expected ref to be a function, a string, an object returned by React.createRef(), or null.'));\n          }\n        }\n      })();\n      (function () {\n        if (!element._owner) {\n          {\n            throw ReactError(Error('Element ref was specified as a string (' + mixedRef + ') but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component\\'s render method\\n3. You have multiple copies of React loaded\\nSee https://fb.me/react-refs-must-have-owner for more information.'));\n          }\n        }\n      })();\n    }\n  }\n  return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n  if (returnFiber.type !== 'textarea') {\n    var addendum = '';\n    {\n      addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + getCurrentFiberStackInDev();\n    }\n    (function () {\n      {\n        {\n          throw ReactError(Error('Objects are not valid as a React child (found: ' + (Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild) + ').' + addendum));\n        }\n      }\n    })();\n  }\n}\n\nfunction warnOnFunctionType() {\n  var currentComponentErrorInfo = 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.' + getCurrentFiberStackInDev();\n\n  if (ownerHasFunctionTypeWarning[currentComponentErrorInfo]) {\n    return;\n  }\n  ownerHasFunctionTypeWarning[currentComponentErrorInfo] = true;\n\n  warning$1(false, 'Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n}\n\n// This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\nfunction ChildReconciler(shouldTrackSideEffects) {\n  function deleteChild(returnFiber, childToDelete) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return;\n    }\n    // Deletions are added in reversed order so we add it to the front.\n    // At this point, the return fiber's effect list is empty except for\n    // deletions, so we can just append the deletion to the list. The remaining\n    // effects aren't added until the complete phase. Once we implement\n    // resuming, this may not be true.\n    var last = returnFiber.lastEffect;\n    if (last !== null) {\n      last.nextEffect = childToDelete;\n      returnFiber.lastEffect = childToDelete;\n    } else {\n      returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n    }\n    childToDelete.nextEffect = null;\n    childToDelete.effectTag = Deletion;\n  }\n\n  function deleteRemainingChildren(returnFiber, currentFirstChild) {\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return null;\n    }\n\n    // TODO: For the shouldClone case, this could be micro-optimized a bit by\n    // assuming that after the first child we've already added everything.\n    var childToDelete = currentFirstChild;\n    while (childToDelete !== null) {\n      deleteChild(returnFiber, childToDelete);\n      childToDelete = childToDelete.sibling;\n    }\n    return null;\n  }\n\n  function mapRemainingChildren(returnFiber, currentFirstChild) {\n    // Add the remaining children to a temporary map so that we can find them by\n    // keys quickly. Implicit (null) keys get added to this set with their index\n    var existingChildren = new Map();\n\n    var existingChild = currentFirstChild;\n    while (existingChild !== null) {\n      if (existingChild.key !== null) {\n        existingChildren.set(existingChild.key, existingChild);\n      } else {\n        existingChildren.set(existingChild.index, existingChild);\n      }\n      existingChild = existingChild.sibling;\n    }\n    return existingChildren;\n  }\n\n  function useFiber(fiber, pendingProps, expirationTime) {\n    // We currently set sibling to null and index to 0 here because it is easy\n    // to forget to do before returning it. E.g. for the single child case.\n    var clone = createWorkInProgress(fiber, pendingProps, expirationTime);\n    clone.index = 0;\n    clone.sibling = null;\n    return clone;\n  }\n\n  function placeChild(newFiber, lastPlacedIndex, newIndex) {\n    newFiber.index = newIndex;\n    if (!shouldTrackSideEffects) {\n      // Noop.\n      return lastPlacedIndex;\n    }\n    var current$$1 = newFiber.alternate;\n    if (current$$1 !== null) {\n      var oldIndex = current$$1.index;\n      if (oldIndex < lastPlacedIndex) {\n        // This is a move.\n        newFiber.effectTag = Placement;\n        return lastPlacedIndex;\n      } else {\n        // This item can stay in place.\n        return oldIndex;\n      }\n    } else {\n      // This is an insertion.\n      newFiber.effectTag = Placement;\n      return lastPlacedIndex;\n    }\n  }\n\n  function placeSingleChild(newFiber) {\n    // This is simpler for the single child case. We only need to do a\n    // placement for inserting new children.\n    if (shouldTrackSideEffects && newFiber.alternate === null) {\n      newFiber.effectTag = Placement;\n    }\n    return newFiber;\n  }\n\n  function updateTextNode(returnFiber, current$$1, textContent, expirationTime) {\n    if (current$$1 === null || current$$1.tag !== HostText) {\n      // Insert\n      var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, textContent, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateElement(returnFiber, current$$1, element, expirationTime) {\n    if (current$$1 !== null && (current$$1.elementType === element.type || (\n    // Keep this check inline so it only runs on the false path:\n    isCompatibleFamilyForHotReloading(current$$1, element)))) {\n      // Move based on index\n      var existing = useFiber(current$$1, element.props, expirationTime);\n      existing.ref = coerceRef(returnFiber, current$$1, element);\n      existing.return = returnFiber;\n      {\n        existing._debugSource = element._source;\n        existing._debugOwner = element._owner;\n      }\n      return existing;\n    } else {\n      // Insert\n      var created = createFiberFromElement(element, returnFiber.mode, expirationTime);\n      created.ref = coerceRef(returnFiber, current$$1, element);\n      created.return = returnFiber;\n      return created;\n    }\n  }\n\n  function updatePortal(returnFiber, current$$1, portal, expirationTime) {\n    if (current$$1 === null || current$$1.tag !== HostPortal || current$$1.stateNode.containerInfo !== portal.containerInfo || current$$1.stateNode.implementation !== portal.implementation) {\n      // Insert\n      var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, portal.children || [], expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function updateFragment(returnFiber, current$$1, fragment, expirationTime, key) {\n    if (current$$1 === null || current$$1.tag !== Fragment) {\n      // Insert\n      var created = createFiberFromFragment(fragment, returnFiber.mode, expirationTime, key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      // Update\n      var existing = useFiber(current$$1, fragment, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n  }\n\n  function createChild(returnFiber, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      var created = createFiberFromText('' + newChild, returnFiber.mode, expirationTime);\n      created.return = returnFiber;\n      return created;\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _created = createFiberFromElement(newChild, returnFiber.mode, expirationTime);\n            _created.ref = coerceRef(returnFiber, null, newChild);\n            _created.return = returnFiber;\n            return _created;\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            var _created2 = createFiberFromPortal(newChild, returnFiber.mode, expirationTime);\n            _created2.return = returnFiber;\n            return _created2;\n          }\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        var _created3 = createFiberFromFragment(newChild, returnFiber.mode, expirationTime, null);\n        _created3.return = returnFiber;\n        return _created3;\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateSlot(returnFiber, oldFiber, newChild, expirationTime) {\n    // Update the fiber if the keys match, otherwise return null.\n\n    var key = oldFiber !== null ? oldFiber.key : null;\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys. If the previous node is implicitly keyed\n      // we can continue to replace it without aborting even if it is not a text\n      // node.\n      if (key !== null) {\n        return null;\n      }\n      return updateTextNode(returnFiber, oldFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            if (newChild.key === key) {\n              if (newChild.type === REACT_FRAGMENT_TYPE) {\n                return updateFragment(returnFiber, oldFiber, newChild.props.children, expirationTime, key);\n              }\n              return updateElement(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            if (newChild.key === key) {\n              return updatePortal(returnFiber, oldFiber, newChild, expirationTime);\n            } else {\n              return null;\n            }\n          }\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        if (key !== null) {\n          return null;\n        }\n\n        return updateFragment(returnFiber, oldFiber, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  function updateFromMap(existingChildren, returnFiber, newIdx, newChild, expirationTime) {\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      // Text nodes don't have keys, so we neither have to check the old nor\n      // new node for the key. If both are text nodes, they match.\n      var matchedFiber = existingChildren.get(newIdx) || null;\n      return updateTextNode(returnFiber, matchedFiber, '' + newChild, expirationTime);\n    }\n\n    if (typeof newChild === 'object' && newChild !== null) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          {\n            var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n            if (newChild.type === REACT_FRAGMENT_TYPE) {\n              return updateFragment(returnFiber, _matchedFiber, newChild.props.children, expirationTime, newChild.key);\n            }\n            return updateElement(returnFiber, _matchedFiber, newChild, expirationTime);\n          }\n        case REACT_PORTAL_TYPE:\n          {\n            var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n            return updatePortal(returnFiber, _matchedFiber2, newChild, expirationTime);\n          }\n      }\n\n      if (isArray(newChild) || getIteratorFn(newChild)) {\n        var _matchedFiber3 = existingChildren.get(newIdx) || null;\n        return updateFragment(returnFiber, _matchedFiber3, newChild, expirationTime, null);\n      }\n\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n\n    return null;\n  }\n\n  /**\n   * Warns if there is a duplicate or missing key\n   */\n  function warnOnInvalidKey(child, knownKeys) {\n    {\n      if (typeof child !== 'object' || child === null) {\n        return knownKeys;\n      }\n      switch (child.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n        case REACT_PORTAL_TYPE:\n          warnForMissingKey(child);\n          var key = child.key;\n          if (typeof key !== 'string') {\n            break;\n          }\n          if (knownKeys === null) {\n            knownKeys = new Set();\n            knownKeys.add(key);\n            break;\n          }\n          if (!knownKeys.has(key)) {\n            knownKeys.add(key);\n            break;\n          }\n          warning$1(false, 'Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n          break;\n        default:\n          break;\n      }\n    }\n    return knownKeys;\n  }\n\n  function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, expirationTime) {\n    // This algorithm can't optimize by searching from both ends since we\n    // don't have backpointers on fibers. I'm trying to see how far we can get\n    // with that model. If it ends up not being worth the tradeoffs, we can\n    // add it later.\n\n    // Even with a two ended optimization, we'd want to optimize for the case\n    // where there are few changes and brute force the comparison instead of\n    // going for the Map. It'd like to explore hitting that path first in\n    // forward-only mode and only go for the Map once we notice that we need\n    // lots of look ahead. This doesn't handle reversal as well as two ended\n    // search but that's unusual. Besides, for the two ended optimization to\n    // work on Iterables, we'd need to copy the whole set.\n\n    // In this first iteration, we'll just live with hitting the bad case\n    // (adding everything to a Map) in for every insert/move.\n\n    // If you change this code, also update reconcileChildrenIterator() which\n    // uses the same algorithm.\n\n    {\n      // First, validate keys.\n      var knownKeys = null;\n      for (var i = 0; i < newChildren.length; i++) {\n        var child = newChildren[i];\n        knownKeys = warnOnInvalidKey(child, knownKeys);\n      }\n    }\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n    for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n      var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], expirationTime);\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n        break;\n      }\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (newIdx === newChildren.length) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; newIdx < newChildren.length; newIdx++) {\n        var _newFiber = createChild(returnFiber, newChildren[newIdx], expirationTime);\n        if (_newFiber === null) {\n          continue;\n        }\n        lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber;\n        } else {\n          previousNewFiber.sibling = _newFiber;\n        }\n        previousNewFiber = _newFiber;\n      }\n      return resultingFirstChild;\n    }\n\n    // Add all children to a key map for quick lookups.\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n    // Keep scanning and use the map to restore deleted items as moves.\n    for (; newIdx < newChildren.length; newIdx++) {\n      var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], expirationTime);\n      if (_newFiber2 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber2.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n          }\n        }\n        lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber2;\n        } else {\n          previousNewFiber.sibling = _newFiber2;\n        }\n        previousNewFiber = _newFiber2;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, expirationTime) {\n    // This is the same implementation as reconcileChildrenArray(),\n    // but using the iterator instead.\n\n    var iteratorFn = getIteratorFn(newChildrenIterable);\n    (function () {\n      if (!(typeof iteratorFn === 'function')) {\n        {\n          throw ReactError(Error('An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n\n    {\n      // We don't support rendering Generators because it's a mutation.\n      // See https://github.com/facebook/react/issues/12995\n      if (typeof Symbol === 'function' &&\n      // $FlowFixMe Flow doesn't know about toStringTag\n      newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n        !didWarnAboutGenerators ? warning$1(false, 'Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.') : void 0;\n        didWarnAboutGenerators = true;\n      }\n\n      // Warn about using Maps as children\n      if (newChildrenIterable.entries === iteratorFn) {\n        !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;\n        didWarnAboutMaps = true;\n      }\n\n      // First, validate keys.\n      // We'll get a different iterator later for the main pass.\n      var _newChildren = iteratorFn.call(newChildrenIterable);\n      if (_newChildren) {\n        var knownKeys = null;\n        var _step = _newChildren.next();\n        for (; !_step.done; _step = _newChildren.next()) {\n          var child = _step.value;\n          knownKeys = warnOnInvalidKey(child, knownKeys);\n        }\n      }\n    }\n\n    var newChildren = iteratorFn.call(newChildrenIterable);\n    (function () {\n      if (!(newChildren != null)) {\n        {\n          throw ReactError(Error('An iterable object provided no iterator.'));\n        }\n      }\n    })();\n\n    var resultingFirstChild = null;\n    var previousNewFiber = null;\n\n    var oldFiber = currentFirstChild;\n    var lastPlacedIndex = 0;\n    var newIdx = 0;\n    var nextOldFiber = null;\n\n    var step = newChildren.next();\n    for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n      if (oldFiber.index > newIdx) {\n        nextOldFiber = oldFiber;\n        oldFiber = null;\n      } else {\n        nextOldFiber = oldFiber.sibling;\n      }\n      var newFiber = updateSlot(returnFiber, oldFiber, step.value, expirationTime);\n      if (newFiber === null) {\n        // TODO: This breaks on empty slots like null children. That's\n        // unfortunate because it triggers the slow path all the time. We need\n        // a better way to communicate whether this was a miss or null,\n        // boolean, undefined, etc.\n        if (oldFiber === null) {\n          oldFiber = nextOldFiber;\n        }\n        break;\n      }\n      if (shouldTrackSideEffects) {\n        if (oldFiber && newFiber.alternate === null) {\n          // We matched the slot, but we didn't reuse the existing fiber, so we\n          // need to delete the existing child.\n          deleteChild(returnFiber, oldFiber);\n        }\n      }\n      lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n      if (previousNewFiber === null) {\n        // TODO: Move out of the loop. This only happens for the first run.\n        resultingFirstChild = newFiber;\n      } else {\n        // TODO: Defer siblings if we're not at the right index for this slot.\n        // I.e. if we had null values before, then we want to defer this\n        // for each null value. However, we also don't want to call updateSlot\n        // with the previous one.\n        previousNewFiber.sibling = newFiber;\n      }\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n\n    if (step.done) {\n      // We've reached the end of the new children. We can delete the rest.\n      deleteRemainingChildren(returnFiber, oldFiber);\n      return resultingFirstChild;\n    }\n\n    if (oldFiber === null) {\n      // If we don't have any more existing children we can choose a fast path\n      // since the rest will all be insertions.\n      for (; !step.done; newIdx++, step = newChildren.next()) {\n        var _newFiber3 = createChild(returnFiber, step.value, expirationTime);\n        if (_newFiber3 === null) {\n          continue;\n        }\n        lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          // TODO: Move out of the loop. This only happens for the first run.\n          resultingFirstChild = _newFiber3;\n        } else {\n          previousNewFiber.sibling = _newFiber3;\n        }\n        previousNewFiber = _newFiber3;\n      }\n      return resultingFirstChild;\n    }\n\n    // Add all children to a key map for quick lookups.\n    var existingChildren = mapRemainingChildren(returnFiber, oldFiber);\n\n    // Keep scanning and use the map to restore deleted items as moves.\n    for (; !step.done; newIdx++, step = newChildren.next()) {\n      var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, expirationTime);\n      if (_newFiber4 !== null) {\n        if (shouldTrackSideEffects) {\n          if (_newFiber4.alternate !== null) {\n            // The new fiber is a work in progress, but if there exists a\n            // current, that means that we reused the fiber. We need to delete\n            // it from the child list so that we don't add it to the deletion\n            // list.\n            existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n          }\n        }\n        lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n        if (previousNewFiber === null) {\n          resultingFirstChild = _newFiber4;\n        } else {\n          previousNewFiber.sibling = _newFiber4;\n        }\n        previousNewFiber = _newFiber4;\n      }\n    }\n\n    if (shouldTrackSideEffects) {\n      // Any existing children that weren't consumed above were deleted. We need\n      // to add them to the deletion list.\n      existingChildren.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    }\n\n    return resultingFirstChild;\n  }\n\n  function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, expirationTime) {\n    // There's no need to check for keys on text nodes since we don't have a\n    // way to define them.\n    if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n      // We already have an existing node so let's just update it and delete\n      // the rest.\n      deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n      var existing = useFiber(currentFirstChild, textContent, expirationTime);\n      existing.return = returnFiber;\n      return existing;\n    }\n    // The existing first child is not a text node so we need to create one\n    // and delete the existing ones.\n    deleteRemainingChildren(returnFiber, currentFirstChild);\n    var created = createFiberFromText(textContent, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  }\n\n  function reconcileSingleElement(returnFiber, currentFirstChild, element, expirationTime) {\n    var key = element.key;\n    var child = currentFirstChild;\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === Fragment ? element.type === REACT_FRAGMENT_TYPE : child.elementType === element.type || (\n        // Keep this check inline so it only runs on the false path:\n        isCompatibleFamilyForHotReloading(child, element))) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, element.type === REACT_FRAGMENT_TYPE ? element.props.children : element.props, expirationTime);\n          existing.ref = coerceRef(returnFiber, child, element);\n          existing.return = returnFiber;\n          {\n            existing._debugSource = element._source;\n            existing._debugOwner = element._owner;\n          }\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n      child = child.sibling;\n    }\n\n    if (element.type === REACT_FRAGMENT_TYPE) {\n      var created = createFiberFromFragment(element.props.children, returnFiber.mode, expirationTime, element.key);\n      created.return = returnFiber;\n      return created;\n    } else {\n      var _created4 = createFiberFromElement(element, returnFiber.mode, expirationTime);\n      _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n      _created4.return = returnFiber;\n      return _created4;\n    }\n  }\n\n  function reconcileSinglePortal(returnFiber, currentFirstChild, portal, expirationTime) {\n    var key = portal.key;\n    var child = currentFirstChild;\n    while (child !== null) {\n      // TODO: If key === null and child.key === null, then this only applies to\n      // the first item in the list.\n      if (child.key === key) {\n        if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n          deleteRemainingChildren(returnFiber, child.sibling);\n          var existing = useFiber(child, portal.children || [], expirationTime);\n          existing.return = returnFiber;\n          return existing;\n        } else {\n          deleteRemainingChildren(returnFiber, child);\n          break;\n        }\n      } else {\n        deleteChild(returnFiber, child);\n      }\n      child = child.sibling;\n    }\n\n    var created = createFiberFromPortal(portal, returnFiber.mode, expirationTime);\n    created.return = returnFiber;\n    return created;\n  }\n\n  // This API will tag the children with the side-effect of the reconciliation\n  // itself. They will be added to the side-effect list as we pass through the\n  // children and the parent.\n  function reconcileChildFibers(returnFiber, currentFirstChild, newChild, expirationTime) {\n    // This function is not recursive.\n    // If the top level item is an array, we treat it as a set of children,\n    // not as a fragment. Nested arrays on the other hand will be treated as\n    // fragment nodes. Recursion happens at the normal flow.\n\n    // Handle top level unkeyed fragments as if they were arrays.\n    // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n    // We treat the ambiguous cases above the same.\n    var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n    if (isUnkeyedTopLevelFragment) {\n      newChild = newChild.props.children;\n    }\n\n    // Handle object types\n    var isObject = typeof newChild === 'object' && newChild !== null;\n\n    if (isObject) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, expirationTime));\n        case REACT_PORTAL_TYPE:\n          return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, expirationTime));\n      }\n    }\n\n    if (typeof newChild === 'string' || typeof newChild === 'number') {\n      return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, expirationTime));\n    }\n\n    if (isArray(newChild)) {\n      return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (getIteratorFn(newChild)) {\n      return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, expirationTime);\n    }\n\n    if (isObject) {\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n\n    {\n      if (typeof newChild === 'function') {\n        warnOnFunctionType();\n      }\n    }\n    if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n      // If the new child is undefined, and the return fiber is a composite\n      // component, throw an error. If Fiber return types are disabled,\n      // we already threw above.\n      switch (returnFiber.tag) {\n        case ClassComponent:\n          {\n            {\n              var instance = returnFiber.stateNode;\n              if (instance.render._isMockFunction) {\n                // We allow auto-mocks to proceed as if they're returning null.\n                break;\n              }\n            }\n          }\n        // Intentionally fall through to the next case, which handles both\n        // functions and classes\n        // eslint-disable-next-lined no-fallthrough\n        case FunctionComponent:\n          {\n            var Component = returnFiber.type;\n            (function () {\n              {\n                {\n                  throw ReactError(Error((Component.displayName || Component.name || 'Component') + '(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.'));\n                }\n              }\n            })();\n          }\n      }\n    }\n\n    // Remaining cases are all treated as empty.\n    return deleteRemainingChildren(returnFiber, currentFirstChild);\n  }\n\n  return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\n\nfunction cloneChildFibers(current$$1, workInProgress) {\n  (function () {\n    if (!(current$$1 === null || workInProgress.child === current$$1.child)) {\n      {\n        throw ReactError(Error('Resuming work not yet implemented.'));\n      }\n    }\n  })();\n\n  if (workInProgress.child === null) {\n    return;\n  }\n\n  var currentChild = workInProgress.child;\n  var newChild = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n  workInProgress.child = newChild;\n\n  newChild.return = workInProgress;\n  while (currentChild.sibling !== null) {\n    currentChild = currentChild.sibling;\n    newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps, currentChild.expirationTime);\n    newChild.return = workInProgress;\n  }\n  newChild.sibling = null;\n}\n\n// Reset a workInProgress child set to prepare it for a second pass.\nfunction resetChildFibers(workInProgress, renderExpirationTime) {\n  var child = workInProgress.child;\n  while (child !== null) {\n    resetWorkInProgress(child, renderExpirationTime);\n    child = child.sibling;\n  }\n}\n\nvar NO_CONTEXT = {};\n\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n  (function () {\n    if (!(c !== NO_CONTEXT)) {\n      {\n        throw ReactError(Error('Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n  return c;\n}\n\nfunction getRootHostContainer() {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n  // Push current root instance onto the stack;\n  // This allows us to reset root when portals are popped.\n  push(rootInstanceStackCursor, nextRootInstance, fiber);\n  // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n  push(contextFiberStackCursor, fiber, fiber);\n\n  // Finally, we need to push the host context to the stack.\n  // However, we can't just call getRootHostContext() and push it because\n  // we'd have a different number of entries on the stack depending on\n  // whether getRootHostContext() throws somewhere in renderer code or not.\n  // So we push an empty value first. This lets us safely unwind on errors.\n  push(contextStackCursor$1, NO_CONTEXT, fiber);\n  var nextRootContext = getRootHostContext(nextRootInstance);\n  // Now that we know this function doesn't throw, replace it.\n  pop(contextStackCursor$1, fiber);\n  push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n  pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n  var context = requiredContext(contextStackCursor$1.current);\n  return context;\n}\n\nfunction pushHostContext(fiber) {\n  var rootInstance = requiredContext(rootInstanceStackCursor.current);\n  var context = requiredContext(contextStackCursor$1.current);\n  var nextContext = getChildHostContext(context, fiber.type, rootInstance);\n\n  // Don't push this Fiber's context unless it's unique.\n  if (context === nextContext) {\n    return;\n  }\n\n  // Track the context and the Fiber that provided it.\n  // This enables us to pop only Fibers that provide unique contexts.\n  push(contextFiberStackCursor, fiber, fiber);\n  push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n  // Do not pop unless this Fiber provided the current context.\n  // pushHostContext() only pushes Fibers that provide unique contexts.\n  if (contextFiberStackCursor.current !== fiber) {\n    return;\n  }\n\n  pop(contextStackCursor$1, fiber);\n  pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0;\n\n// The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\nvar SubtreeSuspenseContextMask = 1;\n\n// Subtree Flags:\n\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\nvar InvisibleParentSuspenseContext = 1;\n\n// Shallow Flags:\n\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\nvar ForceSuspenseFallback = 2;\n\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\n\nfunction hasSuspenseContext(parentContext, flag) {\n  return (parentContext & flag) !== 0;\n}\n\nfunction setDefaultShallowSuspenseContext(parentContext) {\n  return parentContext & SubtreeSuspenseContextMask;\n}\n\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n  return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\n\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n  return parentContext | subtreeContext;\n}\n\nfunction pushSuspenseContext(fiber, newContext) {\n  push(suspenseStackCursor, newContext, fiber);\n}\n\nfunction popSuspenseContext(fiber) {\n  pop(suspenseStackCursor, fiber);\n}\n\n// TODO: This is now an empty object. Should we switch this to a boolean?\n// Alternatively we can make this use an effect tag similar to SuspenseList.\n\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n  // If it was the primary children that just suspended, capture and render the\n  var nextState = workInProgress.memoizedState;\n  if (nextState !== null) {\n    return false;\n  }\n  var props = workInProgress.memoizedProps;\n  // In order to capture, the Suspense component must have a fallback prop.\n  if (props.fallback === undefined) {\n    return false;\n  }\n  // Regular boundaries always capture.\n  if (props.unstable_avoidThisFallback !== true) {\n    return true;\n  }\n  // If it's a boundary we should avoid, then we prefer to bubble up to the\n  // parent boundary if it is currently invisible.\n  if (hasInvisibleParent) {\n    return false;\n  }\n  // If the parent is not able to handle it, we must handle it.\n  return true;\n}\n\nfunction findFirstSuspended(row) {\n  var node = row;\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n      if (state !== null) {\n        return node;\n      }\n    } else if (node.tag === SuspenseListComponent &&\n    // revealOrder undefined can't be trusted because it don't\n    // keep track of whether it suspended or not.\n    node.memoizedProps.revealOrder !== undefined) {\n      var didSuspend = (node.effectTag & DidCapture) !== NoEffect;\n      if (didSuspend) {\n        return node;\n      }\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === row) {\n      return null;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === row) {\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  return null;\n}\n\nvar NoEffect$1 = /*             */0;\nvar UnmountSnapshot = /*      */2;\nvar UnmountMutation = /*      */4;\nvar MountMutation = /*        */8;\nvar UnmountLayout = /*        */16;\nvar MountLayout = /*          */32;\nvar MountPassive = /*         */64;\nvar UnmountPassive = /*       */128;\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\n\n\nvar didWarnAboutMismatchedHooksForComponent = void 0;\n{\n  didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderExpirationTime$1 = NoWork;\n// The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\nvar currentlyRenderingFiber$1 = null;\n\n// Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\nvar currentHook = null;\nvar nextCurrentHook = null;\nvar firstWorkInProgressHook = null;\nvar workInProgressHook = null;\nvar nextWorkInProgressHook = null;\n\nvar remainingExpirationTime = NoWork;\nvar componentUpdateQueue = null;\nvar sideEffectTag = 0;\n\n// Updates scheduled during render will trigger an immediate re-render at the\n// end of the current pass. We can't store these updates on the normal queue,\n// because if the work is aborted, they should be discarded. Because this is\n// a relatively rare case, we also don't want to add an additional field to\n// either the hook or queue object types. So we store them in a lazily create\n// map of queue -> render-phase updates, which are discarded once the component\n// completes without re-rendering.\n\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\n// In DEV, this is the name of the currently executing primitive hook\nvar currentHookNameInDev = null;\n\n// In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1;\n\n// In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev === null) {\n      hookTypesDev = [hookName];\n    } else {\n      hookTypesDev.push(hookName);\n    }\n  }\n}\n\nfunction updateHookTypesDev() {\n  {\n    var hookName = currentHookNameInDev;\n\n    if (hookTypesDev !== null) {\n      hookTypesUpdateIndexDev++;\n      if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n        warnOnHookMismatchInDev(hookName);\n      }\n    }\n  }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n  {\n    if (deps !== undefined && deps !== null && !Array.isArray(deps)) {\n      // Verify deps, but only on mount to avoid extra checks.\n      // It's unlikely their type would change as usually you define them inline.\n      warning$1(false, '%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n    }\n  }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n  {\n    var componentName = getComponentName(currentlyRenderingFiber$1.type);\n    if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n      didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n      if (hookTypesDev !== null) {\n        var table = '';\n\n        var secondColumnStart = 30;\n\n        for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n          var oldHookName = hookTypesDev[i];\n          var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n\n          var row = i + 1 + '. ' + oldHookName;\n\n          // Extra space so second column lines up\n          // lol @ IE not supporting String#repeat\n          while (row.length < secondColumnStart) {\n            row += ' ';\n          }\n\n          row += newHookName + '\\n';\n\n          table += row;\n        }\n\n        warning$1(false, 'React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://fb.me/rules-of-hooks\\n\\n' + '   Previous render            Next render\\n' + '   ------------------------------------------------------\\n' + '%s' + '   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n      }\n    }\n  }\n}\n\nfunction throwInvalidHookError() {\n  (function () {\n    {\n      {\n        throw ReactError(Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.'));\n      }\n    }\n  })();\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n  {\n    if (ignorePreviousDependencies) {\n      // Only true when this component is being hot reloaded.\n      return false;\n    }\n  }\n\n  if (prevDeps === null) {\n    {\n      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, '[' + prevDeps.join(', ') + ']', '[' + nextDeps.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 renderWithHooks(current, workInProgress, Component, props, refOrContext, nextRenderExpirationTime) {\n  renderExpirationTime$1 = nextRenderExpirationTime;\n  currentlyRenderingFiber$1 = workInProgress;\n  nextCurrentHook = current !== null ? current.memoizedState : null;\n\n  {\n    hookTypesDev = current !== null ? current._debugHookTypes : null;\n    hookTypesUpdateIndexDev = -1;\n    // Used for hot reloading:\n    ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n  }\n\n  // The following should have already been reset\n  // currentHook = null;\n  // workInProgressHook = null;\n\n  // remainingExpirationTime = NoWork;\n  // componentUpdateQueue = null;\n\n  // didScheduleRenderPhaseUpdate = false;\n  // renderPhaseUpdates = null;\n  // numberOfReRenders = 0;\n  // sideEffectTag = 0;\n\n  // TODO Warn if no hooks are used at all during mount, then some are used during update.\n  // Currently we will identify the update render as a mount because nextCurrentHook === null.\n  // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n\n  // Using nextCurrentHook to differentiate between mount/update only works if at least one stateful hook is used.\n  // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n  // so nextCurrentHook would be null during updates and mounts.\n  {\n    if (nextCurrentHook !== null) {\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n    } else if (hookTypesDev !== null) {\n      // This dispatcher handles an edge case where a component is updating,\n      // but no stateful hooks have been used.\n      // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n      // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n      // This dispatcher does that.\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n    } else {\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n    }\n  }\n\n  var children = Component(props, refOrContext);\n\n  if (didScheduleRenderPhaseUpdate) {\n    do {\n      didScheduleRenderPhaseUpdate = false;\n      numberOfReRenders += 1;\n\n      // Start over from the beginning of the list\n      nextCurrentHook = current !== null ? current.memoizedState : null;\n      nextWorkInProgressHook = firstWorkInProgressHook;\n\n      currentHook = null;\n      workInProgressHook = null;\n      componentUpdateQueue = null;\n\n      {\n        // Also validate hook order for cascading updates.\n        hookTypesUpdateIndexDev = -1;\n      }\n\n      ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n\n      children = Component(props, refOrContext);\n    } while (didScheduleRenderPhaseUpdate);\n\n    renderPhaseUpdates = null;\n    numberOfReRenders = 0;\n  }\n\n  // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrancy.\n  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n  var renderedWork = currentlyRenderingFiber$1;\n\n  renderedWork.memoizedState = firstWorkInProgressHook;\n  renderedWork.expirationTime = remainingExpirationTime;\n  renderedWork.updateQueue = componentUpdateQueue;\n  renderedWork.effectTag |= sideEffectTag;\n\n  {\n    renderedWork._debugHookTypes = hookTypesDev;\n  }\n\n  // This check uses currentHook so that it works the same in DEV and prod bundles.\n  // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n  var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n\n  renderExpirationTime$1 = NoWork;\n  currentlyRenderingFiber$1 = null;\n\n  currentHook = null;\n  nextCurrentHook = null;\n  firstWorkInProgressHook = null;\n  workInProgressHook = null;\n  nextWorkInProgressHook = null;\n\n  {\n    currentHookNameInDev = null;\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1;\n  }\n\n  remainingExpirationTime = NoWork;\n  componentUpdateQueue = null;\n  sideEffectTag = 0;\n\n  // These were reset above\n  // didScheduleRenderPhaseUpdate = false;\n  // renderPhaseUpdates = null;\n  // numberOfReRenders = 0;\n\n  (function () {\n    if (!!didRenderTooFewHooks) {\n      {\n        throw ReactError(Error('Rendered fewer hooks than expected. This may be caused by an accidental early return statement.'));\n      }\n    }\n  })();\n\n  return children;\n}\n\nfunction bailoutHooks(current, workInProgress, expirationTime) {\n  workInProgress.updateQueue = current.updateQueue;\n  workInProgress.effectTag &= ~(Passive | Update);\n  if (current.expirationTime <= expirationTime) {\n    current.expirationTime = NoWork;\n  }\n}\n\nfunction resetHooks() {\n  // We can assume the previous dispatcher is always this one, since we set it\n  // at the beginning of the render phase and there's no re-entrancy.\n  ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n  // This is used to reset the state of this module when a component throws.\n  // It's also called inside mountIndeterminateComponent if we determine the\n  // component is a module-style component.\n  renderExpirationTime$1 = NoWork;\n  currentlyRenderingFiber$1 = null;\n\n  currentHook = null;\n  nextCurrentHook = null;\n  firstWorkInProgressHook = null;\n  workInProgressHook = null;\n  nextWorkInProgressHook = null;\n\n  {\n    hookTypesDev = null;\n    hookTypesUpdateIndexDev = -1;\n\n    currentHookNameInDev = null;\n  }\n\n  remainingExpirationTime = NoWork;\n  componentUpdateQueue = null;\n  sideEffectTag = 0;\n\n  didScheduleRenderPhaseUpdate = false;\n  renderPhaseUpdates = null;\n  numberOfReRenders = 0;\n}\n\nfunction mountWorkInProgressHook() {\n  var hook = {\n    memoizedState: null,\n\n    baseState: null,\n    queue: null,\n    baseUpdate: null,\n\n    next: null\n  };\n\n  if (workInProgressHook === null) {\n    // This is the first hook in the list\n    firstWorkInProgressHook = workInProgressHook = hook;\n  } else {\n    // Append to the end of the list\n    workInProgressHook = workInProgressHook.next = hook;\n  }\n  return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n  // This function is used both for updates and for re-renders triggered by a\n  // render phase update. It assumes there is either a current hook we can\n  // clone, or a work-in-progress hook from a previous render pass that we can\n  // use as a base. When we reach the end of the base list, we must switch to\n  // the dispatcher used for mounts.\n  if (nextWorkInProgressHook !== null) {\n    // There's already a work-in-progress. Reuse it.\n    workInProgressHook = nextWorkInProgressHook;\n    nextWorkInProgressHook = workInProgressHook.next;\n\n    currentHook = nextCurrentHook;\n    nextCurrentHook = currentHook !== null ? currentHook.next : null;\n  } else {\n    // Clone from the current hook.\n    (function () {\n      if (!(nextCurrentHook !== null)) {\n        {\n          throw ReactError(Error('Rendered more hooks than during the previous render.'));\n        }\n      }\n    })();\n    currentHook = nextCurrentHook;\n\n    var newHook = {\n      memoizedState: currentHook.memoizedState,\n\n      baseState: currentHook.baseState,\n      queue: currentHook.queue,\n      baseUpdate: currentHook.baseUpdate,\n\n      next: null\n    };\n\n    if (workInProgressHook === null) {\n      // This is the first hook in the list.\n      workInProgressHook = firstWorkInProgressHook = newHook;\n    } else {\n      // Append to the end of the list.\n      workInProgressHook = workInProgressHook.next = newHook;\n    }\n    nextCurrentHook = currentHook.next;\n  }\n  return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n  return {\n    lastEffect: null\n  };\n}\n\nfunction basicStateReducer(state, action) {\n  return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n  var hook = mountWorkInProgressHook();\n  var initialState = void 0;\n  if (init !== undefined) {\n    initialState = init(initialArg);\n  } else {\n    initialState = initialArg;\n  }\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = hook.queue = {\n    last: null,\n    dispatch: null,\n    lastRenderedReducer: reducer,\n    lastRenderedState: initialState\n  };\n  var dispatch = queue.dispatch = dispatchAction.bind(null,\n  // Flow doesn't know this is non-null, but we do.\n  currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n  var hook = updateWorkInProgressHook();\n  var queue = hook.queue;\n  (function () {\n    if (!(queue !== null)) {\n      {\n        throw ReactError(Error('Should have a queue. This is likely a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n\n  queue.lastRenderedReducer = reducer;\n\n  if (numberOfReRenders > 0) {\n    // This is a re-render. Apply the new render phase updates to the previous\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 = hook.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          newState = reducer(newState, _action);\n          update = update.next;\n        } while (update !== null);\n\n        // Mark that the fiber performed work, but only if the new state is\n        // different from the current state.\n        if (!is(newState, hook.memoizedState)) {\n          markWorkInProgressReceivedUpdate();\n        }\n\n        hook.memoizedState = newState;\n        // Don't persist the state accumulated from the render phase updates to\n        // the base state unless the queue is empty.\n        // TODO: Not sure if this is the desired semantics, but it's what we\n        // do for gDSFP. I can't remember why.\n        if (hook.baseUpdate === queue.last) {\n          hook.baseState = newState;\n        }\n\n        queue.lastRenderedState = newState;\n\n        return [newState, _dispatch];\n      }\n    }\n    return [hook.memoizedState, _dispatch];\n  }\n\n  // The last update in the entire queue\n  var last = queue.last;\n  // The last update that is part of the base state.\n  var baseUpdate = hook.baseUpdate;\n  var baseState = hook.baseState;\n\n  // Find the first unprocessed update.\n  var first = void 0;\n  if (baseUpdate !== null) {\n    if (last !== null) {\n      // For the first update, the queue is a circular linked list where\n      // `queue.last.next = queue.first`. Once the first update commits, and\n      // the `baseUpdate` is no longer empty, we can unravel the list.\n      last.next = null;\n    }\n    first = baseUpdate.next;\n  } else {\n    first = last !== null ? last.next : null;\n  }\n  if (first !== null) {\n    var _newState = baseState;\n    var newBaseState = null;\n    var newBaseUpdate = null;\n    var prevUpdate = baseUpdate;\n    var _update = first;\n    var didSkip = false;\n    do {\n      var updateExpirationTime = _update.expirationTime;\n      if (updateExpirationTime < renderExpirationTime$1) {\n        // Priority is insufficient. Skip this update. If this is the first\n        // skipped update, the previous update/state is the new base\n        // update/state.\n        if (!didSkip) {\n          didSkip = true;\n          newBaseUpdate = prevUpdate;\n          newBaseState = _newState;\n        }\n        // Update the remaining priority in the queue.\n        if (updateExpirationTime > remainingExpirationTime) {\n          remainingExpirationTime = updateExpirationTime;\n        }\n      } else {\n        // This update does have sufficient priority.\n\n        // Mark the event time of this update as relevant to this render pass.\n        // TODO: This should ideally use the true event time of this update rather than\n        // its priority which is a derived and not reverseable value.\n        // TODO: We should skip this update if it was already committed but currently\n        // we have no way of detecting the difference between a committed and suspended\n        // update here.\n        markRenderEventTimeAndConfig(updateExpirationTime, _update.suspenseConfig);\n\n        // Process this update.\n        if (_update.eagerReducer === reducer) {\n          // If this update was processed eagerly, and its reducer matches the\n          // current reducer, we can use the eagerly computed state.\n          _newState = _update.eagerState;\n        } else {\n          var _action2 = _update.action;\n          _newState = reducer(_newState, _action2);\n        }\n      }\n      prevUpdate = _update;\n      _update = _update.next;\n    } while (_update !== null && _update !== first);\n\n    if (!didSkip) {\n      newBaseUpdate = prevUpdate;\n      newBaseState = _newState;\n    }\n\n    // Mark that the fiber performed work, but only if the new state is\n    // different from the current state.\n    if (!is(_newState, hook.memoizedState)) {\n      markWorkInProgressReceivedUpdate();\n    }\n\n    hook.memoizedState = _newState;\n    hook.baseUpdate = newBaseUpdate;\n    hook.baseState = newBaseState;\n\n    queue.lastRenderedState = _newState;\n  }\n\n  var dispatch = queue.dispatch;\n  return [hook.memoizedState, dispatch];\n}\n\nfunction mountState(initialState) {\n  var hook = mountWorkInProgressHook();\n  if (typeof initialState === 'function') {\n    initialState = initialState();\n  }\n  hook.memoizedState = hook.baseState = initialState;\n  var queue = hook.queue = {\n    last: null,\n    dispatch: null,\n    lastRenderedReducer: basicStateReducer,\n    lastRenderedState: initialState\n  };\n  var dispatch = queue.dispatch = dispatchAction.bind(null,\n  // Flow doesn't know this is non-null, but we do.\n  currentlyRenderingFiber$1, queue);\n  return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n  return updateReducer(basicStateReducer, initialState);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n  var effect = {\n    tag: tag,\n    create: create,\n    destroy: destroy,\n    deps: deps,\n    // Circular\n    next: null\n  };\n  if (componentUpdateQueue === null) {\n    componentUpdateQueue = createFunctionComponentUpdateQueue();\n    componentUpdateQueue.lastEffect = effect.next = effect;\n  } else {\n    var _lastEffect = componentUpdateQueue.lastEffect;\n    if (_lastEffect === null) {\n      componentUpdateQueue.lastEffect = effect.next = effect;\n    } else {\n      var firstEffect = _lastEffect.next;\n      _lastEffect.next = effect;\n      effect.next = firstEffect;\n      componentUpdateQueue.lastEffect = effect;\n    }\n  }\n  return effect;\n}\n\nfunction mountRef(initialValue) {\n  var hook = mountWorkInProgressHook();\n  var ref = { current: initialValue };\n  {\n    Object.seal(ref);\n  }\n  hook.memoizedState = ref;\n  return ref;\n}\n\nfunction updateRef(initialValue) {\n  var hook = updateWorkInProgressHook();\n  return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  sideEffectTag |= fiberEffectTag;\n  hook.memoizedState = pushEffect(hookEffectTag, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var destroy = undefined;\n\n  if (currentHook !== null) {\n    var prevEffect = currentHook.memoizedState;\n    destroy = prevEffect.destroy;\n    if (nextDeps !== null) {\n      var prevDeps = prevEffect.deps;\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        pushEffect(NoEffect$1, create, destroy, nextDeps);\n        return;\n      }\n    }\n  }\n\n  sideEffectTag |= fiberEffectTag;\n  hook.memoizedState = pushEffect(hookEffectTag, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n    }\n  }\n  return mountEffectImpl(Update | Passive, UnmountPassive | MountPassive, create, deps);\n}\n\nfunction updateEffect(create, deps) {\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n    }\n  }\n  return updateEffectImpl(Update | Passive, UnmountPassive | MountPassive, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n  return mountEffectImpl(Update, UnmountMutation | MountLayout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n  return updateEffectImpl(Update, UnmountMutation | MountLayout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n  if (typeof ref === 'function') {\n    var refCallback = ref;\n    var _inst = create();\n    refCallback(_inst);\n    return function () {\n      refCallback(null);\n    };\n  } else if (ref !== null && ref !== undefined) {\n    var refObject = ref;\n    {\n      !refObject.hasOwnProperty('current') ? warning$1(false, 'Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}') : void 0;\n    }\n    var _inst2 = create();\n    refObject.current = _inst2;\n    return function () {\n      refObject.current = null;\n    };\n  }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n  {\n    !(typeof create === 'function') ? warning$1(false, 'Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null') : void 0;\n  }\n\n  // TODO: If deps are provided, should we skip comparing the ref itself?\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n\n  return mountEffectImpl(Update, UnmountMutation | MountLayout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n  {\n    !(typeof create === 'function') ? warning$1(false, 'Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null') : void 0;\n  }\n\n  // TODO: If deps are provided, should we skip comparing the ref itself?\n  var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n\n  return updateEffectImpl(Update, UnmountMutation | MountLayout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {\n  // This hook is normally a no-op.\n  // The react-debug-hooks package injects its own implementation\n  // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction updateCallback(callback, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n  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  hook.memoizedState = [callback, nextDeps];\n  return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n  var hook = mountWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n  var hook = updateWorkInProgressHook();\n  var nextDeps = deps === undefined ? null : deps;\n  var prevState = hook.memoizedState;\n  if (prevState !== null) {\n    // Assume these are defined. If they're not, areHookInputsEqual will warn.\n    if (nextDeps !== null) {\n      var prevDeps = prevState[1];\n      if (areHookInputsEqual(nextDeps, prevDeps)) {\n        return prevState[0];\n      }\n    }\n  }\n  var nextValue = nextCreate();\n  hook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction dispatchAction(fiber, queue, action) {\n  (function () {\n    if (!(numberOfReRenders < RE_RENDER_LIMIT)) {\n      {\n        throw ReactError(Error('Too many re-renders. React limits the number of renders to prevent an infinite loop.'));\n      }\n    }\n  })();\n\n  {\n    !(arguments.length <= 3) ? warning$1(false, \"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().') : void 0;\n  }\n\n  var alternate = fiber.alternate;\n  if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {\n    // This is a render phase update. Stash it in a lazily-created map of\n    // queue -> linked list of updates. After this render pass, we'll restart\n    // and apply the stashed updates on top of the work-in-progress hook.\n    didScheduleRenderPhaseUpdate = true;\n    var update = {\n      expirationTime: renderExpirationTime$1,\n      suspenseConfig: null,\n      action: action,\n      eagerReducer: null,\n      eagerState: null,\n      next: null\n    };\n    {\n      update.priority = getCurrentPriorityLevel();\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    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n\n    var currentTime = requestCurrentTime();\n    var _suspenseConfig = requestCurrentSuspenseConfig();\n    var _expirationTime = computeExpirationForFiber(currentTime, fiber, _suspenseConfig);\n\n    var _update2 = {\n      expirationTime: _expirationTime,\n      suspenseConfig: _suspenseConfig,\n      action: action,\n      eagerReducer: null,\n      eagerState: null,\n      next: null\n    };\n\n    {\n      _update2.priority = getCurrentPriorityLevel();\n    }\n\n    // Append the update to the end of the list.\n    var _last = queue.last;\n    if (_last === null) {\n      // This is the first update. Create a circular list.\n      _update2.next = _update2;\n    } else {\n      var first = _last.next;\n      if (first !== null) {\n        // Still circular.\n        _update2.next = first;\n      }\n      _last.next = _update2;\n    }\n    queue.last = _update2;\n\n    if (fiber.expirationTime === NoWork && (alternate === null || alternate.expirationTime === NoWork)) {\n      // The queue is currently empty, which means we can eagerly compute the\n      // next state before entering the render phase. If the new state is the\n      // same as the current state, we may be able to bail out entirely.\n      var _lastRenderedReducer = queue.lastRenderedReducer;\n      if (_lastRenderedReducer !== null) {\n        var prevDispatcher = void 0;\n        {\n          prevDispatcher = ReactCurrentDispatcher$1.current;\n          ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n        }\n        try {\n          var currentState = queue.lastRenderedState;\n          var _eagerState = _lastRenderedReducer(currentState, action);\n          // Stash the eagerly computed state, and the reducer used to compute\n          // it, on the update object. If the reducer hasn't changed by the\n          // time we enter the render phase, then the eager state can be used\n          // without calling the reducer again.\n          _update2.eagerReducer = _lastRenderedReducer;\n          _update2.eagerState = _eagerState;\n          if (is(_eagerState, currentState)) {\n            // Fast path. We can bail out without scheduling React to re-render.\n            // It's still possible that we'll need to rebase this update later,\n            // if the component re-renders for a different reason and by that\n            // time the reducer has changed.\n            return;\n          }\n        } catch (error) {\n          // Suppress the error. It will throw again in the render phase.\n        } finally {\n          {\n            ReactCurrentDispatcher$1.current = prevDispatcher;\n          }\n        }\n      }\n    }\n    {\n      // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n      if ('undefined' !== typeof jest) {\n        warnIfNotScopedWithMatchingAct(fiber);\n        warnIfNotCurrentlyActingUpdatesInDev(fiber);\n      }\n    }\n    scheduleWork(fiber, _expirationTime);\n  }\n}\n\nvar ContextOnlyDispatcher = {\n  readContext: readContext,\n\n  useCallback: throwInvalidHookError,\n  useContext: throwInvalidHookError,\n  useEffect: throwInvalidHookError,\n  useImperativeHandle: throwInvalidHookError,\n  useLayoutEffect: throwInvalidHookError,\n  useMemo: throwInvalidHookError,\n  useReducer: throwInvalidHookError,\n  useRef: throwInvalidHookError,\n  useState: throwInvalidHookError,\n  useDebugValue: throwInvalidHookError,\n  useResponder: throwInvalidHookError\n};\n\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\n\n{\n  var warnInvalidContextAccess = function () {\n    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().');\n  };\n\n  var warnInvalidHookAccess = function () {\n    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');\n  };\n\n  HooksDispatcherOnMountInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      mountHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      mountHookTypesDev();\n      checkDepsAreArrayDev(deps);\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      mountHookTypesDev();\n      return mountDebugValue(value, formatterFn);\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      mountHookTypesDev();\n      return createResponderListener(responder, props);\n    }\n  };\n\n  HooksDispatcherOnMountWithHookTypesInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return mountDebugValue(value, formatterFn);\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      updateHookTypesDev();\n      return createResponderListener(responder, props);\n    }\n  };\n\n  HooksDispatcherOnUpdateInDEV = {\n    readContext: function (context, observedBits) {\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      updateHookTypesDev();\n      return updateRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      updateHookTypesDev();\n      return updateDebugValue(value, formatterFn);\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      updateHookTypesDev();\n      return createResponderListener(responder, props);\n    }\n  };\n\n  InvalidNestedHooksDispatcherOnMountInDEV = {\n    readContext: function (context, observedBits) {\n      warnInvalidContextAccess();\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n      try {\n        return mountState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return mountDebugValue(value, formatterFn);\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      warnInvalidHookAccess();\n      mountHookTypesDev();\n      return createResponderListener(responder, props);\n    }\n  };\n\n  InvalidNestedHooksDispatcherOnUpdateInDEV = {\n    readContext: function (context, observedBits) {\n      warnInvalidContextAccess();\n      return readContext(context, observedBits);\n    },\n    useCallback: function (callback, deps) {\n      currentHookNameInDev = 'useCallback';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateCallback(callback, deps);\n    },\n    useContext: function (context, observedBits) {\n      currentHookNameInDev = 'useContext';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return readContext(context, observedBits);\n    },\n    useEffect: function (create, deps) {\n      currentHookNameInDev = 'useEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateEffect(create, deps);\n    },\n    useImperativeHandle: function (ref, create, deps) {\n      currentHookNameInDev = 'useImperativeHandle';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateImperativeHandle(ref, create, deps);\n    },\n    useLayoutEffect: function (create, deps) {\n      currentHookNameInDev = 'useLayoutEffect';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateLayoutEffect(create, deps);\n    },\n    useMemo: function (create, deps) {\n      currentHookNameInDev = 'useMemo';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateMemo(create, deps);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useReducer: function (reducer, initialArg, init) {\n      currentHookNameInDev = 'useReducer';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateReducer(reducer, initialArg, init);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useRef: function (initialValue) {\n      currentHookNameInDev = 'useRef';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateRef(initialValue);\n    },\n    useState: function (initialState) {\n      currentHookNameInDev = 'useState';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      var prevDispatcher = ReactCurrentDispatcher$1.current;\n      ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n      try {\n        return updateState(initialState);\n      } finally {\n        ReactCurrentDispatcher$1.current = prevDispatcher;\n      }\n    },\n    useDebugValue: function (value, formatterFn) {\n      currentHookNameInDev = 'useDebugValue';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return updateDebugValue(value, formatterFn);\n    },\n    useResponder: function (responder, props) {\n      currentHookNameInDev = 'useResponder';\n      warnInvalidHookAccess();\n      updateHookTypesDev();\n      return createResponderListener(responder, props);\n    }\n  };\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\n// CommonJS interop named imports.\nvar now$1 = unstable_now;\n\n\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n  return commitTime;\n}\n\nfunction recordCommitTime() {\n  if (!enableProfilerTimer) {\n    return;\n  }\n  commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n\n  profilerStartTime = now$1();\n\n  if (fiber.actualStartTime < 0) {\n    fiber.actualStartTime = now$1();\n  }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n  profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n  if (!enableProfilerTimer) {\n    return;\n  }\n\n  if (profilerStartTime >= 0) {\n    var elapsedTime = now$1() - profilerStartTime;\n    fiber.actualDuration += elapsedTime;\n    if (overrideBaseTime) {\n      fiber.selfBaseDuration = elapsedTime;\n    }\n    profilerStartTime = -1;\n  }\n}\n\n// The deepest Fiber on the stack involved in a hydration context.\n// This may have been an insertion or a hydration.\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n  if (!supportsHydration) {\n    return false;\n  }\n\n  var parentInstance = fiber.stateNode.containerInfo;\n  nextHydratableInstance = getFirstHydratableChild(parentInstance);\n  hydrationParentFiber = fiber;\n  isHydrating = true;\n  return true;\n}\n\nfunction reenterHydrationStateFromDehydratedSuspenseInstance(fiber) {\n  if (!supportsHydration) {\n    return false;\n  }\n\n  var suspenseInstance = fiber.stateNode;\n  nextHydratableInstance = getNextHydratableSibling(suspenseInstance);\n  popToNextHostParent(fiber);\n  isHydrating = true;\n  return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n        break;\n      case HostComponent:\n        didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n        break;\n    }\n  }\n\n  var childToDelete = createFiberFromHostInstanceForDeletion();\n  childToDelete.stateNode = instance;\n  childToDelete.return = returnFiber;\n  childToDelete.effectTag = Deletion;\n\n  // This might seem like it belongs on progressedFirstDeletion. However,\n  // these children are not part of the reconciliation list of children.\n  // Even if we abort and rereconcile the children, that will try to hydrate\n  // again and the nodes are still in the host tree so these will be\n  // recreated.\n  if (returnFiber.lastEffect !== null) {\n    returnFiber.lastEffect.nextEffect = childToDelete;\n    returnFiber.lastEffect = childToDelete;\n  } else {\n    returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n  }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n  fiber.effectTag |= Placement;\n  {\n    switch (returnFiber.tag) {\n      case HostRoot:\n        {\n          var parentContainer = returnFiber.stateNode.containerInfo;\n          switch (fiber.tag) {\n            case HostComponent:\n              var type = fiber.type;\n              var props = fiber.pendingProps;\n              didNotFindHydratableContainerInstance(parentContainer, type, props);\n              break;\n            case HostText:\n              var text = fiber.pendingProps;\n              didNotFindHydratableContainerTextInstance(parentContainer, text);\n              break;\n            case SuspenseComponent:\n              \n              break;\n          }\n          break;\n        }\n      case HostComponent:\n        {\n          var parentType = returnFiber.type;\n          var parentProps = returnFiber.memoizedProps;\n          var parentInstance = returnFiber.stateNode;\n          switch (fiber.tag) {\n            case HostComponent:\n              var _type = fiber.type;\n              var _props = fiber.pendingProps;\n              didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type, _props);\n              break;\n            case HostText:\n              var _text = fiber.pendingProps;\n              didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n              break;\n            case SuspenseComponent:\n              didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance);\n              break;\n          }\n          break;\n        }\n      default:\n        return;\n    }\n  }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n  switch (fiber.tag) {\n    case HostComponent:\n      {\n        var type = fiber.type;\n        var props = fiber.pendingProps;\n        var instance = canHydrateInstance(nextInstance, type, props);\n        if (instance !== null) {\n          fiber.stateNode = instance;\n          return true;\n        }\n        return false;\n      }\n    case HostText:\n      {\n        var text = fiber.pendingProps;\n        var textInstance = canHydrateTextInstance(nextInstance, text);\n        if (textInstance !== null) {\n          fiber.stateNode = textInstance;\n          return true;\n        }\n        return false;\n      }\n    case SuspenseComponent:\n      {\n        if (enableSuspenseServerRenderer) {\n          var suspenseInstance = canHydrateSuspenseInstance(nextInstance);\n          if (suspenseInstance !== null) {\n            // Downgrade the tag to a dehydrated component until we've hydrated it.\n            fiber.tag = DehydratedSuspenseComponent;\n            fiber.stateNode = suspenseInstance;\n            return true;\n          }\n        }\n        return false;\n      }\n    default:\n      return false;\n  }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n  if (!isHydrating) {\n    return;\n  }\n  var nextInstance = nextHydratableInstance;\n  if (!nextInstance) {\n    // Nothing to hydrate. Make it an insertion.\n    insertNonHydratedInstance(hydrationParentFiber, fiber);\n    isHydrating = false;\n    hydrationParentFiber = fiber;\n    return;\n  }\n  var firstAttemptedInstance = nextInstance;\n  if (!tryHydrate(fiber, nextInstance)) {\n    // If we can't hydrate this instance let's try the next one.\n    // We use this as a heuristic. It's based on intuition and not data so it\n    // might be flawed or unnecessary.\n    nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n    if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n      // Nothing to hydrate. Make it an insertion.\n      insertNonHydratedInstance(hydrationParentFiber, fiber);\n      isHydrating = false;\n      hydrationParentFiber = fiber;\n      return;\n    }\n    // We matched the next one, we'll now assume that the first one was\n    // superfluous and we'll delete it. Since we can't eagerly delete it\n    // we'll have to schedule a deletion. To do that, this node needs a dummy\n    // fiber associated with it.\n    deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n  }\n  hydrationParentFiber = fiber;\n  nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n  if (!supportsHydration) {\n    (function () {\n      {\n        {\n          throw ReactError(Error('Expected prepareToHydrateHostInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n\n  var instance = fiber.stateNode;\n  var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber);\n  // TODO: Type this specific to this type of component.\n  fiber.updateQueue = updatePayload;\n  // If the update payload indicates that there is a change or if there\n  // is a new ref we mark this as an update.\n  if (updatePayload !== null) {\n    return true;\n  }\n  return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n  if (!supportsHydration) {\n    (function () {\n      {\n        {\n          throw ReactError(Error('Expected prepareToHydrateHostTextInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n\n  var textInstance = fiber.stateNode;\n  var textContent = fiber.memoizedProps;\n  var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n  {\n    if (shouldUpdate) {\n      // We assume that prepareToHydrateHostTextInstance is called in a context where the\n      // hydration parent is the parent host component of this host text.\n      var returnFiber = hydrationParentFiber;\n      if (returnFiber !== null) {\n        switch (returnFiber.tag) {\n          case HostRoot:\n            {\n              var parentContainer = returnFiber.stateNode.containerInfo;\n              didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n              break;\n            }\n          case HostComponent:\n            {\n              var parentType = returnFiber.type;\n              var parentProps = returnFiber.memoizedProps;\n              var parentInstance = returnFiber.stateNode;\n              didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n              break;\n            }\n        }\n      }\n    }\n  }\n  return shouldUpdate;\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n  if (!supportsHydration) {\n    (function () {\n      {\n        {\n          throw ReactError(Error('Expected skipPastDehydratedSuspenseInstance() to never be called. This error is likely caused by a bug in React. Please file an issue.'));\n        }\n      }\n    })();\n  }\n  var suspenseInstance = fiber.stateNode;\n  (function () {\n    if (!suspenseInstance) {\n      {\n        throw ReactError(Error('Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n  nextHydratableInstance = getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n  var parent = fiber.return;\n  while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== DehydratedSuspenseComponent) {\n    parent = parent.return;\n  }\n  hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n  if (!supportsHydration) {\n    return false;\n  }\n  if (fiber !== hydrationParentFiber) {\n    // We're deeper than the current hydration context, inside an inserted\n    // tree.\n    return false;\n  }\n  if (!isHydrating) {\n    // If we're not currently hydrating but we're in a hydration context, then\n    // we were an insertion and now need to pop up reenter hydration of our\n    // siblings.\n    popToNextHostParent(fiber);\n    isHydrating = true;\n    return false;\n  }\n\n  var type = fiber.type;\n\n  // If we have any remaining hydratable nodes, we need to delete them now.\n  // We only do this deeper than head and body since they tend to have random\n  // other nodes in them. We also ignore components with pure text content in\n  // side of them.\n  // TODO: Better heuristic.\n  if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n    var nextInstance = nextHydratableInstance;\n    while (nextInstance) {\n      deleteHydratableInstance(fiber, nextInstance);\n      nextInstance = getNextHydratableSibling(nextInstance);\n    }\n  }\n\n  popToNextHostParent(fiber);\n  nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n  return true;\n}\n\nfunction resetHydrationState() {\n  if (!supportsHydration) {\n    return;\n  }\n\n  hydrationParentFiber = null;\n  nextHydratableInstance = null;\n  isHydrating = false;\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\n\nvar didReceiveUpdate = false;\n\nvar didWarnAboutBadClass = void 0;\nvar didWarnAboutModulePatternComponent = void 0;\nvar didWarnAboutContextTypeOnFunctionComponent = void 0;\nvar didWarnAboutGetDerivedStateOnFunctionComponent = void 0;\nvar didWarnAboutFunctionRefs = void 0;\nvar didWarnAboutReassigningProps = void 0;\nvar didWarnAboutMaxDuration = void 0;\nvar didWarnAboutRevealOrder = void 0;\nvar didWarnAboutTailOptions = void 0;\nvar didWarnAboutDefaultPropsOnFunctionComponent = void 0;\n\n{\n  didWarnAboutBadClass = {};\n  didWarnAboutModulePatternComponent = {};\n  didWarnAboutContextTypeOnFunctionComponent = {};\n  didWarnAboutGetDerivedStateOnFunctionComponent = {};\n  didWarnAboutFunctionRefs = {};\n  didWarnAboutReassigningProps = false;\n  didWarnAboutMaxDuration = false;\n  didWarnAboutRevealOrder = {};\n  didWarnAboutTailOptions = {};\n  didWarnAboutDefaultPropsOnFunctionComponent = {};\n}\n\nfunction reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime) {\n  if (current$$1 === null) {\n    // If this is a fresh new component that hasn't been rendered yet, we\n    // won't update its child set by applying minimal side-effects. Instead,\n    // we will add them all to the child before it gets rendered. That means\n    // we can optimize this reconciliation pass by not tracking side-effects.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    // If the current child is the same as the work in progress, it means that\n    // we haven't yet started any work on these children. Therefore, we use\n    // the clone algorithm to create a copy of all the current children.\n\n    // If we had any progressed work already, that is invalid at this point so\n    // let's throw it out.\n    workInProgress.child = reconcileChildFibers(workInProgress, current$$1.child, nextChildren, renderExpirationTime);\n  }\n}\n\nfunction forceUnmountCurrentAndReconcile(current$$1, workInProgress, nextChildren, renderExpirationTime) {\n  // This function is fork of reconcileChildren. It's used in cases where we\n  // want to reconcile without matching against the existing set. This has the\n  // effect of all current children being unmounted; even if the type and key\n  // are the same, the old child is unmounted and a new child is created.\n  //\n  // To do this, we're going to go through the reconcile algorithm twice. In\n  // the first pass, we schedule a deletion for all the current children by\n  // passing null.\n  workInProgress.child = reconcileChildFibers(workInProgress, current$$1.child, null, renderExpirationTime);\n  // In the second pass, we mount the new children. The trick here is that we\n  // pass null in place of where we usually pass the current child set. This has\n  // the effect of remounting all children regardless of whether their their\n  // identity matches.\n  workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n}\n\nfunction updateForwardRef(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens after the first render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n      if (innerPropTypes) {\n        checkPropTypes_1(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  }\n\n  var render = Component.render;\n  var ref = workInProgress.ref;\n\n  // The rest is a fork of updateFunctionComponent\n  var nextChildren = void 0;\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    nextChildren = renderWithHooks(current$$1, workInProgress, render, nextProps, ref, renderExpirationTime);\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      // Only double-render components with Hooks\n      if (workInProgress.memoizedState !== null) {\n        nextChildren = renderWithHooks(current$$1, workInProgress, render, nextProps, ref, renderExpirationTime);\n      }\n    }\n    setCurrentPhase(null);\n  }\n\n  if (current$$1 !== null && !didReceiveUpdate) {\n    bailoutHooks(current$$1, workInProgress, renderExpirationTime);\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateMemoComponent(current$$1, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {\n  if (current$$1 === null) {\n    var type = Component.type;\n    if (isSimpleFunctionComponent(type) && Component.compare === null &&\n    // SimpleMemoComponent codepath doesn't resolve outer props either.\n    Component.defaultProps === undefined) {\n      var resolvedType = type;\n      {\n        resolvedType = resolveFunctionForHotReloading(type);\n      }\n      // If this is a plain function component without default props,\n      // and with only the default shallow comparison, we upgrade it\n      // to a SimpleMemoComponent to allow fast path updates.\n      workInProgress.tag = SimpleMemoComponent;\n      workInProgress.type = resolvedType;\n      {\n        validateFunctionComponentInDev(workInProgress, type);\n      }\n      return updateSimpleMemoComponent(current$$1, workInProgress, resolvedType, nextProps, updateExpirationTime, renderExpirationTime);\n    }\n    {\n      var innerPropTypes = type.propTypes;\n      if (innerPropTypes) {\n        // Inner memo component props aren't currently validated in createElement.\n        // We could move it there, but we'd still need this for lazy code path.\n        checkPropTypes_1(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(type), getCurrentFiberStackInDev);\n      }\n    }\n    var child = createFiberFromTypeAndProps(Component.type, null, nextProps, null, workInProgress.mode, renderExpirationTime);\n    child.ref = workInProgress.ref;\n    child.return = workInProgress;\n    workInProgress.child = child;\n    return child;\n  }\n  {\n    var _type = Component.type;\n    var _innerPropTypes = _type.propTypes;\n    if (_innerPropTypes) {\n      // Inner memo component props aren't currently validated in createElement.\n      // We could move it there, but we'd still need this for lazy code path.\n      checkPropTypes_1(_innerPropTypes, nextProps, // Resolved props\n      'prop', getComponentName(_type), getCurrentFiberStackInDev);\n    }\n  }\n  var currentChild = current$$1.child; // This is always exactly one child\n  if (updateExpirationTime < renderExpirationTime) {\n    // This will be the props with resolved defaultProps,\n    // unlike current.memoizedProps which will be the unresolved ones.\n    var prevProps = currentChild.memoizedProps;\n    // Default to shallow comparison\n    var compare = Component.compare;\n    compare = compare !== null ? compare : shallowEqual;\n    if (compare(prevProps, nextProps) && current$$1.ref === workInProgress.ref) {\n      return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n    }\n  }\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  var newChild = createWorkInProgress(currentChild, nextProps, renderExpirationTime);\n  newChild.ref = workInProgress.ref;\n  newChild.return = workInProgress;\n  workInProgress.child = newChild;\n  return newChild;\n}\n\nfunction updateSimpleMemoComponent(current$$1, workInProgress, Component, nextProps, updateExpirationTime, renderExpirationTime) {\n  // TODO: current can be non-null here even if the component\n  // hasn't yet mounted. This happens when the inner render suspends.\n  // We'll need to figure out if this is fine or can cause issues.\n\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var outerMemoType = workInProgress.elementType;\n      if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n        // We warn when you define propTypes on lazy()\n        // so let's just skip over it to find memo() outer wrapper.\n        // Inner props for memo are validated later.\n        outerMemoType = refineResolvedLazyComponent(outerMemoType);\n      }\n      var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n      if (outerPropTypes) {\n        checkPropTypes_1(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n        'prop', getComponentName(outerMemoType), getCurrentFiberStackInDev);\n      }\n      // Inner propTypes will be validated in the function component path.\n    }\n  }\n  if (current$$1 !== null) {\n    var prevProps = current$$1.memoizedProps;\n    if (shallowEqual(prevProps, nextProps) && current$$1.ref === workInProgress.ref && (\n    // Prevent bailout if the implementation changed due to hot reload:\n    workInProgress.type === current$$1.type)) {\n      didReceiveUpdate = false;\n      if (updateExpirationTime < renderExpirationTime) {\n        return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n      }\n    }\n  }\n  return updateFunctionComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime);\n}\n\nfunction updateFragment(current$$1, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateMode(current$$1, workInProgress, renderExpirationTime) {\n  var nextChildren = workInProgress.pendingProps.children;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateProfiler(current$$1, workInProgress, renderExpirationTime) {\n  if (enableProfilerTimer) {\n    workInProgress.effectTag |= Update;\n  }\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction markRef(current$$1, workInProgress) {\n  var ref = workInProgress.ref;\n  if (current$$1 === null && ref !== null || current$$1 !== null && current$$1.ref !== ref) {\n    // Schedule a Ref effect\n    workInProgress.effectTag |= Ref;\n  }\n}\n\nfunction updateFunctionComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n      if (innerPropTypes) {\n        checkPropTypes_1(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  }\n\n  var context = void 0;\n  if (!disableLegacyContext) {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  var nextChildren = void 0;\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    nextChildren = renderWithHooks(current$$1, workInProgress, Component, nextProps, context, renderExpirationTime);\n    if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n      // Only double-render components with Hooks\n      if (workInProgress.memoizedState !== null) {\n        nextChildren = renderWithHooks(current$$1, workInProgress, Component, nextProps, context, renderExpirationTime);\n      }\n    }\n    setCurrentPhase(null);\n  }\n\n  if (current$$1 !== null && !didReceiveUpdate) {\n    bailoutHooks(current$$1, workInProgress, renderExpirationTime);\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateClassComponent(current$$1, workInProgress, Component, nextProps, renderExpirationTime) {\n  {\n    if (workInProgress.type !== workInProgress.elementType) {\n      // Lazy component props can't be validated in createElement\n      // because they're only guaranteed to be resolved here.\n      var innerPropTypes = Component.propTypes;\n      if (innerPropTypes) {\n        checkPropTypes_1(innerPropTypes, nextProps, // Resolved props\n        'prop', getComponentName(Component), getCurrentFiberStackInDev);\n      }\n    }\n  }\n\n  // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n  var hasContext = void 0;\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  var instance = workInProgress.stateNode;\n  var shouldUpdate = void 0;\n  if (instance === null) {\n    if (current$$1 !== null) {\n      // An class component without an instance only mounts if it suspended\n      // inside a non- concurrent tree, in an inconsistent state. We want to\n      // tree it like a new mount, even though an empty version of it already\n      // committed. Disconnect the alternate pointers.\n      current$$1.alternate = null;\n      workInProgress.alternate = null;\n      // Since this is conceptually a new fiber, schedule a Placement effect\n      workInProgress.effectTag |= Placement;\n    }\n    // In the initial pass we might need to construct the instance.\n    constructClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n    mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n    shouldUpdate = true;\n  } else if (current$$1 === null) {\n    // In a resume, we'll already have an instance we can reuse.\n    shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n  } else {\n    shouldUpdate = updateClassInstance(current$$1, workInProgress, Component, nextProps, renderExpirationTime);\n  }\n  var nextUnitOfWork = finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime);\n  {\n    var inst = workInProgress.stateNode;\n    if (inst.props !== nextProps) {\n      !didWarnAboutReassigningProps ? warning$1(false, 'It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component') : void 0;\n      didWarnAboutReassigningProps = true;\n    }\n  }\n  return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current$$1, workInProgress, Component, shouldUpdate, hasContext, renderExpirationTime) {\n  // Refs should update even if shouldComponentUpdate returns false\n  markRef(current$$1, workInProgress);\n\n  var didCaptureError = (workInProgress.effectTag & DidCapture) !== NoEffect;\n\n  if (!shouldUpdate && !didCaptureError) {\n    // Context providers should defer to sCU for rendering\n    if (hasContext) {\n      invalidateContextProvider(workInProgress, Component, false);\n    }\n\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n\n  var instance = workInProgress.stateNode;\n\n  // Rerender\n  ReactCurrentOwner$3.current = workInProgress;\n  var nextChildren = void 0;\n  if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n    // If we captured an error, but getDerivedStateFrom catch is not defined,\n    // unmount all the children. componentDidCatch will schedule an update to\n    // re-render a fallback. This is temporary until we migrate everyone to\n    // the new API.\n    // TODO: Warn in a future release.\n    nextChildren = null;\n\n    if (enableProfilerTimer) {\n      stopProfilerTimerIfRunning(workInProgress);\n    }\n  } else {\n    {\n      setCurrentPhase('render');\n      nextChildren = instance.render();\n      if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n        instance.render();\n      }\n      setCurrentPhase(null);\n    }\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  if (current$$1 !== null && didCaptureError) {\n    // If we're recovering from an error, reconcile without reusing any of\n    // the existing children. Conceptually, the normal children and the children\n    // that are shown on error are two different sets, so we shouldn't reuse\n    // normal children even if their identities match.\n    forceUnmountCurrentAndReconcile(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  } else {\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  }\n\n  // Memoize state using the values we just used to render.\n  // TODO: Restructure so we never read values from the instance.\n  workInProgress.memoizedState = instance.state;\n\n  // The context might have changed so we need to recalculate it.\n  if (hasContext) {\n    invalidateContextProvider(workInProgress, Component, true);\n  }\n\n  return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n  var root = workInProgress.stateNode;\n  if (root.pendingContext) {\n    pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n  } else if (root.context) {\n    // Should always be set\n    pushTopLevelContextObject(workInProgress, root.context, false);\n  }\n  pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current$$1, workInProgress, renderExpirationTime) {\n  pushHostRootContext(workInProgress);\n  var updateQueue = workInProgress.updateQueue;\n  (function () {\n    if (!(updateQueue !== null)) {\n      {\n        throw ReactError(Error('If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n  var nextProps = workInProgress.pendingProps;\n  var prevState = workInProgress.memoizedState;\n  var prevChildren = prevState !== null ? prevState.element : null;\n  processUpdateQueue(workInProgress, updateQueue, nextProps, null, renderExpirationTime);\n  var nextState = workInProgress.memoizedState;\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  var nextChildren = nextState.element;\n  if (nextChildren === prevChildren) {\n    // If the state is the same as before, that's a bailout because we had\n    // no work that expires at this time.\n    resetHydrationState();\n    return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n  }\n  var root = workInProgress.stateNode;\n  if ((current$$1 === null || current$$1.child === null) && root.hydrate && enterHydrationState(workInProgress)) {\n    // If we don't have any current children this might be the first pass.\n    // We always try to hydrate. If this isn't a hydration pass there won't\n    // be any children to hydrate which is effectively the same thing as\n    // not hydrating.\n\n    // This is a bit of a hack. We track the host root as a placement to\n    // know that we're currently in a mounting state. That way isMounted\n    // works as expected. We must reset this before committing.\n    // TODO: Delete this when we delete isMounted and findDOMNode.\n    workInProgress.effectTag |= Placement;\n\n    // Ensure that children mount into this root without tracking\n    // side-effects. This ensures that we don't store Placement effects on\n    // nodes that will be hydrated.\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    // Otherwise reset hydration state in case we aborted and resumed another\n    // root.\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n    resetHydrationState();\n  }\n  return workInProgress.child;\n}\n\nfunction updateHostComponent(current$$1, workInProgress, renderExpirationTime) {\n  pushHostContext(workInProgress);\n\n  if (current$$1 === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n\n  var type = workInProgress.type;\n  var nextProps = workInProgress.pendingProps;\n  var prevProps = current$$1 !== null ? current$$1.memoizedProps : null;\n\n  var nextChildren = nextProps.children;\n  var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n  if (isDirectTextChild) {\n    // We special case a direct text child of a host node. This is a common\n    // case. We won't handle it as a reified child. We will instead handle\n    // this in the host environment that also have access to this prop. That\n    // avoids allocating another HostText fiber and traversing it.\n    nextChildren = null;\n  } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n    // If we're switching from a direct text child to a normal child, or to\n    // empty, we need to schedule the text content to be reset.\n    workInProgress.effectTag |= ContentReset;\n  }\n\n  markRef(current$$1, workInProgress);\n\n  // Check the host config to see if the children are offscreen/hidden.\n  if (workInProgress.mode & ConcurrentMode && renderExpirationTime !== Never && shouldDeprioritizeSubtree(type, nextProps)) {\n    if (enableSchedulerTracing) {\n      markSpawnedWork(Never);\n    }\n    // Schedule this fiber to re-render at offscreen priority. Then bailout.\n    workInProgress.expirationTime = workInProgress.childExpirationTime = Never;\n    return null;\n  }\n\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateHostText(current$$1, workInProgress) {\n  if (current$$1 === null) {\n    tryToClaimNextHydratableInstance(workInProgress);\n  }\n  // Nothing to do here. This is terminal. We'll do the completion step\n  // immediately after.\n  return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, updateExpirationTime, renderExpirationTime) {\n  if (_current !== null) {\n    // An lazy component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null;\n    // Since this is conceptually a new fiber, schedule a Placement effect\n    workInProgress.effectTag |= Placement;\n  }\n\n  var props = workInProgress.pendingProps;\n  // We can't start a User Timing measurement with correct label yet.\n  // Cancel and resume right after we know the tag.\n  cancelWorkTimer(workInProgress);\n  var Component = readLazyComponentType(elementType);\n  // Store the unwrapped component in the type.\n  workInProgress.type = Component;\n  var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n  startWorkTimer(workInProgress);\n  var resolvedProps = resolveDefaultProps(Component, props);\n  var child = void 0;\n  switch (resolvedTag) {\n    case FunctionComponent:\n      {\n        {\n          validateFunctionComponentInDev(workInProgress, Component);\n          workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n        }\n        child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        break;\n      }\n    case ClassComponent:\n      {\n        {\n          workInProgress.type = Component = resolveClassForHotReloading(Component);\n        }\n        child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        break;\n      }\n    case ForwardRef:\n      {\n        {\n          workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n        }\n        child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderExpirationTime);\n        break;\n      }\n    case MemoComponent:\n      {\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = Component.propTypes;\n            if (outerPropTypes) {\n              checkPropTypes_1(outerPropTypes, resolvedProps, // Resolved for outer only\n              'prop', getComponentName(Component), getCurrentFiberStackInDev);\n            }\n          }\n        }\n        child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n        updateExpirationTime, renderExpirationTime);\n        break;\n      }\n    default:\n      {\n        var hint = '';\n        {\n          if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n            hint = ' Did you wrap a component in React.lazy() more than once?';\n          }\n        }\n        // This message intentionally doesn't mention ForwardRef or MemoComponent\n        // because the fact that it's a separate type of work is an\n        // implementation detail.\n        (function () {\n          {\n            {\n              throw ReactError(Error('Element type is invalid. Received a promise that resolves to: ' + Component + '. Lazy element type must resolve to a class or function.' + hint));\n            }\n          }\n        })();\n      }\n  }\n  return child;\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderExpirationTime) {\n  if (_current !== null) {\n    // An incomplete component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null;\n    // Since this is conceptually a new fiber, schedule a Placement effect\n    workInProgress.effectTag |= Placement;\n  }\n\n  // Promote the fiber to a class and try rendering again.\n  workInProgress.tag = ClassComponent;\n\n  // The rest of this function is a fork of `updateClassComponent`\n\n  // Push context providers early to prevent context stack mismatches.\n  // During mounting we don't know the child context yet as the instance doesn't exist.\n  // We will invalidate the child context in finishClassComponent() right after rendering.\n  var hasContext = void 0;\n  if (isContextProvider(Component)) {\n    hasContext = true;\n    pushContextProvider(workInProgress);\n  } else {\n    hasContext = false;\n  }\n  prepareToReadContext(workInProgress, renderExpirationTime);\n\n  constructClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n  mountClassInstance(workInProgress, Component, nextProps, renderExpirationTime);\n\n  return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderExpirationTime) {\n  if (_current !== null) {\n    // An indeterminate component only mounts if it suspended inside a non-\n    // concurrent tree, in an inconsistent state. We want to treat it like\n    // a new mount, even though an empty version of it already committed.\n    // Disconnect the alternate pointers.\n    _current.alternate = null;\n    workInProgress.alternate = null;\n    // Since this is conceptually a new fiber, schedule a Placement effect\n    workInProgress.effectTag |= Placement;\n  }\n\n  var props = workInProgress.pendingProps;\n  var context = void 0;\n  if (!disableLegacyContext) {\n    var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n    context = getMaskedContext(workInProgress, unmaskedContext);\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var value = void 0;\n\n  {\n    if (Component.prototype && typeof Component.prototype.render === 'function') {\n      var componentName = getComponentName(Component) || 'Unknown';\n\n      if (!didWarnAboutBadClass[componentName]) {\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.', componentName, componentName);\n        didWarnAboutBadClass[componentName] = true;\n      }\n    }\n\n    if (workInProgress.mode & StrictMode) {\n      ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n    }\n\n    ReactCurrentOwner$3.current = workInProgress;\n    value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);\n  }\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n\n  if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n    {\n      var _componentName = getComponentName(Component) || 'Unknown';\n      if (!didWarnAboutModulePatternComponent[_componentName]) {\n        warningWithoutStack$1(false, 'The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n        didWarnAboutModulePatternComponent[_componentName] = true;\n      }\n    }\n\n    // Proceed under the assumption that this is a class instance\n    workInProgress.tag = ClassComponent;\n\n    // Throw out any hooks that were used.\n    resetHooks();\n\n    // Push context providers early to prevent context stack mismatches.\n    // During mounting we don't know the child context yet as the instance doesn't exist.\n    // We will invalidate the child context in finishClassComponent() right after rendering.\n    var hasContext = false;\n    if (isContextProvider(Component)) {\n      hasContext = true;\n      pushContextProvider(workInProgress);\n    } else {\n      hasContext = false;\n    }\n\n    workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n\n    var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n    if (typeof getDerivedStateFromProps === 'function') {\n      applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n    }\n\n    adoptClassInstance(workInProgress, value);\n    mountClassInstance(workInProgress, Component, props, renderExpirationTime);\n    return finishClassComponent(null, workInProgress, Component, true, hasContext, renderExpirationTime);\n  } else {\n    // Proceed under the assumption that this is a function component\n    workInProgress.tag = FunctionComponent;\n    {\n      if (disableLegacyContext && Component.contextTypes) {\n        warningWithoutStack$1(false, '%s uses the legacy contextTypes API which is no longer supported. ' + 'Use React.createContext() with React.useContext() instead.', getComponentName(Component) || 'Unknown');\n      }\n\n      if (debugRenderPhaseSideEffects || debugRenderPhaseSideEffectsForStrictMode && workInProgress.mode & StrictMode) {\n        // Only double-render components with Hooks\n        if (workInProgress.memoizedState !== null) {\n          value = renderWithHooks(null, workInProgress, Component, props, context, renderExpirationTime);\n        }\n      }\n    }\n    reconcileChildren(null, workInProgress, value, renderExpirationTime);\n    {\n      validateFunctionComponentInDev(workInProgress, Component);\n    }\n    return workInProgress.child;\n  }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n  if (Component) {\n    !!Component.childContextTypes ? warningWithoutStack$1(false, '%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component') : void 0;\n  }\n  if (workInProgress.ref !== null) {\n    var info = '';\n    var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n    if (ownerName) {\n      info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n    }\n\n    var warningKey = ownerName || workInProgress._debugID || '';\n    var debugSource = workInProgress._debugSource;\n    if (debugSource) {\n      warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n    }\n    if (!didWarnAboutFunctionRefs[warningKey]) {\n      didWarnAboutFunctionRefs[warningKey] = true;\n      warning$1(false, 'Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n    }\n  }\n\n  if (warnAboutDefaultPropsOnFunctionComponents && Component.defaultProps !== undefined) {\n    var componentName = getComponentName(Component) || 'Unknown';\n\n    if (!didWarnAboutDefaultPropsOnFunctionComponent[componentName]) {\n      warningWithoutStack$1(false, '%s: Support for defaultProps will be removed from function components ' + 'in a future major release. Use JavaScript default parameters instead.', componentName);\n      didWarnAboutDefaultPropsOnFunctionComponent[componentName] = true;\n    }\n  }\n\n  if (typeof Component.getDerivedStateFromProps === 'function') {\n    var _componentName2 = getComponentName(Component) || 'Unknown';\n\n    if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2]) {\n      warningWithoutStack$1(false, '%s: Function components do not support getDerivedStateFromProps.', _componentName2);\n      didWarnAboutGetDerivedStateOnFunctionComponent[_componentName2] = true;\n    }\n  }\n\n  if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n    var _componentName3 = getComponentName(Component) || 'Unknown';\n\n    if (!didWarnAboutContextTypeOnFunctionComponent[_componentName3]) {\n      warningWithoutStack$1(false, '%s: Function components do not support contextType.', _componentName3);\n      didWarnAboutContextTypeOnFunctionComponent[_componentName3] = true;\n    }\n  }\n}\n\n// TODO: This is now an empty object. Should we just make it a boolean?\nvar SUSPENDED_MARKER = {};\n\nfunction shouldRemainOnFallback(suspenseContext, current$$1, workInProgress) {\n  // If the context is telling us that we should show a fallback, and we're not\n  // already showing content, then we should show the fallback instead.\n  return hasSuspenseContext(suspenseContext, ForceSuspenseFallback) && (current$$1 === null || current$$1.memoizedState !== null);\n}\n\nfunction updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime) {\n  var mode = workInProgress.mode;\n  var nextProps = workInProgress.pendingProps;\n\n  // This is used by DevTools to force a boundary to suspend.\n  {\n    if (shouldSuspend(workInProgress)) {\n      workInProgress.effectTag |= DidCapture;\n    }\n  }\n\n  var suspenseContext = suspenseStackCursor.current;\n\n  var nextState = null;\n  var nextDidTimeout = false;\n\n  if ((workInProgress.effectTag & DidCapture) !== NoEffect || shouldRemainOnFallback(suspenseContext, current$$1, workInProgress)) {\n    // Something in this boundary's subtree already suspended. Switch to\n    // rendering the fallback children.\n    nextState = SUSPENDED_MARKER;\n    nextDidTimeout = true;\n    workInProgress.effectTag &= ~DidCapture;\n  } else {\n    // Attempting the main content\n    if (current$$1 === null || current$$1.memoizedState !== null) {\n      // This is a new mount or this boundary is already showing a fallback state.\n      // Mark this subtree context as having at least one invisible parent that could\n      // handle the fallback state.\n      // Boundaries without fallbacks or should be avoided are not considered since\n      // they cannot handle preferred fallback states.\n      if (nextProps.fallback !== undefined && nextProps.unstable_avoidThisFallback !== true) {\n        suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n      }\n    }\n  }\n\n  suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n\n  pushSuspenseContext(workInProgress, suspenseContext);\n\n  {\n    if ('maxDuration' in nextProps) {\n      if (!didWarnAboutMaxDuration) {\n        didWarnAboutMaxDuration = true;\n        warning$1(false, 'maxDuration has been removed from React. ' + 'Remove the maxDuration prop.');\n      }\n    }\n  }\n\n  // This next part is a bit confusing. If the children timeout, we switch to\n  // showing the fallback children in place of the \"primary\" children.\n  // However, we don't want to delete the primary children because then their\n  // state will be lost (both the React state and the host state, e.g.\n  // uncontrolled form inputs). Instead we keep them mounted and hide them.\n  // Both the fallback children AND the primary children are rendered at the\n  // same time. Once the primary children are un-suspended, we can delete\n  // the fallback children — don't need to preserve their state.\n  //\n  // The two sets of children are siblings in the host environment, but\n  // semantically, for purposes of reconciliation, they are two separate sets.\n  // So we store them using two fragment fibers.\n  //\n  // However, we want to avoid allocating extra fibers for every placeholder.\n  // They're only necessary when the children time out, because that's the\n  // only time when both sets are mounted.\n  //\n  // So, the extra fragment fibers are only used if the children time out.\n  // Otherwise, we render the primary children directly. This requires some\n  // custom reconciliation logic to preserve the state of the primary\n  // children. It's essentially a very basic form of re-parenting.\n\n  // `child` points to the child fiber. In the normal case, this is the first\n  // fiber of the primary children set. In the timed-out case, it's a\n  // a fragment fiber containing the primary children.\n  var child = void 0;\n  // `next` points to the next fiber React should render. In the normal case,\n  // it's the same as `child`: the first fiber of the primary children set.\n  // In the timed-out case, it's a fragment fiber containing the *fallback*\n  // children -- we skip over the primary children entirely.\n  var next = void 0;\n  if (current$$1 === null) {\n    if (enableSuspenseServerRenderer) {\n      // If we're currently hydrating, try to hydrate this boundary.\n      // But only if this has a fallback.\n      if (nextProps.fallback !== undefined) {\n        tryToClaimNextHydratableInstance(workInProgress);\n        // This could've changed the tag if this was a dehydrated suspense component.\n        if (workInProgress.tag === DehydratedSuspenseComponent) {\n          popSuspenseContext(workInProgress);\n          return updateDehydratedSuspenseComponent(null, workInProgress, renderExpirationTime);\n        }\n      }\n    }\n\n    // This is the initial mount. This branch is pretty simple because there's\n    // no previous state that needs to be preserved.\n    if (nextDidTimeout) {\n      // Mount separate fragments for primary and fallback children.\n      var nextFallbackChildren = nextProps.fallback;\n      var primaryChildFragment = createFiberFromFragment(null, mode, NoWork, null);\n      primaryChildFragment.return = workInProgress;\n\n      if ((workInProgress.mode & BatchedMode) === NoMode) {\n        // Outside of batched mode, we commit the effects from the\n        var progressedState = workInProgress.memoizedState;\n        var progressedPrimaryChild = progressedState !== null ? workInProgress.child.child : workInProgress.child;\n        primaryChildFragment.child = progressedPrimaryChild;\n        var progressedChild = progressedPrimaryChild;\n        while (progressedChild !== null) {\n          progressedChild.return = primaryChildFragment;\n          progressedChild = progressedChild.sibling;\n        }\n      }\n\n      var fallbackChildFragment = createFiberFromFragment(nextFallbackChildren, mode, renderExpirationTime, null);\n      fallbackChildFragment.return = workInProgress;\n      primaryChildFragment.sibling = fallbackChildFragment;\n      child = primaryChildFragment;\n      // Skip the primary children, and continue working on the\n      // fallback children.\n      next = fallbackChildFragment;\n    } else {\n      // Mount the primary children without an intermediate fragment fiber.\n      var nextPrimaryChildren = nextProps.children;\n      child = next = mountChildFibers(workInProgress, null, nextPrimaryChildren, renderExpirationTime);\n    }\n  } else {\n    // This is an update. This branch is more complicated because we need to\n    // ensure the state of the primary children is preserved.\n    var prevState = current$$1.memoizedState;\n    var prevDidTimeout = prevState !== null;\n    if (prevDidTimeout) {\n      // The current tree already timed out. That means each child set is\n      var currentPrimaryChildFragment = current$$1.child;\n      var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n      if (nextDidTimeout) {\n        // Still timed out. Reuse the current primary children by cloning\n        // its fragment. We're going to skip over these entirely.\n        var _nextFallbackChildren = nextProps.fallback;\n        var _primaryChildFragment = createWorkInProgress(currentPrimaryChildFragment, currentPrimaryChildFragment.pendingProps, NoWork);\n        _primaryChildFragment.return = workInProgress;\n\n        if ((workInProgress.mode & BatchedMode) === NoMode) {\n          // Outside of batched mode, we commit the effects from the\n          var _progressedState = workInProgress.memoizedState;\n          var _progressedPrimaryChild = _progressedState !== null ? workInProgress.child.child : workInProgress.child;\n          if (_progressedPrimaryChild !== currentPrimaryChildFragment.child) {\n            _primaryChildFragment.child = _progressedPrimaryChild;\n            var _progressedChild = _progressedPrimaryChild;\n            while (_progressedChild !== null) {\n              _progressedChild.return = _primaryChildFragment;\n              _progressedChild = _progressedChild.sibling;\n            }\n          }\n        }\n\n        // Because primaryChildFragment is a new fiber that we're inserting as the\n        // parent of a new tree, we need to set its treeBaseDuration.\n        if (enableProfilerTimer && workInProgress.mode & ProfileMode) {\n          // treeBaseDuration is the sum of all the child tree base durations.\n          var treeBaseDuration = 0;\n          var hiddenChild = _primaryChildFragment.child;\n          while (hiddenChild !== null) {\n            treeBaseDuration += hiddenChild.treeBaseDuration;\n            hiddenChild = hiddenChild.sibling;\n          }\n          _primaryChildFragment.treeBaseDuration = treeBaseDuration;\n        }\n\n        // Clone the fallback child fragment, too. These we'll continue\n        // working on.\n        var _fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, _nextFallbackChildren, currentFallbackChildFragment.expirationTime);\n        _fallbackChildFragment.return = workInProgress;\n        _primaryChildFragment.sibling = _fallbackChildFragment;\n        child = _primaryChildFragment;\n        _primaryChildFragment.childExpirationTime = NoWork;\n        // Skip the primary children, and continue working on the\n        // fallback children.\n        next = _fallbackChildFragment;\n      } else {\n        // No longer suspended. Switch back to showing the primary children,\n        // and remove the intermediate fragment fiber.\n        var _nextPrimaryChildren = nextProps.children;\n        var currentPrimaryChild = currentPrimaryChildFragment.child;\n        var primaryChild = reconcileChildFibers(workInProgress, currentPrimaryChild, _nextPrimaryChildren, renderExpirationTime);\n\n        // If this render doesn't suspend, we need to delete the fallback\n        // children. Wait until the complete phase, after we've confirmed the\n        // fallback is no longer needed.\n        // TODO: Would it be better to store the fallback fragment on\n        // the stateNode?\n\n        // Continue rendering the children, like we normally do.\n        child = next = primaryChild;\n      }\n    } else {\n      // The current tree has not already timed out. That means the primary\n      // children are not wrapped in a fragment fiber.\n      var _currentPrimaryChild = current$$1.child;\n      if (nextDidTimeout) {\n        // Timed out. Wrap the children in a fragment fiber to keep them\n        // separate from the fallback children.\n        var _nextFallbackChildren2 = nextProps.fallback;\n        var _primaryChildFragment2 = createFiberFromFragment(\n        // It shouldn't matter what the pending props are because we aren't\n        // going to render this fragment.\n        null, mode, NoWork, null);\n        _primaryChildFragment2.return = workInProgress;\n        _primaryChildFragment2.child = _currentPrimaryChild;\n        if (_currentPrimaryChild !== null) {\n          _currentPrimaryChild.return = _primaryChildFragment2;\n        }\n\n        // Even though we're creating a new fiber, there are no new children,\n        // because we're reusing an already mounted tree. So we don't need to\n        // schedule a placement.\n        // primaryChildFragment.effectTag |= Placement;\n\n        if ((workInProgress.mode & BatchedMode) === NoMode) {\n          // Outside of batched mode, we commit the effects from the\n          var _progressedState2 = workInProgress.memoizedState;\n          var _progressedPrimaryChild2 = _progressedState2 !== null ? workInProgress.child.child : workInProgress.child;\n          _primaryChildFragment2.child = _progressedPrimaryChild2;\n          var _progressedChild2 = _progressedPrimaryChild2;\n          while (_progressedChild2 !== null) {\n            _progressedChild2.return = _primaryChildFragment2;\n            _progressedChild2 = _progressedChild2.sibling;\n          }\n        }\n\n        // Because primaryChildFragment is a new fiber that we're inserting as the\n        // parent of a new tree, we need to set its treeBaseDuration.\n        if (enableProfilerTimer && workInProgress.mode & ProfileMode) {\n          // treeBaseDuration is the sum of all the child tree base durations.\n          var _treeBaseDuration = 0;\n          var _hiddenChild = _primaryChildFragment2.child;\n          while (_hiddenChild !== null) {\n            _treeBaseDuration += _hiddenChild.treeBaseDuration;\n            _hiddenChild = _hiddenChild.sibling;\n          }\n          _primaryChildFragment2.treeBaseDuration = _treeBaseDuration;\n        }\n\n        // Create a fragment from the fallback children, too.\n        var _fallbackChildFragment2 = createFiberFromFragment(_nextFallbackChildren2, mode, renderExpirationTime, null);\n        _fallbackChildFragment2.return = workInProgress;\n        _primaryChildFragment2.sibling = _fallbackChildFragment2;\n        _fallbackChildFragment2.effectTag |= Placement;\n        child = _primaryChildFragment2;\n        _primaryChildFragment2.childExpirationTime = NoWork;\n        // Skip the primary children, and continue working on the\n        // fallback children.\n        next = _fallbackChildFragment2;\n      } else {\n        // Still haven't timed out.  Continue rendering the children, like we\n        // normally do.\n        var _nextPrimaryChildren2 = nextProps.children;\n        next = child = reconcileChildFibers(workInProgress, _currentPrimaryChild, _nextPrimaryChildren2, renderExpirationTime);\n      }\n    }\n    workInProgress.stateNode = current$$1.stateNode;\n  }\n\n  workInProgress.memoizedState = nextState;\n  workInProgress.child = child;\n  return next;\n}\n\nfunction retrySuspenseComponentWithoutHydrating(current$$1, workInProgress, renderExpirationTime) {\n  // Detach from the current dehydrated boundary.\n  current$$1.alternate = null;\n  workInProgress.alternate = null;\n\n  // Insert a deletion in the effect list.\n  var returnFiber = workInProgress.return;\n  (function () {\n    if (!(returnFiber !== null)) {\n      {\n        throw ReactError(Error('Suspense boundaries are never on the root. This is probably a bug in React.'));\n      }\n    }\n  })();\n  var last = returnFiber.lastEffect;\n  if (last !== null) {\n    last.nextEffect = current$$1;\n    returnFiber.lastEffect = current$$1;\n  } else {\n    returnFiber.firstEffect = returnFiber.lastEffect = current$$1;\n  }\n  current$$1.nextEffect = null;\n  current$$1.effectTag = Deletion;\n\n  popSuspenseContext(workInProgress);\n\n  // Upgrade this work in progress to a real Suspense component.\n  workInProgress.tag = SuspenseComponent;\n  workInProgress.stateNode = null;\n  workInProgress.memoizedState = null;\n  // This is now an insertion.\n  workInProgress.effectTag |= Placement;\n  // Retry as a real Suspense component.\n  return updateSuspenseComponent(null, workInProgress, renderExpirationTime);\n}\n\nfunction updateDehydratedSuspenseComponent(current$$1, workInProgress, renderExpirationTime) {\n  pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n  var suspenseInstance = workInProgress.stateNode;\n  if (current$$1 === null) {\n    // During the first pass, we'll bail out and not drill into the children.\n    // Instead, we'll leave the content in place and try to hydrate it later.\n    if (isSuspenseInstanceFallback(suspenseInstance)) {\n      // This is a client-only boundary. Since we won't get any content from the server\n      // for this, we need to schedule that at a higher priority based on when it would\n      // have timed out. In theory we could render it in this pass but it would have the\n      // wrong priority associated with it and will prevent hydration of parent path.\n      // Instead, we'll leave work left on it to render it in a separate commit.\n\n      // TODO This time should be the time at which the server rendered response that is\n      // a parent to this boundary was displayed. However, since we currently don't have\n      // a protocol to transfer that time, we'll just estimate it by using the current\n      // time. This will mean that Suspense timeouts are slightly shifted to later than\n      // they should be.\n      var serverDisplayTime = requestCurrentTime();\n      // Schedule a normal pri update to render this content.\n      workInProgress.expirationTime = computeAsyncExpiration(serverDisplayTime);\n    } else {\n      // We'll continue hydrating the rest at offscreen priority since we'll already\n      // be showing the right content coming from the server, it is no rush.\n      workInProgress.expirationTime = Never;\n    }\n    return null;\n  }\n  if ((workInProgress.effectTag & DidCapture) !== NoEffect) {\n    // Something suspended. Leave the existing children in place.\n    // TODO: In non-concurrent mode, should we commit the nodes we have hydrated so far?\n    workInProgress.child = null;\n    return null;\n  }\n  if (isSuspenseInstanceFallback(suspenseInstance)) {\n    // This boundary is in a permanent fallback state. In this case, we'll never\n    // get an update and we'll never be able to hydrate the final content. Let's just try the\n    // client side render instead.\n    return retrySuspenseComponentWithoutHydrating(current$$1, workInProgress, renderExpirationTime);\n  }\n  // We use childExpirationTime to indicate that a child might depend on context, so if\n  // any context has changed, we need to treat is as if the input might have changed.\n  var hasContextChanged$$1 = current$$1.childExpirationTime >= renderExpirationTime;\n  if (didReceiveUpdate || hasContextChanged$$1) {\n    // This boundary has changed since the first render. This means that we are now unable to\n    // hydrate it. We might still be able to hydrate it using an earlier expiration time but\n    // during this render we can't. Instead, we're going to delete the whole subtree and\n    // instead inject a new real Suspense boundary to take its place, which may render content\n    // or fallback. The real Suspense boundary will suspend for a while so we have some time\n    // to ensure it can produce real content, but all state and pending events will be lost.\n    return retrySuspenseComponentWithoutHydrating(current$$1, workInProgress, renderExpirationTime);\n  } else if (isSuspenseInstancePending(suspenseInstance)) {\n    // This component is still pending more data from the server, so we can't hydrate its\n    // content. We treat it as if this component suspended itself. It might seem as if\n    // we could just try to render it client-side instead. However, this will perform a\n    // lot of unnecessary work and is unlikely to complete since it often will suspend\n    // on missing data anyway. Additionally, the server might be able to render more\n    // than we can on the client yet. In that case we'd end up with more fallback states\n    // on the client than if we just leave it alone. If the server times out or errors\n    // these should update this boundary to the permanent Fallback state instead.\n    // Mark it as having captured (i.e. suspended).\n    workInProgress.effectTag |= DidCapture;\n    // Leave the children in place. I.e. empty.\n    workInProgress.child = null;\n    // Register a callback to retry this boundary once the server has sent the result.\n    registerSuspenseInstanceRetry(suspenseInstance, retryTimedOutBoundary.bind(null, current$$1));\n    return null;\n  } else {\n    // This is the first attempt.\n    reenterHydrationStateFromDehydratedSuspenseInstance(workInProgress);\n    var nextProps = workInProgress.pendingProps;\n    var nextChildren = nextProps.children;\n    workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n    return workInProgress.child;\n  }\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderExpirationTime) {\n  // Mark any Suspense boundaries with fallbacks as having work to do.\n  // If they were previously forced into fallbacks, they may now be able\n  // to unblock.\n  var node = firstChild;\n  while (node !== null) {\n    if (node.tag === SuspenseComponent) {\n      var state = node.memoizedState;\n      if (state !== null) {\n        if (node.expirationTime < renderExpirationTime) {\n          node.expirationTime = renderExpirationTime;\n        }\n        var alternate = node.alternate;\n        if (alternate !== null && alternate.expirationTime < renderExpirationTime) {\n          alternate.expirationTime = renderExpirationTime;\n        }\n        scheduleWorkOnParentPath(node.return, renderExpirationTime);\n      }\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === workInProgress) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === workInProgress) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction findLastContentRow(firstChild) {\n  // This is going to find the last row among these children that is already\n  // showing content on the screen, as opposed to being in fallback state or\n  // new. If a row has multiple Suspense boundaries, any of them being in the\n  // fallback state, counts as the whole row being in a fallback state.\n  // Note that the \"rows\" will be workInProgress, but any nested children\n  // will still be current since we haven't rendered them yet. The mounted\n  // order may not be the same as the new order. We use the new order.\n  var row = firstChild;\n  var lastContentRow = null;\n  while (row !== null) {\n    var currentRow = row.alternate;\n    // New rows can't be content rows.\n    if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n      lastContentRow = row;\n    }\n    row = row.sibling;\n  }\n  return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n  {\n    if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n      didWarnAboutRevealOrder[revealOrder] = true;\n      if (typeof revealOrder === 'string') {\n        switch (revealOrder.toLowerCase()) {\n          case 'together':\n          case 'forwards':\n          case 'backwards':\n            {\n              warning$1(false, '\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n              break;\n            }\n          case 'forward':\n          case 'backward':\n            {\n              warning$1(false, '\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n              break;\n            }\n          default:\n            warning$1(false, '\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n            break;\n        }\n      } else {\n        warning$1(false, '%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n      }\n    }\n  }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n  {\n    if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n      if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n        didWarnAboutTailOptions[tailMode] = true;\n        warning$1(false, '\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n      } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n        didWarnAboutTailOptions[tailMode] = true;\n        warning$1(false, '<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n      }\n    }\n  }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n  {\n    var isArray = Array.isArray(childSlot);\n    var isIterable = !isArray && typeof getIteratorFn(childSlot) === 'function';\n    if (isArray || isIterable) {\n      var type = isArray ? 'array' : 'iterable';\n      warning$1(false, 'A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n  {\n    if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n      if (Array.isArray(children)) {\n        for (var i = 0; i < children.length; i++) {\n          if (!validateSuspenseListNestedChild(children[i], i)) {\n            return;\n          }\n        }\n      } else {\n        var iteratorFn = getIteratorFn(children);\n        if (typeof iteratorFn === 'function') {\n          var childrenIterator = iteratorFn.call(children);\n          if (childrenIterator) {\n            var step = childrenIterator.next();\n            var _i = 0;\n            for (; !step.done; step = childrenIterator.next()) {\n              if (!validateSuspenseListNestedChild(step.value, _i)) {\n                return;\n              }\n              _i++;\n            }\n          }\n        } else {\n          warning$1(false, 'A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n        }\n      }\n    }\n  }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode) {\n  var renderState = workInProgress.memoizedState;\n  if (renderState === null) {\n    workInProgress.memoizedState = {\n      isBackwards: isBackwards,\n      rendering: null,\n      last: lastContentRow,\n      tail: tail,\n      tailExpiration: 0,\n      tailMode: tailMode\n    };\n  } else {\n    // We can reuse the existing object from previous renders.\n    renderState.isBackwards = isBackwards;\n    renderState.rendering = null;\n    renderState.last = lastContentRow;\n    renderState.tail = tail;\n    renderState.tailExpiration = 0;\n    renderState.tailMode = tailMode;\n  }\n}\n\n// This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\nfunction updateSuspenseListComponent(current$$1, workInProgress, renderExpirationTime) {\n  var nextProps = workInProgress.pendingProps;\n  var revealOrder = nextProps.revealOrder;\n  var tailMode = nextProps.tail;\n  var newChildren = nextProps.children;\n\n  validateRevealOrder(revealOrder);\n  validateTailOptions(tailMode, revealOrder);\n  validateSuspenseListChildren(newChildren, revealOrder);\n\n  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);\n\n  var suspenseContext = suspenseStackCursor.current;\n\n  var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n  if (shouldForceFallback) {\n    suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n    workInProgress.effectTag |= DidCapture;\n  } else {\n    var didSuspendBefore = current$$1 !== null && (current$$1.effectTag & DidCapture) !== NoEffect;\n    if (didSuspendBefore) {\n      // If we previously forced a fallback, we need to schedule work\n      // on any nested boundaries to let them know to try to render\n      // again. This is the same as context updating.\n      propagateSuspenseContextChange(workInProgress, workInProgress.child, renderExpirationTime);\n    }\n    suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n  }\n  pushSuspenseContext(workInProgress, suspenseContext);\n\n  if ((workInProgress.mode & BatchedMode) === NoMode) {\n    // Outside of batched mode, SuspenseList doesn't work so we just\n    // use make it a noop by treating it as the default revealOrder.\n    workInProgress.memoizedState = null;\n  } else {\n    switch (revealOrder) {\n      case 'forwards':\n        {\n          var lastContentRow = findLastContentRow(workInProgress.child);\n          var tail = void 0;\n          if (lastContentRow === null) {\n            // The whole list is part of the tail.\n            // TODO: We could fast path by just rendering the tail now.\n            tail = workInProgress.child;\n            workInProgress.child = null;\n          } else {\n            // Disconnect the tail rows after the content row.\n            // We're going to render them separately later.\n            tail = lastContentRow.sibling;\n            lastContentRow.sibling = null;\n          }\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          tail, lastContentRow, tailMode);\n          break;\n        }\n      case 'backwards':\n        {\n          // We're going to find the first row that has existing content.\n          // At the same time we're going to reverse the list of everything\n          // we pass in the meantime. That's going to be our tail in reverse\n          // order.\n          var _tail = null;\n          var row = workInProgress.child;\n          workInProgress.child = null;\n          while (row !== null) {\n            var currentRow = row.alternate;\n            // New rows can't be content rows.\n            if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n              // This is the beginning of the main content.\n              workInProgress.child = row;\n              break;\n            }\n            var nextRow = row.sibling;\n            row.sibling = _tail;\n            _tail = row;\n            row = nextRow;\n          }\n          // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n          initSuspenseListRenderState(workInProgress, true, // isBackwards\n          _tail, null, // last\n          tailMode);\n          break;\n        }\n      case 'together':\n        {\n          initSuspenseListRenderState(workInProgress, false, // isBackwards\n          null, // tail\n          null, // last\n          undefined);\n          break;\n        }\n      default:\n        {\n          // The default reveal order is the same as not having\n          // a boundary.\n          workInProgress.memoizedState = null;\n        }\n    }\n  }\n  return workInProgress.child;\n}\n\nfunction updatePortalComponent(current$$1, workInProgress, renderExpirationTime) {\n  pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n  var nextChildren = workInProgress.pendingProps;\n  if (current$$1 === null) {\n    // Portals are special because we don't append the children during mount\n    // but at commit. Therefore we need to track insertions which the normal\n    // flow doesn't do during mount. This doesn't happen at the root because\n    // the root always starts with a \"current\" with a null child.\n    // TODO: Consider unifying this with how the root works.\n    workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderExpirationTime);\n  } else {\n    reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  }\n  return workInProgress.child;\n}\n\nfunction updateContextProvider(current$$1, workInProgress, renderExpirationTime) {\n  var providerType = workInProgress.type;\n  var context = providerType._context;\n\n  var newProps = workInProgress.pendingProps;\n  var oldProps = workInProgress.memoizedProps;\n\n  var newValue = newProps.value;\n\n  {\n    var providerPropTypes = workInProgress.type.propTypes;\n\n    if (providerPropTypes) {\n      checkPropTypes_1(providerPropTypes, newProps, 'prop', 'Context.Provider', getCurrentFiberStackInDev);\n    }\n  }\n\n  pushProvider(workInProgress, newValue);\n\n  if (oldProps !== null) {\n    var oldValue = oldProps.value;\n    var changedBits = calculateChangedBits(context, newValue, oldValue);\n    if (changedBits === 0) {\n      // No change. Bailout early if children are the same.\n      if (oldProps.children === newProps.children && !hasContextChanged()) {\n        return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n      }\n    } else {\n      // The context value changed. Search for matching consumers and schedule\n      // them to update.\n      propagateContextChange(workInProgress, context, changedBits, renderExpirationTime);\n    }\n  }\n\n  var newChildren = newProps.children;\n  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current$$1, workInProgress, renderExpirationTime) {\n  var context = workInProgress.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 (context._context === undefined) {\n      // This may be because it's a Context (rather than a Consumer).\n      // Or it may be because it's older React where they're the same thing.\n      // We only want to warn if we're sure it's a new React.\n      if (context !== context.Consumer) {\n        if (!hasWarnedAboutUsingContextAsConsumer) {\n          hasWarnedAboutUsingContextAsConsumer = true;\n          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      context = context._context;\n    }\n  }\n  var newProps = workInProgress.pendingProps;\n  var render = newProps.children;\n\n  {\n    !(typeof render === 'function') ? warningWithoutStack$1(false, 'A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.') : void 0;\n  }\n\n  prepareToReadContext(workInProgress, renderExpirationTime);\n  var newValue = readContext(context, newProps.unstable_observedBits);\n  var newChildren = void 0;\n  {\n    ReactCurrentOwner$3.current = workInProgress;\n    setCurrentPhase('render');\n    newChildren = render(newValue);\n    setCurrentPhase(null);\n  }\n\n  // React DevTools reads this flag.\n  workInProgress.effectTag |= PerformedWork;\n  reconcileChildren(current$$1, workInProgress, newChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction updateFundamentalComponent$1(current$$1, workInProgress, renderExpirationTime) {\n  var fundamentalImpl = workInProgress.type.impl;\n  if (fundamentalImpl.reconcileChildren === false) {\n    return null;\n  }\n  var nextProps = workInProgress.pendingProps;\n  var nextChildren = nextProps.children;\n\n  reconcileChildren(current$$1, workInProgress, nextChildren, renderExpirationTime);\n  return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n  didReceiveUpdate = true;\n}\n\nfunction bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime) {\n  cancelWorkTimer(workInProgress);\n\n  if (current$$1 !== null) {\n    // Reuse previous dependencies\n    workInProgress.dependencies = current$$1.dependencies;\n  }\n\n  if (enableProfilerTimer) {\n    // Don't update \"base\" render times for bailouts.\n    stopProfilerTimerIfRunning(workInProgress);\n  }\n\n  // Check if the children have any pending work.\n  var childExpirationTime = workInProgress.childExpirationTime;\n  if (childExpirationTime < renderExpirationTime) {\n    // The children don't have any work either. We can skip them.\n    // TODO: Once we add back resuming, we should check if the children are\n    // a work-in-progress set. If so, we need to transfer their effects.\n    return null;\n  } else {\n    // This fiber doesn't have work, but its subtree does. Clone the child\n    // fibers and continue.\n    cloneChildFibers(current$$1, workInProgress);\n    return workInProgress.child;\n  }\n}\n\nfunction remountFiber(current$$1, oldWorkInProgress, newWorkInProgress) {\n  {\n    var returnFiber = oldWorkInProgress.return;\n    if (returnFiber === null) {\n      throw new Error('Cannot swap the root fiber.');\n    }\n\n    // Disconnect from the old current.\n    // It will get deleted.\n    current$$1.alternate = null;\n    oldWorkInProgress.alternate = null;\n\n    // Connect to the new tree.\n    newWorkInProgress.index = oldWorkInProgress.index;\n    newWorkInProgress.sibling = oldWorkInProgress.sibling;\n    newWorkInProgress.return = oldWorkInProgress.return;\n    newWorkInProgress.ref = oldWorkInProgress.ref;\n\n    // Replace the child/sibling pointers above it.\n    if (oldWorkInProgress === returnFiber.child) {\n      returnFiber.child = newWorkInProgress;\n    } else {\n      var prevSibling = returnFiber.child;\n      if (prevSibling === null) {\n        throw new Error('Expected parent to have a child.');\n      }\n      while (prevSibling.sibling !== oldWorkInProgress) {\n        prevSibling = prevSibling.sibling;\n        if (prevSibling === null) {\n          throw new Error('Expected to find the previous sibling.');\n        }\n      }\n      prevSibling.sibling = newWorkInProgress;\n    }\n\n    // Delete the old fiber and place the new one.\n    // Since the old fiber is disconnected, we have to schedule it manually.\n    var last = returnFiber.lastEffect;\n    if (last !== null) {\n      last.nextEffect = current$$1;\n      returnFiber.lastEffect = current$$1;\n    } else {\n      returnFiber.firstEffect = returnFiber.lastEffect = current$$1;\n    }\n    current$$1.nextEffect = null;\n    current$$1.effectTag = Deletion;\n\n    newWorkInProgress.effectTag |= Placement;\n\n    // Restart work from the new fiber.\n    return newWorkInProgress;\n  }\n}\n\nfunction beginWork$1(current$$1, workInProgress, renderExpirationTime) {\n  var updateExpirationTime = workInProgress.expirationTime;\n\n  {\n    if (workInProgress._debugNeedsRemount && current$$1 !== null) {\n      // This will restart the begin phase with a new fiber.\n      return remountFiber(current$$1, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.expirationTime));\n    }\n  }\n\n  if (current$$1 !== null) {\n    var oldProps = current$$1.memoizedProps;\n    var newProps = workInProgress.pendingProps;\n\n    if (oldProps !== newProps || hasContextChanged() || (\n    // Force a re-render if the implementation changed due to hot reload:\n    workInProgress.type !== current$$1.type)) {\n      // If props or context changed, mark the fiber as having performed work.\n      // This may be unset if the props are determined to be equal later (memo).\n      didReceiveUpdate = true;\n    } else if (updateExpirationTime < renderExpirationTime) {\n      didReceiveUpdate = false;\n      // This fiber does not have any pending work. Bailout without entering\n      // the begin phase. There's still some bookkeeping we that needs to be done\n      // in this optimized path, mostly pushing stuff onto the stack.\n      switch (workInProgress.tag) {\n        case HostRoot:\n          pushHostRootContext(workInProgress);\n          resetHydrationState();\n          break;\n        case HostComponent:\n          pushHostContext(workInProgress);\n          if (workInProgress.mode & ConcurrentMode && renderExpirationTime !== Never && shouldDeprioritizeSubtree(workInProgress.type, newProps)) {\n            if (enableSchedulerTracing) {\n              markSpawnedWork(Never);\n            }\n            // Schedule this fiber to re-render at offscreen priority. Then bailout.\n            workInProgress.expirationTime = workInProgress.childExpirationTime = Never;\n            return null;\n          }\n          break;\n        case ClassComponent:\n          {\n            var Component = workInProgress.type;\n            if (isContextProvider(Component)) {\n              pushContextProvider(workInProgress);\n            }\n            break;\n          }\n        case HostPortal:\n          pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n          break;\n        case ContextProvider:\n          {\n            var newValue = workInProgress.memoizedProps.value;\n            pushProvider(workInProgress, newValue);\n            break;\n          }\n        case Profiler:\n          if (enableProfilerTimer) {\n            workInProgress.effectTag |= Update;\n          }\n          break;\n        case SuspenseComponent:\n          {\n            var state = workInProgress.memoizedState;\n            var didTimeout = state !== null;\n            if (didTimeout) {\n              // If this boundary is currently timed out, we need to decide\n              // whether to retry the primary children, or to skip over it and\n              // go straight to the fallback. Check the priority of the primary\n              var primaryChildFragment = workInProgress.child;\n              var primaryChildExpirationTime = primaryChildFragment.childExpirationTime;\n              if (primaryChildExpirationTime !== NoWork && primaryChildExpirationTime >= renderExpirationTime) {\n                // The primary children have pending work. Use the normal path\n                // to attempt to render the primary children again.\n                return updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime);\n              } else {\n                pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n                // The primary children do not have pending work with sufficient\n                // priority. Bailout.\n                var child = bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n                if (child !== null) {\n                  // The fallback children have pending work. Skip over the\n                  // primary children and work on the fallback.\n                  return child.sibling;\n                } else {\n                  return null;\n                }\n              }\n            } else {\n              pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n            }\n            break;\n          }\n        case DehydratedSuspenseComponent:\n          {\n            if (enableSuspenseServerRenderer) {\n              pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n              // We know that this component will suspend again because if it has\n              // been unsuspended it has committed as a regular Suspense component.\n              // If it needs to be retried, it should have work scheduled on it.\n              workInProgress.effectTag |= DidCapture;\n            }\n            break;\n          }\n        case SuspenseListComponent:\n          {\n            var didSuspendBefore = (current$$1.effectTag & DidCapture) !== NoEffect;\n\n            var hasChildWork = workInProgress.childExpirationTime >= renderExpirationTime;\n\n            if (didSuspendBefore) {\n              if (hasChildWork) {\n                // If something was in fallback state last time, and we have all the\n                // same children then we're still in progressive loading state.\n                // Something might get unblocked by state updates or retries in the\n                // tree which will affect the tail. So we need to use the normal\n                // path to compute the correct tail.\n                return updateSuspenseListComponent(current$$1, workInProgress, renderExpirationTime);\n              }\n              // If none of the children had any work, that means that none of\n              // them got retried so they'll still be blocked in the same way\n              // as before. We can fast bail out.\n              workInProgress.effectTag |= DidCapture;\n            }\n\n            // If nothing suspended before and we're rendering the same children,\n            // then the tail doesn't matter. Anything new that suspends will work\n            // in the \"together\" mode, so we can continue from the state we had.\n            var renderState = workInProgress.memoizedState;\n            if (renderState !== null) {\n              // Reset to the \"together\" mode in case we've started a different\n              // update in the past but didn't complete it.\n              renderState.rendering = null;\n              renderState.tail = null;\n            }\n            pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n            if (hasChildWork) {\n              break;\n            } else {\n              // If none of the children had any work, that means that none of\n              // them got retried so they'll still be blocked in the same way\n              // as before. We can fast bail out.\n              return null;\n            }\n          }\n      }\n      return bailoutOnAlreadyFinishedWork(current$$1, workInProgress, renderExpirationTime);\n    }\n  } else {\n    didReceiveUpdate = false;\n  }\n\n  // Before entering the begin phase, clear the expiration time.\n  workInProgress.expirationTime = NoWork;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n      {\n        return mountIndeterminateComponent(current$$1, workInProgress, workInProgress.type, renderExpirationTime);\n      }\n    case LazyComponent:\n      {\n        var elementType = workInProgress.elementType;\n        return mountLazyComponent(current$$1, workInProgress, elementType, updateExpirationTime, renderExpirationTime);\n      }\n    case FunctionComponent:\n      {\n        var _Component = workInProgress.type;\n        var unresolvedProps = workInProgress.pendingProps;\n        var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);\n        return updateFunctionComponent(current$$1, workInProgress, _Component, resolvedProps, renderExpirationTime);\n      }\n    case ClassComponent:\n      {\n        var _Component2 = workInProgress.type;\n        var _unresolvedProps = workInProgress.pendingProps;\n        var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);\n        return updateClassComponent(current$$1, workInProgress, _Component2, _resolvedProps, renderExpirationTime);\n      }\n    case HostRoot:\n      return updateHostRoot(current$$1, workInProgress, renderExpirationTime);\n    case HostComponent:\n      return updateHostComponent(current$$1, workInProgress, renderExpirationTime);\n    case HostText:\n      return updateHostText(current$$1, workInProgress);\n    case SuspenseComponent:\n      return updateSuspenseComponent(current$$1, workInProgress, renderExpirationTime);\n    case HostPortal:\n      return updatePortalComponent(current$$1, workInProgress, renderExpirationTime);\n    case ForwardRef:\n      {\n        var type = workInProgress.type;\n        var _unresolvedProps2 = workInProgress.pendingProps;\n        var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n        return updateForwardRef(current$$1, workInProgress, type, _resolvedProps2, renderExpirationTime);\n      }\n    case Fragment:\n      return updateFragment(current$$1, workInProgress, renderExpirationTime);\n    case Mode:\n      return updateMode(current$$1, workInProgress, renderExpirationTime);\n    case Profiler:\n      return updateProfiler(current$$1, workInProgress, renderExpirationTime);\n    case ContextProvider:\n      return updateContextProvider(current$$1, workInProgress, renderExpirationTime);\n    case ContextConsumer:\n      return updateContextConsumer(current$$1, workInProgress, renderExpirationTime);\n    case MemoComponent:\n      {\n        var _type2 = workInProgress.type;\n        var _unresolvedProps3 = workInProgress.pendingProps;\n        // Resolve outer props first, then resolve inner props.\n        var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n        {\n          if (workInProgress.type !== workInProgress.elementType) {\n            var outerPropTypes = _type2.propTypes;\n            if (outerPropTypes) {\n              checkPropTypes_1(outerPropTypes, _resolvedProps3, // Resolved for outer only\n              'prop', getComponentName(_type2), getCurrentFiberStackInDev);\n            }\n          }\n        }\n        _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n        return updateMemoComponent(current$$1, workInProgress, _type2, _resolvedProps3, updateExpirationTime, renderExpirationTime);\n      }\n    case SimpleMemoComponent:\n      {\n        return updateSimpleMemoComponent(current$$1, workInProgress, workInProgress.type, workInProgress.pendingProps, updateExpirationTime, renderExpirationTime);\n      }\n    case IncompleteClassComponent:\n      {\n        var _Component3 = workInProgress.type;\n        var _unresolvedProps4 = workInProgress.pendingProps;\n        var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);\n        return mountIncompleteClassComponent(current$$1, workInProgress, _Component3, _resolvedProps4, renderExpirationTime);\n      }\n    case DehydratedSuspenseComponent:\n      {\n        if (enableSuspenseServerRenderer) {\n          return updateDehydratedSuspenseComponent(current$$1, workInProgress, renderExpirationTime);\n        }\n        break;\n      }\n    case SuspenseListComponent:\n      {\n        return updateSuspenseListComponent(current$$1, workInProgress, renderExpirationTime);\n      }\n    case FundamentalComponent:\n      {\n        if (enableFundamentalAPI) {\n          return updateFundamentalComponent$1(current$$1, workInProgress, renderExpirationTime);\n        }\n        break;\n      }\n  }\n  (function () {\n    {\n      {\n        throw ReactError(Error('Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n}\n\nfunction createFundamentalStateInstance(currentFiber, props, impl, state) {\n  return {\n    currentFiber: currentFiber,\n    impl: impl,\n    instance: null,\n    prevProps: null,\n    props: props,\n    state: state\n  };\n}\n\nvar emptyObject = {};\nvar isArray$2 = Array.isArray;\n\nfunction markUpdate(workInProgress) {\n  // Tag the fiber with an update effect. This turns a Placement into\n  // a PlacementAndUpdate.\n  workInProgress.effectTag |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n  workInProgress.effectTag |= Ref;\n}\n\nvar appendAllChildren = void 0;\nvar updateHostContainer = void 0;\nvar updateHostComponent$1 = void 0;\nvar updateHostText$1 = void 0;\nif (supportsMutation) {\n  // Mutation mode\n\n  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n    while (node !== null) {\n      if (node.tag === HostComponent || node.tag === HostText) {\n        appendInitialChild(parent, node.stateNode);\n      } else if (node.tag === FundamentalComponent) {\n        appendInitialChild(parent, node.stateNode.instance);\n      } else if (node.tag === HostPortal) {\n        // If we have a portal child, then we don't want to traverse\n        // down its children. Instead, we'll get insertions from each child in\n        // the portal directly.\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      if (node === workInProgress) {\n        return;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n\n  updateHostContainer = function (workInProgress) {\n    // Noop\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // If we have an alternate, that means this is an update and we need to\n    // schedule a side-effect to do the updates.\n    var oldProps = current.memoizedProps;\n    if (oldProps === newProps) {\n      // In mutation mode, this is sufficient for a bailout because\n      // we won't touch this node even if children changed.\n      return;\n    }\n\n    // If we get updated because one of our children updated, we don't\n    // have newProps so we'll have to reuse them.\n    // TODO: Split the update API as separate for the props vs. children.\n    // Even better would be if children weren't special cased at all tho.\n    var instance = workInProgress.stateNode;\n    var currentHostContext = getHostContext();\n    // TODO: Experiencing an error where oldProps is null. Suggests a host\n    // component is hitting the resume path. Figure out why. Possibly\n    // related to `hidden`.\n    var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext);\n    // TODO: Type this specific to this type of component.\n    workInProgress.updateQueue = updatePayload;\n    // If the update payload indicates that there is a change or if there\n    // is a new ref we mark this as an update. All the work is done in commitWork.\n    if (updatePayload) {\n      markUpdate(workInProgress);\n    }\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // If the text differs, mark it as an update. All the work in done in commitWork.\n    if (oldText !== newText) {\n      markUpdate(workInProgress);\n    }\n  };\n} else if (supportsPersistence) {\n  // Persistent host tree mode\n\n  appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n    while (node !== null) {\n      // eslint-disable-next-line no-labels\n      branches: if (node.tag === HostComponent) {\n        var instance = node.stateNode;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var props = node.memoizedProps;\n          var type = node.type;\n          instance = cloneHiddenInstance(instance, type, props, node);\n        }\n        appendInitialChild(parent, instance);\n      } else if (node.tag === HostText) {\n        var _instance = node.stateNode;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var text = node.memoizedProps;\n          _instance = cloneHiddenTextInstance(_instance, text, node);\n        }\n        appendInitialChild(parent, _instance);\n      } else if (enableFundamentalAPI && node.tag === FundamentalComponent) {\n        var _instance2 = node.stateNode.instance;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var _props = node.memoizedProps;\n          var _type = node.type;\n          _instance2 = cloneHiddenInstance(_instance2, _type, _props, node);\n        }\n        appendInitialChild(parent, _instance2);\n      } else if (node.tag === HostPortal) {\n        // If we have a portal child, then we don't want to traverse\n        // down its children. Instead, we'll get insertions from each child in\n        // the portal directly.\n      } else if (node.tag === SuspenseComponent) {\n        if ((node.effectTag & Update) !== NoEffect) {\n          // Need to toggle the visibility of the primary children.\n          var newIsHidden = node.memoizedState !== null;\n          if (newIsHidden) {\n            var primaryChildParent = node.child;\n            if (primaryChildParent !== null) {\n              if (primaryChildParent.child !== null) {\n                primaryChildParent.child.return = primaryChildParent;\n                appendAllChildren(parent, primaryChildParent, true, newIsHidden);\n              }\n              var fallbackChildParent = primaryChildParent.sibling;\n              if (fallbackChildParent !== null) {\n                fallbackChildParent.return = node;\n                node = fallbackChildParent;\n                continue;\n              }\n            }\n          }\n        }\n        if (node.child !== null) {\n          // Continue traversing like normal\n          node.child.return = node;\n          node = node.child;\n          continue;\n        }\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      // $FlowFixMe This is correct but Flow is confused by the labeled break.\n      node = node;\n      if (node === workInProgress) {\n        return;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n\n  // An unfortunate fork of appendAllChildren because we have two different parent types.\n  var appendAllChildrenToContainer = function (containerChildSet, workInProgress, needsVisibilityToggle, isHidden) {\n    // We only have the top Fiber that was created but we need recurse down its\n    // children to find all the terminal nodes.\n    var node = workInProgress.child;\n    while (node !== null) {\n      // eslint-disable-next-line no-labels\n      branches: if (node.tag === HostComponent) {\n        var instance = node.stateNode;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var props = node.memoizedProps;\n          var type = node.type;\n          instance = cloneHiddenInstance(instance, type, props, node);\n        }\n        appendChildToContainerChildSet(containerChildSet, instance);\n      } else if (node.tag === HostText) {\n        var _instance3 = node.stateNode;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var text = node.memoizedProps;\n          _instance3 = cloneHiddenTextInstance(_instance3, text, node);\n        }\n        appendChildToContainerChildSet(containerChildSet, _instance3);\n      } else if (enableFundamentalAPI && node.tag === FundamentalComponent) {\n        var _instance4 = node.stateNode.instance;\n        if (needsVisibilityToggle && isHidden) {\n          // This child is inside a timed out tree. Hide it.\n          var _props2 = node.memoizedProps;\n          var _type2 = node.type;\n          _instance4 = cloneHiddenInstance(_instance4, _type2, _props2, node);\n        }\n        appendChildToContainerChildSet(containerChildSet, _instance4);\n      } else if (node.tag === HostPortal) {\n        // If we have a portal child, then we don't want to traverse\n        // down its children. Instead, we'll get insertions from each child in\n        // the portal directly.\n      } else if (node.tag === SuspenseComponent) {\n        if ((node.effectTag & Update) !== NoEffect) {\n          // Need to toggle the visibility of the primary children.\n          var newIsHidden = node.memoizedState !== null;\n          if (newIsHidden) {\n            var primaryChildParent = node.child;\n            if (primaryChildParent !== null) {\n              if (primaryChildParent.child !== null) {\n                primaryChildParent.child.return = primaryChildParent;\n                appendAllChildrenToContainer(containerChildSet, primaryChildParent, true, newIsHidden);\n              }\n              var fallbackChildParent = primaryChildParent.sibling;\n              if (fallbackChildParent !== null) {\n                fallbackChildParent.return = node;\n                node = fallbackChildParent;\n                continue;\n              }\n            }\n          }\n        }\n        if (node.child !== null) {\n          // Continue traversing like normal\n          node.child.return = node;\n          node = node.child;\n          continue;\n        }\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      // $FlowFixMe This is correct but Flow is confused by the labeled break.\n      node = node;\n      if (node === workInProgress) {\n        return;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === workInProgress) {\n          return;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  };\n  updateHostContainer = function (workInProgress) {\n    var portalOrRoot = workInProgress.stateNode;\n    var childrenUnchanged = workInProgress.firstEffect === null;\n    if (childrenUnchanged) {\n      // No changes, just reuse the existing instance.\n    } else {\n      var container = portalOrRoot.containerInfo;\n      var newChildSet = createContainerChildSet(container);\n      // If children might have changed, we have to add them all to the set.\n      appendAllChildrenToContainer(newChildSet, workInProgress, false, false);\n      portalOrRoot.pendingChildren = newChildSet;\n      // Schedule an update on the container to swap out the container.\n      markUpdate(workInProgress);\n      finalizeContainerChildren(container, newChildSet);\n    }\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    var currentInstance = current.stateNode;\n    var oldProps = current.memoizedProps;\n    // If there are no effects associated with this node, then none of our children had any updates.\n    // This guarantees that we can reuse all of them.\n    var childrenUnchanged = workInProgress.firstEffect === null;\n    if (childrenUnchanged && oldProps === newProps) {\n      // No changes, just reuse the existing instance.\n      // Note that this might release a previous clone.\n      workInProgress.stateNode = currentInstance;\n      return;\n    }\n    var recyclableInstance = workInProgress.stateNode;\n    var currentHostContext = getHostContext();\n    var updatePayload = null;\n    if (oldProps !== newProps) {\n      updatePayload = prepareUpdate(recyclableInstance, type, oldProps, newProps, rootContainerInstance, currentHostContext);\n    }\n    if (childrenUnchanged && updatePayload === null) {\n      // No changes, just reuse the existing instance.\n      // Note that this might release a previous clone.\n      workInProgress.stateNode = currentInstance;\n      return;\n    }\n    var newInstance = cloneInstance(currentInstance, updatePayload, type, oldProps, newProps, workInProgress, childrenUnchanged, recyclableInstance);\n    if (finalizeInitialChildren(newInstance, type, newProps, rootContainerInstance, currentHostContext)) {\n      markUpdate(workInProgress);\n    }\n    workInProgress.stateNode = newInstance;\n    if (childrenUnchanged) {\n      // If there are no other effects in this tree, we need to flag this node as having one.\n      // Even though we're not going to use it for anything.\n      // Otherwise parents won't know that there are new children to propagate upwards.\n      markUpdate(workInProgress);\n    } else {\n      // If children might have changed, we have to add them all to the set.\n      appendAllChildren(newInstance, workInProgress, false, false);\n    }\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    if (oldText !== newText) {\n      // If the text content differs, we'll create a new text instance for it.\n      var rootContainerInstance = getRootHostContainer();\n      var currentHostContext = getHostContext();\n      workInProgress.stateNode = createTextInstance(newText, rootContainerInstance, currentHostContext, workInProgress);\n      // We'll have to mark it as having an effect, even though we won't use the effect for anything.\n      // This lets the parents know that at least one of their children has changed.\n      markUpdate(workInProgress);\n    }\n  };\n} else {\n  // No host operations\n  updateHostContainer = function (workInProgress) {\n    // Noop\n  };\n  updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n    // Noop\n  };\n  updateHostText$1 = function (current, workInProgress, oldText, newText) {\n    // Noop\n  };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n  switch (renderState.tailMode) {\n    case 'hidden':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var tailNode = renderState.tail;\n        var lastTailNode = null;\n        while (tailNode !== null) {\n          if (tailNode.alternate !== null) {\n            lastTailNode = tailNode;\n          }\n          tailNode = tailNode.sibling;\n        }\n        // Next we're simply going to delete all insertions after the\n        // last rendered item.\n        if (lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          renderState.tail = null;\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          lastTailNode.sibling = null;\n        }\n        break;\n      }\n    case 'collapsed':\n      {\n        // Any insertions at the end of the tail list after this point\n        // should be invisible. If there are already mounted boundaries\n        // anything before them are not considered for collapsing.\n        // Therefore we need to go through the whole tail to find if\n        // there are any.\n        var _tailNode = renderState.tail;\n        var _lastTailNode = null;\n        while (_tailNode !== null) {\n          if (_tailNode.alternate !== null) {\n            _lastTailNode = _tailNode;\n          }\n          _tailNode = _tailNode.sibling;\n        }\n        // Next we're simply going to delete all insertions after the\n        // last rendered item.\n        if (_lastTailNode === null) {\n          // All remaining items in the tail are insertions.\n          if (!hasRenderedATailFallback && renderState.tail !== null) {\n            // We suspended during the head. We want to show at least one\n            // row at the tail. So we'll keep on and cut off the rest.\n            renderState.tail.sibling = null;\n          } else {\n            renderState.tail = null;\n          }\n        } else {\n          // Detach the insertion after the last node that was already\n          // inserted.\n          _lastTailNode.sibling = null;\n        }\n        break;\n      }\n  }\n}\n\nfunction completeWork(current, workInProgress, renderExpirationTime) {\n  var newProps = workInProgress.pendingProps;\n\n  switch (workInProgress.tag) {\n    case IndeterminateComponent:\n      break;\n    case LazyComponent:\n      break;\n    case SimpleMemoComponent:\n    case FunctionComponent:\n      break;\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n        break;\n      }\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var fiberRoot = workInProgress.stateNode;\n        if (fiberRoot.pendingContext) {\n          fiberRoot.context = fiberRoot.pendingContext;\n          fiberRoot.pendingContext = null;\n        }\n        if (current === null || current.child === null) {\n          // If we hydrated, pop so that we can delete any remaining children\n          // that weren't hydrated.\n          popHydrationState(workInProgress);\n          // This resets the hacky state to fix isMounted before committing.\n          // TODO: Delete this when we delete isMounted and findDOMNode.\n          workInProgress.effectTag &= ~Placement;\n        }\n        updateHostContainer(workInProgress);\n        break;\n      }\n    case HostComponent:\n      {\n        popHostContext(workInProgress);\n        var rootContainerInstance = getRootHostContainer();\n        var type = workInProgress.type;\n        if (current !== null && workInProgress.stateNode != null) {\n          updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n          if (enableFlareAPI) {\n            var prevListeners = current.memoizedProps.listeners;\n            var nextListeners = newProps.listeners;\n            var instance = workInProgress.stateNode;\n            if (prevListeners !== nextListeners) {\n              updateEventListeners(nextListeners, instance, rootContainerInstance, workInProgress);\n            }\n          }\n\n          if (current.ref !== workInProgress.ref) {\n            markRef$1(workInProgress);\n          }\n        } else {\n          if (!newProps) {\n            (function () {\n              if (!(workInProgress.stateNode !== null)) {\n                {\n                  throw ReactError(Error('We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.'));\n                }\n              }\n            })();\n            // This can happen when we abort work.\n            break;\n          }\n\n          var currentHostContext = getHostContext();\n          // TODO: Move createInstance to beginWork and keep it on a context\n          // \"stack\" as the parent. Then append children as we go in beginWork\n          // or completeWork depending on we want to add then top->down or\n          // bottom->up. Top->down is faster in IE11.\n          var wasHydrated = popHydrationState(workInProgress);\n          if (wasHydrated) {\n            // TODO: Move this and createInstance step into the beginPhase\n            // to consolidate.\n            if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n              // If changes to the hydrated node needs to be applied at the\n              // commit-phase we mark this as such.\n              markUpdate(workInProgress);\n            }\n          } else {\n            var _instance5 = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n\n            appendAllChildren(_instance5, workInProgress, false, false);\n\n            if (enableFlareAPI) {\n              var listeners = newProps.listeners;\n              if (listeners != null) {\n                updateEventListeners(listeners, _instance5, rootContainerInstance, workInProgress);\n              }\n            }\n\n            // Certain renderers require commit-time effects for initial mount.\n            // (eg DOM renderer supports auto-focus for certain elements).\n            // Make sure such renderers get scheduled for later work.\n            if (finalizeInitialChildren(_instance5, type, newProps, rootContainerInstance, currentHostContext)) {\n              markUpdate(workInProgress);\n            }\n            workInProgress.stateNode = _instance5;\n          }\n\n          if (workInProgress.ref !== null) {\n            // If there is a ref on a host node we need to schedule a callback\n            markRef$1(workInProgress);\n          }\n        }\n        break;\n      }\n    case HostText:\n      {\n        var newText = newProps;\n        if (current && workInProgress.stateNode != null) {\n          var oldText = current.memoizedProps;\n          // If we have an alternate, that means this is an update and we need\n          // to schedule a side-effect to do the updates.\n          updateHostText$1(current, workInProgress, oldText, newText);\n        } else {\n          if (typeof newText !== 'string') {\n            (function () {\n              if (!(workInProgress.stateNode !== null)) {\n                {\n                  throw ReactError(Error('We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.'));\n                }\n              }\n            })();\n            // This can happen when we abort work.\n          }\n          var _rootContainerInstance = getRootHostContainer();\n          var _currentHostContext = getHostContext();\n          var _wasHydrated = popHydrationState(workInProgress);\n          if (_wasHydrated) {\n            if (prepareToHydrateHostTextInstance(workInProgress)) {\n              markUpdate(workInProgress);\n            }\n          } else {\n            workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n          }\n        }\n        break;\n      }\n    case ForwardRef:\n      break;\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var nextState = workInProgress.memoizedState;\n        if ((workInProgress.effectTag & DidCapture) !== NoEffect) {\n          // Something suspended. Re-render with the fallback children.\n          workInProgress.expirationTime = renderExpirationTime;\n          // Do not reset the effect list.\n          return workInProgress;\n        }\n\n        var nextDidTimeout = nextState !== null;\n        var prevDidTimeout = false;\n        if (current === null) {\n          // In cases where we didn't find a suitable hydration boundary we never\n          // downgraded this to a DehydratedSuspenseComponent, but we still need to\n          // pop the hydration state since we might be inside the insertion tree.\n          popHydrationState(workInProgress);\n        } else {\n          var prevState = current.memoizedState;\n          prevDidTimeout = prevState !== null;\n          if (!nextDidTimeout && prevState !== null) {\n            // We just switched from the fallback to the normal children.\n            // Delete the fallback.\n            // TODO: Would it be better to store the fallback fragment on\n            var currentFallbackChild = current.child.sibling;\n            if (currentFallbackChild !== null) {\n              // Deletions go at the beginning of the return fiber's effect list\n              var first = workInProgress.firstEffect;\n              if (first !== null) {\n                workInProgress.firstEffect = currentFallbackChild;\n                currentFallbackChild.nextEffect = first;\n              } else {\n                workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChild;\n                currentFallbackChild.nextEffect = null;\n              }\n              currentFallbackChild.effectTag = Deletion;\n            }\n          }\n        }\n\n        if (nextDidTimeout && !prevDidTimeout) {\n          // If this subtreee is running in batched mode we can suspend,\n          // otherwise we won't suspend.\n          // TODO: This will still suspend a synchronous tree if anything\n          // in the concurrent tree already suspended during this render.\n          // This is a known bug.\n          if ((workInProgress.mode & BatchedMode) !== NoMode) {\n            // TODO: Move this back to throwException because this is too late\n            // if this is a large tree which is common for initial loads. We\n            // don't know if we should restart a render or not until we get\n            // this marker, and this is too late.\n            // If this render already had a ping or lower pri updates,\n            // and this is the first time we know we're going to suspend we\n            // should be able to immediately restart from within throwException.\n            var hasInvisibleChildContext = current === null && workInProgress.memoizedProps.unstable_avoidThisFallback !== true;\n            if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n              // If this was in an invisible tree or a new render, then showing\n              // this boundary is ok.\n              renderDidSuspend();\n            } else {\n              // Otherwise, we're going to have to hide content so we should\n              // suspend for longer if possible.\n              renderDidSuspendDelayIfPossible();\n            }\n          }\n        }\n\n        if (supportsPersistence) {\n          // TODO: Only schedule updates if not prevDidTimeout.\n          if (nextDidTimeout) {\n            // If this boundary just timed out, schedule an effect to attach a\n            // retry listener to the proimse. This flag is also used to hide the\n            // primary children.\n            workInProgress.effectTag |= Update;\n          }\n        }\n        if (supportsMutation) {\n          // TODO: Only schedule updates if these values are non equal, i.e. it changed.\n          if (nextDidTimeout || prevDidTimeout) {\n            // If this boundary just timed out, schedule an effect to attach a\n            // retry listener to the proimse. This flag is also used to hide the\n            // primary children. In mutation mode, we also need the flag to\n            // *unhide* children that were previously hidden, so check if the\n            // is currently timed out, too.\n            workInProgress.effectTag |= Update;\n          }\n        }\n        if (enableSuspenseCallback && workInProgress.updateQueue !== null && workInProgress.memoizedProps.suspenseCallback != null) {\n          // Always notify the callback\n          workInProgress.effectTag |= Update;\n        }\n        break;\n      }\n    case Fragment:\n      break;\n    case Mode:\n      break;\n    case Profiler:\n      break;\n    case HostPortal:\n      popHostContainer(workInProgress);\n      updateHostContainer(workInProgress);\n      break;\n    case ContextProvider:\n      // Pop provider fiber\n      popProvider(workInProgress);\n      break;\n    case ContextConsumer:\n      break;\n    case MemoComponent:\n      break;\n    case IncompleteClassComponent:\n      {\n        // Same as class component case. I put it down here so that the tags are\n        // sequential to ensure this switch is compiled to a jump table.\n        var _Component = workInProgress.type;\n        if (isContextProvider(_Component)) {\n          popContext(workInProgress);\n        }\n        break;\n      }\n    case DehydratedSuspenseComponent:\n      {\n        if (enableSuspenseServerRenderer) {\n          popSuspenseContext(workInProgress);\n          if (current === null) {\n            var _wasHydrated2 = popHydrationState(workInProgress);\n            (function () {\n              if (!_wasHydrated2) {\n                {\n                  throw ReactError(Error('A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.'));\n                }\n              }\n            })();\n            if (enableSchedulerTracing) {\n              markSpawnedWork(Never);\n            }\n            skipPastDehydratedSuspenseInstance(workInProgress);\n          } else if ((workInProgress.effectTag & DidCapture) === NoEffect) {\n            // This boundary did not suspend so it's now hydrated.\n            // To handle any future suspense cases, we're going to now upgrade it\n            // to a Suspense component. We detach it from the existing current fiber.\n            current.alternate = null;\n            workInProgress.alternate = null;\n            workInProgress.tag = SuspenseComponent;\n            workInProgress.memoizedState = null;\n            workInProgress.stateNode = null;\n          }\n        }\n        break;\n      }\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress);\n\n        var renderState = workInProgress.memoizedState;\n\n        if (renderState === null) {\n          // We're running in the default, \"independent\" mode. We don't do anything\n          // in this mode.\n          break;\n        }\n\n        var didSuspendAlready = (workInProgress.effectTag & DidCapture) !== NoEffect;\n\n        var renderedTail = renderState.rendering;\n        if (renderedTail === null) {\n          // We just rendered the head.\n          if (!didSuspendAlready) {\n            // This is the first pass. We need to figure out if anything is still\n            // suspended in the rendered set.\n\n            // If new content unsuspended, but there's still some content that\n            // didn't. Then we need to do a second pass that forces everything\n            // to keep showing their fallbacks.\n\n            // We might be suspended if something in this render pass suspended, or\n            // something in the previous committed pass suspended. Otherwise,\n            // there's no chance so we can skip the expensive call to\n            // findFirstSuspended.\n            var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.effectTag & DidCapture) === NoEffect);\n            if (!cannotBeSuspended) {\n              var row = workInProgress.child;\n              while (row !== null) {\n                var suspended = findFirstSuspended(row);\n                if (suspended !== null) {\n                  didSuspendAlready = true;\n                  workInProgress.effectTag |= DidCapture;\n                  cutOffTailIfNeeded(renderState, false);\n\n                  // If this is a newly suspended tree, it might not get committed as\n                  // part of the second pass. In that case nothing will subscribe to\n                  // its thennables. Instead, we'll transfer its thennables to the\n                  // SuspenseList so that it can retry if they resolve.\n                  // There might be multiple of these in the list but since we're\n                  // going to wait for all of them anyway, it doesn't really matter\n                  // which ones gets to ping. In theory we could get clever and keep\n                  // track of how many dependencies remain but it gets tricky because\n                  // in the meantime, we can add/remove/change items and dependencies.\n                  // We might bail out of the loop before finding any but that\n                  // doesn't matter since that means that the other boundaries that\n                  // we did find already has their listeners attached.\n                  var newThennables = suspended.updateQueue;\n                  if (newThennables !== null) {\n                    workInProgress.updateQueue = newThennables;\n                    workInProgress.effectTag |= Update;\n                  }\n\n                  // Rerender the whole list, but this time, we'll force fallbacks\n                  // to stay in place.\n                  // Reset the effect list before doing the second pass since that's now invalid.\n                  workInProgress.firstEffect = workInProgress.lastEffect = null;\n                  // Reset the child fibers to their original state.\n                  resetChildFibers(workInProgress, renderExpirationTime);\n\n                  // Set up the Suspense Context to force suspense and immediately\n                  // rerender the children.\n                  pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback));\n                  return workInProgress.child;\n                }\n                row = row.sibling;\n              }\n            }\n          } else {\n            cutOffTailIfNeeded(renderState, false);\n          }\n          // Next we're going to render the tail.\n        } else {\n          // Append the rendered row to the child list.\n          if (!didSuspendAlready) {\n            var _suspended = findFirstSuspended(renderedTail);\n            if (_suspended !== null) {\n              workInProgress.effectTag |= DidCapture;\n              didSuspendAlready = true;\n              cutOffTailIfNeeded(renderState, true);\n              // This might have been modified.\n              if (renderState.tail === null && renderState.tailMode === 'hidden') {\n                // We need to delete the row we just rendered.\n                // Ensure we transfer the update queue to the parent.\n                var _newThennables = _suspended.updateQueue;\n                if (_newThennables !== null) {\n                  workInProgress.updateQueue = _newThennables;\n                  workInProgress.effectTag |= Update;\n                }\n                // Reset the effect list to what it w as before we rendered this\n                // child. The nested children have already appended themselves.\n                var lastEffect = workInProgress.lastEffect = renderState.lastEffect;\n                // Remove any effects that were appended after this point.\n                if (lastEffect !== null) {\n                  lastEffect.nextEffect = null;\n                }\n                // We're done.\n                return null;\n              }\n            } else if (now() > renderState.tailExpiration && renderExpirationTime > Never) {\n              // We have now passed our CPU deadline and we'll just give up further\n              // attempts to render the main content and only render fallbacks.\n              // The assumption is that this is usually faster.\n              workInProgress.effectTag |= DidCapture;\n              didSuspendAlready = true;\n\n              cutOffTailIfNeeded(renderState, false);\n\n              // Since nothing actually suspended, there will nothing to ping this\n              // to get it started back up to attempt the next item. If we can show\n              // them, then they really have the same priority as this render.\n              // So we'll pick it back up the very next render pass once we've had\n              // an opportunity to yield for paint.\n\n              var nextPriority = renderExpirationTime - 1;\n              workInProgress.expirationTime = workInProgress.childExpirationTime = nextPriority;\n              if (enableSchedulerTracing) {\n                markSpawnedWork(nextPriority);\n              }\n            }\n          }\n          if (renderState.isBackwards) {\n            // The effect list of the backwards tail will have been added\n            // to the end. This breaks the guarantee that life-cycles fire in\n            // sibling order but that isn't a strong guarantee promised by React.\n            // Especially since these might also just pop in during future commits.\n            // Append to the beginning of the list.\n            renderedTail.sibling = workInProgress.child;\n            workInProgress.child = renderedTail;\n          } else {\n            var previousSibling = renderState.last;\n            if (previousSibling !== null) {\n              previousSibling.sibling = renderedTail;\n            } else {\n              workInProgress.child = renderedTail;\n            }\n            renderState.last = renderedTail;\n          }\n        }\n\n        if (renderState.tail !== null) {\n          // We still have tail rows to render.\n          if (renderState.tailExpiration === 0) {\n            // Heuristic for how long we're willing to spend rendering rows\n            // until we just give up and show what we have so far.\n            var TAIL_EXPIRATION_TIMEOUT_MS = 500;\n            renderState.tailExpiration = now() + TAIL_EXPIRATION_TIMEOUT_MS;\n          }\n          // Pop a row.\n          var next = renderState.tail;\n          renderState.rendering = next;\n          renderState.tail = next.sibling;\n          renderState.lastEffect = workInProgress.lastEffect;\n          next.sibling = null;\n\n          // Restore the context.\n          // TODO: We can probably just avoid popping it instead and only\n          // setting it the first time we go from not suspended to suspended.\n          var suspenseContext = suspenseStackCursor.current;\n          if (didSuspendAlready) {\n            suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n          } else {\n            suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n          }\n          pushSuspenseContext(workInProgress, suspenseContext);\n          // Do a pass over the next row.\n          return next;\n        }\n        break;\n      }\n    case FundamentalComponent:\n      {\n        if (enableFundamentalAPI) {\n          var fundamentalImpl = workInProgress.type.impl;\n          var fundamentalInstance = workInProgress.stateNode;\n\n          if (fundamentalInstance === null) {\n            var getInitialState = fundamentalImpl.getInitialState;\n            var fundamentalState = void 0;\n            if (getInitialState !== undefined) {\n              fundamentalState = getInitialState(newProps);\n            }\n            fundamentalInstance = workInProgress.stateNode = createFundamentalStateInstance(workInProgress, newProps, fundamentalImpl, fundamentalState || {});\n            var _instance6 = getFundamentalComponentInstance(fundamentalInstance);\n            fundamentalInstance.instance = _instance6;\n            if (fundamentalImpl.reconcileChildren === false) {\n              return null;\n            }\n            appendAllChildren(_instance6, workInProgress, false, false);\n            mountFundamentalComponent(fundamentalInstance);\n          } else {\n            // We fire update in commit phase\n            var prevProps = fundamentalInstance.props;\n            fundamentalInstance.prevProps = prevProps;\n            fundamentalInstance.props = newProps;\n            fundamentalInstance.currentFiber = workInProgress;\n            if (supportsPersistence) {\n              var _instance7 = cloneFundamentalInstance(fundamentalInstance);\n              fundamentalInstance.instance = _instance7;\n              appendAllChildren(_instance7, workInProgress, false, false);\n            }\n            var shouldUpdate = shouldUpdateFundamentalComponent(fundamentalInstance);\n            if (shouldUpdate) {\n              markUpdate(workInProgress);\n            }\n          }\n        }\n        break;\n      }\n    default:\n      (function () {\n        {\n          {\n            throw ReactError(Error('Unknown unit of work tag. This error is likely caused by a bug in React. Please file an issue.'));\n          }\n        }\n      })();\n  }\n\n  return null;\n}\n\nfunction mountEventResponder$1(responder, responderProps, instance, rootContainerInstance, fiber, respondersMap) {\n  var responderState = emptyObject;\n  var getInitialState = responder.getInitialState;\n  if (getInitialState !== null) {\n    responderState = getInitialState(responderProps);\n  }\n  var responderInstance = createResponderInstance(responder, responderProps, responderState, instance, fiber);\n  mountResponderInstance(responder, responderInstance, responderProps, responderState, instance, rootContainerInstance);\n  respondersMap.set(responder, responderInstance);\n}\n\nfunction updateEventListener(listener, fiber, visistedResponders, respondersMap, instance, rootContainerInstance) {\n  var responder = void 0;\n  var props = void 0;\n\n  if (listener) {\n    responder = listener.responder;\n    props = listener.props;\n  }\n  (function () {\n    if (!(responder && responder.$$typeof === REACT_RESPONDER_TYPE)) {\n      {\n        throw ReactError(Error('An invalid value was used as an event listener. Expect one or many event listeners created via React.unstable_useResponer().'));\n      }\n    }\n  })();\n  var listenerProps = props;\n  if (visistedResponders.has(responder)) {\n    // show warning\n    {\n      warning$1(false, 'Duplicate event responder \"%s\" found in event listeners. ' + 'Event listeners passed to elements cannot use the same event responder more than once.', responder.displayName);\n    }\n    return;\n  }\n  visistedResponders.add(responder);\n  var responderInstance = respondersMap.get(responder);\n\n  if (responderInstance === undefined) {\n    // Mount\n    mountEventResponder$1(responder, listenerProps, instance, rootContainerInstance, fiber, respondersMap);\n  } else {\n    // Update\n    responderInstance.props = listenerProps;\n    responderInstance.fiber = fiber;\n  }\n}\n\nfunction updateEventListeners(listeners, instance, rootContainerInstance, fiber) {\n  var visistedResponders = new Set();\n  var dependencies = fiber.dependencies;\n  if (listeners != null) {\n    if (dependencies === null) {\n      dependencies = fiber.dependencies = {\n        expirationTime: NoWork,\n        firstContext: null,\n        responders: new Map()\n      };\n    }\n    var respondersMap = dependencies.responders;\n    if (respondersMap === null) {\n      respondersMap = new Map();\n    }\n    if (isArray$2(listeners)) {\n      for (var i = 0, length = listeners.length; i < length; i++) {\n        var listener = listeners[i];\n        updateEventListener(listener, fiber, visistedResponders, respondersMap, instance, rootContainerInstance);\n      }\n    } else {\n      updateEventListener(listeners, fiber, visistedResponders, respondersMap, instance, rootContainerInstance);\n    }\n  }\n  if (dependencies !== null) {\n    var _respondersMap = dependencies.responders;\n    if (_respondersMap !== null) {\n      // Unmount\n      var mountedResponders = Array.from(_respondersMap.keys());\n      for (var _i = 0, _length = mountedResponders.length; _i < _length; _i++) {\n        var mountedResponder = mountedResponders[_i];\n        if (!visistedResponders.has(mountedResponder)) {\n          var responderInstance = _respondersMap.get(mountedResponder);\n          unmountResponderInstance(responderInstance);\n          _respondersMap.delete(mountedResponder);\n        }\n      }\n    }\n  }\n}\n\nfunction unwindWork(workInProgress, renderExpirationTime) {\n  switch (workInProgress.tag) {\n    case ClassComponent:\n      {\n        var Component = workInProgress.type;\n        if (isContextProvider(Component)) {\n          popContext(workInProgress);\n        }\n        var effectTag = workInProgress.effectTag;\n        if (effectTag & ShouldCapture) {\n          workInProgress.effectTag = effectTag & ~ShouldCapture | DidCapture;\n          return workInProgress;\n        }\n        return null;\n      }\n    case HostRoot:\n      {\n        popHostContainer(workInProgress);\n        popTopLevelContextObject(workInProgress);\n        var _effectTag = workInProgress.effectTag;\n        (function () {\n          if (!((_effectTag & DidCapture) === NoEffect)) {\n            {\n              throw ReactError(Error('The root failed to unmount after an error. This is likely a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n        workInProgress.effectTag = _effectTag & ~ShouldCapture | DidCapture;\n        return workInProgress;\n      }\n    case HostComponent:\n      {\n        // TODO: popHydrationState\n        popHostContext(workInProgress);\n        return null;\n      }\n    case SuspenseComponent:\n      {\n        popSuspenseContext(workInProgress);\n        var _effectTag2 = workInProgress.effectTag;\n        if (_effectTag2 & ShouldCapture) {\n          workInProgress.effectTag = _effectTag2 & ~ShouldCapture | DidCapture;\n          // Captured a suspense effect. Re-render the boundary.\n          return workInProgress;\n        }\n        return null;\n      }\n    case DehydratedSuspenseComponent:\n      {\n        if (enableSuspenseServerRenderer) {\n          // TODO: popHydrationState\n          popSuspenseContext(workInProgress);\n          var _effectTag3 = workInProgress.effectTag;\n          if (_effectTag3 & ShouldCapture) {\n            workInProgress.effectTag = _effectTag3 & ~ShouldCapture | DidCapture;\n            // Captured a suspense effect. Re-render the boundary.\n            return workInProgress;\n          }\n        }\n        return null;\n      }\n    case SuspenseListComponent:\n      {\n        popSuspenseContext(workInProgress);\n        // SuspenseList doesn't actually catch anything. It should've been\n        // caught by a nested boundary. If not, it should bubble through.\n        return null;\n      }\n    case HostPortal:\n      popHostContainer(workInProgress);\n      return null;\n    case ContextProvider:\n      popProvider(workInProgress);\n      return null;\n    default:\n      return null;\n  }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n  switch (interruptedWork.tag) {\n    case ClassComponent:\n      {\n        var childContextTypes = interruptedWork.type.childContextTypes;\n        if (childContextTypes !== null && childContextTypes !== undefined) {\n          popContext(interruptedWork);\n        }\n        break;\n      }\n    case HostRoot:\n      {\n        popHostContainer(interruptedWork);\n        popTopLevelContextObject(interruptedWork);\n        break;\n      }\n    case HostComponent:\n      {\n        popHostContext(interruptedWork);\n        break;\n      }\n    case HostPortal:\n      popHostContainer(interruptedWork);\n      break;\n    case SuspenseComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n    case DehydratedSuspenseComponent:\n      if (enableSuspenseServerRenderer) {\n        // TODO: popHydrationState\n        popSuspenseContext(interruptedWork);\n      }\n      break;\n    case SuspenseListComponent:\n      popSuspenseContext(interruptedWork);\n      break;\n    case ContextProvider:\n      popProvider(interruptedWork);\n      break;\n    default:\n      break;\n  }\n}\n\nfunction createCapturedValue(value, source) {\n  // If the value is an error, call this function immediately after it is thrown\n  // so the stack is accurate.\n  return {\n    value: value,\n    source: source,\n    stack: getStackByFiberInDevAndProd(source)\n  };\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(capturedError) {\n  return true;\n}\n\nfunction logCapturedError(capturedError) {\n  var logError = showErrorDialog(capturedError);\n\n  // Allow injected showErrorDialog() to prevent default console.error logging.\n  // This enables renderers like ReactNative to better manage redbox behavior.\n  if (logError === false) {\n    return;\n  }\n\n  var error = capturedError.error;\n  {\n    var componentName = capturedError.componentName,\n        componentStack = capturedError.componentStack,\n        errorBoundaryName = capturedError.errorBoundaryName,\n        errorBoundaryFound = capturedError.errorBoundaryFound,\n        willRetry = capturedError.willRetry;\n\n    // Browsers support silencing uncaught errors by calling\n    // `preventDefault()` in window `error` handler.\n    // We record this information as an expando on the error.\n\n    if (error != null && error._suppressLogging) {\n      if (errorBoundaryFound && willRetry) {\n        // The error is recoverable and was silenced.\n        // Ignore it and don't print the stack addendum.\n        // This is handy for testing error boundaries without noise.\n        return;\n      }\n      // The error is fatal. Since the silencing might have\n      // been accidental, we'll surface it anyway.\n      // However, the browser would have silenced the original error\n      // so we'll print it first, and then print the stack addendum.\n      console.error(error);\n      // For a more detailed description of this block, see:\n      // https://github.com/facebook/react/pull/13384\n    }\n\n    var componentNameMessage = componentName ? 'The above error occurred in the <' + componentName + '> component:' : 'The above error occurred in one of your React components:';\n\n    var errorBoundaryMessage = void 0;\n    // errorBoundaryFound check is sufficient; errorBoundaryName check is to satisfy Flow.\n    if (errorBoundaryFound && errorBoundaryName) {\n      if (willRetry) {\n        errorBoundaryMessage = 'React will try to recreate this component tree from scratch ' + ('using the error boundary you provided, ' + errorBoundaryName + '.');\n      } else {\n        errorBoundaryMessage = 'This error was initially handled by the error boundary ' + errorBoundaryName + '.\\n' + 'Recreating the tree from scratch failed so React will unmount the tree.';\n      }\n    } else {\n      errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://fb.me/react-error-boundaries to learn more about error boundaries.';\n    }\n    var combinedMessage = '' + componentNameMessage + componentStack + '\\n\\n' + ('' + errorBoundaryMessage);\n\n    // In development, we provide our own message with just the component stack.\n    // We don't include the original error message and JS stack because the browser\n    // has already printed it. Even if the application swallows the error, it is still\n    // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n    console.error(combinedMessage);\n  }\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n{\n  didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nvar PossiblyWeakSet$1 = typeof WeakSet === 'function' ? WeakSet : Set;\n\nfunction logError(boundary, errorInfo) {\n  var source = errorInfo.source;\n  var stack = errorInfo.stack;\n  if (stack === null && source !== null) {\n    stack = getStackByFiberInDevAndProd(source);\n  }\n\n  var capturedError = {\n    componentName: source !== null ? getComponentName(source.type) : null,\n    componentStack: stack !== null ? stack : '',\n    error: errorInfo.value,\n    errorBoundary: null,\n    errorBoundaryName: null,\n    errorBoundaryFound: false,\n    willRetry: false\n  };\n\n  if (boundary !== null && boundary.tag === ClassComponent) {\n    capturedError.errorBoundary = boundary.stateNode;\n    capturedError.errorBoundaryName = getComponentName(boundary.type);\n    capturedError.errorBoundaryFound = true;\n    capturedError.willRetry = true;\n  }\n\n  try {\n    logCapturedError(capturedError);\n  } catch (e) {\n    // This method must not throw, or React internal state will get messed up.\n    // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n    // we want to report this error outside of the normal stack as a last resort.\n    // https://github.com/facebook/react/issues/13188\n    setTimeout(function () {\n      throw e;\n    });\n  }\n}\n\nvar callComponentWillUnmountWithTimer = function (current$$1, instance) {\n  startPhaseTimer(current$$1, 'componentWillUnmount');\n  instance.props = current$$1.memoizedProps;\n  instance.state = current$$1.memoizedState;\n  instance.componentWillUnmount();\n  stopPhaseTimer();\n};\n\n// Capture errors so they don't interrupt unmounting.\nfunction safelyCallComponentWillUnmount(current$$1, instance) {\n  {\n    invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current$$1, instance);\n    if (hasCaughtError()) {\n      var unmountError = clearCaughtError();\n      captureCommitPhaseError(current$$1, unmountError);\n    }\n  }\n}\n\nfunction safelyDetachRef(current$$1) {\n  var ref = current$$1.ref;\n  if (ref !== null) {\n    if (typeof ref === 'function') {\n      {\n        invokeGuardedCallback(null, ref, null, null);\n        if (hasCaughtError()) {\n          var refError = clearCaughtError();\n          captureCommitPhaseError(current$$1, refError);\n        }\n      }\n    } else {\n      ref.current = null;\n    }\n  }\n}\n\nfunction safelyCallDestroy(current$$1, destroy) {\n  {\n    invokeGuardedCallback(null, destroy, null);\n    if (hasCaughtError()) {\n      var error = clearCaughtError();\n      captureCommitPhaseError(current$$1, error);\n    }\n  }\n}\n\nfunction commitBeforeMutationLifeCycles(current$$1, finishedWork) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        commitHookEffectList(UnmountSnapshot, NoEffect$1, finishedWork);\n        return;\n      }\n    case ClassComponent:\n      {\n        if (finishedWork.effectTag & Snapshot) {\n          if (current$$1 !== null) {\n            var prevProps = current$$1.memoizedProps;\n            var prevState = current$$1.memoizedState;\n            startPhaseTimer(finishedWork, 'getSnapshotBeforeUpdate');\n            var instance = finishedWork.stateNode;\n            // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n              }\n            }\n            var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n            {\n              var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n              if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n                didWarnSet.add(finishedWork.type);\n                warningWithoutStack$1(false, '%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n              }\n            }\n            instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n            stopPhaseTimer();\n          }\n        }\n        return;\n      }\n    case HostRoot:\n    case HostComponent:\n    case HostText:\n    case HostPortal:\n    case IncompleteClassComponent:\n      // Nothing to do for these component types\n      return;\n    default:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n      }\n  }\n}\n\nfunction commitHookEffectList(unmountTag, mountTag, finishedWork) {\n  var updateQueue = finishedWork.updateQueue;\n  var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n  if (lastEffect !== null) {\n    var firstEffect = lastEffect.next;\n    var effect = firstEffect;\n    do {\n      if ((effect.tag & unmountTag) !== NoEffect$1) {\n        // Unmount\n        var destroy = effect.destroy;\n        effect.destroy = undefined;\n        if (destroy !== undefined) {\n          destroy();\n        }\n      }\n      if ((effect.tag & mountTag) !== NoEffect$1) {\n        // Mount\n        var create = effect.create;\n        effect.destroy = create();\n\n        {\n          var _destroy = effect.destroy;\n          if (_destroy !== undefined && typeof _destroy !== 'function') {\n            var addendum = void 0;\n            if (_destroy === null) {\n              addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n            } else if (typeof _destroy.then === 'function') {\n              addendum = '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useEffect(() => {\\n' + '  async function fetchData() {\\n' + '    // You can await here\\n' + '    const response = await MyAPI.getData(someId);\\n' + '    // ...\\n' + '  }\\n' + '  fetchData();\\n' + '}, [someId]); // Or [] if effect doesn\\'t need props or state\\n\\n' + 'Learn more about data fetching with Hooks: https://fb.me/react-hooks-data-fetching';\n            } else {\n              addendum = ' You returned: ' + _destroy;\n            }\n            warningWithoutStack$1(false, 'An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s%s', addendum, getStackByFiberInDevAndProd(finishedWork));\n          }\n        }\n      }\n      effect = effect.next;\n    } while (effect !== firstEffect);\n  }\n}\n\nfunction commitPassiveHookEffects(finishedWork) {\n  if ((finishedWork.effectTag & Passive) !== NoEffect) {\n    switch (finishedWork.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case SimpleMemoComponent:\n        {\n          commitHookEffectList(UnmountPassive, NoEffect$1, finishedWork);\n          commitHookEffectList(NoEffect$1, MountPassive, finishedWork);\n          break;\n        }\n      default:\n        break;\n    }\n  }\n}\n\nfunction commitLifeCycles(finishedRoot, current$$1, finishedWork, committedExpirationTime) {\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case SimpleMemoComponent:\n      {\n        commitHookEffectList(UnmountLayout, MountLayout, finishedWork);\n        break;\n      }\n    case ClassComponent:\n      {\n        var instance = finishedWork.stateNode;\n        if (finishedWork.effectTag & Update) {\n          if (current$$1 === null) {\n            startPhaseTimer(finishedWork, 'componentDidMount');\n            // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n              }\n            }\n            instance.componentDidMount();\n            stopPhaseTimer();\n          } else {\n            var prevProps = finishedWork.elementType === finishedWork.type ? current$$1.memoizedProps : resolveDefaultProps(finishedWork.type, current$$1.memoizedProps);\n            var prevState = current$$1.memoizedState;\n            startPhaseTimer(finishedWork, 'componentDidUpdate');\n            // We could update instance props and state here,\n            // but instead we rely on them being set during last render.\n            // TODO: revisit this when we implement resuming.\n            {\n              if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n                !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n                !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n              }\n            }\n            instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n            stopPhaseTimer();\n          }\n        }\n        var updateQueue = finishedWork.updateQueue;\n        if (updateQueue !== null) {\n          {\n            if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n              !(instance.props === finishedWork.memoizedProps) ? warning$1(false, 'Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n              !(instance.state === finishedWork.memoizedState) ? warning$1(false, 'Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance') : void 0;\n            }\n          }\n          // We could update instance props and state here,\n          // but instead we rely on them being set during last render.\n          // TODO: revisit this when we implement resuming.\n          commitUpdateQueue(finishedWork, updateQueue, instance, committedExpirationTime);\n        }\n        return;\n      }\n    case HostRoot:\n      {\n        var _updateQueue = finishedWork.updateQueue;\n        if (_updateQueue !== null) {\n          var _instance = null;\n          if (finishedWork.child !== null) {\n            switch (finishedWork.child.tag) {\n              case HostComponent:\n                _instance = getPublicInstance(finishedWork.child.stateNode);\n                break;\n              case ClassComponent:\n                _instance = finishedWork.child.stateNode;\n                break;\n            }\n          }\n          commitUpdateQueue(finishedWork, _updateQueue, _instance, committedExpirationTime);\n        }\n        return;\n      }\n    case HostComponent:\n      {\n        var _instance2 = finishedWork.stateNode;\n\n        // Renderers may schedule work to be done after host components are mounted\n        // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n        // These effects should only be committed when components are first mounted,\n        // aka when there is no current/alternate.\n        if (current$$1 === null && finishedWork.effectTag & Update) {\n          var type = finishedWork.type;\n          var props = finishedWork.memoizedProps;\n          commitMount(_instance2, type, props, finishedWork);\n        }\n\n        return;\n      }\n    case HostText:\n      {\n        // We have no life-cycles associated with text.\n        return;\n      }\n    case HostPortal:\n      {\n        // We have no life-cycles associated with portals.\n        return;\n      }\n    case Profiler:\n      {\n        if (enableProfilerTimer) {\n          var onRender = finishedWork.memoizedProps.onRender;\n\n          if (typeof onRender === 'function') {\n            if (enableSchedulerTracing) {\n              onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime(), finishedRoot.memoizedInteractions);\n            } else {\n              onRender(finishedWork.memoizedProps.id, current$$1 === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, getCommitTime());\n            }\n          }\n        }\n        return;\n      }\n    case SuspenseComponent:\n    case SuspenseListComponent:\n    case IncompleteClassComponent:\n    case FundamentalComponent:\n      return;\n    default:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n      }\n  }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n  if (supportsMutation) {\n    // We only have the top Fiber that was inserted but we need to recurse down its\n    var node = finishedWork;\n    while (true) {\n      if (node.tag === HostComponent) {\n        var instance = node.stateNode;\n        if (isHidden) {\n          hideInstance(instance);\n        } else {\n          unhideInstance(node.stateNode, node.memoizedProps);\n        }\n      } else if (node.tag === HostText) {\n        var _instance3 = node.stateNode;\n        if (isHidden) {\n          hideTextInstance(_instance3);\n        } else {\n          unhideTextInstance(_instance3, node.memoizedProps);\n        }\n      } else if (node.tag === SuspenseComponent && node.memoizedState !== null) {\n        // Found a nested Suspense component that timed out. Skip over the\n        var fallbackChildFragment = node.child.sibling;\n        fallbackChildFragment.return = node;\n        node = fallbackChildFragment;\n        continue;\n      } else if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      if (node === finishedWork) {\n        return;\n      }\n      while (node.sibling === null) {\n        if (node.return === null || node.return === finishedWork) {\n          return;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n}\n\nfunction commitAttachRef(finishedWork) {\n  var ref = finishedWork.ref;\n  if (ref !== null) {\n    var instance = finishedWork.stateNode;\n    var instanceToUse = void 0;\n    switch (finishedWork.tag) {\n      case HostComponent:\n        instanceToUse = getPublicInstance(instance);\n        break;\n      default:\n        instanceToUse = instance;\n    }\n    if (typeof ref === 'function') {\n      ref(instanceToUse);\n    } else {\n      {\n        if (!ref.hasOwnProperty('current')) {\n          warningWithoutStack$1(false, 'Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().%s', getComponentName(finishedWork.type), getStackByFiberInDevAndProd(finishedWork));\n        }\n      }\n\n      ref.current = instanceToUse;\n    }\n  }\n}\n\nfunction commitDetachRef(current$$1) {\n  var currentRef = current$$1.ref;\n  if (currentRef !== null) {\n    if (typeof currentRef === 'function') {\n      currentRef(null);\n    } else {\n      currentRef.current = null;\n    }\n  }\n}\n\n// User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\nfunction commitUnmount(current$$1, renderPriorityLevel) {\n  onCommitUnmount(current$$1);\n\n  switch (current$$1.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n      {\n        var updateQueue = current$$1.updateQueue;\n        if (updateQueue !== null) {\n          var lastEffect = updateQueue.lastEffect;\n          if (lastEffect !== null) {\n            var firstEffect = lastEffect.next;\n\n            // When the owner fiber is deleted, the destroy function of a passive\n            // effect hook is called during the synchronous commit phase. This is\n            // a concession to implementation complexity. Calling it in the\n            // passive effect phase (like they usually are, when dependencies\n            // change during an update) would require either traversing the\n            // children of the deleted fiber again, or including unmount effects\n            // as part of the fiber effect list.\n            //\n            // Because this is during the sync commit phase, we need to change\n            // the priority.\n            //\n            // TODO: Reconsider this implementation trade off.\n            var priorityLevel = renderPriorityLevel > NormalPriority ? NormalPriority : renderPriorityLevel;\n            runWithPriority$2(priorityLevel, function () {\n              var effect = firstEffect;\n              do {\n                var destroy = effect.destroy;\n                if (destroy !== undefined) {\n                  safelyCallDestroy(current$$1, destroy);\n                }\n                effect = effect.next;\n              } while (effect !== firstEffect);\n            });\n          }\n        }\n        break;\n      }\n    case ClassComponent:\n      {\n        safelyDetachRef(current$$1);\n        var instance = current$$1.stateNode;\n        if (typeof instance.componentWillUnmount === 'function') {\n          safelyCallComponentWillUnmount(current$$1, instance);\n        }\n        return;\n      }\n    case HostComponent:\n      {\n        if (enableFlareAPI) {\n          var dependencies = current$$1.dependencies;\n\n          if (dependencies !== null) {\n            var respondersMap = dependencies.responders;\n            if (respondersMap !== null) {\n              var responderInstances = Array.from(respondersMap.values());\n              for (var i = 0, length = responderInstances.length; i < length; i++) {\n                var responderInstance = responderInstances[i];\n                unmountResponderInstance(responderInstance);\n              }\n              dependencies.responders = null;\n            }\n          }\n        }\n        safelyDetachRef(current$$1);\n        return;\n      }\n    case HostPortal:\n      {\n        // TODO: this is recursive.\n        // We are also not using this parent because\n        // the portal will get pushed immediately.\n        if (supportsMutation) {\n          unmountHostComponents(current$$1, renderPriorityLevel);\n        } else if (supportsPersistence) {\n          emptyPortalContainer(current$$1);\n        }\n        return;\n      }\n    case FundamentalComponent:\n      {\n        if (enableFundamentalAPI) {\n          var fundamentalInstance = current$$1.stateNode;\n          if (fundamentalInstance !== null) {\n            unmountFundamentalComponent(fundamentalInstance);\n            current$$1.stateNode = null;\n          }\n        }\n      }\n  }\n}\n\nfunction commitNestedUnmounts(root, renderPriorityLevel) {\n  // While we're inside a removed host node we don't want to call\n  // removeChild on the inner nodes because they're removed by the top\n  // call anyway. We also want to call componentWillUnmount on all\n  // composites before this host node is removed from the tree. Therefore\n  var node = root;\n  while (true) {\n    commitUnmount(node, renderPriorityLevel);\n    // Visit children because they may contain more composite or host nodes.\n    // Skip portals because commitUnmount() currently visits them recursively.\n    if (node.child !== null && (\n    // If we use mutation we drill down into portals using commitUnmount above.\n    // If we don't use mutation we drill down into portals here instead.\n    !supportsMutation || node.tag !== HostPortal)) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === root) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === root) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction detachFiber(current$$1) {\n  // Cut off the return pointers to disconnect it from the tree. Ideally, we\n  // should clear the child pointer of the parent alternate to let this\n  // get GC:ed but we don't know which for sure which parent is the current\n  // one so we'll settle for GC:ing the subtree of this child. This child\n  // itself will be GC:ed when the parent updates the next time.\n  current$$1.return = null;\n  current$$1.child = null;\n  current$$1.memoizedState = null;\n  current$$1.updateQueue = null;\n  current$$1.dependencies = null;\n  var alternate = current$$1.alternate;\n  if (alternate !== null) {\n    alternate.return = null;\n    alternate.child = null;\n    alternate.memoizedState = null;\n    alternate.updateQueue = null;\n    alternate.dependencies = null;\n  }\n}\n\nfunction emptyPortalContainer(current$$1) {\n  if (!supportsPersistence) {\n    return;\n  }\n\n  var portal = current$$1.stateNode;\n  var containerInfo = portal.containerInfo;\n\n  var emptyChildSet = createContainerChildSet(containerInfo);\n  replaceContainerChildren(containerInfo, emptyChildSet);\n}\n\nfunction commitContainer(finishedWork) {\n  if (!supportsPersistence) {\n    return;\n  }\n\n  switch (finishedWork.tag) {\n    case ClassComponent:\n    case HostComponent:\n    case HostText:\n    case FundamentalComponent:\n      {\n        return;\n      }\n    case HostRoot:\n    case HostPortal:\n      {\n        var portalOrRoot = finishedWork.stateNode;\n        var containerInfo = portalOrRoot.containerInfo,\n            _pendingChildren = portalOrRoot.pendingChildren;\n\n        replaceContainerChildren(containerInfo, _pendingChildren);\n        return;\n      }\n    default:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n      }\n  }\n}\n\nfunction getHostParentFiber(fiber) {\n  var parent = fiber.return;\n  while (parent !== null) {\n    if (isHostParent(parent)) {\n      return parent;\n    }\n    parent = parent.return;\n  }\n  (function () {\n    {\n      {\n        throw ReactError(Error('Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n}\n\nfunction isHostParent(fiber) {\n  return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n  // We're going to search forward into the tree until we find a sibling host\n  // node. Unfortunately, if multiple insertions are done in a row we have to\n  // search past them. This leads to exponential search for the next sibling.\n  var node = fiber;\n  siblings: while (true) {\n    // If we didn't find anything, let's try the next sibling.\n    while (node.sibling === null) {\n      if (node.return === null || isHostParent(node.return)) {\n        // If we pop out of the root or hit the parent the fiber we are the\n        // last sibling.\n        return null;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n    while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedSuspenseComponent) {\n      // If it is not host node and, we might have a host node inside it.\n      // Try to search down until we find one.\n      if (node.effectTag & Placement) {\n        // If we don't have a child, try the siblings instead.\n        continue siblings;\n      }\n      // If we don't have a child, try the siblings instead.\n      // We also skip portals because they are not part of this host tree.\n      if (node.child === null || node.tag === HostPortal) {\n        continue siblings;\n      } else {\n        node.child.return = node;\n        node = node.child;\n      }\n    }\n    // Check if this host node is stable or about to be placed.\n    if (!(node.effectTag & Placement)) {\n      // Found it!\n      return node.stateNode;\n    }\n  }\n}\n\nfunction commitPlacement(finishedWork) {\n  if (!supportsMutation) {\n    return;\n  }\n\n  // Recursively insert all host nodes into the parent.\n  var parentFiber = getHostParentFiber(finishedWork);\n\n  // Note: these two variables *must* always be updated together.\n  var parent = void 0;\n  var isContainer = void 0;\n  var parentStateNode = parentFiber.stateNode;\n  switch (parentFiber.tag) {\n    case HostComponent:\n      parent = parentStateNode;\n      isContainer = false;\n      break;\n    case HostRoot:\n      parent = parentStateNode.containerInfo;\n      isContainer = true;\n      break;\n    case HostPortal:\n      parent = parentStateNode.containerInfo;\n      isContainer = true;\n      break;\n    case FundamentalComponent:\n      if (enableFundamentalAPI) {\n        parent = parentStateNode.instance;\n        isContainer = false;\n      }\n    // eslint-disable-next-line-no-fallthrough\n    default:\n      (function () {\n        {\n          {\n            throw ReactError(Error('Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.'));\n          }\n        }\n      })();\n  }\n  if (parentFiber.effectTag & ContentReset) {\n    // Reset the text content of the parent before doing any insertions\n    resetTextContent(parent);\n    // Clear ContentReset from the effect tag\n    parentFiber.effectTag &= ~ContentReset;\n  }\n\n  var before = getHostSibling(finishedWork);\n  // We only have the top Fiber that was inserted but we need to recurse down its\n  // children to find all the terminal nodes.\n  var node = finishedWork;\n  while (true) {\n    var isHost = node.tag === HostComponent || node.tag === HostText;\n    if (isHost || node.tag === FundamentalComponent) {\n      var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n      if (before) {\n        if (isContainer) {\n          insertInContainerBefore(parent, stateNode, before);\n        } else {\n          insertBefore(parent, stateNode, before);\n        }\n      } else {\n        if (isContainer) {\n          appendChildToContainer(parent, stateNode);\n        } else {\n          appendChild(parent, stateNode);\n        }\n      }\n    } else if (node.tag === HostPortal) {\n      // If the insertion itself is a portal, then we don't want to traverse\n      // down its children. Instead, we'll get insertions from each child in\n      // the portal directly.\n    } else if (node.child !== null) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === finishedWork) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === finishedWork) {\n        return;\n      }\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction unmountHostComponents(current$$1, renderPriorityLevel) {\n  // We only have the top Fiber that was deleted but we need to recurse down its\n  var node = current$$1;\n\n  // Each iteration, currentParent is populated with node's host parent if not\n  // currentParentIsValid.\n  var currentParentIsValid = false;\n\n  // Note: these two variables *must* always be updated together.\n  var currentParent = void 0;\n  var currentParentIsContainer = void 0;\n\n  while (true) {\n    if (!currentParentIsValid) {\n      var parent = node.return;\n      findParent: while (true) {\n        (function () {\n          if (!(parent !== null)) {\n            {\n              throw ReactError(Error('Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n        var parentStateNode = parent.stateNode;\n        switch (parent.tag) {\n          case HostComponent:\n            currentParent = parentStateNode;\n            currentParentIsContainer = false;\n            break findParent;\n          case HostRoot:\n            currentParent = parentStateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n          case HostPortal:\n            currentParent = parentStateNode.containerInfo;\n            currentParentIsContainer = true;\n            break findParent;\n          case FundamentalComponent:\n            if (enableFundamentalAPI) {\n              currentParent = parentStateNode.instance;\n              currentParentIsContainer = false;\n            }\n        }\n        parent = parent.return;\n      }\n      currentParentIsValid = true;\n    }\n\n    if (node.tag === HostComponent || node.tag === HostText) {\n      commitNestedUnmounts(node, renderPriorityLevel);\n      // After all the children have unmounted, it is now safe to remove the\n      // node from the tree.\n      if (currentParentIsContainer) {\n        removeChildFromContainer(currentParent, node.stateNode);\n      } else {\n        removeChild(currentParent, node.stateNode);\n      }\n      // Don't visit children because we already visited them.\n    } else if (node.tag === FundamentalComponent) {\n      var fundamentalNode = node.stateNode.instance;\n      commitNestedUnmounts(node, renderPriorityLevel);\n      // After all the children have unmounted, it is now safe to remove the\n      // node from the tree.\n      if (currentParentIsContainer) {\n        removeChildFromContainer(currentParent, fundamentalNode);\n      } else {\n        removeChild(currentParent, fundamentalNode);\n      }\n    } else if (enableSuspenseServerRenderer && node.tag === DehydratedSuspenseComponent) {\n      // Delete the dehydrated suspense boundary and all of its content.\n      if (currentParentIsContainer) {\n        clearSuspenseBoundaryFromContainer(currentParent, node.stateNode);\n      } else {\n        clearSuspenseBoundary(currentParent, node.stateNode);\n      }\n    } else if (node.tag === HostPortal) {\n      if (node.child !== null) {\n        // When we go into a portal, it becomes the parent to remove from.\n        // We will reassign it back when we pop the portal on the way up.\n        currentParent = node.stateNode.containerInfo;\n        currentParentIsContainer = true;\n        // Visit children because portals might contain host components.\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    } else {\n      commitUnmount(node, renderPriorityLevel);\n      // Visit children because we may find more host components below.\n      if (node.child !== null) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n    }\n    if (node === current$$1) {\n      return;\n    }\n    while (node.sibling === null) {\n      if (node.return === null || node.return === current$$1) {\n        return;\n      }\n      node = node.return;\n      if (node.tag === HostPortal) {\n        // When we go out of the portal, we need to restore the parent.\n        // Since we don't keep a stack of them, we will search for it.\n        currentParentIsValid = false;\n      }\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n}\n\nfunction commitDeletion(current$$1, renderPriorityLevel) {\n  if (supportsMutation) {\n    // Recursively delete all host nodes from the parent.\n    // Detach refs and call componentWillUnmount() on the whole subtree.\n    unmountHostComponents(current$$1, renderPriorityLevel);\n  } else {\n    // Detach refs and call componentWillUnmount() on the whole subtree.\n    commitNestedUnmounts(current$$1, renderPriorityLevel);\n  }\n  detachFiber(current$$1);\n}\n\nfunction commitWork(current$$1, finishedWork) {\n  if (!supportsMutation) {\n    switch (finishedWork.tag) {\n      case FunctionComponent:\n      case ForwardRef:\n      case MemoComponent:\n      case SimpleMemoComponent:\n        {\n          // Note: We currently never use MountMutation, but useLayout uses\n          // UnmountMutation.\n          commitHookEffectList(UnmountMutation, MountMutation, finishedWork);\n          return;\n        }\n      case Profiler:\n        {\n          return;\n        }\n      case SuspenseComponent:\n        {\n          commitSuspenseComponent(finishedWork);\n          attachSuspenseRetryListeners(finishedWork);\n          return;\n        }\n      case SuspenseListComponent:\n        {\n          attachSuspenseRetryListeners(finishedWork);\n          return;\n        }\n    }\n\n    commitContainer(finishedWork);\n    return;\n  }\n\n  switch (finishedWork.tag) {\n    case FunctionComponent:\n    case ForwardRef:\n    case MemoComponent:\n    case SimpleMemoComponent:\n      {\n        // Note: We currently never use MountMutation, but useLayout uses\n        // UnmountMutation.\n        commitHookEffectList(UnmountMutation, MountMutation, finishedWork);\n        return;\n      }\n    case ClassComponent:\n      {\n        return;\n      }\n    case HostComponent:\n      {\n        var instance = finishedWork.stateNode;\n        if (instance != null) {\n          // Commit the work prepared earlier.\n          var newProps = finishedWork.memoizedProps;\n          // For hydration we reuse the update path but we treat the oldProps\n          // as the newProps. The updatePayload will contain the real change in\n          // this case.\n          var oldProps = current$$1 !== null ? current$$1.memoizedProps : newProps;\n          var type = finishedWork.type;\n          // TODO: Type the updateQueue to be specific to host components.\n          var updatePayload = finishedWork.updateQueue;\n          finishedWork.updateQueue = null;\n          if (updatePayload !== null) {\n            commitUpdate(instance, updatePayload, type, oldProps, newProps, finishedWork);\n          }\n        }\n        return;\n      }\n    case HostText:\n      {\n        (function () {\n          if (!(finishedWork.stateNode !== null)) {\n            {\n              throw ReactError(Error('This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n        var textInstance = finishedWork.stateNode;\n        var newText = finishedWork.memoizedProps;\n        // For hydration we reuse the update path but we treat the oldProps\n        // as the newProps. The updatePayload will contain the real change in\n        // this case.\n        var oldText = current$$1 !== null ? current$$1.memoizedProps : newText;\n        commitTextUpdate(textInstance, oldText, newText);\n        return;\n      }\n    case HostRoot:\n      {\n        return;\n      }\n    case Profiler:\n      {\n        return;\n      }\n    case SuspenseComponent:\n      {\n        commitSuspenseComponent(finishedWork);\n        attachSuspenseRetryListeners(finishedWork);\n        return;\n      }\n    case SuspenseListComponent:\n      {\n        attachSuspenseRetryListeners(finishedWork);\n        return;\n      }\n    case IncompleteClassComponent:\n      {\n        return;\n      }\n    case FundamentalComponent:\n      {\n        if (enableFundamentalAPI) {\n          var fundamentalInstance = finishedWork.stateNode;\n          updateFundamentalComponent(fundamentalInstance);\n        }\n        return;\n      }\n    default:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.'));\n            }\n          }\n        })();\n      }\n  }\n}\n\nfunction commitSuspenseComponent(finishedWork) {\n  var newState = finishedWork.memoizedState;\n\n  var newDidTimeout = void 0;\n  var primaryChildParent = finishedWork;\n  if (newState === null) {\n    newDidTimeout = false;\n  } else {\n    newDidTimeout = true;\n    primaryChildParent = finishedWork.child;\n    markCommitTimeOfFallback();\n  }\n\n  if (supportsMutation && primaryChildParent !== null) {\n    hideOrUnhideAllChildren(primaryChildParent, newDidTimeout);\n  }\n\n  if (enableSuspenseCallback && newState !== null) {\n    var suspenseCallback = finishedWork.memoizedProps.suspenseCallback;\n    if (typeof suspenseCallback === 'function') {\n      var thenables = finishedWork.updateQueue;\n      if (thenables !== null) {\n        suspenseCallback(new Set(thenables));\n      }\n    } else {\n      if (suspenseCallback !== undefined) {\n        warning$1(false, 'Unexpected type for suspenseCallback.');\n      }\n    }\n  }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n  // If this boundary just timed out, then it will have a set of thenables.\n  // For each thenable, attach a listener so that when it resolves, React\n  var thenables = finishedWork.updateQueue;\n  if (thenables !== null) {\n    finishedWork.updateQueue = null;\n    var retryCache = finishedWork.stateNode;\n    if (retryCache === null) {\n      retryCache = finishedWork.stateNode = new PossiblyWeakSet$1();\n    }\n    thenables.forEach(function (thenable) {\n      // Memoize using the boundary fiber to prevent redundant listeners.\n      var retry = resolveRetryThenable.bind(null, finishedWork, thenable);\n      if (!retryCache.has(thenable)) {\n        if (enableSchedulerTracing) {\n          retry = unstable_wrap(retry);\n        }\n        retryCache.add(thenable);\n        thenable.then(retry, retry);\n      }\n    });\n  }\n}\n\nfunction commitResetTextContent(current$$1) {\n  if (!supportsMutation) {\n    return;\n  }\n  resetTextContent(current$$1.stateNode);\n}\n\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime, null);\n  // Unmount the root by rendering null.\n  update.tag = CaptureUpdate;\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  update.payload = { element: null };\n  var error = errorInfo.value;\n  update.callback = function () {\n    onUncaughtError(error);\n    logError(fiber, errorInfo);\n  };\n  return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, expirationTime) {\n  var update = createUpdate(expirationTime, null);\n  update.tag = CaptureUpdate;\n  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n  if (typeof getDerivedStateFromError === 'function') {\n    var error = errorInfo.value;\n    update.payload = function () {\n      logError(fiber, errorInfo);\n      return getDerivedStateFromError(error);\n    };\n  }\n\n  var inst = fiber.stateNode;\n  if (inst !== null && typeof inst.componentDidCatch === 'function') {\n    update.callback = function callback() {\n      {\n        markFailedErrorBoundaryForHotReloading(fiber);\n      }\n      if (typeof getDerivedStateFromError !== 'function') {\n        // To preserve the preexisting retry behavior of error boundaries,\n        // we keep track of which ones already failed during this batch.\n        // This gets reset before we yield back to the browser.\n        // TODO: Warn in strict mode if getDerivedStateFromError is\n        // not defined.\n        markLegacyErrorBoundaryAsFailed(this);\n\n        // Only log here if componentDidCatch is the only error boundary method defined\n        logError(fiber, errorInfo);\n      }\n      var error = errorInfo.value;\n      var stack = errorInfo.stack;\n      this.componentDidCatch(error, {\n        componentStack: stack !== null ? stack : ''\n      });\n      {\n        if (typeof getDerivedStateFromError !== 'function') {\n          // If componentDidCatch is the only error boundary method defined,\n          // then it needs to call setState to recover from errors.\n          // If no state update is scheduled then the boundary will swallow the error.\n          !(fiber.expirationTime === Sync) ? warningWithoutStack$1(false, '%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown') : void 0;\n        }\n      }\n    };\n  } else {\n    update.callback = function () {\n      markFailedErrorBoundaryForHotReloading(fiber);\n    };\n  }\n  return update;\n}\n\nfunction attachPingListener(root, renderExpirationTime, thenable) {\n  // Attach a listener to the promise to \"ping\" the root and retry. But\n  // only if one does not already exist for the current render expiration\n  // time (which acts like a \"thread ID\" here).\n  var pingCache = root.pingCache;\n  var threadIDs = void 0;\n  if (pingCache === null) {\n    pingCache = root.pingCache = new PossiblyWeakMap$1();\n    threadIDs = new Set();\n    pingCache.set(thenable, threadIDs);\n  } else {\n    threadIDs = pingCache.get(thenable);\n    if (threadIDs === undefined) {\n      threadIDs = new Set();\n      pingCache.set(thenable, threadIDs);\n    }\n  }\n  if (!threadIDs.has(renderExpirationTime)) {\n    // Memoize using the thread ID to prevent redundant listeners.\n    threadIDs.add(renderExpirationTime);\n    var ping = pingSuspendedRoot.bind(null, root, thenable, renderExpirationTime);\n    if (enableSchedulerTracing) {\n      ping = unstable_wrap(ping);\n    }\n    thenable.then(ping, ping);\n  }\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, renderExpirationTime) {\n  // The source fiber did not complete.\n  sourceFiber.effectTag |= Incomplete;\n  // Its effect list is no longer valid.\n  sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n  if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n    // This is a thenable.\n    var thenable = value;\n\n    checkForWrongSuspensePriorityInDEV(sourceFiber);\n\n    var hasInvisibleParentBoundary = hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext);\n\n    // Schedule the nearest Suspense to re-render the timed out view.\n    var _workInProgress = returnFiber;\n    do {\n      if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress, hasInvisibleParentBoundary)) {\n        // Found the nearest boundary.\n\n        // Stash the promise on the boundary fiber. If the boundary times out, we'll\n        var thenables = _workInProgress.updateQueue;\n        if (thenables === null) {\n          var updateQueue = new Set();\n          updateQueue.add(thenable);\n          _workInProgress.updateQueue = updateQueue;\n        } else {\n          thenables.add(thenable);\n        }\n\n        // If the boundary is outside of batched mode, we should *not*\n        // suspend the commit. Pretend as if the suspended component rendered\n        // null and keep rendering. In the commit phase, we'll schedule a\n        // subsequent synchronous update to re-render the Suspense.\n        //\n        // Note: It doesn't matter whether the component that suspended was\n        // inside a batched mode tree. If the Suspense is outside of it, we\n        // should *not* suspend the commit.\n        if ((_workInProgress.mode & BatchedMode) === NoMode) {\n          _workInProgress.effectTag |= DidCapture;\n\n          // We're going to commit this fiber even though it didn't complete.\n          // But we shouldn't call any lifecycle methods or callbacks. Remove\n          // all lifecycle effect tags.\n          sourceFiber.effectTag &= ~(LifecycleEffectMask | Incomplete);\n\n          if (sourceFiber.tag === ClassComponent) {\n            var currentSourceFiber = sourceFiber.alternate;\n            if (currentSourceFiber === null) {\n              // This is a new mount. Change the tag so it's not mistaken for a\n              // completed class component. For example, we should not call\n              // componentWillUnmount if it is deleted.\n              sourceFiber.tag = IncompleteClassComponent;\n            } else {\n              // When we try rendering again, we should not reuse the current fiber,\n              // since it's known to be in an inconsistent state. Use a force update to\n              // prevent a bail out.\n              var update = createUpdate(Sync, null);\n              update.tag = ForceUpdate;\n              enqueueUpdate(sourceFiber, update);\n            }\n          }\n\n          // The source fiber did not complete. Mark it with Sync priority to\n          // indicate that it still has pending work.\n          sourceFiber.expirationTime = Sync;\n\n          // Exit without suspending.\n          return;\n        }\n\n        // Confirmed that the boundary is in a concurrent mode tree. Continue\n        // with the normal suspend path.\n        //\n        // After this we'll use a set of heuristics to determine whether this\n        // render pass will run to completion or restart or \"suspend\" the commit.\n        // The actual logic for this is spread out in different places.\n        //\n        // This first principle is that if we're going to suspend when we complete\n        // a root, then we should also restart if we get an update or ping that\n        // might unsuspend it, and vice versa. The only reason to suspend is\n        // because you think you might want to restart before committing. However,\n        // it doesn't make sense to restart only while in the period we're suspended.\n        //\n        // Restarting too aggressively is also not good because it starves out any\n        // intermediate loading state. So we use heuristics to determine when.\n\n        // Suspense Heuristics\n        //\n        // If nothing threw a Promise or all the same fallbacks are already showing,\n        // then don't suspend/restart.\n        //\n        // If this is an initial render of a new tree of Suspense boundaries and\n        // those trigger a fallback, then don't suspend/restart. We want to ensure\n        // that we can show the initial loading state as quickly as possible.\n        //\n        // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n        // a fallback, then we should always suspend/restart. SuspenseConfig applies to\n        // this case. If none is defined, JND is used instead.\n        //\n        // If we're already showing a fallback and it gets \"retried\", allowing us to show\n        // another level, but there's still an inner boundary that would show a fallback,\n        // then we suspend/restart for 500ms since the last time we showed a fallback\n        // anywhere in the tree. This effectively throttles progressive loading into a\n        // consistent train of commits. This also gives us an opportunity to restart to\n        // get to the completed state slightly earlier.\n        //\n        // If there's ambiguity due to batching it's resolved in preference of:\n        // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n        //\n        // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n        // ensure that new initial loading states can commit as soon as possible.\n\n        attachPingListener(root, renderExpirationTime, thenable);\n\n        _workInProgress.effectTag |= ShouldCapture;\n        _workInProgress.expirationTime = renderExpirationTime;\n\n        return;\n      } else if (enableSuspenseServerRenderer && _workInProgress.tag === DehydratedSuspenseComponent) {\n        attachPingListener(root, renderExpirationTime, thenable);\n\n        // Since we already have a current fiber, we can eagerly add a retry listener.\n        var retryCache = _workInProgress.memoizedState;\n        if (retryCache === null) {\n          retryCache = _workInProgress.memoizedState = new PossiblyWeakSet();\n          var current$$1 = _workInProgress.alternate;\n          (function () {\n            if (!current$$1) {\n              {\n                throw ReactError(Error('A dehydrated suspense boundary must commit before trying to render. This is probably a bug in React.'));\n              }\n            }\n          })();\n          current$$1.memoizedState = retryCache;\n        }\n        // Memoize using the boundary fiber to prevent redundant listeners.\n        if (!retryCache.has(thenable)) {\n          retryCache.add(thenable);\n          var retry = resolveRetryThenable.bind(null, _workInProgress, thenable);\n          if (enableSchedulerTracing) {\n            retry = unstable_wrap(retry);\n          }\n          thenable.then(retry, retry);\n        }\n        _workInProgress.effectTag |= ShouldCapture;\n        _workInProgress.expirationTime = renderExpirationTime;\n        return;\n      }\n      // This boundary already captured during this render. Continue to the next\n      // boundary.\n      _workInProgress = _workInProgress.return;\n    } while (_workInProgress !== null);\n    // No boundary was found. Fallthrough to error mode.\n    // TODO: Use invariant so the message is stripped in prod?\n    value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\\n' + '\\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.' + getStackByFiberInDevAndProd(sourceFiber));\n  }\n\n  // We didn't find a boundary that could handle this type of exception. Start\n  // over and traverse parent path again, this time treating the exception\n  // as an error.\n  renderDidError();\n  value = createCapturedValue(value, sourceFiber);\n  var workInProgress = returnFiber;\n  do {\n    switch (workInProgress.tag) {\n      case HostRoot:\n        {\n          var _errorInfo = value;\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime;\n          var _update = createRootErrorUpdate(workInProgress, _errorInfo, renderExpirationTime);\n          enqueueCapturedUpdate(workInProgress, _update);\n          return;\n        }\n      case ClassComponent:\n        // Capture and retry\n        var errorInfo = value;\n        var ctor = workInProgress.type;\n        var instance = workInProgress.stateNode;\n        if ((workInProgress.effectTag & DidCapture) === NoEffect && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n          workInProgress.effectTag |= ShouldCapture;\n          workInProgress.expirationTime = renderExpirationTime;\n          // Schedule the error boundary to re-render using updated state\n          var _update2 = createClassErrorUpdate(workInProgress, errorInfo, renderExpirationTime);\n          enqueueCapturedUpdate(workInProgress, _update2);\n          return;\n        }\n        break;\n      default:\n        break;\n    }\n    workInProgress = workInProgress.return;\n  } while (workInProgress !== null);\n}\n\n// The scheduler is imported here *only* to detect whether it's been mocked\n// DEV stuff\nvar ceil = Math.ceil;\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner;\nvar IsSomeRendererActing = ReactSharedInternals.IsSomeRendererActing;\n\n\nvar NoContext = /*                    */0;\nvar BatchedContext = /*               */1;\nvar EventContext = /*                 */2;\nvar DiscreteEventContext = /*         */4;\nvar LegacyUnbatchedContext = /*       */8;\nvar RenderContext = /*                */16;\nvar CommitContext = /*                */32;\n\nvar RootIncomplete = 0;\nvar RootErrored = 1;\nvar RootSuspended = 2;\nvar RootSuspendedWithDelay = 3;\nvar RootCompleted = 4;\n\n// Describes where we are in the React execution stack\nvar executionContext = NoContext;\n// The root we're working on\nvar workInProgressRoot = null;\n// The fiber we're working on\nvar workInProgress = null;\n// The expiration time we're rendering\nvar renderExpirationTime = NoWork;\n// Whether to root completed, errored, suspended, etc.\nvar workInProgressRootExitStatus = RootIncomplete;\n// Most recent event time among processed updates during this render.\n// This is conceptually a time stamp but expressed in terms of an ExpirationTime\n// because we deal mostly with expiration times in the hot path, so this avoids\n// the conversion happening in the hot path.\nvar workInProgressRootLatestProcessedExpirationTime = Sync;\nvar workInProgressRootLatestSuspenseTimeout = Sync;\nvar workInProgressRootCanSuspendUsingConfig = null;\n// If we're pinged while rendering we don't always restart immediately.\n// This flag determines if it might be worthwhile to restart if an opportunity\n// happens latere.\nvar workInProgressRootHasPendingPing = false;\n// The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500;\n\nvar nextEffect = null;\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null;\n\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsRenderPriority = NoPriority;\nvar pendingPassiveEffectsExpirationTime = NoWork;\n\nvar rootsWithPendingDiscreteUpdates = null;\n\n// Use these to prevent an infinite loop of nested updates\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\n\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0;\n\nvar interruptedBy = null;\n\n// Marks the need to reschedule pending interactions at these expiration times\n// during the commit phase. This enables them to be traced across components\n// that spawn new work during render. E.g. hidden boundaries, suspended SSR\n// hydration or SuspenseList.\nvar spawnedWorkDuringRender = null;\n\n// Expiration times are computed by adding to the current time (the start\n// time). However, if two updates are scheduled within the same event, we\n// should treat their start times as simultaneous, even if the actual clock\n// time has advanced between the first and second call.\n\n// In other words, because expiration times determine how updates are batched,\n// we want all updates of like priority that occur within the same event to\n// receive the same expiration time. Otherwise we get tearing.\nvar currentEventTime = NoWork;\n\nfunction requestCurrentTime() {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    // We're inside React, so it's fine to read the actual time.\n    return msToExpirationTime(now());\n  }\n  // We're not inside React, so we may be in the middle of a browser event.\n  if (currentEventTime !== NoWork) {\n    // Use the same start time for all updates until we enter React again.\n    return currentEventTime;\n  }\n  // This is the first update since React yielded. Compute a new start time.\n  currentEventTime = msToExpirationTime(now());\n  return currentEventTime;\n}\n\nfunction computeExpirationForFiber(currentTime, fiber, suspenseConfig) {\n  var mode = fiber.mode;\n  if ((mode & BatchedMode) === NoMode) {\n    return Sync;\n  }\n\n  var priorityLevel = getCurrentPriorityLevel();\n  if ((mode & ConcurrentMode) === NoMode) {\n    return priorityLevel === ImmediatePriority ? Sync : Batched;\n  }\n\n  if ((executionContext & RenderContext) !== NoContext) {\n    // Use whatever time we're already rendering\n    return renderExpirationTime;\n  }\n\n  var expirationTime = void 0;\n  if (suspenseConfig !== null) {\n    // Compute an expiration time based on the Suspense timeout.\n    expirationTime = computeSuspenseExpiration(currentTime, suspenseConfig.timeoutMs | 0 || LOW_PRIORITY_EXPIRATION);\n  } else {\n    // Compute an expiration time based on the Scheduler priority.\n    switch (priorityLevel) {\n      case ImmediatePriority:\n        expirationTime = Sync;\n        break;\n      case UserBlockingPriority$2:\n        // TODO: Rename this to computeUserBlockingExpiration\n        expirationTime = computeInteractiveExpiration(currentTime);\n        break;\n      case NormalPriority:\n      case LowPriority:\n        // TODO: Handle LowPriority\n        // TODO: Rename this to... something better.\n        expirationTime = computeAsyncExpiration(currentTime);\n        break;\n      case IdlePriority:\n        expirationTime = Never;\n        break;\n      default:\n        (function () {\n          {\n            {\n              throw ReactError(Error('Expected a valid priority level'));\n            }\n          }\n        })();\n    }\n  }\n\n  // If we're in the middle of rendering a tree, do not update at the same\n  // expiration time that is already rendering.\n  // TODO: We shouldn't have to do this if the update is on a different root.\n  // Refactor computeExpirationForFiber + scheduleUpdate so we have access to\n  // the root when we check for this condition.\n  if (workInProgressRoot !== null && expirationTime === renderExpirationTime) {\n    // This is a trick to move this update into a separate batch\n    expirationTime -= 1;\n  }\n\n  return expirationTime;\n}\n\nvar lastUniqueAsyncExpiration = NoWork;\nfunction computeUniqueAsyncExpiration() {\n  var currentTime = requestCurrentTime();\n  var result = computeAsyncExpiration(currentTime);\n  if (result <= lastUniqueAsyncExpiration) {\n    // Since we assume the current time monotonically increases, we only hit\n    // this branch when computeUniqueAsyncExpiration is fired multiple times\n    // within a 200ms window (or whatever the async bucket size is).\n    result -= 1;\n  }\n  lastUniqueAsyncExpiration = result;\n  return result;\n}\n\nfunction scheduleUpdateOnFiber(fiber, expirationTime) {\n  checkForNestedUpdates();\n  warnAboutInvalidUpdatesOnClassComponentsInDEV(fiber);\n\n  var root = markUpdateTimeFromFiberToRoot(fiber, expirationTime);\n  if (root === null) {\n    warnAboutUpdateOnUnmountedFiberInDEV(fiber);\n    return;\n  }\n\n  root.pingTime = NoWork;\n\n  checkForInterruption(fiber, expirationTime);\n  recordScheduleUpdate();\n\n  // TODO: computeExpirationForFiber also reads the priority. Pass the\n  // priority as an argument to that function and this one.\n  var priorityLevel = getCurrentPriorityLevel();\n\n  if (expirationTime === Sync) {\n    if (\n    // Check if we're inside unbatchedUpdates\n    (executionContext & LegacyUnbatchedContext) !== NoContext &&\n    // Check if we're not already rendering\n    (executionContext & (RenderContext | CommitContext)) === NoContext) {\n      // Register pending interactions on the root to avoid losing traced interaction data.\n      schedulePendingInteractions(root, expirationTime);\n\n      // This is a legacy edge case. The initial mount of a ReactDOM.render-ed\n      // root inside of batchedUpdates should be synchronous, but layout updates\n      // should be deferred until the end of the batch.\n      var callback = renderRoot(root, Sync, true);\n      while (callback !== null) {\n        callback = callback(true);\n      }\n    } else {\n      scheduleCallbackForRoot(root, ImmediatePriority, Sync);\n      if (executionContext === NoContext) {\n        // Flush the synchronous work now, wnless we're already working or inside\n        // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n        // scheduleCallbackForFiber to preserve the ability to schedule a callback\n        // without immediately flushing it. We only do this for user-initiated\n        // updates, to preserve historical behavior of sync mode.\n        flushSyncCallbackQueue();\n      }\n    }\n  } else {\n    scheduleCallbackForRoot(root, priorityLevel, expirationTime);\n  }\n\n  if ((executionContext & DiscreteEventContext) !== NoContext && (\n  // Only updates at user-blocking priority or greater are considered\n  // discrete, even inside a discrete event.\n  priorityLevel === UserBlockingPriority$2 || priorityLevel === ImmediatePriority)) {\n    // This is the result of a discrete event. Track the lowest priority\n    // discrete update per root so we can flush them early, if needed.\n    if (rootsWithPendingDiscreteUpdates === null) {\n      rootsWithPendingDiscreteUpdates = new Map([[root, expirationTime]]);\n    } else {\n      var lastDiscreteTime = rootsWithPendingDiscreteUpdates.get(root);\n      if (lastDiscreteTime === undefined || lastDiscreteTime > expirationTime) {\n        rootsWithPendingDiscreteUpdates.set(root, expirationTime);\n      }\n    }\n  }\n}\nvar scheduleWork = scheduleUpdateOnFiber;\n\n// This is split into a separate function so we can mark a fiber with pending\n// work without treating it as a typical update that originates from an event;\n// e.g. retrying a Suspense boundary isn't an update, but it does schedule work\n// on a fiber.\nfunction markUpdateTimeFromFiberToRoot(fiber, expirationTime) {\n  // Update the source fiber's expiration time\n  if (fiber.expirationTime < expirationTime) {\n    fiber.expirationTime = expirationTime;\n  }\n  var alternate = fiber.alternate;\n  if (alternate !== null && alternate.expirationTime < expirationTime) {\n    alternate.expirationTime = expirationTime;\n  }\n  // Walk the parent path to the root and update the child expiration time.\n  var node = fiber.return;\n  var root = null;\n  if (node === null && fiber.tag === HostRoot) {\n    root = fiber.stateNode;\n  } else {\n    while (node !== null) {\n      alternate = node.alternate;\n      if (node.childExpirationTime < expirationTime) {\n        node.childExpirationTime = expirationTime;\n        if (alternate !== null && alternate.childExpirationTime < expirationTime) {\n          alternate.childExpirationTime = expirationTime;\n        }\n      } else if (alternate !== null && alternate.childExpirationTime < expirationTime) {\n        alternate.childExpirationTime = expirationTime;\n      }\n      if (node.return === null && node.tag === HostRoot) {\n        root = node.stateNode;\n        break;\n      }\n      node = node.return;\n    }\n  }\n\n  if (root !== null) {\n    // Update the first and last pending expiration times in this root\n    var firstPendingTime = root.firstPendingTime;\n    if (expirationTime > firstPendingTime) {\n      root.firstPendingTime = expirationTime;\n    }\n    var lastPendingTime = root.lastPendingTime;\n    if (lastPendingTime === NoWork || expirationTime < lastPendingTime) {\n      root.lastPendingTime = expirationTime;\n    }\n  }\n\n  return root;\n}\n\n// Use this function, along with runRootCallback, to ensure that only a single\n// callback per root is scheduled. It's still possible to call renderRoot\n// directly, but scheduling via this function helps avoid excessive callbacks.\n// It works by storing the callback node and expiration time on the root. When a\n// new callback comes in, it compares the expiration time to determine if it\n// should cancel the previous one. It also relies on commitRoot scheduling a\n// callback to render the next level, because that means we don't need a\n// separate callback per expiration time.\nfunction scheduleCallbackForRoot(root, priorityLevel, expirationTime) {\n  var existingCallbackExpirationTime = root.callbackExpirationTime;\n  if (existingCallbackExpirationTime < expirationTime) {\n    // New callback has higher priority than the existing one.\n    var existingCallbackNode = root.callbackNode;\n    if (existingCallbackNode !== null) {\n      cancelCallback(existingCallbackNode);\n    }\n    root.callbackExpirationTime = expirationTime;\n\n    if (expirationTime === Sync) {\n      // Sync React callbacks are scheduled on a special internal queue\n      root.callbackNode = scheduleSyncCallback(runRootCallback.bind(null, root, renderRoot.bind(null, root, expirationTime)));\n    } else {\n      var options = null;\n      if (!disableSchedulerTimeoutBasedOnReactExpirationTime && expirationTime !== Never) {\n        var timeout = expirationTimeToMs(expirationTime) - now();\n        options = { timeout: timeout };\n      }\n\n      root.callbackNode = scheduleCallback(priorityLevel, runRootCallback.bind(null, root, renderRoot.bind(null, root, expirationTime)), options);\n      if (enableUserTimingAPI && expirationTime !== Sync && (executionContext & (RenderContext | CommitContext)) === NoContext) {\n        // Scheduled an async callback, and we're not already working. Add an\n        // entry to the flamegraph that shows we're waiting for a callback\n        // to fire.\n        startRequestCallbackTimer();\n      }\n    }\n  }\n\n  // Associate the current interactions with this new root+priority.\n  schedulePendingInteractions(root, expirationTime);\n}\n\nfunction runRootCallback(root, callback, isSync) {\n  var prevCallbackNode = root.callbackNode;\n  var continuation = null;\n  try {\n    continuation = callback(isSync);\n    if (continuation !== null) {\n      return runRootCallback.bind(null, root, continuation);\n    } else {\n      return null;\n    }\n  } finally {\n    // If the callback exits without returning a continuation, remove the\n    // corresponding callback node from the root. Unless the callback node\n    // has changed, which implies that it was already cancelled by a high\n    // priority update.\n    if (continuation === null && prevCallbackNode === root.callbackNode) {\n      root.callbackNode = null;\n      root.callbackExpirationTime = NoWork;\n    }\n  }\n}\n\nfunction flushRoot(root, expirationTime) {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    (function () {\n      {\n        {\n          throw ReactError(Error('work.commit(): Cannot commit while already rendering. This likely means you attempted to commit from inside a lifecycle method.'));\n        }\n      }\n    })();\n  }\n  scheduleSyncCallback(renderRoot.bind(null, root, expirationTime));\n  flushSyncCallbackQueue();\n}\n\nfunction flushDiscreteUpdates() {\n  // TODO: Should be able to flush inside batchedUpdates, but not inside `act`.\n  // However, `act` uses `batchedUpdates`, so there's no way to distinguish\n  // those two cases. Need to fix this before exposing flushDiscreteUpdates\n  // as a public API.\n  if ((executionContext & (BatchedContext | RenderContext | CommitContext)) !== NoContext) {\n    if (true && (executionContext & RenderContext) !== NoContext) {\n      warning$1(false, 'unstable_flushDiscreteUpdates: Cannot flush updates when React is ' + 'already rendering.');\n    }\n    // We're already rendering, so we can't synchronously flush pending work.\n    // This is probably a nested event dispatch triggered by a lifecycle/effect,\n    // like `el.focus()`. Exit.\n    return;\n  }\n  flushPendingDiscreteUpdates();\n  if (!revertPassiveEffectsChange) {\n    // If the discrete updates scheduled passive effects, flush them now so that\n    // they fire before the next serial event.\n    flushPassiveEffects();\n  }\n}\n\nfunction resolveLocksOnRoot(root, expirationTime) {\n  var firstBatch = root.firstBatch;\n  if (firstBatch !== null && firstBatch._defer && firstBatch._expirationTime >= expirationTime) {\n    scheduleCallback(NormalPriority, function () {\n      firstBatch._onComplete();\n      return null;\n    });\n    return true;\n  } else {\n    return false;\n  }\n}\n\n\n\n\n\nfunction flushPendingDiscreteUpdates() {\n  if (rootsWithPendingDiscreteUpdates !== null) {\n    // For each root with pending discrete updates, schedule a callback to\n    // immediately flush them.\n    var roots = rootsWithPendingDiscreteUpdates;\n    rootsWithPendingDiscreteUpdates = null;\n    roots.forEach(function (expirationTime, root) {\n      scheduleSyncCallback(renderRoot.bind(null, root, expirationTime));\n    });\n    // Now flush the immediate queue.\n    flushSyncCallbackQueue();\n  }\n}\n\nfunction batchedUpdates$1(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\n\nfunction batchedEventUpdates$1(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext |= EventContext;\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\n\nfunction discreteUpdates$1(fn, a, b, c) {\n  var prevExecutionContext = executionContext;\n  executionContext |= DiscreteEventContext;\n  try {\n    // Should this\n    return runWithPriority$2(UserBlockingPriority$2, fn.bind(null, a, b, c));\n  } finally {\n    executionContext = prevExecutionContext;\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\n\nfunction unbatchedUpdates(fn, a) {\n  var prevExecutionContext = executionContext;\n  executionContext &= ~BatchedContext;\n  executionContext |= LegacyUnbatchedContext;\n  try {\n    return fn(a);\n  } finally {\n    executionContext = prevExecutionContext;\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\n\nfunction flushSync(fn, a) {\n  if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n    (function () {\n      {\n        {\n          throw ReactError(Error('flushSync was called from inside a lifecycle method. It cannot be called when React is already rendering.'));\n        }\n      }\n    })();\n  }\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n  try {\n    return runWithPriority$2(ImmediatePriority, fn.bind(null, a));\n  } finally {\n    executionContext = prevExecutionContext;\n    // Flush the immediate callbacks that were scheduled during this batch.\n    // Note that this will happen even if batchedUpdates is higher up\n    // the stack.\n    flushSyncCallbackQueue();\n  }\n}\n\nfunction flushControlled(fn) {\n  var prevExecutionContext = executionContext;\n  executionContext |= BatchedContext;\n  try {\n    runWithPriority$2(ImmediatePriority, fn);\n  } finally {\n    executionContext = prevExecutionContext;\n    if (executionContext === NoContext) {\n      // Flush the immediate callbacks that were scheduled during this batch\n      flushSyncCallbackQueue();\n    }\n  }\n}\n\nfunction prepareFreshStack(root, expirationTime) {\n  root.finishedWork = null;\n  root.finishedExpirationTime = NoWork;\n\n  var timeoutHandle = root.timeoutHandle;\n  if (timeoutHandle !== noTimeout) {\n    // The root previous suspended and scheduled a timeout to commit a fallback\n    // state. Now that we have additional work, cancel the timeout.\n    root.timeoutHandle = noTimeout;\n    // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n    cancelTimeout(timeoutHandle);\n  }\n\n  if (workInProgress !== null) {\n    var interruptedWork = workInProgress.return;\n    while (interruptedWork !== null) {\n      unwindInterruptedWork(interruptedWork);\n      interruptedWork = interruptedWork.return;\n    }\n  }\n  workInProgressRoot = root;\n  workInProgress = createWorkInProgress(root.current, null, expirationTime);\n  renderExpirationTime = expirationTime;\n  workInProgressRootExitStatus = RootIncomplete;\n  workInProgressRootLatestProcessedExpirationTime = Sync;\n  workInProgressRootLatestSuspenseTimeout = Sync;\n  workInProgressRootCanSuspendUsingConfig = null;\n  workInProgressRootHasPendingPing = false;\n\n  if (enableSchedulerTracing) {\n    spawnedWorkDuringRender = null;\n  }\n\n  {\n    ReactStrictModeWarnings.discardPendingWarnings();\n    componentsThatTriggeredHighPriSuspend = null;\n  }\n}\n\nfunction renderRoot(root, expirationTime, isSync) {\n  (function () {\n    if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n      {\n        throw ReactError(Error('Should not already be working.'));\n      }\n    }\n  })();\n\n  if (enableUserTimingAPI && expirationTime !== Sync) {\n    var didExpire = isSync;\n    stopRequestCallbackTimer(didExpire);\n  }\n\n  if (root.firstPendingTime < expirationTime) {\n    // If there's no work left at this expiration time, exit immediately. This\n    // happens when multiple callbacks are scheduled for a single root, but an\n    // earlier callback flushes the work of a later one.\n    return null;\n  }\n\n  if (isSync && root.finishedExpirationTime === expirationTime) {\n    // There's already a pending commit at this expiration time.\n    // TODO: This is poorly factored. This case only exists for the\n    // batch.commit() API.\n    return commitRoot.bind(null, root);\n  }\n\n  flushPassiveEffects();\n\n  // If the root or expiration time have changed, throw out the existing stack\n  // and prepare a fresh one. Otherwise we'll continue where we left off.\n  if (root !== workInProgressRoot || expirationTime !== renderExpirationTime) {\n    prepareFreshStack(root, expirationTime);\n    startWorkOnPendingInteractions(root, expirationTime);\n  } else if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n    // We could've received an update at a lower priority while we yielded.\n    // We're suspended in a delayed state. Once we complete this render we're\n    // just going to try to recover at the last pending time anyway so we might\n    // as well start doing that eagerly.\n    // Ideally we should be able to do this even for retries but we don't yet\n    // know if we're going to process an update which wants to commit earlier,\n    // and this path happens very early so it would happen too often. Instead,\n    // for that case, we'll wait until we complete.\n    if (workInProgressRootHasPendingPing) {\n      // We have a ping at this expiration. Let's restart to see if we get unblocked.\n      prepareFreshStack(root, expirationTime);\n    } else {\n      var lastPendingTime = root.lastPendingTime;\n      if (lastPendingTime < expirationTime) {\n        // There's lower priority work. It might be unsuspended. Try rendering\n        // at that level immediately, while preserving the position in the queue.\n        return renderRoot.bind(null, root, lastPendingTime);\n      }\n    }\n  }\n\n  // If we have a work-in-progress fiber, it means there's still work to do\n  // in this root.\n  if (workInProgress !== null) {\n    var prevExecutionContext = executionContext;\n    executionContext |= RenderContext;\n    var prevDispatcher = ReactCurrentDispatcher.current;\n    if (prevDispatcher === null) {\n      // The React isomorphic package does not include a default dispatcher.\n      // Instead the first renderer will lazily attach one, in order to give\n      // nicer error messages.\n      prevDispatcher = ContextOnlyDispatcher;\n    }\n    ReactCurrentDispatcher.current = ContextOnlyDispatcher;\n    var prevInteractions = null;\n    if (enableSchedulerTracing) {\n      prevInteractions = __interactionsRef.current;\n      __interactionsRef.current = root.memoizedInteractions;\n    }\n\n    startWorkLoopTimer(workInProgress);\n\n    // TODO: Fork renderRoot into renderRootSync and renderRootAsync\n    if (isSync) {\n      if (expirationTime !== Sync) {\n        // An async update expired. There may be other expired updates on\n        // this root. We should render all the expired work in a\n        // single batch.\n        var currentTime = requestCurrentTime();\n        if (currentTime < expirationTime) {\n          // Restart at the current time.\n          executionContext = prevExecutionContext;\n          resetContextDependencies();\n          ReactCurrentDispatcher.current = prevDispatcher;\n          if (enableSchedulerTracing) {\n            __interactionsRef.current = prevInteractions;\n          }\n          return renderRoot.bind(null, root, currentTime);\n        }\n      }\n    } else {\n      // Since we know we're in a React event, we can clear the current\n      // event time. The next update will compute a new event time.\n      currentEventTime = NoWork;\n    }\n\n    do {\n      try {\n        if (isSync) {\n          workLoopSync();\n        } else {\n          workLoop();\n        }\n        break;\n      } catch (thrownValue) {\n        // Reset module-level state that was set during the render phase.\n        resetContextDependencies();\n        resetHooks();\n\n        var sourceFiber = workInProgress;\n        if (sourceFiber === null || sourceFiber.return === null) {\n          // Expected to be working on a non-root fiber. This is a fatal error\n          // because there's no ancestor that can handle it; the root is\n          // supposed to capture all errors that weren't caught by an error\n          // boundary.\n          prepareFreshStack(root, expirationTime);\n          executionContext = prevExecutionContext;\n          throw thrownValue;\n        }\n\n        if (enableProfilerTimer && sourceFiber.mode & ProfileMode) {\n          // Record the time spent rendering before an error was thrown. This\n          // avoids inaccurate Profiler durations in the case of a\n          // suspended render.\n          stopProfilerTimerIfRunningAndRecordDelta(sourceFiber, true);\n        }\n\n        var returnFiber = sourceFiber.return;\n        throwException(root, returnFiber, sourceFiber, thrownValue, renderExpirationTime);\n        workInProgress = completeUnitOfWork(sourceFiber);\n      }\n    } while (true);\n\n    executionContext = prevExecutionContext;\n    resetContextDependencies();\n    ReactCurrentDispatcher.current = prevDispatcher;\n    if (enableSchedulerTracing) {\n      __interactionsRef.current = prevInteractions;\n    }\n\n    if (workInProgress !== null) {\n      // There's still work left over. Return a continuation.\n      stopInterruptedWorkLoopTimer();\n      if (expirationTime !== Sync) {\n        startRequestCallbackTimer();\n      }\n      return renderRoot.bind(null, root, expirationTime);\n    }\n  }\n\n  // We now have a consistent tree. The next step is either to commit it, or, if\n  // something suspended, wait to commit it after a timeout.\n  stopFinishedWorkLoopTimer();\n\n  root.finishedWork = root.current.alternate;\n  root.finishedExpirationTime = expirationTime;\n\n  var isLocked = resolveLocksOnRoot(root, expirationTime);\n  if (isLocked) {\n    // This root has a lock that prevents it from committing. Exit. If we begin\n    // work on the root again, without any intervening updates, it will finish\n    // without doing additional work.\n    return null;\n  }\n\n  // Set this to null to indicate there's no in-progress render.\n  workInProgressRoot = null;\n\n  switch (workInProgressRootExitStatus) {\n    case RootIncomplete:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('Should have a work-in-progress.'));\n            }\n          }\n        })();\n      }\n    // Flow knows about invariant, so it complains if I add a break statement,\n    // but eslint doesn't know about invariant, so it complains if I do.\n    // eslint-disable-next-line no-fallthrough\n    case RootErrored:\n      {\n        // An error was thrown. First check if there is lower priority work\n        // scheduled on this root.\n        var _lastPendingTime = root.lastPendingTime;\n        if (_lastPendingTime < expirationTime) {\n          // There's lower priority work. Before raising the error, try rendering\n          // at the lower priority to see if it fixes it. Use a continuation to\n          // maintain the existing priority and position in the queue.\n          return renderRoot.bind(null, root, _lastPendingTime);\n        }\n        if (!isSync) {\n          // If we're rendering asynchronously, it's possible the error was\n          // caused by tearing due to a mutation during an event. Try rendering\n          // one more time without yiedling to events.\n          prepareFreshStack(root, expirationTime);\n          scheduleSyncCallback(renderRoot.bind(null, root, expirationTime));\n          return null;\n        }\n        // If we're already rendering synchronously, commit the root in its\n        // errored state.\n        return commitRoot.bind(null, root);\n      }\n    case RootSuspended:\n      {\n        flushSuspensePriorityWarningInDEV();\n\n        // We have an acceptable loading state. We need to figure out if we should\n        // immediately commit it or wait a bit.\n\n        // If we have processed new updates during this render, we may now have a\n        // new loading state ready. We want to ensure that we commit that as soon as\n        // possible.\n        var hasNotProcessedNewUpdates = workInProgressRootLatestProcessedExpirationTime === Sync;\n        if (hasNotProcessedNewUpdates && !isSync &&\n        // do not delay if we're inside an act() scope\n        !(true && flushSuspenseFallbacksInTests && IsThisRendererActing.current)) {\n          // If we have not processed any new updates during this pass, then this is\n          // either a retry of an existing fallback state or a hidden tree.\n          // Hidden trees shouldn't be batched with other work and after that's\n          // fixed it can only be a retry.\n          // We're going to throttle committing retries so that we don't show too\n          // many loading states too quickly.\n          var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now();\n          // Don't bother with a very short suspense time.\n          if (msUntilTimeout > 10) {\n            if (workInProgressRootHasPendingPing) {\n              // This render was pinged but we didn't get to restart earlier so try\n              // restarting now instead.\n              prepareFreshStack(root, expirationTime);\n              return renderRoot.bind(null, root, expirationTime);\n            }\n            var _lastPendingTime2 = root.lastPendingTime;\n            if (_lastPendingTime2 < expirationTime) {\n              // There's lower priority work. It might be unsuspended. Try rendering\n              // at that level.\n              return renderRoot.bind(null, root, _lastPendingTime2);\n            }\n            // The render is suspended, it hasn't timed out, and there's no lower\n            // priority work to do. Instead of committing the fallback\n            // immediately, wait for more data to arrive.\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), msUntilTimeout);\n            return null;\n          }\n        }\n        // The work expired. Commit immediately.\n        return commitRoot.bind(null, root);\n      }\n    case RootSuspendedWithDelay:\n      {\n        flushSuspensePriorityWarningInDEV();\n\n        if (!isSync &&\n        // do not delay if we're inside an act() scope\n        !(true && flushSuspenseFallbacksInTests && IsThisRendererActing.current)) {\n          // We're suspended in a state that should be avoided. We'll try to avoid committing\n          // it for as long as the timeouts let us.\n          if (workInProgressRootHasPendingPing) {\n            // This render was pinged but we didn't get to restart earlier so try\n            // restarting now instead.\n            prepareFreshStack(root, expirationTime);\n            return renderRoot.bind(null, root, expirationTime);\n          }\n          var _lastPendingTime3 = root.lastPendingTime;\n          if (_lastPendingTime3 < expirationTime) {\n            // There's lower priority work. It might be unsuspended. Try rendering\n            // at that level immediately.\n            return renderRoot.bind(null, root, _lastPendingTime3);\n          }\n\n          var _msUntilTimeout = void 0;\n          if (workInProgressRootLatestSuspenseTimeout !== Sync) {\n            // We have processed a suspense config whose expiration time we can use as\n            // the timeout.\n            _msUntilTimeout = expirationTimeToMs(workInProgressRootLatestSuspenseTimeout) - now();\n          } else if (workInProgressRootLatestProcessedExpirationTime === Sync) {\n            // This should never normally happen because only new updates cause\n            // delayed states, so we should have processed something. However,\n            // this could also happen in an offscreen tree.\n            _msUntilTimeout = 0;\n          } else {\n            // If we don't have a suspense config, we're going to use a heuristic to\n            var eventTimeMs = inferTimeFromExpirationTime(workInProgressRootLatestProcessedExpirationTime);\n            var currentTimeMs = now();\n            var timeUntilExpirationMs = expirationTimeToMs(expirationTime) - currentTimeMs;\n            var timeElapsed = currentTimeMs - eventTimeMs;\n            if (timeElapsed < 0) {\n              // We get this wrong some time since we estimate the time.\n              timeElapsed = 0;\n            }\n\n            _msUntilTimeout = jnd(timeElapsed) - timeElapsed;\n\n            // Clamp the timeout to the expiration time.\n            // TODO: Once the event time is exact instead of inferred from expiration time\n            // we don't need this.\n            if (timeUntilExpirationMs < _msUntilTimeout) {\n              _msUntilTimeout = timeUntilExpirationMs;\n            }\n          }\n\n          // Don't bother with a very short suspense time.\n          if (_msUntilTimeout > 10) {\n            // The render is suspended, it hasn't timed out, and there's no lower\n            // priority work to do. Instead of committing the fallback\n            // immediately, wait for more data to arrive.\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout);\n            return null;\n          }\n        }\n        // The work expired. Commit immediately.\n        return commitRoot.bind(null, root);\n      }\n    case RootCompleted:\n      {\n        // The work completed. Ready to commit.\n        if (!isSync &&\n        // do not delay if we're inside an act() scope\n        !(true && flushSuspenseFallbacksInTests && IsThisRendererActing.current) && workInProgressRootLatestProcessedExpirationTime !== Sync && workInProgressRootCanSuspendUsingConfig !== null) {\n          // If we have exceeded the minimum loading delay, which probably\n          // means we have shown a spinner already, we might have to suspend\n          // a bit longer to ensure that the spinner is shown for enough time.\n          var _msUntilTimeout2 = computeMsUntilSuspenseLoadingDelay(workInProgressRootLatestProcessedExpirationTime, expirationTime, workInProgressRootCanSuspendUsingConfig);\n          if (_msUntilTimeout2 > 10) {\n            root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout2);\n            return null;\n          }\n        }\n        return commitRoot.bind(null, root);\n      }\n    default:\n      {\n        (function () {\n          {\n            {\n              throw ReactError(Error('Unknown root exit status.'));\n            }\n          }\n        })();\n      }\n  }\n}\n\nfunction markCommitTimeOfFallback() {\n  globalMostRecentFallbackTime = now();\n}\n\nfunction markRenderEventTimeAndConfig(expirationTime, suspenseConfig) {\n  if (expirationTime < workInProgressRootLatestProcessedExpirationTime && expirationTime > Never) {\n    workInProgressRootLatestProcessedExpirationTime = expirationTime;\n  }\n  if (suspenseConfig !== null) {\n    if (expirationTime < workInProgressRootLatestSuspenseTimeout && expirationTime > Never) {\n      workInProgressRootLatestSuspenseTimeout = expirationTime;\n      // Most of the time we only have one config and getting wrong is not bad.\n      workInProgressRootCanSuspendUsingConfig = suspenseConfig;\n    }\n  }\n}\n\nfunction renderDidSuspend() {\n  if (workInProgressRootExitStatus === RootIncomplete) {\n    workInProgressRootExitStatus = RootSuspended;\n  }\n}\n\nfunction renderDidSuspendDelayIfPossible() {\n  if (workInProgressRootExitStatus === RootIncomplete || workInProgressRootExitStatus === RootSuspended) {\n    workInProgressRootExitStatus = RootSuspendedWithDelay;\n  }\n}\n\nfunction renderDidError() {\n  if (workInProgressRootExitStatus !== RootCompleted) {\n    workInProgressRootExitStatus = RootErrored;\n  }\n}\n\n// Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\nfunction renderHasNotSuspendedYet() {\n  // If something errored or completed, we can't really be sure,\n  // so those are false.\n  return workInProgressRootExitStatus === RootIncomplete;\n}\n\nfunction inferTimeFromExpirationTime(expirationTime) {\n  // We don't know exactly when the update was scheduled, but we can infer an\n  // approximate start time from the expiration time.\n  var earliestExpirationTimeMs = expirationTimeToMs(expirationTime);\n  return earliestExpirationTimeMs - LOW_PRIORITY_EXPIRATION;\n}\n\nfunction inferTimeFromExpirationTimeWithSuspenseConfig(expirationTime, suspenseConfig) {\n  // We don't know exactly when the update was scheduled, but we can infer an\n  // approximate start time from the expiration time by subtracting the timeout\n  // that was added to the event time.\n  var earliestExpirationTimeMs = expirationTimeToMs(expirationTime);\n  return earliestExpirationTimeMs - (suspenseConfig.timeoutMs | 0 || LOW_PRIORITY_EXPIRATION);\n}\n\nfunction workLoopSync() {\n  // Already timed out, so perform work without checking if we need to yield.\n  while (workInProgress !== null) {\n    workInProgress = performUnitOfWork(workInProgress);\n  }\n}\n\nfunction workLoop() {\n  // Perform work until Scheduler asks us to yield\n  while (workInProgress !== null && !shouldYield()) {\n    workInProgress = performUnitOfWork(workInProgress);\n  }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n  // The current, flushed, state of this fiber is the alternate. Ideally\n  // nothing should rely on this, but relying on it here means that we don't\n  // need an additional field on the work in progress.\n  var current$$1 = unitOfWork.alternate;\n\n  startWorkTimer(unitOfWork);\n  setCurrentFiber(unitOfWork);\n\n  var next = void 0;\n  if (enableProfilerTimer && (unitOfWork.mode & ProfileMode) !== NoMode) {\n    startProfilerTimer(unitOfWork);\n    next = beginWork$$1(current$$1, unitOfWork, renderExpirationTime);\n    stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n  } else {\n    next = beginWork$$1(current$$1, unitOfWork, renderExpirationTime);\n  }\n\n  resetCurrentFiber();\n  unitOfWork.memoizedProps = unitOfWork.pendingProps;\n  if (next === null) {\n    // If this doesn't spawn new work, complete the current work.\n    next = completeUnitOfWork(unitOfWork);\n  }\n\n  ReactCurrentOwner$2.current = null;\n  return next;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n  // Attempt to complete the current unit of work, then move to the next\n  // sibling. If there are no more siblings, return to the parent fiber.\n  workInProgress = unitOfWork;\n  do {\n    // The current, flushed, state of this fiber is the alternate. Ideally\n    // nothing should rely on this, but relying on it here means that we don't\n    // need an additional field on the work in progress.\n    var current$$1 = workInProgress.alternate;\n    var returnFiber = workInProgress.return;\n\n    // Check if the work completed or if something threw.\n    if ((workInProgress.effectTag & Incomplete) === NoEffect) {\n      setCurrentFiber(workInProgress);\n      var next = void 0;\n      if (!enableProfilerTimer || (workInProgress.mode & ProfileMode) === NoMode) {\n        next = completeWork(current$$1, workInProgress, renderExpirationTime);\n      } else {\n        startProfilerTimer(workInProgress);\n        next = completeWork(current$$1, workInProgress, renderExpirationTime);\n        // Update render duration assuming we didn't error.\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);\n      }\n      stopWorkTimer(workInProgress);\n      resetCurrentFiber();\n      resetChildExpirationTime(workInProgress);\n\n      if (next !== null) {\n        // Completing this fiber spawned new work. Work on that next.\n        return next;\n      }\n\n      if (returnFiber !== null &&\n      // Do not append effects to parents if a sibling failed to complete\n      (returnFiber.effectTag & Incomplete) === NoEffect) {\n        // Append all the effects of the subtree and this fiber onto the effect\n        // list of the parent. The completion order of the children affects the\n        // side-effect order.\n        if (returnFiber.firstEffect === null) {\n          returnFiber.firstEffect = workInProgress.firstEffect;\n        }\n        if (workInProgress.lastEffect !== null) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress.firstEffect;\n          }\n          returnFiber.lastEffect = workInProgress.lastEffect;\n        }\n\n        // If this fiber had side-effects, we append it AFTER the children's\n        // side-effects. We can perform certain side-effects earlier if needed,\n        // by doing multiple passes over the effect list. We don't want to\n        // schedule our own side-effect on our own list because if end up\n        // reusing children we'll schedule this effect onto itself since we're\n        // at the end.\n        var effectTag = workInProgress.effectTag;\n\n        // Skip both NoWork and PerformedWork tags when creating the effect\n        // list. PerformedWork effect is read by React DevTools but shouldn't be\n        // committed.\n        if (effectTag > PerformedWork) {\n          if (returnFiber.lastEffect !== null) {\n            returnFiber.lastEffect.nextEffect = workInProgress;\n          } else {\n            returnFiber.firstEffect = workInProgress;\n          }\n          returnFiber.lastEffect = workInProgress;\n        }\n      }\n    } else {\n      // This fiber did not complete because something threw. Pop values off\n      // the stack without entering the complete phase. If this is a boundary,\n      // capture values if possible.\n      var _next = unwindWork(workInProgress, renderExpirationTime);\n\n      // Because this fiber did not complete, don't reset its expiration time.\n\n      if (enableProfilerTimer && (workInProgress.mode & ProfileMode) !== NoMode) {\n        // Record the render duration for the fiber that errored.\n        stopProfilerTimerIfRunningAndRecordDelta(workInProgress, false);\n\n        // Include the time spent working on failed children before continuing.\n        var actualDuration = workInProgress.actualDuration;\n        var child = workInProgress.child;\n        while (child !== null) {\n          actualDuration += child.actualDuration;\n          child = child.sibling;\n        }\n        workInProgress.actualDuration = actualDuration;\n      }\n\n      if (_next !== null) {\n        // If completing this work spawned new work, do that next. We'll come\n        // back here again.\n        // Since we're restarting, remove anything that is not a host effect\n        // from the effect tag.\n        // TODO: The name stopFailedWorkTimer is misleading because Suspense\n        // also captures and restarts.\n        stopFailedWorkTimer(workInProgress);\n        _next.effectTag &= HostEffectMask;\n        return _next;\n      }\n      stopWorkTimer(workInProgress);\n\n      if (returnFiber !== null) {\n        // Mark the parent fiber as incomplete and clear its effect list.\n        returnFiber.firstEffect = returnFiber.lastEffect = null;\n        returnFiber.effectTag |= Incomplete;\n      }\n    }\n\n    var siblingFiber = workInProgress.sibling;\n    if (siblingFiber !== null) {\n      // If there is more work to do in this returnFiber, do that next.\n      return siblingFiber;\n    }\n    // Otherwise, return to the parent\n    workInProgress = returnFiber;\n  } while (workInProgress !== null);\n\n  // We've reached the root.\n  if (workInProgressRootExitStatus === RootIncomplete) {\n    workInProgressRootExitStatus = RootCompleted;\n  }\n  return null;\n}\n\nfunction resetChildExpirationTime(completedWork) {\n  if (renderExpirationTime !== Never && completedWork.childExpirationTime === Never) {\n    // The children of this component are hidden. Don't bubble their\n    // expiration times.\n    return;\n  }\n\n  var newChildExpirationTime = NoWork;\n\n  // Bubble up the earliest expiration time.\n  if (enableProfilerTimer && (completedWork.mode & ProfileMode) !== NoMode) {\n    // In profiling mode, resetChildExpirationTime is also used to reset\n    // profiler durations.\n    var actualDuration = completedWork.actualDuration;\n    var treeBaseDuration = completedWork.selfBaseDuration;\n\n    // When a fiber is cloned, its actualDuration is reset to 0. This value will\n    // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n    // When work is done, it should bubble to the parent's actualDuration. If\n    // the fiber has not been cloned though, (meaning no work was done), then\n    // this value will reflect the amount of time spent working on a previous\n    // render. In that case it should not bubble. We determine whether it was\n    // cloned by comparing the child pointer.\n    var shouldBubbleActualDurations = completedWork.alternate === null || completedWork.child !== completedWork.alternate.child;\n\n    var child = completedWork.child;\n    while (child !== null) {\n      var childUpdateExpirationTime = child.expirationTime;\n      var childChildExpirationTime = child.childExpirationTime;\n      if (childUpdateExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = childUpdateExpirationTime;\n      }\n      if (childChildExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = childChildExpirationTime;\n      }\n      if (shouldBubbleActualDurations) {\n        actualDuration += child.actualDuration;\n      }\n      treeBaseDuration += child.treeBaseDuration;\n      child = child.sibling;\n    }\n    completedWork.actualDuration = actualDuration;\n    completedWork.treeBaseDuration = treeBaseDuration;\n  } else {\n    var _child = completedWork.child;\n    while (_child !== null) {\n      var _childUpdateExpirationTime = _child.expirationTime;\n      var _childChildExpirationTime = _child.childExpirationTime;\n      if (_childUpdateExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = _childUpdateExpirationTime;\n      }\n      if (_childChildExpirationTime > newChildExpirationTime) {\n        newChildExpirationTime = _childChildExpirationTime;\n      }\n      _child = _child.sibling;\n    }\n  }\n\n  completedWork.childExpirationTime = newChildExpirationTime;\n}\n\nfunction commitRoot(root) {\n  var renderPriorityLevel = getCurrentPriorityLevel();\n  runWithPriority$2(ImmediatePriority, commitRootImpl.bind(null, root, renderPriorityLevel));\n  // If there are passive effects, schedule a callback to flush them. This goes\n  // outside commitRootImpl so that it inherits the priority of the render.\n  if (rootWithPendingPassiveEffects !== null) {\n    scheduleCallback(NormalPriority, function () {\n      flushPassiveEffects();\n      return null;\n    });\n  }\n  return null;\n}\n\nfunction commitRootImpl(root, renderPriorityLevel) {\n  flushPassiveEffects();\n  flushRenderPhaseStrictModeWarningsInDEV();\n\n  (function () {\n    if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n      {\n        throw ReactError(Error('Should not already be working.'));\n      }\n    }\n  })();\n\n  var finishedWork = root.finishedWork;\n  var expirationTime = root.finishedExpirationTime;\n  if (finishedWork === null) {\n    return null;\n  }\n  root.finishedWork = null;\n  root.finishedExpirationTime = NoWork;\n\n  (function () {\n    if (!(finishedWork !== root.current)) {\n      {\n        throw ReactError(Error('Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.'));\n      }\n    }\n  })();\n\n  // commitRoot never returns a continuation; it always finishes synchronously.\n  // So we can clear these now to allow a new callback to be scheduled.\n  root.callbackNode = null;\n  root.callbackExpirationTime = NoWork;\n\n  startCommitTimer();\n\n  // Update the first and last pending times on this root. The new first\n  // pending time is whatever is left on the root fiber.\n  var updateExpirationTimeBeforeCommit = finishedWork.expirationTime;\n  var childExpirationTimeBeforeCommit = finishedWork.childExpirationTime;\n  var firstPendingTimeBeforeCommit = childExpirationTimeBeforeCommit > updateExpirationTimeBeforeCommit ? childExpirationTimeBeforeCommit : updateExpirationTimeBeforeCommit;\n  root.firstPendingTime = firstPendingTimeBeforeCommit;\n  if (firstPendingTimeBeforeCommit < root.lastPendingTime) {\n    // This usually means we've finished all the work, but it can also happen\n    // when something gets downprioritized during render, like a hidden tree.\n    root.lastPendingTime = firstPendingTimeBeforeCommit;\n  }\n\n  if (root === workInProgressRoot) {\n    // We can reset these now that they are finished.\n    workInProgressRoot = null;\n    workInProgress = null;\n    renderExpirationTime = NoWork;\n  } else {}\n  // This indicates that the last root we worked on is not the same one that\n  // we're committing now. This most commonly happens when a suspended root\n  // times out.\n\n\n  // Get the list of effects.\n  var firstEffect = void 0;\n  if (finishedWork.effectTag > PerformedWork) {\n    // A fiber's effect list consists only of its children, not itself. So if\n    // the root has an effect, we need to add it to the end of the list. The\n    // resulting list is the set that would belong to the root's parent, if it\n    // had one; that is, all the effects in the tree including the root.\n    if (finishedWork.lastEffect !== null) {\n      finishedWork.lastEffect.nextEffect = finishedWork;\n      firstEffect = finishedWork.firstEffect;\n    } else {\n      firstEffect = finishedWork;\n    }\n  } else {\n    // There is no effect on the root.\n    firstEffect = finishedWork.firstEffect;\n  }\n\n  if (firstEffect !== null) {\n    var prevExecutionContext = executionContext;\n    executionContext |= CommitContext;\n    var prevInteractions = null;\n    if (enableSchedulerTracing) {\n      prevInteractions = __interactionsRef.current;\n      __interactionsRef.current = root.memoizedInteractions;\n    }\n\n    // Reset this to null before calling lifecycles\n    ReactCurrentOwner$2.current = null;\n\n    // The commit phase is broken into several sub-phases. We do a separate pass\n    // of the effect list for each phase: all mutation effects come before all\n    // layout effects, and so on.\n\n    // The first phase a \"before mutation\" phase. We use this phase to read the\n    // state of the host tree right before we mutate it. This is where\n    // getSnapshotBeforeUpdate is called.\n    startCommitSnapshotEffectsTimer();\n    prepareForCommit(root.containerInfo);\n    nextEffect = firstEffect;\n    do {\n      {\n        invokeGuardedCallback(null, commitBeforeMutationEffects, null);\n        if (hasCaughtError()) {\n          (function () {\n            if (!(nextEffect !== null)) {\n              {\n                throw ReactError(Error('Should be working on an effect.'));\n              }\n            }\n          })();\n          var error = clearCaughtError();\n          captureCommitPhaseError(nextEffect, error);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n    stopCommitSnapshotEffectsTimer();\n\n    if (enableProfilerTimer) {\n      // Mark the current commit time to be shared by all Profilers in this\n      // batch. This enables them to be grouped later.\n      recordCommitTime();\n    }\n\n    // The next phase is the mutation phase, where we mutate the host tree.\n    startCommitHostEffectsTimer();\n    nextEffect = firstEffect;\n    do {\n      {\n        invokeGuardedCallback(null, commitMutationEffects, null, renderPriorityLevel);\n        if (hasCaughtError()) {\n          (function () {\n            if (!(nextEffect !== null)) {\n              {\n                throw ReactError(Error('Should be working on an effect.'));\n              }\n            }\n          })();\n          var _error = clearCaughtError();\n          captureCommitPhaseError(nextEffect, _error);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n    stopCommitHostEffectsTimer();\n    resetAfterCommit(root.containerInfo);\n\n    // The work-in-progress tree is now the current tree. This must come after\n    // the mutation phase, so that the previous tree is still current during\n    // componentWillUnmount, but before the layout phase, so that the finished\n    // work is current during componentDidMount/Update.\n    root.current = finishedWork;\n\n    // The next phase is the layout phase, where we call effects that read\n    // the host tree after it's been mutated. The idiomatic use case for this is\n    // layout, but class component lifecycles also fire here for legacy reasons.\n    startCommitLifeCyclesTimer();\n    nextEffect = firstEffect;\n    do {\n      {\n        invokeGuardedCallback(null, commitLayoutEffects, null, root, expirationTime);\n        if (hasCaughtError()) {\n          (function () {\n            if (!(nextEffect !== null)) {\n              {\n                throw ReactError(Error('Should be working on an effect.'));\n              }\n            }\n          })();\n          var _error2 = clearCaughtError();\n          captureCommitPhaseError(nextEffect, _error2);\n          nextEffect = nextEffect.nextEffect;\n        }\n      }\n    } while (nextEffect !== null);\n    stopCommitLifeCyclesTimer();\n\n    nextEffect = null;\n\n    // Tell Scheduler to yield at the end of the frame, so the browser has an\n    // opportunity to paint.\n    requestPaint();\n\n    if (enableSchedulerTracing) {\n      __interactionsRef.current = prevInteractions;\n    }\n    executionContext = prevExecutionContext;\n  } else {\n    // No effects.\n    root.current = finishedWork;\n    // Measure these anyway so the flamegraph explicitly shows that there were\n    // no effects.\n    // TODO: Maybe there's a better way to report this.\n    startCommitSnapshotEffectsTimer();\n    stopCommitSnapshotEffectsTimer();\n    if (enableProfilerTimer) {\n      recordCommitTime();\n    }\n    startCommitHostEffectsTimer();\n    stopCommitHostEffectsTimer();\n    startCommitLifeCyclesTimer();\n    stopCommitLifeCyclesTimer();\n  }\n\n  stopCommitTimer();\n\n  var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n  if (rootDoesHavePassiveEffects) {\n    // This commit has passive effects. Stash a reference to them. But don't\n    // schedule a callback until after flushing layout work.\n    rootDoesHavePassiveEffects = false;\n    rootWithPendingPassiveEffects = root;\n    pendingPassiveEffectsExpirationTime = expirationTime;\n    pendingPassiveEffectsRenderPriority = renderPriorityLevel;\n  } else {\n    // We are done with the effect chain at this point so let's clear the\n    // nextEffect pointers to assist with GC. If we have passive effects, we'll\n    // clear this in flushPassiveEffects.\n    nextEffect = firstEffect;\n    while (nextEffect !== null) {\n      var nextNextEffect = nextEffect.nextEffect;\n      nextEffect.nextEffect = null;\n      nextEffect = nextNextEffect;\n    }\n  }\n\n  // Check if there's remaining work on this root\n  var remainingExpirationTime = root.firstPendingTime;\n  if (remainingExpirationTime !== NoWork) {\n    var currentTime = requestCurrentTime();\n    var priorityLevel = inferPriorityFromExpirationTime(currentTime, remainingExpirationTime);\n\n    if (enableSchedulerTracing) {\n      if (spawnedWorkDuringRender !== null) {\n        var expirationTimes = spawnedWorkDuringRender;\n        spawnedWorkDuringRender = null;\n        for (var i = 0; i < expirationTimes.length; i++) {\n          scheduleInteractions(root, expirationTimes[i], root.memoizedInteractions);\n        }\n      }\n    }\n\n    scheduleCallbackForRoot(root, priorityLevel, remainingExpirationTime);\n  } else {\n    // If there's no remaining work, we can clear the set of already failed\n    // error boundaries.\n    legacyErrorBoundariesThatAlreadyFailed = null;\n  }\n\n  if (enableSchedulerTracing) {\n    if (!rootDidHavePassiveEffects) {\n      // If there are no passive effects, then we can complete the pending interactions.\n      // Otherwise, we'll wait until after the passive effects are flushed.\n      // Wait to do this until after remaining work has been scheduled,\n      // so that we don't prematurely signal complete for interactions when there's e.g. hidden work.\n      finishPendingInteractions(root, expirationTime);\n    }\n  }\n\n  onCommitRoot(finishedWork.stateNode, expirationTime);\n\n  if (remainingExpirationTime === Sync) {\n    // Count the number of times the root synchronously re-renders without\n    // finishing. If there are too many, it indicates an infinite update loop.\n    if (root === rootWithNestedUpdates) {\n      nestedUpdateCount++;\n    } else {\n      nestedUpdateCount = 0;\n      rootWithNestedUpdates = root;\n    }\n  } else {\n    nestedUpdateCount = 0;\n  }\n\n  if (hasUncaughtError) {\n    hasUncaughtError = false;\n    var _error3 = firstUncaughtError;\n    firstUncaughtError = null;\n    throw _error3;\n  }\n\n  if ((executionContext & LegacyUnbatchedContext) !== NoContext) {\n    // This is a legacy edge case. We just committed the initial mount of\n    // a ReactDOM.render-ed root inside of batchedUpdates. The commit fired\n    // synchronously, but layout updates should be deferred until the end\n    // of the batch.\n    return null;\n  }\n\n  // If layout work was scheduled, flush it now.\n  flushSyncCallbackQueue();\n  return null;\n}\n\nfunction commitBeforeMutationEffects() {\n  while (nextEffect !== null) {\n    if ((nextEffect.effectTag & Snapshot) !== NoEffect) {\n      setCurrentFiber(nextEffect);\n      recordEffect();\n\n      var current$$1 = nextEffect.alternate;\n      commitBeforeMutationLifeCycles(current$$1, nextEffect);\n\n      resetCurrentFiber();\n    }\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction commitMutationEffects(renderPriorityLevel) {\n  // TODO: Should probably move the bulk of this function to commitWork.\n  while (nextEffect !== null) {\n    setCurrentFiber(nextEffect);\n\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & ContentReset) {\n      commitResetTextContent(nextEffect);\n    }\n\n    if (effectTag & Ref) {\n      var current$$1 = nextEffect.alternate;\n      if (current$$1 !== null) {\n        commitDetachRef(current$$1);\n      }\n    }\n\n    // The following switch statement is only concerned about placement,\n    // updates, and deletions. To avoid needing to add a case for every possible\n    // bitmap value, we remove the secondary effects from the effect tag and\n    // switch on that value.\n    var primaryEffectTag = effectTag & (Placement | Update | Deletion);\n    switch (primaryEffectTag) {\n      case Placement:\n        {\n          commitPlacement(nextEffect);\n          // Clear the \"placement\" from effect tag so that we know that this is\n          // inserted, before any life-cycles like componentDidMount gets called.\n          // TODO: findDOMNode doesn't rely on this any more but isMounted does\n          // and isMounted is deprecated anyway so we should be able to kill this.\n          nextEffect.effectTag &= ~Placement;\n          break;\n        }\n      case PlacementAndUpdate:\n        {\n          // Placement\n          commitPlacement(nextEffect);\n          // Clear the \"placement\" from effect tag so that we know that this is\n          // inserted, before any life-cycles like componentDidMount gets called.\n          nextEffect.effectTag &= ~Placement;\n\n          // Update\n          var _current = nextEffect.alternate;\n          commitWork(_current, nextEffect);\n          break;\n        }\n      case Update:\n        {\n          var _current2 = nextEffect.alternate;\n          commitWork(_current2, nextEffect);\n          break;\n        }\n      case Deletion:\n        {\n          commitDeletion(nextEffect, renderPriorityLevel);\n          break;\n        }\n    }\n\n    // TODO: Only record a mutation effect if primaryEffectTag is non-zero.\n    recordEffect();\n\n    resetCurrentFiber();\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction commitLayoutEffects(root, committedExpirationTime) {\n  // TODO: Should probably move the bulk of this function to commitWork.\n  while (nextEffect !== null) {\n    setCurrentFiber(nextEffect);\n\n    var effectTag = nextEffect.effectTag;\n\n    if (effectTag & (Update | Callback)) {\n      recordEffect();\n      var current$$1 = nextEffect.alternate;\n      commitLifeCycles(root, current$$1, nextEffect, committedExpirationTime);\n    }\n\n    if (effectTag & Ref) {\n      recordEffect();\n      commitAttachRef(nextEffect);\n    }\n\n    if (effectTag & Passive) {\n      rootDoesHavePassiveEffects = true;\n    }\n\n    resetCurrentFiber();\n    nextEffect = nextEffect.nextEffect;\n  }\n}\n\nfunction flushPassiveEffects() {\n  if (rootWithPendingPassiveEffects === null) {\n    return false;\n  }\n  var root = rootWithPendingPassiveEffects;\n  var expirationTime = pendingPassiveEffectsExpirationTime;\n  var renderPriorityLevel = pendingPassiveEffectsRenderPriority;\n  rootWithPendingPassiveEffects = null;\n  pendingPassiveEffectsExpirationTime = NoWork;\n  pendingPassiveEffectsRenderPriority = NoPriority;\n  var priorityLevel = renderPriorityLevel > NormalPriority ? NormalPriority : renderPriorityLevel;\n  return runWithPriority$2(priorityLevel, flushPassiveEffectsImpl.bind(null, root, expirationTime));\n}\n\nfunction flushPassiveEffectsImpl(root, expirationTime) {\n  var prevInteractions = null;\n  if (enableSchedulerTracing) {\n    prevInteractions = __interactionsRef.current;\n    __interactionsRef.current = root.memoizedInteractions;\n  }\n\n  (function () {\n    if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n      {\n        throw ReactError(Error('Cannot flush passive effects while already rendering.'));\n      }\n    }\n  })();\n  var prevExecutionContext = executionContext;\n  executionContext |= CommitContext;\n\n  // Note: This currently assumes there are no passive effects on the root\n  // fiber, because the root is not part of its own effect list. This could\n  // change in the future.\n  var effect = root.current.firstEffect;\n  while (effect !== null) {\n    {\n      setCurrentFiber(effect);\n      invokeGuardedCallback(null, commitPassiveHookEffects, null, effect);\n      if (hasCaughtError()) {\n        (function () {\n          if (!(effect !== null)) {\n            {\n              throw ReactError(Error('Should be working on an effect.'));\n            }\n          }\n        })();\n        var error = clearCaughtError();\n        captureCommitPhaseError(effect, error);\n      }\n      resetCurrentFiber();\n    }\n    var nextNextEffect = effect.nextEffect;\n    // Remove nextEffect pointer to assist GC\n    effect.nextEffect = null;\n    effect = nextNextEffect;\n  }\n\n  if (enableSchedulerTracing) {\n    __interactionsRef.current = prevInteractions;\n    finishPendingInteractions(root, expirationTime);\n  }\n\n  executionContext = prevExecutionContext;\n  flushSyncCallbackQueue();\n\n  // If additional passive effects were scheduled, increment a counter. If this\n  // exceeds the limit, we'll fire a warning.\n  nestedPassiveUpdateCount = rootWithPendingPassiveEffects === null ? 0 : nestedPassiveUpdateCount + 1;\n\n  return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n  return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\n\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n  if (legacyErrorBoundariesThatAlreadyFailed === null) {\n    legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n  } else {\n    legacyErrorBoundariesThatAlreadyFailed.add(instance);\n  }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n  if (!hasUncaughtError) {\n    hasUncaughtError = true;\n    firstUncaughtError = error;\n  }\n}\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n  var errorInfo = createCapturedValue(error, sourceFiber);\n  var update = createRootErrorUpdate(rootFiber, errorInfo, Sync);\n  enqueueUpdate(rootFiber, update);\n  var root = markUpdateTimeFromFiberToRoot(rootFiber, Sync);\n  if (root !== null) {\n    scheduleCallbackForRoot(root, ImmediatePriority, Sync);\n  }\n}\n\nfunction captureCommitPhaseError(sourceFiber, error) {\n  if (sourceFiber.tag === HostRoot) {\n    // Error was thrown at the root. There is no parent, so the root\n    // itself should capture it.\n    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n    return;\n  }\n\n  var fiber = sourceFiber.return;\n  while (fiber !== null) {\n    if (fiber.tag === HostRoot) {\n      captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error);\n      return;\n    } else if (fiber.tag === ClassComponent) {\n      var ctor = fiber.type;\n      var instance = fiber.stateNode;\n      if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n        var errorInfo = createCapturedValue(error, sourceFiber);\n        var update = createClassErrorUpdate(fiber, errorInfo,\n        // TODO: This is always sync\n        Sync);\n        enqueueUpdate(fiber, update);\n        var root = markUpdateTimeFromFiberToRoot(fiber, Sync);\n        if (root !== null) {\n          scheduleCallbackForRoot(root, ImmediatePriority, Sync);\n        }\n        return;\n      }\n    }\n    fiber = fiber.return;\n  }\n}\n\nfunction pingSuspendedRoot(root, thenable, suspendedTime) {\n  var pingCache = root.pingCache;\n  if (pingCache !== null) {\n    // The thenable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    pingCache.delete(thenable);\n  }\n\n  if (workInProgressRoot === root && renderExpirationTime === suspendedTime) {\n    // Received a ping at the same priority level at which we're currently\n    // rendering. We might want to restart this render. This should mirror\n    // the logic of whether or not a root suspends once it completes.\n\n    // TODO: If we're rendering sync either due to Sync, Batched or expired,\n    // we should probably never restart.\n\n    // If we're suspended with delay, we'll always suspend so we can always\n    // restart. If we're suspended without any updates, it might be a retry.\n    // If it's early in the retry we can restart. We can't know for sure\n    // whether we'll eventually process an update during this render pass,\n    // but it's somewhat unlikely that we get to a ping before that, since\n    // getting to the root most update is usually very fast.\n    if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && workInProgressRootLatestProcessedExpirationTime === Sync && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n      // Restart from the root. Don't need to schedule a ping because\n      // we're already working on this tree.\n      prepareFreshStack(root, renderExpirationTime);\n    } else {\n      // Even though we can't restart right now, we might get an\n      // opportunity later. So we mark this render as having a ping.\n      workInProgressRootHasPendingPing = true;\n    }\n    return;\n  }\n\n  var lastPendingTime = root.lastPendingTime;\n  if (lastPendingTime < suspendedTime) {\n    // The root is no longer suspended at this time.\n    return;\n  }\n\n  var pingTime = root.pingTime;\n  if (pingTime !== NoWork && pingTime < suspendedTime) {\n    // There's already a lower priority ping scheduled.\n    return;\n  }\n\n  // Mark the time at which this ping was scheduled.\n  root.pingTime = suspendedTime;\n\n  if (root.finishedExpirationTime === suspendedTime) {\n    // If there's a pending fallback waiting to commit, throw it away.\n    root.finishedExpirationTime = NoWork;\n    root.finishedWork = null;\n  }\n\n  var currentTime = requestCurrentTime();\n  var priorityLevel = inferPriorityFromExpirationTime(currentTime, suspendedTime);\n  scheduleCallbackForRoot(root, priorityLevel, suspendedTime);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber) {\n  // The boundary fiber (a Suspense component or SuspenseList component)\n  // previously was rendered in its fallback state. One of the promises that\n  // suspended it has resolved, which means at least part of the tree was\n  // likely unblocked. Try rendering again, at a new expiration time.\n  var currentTime = requestCurrentTime();\n  var suspenseConfig = null; // Retries don't carry over the already committed update.\n  var retryTime = computeExpirationForFiber(currentTime, boundaryFiber, suspenseConfig);\n  // TODO: Special case idle priority?\n  var priorityLevel = inferPriorityFromExpirationTime(currentTime, retryTime);\n  var root = markUpdateTimeFromFiberToRoot(boundaryFiber, retryTime);\n  if (root !== null) {\n    scheduleCallbackForRoot(root, priorityLevel, retryTime);\n  }\n}\n\nfunction resolveRetryThenable(boundaryFiber, thenable) {\n  var retryCache = void 0;\n  if (enableSuspenseServerRenderer) {\n    switch (boundaryFiber.tag) {\n      case SuspenseComponent:\n        retryCache = boundaryFiber.stateNode;\n        break;\n      case DehydratedSuspenseComponent:\n        retryCache = boundaryFiber.memoizedState;\n        break;\n      default:\n        (function () {\n          {\n            {\n              throw ReactError(Error('Pinged unknown suspense boundary type. This is probably a bug in React.'));\n            }\n          }\n        })();\n    }\n  } else {\n    retryCache = boundaryFiber.stateNode;\n  }\n\n  if (retryCache !== null) {\n    // The thenable resolved, so we no longer need to memoize, because it will\n    // never be thrown again.\n    retryCache.delete(thenable);\n  }\n\n  retryTimedOutBoundary(boundaryFiber);\n}\n\n// Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\nfunction jnd(timeElapsed) {\n  return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction computeMsUntilSuspenseLoadingDelay(mostRecentEventTime, committedExpirationTime, suspenseConfig) {\n  var busyMinDurationMs = suspenseConfig.busyMinDurationMs | 0;\n  if (busyMinDurationMs <= 0) {\n    return 0;\n  }\n  var busyDelayMs = suspenseConfig.busyDelayMs | 0;\n\n  // Compute the time until this render pass would expire.\n  var currentTimeMs = now();\n  var eventTimeMs = inferTimeFromExpirationTimeWithSuspenseConfig(mostRecentEventTime, suspenseConfig);\n  var timeElapsed = currentTimeMs - eventTimeMs;\n  if (timeElapsed <= busyDelayMs) {\n    // If we haven't yet waited longer than the initial delay, we don't\n    // have to wait any additional time.\n    return 0;\n  }\n  var msUntilTimeout = busyDelayMs + busyMinDurationMs - timeElapsed;\n  // This is the value that is passed to `setTimeout`.\n  return msUntilTimeout;\n}\n\nfunction checkForNestedUpdates() {\n  if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n    nestedUpdateCount = 0;\n    rootWithNestedUpdates = null;\n    (function () {\n      {\n        {\n          throw ReactError(Error('Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.'));\n        }\n      }\n    })();\n  }\n\n  {\n    if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n      nestedPassiveUpdateCount = 0;\n      warning$1(false, 'Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n    }\n  }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n  {\n    ReactStrictModeWarnings.flushLegacyContextWarning();\n\n    if (warnAboutDeprecatedLifecycles) {\n      ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n    }\n  }\n}\n\nfunction stopFinishedWorkLoopTimer() {\n  var didCompleteRoot = true;\n  stopWorkLoopTimer(interruptedBy, didCompleteRoot);\n  interruptedBy = null;\n}\n\nfunction stopInterruptedWorkLoopTimer() {\n  // TODO: Track which fiber caused the interruption.\n  var didCompleteRoot = false;\n  stopWorkLoopTimer(interruptedBy, didCompleteRoot);\n  interruptedBy = null;\n}\n\nfunction checkForInterruption(fiberThatReceivedUpdate, updateExpirationTime) {\n  if (enableUserTimingAPI && workInProgressRoot !== null && updateExpirationTime > renderExpirationTime) {\n    interruptedBy = fiberThatReceivedUpdate;\n  }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = null;\nfunction warnAboutUpdateOnUnmountedFiberInDEV(fiber) {\n  {\n    var tag = fiber.tag;\n    if (tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent) {\n      // Only warn for user-defined components, not internal ones like Suspense.\n      return;\n    }\n    // We show the whole stack but dedupe on the top component's name because\n    // the problematic code almost always lies inside that component.\n    var componentName = getComponentName(fiber.type) || 'ReactComponent';\n    if (didWarnStateUpdateForUnmountedComponent !== null) {\n      if (didWarnStateUpdateForUnmountedComponent.has(componentName)) {\n        return;\n      }\n      didWarnStateUpdateForUnmountedComponent.add(componentName);\n    } else {\n      didWarnStateUpdateForUnmountedComponent = new Set([componentName]);\n    }\n    warningWithoutStack$1(false, \"Can't perform a React state update on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.%s', tag === ClassComponent ? 'the componentWillUnmount method' : 'a useEffect cleanup function', getStackByFiberInDevAndProd(fiber));\n  }\n}\n\nvar beginWork$$1 = void 0;\nif (true && replayFailedUnitOfWorkWithInvokeGuardedCallback) {\n  var dummyFiber = null;\n  beginWork$$1 = function (current$$1, unitOfWork, expirationTime) {\n    // If a component throws an error, we replay it again in a synchronously\n    // dispatched event, so that the debugger will treat it as an uncaught\n    // error See ReactErrorUtils for more information.\n\n    // Before entering the begin phase, copy the work-in-progress onto a dummy\n    // fiber. If beginWork throws, we'll use this to reset the state.\n    var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n    try {\n      return beginWork$1(current$$1, unitOfWork, expirationTime);\n    } catch (originalError) {\n      if (originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n        // Don't replay promises. Treat everything else like an error.\n        throw originalError;\n      }\n\n      // Keep this code in sync with renderRoot; any changes here must have\n      // corresponding changes there.\n      resetContextDependencies();\n      resetHooks();\n\n      // Unwind the failed stack frame\n      unwindInterruptedWork(unitOfWork);\n\n      // Restore the original properties of the fiber.\n      assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n      if (enableProfilerTimer && unitOfWork.mode & ProfileMode) {\n        // Reset the profiler timer.\n        startProfilerTimer(unitOfWork);\n      }\n\n      // Run beginWork again.\n      invokeGuardedCallback(null, beginWork$1, null, current$$1, unitOfWork, expirationTime);\n\n      if (hasCaughtError()) {\n        var replayError = clearCaughtError();\n        // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.\n        // Rethrow this error instead of the original one.\n        throw replayError;\n      } else {\n        // This branch is reachable if the render phase is impure.\n        throw originalError;\n      }\n    }\n  };\n} else {\n  beginWork$$1 = beginWork$1;\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInGetChildContext = false;\nfunction warnAboutInvalidUpdatesOnClassComponentsInDEV(fiber) {\n  {\n    if (fiber.tag === ClassComponent) {\n      switch (phase) {\n        case 'getChildContext':\n          if (didWarnAboutUpdateInGetChildContext) {\n            return;\n          }\n          warningWithoutStack$1(false, 'setState(...): Cannot call setState() inside getChildContext()');\n          didWarnAboutUpdateInGetChildContext = true;\n          break;\n        case 'render':\n          if (didWarnAboutUpdateInRender) {\n            return;\n          }\n          warningWithoutStack$1(false, 'Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure function of ' + 'props and state.');\n          didWarnAboutUpdateInRender = true;\n          break;\n      }\n    }\n  }\n}\n\n// a 'shared' variable that changes when act() opens/closes in tests.\nvar IsThisRendererActing = { current: false };\n\nfunction warnIfNotScopedWithMatchingAct(fiber) {\n  {\n    if (warnsIfNotActing === true && IsSomeRendererActing.current === true && IsThisRendererActing.current !== true) {\n      warningWithoutStack$1(false, \"It looks like you're using the wrong act() around your test interactions.\\n\" + 'Be sure to use the matching version of act() corresponding to your renderer:\\n\\n' + '// for react-dom:\\n' + \"import {act} from 'react-dom/test-utils';\\n\" + '//...\\n' + 'act(() => ...);\\n\\n' + '// for react-test-renderer:\\n' + \"import TestRenderer from 'react-test-renderer';\\n\" + 'const {act} = TestRenderer;\\n' + '//...\\n' + 'act(() => ...);' + '%s', getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\n\nfunction warnIfNotCurrentlyActingEffectsInDEV(fiber) {\n  {\n    if (warnsIfNotActing === true && (fiber.mode & StrictMode) !== NoMode && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n      warningWithoutStack$1(false, 'An update to %s ran an effect, but was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + '  /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://fb.me/react-wrap-tests-with-act' + '%s', getComponentName(fiber.type), getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\n\nfunction warnIfNotCurrentlyActingUpdatesInDEV(fiber) {\n  {\n    if (warnsIfNotActing === true && executionContext === NoContext && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n      warningWithoutStack$1(false, 'An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + '  /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://fb.me/react-wrap-tests-with-act' + '%s', getComponentName(fiber.type), getStackByFiberInDevAndProd(fiber));\n    }\n  }\n}\n\nvar warnIfNotCurrentlyActingUpdatesInDev = warnIfNotCurrentlyActingUpdatesInDEV;\n\n// In tests, we want to enforce a mocked scheduler.\nvar didWarnAboutUnmockedScheduler = false;\n// TODO Before we release concurrent mode, revisit this and decide whether a mocked\n// scheduler is the actual recommendation. The alternative could be a testing build,\n// a new lib, or whatever; we dunno just yet. This message is for early adopters\n// to get their tests right.\n\nfunction warnIfUnmockedScheduler(fiber) {\n  {\n    if (didWarnAboutUnmockedScheduler === false && unstable_flushAllWithoutAsserting === undefined) {\n      if (fiber.mode & BatchedMode || fiber.mode & ConcurrentMode) {\n        didWarnAboutUnmockedScheduler = true;\n        warningWithoutStack$1(false, 'In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + \"jest.mock('scheduler', () => require('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://fb.me/react-mock-scheduler');\n      } else if (warnAboutUnmockedScheduler === true) {\n        didWarnAboutUnmockedScheduler = true;\n        warningWithoutStack$1(false, 'Starting from React v17, the \"scheduler\" module will need to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + \"jest.mock('scheduler', () => require('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://fb.me/react-mock-scheduler');\n      }\n    }\n  }\n}\n\nvar componentsThatTriggeredHighPriSuspend = null;\nfunction checkForWrongSuspensePriorityInDEV(sourceFiber) {\n  {\n    var currentPriorityLevel = getCurrentPriorityLevel();\n    if ((sourceFiber.mode & ConcurrentMode) !== NoEffect && (currentPriorityLevel === UserBlockingPriority$2 || currentPriorityLevel === ImmediatePriority)) {\n      var workInProgressNode = sourceFiber;\n      while (workInProgressNode !== null) {\n        // Add the component that triggered the suspense\n        var current$$1 = workInProgressNode.alternate;\n        if (current$$1 !== null) {\n          // TODO: warn component that triggers the high priority\n          // suspend is the HostRoot\n          switch (workInProgressNode.tag) {\n            case ClassComponent:\n              // Loop through the component's update queue and see whether the component\n              // has triggered any high priority updates\n              var updateQueue = current$$1.updateQueue;\n              if (updateQueue !== null) {\n                var update = updateQueue.firstUpdate;\n                while (update !== null) {\n                  var priorityLevel = update.priority;\n                  if (priorityLevel === UserBlockingPriority$2 || priorityLevel === ImmediatePriority) {\n                    if (componentsThatTriggeredHighPriSuspend === null) {\n                      componentsThatTriggeredHighPriSuspend = new Set([getComponentName(workInProgressNode.type)]);\n                    } else {\n                      componentsThatTriggeredHighPriSuspend.add(getComponentName(workInProgressNode.type));\n                    }\n                    break;\n                  }\n                  update = update.next;\n                }\n              }\n              break;\n            case FunctionComponent:\n            case ForwardRef:\n            case SimpleMemoComponent:\n              if (workInProgressNode.memoizedState !== null && workInProgressNode.memoizedState.baseUpdate !== null) {\n                var _update = workInProgressNode.memoizedState.baseUpdate;\n                // Loop through the functional component's memoized state to see whether\n                // the component has triggered any high pri updates\n                while (_update !== null) {\n                  var priority = _update.priority;\n                  if (priority === UserBlockingPriority$2 || priority === ImmediatePriority) {\n                    if (componentsThatTriggeredHighPriSuspend === null) {\n                      componentsThatTriggeredHighPriSuspend = new Set([getComponentName(workInProgressNode.type)]);\n                    } else {\n                      componentsThatTriggeredHighPriSuspend.add(getComponentName(workInProgressNode.type));\n                    }\n                    break;\n                  }\n                  if (_update.next === workInProgressNode.memoizedState.baseUpdate) {\n                    break;\n                  }\n                  _update = _update.next;\n                }\n              }\n              break;\n            default:\n              break;\n          }\n        }\n        workInProgressNode = workInProgressNode.return;\n      }\n    }\n  }\n}\n\nfunction flushSuspensePriorityWarningInDEV() {\n  {\n    if (componentsThatTriggeredHighPriSuspend !== null) {\n      var componentNames = [];\n      componentsThatTriggeredHighPriSuspend.forEach(function (name) {\n        return componentNames.push(name);\n      });\n      componentsThatTriggeredHighPriSuspend = null;\n\n      if (componentNames.length > 0) {\n        warningWithoutStack$1(false, '%s triggered a user-blocking update that suspended.' + '\\n\\n' + 'The fix is to split the update into multiple parts: a user-blocking ' + 'update to provide immediate feedback, and another update that ' + 'triggers the bulk of the changes.' + '\\n\\n' + 'Refer to the documentation for useSuspenseTransition to learn how ' + 'to implement this pattern.',\n        // TODO: Add link to React docs with more information, once it exists\n        componentNames.sort().join(', '));\n      }\n    }\n  }\n}\n\nfunction computeThreadID(root, expirationTime) {\n  // Interaction threads are unique per root and expiration time.\n  return expirationTime * 1000 + root.interactionThreadID;\n}\n\nfunction markSpawnedWork(expirationTime) {\n  if (!enableSchedulerTracing) {\n    return;\n  }\n  if (spawnedWorkDuringRender === null) {\n    spawnedWorkDuringRender = [expirationTime];\n  } else {\n    spawnedWorkDuringRender.push(expirationTime);\n  }\n}\n\nfunction scheduleInteractions(root, expirationTime, interactions) {\n  if (!enableSchedulerTracing) {\n    return;\n  }\n\n  if (interactions.size > 0) {\n    var pendingInteractionMap = root.pendingInteractionMap;\n    var pendingInteractions = pendingInteractionMap.get(expirationTime);\n    if (pendingInteractions != null) {\n      interactions.forEach(function (interaction) {\n        if (!pendingInteractions.has(interaction)) {\n          // Update the pending async work count for previously unscheduled interaction.\n          interaction.__count++;\n        }\n\n        pendingInteractions.add(interaction);\n      });\n    } else {\n      pendingInteractionMap.set(expirationTime, new Set(interactions));\n\n      // Update the pending async work count for the current interactions.\n      interactions.forEach(function (interaction) {\n        interaction.__count++;\n      });\n    }\n\n    var subscriber = __subscriberRef.current;\n    if (subscriber !== null) {\n      var threadID = computeThreadID(root, expirationTime);\n      subscriber.onWorkScheduled(interactions, threadID);\n    }\n  }\n}\n\nfunction schedulePendingInteractions(root, expirationTime) {\n  // This is called when work is scheduled on a root.\n  // It associates the current interactions with the newly-scheduled expiration.\n  // They will be restored when that expiration is later committed.\n  if (!enableSchedulerTracing) {\n    return;\n  }\n\n  scheduleInteractions(root, expirationTime, __interactionsRef.current);\n}\n\nfunction startWorkOnPendingInteractions(root, expirationTime) {\n  // This is called when new work is started on a root.\n  if (!enableSchedulerTracing) {\n    return;\n  }\n\n  // Determine which interactions this batch of work currently includes, So that\n  // we can accurately attribute time spent working on it, And so that cascading\n  // work triggered during the render phase will be associated with it.\n  var interactions = new Set();\n  root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n    if (scheduledExpirationTime >= expirationTime) {\n      scheduledInteractions.forEach(function (interaction) {\n        return interactions.add(interaction);\n      });\n    }\n  });\n\n  // Store the current set of interactions on the FiberRoot for a few reasons:\n  // We can re-use it in hot functions like renderRoot() without having to\n  // recalculate it. We will also use it in commitWork() to pass to any Profiler\n  // onRender() hooks. This also provides DevTools with a way to access it when\n  // the onCommitRoot() hook is called.\n  root.memoizedInteractions = interactions;\n\n  if (interactions.size > 0) {\n    var subscriber = __subscriberRef.current;\n    if (subscriber !== null) {\n      var threadID = computeThreadID(root, expirationTime);\n      try {\n        subscriber.onWorkStarted(interactions, threadID);\n      } catch (error) {\n        // If the subscriber throws, rethrow it in a separate task\n        scheduleCallback(ImmediatePriority, function () {\n          throw error;\n        });\n      }\n    }\n  }\n}\n\nfunction finishPendingInteractions(root, committedExpirationTime) {\n  if (!enableSchedulerTracing) {\n    return;\n  }\n\n  var earliestRemainingTimeAfterCommit = root.firstPendingTime;\n\n  var subscriber = void 0;\n\n  try {\n    subscriber = __subscriberRef.current;\n    if (subscriber !== null && root.memoizedInteractions.size > 0) {\n      var threadID = computeThreadID(root, committedExpirationTime);\n      subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n    }\n  } catch (error) {\n    // If the subscriber throws, rethrow it in a separate task\n    scheduleCallback(ImmediatePriority, function () {\n      throw error;\n    });\n  } finally {\n    // Clear completed interactions from the pending Map.\n    // Unless the render was suspended or cascading work was scheduled,\n    // In which case– leave pending interactions until the subsequent render.\n    var pendingInteractionMap = root.pendingInteractionMap;\n    pendingInteractionMap.forEach(function (scheduledInteractions, scheduledExpirationTime) {\n      // Only decrement the pending interaction count if we're done.\n      // If there's still work at the current priority,\n      // That indicates that we are waiting for suspense data.\n      if (scheduledExpirationTime > earliestRemainingTimeAfterCommit) {\n        pendingInteractionMap.delete(scheduledExpirationTime);\n\n        scheduledInteractions.forEach(function (interaction) {\n          interaction.__count--;\n\n          if (subscriber !== null && interaction.__count === 0) {\n            try {\n              subscriber.onInteractionScheduledWorkCompleted(interaction);\n            } catch (error) {\n              // If the subscriber throws, rethrow it in a separate task\n              scheduleCallback(ImmediatePriority, function () {\n                throw error;\n              });\n            }\n          }\n        });\n      }\n    });\n  }\n}\n\nvar onCommitFiberRoot = null;\nvar onCommitFiberUnmount = null;\nvar hasLoggedError = false;\n\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\n\nfunction injectInternals(internals) {\n  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n    // No DevTools\n    return false;\n  }\n  var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n  if (hook.isDisabled) {\n    // This isn't a real property on the hook, but it can be set to opt out\n    // of DevTools integration and associated warnings and logs.\n    // https://github.com/facebook/react/issues/3877\n    return true;\n  }\n  if (!hook.supportsFiber) {\n    {\n      warningWithoutStack$1(false, 'The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://fb.me/react-devtools');\n    }\n    // DevTools exists, even though it doesn't support Fiber.\n    return true;\n  }\n  try {\n    var rendererID = hook.inject(internals);\n    // We have successfully injected, so now it is safe to set up hooks.\n    onCommitFiberRoot = function (root, expirationTime) {\n      try {\n        var didError = (root.current.effectTag & DidCapture) === DidCapture;\n        if (enableProfilerTimer) {\n          var currentTime = requestCurrentTime();\n          var priorityLevel = inferPriorityFromExpirationTime(currentTime, expirationTime);\n          hook.onCommitFiberRoot(rendererID, root, priorityLevel, didError);\n        } else {\n          hook.onCommitFiberRoot(rendererID, root, undefined, didError);\n        }\n      } catch (err) {\n        if (true && !hasLoggedError) {\n          hasLoggedError = true;\n          warningWithoutStack$1(false, 'React DevTools encountered an error: %s', err);\n        }\n      }\n    };\n    onCommitFiberUnmount = function (fiber) {\n      try {\n        hook.onCommitFiberUnmount(rendererID, fiber);\n      } catch (err) {\n        if (true && !hasLoggedError) {\n          hasLoggedError = true;\n          warningWithoutStack$1(false, 'React DevTools encountered an error: %s', err);\n        }\n      }\n    };\n  } catch (err) {\n    // Catch all errors because it is unsafe to throw during initialization.\n    {\n      warningWithoutStack$1(false, 'React DevTools encountered an error: %s.', err);\n    }\n  }\n  // DevTools exists\n  return true;\n}\n\nfunction onCommitRoot(root, expirationTime) {\n  if (typeof onCommitFiberRoot === 'function') {\n    onCommitFiberRoot(root, expirationTime);\n  }\n}\n\nfunction onCommitUnmount(fiber) {\n  if (typeof onCommitFiberUnmount === 'function') {\n    onCommitFiberUnmount(fiber);\n  }\n}\n\nvar hasBadMapPolyfill = void 0;\n\n{\n  hasBadMapPolyfill = false;\n  try {\n    var nonExtensibleObject = Object.preventExtensions({});\n    var testMap = new Map([[nonExtensibleObject, null]]);\n    var testSet = new Set([nonExtensibleObject]);\n    // This is necessary for Rollup to not consider these unused.\n    // https://github.com/rollup/rollup/issues/1771\n    // TODO: we can remove these if Rollup fixes the bug.\n    testMap.set(0, 0);\n    testSet.add(0);\n  } catch (e) {\n    // TODO: Consider warning about bad polyfills\n    hasBadMapPolyfill = true;\n  }\n}\n\n// A Fiber is work on a Component that needs to be done or was done. There can\n// be more than one per component.\n\n\nvar debugCounter = void 0;\n\n{\n  debugCounter = 1;\n}\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n  // Instance\n  this.tag = tag;\n  this.key = key;\n  this.elementType = null;\n  this.type = null;\n  this.stateNode = null;\n\n  // Fiber\n  this.return = null;\n  this.child = null;\n  this.sibling = null;\n  this.index = 0;\n\n  this.ref = null;\n\n  this.pendingProps = pendingProps;\n  this.memoizedProps = null;\n  this.updateQueue = null;\n  this.memoizedState = null;\n  this.dependencies = null;\n\n  this.mode = mode;\n\n  // Effects\n  this.effectTag = NoEffect;\n  this.nextEffect = null;\n\n  this.firstEffect = null;\n  this.lastEffect = null;\n\n  this.expirationTime = NoWork;\n  this.childExpirationTime = NoWork;\n\n  this.alternate = null;\n\n  if (enableProfilerTimer) {\n    // Note: The following is done to avoid a v8 performance cliff.\n    //\n    // Initializing the fields below to smis and later updating them with\n    // double values will cause Fibers to end up having separate shapes.\n    // This behavior/bug has something to do with Object.preventExtension().\n    // Fortunately this only impacts DEV builds.\n    // Unfortunately it makes React unusably slow for some applications.\n    // To work around this, initialize the fields below with doubles.\n    //\n    // Learn more about this here:\n    // https://github.com/facebook/react/issues/14365\n    // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n    this.actualDuration = Number.NaN;\n    this.actualStartTime = Number.NaN;\n    this.selfBaseDuration = Number.NaN;\n    this.treeBaseDuration = Number.NaN;\n\n    // It's okay to replace the initial doubles with smis after initialization.\n    // This won't trigger the performance cliff mentioned above,\n    // and it simplifies other profiler code (including DevTools).\n    this.actualDuration = 0;\n    this.actualStartTime = -1;\n    this.selfBaseDuration = 0;\n    this.treeBaseDuration = 0;\n  }\n\n  {\n    this._debugID = debugCounter++;\n    this._debugSource = null;\n    this._debugOwner = null;\n    this._debugIsCurrentlyTiming = false;\n    this._debugNeedsRemount = false;\n    this._debugHookTypes = null;\n    if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n      Object.preventExtensions(this);\n    }\n  }\n}\n\n// This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n//    more difficult to predict when they get optimized and they are almost\n//    never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n//    always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n//    to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n//    is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n//    compatible.\nvar createFiber = function (tag, pendingProps, key, mode) {\n  // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n  return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n  return typeof type === 'function' && !shouldConstruct(type) && type.defaultProps === undefined;\n}\n\nfunction resolveLazyComponentTag(Component) {\n  if (typeof Component === 'function') {\n    return shouldConstruct(Component) ? ClassComponent : FunctionComponent;\n  } else if (Component !== undefined && Component !== null) {\n    var $$typeof = Component.$$typeof;\n    if ($$typeof === REACT_FORWARD_REF_TYPE) {\n      return ForwardRef;\n    }\n    if ($$typeof === REACT_MEMO_TYPE) {\n      return MemoComponent;\n    }\n  }\n  return IndeterminateComponent;\n}\n\n// This is used to create an alternate fiber to do work on.\nfunction createWorkInProgress(current, pendingProps, expirationTime) {\n  var workInProgress = current.alternate;\n  if (workInProgress === null) {\n    // We use a double buffering pooling technique because we know that we'll\n    // only ever need at most two versions of a tree. We pool the \"other\" unused\n    // node that we're free to reuse. This is lazily created to avoid allocating\n    // extra objects for things that are never updated. It also allow us to\n    // reclaim the extra memory if needed.\n    workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n    workInProgress.elementType = current.elementType;\n    workInProgress.type = current.type;\n    workInProgress.stateNode = current.stateNode;\n\n    {\n      // DEV-only fields\n      workInProgress._debugID = current._debugID;\n      workInProgress._debugSource = current._debugSource;\n      workInProgress._debugOwner = current._debugOwner;\n      workInProgress._debugHookTypes = current._debugHookTypes;\n    }\n\n    workInProgress.alternate = current;\n    current.alternate = workInProgress;\n  } else {\n    workInProgress.pendingProps = pendingProps;\n\n    // We already have an alternate.\n    // Reset the effect tag.\n    workInProgress.effectTag = NoEffect;\n\n    // The effect list is no longer valid.\n    workInProgress.nextEffect = null;\n    workInProgress.firstEffect = null;\n    workInProgress.lastEffect = null;\n\n    if (enableProfilerTimer) {\n      // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n      // This prevents time from endlessly accumulating in new commits.\n      // This has the downside of resetting values for different priority renders,\n      // But works for yielding (the common case) and should support resuming.\n      workInProgress.actualDuration = 0;\n      workInProgress.actualStartTime = -1;\n    }\n  }\n\n  workInProgress.childExpirationTime = current.childExpirationTime;\n  workInProgress.expirationTime = current.expirationTime;\n\n  workInProgress.child = current.child;\n  workInProgress.memoizedProps = current.memoizedProps;\n  workInProgress.memoizedState = current.memoizedState;\n  workInProgress.updateQueue = current.updateQueue;\n\n  // Clone the dependencies object. This is mutated during the render phase, so\n  // it cannot be shared with the current fiber.\n  var currentDependencies = current.dependencies;\n  workInProgress.dependencies = currentDependencies === null ? null : {\n    expirationTime: currentDependencies.expirationTime,\n    firstContext: currentDependencies.firstContext,\n    responders: currentDependencies.responders\n  };\n\n  // These will be overridden during the parent's reconciliation\n  workInProgress.sibling = current.sibling;\n  workInProgress.index = current.index;\n  workInProgress.ref = current.ref;\n\n  if (enableProfilerTimer) {\n    workInProgress.selfBaseDuration = current.selfBaseDuration;\n    workInProgress.treeBaseDuration = current.treeBaseDuration;\n  }\n\n  {\n    workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n    switch (workInProgress.tag) {\n      case IndeterminateComponent:\n      case FunctionComponent:\n      case SimpleMemoComponent:\n        workInProgress.type = resolveFunctionForHotReloading(current.type);\n        break;\n      case ClassComponent:\n        workInProgress.type = resolveClassForHotReloading(current.type);\n        break;\n      case ForwardRef:\n        workInProgress.type = resolveForwardRefForHotReloading(current.type);\n        break;\n      default:\n        break;\n    }\n  }\n\n  return workInProgress;\n}\n\n// Used to reuse a Fiber for a second pass.\nfunction resetWorkInProgress(workInProgress, renderExpirationTime) {\n  // This resets the Fiber to what createFiber or createWorkInProgress would\n  // have set the values to before during the first pass. Ideally this wouldn't\n  // be necessary but unfortunately many code paths reads from the workInProgress\n  // when they should be reading from current and writing to workInProgress.\n\n  // We assume pendingProps, index, key, ref, return are still untouched to\n  // avoid doing another reconciliation.\n\n  // Reset the effect tag but keep any Placement tags, since that's something\n  // that child fiber is setting, not the reconciliation.\n  workInProgress.effectTag &= Placement;\n\n  // The effect list is no longer valid.\n  workInProgress.nextEffect = null;\n  workInProgress.firstEffect = null;\n  workInProgress.lastEffect = null;\n\n  var current = workInProgress.alternate;\n  if (current === null) {\n    // Reset to createFiber's initial values.\n    workInProgress.childExpirationTime = NoWork;\n    workInProgress.expirationTime = renderExpirationTime;\n\n    workInProgress.child = null;\n    workInProgress.memoizedProps = null;\n    workInProgress.memoizedState = null;\n    workInProgress.updateQueue = null;\n\n    workInProgress.dependencies = null;\n\n    if (enableProfilerTimer) {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = 0;\n      workInProgress.treeBaseDuration = 0;\n    }\n  } else {\n    // Reset to the cloned values that createWorkInProgress would've.\n    workInProgress.childExpirationTime = current.childExpirationTime;\n    workInProgress.expirationTime = current.expirationTime;\n\n    workInProgress.child = current.child;\n    workInProgress.memoizedProps = current.memoizedProps;\n    workInProgress.memoizedState = current.memoizedState;\n    workInProgress.updateQueue = current.updateQueue;\n\n    // Clone the dependencies object. This is mutated during the render phase, so\n    // it cannot be shared with the current fiber.\n    var currentDependencies = current.dependencies;\n    workInProgress.dependencies = currentDependencies === null ? null : {\n      expirationTime: currentDependencies.expirationTime,\n      firstContext: currentDependencies.firstContext,\n      responders: currentDependencies.responders\n    };\n\n    if (enableProfilerTimer) {\n      // Note: We don't reset the actualTime counts. It's useful to accumulate\n      // actual time across multiple render passes.\n      workInProgress.selfBaseDuration = current.selfBaseDuration;\n      workInProgress.treeBaseDuration = current.treeBaseDuration;\n    }\n  }\n\n  return workInProgress;\n}\n\nfunction createHostRootFiber(tag) {\n  var mode = void 0;\n  if (tag === ConcurrentRoot) {\n    mode = ConcurrentMode | BatchedMode | StrictMode;\n  } else if (tag === BatchedRoot) {\n    mode = BatchedMode | StrictMode;\n  } else {\n    mode = NoMode;\n  }\n\n  if (enableProfilerTimer && isDevToolsPresent) {\n    // Always collect profile timings when DevTools are present.\n    // This enables DevTools to start capturing timing at any point–\n    // Without some nodes in the tree having empty base times.\n    mode |= ProfileMode;\n  }\n\n  return createFiber(HostRoot, null, null, mode);\n}\n\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, expirationTime) {\n  var fiber = void 0;\n\n  var fiberTag = IndeterminateComponent;\n  // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n  var resolvedType = type;\n  if (typeof type === 'function') {\n    if (shouldConstruct(type)) {\n      fiberTag = ClassComponent;\n      {\n        resolvedType = resolveClassForHotReloading(resolvedType);\n      }\n    } else {\n      {\n        resolvedType = resolveFunctionForHotReloading(resolvedType);\n      }\n    }\n  } else if (typeof type === 'string') {\n    fiberTag = HostComponent;\n  } else {\n    getTag: switch (type) {\n      case REACT_FRAGMENT_TYPE:\n        return createFiberFromFragment(pendingProps.children, mode, expirationTime, key);\n      case REACT_CONCURRENT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= ConcurrentMode | BatchedMode | StrictMode;\n        break;\n      case REACT_STRICT_MODE_TYPE:\n        fiberTag = Mode;\n        mode |= StrictMode;\n        break;\n      case REACT_PROFILER_TYPE:\n        return createFiberFromProfiler(pendingProps, mode, expirationTime, key);\n      case REACT_SUSPENSE_TYPE:\n        return createFiberFromSuspense(pendingProps, mode, expirationTime, key);\n      case REACT_SUSPENSE_LIST_TYPE:\n        return createFiberFromSuspenseList(pendingProps, mode, expirationTime, key);\n      default:\n        {\n          if (typeof type === 'object' && type !== null) {\n            switch (type.$$typeof) {\n              case REACT_PROVIDER_TYPE:\n                fiberTag = ContextProvider;\n                break getTag;\n              case REACT_CONTEXT_TYPE:\n                // This is a consumer\n                fiberTag = ContextConsumer;\n                break getTag;\n              case REACT_FORWARD_REF_TYPE:\n                fiberTag = ForwardRef;\n                {\n                  resolvedType = resolveForwardRefForHotReloading(resolvedType);\n                }\n                break getTag;\n              case REACT_MEMO_TYPE:\n                fiberTag = MemoComponent;\n                break getTag;\n              case REACT_LAZY_TYPE:\n                fiberTag = LazyComponent;\n                resolvedType = null;\n                break getTag;\n              case REACT_FUNDAMENTAL_TYPE:\n                if (enableFundamentalAPI) {\n                  return createFiberFromFundamental(type, pendingProps, mode, expirationTime, key);\n                }\n                break;\n            }\n          }\n          var info = '';\n          {\n            if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n              info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n            }\n            var ownerName = owner ? getComponentName(owner.type) : null;\n            if (ownerName) {\n              info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n            }\n          }\n          (function () {\n            {\n              {\n                throw ReactError(Error('Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: ' + (type == null ? type : typeof type) + '.' + info));\n              }\n            }\n          })();\n        }\n    }\n  }\n\n  fiber = createFiber(fiberTag, pendingProps, key, mode);\n  fiber.elementType = type;\n  fiber.type = resolvedType;\n  fiber.expirationTime = expirationTime;\n\n  return fiber;\n}\n\nfunction createFiberFromElement(element, mode, expirationTime) {\n  var owner = null;\n  {\n    owner = element._owner;\n  }\n  var type = element.type;\n  var key = element.key;\n  var pendingProps = element.props;\n  var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, expirationTime);\n  {\n    fiber._debugSource = element._source;\n    fiber._debugOwner = element._owner;\n  }\n  return fiber;\n}\n\nfunction createFiberFromFragment(elements, mode, expirationTime, key) {\n  var fiber = createFiber(Fragment, elements, key, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromFundamental(fundamentalComponent, pendingProps, mode, expirationTime, key) {\n  var fiber = createFiber(FundamentalComponent, pendingProps, key, mode);\n  fiber.elementType = fundamentalComponent;\n  fiber.type = fundamentalComponent;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, expirationTime, key) {\n  {\n    if (typeof pendingProps.id !== 'string' || typeof pendingProps.onRender !== 'function') {\n      warningWithoutStack$1(false, 'Profiler must specify an \"id\" string and \"onRender\" function as props');\n    }\n  }\n\n  var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode);\n  // TODO: The Profiler fiber shouldn't have a type. It has a tag.\n  fiber.elementType = REACT_PROFILER_TYPE;\n  fiber.type = REACT_PROFILER_TYPE;\n  fiber.expirationTime = expirationTime;\n\n  return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, expirationTime, key) {\n  var fiber = createFiber(SuspenseComponent, pendingProps, key, mode);\n\n  // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.\n  // This needs to be fixed in getComponentName so that it relies on the tag\n  // instead.\n  fiber.type = REACT_SUSPENSE_TYPE;\n  fiber.elementType = REACT_SUSPENSE_TYPE;\n\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromSuspenseList(pendingProps, mode, expirationTime, key) {\n  var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n  {\n    // TODO: The SuspenseListComponent fiber shouldn't have a type. It has a tag.\n    // This needs to be fixed in getComponentName so that it relies on the tag\n    // instead.\n    fiber.type = REACT_SUSPENSE_LIST_TYPE;\n  }\n  fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromText(content, mode, expirationTime) {\n  var fiber = createFiber(HostText, content, null, mode);\n  fiber.expirationTime = expirationTime;\n  return fiber;\n}\n\nfunction createFiberFromHostInstanceForDeletion() {\n  var fiber = createFiber(HostComponent, null, null, NoMode);\n  // TODO: These should not need a type.\n  fiber.elementType = 'DELETED';\n  fiber.type = 'DELETED';\n  return fiber;\n}\n\nfunction createFiberFromPortal(portal, mode, expirationTime) {\n  var pendingProps = portal.children !== null ? portal.children : [];\n  var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n  fiber.expirationTime = expirationTime;\n  fiber.stateNode = {\n    containerInfo: portal.containerInfo,\n    pendingChildren: null, // Used by persistent updates\n    implementation: portal.implementation\n  };\n  return fiber;\n}\n\n// Used for stashing WIP properties to replay failed work in DEV.\nfunction assignFiberPropertiesInDEV(target, source) {\n  if (target === null) {\n    // This Fiber's initial properties will always be overwritten.\n    // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n    target = createFiber(IndeterminateComponent, null, null, NoMode);\n  }\n\n  // This is intentionally written as a list of all properties.\n  // We tried to use Object.assign() instead but this is called in\n  // the hottest path, and Object.assign() was too slow:\n  // https://github.com/facebook/react/issues/12502\n  // This code is DEV-only so size is not a concern.\n\n  target.tag = source.tag;\n  target.key = source.key;\n  target.elementType = source.elementType;\n  target.type = source.type;\n  target.stateNode = source.stateNode;\n  target.return = source.return;\n  target.child = source.child;\n  target.sibling = source.sibling;\n  target.index = source.index;\n  target.ref = source.ref;\n  target.pendingProps = source.pendingProps;\n  target.memoizedProps = source.memoizedProps;\n  target.updateQueue = source.updateQueue;\n  target.memoizedState = source.memoizedState;\n  target.dependencies = source.dependencies;\n  target.mode = source.mode;\n  target.effectTag = source.effectTag;\n  target.nextEffect = source.nextEffect;\n  target.firstEffect = source.firstEffect;\n  target.lastEffect = source.lastEffect;\n  target.expirationTime = source.expirationTime;\n  target.childExpirationTime = source.childExpirationTime;\n  target.alternate = source.alternate;\n  if (enableProfilerTimer) {\n    target.actualDuration = source.actualDuration;\n    target.actualStartTime = source.actualStartTime;\n    target.selfBaseDuration = source.selfBaseDuration;\n    target.treeBaseDuration = source.treeBaseDuration;\n  }\n  target._debugID = source._debugID;\n  target._debugSource = source._debugSource;\n  target._debugOwner = source._debugOwner;\n  target._debugIsCurrentlyTiming = source._debugIsCurrentlyTiming;\n  target._debugNeedsRemount = source._debugNeedsRemount;\n  target._debugHookTypes = source._debugHookTypes;\n  return target;\n}\n\n// TODO: This should be lifted into the renderer.\n\n\n// The following attributes are only used by interaction tracing builds.\n// They enable interactions to be associated with their async work,\n// And expose interaction metadata to the React DevTools Profiler plugin.\n// Note that these attributes are only defined when the enableSchedulerTracing flag is enabled.\n\n\n// Exported FiberRoot type includes all properties,\n// To avoid requiring potentially error-prone :any casts throughout the project.\n// Profiling properties are only safe to access in profiling builds (when enableSchedulerTracing is true).\n// The types are defined separately within this file to ensure they stay in sync.\n// (We don't have to use an inline :any cast when enableSchedulerTracing is disabled.)\n\n\nfunction FiberRootNode(containerInfo, tag, hydrate) {\n  this.tag = tag;\n  this.current = null;\n  this.containerInfo = containerInfo;\n  this.pendingChildren = null;\n  this.pingCache = null;\n  this.finishedExpirationTime = NoWork;\n  this.finishedWork = null;\n  this.timeoutHandle = noTimeout;\n  this.context = null;\n  this.pendingContext = null;\n  this.hydrate = hydrate;\n  this.firstBatch = null;\n  this.callbackNode = null;\n  this.callbackExpirationTime = NoWork;\n  this.firstPendingTime = NoWork;\n  this.lastPendingTime = NoWork;\n  this.pingTime = NoWork;\n\n  if (enableSchedulerTracing) {\n    this.interactionThreadID = unstable_getThreadID();\n    this.memoizedInteractions = new Set();\n    this.pendingInteractionMap = new Map();\n  }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate) {\n  var root = new FiberRootNode(containerInfo, tag, hydrate);\n\n  // Cyclic construction. This cheats the type system right now because\n  // stateNode is any.\n  var uninitializedFiber = createHostRootFiber(tag);\n  root.current = uninitializedFiber;\n  uninitializedFiber.stateNode = root;\n\n  return root;\n}\n\n// This lets us hook into Fiber to debug what it's doing.\n// See https://github.com/facebook/react/pull/8033.\n// This is not part of the public API, not even for React DevTools.\n// You may only inject a debugTool if you work on React Fiber itself.\nvar ReactFiberInstrumentation = {\n  debugTool: null\n};\n\nvar ReactFiberInstrumentation_1 = ReactFiberInstrumentation;\n\n// 0 is PROD, 1 is DEV.\n// Might add PROFILE later.\n\n\nvar didWarnAboutNestedUpdates = void 0;\nvar didWarnAboutFindNodeInStrictMode = void 0;\n\n{\n  didWarnAboutNestedUpdates = false;\n  didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n  if (!parentComponent) {\n    return emptyContextObject;\n  }\n\n  var fiber = get(parentComponent);\n  var parentContext = findCurrentUnmaskedContext(fiber);\n\n  if (fiber.tag === ClassComponent) {\n    var Component = fiber.type;\n    if (isContextProvider(Component)) {\n      return processChildContext(fiber, Component, parentContext);\n    }\n  }\n\n  return parentContext;\n}\n\nfunction scheduleRootUpdate(current$$1, element, expirationTime, suspenseConfig, callback) {\n  {\n    if (phase === 'render' && current !== null && !didWarnAboutNestedUpdates) {\n      didWarnAboutNestedUpdates = true;\n      warningWithoutStack$1(false, 'Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n    }\n  }\n\n  var update = createUpdate(expirationTime, suspenseConfig);\n  // Caution: React DevTools currently depends on this property\n  // being called \"element\".\n  update.payload = { element: element };\n\n  callback = callback === undefined ? null : callback;\n  if (callback !== null) {\n    !(typeof callback === 'function') ? warningWithoutStack$1(false, 'render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback) : void 0;\n    update.callback = callback;\n  }\n\n  if (revertPassiveEffectsChange) {\n    flushPassiveEffects();\n  }\n  enqueueUpdate(current$$1, update);\n  scheduleWork(current$$1, expirationTime);\n\n  return expirationTime;\n}\n\nfunction updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, suspenseConfig, callback) {\n  // TODO: If this is a nested container, this won't be the root.\n  var current$$1 = container.current;\n\n  {\n    if (ReactFiberInstrumentation_1.debugTool) {\n      if (current$$1.alternate === null) {\n        ReactFiberInstrumentation_1.debugTool.onMountContainer(container);\n      } else if (element === null) {\n        ReactFiberInstrumentation_1.debugTool.onUnmountContainer(container);\n      } else {\n        ReactFiberInstrumentation_1.debugTool.onUpdateContainer(container);\n      }\n    }\n  }\n\n  var context = getContextForSubtree(parentComponent);\n  if (container.context === null) {\n    container.context = context;\n  } else {\n    container.pendingContext = context;\n  }\n\n  return scheduleRootUpdate(current$$1, element, expirationTime, suspenseConfig, callback);\n}\n\nfunction findHostInstance(component) {\n  var fiber = get(component);\n  if (fiber === undefined) {\n    if (typeof component.render === 'function') {\n      (function () {\n        {\n          {\n            throw ReactError(Error('Unable to find node on an unmounted component.'));\n          }\n        }\n      })();\n    } else {\n      (function () {\n        {\n          {\n            throw ReactError(Error('Argument appears to not be a ReactComponent. Keys: ' + Object.keys(component)));\n          }\n        }\n      })();\n    }\n  }\n  var hostFiber = findCurrentHostFiber(fiber);\n  if (hostFiber === null) {\n    return null;\n  }\n  return hostFiber.stateNode;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n  {\n    var fiber = get(component);\n    if (fiber === undefined) {\n      if (typeof component.render === 'function') {\n        (function () {\n          {\n            {\n              throw ReactError(Error('Unable to find node on an unmounted component.'));\n            }\n          }\n        })();\n      } else {\n        (function () {\n          {\n            {\n              throw ReactError(Error('Argument appears to not be a ReactComponent. Keys: ' + Object.keys(component)));\n            }\n          }\n        })();\n      }\n    }\n    var hostFiber = findCurrentHostFiber(fiber);\n    if (hostFiber === null) {\n      return null;\n    }\n    if (hostFiber.mode & StrictMode) {\n      var componentName = getComponentName(fiber.type) || 'Component';\n      if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n        didWarnAboutFindNodeInStrictMode[componentName] = true;\n        if (fiber.mode & StrictMode) {\n          warningWithoutStack$1(false, '%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference.' + '\\n%s' + '\\n\\nLearn more about using refs safely here:' + '\\nhttps://fb.me/react-strict-mode-find-node', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));\n        } else {\n          warningWithoutStack$1(false, '%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference.' + '\\n%s' + '\\n\\nLearn more about using refs safely here:' + '\\nhttps://fb.me/react-strict-mode-find-node', methodName, methodName, componentName, getStackByFiberInDevAndProd(hostFiber));\n        }\n      }\n    }\n    return hostFiber.stateNode;\n  }\n  return findHostInstance(component);\n}\n\nfunction createContainer(containerInfo, tag, hydrate) {\n  return createFiberRoot(containerInfo, tag, hydrate);\n}\n\nfunction updateContainer(element, container, parentComponent, callback) {\n  var current$$1 = container.current;\n  var currentTime = requestCurrentTime();\n  {\n    // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n    if ('undefined' !== typeof jest) {\n      warnIfUnmockedScheduler(current$$1);\n      warnIfNotScopedWithMatchingAct(current$$1);\n    }\n  }\n  var suspenseConfig = requestCurrentSuspenseConfig();\n  var expirationTime = computeExpirationForFiber(currentTime, current$$1, suspenseConfig);\n  return updateContainerAtExpirationTime(element, container, parentComponent, expirationTime, suspenseConfig, callback);\n}\n\nfunction getPublicRootInstance(container) {\n  var containerFiber = container.current;\n  if (!containerFiber.child) {\n    return null;\n  }\n  switch (containerFiber.child.tag) {\n    case HostComponent:\n      return getPublicInstance(containerFiber.child.stateNode);\n    default:\n      return containerFiber.child.stateNode;\n  }\n}\n\nfunction findHostInstanceWithNoPortals(fiber) {\n  var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n  if (hostFiber === null) {\n    return null;\n  }\n  if (hostFiber.tag === FundamentalComponent) {\n    return hostFiber.stateNode.instance;\n  }\n  return hostFiber.stateNode;\n}\n\nvar shouldSuspendImpl = function (fiber) {\n  return false;\n};\n\nfunction shouldSuspend(fiber) {\n  return shouldSuspendImpl(fiber);\n}\n\nvar overrideHookState = null;\nvar overrideProps = null;\nvar scheduleUpdate = null;\nvar setSuspenseHandler = null;\n\n{\n  var copyWithSetImpl = function (obj, path, idx, value) {\n    if (idx >= path.length) {\n      return value;\n    }\n    var key = path[idx];\n    var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n    // $FlowFixMe number or string is fine here\n    updated[key] = copyWithSetImpl(obj[key], path, idx + 1, value);\n    return updated;\n  };\n\n  var copyWithSet = function (obj, path, value) {\n    return copyWithSetImpl(obj, path, 0, value);\n  };\n\n  // Support DevTools editable values for useState and useReducer.\n  overrideHookState = function (fiber, id, path, value) {\n    // For now, the \"id\" of stateful hooks is just the stateful hook index.\n    // This may change in the future with e.g. nested hooks.\n    var currentHook = fiber.memoizedState;\n    while (currentHook !== null && id > 0) {\n      currentHook = currentHook.next;\n      id--;\n    }\n    if (currentHook !== null) {\n      if (revertPassiveEffectsChange) {\n        flushPassiveEffects();\n      }\n\n      var newState = copyWithSet(currentHook.memoizedState, path, value);\n      currentHook.memoizedState = newState;\n      currentHook.baseState = newState;\n\n      // We aren't actually adding an update to the queue,\n      // because there is no update we can add for useReducer hooks that won't trigger an error.\n      // (There's no appropriate action type for DevTools overrides.)\n      // As a result though, React will see the scheduled update as a noop and bailout.\n      // Shallow cloning props works as a workaround for now to bypass the bailout check.\n      fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n\n      scheduleWork(fiber, Sync);\n    }\n  };\n\n  // Support DevTools props for function components, forwardRef, memo, host components, etc.\n  overrideProps = function (fiber, path, value) {\n    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n    fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n    if (fiber.alternate) {\n      fiber.alternate.pendingProps = fiber.pendingProps;\n    }\n    scheduleWork(fiber, Sync);\n  };\n\n  scheduleUpdate = function (fiber) {\n    if (revertPassiveEffectsChange) {\n      flushPassiveEffects();\n    }\n    scheduleWork(fiber, Sync);\n  };\n\n  setSuspenseHandler = function (newShouldSuspendImpl) {\n    shouldSuspendImpl = newShouldSuspendImpl;\n  };\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n  var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n  var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n\n\n  return injectInternals(_assign({}, devToolsConfig, {\n    overrideHookState: overrideHookState,\n    overrideProps: overrideProps,\n    setSuspenseHandler: setSuspenseHandler,\n    scheduleUpdate: scheduleUpdate,\n    currentDispatcherRef: ReactCurrentDispatcher,\n    findHostInstanceByFiber: function (fiber) {\n      var hostFiber = findCurrentHostFiber(fiber);\n      if (hostFiber === null) {\n        return null;\n      }\n      return hostFiber.stateNode;\n    },\n    findFiberByHostInstance: function (instance) {\n      if (!findFiberByHostInstance) {\n        // Might not be implemented by the renderer.\n        return null;\n      }\n      return findFiberByHostInstance(instance);\n    },\n\n    // React Refresh\n    findHostInstancesForRefresh: findHostInstancesForRefresh,\n    scheduleRefresh: scheduleRefresh,\n    scheduleRoot: scheduleRoot,\n    setRefreshHandler: setRefreshHandler,\n    // Enables DevTools to append owner stacks to error messages in DEV mode.\n    getCurrentFiber: function () {\n      return current;\n    }\n  }));\n}\n\n// This file intentionally does *not* have the Flow annotation.\n// Don't add it. See `./inline-typed.js` for an explanation.\n\nfunction createPortal$1(children, containerInfo,\n// TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n  var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n  return {\n    // This tag allow us to uniquely identify this as a React Portal\n    $$typeof: REACT_PORTAL_TYPE,\n    key: key == null ? null : '' + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.9.0';\n\n// TODO: This type is shared between the reconciler and ReactDOM, but will\n// eventually be lifted out to the renderer.\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n\nvar topLevelUpdateWarnings = void 0;\nvar warnOnInvalidCallback = void 0;\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n  if (typeof Map !== 'function' ||\n  // $FlowIssue Flow incorrectly thinks Map has no prototype\n  Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' ||\n  // $FlowIssue Flow incorrectly thinks Set has no prototype\n  Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n    warningWithoutStack$1(false, 'React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n  }\n\n  topLevelUpdateWarnings = function (container) {\n    if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n      var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n      if (hostInstance) {\n        !(hostInstance.parentNode === container) ? warningWithoutStack$1(false, 'render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.') : void 0;\n      }\n    }\n\n    var isRootRenderedBySomeReact = !!container._reactRootContainer;\n    var rootEl = getReactRootElementInContainer(container);\n    var hasNonRootReactChild = !!(rootEl && getInstanceFromNode$1(rootEl));\n\n    !(!hasNonRootReactChild || isRootRenderedBySomeReact) ? warningWithoutStack$1(false, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;\n\n    !(container.nodeType !== ELEMENT_NODE || !container.tagName || container.tagName.toUpperCase() !== 'BODY') ? warningWithoutStack$1(false, 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;\n  };\n\n  warnOnInvalidCallback = function (callback, callerName) {\n    !(callback === null || typeof callback === 'function') ? warningWithoutStack$1(false, '%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback) : void 0;\n  };\n}\n\nsetRestoreImplementation(restoreControlledState$1);\n\nfunction ReactBatch(root) {\n  var expirationTime = computeUniqueAsyncExpiration();\n  this._expirationTime = expirationTime;\n  this._root = root;\n  this._next = null;\n  this._callbacks = null;\n  this._didComplete = false;\n  this._hasChildren = false;\n  this._children = null;\n  this._defer = true;\n}\nReactBatch.prototype.render = function (children) {\n  var _this = this;\n\n  (function () {\n    if (!_this._defer) {\n      {\n        throw ReactError(Error('batch.render: Cannot render a batch that already committed.'));\n      }\n    }\n  })();\n  this._hasChildren = true;\n  this._children = children;\n  var internalRoot = this._root._internalRoot;\n  var expirationTime = this._expirationTime;\n  var work = new ReactWork();\n  updateContainerAtExpirationTime(children, internalRoot, null, expirationTime, null, work._onCommit);\n  return work;\n};\nReactBatch.prototype.then = function (onComplete) {\n  if (this._didComplete) {\n    onComplete();\n    return;\n  }\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    callbacks = this._callbacks = [];\n  }\n  callbacks.push(onComplete);\n};\nReactBatch.prototype.commit = function () {\n  var _this2 = this;\n\n  var internalRoot = this._root._internalRoot;\n  var firstBatch = internalRoot.firstBatch;\n  (function () {\n    if (!(_this2._defer && firstBatch !== null)) {\n      {\n        throw ReactError(Error('batch.commit: Cannot commit a batch multiple times.'));\n      }\n    }\n  })();\n\n  if (!this._hasChildren) {\n    // This batch is empty. Return.\n    this._next = null;\n    this._defer = false;\n    return;\n  }\n\n  var expirationTime = this._expirationTime;\n\n  // Ensure this is the first batch in the list.\n  if (firstBatch !== this) {\n    // This batch is not the earliest batch. We need to move it to the front.\n    // Update its expiration time to be the expiration time of the earliest\n    // batch, so that we can flush it without flushing the other batches.\n    if (this._hasChildren) {\n      expirationTime = this._expirationTime = firstBatch._expirationTime;\n      // Rendering this batch again ensures its children will be the final state\n      // when we flush (updates are processed in insertion order: last\n      // update wins).\n      // TODO: This forces a restart. Should we print a warning?\n      this.render(this._children);\n    }\n\n    // Remove the batch from the list.\n    var previous = null;\n    var batch = firstBatch;\n    while (batch !== this) {\n      previous = batch;\n      batch = batch._next;\n    }\n    (function () {\n      if (!(previous !== null)) {\n        {\n          throw ReactError(Error('batch.commit: Cannot commit a batch multiple times.'));\n        }\n      }\n    })();\n    previous._next = batch._next;\n\n    // Add it to the front.\n    this._next = firstBatch;\n    firstBatch = internalRoot.firstBatch = this;\n  }\n\n  // Synchronously flush all the work up to this batch's expiration time.\n  this._defer = false;\n  flushRoot(internalRoot, expirationTime);\n\n  // Pop the batch from the list.\n  var next = this._next;\n  this._next = null;\n  firstBatch = internalRoot.firstBatch = next;\n\n  // Append the next earliest batch's children to the update queue.\n  if (firstBatch !== null && firstBatch._hasChildren) {\n    firstBatch.render(firstBatch._children);\n  }\n};\nReactBatch.prototype._onComplete = function () {\n  if (this._didComplete) {\n    return;\n  }\n  this._didComplete = true;\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    return;\n  }\n  // TODO: Error handling.\n  for (var i = 0; i < callbacks.length; i++) {\n    var _callback = callbacks[i];\n    _callback();\n  }\n};\n\nfunction ReactWork() {\n  this._callbacks = null;\n  this._didCommit = false;\n  // TODO: Avoid need to bind by replacing callbacks in the update queue with\n  // list of Work objects.\n  this._onCommit = this._onCommit.bind(this);\n}\nReactWork.prototype.then = function (onCommit) {\n  if (this._didCommit) {\n    onCommit();\n    return;\n  }\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    callbacks = this._callbacks = [];\n  }\n  callbacks.push(onCommit);\n};\nReactWork.prototype._onCommit = function () {\n  if (this._didCommit) {\n    return;\n  }\n  this._didCommit = true;\n  var callbacks = this._callbacks;\n  if (callbacks === null) {\n    return;\n  }\n  // TODO: Error handling.\n  for (var i = 0; i < callbacks.length; i++) {\n    var _callback2 = callbacks[i];\n    (function () {\n      if (!(typeof _callback2 === 'function')) {\n        {\n          throw ReactError(Error('Invalid argument passed as callback. Expected a function. Instead received: ' + _callback2));\n        }\n      }\n    })();\n    _callback2();\n  }\n};\n\nfunction ReactSyncRoot(container, tag, hydrate) {\n  // Tag is either LegacyRoot or Concurrent Root\n  var root = createContainer(container, tag, hydrate);\n  this._internalRoot = root;\n}\n\nfunction ReactRoot(container, hydrate) {\n  var root = createContainer(container, ConcurrentRoot, hydrate);\n  this._internalRoot = root;\n}\n\nReactRoot.prototype.render = ReactSyncRoot.prototype.render = function (children, callback) {\n  var root = this._internalRoot;\n  var work = new ReactWork();\n  callback = callback === undefined ? null : callback;\n  {\n    warnOnInvalidCallback(callback, 'render');\n  }\n  if (callback !== null) {\n    work.then(callback);\n  }\n  updateContainer(children, root, null, work._onCommit);\n  return work;\n};\n\nReactRoot.prototype.unmount = ReactSyncRoot.prototype.unmount = function (callback) {\n  var root = this._internalRoot;\n  var work = new ReactWork();\n  callback = callback === undefined ? null : callback;\n  {\n    warnOnInvalidCallback(callback, 'render');\n  }\n  if (callback !== null) {\n    work.then(callback);\n  }\n  updateContainer(null, root, null, work._onCommit);\n  return work;\n};\n\n// Sync roots cannot create batches. Only concurrent ones.\nReactRoot.prototype.createBatch = function () {\n  var batch = new ReactBatch(this);\n  var expirationTime = batch._expirationTime;\n\n  var internalRoot = this._internalRoot;\n  var firstBatch = internalRoot.firstBatch;\n  if (firstBatch === null) {\n    internalRoot.firstBatch = batch;\n    batch._next = null;\n  } else {\n    // Insert sorted by expiration time then insertion order\n    var insertAfter = null;\n    var insertBefore = firstBatch;\n    while (insertBefore !== null && insertBefore._expirationTime >= expirationTime) {\n      insertAfter = insertBefore;\n      insertBefore = insertBefore._next;\n    }\n    batch._next = insertBefore;\n    if (insertAfter !== null) {\n      insertAfter._next = batch;\n    }\n  }\n\n  return batch;\n};\n\n/**\n * True if the supplied DOM node is a valid node element.\n *\n * @param {?DOMElement} node The candidate DOM node.\n * @return {boolean} True if the DOM is a valid DOM node.\n * @internal\n */\nfunction isValidContainer(node) {\n  return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nfunction getReactRootElementInContainer(container) {\n  if (!container) {\n    return null;\n  }\n\n  if (container.nodeType === DOCUMENT_NODE) {\n    return container.documentElement;\n  } else {\n    return container.firstChild;\n  }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n  var rootElement = getReactRootElementInContainer(container);\n  return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates$1, flushDiscreteUpdates, batchedEventUpdates$1);\n\nvar warnedAboutHydrateAPI = false;\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n  var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container);\n  // First clear any existing content.\n  if (!shouldHydrate) {\n    var warned = false;\n    var rootSibling = void 0;\n    while (rootSibling = container.lastChild) {\n      {\n        if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n          warned = true;\n          warningWithoutStack$1(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n        }\n      }\n      container.removeChild(rootSibling);\n    }\n  }\n  {\n    if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n      warnedAboutHydrateAPI = true;\n      lowPriorityWarning$1(false, 'render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v17. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n    }\n  }\n\n  // Legacy roots are not batched.\n  return new ReactSyncRoot(container, LegacyRoot, shouldHydrate);\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n  {\n    topLevelUpdateWarnings(container);\n    warnOnInvalidCallback(callback === undefined ? null : callback, 'render');\n  }\n\n  // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n  // member of intersection type.\" Whyyyyyy.\n  var root = container._reactRootContainer;\n  var fiberRoot = void 0;\n  if (!root) {\n    // Initial mount\n    root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n    fiberRoot = root._internalRoot;\n    if (typeof callback === 'function') {\n      var originalCallback = callback;\n      callback = function () {\n        var instance = getPublicRootInstance(fiberRoot);\n        originalCallback.call(instance);\n      };\n    }\n    // Initial mount should not be batched.\n    unbatchedUpdates(function () {\n      updateContainer(children, fiberRoot, parentComponent, callback);\n    });\n  } else {\n    fiberRoot = root._internalRoot;\n    if (typeof callback === 'function') {\n      var _originalCallback = callback;\n      callback = function () {\n        var instance = getPublicRootInstance(fiberRoot);\n        _originalCallback.call(instance);\n      };\n    }\n    // Update\n    updateContainer(children, fiberRoot, parentComponent, callback);\n  }\n  return getPublicRootInstance(fiberRoot);\n}\n\nfunction createPortal$$1(children, container) {\n  var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  (function () {\n    if (!isValidContainer(container)) {\n      {\n        throw ReactError(Error('Target container is not a DOM element.'));\n      }\n    }\n  })();\n  // TODO: pass ReactDOM portal implementation as third argument\n  return createPortal$1(children, container, null, key);\n}\n\nvar ReactDOM = {\n  createPortal: createPortal$$1,\n\n  findDOMNode: function (componentOrElement) {\n    {\n      var owner = ReactCurrentOwner.current;\n      if (owner !== null && owner.stateNode !== null) {\n        var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n        !warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component') : void 0;\n        owner.stateNode._warnedAboutRefsInRender = true;\n      }\n    }\n    if (componentOrElement == null) {\n      return null;\n    }\n    if (componentOrElement.nodeType === ELEMENT_NODE) {\n      return componentOrElement;\n    }\n    {\n      return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n    }\n    return findHostInstance(componentOrElement);\n  },\n  hydrate: function (element, container, callback) {\n    (function () {\n      if (!isValidContainer(container)) {\n        {\n          throw ReactError(Error('Target container is not a DOM element.'));\n        }\n      }\n    })();\n    {\n      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;\n    }\n    // TODO: throw or warn if we couldn't hydrate?\n    return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n  },\n  render: function (element, container, callback) {\n    (function () {\n      if (!isValidContainer(container)) {\n        {\n          throw ReactError(Error('Target container is not a DOM element.'));\n        }\n      }\n    })();\n    {\n      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. ' + 'Did you mean to call root.render(element)?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;\n    }\n    return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n  },\n  unstable_renderSubtreeIntoContainer: function (parentComponent, element, containerNode, callback) {\n    (function () {\n      if (!isValidContainer(containerNode)) {\n        {\n          throw ReactError(Error('Target container is not a DOM element.'));\n        }\n      }\n    })();\n    (function () {\n      if (!(parentComponent != null && has(parentComponent))) {\n        {\n          throw ReactError(Error('parentComponent must be a valid React Component'));\n        }\n      }\n    })();\n    return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n  },\n  unmountComponentAtNode: function (container) {\n    (function () {\n      if (!isValidContainer(container)) {\n        {\n          throw ReactError(Error('unmountComponentAtNode(...): Target container is not a DOM element.'));\n        }\n      }\n    })();\n\n    {\n      !!container._reactHasBeenPassedToCreateRootDEV ? warningWithoutStack$1(false, 'You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.%s(). This is not supported. Did you mean to call root.unmount()?', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;\n    }\n\n    if (container._reactRootContainer) {\n      {\n        var rootEl = getReactRootElementInContainer(container);\n        var renderedByDifferentReact = rootEl && !getInstanceFromNode$1(rootEl);\n        !!renderedByDifferentReact ? warningWithoutStack$1(false, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.') : void 0;\n      }\n\n      // Unmount should not be batched.\n      unbatchedUpdates(function () {\n        legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n          container._reactRootContainer = null;\n        });\n      });\n      // If you call unmountComponentAtNode twice in quick succession, you'll\n      // get `true` twice. That's probably fine?\n      return true;\n    } else {\n      {\n        var _rootEl = getReactRootElementInContainer(container);\n        var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode$1(_rootEl));\n\n        // Check if the container itself is a React root node.\n        var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n        !!hasNonRootReactChild ? warningWithoutStack$1(false, \"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;\n      }\n\n      return false;\n    }\n  },\n\n\n  // Temporary alias since we already shipped React 16 RC with it.\n  // TODO: remove in React 17.\n  unstable_createPortal: function () {\n    if (!didWarnAboutUnstableCreatePortal) {\n      didWarnAboutUnstableCreatePortal = true;\n      lowPriorityWarning$1(false, 'The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n    }\n    return createPortal$$1.apply(undefined, arguments);\n  },\n\n\n  unstable_batchedUpdates: batchedUpdates$1,\n\n  // TODO remove this legacy method, unstable_discreteUpdates replaces it\n  unstable_interactiveUpdates: function (fn, a, b, c) {\n    flushDiscreteUpdates();\n    return discreteUpdates$1(fn, a, b, c);\n  },\n\n  unstable_discreteUpdates: discreteUpdates$1,\n  unstable_flushDiscreteUpdates: flushDiscreteUpdates,\n\n  flushSync: flushSync,\n\n  unstable_createRoot: createRoot,\n  unstable_createSyncRoot: createSyncRoot,\n  unstable_flushControlled: flushControlled,\n\n  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {\n    // Keep in sync with ReactDOMUnstableNativeDependencies.js\n    // ReactTestUtils.js, and ReactTestUtilsAct.js. This is an array for better minification.\n    Events: [getInstanceFromNode$1, getNodeFromInstance$1, getFiberCurrentPropsFromNode$1, injection.injectEventPluginsByName, eventNameDispatchConfigs, accumulateTwoPhaseDispatches, accumulateDirectDispatches, enqueueStateRestore, restoreStateIfNeeded, dispatchEvent, runEventsInBatch, flushPassiveEffects, IsThisRendererActing]\n  }\n};\n\nfunction createRoot(container, options) {\n  var functionName = enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot';\n  (function () {\n    if (!isValidContainer(container)) {\n      {\n        throw ReactError(Error(functionName + '(...): Target container is not a DOM element.'));\n      }\n    }\n  })();\n  warnIfReactDOMContainerInDEV(container);\n  var hydrate = options != null && options.hydrate === true;\n  return new ReactRoot(container, hydrate);\n}\n\nfunction createSyncRoot(container, options) {\n  var functionName = enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot';\n  (function () {\n    if (!isValidContainer(container)) {\n      {\n        throw ReactError(Error(functionName + '(...): Target container is not a DOM element.'));\n      }\n    }\n  })();\n  warnIfReactDOMContainerInDEV(container);\n  var hydrate = options != null && options.hydrate === true;\n  return new ReactSyncRoot(container, BatchedRoot, hydrate);\n}\n\nfunction warnIfReactDOMContainerInDEV(container) {\n  {\n    !!container._reactRootContainer ? warningWithoutStack$1(false, 'You are calling ReactDOM.%s() on a container that was previously ' + 'passed to ReactDOM.render(). This is not supported.', enableStableConcurrentModeAPIs ? 'createRoot' : 'unstable_createRoot') : void 0;\n    container._reactHasBeenPassedToCreateRootDEV = true;\n  }\n}\n\nif (enableStableConcurrentModeAPIs) {\n  ReactDOM.createRoot = createRoot;\n  ReactDOM.createSyncRoot = createSyncRoot;\n}\n\nvar foundDevTools = injectIntoDevTools({\n  findFiberByHostInstance: getClosestInstanceFromNode,\n  bundleType: 1,\n  version: ReactVersion,\n  rendererPackageName: 'react-dom'\n});\n\n{\n  if (!foundDevTools && canUseDOM && window.top === window.self) {\n    // If we're in Chrome or Firefox, provide a download link if not installed.\n    if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n      var protocol = window.location.protocol;\n      // Don't warn in exotic cases like chrome-extension://.\n      if (/^(https?|file):$/.test(protocol)) {\n        console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://fb.me/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://fb.me/react-devtools-faq' : ''), 'font-weight:bold');\n      }\n    }\n  }\n}\n\n\n\nvar ReactDOM$2 = Object.freeze({\n\tdefault: ReactDOM\n});\n\nvar ReactDOM$3 = ( ReactDOM$2 && ReactDOM ) || ReactDOM$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar reactDom = ReactDOM$3.default || ReactDOM$3;\n\nreturn reactDom;\n\n})));\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/react.js",
    "content": "/** @license React v16.9.0\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.React = factory());\n}(this, (function () { 'use strict';\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.9.0';\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\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n  return null;\n}\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n// Do not require this module directly! Use normal `invariant` calls with\n// template literal strings. The messages will be converted to ReactError during\n// build, and in production they will be minified.\n\n// Do not require this module directly! Use normal `invariant` calls with\n// template literal strings. The messages will be converted to ReactError during\n// build, and in production they will be minified.\n\nfunction ReactError(error) {\n  error.name = 'Invariant Violation';\n  return error;\n}\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\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\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\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n    var warningKey = componentName + '.' + callerName;\n    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n      return;\n    }\n    warningWithoutStack$1(false, \"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n    didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n  }\n}\n\n/**\n * This is the abstract API for an update queue.\n */\nvar ReactNoopUpdateQueue = {\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance, callback, callerName) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nvar emptyObject = {};\n{\n  Object.freeze(emptyObject);\n}\n\n/**\n * Base class helpers for the updating state of a component.\n */\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  // If a component has string refs, we will assign a different object later.\n  this.refs = emptyObject;\n  // We initialize the default updater but the real one gets injected by the\n  // renderer.\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\nComponent.prototype.setState = function (partialState, callback) {\n  (function () {\n    if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n      {\n        throw ReactError(Error('setState(...): takes an object of state variables to update or a function which returns an object of state variables.'));\n      }\n    }\n  })();\n  this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n{\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n  var defineDeprecationWarning = function (methodName, info) {\n    Object.defineProperty(Component.prototype, methodName, {\n      get: function () {\n        lowPriorityWarning$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n        return undefined;\n      }\n    });\n  };\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\n\n/**\n * Convenience component with default shallow equality check for sCU.\n */\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  // If a component has string refs, we will assign a different object later.\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent;\n// Avoid an extra prototype jump for these methods.\nobjectAssign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n  var refObject = {\n    current: null\n  };\n  {\n    Object.seal(refObject);\n  }\n  return refObject;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n  suspense: null\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\nvar 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\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_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    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\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          break;\n        }\n    }\n  }\n  return null;\n}\n\nvar ReactDebugCurrentFrame = {};\n\nvar currentlyValidatingElement = null;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    currentlyValidatingElement = element;\n  }\n}\n\n{\n  // Stack implementation injected by the current renderer.\n  ReactDebugCurrentFrame.getCurrentStack = null;\n\n  ReactDebugCurrentFrame.getStackAddendum = function () {\n    var stack = '';\n\n    // Add an extra top frame while an element is being validated\n    if (currentlyValidatingElement) {\n      var name = getComponentName(currentlyValidatingElement.type);\n      var owner = currentlyValidatingElement._owner;\n      stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));\n    }\n\n    // Delegate to the injected renderer-specific implementation\n    var impl = ReactDebugCurrentFrame.getCurrentStack;\n    if (impl) {\n      stack += impl() || '';\n    }\n\n    return stack;\n  };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\n\nvar IsSomeRendererActing = {\n  current: false\n};\n\nvar ReactSharedInternals = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n  ReactCurrentOwner: ReactCurrentOwner,\n  IsSomeRendererActing: IsSomeRendererActing,\n  // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n  assign: objectAssign\n};\n\n{\n  objectAssign(ReactSharedInternals, {\n    // These should not be included in production.\n    ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n    // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n    // TODO: remove in React 17.0.\n    ReactComponentTreeHook: {}\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 hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\n\nvar specialPropKeyWarningShown = void 0;\nvar specialPropRefWarningShown = void 0;\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty$1.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty$1.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    if (!specialPropKeyWarningShown) {\n      specialPropKeyWarningShown = true;\n      warningWithoutStack$1(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n    }\n  };\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    if (!specialPropRefWarningShown) {\n      specialPropRefWarningShown = true;\n      warningWithoutStack$1(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n    }\n  };\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, no instanceof check\n * will work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {};\n\n    // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    });\n    // self and source are DEV only properties.\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    });\n    // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\n\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\nfunction jsxDEV(type, config, maybeKey, source, self) {\n  var propName = void 0;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n\n  if (hasValidRef(config)) {\n    ref = config.ref;\n  }\n\n  if (hasValidKey(config)) {\n    key = '' + config.key;\n  }\n\n  // Remaining properties are added to a new props object\n  for (propName in config) {\n    if (hasOwnProperty$1.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n      props[propName] = config[propName];\n    }\n  }\n\n  // intentionally not checking if key was set above\n  // this key is higher priority as it's static\n  if (maybeKey !== undefined) {\n    key = '' + maybeKey;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  if (key || ref) {\n    var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n    if (key) {\n      defineKeyPropWarningGetter(props, displayName);\n    }\n    if (ref) {\n      defineRefPropWarningGetter(props, displayName);\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\nfunction createElement(type, config, children) {\n  var propName = void 0;\n\n  // Reserved names are extracted\n  var props = {};\n\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      ref = config.ref;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source;\n    // Remaining properties are added to a new props object\n    for (propName in config) {\n      if (hasOwnProperty$1.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    {\n      if (Object.freeze) {\n        Object.freeze(childArray);\n      }\n    }\n    props.children = childArray;\n  }\n\n  // Resolve default props\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n  {\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n  }\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://reactjs.org/docs/react-api.html#createfactory\n */\n\n\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n\n  return newElement;\n}\n\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\nfunction cloneElement(element, config, children) {\n  (function () {\n    if (!!(element === null || element === undefined)) {\n      {\n        throw ReactError(Error('React.cloneElement(...): The argument must be a React element, but you passed ' + element + '.'));\n      }\n    }\n  })();\n\n  var propName = void 0;\n\n  // Original props are copied\n  var props = objectAssign({}, element.props);\n\n  // Reserved names are extracted\n  var key = element.key;\n  var ref = element.ref;\n  // Self is preserved since the owner is preserved.\n  var self = element._self;\n  // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n  var source = element._source;\n\n  // Owner will be preserved, unless ref is overridden\n  var owner = element._owner;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n    if (hasValidKey(config)) {\n      key = '' + config.key;\n    }\n\n    // Remaining properties override existing props\n    var defaultProps = void 0;\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n    for (propName in config) {\n      if (hasOwnProperty$1.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  }\n\n  // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n  var childrenLength = arguments.length - 2;\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = ('' + key).replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n\n  return '$' + escapedString;\n}\n\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\nvar didWarnAboutMaps = false;\n\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction escapeUserProvidedKey(text) {\n  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n  if (traverseContextPool.length) {\n    var traverseContext = traverseContextPool.pop();\n    traverseContext.result = mapResult;\n    traverseContext.keyPrefix = keyPrefix;\n    traverseContext.func = mapFunction;\n    traverseContext.context = mapContext;\n    traverseContext.count = 0;\n    return traverseContext;\n  } else {\n    return {\n      result: mapResult,\n      keyPrefix: keyPrefix,\n      func: mapFunction,\n      context: mapContext,\n      count: 0\n    };\n  }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n  traverseContext.result = null;\n  traverseContext.keyPrefix = null;\n  traverseContext.func = null;\n  traverseContext.context = null;\n  traverseContext.count = 0;\n  if (traverseContextPool.length < POOL_SIZE) {\n    traverseContextPool.push(traverseContext);\n  }\n}\n\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  var invokeCallback = false;\n\n  if (children === null) {\n    invokeCallback = true;\n  } else {\n    switch (type) {\n      case 'string':\n      case 'number':\n        invokeCallback = true;\n        break;\n      case 'object':\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = true;\n        }\n    }\n  }\n\n  if (invokeCallback) {\n    callback(traverseContext, children,\n    // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows.\n    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n    return 1;\n  }\n\n  var child = void 0;\n  var nextName = void 0;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getComponentKey(child, i);\n      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n    if (typeof iteratorFn === 'function') {\n      {\n        // Warn about using Maps as children\n        if (iteratorFn === children.entries) {\n          !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;\n          didWarnAboutMaps = true;\n        }\n      }\n\n      var iterator = iteratorFn.call(children);\n      var step = void 0;\n      var ii = 0;\n      while (!(step = iterator.next()).done) {\n        child = step.value;\n        nextName = nextNamePrefix + getComponentKey(child, ii++);\n        subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n      }\n    } else if (type === 'object') {\n      var addendum = '';\n      {\n        addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n      }\n      var childrenString = '' + children;\n      (function () {\n        {\n          {\n            throw ReactError(Error('Objects are not valid as a React child (found: ' + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + ').' + addendum));\n          }\n        }\n      })();\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\nfunction traverseAllChildren(children, callback, traverseContext) {\n  if (children == null) {\n    return 0;\n  }\n\n  return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\nfunction getComponentKey(component, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (typeof component === 'object' && component !== null && component.key != null) {\n    // Explicit key\n    return escape(component.key);\n  }\n  // Implicit key determined by the index in the set\n  return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n  var func = bookKeeping.func,\n      context = bookKeeping.context;\n\n  func.call(context, child, bookKeeping.count++);\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  if (children == null) {\n    return children;\n  }\n  var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n  traverseAllChildren(children, forEachSingleChild, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n  var result = bookKeeping.result,\n      keyPrefix = bookKeeping.keyPrefix,\n      func = bookKeeping.func,\n      context = bookKeeping.context;\n\n\n  var mappedChild = func.call(context, child, bookKeeping.count++);\n  if (Array.isArray(mappedChild)) {\n    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {\n      return c;\n    });\n  } else if (mappedChild != null) {\n    if (isValidElement(mappedChild)) {\n      mappedChild = cloneAndReplaceKey(mappedChild,\n      // Keep both the (mapped) and old keys if they differ, just as\n      // traverseAllChildren used to do for objects as children\n      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n    }\n    result.push(mappedChild);\n  }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n  var escapedPrefix = '';\n  if (prefix != null) {\n    escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n  }\n  var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n  releaseTraverseContext(traverseContext);\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n  return result;\n}\n\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\nfunction countChildren(children) {\n  return traverseAllChildren(children, function () {\n    return null;\n  }, null);\n}\n\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\nfunction toArray(children) {\n  var result = [];\n  mapIntoWithKeyPrefixInternal(children, result, null, function (child) {\n    return child;\n  });\n  return result;\n}\n\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\nfunction onlyChild(children) {\n  (function () {\n    if (!isValidElement(children)) {\n      {\n        throw ReactError(Error('React.Children.only expected to receive a single React element child.'));\n      }\n    }\n  })();\n  return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n  if (calculateChangedBits === undefined) {\n    calculateChangedBits = null;\n  } else {\n    {\n      !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warningWithoutStack$1(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0;\n    }\n  }\n\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    _calculateChangedBits: calculateChangedBits,\n    // As a workaround to support multiple concurrent renderers, we categorize\n    // some renderers as primary and others as secondary. We only expect\n    // there to be two concurrent renderers at most: React Native (primary) and\n    // Fabric (secondary); React DOM (primary) and React ART (secondary).\n    // Secondary renderers store their context values on separate fields.\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    // Used to track how many concurrent renderers this context currently\n    // supports within in a single renderer. Such as parallel server rendering.\n    _threadCount: 0,\n    // These are circular\n    Provider: null,\n    Consumer: null\n  };\n\n  context.Provider = {\n    $$typeof: REACT_PROVIDER_TYPE,\n    _context: context\n  };\n\n  var hasWarnedAboutUsingNestedContextConsumers = false;\n  var hasWarnedAboutUsingConsumerProvider = false;\n\n  {\n    // A separate object, but proxies back to the original context object for\n    // backwards compatibility. It has a different $$typeof, so we can properly\n    // warn for the incorrect usage of Context as a Consumer.\n    var Consumer = {\n      $$typeof: REACT_CONTEXT_TYPE,\n      _context: context,\n      _calculateChangedBits: context._calculateChangedBits\n    };\n    // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n    Object.defineProperties(Consumer, {\n      Provider: {\n        get: function () {\n          if (!hasWarnedAboutUsingConsumerProvider) {\n            hasWarnedAboutUsingConsumerProvider = true;\n            warning$1(false, 'Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n          }\n          return context.Provider;\n        },\n        set: function (_Provider) {\n          context.Provider = _Provider;\n        }\n      },\n      _currentValue: {\n        get: function () {\n          return context._currentValue;\n        },\n        set: function (_currentValue) {\n          context._currentValue = _currentValue;\n        }\n      },\n      _currentValue2: {\n        get: function () {\n          return context._currentValue2;\n        },\n        set: function (_currentValue2) {\n          context._currentValue2 = _currentValue2;\n        }\n      },\n      _threadCount: {\n        get: function () {\n          return context._threadCount;\n        },\n        set: function (_threadCount) {\n          context._threadCount = _threadCount;\n        }\n      },\n      Consumer: {\n        get: function () {\n          if (!hasWarnedAboutUsingNestedContextConsumers) {\n            hasWarnedAboutUsingNestedContextConsumers = true;\n            warning$1(false, 'Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n          }\n          return context.Consumer;\n        }\n      }\n    });\n    // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n    context.Consumer = Consumer;\n  }\n\n  {\n    context._currentRenderer = null;\n    context._currentRenderer2 = null;\n  }\n\n  return context;\n}\n\nfunction lazy(ctor) {\n  var lazyType = {\n    $$typeof: REACT_LAZY_TYPE,\n    _ctor: ctor,\n    // React uses these fields to store the result.\n    _status: -1,\n    _result: null\n  };\n\n  {\n    // In production, this would just set it on the object.\n    var defaultProps = void 0;\n    var propTypes = void 0;\n    Object.defineProperties(lazyType, {\n      defaultProps: {\n        configurable: true,\n        get: function () {\n          return defaultProps;\n        },\n        set: function (newDefaultProps) {\n          warning$1(false, 'React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n          defaultProps = newDefaultProps;\n          // Match production behavior more closely:\n          Object.defineProperty(lazyType, 'defaultProps', {\n            enumerable: true\n          });\n        }\n      },\n      propTypes: {\n        configurable: true,\n        get: function () {\n          return propTypes;\n        },\n        set: function (newPropTypes) {\n          warning$1(false, 'React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n          propTypes = newPropTypes;\n          // Match production behavior more closely:\n          Object.defineProperty(lazyType, 'propTypes', {\n            enumerable: true\n          });\n        }\n      }\n    });\n  }\n\n  return lazyType;\n}\n\nfunction forwardRef(render) {\n  {\n    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n      warningWithoutStack$1(false, 'forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n    } else if (typeof render !== 'function') {\n      warningWithoutStack$1(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n    } else {\n      !(\n      // Do not warn for 0 arguments because it could be due to usage of the 'arguments' object\n      render.length === 0 || render.length === 2) ? warningWithoutStack$1(false, 'forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.') : void 0;\n    }\n\n    if (render != null) {\n      !(render.defaultProps == null && render.propTypes == null) ? warningWithoutStack$1(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0;\n    }\n  }\n\n  return {\n    $$typeof: REACT_FORWARD_REF_TYPE,\n    render: render\n  };\n}\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' ||\n  // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\nfunction memo(type, compare) {\n  {\n    if (!isValidElementType(type)) {\n      warningWithoutStack$1(false, 'memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n    }\n  }\n  return {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: compare === undefined ? null : compare\n  };\n}\n\nfunction resolveDispatcher() {\n  var dispatcher = ReactCurrentDispatcher.current;\n  (function () {\n    if (!(dispatcher !== null)) {\n      {\n        throw ReactError(Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.'));\n      }\n    }\n  })();\n  return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n  var dispatcher = resolveDispatcher();\n  {\n    !(unstable_observedBits === undefined) ? warning$1(false, 'useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '') : void 0;\n\n    // TODO: add a more generic warning for invalid values.\n    if (Context._context !== undefined) {\n      var realContext = Context._context;\n      // Don't deduplicate because this legitimately causes bugs\n      // and nobody should be using this in existing code.\n      if (realContext.Consumer === Context) {\n        warning$1(false, 'Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n      } else if (realContext.Provider === Context) {\n        warning$1(false, 'Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n      }\n    }\n  }\n  return dispatcher.useContext(Context, unstable_observedBits);\n}\n\nfunction useState(initialState) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useState(initialState);\n}\n\nfunction useReducer(reducer, initialArg, init) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useReducer(reducer, initialArg, init);\n}\n\nfunction useRef(initialValue) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useRef(initialValue);\n}\n\nfunction useEffect(create, inputs) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useEffect(create, inputs);\n}\n\nfunction useLayoutEffect(create, inputs) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useLayoutEffect(create, inputs);\n}\n\nfunction useCallback(callback, inputs) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useCallback(callback, inputs);\n}\n\nfunction useMemo(create, inputs) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useMemo(create, inputs);\n}\n\nfunction useImperativeHandle(ref, create, inputs) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useImperativeHandle(ref, create, inputs);\n}\n\nfunction useDebugValue(value, formatterFn) {\n  {\n    var dispatcher = resolveDispatcher();\n    return dispatcher.useDebugValue(value, formatterFn);\n  }\n}\n\nvar emptyObject$1 = {};\n\nfunction useResponder(responder, listenerProps) {\n  var dispatcher = resolveDispatcher();\n  {\n    if (responder == null || responder.$$typeof !== REACT_RESPONDER_TYPE) {\n      warning$1(false, 'useResponder: invalid first argument. Expected an event responder, but instead got %s', responder);\n      return;\n    }\n  }\n  return dispatcher.useResponder(responder, listenerProps || emptyObject$1);\n}\n\n// Within the scope of the callback, mark all updates as being allowed to suspend.\nfunction withSuspenseConfig(scope, config) {\n  var previousConfig = ReactCurrentBatchConfig.suspense;\n  ReactCurrentBatchConfig.suspense = config === undefined ? null : config;\n  try {\n    scope();\n  } finally {\n    ReactCurrentBatchConfig.suspense = previousConfig;\n  }\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nvar ReactPropTypesSecret_1 = ReactPropTypesSecret$1;\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning$1 = function() {};\n\n{\n  var ReactPropTypesSecret = ReactPropTypesSecret_1;\n  var loggedTypeFailures = {};\n\n  printWarning$1 = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  {\n    for (var typeSpecName in typeSpecs) {\n      if (typeSpecs.hasOwnProperty(typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning$1(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning$1(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\nvar checkPropTypes_1 = checkPropTypes;\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\n\nvar propTypesMisspellWarningShown = void 0;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = getComponentName(ReactCurrentOwner.current.type);\n    if (name) {\n      return '\\n\\nCheck the render method of `' + name + '`.';\n    }\n  }\n  return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  if (source !== undefined) {\n    var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n    var lineNumber = source.lineNumber;\n    return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n  }\n  return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n  if (elementProps !== null && elementProps !== undefined) {\n    return getSourceInfoErrorAddendum(elementProps.__source);\n  }\n  return '';\n}\n\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n    if (parentName) {\n      info = '\\n\\nCheck the top-level render call using <' + parentName + '>.';\n    }\n  }\n  return info;\n}\n\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n  element._store.validated = true;\n\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true;\n\n  // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n  var childOwner = '';\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = ' It was passed a child from ' + getComponentName(element._owner.type) + '.';\n  }\n\n  setCurrentlyValidatingElement(element);\n  {\n    warning$1(false, 'Each child in a list should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);\n  }\n  setCurrentlyValidatingElement(null);\n}\n\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n  if (Array.isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n    if (typeof iteratorFn === 'function') {\n      // Entry iterators used to provide implicit keys,\n      // but now we print a separate warning for them later.\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step = void 0;\n        while (!(step = iterator.next()).done) {\n          if (isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\nfunction validatePropTypes(element) {\n  var type = element.type;\n  if (type === null || type === undefined || typeof type === 'string') {\n    return;\n  }\n  var name = getComponentName(type);\n  var propTypes = void 0;\n  if (typeof type === 'function') {\n    propTypes = type.propTypes;\n  } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE ||\n  // Note: Memo only checks outer props here.\n  // Inner props are checked in the reconciler.\n  type.$$typeof === REACT_MEMO_TYPE)) {\n    propTypes = type.propTypes;\n  } else {\n    return;\n  }\n  if (propTypes) {\n    setCurrentlyValidatingElement(element);\n    checkPropTypes_1(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);\n    setCurrentlyValidatingElement(null);\n  } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n    propTypesMisspellWarningShown = true;\n    warningWithoutStack$1(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');\n  }\n  if (typeof type.getDefaultProps === 'function') {\n    !type.getDefaultProps.isReactClassApproved ? warningWithoutStack$1(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n  }\n}\n\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\nfunction validateFragmentProps(fragment) {\n  setCurrentlyValidatingElement(fragment);\n\n  var keys = Object.keys(fragment.props);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (key !== 'children' && key !== 'key') {\n      warning$1(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n      break;\n    }\n  }\n\n  if (fragment.ref !== null) {\n    warning$1(false, 'Invalid attribute `ref` supplied to `React.Fragment`.');\n  }\n\n  setCurrentlyValidatingElement(null);\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n  var validType = isValidElementType(type);\n\n  // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n  if (!validType) {\n    var info = '';\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendum(source);\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString = void 0;\n    if (type === null) {\n      typeString = 'null';\n    } else if (Array.isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = '<' + (getComponentName(type.type) || 'Unknown') + ' />';\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    warning$1(false, 'React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n  }\n\n  var element = jsxDEV(type, props, key, source, self);\n\n  // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n  if (element == null) {\n    return element;\n  }\n\n  // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n  if (validType) {\n    var children = props.children;\n    if (children !== undefined) {\n      if (isStaticChildren) {\n        for (var i = 0; i < children.length; i++) {\n          validateChildKeys(children[i], type);\n        }\n      } else {\n        validateChildKeys(children, type);\n      }\n    }\n  }\n\n  if (props.key !== undefined) {\n    warning$1(false, 'React.jsx: Spreading a key to JSX is a deprecated pattern. ' + 'Explicitly pass a key after spreading props in your JSX call. ' + 'E.g. <ComponentName {...props} key={key} />');\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\n\n// These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\nfunction jsxWithValidationStatic(type, props, key) {\n  return jsxWithValidation(type, props, key, true);\n}\n\nfunction jsxWithValidationDynamic(type, props, key) {\n  return jsxWithValidation(type, props, key, false);\n}\n\nfunction createElementWithValidation(type, props, children) {\n  var validType = isValidElementType(type);\n\n  // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n  if (!validType) {\n    var info = '';\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString = void 0;\n    if (type === null) {\n      typeString = 'null';\n    } else if (Array.isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = '<' + (getComponentName(type.type) || 'Unknown') + ' />';\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    warning$1(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n  }\n\n  var element = createElement.apply(this, arguments);\n\n  // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n  if (element == null) {\n    return element;\n  }\n\n  // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n  if (validType) {\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\n\nfunction createFactoryWithValidation(type) {\n  var validatedFactory = createElementWithValidation.bind(null, type);\n  validatedFactory.type = type;\n  // Legacy hook: remove it\n  {\n    Object.defineProperty(validatedFactory, 'type', {\n      enumerable: false,\n      get: function () {\n        lowPriorityWarning$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n        Object.defineProperty(this, 'type', {\n          value: type\n        });\n        return type;\n      }\n    });\n  }\n\n  return validatedFactory;\n}\n\nfunction cloneElementWithValidation(element, props, children) {\n  var newElement = cloneElement.apply(this, arguments);\n  for (var i = 2; i < arguments.length; i++) {\n    validateChildKeys(arguments[i], newElement.type);\n  }\n  validatePropTypes(newElement);\n  return newElement;\n}\n\nvar enableSchedulerDebugging = false;\nvar enableIsInputPending = false;\nvar requestIdleCallbackBeforeFirstFrame = false;\nvar requestTimerEventBeforeFirstFrame = false;\nvar enableMessageLoopImplementation = false;\n\n// The DOM Scheduler implementation is similar to requestIdleCallback. It\n// works by scheduling a requestAnimationFrame, storing the time for the start\n// of the frame, then scheduling a postMessage which gets scheduled after paint.\n// Within the postMessage handler do as much work as possible until time + frame\n// rate. By separating the idle call into a separate event tick we ensure that\n// layout, paint and other browser work is counted against the available time.\n// The frame rate is dynamically adjusted.\n\nvar requestHostCallback = void 0;\n\nvar requestHostTimeout = void 0;\nvar cancelHostTimeout = void 0;\nvar shouldYieldToHost = void 0;\nvar requestPaint = void 0;\nvar getCurrentTime = void 0;\nvar forceFrameRate = void 0;\n\nif (\n// If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' ||\n// Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n  // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n  // fallback to a naive implementation.\n  var _callback = null;\n  var _timeoutID = null;\n  var _flushCallback = function () {\n    if (_callback !== null) {\n      try {\n        var currentTime = getCurrentTime();\n        var hasRemainingTime = true;\n        _callback(hasRemainingTime, currentTime);\n        _callback = null;\n      } catch (e) {\n        setTimeout(_flushCallback, 0);\n        throw e;\n      }\n    }\n  };\n  getCurrentTime = function () {\n    return Date.now();\n  };\n  requestHostCallback = function (cb) {\n    if (_callback !== null) {\n      // Protect against re-entrancy.\n      setTimeout(requestHostCallback, 0, cb);\n    } else {\n      _callback = cb;\n      setTimeout(_flushCallback, 0);\n    }\n  };\n  requestHostTimeout = function (cb, ms) {\n    _timeoutID = setTimeout(cb, ms);\n  };\n  cancelHostTimeout = function () {\n    clearTimeout(_timeoutID);\n  };\n  shouldYieldToHost = function () {\n    return false;\n  };\n  requestPaint = forceFrameRate = function () {};\n} else {\n  // Capture local references to native APIs, in case a polyfill overrides them.\n  var performance = window.performance;\n  var _Date = window.Date;\n  var _setTimeout = window.setTimeout;\n  var _clearTimeout = window.clearTimeout;\n  var requestAnimationFrame = window.requestAnimationFrame;\n  var cancelAnimationFrame = window.cancelAnimationFrame;\n  var requestIdleCallback = window.requestIdleCallback;\n\n  if (typeof console !== 'undefined') {\n    // TODO: Remove fb.me link\n    if (typeof requestAnimationFrame !== 'function') {\n      console.error(\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n    if (typeof cancelAnimationFrame !== 'function') {\n      console.error(\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');\n    }\n  }\n\n  var requestIdleCallbackBeforeFirstFrame$1 = requestIdleCallbackBeforeFirstFrame && typeof requestIdleCallback === 'function' && typeof cancelIdleCallback === 'function';\n\n  getCurrentTime = typeof performance === 'object' && typeof performance.now === 'function' ? function () {\n    return performance.now();\n  } : function () {\n    return _Date.now();\n  };\n\n  var isRAFLoopRunning = false;\n  var isMessageLoopRunning = false;\n  var scheduledHostCallback = null;\n  var rAFTimeoutID = -1;\n  var taskTimeoutID = -1;\n\n  var frameLength = enableMessageLoopImplementation ? // We won't attempt to align with the vsync. Instead we'll yield multiple\n  // times per frame, often enough to keep it responsive even at really\n  // high frame rates > 120.\n  5 : // Use a heuristic to measure the frame rate and yield at the end of the\n  // frame. We start out assuming that we run at 30fps but then the\n  // heuristic tracking will adjust this value to a faster fps if we get\n  // more frequent animation frames.\n  33.33;\n\n  var prevRAFTime = -1;\n  var prevRAFInterval = -1;\n  var frameDeadline = 0;\n\n  var fpsLocked = false;\n\n  // TODO: Make this configurable\n  // TODO: Adjust this based on priority?\n  var maxFrameLength = 300;\n  var needsPaint = false;\n\n  if (enableIsInputPending && navigator !== undefined && navigator.scheduling !== undefined && navigator.scheduling.isInputPending !== undefined) {\n    var scheduling = navigator.scheduling;\n    shouldYieldToHost = function () {\n      var currentTime = getCurrentTime();\n      if (currentTime >= frameDeadline) {\n        // There's no time left in the frame. We may want to yield control of\n        // the main thread, so the browser can perform high priority tasks. The\n        // main ones are painting and user input. If there's a pending paint or\n        // a pending input, then we should yield. But if there's neither, then\n        // we can yield less often while remaining responsive. We'll eventually\n        // yield regardless, since there could be a pending paint that wasn't\n        // accompanied by a call to `requestPaint`, or other main thread tasks\n        // like network events.\n        if (needsPaint || scheduling.isInputPending()) {\n          // There is either a pending paint or a pending input.\n          return true;\n        }\n        // There's no pending input. Only yield if we've reached the max\n        // frame length.\n        return currentTime >= frameDeadline + maxFrameLength;\n      } else {\n        // There's still time left in the frame.\n        return false;\n      }\n    };\n\n    requestPaint = function () {\n      needsPaint = true;\n    };\n  } else {\n    // `isInputPending` is not available. Since we have no way of knowing if\n    // there's pending input, always yield at the end of the frame.\n    shouldYieldToHost = function () {\n      return getCurrentTime() >= frameDeadline;\n    };\n\n    // Since we yield every frame regardless, `requestPaint` has no effect.\n    requestPaint = function () {};\n  }\n\n  forceFrameRate = function (fps) {\n    if (fps < 0 || fps > 125) {\n      console.error('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing framerates higher than 125 fps is not unsupported');\n      return;\n    }\n    if (fps > 0) {\n      frameLength = Math.floor(1000 / fps);\n      fpsLocked = true;\n    } else {\n      // reset the framerate\n      frameLength = 33.33;\n      fpsLocked = false;\n    }\n  };\n\n  var performWorkUntilDeadline = function () {\n    if (enableMessageLoopImplementation) {\n      if (scheduledHostCallback !== null) {\n        var currentTime = getCurrentTime();\n        // Yield after `frameLength` ms, regardless of where we are in the vsync\n        // cycle. This means there's always time remaining at the beginning of\n        // the message event.\n        frameDeadline = currentTime + frameLength;\n        var hasTimeRemaining = true;\n        try {\n          var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n          if (!hasMoreWork) {\n            isMessageLoopRunning = false;\n            scheduledHostCallback = null;\n          } else {\n            // If there's more work, schedule the next message event at the end\n            // of the preceding one.\n            port.postMessage(null);\n          }\n        } catch (error) {\n          // If a scheduler task throws, exit the current browser task so the\n          // error can be observed.\n          port.postMessage(null);\n          throw error;\n        }\n      }\n      // Yielding to the browser will give it a chance to paint, so we can\n      // reset this.\n      needsPaint = false;\n    } else {\n      if (scheduledHostCallback !== null) {\n        var _currentTime = getCurrentTime();\n        var _hasTimeRemaining = frameDeadline - _currentTime > 0;\n        try {\n          var _hasMoreWork = scheduledHostCallback(_hasTimeRemaining, _currentTime);\n          if (!_hasMoreWork) {\n            scheduledHostCallback = null;\n          }\n        } catch (error) {\n          // If a scheduler task throws, exit the current browser task so the\n          // error can be observed, and post a new task as soon as possible\n          // so we can continue where we left off.\n          port.postMessage(null);\n          throw error;\n        }\n      }\n      // Yielding to the browser will give it a chance to paint, so we can\n      // reset this.\n      needsPaint = false;\n    }\n  };\n\n  var channel = new MessageChannel();\n  var port = channel.port2;\n  channel.port1.onmessage = performWorkUntilDeadline;\n\n  var onAnimationFrame = function (rAFTime) {\n    if (scheduledHostCallback === null) {\n      // No scheduled work. Exit.\n      prevRAFTime = -1;\n      prevRAFInterval = -1;\n      isRAFLoopRunning = false;\n      return;\n    }\n\n    // Eagerly schedule the next animation callback at the beginning of the\n    // frame. If the scheduler queue is not empty at the end of the frame, it\n    // will continue flushing inside that callback. If the queue *is* empty,\n    // then it will exit immediately. Posting the callback at the start of the\n    // frame ensures it's fired within the earliest possible frame. If we\n    // waited until the end of the frame to post the callback, we risk the\n    // browser skipping a frame and not firing the callback until the frame\n    // after that.\n    isRAFLoopRunning = true;\n    requestAnimationFrame(function (nextRAFTime) {\n      _clearTimeout(rAFTimeoutID);\n      onAnimationFrame(nextRAFTime);\n    });\n\n    // requestAnimationFrame is throttled when the tab is backgrounded. We\n    // don't want to stop working entirely. So we'll fallback to a timeout loop.\n    // TODO: Need a better heuristic for backgrounded work.\n    var onTimeout = function () {\n      frameDeadline = getCurrentTime() + frameLength / 2;\n      performWorkUntilDeadline();\n      rAFTimeoutID = _setTimeout(onTimeout, frameLength * 3);\n    };\n    rAFTimeoutID = _setTimeout(onTimeout, frameLength * 3);\n\n    if (prevRAFTime !== -1 &&\n    // Make sure this rAF time is different from the previous one. This check\n    // could fail if two rAFs fire in the same frame.\n    rAFTime - prevRAFTime > 0.1) {\n      var rAFInterval = rAFTime - prevRAFTime;\n      if (!fpsLocked && prevRAFInterval !== -1) {\n        // We've observed two consecutive frame intervals. We'll use this to\n        // dynamically adjust the frame rate.\n        //\n        // If one frame goes long, then the next one can be short to catch up.\n        // If two frames are short in a row, then that's an indication that we\n        // actually have a higher frame rate than what we're currently\n        // optimizing. For example, if we're running on 120hz display or 90hz VR\n        // display. Take the max of the two in case one of them was an anomaly\n        // due to missed frame deadlines.\n        if (rAFInterval < frameLength && prevRAFInterval < frameLength) {\n          frameLength = rAFInterval < prevRAFInterval ? prevRAFInterval : rAFInterval;\n          if (frameLength < 8.33) {\n            // Defensive coding. We don't support higher frame rates than 120hz.\n            // If the calculated frame length gets lower than 8, it is probably\n            // a bug.\n            frameLength = 8.33;\n          }\n        }\n      }\n      prevRAFInterval = rAFInterval;\n    }\n    prevRAFTime = rAFTime;\n    frameDeadline = rAFTime + frameLength;\n\n    // We use the postMessage trick to defer idle work until after the repaint.\n    port.postMessage(null);\n  };\n\n  requestHostCallback = function (callback) {\n    scheduledHostCallback = callback;\n    if (enableMessageLoopImplementation) {\n      if (!isMessageLoopRunning) {\n        isMessageLoopRunning = true;\n        port.postMessage(null);\n      }\n    } else {\n      if (!isRAFLoopRunning) {\n        // Start a rAF loop.\n        isRAFLoopRunning = true;\n        requestAnimationFrame(function (rAFTime) {\n          if (requestIdleCallbackBeforeFirstFrame$1) {\n            cancelIdleCallback(idleCallbackID);\n          }\n          if (requestTimerEventBeforeFirstFrame) {\n            _clearTimeout(idleTimeoutID);\n          }\n          onAnimationFrame(rAFTime);\n        });\n\n        // If we just missed the last vsync, the next rAF might not happen for\n        // another frame. To claim as much idle time as possible, post a\n        // callback with `requestIdleCallback`, which should fire if there's\n        // idle time left in the frame.\n        //\n        // This should only be an issue for the first rAF in the loop;\n        // subsequent rAFs are scheduled at the beginning of the\n        // preceding frame.\n        var idleCallbackID = void 0;\n        if (requestIdleCallbackBeforeFirstFrame$1) {\n          idleCallbackID = requestIdleCallback(function onIdleCallbackBeforeFirstFrame() {\n            if (requestTimerEventBeforeFirstFrame) {\n              _clearTimeout(idleTimeoutID);\n            }\n            frameDeadline = getCurrentTime() + frameLength;\n            performWorkUntilDeadline();\n          });\n        }\n        // Alternate strategy to address the same problem. Scheduler a timer\n        // with no delay. If this fires before the rAF, that likely indicates\n        // that there's idle time before the next vsync. This isn't always the\n        // case, but we'll be aggressive and assume it is, as a trade off to\n        // prevent idle periods.\n        var idleTimeoutID = void 0;\n        if (requestTimerEventBeforeFirstFrame) {\n          idleTimeoutID = _setTimeout(function onTimerEventBeforeFirstFrame() {\n            if (requestIdleCallbackBeforeFirstFrame$1) {\n              cancelIdleCallback(idleCallbackID);\n            }\n            frameDeadline = getCurrentTime() + frameLength;\n            performWorkUntilDeadline();\n          }, 0);\n        }\n      }\n    }\n  };\n\n  requestHostTimeout = function (callback, ms) {\n    taskTimeoutID = _setTimeout(function () {\n      callback(getCurrentTime());\n    }, ms);\n  };\n\n  cancelHostTimeout = function () {\n    _clearTimeout(taskTimeoutID);\n    taskTimeoutID = -1;\n  };\n}\n\n/* eslint-disable no-var */\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar maxSigned31BitInt = 1073741823;\n\n// Times out immediately\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1;\n// Eventually times out\nvar USER_BLOCKING_PRIORITY = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000;\n// Never times out\nvar IDLE_PRIORITY = maxSigned31BitInt;\n\n// Tasks are stored as a circular, doubly linked list.\nvar firstTask = null;\nvar firstDelayedTask = null;\n\n// Pausing the scheduler is useful for debugging.\nvar isSchedulerPaused = false;\n\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority;\n\n// This is set while performing work, to prevent re-entrancy.\nvar isPerformingWork = false;\n\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction scheduler_flushTaskAtPriority_Immediate(callback, didTimeout) {\n  return callback(didTimeout);\n}\nfunction scheduler_flushTaskAtPriority_UserBlocking(callback, didTimeout) {\n  return callback(didTimeout);\n}\nfunction scheduler_flushTaskAtPriority_Normal(callback, didTimeout) {\n  return callback(didTimeout);\n}\nfunction scheduler_flushTaskAtPriority_Low(callback, didTimeout) {\n  return callback(didTimeout);\n}\nfunction scheduler_flushTaskAtPriority_Idle(callback, didTimeout) {\n  return callback(didTimeout);\n}\n\nfunction flushTask(task, currentTime) {\n  // Remove the task from the list before calling the callback. That way the\n  // list is in a consistent state even if the callback throws.\n  var next = task.next;\n  if (next === task) {\n    // This is the only scheduled task. Clear the list.\n    firstTask = null;\n  } else {\n    // Remove the task from its position in the list.\n    if (task === firstTask) {\n      firstTask = next;\n    }\n    var previous = task.previous;\n    previous.next = next;\n    next.previous = previous;\n  }\n  task.next = task.previous = null;\n\n  // Now it's safe to execute the task.\n  var callback = task.callback;\n  var previousPriorityLevel = currentPriorityLevel;\n  var previousTask = currentTask;\n  currentPriorityLevel = task.priorityLevel;\n  currentTask = task;\n  var continuationCallback;\n  try {\n    var didUserCallbackTimeout = task.expirationTime <= currentTime;\n    // Add an extra function to the callstack. Profiling tools can use this\n    // to infer the priority of work that appears higher in the stack.\n    switch (currentPriorityLevel) {\n      case ImmediatePriority:\n        continuationCallback = scheduler_flushTaskAtPriority_Immediate(callback, didUserCallbackTimeout);\n        break;\n      case UserBlockingPriority:\n        continuationCallback = scheduler_flushTaskAtPriority_UserBlocking(callback, didUserCallbackTimeout);\n        break;\n      case NormalPriority:\n        continuationCallback = scheduler_flushTaskAtPriority_Normal(callback, didUserCallbackTimeout);\n        break;\n      case LowPriority:\n        continuationCallback = scheduler_flushTaskAtPriority_Low(callback, didUserCallbackTimeout);\n        break;\n      case IdlePriority:\n        continuationCallback = scheduler_flushTaskAtPriority_Idle(callback, didUserCallbackTimeout);\n        break;\n    }\n  } catch (error) {\n    throw error;\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n    currentTask = previousTask;\n  }\n\n  // A callback may return a continuation. The continuation should be scheduled\n  // with the same priority and expiration as the just-finished callback.\n  if (typeof continuationCallback === 'function') {\n    var expirationTime = task.expirationTime;\n    var continuationTask = task;\n    continuationTask.callback = continuationCallback;\n\n    // Insert the new callback into the list, sorted by its timeout. This is\n    // almost the same as the code in `scheduleCallback`, except the callback\n    // is inserted into the list *before* callbacks of equal timeout instead\n    // of after.\n    if (firstTask === null) {\n      // This is the first callback in the list.\n      firstTask = continuationTask.next = continuationTask.previous = continuationTask;\n    } else {\n      var nextAfterContinuation = null;\n      var t = firstTask;\n      do {\n        if (expirationTime <= t.expirationTime) {\n          // This task times out at or after the continuation. We will insert\n          // the continuation *before* this task.\n          nextAfterContinuation = t;\n          break;\n        }\n        t = t.next;\n      } while (t !== firstTask);\n      if (nextAfterContinuation === null) {\n        // No equal or lower priority task was found, which means the new task\n        // is the lowest priority task in the list.\n        nextAfterContinuation = firstTask;\n      } else if (nextAfterContinuation === firstTask) {\n        // The new task is the highest priority task in the list.\n        firstTask = continuationTask;\n      }\n\n      var _previous = nextAfterContinuation.previous;\n      _previous.next = nextAfterContinuation.previous = continuationTask;\n      continuationTask.next = nextAfterContinuation;\n      continuationTask.previous = _previous;\n    }\n  }\n}\n\nfunction advanceTimers(currentTime) {\n  // Check for tasks that are no longer delayed and add them to the queue.\n  if (firstDelayedTask !== null && firstDelayedTask.startTime <= currentTime) {\n    do {\n      var task = firstDelayedTask;\n      var next = task.next;\n      if (task === next) {\n        firstDelayedTask = null;\n      } else {\n        firstDelayedTask = next;\n        var previous = task.previous;\n        previous.next = next;\n        next.previous = previous;\n      }\n      task.next = task.previous = null;\n      insertScheduledTask(task, task.expirationTime);\n    } while (firstDelayedTask !== null && firstDelayedTask.startTime <= currentTime);\n  }\n}\n\nfunction handleTimeout(currentTime) {\n  isHostTimeoutScheduled = false;\n  advanceTimers(currentTime);\n\n  if (!isHostCallbackScheduled) {\n    if (firstTask !== null) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    } else if (firstDelayedTask !== null) {\n      requestHostTimeout(handleTimeout, firstDelayedTask.startTime - currentTime);\n    }\n  }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n  // Exit right away if we're currently paused\n  if (enableSchedulerDebugging && isSchedulerPaused) {\n    return;\n  }\n\n  // We'll need a host callback the next time work is scheduled.\n  isHostCallbackScheduled = false;\n  if (isHostTimeoutScheduled) {\n    // We scheduled a timeout but it's no longer needed. Cancel it.\n    isHostTimeoutScheduled = false;\n    cancelHostTimeout();\n  }\n\n  var currentTime = initialTime;\n  advanceTimers(currentTime);\n\n  isPerformingWork = true;\n  try {\n    if (!hasTimeRemaining) {\n      // Flush all the expired callbacks without yielding.\n      // TODO: Split flushWork into two separate functions instead of using\n      // a boolean argument?\n      while (firstTask !== null && firstTask.expirationTime <= currentTime && !(enableSchedulerDebugging && isSchedulerPaused)) {\n        flushTask(firstTask, currentTime);\n        currentTime = getCurrentTime();\n        advanceTimers(currentTime);\n      }\n    } else {\n      // Keep flushing callbacks until we run out of time in the frame.\n      if (firstTask !== null) {\n        do {\n          flushTask(firstTask, currentTime);\n          currentTime = getCurrentTime();\n          advanceTimers(currentTime);\n        } while (firstTask !== null && !shouldYieldToHost() && !(enableSchedulerDebugging && isSchedulerPaused));\n      }\n    }\n    // Return whether there's additional work\n    if (firstTask !== null) {\n      return true;\n    } else {\n      if (firstDelayedTask !== null) {\n        requestHostTimeout(handleTimeout, firstDelayedTask.startTime - currentTime);\n      }\n      return false;\n    }\n  } finally {\n    isPerformingWork = false;\n  }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n    case LowPriority:\n    case IdlePriority:\n      break;\n    default:\n      priorityLevel = NormalPriority;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_next(eventHandler) {\n  var priorityLevel;\n  switch (currentPriorityLevel) {\n    case ImmediatePriority:\n    case UserBlockingPriority:\n    case NormalPriority:\n      // Shift down to normal priority\n      priorityLevel = NormalPriority;\n      break;\n    default:\n      // Anything lower than normal priority should remain at the current level.\n      priorityLevel = currentPriorityLevel;\n      break;\n  }\n\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n}\n\nfunction unstable_wrapCallback(callback) {\n  var parentPriorityLevel = currentPriorityLevel;\n  return function () {\n    // This is a fork of runWithPriority, inlined for performance.\n    var previousPriorityLevel = currentPriorityLevel;\n    currentPriorityLevel = parentPriorityLevel;\n\n    try {\n      return callback.apply(this, arguments);\n    } finally {\n      currentPriorityLevel = previousPriorityLevel;\n    }\n  };\n}\n\nfunction timeoutForPriorityLevel(priorityLevel) {\n  switch (priorityLevel) {\n    case ImmediatePriority:\n      return IMMEDIATE_PRIORITY_TIMEOUT;\n    case UserBlockingPriority:\n      return USER_BLOCKING_PRIORITY;\n    case IdlePriority:\n      return IDLE_PRIORITY;\n    case LowPriority:\n      return LOW_PRIORITY_TIMEOUT;\n    case NormalPriority:\n    default:\n      return NORMAL_PRIORITY_TIMEOUT;\n  }\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n  var currentTime = getCurrentTime();\n\n  var startTime;\n  var timeout;\n  if (typeof options === 'object' && options !== null) {\n    var delay = options.delay;\n    if (typeof delay === 'number' && delay > 0) {\n      startTime = currentTime + delay;\n    } else {\n      startTime = currentTime;\n    }\n    timeout = typeof options.timeout === 'number' ? options.timeout : timeoutForPriorityLevel(priorityLevel);\n  } else {\n    timeout = timeoutForPriorityLevel(priorityLevel);\n    startTime = currentTime;\n  }\n\n  var expirationTime = startTime + timeout;\n\n  var newTask = {\n    callback: callback,\n    priorityLevel: priorityLevel,\n    startTime: startTime,\n    expirationTime: expirationTime,\n    next: null,\n    previous: null\n  };\n\n  if (startTime > currentTime) {\n    // This is a delayed task.\n    insertDelayedTask(newTask, startTime);\n    if (firstTask === null && firstDelayedTask === newTask) {\n      // All tasks are delayed, and this is the task with the earliest delay.\n      if (isHostTimeoutScheduled) {\n        // Cancel an existing timeout.\n        cancelHostTimeout();\n      } else {\n        isHostTimeoutScheduled = true;\n      }\n      // Schedule a timeout.\n      requestHostTimeout(handleTimeout, startTime - currentTime);\n    }\n  } else {\n    insertScheduledTask(newTask, expirationTime);\n    // Schedule a host callback, if needed. If we're already performing work,\n    // wait until the next time we yield.\n    if (!isHostCallbackScheduled && !isPerformingWork) {\n      isHostCallbackScheduled = true;\n      requestHostCallback(flushWork);\n    }\n  }\n\n  return newTask;\n}\n\nfunction insertScheduledTask(newTask, expirationTime) {\n  // Insert the new task into the list, ordered first by its timeout, then by\n  // insertion. So the new task is inserted after any other task the\n  // same timeout\n  if (firstTask === null) {\n    // This is the first task in the list.\n    firstTask = newTask.next = newTask.previous = newTask;\n  } else {\n    var next = null;\n    var task = firstTask;\n    do {\n      if (expirationTime < task.expirationTime) {\n        // The new task times out before this one.\n        next = task;\n        break;\n      }\n      task = task.next;\n    } while (task !== firstTask);\n\n    if (next === null) {\n      // No task with a later timeout was found, which means the new task has\n      // the latest timeout in the list.\n      next = firstTask;\n    } else if (next === firstTask) {\n      // The new task has the earliest expiration in the entire list.\n      firstTask = newTask;\n    }\n\n    var previous = next.previous;\n    previous.next = next.previous = newTask;\n    newTask.next = next;\n    newTask.previous = previous;\n  }\n}\n\nfunction insertDelayedTask(newTask, startTime) {\n  // Insert the new task into the list, ordered by its start time.\n  if (firstDelayedTask === null) {\n    // This is the first task in the list.\n    firstDelayedTask = newTask.next = newTask.previous = newTask;\n  } else {\n    var next = null;\n    var task = firstDelayedTask;\n    do {\n      if (startTime < task.startTime) {\n        // The new task times out before this one.\n        next = task;\n        break;\n      }\n      task = task.next;\n    } while (task !== firstDelayedTask);\n\n    if (next === null) {\n      // No task with a later timeout was found, which means the new task has\n      // the latest timeout in the list.\n      next = firstDelayedTask;\n    } else if (next === firstDelayedTask) {\n      // The new task has the earliest expiration in the entire list.\n      firstDelayedTask = newTask;\n    }\n\n    var previous = next.previous;\n    previous.next = next.previous = newTask;\n    newTask.next = next;\n    newTask.previous = previous;\n  }\n}\n\nfunction unstable_pauseExecution() {\n  isSchedulerPaused = true;\n}\n\nfunction unstable_continueExecution() {\n  isSchedulerPaused = false;\n  if (!isHostCallbackScheduled && !isPerformingWork) {\n    isHostCallbackScheduled = true;\n    requestHostCallback(flushWork);\n  }\n}\n\nfunction unstable_getFirstCallbackNode() {\n  return firstTask;\n}\n\nfunction unstable_cancelCallback(task) {\n  var next = task.next;\n  if (next === null) {\n    // Already cancelled.\n    return;\n  }\n\n  if (task === next) {\n    if (task === firstTask) {\n      firstTask = null;\n    } else if (task === firstDelayedTask) {\n      firstDelayedTask = null;\n    }\n  } else {\n    if (task === firstTask) {\n      firstTask = next;\n    } else if (task === firstDelayedTask) {\n      firstDelayedTask = next;\n    }\n    var previous = task.previous;\n    previous.next = next;\n    next.previous = previous;\n  }\n\n  task.next = task.previous = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n  return currentPriorityLevel;\n}\n\nfunction unstable_shouldYield() {\n  var currentTime = getCurrentTime();\n  advanceTimers(currentTime);\n  return currentTask !== null && firstTask !== null && firstTask.startTime <= currentTime && firstTask.expirationTime < currentTask.expirationTime || shouldYieldToHost();\n}\n\nvar unstable_requestPaint = requestPaint;\n\n\n\nvar Scheduler = Object.freeze({\n\tunstable_ImmediatePriority: ImmediatePriority,\n\tunstable_UserBlockingPriority: UserBlockingPriority,\n\tunstable_NormalPriority: NormalPriority,\n\tunstable_IdlePriority: IdlePriority,\n\tunstable_LowPriority: LowPriority,\n\tunstable_runWithPriority: unstable_runWithPriority,\n\tunstable_next: unstable_next,\n\tunstable_scheduleCallback: unstable_scheduleCallback,\n\tunstable_cancelCallback: unstable_cancelCallback,\n\tunstable_wrapCallback: unstable_wrapCallback,\n\tunstable_getCurrentPriorityLevel: unstable_getCurrentPriorityLevel,\n\tunstable_shouldYield: unstable_shouldYield,\n\tunstable_requestPaint: unstable_requestPaint,\n\tunstable_continueExecution: unstable_continueExecution,\n\tunstable_pauseExecution: unstable_pauseExecution,\n\tunstable_getFirstCallbackNode: unstable_getFirstCallbackNode,\n\tget unstable_now () { return getCurrentTime; },\n\tget unstable_forceFrameRate () { return forceFrameRate; }\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:\n\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\nvar enableSchedulerTracing = true;\n\n// Only used in www builds.\n // 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// Disable javascript: URL strings in href for XSS protection.\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\n\n\n\n// See https://github.com/react-native-community/discussions-and-proposals/issues/72 for more information\n// This is a flag so we can fix warnings in RN core before turning it on\n\n\n// Experimental React Flare event system and event components support.\nvar enableFlareAPI = false;\n\n// Experimental Host Component support.\nvar enableFundamentalAPI = false;\n\n// New API for JSX transforms to target - https://github.com/reactjs/rfcs/pull/107\nvar enableJSXTransformAPI = false;\n\n// We will enforce mocking scheduler with scheduler/unstable_mock at some point. (v17?)\n// Till then, we warn about the missing mock, but still fallback to a sync mode compatible version\n\n// Temporary flag to revert the fix in #15650\n\n\n// For tests, we flush suspense fallbacks in an act scope;\n// *except* in some of our own tests, where we test incremental loading states.\n\n\n// Changes priority of some events like mousemove to user-blocking priority,\n// but without making them discrete. The flag exists in case it causes\n// starvation problems.\n\n\n// Add a callback property to suspense to notify which promises are currently\n// in the update queue. This allows reporting and tracing of what is causing\n// the user to see a loading state.\n\n\n// Part of the simplification of React.createElement so we can eventually move\n// from React.createElement to React.jsx\n// https://github.com/reactjs/rfcs/blob/createlement-rfc/text/0000-create-element-changes.md\n\nvar DEFAULT_THREAD_ID = 0;\n\n// Counters used to generate unique IDs.\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0;\n\n// Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\nvar interactionsRef = null;\n\n// Listener(s) to notify when interactions begin and end.\nvar subscriberRef = null;\n\nif (enableSchedulerTracing) {\n  interactionsRef = {\n    current: new Set()\n  };\n  subscriberRef = {\n    current: null\n  };\n}\n\nfunction unstable_clear(callback) {\n  if (!enableSchedulerTracing) {\n    return callback();\n  }\n\n  var prevInteractions = interactionsRef.current;\n  interactionsRef.current = new Set();\n\n  try {\n    return callback();\n  } finally {\n    interactionsRef.current = prevInteractions;\n  }\n}\n\nfunction unstable_getCurrent() {\n  if (!enableSchedulerTracing) {\n    return null;\n  } else {\n    return interactionsRef.current;\n  }\n}\n\nfunction unstable_getThreadID() {\n  return ++threadIDCounter;\n}\n\nfunction unstable_trace(name, timestamp, callback) {\n  var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n  if (!enableSchedulerTracing) {\n    return callback();\n  }\n\n  var interaction = {\n    __count: 1,\n    id: interactionIDCounter++,\n    name: name,\n    timestamp: timestamp\n  };\n\n  var prevInteractions = interactionsRef.current;\n\n  // Traced interactions should stack/accumulate.\n  // To do that, clone the current interactions.\n  // The previous set will be restored upon completion.\n  var interactions = new Set(prevInteractions);\n  interactions.add(interaction);\n  interactionsRef.current = interactions;\n\n  var subscriber = subscriberRef.current;\n  var returnValue = void 0;\n\n  try {\n    if (subscriber !== null) {\n      subscriber.onInteractionTraced(interaction);\n    }\n  } finally {\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkStarted(interactions, threadID);\n      }\n    } finally {\n      try {\n        returnValue = callback();\n      } finally {\n        interactionsRef.current = prevInteractions;\n\n        try {\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(interactions, threadID);\n          }\n        } finally {\n          interaction.__count--;\n\n          // If no async work was scheduled for this interaction,\n          // Notify subscribers that it's completed.\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        }\n      }\n    }\n  }\n\n  return returnValue;\n}\n\nfunction unstable_wrap(callback) {\n  var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n  if (!enableSchedulerTracing) {\n    return callback;\n  }\n\n  var wrappedInteractions = interactionsRef.current;\n\n  var subscriber = subscriberRef.current;\n  if (subscriber !== null) {\n    subscriber.onWorkScheduled(wrappedInteractions, threadID);\n  }\n\n  // Update the pending async work count for the current interactions.\n  // Update after calling subscribers in case of error.\n  wrappedInteractions.forEach(function (interaction) {\n    interaction.__count++;\n  });\n\n  var hasRun = false;\n\n  function wrapped() {\n    var prevInteractions = interactionsRef.current;\n    interactionsRef.current = wrappedInteractions;\n\n    subscriber = subscriberRef.current;\n\n    try {\n      var returnValue = void 0;\n\n      try {\n        if (subscriber !== null) {\n          subscriber.onWorkStarted(wrappedInteractions, threadID);\n        }\n      } finally {\n        try {\n          returnValue = callback.apply(undefined, arguments);\n        } finally {\n          interactionsRef.current = prevInteractions;\n\n          if (subscriber !== null) {\n            subscriber.onWorkStopped(wrappedInteractions, threadID);\n          }\n        }\n      }\n\n      return returnValue;\n    } finally {\n      if (!hasRun) {\n        // We only expect a wrapped function to be executed once,\n        // But in the event that it's executed more than once–\n        // Only decrement the outstanding interaction counts once.\n        hasRun = true;\n\n        // Update pending async counts for all wrapped interactions.\n        // If this was the last scheduled async work for any of them,\n        // Mark them as completed.\n        wrappedInteractions.forEach(function (interaction) {\n          interaction.__count--;\n\n          if (subscriber !== null && interaction.__count === 0) {\n            subscriber.onInteractionScheduledWorkCompleted(interaction);\n          }\n        });\n      }\n    }\n  }\n\n  wrapped.cancel = function cancel() {\n    subscriber = subscriberRef.current;\n\n    try {\n      if (subscriber !== null) {\n        subscriber.onWorkCanceled(wrappedInteractions, threadID);\n      }\n    } finally {\n      // Update pending async counts for all wrapped interactions.\n      // If this was the last scheduled async work for any of them,\n      // Mark them as completed.\n      wrappedInteractions.forEach(function (interaction) {\n        interaction.__count--;\n\n        if (subscriber && interaction.__count === 0) {\n          subscriber.onInteractionScheduledWorkCompleted(interaction);\n        }\n      });\n    }\n  };\n\n  return wrapped;\n}\n\nvar subscribers = null;\nif (enableSchedulerTracing) {\n  subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n  if (enableSchedulerTracing) {\n    subscribers.add(subscriber);\n\n    if (subscribers.size === 1) {\n      subscriberRef.current = {\n        onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n        onInteractionTraced: onInteractionTraced,\n        onWorkCanceled: onWorkCanceled,\n        onWorkScheduled: onWorkScheduled,\n        onWorkStarted: onWorkStarted,\n        onWorkStopped: onWorkStopped\n      };\n    }\n  }\n}\n\nfunction unstable_unsubscribe(subscriber) {\n  if (enableSchedulerTracing) {\n    subscribers.delete(subscriber);\n\n    if (subscribers.size === 0) {\n      subscriberRef.current = null;\n    }\n  }\n}\n\nfunction onInteractionTraced(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionTraced(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onInteractionScheduledWorkCompleted(interaction);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkScheduled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStarted(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkStopped(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n  var didCatchError = false;\n  var caughtError = null;\n\n  subscribers.forEach(function (subscriber) {\n    try {\n      subscriber.onWorkCanceled(interactions, threadID);\n    } catch (error) {\n      if (!didCatchError) {\n        didCatchError = true;\n        caughtError = error;\n      }\n    }\n  });\n\n  if (didCatchError) {\n    throw caughtError;\n  }\n}\n\n\n\nvar SchedulerTracing = Object.freeze({\n\tget __interactionsRef () { return interactionsRef; },\n\tget __subscriberRef () { return subscriberRef; },\n\tunstable_clear: unstable_clear,\n\tunstable_getCurrent: unstable_getCurrent,\n\tunstable_getThreadID: unstable_getThreadID,\n\tunstable_trace: unstable_trace,\n\tunstable_wrap: unstable_wrap,\n\tunstable_subscribe: unstable_subscribe,\n\tunstable_unsubscribe: unstable_unsubscribe\n});\n\nvar ReactSharedInternals$2 = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentOwner: ReactCurrentOwner,\n  IsSomeRendererActing: IsSomeRendererActing,\n  // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n  assign: objectAssign\n};\n\n{\n  objectAssign(ReactSharedInternals$2, {\n    // These should not be included in production.\n    ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n    // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n    // TODO: remove in React 17.0.\n    ReactComponentTreeHook: {}\n  });\n}\n\n// Re-export the schedule API(s) for UMD bundles.\n// This avoids introducing a dependency on a new UMD global in a minor update,\n// Since that would be a breaking change (e.g. for all existing CodeSandboxes).\n// This re-export is only required for UMD bundles;\n// CJS bundles use the shared NPM package.\nobjectAssign(ReactSharedInternals$2, {\n  Scheduler: Scheduler,\n  SchedulerTracing: SchedulerTracing\n});\n\nvar hasBadMapPolyfill = void 0;\n\n{\n  hasBadMapPolyfill = false;\n  try {\n    var frozenObject = Object.freeze({});\n    var testMap = new Map([[frozenObject, null]]);\n    var testSet = new Set([frozenObject]);\n    // This is necessary for Rollup to not consider these unused.\n    // https://github.com/rollup/rollup/issues/1771\n    // TODO: we can remove these if Rollup fixes the bug.\n    testMap.set(0, 0);\n    testSet.add(0);\n  } catch (e) {\n    // TODO: Consider warning about bad polyfills\n    hasBadMapPolyfill = true;\n  }\n}\n\nfunction createFundamentalComponent(impl) {\n  // We use responder as a Map key later on. When we have a bad\n  // polyfill, then we can't use it as a key as the polyfill tries\n  // to add a property to the object.\n  if (true && !hasBadMapPolyfill) {\n    Object.freeze(impl);\n  }\n  var fundamantalComponent = {\n    $$typeof: REACT_FUNDAMENTAL_TYPE,\n    impl: impl\n  };\n  {\n    Object.freeze(fundamantalComponent);\n  }\n  return fundamantalComponent;\n}\n\nfunction createEventResponder(displayName, responderConfig) {\n  var getInitialState = responderConfig.getInitialState,\n      onEvent = responderConfig.onEvent,\n      onMount = responderConfig.onMount,\n      onUnmount = responderConfig.onUnmount,\n      onOwnershipChange = responderConfig.onOwnershipChange,\n      onRootEvent = responderConfig.onRootEvent,\n      rootEventTypes = responderConfig.rootEventTypes,\n      targetEventTypes = responderConfig.targetEventTypes;\n\n  var eventResponder = {\n    $$typeof: REACT_RESPONDER_TYPE,\n    displayName: displayName,\n    getInitialState: getInitialState || null,\n    onEvent: onEvent || null,\n    onMount: onMount || null,\n    onOwnershipChange: onOwnershipChange || null,\n    onRootEvent: onRootEvent || null,\n    onUnmount: onUnmount || null,\n    rootEventTypes: rootEventTypes || null,\n    targetEventTypes: targetEventTypes || null\n  };\n  // We use responder as a Map key later on. When we have a bad\n  // polyfill, then we can't use it as a key as the polyfill tries\n  // to add a property to the object.\n  if (true && !hasBadMapPolyfill) {\n    Object.freeze(eventResponder);\n  }\n  return eventResponder;\n}\n\nvar React = {\n  Children: {\n    map: mapChildren,\n    forEach: forEachChildren,\n    count: countChildren,\n    toArray: toArray,\n    only: onlyChild\n  },\n\n  createRef: createRef,\n  Component: Component,\n  PureComponent: PureComponent,\n\n  createContext: createContext,\n  forwardRef: forwardRef,\n  lazy: lazy,\n  memo: memo,\n\n  useCallback: useCallback,\n  useContext: useContext,\n  useEffect: useEffect,\n  useImperativeHandle: useImperativeHandle,\n  useDebugValue: useDebugValue,\n  useLayoutEffect: useLayoutEffect,\n  useMemo: useMemo,\n  useReducer: useReducer,\n  useRef: useRef,\n  useState: useState,\n\n  Fragment: REACT_FRAGMENT_TYPE,\n  Profiler: REACT_PROFILER_TYPE,\n  StrictMode: REACT_STRICT_MODE_TYPE,\n  Suspense: REACT_SUSPENSE_TYPE,\n  unstable_SuspenseList: REACT_SUSPENSE_LIST_TYPE,\n\n  createElement: createElementWithValidation,\n  cloneElement: cloneElementWithValidation,\n  createFactory: createFactoryWithValidation,\n  isValidElement: isValidElement,\n\n  version: ReactVersion,\n\n  unstable_withSuspenseConfig: withSuspenseConfig,\n\n  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals$2\n};\n\nif (enableFlareAPI) {\n  React.unstable_useResponder = useResponder;\n  React.unstable_createResponder = createEventResponder;\n}\n\nif (enableFundamentalAPI) {\n  React.unstable_createFundamental = createFundamentalComponent;\n}\n\n// Note: some APIs are added with feature flags.\n// Make sure that stable builds for open source\n// don't modify the React object to avoid deopts.\n// Also let's not expose their names in stable builds.\n\nif (enableJSXTransformAPI) {\n  {\n    React.jsxDEV = jsxWithValidation;\n    React.jsx = jsxWithValidationDynamic;\n    React.jsxs = jsxWithValidationStatic;\n  }\n}\n\n\n\nvar React$2 = Object.freeze({\n\tdefault: React\n});\n\nvar React$3 = ( React$2 && React ) || React$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\nvar react = React$3.default || React$3;\n\nreturn react;\n\n})));\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-dom-rect.js",
    "content": "(function (global) {\n\tfunction number(v) {\n\t\treturn v === undefined ? 0 : Number(v);\n\t}\n\n \tfunction different(u, v) {\n\t\treturn u !== v && !(isNaN(u) && isNaN(v));\n\t}\n\n \tfunction DOMRect(xArg, yArg, wArg, hArg) {\n\t\tvar x, y, width, height, left, right, top, bottom;\n\n \t\tx = number(xArg);\n\t\ty = number(yArg);\n\t\twidth = number(wArg);\n\t\theight = number(hArg);\n\n \t\tObject.defineProperties(this, {\n\t\t\tx: {\n\t\t\t\tget: function () { return x; },\n\t\t\t\tset: function (newX) {\n\t\t\t\t\tif (different(x, newX)) {\n\t\t\t\t\t\tx = newX;\n\t\t\t\t\t\tleft = right = undefined;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\ty: {\n\t\t\t\tget: function () { return y; },\n\t\t\t\tset: function (newY) {\n\t\t\t\t\tif (different(y, newY)) {\n\t\t\t\t\t\ty = newY;\n\t\t\t\t\t\ttop = bottom = undefined;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\twidth: {\n\t\t\t\tget: function () { return width; },\n\t\t\t\tset: function (newWidth) {\n\t\t\t\t\tif (different(width, newWidth)) {\n\t\t\t\t\t\twidth = newWidth;\n\t\t\t\t\t\tleft = right = undefined;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\theight: {\n\t\t\t\tget: function () { return height; },\n\t\t\t\tset: function (newHeight) {\n\t\t\t\t\tif (different(height, newHeight)) {\n\t\t\t\t\t\theight = newHeight;\n\t\t\t\t\t\ttop = bottom = undefined;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\tleft: {\n\t\t\t\tget: function () {\n\t\t\t\t\tif (left === undefined) {\n\t\t\t\t\t\tleft = x + Math.min(0, width);\n\t\t\t\t\t}\n\t\t\t\t\treturn left;\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\tright: {\n\t\t\t\tget: function () {\n\t\t\t\t\tif (right === undefined) {\n\t\t\t\t\t\tright = x + Math.max(0, width);\n\t\t\t\t\t}\n\t\t\t\t\treturn right;\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\ttop: {\n\t\t\t\tget: function () {\n\t\t\t\t\tif (top === undefined) {\n\t\t\t\t\t\ttop = y + Math.min(0, height);\n\t\t\t\t\t}\n\t\t\t\t\treturn top;\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t},\n\t\t\tbottom: {\n\t\t\t\tget: function () {\n\t\t\t\t\tif (bottom === undefined) {\n\t\t\t\t\t\tbottom = y + Math.max(0, height);\n\t\t\t\t\t}\n\t\t\t\t\treturn bottom;\n\t\t\t\t},\n\t\t\t\tenumerable: true\n\t\t\t}\n\t\t});\n\t}\n\n \tglobal.DOMRect = DOMRect;\n}(this));"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-element-closest.js",
    "content": "// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-fetch.js",
    "content": "(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n  typeof define === 'function' && define.amd ? define(['exports'], factory) :\n  (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n  var support = {\n    searchParams: 'URLSearchParams' in self,\n    iterable: 'Symbol' in self && 'iterator' in Symbol,\n    blob:\n      'FileReader' in self &&\n      'Blob' in self &&\n      (function() {\n        try {\n          new Blob();\n          return true\n        } catch (e) {\n          return false\n        }\n      })(),\n    formData: 'FormData' in self,\n    arrayBuffer: 'ArrayBuffer' in self\n  };\n\n  function isDataView(obj) {\n    return obj && DataView.prototype.isPrototypeOf(obj)\n  }\n\n  if (support.arrayBuffer) {\n    var viewClasses = [\n      '[object Int8Array]',\n      '[object Uint8Array]',\n      '[object Uint8ClampedArray]',\n      '[object Int16Array]',\n      '[object Uint16Array]',\n      '[object Int32Array]',\n      '[object Uint32Array]',\n      '[object Float32Array]',\n      '[object Float64Array]'\n    ];\n\n    var isArrayBufferView =\n      ArrayBuffer.isView ||\n      function(obj) {\n        return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n      };\n  }\n\n  function normalizeName(name) {\n    if (typeof name !== 'string') {\n      name = String(name);\n    }\n    if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n      throw new TypeError('Invalid character in header field name')\n    }\n    return name.toLowerCase()\n  }\n\n  function normalizeValue(value) {\n    if (typeof value !== 'string') {\n      value = String(value);\n    }\n    return value\n  }\n\n  // Build a destructive iterator for the value list\n  function iteratorFor(items) {\n    var iterator = {\n      next: function() {\n        var value = items.shift();\n        return {done: value === undefined, value: value}\n      }\n    };\n\n    if (support.iterable) {\n      iterator[Symbol.iterator] = function() {\n        return iterator\n      };\n    }\n\n    return iterator\n  }\n\n  function Headers(headers) {\n    this.map = {};\n\n    if (headers instanceof Headers) {\n      headers.forEach(function(value, name) {\n        this.append(name, value);\n      }, this);\n    } else if (Array.isArray(headers)) {\n      headers.forEach(function(header) {\n        this.append(header[0], header[1]);\n      }, this);\n    } else if (headers) {\n      Object.getOwnPropertyNames(headers).forEach(function(name) {\n        this.append(name, headers[name]);\n      }, this);\n    }\n  }\n\n  Headers.prototype.append = function(name, value) {\n    name = normalizeName(name);\n    value = normalizeValue(value);\n    var oldValue = this.map[name];\n    this.map[name] = oldValue ? oldValue + ', ' + value : value;\n  };\n\n  Headers.prototype['delete'] = function(name) {\n    delete this.map[normalizeName(name)];\n  };\n\n  Headers.prototype.get = function(name) {\n    name = normalizeName(name);\n    return this.has(name) ? this.map[name] : null\n  };\n\n  Headers.prototype.has = function(name) {\n    return this.map.hasOwnProperty(normalizeName(name))\n  };\n\n  Headers.prototype.set = function(name, value) {\n    this.map[normalizeName(name)] = normalizeValue(value);\n  };\n\n  Headers.prototype.forEach = function(callback, thisArg) {\n    for (var name in this.map) {\n      if (this.map.hasOwnProperty(name)) {\n        callback.call(thisArg, this.map[name], name, this);\n      }\n    }\n  };\n\n  Headers.prototype.keys = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push(name);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.values = function() {\n    var items = [];\n    this.forEach(function(value) {\n      items.push(value);\n    });\n    return iteratorFor(items)\n  };\n\n  Headers.prototype.entries = function() {\n    var items = [];\n    this.forEach(function(value, name) {\n      items.push([name, value]);\n    });\n    return iteratorFor(items)\n  };\n\n  if (support.iterable) {\n    Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n  }\n\n  function consumed(body) {\n    if (body.bodyUsed) {\n      return Promise.reject(new TypeError('Already read'))\n    }\n    body.bodyUsed = true;\n  }\n\n  function fileReaderReady(reader) {\n    return new Promise(function(resolve, reject) {\n      reader.onload = function() {\n        resolve(reader.result);\n      };\n      reader.onerror = function() {\n        reject(reader.error);\n      };\n    })\n  }\n\n  function readBlobAsArrayBuffer(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    reader.readAsArrayBuffer(blob);\n    return promise\n  }\n\n  function readBlobAsText(blob) {\n    var reader = new FileReader();\n    var promise = fileReaderReady(reader);\n    reader.readAsText(blob);\n    return promise\n  }\n\n  function readArrayBufferAsText(buf) {\n    var view = new Uint8Array(buf);\n    var chars = new Array(view.length);\n\n    for (var i = 0; i < view.length; i++) {\n      chars[i] = String.fromCharCode(view[i]);\n    }\n    return chars.join('')\n  }\n\n  function bufferClone(buf) {\n    if (buf.slice) {\n      return buf.slice(0)\n    } else {\n      var view = new Uint8Array(buf.byteLength);\n      view.set(new Uint8Array(buf));\n      return view.buffer\n    }\n  }\n\n  function Body() {\n    this.bodyUsed = false;\n\n    this._initBody = function(body) {\n      this._bodyInit = body;\n      if (!body) {\n        this._bodyText = '';\n      } else if (typeof body === 'string') {\n        this._bodyText = body;\n      } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n        this._bodyBlob = body;\n      } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n        this._bodyFormData = body;\n      } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n        this._bodyText = body.toString();\n      } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n        this._bodyArrayBuffer = bufferClone(body.buffer);\n        // IE 10-11 can't handle a DataView body.\n        this._bodyInit = new Blob([this._bodyArrayBuffer]);\n      } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n        this._bodyArrayBuffer = bufferClone(body);\n      } else {\n        this._bodyText = body = Object.prototype.toString.call(body);\n      }\n\n      if (!this.headers.get('content-type')) {\n        if (typeof body === 'string') {\n          this.headers.set('content-type', 'text/plain;charset=UTF-8');\n        } else if (this._bodyBlob && this._bodyBlob.type) {\n          this.headers.set('content-type', this._bodyBlob.type);\n        } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n          this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n        }\n      }\n    };\n\n    if (support.blob) {\n      this.blob = function() {\n        var rejected = consumed(this);\n        if (rejected) {\n          return rejected\n        }\n\n        if (this._bodyBlob) {\n          return Promise.resolve(this._bodyBlob)\n        } else if (this._bodyArrayBuffer) {\n          return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n        } else if (this._bodyFormData) {\n          throw new Error('could not read FormData body as blob')\n        } else {\n          return Promise.resolve(new Blob([this._bodyText]))\n        }\n      };\n\n      this.arrayBuffer = function() {\n        if (this._bodyArrayBuffer) {\n          return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n        } else {\n          return this.blob().then(readBlobAsArrayBuffer)\n        }\n      };\n    }\n\n    this.text = function() {\n      var rejected = consumed(this);\n      if (rejected) {\n        return rejected\n      }\n\n      if (this._bodyBlob) {\n        return readBlobAsText(this._bodyBlob)\n      } else if (this._bodyArrayBuffer) {\n        return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n      } else if (this._bodyFormData) {\n        throw new Error('could not read FormData body as text')\n      } else {\n        return Promise.resolve(this._bodyText)\n      }\n    };\n\n    if (support.formData) {\n      this.formData = function() {\n        return this.text().then(decode)\n      };\n    }\n\n    this.json = function() {\n      return this.text().then(JSON.parse)\n    };\n\n    return this\n  }\n\n  // HTTP methods whose capitalization should be normalized\n  var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n  function normalizeMethod(method) {\n    var upcased = method.toUpperCase();\n    return methods.indexOf(upcased) > -1 ? upcased : method\n  }\n\n  function Request(input, options) {\n    options = options || {};\n    var body = options.body;\n\n    if (input instanceof Request) {\n      if (input.bodyUsed) {\n        throw new TypeError('Already read')\n      }\n      this.url = input.url;\n      this.credentials = input.credentials;\n      if (!options.headers) {\n        this.headers = new Headers(input.headers);\n      }\n      this.method = input.method;\n      this.mode = input.mode;\n      this.signal = input.signal;\n      if (!body && input._bodyInit != null) {\n        body = input._bodyInit;\n        input.bodyUsed = true;\n      }\n    } else {\n      this.url = String(input);\n    }\n\n    this.credentials = options.credentials || this.credentials || 'same-origin';\n    if (options.headers || !this.headers) {\n      this.headers = new Headers(options.headers);\n    }\n    this.method = normalizeMethod(options.method || this.method || 'GET');\n    this.mode = options.mode || this.mode || null;\n    this.signal = options.signal || this.signal;\n    this.referrer = null;\n\n    if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n      throw new TypeError('Body not allowed for GET or HEAD requests')\n    }\n    this._initBody(body);\n  }\n\n  Request.prototype.clone = function() {\n    return new Request(this, {body: this._bodyInit})\n  };\n\n  function decode(body) {\n    var form = new FormData();\n    body\n      .trim()\n      .split('&')\n      .forEach(function(bytes) {\n        if (bytes) {\n          var split = bytes.split('=');\n          var name = split.shift().replace(/\\+/g, ' ');\n          var value = split.join('=').replace(/\\+/g, ' ');\n          form.append(decodeURIComponent(name), decodeURIComponent(value));\n        }\n      });\n    return form\n  }\n\n  function parseHeaders(rawHeaders) {\n    var headers = new Headers();\n    // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n    // https://tools.ietf.org/html/rfc7230#section-3.2\n    var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n    preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n      var parts = line.split(':');\n      var key = parts.shift().trim();\n      if (key) {\n        var value = parts.join(':').trim();\n        headers.append(key, value);\n      }\n    });\n    return headers\n  }\n\n  Body.call(Request.prototype);\n\n  function Response(bodyInit, options) {\n    if (!options) {\n      options = {};\n    }\n\n    this.type = 'default';\n    this.status = options.status === undefined ? 200 : options.status;\n    this.ok = this.status >= 200 && this.status < 300;\n    this.statusText = 'statusText' in options ? options.statusText : 'OK';\n    this.headers = new Headers(options.headers);\n    this.url = options.url || '';\n    this._initBody(bodyInit);\n  }\n\n  Body.call(Response.prototype);\n\n  Response.prototype.clone = function() {\n    return new Response(this._bodyInit, {\n      status: this.status,\n      statusText: this.statusText,\n      headers: new Headers(this.headers),\n      url: this.url\n    })\n  };\n\n  Response.error = function() {\n    var response = new Response(null, {status: 0, statusText: ''});\n    response.type = 'error';\n    return response\n  };\n\n  var redirectStatuses = [301, 302, 303, 307, 308];\n\n  Response.redirect = function(url, status) {\n    if (redirectStatuses.indexOf(status) === -1) {\n      throw new RangeError('Invalid status code')\n    }\n\n    return new Response(null, {status: status, headers: {location: url}})\n  };\n\n  exports.DOMException = self.DOMException;\n  try {\n    new exports.DOMException();\n  } catch (err) {\n    exports.DOMException = function(message, name) {\n      this.message = message;\n      this.name = name;\n      var error = Error(message);\n      this.stack = error.stack;\n    };\n    exports.DOMException.prototype = Object.create(Error.prototype);\n    exports.DOMException.prototype.constructor = exports.DOMException;\n  }\n\n  function fetch(input, init) {\n    return new Promise(function(resolve, reject) {\n      var request = new Request(input, init);\n\n      if (request.signal && request.signal.aborted) {\n        return reject(new exports.DOMException('Aborted', 'AbortError'))\n      }\n\n      var xhr = new XMLHttpRequest();\n\n      function abortXhr() {\n        xhr.abort();\n      }\n\n      xhr.onload = function() {\n        var options = {\n          status: xhr.status,\n          statusText: xhr.statusText,\n          headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n        };\n        options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n        var body = 'response' in xhr ? xhr.response : xhr.responseText;\n        resolve(new Response(body, options));\n      };\n\n      xhr.onerror = function() {\n        reject(new TypeError('Network request failed'));\n      };\n\n      xhr.ontimeout = function() {\n        reject(new TypeError('Network request failed'));\n      };\n\n      xhr.onabort = function() {\n        reject(new exports.DOMException('Aborted', 'AbortError'));\n      };\n\n      xhr.open(request.method, request.url, true);\n\n      if (request.credentials === 'include') {\n        xhr.withCredentials = true;\n      } else if (request.credentials === 'omit') {\n        xhr.withCredentials = false;\n      }\n\n      if ('responseType' in xhr && support.blob) {\n        xhr.responseType = 'blob';\n      }\n\n      request.headers.forEach(function(value, name) {\n        xhr.setRequestHeader(name, value);\n      });\n\n      if (request.signal) {\n        request.signal.addEventListener('abort', abortXhr);\n\n        xhr.onreadystatechange = function() {\n          // DONE (success or failure)\n          if (xhr.readyState === 4) {\n            request.signal.removeEventListener('abort', abortXhr);\n          }\n        };\n      }\n\n      xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n    })\n  }\n\n  fetch.polyfill = true;\n\n  if (!self.fetch) {\n    self.fetch = fetch;\n    self.Headers = Headers;\n    self.Request = Request;\n    self.Response = Response;\n  }\n\n  exports.Headers = Headers;\n  exports.Request = Request;\n  exports.Response = Response;\n  exports.fetch = fetch;\n\n  Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-formdata.js",
    "content": "if (typeof FormData === 'undefined' || !FormData.prototype.keys) {\n  const global = typeof window === 'object'\n    ? window : typeof self === 'object'\n    ? self : this\n\n  // keep a reference to native implementation\n  const _FormData = global.FormData\n\n  // To be monkey patched\n  const _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send\n  const _fetch = global.Request && global.fetch\n\n  // Unable to patch Request constructor correctly\n  // const _Request = global.Request\n  // only way is to use ES6 class extend\n  // https://github.com/babel/babel/issues/1966\n\n  const stringTag = global.Symbol && Symbol.toStringTag\n  const map = new WeakMap\n  const wm = o => map.get(o)\n  const arrayFrom = Array.from || (obj => [].slice.call(obj))\n\n  // Add missing stringTags to blob and files\n  if (stringTag) {\n    if (!Blob.prototype[stringTag]) {\n      Blob.prototype[stringTag] = 'Blob'\n    }\n\n    if ('File' in global && !File.prototype[stringTag]) {\n      File.prototype[stringTag] = 'File'\n    }\n  }\n\n  // Fix so you can construct your own File\n  try {\n    new File([], '')\n  } catch (a) {\n    global.File = function(b, d, c) {\n      const blob = new Blob(b, c)\n      const t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date\n\n      Object.defineProperties(blob, {\n        name: {\n          value: d\n        },\n        lastModifiedDate: {\n          value: t\n        },\n        lastModified: {\n          value: +t\n        },\n        toString: {\n          value() {\n            return '[object File]'\n          }\n        }\n      })\n\n      if (stringTag) {\n        Object.defineProperty(blob, stringTag, {\n          value: 'File'\n        })\n      }\n\n      return blob\n    }\n  }\n\n  function normalizeValue([value, filename]) {\n    if (value instanceof Blob)\n      // Should always returns a new File instance\n      // console.assert(fd.get(x) !== fd.get(x))\n      value = new File([value], filename, {\n        type: value.type,\n        lastModified: value.lastModified\n      })\n\n    return value\n  }\n\n  function stringify(name) {\n    if (!arguments.length)\n      throw new TypeError('1 argument required, but only 0 present.')\n\n    return [name + '']\n  }\n\n  function normalizeArgs(name, value, filename) {\n    if (arguments.length < 2)\n      throw new TypeError(\n        `2 arguments required, but only ${arguments.length} present.`\n      )\n\n    return value instanceof Blob\n      // normalize name and filename if adding an attachment\n      ? [name + '', value, filename !== undefined\n        ? filename + '' // Cast filename to string if 3th arg isn't undefined\n        : typeof value.name === 'string' // if name prop exist\n          ? value.name // Use File.name\n          : 'blob'] // otherwise fallback to Blob\n\n      // If no attachment, just cast the args to strings\n      : [name + '', value + '']\n  }\n\n  function each (arr, cb) {\n    for (let i = 0; i < arr.length; i++) {\n      cb(arr[i])\n    }\n  }\n\n  /**\n   * @implements {Iterable}\n   */\n  class FormDataPolyfill {\n\n    /**\n     * FormData class\n     *\n     * @param {HTMLElement=} form\n     */\n    constructor(form) {\n      map.set(this, Object.create(null))\n\n      if (!form)\n        return this\n\n      const self = this\n\n      each(form.elements, elm => {\n        if (!elm.name || elm.disabled || elm.type === 'submit' || elm.type === 'button') return\n\n        if (elm.type === 'file') {\n          each(elm.files || [], file => {\n            self.append(elm.name, file)\n          })\n        } else if (elm.type === 'select-multiple' || elm.type === 'select-one') {\n          each(elm.options, opt => {\n            !opt.disabled && opt.selected && self.append(elm.name, opt.value)\n          })\n        } else if (elm.type === 'checkbox' || elm.type === 'radio') {\n          if (elm.checked) self.append(elm.name, elm.value)\n        } else {\n          self.append(elm.name, elm.value)\n        }\n      })\n    }\n\n\n    /**\n     * Append a field\n     *\n     * @param   {String}           name      field name\n     * @param   {String|Blob|File} value     string / blob / file\n     * @param   {String=}          filename  filename to use with blob\n     * @return  {Undefined}\n     */\n    append(name, value, filename) {\n      const map = wm(this)\n\n      if (!map[name])\n        map[name] = []\n\n      map[name].push([value, filename])\n    }\n\n\n    /**\n     * Delete all fields values given name\n     *\n     * @param   {String}  name  Field name\n     * @return  {Undefined}\n     */\n    delete(name) {\n      delete wm(this)[name]\n    }\n\n\n    /**\n     * Iterate over all fields as [name, value]\n     *\n     * @return {Iterator}\n     */\n    *entries() {\n      const map = wm(this)\n\n      for (let name in map)\n        for (let value of map[name])\n          yield [name, normalizeValue(value)]\n    }\n\n    /**\n     * Iterate over all fields\n     *\n     * @param   {Function}  callback  Executed for each item with parameters (value, name, thisArg)\n     * @param   {Object=}   thisArg   `this` context for callback function\n     * @return  {Undefined}\n     */\n    forEach(callback, thisArg) {\n      for (let [name, value] of this)\n        callback.call(thisArg, value, name, this)\n    }\n\n\n    /**\n     * Return first field value given name\n     * or null if non existen\n     *\n     * @param   {String}  name      Field name\n     * @return  {String|File|null}  value Fields value\n     */\n    get(name) {\n      const map = wm(this)\n      return map[name] ? normalizeValue(map[name][0]) : null\n    }\n\n\n    /**\n     * Return all fields values given name\n     *\n     * @param   {String}  name  Fields name\n     * @return  {Array}         [{String|File}]\n     */\n    getAll(name) {\n      return (wm(this)[name] || []).map(normalizeValue)\n    }\n\n\n    /**\n     * Check for field name existence\n     *\n     * @param   {String}   name  Field name\n     * @return  {boolean}\n     */\n    has(name) {\n      return name in wm(this)\n    }\n\n\n    /**\n     * Iterate over all fields name\n     *\n     * @return {Iterator}\n     */\n    *keys() {\n      for (let [name] of this)\n        yield name\n    }\n\n\n    /**\n     * Overwrite all values given name\n     *\n     * @param   {String}    name      Filed name\n     * @param   {String}    value     Field value\n     * @param   {String=}   filename  Filename (optional)\n     * @return  {Undefined}\n     */\n    set(name, value, filename) {\n      wm(this)[name] = [[value, filename]]\n    }\n\n\n    /**\n     * Iterate over all fields\n     *\n     * @return {Iterator}\n     */\n    *values() {\n      for (let [name, value] of this)\n        yield value\n    }\n\n\n    /**\n     * Return a native (perhaps degraded) FormData with only a `append` method\n     * Can throw if it's not supported\n     *\n     * @return {FormData}\n     */\n    ['_asNative']() {\n      const fd = new _FormData\n\n      for (let [name, value] of this)\n        fd.append(name, value)\n\n      return fd\n    }\n\n\n    /**\n     * [_blob description]\n     *\n     * @return {Blob} [description]\n     */\n    ['_blob']() {\n      const boundary = '----formdata-polyfill-' + Math.random()\n      const chunks = []\n\n      for (let [name, value] of this) {\n        chunks.push(`--${boundary}\\r\\n`)\n\n        if (value instanceof Blob) {\n          chunks.push(\n            `Content-Disposition: form-data; name=\"${name}\"; filename=\"${value.name}\"\\r\\n`,\n            `Content-Type: ${value.type || 'application/octet-stream'}\\r\\n\\r\\n`,\n            value,\n            '\\r\\n'\n          )\n        } else {\n          chunks.push(\n            `Content-Disposition: form-data; name=\"${name}\"\\r\\n\\r\\n${value}\\r\\n`\n          )\n        }\n      }\n\n      chunks.push(`--${boundary}--`)\n\n      return new Blob(chunks, {type: 'multipart/form-data; boundary=' + boundary})\n    }\n\n\n    /**\n     * The class itself is iterable\n     * alias for formdata.entries()\n     *\n     * @return  {Iterator}\n     */\n    [Symbol.iterator]() {\n      return this.entries()\n    }\n\n\n    /**\n     * Create the default string description.\n     *\n     * @return  {String} [object FormData]\n     */\n    toString() {\n      return '[object FormData]'\n    }\n  }\n\n\n  if (stringTag) {\n    /**\n     * Create the default string description.\n     * It is accessed internally by the Object.prototype.toString().\n     *\n     * @return {String} FormData\n     */\n    FormDataPolyfill.prototype[stringTag] = 'FormData'\n  }\n\n  const decorations = [\n    ['append', normalizeArgs],\n    ['delete', stringify],\n    ['get',    stringify],\n    ['getAll', stringify],\n    ['has',    stringify],\n    ['set',    normalizeArgs]\n  ]\n\n  decorations.forEach(arr => {\n    const orig = FormDataPolyfill.prototype[arr[0]]\n    FormDataPolyfill.prototype[arr[0]] = function() {\n      return orig.apply(this, arr[1].apply(this, arrayFrom(arguments)))\n    }\n  })\n\n  // Patch xhr's send method to call _blob transparently\n  if (_send) {\n    XMLHttpRequest.prototype.send = function(data) {\n      // I would check if Content-Type isn't already set\n      // But xhr lacks getRequestHeaders functionallity\n      // https://github.com/jimmywarting/FormData/issues/44\n      if (data instanceof FormDataPolyfill) {\n        const blob = data['_blob']()\n        this.setRequestHeader('Content-Type', blob.type)\n        _send.call(this, blob)\n      } else {\n        _send.call(this, data)\n      }\n    }\n  }\n\n  // Patch fetch's function to call _blob transparently\n  if (_fetch) {\n    const _fetch = global.fetch\n\n    global.fetch = function(input, init) {\n      if (init && init.body && init.body instanceof FormDataPolyfill) {\n        init.body = init.body['_blob']()\n      }\n\n      return _fetch(input, init)\n    }\n  }\n\n  global['FormData'] = FormDataPolyfill\n}\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-node-contains.js",
    "content": "(function() {\n\n\tfunction contains(node) {\n\t\tif (!(0 in arguments)) {\n\t\t\tthrow new TypeError('1 argument is required');\n\t\t}\n\n\t\tdo {\n\t\t\tif (this === node) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} while (node = node && node.parentNode);\n\n\t\treturn false;\n\t}\n\n\t// IE\n\tif ('HTMLElement' in this && 'contains' in HTMLElement.prototype) {\n\t\ttry {\n\t\t\tdelete HTMLElement.prototype.contains;\n\t\t} catch (e) {}\n\t}\n\n\tif ('Node' in this) {\n\t\tNode.prototype.contains = contains;\n\t} else {\n\t\tdocument.contains = Element.prototype.contains = contains;\n\t}\n\n}());\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill-url.js",
    "content": "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){\nmodule.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n\n},{}],2:[function(require,module,exports){\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n\n},{\"../internals/is-object\":37}],3:[function(require,module,exports){\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n  definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n    configurable: true,\n    value: create(null)\n  });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n  ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n},{\"../internals/object-create\":45,\"../internals/object-define-property\":47,\"../internals/well-known-symbol\":77}],4:[function(require,module,exports){\nmodule.exports = function (it, Constructor, name) {\n  if (!(it instanceof Constructor)) {\n    throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n  } return it;\n};\n\n},{}],5:[function(require,module,exports){\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n\n},{\"../internals/is-object\":37}],6:[function(require,module,exports){\n'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n  var O = toObject(arrayLike);\n  var C = typeof this == 'function' ? this : Array;\n  var argumentsLength = arguments.length;\n  var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n  var mapping = mapfn !== undefined;\n  var iteratorMethod = getIteratorMethod(O);\n  var index = 0;\n  var length, result, step, iterator, next, value;\n  if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n  // if the target is not iterable or it's an array with the default iterator - use a simple case\n  if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n    iterator = iteratorMethod.call(O);\n    next = iterator.next;\n    result = new C();\n    for (;!(step = next.call(iterator)).done; index++) {\n      value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n      createProperty(result, index, value);\n    }\n  } else {\n    length = toLength(O.length);\n    result = new C(length);\n    for (;length > index; index++) {\n      value = mapping ? mapfn(O[index], index) : O[index];\n      createProperty(result, index, value);\n    }\n  }\n  result.length = index;\n  return result;\n};\n\n},{\"../internals/call-with-safe-iteration-closing\":8,\"../internals/create-property\":16,\"../internals/function-bind-context\":23,\"../internals/get-iterator-method\":25,\"../internals/is-array-iterator-method\":35,\"../internals/to-length\":71,\"../internals/to-object\":72}],7:[function(require,module,exports){\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n\n},{\"../internals/to-absolute-index\":68,\"../internals/to-indexed-object\":69,\"../internals/to-length\":71}],8:[function(require,module,exports){\nvar anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n  try {\n    return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (error) {\n    var returnMethod = iterator['return'];\n    if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n    throw error;\n  }\n};\n\n},{\"../internals/an-object\":5}],9:[function(require,module,exports){\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n},{}],10:[function(require,module,exports){\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n  var O, tag, result;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n    // builtinTag case\n    : CORRECT_ARGUMENTS ? classofRaw(O)\n    // ES3 arguments fallback\n    : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n},{\"../internals/classof-raw\":9,\"../internals/to-string-tag-support\":74,\"../internals/well-known-symbol\":77}],11:[function(require,module,exports){\nvar has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n\n},{\"../internals/has\":28,\"../internals/object-define-property\":47,\"../internals/object-get-own-property-descriptor\":48,\"../internals/own-keys\":56}],12:[function(require,module,exports){\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n  function F() { /* empty */ }\n  F.prototype.constructor = null;\n  return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n},{\"../internals/fails\":22}],13:[function(require,module,exports){\n'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n  var TO_STRING_TAG = NAME + ' Iterator';\n  IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n  setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n  Iterators[TO_STRING_TAG] = returnThis;\n  return IteratorConstructor;\n};\n\n},{\"../internals/create-property-descriptor\":15,\"../internals/iterators\":40,\"../internals/iterators-core\":39,\"../internals/object-create\":45,\"../internals/set-to-string-tag\":62}],14:[function(require,module,exports){\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n},{\"../internals/create-property-descriptor\":15,\"../internals/descriptors\":18,\"../internals/object-define-property\":47}],15:[function(require,module,exports){\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n},{}],16:[function(require,module,exports){\n'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n  var propertyKey = toPrimitive(key);\n  if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n  else object[propertyKey] = value;\n};\n\n},{\"../internals/create-property-descriptor\":15,\"../internals/object-define-property\":47,\"../internals/to-primitive\":73}],17:[function(require,module,exports){\n'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n  createIteratorConstructor(IteratorConstructor, NAME, next);\n\n  var getIterationMethod = function (KIND) {\n    if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n    if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n    switch (KIND) {\n      case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n      case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n      case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n    } return function () { return new IteratorConstructor(this); };\n  };\n\n  var TO_STRING_TAG = NAME + ' Iterator';\n  var INCORRECT_VALUES_NAME = false;\n  var IterablePrototype = Iterable.prototype;\n  var nativeIterator = IterablePrototype[ITERATOR]\n    || IterablePrototype['@@iterator']\n    || DEFAULT && IterablePrototype[DEFAULT];\n  var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n  var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n  var CurrentIteratorPrototype, methods, KEY;\n\n  // fix native\n  if (anyNativeIterator) {\n    CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n    if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n      if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n        if (setPrototypeOf) {\n          setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n        } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n          createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n        }\n      }\n      // Set @@toStringTag to native iterators\n      setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n      if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n    }\n  }\n\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n    INCORRECT_VALUES_NAME = true;\n    defaultIterator = function values() { return nativeIterator.call(this); };\n  }\n\n  // define iterator\n  if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n    createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n  }\n  Iterators[NAME] = defaultIterator;\n\n  // export additional methods\n  if (DEFAULT) {\n    methods = {\n      values: getIterationMethod(VALUES),\n      keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n      entries: getIterationMethod(ENTRIES)\n    };\n    if (FORCED) for (KEY in methods) {\n      if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n        redefine(IterablePrototype, KEY, methods[KEY]);\n      }\n    } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n  }\n\n  return methods;\n};\n\n},{\"../internals/create-iterator-constructor\":13,\"../internals/create-non-enumerable-property\":14,\"../internals/export\":21,\"../internals/is-pure\":38,\"../internals/iterators\":40,\"../internals/iterators-core\":39,\"../internals/object-get-prototype-of\":51,\"../internals/object-set-prototype-of\":55,\"../internals/redefine\":59,\"../internals/set-to-string-tag\":62,\"../internals/well-known-symbol\":77}],18:[function(require,module,exports){\nvar fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n},{\"../internals/fails\":22}],19:[function(require,module,exports){\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n\n},{\"../internals/global\":27,\"../internals/is-object\":37}],20:[function(require,module,exports){\n// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n\n},{}],21:[function(require,module,exports){\nvar global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n\n},{\"../internals/copy-constructor-properties\":11,\"../internals/create-non-enumerable-property\":14,\"../internals/global\":27,\"../internals/is-forced\":36,\"../internals/object-get-own-property-descriptor\":48,\"../internals/redefine\":59,\"../internals/set-global\":61}],22:[function(require,module,exports){\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n\n},{}],23:[function(require,module,exports){\nvar aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n},{\"../internals/a-function\":1}],24:[function(require,module,exports){\nvar path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n},{\"../internals/global\":27,\"../internals/path\":57}],25:[function(require,module,exports){\nvar classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n},{\"../internals/classof\":10,\"../internals/iterators\":40,\"../internals/well-known-symbol\":77}],26:[function(require,module,exports){\nvar anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n  var iteratorMethod = getIteratorMethod(it);\n  if (typeof iteratorMethod != 'function') {\n    throw TypeError(String(it) + ' is not iterable');\n  } return anObject(iteratorMethod.call(it));\n};\n\n},{\"../internals/an-object\":5,\"../internals/get-iterator-method\":25}],27:[function(require,module,exports){\n(function (global){\nvar check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],28:[function(require,module,exports){\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n},{}],29:[function(require,module,exports){\nmodule.exports = {};\n\n},{}],30:[function(require,module,exports){\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n},{\"../internals/get-built-in\":24}],31:[function(require,module,exports){\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n\n},{\"../internals/descriptors\":18,\"../internals/document-create-element\":19,\"../internals/fails\":22}],32:[function(require,module,exports){\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n},{\"../internals/classof-raw\":9,\"../internals/fails\":22}],33:[function(require,module,exports){\nvar store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n  store.inspectSource = function (it) {\n    return functionToString.call(it);\n  };\n}\n\nmodule.exports = store.inspectSource;\n\n},{\"../internals/shared-store\":64}],34:[function(require,module,exports){\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n\n},{\"../internals/create-non-enumerable-property\":14,\"../internals/global\":27,\"../internals/has\":28,\"../internals/hidden-keys\":29,\"../internals/is-object\":37,\"../internals/native-weak-map\":43,\"../internals/shared-key\":63}],35:[function(require,module,exports){\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n},{\"../internals/iterators\":40,\"../internals/well-known-symbol\":77}],36:[function(require,module,exports){\nvar fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n},{\"../internals/fails\":22}],37:[function(require,module,exports){\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n},{}],38:[function(require,module,exports){\nmodule.exports = false;\n\n},{}],39:[function(require,module,exports){\n'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n  arrayIterator = [].keys();\n  // Safari 8 has buggy iterators w/o `next`\n  if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n  else {\n    PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n    if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n  }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n  createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n  IteratorPrototype: IteratorPrototype,\n  BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n},{\"../internals/create-non-enumerable-property\":14,\"../internals/has\":28,\"../internals/is-pure\":38,\"../internals/object-get-prototype-of\":51,\"../internals/well-known-symbol\":77}],40:[function(require,module,exports){\narguments[4][29][0].apply(exports,arguments)\n},{\"dup\":29}],41:[function(require,module,exports){\nvar fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n\n},{\"../internals/fails\":22}],42:[function(require,module,exports){\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n  var url = new URL('b?a=1&b=2&c=3', 'http://a');\n  var searchParams = url.searchParams;\n  var result = '';\n  url.pathname = 'c%20d';\n  searchParams.forEach(function (value, key) {\n    searchParams['delete']('b');\n    result += key + value;\n  });\n  return (IS_PURE && !url.toJSON)\n    || !searchParams.sort\n    || url.href !== 'http://a/c%20d?a=1&c=3'\n    || searchParams.get('c') !== '3'\n    || String(new URLSearchParams('?a=1')) !== 'a=1'\n    || !searchParams[ITERATOR]\n    // throws in Edge\n    || new URL('https://a@b').username !== 'a'\n    || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n    // not punycoded in Edge\n    || new URL('http://тест').host !== 'xn--e1aybc'\n    // not escaped in Chrome 62-\n    || new URL('http://a#б').hash !== '#%D0%B1'\n    // fails in Chrome 66-\n    || result !== 'a1c3'\n    // throws in Safari\n    || new URL('http://x', undefined).host !== 'x';\n});\n\n},{\"../internals/fails\":22,\"../internals/is-pure\":38,\"../internals/well-known-symbol\":77}],43:[function(require,module,exports){\nvar global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n},{\"../internals/global\":27,\"../internals/inspect-source\":33}],44:[function(require,module,exports){\n'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n  // should have correct order of operations (Edge bug)\n  if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n    enumerable: true,\n    get: function () {\n      defineProperty(this, 'b', {\n        value: 3,\n        enumerable: false\n      });\n    }\n  }), { b: 2 })).b !== 1) return true;\n  // should work with symbols and should have deterministic property order (V8 bug)\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var symbol = Symbol();\n  var alphabet = 'abcdefghijklmnopqrst';\n  A[symbol] = 7;\n  alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n  return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var argumentsLength = arguments.length;\n  var index = 1;\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  var propertyIsEnumerable = propertyIsEnumerableModule.f;\n  while (argumentsLength > index) {\n    var S = IndexedObject(arguments[index++]);\n    var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : nativeAssign;\n\n},{\"../internals/descriptors\":18,\"../internals/fails\":22,\"../internals/indexed-object\":32,\"../internals/object-get-own-property-symbols\":50,\"../internals/object-keys\":53,\"../internals/object-property-is-enumerable\":54,\"../internals/to-object\":72}],45:[function(require,module,exports){\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n  return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n  activeXDocument.write(scriptTag(''));\n  activeXDocument.close();\n  var temp = activeXDocument.parentWindow.Object;\n  activeXDocument = null; // avoid memory leak\n  return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var JS = 'java' + SCRIPT + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  // https://github.com/zloirock/core-js/issues/475\n  iframe.src = String(JS);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(scriptTag('document.F=Object'));\n  iframeDocument.close();\n  return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n  try {\n    /* global ActiveXObject */\n    activeXDocument = document.domain && new ActiveXObject('htmlfile');\n  } catch (error) { /* ignore */ }\n  NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n  var length = enumBugKeys.length;\n  while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n  return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    EmptyConstructor[PROTOTYPE] = anObject(O);\n    result = new EmptyConstructor();\n    EmptyConstructor[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = NullProtoObject();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n},{\"../internals/an-object\":5,\"../internals/document-create-element\":19,\"../internals/enum-bug-keys\":20,\"../internals/hidden-keys\":29,\"../internals/html\":30,\"../internals/object-define-properties\":46,\"../internals/shared-key\":63}],46:[function(require,module,exports){\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n\n},{\"../internals/an-object\":5,\"../internals/descriptors\":18,\"../internals/object-define-property\":47,\"../internals/object-keys\":53}],47:[function(require,module,exports){\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n},{\"../internals/an-object\":5,\"../internals/descriptors\":18,\"../internals/ie8-dom-define\":31,\"../internals/to-primitive\":73}],48:[function(require,module,exports){\nvar DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n},{\"../internals/create-property-descriptor\":15,\"../internals/descriptors\":18,\"../internals/has\":28,\"../internals/ie8-dom-define\":31,\"../internals/object-property-is-enumerable\":54,\"../internals/to-indexed-object\":69,\"../internals/to-primitive\":73}],49:[function(require,module,exports){\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n\n},{\"../internals/enum-bug-keys\":20,\"../internals/object-keys-internal\":52}],50:[function(require,module,exports){\nexports.f = Object.getOwnPropertySymbols;\n\n},{}],51:[function(require,module,exports){\nvar has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectPrototype : null;\n};\n\n},{\"../internals/correct-prototype-getter\":12,\"../internals/has\":28,\"../internals/shared-key\":63,\"../internals/to-object\":72}],52:[function(require,module,exports){\nvar has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n},{\"../internals/array-includes\":7,\"../internals/has\":28,\"../internals/hidden-keys\":29,\"../internals/to-indexed-object\":69}],53:[function(require,module,exports){\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n\n},{\"../internals/enum-bug-keys\":20,\"../internals/object-keys-internal\":52}],54:[function(require,module,exports){\n'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n},{}],55:[function(require,module,exports){\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n\n},{\"../internals/a-possible-prototype\":2,\"../internals/an-object\":5}],56:[function(require,module,exports){\nvar getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n},{\"../internals/an-object\":5,\"../internals/get-built-in\":24,\"../internals/object-get-own-property-names\":49,\"../internals/object-get-own-property-symbols\":50}],57:[function(require,module,exports){\nvar global = require('../internals/global');\n\nmodule.exports = global;\n\n},{\"../internals/global\":27}],58:[function(require,module,exports){\nvar redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n  for (var key in src) redefine(target, key, src[key], options);\n  return target;\n};\n\n},{\"../internals/redefine\":59}],59:[function(require,module,exports){\nvar global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n},{\"../internals/create-non-enumerable-property\":14,\"../internals/global\":27,\"../internals/has\":28,\"../internals/inspect-source\":33,\"../internals/internal-state\":34,\"../internals/set-global\":61}],60:[function(require,module,exports){\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n\n},{}],61:[function(require,module,exports){\nvar global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n\n},{\"../internals/create-non-enumerable-property\":14,\"../internals/global\":27}],62:[function(require,module,exports){\nvar defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n  if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n    defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n  }\n};\n\n},{\"../internals/has\":28,\"../internals/object-define-property\":47,\"../internals/well-known-symbol\":77}],63:[function(require,module,exports){\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n\n},{\"../internals/shared\":65,\"../internals/uid\":75}],64:[function(require,module,exports){\nvar global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n},{\"../internals/global\":27,\"../internals/set-global\":61}],65:[function(require,module,exports){\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.6.4',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n},{\"../internals/is-pure\":38,\"../internals/shared-store\":64}],66:[function(require,module,exports){\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n  return function ($this, pos) {\n    var S = String(requireObjectCoercible($this));\n    var position = toInteger(pos);\n    var size = S.length;\n    var first, second;\n    if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n    first = S.charCodeAt(position);\n    return first < 0xD800 || first > 0xDBFF || position + 1 === size\n      || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n        ? CONVERT_TO_STRING ? S.charAt(position) : first\n        : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.codePointAt` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n  codeAt: createMethod(false),\n  // `String.prototype.at` method\n  // https://github.com/mathiasbynens/String.prototype.at\n  charAt: createMethod(true)\n};\n\n},{\"../internals/require-object-coercible\":60,\"../internals/to-integer\":70}],67:[function(require,module,exports){\n'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n  var output = [];\n  var counter = 0;\n  var length = string.length;\n  while (counter < length) {\n    var value = string.charCodeAt(counter++);\n    if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n      // It's a high surrogate, and there is a next character.\n      var extra = string.charCodeAt(counter++);\n      if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n        output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n      } else {\n        // It's an unmatched surrogate; only append this code unit, in case the\n        // next code unit is the high surrogate of a surrogate pair.\n        output.push(value);\n        counter--;\n      }\n    } else {\n      output.push(value);\n    }\n  }\n  return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n  //  0..25 map to ASCII a..z or A..Z\n  // 26..35 map to ASCII 0..9\n  return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n  var k = 0;\n  delta = firstTime ? floor(delta / damp) : delta >> 1;\n  delta += floor(delta / numPoints);\n  for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n    delta = floor(delta / baseMinusTMin);\n  }\n  return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line  max-statements\nvar encode = function (input) {\n  var output = [];\n\n  // Convert the input in UCS-2 to an array of Unicode code points.\n  input = ucs2decode(input);\n\n  // Cache the length.\n  var inputLength = input.length;\n\n  // Initialize the state.\n  var n = initialN;\n  var delta = 0;\n  var bias = initialBias;\n  var i, currentValue;\n\n  // Handle the basic code points.\n  for (i = 0; i < input.length; i++) {\n    currentValue = input[i];\n    if (currentValue < 0x80) {\n      output.push(stringFromCharCode(currentValue));\n    }\n  }\n\n  var basicLength = output.length; // number of basic code points.\n  var handledCPCount = basicLength; // number of code points that have been handled;\n\n  // Finish the basic string with a delimiter unless it's empty.\n  if (basicLength) {\n    output.push(delimiter);\n  }\n\n  // Main encoding loop:\n  while (handledCPCount < inputLength) {\n    // All non-basic code points < n have been handled already. Find the next larger one:\n    var m = maxInt;\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue >= n && currentValue < m) {\n        m = currentValue;\n      }\n    }\n\n    // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n    var handledCPCountPlusOne = handledCPCount + 1;\n    if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n      throw RangeError(OVERFLOW_ERROR);\n    }\n\n    delta += (m - n) * handledCPCountPlusOne;\n    n = m;\n\n    for (i = 0; i < input.length; i++) {\n      currentValue = input[i];\n      if (currentValue < n && ++delta > maxInt) {\n        throw RangeError(OVERFLOW_ERROR);\n      }\n      if (currentValue == n) {\n        // Represent delta as a generalized variable-length integer.\n        var q = delta;\n        for (var k = base; /* no condition */; k += base) {\n          var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n          if (q < t) break;\n          var qMinusT = q - t;\n          var baseMinusT = base - t;\n          output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n          q = floor(qMinusT / baseMinusT);\n        }\n\n        output.push(stringFromCharCode(digitToBasic(q)));\n        bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n        delta = 0;\n        ++handledCPCount;\n      }\n    }\n\n    ++delta;\n    ++n;\n  }\n  return output.join('');\n};\n\nmodule.exports = function (input) {\n  var encoded = [];\n  var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n  var i, label;\n  for (i = 0; i < labels.length; i++) {\n    label = labels[i];\n    encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n  }\n  return encoded.join('.');\n};\n\n},{}],68:[function(require,module,exports){\nvar toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n},{\"../internals/to-integer\":70}],69:[function(require,module,exports){\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n\n},{\"../internals/indexed-object\":32,\"../internals/require-object-coercible\":60}],70:[function(require,module,exports){\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n},{}],71:[function(require,module,exports){\nvar toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n},{\"../internals/to-integer\":70}],72:[function(require,module,exports){\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n\n},{\"../internals/require-object-coercible\":60}],73:[function(require,module,exports){\nvar isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n},{\"../internals/is-object\":37}],74:[function(require,module,exports){\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n},{\"../internals/well-known-symbol\":77}],75:[function(require,module,exports){\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n},{}],76:[function(require,module,exports){\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n  // eslint-disable-next-line no-undef\n  && !Symbol.sham\n  // eslint-disable-next-line no-undef\n  && typeof Symbol.iterator == 'symbol';\n\n},{\"../internals/native-symbol\":41}],77:[function(require,module,exports){\nvar global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n  if (!has(WellKnownSymbolsStore, name)) {\n    if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n    else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n  } return WellKnownSymbolsStore[name];\n};\n\n},{\"../internals/global\":27,\"../internals/has\":28,\"../internals/native-symbol\":41,\"../internals/shared\":65,\"../internals/uid\":75,\"../internals/use-symbol-as-uid\":76}],78:[function(require,module,exports){\n'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n  setInternalState(this, {\n    type: ARRAY_ITERATOR,\n    target: toIndexedObject(iterated), // target\n    index: 0,                          // next index\n    kind: kind                         // kind\n  });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n  var state = getInternalState(this);\n  var target = state.target;\n  var kind = state.kind;\n  var index = state.index++;\n  if (!target || index >= target.length) {\n    state.target = undefined;\n    return { value: undefined, done: true };\n  }\n  if (kind == 'keys') return { value: index, done: false };\n  if (kind == 'values') return { value: target[index], done: false };\n  return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n},{\"../internals/add-to-unscopables\":3,\"../internals/define-iterator\":17,\"../internals/internal-state\":34,\"../internals/iterators\":40,\"../internals/to-indexed-object\":69}],79:[function(require,module,exports){\n'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n  setInternalState(this, {\n    type: STRING_ITERATOR,\n    string: String(iterated),\n    index: 0\n  });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n  var state = getInternalState(this);\n  var string = state.string;\n  var index = state.index;\n  var point;\n  if (index >= string.length) return { value: undefined, done: true };\n  point = charAt(string, index);\n  state.index += point.length;\n  return { value: point, done: false };\n});\n\n},{\"../internals/define-iterator\":17,\"../internals/internal-state\":34,\"../internals/string-multibyte\":66}],80:[function(require,module,exports){\n'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n  return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n  try {\n    return decodeURIComponent(sequence);\n  } catch (error) {\n    return sequence;\n  }\n};\n\nvar deserialize = function (it) {\n  var result = it.replace(plus, ' ');\n  var bytes = 4;\n  try {\n    return decodeURIComponent(result);\n  } catch (error) {\n    while (bytes) {\n      result = result.replace(percentSequence(bytes--), percentDecode);\n    }\n    return result;\n  }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n  '!': '%21',\n  \"'\": '%27',\n  '(': '%28',\n  ')': '%29',\n  '~': '%7E',\n  '%20': '+'\n};\n\nvar replacer = function (match) {\n  return replace[match];\n};\n\nvar serialize = function (it) {\n  return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n  if (query) {\n    var attributes = query.split('&');\n    var index = 0;\n    var attribute, entry;\n    while (index < attributes.length) {\n      attribute = attributes[index++];\n      if (attribute.length) {\n        entry = attribute.split('=');\n        result.push({\n          key: deserialize(entry.shift()),\n          value: deserialize(entry.join('='))\n        });\n      }\n    }\n  }\n};\n\nvar updateSearchParams = function (query) {\n  this.entries.length = 0;\n  parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n  if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n  setInternalState(this, {\n    type: URL_SEARCH_PARAMS_ITERATOR,\n    iterator: getIterator(getInternalParamsState(params).entries),\n    kind: kind\n  });\n}, 'Iterator', function next() {\n  var state = getInternalIteratorState(this);\n  var kind = state.kind;\n  var step = state.iterator.next();\n  var entry = step.value;\n  if (!step.done) {\n    step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n  } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n  anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n  var init = arguments.length > 0 ? arguments[0] : undefined;\n  var that = this;\n  var entries = [];\n  var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n  setInternalState(that, {\n    type: URL_SEARCH_PARAMS,\n    entries: entries,\n    updateURL: function () { /* empty */ },\n    updateSearchParams: updateSearchParams\n  });\n\n  if (init !== undefined) {\n    if (isObject(init)) {\n      iteratorMethod = getIteratorMethod(init);\n      if (typeof iteratorMethod === 'function') {\n        iterator = iteratorMethod.call(init);\n        next = iterator.next;\n        while (!(step = next.call(iterator)).done) {\n          entryIterator = getIterator(anObject(step.value));\n          entryNext = entryIterator.next;\n          if (\n            (first = entryNext.call(entryIterator)).done ||\n            (second = entryNext.call(entryIterator)).done ||\n            !entryNext.call(entryIterator).done\n          ) throw TypeError('Expected sequence with length 2');\n          entries.push({ key: first.value + '', value: second.value + '' });\n        }\n      } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n    } else {\n      parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n    }\n  }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n  // `URLSearchParams.prototype.appent` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n  append: function append(name, value) {\n    validateArgumentsLength(arguments.length, 2);\n    var state = getInternalParamsState(this);\n    state.entries.push({ key: name + '', value: value + '' });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.delete` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n  'delete': function (name) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index].key === key) entries.splice(index, 1);\n      else index++;\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.get` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n  get: function get(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) return entries[index].value;\n    }\n    return null;\n  },\n  // `URLSearchParams.prototype.getAll` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n  getAll: function getAll(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var result = [];\n    var index = 0;\n    for (; index < entries.length; index++) {\n      if (entries[index].key === key) result.push(entries[index].value);\n    }\n    return result;\n  },\n  // `URLSearchParams.prototype.has` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n  has: function has(name) {\n    validateArgumentsLength(arguments.length, 1);\n    var entries = getInternalParamsState(this).entries;\n    var key = name + '';\n    var index = 0;\n    while (index < entries.length) {\n      if (entries[index++].key === key) return true;\n    }\n    return false;\n  },\n  // `URLSearchParams.prototype.set` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n  set: function set(name, value) {\n    validateArgumentsLength(arguments.length, 1);\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    var found = false;\n    var key = name + '';\n    var val = value + '';\n    var index = 0;\n    var entry;\n    for (; index < entries.length; index++) {\n      entry = entries[index];\n      if (entry.key === key) {\n        if (found) entries.splice(index--, 1);\n        else {\n          found = true;\n          entry.value = val;\n        }\n      }\n    }\n    if (!found) entries.push({ key: key, value: val });\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.sort` method\n  // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n  sort: function sort() {\n    var state = getInternalParamsState(this);\n    var entries = state.entries;\n    // Array#sort is not stable in some engines\n    var slice = entries.slice();\n    var entry, entriesIndex, sliceIndex;\n    entries.length = 0;\n    for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n      entry = slice[sliceIndex];\n      for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n        if (entries[entriesIndex].key > entry.key) {\n          entries.splice(entriesIndex, 0, entry);\n          break;\n        }\n      }\n      if (entriesIndex === sliceIndex) entries.push(entry);\n    }\n    state.updateURL();\n  },\n  // `URLSearchParams.prototype.forEach` method\n  forEach: function forEach(callback /* , thisArg */) {\n    var entries = getInternalParamsState(this).entries;\n    var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n    var index = 0;\n    var entry;\n    while (index < entries.length) {\n      entry = entries[index++];\n      boundFunction(entry.value, entry.key, this);\n    }\n  },\n  // `URLSearchParams.prototype.keys` method\n  keys: function keys() {\n    return new URLSearchParamsIterator(this, 'keys');\n  },\n  // `URLSearchParams.prototype.values` method\n  values: function values() {\n    return new URLSearchParamsIterator(this, 'values');\n  },\n  // `URLSearchParams.prototype.entries` method\n  entries: function entries() {\n    return new URLSearchParamsIterator(this, 'entries');\n  }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n  var entries = getInternalParamsState(this).entries;\n  var result = [];\n  var index = 0;\n  var entry;\n  while (index < entries.length) {\n    entry = entries[index++];\n    result.push(serialize(entry.key) + '=' + serialize(entry.value));\n  } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n  URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n  $({ global: true, enumerable: true, forced: true }, {\n    fetch: function fetch(input /* , init */) {\n      var args = [input];\n      var init, body, headers;\n      if (arguments.length > 1) {\n        init = arguments[1];\n        if (isObject(init)) {\n          body = init.body;\n          if (classof(body) === URL_SEARCH_PARAMS) {\n            headers = init.headers ? new Headers(init.headers) : new Headers();\n            if (!headers.has('content-type')) {\n              headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n            }\n            init = create(init, {\n              body: createPropertyDescriptor(0, String(body)),\n              headers: createPropertyDescriptor(0, headers)\n            });\n          }\n        }\n        args.push(init);\n      } return $fetch.apply(this, args);\n    }\n  });\n}\n\nmodule.exports = {\n  URLSearchParams: URLSearchParamsConstructor,\n  getState: getInternalParamsState\n};\n\n},{\"../internals/an-instance\":4,\"../internals/an-object\":5,\"../internals/classof\":10,\"../internals/create-iterator-constructor\":13,\"../internals/create-property-descriptor\":15,\"../internals/export\":21,\"../internals/function-bind-context\":23,\"../internals/get-built-in\":24,\"../internals/get-iterator\":26,\"../internals/get-iterator-method\":25,\"../internals/has\":28,\"../internals/internal-state\":34,\"../internals/is-object\":37,\"../internals/native-url\":42,\"../internals/object-create\":45,\"../internals/redefine\":59,\"../internals/redefine-all\":58,\"../internals/set-to-string-tag\":62,\"../internals/well-known-symbol\":77,\"../modules/es.array.iterator\":78}],81:[function(require,module,exports){\n'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n  var result, codePoints, index;\n  if (input.charAt(0) == '[') {\n    if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n    result = parseIPv6(input.slice(1, -1));\n    if (!result) return INVALID_HOST;\n    url.host = result;\n  // opaque host\n  } else if (!isSpecial(url)) {\n    if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n    result = '';\n    codePoints = arrayFrom(input);\n    for (index = 0; index < codePoints.length; index++) {\n      result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n    }\n    url.host = result;\n  } else {\n    input = toASCII(input);\n    if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n    result = parseIPv4(input);\n    if (result === null) return INVALID_HOST;\n    url.host = result;\n  }\n};\n\nvar parseIPv4 = function (input) {\n  var parts = input.split('.');\n  var partsLength, numbers, index, part, radix, number, ipv4;\n  if (parts.length && parts[parts.length - 1] == '') {\n    parts.pop();\n  }\n  partsLength = parts.length;\n  if (partsLength > 4) return input;\n  numbers = [];\n  for (index = 0; index < partsLength; index++) {\n    part = parts[index];\n    if (part == '') return input;\n    radix = 10;\n    if (part.length > 1 && part.charAt(0) == '0') {\n      radix = HEX_START.test(part) ? 16 : 8;\n      part = part.slice(radix == 8 ? 1 : 2);\n    }\n    if (part === '') {\n      number = 0;\n    } else {\n      if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n      number = parseInt(part, radix);\n    }\n    numbers.push(number);\n  }\n  for (index = 0; index < partsLength; index++) {\n    number = numbers[index];\n    if (index == partsLength - 1) {\n      if (number >= pow(256, 5 - partsLength)) return null;\n    } else if (number > 255) return null;\n  }\n  ipv4 = numbers.pop();\n  for (index = 0; index < numbers.length; index++) {\n    ipv4 += numbers[index] * pow(256, 3 - index);\n  }\n  return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n  var address = [0, 0, 0, 0, 0, 0, 0, 0];\n  var pieceIndex = 0;\n  var compress = null;\n  var pointer = 0;\n  var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n  var char = function () {\n    return input.charAt(pointer);\n  };\n\n  if (char() == ':') {\n    if (input.charAt(1) != ':') return;\n    pointer += 2;\n    pieceIndex++;\n    compress = pieceIndex;\n  }\n  while (char()) {\n    if (pieceIndex == 8) return;\n    if (char() == ':') {\n      if (compress !== null) return;\n      pointer++;\n      pieceIndex++;\n      compress = pieceIndex;\n      continue;\n    }\n    value = length = 0;\n    while (length < 4 && HEX.test(char())) {\n      value = value * 16 + parseInt(char(), 16);\n      pointer++;\n      length++;\n    }\n    if (char() == '.') {\n      if (length == 0) return;\n      pointer -= length;\n      if (pieceIndex > 6) return;\n      numbersSeen = 0;\n      while (char()) {\n        ipv4Piece = null;\n        if (numbersSeen > 0) {\n          if (char() == '.' && numbersSeen < 4) pointer++;\n          else return;\n        }\n        if (!DIGIT.test(char())) return;\n        while (DIGIT.test(char())) {\n          number = parseInt(char(), 10);\n          if (ipv4Piece === null) ipv4Piece = number;\n          else if (ipv4Piece == 0) return;\n          else ipv4Piece = ipv4Piece * 10 + number;\n          if (ipv4Piece > 255) return;\n          pointer++;\n        }\n        address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n        numbersSeen++;\n        if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n      }\n      if (numbersSeen != 4) return;\n      break;\n    } else if (char() == ':') {\n      pointer++;\n      if (!char()) return;\n    } else if (char()) return;\n    address[pieceIndex++] = value;\n  }\n  if (compress !== null) {\n    swaps = pieceIndex - compress;\n    pieceIndex = 7;\n    while (pieceIndex != 0 && swaps > 0) {\n      swap = address[pieceIndex];\n      address[pieceIndex--] = address[compress + swaps - 1];\n      address[compress + --swaps] = swap;\n    }\n  } else if (pieceIndex != 8) return;\n  return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n  var maxIndex = null;\n  var maxLength = 1;\n  var currStart = null;\n  var currLength = 0;\n  var index = 0;\n  for (; index < 8; index++) {\n    if (ipv6[index] !== 0) {\n      if (currLength > maxLength) {\n        maxIndex = currStart;\n        maxLength = currLength;\n      }\n      currStart = null;\n      currLength = 0;\n    } else {\n      if (currStart === null) currStart = index;\n      ++currLength;\n    }\n  }\n  if (currLength > maxLength) {\n    maxIndex = currStart;\n    maxLength = currLength;\n  }\n  return maxIndex;\n};\n\nvar serializeHost = function (host) {\n  var result, index, compress, ignore0;\n  // ipv4\n  if (typeof host == 'number') {\n    result = [];\n    for (index = 0; index < 4; index++) {\n      result.unshift(host % 256);\n      host = floor(host / 256);\n    } return result.join('.');\n  // ipv6\n  } else if (typeof host == 'object') {\n    result = '';\n    compress = findLongestZeroSequence(host);\n    for (index = 0; index < 8; index++) {\n      if (ignore0 && host[index] === 0) continue;\n      if (ignore0) ignore0 = false;\n      if (compress === index) {\n        result += index ? ':' : '::';\n        ignore0 = true;\n      } else {\n        result += host[index].toString(16);\n        if (index < 7) result += ':';\n      }\n    }\n    return '[' + result + ']';\n  } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n  ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n  '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n  '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n  var code = codeAt(char, 0);\n  return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n  ftp: 21,\n  file: null,\n  http: 80,\n  https: 443,\n  ws: 80,\n  wss: 443\n};\n\nvar isSpecial = function (url) {\n  return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n  return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n  return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n  var second;\n  return string.length == 2 && ALPHA.test(string.charAt(0))\n    && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n  var third;\n  return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n    string.length == 2 ||\n    ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n  );\n};\n\nvar shortenURLsPath = function (url) {\n  var path = url.path;\n  var pathSize = path.length;\n  if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n    path.pop();\n  }\n};\n\nvar isSingleDot = function (segment) {\n  return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n  segment = segment.toLowerCase();\n  return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n  var state = stateOverride || SCHEME_START;\n  var pointer = 0;\n  var buffer = '';\n  var seenAt = false;\n  var seenBracket = false;\n  var seenPasswordToken = false;\n  var codePoints, char, bufferCodePoints, failure;\n\n  if (!stateOverride) {\n    url.scheme = '';\n    url.username = '';\n    url.password = '';\n    url.host = null;\n    url.port = null;\n    url.path = [];\n    url.query = null;\n    url.fragment = null;\n    url.cannotBeABaseURL = false;\n    input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n  }\n\n  input = input.replace(TAB_AND_NEW_LINE, '');\n\n  codePoints = arrayFrom(input);\n\n  while (pointer <= codePoints.length) {\n    char = codePoints[pointer];\n    switch (state) {\n      case SCHEME_START:\n        if (char && ALPHA.test(char)) {\n          buffer += char.toLowerCase();\n          state = SCHEME;\n        } else if (!stateOverride) {\n          state = NO_SCHEME;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case SCHEME:\n        if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n          buffer += char.toLowerCase();\n        } else if (char == ':') {\n          if (stateOverride && (\n            (isSpecial(url) != has(specialSchemes, buffer)) ||\n            (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n            (url.scheme == 'file' && !url.host)\n          )) return;\n          url.scheme = buffer;\n          if (stateOverride) {\n            if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n            return;\n          }\n          buffer = '';\n          if (url.scheme == 'file') {\n            state = FILE;\n          } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n            state = SPECIAL_RELATIVE_OR_AUTHORITY;\n          } else if (isSpecial(url)) {\n            state = SPECIAL_AUTHORITY_SLASHES;\n          } else if (codePoints[pointer + 1] == '/') {\n            state = PATH_OR_AUTHORITY;\n            pointer++;\n          } else {\n            url.cannotBeABaseURL = true;\n            url.path.push('');\n            state = CANNOT_BE_A_BASE_URL_PATH;\n          }\n        } else if (!stateOverride) {\n          buffer = '';\n          state = NO_SCHEME;\n          pointer = 0;\n          continue;\n        } else return INVALID_SCHEME;\n        break;\n\n      case NO_SCHEME:\n        if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n        if (base.cannotBeABaseURL && char == '#') {\n          url.scheme = base.scheme;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          url.cannotBeABaseURL = true;\n          state = FRAGMENT;\n          break;\n        }\n        state = base.scheme == 'file' ? FILE : RELATIVE;\n        continue;\n\n      case SPECIAL_RELATIVE_OR_AUTHORITY:\n        if (char == '/' && codePoints[pointer + 1] == '/') {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n          pointer++;\n        } else {\n          state = RELATIVE;\n          continue;\n        } break;\n\n      case PATH_OR_AUTHORITY:\n        if (char == '/') {\n          state = AUTHORITY;\n          break;\n        } else {\n          state = PATH;\n          continue;\n        }\n\n      case RELATIVE:\n        url.scheme = base.scheme;\n        if (char == EOF) {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n        } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n          state = RELATIVE_SLASH;\n        } else if (char == '?') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.query = base.query;\n          url.fragment = '';\n          state = FRAGMENT;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          url.path = base.path.slice();\n          url.path.pop();\n          state = PATH;\n          continue;\n        } break;\n\n      case RELATIVE_SLASH:\n        if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n          state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        } else if (char == '/') {\n          state = AUTHORITY;\n        } else {\n          url.username = base.username;\n          url.password = base.password;\n          url.host = base.host;\n          url.port = base.port;\n          state = PATH;\n          continue;\n        } break;\n\n      case SPECIAL_AUTHORITY_SLASHES:\n        state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n        if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n        pointer++;\n        break;\n\n      case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n        if (char != '/' && char != '\\\\') {\n          state = AUTHORITY;\n          continue;\n        } break;\n\n      case AUTHORITY:\n        if (char == '@') {\n          if (seenAt) buffer = '%40' + buffer;\n          seenAt = true;\n          bufferCodePoints = arrayFrom(buffer);\n          for (var i = 0; i < bufferCodePoints.length; i++) {\n            var codePoint = bufferCodePoints[i];\n            if (codePoint == ':' && !seenPasswordToken) {\n              seenPasswordToken = true;\n              continue;\n            }\n            var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n            if (seenPasswordToken) url.password += encodedCodePoints;\n            else url.username += encodedCodePoints;\n          }\n          buffer = '';\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (seenAt && buffer == '') return INVALID_AUTHORITY;\n          pointer -= arrayFrom(buffer).length + 1;\n          buffer = '';\n          state = HOST;\n        } else buffer += char;\n        break;\n\n      case HOST:\n      case HOSTNAME:\n        if (stateOverride && url.scheme == 'file') {\n          state = FILE_HOST;\n          continue;\n        } else if (char == ':' && !seenBracket) {\n          if (buffer == '') return INVALID_HOST;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PORT;\n          if (stateOverride == HOSTNAME) return;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url))\n        ) {\n          if (isSpecial(url) && buffer == '') return INVALID_HOST;\n          if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n          failure = parseHost(url, buffer);\n          if (failure) return failure;\n          buffer = '';\n          state = PATH_START;\n          if (stateOverride) return;\n          continue;\n        } else {\n          if (char == '[') seenBracket = true;\n          else if (char == ']') seenBracket = false;\n          buffer += char;\n        } break;\n\n      case PORT:\n        if (DIGIT.test(char)) {\n          buffer += char;\n        } else if (\n          char == EOF || char == '/' || char == '?' || char == '#' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          stateOverride\n        ) {\n          if (buffer != '') {\n            var port = parseInt(buffer, 10);\n            if (port > 0xFFFF) return INVALID_PORT;\n            url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n            buffer = '';\n          }\n          if (stateOverride) return;\n          state = PATH_START;\n          continue;\n        } else return INVALID_PORT;\n        break;\n\n      case FILE:\n        url.scheme = 'file';\n        if (char == '/' || char == '\\\\') state = FILE_SLASH;\n        else if (base && base.scheme == 'file') {\n          if (char == EOF) {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n          } else if (char == '?') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.host = base.host;\n            url.path = base.path.slice();\n            url.query = base.query;\n            url.fragment = '';\n            state = FRAGMENT;\n          } else {\n            if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n              url.host = base.host;\n              url.path = base.path.slice();\n              shortenURLsPath(url);\n            }\n            state = PATH;\n            continue;\n          }\n        } else {\n          state = PATH;\n          continue;\n        } break;\n\n      case FILE_SLASH:\n        if (char == '/' || char == '\\\\') {\n          state = FILE_HOST;\n          break;\n        }\n        if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n          if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n          else url.host = base.host;\n        }\n        state = PATH;\n        continue;\n\n      case FILE_HOST:\n        if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n          if (!stateOverride && isWindowsDriveLetter(buffer)) {\n            state = PATH;\n          } else if (buffer == '') {\n            url.host = '';\n            if (stateOverride) return;\n            state = PATH_START;\n          } else {\n            failure = parseHost(url, buffer);\n            if (failure) return failure;\n            if (url.host == 'localhost') url.host = '';\n            if (stateOverride) return;\n            buffer = '';\n            state = PATH_START;\n          } continue;\n        } else buffer += char;\n        break;\n\n      case PATH_START:\n        if (isSpecial(url)) {\n          state = PATH;\n          if (char != '/' && char != '\\\\') continue;\n        } else if (!stateOverride && char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          state = PATH;\n          if (char != '/') continue;\n        } break;\n\n      case PATH:\n        if (\n          char == EOF || char == '/' ||\n          (char == '\\\\' && isSpecial(url)) ||\n          (!stateOverride && (char == '?' || char == '#'))\n        ) {\n          if (isDoubleDot(buffer)) {\n            shortenURLsPath(url);\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else if (isSingleDot(buffer)) {\n            if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n              url.path.push('');\n            }\n          } else {\n            if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n              if (url.host) url.host = '';\n              buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n            }\n            url.path.push(buffer);\n          }\n          buffer = '';\n          if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n            while (url.path.length > 1 && url.path[0] === '') {\n              url.path.shift();\n            }\n          }\n          if (char == '?') {\n            url.query = '';\n            state = QUERY;\n          } else if (char == '#') {\n            url.fragment = '';\n            state = FRAGMENT;\n          }\n        } else {\n          buffer += percentEncode(char, pathPercentEncodeSet);\n        } break;\n\n      case CANNOT_BE_A_BASE_URL_PATH:\n        if (char == '?') {\n          url.query = '';\n          state = QUERY;\n        } else if (char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case QUERY:\n        if (!stateOverride && char == '#') {\n          url.fragment = '';\n          state = FRAGMENT;\n        } else if (char != EOF) {\n          if (char == \"'\" && isSpecial(url)) url.query += '%27';\n          else if (char == '#') url.query += '%23';\n          else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n        } break;\n\n      case FRAGMENT:\n        if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n        break;\n    }\n\n    pointer++;\n  }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n  var that = anInstance(this, URLConstructor, 'URL');\n  var base = arguments.length > 1 ? arguments[1] : undefined;\n  var urlString = String(url);\n  var state = setInternalState(that, { type: 'URL' });\n  var baseState, failure;\n  if (base !== undefined) {\n    if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n    else {\n      failure = parseURL(baseState = {}, String(base));\n      if (failure) throw TypeError(failure);\n    }\n  }\n  failure = parseURL(state, urlString, null, baseState);\n  if (failure) throw TypeError(failure);\n  var searchParams = state.searchParams = new URLSearchParams();\n  var searchParamsState = getInternalSearchParamsState(searchParams);\n  searchParamsState.updateSearchParams(state.query);\n  searchParamsState.updateURL = function () {\n    state.query = String(searchParams) || null;\n  };\n  if (!DESCRIPTORS) {\n    that.href = serializeURL.call(that);\n    that.origin = getOrigin.call(that);\n    that.protocol = getProtocol.call(that);\n    that.username = getUsername.call(that);\n    that.password = getPassword.call(that);\n    that.host = getHost.call(that);\n    that.hostname = getHostname.call(that);\n    that.port = getPort.call(that);\n    that.pathname = getPathname.call(that);\n    that.search = getSearch.call(that);\n    that.searchParams = getSearchParams.call(that);\n    that.hash = getHash.call(that);\n  }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var username = url.username;\n  var password = url.password;\n  var host = url.host;\n  var port = url.port;\n  var path = url.path;\n  var query = url.query;\n  var fragment = url.fragment;\n  var output = scheme + ':';\n  if (host !== null) {\n    output += '//';\n    if (includesCredentials(url)) {\n      output += username + (password ? ':' + password : '') + '@';\n    }\n    output += serializeHost(host);\n    if (port !== null) output += ':' + port;\n  } else if (scheme == 'file') output += '//';\n  output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n  if (query !== null) output += '?' + query;\n  if (fragment !== null) output += '#' + fragment;\n  return output;\n};\n\nvar getOrigin = function () {\n  var url = getInternalURLState(this);\n  var scheme = url.scheme;\n  var port = url.port;\n  if (scheme == 'blob') try {\n    return new URL(scheme.path[0]).origin;\n  } catch (error) {\n    return 'null';\n  }\n  if (scheme == 'file' || !isSpecial(url)) return 'null';\n  return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n  return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n  return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n  return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n  var url = getInternalURLState(this);\n  var host = url.host;\n  var port = url.port;\n  return host === null ? ''\n    : port === null ? serializeHost(host)\n    : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n  var host = getInternalURLState(this).host;\n  return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n  var port = getInternalURLState(this).port;\n  return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n  var url = getInternalURLState(this);\n  var path = url.path;\n  return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n  var query = getInternalURLState(this).query;\n  return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n  return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n  var fragment = getInternalURLState(this).fragment;\n  return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n  return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n  defineProperties(URLPrototype, {\n    // `URL.prototype.href` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-href\n    href: accessorDescriptor(serializeURL, function (href) {\n      var url = getInternalURLState(this);\n      var urlString = String(href);\n      var failure = parseURL(url, urlString);\n      if (failure) throw TypeError(failure);\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.origin` getter\n    // https://url.spec.whatwg.org/#dom-url-origin\n    origin: accessorDescriptor(getOrigin),\n    // `URL.prototype.protocol` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-protocol\n    protocol: accessorDescriptor(getProtocol, function (protocol) {\n      var url = getInternalURLState(this);\n      parseURL(url, String(protocol) + ':', SCHEME_START);\n    }),\n    // `URL.prototype.username` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-username\n    username: accessorDescriptor(getUsername, function (username) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(username));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.username = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.password` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-password\n    password: accessorDescriptor(getPassword, function (password) {\n      var url = getInternalURLState(this);\n      var codePoints = arrayFrom(String(password));\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      url.password = '';\n      for (var i = 0; i < codePoints.length; i++) {\n        url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n      }\n    }),\n    // `URL.prototype.host` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-host\n    host: accessorDescriptor(getHost, function (host) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(host), HOST);\n    }),\n    // `URL.prototype.hostname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hostname\n    hostname: accessorDescriptor(getHostname, function (hostname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      parseURL(url, String(hostname), HOSTNAME);\n    }),\n    // `URL.prototype.port` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-port\n    port: accessorDescriptor(getPort, function (port) {\n      var url = getInternalURLState(this);\n      if (cannotHaveUsernamePasswordPort(url)) return;\n      port = String(port);\n      if (port == '') url.port = null;\n      else parseURL(url, port, PORT);\n    }),\n    // `URL.prototype.pathname` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-pathname\n    pathname: accessorDescriptor(getPathname, function (pathname) {\n      var url = getInternalURLState(this);\n      if (url.cannotBeABaseURL) return;\n      url.path = [];\n      parseURL(url, pathname + '', PATH_START);\n    }),\n    // `URL.prototype.search` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-search\n    search: accessorDescriptor(getSearch, function (search) {\n      var url = getInternalURLState(this);\n      search = String(search);\n      if (search == '') {\n        url.query = null;\n      } else {\n        if ('?' == search.charAt(0)) search = search.slice(1);\n        url.query = '';\n        parseURL(url, search, QUERY);\n      }\n      getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n    }),\n    // `URL.prototype.searchParams` getter\n    // https://url.spec.whatwg.org/#dom-url-searchparams\n    searchParams: accessorDescriptor(getSearchParams),\n    // `URL.prototype.hash` accessors pair\n    // https://url.spec.whatwg.org/#dom-url-hash\n    hash: accessorDescriptor(getHash, function (hash) {\n      var url = getInternalURLState(this);\n      hash = String(hash);\n      if (hash == '') {\n        url.fragment = null;\n        return;\n      }\n      if ('#' == hash.charAt(0)) hash = hash.slice(1);\n      url.fragment = '';\n      parseURL(url, hash, FRAGMENT);\n    })\n  });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n  return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n  var nativeCreateObjectURL = NativeURL.createObjectURL;\n  var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n  // `URL.createObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n    return nativeCreateObjectURL.apply(NativeURL, arguments);\n  });\n  // `URL.revokeObjectURL` method\n  // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n  // eslint-disable-next-line no-unused-vars\n  if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n    return nativeRevokeObjectURL.apply(NativeURL, arguments);\n  });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n  URL: URLConstructor\n});\n\n},{\"../internals/an-instance\":4,\"../internals/array-from\":6,\"../internals/descriptors\":18,\"../internals/export\":21,\"../internals/global\":27,\"../internals/has\":28,\"../internals/internal-state\":34,\"../internals/native-url\":42,\"../internals/object-assign\":44,\"../internals/object-define-properties\":46,\"../internals/redefine\":59,\"../internals/set-to-string-tag\":62,\"../internals/string-multibyte\":66,\"../internals/string-punycode-to-ascii\":67,\"../modules/es.string.iterator\":79,\"../modules/web.url-search-params\":80}],82:[function(require,module,exports){\n'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n  toJSON: function toJSON() {\n    return URL.prototype.toString.call(this);\n  }\n});\n\n},{\"../internals/export\":21}],83:[function(require,module,exports){\nrequire('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n\n},{\"../internals/path\":57,\"../modules/web.url\":81,\"../modules/web.url-search-params\":80,\"../modules/web.url.to-json\":82}]},{},[83]);\n"
  },
  {
    "path": "public/vendor/gutenberg/vendor/wp-polyfill.js",
    "content": "(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_dereq_,module,exports){\n\"use strict\";\n\n_dereq_(2);\n\nvar _global = _interopRequireDefault(_dereq_(15));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nif (_global[\"default\"]._babelPolyfill && typeof console !== \"undefined\" && console.warn) {\n  console.warn(\"@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended \" + \"and may have consequences if different versions of the polyfills are applied sequentially. \" + \"If you do need to load the polyfill more than once, use @babel/polyfill/noConflict \" + \"instead to bypass the warning.\");\n}\n\n_global[\"default\"]._babelPolyfill = true;\n},{\"15\":15,\"2\":2}],2:[function(_dereq_,module,exports){\n\"use strict\";\n\n_dereq_(3);\n\n_dereq_(5);\n\n_dereq_(4);\n\n_dereq_(11);\n\n_dereq_(10);\n\n_dereq_(13);\n\n_dereq_(12);\n\n_dereq_(14);\n\n_dereq_(7);\n\n_dereq_(8);\n\n_dereq_(6);\n\n_dereq_(9);\n\n_dereq_(306);\n\n_dereq_(307);\n},{\"10\":10,\"11\":11,\"12\":12,\"13\":13,\"14\":14,\"3\":3,\"306\":306,\"307\":307,\"4\":4,\"5\":5,\"6\":6,\"7\":7,\"8\":8,\"9\":9}],3:[function(_dereq_,module,exports){\n_dereq_(278);\n_dereq_(214);\n_dereq_(216);\n_dereq_(215);\n_dereq_(218);\n_dereq_(220);\n_dereq_(225);\n_dereq_(219);\n_dereq_(217);\n_dereq_(227);\n_dereq_(226);\n_dereq_(222);\n_dereq_(223);\n_dereq_(221);\n_dereq_(213);\n_dereq_(224);\n_dereq_(228);\n_dereq_(229);\n_dereq_(180);\n_dereq_(182);\n_dereq_(181);\n_dereq_(231);\n_dereq_(230);\n_dereq_(201);\n_dereq_(211);\n_dereq_(212);\n_dereq_(202);\n_dereq_(203);\n_dereq_(204);\n_dereq_(205);\n_dereq_(206);\n_dereq_(207);\n_dereq_(208);\n_dereq_(209);\n_dereq_(210);\n_dereq_(184);\n_dereq_(185);\n_dereq_(186);\n_dereq_(187);\n_dereq_(188);\n_dereq_(189);\n_dereq_(190);\n_dereq_(191);\n_dereq_(192);\n_dereq_(193);\n_dereq_(194);\n_dereq_(195);\n_dereq_(196);\n_dereq_(197);\n_dereq_(198);\n_dereq_(199);\n_dereq_(200);\n_dereq_(265);\n_dereq_(270);\n_dereq_(277);\n_dereq_(268);\n_dereq_(260);\n_dereq_(261);\n_dereq_(266);\n_dereq_(271);\n_dereq_(273);\n_dereq_(256);\n_dereq_(257);\n_dereq_(258);\n_dereq_(259);\n_dereq_(262);\n_dereq_(263);\n_dereq_(264);\n_dereq_(267);\n_dereq_(269);\n_dereq_(272);\n_dereq_(274);\n_dereq_(275);\n_dereq_(276);\n_dereq_(175);\n_dereq_(177);\n_dereq_(176);\n_dereq_(179);\n_dereq_(178);\n_dereq_(163);\n_dereq_(161);\n_dereq_(168);\n_dereq_(165);\n_dereq_(171);\n_dereq_(173);\n_dereq_(160);\n_dereq_(167);\n_dereq_(157);\n_dereq_(172);\n_dereq_(155);\n_dereq_(170);\n_dereq_(169);\n_dereq_(162);\n_dereq_(166);\n_dereq_(154);\n_dereq_(156);\n_dereq_(159);\n_dereq_(158);\n_dereq_(174);\n_dereq_(164);\n_dereq_(247);\n_dereq_(248);\n_dereq_(254);\n_dereq_(249);\n_dereq_(250);\n_dereq_(251);\n_dereq_(252);\n_dereq_(253);\n_dereq_(232);\n_dereq_(183);\n_dereq_(255);\n_dereq_(290);\n_dereq_(291);\n_dereq_(279);\n_dereq_(280);\n_dereq_(285);\n_dereq_(288);\n_dereq_(289);\n_dereq_(283);\n_dereq_(286);\n_dereq_(284);\n_dereq_(287);\n_dereq_(281);\n_dereq_(282);\n_dereq_(233);\n_dereq_(234);\n_dereq_(235);\n_dereq_(236);\n_dereq_(237);\n_dereq_(240);\n_dereq_(238);\n_dereq_(239);\n_dereq_(241);\n_dereq_(242);\n_dereq_(243);\n_dereq_(244);\n_dereq_(246);\n_dereq_(245);\nmodule.exports = _dereq_(52);\n\n},{\"154\":154,\"155\":155,\"156\":156,\"157\":157,\"158\":158,\"159\":159,\"160\":160,\"161\":161,\"162\":162,\"163\":163,\"164\":164,\"165\":165,\"166\":166,\"167\":167,\"168\":168,\"169\":169,\"170\":170,\"171\":171,\"172\":172,\"173\":173,\"174\":174,\"175\":175,\"176\":176,\"177\":177,\"178\":178,\"179\":179,\"180\":180,\"181\":181,\"182\":182,\"183\":183,\"184\":184,\"185\":185,\"186\":186,\"187\":187,\"188\":188,\"189\":189,\"190\":190,\"191\":191,\"192\":192,\"193\":193,\"194\":194,\"195\":195,\"196\":196,\"197\":197,\"198\":198,\"199\":199,\"200\":200,\"201\":201,\"202\":202,\"203\":203,\"204\":204,\"205\":205,\"206\":206,\"207\":207,\"208\":208,\"209\":209,\"210\":210,\"211\":211,\"212\":212,\"213\":213,\"214\":214,\"215\":215,\"216\":216,\"217\":217,\"218\":218,\"219\":219,\"220\":220,\"221\":221,\"222\":222,\"223\":223,\"224\":224,\"225\":225,\"226\":226,\"227\":227,\"228\":228,\"229\":229,\"230\":230,\"231\":231,\"232\":232,\"233\":233,\"234\":234,\"235\":235,\"236\":236,\"237\":237,\"238\":238,\"239\":239,\"240\":240,\"241\":241,\"242\":242,\"243\":243,\"244\":244,\"245\":245,\"246\":246,\"247\":247,\"248\":248,\"249\":249,\"250\":250,\"251\":251,\"252\":252,\"253\":253,\"254\":254,\"255\":255,\"256\":256,\"257\":257,\"258\":258,\"259\":259,\"260\":260,\"261\":261,\"262\":262,\"263\":263,\"264\":264,\"265\":265,\"266\":266,\"267\":267,\"268\":268,\"269\":269,\"270\":270,\"271\":271,\"272\":272,\"273\":273,\"274\":274,\"275\":275,\"276\":276,\"277\":277,\"278\":278,\"279\":279,\"280\":280,\"281\":281,\"282\":282,\"283\":283,\"284\":284,\"285\":285,\"286\":286,\"287\":287,\"288\":288,\"289\":289,\"290\":290,\"291\":291,\"52\":52}],4:[function(_dereq_,module,exports){\n_dereq_(292);\nmodule.exports = _dereq_(52).Array.flatMap;\n\n},{\"292\":292,\"52\":52}],5:[function(_dereq_,module,exports){\n_dereq_(293);\nmodule.exports = _dereq_(52).Array.includes;\n\n},{\"293\":293,\"52\":52}],6:[function(_dereq_,module,exports){\n_dereq_(294);\nmodule.exports = _dereq_(52).Object.entries;\n\n},{\"294\":294,\"52\":52}],7:[function(_dereq_,module,exports){\n_dereq_(295);\nmodule.exports = _dereq_(52).Object.getOwnPropertyDescriptors;\n\n},{\"295\":295,\"52\":52}],8:[function(_dereq_,module,exports){\n_dereq_(296);\nmodule.exports = _dereq_(52).Object.values;\n\n},{\"296\":296,\"52\":52}],9:[function(_dereq_,module,exports){\n'use strict';\n_dereq_(232);\n_dereq_(297);\nmodule.exports = _dereq_(52).Promise['finally'];\n\n},{\"232\":232,\"297\":297,\"52\":52}],10:[function(_dereq_,module,exports){\n_dereq_(298);\nmodule.exports = _dereq_(52).String.padEnd;\n\n},{\"298\":298,\"52\":52}],11:[function(_dereq_,module,exports){\n_dereq_(299);\nmodule.exports = _dereq_(52).String.padStart;\n\n},{\"299\":299,\"52\":52}],12:[function(_dereq_,module,exports){\n_dereq_(301);\nmodule.exports = _dereq_(52).String.trimRight;\n\n},{\"301\":301,\"52\":52}],13:[function(_dereq_,module,exports){\n_dereq_(300);\nmodule.exports = _dereq_(52).String.trimLeft;\n\n},{\"300\":300,\"52\":52}],14:[function(_dereq_,module,exports){\n_dereq_(302);\nmodule.exports = _dereq_(151).f('asyncIterator');\n\n},{\"151\":151,\"302\":302}],15:[function(_dereq_,module,exports){\n_dereq_(32);\nmodule.exports = _dereq_(18).global;\n\n},{\"18\":18,\"32\":32}],16:[function(_dereq_,module,exports){\nmodule.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n},{}],17:[function(_dereq_,module,exports){\nvar isObject = _dereq_(28);\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n},{\"28\":28}],18:[function(_dereq_,module,exports){\nvar core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n},{}],19:[function(_dereq_,module,exports){\n// optional / simple context binding\nvar aFunction = _dereq_(16);\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n},{\"16\":16}],20:[function(_dereq_,module,exports){\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !_dereq_(23)(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n},{\"23\":23}],21:[function(_dereq_,module,exports){\nvar isObject = _dereq_(28);\nvar document = _dereq_(24).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n},{\"24\":24,\"28\":28}],22:[function(_dereq_,module,exports){\nvar global = _dereq_(24);\nvar core = _dereq_(18);\nvar ctx = _dereq_(19);\nvar hide = _dereq_(26);\nvar has = _dereq_(25);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n},{\"18\":18,\"19\":19,\"24\":24,\"25\":25,\"26\":26}],23:[function(_dereq_,module,exports){\nmodule.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n},{}],24:[function(_dereq_,module,exports){\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n},{}],25:[function(_dereq_,module,exports){\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n},{}],26:[function(_dereq_,module,exports){\nvar dP = _dereq_(29);\nvar createDesc = _dereq_(30);\nmodule.exports = _dereq_(20) ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n},{\"20\":20,\"29\":29,\"30\":30}],27:[function(_dereq_,module,exports){\nmodule.exports = !_dereq_(20) && !_dereq_(23)(function () {\n  return Object.defineProperty(_dereq_(21)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n},{\"20\":20,\"21\":21,\"23\":23}],28:[function(_dereq_,module,exports){\nmodule.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n},{}],29:[function(_dereq_,module,exports){\nvar anObject = _dereq_(17);\nvar IE8_DOM_DEFINE = _dereq_(27);\nvar toPrimitive = _dereq_(31);\nvar dP = Object.defineProperty;\n\nexports.f = _dereq_(20) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n},{\"17\":17,\"20\":20,\"27\":27,\"31\":31}],30:[function(_dereq_,module,exports){\nmodule.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n},{}],31:[function(_dereq_,module,exports){\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = _dereq_(28);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n},{\"28\":28}],32:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-global\nvar $export = _dereq_(22);\n\n$export($export.G, { global: _dereq_(24) });\n\n},{\"22\":22,\"24\":24}],33:[function(_dereq_,module,exports){\narguments[4][16][0].apply(exports,arguments)\n},{\"16\":16}],34:[function(_dereq_,module,exports){\nvar cof = _dereq_(48);\nmodule.exports = function (it, msg) {\n  if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n  return +it;\n};\n\n},{\"48\":48}],35:[function(_dereq_,module,exports){\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = _dereq_(152)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) _dereq_(72)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n},{\"152\":152,\"72\":72}],36:[function(_dereq_,module,exports){\n'use strict';\nvar at = _dereq_(129)(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? at(S, index).length : 1);\n};\n\n},{\"129\":129}],37:[function(_dereq_,module,exports){\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n    throw TypeError(name + ': incorrect invocation!');\n  } return it;\n};\n\n},{}],38:[function(_dereq_,module,exports){\narguments[4][17][0].apply(exports,arguments)\n},{\"17\":17,\"81\":81}],39:[function(_dereq_,module,exports){\n// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = _dereq_(142);\nvar toAbsoluteIndex = _dereq_(137);\nvar toLength = _dereq_(141);\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n\n},{\"137\":137,\"141\":141,\"142\":142}],40:[function(_dereq_,module,exports){\n// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = _dereq_(142);\nvar toAbsoluteIndex = _dereq_(137);\nvar toLength = _dereq_(141);\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var aLen = arguments.length;\n  var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n  var end = aLen > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n\n},{\"137\":137,\"141\":141,\"142\":142}],41:[function(_dereq_,module,exports){\n// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = _dereq_(140);\nvar toLength = _dereq_(141);\nvar toAbsoluteIndex = _dereq_(137);\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n},{\"137\":137,\"140\":140,\"141\":141}],42:[function(_dereq_,module,exports){\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = _dereq_(54);\nvar IObject = _dereq_(77);\nvar toObject = _dereq_(142);\nvar toLength = _dereq_(141);\nvar asc = _dereq_(45);\nmodule.exports = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || asc;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IObject(O);\n    var f = ctx(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      val = self[index];\n      res = f(val, index, O);\n      if (TYPE) {\n        if (IS_MAP) result[index] = res;   // map\n        else if (res) switch (TYPE) {\n          case 3: return true;             // some\n          case 5: return val;              // find\n          case 6: return index;            // findIndex\n          case 2: result.push(val);        // filter\n        } else if (IS_EVERY) return false; // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n\n},{\"141\":141,\"142\":142,\"45\":45,\"54\":54,\"77\":77}],43:[function(_dereq_,module,exports){\nvar aFunction = _dereq_(33);\nvar toObject = _dereq_(142);\nvar IObject = _dereq_(77);\nvar toLength = _dereq_(141);\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n  aFunction(callbackfn);\n  var O = toObject(that);\n  var self = IObject(O);\n  var length = toLength(O.length);\n  var index = isRight ? length - 1 : 0;\n  var i = isRight ? -1 : 1;\n  if (aLen < 2) for (;;) {\n    if (index in self) {\n      memo = self[index];\n      index += i;\n      break;\n    }\n    index += i;\n    if (isRight ? index < 0 : length <= index) {\n      throw TypeError('Reduce of empty array with no initial value');\n    }\n  }\n  for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n    memo = callbackfn(memo, self[index], index, O);\n  }\n  return memo;\n};\n\n},{\"141\":141,\"142\":142,\"33\":33,\"77\":77}],44:[function(_dereq_,module,exports){\nvar isObject = _dereq_(81);\nvar isArray = _dereq_(79);\nvar SPECIES = _dereq_(152)('species');\n\nmodule.exports = function (original) {\n  var C;\n  if (isArray(original)) {\n    C = original.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n\n},{\"152\":152,\"79\":79,\"81\":81}],45:[function(_dereq_,module,exports){\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = _dereq_(44);\n\nmodule.exports = function (original, length) {\n  return new (speciesConstructor(original))(length);\n};\n\n},{\"44\":44}],46:[function(_dereq_,module,exports){\n'use strict';\nvar aFunction = _dereq_(33);\nvar isObject = _dereq_(81);\nvar invoke = _dereq_(76);\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n  if (!(len in factories)) {\n    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n    // eslint-disable-next-line no-new-func\n    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n  } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n  var fn = aFunction(this);\n  var partArgs = arraySlice.call(arguments, 1);\n  var bound = function (/* args... */) {\n    var args = partArgs.concat(arraySlice.call(arguments));\n    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n  };\n  if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n  return bound;\n};\n\n},{\"33\":33,\"76\":76,\"81\":81}],47:[function(_dereq_,module,exports){\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = _dereq_(48);\nvar TAG = _dereq_(152)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n},{\"152\":152,\"48\":48}],48:[function(_dereq_,module,exports){\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n},{}],49:[function(_dereq_,module,exports){\n'use strict';\nvar dP = _dereq_(99).f;\nvar create = _dereq_(98);\nvar redefineAll = _dereq_(117);\nvar ctx = _dereq_(54);\nvar anInstance = _dereq_(37);\nvar forOf = _dereq_(68);\nvar $iterDefine = _dereq_(85);\nvar step = _dereq_(87);\nvar setSpecies = _dereq_(123);\nvar DESCRIPTORS = _dereq_(58);\nvar fastKey = _dereq_(94).fastKey;\nvar validate = _dereq_(149);\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n  // fast case\n  var index = fastKey(key);\n  var entry;\n  if (index !== 'F') return that._i[index];\n  // frozen object case\n  for (entry = that._f; entry; entry = entry.n) {\n    if (entry.k == key) return entry;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;         // collection type\n      that._i = create(null); // index\n      that._f = undefined;    // first entry\n      that._l = undefined;    // last entry\n      that[SIZE] = 0;         // size\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n          entry.r = true;\n          if (entry.p) entry.p = entry.p.n = undefined;\n          delete data[entry.i];\n        }\n        that._f = that._l = undefined;\n        that[SIZE] = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = validate(this, NAME);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.n;\n          var prev = entry.p;\n          delete that._i[entry.i];\n          entry.r = true;\n          if (prev) prev.n = next;\n          if (next) next.p = prev;\n          if (that._f == entry) that._f = next;\n          if (that._l == entry) that._l = prev;\n          that[SIZE]--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        validate(this, NAME);\n        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.n : this._f) {\n          f(entry.v, entry.k, this);\n          // revert to the last existing entry\n          while (entry && entry.r) entry = entry.p;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(validate(this, NAME), key);\n      }\n    });\n    if (DESCRIPTORS) dP(C.prototype, 'size', {\n      get: function () {\n        return validate(this, NAME)[SIZE];\n      }\n    });\n    return C;\n  },\n  def: function (that, key, value) {\n    var entry = getEntry(that, key);\n    var prev, index;\n    // change existing entry\n    if (entry) {\n      entry.v = value;\n    // create new entry\n    } else {\n      that._l = entry = {\n        i: index = fastKey(key, true), // <- index\n        k: key,                        // <- key\n        v: value,                      // <- value\n        p: prev = that._l,             // <- previous entry\n        n: undefined,                  // <- next entry\n        r: false                       // <- removed\n      };\n      if (!that._f) that._f = entry;\n      if (prev) prev.n = entry;\n      that[SIZE]++;\n      // add to index\n      if (index !== 'F') that._i[index] = entry;\n    } return that;\n  },\n  getEntry: getEntry,\n  setStrong: function (C, NAME, IS_MAP) {\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    $iterDefine(C, NAME, function (iterated, kind) {\n      this._t = validate(iterated, NAME); // target\n      this._k = kind;                     // kind\n      this._l = undefined;                // previous\n    }, function () {\n      var that = this;\n      var kind = that._k;\n      var entry = that._l;\n      // revert to the last existing entry\n      while (entry && entry.r) entry = entry.p;\n      // get next entry\n      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n        // or finish the iteration\n        that._t = undefined;\n        return step(1);\n      }\n      // return step by kind\n      if (kind == 'keys') return step(0, entry.k);\n      if (kind == 'values') return step(0, entry.v);\n      return step(0, [entry.k, entry.v]);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(NAME);\n  }\n};\n\n},{\"117\":117,\"123\":123,\"149\":149,\"37\":37,\"54\":54,\"58\":58,\"68\":68,\"85\":85,\"87\":87,\"94\":94,\"98\":98,\"99\":99}],50:[function(_dereq_,module,exports){\n'use strict';\nvar redefineAll = _dereq_(117);\nvar getWeak = _dereq_(94).getWeak;\nvar anObject = _dereq_(38);\nvar isObject = _dereq_(81);\nvar anInstance = _dereq_(37);\nvar forOf = _dereq_(68);\nvar createArrayMethod = _dereq_(42);\nvar $has = _dereq_(71);\nvar validate = _dereq_(149);\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n  return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n  this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n  return arrayFind(store.a, function (it) {\n    return it[0] === key;\n  });\n};\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.a.push([key, value]);\n  },\n  'delete': function (key) {\n    var index = arrayFindIndex(this.a, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.a.splice(index, 1);\n    return !!~index;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;      // collection type\n      that._i = id++;      // collection id\n      that._l = undefined; // leak store for uncaught frozen objects\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.3.3.2 WeakMap.prototype.delete(key)\n      // 23.4.3.3 WeakSet.prototype.delete(value)\n      'delete': function (key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n        return data && $has(data, this._i) && delete data[this._i];\n      },\n      // 23.3.3.4 WeakMap.prototype.has(key)\n      // 23.4.3.4 WeakSet.prototype.has(value)\n      has: function has(key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n        return data && $has(data, this._i);\n      }\n    });\n    return C;\n  },\n  def: function (that, key, value) {\n    var data = getWeak(anObject(key), true);\n    if (data === true) uncaughtFrozenStore(that).set(key, value);\n    else data[that._i] = value;\n    return that;\n  },\n  ufstore: uncaughtFrozenStore\n};\n\n},{\"117\":117,\"149\":149,\"37\":37,\"38\":38,\"42\":42,\"68\":68,\"71\":71,\"81\":81,\"94\":94}],51:[function(_dereq_,module,exports){\n'use strict';\nvar global = _dereq_(70);\nvar $export = _dereq_(62);\nvar redefine = _dereq_(118);\nvar redefineAll = _dereq_(117);\nvar meta = _dereq_(94);\nvar forOf = _dereq_(68);\nvar anInstance = _dereq_(37);\nvar isObject = _dereq_(81);\nvar fails = _dereq_(64);\nvar $iterDetect = _dereq_(86);\nvar setToStringTag = _dereq_(124);\nvar inheritIfRequired = _dereq_(75);\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n  var Base = global[NAME];\n  var C = Base;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var proto = C && C.prototype;\n  var O = {};\n  var fixMethod = function (KEY) {\n    var fn = proto[KEY];\n    redefine(proto, KEY,\n      KEY == 'delete' ? function (a) {\n        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'has' ? function has(a) {\n        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'get' ? function get(a) {\n        return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n      } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n    );\n  };\n  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    // create collection constructor\n    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n    redefineAll(C.prototype, methods);\n    meta.NEED = true;\n  } else {\n    var instance = new C();\n    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new C();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n    if (!ACCEPT_ITERABLES) {\n      C = wrapper(function (target, iterable) {\n        anInstance(target, C, NAME);\n        var that = inheritIfRequired(new Base(), target, C);\n        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n        return that;\n      });\n      C.prototype = proto;\n      proto.constructor = C;\n    }\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n    // weak collections should not contains .clear method\n    if (IS_WEAK && proto.clear) delete proto.clear;\n  }\n\n  setToStringTag(C, NAME);\n\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F * (C != Base), O);\n\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n  return C;\n};\n\n},{\"117\":117,\"118\":118,\"124\":124,\"37\":37,\"62\":62,\"64\":64,\"68\":68,\"70\":70,\"75\":75,\"81\":81,\"86\":86,\"94\":94}],52:[function(_dereq_,module,exports){\narguments[4][18][0].apply(exports,arguments)\n},{\"18\":18}],53:[function(_dereq_,module,exports){\n'use strict';\nvar $defineProperty = _dereq_(99);\nvar createDesc = _dereq_(116);\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n},{\"116\":116,\"99\":99}],54:[function(_dereq_,module,exports){\narguments[4][19][0].apply(exports,arguments)\n},{\"19\":19,\"33\":33}],55:[function(_dereq_,module,exports){\n'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = _dereq_(64);\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n  return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n  return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n  var d = this;\n  var y = d.getUTCFullYear();\n  var m = d.getUTCMilliseconds();\n  var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n  return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n    '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n    'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n    ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n\n},{\"64\":64}],56:[function(_dereq_,module,exports){\n'use strict';\nvar anObject = _dereq_(38);\nvar toPrimitive = _dereq_(143);\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n  if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n  return toPrimitive(anObject(this), hint != NUMBER);\n};\n\n},{\"143\":143,\"38\":38}],57:[function(_dereq_,module,exports){\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n},{}],58:[function(_dereq_,module,exports){\narguments[4][20][0].apply(exports,arguments)\n},{\"20\":20,\"64\":64}],59:[function(_dereq_,module,exports){\narguments[4][21][0].apply(exports,arguments)\n},{\"21\":21,\"70\":70,\"81\":81}],60:[function(_dereq_,module,exports){\n// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n},{}],61:[function(_dereq_,module,exports){\n// all enumerable object keys, includes symbols\nvar getKeys = _dereq_(107);\nvar gOPS = _dereq_(104);\nvar pIE = _dereq_(108);\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\n},{\"104\":104,\"107\":107,\"108\":108}],62:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar core = _dereq_(52);\nvar hide = _dereq_(72);\nvar redefine = _dereq_(118);\nvar ctx = _dereq_(54);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    // export native or passed\n    out = (own ? target : source)[key];\n    // bind timers to global for call from export context\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // extend global\n    if (target) redefine(target, key, out, type & $export.U);\n    // export\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n},{\"118\":118,\"52\":52,\"54\":54,\"70\":70,\"72\":72}],63:[function(_dereq_,module,exports){\nvar MATCH = _dereq_(152)('match');\nmodule.exports = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n\n},{\"152\":152}],64:[function(_dereq_,module,exports){\narguments[4][23][0].apply(exports,arguments)\n},{\"23\":23}],65:[function(_dereq_,module,exports){\n'use strict';\n_dereq_(248);\nvar redefine = _dereq_(118);\nvar hide = _dereq_(72);\nvar fails = _dereq_(64);\nvar defined = _dereq_(57);\nvar wks = _dereq_(152);\nvar regexpExec = _dereq_(120);\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n  // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n  var SYMBOL = wks(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () { execCalled = true; return null; };\n    if (KEY === 'split') {\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n    }\n    re[SYMBOL]('');\n    return !execCalled;\n  }) : undefined;\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var fns = exec(\n      defined,\n      SYMBOL,\n      ''[KEY],\n      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n        if (regexp.exec === regexpExec) {\n          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n            // The native String method already delegates to @@method (this\n            // polyfilled function), leasing to infinite recursion.\n            // We avoid it by directly calling the native @@method method.\n            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n          }\n          return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n        }\n        return { done: false };\n      }\n    );\n    var strfn = fns[0];\n    var rxfn = fns[1];\n\n    redefine(String.prototype, KEY, strfn);\n    hide(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return rxfn.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return rxfn.call(string, this); }\n    );\n  }\n};\n\n},{\"118\":118,\"120\":120,\"152\":152,\"248\":248,\"57\":57,\"64\":64,\"72\":72}],66:[function(_dereq_,module,exports){\n'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = _dereq_(38);\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n\n},{\"38\":38}],67:[function(_dereq_,module,exports){\n'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = _dereq_(79);\nvar isObject = _dereq_(81);\nvar toLength = _dereq_(141);\nvar ctx = _dereq_(54);\nvar IS_CONCAT_SPREADABLE = _dereq_(152)('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n  var element, spreadable;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      spreadable = false;\n      if (isObject(element)) {\n        spreadable = element[IS_CONCAT_SPREADABLE];\n        spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n      }\n\n      if (spreadable && depth > 0) {\n        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n\n},{\"141\":141,\"152\":152,\"54\":54,\"79\":79,\"81\":81}],68:[function(_dereq_,module,exports){\nvar ctx = _dereq_(54);\nvar call = _dereq_(83);\nvar isArrayIter = _dereq_(78);\nvar anObject = _dereq_(38);\nvar toLength = _dereq_(141);\nvar getIterFn = _dereq_(153);\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  // fast case for arrays with default iterator\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n},{\"141\":141,\"153\":153,\"38\":38,\"54\":54,\"78\":78,\"83\":83}],69:[function(_dereq_,module,exports){\nmodule.exports = _dereq_(126)('native-function-to-string', Function.toString);\n\n},{\"126\":126}],70:[function(_dereq_,module,exports){\narguments[4][24][0].apply(exports,arguments)\n},{\"24\":24}],71:[function(_dereq_,module,exports){\narguments[4][25][0].apply(exports,arguments)\n},{\"25\":25}],72:[function(_dereq_,module,exports){\narguments[4][26][0].apply(exports,arguments)\n},{\"116\":116,\"26\":26,\"58\":58,\"99\":99}],73:[function(_dereq_,module,exports){\nvar document = _dereq_(70).document;\nmodule.exports = document && document.documentElement;\n\n},{\"70\":70}],74:[function(_dereq_,module,exports){\narguments[4][27][0].apply(exports,arguments)\n},{\"27\":27,\"58\":58,\"59\":59,\"64\":64}],75:[function(_dereq_,module,exports){\nvar isObject = _dereq_(81);\nvar setPrototypeOf = _dereq_(122).set;\nmodule.exports = function (that, target, C) {\n  var S = target.constructor;\n  var P;\n  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n    setPrototypeOf(that, P);\n  } return that;\n};\n\n},{\"122\":122,\"81\":81}],76:[function(_dereq_,module,exports){\n// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n  switch (args.length) {\n    case 0: return un ? fn()\n                      : fn.call(that);\n    case 1: return un ? fn(args[0])\n                      : fn.call(that, args[0]);\n    case 2: return un ? fn(args[0], args[1])\n                      : fn.call(that, args[0], args[1]);\n    case 3: return un ? fn(args[0], args[1], args[2])\n                      : fn.call(that, args[0], args[1], args[2]);\n    case 4: return un ? fn(args[0], args[1], args[2], args[3])\n                      : fn.call(that, args[0], args[1], args[2], args[3]);\n  } return fn.apply(that, args);\n};\n\n},{}],77:[function(_dereq_,module,exports){\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = _dereq_(48);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n},{\"48\":48}],78:[function(_dereq_,module,exports){\n// check on default Array iterator\nvar Iterators = _dereq_(88);\nvar ITERATOR = _dereq_(152)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n},{\"152\":152,\"88\":88}],79:[function(_dereq_,module,exports){\n// 7.2.2 IsArray(argument)\nvar cof = _dereq_(48);\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n},{\"48\":48}],80:[function(_dereq_,module,exports){\n// 20.1.2.3 Number.isInteger(number)\nvar isObject = _dereq_(81);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n},{\"81\":81}],81:[function(_dereq_,module,exports){\narguments[4][28][0].apply(exports,arguments)\n},{\"28\":28}],82:[function(_dereq_,module,exports){\n// 7.2.8 IsRegExp(argument)\nvar isObject = _dereq_(81);\nvar cof = _dereq_(48);\nvar MATCH = _dereq_(152)('match');\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n},{\"152\":152,\"48\":48,\"81\":81}],83:[function(_dereq_,module,exports){\n// call something on iterator step with safe closing on error\nvar anObject = _dereq_(38);\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n},{\"38\":38}],84:[function(_dereq_,module,exports){\n'use strict';\nvar create = _dereq_(98);\nvar descriptor = _dereq_(116);\nvar setToStringTag = _dereq_(124);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n_dereq_(72)(IteratorPrototype, _dereq_(152)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n},{\"116\":116,\"124\":124,\"152\":152,\"72\":72,\"98\":98}],85:[function(_dereq_,module,exports){\n'use strict';\nvar LIBRARY = _dereq_(89);\nvar $export = _dereq_(62);\nvar redefine = _dereq_(118);\nvar hide = _dereq_(72);\nvar Iterators = _dereq_(88);\nvar $iterCreate = _dereq_(84);\nvar setToStringTag = _dereq_(124);\nvar getPrototypeOf = _dereq_(105);\nvar ITERATOR = _dereq_(152)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n},{\"105\":105,\"118\":118,\"124\":124,\"152\":152,\"62\":62,\"72\":72,\"84\":84,\"88\":88,\"89\":89}],86:[function(_dereq_,module,exports){\nvar ITERATOR = _dereq_(152)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n\n},{\"152\":152}],87:[function(_dereq_,module,exports){\nmodule.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n},{}],88:[function(_dereq_,module,exports){\nmodule.exports = {};\n\n},{}],89:[function(_dereq_,module,exports){\nmodule.exports = false;\n\n},{}],90:[function(_dereq_,module,exports){\n// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n  // Old FF bug\n  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n\n},{}],91:[function(_dereq_,module,exports){\n// 20.2.2.16 Math.fround(x)\nvar sign = _dereq_(93);\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n  return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n  var $abs = Math.abs(x);\n  var $sign = sign(x);\n  var a, result;\n  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n  a = (1 + EPSILON32 / EPSILON) * $abs;\n  result = a - (a - $abs);\n  // eslint-disable-next-line no-self-compare\n  if (result > MAX32 || result != result) return $sign * Infinity;\n  return $sign * result;\n};\n\n},{\"93\":93}],92:[function(_dereq_,module,exports){\n// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n\n},{}],93:[function(_dereq_,module,exports){\n// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n\n},{}],94:[function(_dereq_,module,exports){\nvar META = _dereq_(147)('meta');\nvar isObject = _dereq_(81);\nvar has = _dereq_(71);\nvar setDesc = _dereq_(99).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !_dereq_(64)(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n},{\"147\":147,\"64\":64,\"71\":71,\"81\":81,\"99\":99}],95:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar macrotask = _dereq_(136).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = _dereq_(48)(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function () {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();\n        else last = undefined;\n        throw e;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (isNode) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    var promise = Promise.resolve(undefined);\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = { fn: fn, next: undefined };\n    if (last) last.next = task;\n    if (!head) {\n      head = task;\n      notify();\n    } last = task;\n  };\n};\n\n},{\"136\":136,\"48\":48,\"70\":70}],96:[function(_dereq_,module,exports){\n'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = _dereq_(33);\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n},{\"33\":33}],97:[function(_dereq_,module,exports){\n'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = _dereq_(58);\nvar getKeys = _dereq_(107);\nvar gOPS = _dereq_(104);\nvar pIE = _dereq_(108);\nvar toObject = _dereq_(142);\nvar IObject = _dereq_(77);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || _dereq_(64)(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) {\n      key = keys[j++];\n      if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n    }\n  } return T;\n} : $assign;\n\n},{\"104\":104,\"107\":107,\"108\":108,\"142\":142,\"58\":58,\"64\":64,\"77\":77}],98:[function(_dereq_,module,exports){\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = _dereq_(38);\nvar dPs = _dereq_(100);\nvar enumBugKeys = _dereq_(60);\nvar IE_PROTO = _dereq_(125)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = _dereq_(59)('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  _dereq_(73).appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n},{\"100\":100,\"125\":125,\"38\":38,\"59\":59,\"60\":60,\"73\":73}],99:[function(_dereq_,module,exports){\narguments[4][29][0].apply(exports,arguments)\n},{\"143\":143,\"29\":29,\"38\":38,\"58\":58,\"74\":74}],100:[function(_dereq_,module,exports){\nvar dP = _dereq_(99);\nvar anObject = _dereq_(38);\nvar getKeys = _dereq_(107);\n\nmodule.exports = _dereq_(58) ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n},{\"107\":107,\"38\":38,\"58\":58,\"99\":99}],101:[function(_dereq_,module,exports){\nvar pIE = _dereq_(108);\nvar createDesc = _dereq_(116);\nvar toIObject = _dereq_(140);\nvar toPrimitive = _dereq_(143);\nvar has = _dereq_(71);\nvar IE8_DOM_DEFINE = _dereq_(74);\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = _dereq_(58) ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n},{\"108\":108,\"116\":116,\"140\":140,\"143\":143,\"58\":58,\"71\":71,\"74\":74}],102:[function(_dereq_,module,exports){\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = _dereq_(140);\nvar gOPN = _dereq_(103).f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n},{\"103\":103,\"140\":140}],103:[function(_dereq_,module,exports){\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = _dereq_(106);\nvar hiddenKeys = _dereq_(60).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n},{\"106\":106,\"60\":60}],104:[function(_dereq_,module,exports){\nexports.f = Object.getOwnPropertySymbols;\n\n},{}],105:[function(_dereq_,module,exports){\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = _dereq_(71);\nvar toObject = _dereq_(142);\nvar IE_PROTO = _dereq_(125)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n},{\"125\":125,\"142\":142,\"71\":71}],106:[function(_dereq_,module,exports){\nvar has = _dereq_(71);\nvar toIObject = _dereq_(140);\nvar arrayIndexOf = _dereq_(41)(false);\nvar IE_PROTO = _dereq_(125)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n},{\"125\":125,\"140\":140,\"41\":41,\"71\":71}],107:[function(_dereq_,module,exports){\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = _dereq_(106);\nvar enumBugKeys = _dereq_(60);\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n},{\"106\":106,\"60\":60}],108:[function(_dereq_,module,exports){\nexports.f = {}.propertyIsEnumerable;\n\n},{}],109:[function(_dereq_,module,exports){\n// most Object methods by ES6 should accept primitives\nvar $export = _dereq_(62);\nvar core = _dereq_(52);\nvar fails = _dereq_(64);\nmodule.exports = function (KEY, exec) {\n  var fn = (core.Object || {})[KEY] || Object[KEY];\n  var exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n},{\"52\":52,\"62\":62,\"64\":64}],110:[function(_dereq_,module,exports){\nvar DESCRIPTORS = _dereq_(58);\nvar getKeys = _dereq_(107);\nvar toIObject = _dereq_(140);\nvar isEnum = _dereq_(108).f;\nmodule.exports = function (isEntries) {\n  return function (it) {\n    var O = toIObject(it);\n    var keys = getKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) {\n      key = keys[i++];\n      if (!DESCRIPTORS || isEnum.call(O, key)) {\n        result.push(isEntries ? [key, O[key]] : O[key]);\n      }\n    }\n    return result;\n  };\n};\n\n},{\"107\":107,\"108\":108,\"140\":140,\"58\":58}],111:[function(_dereq_,module,exports){\n// all object keys, includes non-enumerable and symbols\nvar gOPN = _dereq_(103);\nvar gOPS = _dereq_(104);\nvar anObject = _dereq_(38);\nvar Reflect = _dereq_(70).Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n  var keys = gOPN.f(anObject(it));\n  var getSymbols = gOPS.f;\n  return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n},{\"103\":103,\"104\":104,\"38\":38,\"70\":70}],112:[function(_dereq_,module,exports){\nvar $parseFloat = _dereq_(70).parseFloat;\nvar $trim = _dereq_(134).trim;\n\nmodule.exports = 1 / $parseFloat(_dereq_(135) + '-0') !== -Infinity ? function parseFloat(str) {\n  var string = $trim(String(str), 3);\n  var result = $parseFloat(string);\n  return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n},{\"134\":134,\"135\":135,\"70\":70}],113:[function(_dereq_,module,exports){\nvar $parseInt = _dereq_(70).parseInt;\nvar $trim = _dereq_(134).trim;\nvar ws = _dereq_(135);\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n  var string = $trim(String(str), 3);\n  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n},{\"134\":134,\"135\":135,\"70\":70}],114:[function(_dereq_,module,exports){\nmodule.exports = function (exec) {\n  try {\n    return { e: false, v: exec() };\n  } catch (e) {\n    return { e: true, v: e };\n  }\n};\n\n},{}],115:[function(_dereq_,module,exports){\nvar anObject = _dereq_(38);\nvar isObject = _dereq_(81);\nvar newPromiseCapability = _dereq_(96);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n},{\"38\":38,\"81\":81,\"96\":96}],116:[function(_dereq_,module,exports){\narguments[4][30][0].apply(exports,arguments)\n},{\"30\":30}],117:[function(_dereq_,module,exports){\nvar redefine = _dereq_(118);\nmodule.exports = function (target, src, safe) {\n  for (var key in src) redefine(target, key, src[key], safe);\n  return target;\n};\n\n},{\"118\":118}],118:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar hide = _dereq_(72);\nvar has = _dereq_(71);\nvar SRC = _dereq_(147)('src');\nvar $toString = _dereq_(69);\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n_dereq_(52).inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n},{\"147\":147,\"52\":52,\"69\":69,\"70\":70,\"71\":71,\"72\":72}],119:[function(_dereq_,module,exports){\n'use strict';\n\nvar classof = _dereq_(47);\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw new TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n  if (classof(R) !== 'RegExp') {\n    throw new TypeError('RegExp#exec called on incompatible receiver');\n  }\n  return builtinExec.call(R, S);\n};\n\n},{\"47\":47}],120:[function(_dereq_,module,exports){\n'use strict';\n\nvar regexpFlags = _dereq_(66);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/,\n      re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n    match = nativeExec.call(re, str);\n\n    if (UPDATES_LAST_INDEX_WRONG && match) {\n      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      // eslint-disable-next-line no-loop-func\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n\n},{\"66\":66}],121:[function(_dereq_,module,exports){\n// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n},{}],122:[function(_dereq_,module,exports){\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = _dereq_(81);\nvar anObject = _dereq_(38);\nvar check = function (O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n    function (test, buggy, set) {\n      try {\n        set = _dereq_(54)(Function.call, _dereq_(101).f(Object.prototype, '__proto__').set, 2);\n        set(test, []);\n        buggy = !(test instanceof Array);\n      } catch (e) { buggy = true; }\n      return function setPrototypeOf(O, proto) {\n        check(O, proto);\n        if (buggy) O.__proto__ = proto;\n        else set(O, proto);\n        return O;\n      };\n    }({}, false) : undefined),\n  check: check\n};\n\n},{\"101\":101,\"38\":38,\"54\":54,\"81\":81}],123:[function(_dereq_,module,exports){\n'use strict';\nvar global = _dereq_(70);\nvar dP = _dereq_(99);\nvar DESCRIPTORS = _dereq_(58);\nvar SPECIES = _dereq_(152)('species');\n\nmodule.exports = function (KEY) {\n  var C = global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function () { return this; }\n  });\n};\n\n},{\"152\":152,\"58\":58,\"70\":70,\"99\":99}],124:[function(_dereq_,module,exports){\nvar def = _dereq_(99).f;\nvar has = _dereq_(71);\nvar TAG = _dereq_(152)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n},{\"152\":152,\"71\":71,\"99\":99}],125:[function(_dereq_,module,exports){\nvar shared = _dereq_(126)('keys');\nvar uid = _dereq_(147);\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n},{\"126\":126,\"147\":147}],126:[function(_dereq_,module,exports){\nvar core = _dereq_(52);\nvar global = _dereq_(70);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: _dereq_(89) ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n},{\"52\":52,\"70\":70,\"89\":89}],127:[function(_dereq_,module,exports){\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = _dereq_(38);\nvar aFunction = _dereq_(33);\nvar SPECIES = _dereq_(152)('species');\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n},{\"152\":152,\"33\":33,\"38\":38}],128:[function(_dereq_,module,exports){\n'use strict';\nvar fails = _dereq_(64);\n\nmodule.exports = function (method, arg) {\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call\n    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n  });\n};\n\n},{\"64\":64}],129:[function(_dereq_,module,exports){\nvar toInteger = _dereq_(139);\nvar defined = _dereq_(57);\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n},{\"139\":139,\"57\":57}],130:[function(_dereq_,module,exports){\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = _dereq_(82);\nvar defined = _dereq_(57);\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n},{\"57\":57,\"82\":82}],131:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar fails = _dereq_(64);\nvar defined = _dereq_(57);\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n  var S = String(defined(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n  var O = {};\n  O[NAME] = exec(createHTML);\n  $export($export.P + $export.F * fails(function () {\n    var test = ''[NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  }), 'String', O);\n};\n\n},{\"57\":57,\"62\":62,\"64\":64}],132:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = _dereq_(141);\nvar repeat = _dereq_(133);\nvar defined = _dereq_(57);\n\nmodule.exports = function (that, maxLength, fillString, left) {\n  var S = String(defined(that));\n  var stringLength = S.length;\n  var fillStr = fillString === undefined ? ' ' : String(fillString);\n  var intMaxLength = toLength(maxLength);\n  if (intMaxLength <= stringLength || fillStr == '') return S;\n  var fillLen = intMaxLength - stringLength;\n  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n  return left ? stringFiller + S : S + stringFiller;\n};\n\n},{\"133\":133,\"141\":141,\"57\":57}],133:[function(_dereq_,module,exports){\n'use strict';\nvar toInteger = _dereq_(139);\nvar defined = _dereq_(57);\n\nmodule.exports = function repeat(count) {\n  var str = String(defined(this));\n  var res = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n  return res;\n};\n\n},{\"139\":139,\"57\":57}],134:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar defined = _dereq_(57);\nvar fails = _dereq_(64);\nvar spaces = _dereq_(135);\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n  var exp = {};\n  var FORCE = fails(function () {\n    return !!spaces[KEY]() || non[KEY]() != non;\n  });\n  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n  if (ALIAS) exp[ALIAS] = fn;\n  $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n  string = String(defined(string));\n  if (TYPE & 1) string = string.replace(ltrim, '');\n  if (TYPE & 2) string = string.replace(rtrim, '');\n  return string;\n};\n\nmodule.exports = exporter;\n\n},{\"135\":135,\"57\":57,\"62\":62,\"64\":64}],135:[function(_dereq_,module,exports){\nmodule.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n  '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n},{}],136:[function(_dereq_,module,exports){\nvar ctx = _dereq_(54);\nvar invoke = _dereq_(76);\nvar html = _dereq_(73);\nvar cel = _dereq_(59);\nvar global = _dereq_(70);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n  var id = +this;\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar listener = function (event) {\n  run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (_dereq_(48)(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function (id) {\n      global.postMessage(id + '', '*');\n    };\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function (id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n},{\"48\":48,\"54\":54,\"59\":59,\"70\":70,\"73\":73,\"76\":76}],137:[function(_dereq_,module,exports){\nvar toInteger = _dereq_(139);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n},{\"139\":139}],138:[function(_dereq_,module,exports){\n// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = _dereq_(139);\nvar toLength = _dereq_(141);\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length!');\n  return length;\n};\n\n},{\"139\":139,\"141\":141}],139:[function(_dereq_,module,exports){\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n},{}],140:[function(_dereq_,module,exports){\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = _dereq_(77);\nvar defined = _dereq_(57);\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n},{\"57\":57,\"77\":77}],141:[function(_dereq_,module,exports){\n// 7.1.15 ToLength\nvar toInteger = _dereq_(139);\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n},{\"139\":139}],142:[function(_dereq_,module,exports){\n// 7.1.13 ToObject(argument)\nvar defined = _dereq_(57);\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n},{\"57\":57}],143:[function(_dereq_,module,exports){\narguments[4][31][0].apply(exports,arguments)\n},{\"31\":31,\"81\":81}],144:[function(_dereq_,module,exports){\n'use strict';\nif (_dereq_(58)) {\n  var LIBRARY = _dereq_(89);\n  var global = _dereq_(70);\n  var fails = _dereq_(64);\n  var $export = _dereq_(62);\n  var $typed = _dereq_(146);\n  var $buffer = _dereq_(145);\n  var ctx = _dereq_(54);\n  var anInstance = _dereq_(37);\n  var propertyDesc = _dereq_(116);\n  var hide = _dereq_(72);\n  var redefineAll = _dereq_(117);\n  var toInteger = _dereq_(139);\n  var toLength = _dereq_(141);\n  var toIndex = _dereq_(138);\n  var toAbsoluteIndex = _dereq_(137);\n  var toPrimitive = _dereq_(143);\n  var has = _dereq_(71);\n  var classof = _dereq_(47);\n  var isObject = _dereq_(81);\n  var toObject = _dereq_(142);\n  var isArrayIter = _dereq_(78);\n  var create = _dereq_(98);\n  var getPrototypeOf = _dereq_(105);\n  var gOPN = _dereq_(103).f;\n  var getIterFn = _dereq_(153);\n  var uid = _dereq_(147);\n  var wks = _dereq_(152);\n  var createArrayMethod = _dereq_(42);\n  var createArrayIncludes = _dereq_(41);\n  var speciesConstructor = _dereq_(127);\n  var ArrayIterators = _dereq_(164);\n  var Iterators = _dereq_(88);\n  var $iterDetect = _dereq_(86);\n  var setSpecies = _dereq_(123);\n  var arrayFill = _dereq_(40);\n  var arrayCopyWithin = _dereq_(39);\n  var $DP = _dereq_(99);\n  var $GOPD = _dereq_(101);\n  var dP = $DP.f;\n  var gOPD = $GOPD.f;\n  var RangeError = global.RangeError;\n  var TypeError = global.TypeError;\n  var Uint8Array = global.Uint8Array;\n  var ARRAY_BUFFER = 'ArrayBuffer';\n  var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n  var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n  var PROTOTYPE = 'prototype';\n  var ArrayProto = Array[PROTOTYPE];\n  var $ArrayBuffer = $buffer.ArrayBuffer;\n  var $DataView = $buffer.DataView;\n  var arrayForEach = createArrayMethod(0);\n  var arrayFilter = createArrayMethod(2);\n  var arraySome = createArrayMethod(3);\n  var arrayEvery = createArrayMethod(4);\n  var arrayFind = createArrayMethod(5);\n  var arrayFindIndex = createArrayMethod(6);\n  var arrayIncludes = createArrayIncludes(true);\n  var arrayIndexOf = createArrayIncludes(false);\n  var arrayValues = ArrayIterators.values;\n  var arrayKeys = ArrayIterators.keys;\n  var arrayEntries = ArrayIterators.entries;\n  var arrayLastIndexOf = ArrayProto.lastIndexOf;\n  var arrayReduce = ArrayProto.reduce;\n  var arrayReduceRight = ArrayProto.reduceRight;\n  var arrayJoin = ArrayProto.join;\n  var arraySort = ArrayProto.sort;\n  var arraySlice = ArrayProto.slice;\n  var arrayToString = ArrayProto.toString;\n  var arrayToLocaleString = ArrayProto.toLocaleString;\n  var ITERATOR = wks('iterator');\n  var TAG = wks('toStringTag');\n  var TYPED_CONSTRUCTOR = uid('typed_constructor');\n  var DEF_CONSTRUCTOR = uid('def_constructor');\n  var ALL_CONSTRUCTORS = $typed.CONSTR;\n  var TYPED_ARRAY = $typed.TYPED;\n  var VIEW = $typed.VIEW;\n  var WRONG_LENGTH = 'Wrong length!';\n\n  var $map = createArrayMethod(1, function (O, length) {\n    return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n  });\n\n  var LITTLE_ENDIAN = fails(function () {\n    // eslint-disable-next-line no-undef\n    return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n  });\n\n  var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n    new Uint8Array(1).set({});\n  });\n\n  var toOffset = function (it, BYTES) {\n    var offset = toInteger(it);\n    if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n    return offset;\n  };\n\n  var validate = function (it) {\n    if (isObject(it) && TYPED_ARRAY in it) return it;\n    throw TypeError(it + ' is not a typed array!');\n  };\n\n  var allocate = function (C, length) {\n    if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n      throw TypeError('It is not a typed array constructor!');\n    } return new C(length);\n  };\n\n  var speciesFromList = function (O, list) {\n    return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n  };\n\n  var fromList = function (C, list) {\n    var index = 0;\n    var length = list.length;\n    var result = allocate(C, length);\n    while (length > index) result[index] = list[index++];\n    return result;\n  };\n\n  var addGetter = function (it, key, internal) {\n    dP(it, key, { get: function () { return this._d[internal]; } });\n  };\n\n  var $from = function from(source /* , mapfn, thisArg */) {\n    var O = toObject(source);\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var iterFn = getIterFn(O);\n    var i, length, values, result, step, iterator;\n    if (iterFn != undefined && !isArrayIter(iterFn)) {\n      for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n        values.push(step.value);\n      } O = values;\n    }\n    if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n    for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n      result[i] = mapping ? mapfn(O[i], i) : O[i];\n    }\n    return result;\n  };\n\n  var $of = function of(/* ...items */) {\n    var index = 0;\n    var length = arguments.length;\n    var result = allocate(this, length);\n    while (length > index) result[index] = arguments[index++];\n    return result;\n  };\n\n  // iOS Safari 6.x fails here\n  var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n  var $toLocaleString = function toLocaleString() {\n    return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n  };\n\n  var proto = {\n    copyWithin: function copyWithin(target, start /* , end */) {\n      return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    every: function every(callbackfn /* , thisArg */) {\n      return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n      return arrayFill.apply(validate(this), arguments);\n    },\n    filter: function filter(callbackfn /* , thisArg */) {\n      return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n        arguments.length > 1 ? arguments[1] : undefined));\n    },\n    find: function find(predicate /* , thisArg */) {\n      return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    findIndex: function findIndex(predicate /* , thisArg */) {\n      return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    forEach: function forEach(callbackfn /* , thisArg */) {\n      arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    indexOf: function indexOf(searchElement /* , fromIndex */) {\n      return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    includes: function includes(searchElement /* , fromIndex */) {\n      return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    join: function join(separator) { // eslint-disable-line no-unused-vars\n      return arrayJoin.apply(validate(this), arguments);\n    },\n    lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n      return arrayLastIndexOf.apply(validate(this), arguments);\n    },\n    map: function map(mapfn /* , thisArg */) {\n      return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n      return arrayReduce.apply(validate(this), arguments);\n    },\n    reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n      return arrayReduceRight.apply(validate(this), arguments);\n    },\n    reverse: function reverse() {\n      var that = this;\n      var length = validate(that).length;\n      var middle = Math.floor(length / 2);\n      var index = 0;\n      var value;\n      while (index < middle) {\n        value = that[index];\n        that[index++] = that[--length];\n        that[length] = value;\n      } return that;\n    },\n    some: function some(callbackfn /* , thisArg */) {\n      return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    sort: function sort(comparefn) {\n      return arraySort.call(validate(this), comparefn);\n    },\n    subarray: function subarray(begin, end) {\n      var O = validate(this);\n      var length = O.length;\n      var $begin = toAbsoluteIndex(begin, length);\n      return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n        O.buffer,\n        O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n        toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n      );\n    }\n  };\n\n  var $slice = function slice(start, end) {\n    return speciesFromList(this, arraySlice.call(validate(this), start, end));\n  };\n\n  var $set = function set(arrayLike /* , offset */) {\n    validate(this);\n    var offset = toOffset(arguments[1], 1);\n    var length = this.length;\n    var src = toObject(arrayLike);\n    var len = toLength(src.length);\n    var index = 0;\n    if (len + offset > length) throw RangeError(WRONG_LENGTH);\n    while (index < len) this[offset + index] = src[index++];\n  };\n\n  var $iterators = {\n    entries: function entries() {\n      return arrayEntries.call(validate(this));\n    },\n    keys: function keys() {\n      return arrayKeys.call(validate(this));\n    },\n    values: function values() {\n      return arrayValues.call(validate(this));\n    }\n  };\n\n  var isTAIndex = function (target, key) {\n    return isObject(target)\n      && target[TYPED_ARRAY]\n      && typeof key != 'symbol'\n      && key in target\n      && String(+key) == String(key);\n  };\n  var $getDesc = function getOwnPropertyDescriptor(target, key) {\n    return isTAIndex(target, key = toPrimitive(key, true))\n      ? propertyDesc(2, target[key])\n      : gOPD(target, key);\n  };\n  var $setDesc = function defineProperty(target, key, desc) {\n    if (isTAIndex(target, key = toPrimitive(key, true))\n      && isObject(desc)\n      && has(desc, 'value')\n      && !has(desc, 'get')\n      && !has(desc, 'set')\n      // TODO: add validation descriptor w/o calling accessors\n      && !desc.configurable\n      && (!has(desc, 'writable') || desc.writable)\n      && (!has(desc, 'enumerable') || desc.enumerable)\n    ) {\n      target[key] = desc.value;\n      return target;\n    } return dP(target, key, desc);\n  };\n\n  if (!ALL_CONSTRUCTORS) {\n    $GOPD.f = $getDesc;\n    $DP.f = $setDesc;\n  }\n\n  $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n    getOwnPropertyDescriptor: $getDesc,\n    defineProperty: $setDesc\n  });\n\n  if (fails(function () { arrayToString.call({}); })) {\n    arrayToString = arrayToLocaleString = function toString() {\n      return arrayJoin.call(this);\n    };\n  }\n\n  var $TypedArrayPrototype$ = redefineAll({}, proto);\n  redefineAll($TypedArrayPrototype$, $iterators);\n  hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n  redefineAll($TypedArrayPrototype$, {\n    slice: $slice,\n    set: $set,\n    constructor: function () { /* noop */ },\n    toString: arrayToString,\n    toLocaleString: $toLocaleString\n  });\n  addGetter($TypedArrayPrototype$, 'buffer', 'b');\n  addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n  addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n  addGetter($TypedArrayPrototype$, 'length', 'e');\n  dP($TypedArrayPrototype$, TAG, {\n    get: function () { return this[TYPED_ARRAY]; }\n  });\n\n  // eslint-disable-next-line max-statements\n  module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n    CLAMPED = !!CLAMPED;\n    var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + KEY;\n    var SETTER = 'set' + KEY;\n    var TypedArray = global[NAME];\n    var Base = TypedArray || {};\n    var TAC = TypedArray && getPrototypeOf(TypedArray);\n    var FORCED = !TypedArray || !$typed.ABV;\n    var O = {};\n    var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n    var getter = function (that, index) {\n      var data = that._d;\n      return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n    };\n    var setter = function (that, index, value) {\n      var data = that._d;\n      if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n      data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n    };\n    var addElement = function (that, index) {\n      dP(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n    if (FORCED) {\n      TypedArray = wrapper(function (that, data, $offset, $length) {\n        anInstance(that, TypedArray, NAME, '_d');\n        var index = 0;\n        var offset = 0;\n        var buffer, byteLength, length, klass;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new $ArrayBuffer(byteLength);\n        } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n          buffer = data;\n          offset = toOffset($offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - offset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (TYPED_ARRAY in data) {\n          return fromList(TypedArray, data);\n        } else {\n          return $from.call(TypedArray, data);\n        }\n        hide(that, '_d', {\n          b: buffer,\n          o: offset,\n          l: byteLength,\n          e: length,\n          v: new $DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n      TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n      hide(TypedArrayPrototype, 'constructor', TypedArray);\n    } else if (!fails(function () {\n      TypedArray(1);\n    }) || !fails(function () {\n      new TypedArray(-1); // eslint-disable-line no-new\n    }) || !$iterDetect(function (iter) {\n      new TypedArray(); // eslint-disable-line no-new\n      new TypedArray(null); // eslint-disable-line no-new\n      new TypedArray(1.5); // eslint-disable-line no-new\n      new TypedArray(iter); // eslint-disable-line no-new\n    }, true)) {\n      TypedArray = wrapper(function (that, data, $offset, $length) {\n        anInstance(that, TypedArray, NAME);\n        var klass;\n        // `ws` module bug, temporarily remove validation length for Uint8Array\n        // https://github.com/websockets/ws/pull/645\n        if (!isObject(data)) return new Base(toIndex(data));\n        if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n          return $length !== undefined\n            ? new Base(data, toOffset($offset, BYTES), $length)\n            : $offset !== undefined\n              ? new Base(data, toOffset($offset, BYTES))\n              : new Base(data);\n        }\n        if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n        return $from.call(TypedArray, data);\n      });\n      arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n        if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n      });\n      TypedArray[PROTOTYPE] = TypedArrayPrototype;\n      if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n    }\n    var $nativeIterator = TypedArrayPrototype[ITERATOR];\n    var CORRECT_ITER_NAME = !!$nativeIterator\n      && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n    var $iterator = $iterators.values;\n    hide(TypedArray, TYPED_CONSTRUCTOR, true);\n    hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n    hide(TypedArrayPrototype, VIEW, true);\n    hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n    if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n      dP(TypedArrayPrototype, TAG, {\n        get: function () { return NAME; }\n      });\n    }\n\n    O[NAME] = TypedArray;\n\n    $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n    $export($export.S, NAME, {\n      BYTES_PER_ELEMENT: BYTES\n    });\n\n    $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n      from: $from,\n      of: $of\n    });\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n    $export($export.P, NAME, proto);\n\n    setSpecies(NAME);\n\n    $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n    $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n    if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n    $export($export.P + $export.F * fails(function () {\n      new TypedArray(1).slice();\n    }), NAME, { slice: $slice });\n\n    $export($export.P + $export.F * (fails(function () {\n      return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n    }) || !fails(function () {\n      TypedArrayPrototype.toLocaleString.call([1, 2]);\n    })), NAME, { toLocaleString: $toLocaleString });\n\n    Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n    if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n  };\n} else module.exports = function () { /* empty */ };\n\n},{\"101\":101,\"103\":103,\"105\":105,\"116\":116,\"117\":117,\"123\":123,\"127\":127,\"137\":137,\"138\":138,\"139\":139,\"141\":141,\"142\":142,\"143\":143,\"145\":145,\"146\":146,\"147\":147,\"152\":152,\"153\":153,\"164\":164,\"37\":37,\"39\":39,\"40\":40,\"41\":41,\"42\":42,\"47\":47,\"54\":54,\"58\":58,\"62\":62,\"64\":64,\"70\":70,\"71\":71,\"72\":72,\"78\":78,\"81\":81,\"86\":86,\"88\":88,\"89\":89,\"98\":98,\"99\":99}],145:[function(_dereq_,module,exports){\n'use strict';\nvar global = _dereq_(70);\nvar DESCRIPTORS = _dereq_(58);\nvar LIBRARY = _dereq_(89);\nvar $typed = _dereq_(146);\nvar hide = _dereq_(72);\nvar redefineAll = _dereq_(117);\nvar fails = _dereq_(64);\nvar anInstance = _dereq_(37);\nvar toInteger = _dereq_(139);\nvar toLength = _dereq_(141);\nvar toIndex = _dereq_(138);\nvar gOPN = _dereq_(103).f;\nvar dP = _dereq_(99).f;\nvar arrayFill = _dereq_(40);\nvar setToStringTag = _dereq_(124);\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n  var buffer = new Array(nBytes);\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var i = 0;\n  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n  var e, m, c;\n  value = abs(value);\n  // eslint-disable-next-line no-self-compare\n  if (value != value || value === Infinity) {\n    // eslint-disable-next-line no-self-compare\n    m = value != value ? 1 : 0;\n    e = eMax;\n  } else {\n    e = floor(log(value) / LN2);\n    if (value * (c = pow(2, -e)) < 1) {\n      e--;\n      c *= 2;\n    }\n    if (e + eBias >= 1) {\n      value += rt / c;\n    } else {\n      value += rt * pow(2, 1 - eBias);\n    }\n    if (value * c >= 2) {\n      e++;\n      c /= 2;\n    }\n    if (e + eBias >= eMax) {\n      m = 0;\n      e = eMax;\n    } else if (e + eBias >= 1) {\n      m = (value * c - 1) * pow(2, mLen);\n      e = e + eBias;\n    } else {\n      m = value * pow(2, eBias - 1) * pow(2, mLen);\n      e = 0;\n    }\n  }\n  for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n  e = e << mLen | m;\n  eLen += mLen;\n  for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n  buffer[--i] |= s * 128;\n  return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var nBits = eLen - 7;\n  var i = nBytes - 1;\n  var s = buffer[i--];\n  var e = s & 127;\n  var m;\n  s >>= 7;\n  for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n  m = e & (1 << -nBits) - 1;\n  e >>= -nBits;\n  nBits += mLen;\n  for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n  if (e === 0) {\n    e = 1 - eBias;\n  } else if (e === eMax) {\n    return m ? NaN : s ? -Infinity : Infinity;\n  } else {\n    m = m + pow(2, mLen);\n    e = e - eBias;\n  } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n  return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n  return [it & 0xff];\n}\nfunction packI16(it) {\n  return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n  return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n  return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n  return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n  dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n  var store = view[$BUFFER]._b;\n  var start = intIndex + view[$OFFSET];\n  var pack = store.slice(start, start + bytes);\n  return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n  var store = view[$BUFFER]._b;\n  var start = intIndex + view[$OFFSET];\n  var pack = conversion(+value);\n  for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    this._b = arrayFill.call(new Array(byteLength), 0);\n    this[$LENGTH] = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = buffer[$LENGTH];\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    this[$BUFFER] = buffer;\n    this[$OFFSET] = offset;\n    this[$LENGTH] = byteLength;\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n    addGetter($DataView, BUFFER, '_b');\n    addGetter($DataView, BYTE_LENGTH, '_l');\n    addGetter($DataView, BYTE_OFFSET, '_o');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments[1]);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments[1]);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackI32(get(this, 4, byteOffset, arguments[1]));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packI8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packI8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packI16, value, arguments[2]);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packI16, value, arguments[2]);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packI32, value, arguments[2]);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packI32, value, arguments[2]);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packF32, value, arguments[2]);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packF64, value, arguments[2]);\n    }\n  });\n} else {\n  if (!fails(function () {\n    $ArrayBuffer(1);\n  }) || !fails(function () {\n    new $ArrayBuffer(-1); // eslint-disable-line no-new\n  }) || fails(function () {\n    new $ArrayBuffer(); // eslint-disable-line no-new\n    new $ArrayBuffer(1.5); // eslint-disable-line no-new\n    new $ArrayBuffer(NaN); // eslint-disable-line no-new\n    return $ArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new BaseBuffer(toIndex(length));\n    };\n    var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n    for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n    }\n    if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n  }\n  // iOS Safari 7.x bug\n  var view = new $DataView(new $ArrayBuffer(2));\n  var $setInt8 = $DataView[PROTOTYPE].setInt8;\n  view.setInt8(0, 2147483648);\n  view.setInt8(1, 2147483649);\n  if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n    setInt8: function setInt8(byteOffset, value) {\n      $setInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      $setInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n\n},{\"103\":103,\"117\":117,\"124\":124,\"138\":138,\"139\":139,\"141\":141,\"146\":146,\"37\":37,\"40\":40,\"58\":58,\"64\":64,\"70\":70,\"72\":72,\"89\":89,\"99\":99}],146:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar hide = _dereq_(72);\nvar uid = _dereq_(147);\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n  'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n  if (Typed = global[TypedArrayConstructors[i++]]) {\n    hide(Typed.prototype, TYPED, true);\n    hide(Typed.prototype, VIEW, true);\n  } else CONSTR = false;\n}\n\nmodule.exports = {\n  ABV: ABV,\n  CONSTR: CONSTR,\n  TYPED: TYPED,\n  VIEW: VIEW\n};\n\n},{\"147\":147,\"70\":70,\"72\":72}],147:[function(_dereq_,module,exports){\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n},{}],148:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n},{\"70\":70}],149:[function(_dereq_,module,exports){\nvar isObject = _dereq_(81);\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n\n},{\"81\":81}],150:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar core = _dereq_(52);\nvar LIBRARY = _dereq_(89);\nvar wksExt = _dereq_(151);\nvar defineProperty = _dereq_(99).f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n},{\"151\":151,\"52\":52,\"70\":70,\"89\":89,\"99\":99}],151:[function(_dereq_,module,exports){\nexports.f = _dereq_(152);\n\n},{\"152\":152}],152:[function(_dereq_,module,exports){\nvar store = _dereq_(126)('wks');\nvar uid = _dereq_(147);\nvar Symbol = _dereq_(70).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n},{\"126\":126,\"147\":147,\"70\":70}],153:[function(_dereq_,module,exports){\nvar classof = _dereq_(47);\nvar ITERATOR = _dereq_(152)('iterator');\nvar Iterators = _dereq_(88);\nmodule.exports = _dereq_(52).getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n},{\"152\":152,\"47\":47,\"52\":52,\"88\":88}],154:[function(_dereq_,module,exports){\n// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = _dereq_(62);\n\n$export($export.P, 'Array', { copyWithin: _dereq_(39) });\n\n_dereq_(35)('copyWithin');\n\n},{\"35\":35,\"39\":39,\"62\":62}],155:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $every = _dereq_(42)(4);\n\n$export($export.P + $export.F * !_dereq_(128)([].every, true), 'Array', {\n  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"42\":42,\"62\":62}],156:[function(_dereq_,module,exports){\n// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = _dereq_(62);\n\n$export($export.P, 'Array', { fill: _dereq_(40) });\n\n_dereq_(35)('fill');\n\n},{\"35\":35,\"40\":40,\"62\":62}],157:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $filter = _dereq_(42)(2);\n\n$export($export.P + $export.F * !_dereq_(128)([].filter, true), 'Array', {\n  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"42\":42,\"62\":62}],158:[function(_dereq_,module,exports){\n'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = _dereq_(62);\nvar $find = _dereq_(42)(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n_dereq_(35)(KEY);\n\n},{\"35\":35,\"42\":42,\"62\":62}],159:[function(_dereq_,module,exports){\n'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = _dereq_(62);\nvar $find = _dereq_(42)(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n_dereq_(35)(KEY);\n\n},{\"35\":35,\"42\":42,\"62\":62}],160:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $forEach = _dereq_(42)(0);\nvar STRICT = _dereq_(128)([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n  forEach: function forEach(callbackfn /* , thisArg */) {\n    return $forEach(this, callbackfn, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"42\":42,\"62\":62}],161:[function(_dereq_,module,exports){\n'use strict';\nvar ctx = _dereq_(54);\nvar $export = _dereq_(62);\nvar toObject = _dereq_(142);\nvar call = _dereq_(83);\nvar isArrayIter = _dereq_(78);\nvar toLength = _dereq_(141);\nvar createProperty = _dereq_(53);\nvar getIterFn = _dereq_(153);\n\n$export($export.S + $export.F * !_dereq_(86)(function (iter) { Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n},{\"141\":141,\"142\":142,\"153\":153,\"53\":53,\"54\":54,\"62\":62,\"78\":78,\"83\":83,\"86\":86}],162:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $indexOf = _dereq_(41)(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(128)($native)), 'Array', {\n  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? $native.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"41\":41,\"62\":62}],163:[function(_dereq_,module,exports){\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Array', { isArray: _dereq_(79) });\n\n},{\"62\":62,\"79\":79}],164:[function(_dereq_,module,exports){\n'use strict';\nvar addToUnscopables = _dereq_(35);\nvar step = _dereq_(87);\nvar Iterators = _dereq_(88);\nvar toIObject = _dereq_(140);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = _dereq_(85)(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n},{\"140\":140,\"35\":35,\"85\":85,\"87\":87,\"88\":88}],165:[function(_dereq_,module,exports){\n'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = _dereq_(62);\nvar toIObject = _dereq_(140);\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (_dereq_(77) != Object || !_dereq_(128)(arrayJoin)), 'Array', {\n  join: function join(separator) {\n    return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n  }\n});\n\n},{\"128\":128,\"140\":140,\"62\":62,\"77\":77}],166:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar toIObject = _dereq_(140);\nvar toInteger = _dereq_(139);\nvar toLength = _dereq_(141);\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !_dereq_(128)($native)), 'Array', {\n  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n  lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n    // convert -0 to +0\n    if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n    var O = toIObject(this);\n    var length = toLength(O.length);\n    var index = length - 1;\n    if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n    if (index < 0) index = length + index;\n    for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n    return -1;\n  }\n});\n\n},{\"128\":128,\"139\":139,\"140\":140,\"141\":141,\"62\":62}],167:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $map = _dereq_(42)(1);\n\n$export($export.P + $export.F * !_dereq_(128)([].map, true), 'Array', {\n  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"42\":42,\"62\":62}],168:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar createProperty = _dereq_(53);\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * _dereq_(64)(function () {\n  function F() { /* empty */ }\n  return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n  // 22.1.2.3 Array.of( ...items)\n  of: function of(/* ...args */) {\n    var index = 0;\n    var aLen = arguments.length;\n    var result = new (typeof this == 'function' ? this : Array)(aLen);\n    while (aLen > index) createProperty(result, index, arguments[index++]);\n    result.length = aLen;\n    return result;\n  }\n});\n\n},{\"53\":53,\"62\":62,\"64\":64}],169:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $reduce = _dereq_(43);\n\n$export($export.P + $export.F * !_dereq_(128)([].reduceRight, true), 'Array', {\n  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n  }\n});\n\n},{\"128\":128,\"43\":43,\"62\":62}],170:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $reduce = _dereq_(43);\n\n$export($export.P + $export.F * !_dereq_(128)([].reduce, true), 'Array', {\n  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n  }\n});\n\n},{\"128\":128,\"43\":43,\"62\":62}],171:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar html = _dereq_(73);\nvar cof = _dereq_(48);\nvar toAbsoluteIndex = _dereq_(137);\nvar toLength = _dereq_(141);\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * _dereq_(64)(function () {\n  if (html) arraySlice.call(html);\n}), 'Array', {\n  slice: function slice(begin, end) {\n    var len = toLength(this.length);\n    var klass = cof(this);\n    end = end === undefined ? len : end;\n    if (klass == 'Array') return arraySlice.call(this, begin, end);\n    var start = toAbsoluteIndex(begin, len);\n    var upTo = toAbsoluteIndex(end, len);\n    var size = toLength(upTo - start);\n    var cloned = new Array(size);\n    var i = 0;\n    for (; i < size; i++) cloned[i] = klass == 'String'\n      ? this.charAt(start + i)\n      : this[start + i];\n    return cloned;\n  }\n});\n\n},{\"137\":137,\"141\":141,\"48\":48,\"62\":62,\"64\":64,\"73\":73}],172:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $some = _dereq_(42)(3);\n\n$export($export.P + $export.F * !_dereq_(128)([].some, true), 'Array', {\n  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments[1]);\n  }\n});\n\n},{\"128\":128,\"42\":42,\"62\":62}],173:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar aFunction = _dereq_(33);\nvar toObject = _dereq_(142);\nvar fails = _dereq_(64);\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n  // IE8-\n  test.sort(undefined);\n}) || !fails(function () {\n  // V8 bug\n  test.sort(null);\n  // Old WebKit\n}) || !_dereq_(128)($sort)), 'Array', {\n  // 22.1.3.25 Array.prototype.sort(comparefn)\n  sort: function sort(comparefn) {\n    return comparefn === undefined\n      ? $sort.call(toObject(this))\n      : $sort.call(toObject(this), aFunction(comparefn));\n  }\n});\n\n},{\"128\":128,\"142\":142,\"33\":33,\"62\":62,\"64\":64}],174:[function(_dereq_,module,exports){\n_dereq_(123)('Array');\n\n},{\"123\":123}],175:[function(_dereq_,module,exports){\n// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = _dereq_(62);\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n\n},{\"62\":62}],176:[function(_dereq_,module,exports){\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = _dereq_(62);\nvar toISOString = _dereq_(55);\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n  toISOString: toISOString\n});\n\n},{\"55\":55,\"62\":62}],177:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar toObject = _dereq_(142);\nvar toPrimitive = _dereq_(143);\n\n$export($export.P + $export.F * _dereq_(64)(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n  // eslint-disable-next-line no-unused-vars\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O);\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n\n},{\"142\":142,\"143\":143,\"62\":62,\"64\":64}],178:[function(_dereq_,module,exports){\nvar TO_PRIMITIVE = _dereq_(152)('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) _dereq_(72)(proto, TO_PRIMITIVE, _dereq_(56));\n\n},{\"152\":152,\"56\":56,\"72\":72}],179:[function(_dereq_,module,exports){\nvar DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n  _dereq_(118)(DateProto, TO_STRING, function toString() {\n    var value = getTime.call(this);\n    // eslint-disable-next-line no-self-compare\n    return value === value ? $toString.call(this) : INVALID_DATE;\n  });\n}\n\n},{\"118\":118}],180:[function(_dereq_,module,exports){\n// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = _dereq_(62);\n\n$export($export.P, 'Function', { bind: _dereq_(46) });\n\n},{\"46\":46,\"62\":62}],181:[function(_dereq_,module,exports){\n'use strict';\nvar isObject = _dereq_(81);\nvar getPrototypeOf = _dereq_(105);\nvar HAS_INSTANCE = _dereq_(152)('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) _dereq_(99).f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n  if (typeof this != 'function' || !isObject(O)) return false;\n  if (!isObject(this.prototype)) return O instanceof this;\n  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n  return false;\n} });\n\n},{\"105\":105,\"152\":152,\"81\":81,\"99\":99}],182:[function(_dereq_,module,exports){\nvar dP = _dereq_(99).f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || _dereq_(58) && dP(FProto, NAME, {\n  configurable: true,\n  get: function () {\n    try {\n      return ('' + this).match(nameRE)[1];\n    } catch (e) {\n      return '';\n    }\n  }\n});\n\n},{\"58\":58,\"99\":99}],183:[function(_dereq_,module,exports){\n'use strict';\nvar strong = _dereq_(49);\nvar validate = _dereq_(149);\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = _dereq_(51)(MAP, function (get) {\n  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.1.3.6 Map.prototype.get(key)\n  get: function get(key) {\n    var entry = strong.getEntry(validate(this, MAP), key);\n    return entry && entry.v;\n  },\n  // 23.1.3.9 Map.prototype.set(key, value)\n  set: function set(key, value) {\n    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n  }\n}, strong, true);\n\n},{\"149\":149,\"49\":49,\"51\":51}],184:[function(_dereq_,module,exports){\n// 20.2.2.3 Math.acosh(x)\nvar $export = _dereq_(62);\nvar log1p = _dereq_(92);\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  && Math.floor($acosh(Number.MAX_VALUE)) == 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  && $acosh(Infinity) == Infinity\n), 'Math', {\n  acosh: function acosh(x) {\n    return (x = +x) < 1 ? NaN : x > 94906265.62425156\n      ? Math.log(x) + Math.LN2\n      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n  }\n});\n\n},{\"62\":62,\"92\":92}],185:[function(_dereq_,module,exports){\n// 20.2.2.5 Math.asinh(x)\nvar $export = _dereq_(62);\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n},{\"62\":62}],186:[function(_dereq_,module,exports){\n// 20.2.2.7 Math.atanh(x)\nvar $export = _dereq_(62);\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n  atanh: function atanh(x) {\n    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n  }\n});\n\n},{\"62\":62}],187:[function(_dereq_,module,exports){\n// 20.2.2.9 Math.cbrt(x)\nvar $export = _dereq_(62);\nvar sign = _dereq_(93);\n\n$export($export.S, 'Math', {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n  }\n});\n\n},{\"62\":62,\"93\":93}],188:[function(_dereq_,module,exports){\n// 20.2.2.11 Math.clz32(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', {\n  clz32: function clz32(x) {\n    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n  }\n});\n\n},{\"62\":62}],189:[function(_dereq_,module,exports){\n// 20.2.2.12 Math.cosh(x)\nvar $export = _dereq_(62);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n  cosh: function cosh(x) {\n    return (exp(x = +x) + exp(-x)) / 2;\n  }\n});\n\n},{\"62\":62}],190:[function(_dereq_,module,exports){\n// 20.2.2.14 Math.expm1(x)\nvar $export = _dereq_(62);\nvar $expm1 = _dereq_(90);\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n},{\"62\":62,\"90\":90}],191:[function(_dereq_,module,exports){\n// 20.2.2.16 Math.fround(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', { fround: _dereq_(91) });\n\n},{\"62\":62,\"91\":91}],192:[function(_dereq_,module,exports){\n// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = _dereq_(62);\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n  }\n});\n\n},{\"62\":62}],193:[function(_dereq_,module,exports){\n// 20.2.2.18 Math.imul(x, y)\nvar $export = _dereq_(62);\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * _dereq_(64)(function () {\n  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n  imul: function imul(x, y) {\n    var UINT16 = 0xffff;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n\n},{\"62\":62,\"64\":64}],194:[function(_dereq_,module,exports){\n// 20.2.2.21 Math.log10(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', {\n  log10: function log10(x) {\n    return Math.log(x) * Math.LOG10E;\n  }\n});\n\n},{\"62\":62}],195:[function(_dereq_,module,exports){\n// 20.2.2.20 Math.log1p(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', { log1p: _dereq_(92) });\n\n},{\"62\":62,\"92\":92}],196:[function(_dereq_,module,exports){\n// 20.2.2.22 Math.log2(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', {\n  log2: function log2(x) {\n    return Math.log(x) / Math.LN2;\n  }\n});\n\n},{\"62\":62}],197:[function(_dereq_,module,exports){\n// 20.2.2.28 Math.sign(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', { sign: _dereq_(93) });\n\n},{\"62\":62,\"93\":93}],198:[function(_dereq_,module,exports){\n// 20.2.2.30 Math.sinh(x)\nvar $export = _dereq_(62);\nvar expm1 = _dereq_(90);\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * _dereq_(64)(function () {\n  return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n  sinh: function sinh(x) {\n    return Math.abs(x = +x) < 1\n      ? (expm1(x) - expm1(-x)) / 2\n      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n  }\n});\n\n},{\"62\":62,\"64\":64,\"90\":90}],199:[function(_dereq_,module,exports){\n// 20.2.2.33 Math.tanh(x)\nvar $export = _dereq_(62);\nvar expm1 = _dereq_(90);\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n  tanh: function tanh(x) {\n    var a = expm1(x = +x);\n    var b = expm1(-x);\n    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n  }\n});\n\n},{\"62\":62,\"90\":90}],200:[function(_dereq_,module,exports){\n// 20.2.2.34 Math.trunc(x)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Math', {\n  trunc: function trunc(it) {\n    return (it > 0 ? Math.floor : Math.ceil)(it);\n  }\n});\n\n},{\"62\":62}],201:[function(_dereq_,module,exports){\n'use strict';\nvar global = _dereq_(70);\nvar has = _dereq_(71);\nvar cof = _dereq_(48);\nvar inheritIfRequired = _dereq_(75);\nvar toPrimitive = _dereq_(143);\nvar fails = _dereq_(64);\nvar gOPN = _dereq_(103).f;\nvar gOPD = _dereq_(101).f;\nvar dP = _dereq_(99).f;\nvar $trim = _dereq_(134).trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(_dereq_(98)(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  if (typeof it == 'string' && it.length > 2) {\n    it = TRIM ? it.trim() : $trim(it, 3);\n    var first = it.charCodeAt(0);\n    var third, radix, maxCode;\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n        default: return +it;\n      }\n      for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n        code = digits.charCodeAt(i);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n  $Number = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var that = this;\n    return that instanceof $Number\n      // check on 1..constructor(foo) case\n      && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n        ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n  };\n  for (var keys = _dereq_(58) ? gOPN(Base) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES6 (in case, if modules with ES6 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(Base, key = keys[j]) && !has($Number, key)) {\n      dP($Number, key, gOPD(Base, key));\n    }\n  }\n  $Number.prototype = proto;\n  proto.constructor = $Number;\n  _dereq_(118)(global, NUMBER, $Number);\n}\n\n},{\"101\":101,\"103\":103,\"118\":118,\"134\":134,\"143\":143,\"48\":48,\"58\":58,\"64\":64,\"70\":70,\"71\":71,\"75\":75,\"98\":98,\"99\":99}],202:[function(_dereq_,module,exports){\n// 20.1.2.1 Number.EPSILON\nvar $export = _dereq_(62);\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n},{\"62\":62}],203:[function(_dereq_,module,exports){\n// 20.1.2.2 Number.isFinite(number)\nvar $export = _dereq_(62);\nvar _isFinite = _dereq_(70).isFinite;\n\n$export($export.S, 'Number', {\n  isFinite: function isFinite(it) {\n    return typeof it == 'number' && _isFinite(it);\n  }\n});\n\n},{\"62\":62,\"70\":70}],204:[function(_dereq_,module,exports){\n// 20.1.2.3 Number.isInteger(number)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Number', { isInteger: _dereq_(80) });\n\n},{\"62\":62,\"80\":80}],205:[function(_dereq_,module,exports){\n// 20.1.2.4 Number.isNaN(number)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\n});\n\n},{\"62\":62}],206:[function(_dereq_,module,exports){\n// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = _dereq_(62);\nvar isInteger = _dereq_(80);\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n  isSafeInteger: function isSafeInteger(number) {\n    return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n  }\n});\n\n},{\"62\":62,\"80\":80}],207:[function(_dereq_,module,exports){\n// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = _dereq_(62);\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n\n},{\"62\":62}],208:[function(_dereq_,module,exports){\n// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = _dereq_(62);\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n},{\"62\":62}],209:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar $parseFloat = _dereq_(112);\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n},{\"112\":112,\"62\":62}],210:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar $parseInt = _dereq_(113);\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n},{\"113\":113,\"62\":62}],211:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar toInteger = _dereq_(139);\nvar aNumberValue = _dereq_(34);\nvar repeat = _dereq_(133);\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n  var i = -1;\n  var c2 = c;\n  while (++i < 6) {\n    c2 += n * data[i];\n    data[i] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\nvar divide = function (n) {\n  var i = 6;\n  var c = 0;\n  while (--i >= 0) {\n    c += data[i];\n    data[i] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\nvar numToString = function () {\n  var i = 6;\n  var s = '';\n  while (--i >= 0) {\n    if (s !== '' || i === 0 || data[i] !== 0) {\n      var t = String(data[i]);\n      s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n    }\n  } return s;\n};\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n  0.00008.toFixed(3) !== '0.000' ||\n  0.9.toFixed(0) !== '1' ||\n  1.255.toFixed(2) !== '1.25' ||\n  1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !_dereq_(64)(function () {\n  // V8 ~ Android 4.3-\n  $toFixed.call({});\n})), 'Number', {\n  toFixed: function toFixed(fractionDigits) {\n    var x = aNumberValue(this, ERROR);\n    var f = toInteger(fractionDigits);\n    var s = '';\n    var m = ZERO;\n    var e, z, j, k;\n    if (f < 0 || f > 20) throw RangeError(ERROR);\n    // eslint-disable-next-line no-self-compare\n    if (x != x) return 'NaN';\n    if (x <= -1e21 || x >= 1e21) return String(x);\n    if (x < 0) {\n      s = '-';\n      x = -x;\n    }\n    if (x > 1e-21) {\n      e = log(x * pow(2, 69, 1)) - 69;\n      z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(0, z);\n        j = f;\n        while (j >= 7) {\n          multiply(1e7, 0);\n          j -= 7;\n        }\n        multiply(pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(1 << 23);\n          j -= 23;\n        }\n        divide(1 << j);\n        multiply(1, 1);\n        divide(2);\n        m = numToString();\n      } else {\n        multiply(0, z);\n        multiply(1 << -e, 0);\n        m = numToString() + repeat.call(ZERO, f);\n      }\n    }\n    if (f > 0) {\n      k = m.length;\n      m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n    } else {\n      m = s + m;\n    } return m;\n  }\n});\n\n},{\"133\":133,\"139\":139,\"34\":34,\"62\":62,\"64\":64}],212:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $fails = _dereq_(64);\nvar aNumberValue = _dereq_(34);\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n  // IE7-\n  return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n  // V8 ~ Android 4.3-\n  $toPrecision.call({});\n})), 'Number', {\n  toPrecision: function toPrecision(precision) {\n    var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n    return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n  }\n});\n\n},{\"34\":34,\"62\":62,\"64\":64}],213:[function(_dereq_,module,exports){\n// 19.1.3.1 Object.assign(target, source)\nvar $export = _dereq_(62);\n\n$export($export.S + $export.F, 'Object', { assign: _dereq_(97) });\n\n},{\"62\":62,\"97\":97}],214:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: _dereq_(98) });\n\n},{\"62\":62,\"98\":98}],215:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !_dereq_(58), 'Object', { defineProperties: _dereq_(100) });\n\n},{\"100\":100,\"58\":58,\"62\":62}],216:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !_dereq_(58), 'Object', { defineProperty: _dereq_(99).f });\n\n},{\"58\":58,\"62\":62,\"99\":99}],217:[function(_dereq_,module,exports){\n// 19.1.2.5 Object.freeze(O)\nvar isObject = _dereq_(81);\nvar meta = _dereq_(94).onFreeze;\n\n_dereq_(109)('freeze', function ($freeze) {\n  return function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n  };\n});\n\n},{\"109\":109,\"81\":81,\"94\":94}],218:[function(_dereq_,module,exports){\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = _dereq_(140);\nvar $getOwnPropertyDescriptor = _dereq_(101).f;\n\n_dereq_(109)('getOwnPropertyDescriptor', function () {\n  return function getOwnPropertyDescriptor(it, key) {\n    return $getOwnPropertyDescriptor(toIObject(it), key);\n  };\n});\n\n},{\"101\":101,\"109\":109,\"140\":140}],219:[function(_dereq_,module,exports){\n// 19.1.2.7 Object.getOwnPropertyNames(O)\n_dereq_(109)('getOwnPropertyNames', function () {\n  return _dereq_(102).f;\n});\n\n},{\"102\":102,\"109\":109}],220:[function(_dereq_,module,exports){\n// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = _dereq_(142);\nvar $getPrototypeOf = _dereq_(105);\n\n_dereq_(109)('getPrototypeOf', function () {\n  return function getPrototypeOf(it) {\n    return $getPrototypeOf(toObject(it));\n  };\n});\n\n},{\"105\":105,\"109\":109,\"142\":142}],221:[function(_dereq_,module,exports){\n// 19.1.2.11 Object.isExtensible(O)\nvar isObject = _dereq_(81);\n\n_dereq_(109)('isExtensible', function ($isExtensible) {\n  return function isExtensible(it) {\n    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n  };\n});\n\n},{\"109\":109,\"81\":81}],222:[function(_dereq_,module,exports){\n// 19.1.2.12 Object.isFrozen(O)\nvar isObject = _dereq_(81);\n\n_dereq_(109)('isFrozen', function ($isFrozen) {\n  return function isFrozen(it) {\n    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n  };\n});\n\n},{\"109\":109,\"81\":81}],223:[function(_dereq_,module,exports){\n// 19.1.2.13 Object.isSealed(O)\nvar isObject = _dereq_(81);\n\n_dereq_(109)('isSealed', function ($isSealed) {\n  return function isSealed(it) {\n    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n  };\n});\n\n},{\"109\":109,\"81\":81}],224:[function(_dereq_,module,exports){\n// 19.1.3.10 Object.is(value1, value2)\nvar $export = _dereq_(62);\n$export($export.S, 'Object', { is: _dereq_(121) });\n\n},{\"121\":121,\"62\":62}],225:[function(_dereq_,module,exports){\n// 19.1.2.14 Object.keys(O)\nvar toObject = _dereq_(142);\nvar $keys = _dereq_(107);\n\n_dereq_(109)('keys', function () {\n  return function keys(it) {\n    return $keys(toObject(it));\n  };\n});\n\n},{\"107\":107,\"109\":109,\"142\":142}],226:[function(_dereq_,module,exports){\n// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = _dereq_(81);\nvar meta = _dereq_(94).onFreeze;\n\n_dereq_(109)('preventExtensions', function ($preventExtensions) {\n  return function preventExtensions(it) {\n    return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n  };\n});\n\n},{\"109\":109,\"81\":81,\"94\":94}],227:[function(_dereq_,module,exports){\n// 19.1.2.17 Object.seal(O)\nvar isObject = _dereq_(81);\nvar meta = _dereq_(94).onFreeze;\n\n_dereq_(109)('seal', function ($seal) {\n  return function seal(it) {\n    return $seal && isObject(it) ? $seal(meta(it)) : it;\n  };\n});\n\n},{\"109\":109,\"81\":81,\"94\":94}],228:[function(_dereq_,module,exports){\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = _dereq_(62);\n$export($export.S, 'Object', { setPrototypeOf: _dereq_(122).set });\n\n},{\"122\":122,\"62\":62}],229:[function(_dereq_,module,exports){\n'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = _dereq_(47);\nvar test = {};\ntest[_dereq_(152)('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n  _dereq_(118)(Object.prototype, 'toString', function toString() {\n    return '[object ' + classof(this) + ']';\n  }, true);\n}\n\n},{\"118\":118,\"152\":152,\"47\":47}],230:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar $parseFloat = _dereq_(112);\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n\n},{\"112\":112,\"62\":62}],231:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar $parseInt = _dereq_(113);\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n\n},{\"113\":113,\"62\":62}],232:[function(_dereq_,module,exports){\n'use strict';\nvar LIBRARY = _dereq_(89);\nvar global = _dereq_(70);\nvar ctx = _dereq_(54);\nvar classof = _dereq_(47);\nvar $export = _dereq_(62);\nvar isObject = _dereq_(81);\nvar aFunction = _dereq_(33);\nvar anInstance = _dereq_(37);\nvar forOf = _dereq_(68);\nvar speciesConstructor = _dereq_(127);\nvar task = _dereq_(136).set;\nvar microtask = _dereq_(95)();\nvar newPromiseCapabilityModule = _dereq_(96);\nvar perform = _dereq_(114);\nvar userAgent = _dereq_(148);\nvar promiseResolve = _dereq_(115);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n  try {\n    // correct subclassing with @@species support\n    var promise = $Promise.resolve(1);\n    var FakePromise = (promise.constructor = {})[_dereq_(152)('species')] = function (exec) {\n      exec(empty, empty);\n    };\n    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    return (isNode || typeof PromiseRejectionEvent == 'function')\n      && promise.then(empty) instanceof FakePromise\n      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n      // we can't detect it synchronously, so just check versions\n      && v8.indexOf('6.6') !== 0\n      && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n    var run = function (reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // may throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\nvar onUnhandled = function (promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({ promise: promise, reason: value });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    } promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\nvar isUnhandled = function (promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n  task.call(global, function () {\n    var handler;\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({ promise: promise, reason: promise._v });\n    }\n  });\n};\nvar $reject = function (value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\nvar $resolve = function (value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = { _w: promise, _d: false }; // wrap\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({ _w: promise, _d: false }, e); // wrap\n  }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n  // 25.4.3.1 Promise(executor)\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    this._c = [];             // <- awaiting reactions\n    this._a = undefined;      // <- checked in isUnhandled reactions\n    this._s = 0;              // <- state\n    this._d = false;          // <- done\n    this._v = undefined;      // <- value\n    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n    this._n = false;          // <- notify\n  };\n  Internal.prototype = _dereq_(117)($Promise.prototype, {\n    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n      this._c.push(reaction);\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    // 25.4.5.1 Promise.prototype.catch(onRejected)\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === $Promise || C === Wrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n_dereq_(124)($Promise, PROMISE);\n_dereq_(123)(PROMISE);\nWrapper = _dereq_(52)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n  // 25.4.4.5 Promise.reject(r)\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    var $$reject = capability.reject;\n    $$reject(r);\n    return capability.promise;\n  }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n  // 25.4.4.6 Promise.resolve(x)\n  resolve: function resolve(x) {\n    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n  }\n});\n$export($export.S + $export.F * !(USE_NATIVE && _dereq_(86)(function (iter) {\n  $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n  // 25.4.4.1 Promise.all(iterable)\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var values = [];\n      var index = 0;\n      var remaining = 1;\n      forOf(iterable, false, function (promise) {\n        var $index = index++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        C.resolve(promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[$index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  },\n  // 25.4.4.4 Promise.race(iterable)\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      forOf(iterable, false, function (promise) {\n        C.resolve(promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  }\n});\n\n},{\"114\":114,\"115\":115,\"117\":117,\"123\":123,\"124\":124,\"127\":127,\"136\":136,\"148\":148,\"152\":152,\"33\":33,\"37\":37,\"47\":47,\"52\":52,\"54\":54,\"62\":62,\"68\":68,\"70\":70,\"81\":81,\"86\":86,\"89\":89,\"95\":95,\"96\":96}],233:[function(_dereq_,module,exports){\n// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = _dereq_(62);\nvar aFunction = _dereq_(33);\nvar anObject = _dereq_(38);\nvar rApply = (_dereq_(70).Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !_dereq_(64)(function () {\n  rApply(function () { /* empty */ });\n}), 'Reflect', {\n  apply: function apply(target, thisArgument, argumentsList) {\n    var T = aFunction(target);\n    var L = anObject(argumentsList);\n    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n  }\n});\n\n},{\"33\":33,\"38\":38,\"62\":62,\"64\":64,\"70\":70}],234:[function(_dereq_,module,exports){\n// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = _dereq_(62);\nvar create = _dereq_(98);\nvar aFunction = _dereq_(33);\nvar anObject = _dereq_(38);\nvar isObject = _dereq_(81);\nvar fails = _dereq_(64);\nvar bind = _dereq_(46);\nvar rConstruct = (_dereq_(70).Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n  rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n  construct: function construct(Target, args /* , newTarget */) {\n    aFunction(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      $args.push.apply($args, args);\n      return new (bind.apply(Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : Object.prototype);\n    var result = Function.apply.call(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n\n},{\"33\":33,\"38\":38,\"46\":46,\"62\":62,\"64\":64,\"70\":70,\"81\":81,\"98\":98}],235:[function(_dereq_,module,exports){\n// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = _dereq_(99);\nvar $export = _dereq_(62);\nvar anObject = _dereq_(38);\nvar toPrimitive = _dereq_(143);\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * _dereq_(64)(function () {\n  // eslint-disable-next-line no-undef\n  Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    propertyKey = toPrimitive(propertyKey, true);\n    anObject(attributes);\n    try {\n      dP.f(target, propertyKey, attributes);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n\n},{\"143\":143,\"38\":38,\"62\":62,\"64\":64,\"99\":99}],236:[function(_dereq_,module,exports){\n// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = _dereq_(62);\nvar gOPD = _dereq_(101).f;\nvar anObject = _dereq_(38);\n\n$export($export.S, 'Reflect', {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    var desc = gOPD(anObject(target), propertyKey);\n    return desc && !desc.configurable ? false : delete target[propertyKey];\n  }\n});\n\n},{\"101\":101,\"38\":38,\"62\":62}],237:[function(_dereq_,module,exports){\n'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = _dereq_(62);\nvar anObject = _dereq_(38);\nvar Enumerate = function (iterated) {\n  this._t = anObject(iterated); // target\n  this._i = 0;                  // next index\n  var keys = this._k = [];      // keys\n  var key;\n  for (key in iterated) keys.push(key);\n};\n_dereq_(84)(Enumerate, 'Object', function () {\n  var that = this;\n  var keys = that._k;\n  var key;\n  do {\n    if (that._i >= keys.length) return { value: undefined, done: true };\n  } while (!((key = keys[that._i++]) in that._t));\n  return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n  enumerate: function enumerate(target) {\n    return new Enumerate(target);\n  }\n});\n\n},{\"38\":38,\"62\":62,\"84\":84}],238:[function(_dereq_,module,exports){\n// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = _dereq_(101);\nvar $export = _dereq_(62);\nvar anObject = _dereq_(38);\n\n$export($export.S, 'Reflect', {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return gOPD.f(anObject(target), propertyKey);\n  }\n});\n\n},{\"101\":101,\"38\":38,\"62\":62}],239:[function(_dereq_,module,exports){\n// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = _dereq_(62);\nvar getProto = _dereq_(105);\nvar anObject = _dereq_(38);\n\n$export($export.S, 'Reflect', {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return getProto(anObject(target));\n  }\n});\n\n},{\"105\":105,\"38\":38,\"62\":62}],240:[function(_dereq_,module,exports){\n// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = _dereq_(101);\nvar getPrototypeOf = _dereq_(105);\nvar has = _dereq_(71);\nvar $export = _dereq_(62);\nvar isObject = _dereq_(81);\nvar anObject = _dereq_(38);\n\nfunction get(target, propertyKey /* , receiver */) {\n  var receiver = arguments.length < 3 ? target : arguments[2];\n  var desc, proto;\n  if (anObject(target) === receiver) return target[propertyKey];\n  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n    ? desc.value\n    : desc.get !== undefined\n      ? desc.get.call(receiver)\n      : undefined;\n  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n},{\"101\":101,\"105\":105,\"38\":38,\"62\":62,\"71\":71,\"81\":81}],241:[function(_dereq_,module,exports){\n// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Reflect', {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n\n},{\"62\":62}],242:[function(_dereq_,module,exports){\n// 26.1.10 Reflect.isExtensible(target)\nvar $export = _dereq_(62);\nvar anObject = _dereq_(38);\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return $isExtensible ? $isExtensible(target) : true;\n  }\n});\n\n},{\"38\":38,\"62\":62}],243:[function(_dereq_,module,exports){\n// 26.1.11 Reflect.ownKeys(target)\nvar $export = _dereq_(62);\n\n$export($export.S, 'Reflect', { ownKeys: _dereq_(111) });\n\n},{\"111\":111,\"62\":62}],244:[function(_dereq_,module,exports){\n// 26.1.12 Reflect.preventExtensions(target)\nvar $export = _dereq_(62);\nvar anObject = _dereq_(38);\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      if ($preventExtensions) $preventExtensions(target);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n\n},{\"38\":38,\"62\":62}],245:[function(_dereq_,module,exports){\n// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = _dereq_(62);\nvar setProto = _dereq_(122);\n\nif (setProto) $export($export.S, 'Reflect', {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    setProto.check(target, proto);\n    try {\n      setProto.set(target, proto);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n\n},{\"122\":122,\"62\":62}],246:[function(_dereq_,module,exports){\n// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = _dereq_(99);\nvar gOPD = _dereq_(101);\nvar getPrototypeOf = _dereq_(105);\nvar has = _dereq_(71);\nvar $export = _dereq_(62);\nvar createDesc = _dereq_(116);\nvar anObject = _dereq_(38);\nvar isObject = _dereq_(81);\n\nfunction set(target, propertyKey, V /* , receiver */) {\n  var receiver = arguments.length < 4 ? target : arguments[3];\n  var ownDesc = gOPD.f(anObject(target), propertyKey);\n  var existingDescriptor, proto;\n  if (!ownDesc) {\n    if (isObject(proto = getPrototypeOf(target))) {\n      return set(proto, propertyKey, V, receiver);\n    }\n    ownDesc = createDesc(0);\n  }\n  if (has(ownDesc, 'value')) {\n    if (ownDesc.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n      existingDescriptor.value = V;\n      dP.f(receiver, propertyKey, existingDescriptor);\n    } else dP.f(receiver, propertyKey, createDesc(0, V));\n    return true;\n  }\n  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n},{\"101\":101,\"105\":105,\"116\":116,\"38\":38,\"62\":62,\"71\":71,\"81\":81,\"99\":99}],247:[function(_dereq_,module,exports){\nvar global = _dereq_(70);\nvar inheritIfRequired = _dereq_(75);\nvar dP = _dereq_(99).f;\nvar gOPN = _dereq_(103).f;\nvar isRegExp = _dereq_(82);\nvar $flags = _dereq_(66);\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (_dereq_(58) && (!CORRECT_NEW || _dereq_(64)(function () {\n  re2[_dereq_(152)('match')] = false;\n  // RegExp constructor can alter flags and IsRegExp works correct with @@match\n  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n  $RegExp = function RegExp(p, f) {\n    var tiRE = this instanceof $RegExp;\n    var piRE = isRegExp(p);\n    var fiU = f === undefined;\n    return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n      : inheritIfRequired(CORRECT_NEW\n        ? new Base(piRE && !fiU ? p.source : p, f)\n        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n      , tiRE ? this : proto, $RegExp);\n  };\n  var proxy = function (key) {\n    key in $RegExp || dP($RegExp, key, {\n      configurable: true,\n      get: function () { return Base[key]; },\n      set: function (it) { Base[key] = it; }\n    });\n  };\n  for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n  proto.constructor = $RegExp;\n  $RegExp.prototype = proto;\n  _dereq_(118)(global, 'RegExp', $RegExp);\n}\n\n_dereq_(123)('RegExp');\n\n},{\"103\":103,\"118\":118,\"123\":123,\"152\":152,\"58\":58,\"64\":64,\"66\":66,\"70\":70,\"75\":75,\"82\":82,\"99\":99}],248:[function(_dereq_,module,exports){\n'use strict';\nvar regexpExec = _dereq_(120);\n_dereq_(62)({\n  target: 'RegExp',\n  proto: true,\n  forced: regexpExec !== /./.exec\n}, {\n  exec: regexpExec\n});\n\n},{\"120\":120,\"62\":62}],249:[function(_dereq_,module,exports){\n// 21.2.5.3 get RegExp.prototype.flags()\nif (_dereq_(58) && /./g.flags != 'g') _dereq_(99).f(RegExp.prototype, 'flags', {\n  configurable: true,\n  get: _dereq_(66)\n});\n\n},{\"58\":58,\"66\":66,\"99\":99}],250:[function(_dereq_,module,exports){\n'use strict';\n\nvar anObject = _dereq_(38);\nvar toLength = _dereq_(141);\nvar advanceStringIndex = _dereq_(36);\nvar regExpExec = _dereq_(119);\n\n// @@match logic\n_dereq_(65)('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = defined(this);\n      var fn = regexp == undefined ? undefined : regexp[MATCH];\n      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative($match, regexp, this);\n      if (res.done) return res.value;\n      var rx = anObject(regexp);\n      var S = String(this);\n      if (!rx.global) return regExpExec(rx, S);\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n\n},{\"119\":119,\"141\":141,\"36\":36,\"38\":38,\"65\":65}],251:[function(_dereq_,module,exports){\n'use strict';\n\nvar anObject = _dereq_(38);\nvar toObject = _dereq_(142);\nvar toLength = _dereq_(141);\nvar toInteger = _dereq_(139);\nvar advanceStringIndex = _dereq_(36);\nvar regExpExec = _dereq_(119);\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n_dereq_(65)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = defined(this);\n      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return fn !== undefined\n        ? fn.call(searchValue, O, replaceValue)\n        : $replace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      var res = maybeCallNative($replace, regexp, this, replaceValue);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n        results.push(result);\n        if (!global) break;\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n    // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return $replace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n\n},{\"119\":119,\"139\":139,\"141\":141,\"142\":142,\"36\":36,\"38\":38,\"65\":65}],252:[function(_dereq_,module,exports){\n'use strict';\n\nvar anObject = _dereq_(38);\nvar sameValue = _dereq_(121);\nvar regExpExec = _dereq_(119);\n\n// @@search logic\n_dereq_(65)('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = defined(this);\n      var fn = regexp == undefined ? undefined : regexp[SEARCH];\n      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n    function (regexp) {\n      var res = maybeCallNative($search, regexp, this);\n      if (res.done) return res.value;\n      var rx = anObject(regexp);\n      var S = String(this);\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n\n},{\"119\":119,\"121\":121,\"38\":38,\"65\":65}],253:[function(_dereq_,module,exports){\n'use strict';\n\nvar isRegExp = _dereq_(82);\nvar anObject = _dereq_(38);\nvar speciesConstructor = _dereq_(127);\nvar advanceStringIndex = _dereq_(36);\nvar toLength = _dereq_(141);\nvar callRegExpExec = _dereq_(119);\nvar regexpExec = _dereq_(120);\nvar fails = _dereq_(64);\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\n_dereq_(65)('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n    ''[$SPLIT](/.?/)[LENGTH]\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(this);\n      if (separator === undefined && limit === 0) return [];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) return $split.call(string, separator, limit);\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy[LAST_INDEX];\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n          lastLength = match[0][LENGTH];\n          lastLastIndex = lastIndex;\n          if (output[LENGTH] >= splitLimit) break;\n        }\n        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string[LENGTH]) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n    };\n  // Chakra, V8\n  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n    };\n  } else {\n    internalSplit = $split;\n  }\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = defined(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                  (rx.multiline ? 'm' : '') +\n                  (rx.unicode ? 'u' : '') +\n                  (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n});\n\n},{\"119\":119,\"120\":120,\"127\":127,\"141\":141,\"36\":36,\"38\":38,\"64\":64,\"65\":65,\"82\":82}],254:[function(_dereq_,module,exports){\n'use strict';\n_dereq_(249);\nvar anObject = _dereq_(38);\nvar $flags = _dereq_(66);\nvar DESCRIPTORS = _dereq_(58);\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n  _dereq_(118)(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (_dereq_(64)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n  define(function toString() {\n    var R = anObject(this);\n    return '/'.concat(R.source, '/',\n      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n  });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n  define(function toString() {\n    return $toString.call(this);\n  });\n}\n\n},{\"118\":118,\"249\":249,\"38\":38,\"58\":58,\"64\":64,\"66\":66}],255:[function(_dereq_,module,exports){\n'use strict';\nvar strong = _dereq_(49);\nvar validate = _dereq_(149);\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = _dereq_(51)(SET, function (get) {\n  return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.2.3.1 Set.prototype.add(value)\n  add: function add(value) {\n    return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n  }\n}, strong);\n\n},{\"149\":149,\"49\":49,\"51\":51}],256:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.2 String.prototype.anchor(name)\n_dereq_(131)('anchor', function (createHTML) {\n  return function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  };\n});\n\n},{\"131\":131}],257:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.3 String.prototype.big()\n_dereq_(131)('big', function (createHTML) {\n  return function big() {\n    return createHTML(this, 'big', '', '');\n  };\n});\n\n},{\"131\":131}],258:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.4 String.prototype.blink()\n_dereq_(131)('blink', function (createHTML) {\n  return function blink() {\n    return createHTML(this, 'blink', '', '');\n  };\n});\n\n},{\"131\":131}],259:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.5 String.prototype.bold()\n_dereq_(131)('bold', function (createHTML) {\n  return function bold() {\n    return createHTML(this, 'b', '', '');\n  };\n});\n\n},{\"131\":131}],260:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $at = _dereq_(129)(false);\n$export($export.P, 'String', {\n  // 21.1.3.3 String.prototype.codePointAt(pos)\n  codePointAt: function codePointAt(pos) {\n    return $at(this, pos);\n  }\n});\n\n},{\"129\":129,\"62\":62}],261:[function(_dereq_,module,exports){\n// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = _dereq_(62);\nvar toLength = _dereq_(141);\nvar context = _dereq_(130);\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * _dereq_(63)(ENDS_WITH), 'String', {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\n    var that = context(this, searchString, ENDS_WITH);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n    var search = String(searchString);\n    return $endsWith\n      ? $endsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n\n},{\"130\":130,\"141\":141,\"62\":62,\"63\":63}],262:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.6 String.prototype.fixed()\n_dereq_(131)('fixed', function (createHTML) {\n  return function fixed() {\n    return createHTML(this, 'tt', '', '');\n  };\n});\n\n},{\"131\":131}],263:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\n_dereq_(131)('fontcolor', function (createHTML) {\n  return function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  };\n});\n\n},{\"131\":131}],264:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\n_dereq_(131)('fontsize', function (createHTML) {\n  return function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  };\n});\n\n},{\"131\":131}],265:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar toAbsoluteIndex = _dereq_(137);\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  // 21.1.2.2 String.fromCodePoint(...codePoints)\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n      );\n    } return res.join('');\n  }\n});\n\n},{\"137\":137,\"62\":62}],266:[function(_dereq_,module,exports){\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = _dereq_(62);\nvar context = _dereq_(130);\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * _dereq_(63)(INCLUDES), 'String', {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~context(this, searchString, INCLUDES)\n      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n},{\"130\":130,\"62\":62,\"63\":63}],267:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.9 String.prototype.italics()\n_dereq_(131)('italics', function (createHTML) {\n  return function italics() {\n    return createHTML(this, 'i', '', '');\n  };\n});\n\n},{\"131\":131}],268:[function(_dereq_,module,exports){\n'use strict';\nvar $at = _dereq_(129)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n_dereq_(85)(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n},{\"129\":129,\"85\":85}],269:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.10 String.prototype.link(url)\n_dereq_(131)('link', function (createHTML) {\n  return function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  };\n});\n\n},{\"131\":131}],270:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar toIObject = _dereq_(140);\nvar toLength = _dereq_(141);\n\n$export($export.S, 'String', {\n  // 21.1.2.4 String.raw(callSite, ...substitutions)\n  raw: function raw(callSite) {\n    var tpl = toIObject(callSite.raw);\n    var len = toLength(tpl.length);\n    var aLen = arguments.length;\n    var res = [];\n    var i = 0;\n    while (len > i) {\n      res.push(String(tpl[i++]));\n      if (i < aLen) res.push(String(arguments[i]));\n    } return res.join('');\n  }\n});\n\n},{\"140\":140,\"141\":141,\"62\":62}],271:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\n\n$export($export.P, 'String', {\n  // 21.1.3.13 String.prototype.repeat(count)\n  repeat: _dereq_(133)\n});\n\n},{\"133\":133,\"62\":62}],272:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.11 String.prototype.small()\n_dereq_(131)('small', function (createHTML) {\n  return function small() {\n    return createHTML(this, 'small', '', '');\n  };\n});\n\n},{\"131\":131}],273:[function(_dereq_,module,exports){\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = _dereq_(62);\nvar toLength = _dereq_(141);\nvar context = _dereq_(130);\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * _dereq_(63)(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n\n},{\"130\":130,\"141\":141,\"62\":62,\"63\":63}],274:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.12 String.prototype.strike()\n_dereq_(131)('strike', function (createHTML) {\n  return function strike() {\n    return createHTML(this, 'strike', '', '');\n  };\n});\n\n},{\"131\":131}],275:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.13 String.prototype.sub()\n_dereq_(131)('sub', function (createHTML) {\n  return function sub() {\n    return createHTML(this, 'sub', '', '');\n  };\n});\n\n},{\"131\":131}],276:[function(_dereq_,module,exports){\n'use strict';\n// B.2.3.14 String.prototype.sup()\n_dereq_(131)('sup', function (createHTML) {\n  return function sup() {\n    return createHTML(this, 'sup', '', '');\n  };\n});\n\n},{\"131\":131}],277:[function(_dereq_,module,exports){\n'use strict';\n// 21.1.3.25 String.prototype.trim()\n_dereq_(134)('trim', function ($trim) {\n  return function trim() {\n    return $trim(this, 3);\n  };\n});\n\n},{\"134\":134}],278:[function(_dereq_,module,exports){\n'use strict';\n// ECMAScript 6 symbols shim\nvar global = _dereq_(70);\nvar has = _dereq_(71);\nvar DESCRIPTORS = _dereq_(58);\nvar $export = _dereq_(62);\nvar redefine = _dereq_(118);\nvar META = _dereq_(94).KEY;\nvar $fails = _dereq_(64);\nvar shared = _dereq_(126);\nvar setToStringTag = _dereq_(124);\nvar uid = _dereq_(147);\nvar wks = _dereq_(152);\nvar wksExt = _dereq_(151);\nvar wksDefine = _dereq_(150);\nvar enumKeys = _dereq_(61);\nvar isArray = _dereq_(79);\nvar anObject = _dereq_(38);\nvar isObject = _dereq_(81);\nvar toObject = _dereq_(142);\nvar toIObject = _dereq_(140);\nvar toPrimitive = _dereq_(143);\nvar createDesc = _dereq_(116);\nvar _create = _dereq_(98);\nvar gOPNExt = _dereq_(102);\nvar $GOPD = _dereq_(101);\nvar $GOPS = _dereq_(104);\nvar $DP = _dereq_(99);\nvar $keys = _dereq_(107);\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  _dereq_(103).f = gOPNExt.f = $getOwnPropertyNames;\n  _dereq_(108).f = $propertyIsEnumerable;\n  $GOPS.f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !_dereq_(89)) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n  getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n    return $GOPS.f(toObject(it));\n  }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || _dereq_(72)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n},{\"101\":101,\"102\":102,\"103\":103,\"104\":104,\"107\":107,\"108\":108,\"116\":116,\"118\":118,\"124\":124,\"126\":126,\"140\":140,\"142\":142,\"143\":143,\"147\":147,\"150\":150,\"151\":151,\"152\":152,\"38\":38,\"58\":58,\"61\":61,\"62\":62,\"64\":64,\"70\":70,\"71\":71,\"72\":72,\"79\":79,\"81\":81,\"89\":89,\"94\":94,\"98\":98,\"99\":99}],279:[function(_dereq_,module,exports){\n'use strict';\nvar $export = _dereq_(62);\nvar $typed = _dereq_(146);\nvar buffer = _dereq_(145);\nvar anObject = _dereq_(38);\nvar toAbsoluteIndex = _dereq_(137);\nvar toLength = _dereq_(141);\nvar isObject = _dereq_(81);\nvar ArrayBuffer = _dereq_(70).ArrayBuffer;\nvar speciesConstructor = _dereq_(127);\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n  // 24.1.3.1 ArrayBuffer.isView(arg)\n  isView: function isView(it) {\n    return $isView && $isView(it) || isObject(it) && VIEW in it;\n  }\n});\n\n$export($export.P + $export.U + $export.F * _dereq_(64)(function () {\n  return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n  // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n  slice: function slice(start, end) {\n    if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n    var len = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, len);\n    var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n    var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n    var viewS = new $DataView(this);\n    var viewT = new $DataView(result);\n    var index = 0;\n    while (first < fin) {\n      viewT.setUint8(index++, viewS.getUint8(first++));\n    } return result;\n  }\n});\n\n_dereq_(123)(ARRAY_BUFFER);\n\n},{\"123\":123,\"127\":127,\"137\":137,\"141\":141,\"145\":145,\"146\":146,\"38\":38,\"62\":62,\"64\":64,\"70\":70,\"81\":81}],280:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\n$export($export.G + $export.W + $export.F * !_dereq_(146).ABV, {\n  DataView: _dereq_(145).DataView\n});\n\n},{\"145\":145,\"146\":146,\"62\":62}],281:[function(_dereq_,module,exports){\n_dereq_(144)('Float32', 4, function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],282:[function(_dereq_,module,exports){\n_dereq_(144)('Float64', 8, function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],283:[function(_dereq_,module,exports){\n_dereq_(144)('Int16', 2, function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],284:[function(_dereq_,module,exports){\n_dereq_(144)('Int32', 4, function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],285:[function(_dereq_,module,exports){\n_dereq_(144)('Int8', 1, function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],286:[function(_dereq_,module,exports){\n_dereq_(144)('Uint16', 2, function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],287:[function(_dereq_,module,exports){\n_dereq_(144)('Uint32', 4, function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],288:[function(_dereq_,module,exports){\n_dereq_(144)('Uint8', 1, function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n\n},{\"144\":144}],289:[function(_dereq_,module,exports){\n_dereq_(144)('Uint8', 1, function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n\n},{\"144\":144}],290:[function(_dereq_,module,exports){\n'use strict';\nvar global = _dereq_(70);\nvar each = _dereq_(42)(0);\nvar redefine = _dereq_(118);\nvar meta = _dereq_(94);\nvar assign = _dereq_(97);\nvar weak = _dereq_(50);\nvar isObject = _dereq_(81);\nvar validate = _dereq_(149);\nvar NATIVE_WEAK_MAP = _dereq_(149);\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n  return function WeakMap() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n};\n\nvar methods = {\n  // 23.3.3.3 WeakMap.prototype.get(key)\n  get: function get(key) {\n    if (isObject(key)) {\n      var data = getWeak(key);\n      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n      return data ? data[this._i] : undefined;\n    }\n  },\n  // 23.3.3.5 WeakMap.prototype.set(key, value)\n  set: function set(key, value) {\n    return weak.def(validate(this, WEAK_MAP), key, value);\n  }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = _dereq_(51)(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n  assign(InternalMap.prototype, methods);\n  meta.NEED = true;\n  each(['delete', 'has', 'get', 'set'], function (key) {\n    var proto = $WeakMap.prototype;\n    var method = proto[key];\n    redefine(proto, key, function (a, b) {\n      // store frozen objects on internal weakmap shim\n      if (isObject(a) && !isExtensible(a)) {\n        if (!this._f) this._f = new InternalMap();\n        var result = this._f[key](a, b);\n        return key == 'set' ? this : result;\n      // store all the rest on native weakmap\n      } return method.call(this, a, b);\n    });\n  });\n}\n\n},{\"118\":118,\"149\":149,\"42\":42,\"50\":50,\"51\":51,\"70\":70,\"81\":81,\"94\":94,\"97\":97}],291:[function(_dereq_,module,exports){\n'use strict';\nvar weak = _dereq_(50);\nvar validate = _dereq_(149);\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\n_dereq_(51)(WEAK_SET, function (get) {\n  return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.4.3.1 WeakSet.prototype.add(value)\n  add: function add(value) {\n    return weak.def(validate(this, WEAK_SET), value, true);\n  }\n}, weak, false, true);\n\n},{\"149\":149,\"50\":50,\"51\":51}],292:[function(_dereq_,module,exports){\n'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = _dereq_(62);\nvar flattenIntoArray = _dereq_(67);\nvar toObject = _dereq_(142);\nvar toLength = _dereq_(141);\nvar aFunction = _dereq_(33);\nvar arraySpeciesCreate = _dereq_(45);\n\n$export($export.P, 'Array', {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen, A;\n    aFunction(callbackfn);\n    sourceLen = toLength(O.length);\n    A = arraySpeciesCreate(O, 0);\n    flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n    return A;\n  }\n});\n\n_dereq_(35)('flatMap');\n\n},{\"141\":141,\"142\":142,\"33\":33,\"35\":35,\"45\":45,\"62\":62,\"67\":67}],293:[function(_dereq_,module,exports){\n'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = _dereq_(62);\nvar $includes = _dereq_(41)(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n_dereq_(35)('includes');\n\n},{\"35\":35,\"41\":41,\"62\":62}],294:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = _dereq_(62);\nvar $entries = _dereq_(110)(true);\n\n$export($export.S, 'Object', {\n  entries: function entries(it) {\n    return $entries(it);\n  }\n});\n\n},{\"110\":110,\"62\":62}],295:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = _dereq_(62);\nvar ownKeys = _dereq_(111);\nvar toIObject = _dereq_(140);\nvar gOPD = _dereq_(101);\nvar createProperty = _dereq_(53);\n\n$export($export.S, 'Object', {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIObject(object);\n    var getDesc = gOPD.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var i = 0;\n    var key, desc;\n    while (keys.length > i) {\n      desc = getDesc(O, key = keys[i++]);\n      if (desc !== undefined) createProperty(result, key, desc);\n    }\n    return result;\n  }\n});\n\n},{\"101\":101,\"111\":111,\"140\":140,\"53\":53,\"62\":62}],296:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = _dereq_(62);\nvar $values = _dereq_(110)(false);\n\n$export($export.S, 'Object', {\n  values: function values(it) {\n    return $values(it);\n  }\n});\n\n},{\"110\":110,\"62\":62}],297:[function(_dereq_,module,exports){\n// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = _dereq_(62);\nvar core = _dereq_(52);\nvar global = _dereq_(70);\nvar speciesConstructor = _dereq_(127);\nvar promiseResolve = _dereq_(115);\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n  var C = speciesConstructor(this, core.Promise || global.Promise);\n  var isFunction = typeof onFinally == 'function';\n  return this.then(\n    isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () { return x; });\n    } : onFinally,\n    isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () { throw e; });\n    } : onFinally\n  );\n} });\n\n},{\"115\":115,\"127\":127,\"52\":52,\"62\":62,\"70\":70}],298:[function(_dereq_,module,exports){\n'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = _dereq_(62);\nvar $pad = _dereq_(132);\nvar userAgent = _dereq_(148);\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n  }\n});\n\n},{\"132\":132,\"148\":148,\"62\":62}],299:[function(_dereq_,module,exports){\n'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = _dereq_(62);\nvar $pad = _dereq_(132);\nvar userAgent = _dereq_(148);\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n  }\n});\n\n},{\"132\":132,\"148\":148,\"62\":62}],300:[function(_dereq_,module,exports){\n'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n_dereq_(134)('trimLeft', function ($trim) {\n  return function trimLeft() {\n    return $trim(this, 1);\n  };\n}, 'trimStart');\n\n},{\"134\":134}],301:[function(_dereq_,module,exports){\n'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\n_dereq_(134)('trimRight', function ($trim) {\n  return function trimRight() {\n    return $trim(this, 2);\n  };\n}, 'trimEnd');\n\n},{\"134\":134}],302:[function(_dereq_,module,exports){\n_dereq_(150)('asyncIterator');\n\n},{\"150\":150}],303:[function(_dereq_,module,exports){\nvar $iterators = _dereq_(164);\nvar getKeys = _dereq_(107);\nvar redefine = _dereq_(118);\nvar global = _dereq_(70);\nvar hide = _dereq_(72);\nvar Iterators = _dereq_(88);\nvar wks = _dereq_(152);\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n  CSSRuleList: true, // TODO: Not spec compliant, should be false.\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true, // TODO: Not spec compliant, should be false.\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true, // TODO: Not spec compliant, should be false.\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n  if (proto) {\n    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n    Iterators[NAME] = ArrayValues;\n    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n  }\n}\n\n},{\"107\":107,\"118\":118,\"152\":152,\"164\":164,\"70\":70,\"72\":72,\"88\":88}],304:[function(_dereq_,module,exports){\nvar $export = _dereq_(62);\nvar $task = _dereq_(136);\n$export($export.G + $export.B, {\n  setImmediate: $task.set,\n  clearImmediate: $task.clear\n});\n\n},{\"136\":136,\"62\":62}],305:[function(_dereq_,module,exports){\n// ie9- setTimeout & setInterval additional parameters fix\nvar global = _dereq_(70);\nvar $export = _dereq_(62);\nvar userAgent = _dereq_(148);\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n  return function (fn, time /* , ...args */) {\n    var boundArgs = arguments.length > 2;\n    var args = boundArgs ? slice.call(arguments, 2) : false;\n    return set(boundArgs ? function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n    } : fn, time);\n  };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n  setTimeout: wrap(global.setTimeout),\n  setInterval: wrap(global.setInterval)\n});\n\n},{\"148\":148,\"62\":62,\"70\":70}],306:[function(_dereq_,module,exports){\n_dereq_(305);\n_dereq_(304);\n_dereq_(303);\nmodule.exports = _dereq_(52);\n\n},{\"303\":303,\"304\":304,\"305\":305,\"52\":52}],307:[function(_dereq_,module,exports){\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator, PromiseImpl) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return PromiseImpl.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return PromiseImpl.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new PromiseImpl(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n    if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList),\n      PromiseImpl\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n\n},{}]},{},[1]);\n"
  },
  {
    "path": "public/vendor/gutenberg/wp-a11y.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"a11y\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 455);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 255:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"domReady\"]; }());\n\n/***/ }),\n\n/***/ 455:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"setup\", function() { return /* binding */ setup; });\n__webpack_require__.d(__webpack_exports__, \"speak\", function() { return /* binding */ speak; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"domReady\"]}\nvar external_this_wp_domReady_ = __webpack_require__(255);\nvar external_this_wp_domReady_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_domReady_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/add-intro-text.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Build the explanatory text to be placed before the aria live regions.\n *\n * This text is initially hidden from assistive technologies by using a `hidden`\n * HTML attribute which is then removed once a message fills the aria-live regions.\n *\n * @return {HTMLParagraphElement} The explanatory text HTML element.\n */\n\nfunction addIntroText() {\n  var introText = document.createElement('p');\n  introText.id = 'a11y-speak-intro-text';\n  introText.className = 'a11y-speak-intro-text';\n  introText.textContent = Object(external_this_wp_i18n_[\"__\"])('Notifications');\n  introText.setAttribute('style', 'position: absolute;' + 'margin: -1px;' + 'padding: 0;' + 'height: 1px;' + 'width: 1px;' + 'overflow: hidden;' + 'clip: rect(1px, 1px, 1px, 1px);' + '-webkit-clip-path: inset(50%);' + 'clip-path: inset(50%);' + 'border: 0;' + 'word-wrap: normal !important;');\n  introText.setAttribute('hidden', 'hidden');\n  var _document = document,\n      body = _document.body;\n\n  if (body) {\n    body.appendChild(introText);\n  }\n\n  return introText;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/add-container.js\n/**\n * Build the live regions markup.\n *\n * @param {string} [ariaLive] Value for the 'aria-live' attribute; default: 'polite'.\n *\n * @return {HTMLDivElement} The ARIA live region HTML element.\n */\nfunction addContainer() {\n  var ariaLive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'polite';\n  var container = document.createElement('div');\n  container.id = \"a11y-speak-\".concat(ariaLive);\n  container.className = 'a11y-speak-region';\n  container.setAttribute('style', 'position: absolute;' + 'margin: -1px;' + 'padding: 0;' + 'height: 1px;' + 'width: 1px;' + 'overflow: hidden;' + 'clip: rect(1px, 1px, 1px, 1px);' + '-webkit-clip-path: inset(50%);' + 'clip-path: inset(50%);' + 'border: 0;' + 'word-wrap: normal !important;');\n  container.setAttribute('aria-live', ariaLive);\n  container.setAttribute('aria-relevant', 'additions text');\n  container.setAttribute('aria-atomic', 'true');\n  var _document = document,\n      body = _document.body;\n\n  if (body) {\n    body.appendChild(container);\n  }\n\n  return container;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/clear.js\n/**\n * Clears the a11y-speak-region elements and hides the explanatory text.\n */\nfunction clear() {\n  var regions = document.getElementsByClassName('a11y-speak-region');\n  var introText = document.getElementById('a11y-speak-intro-text');\n\n  for (var i = 0; i < regions.length; i++) {\n    regions[i].textContent = '';\n  } // Make sure the explanatory text is hidden from assistive technologies.\n\n\n  if (introText) {\n    introText.setAttribute('hidden', 'hidden');\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/filter-message.js\nvar previousMessage = '';\n/**\n * Filter the message to be announced to the screenreader.\n *\n * @param {string} message The message to be announced.\n *\n * @return {string} The filtered message.\n */\n\nfunction filterMessage(message) {\n  /*\n   * Strip HTML tags (if any) from the message string. Ideally, messages should\n   * be simple strings, carefully crafted for specific use with A11ySpeak.\n   * When re-using already existing strings this will ensure simple HTML to be\n   * stripped out and replaced with a space. Browsers will collapse multiple\n   * spaces natively.\n   */\n  message = message.replace(/<[^<>]+>/g, ' ');\n  /*\n   * Safari + VoiceOver don't announce repeated, identical strings. We use\n   * a `no-break space` to force them to think identical strings are different.\n   */\n\n  if (previousMessage === message) {\n    message += \"\\xA0\";\n  }\n\n  previousMessage = message;\n  return message;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/a11y/build-module/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Create the live regions.\n */\n\nfunction setup() {\n  var introText = document.getElementById('a11y-speak-intro-text');\n  var containerAssertive = document.getElementById('a11y-speak-assertive');\n  var containerPolite = document.getElementById('a11y-speak-polite');\n\n  if (introText === null) {\n    addIntroText();\n  }\n\n  if (containerAssertive === null) {\n    addContainer('assertive');\n  }\n\n  if (containerPolite === null) {\n    addContainer('polite');\n  }\n}\n/**\n * Run setup on domReady.\n */\n\nexternal_this_wp_domReady_default()(setup);\n/**\n * Allows you to easily announce dynamic interface updates to screen readers using ARIA live regions.\n * This module is inspired by the `speak` function in `wp-a11y.js`.\n *\n * @param {string} message  The message to be announced by assistive technologies.\n * @param {string} [ariaLive] The politeness level for aria-live; default: 'polite'.\n *\n * @example\n * ```js\n * import { speak } from '@wordpress/a11y';\n *\n * // For polite messages that shouldn't interrupt what screen readers are currently announcing.\n * speak( 'The message you want to send to the ARIA live region' );\n *\n * // For assertive messages that should interrupt what screen readers are currently announcing.\n * speak( 'The message you want to send to the ARIA live region', 'assertive' );\n * ```\n */\n\nfunction speak(message, ariaLive) {\n  /*\n   * Clear previous messages to allow repeated strings being read out and hide\n   * the explanatory text from assistive technologies.\n   */\n  clear();\n  message = filterMessage(message);\n  var introText = document.getElementById('a11y-speak-intro-text');\n  var containerAssertive = document.getElementById('a11y-speak-assertive');\n  var containerPolite = document.getElementById('a11y-speak-polite');\n\n  if (containerAssertive && ariaLive === 'assertive') {\n    containerAssertive.textContent = message;\n  } else if (containerPolite) {\n    containerPolite.textContent = message;\n  }\n  /*\n   * Make the explanatory text available to assistive technologies by removing\n   * the 'hidden' HTML attribute.\n   */\n\n\n  if (introText) {\n    introText.removeAttribute('hidden');\n  }\n}\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-annotations.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"annotations\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 444);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 444:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetAnnotationsForBlock\", function() { return __experimentalGetAnnotationsForBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetAllAnnotationsForBlock\", function() { return __experimentalGetAllAnnotationsForBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetAnnotationsForRichText\", function() { return __experimentalGetAnnotationsForRichText; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetAnnotations\", function() { return __experimentalGetAnnotations; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/annotations/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"__experimentalAddAnnotation\", function() { return __experimentalAddAnnotation; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalRemoveAnnotation\", function() { return __experimentalRemoveAnnotation; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalUpdateAnnotationRange\", function() { return __experimentalUpdateAnnotationRange; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalRemoveAnnotationsBySource\", function() { return __experimentalRemoveAnnotationsBySource; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/reducer.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Filters an array based on the predicate, but keeps the reference the same if\n * the array hasn't changed.\n *\n * @param {Array}    collection The collection to filter.\n * @param {Function} predicate  Function that determines if the item should stay\n *                              in the array.\n * @return {Array} Filtered array.\n */\n\nfunction filterWithReference(collection, predicate) {\n  var filteredCollection = collection.filter(predicate);\n  return collection.length === filteredCollection.length ? collection : filteredCollection;\n}\n/**\n * Verifies whether the given annotations is a valid annotation.\n *\n * @param {Object} annotation The annotation to verify.\n * @return {boolean} Whether the given annotation is valid.\n */\n\n\nfunction isValidAnnotationRange(annotation) {\n  return Object(external_this_lodash_[\"isNumber\"])(annotation.start) && Object(external_this_lodash_[\"isNumber\"])(annotation.end) && annotation.start <= annotation.end;\n}\n/**\n * Reducer managing annotations.\n *\n * @param {Object} state  The annotations currently shown in the editor.\n * @param {Object} action Dispatched action.\n *\n * @return {Array} Updated state.\n */\n\n\nfunction reducer_annotations() {\n  var _state$blockClientId;\n\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ANNOTATION_ADD':\n      var blockClientId = action.blockClientId;\n      var newAnnotation = {\n        id: action.id,\n        blockClientId: blockClientId,\n        richTextIdentifier: action.richTextIdentifier,\n        source: action.source,\n        selector: action.selector,\n        range: action.range\n      };\n\n      if (newAnnotation.selector === 'range' && !isValidAnnotationRange(newAnnotation.range)) {\n        return state;\n      }\n\n      var previousAnnotationsForBlock = (_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : [];\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, blockClientId, [].concat(Object(toConsumableArray[\"a\" /* default */])(previousAnnotationsForBlock), [newAnnotation])));\n\n    case 'ANNOTATION_REMOVE':\n      return Object(external_this_lodash_[\"mapValues\"])(state, function (annotationsForBlock) {\n        return filterWithReference(annotationsForBlock, function (annotation) {\n          return annotation.id !== action.annotationId;\n        });\n      });\n\n    case 'ANNOTATION_UPDATE_RANGE':\n      return Object(external_this_lodash_[\"mapValues\"])(state, function (annotationsForBlock) {\n        var hasChangedRange = false;\n        var newAnnotations = annotationsForBlock.map(function (annotation) {\n          if (annotation.id === action.annotationId) {\n            hasChangedRange = true;\n            return _objectSpread({}, annotation, {\n              range: {\n                start: action.start,\n                end: action.end\n              }\n            });\n          }\n\n          return annotation;\n        });\n        return hasChangedRange ? newAnnotations : annotationsForBlock;\n      });\n\n    case 'ANNOTATION_REMOVE_SOURCE':\n      return Object(external_this_lodash_[\"mapValues\"])(state, function (annotationsForBlock) {\n        return filterWithReference(annotationsForBlock, function (annotation) {\n          return annotation.source !== action.source;\n        });\n      });\n  }\n\n  return state;\n}\n/* harmony default export */ var reducer = (reducer_annotations);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/selectors.js\n\n\n\nfunction selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n *\n * @type {Array}\n */\n\nvar EMPTY_ARRAY = [];\n/**\n * Returns the annotations for a specific client ID.\n *\n * @param {Object} state Editor state.\n * @param {string} clientId The ID of the block to get the annotations for.\n *\n * @return {Array} The annotations applicable to this block.\n */\n\nvar __experimentalGetAnnotationsForBlock = Object(rememo[\"a\" /* default */])(function (state, blockClientId) {\n  var _state$blockClientId;\n\n  return ((_state$blockClientId = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId !== void 0 ? _state$blockClientId : []).filter(function (annotation) {\n    return annotation.selector === 'block';\n  });\n}, function (state, blockClientId) {\n  var _state$blockClientId2;\n\n  return [(_state$blockClientId2 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId2 !== void 0 ? _state$blockClientId2 : EMPTY_ARRAY];\n});\nfunction __experimentalGetAllAnnotationsForBlock(state, blockClientId) {\n  var _state$blockClientId3;\n\n  return (_state$blockClientId3 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId3 !== void 0 ? _state$blockClientId3 : EMPTY_ARRAY;\n}\n/**\n * Returns the annotations that apply to the given RichText instance.\n *\n * Both a blockClientId and a richTextIdentifier are required. This is because\n * a block might have multiple `RichText` components. This does mean that every\n * block needs to implement annotations itself.\n *\n * @param {Object} state              Editor state.\n * @param {string} blockClientId      The client ID for the block.\n * @param {string} richTextIdentifier Unique identifier that identifies the given RichText.\n * @return {Array} All the annotations relevant for the `RichText`.\n */\n\nvar __experimentalGetAnnotationsForRichText = Object(rememo[\"a\" /* default */])(function (state, blockClientId, richTextIdentifier) {\n  var _state$blockClientId4;\n\n  return ((_state$blockClientId4 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId4 !== void 0 ? _state$blockClientId4 : []).filter(function (annotation) {\n    return annotation.selector === 'range' && richTextIdentifier === annotation.richTextIdentifier;\n  }).map(function (annotation) {\n    var range = annotation.range,\n        other = Object(objectWithoutProperties[\"a\" /* default */])(annotation, [\"range\"]);\n\n    return selectors_objectSpread({}, range, {}, other);\n  });\n}, function (state, blockClientId) {\n  var _state$blockClientId5;\n\n  return [(_state$blockClientId5 = state === null || state === void 0 ? void 0 : state[blockClientId]) !== null && _state$blockClientId5 !== void 0 ? _state$blockClientId5 : EMPTY_ARRAY];\n});\n/**\n * Returns all annotations in the editor state.\n *\n * @param {Object} state Editor state.\n * @return {Array} All annotations currently applied.\n */\n\nfunction __experimentalGetAnnotations(state) {\n  return Object(external_this_lodash_[\"flatMap\"])(state, function (annotations) {\n    return annotations;\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/rng.js\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n  if (!getRandomValues) {\n    throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n  }\n\n  return getRandomValues(rnds8);\n}\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/bytesToUuid.js\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var bytesToUuid_i = 0; bytesToUuid_i < 256; ++bytesToUuid_i) {\n  byteToHex[bytesToUuid_i] = (bytesToUuid_i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n  return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\n/* harmony default export */ var esm_browser_bytesToUuid = (bytesToUuid);\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/node_modules/uuid/dist/esm-browser/v4.js\n\n\n\nfunction v4(options, buf, offset) {\n  var i = buf && offset || 0;\n\n  if (typeof options == 'string') {\n    buf = options === 'binary' ? new Array(16) : null;\n    options = null;\n  }\n\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    for (var ii = 0; ii < 16; ++ii) {\n      buf[i + ii] = rnds[ii];\n    }\n  }\n\n  return buf || esm_browser_bytesToUuid(rnds);\n}\n\n/* harmony default export */ var esm_browser_v4 = (v4);\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/actions.js\n/**\n * External dependencies\n */\n\n/**\n * @typedef WPAnnotationRange\n *\n * @property {number} start The offset where the annotation should start.\n * @property {number} end   The offset where the annotation should end.\n */\n\n/**\n * Adds an annotation to a block.\n *\n * The `block` attribute refers to a block ID that needs to be annotated.\n * `isBlockAnnotation` controls whether or not the annotation is a block\n * annotation. The `source` is the source of the annotation, this will be used\n * to identity groups of annotations.\n *\n * The `range` property is only relevant if the selector is 'range'.\n *\n * @param {Object}            annotation                    The annotation to add.\n * @param {string}            annotation.blockClientId      The blockClientId to add the annotation to.\n * @param {string}            annotation.richTextIdentifier Identifier for the RichText instance the annotation applies to.\n * @param {WPAnnotationRange} annotation.range              The range at which to apply this annotation.\n * @param {string}            [annotation.selector=\"range\"] The way to apply this annotation.\n * @param {string}            [annotation.source=\"default\"] The source that added the annotation.\n * @param {string}            [annotation.id]               The ID the annotation should have. Generates a UUID by default.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalAddAnnotation(_ref) {\n  var blockClientId = _ref.blockClientId,\n      _ref$richTextIdentifi = _ref.richTextIdentifier,\n      richTextIdentifier = _ref$richTextIdentifi === void 0 ? null : _ref$richTextIdentifi,\n      _ref$range = _ref.range,\n      range = _ref$range === void 0 ? null : _ref$range,\n      _ref$selector = _ref.selector,\n      selector = _ref$selector === void 0 ? 'range' : _ref$selector,\n      _ref$source = _ref.source,\n      source = _ref$source === void 0 ? 'default' : _ref$source,\n      _ref$id = _ref.id,\n      id = _ref$id === void 0 ? esm_browser_v4() : _ref$id;\n  var action = {\n    type: 'ANNOTATION_ADD',\n    id: id,\n    blockClientId: blockClientId,\n    richTextIdentifier: richTextIdentifier,\n    source: source,\n    selector: selector\n  };\n\n  if (selector === 'range') {\n    action.range = range;\n  }\n\n  return action;\n}\n/**\n * Removes an annotation with a specific ID.\n *\n * @param {string} annotationId The annotation to remove.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalRemoveAnnotation(annotationId) {\n  return {\n    type: 'ANNOTATION_REMOVE',\n    annotationId: annotationId\n  };\n}\n/**\n * Updates the range of an annotation.\n *\n * @param {string} annotationId ID of the annotation to update.\n * @param {number} start The start of the new range.\n * @param {number} end The end of the new range.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalUpdateAnnotationRange(annotationId, start, end) {\n  return {\n    type: 'ANNOTATION_UPDATE_RANGE',\n    annotationId: annotationId,\n    start: start,\n    end: end\n  };\n}\n/**\n * Removes all annotations of a specific source.\n *\n * @param {string} source The source to remove.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalRemoveAnnotationsBySource(source) {\n  return {\n    type: 'ANNOTATION_REMOVE_SOURCE',\n    source: source\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Module Constants\n */\n\nvar MODULE_KEY = 'core/annotations';\nvar store = Object(external_this_wp_data_[\"registerStore\"])(MODULE_KEY, {\n  reducer: reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject\n});\n/* harmony default export */ var build_module_store = (store);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/annotation.js\n/**\n * WordPress dependencies\n */\n\n\nvar FORMAT_NAME = 'core/annotation';\nvar ANNOTATION_ATTRIBUTE_PREFIX = 'annotation-text-';\nvar STORE_KEY = 'core/annotations';\n/**\n * Applies given annotations to the given record.\n *\n * @param {Object} record The record to apply annotations to.\n * @param {Array} annotations The annotation to apply.\n * @return {Object} A record with the annotations applied.\n */\n\nfunction applyAnnotations(record) {\n  var annotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  annotations.forEach(function (annotation) {\n    var start = annotation.start,\n        end = annotation.end;\n\n    if (start > record.text.length) {\n      start = record.text.length;\n    }\n\n    if (end > record.text.length) {\n      end = record.text.length;\n    }\n\n    var className = ANNOTATION_ATTRIBUTE_PREFIX + annotation.source;\n    var id = ANNOTATION_ATTRIBUTE_PREFIX + annotation.id;\n    record = Object(external_this_wp_richText_[\"applyFormat\"])(record, {\n      type: FORMAT_NAME,\n      attributes: {\n        className: className,\n        id: id\n      }\n    }, start, end);\n  });\n  return record;\n}\n/**\n * Removes annotations from the given record.\n *\n * @param {Object} record Record to remove annotations from.\n * @return {Object} The cleaned record.\n */\n\nfunction removeAnnotations(record) {\n  return Object(external_this_wp_richText_[\"removeFormat\"])(record, 'core/annotation', 0, record.text.length);\n}\n/**\n * Retrieves the positions of annotations inside an array of formats.\n *\n * @param {Array} formats Formats with annotations in there.\n * @return {Object} ID keyed positions of annotations.\n */\n\nfunction retrieveAnnotationPositions(formats) {\n  var positions = {};\n  formats.forEach(function (characterFormats, i) {\n    characterFormats = characterFormats || [];\n    characterFormats = characterFormats.filter(function (format) {\n      return format.type === FORMAT_NAME;\n    });\n    characterFormats.forEach(function (format) {\n      var id = format.attributes.id;\n      id = id.replace(ANNOTATION_ATTRIBUTE_PREFIX, '');\n\n      if (!positions.hasOwnProperty(id)) {\n        positions[id] = {\n          start: i\n        };\n      } // Annotations refer to positions between characters.\n      // Formats refer to the character themselves.\n      // So we need to adjust for that here.\n\n\n      positions[id].end = i + 1;\n    });\n  });\n  return positions;\n}\n/**\n * Updates annotations in the state based on positions retrieved from RichText.\n *\n * @param {Array}    annotations                   The annotations that are currently applied.\n * @param {Array}    positions                     The current positions of the given annotations.\n * @param {Object}   actions\n * @param {Function} actions.removeAnnotation      Function to remove an annotation from the state.\n * @param {Function} actions.updateAnnotationRange Function to update an annotation range in the state.\n */\n\n\nfunction updateAnnotationsWithPositions(annotations, positions, _ref) {\n  var removeAnnotation = _ref.removeAnnotation,\n      updateAnnotationRange = _ref.updateAnnotationRange;\n  annotations.forEach(function (currentAnnotation) {\n    var position = positions[currentAnnotation.id]; // If we cannot find an annotation, delete it.\n\n    if (!position) {\n      // Apparently the annotation has been removed, so remove it from the state:\n      // Remove...\n      removeAnnotation(currentAnnotation.id);\n      return;\n    }\n\n    var start = currentAnnotation.start,\n        end = currentAnnotation.end;\n\n    if (start !== position.start || end !== position.end) {\n      updateAnnotationRange(currentAnnotation.id, position.start, position.end);\n    }\n  });\n}\n\nvar annotation_annotation = {\n  name: FORMAT_NAME,\n  title: Object(external_this_wp_i18n_[\"__\"])('Annotation'),\n  tagName: 'mark',\n  className: 'annotation-text',\n  attributes: {\n    className: 'class',\n    id: 'id'\n  },\n  edit: function edit() {\n    return null;\n  },\n  __experimentalGetPropsForEditableTreePreparation: function __experimentalGetPropsForEditableTreePreparation(select, _ref2) {\n    var richTextIdentifier = _ref2.richTextIdentifier,\n        blockClientId = _ref2.blockClientId;\n    return {\n      annotations: select(STORE_KEY).__experimentalGetAnnotationsForRichText(blockClientId, richTextIdentifier)\n    };\n  },\n  __experimentalCreatePrepareEditableTree: function __experimentalCreatePrepareEditableTree(_ref3) {\n    var annotations = _ref3.annotations;\n    return function (formats, text) {\n      if (annotations.length === 0) {\n        return formats;\n      }\n\n      var record = {\n        formats: formats,\n        text: text\n      };\n      record = applyAnnotations(record, annotations);\n      return record.formats;\n    };\n  },\n  __experimentalGetPropsForEditableTreeChangeHandler: function __experimentalGetPropsForEditableTreeChangeHandler(dispatch) {\n    return {\n      removeAnnotation: dispatch(STORE_KEY).__experimentalRemoveAnnotation,\n      updateAnnotationRange: dispatch(STORE_KEY).__experimentalUpdateAnnotationRange\n    };\n  },\n  __experimentalCreateOnChangeEditableValue: function __experimentalCreateOnChangeEditableValue(props) {\n    return function (formats) {\n      var positions = retrieveAnnotationPositions(formats);\n      var removeAnnotation = props.removeAnnotation,\n          updateAnnotationRange = props.updateAnnotationRange,\n          annotations = props.annotations;\n      updateAnnotationsWithPositions(annotations, positions, {\n        removeAnnotation: removeAnnotation,\n        updateAnnotationRange: updateAnnotationRange\n      });\n    };\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/format/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar format_name = annotation_annotation.name,\n    settings = Object(objectWithoutProperties[\"a\" /* default */])(annotation_annotation, [\"name\"]);\n\nObject(external_this_wp_richText_[\"registerFormatType\"])(format_name, settings);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/block/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Adds annotation className to the block-list-block component.\n *\n * @param {Object} OriginalComponent The original BlockListBlock component.\n * @return {Object} The enhanced component.\n */\n\nvar block_addAnnotationClassName = function addAnnotationClassName(OriginalComponent) {\n  return Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n    var clientId = _ref.clientId,\n        className = _ref.className;\n\n    var annotations = select('core/annotations').__experimentalGetAnnotationsForBlock(clientId);\n\n    return {\n      className: annotations.map(function (annotation) {\n        return 'is-annotated-by-' + annotation.source;\n      }).concat(className).filter(Boolean).join(' ')\n    };\n  })(OriginalComponent);\n};\n\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockListBlock', 'core/annotations', block_addAnnotationClassName);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/annotations/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-api-fetch.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"apiFetch\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 447);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 447:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/nonce.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createNonceMiddleware(nonce) {\n  function middleware(options, next) {\n    var _options$headers = options.headers,\n        headers = _options$headers === void 0 ? {} : _options$headers; // If an 'X-WP-Nonce' header (or any case-insensitive variation\n    // thereof) was specified, no need to add a nonce header.\n\n    for (var headerName in headers) {\n      if (headerName.toLowerCase() === 'x-wp-nonce') {\n        return next(options);\n      }\n    }\n\n    return next(_objectSpread({}, options, {\n      headers: _objectSpread({}, headers, {\n        'X-WP-Nonce': middleware.nonce\n      })\n    }));\n  }\n\n  middleware.nonce = nonce;\n  return middleware;\n}\n\n/* harmony default export */ var nonce = (createNonceMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/namespace-endpoint.js\n\n\nfunction namespace_endpoint_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction namespace_endpoint_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { namespace_endpoint_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { namespace_endpoint_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar namespaceAndEndpointMiddleware = function namespaceAndEndpointMiddleware(options, next) {\n  var path = options.path;\n  var namespaceTrimmed, endpointTrimmed;\n\n  if (typeof options.namespace === 'string' && typeof options.endpoint === 'string') {\n    namespaceTrimmed = options.namespace.replace(/^\\/|\\/$/g, '');\n    endpointTrimmed = options.endpoint.replace(/^\\//, '');\n\n    if (endpointTrimmed) {\n      path = namespaceTrimmed + '/' + endpointTrimmed;\n    } else {\n      path = namespaceTrimmed;\n    }\n  }\n\n  delete options.namespace;\n  delete options.endpoint;\n  return next(namespace_endpoint_objectSpread({}, options, {\n    path: path\n  }));\n};\n\n/* harmony default export */ var namespace_endpoint = (namespaceAndEndpointMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/root-url.js\n\n\nfunction root_url_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction root_url_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { root_url_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { root_url_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\nvar root_url_createRootURLMiddleware = function createRootURLMiddleware(rootURL) {\n  return function (options, next) {\n    return namespace_endpoint(options, function (optionsWithPath) {\n      var url = optionsWithPath.url;\n      var path = optionsWithPath.path;\n      var apiRoot;\n\n      if (typeof path === 'string') {\n        apiRoot = rootURL;\n\n        if (-1 !== rootURL.indexOf('?')) {\n          path = path.replace('?', '&');\n        }\n\n        path = path.replace(/^\\//, ''); // API root may already include query parameter prefix if site is\n        // configured to use plain permalinks.\n\n        if ('string' === typeof apiRoot && -1 !== apiRoot.indexOf('?')) {\n          path = path.replace('?', '&');\n        }\n\n        url = apiRoot + path;\n      }\n\n      return next(root_url_objectSpread({}, optionsWithPath, {\n        url: url\n      }));\n    });\n  };\n};\n\n/* harmony default export */ var root_url = (root_url_createRootURLMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/preloading.js\n/**\n * Given a path, returns a normalized path where equal query parameter values\n * will be treated as identical, regardless of order they appear in the original\n * text.\n *\n * @param {string} path Original path.\n *\n * @return {string} Normalized path.\n */\nfunction getStablePath(path) {\n  var splitted = path.split('?');\n  var query = splitted[1];\n  var base = splitted[0];\n\n  if (!query) {\n    return base;\n  } // 'b=1&c=2&a=5'\n\n\n  return base + '?' + query // [ 'b=1', 'c=2', 'a=5' ]\n  .split('&') // [ [ 'b, '1' ], [ 'c', '2' ], [ 'a', '5' ] ]\n  .map(function (entry) {\n    return entry.split('=');\n  }) // [ [ 'a', '5' ], [ 'b, '1' ], [ 'c', '2' ] ]\n  .sort(function (a, b) {\n    return a[0].localeCompare(b[0]);\n  }) // [ 'a=5', 'b=1', 'c=2' ]\n  .map(function (pair) {\n    return pair.join('=');\n  }) // 'a=5&b=1&c=2'\n  .join('&');\n}\n\nfunction createPreloadingMiddleware(preloadedData) {\n  var cache = Object.keys(preloadedData).reduce(function (result, path) {\n    result[getStablePath(path)] = preloadedData[path];\n    return result;\n  }, {});\n  return function (options, next) {\n    var _options$parse = options.parse,\n        parse = _options$parse === void 0 ? true : _options$parse;\n\n    if (typeof options.path === 'string') {\n      var method = options.method || 'GET';\n      var path = getStablePath(options.path);\n\n      if (parse && 'GET' === method && cache[path]) {\n        return Promise.resolve(cache[path].body);\n      } else if ('OPTIONS' === method && cache[method] && cache[method][path]) {\n        return Promise.resolve(cache[method][path]);\n      }\n    }\n\n    return next(options);\n  };\n}\n\n/* harmony default export */ var preloading = (createPreloadingMiddleware);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/fetch-all-middleware.js\n\n\n\n\n\nfunction fetch_all_middleware_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction fetch_all_middleware_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { fetch_all_middleware_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { fetch_all_middleware_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n // Apply query arguments to both URL and Path, whichever is present.\n\nvar fetch_all_middleware_modifyQuery = function modifyQuery(_ref, queryArgs) {\n  var path = _ref.path,\n      url = _ref.url,\n      options = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"path\", \"url\"]);\n\n  return fetch_all_middleware_objectSpread({}, options, {\n    url: url && Object(external_this_wp_url_[\"addQueryArgs\"])(url, queryArgs),\n    path: path && Object(external_this_wp_url_[\"addQueryArgs\"])(path, queryArgs)\n  });\n}; // Duplicates parsing functionality from apiFetch.\n\n\nvar parseResponse = function parseResponse(response) {\n  return response.json ? response.json() : Promise.reject(response);\n};\n\nvar parseLinkHeader = function parseLinkHeader(linkHeader) {\n  if (!linkHeader) {\n    return {};\n  }\n\n  var match = linkHeader.match(/<([^>]+)>; rel=\"next\"/);\n  return match ? {\n    next: match[1]\n  } : {};\n};\n\nvar getNextPageUrl = function getNextPageUrl(response) {\n  var _parseLinkHeader = parseLinkHeader(response.headers.get('link')),\n      next = _parseLinkHeader.next;\n\n  return next;\n};\n\nvar requestContainsUnboundedQuery = function requestContainsUnboundedQuery(options) {\n  var pathIsUnbounded = options.path && options.path.indexOf('per_page=-1') !== -1;\n  var urlIsUnbounded = options.url && options.url.indexOf('per_page=-1') !== -1;\n  return pathIsUnbounded || urlIsUnbounded;\n}; // The REST API enforces an upper limit on the per_page option. To handle large\n// collections, apiFetch consumers can pass `per_page=-1`; this middleware will\n// then recursively assemble a full response array from all available pages.\n\n\nvar fetchAllMiddleware = /*#__PURE__*/function () {\n  var _ref2 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(options, next) {\n    var response, results, nextPage, mergedResults, nextResponse, nextResults;\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            if (!(options.parse === false)) {\n              _context.next = 2;\n              break;\n            }\n\n            return _context.abrupt(\"return\", next(options));\n\n          case 2:\n            if (requestContainsUnboundedQuery(options)) {\n              _context.next = 4;\n              break;\n            }\n\n            return _context.abrupt(\"return\", next(options));\n\n          case 4:\n            _context.next = 6;\n            return build_module(fetch_all_middleware_objectSpread({}, fetch_all_middleware_modifyQuery(options, {\n              per_page: 100\n            }), {\n              // Ensure headers are returned for page 1.\n              parse: false\n            }));\n\n          case 6:\n            response = _context.sent;\n            _context.next = 9;\n            return parseResponse(response);\n\n          case 9:\n            results = _context.sent;\n\n            if (Array.isArray(results)) {\n              _context.next = 12;\n              break;\n            }\n\n            return _context.abrupt(\"return\", results);\n\n          case 12:\n            nextPage = getNextPageUrl(response);\n\n            if (nextPage) {\n              _context.next = 15;\n              break;\n            }\n\n            return _context.abrupt(\"return\", results);\n\n          case 15:\n            // Iteratively fetch all remaining pages until no \"next\" header is found.\n            mergedResults = [].concat(results);\n\n          case 16:\n            if (!nextPage) {\n              _context.next = 27;\n              break;\n            }\n\n            _context.next = 19;\n            return build_module(fetch_all_middleware_objectSpread({}, options, {\n              // Ensure the URL for the next page is used instead of any provided path.\n              path: undefined,\n              url: nextPage,\n              // Ensure we still get headers so we can identify the next page.\n              parse: false\n            }));\n\n          case 19:\n            nextResponse = _context.sent;\n            _context.next = 22;\n            return parseResponse(nextResponse);\n\n          case 22:\n            nextResults = _context.sent;\n            mergedResults = mergedResults.concat(nextResults);\n            nextPage = getNextPageUrl(nextResponse);\n            _context.next = 16;\n            break;\n\n          case 27:\n            return _context.abrupt(\"return\", mergedResults);\n\n          case 28:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n\n  return function fetchAllMiddleware(_x, _x2) {\n    return _ref2.apply(this, arguments);\n  };\n}();\n\n/* harmony default export */ var fetch_all_middleware = (fetchAllMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/http-v1.js\n\n\nfunction http_v1_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction http_v1_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { http_v1_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { http_v1_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Set of HTTP methods which are eligible to be overridden.\n *\n * @type {Set}\n */\nvar OVERRIDE_METHODS = new Set(['PATCH', 'PUT', 'DELETE']);\n/**\n * Default request method.\n *\n * \"A request has an associated method (a method). Unless stated otherwise it\n * is `GET`.\"\n *\n * @see  https://fetch.spec.whatwg.org/#requests\n *\n * @type {string}\n */\n\nvar DEFAULT_METHOD = 'GET';\n/**\n * API Fetch middleware which overrides the request method for HTTP v1\n * compatibility leveraging the REST API X-HTTP-Method-Override header.\n *\n * @param {Object}   options Fetch options.\n * @param {Function} next    [description]\n *\n * @return {*} The evaluated result of the remaining middleware chain.\n */\n\nfunction httpV1Middleware(options, next) {\n  var _options = options,\n      _options$method = _options.method,\n      method = _options$method === void 0 ? DEFAULT_METHOD : _options$method;\n\n  if (OVERRIDE_METHODS.has(method.toUpperCase())) {\n    options = http_v1_objectSpread({}, options, {\n      headers: http_v1_objectSpread({}, options.headers, {\n        'X-HTTP-Method-Override': method,\n        'Content-Type': 'application/json'\n      }),\n      method: 'POST'\n    });\n  }\n\n  return next(options, next);\n}\n\n/* harmony default export */ var http_v1 = (httpV1Middleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/user-locale.js\n/**\n * WordPress dependencies\n */\n\n\nfunction userLocaleMiddleware(options, next) {\n  if (typeof options.url === 'string' && !Object(external_this_wp_url_[\"hasQueryArg\"])(options.url, '_locale')) {\n    options.url = Object(external_this_wp_url_[\"addQueryArgs\"])(options.url, {\n      _locale: 'user'\n    });\n  }\n\n  if (typeof options.path === 'string' && !Object(external_this_wp_url_[\"hasQueryArg\"])(options.path, '_locale')) {\n    options.path = Object(external_this_wp_url_[\"addQueryArgs\"])(options.path, {\n      _locale: 'user'\n    });\n  }\n\n  return next(options, next);\n}\n\n/* harmony default export */ var user_locale = (userLocaleMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/utils/response.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Parses the apiFetch response.\n *\n * @param {Response} response\n * @param {boolean}  shouldParseResponse\n *\n * @return {Promise} Parsed response\n */\n\nvar response_parseResponse = function parseResponse(response) {\n  var shouldParseResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n  if (shouldParseResponse) {\n    if (response.status === 204) {\n      return null;\n    }\n\n    return response.json ? response.json() : Promise.reject(response);\n  }\n\n  return response;\n};\n\nvar response_parseJsonAndNormalizeError = function parseJsonAndNormalizeError(response) {\n  var invalidJsonError = {\n    code: 'invalid_json',\n    message: Object(external_this_wp_i18n_[\"__\"])('The response is not a valid JSON response.')\n  };\n\n  if (!response || !response.json) {\n    throw invalidJsonError;\n  }\n\n  return response.json().catch(function () {\n    throw invalidJsonError;\n  });\n};\n/**\n * Parses the apiFetch response properly and normalize response errors.\n *\n * @param {Response} response\n * @param {boolean}  shouldParseResponse\n *\n * @return {Promise} Parsed response.\n */\n\n\nvar parseResponseAndNormalizeError = function parseResponseAndNormalizeError(response) {\n  var shouldParseResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  return Promise.resolve(response_parseResponse(response, shouldParseResponse)).catch(function (res) {\n    return parseAndThrowError(res, shouldParseResponse);\n  });\n};\nfunction parseAndThrowError(response) {\n  var shouldParseResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n  if (!shouldParseResponse) {\n    throw response;\n  }\n\n  return response_parseJsonAndNormalizeError(response).then(function (error) {\n    var unknownError = {\n      code: 'unknown_error',\n      message: Object(external_this_wp_i18n_[\"__\"])('An unknown error occurred.')\n    };\n    throw error || unknownError;\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/middlewares/media-upload.js\n\n\nfunction media_upload_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction media_upload_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { media_upload_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { media_upload_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Middleware handling media upload failures and retries.\n *\n * @param {Object}   options Fetch options.\n * @param {Function} next    [description]\n *\n * @return {*} The evaluated result of the remaining middleware chain.\n */\n\nfunction mediaUploadMiddleware(options, next) {\n  var isMediaUploadRequest = options.path && options.path.indexOf('/wp/v2/media') !== -1 || options.url && options.url.indexOf('/wp/v2/media') !== -1;\n\n  if (!isMediaUploadRequest) {\n    return next(options, next);\n  }\n\n  var retries = 0;\n  var maxRetries = 5;\n\n  var postProcess = function postProcess(attachmentId) {\n    retries++;\n    return next({\n      path: \"/wp/v2/media/\".concat(attachmentId, \"/post-process\"),\n      method: 'POST',\n      data: {\n        action: 'create-image-subsizes'\n      },\n      parse: false\n    }).catch(function () {\n      if (retries < maxRetries) {\n        return postProcess(attachmentId);\n      }\n\n      next({\n        path: \"/wp/v2/media/\".concat(attachmentId, \"?force=true\"),\n        method: 'DELETE'\n      });\n      return Promise.reject();\n    });\n  };\n\n  return next(media_upload_objectSpread({}, options, {\n    parse: false\n  })).catch(function (response) {\n    var attachmentId = response.headers.get('x-wp-upload-attachment-id');\n\n    if (response.status >= 500 && response.status < 600 && attachmentId) {\n      return postProcess(attachmentId).catch(function () {\n        if (options.parse !== false) {\n          return Promise.reject({\n            code: 'post_process',\n            message: Object(external_this_wp_i18n_[\"__\"])('Media upload failed. If this is a photo or a large image, please scale it down and try again.')\n          });\n        }\n\n        return Promise.reject(response);\n      });\n    }\n\n    return parseAndThrowError(response, options.parse);\n  }).then(function (response) {\n    return parseResponseAndNormalizeError(response, options.parse);\n  });\n}\n\n/* harmony default export */ var media_upload = (mediaUploadMiddleware);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/api-fetch/build-module/index.js\n\n\n\nfunction build_module_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction build_module_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { build_module_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Default set of header values which should be sent with every request unless\n * explicitly provided through apiFetch options.\n *\n * @type {Object}\n */\n\nvar DEFAULT_HEADERS = {\n  // The backend uses the Accept header as a condition for considering an\n  // incoming request as a REST request.\n  //\n  // See: https://core.trac.wordpress.org/ticket/44534\n  Accept: 'application/json, */*;q=0.1'\n};\n/**\n * Default set of fetch option values which should be sent with every request\n * unless explicitly provided through apiFetch options.\n *\n * @type {Object}\n */\n\nvar DEFAULT_OPTIONS = {\n  credentials: 'include'\n};\nvar middlewares = [user_locale, namespace_endpoint, http_v1, fetch_all_middleware];\n\nfunction registerMiddleware(middleware) {\n  middlewares.unshift(middleware);\n}\n\nvar checkStatus = function checkStatus(response) {\n  if (response.status >= 200 && response.status < 300) {\n    return response;\n  }\n\n  throw response;\n};\n\nvar build_module_defaultFetchHandler = function defaultFetchHandler(nextOptions) {\n  var url = nextOptions.url,\n      path = nextOptions.path,\n      data = nextOptions.data,\n      _nextOptions$parse = nextOptions.parse,\n      parse = _nextOptions$parse === void 0 ? true : _nextOptions$parse,\n      remainingOptions = Object(objectWithoutProperties[\"a\" /* default */])(nextOptions, [\"url\", \"path\", \"data\", \"parse\"]);\n\n  var body = nextOptions.body,\n      headers = nextOptions.headers; // Merge explicitly-provided headers with default values.\n\n  headers = build_module_objectSpread({}, DEFAULT_HEADERS, {}, headers); // The `data` property is a shorthand for sending a JSON body.\n\n  if (data) {\n    body = JSON.stringify(data);\n    headers['Content-Type'] = 'application/json';\n  }\n\n  var responsePromise = window.fetch(url || path, build_module_objectSpread({}, DEFAULT_OPTIONS, {}, remainingOptions, {\n    body: body,\n    headers: headers\n  }));\n  return responsePromise // Return early if fetch errors. If fetch error, there is most likely no\n  // network connection. Unfortunately fetch just throws a TypeError and\n  // the message might depend on the browser.\n  .then(function (value) {\n    return Promise.resolve(value).then(checkStatus).catch(function (response) {\n      return parseAndThrowError(response, parse);\n    }).then(function (response) {\n      return parseResponseAndNormalizeError(response, parse);\n    });\n  }, function () {\n    throw {\n      code: 'fetch_error',\n      message: Object(external_this_wp_i18n_[\"__\"])('You are probably offline.')\n    };\n  });\n};\n\nvar fetchHandler = build_module_defaultFetchHandler;\n/**\n * Defines a custom fetch handler for making the requests that will override\n * the default one using window.fetch\n *\n * @param {Function} newFetchHandler The new fetch handler\n */\n\nfunction setFetchHandler(newFetchHandler) {\n  fetchHandler = newFetchHandler;\n}\n\nfunction apiFetch(options) {\n  var steps = [].concat(middlewares, [fetchHandler]);\n\n  var createRunStep = function createRunStep(index) {\n    return function (workingOptions) {\n      var step = steps[index];\n\n      if (index === steps.length - 1) {\n        return step(workingOptions);\n      }\n\n      var next = createRunStep(index + 1);\n      return step(workingOptions, next);\n    };\n  };\n\n  return new Promise(function (resolve, reject) {\n    createRunStep(0)(options).then(resolve).catch(function (error) {\n      if (error.code !== 'rest_cookie_invalid_nonce') {\n        return reject(error);\n      } // If the nonce is invalid, refresh it and try again.\n\n\n      window.fetch(apiFetch.nonceEndpoint).then(checkStatus).then(function (data) {\n        return data.text();\n      }).then(function (text) {\n        apiFetch.nonceMiddleware.nonce = text;\n        apiFetch(options).then(resolve).catch(reject);\n      }).catch(reject);\n    });\n  });\n}\n\napiFetch.use = registerMiddleware;\napiFetch.setFetchHandler = setFetchHandler;\napiFetch.createNonceMiddleware = nonce;\napiFetch.createPreloadingMiddleware = preloading;\napiFetch.createRootURLMiddleware = root_url;\napiFetch.fetchAllMiddleware = fetch_all_middleware;\napiFetch.mediaUploadMiddleware = media_upload;\n/* harmony default export */ var build_module = __webpack_exports__[\"default\"] = (apiFetch);\n\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-autop.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"autop\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 279);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"autop\", function() { return autop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removep\", function() { return removep; });\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);\n\n\n/**\n * The regular expression for an HTML element.\n *\n * @type {RegExp}\n */\nvar htmlSplitRegex = function () {\n  /* eslint-disable no-multi-spaces */\n  var comments = '!' + // Start of comment, after the <.\n  '(?:' + // Unroll the loop: Consume everything until --> is found.\n  '-(?!->)' + // Dash not followed by end of comment.\n  '[^\\\\-]*' + // Consume non-dashes.\n  ')*' + // Loop possessively.\n  '(?:-->)?'; // End of comment. If not found, match all input.\n\n  var cdata = '!\\\\[CDATA\\\\[' + // Start of comment, after the <.\n  '[^\\\\]]*' + // Consume non-].\n  '(?:' + // Unroll the loop: Consume everything until ]]> is found.\n  '](?!]>)' + // One ] not followed by end of comment.\n  '[^\\\\]]*' + // Consume non-].\n  ')*?' + // Loop possessively.\n  '(?:]]>)?'; // End of comment. If not found, match all input.\n\n  var escaped = '(?=' + // Is the element escaped?\n  '!--' + '|' + '!\\\\[CDATA\\\\[' + ')' + '((?=!-)' + // If yes, which type?\n  comments + '|' + cdata + ')';\n  var regex = '(' + // Capture the entire match.\n  '<' + // Find start of element.\n  '(' + // Conditional expression follows.\n  escaped + // Find end of escaped element.\n  '|' + // ... else ...\n  '[^>]*>?' + // Find end of normal element.\n  ')' + ')';\n  return new RegExp(regex);\n  /* eslint-enable no-multi-spaces */\n}();\n/**\n * Separate HTML elements and comments from the text.\n *\n * @param  {string} input The text which has to be formatted.\n * @return {string[]}        The formatted text.\n */\n\n\nfunction htmlSplit(input) {\n  var parts = [];\n  var workingInput = input;\n  var match;\n\n  while (match = workingInput.match(htmlSplitRegex)) {\n    // The `match` result, when invoked on a RegExp with the `g` flag (`/foo/g`) will not include `index`.\n    // If the `g` flag is omitted, `index` is included.\n    // `htmlSplitRegex` does not have the `g` flag so we can assert it will have an index number.\n    // Assert `match.index` is a number.\n    var index =\n    /** @type {number} */\n    match.index;\n    parts.push(workingInput.slice(0, index));\n    parts.push(match[0]);\n    workingInput = workingInput.slice(index + match[0].length);\n  }\n\n  if (workingInput.length) {\n    parts.push(workingInput);\n  }\n\n  return parts;\n}\n/**\n * Replace characters or phrases within HTML elements only.\n *\n * @param  {string}                haystack     The text which has to be formatted.\n * @param  {Record<string,string>} replacePairs In the form {from: 'to', …}.\n * @return {string}                             The formatted text.\n */\n\n\nfunction replaceInHtmlTags(haystack, replacePairs) {\n  // Find all elements.\n  var textArr = htmlSplit(haystack);\n  var changed = false; // Extract all needles.\n\n  var needles = Object.keys(replacePairs); // Loop through delimiters (elements) only.\n\n  for (var i = 1; i < textArr.length; i += 2) {\n    for (var j = 0; j < needles.length; j++) {\n      var needle = needles[j];\n\n      if (-1 !== textArr[i].indexOf(needle)) {\n        textArr[i] = textArr[i].replace(new RegExp(needle, 'g'), replacePairs[needle]);\n        changed = true; // After one strtr() break out of the foreach loop and look at next element.\n\n        break;\n      }\n    }\n  }\n\n  if (changed) {\n    haystack = textArr.join('');\n  }\n\n  return haystack;\n}\n/**\n * Replaces double line-breaks with paragraph elements.\n *\n * A group of regex replaces used to identify text formatted with newlines and\n * replace double line-breaks with HTML paragraph tags. The remaining line-\n * breaks after conversion become `<br />` tags, unless br is set to 'false'.\n *\n * @param  {string}    text The text which has to be formatted.\n * @param  {boolean}   br   Optional. If set, will convert all remaining line-\n *                          breaks after paragraphing. Default true.\n *\n * @example\n *```js\n * import { autop } from '@wordpress/autop';\n * autop( 'my text' ); // \"<p>my text</p>\"\n * ```\n *\n * @return {string}         Text which has been converted into paragraph tags.\n */\n\n\nfunction autop(text) {\n  var br = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var preTags = [];\n\n  if (text.trim() === '') {\n    return '';\n  } // Just to make things a little easier, pad the end.\n\n\n  text = text + '\\n';\n  /*\n   * Pre tags shouldn't be touched by autop.\n   * Replace pre tags with placeholders and bring them back after autop.\n   */\n\n  if (text.indexOf('<pre') !== -1) {\n    var textParts = text.split('</pre>');\n    var lastText = textParts.pop();\n    text = '';\n\n    for (var i = 0; i < textParts.length; i++) {\n      var textPart = textParts[i];\n      var start = textPart.indexOf('<pre'); // Malformed html?\n\n      if (start === -1) {\n        text += textPart;\n        continue;\n      }\n\n      var name = '<pre wp-pre-tag-' + i + '></pre>';\n      preTags.push([name, textPart.substr(start) + '</pre>']);\n      text += textPart.substr(0, start) + name;\n    }\n\n    text += lastText;\n  } // Change multiple <br>s into two line breaks, which will turn into paragraphs.\n\n\n  text = text.replace(/<br\\s*\\/?>\\s*<br\\s*\\/?>/g, '\\n\\n');\n  var allBlocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)'; // Add a double line break above block-level opening tags.\n\n  text = text.replace(new RegExp('(<' + allBlocks + '[\\\\s/>])', 'g'), '\\n\\n$1'); // Add a double line break below block-level closing tags.\n\n  text = text.replace(new RegExp('(</' + allBlocks + '>)', 'g'), '$1\\n\\n'); // Standardize newline characters to \"\\n\".\n\n  text = text.replace(/\\r\\n|\\r/g, '\\n'); // Find newlines in all elements and add placeholders.\n\n  text = replaceInHtmlTags(text, {\n    '\\n': ' <!-- wpnl --> '\n  }); // Collapse line breaks before and after <option> elements so they don't get autop'd.\n\n  if (text.indexOf('<option') !== -1) {\n    text = text.replace(/\\s*<option/g, '<option');\n    text = text.replace(/<\\/option>\\s*/g, '</option>');\n  }\n  /*\n   * Collapse line breaks inside <object> elements, before <param> and <embed> elements\n   * so they don't get autop'd.\n   */\n\n\n  if (text.indexOf('</object>') !== -1) {\n    text = text.replace(/(<object[^>]*>)\\s*/g, '$1');\n    text = text.replace(/\\s*<\\/object>/g, '</object>');\n    text = text.replace(/\\s*(<\\/?(?:param|embed)[^>]*>)\\s*/g, '$1');\n  }\n  /*\n   * Collapse line breaks inside <audio> and <video> elements,\n   * before and after <source> and <track> elements.\n   */\n\n\n  if (text.indexOf('<source') !== -1 || text.indexOf('<track') !== -1) {\n    text = text.replace(/([<\\[](?:audio|video)[^>\\]]*[>\\]])\\s*/g, '$1');\n    text = text.replace(/\\s*([<\\[]\\/(?:audio|video)[>\\]])/g, '$1');\n    text = text.replace(/\\s*(<(?:source|track)[^>]*>)\\s*/g, '$1');\n  } // Collapse line breaks before and after <figcaption> elements.\n\n\n  if (text.indexOf('<figcaption') !== -1) {\n    text = text.replace(/\\s*(<figcaption[^>]*>)/, '$1');\n    text = text.replace(/<\\/figcaption>\\s*/, '</figcaption>');\n  } // Remove more than two contiguous line breaks.\n\n\n  text = text.replace(/\\n\\n+/g, '\\n\\n'); // Split up the contents into an array of strings, separated by double line breaks.\n\n  var texts = text.split(/\\n\\s*\\n/).filter(Boolean); // Reset text prior to rebuilding.\n\n  text = ''; // Rebuild the content as a string, wrapping every bit with a <p>.\n\n  texts.forEach(function (textPiece) {\n    text += '<p>' + textPiece.replace(/^\\n*|\\n*$/g, '') + '</p>\\n';\n  }); // Under certain strange conditions it could create a P of entirely whitespace.\n\n  text = text.replace(/<p>\\s*<\\/p>/g, ''); // Add a closing <p> inside <div>, <address>, or <form> tag if missing.\n\n  text = text.replace(/<p>([^<]+)<\\/(div|address|form)>/g, '<p>$1</p></$2>'); // If an opening or closing block element tag is wrapped in a <p>, unwrap it.\n\n  text = text.replace(new RegExp('<p>\\\\s*(</?' + allBlocks + '[^>]*>)\\\\s*</p>', 'g'), '$1'); // In some cases <li> may get wrapped in <p>, fix them.\n\n  text = text.replace(/<p>(<li.+?)<\\/p>/g, '$1'); // If a <blockquote> is wrapped with a <p>, move it inside the <blockquote>.\n\n  text = text.replace(/<p><blockquote([^>]*)>/gi, '<blockquote$1><p>');\n  text = text.replace(/<\\/blockquote><\\/p>/g, '</p></blockquote>'); // If an opening or closing block element tag is preceded by an opening <p> tag, remove it.\n\n  text = text.replace(new RegExp('<p>\\\\s*(</?' + allBlocks + '[^>]*>)', 'g'), '$1'); // If an opening or closing block element tag is followed by a closing <p> tag, remove it.\n\n  text = text.replace(new RegExp('(</?' + allBlocks + '[^>]*>)\\\\s*</p>', 'g'), '$1'); // Optionally insert line breaks.\n\n  if (br) {\n    // Replace newlines that shouldn't be touched with a placeholder.\n    text = text.replace(/<(script|style).*?<\\/\\\\1>/g, function (match) {\n      return match[0].replace(/\\n/g, '<WPPreserveNewline />');\n    }); // Normalize <br>\n\n    text = text.replace(/<br>|<br\\/>/g, '<br />'); // Replace any new line characters that aren't preceded by a <br /> with a <br />.\n\n    text = text.replace(/(<br \\/>)?\\s*\\n/g, function (a, b) {\n      return b ? a : '<br />\\n';\n    }); // Replace newline placeholders with newlines.\n\n    text = text.replace(/<WPPreserveNewline \\/>/g, '\\n');\n  } // If a <br /> tag is after an opening or closing block tag, remove it.\n\n\n  text = text.replace(new RegExp('(</?' + allBlocks + '[^>]*>)\\\\s*<br />', 'g'), '$1'); // If a <br /> tag is before a subset of opening or closing block tags, remove it.\n\n  text = text.replace(/<br \\/>(\\s*<\\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)/g, '$1');\n  text = text.replace(/\\n<\\/p>$/g, '</p>'); // Replace placeholder <pre> tags with their original content.\n\n  preTags.forEach(function (preTag) {\n    var _preTag = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(preTag, 2),\n        name = _preTag[0],\n        original = _preTag[1];\n\n    text = text.replace(name, original);\n  }); // Restore newlines in all elements.\n\n  if (-1 !== text.indexOf('<!-- wpnl -->')) {\n    text = text.replace(/\\s?<!-- wpnl -->\\s?/g, '\\n');\n  }\n\n  return text;\n}\n/**\n * Replaces `<p>` tags with two line breaks. \"Opposite\" of autop().\n *\n * Replaces `<p>` tags with two line breaks except where the `<p>` has attributes.\n * Unifies whitespace. Indents `<li>`, `<dt>` and `<dd>` for better readability.\n *\n * @param  {string} html The content from the editor.\n *\n * @example\n * ```js\n * import { removep } from '@wordpress/autop';\n * removep( '<p>my text</p>' ); // \"my text\"\n * ```\n *\n * @return {string}      The content with stripped paragraph tags.\n */\n\nfunction removep(html) {\n  var blocklist = 'blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset|figure';\n  var blocklist1 = blocklist + '|div|p';\n  var blocklist2 = blocklist + '|pre';\n  /** @type {string[]} */\n\n  var preserve = [];\n  var preserveLinebreaks = false;\n  var preserveBr = false;\n\n  if (!html) {\n    return '';\n  } // Protect script and style tags.\n\n\n  if (html.indexOf('<script') !== -1 || html.indexOf('<style') !== -1) {\n    html = html.replace(/<(script|style)[^>]*>[\\s\\S]*?<\\/\\1>/g, function (match) {\n      preserve.push(match);\n      return '<wp-preserve>';\n    });\n  } // Protect pre tags.\n\n\n  if (html.indexOf('<pre') !== -1) {\n    preserveLinebreaks = true;\n    html = html.replace(/<pre[^>]*>[\\s\\S]+?<\\/pre>/g, function (a) {\n      a = a.replace(/<br ?\\/?>(\\r\\n|\\n)?/g, '<wp-line-break>');\n      a = a.replace(/<\\/?p( [^>]*)?>(\\r\\n|\\n)?/g, '<wp-line-break>');\n      return a.replace(/\\r?\\n/g, '<wp-line-break>');\n    });\n  } // Remove line breaks but keep <br> tags inside image captions.\n\n\n  if (html.indexOf('[caption') !== -1) {\n    preserveBr = true;\n    html = html.replace(/\\[caption[\\s\\S]+?\\[\\/caption\\]/g, function (a) {\n      return a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>').replace(/[\\r\\n\\t]+/, '');\n    });\n  } // Normalize white space characters before and after block tags.\n\n\n  html = html.replace(new RegExp('\\\\s*</(' + blocklist1 + ')>\\\\s*', 'g'), '</$1>\\n');\n  html = html.replace(new RegExp('\\\\s*<((?:' + blocklist1 + ')(?: [^>]*)?)>', 'g'), '\\n<$1>'); // Mark </p> if it has any attributes.\n\n  html = html.replace(/(<p [^>]+>[\\s\\S]*?)<\\/p>/g, '$1</p#>'); // Preserve the first <p> inside a <div>.\n\n  html = html.replace(/<div( [^>]*)?>\\s*<p>/gi, '<div$1>\\n\\n'); // Remove paragraph tags.\n\n  html = html.replace(/\\s*<p>/gi, '');\n  html = html.replace(/\\s*<\\/p>\\s*/gi, '\\n\\n'); // Normalize white space chars and remove multiple line breaks.\n\n  html = html.replace(/\\n[\\s\\u00a0]+\\n/g, '\\n\\n'); // Replace <br> tags with line breaks.\n\n  html = html.replace(/(\\s*)<br ?\\/?>\\s*/gi, function (_, space) {\n    if (space && space.indexOf('\\n') !== -1) {\n      return '\\n\\n';\n    }\n\n    return '\\n';\n  }); // Fix line breaks around <div>.\n\n  html = html.replace(/\\s*<div/g, '\\n<div');\n  html = html.replace(/<\\/div>\\s*/g, '</div>\\n'); // Fix line breaks around caption shortcodes.\n\n  html = html.replace(/\\s*\\[caption([^\\[]+)\\[\\/caption\\]\\s*/gi, '\\n\\n[caption$1[/caption]\\n\\n');\n  html = html.replace(/caption\\]\\n\\n+\\[caption/g, 'caption]\\n\\n[caption'); // Pad block elements tags with a line break.\n\n  html = html.replace(new RegExp('\\\\s*<((?:' + blocklist2 + ')(?: [^>]*)?)\\\\s*>', 'g'), '\\n<$1>');\n  html = html.replace(new RegExp('\\\\s*</(' + blocklist2 + ')>\\\\s*', 'g'), '</$1>\\n'); // Indent <li>, <dt> and <dd> tags.\n\n  html = html.replace(/<((li|dt|dd)[^>]*)>/g, ' \\t<$1>'); // Fix line breaks around <select> and <option>.\n\n  if (html.indexOf('<option') !== -1) {\n    html = html.replace(/\\s*<option/g, '\\n<option');\n    html = html.replace(/\\s*<\\/select>/g, '\\n</select>');\n  } // Pad <hr> with two line breaks.\n\n\n  if (html.indexOf('<hr') !== -1) {\n    html = html.replace(/\\s*<hr( [^>]*)?>\\s*/g, '\\n\\n<hr$1>\\n\\n');\n  } // Remove line breaks in <object> tags.\n\n\n  if (html.indexOf('<object') !== -1) {\n    html = html.replace(/<object[\\s\\S]+?<\\/object>/g, function (a) {\n      return a.replace(/[\\r\\n]+/g, '');\n    });\n  } // Unmark special paragraph closing tags.\n\n\n  html = html.replace(/<\\/p#>/g, '</p>\\n'); // Pad remaining <p> tags whit a line break.\n\n  html = html.replace(/\\s*(<p [^>]+>[\\s\\S]*?<\\/p>)/g, '\\n$1'); // Trim.\n\n  html = html.replace(/^\\s+/, '');\n  html = html.replace(/[\\s\\u00a0]+$/, '');\n\n  if (preserveLinebreaks) {\n    html = html.replace(/<wp-line-break>/g, '\\n');\n  }\n\n  if (preserveBr) {\n    html = html.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');\n  } // Restore preserved tags.\n\n\n  if (preserve.length) {\n    html = html.replace(/<wp-preserve>/g, function () {\n      return (\n        /** @type {string} */\n        preserve.shift()\n      );\n    });\n  }\n\n  return html;\n}\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-blob.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blob\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 280);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 280:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createBlobURL\", function() { return createBlobURL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBlobByURL\", function() { return getBlobByURL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"revokeBlobURL\", function() { return revokeBlobURL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBlobURL\", function() { return isBlobURL; });\n/**\n * Browser dependencies\n */\nvar _window$URL = window.URL,\n    createObjectURL = _window$URL.createObjectURL,\n    revokeObjectURL = _window$URL.revokeObjectURL;\n/**\n * @type {Record<string, File|undefined>}\n */\n\nvar cache = {};\n/**\n * Create a blob URL from a file.\n *\n * @param {File} file The file to create a blob URL for.\n *\n * @return {string} The blob URL.\n */\n\nfunction createBlobURL(file) {\n  var url = createObjectURL(file);\n  cache[url] = file;\n  return url;\n}\n/**\n * Retrieve a file based on a blob URL. The file must have been created by\n * `createBlobURL` and not removed by `revokeBlobURL`, otherwise it will return\n * `undefined`.\n *\n * @param {string} url The blob URL.\n *\n * @return {File|undefined} The file for the blob URL.\n */\n\nfunction getBlobByURL(url) {\n  return cache[url];\n}\n/**\n * Remove the resource and file cache from memory.\n *\n * @param {string} url The blob URL.\n */\n\nfunction revokeBlobURL(url) {\n  if (cache[url]) {\n    revokeObjectURL(url);\n  }\n\n  delete cache[url];\n}\n/**\n * Check whether a url is a blob url.\n *\n * @param {string} url The URL.\n *\n * @return {boolean} Is the url a blob url?\n */\n\nfunction isBlobURL(url) {\n  if (!url || !url.indexOf) {\n    return false;\n  }\n\n  return url.indexOf('blob:') === 0;\n}\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-block-directory.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blockDirectory\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 439);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 256:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"editPost\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 281:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar starFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (starFilled);\n\n\n/***/ }),\n\n/***/ 282:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar starEmpty = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  fillRule: \"evenodd\",\n  d: \"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z\",\n  clipRule: \"evenodd\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (starEmpty);\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dataControls\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 439:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-directory/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"isRequestingDownloadableBlocks\", function() { return isRequestingDownloadableBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getDownloadableBlocks\", function() { return selectors_getDownloadableBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getInstalledBlockTypes\", function() { return getInstalledBlockTypes; });\n__webpack_require__.d(selectors_namespaceObject, \"getNewBlockTypes\", function() { return getNewBlockTypes; });\n__webpack_require__.d(selectors_namespaceObject, \"getUnusedBlockTypes\", function() { return getUnusedBlockTypes; });\n__webpack_require__.d(selectors_namespaceObject, \"isInstalling\", function() { return isInstalling; });\n__webpack_require__.d(selectors_namespaceObject, \"getErrorNotices\", function() { return getErrorNotices; });\n__webpack_require__.d(selectors_namespaceObject, \"getErrorNoticeForBlock\", function() { return getErrorNoticeForBlock; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-directory/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"fetchDownloadableBlocks\", function() { return fetchDownloadableBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"receiveDownloadableBlocks\", function() { return receiveDownloadableBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"installBlockType\", function() { return actions_installBlockType; });\n__webpack_require__.d(actions_namespaceObject, \"uninstallBlockType\", function() { return actions_uninstallBlockType; });\n__webpack_require__.d(actions_namespaceObject, \"addInstalledBlockType\", function() { return addInstalledBlockType; });\n__webpack_require__.d(actions_namespaceObject, \"removeInstalledBlockType\", function() { return removeInstalledBlockType; });\n__webpack_require__.d(actions_namespaceObject, \"setIsInstalling\", function() { return setIsInstalling; });\n__webpack_require__.d(actions_namespaceObject, \"setErrorNotice\", function() { return setErrorNotice; });\n__webpack_require__.d(actions_namespaceObject, \"clearErrorNotice\", function() { return clearErrorNotice; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"notices\"]}\nvar external_this_wp_notices_ = __webpack_require__(92);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dataControls\"]}\nvar external_this_wp_dataControls_ = __webpack_require__(36);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/reducer.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Reducer returning an array of downloadable blocks.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar reducer_downloadableBlocks = function downloadableBlocks() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'FETCH_DOWNLOADABLE_BLOCKS':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.filterValue, {\n        isRequesting: true\n      }));\n\n    case 'RECEIVE_DOWNLOADABLE_BLOCKS':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.filterValue, {\n        results: action.downloadableBlocks,\n        isRequesting: false\n      }));\n  }\n\n  return state;\n};\n/**\n * Reducer managing the installation and deletion of blocks.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar reducer_blockManagement = function blockManagement() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n    installedBlockTypes: [],\n    isInstalling: {}\n  };\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_INSTALLED_BLOCK_TYPE':\n      return _objectSpread({}, state, {\n        installedBlockTypes: [].concat(Object(toConsumableArray[\"a\" /* default */])(state.installedBlockTypes), [action.item])\n      });\n\n    case 'REMOVE_INSTALLED_BLOCK_TYPE':\n      return _objectSpread({}, state, {\n        installedBlockTypes: state.installedBlockTypes.filter(function (blockType) {\n          return blockType.name !== action.item.name;\n        })\n      });\n\n    case 'SET_INSTALLING_BLOCK':\n      return _objectSpread({}, state, {\n        isInstalling: _objectSpread({}, state.isInstalling, Object(defineProperty[\"a\" /* default */])({}, action.blockId, action.isInstalling))\n      });\n  }\n\n  return state;\n};\n/**\n * Reducer returning an object of error notices.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar reducer_errorNotices = function errorNotices() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_ERROR_NOTICE':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockId, {\n        message: action.message,\n        isFatal: action.isFatal\n      }));\n\n    case 'CLEAR_ERROR_NOTICE':\n      return Object(external_this_lodash_[\"omit\"])(state, action.blockId);\n  }\n\n  return state;\n};\n/* harmony default export */ var reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  downloadableBlocks: reducer_downloadableBlocks,\n  blockManagement: reducer_blockManagement,\n  errorNotices: reducer_errorNotices\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/utils/has-block-type.js\n/**\n * Check if a block list contains a specific block type. Recursively searches\n * through `innerBlocks` if they exist.\n *\n * @param {Object} blockType A block object to search for.\n * @param {Object[]} blocks  The list of blocks to look through.\n *\n * @return {boolean} Whether the blockType is found.\n */\nfunction hasBlockType(blockType) {\n  var blocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n  if (!blocks.length) {\n    return false;\n  }\n\n  if (blocks.some(function (_ref) {\n    var name = _ref.name;\n    return name === blockType.name;\n  })) {\n    return true;\n  }\n\n  for (var i = 0; i < blocks.length; i++) {\n    if (hasBlockType(blockType, blocks[i].innerBlocks)) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/selectors.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns true if application is requesting for downloadable blocks.\n *\n * @param {Object} state Global application state.\n * @param {string} filterValue Search string.\n *\n *\n * @return {Array} Downloadable blocks\n */\n\nfunction isRequestingDownloadableBlocks(state, filterValue) {\n  if (!state.downloadableBlocks[filterValue] || !state.downloadableBlocks[filterValue].isRequesting) {\n    return false;\n  }\n\n  return state.downloadableBlocks[filterValue].isRequesting;\n}\n/**\n * Returns the available uninstalled blocks\n *\n * @param {Object} state       Global application state.\n * @param {string} filterValue Search string.\n *\n * @return {Array} Downloadable blocks\n */\n\nfunction selectors_getDownloadableBlocks(state, filterValue) {\n  if (!state.downloadableBlocks[filterValue] || !state.downloadableBlocks[filterValue].results) {\n    return [];\n  }\n\n  return state.downloadableBlocks[filterValue].results;\n}\n/**\n * Returns the block types that have been installed on the server.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} Block type items.\n */\n\nfunction getInstalledBlockTypes(state) {\n  return state.blockManagement.installedBlockTypes;\n}\n/**\n * Returns block types that have been installed on the server and used in the\n * current post.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} Block type items.\n */\n\nvar getNewBlockTypes = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var usedBlockTree = select('core/block-editor').getBlocks();\n    var installedBlockTypes = getInstalledBlockTypes(state);\n    var newBlockTypes = [];\n    installedBlockTypes.forEach(function (blockType) {\n      if (hasBlockType(blockType, usedBlockTree)) {\n        newBlockTypes.push(blockType);\n      }\n    });\n    return newBlockTypes;\n  };\n});\n/**\n * Returns the block types that have been installed on the server but are not\n * used in the current post.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} Block type items.\n */\n\nvar getUnusedBlockTypes = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var usedBlockTree = select('core/block-editor').getBlocks();\n    var installedBlockTypes = getInstalledBlockTypes(state);\n    var newBlockTypes = [];\n    installedBlockTypes.forEach(function (blockType) {\n      if (!hasBlockType(blockType, usedBlockTree)) {\n        newBlockTypes.push(blockType);\n      }\n    });\n    return newBlockTypes;\n  };\n});\n/**\n * Returns true if application is calling install endpoint.\n *\n * @param {Object} state Global application state.\n * @param {string} blockId Id of the block.\n *\n * @return {boolean} Whether its currently installing\n */\n\nfunction isInstalling(state, blockId) {\n  return state.blockManagement.isInstalling[blockId] || false;\n}\n/**\n * Returns the error notices\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Object with error notices.\n */\n\nfunction getErrorNotices(state) {\n  return state.errorNotices;\n}\n/**\n * Returns the error notice for a given block.\n *\n * @param {Object} state   Global application state.\n * @param {string} blockId The ID of the block plugin. eg: my-block\n *\n * @return {string|boolean} The error text, or false if no error.\n */\n\nfunction getErrorNoticeForBlock(state, blockId) {\n  return state.errorNotices[blockId];\n}\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/controls.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Loads a JavaScript file.\n *\n * @param {string} asset The url for this file.\n *\n * @return {Promise} Promise which will resolve when the asset is loaded.\n */\n\nvar controls_loadScript = function loadScript(asset) {\n  if (!asset || !/\\.js$/.test(Object(external_this_wp_url_[\"getPath\"])(asset))) {\n    return Promise.reject(new Error('No script found.'));\n  }\n\n  return new Promise(function (resolve, reject) {\n    var existing = document.querySelector(\"script[src=\\\"\".concat(asset, \"\\\"]\"));\n\n    if (existing) {\n      existing.parentNode.removeChild(existing);\n    }\n\n    var script = document.createElement('script');\n    script.src = asset;\n\n    script.onload = function () {\n      return resolve(true);\n    };\n\n    script.onerror = function () {\n      return reject(new Error('Error loading script.'));\n    };\n\n    document.body.appendChild(script);\n  });\n};\n/**\n * Loads a CSS file.\n *\n * @param {string} asset The url for this file.\n *\n * @return {Promise} Promise which will resolve when the asset is added.\n */\n\nvar controls_loadStyle = function loadStyle(asset) {\n  if (!asset || !/\\.css$/.test(Object(external_this_wp_url_[\"getPath\"])(asset))) {\n    return Promise.reject(new Error('No style found.'));\n  }\n\n  return new Promise(function (resolve, reject) {\n    var link = document.createElement('link');\n    link.rel = 'stylesheet';\n    link.href = asset;\n\n    link.onload = function () {\n      return resolve(true);\n    };\n\n    link.onerror = function () {\n      return reject(new Error('Error loading style.'));\n    };\n\n    document.body.appendChild(link);\n  });\n};\n/**\n * Load the asset files for a block\n *\n * @param {Array} assets A collection of URLs for the assets.\n *\n * @return {Object} Control descriptor.\n */\n\nfunction loadAssets(assets) {\n  return {\n    type: 'LOAD_ASSETS',\n    assets: assets\n  };\n}\nvar controls = {\n  LOAD_ASSETS: function LOAD_ASSETS(_ref) {\n    var assets = _ref.assets;\n    var scripts = assets.map(function (asset) {\n      return Object(external_this_wp_url_[\"getPath\"])(asset).match(/\\.js$/) !== null ? controls_loadScript(asset) : controls_loadStyle(asset);\n    });\n    return Promise.all(scripts);\n  }\n};\n/* harmony default export */ var store_controls = (controls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/utils/get-plugin-url.js\n/**\n * Get the plugin's direct API link out of a block-directory response.\n *\n * @param {Object} block The block object\n *\n * @return {string} The plugin URL, if exists.\n */\nfunction getPluginUrl(block) {\n  if (!block) {\n    return false;\n  }\n\n  var link = block.links['wp:plugin'] || block.links.self;\n\n  if (link && link.length) {\n    return link[0].href;\n  }\n\n  return false;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/actions.js\n\n\n\nvar _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_installBlockType),\n    _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_uninstallBlockType);\n\nfunction actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been requested and is loading.\n *\n * @param {string} filterValue Search string.\n *\n * @return {Object} Action object.\n */\n\nfunction fetchDownloadableBlocks(filterValue) {\n  return {\n    type: 'FETCH_DOWNLOADABLE_BLOCKS',\n    filterValue: filterValue\n  };\n}\n/**\n * Returns an action object used in signalling that the downloadable blocks\n * have been updated.\n *\n * @param {Array}  downloadableBlocks Downloadable blocks.\n * @param {string} filterValue        Search string.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveDownloadableBlocks(downloadableBlocks, filterValue) {\n  return {\n    type: 'RECEIVE_DOWNLOADABLE_BLOCKS',\n    downloadableBlocks: downloadableBlocks,\n    filterValue: filterValue\n  };\n}\n/**\n * Action triggered to install a block plugin.\n *\n * @param {Object} block The block item returned by search.\n *\n * @return {boolean} Whether the block was successfully installed & loaded.\n */\n\nfunction actions_installBlockType(block) {\n  var id, assets, success, url, links, response, registeredBlocks, message, isFatal, fatalAPIErrors;\n  return external_this_regeneratorRuntime_default.a.wrap(function installBlockType$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          id = block.id, assets = block.assets;\n          success = false;\n          _context.next = 4;\n          return clearErrorNotice(id);\n\n        case 4:\n          _context.prev = 4;\n\n          if (!(!Array.isArray(assets) || !assets.length)) {\n            _context.next = 7;\n            break;\n          }\n\n          throw new Error(Object(external_this_wp_i18n_[\"__\"])('Block has no assets.'));\n\n        case 7:\n          _context.next = 9;\n          return setIsInstalling(block.id, true);\n\n        case 9:\n          // If we have a wp:plugin link, the plugin is installed but inactive.\n          url = getPluginUrl(block);\n          links = {};\n\n          if (!url) {\n            _context.next = 16;\n            break;\n          }\n\n          _context.next = 14;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            url: url,\n            data: {\n              status: 'active'\n            },\n            method: 'PUT'\n          });\n\n        case 14:\n          _context.next = 20;\n          break;\n\n        case 16:\n          _context.next = 18;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            path: 'wp/v2/plugins',\n            data: {\n              slug: block.id,\n              status: 'active'\n            },\n            method: 'POST'\n          });\n\n        case 18:\n          response = _context.sent;\n          // Add the `self` link for newly-installed blocks.\n          links = response._links;\n\n        case 20:\n          _context.next = 22;\n          return addInstalledBlockType(actions_objectSpread({}, block, {\n            links: actions_objectSpread({}, block.links, {}, links)\n          }));\n\n        case 22:\n          _context.next = 24;\n          return loadAssets(assets);\n\n        case 24:\n          _context.next = 26;\n          return Object(external_this_wp_dataControls_[\"select\"])('core/blocks', 'getBlockTypes');\n\n        case 26:\n          registeredBlocks = _context.sent;\n\n          if (!(!registeredBlocks.length || !registeredBlocks.filter(function (i) {\n            return i.name === block.name;\n          }).length)) {\n            _context.next = 29;\n            break;\n          }\n\n          throw new Error(Object(external_this_wp_i18n_[\"__\"])('Error registering block. Try reloading the page.'));\n\n        case 29:\n          success = true;\n          _context.next = 40;\n          break;\n\n        case 32:\n          _context.prev = 32;\n          _context.t0 = _context[\"catch\"](4);\n          message = _context.t0.message || Object(external_this_wp_i18n_[\"__\"])('An error occurred.'); // Errors we throw are fatal\n\n          isFatal = _context.t0 instanceof Error; // Specific API errors that are fatal\n\n          fatalAPIErrors = {\n            folder_exists: Object(external_this_wp_i18n_[\"__\"])('This block is already installed. Try reloading the page.'),\n            unable_to_connect_to_filesystem: Object(external_this_wp_i18n_[\"__\"])('Error installing block. You can reload the page and try again.')\n          };\n\n          if (fatalAPIErrors[_context.t0.code]) {\n            isFatal = true;\n            message = fatalAPIErrors[_context.t0.code];\n          }\n\n          _context.next = 40;\n          return setErrorNotice(id, message, isFatal);\n\n        case 40:\n          _context.next = 42;\n          return setIsInstalling(block.id, false);\n\n        case 42:\n          return _context.abrupt(\"return\", success);\n\n        case 43:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked, null, [[4, 32]]);\n}\n/**\n * Action triggered to uninstall a block plugin.\n *\n * @param {Object} block The blockType object.\n */\n\nfunction actions_uninstallBlockType(block) {\n  return external_this_regeneratorRuntime_default.a.wrap(function uninstallBlockType$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.prev = 0;\n          _context2.next = 3;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            url: getPluginUrl(block),\n            data: {\n              status: 'inactive'\n            },\n            method: 'PUT'\n          });\n\n        case 3:\n          _context2.next = 5;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            url: getPluginUrl(block),\n            method: 'DELETE'\n          });\n\n        case 5:\n          _context2.next = 7;\n          return removeInstalledBlockType(block);\n\n        case 7:\n          _context2.next = 13;\n          break;\n\n        case 9:\n          _context2.prev = 9;\n          _context2.t0 = _context2[\"catch\"](0);\n          _context2.next = 13;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core/notices', 'createErrorNotice', _context2.t0.message || Object(external_this_wp_i18n_[\"__\"])('An error occurred.'));\n\n        case 13:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2, null, [[0, 9]]);\n}\n/**\n * Returns an action object used to add a newly installed block type.\n *\n * @param {Object} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\n\nfunction addInstalledBlockType(item) {\n  return {\n    type: 'ADD_INSTALLED_BLOCK_TYPE',\n    item: item\n  };\n}\n/**\n * Returns an action object used to remove a newly installed block type.\n *\n * @param {string} item The block item with the block id and name.\n *\n * @return {Object} Action object.\n */\n\nfunction removeInstalledBlockType(item) {\n  return {\n    type: 'REMOVE_INSTALLED_BLOCK_TYPE',\n    item: item\n  };\n}\n/**\n * Returns an action object used to indicate install in progress\n *\n * @param {string} blockId\n * @param {boolean} isInstalling\n *\n * @return {Object} Action object.\n */\n\nfunction setIsInstalling(blockId, isInstalling) {\n  return {\n    type: 'SET_INSTALLING_BLOCK',\n    blockId: blockId,\n    isInstalling: isInstalling\n  };\n}\n/**\n * Sets an error notice string to be displayed to the user\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n * @param {string} message  The message shown in the notice.\n * @param {boolean} isFatal Whether the user can recover from the error\n *\n * @return {Object} Action object.\n */\n\nfunction setErrorNotice(blockId, message) {\n  var isFatal = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  return {\n    type: 'SET_ERROR_NOTICE',\n    blockId: blockId,\n    message: message,\n    isFatal: isFatal\n  };\n}\n/**\n * Sets the error notice to empty for specific block\n *\n * @param {string} blockId The ID of the block plugin. eg: my-block\n *\n * @return {Object} Action object.\n */\n\nfunction clearErrorNotice(blockId) {\n  return {\n    type: 'CLEAR_ERROR_NOTICE',\n    blockId: blockId\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/resolvers.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var resolvers = ({\n  getDownloadableBlocks: /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function getDownloadableBlocks(filterValue) {\n    var results, blocks;\n    return external_this_regeneratorRuntime_default.a.wrap(function getDownloadableBlocks$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            if (filterValue) {\n              _context.next = 2;\n              break;\n            }\n\n            return _context.abrupt(\"return\");\n\n          case 2:\n            _context.prev = 2;\n            _context.next = 5;\n            return fetchDownloadableBlocks(filterValue);\n\n          case 5:\n            _context.next = 7;\n            return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n              path: \"wp/v2/block-directory/search?term=\".concat(filterValue)\n            });\n\n          case 7:\n            results = _context.sent;\n            blocks = results.map(function (result) {\n              return Object(external_this_lodash_[\"mapKeys\"])(result, function (value, key) {\n                return Object(external_this_lodash_[\"camelCase\"])(key);\n              });\n            });\n            _context.next = 11;\n            return receiveDownloadableBlocks(blocks, filterValue);\n\n          case 11:\n            _context.next = 15;\n            break;\n\n          case 13:\n            _context.prev = 13;\n            _context.t0 = _context[\"catch\"](2);\n\n          case 15:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, getDownloadableBlocks, null, [[2, 13]]);\n  })\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/store/index.js\n\n\nfunction store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar MODULE_KEY = 'core/block-directory';\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/data/README.md#registerStore\n *\n * @type {Object}\n */\n\nvar storeConfig = {\n  reducer: reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject,\n  controls: store_objectSpread({}, external_this_wp_dataControls_[\"controls\"], {}, store_controls),\n  resolvers: resolvers\n};\nvar store = Object(external_this_wp_data_[\"registerStore\"])(MODULE_KEY, storeConfig);\n/* harmony default export */ var build_module_store = (store);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"plugins\"]}\nvar external_this_wp_plugins_ = __webpack_require__(63);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/auto-block-uninstaller/index.js\n/**\n * WordPress dependencies\n */\n\n\n\nfunction AutoBlockUninstaller() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-directory'),\n      uninstallBlockType = _useDispatch.uninstallBlockType;\n\n  var shouldRemoveBlockTypes = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/editor'),\n        isAutosavingPost = _select.isAutosavingPost,\n        isSavingPost = _select.isSavingPost;\n\n    return isSavingPost() && !isAutosavingPost();\n  }, []);\n  var unusedBlockTypes = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-directory').getUnusedBlockTypes();\n  }, []);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (shouldRemoveBlockTypes && unusedBlockTypes.length) {\n      unusedBlockTypes.forEach(function (blockType) {\n        uninstallBlockType(blockType);\n        Object(external_this_wp_blocks_[\"unregisterBlockType\"])(blockType.name);\n      });\n    }\n  }, [shouldRemoveBlockTypes]);\n  return null;\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockEditor\"]}\nvar external_this_wp_blockEditor_ = __webpack_require__(7);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-author-info/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction DownloadableBlockAuthorInfo(_ref) {\n  var author = _ref.author,\n      authorBlockCount = _ref.authorBlockCount,\n      authorBlockRating = _ref.authorBlockRating;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-directory-downloadable-block-author-info__content-author\"\n  }, Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %s: author name. */\n  Object(external_this_wp_i18n_[\"__\"])('Authored by %s'), author)), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-directory-downloadable-block-author-info__content\"\n  }, authorBlockRating > 0 ? Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: number of blocks. 2: average rating. */\n  Object(external_this_wp_i18n_[\"_n\"])('This author has %1$d block, with an average rating of %2$d.', 'This author has %1$d blocks, with an average rating of %2$d.', authorBlockCount), authorBlockCount, authorBlockRating) : Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: number of blocks. */\n  Object(external_this_wp_i18n_[\"_n\"])('This author has %1$d block.', 'This author has %1$d blocks.', authorBlockCount), authorBlockCount)));\n}\n\n/* harmony default export */ var downloadable_block_author_info = (DownloadableBlockAuthorInfo);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar build_module_icon = __webpack_require__(131);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js\nvar star_filled = __webpack_require__(281);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/star-half.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar starHalf = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M9.518 8.783a.25.25 0 00.188-.137l2.069-4.192a.25.25 0 01.448 0l2.07 4.192a.25.25 0 00.187.137l4.626.672a.25.25 0 01.139.427l-3.347 3.262a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.363.264l-4.137-2.176a.25.25 0 00-.233 0l-4.138 2.175a.25.25 0 01-.362-.263l.79-4.607a.25.25 0 00-.072-.222L4.753 9.882a.25.25 0 01.14-.427l4.625-.672zM12 14.533c.28 0 .559.067.814.2l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39v7.143z\"\n}));\n/* harmony default export */ var star_half = (starHalf);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js\nvar star_empty = __webpack_require__(282);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/stars.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction Stars(_ref) {\n  var rating = _ref.rating;\n  var stars = Math.round(rating / 0.5) * 0.5;\n  var fullStarCount = Math.floor(rating);\n  var halfStarCount = Math.ceil(rating - fullStarCount);\n  var emptyStarCount = 5 - (fullStarCount + halfStarCount);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    \"aria-label\": Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: number of stars. */\n    Object(external_this_wp_i18n_[\"__\"])('%s out of 5 stars'), stars)\n  }, Object(external_this_lodash_[\"times\"])(fullStarCount, function (i) {\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n      key: \"full_stars_\".concat(i),\n      icon: star_filled[\"a\" /* default */],\n      size: 16\n    });\n  }), Object(external_this_lodash_[\"times\"])(halfStarCount, function (i) {\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n      key: \"half_stars_\".concat(i),\n      icon: star_half,\n      size: 16\n    });\n  }), Object(external_this_lodash_[\"times\"])(emptyStarCount, function (i) {\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n      key: \"empty_stars_\".concat(i),\n      icon: star_empty[\"a\" /* default */],\n      size: 16\n    });\n  }));\n}\n\n/* harmony default export */ var block_ratings_stars = (Stars);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/block-ratings/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar block_ratings_BlockRatings = function BlockRatings(_ref) {\n  var rating = _ref.rating,\n      ratingCount = _ref.ratingCount;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-block-ratings\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_ratings_stars, {\n    rating: rating\n  }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-directory-block-ratings__rating-count\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %d: number of ratings (number).\n    Object(external_this_wp_i18n_[\"_n\"])('%d total rating', '%d total ratings', ratingCount), ratingCount)\n  }, \"(\", ratingCount, \")\"));\n};\n/* harmony default export */ var block_ratings = (block_ratings_BlockRatings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-icon/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction DownloadableBlockIcon(_ref) {\n  var icon = _ref.icon,\n      title = _ref.title;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-icon\"\n  }, icon.match(/\\.(jpeg|jpg|gif|png|svg)(?:\\?.*)?$/) !== null ? Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    src: icon,\n    alt: Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: Name of the plugin e.g: \"Akismet\".\n    Object(external_this_wp_i18n_[\"__\"])('%s block icon'), title)\n  }) : Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n    icon: icon,\n    showColors: true\n  }));\n}\n\n/* harmony default export */ var downloadable_block_icon = (DownloadableBlockIcon);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-header/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction DownloadableBlockHeader(_ref) {\n  var icon = _ref.icon,\n      title = _ref.title,\n      rating = _ref.rating,\n      ratingCount = _ref.ratingCount,\n      _ref$isLoading = _ref.isLoading,\n      isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,\n      _ref$isInstallable = _ref.isInstallable,\n      isInstallable = _ref$isInstallable === void 0 ? true : _ref$isInstallable,\n      _onClick = _ref.onClick;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-header__row\"\n  }, Object(external_this_wp_element_[\"createElement\"])(downloadable_block_icon, {\n    icon: icon,\n    title: title\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-header__column\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"block-directory-downloadable-block-header__title\"\n  }, title), Object(external_this_wp_element_[\"createElement\"])(block_ratings, {\n    rating: rating,\n    ratingCount: ratingCount\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    isBusy: isLoading,\n    disabled: isLoading || !isInstallable,\n    onClick: function onClick(event) {\n      event.preventDefault();\n\n      if (!isLoading && isInstallable) {\n        _onClick();\n      }\n    }\n  }, isLoading ? Object(external_this_wp_i18n_[\"__\"])('Adding…') : Object(external_this_wp_i18n_[\"__\"])('Add block')));\n}\n\n/* harmony default export */ var downloadable_block_header = (DownloadableBlockHeader);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chart-line.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar chartLine = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 3.5c0 .62-.38 1.16-.92 1.38v13.11H1.99l4.22-6.73c-.13-.23-.21-.48-.21-.76C6 9.67 6.67 9 7.5 9S9 9.67 9 10.5c0 .13-.02.25-.05.37l1.44.63c.27-.3.67-.5 1.11-.5.18 0 .35.04.51.09l3.58-6.41c-.36-.27-.59-.7-.59-1.18 0-.83.67-1.5 1.5-1.5.19 0 .36.04.53.1l.05-.09v.11c.54.22.92.76.92 1.38zm-1.92 13.49V5.85l-3.29 5.89c.13.23.21.48.21.76 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5l.01-.07-1.63-.72c-.25.18-.55.29-.88.29-.18 0-.35-.04-.51-.1l-3.2 5.09h12.29z\"\n}));\n/* harmony default export */ var chart_line = (chartLine);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/update.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar update = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z\"\n}));\n/* harmony default export */ var library_update = (update);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-info/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction DownloadableBlockInfo(_ref) {\n  var description = _ref.description,\n      activeInstalls = _ref.activeInstalls,\n      humanizedUpdated = _ref.humanizedUpdated;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"block-directory-downloadable-block-info__content\"\n  }, description), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-info__meta\"\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    className: \"block-directory-downloadable-block-info__icon\",\n    icon: chart_line\n  }), Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %s: number of active installations. */\n  Object(external_this_wp_i18n_[\"_n\"])('%d active installation', '%d active installations', activeInstalls), activeInstalls)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-info__meta\"\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    className: \"block-directory-downloadable-block-info__icon\",\n    icon: library_update\n  }), // translators: %s: Humanized date of last update e.g: \"2 months ago\".\n  Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Updated %s'), humanizedUpdated)));\n}\n\n/* harmony default export */ var downloadable_block_info = (DownloadableBlockInfo);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-notice/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar downloadable_block_notice_DownloadableBlockNotice = function DownloadableBlockNotice(_ref) {\n  var block = _ref.block,\n      _onClick = _ref.onClick;\n  var errorNotice = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-directory').getErrorNoticeForBlock(block.id);\n  }, [block]);\n\n  if (!errorNotice) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n    status: \"error\",\n    isDismissible: false,\n    className: \"block-directory-downloadable-block-notice\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-directory-downloadable-block-notice__content\"\n  }, errorNotice.message), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSmall: true,\n    isPrimary: true,\n    onClick: function onClick() {\n      if (errorNotice.isFatal) {\n        window.location.reload();\n        return false;\n      }\n\n      _onClick(block);\n    }\n  }, errorNotice.isFatal ? Object(external_this_wp_i18n_[\"__\"])('Reload') : Object(external_this_wp_i18n_[\"__\"])('Retry')));\n};\n/* harmony default export */ var downloadable_block_notice = (downloadable_block_notice_DownloadableBlockNotice);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-block-list-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction DownloadableBlockListItem(_ref) {\n  var item = _ref.item,\n      onClick = _ref.onClick;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-directory'),\n        isInstalling = _select.isInstalling,\n        getErrorNoticeForBlock = _select.getErrorNoticeForBlock;\n\n    var notice = getErrorNoticeForBlock(item.id);\n    var hasFatal = notice && notice.isFatal;\n    return {\n      isLoading: isInstalling(item.id),\n      isInstallable: !hasFatal\n    };\n  }, [item]),\n      isLoading = _useSelect.isLoading,\n      isInstallable = _useSelect.isInstallable;\n\n  var icon = item.icon,\n      title = item.title,\n      description = item.description,\n      rating = item.rating,\n      activeInstalls = item.activeInstalls,\n      ratingCount = item.ratingCount,\n      author = item.author,\n      humanizedUpdated = item.humanizedUpdated,\n      authorBlockCount = item.authorBlockCount,\n      authorBlockRating = item.authorBlockRating;\n  return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n    className: \"block-directory-downloadable-block-list-item\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"article\", {\n    className: \"block-directory-downloadable-block-list-item__panel\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"header\", {\n    className: \"block-directory-downloadable-block-list-item__header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(downloadable_block_header, {\n    icon: icon,\n    onClick: onClick,\n    title: title,\n    rating: rating,\n    ratingCount: ratingCount,\n    isLoading: isLoading,\n    isInstallable: isInstallable\n  })), Object(external_this_wp_element_[\"createElement\"])(\"section\", {\n    className: \"block-directory-downloadable-block-list-item__body\"\n  }, Object(external_this_wp_element_[\"createElement\"])(downloadable_block_notice, {\n    onClick: onClick,\n    block: item\n  }), Object(external_this_wp_element_[\"createElement\"])(downloadable_block_info, {\n    activeInstalls: activeInstalls,\n    description: description,\n    humanizedUpdated: humanizedUpdated\n  })), Object(external_this_wp_element_[\"createElement\"])(\"footer\", {\n    className: \"block-directory-downloadable-block-list-item__footer\"\n  }, Object(external_this_wp_element_[\"createElement\"])(downloadable_block_author_info, {\n    author: author,\n    authorBlockCount: authorBlockCount,\n    authorBlockRating: authorBlockRating\n  }))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-list/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction DownloadableBlocksList(_ref) {\n  var items = _ref.items,\n      _ref$onHover = _ref.onHover,\n      onHover = _ref$onHover === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHover,\n      onSelect = _ref.onSelect;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-directory'),\n      installBlockType = _useDispatch.installBlockType;\n\n  if (!items.length) {\n    return null;\n  }\n\n  return (\n    /*\n     * Disable reason: The `list` ARIA role is redundant but\n     * Safari+VoiceOver won't announce the list otherwise.\n     */\n\n    /* eslint-disable jsx-a11y/no-redundant-roles */\n    Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      role: \"list\",\n      className: \"block-directory-downloadable-blocks-list\"\n    }, items.map(function (item) {\n      return Object(external_this_wp_element_[\"createElement\"])(DownloadableBlockListItem, {\n        key: item.id,\n        onClick: function onClick() {\n          installBlockType(item).then(function (success) {\n            if (success) {\n              onSelect(item);\n            }\n          });\n          onHover(null);\n        },\n        item: item\n      });\n    }))\n    /* eslint-enable jsx-a11y/no-redundant-roles */\n\n  );\n}\n\n/* harmony default export */ var downloadable_blocks_list = (DownloadableBlocksList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/downloadable-blocks-panel/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction DownloadableBlocksPanel(_ref) {\n  var downloadableItems = _ref.downloadableItems,\n      onSelect = _ref.onSelect,\n      onHover = _ref.onHover,\n      hasPermission = _ref.hasPermission,\n      isLoading = _ref.isLoading,\n      isWaiting = _ref.isWaiting,\n      debouncedSpeak = _ref.debouncedSpeak;\n\n  if (false === hasPermission) {\n    debouncedSpeak(Object(external_this_wp_i18n_[\"__\"])('No blocks found in your library. Please contact your site administrator to install new blocks.'));\n    return Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n      className: \"block-directory-downloadable-blocks-panel__description has-no-results\"\n    }, Object(external_this_wp_i18n_[\"__\"])('No blocks found in your library.'), Object(external_this_wp_element_[\"createElement\"])(\"br\", null), Object(external_this_wp_i18n_[\"__\"])('Please contact your site administrator to install new blocks.'));\n  }\n\n  if (typeof hasPermission === 'undefined' || isLoading || isWaiting) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n      className: \"block-directory-downloadable-blocks-panel__description has-no-results\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null));\n  }\n\n  if (!downloadableItems.length) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n      className: \"block-directory-downloadable-blocks-panel__description has-no-results\"\n    }, Object(external_this_wp_i18n_[\"__\"])('No blocks found in your library.'));\n  }\n\n  var resultsFoundMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %s: number of available blocks. */\n  Object(external_this_wp_i18n_[\"_n\"])('No blocks found in your library. We did find %d block available for download.', 'No blocks found in your library. We did find %d blocks available for download.', downloadableItems.length), downloadableItems.length);\n  debouncedSpeak(resultsFoundMessage);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"block-directory-downloadable-blocks-panel__description\"\n  }, Object(external_this_wp_i18n_[\"__\"])('No blocks found in your library. These blocks can be downloaded and installed:')), Object(external_this_wp_element_[\"createElement\"])(downloadable_blocks_list, {\n    items: downloadableItems,\n    onSelect: onSelect,\n    onHover: onHover\n  }));\n}\n\n/* harmony default export */ var downloadable_blocks_panel = (Object(external_this_wp_compose_[\"compose\"])([external_this_wp_components_[\"withSpokenMessages\"], Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var filterValue = _ref2.filterValue;\n\n  var _select = select('core/block-directory'),\n      getDownloadableBlocks = _select.getDownloadableBlocks,\n      isRequestingDownloadableBlocks = _select.isRequestingDownloadableBlocks;\n\n  var hasPermission = select('core').canUser('read', 'block-directory/search');\n  var downloadableItems = hasPermission ? getDownloadableBlocks(filterValue) : [];\n  var isLoading = isRequestingDownloadableBlocks(filterValue);\n  return {\n    downloadableItems: downloadableItems,\n    hasPermission: hasPermission,\n    isLoading: isLoading\n  };\n})])(DownloadableBlocksPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/inserter-menu-downloadable-blocks-panel/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction InserterMenuDownloadableBlocksPanel() {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(''),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      debouncedFilterValue = _useState2[0],\n      setFilterValue = _useState2[1];\n\n  var debouncedSetFilterValue = Object(external_this_lodash_[\"debounce\"])(setFilterValue, 400);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalInserterMenuExtension\"], null, function (_ref) {\n    var onSelect = _ref.onSelect,\n        onHover = _ref.onHover,\n        filterValue = _ref.filterValue,\n        hasItems = _ref.hasItems;\n\n    if (hasItems || !filterValue) {\n      return null;\n    }\n\n    if (debouncedFilterValue !== filterValue) {\n      debouncedSetFilterValue(filterValue);\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(downloadable_blocks_panel, {\n      onSelect: onSelect,\n      onHover: onHover,\n      filterValue: debouncedFilterValue,\n      isWaiting: filterValue !== debouncedFilterValue\n    });\n  });\n}\n\n/* harmony default export */ var inserter_menu_downloadable_blocks_panel = (InserterMenuDownloadableBlocksPanel);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"editPost\"]}\nvar external_this_wp_editPost_ = __webpack_require__(256);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/components/compact-list/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction CompactList(_ref) {\n  var items = _ref.items;\n\n  if (!items.length) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"block-directory-compact-list\"\n  }, items.map(function (_ref2) {\n    var icon = _ref2.icon,\n        id = _ref2.id,\n        title = _ref2.title,\n        author = _ref2.author;\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: id,\n      className: \"block-directory-compact-list__item\"\n    }, Object(external_this_wp_element_[\"createElement\"])(downloadable_block_icon, {\n      icon: icon,\n      title: title\n    }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-directory-compact-list__item-details\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-directory-compact-list__item-title\"\n    }, title), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-directory-compact-list__item-author\"\n    }, Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: Name of the block author. */\n    Object(external_this_wp_i18n_[\"__\"])('By %s'), author))));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/installed-blocks-pre-publish-panel/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction InstalledBlocksPrePublishPanel() {\n  var newBlockTypes = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-directory').getNewBlockTypes();\n  }, []);\n\n  if (!newBlockTypes.length) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editPost_[\"PluginPrePublishPanel\"], {\n    icon: \"block-default\",\n    title: Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %d: number of blocks (number).\n    Object(external_this_wp_i18n_[\"_n\"])('Added: %d block', 'Added: %d blocks', newBlockTypes.length), newBlockTypes.length),\n    initialOpen: true\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"installed-blocks-pre-publish-panel__copy\"\n  }, Object(external_this_wp_i18n_[\"_n\"])('The following block has been added to your site.', 'The following blocks have been added to your site.', newBlockTypes.length)), Object(external_this_wp_element_[\"createElement\"])(CompactList, {\n    items: newBlockTypes\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/plugins/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nObject(external_this_wp_plugins_[\"registerPlugin\"])('block-directory', {\n  render: function render() {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(AutoBlockUninstaller, null), Object(external_this_wp_element_[\"createElement\"])(inserter_menu_downloadable_blocks_panel, null), Object(external_this_wp_element_[\"createElement\"])(InstalledBlocksPrePublishPanel, null));\n  }\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-directory/build-module/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 63:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"plugins\"]; }());\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 92:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"notices\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-block-editor.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blockEditor\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 433);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 104:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction flattenIntoMap( map, effects ) {\n\tvar i;\n\tif ( Array.isArray( effects ) ) {\n\t\tfor ( i = 0; i < effects.length; i++ ) {\n\t\t\tflattenIntoMap( map, effects[ i ] );\n\t\t}\n\t} else {\n\t\tfor ( i in effects ) {\n\t\t\tmap[ i ] = ( map[ i ] || [] ).concat( effects[ i ] );\n\t\t}\n\t}\n}\n\nfunction refx( effects ) {\n\tvar map = {},\n\t\tmiddleware;\n\n\tflattenIntoMap( map, effects );\n\n\tmiddleware = function( store ) {\n\t\treturn function( next ) {\n\t\t\treturn function( action ) {\n\t\t\t\tvar handlers = map[ action.type ],\n\t\t\t\t\tresult = next( action ),\n\t\t\t\t\ti, handlerAction;\n\n\t\t\t\tif ( handlers ) {\n\t\t\t\t\tfor ( i = 0; i < handlers.length; i++ ) {\n\t\t\t\t\t\thandlerAction = handlers[ i ]( action, store );\n\t\t\t\t\t\tif ( handlerAction ) {\n\t\t\t\t\t\t\tstore.dispatch( handlerAction );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t};\n\t\t};\n\t};\n\n\tmiddleware.effects = map;\n\n\treturn middleware;\n}\n\nmodule.exports = refx;\n\n\n/***/ }),\n\n/***/ 108:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _extends = _interopDefault(__webpack_require__(164));\nvar _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__(165));\nvar React = __webpack_require__(16);\nvar React__default = _interopDefault(React);\nvar _inheritsLoose = _interopDefault(__webpack_require__(139));\nvar _assertThisInitialized = _interopDefault(__webpack_require__(166));\n\nvar is = {\n  arr: Array.isArray,\n  obj: function obj(a) {\n    return Object.prototype.toString.call(a) === '[object Object]';\n  },\n  fun: function fun(a) {\n    return typeof a === 'function';\n  },\n  str: function str(a) {\n    return typeof a === 'string';\n  },\n  num: function num(a) {\n    return typeof a === 'number';\n  },\n  und: function und(a) {\n    return a === void 0;\n  },\n  nul: function nul(a) {\n    return a === null;\n  },\n  set: function set(a) {\n    return a instanceof Set;\n  },\n  map: function map(a) {\n    return a instanceof Map;\n  },\n  equ: function equ(a, b) {\n    if (typeof a !== typeof b) return false;\n    if (is.str(a) || is.num(a)) return a === b;\n    if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;\n    var i;\n\n    for (i in a) {\n      if (!(i in b)) return false;\n    }\n\n    for (i in b) {\n      if (a[i] !== b[i]) return false;\n    }\n\n    return is.und(i) ? a === b : true;\n  }\n};\nfunction merge(target, lowercase) {\n  if (lowercase === void 0) {\n    lowercase = true;\n  }\n\n  return function (object) {\n    return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) {\n      var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;\n      acc[key] = target(key);\n      return acc;\n    }, target);\n  };\n}\nfunction useForceUpdate() {\n  var _useState = React.useState(false),\n      f = _useState[1];\n\n  var forceUpdate = React.useCallback(function () {\n    return f(function (v) {\n      return !v;\n    });\n  }, []);\n  return forceUpdate;\n}\nfunction withDefault(value, defaultValue) {\n  return is.und(value) || is.nul(value) ? defaultValue : value;\n}\nfunction toArray(a) {\n  return !is.und(a) ? is.arr(a) ? a : [a] : [];\n}\nfunction callProp(obj) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return is.fun(obj) ? obj.apply(void 0, args) : obj;\n}\n\nfunction getForwardProps(props) {\n  var to = props.to,\n      from = props.from,\n      config = props.config,\n      onStart = props.onStart,\n      onRest = props.onRest,\n      onFrame = props.onFrame,\n      children = props.children,\n      reset = props.reset,\n      reverse = props.reverse,\n      force = props.force,\n      immediate = props.immediate,\n      delay = props.delay,\n      attach = props.attach,\n      destroyed = props.destroyed,\n      interpolateTo = props.interpolateTo,\n      ref = props.ref,\n      lazy = props.lazy,\n      forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"ref\", \"lazy\"]);\n\n  return forward;\n}\n\nfunction interpolateTo(props) {\n  var forward = getForwardProps(props);\n  if (is.und(forward)) return _extends({\n    to: forward\n  }, props);\n  var rest = Object.keys(props).reduce(function (a, k) {\n    var _extends2;\n\n    return !is.und(forward[k]) ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));\n  }, {});\n  return _extends({\n    to: forward\n  }, rest);\n}\nfunction handleRef(ref, forward) {\n  if (forward) {\n    // If it's a function, assume it's a ref callback\n    if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {\n      forward.current = ref;\n    }\n  }\n\n  return ref;\n}\n\nvar Animated =\n/*#__PURE__*/\nfunction () {\n  function Animated() {\n    this.payload = void 0;\n    this.children = [];\n  }\n\n  var _proto = Animated.prototype;\n\n  _proto.getAnimatedValue = function getAnimatedValue() {\n    return this.getValue();\n  };\n\n  _proto.getPayload = function getPayload() {\n    return this.payload || this;\n  };\n\n  _proto.attach = function attach() {};\n\n  _proto.detach = function detach() {};\n\n  _proto.getChildren = function getChildren() {\n    return this.children;\n  };\n\n  _proto.addChild = function addChild(child) {\n    if (this.children.length === 0) this.attach();\n    this.children.push(child);\n  };\n\n  _proto.removeChild = function removeChild(child) {\n    var index = this.children.indexOf(child);\n    this.children.splice(index, 1);\n    if (this.children.length === 0) this.detach();\n  };\n\n  return Animated;\n}();\nvar AnimatedArray =\n/*#__PURE__*/\nfunction (_Animated) {\n  _inheritsLoose(AnimatedArray, _Animated);\n\n  function AnimatedArray() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;\n    _this.payload = [];\n\n    _this.attach = function () {\n      return _this.payload.forEach(function (p) {\n        return p instanceof Animated && p.addChild(_assertThisInitialized(_this));\n      });\n    };\n\n    _this.detach = function () {\n      return _this.payload.forEach(function (p) {\n        return p instanceof Animated && p.removeChild(_assertThisInitialized(_this));\n      });\n    };\n\n    return _this;\n  }\n\n  return AnimatedArray;\n}(Animated);\nvar AnimatedObject =\n/*#__PURE__*/\nfunction (_Animated2) {\n  _inheritsLoose(AnimatedObject, _Animated2);\n\n  function AnimatedObject() {\n    var _this2;\n\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n\n    _this2 = _Animated2.call.apply(_Animated2, [this].concat(args)) || this;\n    _this2.payload = {};\n\n    _this2.attach = function () {\n      return Object.values(_this2.payload).forEach(function (s) {\n        return s instanceof Animated && s.addChild(_assertThisInitialized(_this2));\n      });\n    };\n\n    _this2.detach = function () {\n      return Object.values(_this2.payload).forEach(function (s) {\n        return s instanceof Animated && s.removeChild(_assertThisInitialized(_this2));\n      });\n    };\n\n    return _this2;\n  }\n\n  var _proto2 = AnimatedObject.prototype;\n\n  _proto2.getValue = function getValue(animated) {\n    if (animated === void 0) {\n      animated = false;\n    }\n\n    var payload = {};\n\n    for (var _key4 in this.payload) {\n      var value = this.payload[_key4];\n      if (animated && !(value instanceof Animated)) continue;\n      payload[_key4] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n    }\n\n    return payload;\n  };\n\n  _proto2.getAnimatedValue = function getAnimatedValue() {\n    return this.getValue(true);\n  };\n\n  return AnimatedObject;\n}(Animated);\n\nvar applyAnimatedValues;\nfunction injectApplyAnimatedValues(fn, transform) {\n  applyAnimatedValues = {\n    fn: fn,\n    transform: transform\n  };\n}\nvar colorNames;\nfunction injectColorNames(names) {\n  colorNames = names;\n}\nvar requestFrame = function requestFrame(cb) {\n  return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;\n};\nvar cancelFrame = function cancelFrame(id) {\n  typeof window !== 'undefined' && window.cancelAnimationFrame(id);\n};\nfunction injectFrame(raf, caf) {\n  requestFrame = raf;\n  cancelFrame = caf;\n}\nvar interpolation;\nfunction injectStringInterpolator(fn) {\n  interpolation = fn;\n}\nvar now = function now() {\n  return Date.now();\n};\nfunction injectNow(nowFn) {\n  now = nowFn;\n}\nvar defaultElement;\nfunction injectDefaultElement(el) {\n  defaultElement = el;\n}\nvar animatedApi = function animatedApi(node) {\n  return node.current;\n};\nfunction injectAnimatedApi(fn) {\n  animatedApi = fn;\n}\nvar createAnimatedStyle;\nfunction injectCreateAnimatedStyle(factory) {\n  createAnimatedStyle = factory;\n}\nvar manualFrameloop;\nfunction injectManualFrameloop(callback) {\n  manualFrameloop = callback;\n}\n\nvar Globals = /*#__PURE__*/Object.freeze({\n  get applyAnimatedValues () { return applyAnimatedValues; },\n  injectApplyAnimatedValues: injectApplyAnimatedValues,\n  get colorNames () { return colorNames; },\n  injectColorNames: injectColorNames,\n  get requestFrame () { return requestFrame; },\n  get cancelFrame () { return cancelFrame; },\n  injectFrame: injectFrame,\n  get interpolation () { return interpolation; },\n  injectStringInterpolator: injectStringInterpolator,\n  get now () { return now; },\n  injectNow: injectNow,\n  get defaultElement () { return defaultElement; },\n  injectDefaultElement: injectDefaultElement,\n  get animatedApi () { return animatedApi; },\n  injectAnimatedApi: injectAnimatedApi,\n  get createAnimatedStyle () { return createAnimatedStyle; },\n  injectCreateAnimatedStyle: injectCreateAnimatedStyle,\n  get manualFrameloop () { return manualFrameloop; },\n  injectManualFrameloop: injectManualFrameloop\n});\n\n/**\n * Wraps the `style` property with `AnimatedStyle`.\n */\n\nvar AnimatedProps =\n/*#__PURE__*/\nfunction (_AnimatedObject) {\n  _inheritsLoose(AnimatedProps, _AnimatedObject);\n\n  function AnimatedProps(props, callback) {\n    var _this;\n\n    _this = _AnimatedObject.call(this) || this;\n    _this.update = void 0;\n    _this.payload = !props.style ? props : _extends({}, props, {\n      style: createAnimatedStyle(props.style)\n    });\n    _this.update = callback;\n\n    _this.attach();\n\n    return _this;\n  }\n\n  return AnimatedProps;\n}(AnimatedObject);\n\nvar isFunctionComponent = function isFunctionComponent(val) {\n  return is.fun(val) && !(val.prototype instanceof React__default.Component);\n};\n\nvar createAnimatedComponent = function createAnimatedComponent(Component) {\n  var AnimatedComponent = React.forwardRef(function (props, ref) {\n    var forceUpdate = useForceUpdate();\n    var mounted = React.useRef(true);\n    var propsAnimated = React.useRef(null);\n    var node = React.useRef(null);\n    var attachProps = React.useCallback(function (props) {\n      var oldPropsAnimated = propsAnimated.current;\n\n      var callback = function callback() {\n        var didUpdate = false;\n\n        if (node.current) {\n          didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());\n        }\n\n        if (!node.current || didUpdate === false) {\n          // If no referenced node has been found, or the update target didn't have a\n          // native-responder, then forceUpdate the animation ...\n          forceUpdate();\n        }\n      };\n\n      propsAnimated.current = new AnimatedProps(props, callback);\n      oldPropsAnimated && oldPropsAnimated.detach();\n    }, []);\n    React.useEffect(function () {\n      return function () {\n        mounted.current = false;\n        propsAnimated.current && propsAnimated.current.detach();\n      };\n    }, []);\n    React.useImperativeHandle(ref, function () {\n      return animatedApi(node, mounted, forceUpdate);\n    });\n    attachProps(props);\n\n    var _getValue = propsAnimated.current.getValue(),\n        scrollTop = _getValue.scrollTop,\n        scrollLeft = _getValue.scrollLeft,\n        animatedProps = _objectWithoutPropertiesLoose(_getValue, [\"scrollTop\", \"scrollLeft\"]); // Functions cannot have refs, see:\n    // See: https://github.com/react-spring/react-spring/issues/569\n\n\n    var refFn = isFunctionComponent(Component) ? undefined : function (childRef) {\n      return node.current = handleRef(childRef, ref);\n    };\n    return React__default.createElement(Component, _extends({}, animatedProps, {\n      ref: refFn\n    }));\n  });\n  return AnimatedComponent;\n};\n\nvar active = false;\nvar controllers = new Set();\n\nvar update = function update() {\n  if (!active) return false;\n  var time = now();\n\n  for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var controller = _ref;\n    var isActive = false;\n\n    for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n      var config = controller.configs[configIdx];\n      var endOfAnimation = void 0,\n          lastTime = void 0;\n\n      for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n        var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n        if (animation.done) continue;\n        var from = config.fromValues[valIdx];\n        var to = config.toValues[valIdx];\n        var position = animation.lastPosition;\n        var isAnimated = to instanceof Animated;\n        var velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n        if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n        if (config.immediate) {\n          animation.setValue(to);\n          animation.done = true;\n          continue;\n        } // Break animation when string values are involved\n\n\n        if (typeof from === 'string' || typeof to === 'string') {\n          animation.setValue(to);\n          animation.done = true;\n          continue;\n        }\n\n        if (config.duration !== void 0) {\n          /** Duration easing */\n          position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);\n          endOfAnimation = time >= animation.startTime + config.duration;\n        } else if (config.decay) {\n          /** Decay easing */\n          position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));\n          endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n          if (endOfAnimation) to = position;\n        } else {\n          /** Spring easing */\n          lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n          velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n          if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n          var numSteps = Math.floor(time - lastTime);\n\n          for (var i = 0; i < numSteps; ++i) {\n            var force = -config.tension * (position - to);\n            var damping = -config.friction * velocity;\n            var acceleration = (force + damping) / config.mass;\n            velocity = velocity + acceleration * 1 / 1000;\n            position = position + velocity * 1 / 1000;\n          } // Conditions for stopping the spring animation\n\n\n          var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n          var isVelocity = Math.abs(velocity) <= config.precision;\n          var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n          endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n          animation.lastVelocity = velocity;\n          animation.lastTime = time;\n        } // Trails aren't done until their parents conclude\n\n\n        if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n        if (endOfAnimation) {\n          // Ensure that we end up with a round value\n          if (animation.value !== to) position = to;\n          animation.done = true;\n        } else isActive = true;\n\n        animation.setValue(position);\n        animation.lastPosition = position;\n      } // Keep track of updated values only when necessary\n\n\n      if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();\n    } // Update callbacks in the end of the frame\n\n\n    if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame\n\n    if (!isActive) {\n      controllers.delete(controller);\n      controller.stop(true);\n    }\n  } // Loop over as long as there are controllers ...\n\n\n  if (controllers.size) {\n    if (manualFrameloop) manualFrameloop();else requestFrame(update);\n  } else {\n    active = false;\n  }\n\n  return active;\n};\n\nvar start = function start(controller) {\n  if (!controllers.has(controller)) controllers.add(controller);\n\n  if (!active) {\n    active = true;\n    if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);\n  }\n};\n\nvar stop = function stop(controller) {\n  if (controllers.has(controller)) controllers.delete(controller);\n};\n\nfunction createInterpolator(range, output, extrapolate) {\n  if (typeof range === 'function') {\n    return range;\n  }\n\n  if (Array.isArray(range)) {\n    return createInterpolator({\n      range: range,\n      output: output,\n      extrapolate: extrapolate\n    });\n  }\n\n  if (interpolation && typeof range.output[0] === 'string') {\n    return interpolation(range);\n  }\n\n  var config = range;\n  var outputRange = config.output;\n  var inputRange = config.range || [0, 1];\n  var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n  var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n  var easing = config.easing || function (t) {\n    return t;\n  };\n\n  return function (input) {\n    var range = findRange(input, inputRange);\n    return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n  };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n  var result = map ? map(input) : input; // Extrapolate\n\n  if (result < inputMin) {\n    if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n  }\n\n  if (result > inputMax) {\n    if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n  }\n\n  if (outputMin === outputMax) return outputMin;\n  if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n  if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n  result = easing(result); // Output Range\n\n  if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n  return result;\n}\n\nfunction findRange(input, inputRange) {\n  for (var i = 1; i < inputRange.length - 1; ++i) {\n    if (inputRange[i] >= input) break;\n  }\n\n  return i - 1;\n}\n\nvar AnimatedInterpolation =\n/*#__PURE__*/\nfunction (_AnimatedArray) {\n  _inheritsLoose(AnimatedInterpolation, _AnimatedArray);\n\n  function AnimatedInterpolation(parents, range, output, extrapolate) {\n    var _this;\n\n    _this = _AnimatedArray.call(this) || this;\n    _this.calc = void 0;\n    _this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];\n    _this.calc = createInterpolator(range, output, extrapolate);\n    return _this;\n  }\n\n  var _proto = AnimatedInterpolation.prototype;\n\n  _proto.getValue = function getValue() {\n    return this.calc.apply(this, this.payload.map(function (value) {\n      return value.getValue();\n    }));\n  };\n\n  _proto.updateConfig = function updateConfig(range, output, extrapolate) {\n    this.calc = createInterpolator(range, output, extrapolate);\n  };\n\n  _proto.interpolate = function interpolate(range, output, extrapolate) {\n    return new AnimatedInterpolation(this, range, output, extrapolate);\n  };\n\n  return AnimatedInterpolation;\n}(AnimatedArray);\n\nvar interpolate$1 = function interpolate(parents, range, output) {\n  return parents && new AnimatedInterpolation(parents, range, output);\n};\n\nvar config = {\n  default: {\n    tension: 170,\n    friction: 26\n  },\n  gentle: {\n    tension: 120,\n    friction: 14\n  },\n  wobbly: {\n    tension: 180,\n    friction: 12\n  },\n  stiff: {\n    tension: 210,\n    friction: 20\n  },\n  slow: {\n    tension: 280,\n    friction: 60\n  },\n  molasses: {\n    tension: 280,\n    friction: 120\n  }\n};\n\n/** API\n *  useChain(references, timeSteps, timeFrame)\n */\n\nfunction useChain(refs, timeSteps, timeFrame) {\n  if (timeFrame === void 0) {\n    timeFrame = 1000;\n  }\n\n  var previous = React.useRef();\n  React.useEffect(function () {\n    if (is.equ(refs, previous.current)) refs.forEach(function (_ref) {\n      var current = _ref.current;\n      return current && current.start();\n    });else if (timeSteps) {\n      refs.forEach(function (_ref2, index) {\n        var current = _ref2.current;\n\n        if (current) {\n          var ctrls = current.controllers;\n\n          if (ctrls.length) {\n            var t = timeFrame * timeSteps[index];\n            ctrls.forEach(function (ctrl) {\n              ctrl.queue = ctrl.queue.map(function (e) {\n                return _extends({}, e, {\n                  delay: e.delay + t\n                });\n              });\n              ctrl.start();\n            });\n          }\n        }\n      });\n    } else refs.reduce(function (q, _ref3, rI) {\n      var current = _ref3.current;\n      return q = q.then(function () {\n        return current.start();\n      });\n    }, Promise.resolve());\n    previous.current = refs;\n  });\n}\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n *               new Animated.Value(0)\n *     .interpolate()        .interpolate()    new Animated.Value(1)\n *         opacity               translateY      scale\n *          style                         transform\n *         View#234                         style\n *                                         View#123\n *\n * A) Top Down phase\n * When an AnimatedValue is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction addAnimatedStyles(node, styles) {\n  if ('update' in node) {\n    styles.add(node);\n  } else {\n    node.getChildren().forEach(function (child) {\n      return addAnimatedStyles(child, styles);\n    });\n  }\n}\n\nvar AnimatedValue =\n/*#__PURE__*/\nfunction (_Animated) {\n  _inheritsLoose(AnimatedValue, _Animated);\n\n  function AnimatedValue(_value) {\n    var _this;\n\n    _this = _Animated.call(this) || this;\n    _this.animatedStyles = new Set();\n    _this.value = void 0;\n    _this.startPosition = void 0;\n    _this.lastPosition = void 0;\n    _this.lastVelocity = void 0;\n    _this.startTime = void 0;\n    _this.lastTime = void 0;\n    _this.done = false;\n\n    _this.setValue = function (value, flush) {\n      if (flush === void 0) {\n        flush = true;\n      }\n\n      _this.value = value;\n      if (flush) _this.flush();\n    };\n\n    _this.value = _value;\n    _this.startPosition = _value;\n    _this.lastPosition = _value;\n    return _this;\n  }\n\n  var _proto = AnimatedValue.prototype;\n\n  _proto.flush = function flush() {\n    if (this.animatedStyles.size === 0) {\n      addAnimatedStyles(this, this.animatedStyles);\n    }\n\n    this.animatedStyles.forEach(function (animatedStyle) {\n      return animatedStyle.update();\n    });\n  };\n\n  _proto.clearStyles = function clearStyles() {\n    this.animatedStyles.clear();\n  };\n\n  _proto.getValue = function getValue() {\n    return this.value;\n  };\n\n  _proto.interpolate = function interpolate(range, output, extrapolate) {\n    return new AnimatedInterpolation(this, range, output, extrapolate);\n  };\n\n  return AnimatedValue;\n}(Animated);\n\nvar AnimatedValueArray =\n/*#__PURE__*/\nfunction (_AnimatedArray) {\n  _inheritsLoose(AnimatedValueArray, _AnimatedArray);\n\n  function AnimatedValueArray(values) {\n    var _this;\n\n    _this = _AnimatedArray.call(this) || this;\n    _this.payload = values.map(function (n) {\n      return new AnimatedValue(n);\n    });\n    return _this;\n  }\n\n  var _proto = AnimatedValueArray.prototype;\n\n  _proto.setValue = function setValue(value, flush) {\n    var _this2 = this;\n\n    if (flush === void 0) {\n      flush = true;\n    }\n\n    if (Array.isArray(value)) {\n      if (value.length === this.payload.length) {\n        value.forEach(function (v, i) {\n          return _this2.payload[i].setValue(v, flush);\n        });\n      }\n    } else {\n      this.payload.forEach(function (p) {\n        return p.setValue(value, flush);\n      });\n    }\n  };\n\n  _proto.getValue = function getValue() {\n    return this.payload.map(function (v) {\n      return v.getValue();\n    });\n  };\n\n  _proto.interpolate = function interpolate(range, output) {\n    return new AnimatedInterpolation(this, range, output);\n  };\n\n  return AnimatedValueArray;\n}(AnimatedArray);\n\nvar G = 0;\n\nvar Controller =\n/*#__PURE__*/\nfunction () {\n  function Controller() {\n    var _this = this;\n\n    this.id = void 0;\n    this.idle = true;\n    this.hasChanged = false;\n    this.guid = 0;\n    this.local = 0;\n    this.props = {};\n    this.merged = {};\n    this.animations = {};\n    this.interpolations = {};\n    this.values = {};\n    this.configs = [];\n    this.listeners = [];\n    this.queue = [];\n    this.localQueue = void 0;\n\n    this.getValues = function () {\n      return _this.interpolations;\n    };\n\n    this.id = G++;\n  }\n  /** update(props)\n   *  This function filters input props and creates an array of tasks which are executed in .start()\n   *  Each task is allowed to carry a delay, which means it can execute asnychroneously */\n\n\n  var _proto = Controller.prototype;\n\n  _proto.update = function update$$1(args) {\n    //this._id = n + this.id\n    if (!args) return this; // Extract delay and the to-prop from props\n\n    var _ref = interpolateTo(args),\n        _ref$delay = _ref.delay,\n        delay = _ref$delay === void 0 ? 0 : _ref$delay,\n        to = _ref.to,\n        props = _objectWithoutPropertiesLoose(_ref, [\"delay\", \"to\"]);\n\n    if (is.arr(to) || is.fun(to)) {\n      // If config is either a function or an array queue it up as is\n      this.queue.push(_extends({}, props, {\n        delay: delay,\n        to: to\n      }));\n    } else if (to) {\n      // Otherwise go through each key since it could be delayed individually\n      var ops = {};\n      Object.entries(to).forEach(function (_ref2) {\n        var _to;\n\n        var k = _ref2[0],\n            v = _ref2[1];\n\n        // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props\n        var entry = _extends({\n          to: (_to = {}, _to[k] = v, _to),\n          delay: callProp(delay, k)\n        }, props);\n\n        var previous = ops[entry.delay] && ops[entry.delay].to;\n        ops[entry.delay] = _extends({}, ops[entry.delay], entry, {\n          to: _extends({}, previous, entry.to)\n        });\n      });\n      this.queue = Object.values(ops);\n    } // Sort queue, so that async calls go last\n\n\n    this.queue = this.queue.sort(function (a, b) {\n      return a.delay - b.delay;\n    }); // Diff the reduced props immediately (they'll contain the from-prop and some config)\n\n    this.diff(props);\n    return this;\n  }\n  /** start(onEnd)\n   *  This function either executes a queue, if present, or starts the frameloop, which animates */\n  ;\n\n  _proto.start = function start$$1(onEnd) {\n    var _this2 = this;\n\n    // If a queue is present we must excecute it\n    if (this.queue.length) {\n      this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values\n\n      if (this.localQueue) {\n        this.localQueue.forEach(function (_ref3) {\n          var _ref3$from = _ref3.from,\n              from = _ref3$from === void 0 ? {} : _ref3$from,\n              _ref3$to = _ref3.to,\n              to = _ref3$to === void 0 ? {} : _ref3$to;\n          if (is.obj(from)) _this2.merged = _extends({}, from, _this2.merged);\n          if (is.obj(to)) _this2.merged = _extends({}, _this2.merged, to);\n        });\n      } // The guid helps us tracking frames, a new queue over an old one means an override\n      // We discard async calls in that caseÍ\n\n\n      var local = this.local = ++this.guid;\n      var queue = this.localQueue = this.queue;\n      this.queue = []; // Go through each entry and execute it\n\n      queue.forEach(function (_ref4, index) {\n        var delay = _ref4.delay,\n            props = _objectWithoutPropertiesLoose(_ref4, [\"delay\"]);\n\n        var cb = function cb(finished) {\n          if (index === queue.length - 1 && local === _this2.guid && finished) {\n            _this2.idle = true;\n            if (_this2.props.onRest) _this2.props.onRest(_this2.merged);\n          }\n\n          if (onEnd) onEnd();\n        }; // Entries can be delayed, ansyc or immediate\n\n\n        var async = is.arr(props.to) || is.fun(props.to);\n\n        if (delay) {\n          setTimeout(function () {\n            if (local === _this2.guid) {\n              if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);\n            }\n          }, delay);\n        } else if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);\n      });\n    } // Otherwise we kick of the frameloop\n    else {\n        if (is.fun(onEnd)) this.listeners.push(onEnd);\n        if (this.props.onStart) this.props.onStart();\n\n        start(this);\n      }\n\n    return this;\n  };\n\n  _proto.stop = function stop$$1(finished) {\n    this.listeners.forEach(function (onEnd) {\n      return onEnd(finished);\n    });\n    this.listeners = [];\n    return this;\n  }\n  /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */\n  ;\n\n  _proto.pause = function pause(finished) {\n    this.stop(true);\n    if (finished) stop(this);\n    return this;\n  };\n\n  _proto.runAsync = function runAsync(_ref5, onEnd) {\n    var _this3 = this;\n\n    var delay = _ref5.delay,\n        props = _objectWithoutPropertiesLoose(_ref5, [\"delay\"]);\n\n    var local = this.local; // If \"to\" is either a function or an array it will be processed async, therefor \"to\" should be empty right now\n    // If the view relies on certain values \"from\" has to be present\n\n    var queue = Promise.resolve(undefined);\n\n    if (is.arr(props.to)) {\n      var _loop = function _loop(i) {\n        var index = i;\n\n        var fresh = _extends({}, props, interpolateTo(props.to[index]));\n\n        if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n        queue = queue.then(function () {\n          //this.stop()\n          if (local === _this3.guid) return new Promise(function (r) {\n            return _this3.diff(fresh).start(r);\n          });\n        });\n      };\n\n      for (var i = 0; i < props.to.length; i++) {\n        _loop(i);\n      }\n    } else if (is.fun(props.to)) {\n      var index = 0;\n      var last;\n      queue = queue.then(function () {\n        return props.to( // next(props)\n        function (p) {\n          var fresh = _extends({}, props, interpolateTo(p));\n\n          if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n          index++; //this.stop()\n\n          if (local === _this3.guid) return last = new Promise(function (r) {\n            return _this3.diff(fresh).start(r);\n          });\n          return;\n        }, // cancel()\n        function (finished) {\n          if (finished === void 0) {\n            finished = true;\n          }\n\n          return _this3.stop(finished);\n        }).then(function () {\n          return last;\n        });\n      });\n    }\n\n    queue.then(onEnd);\n  };\n\n  _proto.diff = function diff(props) {\n    var _this4 = this;\n\n    this.props = _extends({}, this.props, props);\n    var _this$props = this.props,\n        _this$props$from = _this$props.from,\n        from = _this$props$from === void 0 ? {} : _this$props$from,\n        _this$props$to = _this$props.to,\n        to = _this$props$to === void 0 ? {} : _this$props$to,\n        _this$props$config = _this$props.config,\n        config = _this$props$config === void 0 ? {} : _this$props$config,\n        reverse = _this$props.reverse,\n        attach = _this$props.attach,\n        reset = _this$props.reset,\n        immediate = _this$props.immediate; // Reverse values when requested\n\n    if (reverse) {\n      var _ref6 = [to, from];\n      from = _ref6[0];\n      to = _ref6[1];\n    } // This will collect all props that were ever set, reset merged props when necessary\n\n\n    this.merged = _extends({}, from, this.merged, to);\n    this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n    var target = attach && attach(this); // Reduces input { name: value } pairs into animated values\n\n    this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) {\n      var name = _ref7[0],\n          value = _ref7[1];\n      // Issue cached entries, except on reset\n      var entry = acc[name] || {}; // Figure out what the value is supposed to be\n\n      var isNumber = is.num(value);\n      var isString = is.str(value) && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n      var isArray = is.arr(value);\n      var isInterpolation = !isNumber && !isArray && !isString;\n      var fromValue = !is.und(from[name]) ? from[name] : value;\n      var toValue = isNumber || isArray ? value : isString ? value : 1;\n      var toConfig = callProp(config, name);\n      if (target) toValue = target.animations[name].parent;\n      var parent = entry.parent,\n          interpolation$$1 = entry.interpolation,\n          toValues = toArray(target ? toValue.getPayload() : toValue),\n          animatedValues;\n      var newValue = value;\n      if (isInterpolation) newValue = interpolation({\n        range: [0, 1],\n        output: [value, value]\n      })(1);\n      var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags\n\n      var isFirst = is.und(parent);\n      var isActive = !isFirst && entry.animatedValues.some(function (v) {\n        return !v.done;\n      });\n      var currentValueDiffersFromGoal = !is.equ(newValue, currentValue);\n      var hasNewGoal = !is.equ(newValue, entry.previous);\n      var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)\n      // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)\n\n      if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {\n        var _extends2;\n\n        // Convert regular values into animated values, ALWAYS re-use if possible\n        if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {\n          var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n          prev = prev !== void 0 && !reset ? prev : fromValue;\n\n          if (entry.parent) {\n            parent = entry.parent;\n            parent.setValue(0, false);\n          } else parent = new AnimatedValue(0);\n\n          var range = {\n            output: [prev, value]\n          };\n\n          if (entry.interpolation) {\n            interpolation$$1 = entry.interpolation;\n            entry.interpolation.updateConfig(range);\n          } else interpolation$$1 = parent.interpolate(range);\n        }\n        toValues = toArray(target ? toValue.getPayload() : toValue);\n        animatedValues = toArray(parent.getPayload());\n        if (reset && !isInterpolation) parent.setValue(fromValue, false);\n        _this4.hasChanged = true; // Reset animated values\n\n        animatedValues.forEach(function (value) {\n          value.startPosition = value.value;\n          value.lastPosition = value.value;\n          value.lastVelocity = isActive ? value.lastVelocity : undefined;\n          value.lastTime = isActive ? value.lastTime : undefined;\n          value.startTime = now();\n          value.done = false;\n          value.animatedStyles.clear();\n        }); // Set immediate values\n\n        if (callProp(immediate, name)) {\n          parent.setValue(isInterpolation ? toValue : value, false);\n        }\n\n        return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {\n          name: name,\n          parent: parent,\n          interpolation: interpolation$$1,\n          animatedValues: animatedValues,\n          toValues: toValues,\n          previous: newValue,\n          config: toConfig,\n          fromValues: toArray(parent.getValue()),\n          immediate: callProp(immediate, name),\n          initialVelocity: withDefault(toConfig.velocity, 0),\n          clamp: withDefault(toConfig.clamp, false),\n          precision: withDefault(toConfig.precision, 0.01),\n          tension: withDefault(toConfig.tension, 170),\n          friction: withDefault(toConfig.friction, 26),\n          mass: withDefault(toConfig.mass, 1),\n          duration: toConfig.duration,\n          easing: withDefault(toConfig.easing, function (t) {\n            return t;\n          }),\n          decay: toConfig.decay\n        }), _extends2));\n      } else {\n        if (!currentValueDiffersFromGoal) {\n          var _extends3;\n\n          // So ... the current target value (newValue) appears to be different from the previous value,\n          // which normally constitutes an update, but the actual value (currentValue) matches the target!\n          // In order to resolve this without causing an animation update we silently flag the animation as done,\n          // which it technically is. Interpolations also needs a config update with their target set to 1.\n          if (isInterpolation) {\n            parent.setValue(1, false);\n            interpolation$$1.updateConfig({\n              output: [newValue, newValue]\n            });\n          }\n\n          parent.done = true;\n          _this4.hasChanged = true;\n          return _extends({}, acc, (_extends3 = {}, _extends3[name] = _extends({}, acc[name], {\n            previous: newValue\n          }), _extends3));\n        }\n\n        return acc;\n      }\n    }, this.animations);\n\n    if (this.hasChanged) {\n      // Make animations available to frameloop\n      this.configs = Object.values(this.animations);\n      this.values = {};\n      this.interpolations = {};\n\n      for (var key in this.animations) {\n        this.interpolations[key] = this.animations[key].interpolation;\n        this.values[key] = this.animations[key].interpolation.getValue();\n      }\n    }\n\n    return this;\n  };\n\n  _proto.destroy = function destroy() {\n    this.stop();\n    this.props = {};\n    this.merged = {};\n    this.animations = {};\n    this.interpolations = {};\n    this.values = {};\n    this.configs = [];\n    this.local = 0;\n  };\n\n  return Controller;\n}();\n\n/** API\n * const props = useSprings(number, [{ ... }, { ... }, ...])\n * const [props, set] = useSprings(number, (i, controller) => ({ ... }))\n */\n\nvar useSprings = function useSprings(length, props) {\n  var mounted = React.useRef(false);\n  var ctrl = React.useRef();\n  var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations\n\n  var _useMemo = React.useMemo(function () {\n    // Remove old controllers\n    if (ctrl.current) {\n      ctrl.current.map(function (c) {\n        return c.destroy();\n      });\n      ctrl.current = undefined;\n    }\n\n    var ref;\n    return [new Array(length).fill().map(function (_, i) {\n      var ctrl = new Controller();\n      var newProps = isFn ? callProp(props, i, ctrl) : props[i];\n      if (i === 0) ref = newProps.ref;\n      ctrl.update(newProps);\n      if (!ref) ctrl.start();\n      return ctrl;\n    }), ref];\n  }, [length]),\n      controllers = _useMemo[0],\n      ref = _useMemo[1];\n\n  ctrl.current = controllers; // The hooks reference api gets defined here ...\n\n  var api = React.useImperativeHandle(ref, function () {\n    return {\n      start: function start() {\n        return Promise.all(ctrl.current.map(function (c) {\n          return new Promise(function (r) {\n            return c.start(r);\n          });\n        }));\n      },\n      stop: function stop(finished) {\n        return ctrl.current.forEach(function (c) {\n          return c.stop(finished);\n        });\n      },\n\n      get controllers() {\n        return ctrl.current;\n      }\n\n    };\n  }); // This function updates the controllers\n\n  var updateCtrl = React.useMemo(function () {\n    return function (updateProps) {\n      return ctrl.current.map(function (c, i) {\n        c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);\n        if (!ref) c.start();\n      });\n    };\n  }, [length]); // Update controller if props aren't functional\n\n  React.useEffect(function () {\n    if (mounted.current) {\n      if (!isFn) updateCtrl(props);\n    } else if (!ref) ctrl.current.forEach(function (c) {\n      return c.start();\n    });\n  }); // Update mounted flag and destroy controller on unmount\n\n  React.useEffect(function () {\n    return mounted.current = true, function () {\n      return ctrl.current.forEach(function (c) {\n        return c.destroy();\n      });\n    };\n  }, []); // Return animated props, or, anim-props + the update-setter above\n\n  var propValues = ctrl.current.map(function (c) {\n    return c.getValues();\n  });\n  return isFn ? [propValues, updateCtrl, function (finished) {\n    return ctrl.current.forEach(function (c) {\n      return c.pause(finished);\n    });\n  }] : propValues;\n};\n\n/** API\n * const props = useSpring({ ... })\n * const [props, set] = useSpring(() => ({ ... }))\n */\n\nvar useSpring = function useSpring(props) {\n  var isFn = is.fun(props);\n\n  var _useSprings = useSprings(1, isFn ? props : [props]),\n      result = _useSprings[0],\n      set = _useSprings[1],\n      pause = _useSprings[2];\n\n  return isFn ? [result[0], set, pause] : result;\n};\n\n/** API\n * const trails = useTrail(number, { ... })\n * const [trails, set] = useTrail(number, () => ({ ... }))\n */\n\nvar useTrail = function useTrail(length, props) {\n  var mounted = React.useRef(false);\n  var isFn = is.fun(props);\n  var updateProps = callProp(props);\n  var instances = React.useRef();\n\n  var _useSprings = useSprings(length, function (i, ctrl) {\n    if (i === 0) instances.current = [];\n    instances.current.push(ctrl);\n    return _extends({}, updateProps, {\n      config: callProp(updateProps.config, i),\n      attach: i > 0 && function () {\n        return instances.current[i - 1];\n      }\n    });\n  }),\n      result = _useSprings[0],\n      set = _useSprings[1],\n      pause = _useSprings[2]; // Set up function to update controller\n\n\n  var updateCtrl = React.useMemo(function () {\n    return function (props) {\n      return set(function (i, ctrl) {\n        var last = props.reverse ? i === 0 : length - 1 === i;\n        var attachIdx = props.reverse ? i + 1 : i - 1;\n        var attachController = instances.current[attachIdx];\n        return _extends({}, props, {\n          config: callProp(props.config || updateProps.config, i),\n          attach: attachController && function () {\n            return attachController;\n          }\n        });\n      });\n    };\n  }, [length, updateProps.reverse]); // Update controller if props aren't functional\n\n  React.useEffect(function () {\n    return void (mounted.current && !isFn && updateCtrl(props));\n  }); // Update mounted flag and destroy controller on unmount\n\n  React.useEffect(function () {\n    return void (mounted.current = true);\n  }, []);\n  return isFn ? [result, updateCtrl, pause] : result;\n};\n\n/** API\n * const transitions = useTransition(items, itemKeys, { ... })\n * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))\n */\n\nvar guid = 0;\nvar ENTER = 'enter';\nvar LEAVE = 'leave';\nvar UPDATE = 'update';\n\nvar mapKeys = function mapKeys(items, keys) {\n  return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);\n};\n\nvar get = function get(props) {\n  var items = props.items,\n      _props$keys = props.keys,\n      keys = _props$keys === void 0 ? function (item) {\n    return item;\n  } : _props$keys,\n      rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n  items = toArray(items !== void 0 ? items : null);\n  return _extends({\n    items: items,\n    keys: mapKeys(items, keys)\n  }, rest);\n};\n\nfunction useTransition(input, keyTransform, config) {\n  var props = _extends({\n    items: input,\n    keys: keyTransform || function (i) {\n      return i;\n    }\n  }, config);\n\n  var _get = get(props),\n      _get$lazy = _get.lazy,\n      lazy = _get$lazy === void 0 ? false : _get$lazy,\n      _get$unique = _get.unique,\n      _get$reset = _get.reset,\n      reset = _get$reset === void 0 ? false : _get$reset,\n      enter = _get.enter,\n      leave = _get.leave,\n      update = _get.update,\n      onDestroyed = _get.onDestroyed,\n      keys = _get.keys,\n      items = _get.items,\n      onFrame = _get.onFrame,\n      _onRest = _get.onRest,\n      onStart = _get.onStart,\n      ref = _get.ref,\n      extra = _objectWithoutPropertiesLoose(_get, [\"lazy\", \"unique\", \"reset\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"ref\"]);\n\n  var forceUpdate = useForceUpdate();\n  var mounted = React.useRef(false);\n  var state = React.useRef({\n    mounted: false,\n    first: true,\n    deleted: [],\n    current: {},\n    transitions: [],\n    prevProps: {},\n    paused: !!props.ref,\n    instances: !mounted.current && new Map(),\n    forceUpdate: forceUpdate\n  });\n  React.useImperativeHandle(props.ref, function () {\n    return {\n      start: function start() {\n        return Promise.all(Array.from(state.current.instances).map(function (_ref) {\n          var c = _ref[1];\n          return new Promise(function (r) {\n            return c.start(r);\n          });\n        }));\n      },\n      stop: function stop(finished) {\n        return Array.from(state.current.instances).forEach(function (_ref2) {\n          var c = _ref2[1];\n          return c.stop(finished);\n        });\n      },\n\n      get controllers() {\n        return Array.from(state.current.instances).map(function (_ref3) {\n          var c = _ref3[1];\n          return c;\n        });\n      }\n\n    };\n  }); // Update state\n\n  state.current = diffItems(state.current, props);\n\n  if (state.current.changed) {\n    // Update state\n    state.current.transitions.forEach(function (transition) {\n      var slot = transition.slot,\n          from = transition.from,\n          to = transition.to,\n          config = transition.config,\n          trail = transition.trail,\n          key = transition.key,\n          item = transition.item;\n      if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object\n\n      var ctrl = state.current.instances.get(key);\n\n      var newProps = _extends({}, extra, {\n        to: to,\n        from: from,\n        config: config,\n        ref: ref,\n        onRest: function onRest(values) {\n          if (state.current.mounted) {\n            if (transition.destroyed) {\n              // If no ref is given delete destroyed items immediately\n              if (!ref && !lazy) cleanUp(state, key);\n              if (onDestroyed) onDestroyed(item);\n            } // A transition comes to rest once all its springs conclude\n\n\n            var curInstances = Array.from(state.current.instances);\n            var active = curInstances.some(function (_ref4) {\n              var c = _ref4[1];\n              return !c.idle;\n            });\n            if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);\n            if (_onRest) _onRest(item, slot, values);\n          }\n        },\n        onStart: onStart && function () {\n          return onStart(item, slot);\n        },\n        onFrame: onFrame && function (values) {\n          return onFrame(item, slot, values);\n        },\n        delay: trail,\n        reset: reset && slot === ENTER // Update controller\n\n      });\n\n      ctrl.update(newProps);\n      if (!state.current.paused) ctrl.start();\n    });\n  }\n\n  React.useEffect(function () {\n    state.current.mounted = mounted.current = true;\n    return function () {\n      state.current.mounted = mounted.current = false;\n      Array.from(state.current.instances).map(function (_ref5) {\n        var c = _ref5[1];\n        return c.destroy();\n      });\n      state.current.instances.clear();\n    };\n  }, []);\n  return state.current.transitions.map(function (_ref6) {\n    var item = _ref6.item,\n        slot = _ref6.slot,\n        key = _ref6.key;\n    return {\n      item: item,\n      key: key,\n      state: slot,\n      props: state.current.instances.get(key).getValues()\n    };\n  });\n}\n\nfunction cleanUp(state, filterKey) {\n  var deleted = state.current.deleted;\n\n  var _loop = function _loop() {\n    if (_isArray) {\n      if (_i >= _iterator.length) return \"break\";\n      _ref8 = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) return \"break\";\n      _ref8 = _i.value;\n    }\n\n    var _ref7 = _ref8;\n    var key = _ref7.key;\n\n    var filter = function filter(t) {\n      return t.key !== key;\n    };\n\n    if (is.und(filterKey) || filterKey === key) {\n      state.current.instances.delete(key);\n      state.current.transitions = state.current.transitions.filter(filter);\n      state.current.deleted = state.current.deleted.filter(filter);\n    }\n  };\n\n  for (var _iterator = deleted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n    var _ref8;\n\n    var _ret = _loop();\n\n    if (_ret === \"break\") break;\n  }\n\n  state.current.forceUpdate();\n}\n\nfunction diffItems(_ref9, props) {\n  var first = _ref9.first,\n      prevProps = _ref9.prevProps,\n      state = _objectWithoutPropertiesLoose(_ref9, [\"first\", \"prevProps\"]);\n\n  var _get2 = get(props),\n      items = _get2.items,\n      keys = _get2.keys,\n      initial = _get2.initial,\n      from = _get2.from,\n      enter = _get2.enter,\n      leave = _get2.leave,\n      update = _get2.update,\n      _get2$trail = _get2.trail,\n      trail = _get2$trail === void 0 ? 0 : _get2$trail,\n      unique = _get2.unique,\n      config = _get2.config,\n      _get2$order = _get2.order,\n      order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;\n\n  var _get3 = get(prevProps),\n      _keys = _get3.keys,\n      _items = _get3.items;\n\n  var current = _extends({}, state.current);\n\n  var deleted = [].concat(state.deleted); // Compare next keys with current keys\n\n  var currentKeys = Object.keys(current);\n  var currentSet = new Set(currentKeys);\n  var nextSet = new Set(keys);\n  var added = keys.filter(function (item) {\n    return !currentSet.has(item);\n  });\n  var removed = state.transitions.filter(function (item) {\n    return !item.destroyed && !nextSet.has(item.originalKey);\n  }).map(function (i) {\n    return i.originalKey;\n  });\n  var updated = keys.filter(function (item) {\n    return currentSet.has(item);\n  });\n  var delay = -trail;\n\n  while (order.length) {\n    var changeType = order.shift();\n\n    switch (changeType) {\n      case ENTER:\n        {\n          added.forEach(function (key, index) {\n            // In unique mode, remove fading out transitions if their key comes in again\n            if (unique && deleted.find(function (d) {\n              return d.originalKey === key;\n            })) deleted = deleted.filter(function (t) {\n              return t.originalKey !== key;\n            });\n            var keyIndex = keys.indexOf(key);\n            var item = items[keyIndex];\n            var slot = first && initial !== void 0 ? 'initial' : ENTER;\n            current[key] = {\n              slot: slot,\n              originalKey: key,\n              key: unique ? String(key) : guid++,\n              item: item,\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n              to: callProp(enter, item)\n            };\n          });\n          break;\n        }\n\n      case LEAVE:\n        {\n          removed.forEach(function (key) {\n            var keyIndex = _keys.indexOf(key);\n\n            var item = _items[keyIndex];\n            var slot = LEAVE;\n            deleted.unshift(_extends({}, current[key], {\n              slot: slot,\n              destroyed: true,\n              left: _keys[Math.max(0, keyIndex - 1)],\n              right: _keys[Math.min(_keys.length, keyIndex + 1)],\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              to: callProp(leave, item)\n            }));\n            delete current[key];\n          });\n          break;\n        }\n\n      case UPDATE:\n        {\n          updated.forEach(function (key) {\n            var keyIndex = keys.indexOf(key);\n            var item = items[keyIndex];\n            var slot = UPDATE;\n            current[key] = _extends({}, current[key], {\n              item: item,\n              slot: slot,\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              to: callProp(update, item)\n            });\n          });\n          break;\n        }\n    }\n  }\n\n  var out = keys.map(function (key) {\n    return current[key];\n  }); // This tries to restore order for deleted items by finding their last known siblings\n  // only using the left sibling to keep order placement consistent for all deleted items\n\n  deleted.forEach(function (_ref10) {\n    var left = _ref10.left,\n        right = _ref10.right,\n        item = _objectWithoutPropertiesLoose(_ref10, [\"left\", \"right\"]);\n\n    var pos; // Was it the element on the left, if yes, move there ...\n\n    if ((pos = out.findIndex(function (t) {\n      return t.originalKey === left;\n    })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n    pos = Math.max(0, pos);\n    out = [].concat(out.slice(0, pos), [item], out.slice(pos));\n  });\n  return _extends({}, state, {\n    changed: added.length || removed.length || updated.length,\n    first: first && added.length === 0,\n    transitions: out,\n    current: current,\n    deleted: deleted,\n    prevProps: props\n  });\n}\n\nvar AnimatedStyle =\n/*#__PURE__*/\nfunction (_AnimatedObject) {\n  _inheritsLoose(AnimatedStyle, _AnimatedObject);\n\n  function AnimatedStyle(style) {\n    var _this;\n\n    if (style === void 0) {\n      style = {};\n    }\n\n    _this = _AnimatedObject.call(this) || this;\n\n    if (style.transform && !(style.transform instanceof Animated)) {\n      style = applyAnimatedValues.transform(style);\n    }\n\n    _this.payload = style;\n    return _this;\n  }\n\n  return AnimatedStyle;\n}(AnimatedObject);\n\n// http://www.w3.org/TR/css3-color/#svg-color\nvar colors = {\n  transparent: 0x00000000,\n  aliceblue: 0xf0f8ffff,\n  antiquewhite: 0xfaebd7ff,\n  aqua: 0x00ffffff,\n  aquamarine: 0x7fffd4ff,\n  azure: 0xf0ffffff,\n  beige: 0xf5f5dcff,\n  bisque: 0xffe4c4ff,\n  black: 0x000000ff,\n  blanchedalmond: 0xffebcdff,\n  blue: 0x0000ffff,\n  blueviolet: 0x8a2be2ff,\n  brown: 0xa52a2aff,\n  burlywood: 0xdeb887ff,\n  burntsienna: 0xea7e5dff,\n  cadetblue: 0x5f9ea0ff,\n  chartreuse: 0x7fff00ff,\n  chocolate: 0xd2691eff,\n  coral: 0xff7f50ff,\n  cornflowerblue: 0x6495edff,\n  cornsilk: 0xfff8dcff,\n  crimson: 0xdc143cff,\n  cyan: 0x00ffffff,\n  darkblue: 0x00008bff,\n  darkcyan: 0x008b8bff,\n  darkgoldenrod: 0xb8860bff,\n  darkgray: 0xa9a9a9ff,\n  darkgreen: 0x006400ff,\n  darkgrey: 0xa9a9a9ff,\n  darkkhaki: 0xbdb76bff,\n  darkmagenta: 0x8b008bff,\n  darkolivegreen: 0x556b2fff,\n  darkorange: 0xff8c00ff,\n  darkorchid: 0x9932ccff,\n  darkred: 0x8b0000ff,\n  darksalmon: 0xe9967aff,\n  darkseagreen: 0x8fbc8fff,\n  darkslateblue: 0x483d8bff,\n  darkslategray: 0x2f4f4fff,\n  darkslategrey: 0x2f4f4fff,\n  darkturquoise: 0x00ced1ff,\n  darkviolet: 0x9400d3ff,\n  deeppink: 0xff1493ff,\n  deepskyblue: 0x00bfffff,\n  dimgray: 0x696969ff,\n  dimgrey: 0x696969ff,\n  dodgerblue: 0x1e90ffff,\n  firebrick: 0xb22222ff,\n  floralwhite: 0xfffaf0ff,\n  forestgreen: 0x228b22ff,\n  fuchsia: 0xff00ffff,\n  gainsboro: 0xdcdcdcff,\n  ghostwhite: 0xf8f8ffff,\n  gold: 0xffd700ff,\n  goldenrod: 0xdaa520ff,\n  gray: 0x808080ff,\n  green: 0x008000ff,\n  greenyellow: 0xadff2fff,\n  grey: 0x808080ff,\n  honeydew: 0xf0fff0ff,\n  hotpink: 0xff69b4ff,\n  indianred: 0xcd5c5cff,\n  indigo: 0x4b0082ff,\n  ivory: 0xfffff0ff,\n  khaki: 0xf0e68cff,\n  lavender: 0xe6e6faff,\n  lavenderblush: 0xfff0f5ff,\n  lawngreen: 0x7cfc00ff,\n  lemonchiffon: 0xfffacdff,\n  lightblue: 0xadd8e6ff,\n  lightcoral: 0xf08080ff,\n  lightcyan: 0xe0ffffff,\n  lightgoldenrodyellow: 0xfafad2ff,\n  lightgray: 0xd3d3d3ff,\n  lightgreen: 0x90ee90ff,\n  lightgrey: 0xd3d3d3ff,\n  lightpink: 0xffb6c1ff,\n  lightsalmon: 0xffa07aff,\n  lightseagreen: 0x20b2aaff,\n  lightskyblue: 0x87cefaff,\n  lightslategray: 0x778899ff,\n  lightslategrey: 0x778899ff,\n  lightsteelblue: 0xb0c4deff,\n  lightyellow: 0xffffe0ff,\n  lime: 0x00ff00ff,\n  limegreen: 0x32cd32ff,\n  linen: 0xfaf0e6ff,\n  magenta: 0xff00ffff,\n  maroon: 0x800000ff,\n  mediumaquamarine: 0x66cdaaff,\n  mediumblue: 0x0000cdff,\n  mediumorchid: 0xba55d3ff,\n  mediumpurple: 0x9370dbff,\n  mediumseagreen: 0x3cb371ff,\n  mediumslateblue: 0x7b68eeff,\n  mediumspringgreen: 0x00fa9aff,\n  mediumturquoise: 0x48d1ccff,\n  mediumvioletred: 0xc71585ff,\n  midnightblue: 0x191970ff,\n  mintcream: 0xf5fffaff,\n  mistyrose: 0xffe4e1ff,\n  moccasin: 0xffe4b5ff,\n  navajowhite: 0xffdeadff,\n  navy: 0x000080ff,\n  oldlace: 0xfdf5e6ff,\n  olive: 0x808000ff,\n  olivedrab: 0x6b8e23ff,\n  orange: 0xffa500ff,\n  orangered: 0xff4500ff,\n  orchid: 0xda70d6ff,\n  palegoldenrod: 0xeee8aaff,\n  palegreen: 0x98fb98ff,\n  paleturquoise: 0xafeeeeff,\n  palevioletred: 0xdb7093ff,\n  papayawhip: 0xffefd5ff,\n  peachpuff: 0xffdab9ff,\n  peru: 0xcd853fff,\n  pink: 0xffc0cbff,\n  plum: 0xdda0ddff,\n  powderblue: 0xb0e0e6ff,\n  purple: 0x800080ff,\n  rebeccapurple: 0x663399ff,\n  red: 0xff0000ff,\n  rosybrown: 0xbc8f8fff,\n  royalblue: 0x4169e1ff,\n  saddlebrown: 0x8b4513ff,\n  salmon: 0xfa8072ff,\n  sandybrown: 0xf4a460ff,\n  seagreen: 0x2e8b57ff,\n  seashell: 0xfff5eeff,\n  sienna: 0xa0522dff,\n  silver: 0xc0c0c0ff,\n  skyblue: 0x87ceebff,\n  slateblue: 0x6a5acdff,\n  slategray: 0x708090ff,\n  slategrey: 0x708090ff,\n  snow: 0xfffafaff,\n  springgreen: 0x00ff7fff,\n  steelblue: 0x4682b4ff,\n  tan: 0xd2b48cff,\n  teal: 0x008080ff,\n  thistle: 0xd8bfd8ff,\n  tomato: 0xff6347ff,\n  turquoise: 0x40e0d0ff,\n  violet: 0xee82eeff,\n  wheat: 0xf5deb3ff,\n  white: 0xffffffff,\n  whitesmoke: 0xf5f5f5ff,\n  yellow: 0xffff00ff,\n  yellowgreen: 0x9acd32ff\n};\n\n// const INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n    parts[_key] = arguments[_key];\n  }\n\n  return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n  var match;\n\n  if (typeof color === 'number') {\n    return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n  } // Ordered based on occurrences on Facebook codebase\n\n\n  if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n  if (colors.hasOwnProperty(color)) return colors[color];\n\n  if (match = rgb.exec(color)) {\n    return (parse255(match[1]) << 24 | // r\n    parse255(match[2]) << 16 | // g\n    parse255(match[3]) << 8 | // b\n    0x000000ff) >>> // a\n    0;\n  }\n\n  if (match = rgba.exec(color)) {\n    return (parse255(match[1]) << 24 | // r\n    parse255(match[2]) << 16 | // g\n    parse255(match[3]) << 8 | // b\n    parse1(match[4])) >>> // a\n    0;\n  }\n\n  if (match = hex3.exec(color)) {\n    return parseInt(match[1] + match[1] + // r\n    match[2] + match[2] + // g\n    match[3] + match[3] + // b\n    'ff', // a\n    16) >>> 0;\n  } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n  if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n  if (match = hex4.exec(color)) {\n    return parseInt(match[1] + match[1] + // r\n    match[2] + match[2] + // g\n    match[3] + match[3] + // b\n    match[4] + match[4], // a\n    16) >>> 0;\n  }\n\n  if (match = hsl.exec(color)) {\n    return (hslToRgb(parse360(match[1]), // h\n    parsePercentage(match[2]), // s\n    parsePercentage(match[3]) // l\n    ) | 0x000000ff) >>> // a\n    0;\n  }\n\n  if (match = hsla.exec(color)) {\n    return (hslToRgb(parse360(match[1]), // h\n    parsePercentage(match[2]), // s\n    parsePercentage(match[3]) // l\n    ) | parse1(match[4])) >>> // a\n    0;\n  }\n\n  return null;\n}\n\nfunction hue2rgb(p, q, t) {\n  if (t < 0) t += 1;\n  if (t > 1) t -= 1;\n  if (t < 1 / 6) return p + (q - p) * 6 * t;\n  if (t < 1 / 2) return q;\n  if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n  return p;\n}\n\nfunction hslToRgb(h, s, l) {\n  var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n  var p = 2 * l - q;\n  var r = hue2rgb(p, q, h + 1 / 3);\n  var g = hue2rgb(p, q, h);\n  var b = hue2rgb(p, q, h - 1 / 3);\n  return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n  var int = parseInt(str, 10);\n  if (int < 0) return 0;\n  if (int > 255) return 255;\n  return int;\n}\n\nfunction parse360(str) {\n  var int = parseFloat(str);\n  return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n  var num = parseFloat(str);\n  if (num < 0) return 0;\n  if (num > 1) return 255;\n  return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n  // parseFloat conveniently ignores the final %\n  var int = parseFloat(str);\n  if (int < 0) return 0;\n  if (int > 100) return 1;\n  return int / 100;\n}\n\nfunction colorToRgba(input) {\n  var int32Color = normalizeColor(input);\n  if (int32Color === null) return input;\n  int32Color = int32Color || 0;\n  var r = (int32Color & 0xff000000) >>> 24;\n  var g = (int32Color & 0x00ff0000) >>> 16;\n  var b = (int32Color & 0x0000ff00) >>> 8;\n  var a = (int32Color & 0x000000ff) / 255;\n  return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nvar stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nvar colorNamesRegex = new RegExp(\"(\" + Object.keys(colors).join('|') + \")\", 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape.  Supports\n * things like:\n *\n *   rgba(123, 42, 99, 0.36)           // colors\n *   -45deg                            // values with units\n *   0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nvar createStringInterpolator = function createStringInterpolator(config) {\n  // Replace colors with rgba\n  var outputRange = config.output.map(function (rangeValue) {\n    return rangeValue.replace(colorRegex, colorToRgba);\n  }).map(function (rangeValue) {\n    return rangeValue.replace(colorNamesRegex, colorToRgba);\n  });\n  var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n    return [];\n  });\n  outputRange.forEach(function (value) {\n    value.match(stringShapeRegex).forEach(function (number, i) {\n      return outputRanges[i].push(+number);\n    });\n  });\n  var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) {\n    return createInterpolator(_extends({}, config, {\n      output: outputRanges[i]\n    }));\n  });\n  return function (input) {\n    var i = 0;\n    return outputRange[0] // 'rgba(0, 100, 200, 0)'\n    // ->\n    // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n    .replace(stringShapeRegex, function () {\n      return interpolations[i++](input);\n    }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n    // round the opacity (4th column).\n    .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (_, p1, p2, p3, p4) {\n      return \"rgba(\" + Math.round(p1) + \", \" + Math.round(p2) + \", \" + Math.round(p3) + \", \" + p4 + \")\";\n    });\n  };\n};\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  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\nvar prefixKey = function prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nvar prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {\n  prefixes.forEach(function (prefix) {\n    return acc[prefixKey(prefix, prop)] = acc[prop];\n  });\n  return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  if (value == null || typeof value === 'boolean' || value === '') return '';\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n  return ('' + value).trim();\n}\n\nvar attributeCache = {};\ninjectCreateAnimatedStyle(function (style) {\n  return new AnimatedStyle(style);\n});\ninjectDefaultElement('div');\ninjectStringInterpolator(createStringInterpolator);\ninjectColorNames(colors);\ninjectApplyAnimatedValues(function (instance, props) {\n  if (instance.nodeType && instance.setAttribute !== undefined) {\n    var style = props.style,\n        children = props.children,\n        scrollTop = props.scrollTop,\n        scrollLeft = props.scrollLeft,\n        attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n    var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n    if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n    if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n    if (children !== void 0) instance.textContent = children; // Set styles ...\n\n    for (var styleName in style) {\n      if (!style.hasOwnProperty(styleName)) continue;\n      var isCustomProperty = styleName.indexOf('--') === 0;\n      var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n      if (styleName === 'float') styleName = 'cssFloat';\n      if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n    } // Set attributes ...\n\n\n    for (var name in attributes) {\n      // Attributes are written in dash case\n      var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {\n        return '-' + n.toLowerCase();\n      }));\n      if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n    }\n\n    return;\n  } else return false;\n}, function (style) {\n  return style;\n});\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n// Extend animated with all the available THREE elements\nvar apply = merge(createAnimatedComponent, false);\nvar extendedAnimated = apply(domElements);\n\nexports.apply = apply;\nexports.config = config;\nexports.update = update;\nexports.animated = extendedAnimated;\nexports.a = extendedAnimated;\nexports.interpolate = interpolate$1;\nexports.Globals = Globals;\nexports.useSpring = useSpring;\nexports.useTrail = useTrail;\nexports.useTransition = useTransition;\nexports.useChain = useChain;\nexports.useSprings = useSprings;\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 117:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(172);\n\n/***/ }),\n\n/***/ 119:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"shortcode\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(133);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n\n/***/ 139:\n/***/ (function(module, exports) {\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 140:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _toArray; });\n/* harmony import */ var _arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);\n/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35);\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29);\n/* harmony import */ var _nonIterableRest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39);\n\n\n\n\nfunction _toArray(arr) {\n  return Object(_arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(arr) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(arr) || Object(_nonIterableRest__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])();\n}\n\n/***/ }),\n\n/***/ 141:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"wordcount\"]; }());\n\n/***/ }),\n\n/***/ 146:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"tokenList\"]; }());\n\n/***/ }),\n\n/***/ 147:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (close);\n\n\n/***/ }),\n\n/***/ 148:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (check);\n\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 159:\n/***/ (function(module, exports) {\n\nif (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 164:\n/***/ (function(module, exports) {\n\nfunction _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n/***/ }),\n\n/***/ 165:\n/***/ (function(module, exports) {\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n\n/***/ }),\n\n/***/ 166:\n/***/ (function(module, exports) {\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n/***/ }),\n\n/***/ 167:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n            t[p[i]] = s[p[i]];\n    return t;\n};\nexports.__esModule = true;\nvar React = __webpack_require__(16);\nvar PropTypes = __webpack_require__(28);\nvar autosize = __webpack_require__(168);\nvar _getLineHeight = __webpack_require__(169);\nvar getLineHeight = _getLineHeight;\nvar UPDATE = 'autosize:update';\nvar DESTROY = 'autosize:destroy';\nvar RESIZED = 'autosize:resized';\n/**\n * A light replacement for built-in textarea component\n * which automaticaly adjusts its height to match the content\n */\nvar TextareaAutosize = /** @class */ (function (_super) {\n    __extends(TextareaAutosize, _super);\n    function TextareaAutosize() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.state = {\n            lineHeight: null\n        };\n        _this.dispatchEvent = function (EVENT_TYPE) {\n            var event = document.createEvent('Event');\n            event.initEvent(EVENT_TYPE, true, false);\n            _this.textarea.dispatchEvent(event);\n        };\n        _this.updateLineHeight = function () {\n            _this.setState({\n                lineHeight: getLineHeight(_this.textarea)\n            });\n        };\n        _this.onChange = function (e) {\n            var onChange = _this.props.onChange;\n            _this.currentValue = e.currentTarget.value;\n            onChange && onChange(e);\n        };\n        _this.saveDOMNodeRef = function (ref) {\n            var innerRef = _this.props.innerRef;\n            if (innerRef) {\n                innerRef(ref);\n            }\n            _this.textarea = ref;\n        };\n        _this.getLocals = function () {\n            var _a = _this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, props = __rest(_b, [\"onResize\", \"maxRows\", \"onChange\", \"style\", \"innerRef\"]), lineHeight = _a.state.lineHeight, saveDOMNodeRef = _a.saveDOMNodeRef;\n            var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;\n            return __assign({}, props, { saveDOMNodeRef: saveDOMNodeRef, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, onChange: _this.onChange });\n        };\n        return _this;\n    }\n    TextareaAutosize.prototype.componentDidMount = function () {\n        var _this = this;\n        var _a = this.props, onResize = _a.onResize, maxRows = _a.maxRows;\n        if (typeof maxRows === 'number') {\n            this.updateLineHeight();\n        }\n        /*\n          the defer is needed to:\n            - force \"autosize\" to activate the scrollbar when this.props.maxRows is passed\n            - support StyledComponents (see #71)\n        */\n        setTimeout(function () { return autosize(_this.textarea); });\n        if (onResize) {\n            this.textarea.addEventListener(RESIZED, onResize);\n        }\n    };\n    TextareaAutosize.prototype.componentWillUnmount = function () {\n        var onResize = this.props.onResize;\n        if (onResize) {\n            this.textarea.removeEventListener(RESIZED, onResize);\n        }\n        this.dispatchEvent(DESTROY);\n    };\n    TextareaAutosize.prototype.render = function () {\n        var _a = this.getLocals(), children = _a.children, saveDOMNodeRef = _a.saveDOMNodeRef, locals = __rest(_a, [\"children\", \"saveDOMNodeRef\"]);\n        return (React.createElement(\"textarea\", __assign({}, locals, { ref: saveDOMNodeRef }), children));\n    };\n    TextareaAutosize.prototype.componentDidUpdate = function (prevProps) {\n        if (this.props.value !== this.currentValue || this.props.rows !== prevProps.rows) {\n            this.dispatchEvent(UPDATE);\n        }\n    };\n    TextareaAutosize.defaultProps = {\n        rows: 1\n    };\n    TextareaAutosize.propTypes = {\n        rows: PropTypes.number,\n        maxRows: PropTypes.number,\n        onResize: PropTypes.func,\n        innerRef: PropTypes.func\n    };\n    return TextareaAutosize;\n}(React.Component));\nexports[\"default\"] = TextareaAutosize;\n\n\n/***/ }),\n\n/***/ 168:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\tautosize 4.0.2\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else { var mod; }\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});\n\n/***/ }),\n\n/***/ 169:\n/***/ (function(module, exports, __webpack_require__) {\n\n// Load in dependencies\nvar computedStyle = __webpack_require__(170);\n\n/**\n * Calculate the `line-height` of a given node\n * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.\n * @returns {Number} `line-height` of the element in pixels\n */\nfunction lineHeight(node) {\n  // Grab the line-height via style\n  var lnHeightStr = computedStyle(node, 'line-height');\n  var lnHeight = parseFloat(lnHeightStr, 10);\n\n  // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')\n  if (lnHeightStr === lnHeight + '') {\n    // Save the old lineHeight style and update the em unit to the element\n    var _lnHeightStyle = node.style.lineHeight;\n    node.style.lineHeight = lnHeightStr + 'em';\n\n    // Calculate the em based height\n    lnHeightStr = computedStyle(node, 'line-height');\n    lnHeight = parseFloat(lnHeightStr, 10);\n\n    // Revert the lineHeight style\n    if (_lnHeightStyle) {\n      node.style.lineHeight = _lnHeightStyle;\n    } else {\n      delete node.style.lineHeight;\n    }\n  }\n\n  // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)\n  // DEV: `em` units are converted to `pt` in IE6\n  // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length\n  if (lnHeightStr.indexOf('pt') !== -1) {\n    lnHeight *= 4;\n    lnHeight /= 3;\n  // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)\n  } else if (lnHeightStr.indexOf('mm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 25.4;\n  // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)\n  } else if (lnHeightStr.indexOf('cm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 2.54;\n  // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)\n  } else if (lnHeightStr.indexOf('in') !== -1) {\n    lnHeight *= 96;\n  // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)\n  } else if (lnHeightStr.indexOf('pc') !== -1) {\n    lnHeight *= 16;\n  }\n\n  // Continue our computation\n  lnHeight = Math.round(lnHeight);\n\n  // If the line-height is \"normal\", calculate by font-size\n  if (lnHeightStr === 'normal') {\n    // Create a temporary node\n    var nodeName = node.nodeName;\n    var _node = document.createElement(nodeName);\n    _node.innerHTML = '&nbsp;';\n\n    // If we have a text area, reset it to only 1 row\n    // https://github.com/twolfson/line-height/issues/4\n    if (nodeName.toUpperCase() === 'TEXTAREA') {\n      _node.setAttribute('rows', '1');\n    }\n\n    // Set the font-size of the element\n    var fontSizeStr = computedStyle(node, 'font-size');\n    _node.style.fontSize = fontSizeStr;\n\n    // Remove default padding/border which can affect offset height\n    // https://github.com/twolfson/line-height/issues/4\n    // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n    _node.style.padding = '0px';\n    _node.style.border = '0px';\n\n    // Append it to the body\n    var body = document.body;\n    body.appendChild(_node);\n\n    // Assume the line height of the element is the height\n    var height = _node.offsetHeight;\n    lnHeight = height;\n\n    // Remove our child from the DOM\n    body.removeChild(_node);\n  }\n\n  // Return the calculated height\n  return lnHeight;\n}\n\n// Export lineHeight\nmodule.exports = lineHeight;\n\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 170:\n/***/ (function(module, exports) {\n\n// This code has been refactored for 140 bytes\n// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js\nvar computedStyle = function (el, prop, getComputedStyle) {\n  getComputedStyle = window.getComputedStyle;\n\n  // In one fell swoop\n  return (\n    // If we have getComputedStyle\n    getComputedStyle ?\n      // Query it\n      // TODO: From CSS-Query notes, we might need (node, null) for FF\n      getComputedStyle(el) :\n\n    // Otherwise, we are in IE and use currentStyle\n      el.currentStyle\n  )[\n    // Switch to camelCase for CSSOM\n    // DEV: Grabbed from jQuery\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n    prop.replace(/-(\\w)/gi, function (word, letter) {\n      return letter.toUpperCase();\n    })\n  ];\n};\n\nmodule.exports = computedStyle;\n\n\n/***/ }),\n\n/***/ 171:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (closeSmall);\n\n\n/***/ }),\n\n/***/ 172:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar util = __webpack_require__(173);\n\nfunction scrollIntoView(elem, container, config) {\n  config = config || {};\n  // document 归一化到 window\n  if (container.nodeType === 9) {\n    container = util.getWindow(container);\n  }\n\n  var allowHorizontalScroll = config.allowHorizontalScroll;\n  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n  var alignWithTop = config.alignWithTop;\n  var alignWithLeft = config.alignWithLeft;\n  var offsetTop = config.offsetTop || 0;\n  var offsetLeft = config.offsetLeft || 0;\n  var offsetBottom = config.offsetBottom || 0;\n  var offsetRight = config.offsetRight || 0;\n\n  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n  var isWin = util.isWindow(container);\n  var elemOffset = util.offset(elem);\n  var eh = util.outerHeight(elem);\n  var ew = util.outerWidth(elem);\n  var containerOffset = undefined;\n  var ch = undefined;\n  var cw = undefined;\n  var containerScroll = undefined;\n  var diffTop = undefined;\n  var diffBottom = undefined;\n  var win = undefined;\n  var winScroll = undefined;\n  var ww = undefined;\n  var wh = undefined;\n\n  if (isWin) {\n    win = container;\n    wh = util.height(win);\n    ww = util.width(win);\n    winScroll = {\n      left: util.scrollLeft(win),\n      top: util.scrollTop(win)\n    };\n    // elem 相对 container 可视视窗的距离\n    diffTop = {\n      left: elemOffset.left - winScroll.left - offsetLeft,\n      top: elemOffset.top - winScroll.top - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n    };\n    containerScroll = winScroll;\n  } else {\n    containerOffset = util.offset(container);\n    ch = container.clientHeight;\n    cw = container.clientWidth;\n    containerScroll = {\n      left: container.scrollLeft,\n      top: container.scrollTop\n    };\n    // elem 相对 container 可视视窗的距离\n    // 注意边框, offset 是边框到根节点\n    diffTop = {\n      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n    };\n  }\n\n  if (diffTop.top < 0 || diffBottom.top > 0) {\n    // 强制向上\n    if (alignWithTop === true) {\n      util.scrollTop(container, containerScroll.top + diffTop.top);\n    } else if (alignWithTop === false) {\n      util.scrollTop(container, containerScroll.top + diffBottom.top);\n    } else {\n      // 自动调整\n      if (diffTop.top < 0) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  } else {\n    if (!onlyScrollIfNeeded) {\n      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n      if (alignWithTop) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  }\n\n  if (allowHorizontalScroll) {\n    if (diffTop.left < 0 || diffBottom.left > 0) {\n      // 强制向上\n      if (alignWithLeft === true) {\n        util.scrollLeft(container, containerScroll.left + diffTop.left);\n      } else if (alignWithLeft === false) {\n        util.scrollLeft(container, containerScroll.left + diffBottom.left);\n      } else {\n        // 自动调整\n        if (diffTop.left < 0) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    } else {\n      if (!onlyScrollIfNeeded) {\n        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n        if (alignWithLeft) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = scrollIntoView;\n\n/***/ }),\n\n/***/ 173:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n  var box = undefined;\n  var x = undefined;\n  var y = undefined;\n  var doc = elem.ownerDocument;\n  var body = doc.body;\n  var docElem = doc && doc.documentElement;\n  // 根据 GBS 最新数据，A-Grade Browsers 都已支持 getBoundingClientRect 方法，不用再考虑传统的实现方式\n  box = elem.getBoundingClientRect();\n\n  // 注：jQuery 还考虑减去 docElem.clientLeft/clientTop\n  // 但测试发现，这样反而会导致当 html 和 body 有边距/边框样式时，获取的值不正确\n  // 此外，ie6 会忽略 html 的 margin 值，幸运地是没有谁会去设置 html 的 margin\n\n  x = box.left;\n  y = box.top;\n\n  // In IE, most of the time, 2 extra pixels are added to the top and left\n  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and\n  // IE6 standards mode, this border can be overridden by setting the\n  // document element's border to zero -- thus, we cannot rely on the\n  // offset always being 2 pixels.\n\n  // In quirks mode, the offset can be determined by querying the body's\n  // clientLeft/clientTop, but in standards mode, it is found by querying\n  // the document element's clientLeft/clientTop.  Since we already called\n  // getClientBoundingRect we have already forced a reflow, so it is not\n  // too expensive just to query them all.\n\n  // ie 下应该减去窗口的边框吧，毕竟默认 absolute 都是相对窗口定位的\n  // 窗口边框标准是设 documentElement ,quirks 时设置 body\n  // 最好禁止在 body 和 html 上边框 ，但 ie < 9 html 默认有 2px ，减去\n  // 但是非 ie 不可能设置窗口边框，body html 也不是窗口 ,ie 可以通过 html,body 设置\n  // 标准 ie 下 docElem.clientTop 就是 border-top\n  // ie7 html 即窗口边框改变不了。永远为 2\n  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框，即使设了 border-top 也为 0\n\n  x -= docElem.clientLeft || body.clientLeft || 0;\n  y -= docElem.clientTop || body.clientTop || 0;\n\n  return {\n    left: x,\n    top: y\n  };\n}\n\nfunction getScroll(w, top) {\n  var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n  var method = 'scroll' + (top ? 'Top' : 'Left');\n  if (typeof ret !== 'number') {\n    var d = w.document;\n    // ie6,7,8 standard mode\n    ret = d.documentElement[method];\n    if (typeof ret !== 'number') {\n      // quirks mode\n      ret = d.body[method];\n    }\n  }\n  return ret;\n}\n\nfunction getScrollLeft(w) {\n  return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n  return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n  var pos = getClientPosition(el);\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScrollLeft(w);\n  pos.top += getScrollTop(w);\n  return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle_) {\n  var val = '';\n  var d = elem.ownerDocument;\n  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);\n\n  // https://github.com/kissyteam/kissy/issues/61\n  if (computedStyle) {\n    val = computedStyle.getPropertyValue(name) || computedStyle[name];\n  }\n\n  return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n  // currentStyle maybe null\n  // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n  // 当 width/height 设置为百分比时，通过 pixelLeft 方式转换的 width/height 值\n  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n  // 在 ie 下不对，需要直接用 offset 方式\n  // borderWidth 等值也有问题，但考虑到 borderWidth 设为百分比的概率很小，这里就不考虑了\n\n  // From the awesome hack by Dean Edwards\n  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n  // If we're not dealing with a regular pixel number\n  // but a number that has a weird ending, we need to convert it to pixels\n  // exclude left right for relativity\n  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n    // Remember the original values\n    var style = elem.style;\n    var left = style[LEFT];\n    var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n    // prevent flashing of content\n    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n    // Put in the new values to get a computed value out\n    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n    ret = style.pixelLeft + PX;\n\n    // Revert the changed values\n    style[LEFT] = left;\n\n    elem[RUNTIME_STYLE][LEFT] = rsLeft;\n  }\n  return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX = undefined;\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n  for (var i = 0; i < arr.length; i++) {\n    fn(arr[i]);\n  }\n}\n\nfunction isBorderBoxFn(elem) {\n  return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n  var old = {};\n  var style = elem.style;\n  var name = undefined;\n\n  // Remember the old values, and insert the new ones\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      old[name] = style[name];\n      style[name] = options[name];\n    }\n  }\n\n  callback.call(elem);\n\n  // Revert the old values\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      style[name] = old[name];\n    }\n  }\n}\n\nfunction getPBMWidth(elem, props, which) {\n  var value = 0;\n  var prop = undefined;\n  var j = undefined;\n  var i = undefined;\n  for (j = 0; j < props.length; j++) {\n    prop = props[j];\n    if (prop) {\n      for (i = 0; i < which.length; i++) {\n        var cssProp = undefined;\n        if (prop === 'border') {\n          cssProp = prop + which[i] + 'Width';\n        } else {\n          cssProp = prop + which[i];\n        }\n        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n      }\n    }\n  }\n  return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n  // must use == for ie8\n  /* eslint eqeqeq:0 */\n  return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n  domUtils['doc' + name] = function (refWin) {\n    var d = refWin.document;\n    return Math.max(\n    // firefox chrome documentElement.scrollHeight< body.scrollHeight\n    // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n    d.documentElement['scroll' + name],\n    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点？\n    d.body['scroll' + name], domUtils['viewport' + name](d));\n  };\n\n  domUtils['viewport' + name] = function (win) {\n    // pc browser includes scrollbar in window.innerWidth\n    var prop = 'client' + name;\n    var doc = win.document;\n    var body = doc.body;\n    var documentElement = doc.documentElement;\n    var documentElementProp = documentElement[prop];\n    // 标准模式取 documentElement\n    // backcompat 取 body\n    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n  };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra]  'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n  if (isWindow(elem)) {\n    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n  } else if (elem.nodeType === 9) {\n    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n  }\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n  var computedStyle = getComputedStyleX(elem);\n  var isBorderBox = isBorderBoxFn(elem, computedStyle);\n  var cssBoxValue = 0;\n  if (borderBoxValue == null || borderBoxValue <= 0) {\n    borderBoxValue = undefined;\n    // Fall back to computed then un computed css if necessary\n    cssBoxValue = getComputedStyleX(elem, name);\n    if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n      cssBoxValue = elem.style[name] || 0;\n    }\n    // Normalize '', auto, and prepare for extra\n    cssBoxValue = parseFloat(cssBoxValue) || 0;\n  }\n  if (extra === undefined) {\n    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n  }\n  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n  var val = borderBoxValue || cssBoxValue;\n  if (extra === CONTENT_INDEX) {\n    if (borderBoxValueOrIsBorderBox) {\n      return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n    }\n    return cssBoxValue;\n  }\n  if (borderBoxValueOrIsBorderBox) {\n    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);\n    return val + (extra === BORDER_INDEX ? 0 : padding);\n  }\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n  position: 'absolute',\n  visibility: 'hidden',\n  display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n  var val = undefined;\n  var args = arguments;\n  // in case elem is window\n  // elem.offsetWidth === undefined\n  if (elem.offsetWidth !== 0) {\n    val = getWH.apply(undefined, args);\n  } else {\n    swap(elem, cssShow, function () {\n      val = getWH.apply(undefined, args);\n    });\n  }\n  return val;\n}\n\nfunction css(el, name, v) {\n  var value = v;\n  if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n    for (var i in name) {\n      if (name.hasOwnProperty(i)) {\n        css(el, i, name[i]);\n      }\n    }\n    return undefined;\n  }\n  if (typeof value !== 'undefined') {\n    if (typeof value === 'number') {\n      value += 'px';\n    }\n    el.style[name] = value;\n    return undefined;\n  }\n  return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n  var first = name.charAt(0).toUpperCase() + name.slice(1);\n  domUtils['outer' + first] = function (el, includeMargin) {\n    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n  };\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n  domUtils[name] = function (elem, val) {\n    if (val !== undefined) {\n      if (elem) {\n        var computedStyle = getComputedStyleX(elem);\n        var isBorderBox = isBorderBoxFn(elem);\n        if (isBorderBox) {\n          val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n        }\n        return css(elem, name, val);\n      }\n      return undefined;\n    }\n    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n  };\n});\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n  // set position first, in-case top/left are set even on static elem\n  if (css(elem, 'position') === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  var old = getOffset(elem);\n  var ret = {};\n  var current = undefined;\n  var key = undefined;\n\n  for (key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      current = parseFloat(css(elem, key)) || 0;\n      ret[key] = current + offset[key] - old[key];\n    }\n  }\n  css(elem, ret);\n}\n\nmodule.exports = _extends({\n  getWindow: function getWindow(node) {\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  offset: function offset(el, value) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value);\n    } else {\n      return getOffset(el);\n    }\n  },\n\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var ret = {};\n    for (var i in obj) {\n      if (obj.hasOwnProperty(i)) {\n        ret[i] = obj[i];\n      }\n    }\n    var overflow = obj.overflow;\n    if (overflow) {\n      for (var i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ret.overflow[i] = obj.overflow[i];\n        }\n      }\n    }\n    return ret;\n  },\n  scrollLeft: function scrollLeft(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollLeft(w);\n      }\n      window.scrollTo(v, getScrollTop(w));\n    } else {\n      if (v === undefined) {\n        return w.scrollLeft;\n      }\n      w.scrollLeft = v;\n    }\n  },\n  scrollTop: function scrollTop(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollTop(w);\n      }\n      window.scrollTo(getScrollLeft(w), v);\n    } else {\n      if (v === undefined) {\n        return w.scrollTop;\n      }\n      w.scrollTop = v;\n    }\n  },\n\n  viewportWidth: 0,\n  viewportHeight: 0\n}, domUtils);\n\n/***/ }),\n\n/***/ 174:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (link);\n\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 196:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar blockDefault = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (blockDefault);\n\n\n/***/ }),\n\n/***/ 197:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar keyboardReturn = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M16 4h2v9H7v3l-5-4 5-4v3h9V4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (keyboardReturn);\n\n\n/***/ }),\n\n/***/ 198:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (upload);\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n\n/***/ 257:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n/**\n * Redux dispatch multiple actions\n */\n\nfunction multi(_ref) {\n  var dispatch = _ref.dispatch;\n\n  return function (next) {\n    return function (action) {\n      return Array.isArray(action) ? action.filter(Boolean).map(dispatch) : next(action);\n    };\n  };\n}\n\n/**\n * Exports\n */\n\nexports.default = multi;\n\n/***/ }),\n\n/***/ 258:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*istanbul ignore start*/\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.diffChars = diffChars;\nexports.characterDiff = void 0;\n\n/*istanbul ignore end*/\nvar\n/*istanbul ignore start*/\n_base = _interopRequireDefault(__webpack_require__(292))\n/*istanbul ignore end*/\n;\n\n/*istanbul ignore start*/ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*istanbul ignore end*/\nvar characterDiff = new\n/*istanbul ignore start*/\n_base\n/*istanbul ignore end*/\n.\n/*istanbul ignore start*/\ndefault\n/*istanbul ignore end*/\n();\n\n/*istanbul ignore start*/\nexports.characterDiff = characterDiff;\n\n/*istanbul ignore end*/\nfunction diffChars(oldStr, newStr, options) {\n  return characterDiff.diff(oldStr, newStr, options);\n}\n\n\n/***/ }),\n\n/***/ 259:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY     = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n    RE_MQ_EXPRESSION   = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n    RE_MQ_FEATURE      = /^(?:(min|max)-)?(.+)/,\n    RE_LENGTH_UNIT     = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n    RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n    return parseQuery(mediaQuery).some(function (query) {\n        var inverse = query.inverse;\n\n        // Either the parsed or specified `type` is \"all\", or the types must be\n        // equal for a match.\n        var typeMatch = query.type === 'all' || values.type === query.type;\n\n        // Quit early when `type` doesn't match, but take \"not\" into account.\n        if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n            return false;\n        }\n\n        var expressionsMatch = query.expressions.every(function (expression) {\n            var feature  = expression.feature,\n                modifier = expression.modifier,\n                expValue = expression.value,\n                value    = values[feature];\n\n            // Missing or falsy values don't match.\n            if (!value) { return false; }\n\n            switch (feature) {\n                case 'orientation':\n                case 'scan':\n                    return value.toLowerCase() === expValue.toLowerCase();\n\n                case 'width':\n                case 'height':\n                case 'device-width':\n                case 'device-height':\n                    expValue = toPx(expValue);\n                    value    = toPx(value);\n                    break;\n\n                case 'resolution':\n                    expValue = toDpi(expValue);\n                    value    = toDpi(value);\n                    break;\n\n                case 'aspect-ratio':\n                case 'device-aspect-ratio':\n                case /* Deprecated */ 'device-pixel-ratio':\n                    expValue = toDecimal(expValue);\n                    value    = toDecimal(value);\n                    break;\n\n                case 'grid':\n                case 'color':\n                case 'color-index':\n                case 'monochrome':\n                    expValue = parseInt(expValue, 10) || 1;\n                    value    = parseInt(value, 10) || 0;\n                    break;\n            }\n\n            switch (modifier) {\n                case 'min': return value >= expValue;\n                case 'max': return value <= expValue;\n                default   : return value === expValue;\n            }\n        });\n\n        return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n    });\n}\n\nfunction parseQuery(mediaQuery) {\n    return mediaQuery.split(',').map(function (query) {\n        query = query.trim();\n\n        var captures    = query.match(RE_MEDIA_QUERY),\n            modifier    = captures[1],\n            type        = captures[2],\n            expressions = captures[3] || '',\n            parsed      = {};\n\n        parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n        parsed.type    = type ? type.toLowerCase() : 'all';\n\n        // Split expressions into a list.\n        expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n        parsed.expressions = expressions.map(function (expression) {\n            var captures = expression.match(RE_MQ_EXPRESSION),\n                feature  = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n            return {\n                modifier: feature[1],\n                feature : feature[2],\n                value   : captures[2]\n            };\n        });\n\n        return parsed;\n    });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n    var decimal = Number(ratio),\n        numbers;\n\n    if (!decimal) {\n        numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n        decimal = numbers[1] / numbers[2];\n    }\n\n    return decimal;\n}\n\nfunction toDpi(resolution) {\n    var value = parseFloat(resolution),\n        units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n    switch (units) {\n        case 'dpcm': return value / 2.54;\n        case 'dppx': return value * 96;\n        default    : return value;\n    }\n}\n\nfunction toPx(length) {\n    var value = parseFloat(length),\n        units = String(length).match(RE_LENGTH_UNIT)[1];\n\n    switch (units) {\n        case 'em' : return value * 16;\n        case 'rem': return value * 16;\n        case 'cm' : return value * 96 / 2.54;\n        case 'mm' : return value * 96 / 2.54 / 10;\n        case 'in' : return value * 96;\n        case 'pt' : return value * 72;\n        case 'pc' : return value * 72 / 12;\n        default   : return value;\n    }\n}\n\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, exports) {\n\nvar traverse = module.exports = function (obj) {\n    return new Traverse(obj);\n};\n\nfunction Traverse (obj) {\n    this.value = obj;\n}\n\nTraverse.prototype.get = function (ps) {\n    var node = this.value;\n    for (var i = 0; i < ps.length; i ++) {\n        var key = ps[i];\n        if (!node || !hasOwnProperty.call(node, key)) {\n            node = undefined;\n            break;\n        }\n        node = node[key];\n    }\n    return node;\n};\n\nTraverse.prototype.has = function (ps) {\n    var node = this.value;\n    for (var i = 0; i < ps.length; i ++) {\n        var key = ps[i];\n        if (!node || !hasOwnProperty.call(node, key)) {\n            return false;\n        }\n        node = node[key];\n    }\n    return true;\n};\n\nTraverse.prototype.set = function (ps, value) {\n    var node = this.value;\n    for (var i = 0; i < ps.length - 1; i ++) {\n        var key = ps[i];\n        if (!hasOwnProperty.call(node, key)) node[key] = {};\n        node = node[key];\n    }\n    node[ps[i]] = value;\n    return value;\n};\n\nTraverse.prototype.map = function (cb) {\n    return walk(this.value, cb, true);\n};\n\nTraverse.prototype.forEach = function (cb) {\n    this.value = walk(this.value, cb, false);\n    return this.value;\n};\n\nTraverse.prototype.reduce = function (cb, init) {\n    var skip = arguments.length === 1;\n    var acc = skip ? this.value : init;\n    this.forEach(function (x) {\n        if (!this.isRoot || !skip) {\n            acc = cb.call(this, acc, x);\n        }\n    });\n    return acc;\n};\n\nTraverse.prototype.paths = function () {\n    var acc = [];\n    this.forEach(function (x) {\n        acc.push(this.path); \n    });\n    return acc;\n};\n\nTraverse.prototype.nodes = function () {\n    var acc = [];\n    this.forEach(function (x) {\n        acc.push(this.node);\n    });\n    return acc;\n};\n\nTraverse.prototype.clone = function () {\n    var parents = [], nodes = [];\n    \n    return (function clone (src) {\n        for (var i = 0; i < parents.length; i++) {\n            if (parents[i] === src) {\n                return nodes[i];\n            }\n        }\n        \n        if (typeof src === 'object' && src !== null) {\n            var dst = copy(src);\n            \n            parents.push(src);\n            nodes.push(dst);\n            \n            forEach(objectKeys(src), function (key) {\n                dst[key] = clone(src[key]);\n            });\n            \n            parents.pop();\n            nodes.pop();\n            return dst;\n        }\n        else {\n            return src;\n        }\n    })(this.value);\n};\n\nfunction walk (root, cb, immutable) {\n    var path = [];\n    var parents = [];\n    var alive = true;\n    \n    return (function walker (node_) {\n        var node = immutable ? copy(node_) : node_;\n        var modifiers = {};\n        \n        var keepGoing = true;\n        \n        var state = {\n            node : node,\n            node_ : node_,\n            path : [].concat(path),\n            parent : parents[parents.length - 1],\n            parents : parents,\n            key : path.slice(-1)[0],\n            isRoot : path.length === 0,\n            level : path.length,\n            circular : null,\n            update : function (x, stopHere) {\n                if (!state.isRoot) {\n                    state.parent.node[state.key] = x;\n                }\n                state.node = x;\n                if (stopHere) keepGoing = false;\n            },\n            'delete' : function (stopHere) {\n                delete state.parent.node[state.key];\n                if (stopHere) keepGoing = false;\n            },\n            remove : function (stopHere) {\n                if (isArray(state.parent.node)) {\n                    state.parent.node.splice(state.key, 1);\n                }\n                else {\n                    delete state.parent.node[state.key];\n                }\n                if (stopHere) keepGoing = false;\n            },\n            keys : null,\n            before : function (f) { modifiers.before = f },\n            after : function (f) { modifiers.after = f },\n            pre : function (f) { modifiers.pre = f },\n            post : function (f) { modifiers.post = f },\n            stop : function () { alive = false },\n            block : function () { keepGoing = false }\n        };\n        \n        if (!alive) return state;\n        \n        function updateState() {\n            if (typeof state.node === 'object' && state.node !== null) {\n                if (!state.keys || state.node_ !== state.node) {\n                    state.keys = objectKeys(state.node)\n                }\n                \n                state.isLeaf = state.keys.length == 0;\n                \n                for (var i = 0; i < parents.length; i++) {\n                    if (parents[i].node_ === node_) {\n                        state.circular = parents[i];\n                        break;\n                    }\n                }\n            }\n            else {\n                state.isLeaf = true;\n                state.keys = null;\n            }\n            \n            state.notLeaf = !state.isLeaf;\n            state.notRoot = !state.isRoot;\n        }\n        \n        updateState();\n        \n        // use return values to update if defined\n        var ret = cb.call(state, state.node);\n        if (ret !== undefined && state.update) state.update(ret);\n        \n        if (modifiers.before) modifiers.before.call(state, state.node);\n        \n        if (!keepGoing) return state;\n        \n        if (typeof state.node == 'object'\n        && state.node !== null && !state.circular) {\n            parents.push(state);\n            \n            updateState();\n            \n            forEach(state.keys, function (key, i) {\n                path.push(key);\n                \n                if (modifiers.pre) modifiers.pre.call(state, state.node[key], key);\n                \n                var child = walker(state.node[key]);\n                if (immutable && hasOwnProperty.call(state.node, key)) {\n                    state.node[key] = child.node;\n                }\n                \n                child.isLast = i == state.keys.length - 1;\n                child.isFirst = i == 0;\n                \n                if (modifiers.post) modifiers.post.call(state, child);\n                \n                path.pop();\n            });\n            parents.pop();\n        }\n        \n        if (modifiers.after) modifiers.after.call(state, state.node);\n        \n        return state;\n    })(root).node;\n}\n\nfunction copy (src) {\n    if (typeof src === 'object' && src !== null) {\n        var dst;\n        \n        if (isArray(src)) {\n            dst = [];\n        }\n        else if (isDate(src)) {\n            dst = new Date(src.getTime ? src.getTime() : src);\n        }\n        else if (isRegExp(src)) {\n            dst = new RegExp(src);\n        }\n        else if (isError(src)) {\n            dst = { message: src.message };\n        }\n        else if (isBoolean(src)) {\n            dst = new Boolean(src);\n        }\n        else if (isNumber(src)) {\n            dst = new Number(src);\n        }\n        else if (isString(src)) {\n            dst = new String(src);\n        }\n        else if (Object.create && Object.getPrototypeOf) {\n            dst = Object.create(Object.getPrototypeOf(src));\n        }\n        else if (src.constructor === Object) {\n            dst = {};\n        }\n        else {\n            var proto =\n                (src.constructor && src.constructor.prototype)\n                || src.__proto__\n                || {}\n            ;\n            var T = function () {};\n            T.prototype = proto;\n            dst = new T;\n        }\n        \n        forEach(objectKeys(src), function (key) {\n            dst[key] = src[key];\n        });\n        return dst;\n    }\n    else return src;\n}\n\nvar objectKeys = Object.keys || function keys (obj) {\n    var res = [];\n    for (var key in obj) res.push(key)\n    return res;\n};\n\nfunction toS (obj) { return Object.prototype.toString.call(obj) }\nfunction isDate (obj) { return toS(obj) === '[object Date]' }\nfunction isRegExp (obj) { return toS(obj) === '[object RegExp]' }\nfunction isError (obj) { return toS(obj) === '[object Error]' }\nfunction isBoolean (obj) { return toS(obj) === '[object Boolean]' }\nfunction isNumber (obj) { return toS(obj) === '[object Number]' }\nfunction isString (obj) { return toS(obj) === '[object String]' }\n\nvar isArray = Array.isArray || function isArray (xs) {\n    return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nvar forEach = function (xs, fn) {\n    if (xs.forEach) return xs.forEach(fn)\n    else for (var i = 0; i < xs.length; i++) {\n        fn(xs[i], i, xs);\n    }\n};\n\nforEach(objectKeys(Traverse.prototype), function (key) {\n    traverse[key] = function (obj) {\n        var args = [].slice.call(arguments, 1);\n        var t = new Traverse(obj);\n        return t[key].apply(t, args);\n    };\n});\n\nvar hasOwnProperty = Object.hasOwnProperty || function (obj, key) {\n    return key in obj;\n};\n\n\n/***/ }),\n\n/***/ 28:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = __webpack_require__(132)();\n}\n\n\n/***/ }),\n\n/***/ 283:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignLeft);\n\n\n/***/ }),\n\n/***/ 284:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignCenter = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignCenter);\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignRight);\n\n\n/***/ }),\n\n/***/ 286:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (plus);\n\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar search = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (search);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronRight);\n\n\n/***/ }),\n\n/***/ 289:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronLeft);\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 290:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronUp = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M12 8l-6 5.4 1 1.2 5-4.6 5 4.6 1-1.2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronUp);\n\n\n/***/ }),\n\n/***/ 291:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronDown = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M17 9.4L12 14 7 9.4l-1 1.2 6 5.4 6-5.4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronDown);\n\n\n/***/ }),\n\n/***/ 292:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*istanbul ignore start*/\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = Diff;\n\n/*istanbul ignore end*/\nfunction Diff() {}\n\nDiff.prototype = {\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  diff: function diff(oldString, newString) {\n    /*istanbul ignore start*/\n    var\n    /*istanbul ignore end*/\n    options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var callback = options.callback;\n\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n\n    this.options = options;\n    var self = this;\n\n    function done(value) {\n      if (callback) {\n        setTimeout(function () {\n          callback(undefined, value);\n        }, 0);\n        return true;\n      } else {\n        return value;\n      }\n    } // Allow subclasses to massage the input prior to running\n\n\n    oldString = this.castInput(oldString);\n    newString = this.castInput(newString);\n    oldString = this.removeEmpty(this.tokenize(oldString));\n    newString = this.removeEmpty(this.tokenize(newString));\n    var newLen = newString.length,\n        oldLen = oldString.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{\n      newPos: -1,\n      components: []\n    }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n    var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0);\n\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n      // Identity per the equality and tokenizer\n      return done([{\n        value: this.join(newString),\n        count: newString.length\n      }]);\n    } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n    function execEditLength() {\n      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n        var basePath =\n        /*istanbul ignore start*/\n        void 0\n        /*istanbul ignore end*/\n        ;\n\n        var addPath = bestPath[diagonalPath - 1],\n            removePath = bestPath[diagonalPath + 1],\n            _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n        if (addPath) {\n          // No one else is going to attempt to use this value, clear it\n          bestPath[diagonalPath - 1] = undefined;\n        }\n\n        var canAdd = addPath && addPath.newPos + 1 < newLen,\n            canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen;\n\n        if (!canAdd && !canRemove) {\n          // If this path is a terminal then prune\n          bestPath[diagonalPath] = undefined;\n          continue;\n        } // Select the diagonal that we want to branch from. We select the prior\n        // path whose position in the new string is the farthest from the origin\n        // and does not pass the bounds of the diff graph\n\n\n        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n          basePath = clonePath(removePath);\n          self.pushComponent(basePath.components, undefined, true);\n        } else {\n          basePath = addPath; // No need to clone, we've pulled it from the list\n\n          basePath.newPos++;\n          self.pushComponent(basePath.components, true, undefined);\n        }\n\n        _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); // If we have hit the end of both strings, then we are done\n\n        if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) {\n          return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken));\n        } else {\n          // Otherwise track this path as a potential candidate and continue.\n          bestPath[diagonalPath] = basePath;\n        }\n      }\n\n      editLength++;\n    } // Performs the length of edit iteration. Is a bit fugly as this has to support the\n    // sync and async mode which is never fun. Loops over execEditLength until a value\n    // is produced.\n\n\n    if (callback) {\n      (function exec() {\n        setTimeout(function () {\n          // This should not happen, but we want to be safe.\n\n          /* istanbul ignore next */\n          if (editLength > maxEditLength) {\n            return callback();\n          }\n\n          if (!execEditLength()) {\n            exec();\n          }\n        }, 0);\n      })();\n    } else {\n      while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n\n        if (ret) {\n          return ret;\n        }\n      }\n    }\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  pushComponent: function pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n\n    if (last && last.added === added && last.removed === removed) {\n      // We need to clone here as the component clone operation is just\n      // as shallow array clone\n      components[components.length - 1] = {\n        count: last.count + 1,\n        added: added,\n        removed: removed\n      };\n    } else {\n      components.push({\n        count: 1,\n        added: added,\n        removed: removed\n      });\n    }\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) {\n    var newLen = newString.length,\n        oldLen = oldString.length,\n        newPos = basePath.newPos,\n        oldPos = newPos - diagonalPath,\n        commonCount = 0;\n\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) {\n      newPos++;\n      oldPos++;\n      commonCount++;\n    }\n\n    if (commonCount) {\n      basePath.components.push({\n        count: commonCount\n      });\n    }\n\n    basePath.newPos = newPos;\n    return oldPos;\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  equals: function equals(left, right) {\n    if (this.options.comparator) {\n      return this.options.comparator(left, right);\n    } else {\n      return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase();\n    }\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  removeEmpty: function removeEmpty(array) {\n    var ret = [];\n\n    for (var i = 0; i < array.length; i++) {\n      if (array[i]) {\n        ret.push(array[i]);\n      }\n    }\n\n    return ret;\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  castInput: function castInput(value) {\n    return value;\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  tokenize: function tokenize(value) {\n    return value.split('');\n  },\n\n  /*istanbul ignore start*/\n\n  /*istanbul ignore end*/\n  join: function join(chars) {\n    return chars.join('');\n  }\n};\n\nfunction buildValues(diff, components, newString, oldString, useLongestToken) {\n  var componentPos = 0,\n      componentLen = components.length,\n      newPos = 0,\n      oldPos = 0;\n\n  for (; componentPos < componentLen; componentPos++) {\n    var component = components[componentPos];\n\n    if (!component.removed) {\n      if (!component.added && useLongestToken) {\n        var value = newString.slice(newPos, newPos + component.count);\n        value = value.map(function (value, i) {\n          var oldValue = oldString[oldPos + i];\n          return oldValue.length > value.length ? oldValue : value;\n        });\n        component.value = diff.join(value);\n      } else {\n        component.value = diff.join(newString.slice(newPos, newPos + component.count));\n      }\n\n      newPos += component.count; // Common case\n\n      if (!component.added) {\n        oldPos += component.count;\n      }\n    } else {\n      component.value = diff.join(oldString.slice(oldPos, oldPos + component.count));\n      oldPos += component.count; // Reverse add and remove so removes are output first to match common convention\n      // The diffing algorithm is tied to add then remove output and this is the simplest\n      // route to get the desired output with minimal overhead.\n\n      if (componentPos && components[componentPos - 1].added) {\n        var tmp = components[componentPos - 1];\n        components[componentPos - 1] = components[componentPos];\n        components[componentPos] = tmp;\n      }\n    }\n  } // Special case handle for when one terminal is ignored (i.e. whitespace).\n  // For this case we merge the terminal into the prior string and drop the change.\n  // This is only available for string mode.\n\n\n  var lastComponent = components[componentLen - 1];\n\n  if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) {\n    components[componentLen - 2].value += lastComponent.value;\n    components.pop();\n  }\n\n  return components;\n}\n\nfunction clonePath(path) {\n  return {\n    newPos: path.newPos,\n    components: path.components.slice(0)\n  };\n}\n\n\n/***/ }),\n\n/***/ 293:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (moreVertical);\n\n\n/***/ }),\n\n/***/ 294:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar layout = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M2 2h5v11H2V2zm6 0h5v5H8V2zm6 0h4v16h-4V2zM8 8h5v5H8V8zm-6 6h11v4H2v-4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (layout);\n\n\n/***/ }),\n\n/***/ 295:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar pencil = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6zM13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (pencil);\n\n\n/***/ }),\n\n/***/ 296:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar edit = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (edit);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 31:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dom\"]; }());\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 433:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"__experimentalAlignmentHookSettingsProvider\", function() { return /* reexport */ AlignmentHookSettingsProvider; });\n__webpack_require__.d(__webpack_exports__, \"getColorClassName\", function() { return /* reexport */ getColorClassName; });\n__webpack_require__.d(__webpack_exports__, \"getColorObjectByAttributeValues\", function() { return /* reexport */ utils_getColorObjectByAttributeValues; });\n__webpack_require__.d(__webpack_exports__, \"getColorObjectByColorValue\", function() { return /* reexport */ utils_getColorObjectByColorValue; });\n__webpack_require__.d(__webpack_exports__, \"createCustomColorsHOC\", function() { return /* reexport */ createCustomColorsHOC; });\n__webpack_require__.d(__webpack_exports__, \"withColors\", function() { return /* reexport */ withColors; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseColors\", function() { return /* reexport */ __experimentalUseColors; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGetGradientClass\", function() { return /* reexport */ __experimentalGetGradientClass; });\n__webpack_require__.d(__webpack_exports__, \"getGradientValueBySlug\", function() { return /* reexport */ getGradientValueBySlug; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGetGradientObjectByGradientValue\", function() { return /* reexport */ __experimentalGetGradientObjectByGradientValue; });\n__webpack_require__.d(__webpack_exports__, \"getGradientSlugByValue\", function() { return /* reexport */ getGradientSlugByValue; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseGradient\", function() { return /* reexport */ __experimentalUseGradient; });\n__webpack_require__.d(__webpack_exports__, \"getFontSize\", function() { return /* reexport */ utils_getFontSize; });\n__webpack_require__.d(__webpack_exports__, \"getFontSizeClass\", function() { return /* reexport */ getFontSizeClass; });\n__webpack_require__.d(__webpack_exports__, \"getFontSizeObjectByValue\", function() { return /* reexport */ getFontSizeObjectByValue; });\n__webpack_require__.d(__webpack_exports__, \"FontSizePicker\", function() { return /* reexport */ font_size_picker; });\n__webpack_require__.d(__webpack_exports__, \"withFontSizes\", function() { return /* reexport */ with_font_sizes; });\n__webpack_require__.d(__webpack_exports__, \"AlignmentToolbar\", function() { return /* reexport */ alignment_toolbar; });\n__webpack_require__.d(__webpack_exports__, \"Autocomplete\", function() { return /* reexport */ autocomplete; });\n__webpack_require__.d(__webpack_exports__, \"BlockAlignmentToolbar\", function() { return /* reexport */ block_alignment_toolbar; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockAlignmentMatrixToolbar\", function() { return /* reexport */ block_alignment_matrix_toolbar; });\n__webpack_require__.d(__webpack_exports__, \"BlockBreadcrumb\", function() { return /* reexport */ block_breadcrumb; });\n__webpack_require__.d(__webpack_exports__, \"BlockContextProvider\", function() { return /* reexport */ BlockContextProvider; });\n__webpack_require__.d(__webpack_exports__, \"BlockControls\", function() { return /* reexport */ block_controls; });\n__webpack_require__.d(__webpack_exports__, \"BlockColorsStyleSelector\", function() { return /* reexport */ color_style_selector; });\n__webpack_require__.d(__webpack_exports__, \"BlockEdit\", function() { return /* reexport */ block_edit_BlockEdit; });\n__webpack_require__.d(__webpack_exports__, \"useBlockEditContext\", function() { return /* reexport */ useBlockEditContext; });\n__webpack_require__.d(__webpack_exports__, \"BlockFormatControls\", function() { return /* reexport */ block_format_controls; });\n__webpack_require__.d(__webpack_exports__, \"BlockIcon\", function() { return /* reexport */ BlockIcon; });\n__webpack_require__.d(__webpack_exports__, \"BlockNavigationDropdown\", function() { return /* reexport */ dropdown; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockNavigationBlockFill\", function() { return /* reexport */ block_slot_BlockNavigationBlockFill; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockNavigationEditor\", function() { return /* reexport */ BlockNavigationEditor; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockNavigationTree\", function() { return /* reexport */ BlockNavigationTree; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockVariationPicker\", function() { return /* reexport */ block_variation_picker; });\n__webpack_require__.d(__webpack_exports__, \"BlockVerticalAlignmentToolbar\", function() { return /* reexport */ block_vertical_alignment_toolbar; });\n__webpack_require__.d(__webpack_exports__, \"ButtonBlockerAppender\", function() { return /* reexport */ button_block_appender; });\n__webpack_require__.d(__webpack_exports__, \"ColorPalette\", function() { return /* reexport */ color_palette; });\n__webpack_require__.d(__webpack_exports__, \"ColorPaletteControl\", function() { return /* reexport */ ColorPaletteControl; });\n__webpack_require__.d(__webpack_exports__, \"ContrastChecker\", function() { return /* reexport */ contrast_checker; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGradientPicker\", function() { return /* reexport */ gradient_picker; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGradientPickerControl\", function() { return /* reexport */ GradientPickerControl; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGradientPickerPanel\", function() { return /* reexport */ GradientPanel; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalColorGradientControl\", function() { return /* reexport */ control; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalPanelColorGradientSettings\", function() { return /* reexport */ panel_color_gradient_settings; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalImageSizeControl\", function() { return /* reexport */ ImageSizeControl; });\n__webpack_require__.d(__webpack_exports__, \"InnerBlocks\", function() { return /* reexport */ inner_blocks; });\n__webpack_require__.d(__webpack_exports__, \"InspectorAdvancedControls\", function() { return /* reexport */ inspector_advanced_controls; });\n__webpack_require__.d(__webpack_exports__, \"InspectorControls\", function() { return /* reexport */ inspector_controls; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalLinkControl\", function() { return /* reexport */ link_control; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalLineHeightControl\", function() { return /* reexport */ LineHeightControl; });\n__webpack_require__.d(__webpack_exports__, \"MediaReplaceFlow\", function() { return /* reexport */ media_replace_flow; });\n__webpack_require__.d(__webpack_exports__, \"MediaPlaceholder\", function() { return /* reexport */ media_placeholder; });\n__webpack_require__.d(__webpack_exports__, \"MediaUpload\", function() { return /* reexport */ media_upload; });\n__webpack_require__.d(__webpack_exports__, \"MediaUploadCheck\", function() { return /* reexport */ check; });\n__webpack_require__.d(__webpack_exports__, \"PanelColorSettings\", function() { return /* reexport */ panel_color_settings; });\n__webpack_require__.d(__webpack_exports__, \"PlainText\", function() { return /* reexport */ plain_text; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalResponsiveBlockControl\", function() { return /* reexport */ responsive_block_control; });\n__webpack_require__.d(__webpack_exports__, \"RichText\", function() { return /* reexport */ rich_text; });\n__webpack_require__.d(__webpack_exports__, \"RichTextShortcut\", function() { return /* reexport */ RichTextShortcut; });\n__webpack_require__.d(__webpack_exports__, \"RichTextToolbarButton\", function() { return /* reexport */ RichTextToolbarButton; });\n__webpack_require__.d(__webpack_exports__, \"__unstableRichTextInputEvent\", function() { return /* reexport */ input_event_unstableRichTextInputEvent; });\n__webpack_require__.d(__webpack_exports__, \"ToolSelector\", function() { return /* reexport */ tool_selector; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUnitControl\", function() { return /* reexport */ UnitControl; });\n__webpack_require__.d(__webpack_exports__, \"URLInput\", function() { return /* reexport */ url_input; });\n__webpack_require__.d(__webpack_exports__, \"URLInputButton\", function() { return /* reexport */ url_input_button; });\n__webpack_require__.d(__webpack_exports__, \"URLPopover\", function() { return /* reexport */ url_popover; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalImageURLInputUI\", function() { return /* reexport */ image_url_input_ui_ImageURLInputUI; });\n__webpack_require__.d(__webpack_exports__, \"withColorContext\", function() { return /* reexport */ with_color_context; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlockSettingsMenuFirstItem\", function() { return /* reexport */ block_settings_menu_first_item; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalInserterMenuExtension\", function() { return /* reexport */ inserter_menu_extension; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalPreviewOptions\", function() { return /* reexport */ PreviewOptions; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseResizeCanvas\", function() { return /* reexport */ useResizeCanvas; });\n__webpack_require__.d(__webpack_exports__, \"BlockInspector\", function() { return /* reexport */ block_inspector; });\n__webpack_require__.d(__webpack_exports__, \"BlockList\", function() { return /* reexport */ block_list; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBlock\", function() { return /* reexport */ Block; });\n__webpack_require__.d(__webpack_exports__, \"BlockMover\", function() { return /* reexport */ block_mover; });\n__webpack_require__.d(__webpack_exports__, \"BlockPreview\", function() { return /* reexport */ block_preview; });\n__webpack_require__.d(__webpack_exports__, \"BlockSelectionClearer\", function() { return /* reexport */ block_selection_clearer; });\n__webpack_require__.d(__webpack_exports__, \"BlockSettingsMenu\", function() { return /* reexport */ block_settings_menu; });\n__webpack_require__.d(__webpack_exports__, \"BlockSettingsMenuControls\", function() { return /* reexport */ block_settings_menu_controls; });\n__webpack_require__.d(__webpack_exports__, \"BlockTitle\", function() { return /* reexport */ BlockTitle; });\n__webpack_require__.d(__webpack_exports__, \"BlockToolbar\", function() { return /* reexport */ BlockToolbar; });\n__webpack_require__.d(__webpack_exports__, \"CopyHandler\", function() { return /* reexport */ copy_handler; });\n__webpack_require__.d(__webpack_exports__, \"DefaultBlockAppender\", function() { return /* reexport */ default_block_appender; });\n__webpack_require__.d(__webpack_exports__, \"__unstableEditorStyles\", function() { return /* reexport */ editor_styles; });\n__webpack_require__.d(__webpack_exports__, \"Inserter\", function() { return /* reexport */ inserter; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalLibrary\", function() { return /* reexport */ library; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalSearchForm\", function() { return /* reexport */ search_form; });\n__webpack_require__.d(__webpack_exports__, \"BlockEditorKeyboardShortcuts\", function() { return /* reexport */ keyboard_shortcuts; });\n__webpack_require__.d(__webpack_exports__, \"MultiSelectScrollIntoView\", function() { return /* reexport */ MultiSelectScrollIntoView; });\n__webpack_require__.d(__webpack_exports__, \"NavigableToolbar\", function() { return /* reexport */ navigable_toolbar; });\n__webpack_require__.d(__webpack_exports__, \"ObserveTyping\", function() { return /* reexport */ observe_typing; });\n__webpack_require__.d(__webpack_exports__, \"PreserveScrollInReorder\", function() { return /* reexport */ PreserveScrollInReorder; });\n__webpack_require__.d(__webpack_exports__, \"SkipToSelectedBlock\", function() { return /* reexport */ skip_to_selected_block; });\n__webpack_require__.d(__webpack_exports__, \"Typewriter\", function() { return /* reexport */ typewriter; });\n__webpack_require__.d(__webpack_exports__, \"Warning\", function() { return /* reexport */ warning; });\n__webpack_require__.d(__webpack_exports__, \"WritingFlow\", function() { return /* reexport */ WritingFlow; });\n__webpack_require__.d(__webpack_exports__, \"BlockEditorProvider\", function() { return /* reexport */ provider; });\n__webpack_require__.d(__webpack_exports__, \"useSimulatedMediaQuery\", function() { return /* reexport */ useSimulatedMediaQuery; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseEditorFeature\", function() { return /* reexport */ useEditorFeature; });\n__webpack_require__.d(__webpack_exports__, \"transformStyles\", function() { return /* reexport */ transform_styles; });\n__webpack_require__.d(__webpack_exports__, \"storeConfig\", function() { return /* reexport */ storeConfig; });\n__webpack_require__.d(__webpack_exports__, \"SETTINGS_DEFAULTS\", function() { return /* reexport */ SETTINGS_DEFAULTS; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"resetBlocks\", function() { return actions_resetBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"resetSelection\", function() { return actions_resetSelection; });\n__webpack_require__.d(actions_namespaceObject, \"receiveBlocks\", function() { return receiveBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlockAttributes\", function() { return actions_updateBlockAttributes; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlock\", function() { return actions_updateBlock; });\n__webpack_require__.d(actions_namespaceObject, \"selectBlock\", function() { return actions_selectBlock; });\n__webpack_require__.d(actions_namespaceObject, \"selectPreviousBlock\", function() { return selectPreviousBlock; });\n__webpack_require__.d(actions_namespaceObject, \"selectNextBlock\", function() { return selectNextBlock; });\n__webpack_require__.d(actions_namespaceObject, \"startMultiSelect\", function() { return actions_startMultiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"stopMultiSelect\", function() { return actions_stopMultiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"multiSelect\", function() { return actions_multiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"clearSelectedBlock\", function() { return actions_clearSelectedBlock; });\n__webpack_require__.d(actions_namespaceObject, \"toggleSelection\", function() { return actions_toggleSelection; });\n__webpack_require__.d(actions_namespaceObject, \"replaceBlocks\", function() { return actions_replaceBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"replaceBlock\", function() { return replaceBlock; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlocksDown\", function() { return actions_moveBlocksDown; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlocksUp\", function() { return actions_moveBlocksUp; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlocksToPosition\", function() { return actions_moveBlocksToPosition; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlockToPosition\", function() { return actions_moveBlockToPosition; });\n__webpack_require__.d(actions_namespaceObject, \"insertBlock\", function() { return actions_insertBlock; });\n__webpack_require__.d(actions_namespaceObject, \"insertBlocks\", function() { return actions_insertBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"showInsertionPoint\", function() { return actions_showInsertionPoint; });\n__webpack_require__.d(actions_namespaceObject, \"hideInsertionPoint\", function() { return actions_hideInsertionPoint; });\n__webpack_require__.d(actions_namespaceObject, \"setTemplateValidity\", function() { return setTemplateValidity; });\n__webpack_require__.d(actions_namespaceObject, \"synchronizeTemplate\", function() { return synchronizeTemplate; });\n__webpack_require__.d(actions_namespaceObject, \"mergeBlocks\", function() { return actions_mergeBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlocks\", function() { return actions_removeBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlock\", function() { return actions_removeBlock; });\n__webpack_require__.d(actions_namespaceObject, \"replaceInnerBlocks\", function() { return actions_replaceInnerBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"toggleBlockMode\", function() { return toggleBlockMode; });\n__webpack_require__.d(actions_namespaceObject, \"startTyping\", function() { return actions_startTyping; });\n__webpack_require__.d(actions_namespaceObject, \"stopTyping\", function() { return actions_stopTyping; });\n__webpack_require__.d(actions_namespaceObject, \"startDraggingBlocks\", function() { return actions_startDraggingBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"stopDraggingBlocks\", function() { return actions_stopDraggingBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"enterFormattedText\", function() { return actions_enterFormattedText; });\n__webpack_require__.d(actions_namespaceObject, \"exitFormattedText\", function() { return actions_exitFormattedText; });\n__webpack_require__.d(actions_namespaceObject, \"selectionChange\", function() { return actions_selectionChange; });\n__webpack_require__.d(actions_namespaceObject, \"insertDefaultBlock\", function() { return actions_insertDefaultBlock; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlockListSettings\", function() { return actions_updateBlockListSettings; });\n__webpack_require__.d(actions_namespaceObject, \"updateSettings\", function() { return actions_updateSettings; });\n__webpack_require__.d(actions_namespaceObject, \"__unstableSaveReusableBlock\", function() { return __unstableSaveReusableBlock; });\n__webpack_require__.d(actions_namespaceObject, \"__unstableMarkLastChangeAsPersistent\", function() { return actions_unstableMarkLastChangeAsPersistent; });\n__webpack_require__.d(actions_namespaceObject, \"__unstableMarkNextChangeAsNotPersistent\", function() { return actions_unstableMarkNextChangeAsNotPersistent; });\n__webpack_require__.d(actions_namespaceObject, \"__unstableMarkAutomaticChange\", function() { return actions_unstableMarkAutomaticChange; });\n__webpack_require__.d(actions_namespaceObject, \"setNavigationMode\", function() { return actions_setNavigationMode; });\n__webpack_require__.d(actions_namespaceObject, \"setBlockMovingClientId\", function() { return actions_setBlockMovingClientId; });\n__webpack_require__.d(actions_namespaceObject, \"duplicateBlocks\", function() { return actions_duplicateBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"insertBeforeBlock\", function() { return actions_insertBeforeBlock; });\n__webpack_require__.d(actions_namespaceObject, \"insertAfterBlock\", function() { return actions_insertAfterBlock; });\n__webpack_require__.d(actions_namespaceObject, \"toggleBlockHighlight\", function() { return actions_toggleBlockHighlight; });\n__webpack_require__.d(actions_namespaceObject, \"flashBlock\", function() { return actions_flashBlock; });\n__webpack_require__.d(actions_namespaceObject, \"setHasControlledInnerBlocks\", function() { return actions_setHasControlledInnerBlocks; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getBlockName\", function() { return selectors_getBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockValid\", function() { return selectors_isBlockValid; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockAttributes\", function() { return getBlockAttributes; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlock\", function() { return selectors_getBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__unstableGetBlockWithoutInnerBlocks\", function() { return selectors_unstableGetBlockWithoutInnerBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlocks\", function() { return selectors_getBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getClientIdsOfDescendants\", function() { return selectors_getClientIdsOfDescendants; });\n__webpack_require__.d(selectors_namespaceObject, \"getClientIdsWithDescendants\", function() { return getClientIdsWithDescendants; });\n__webpack_require__.d(selectors_namespaceObject, \"getGlobalBlockCount\", function() { return getGlobalBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlocksByClientId\", function() { return selectors_getBlocksByClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockCount\", function() { return selectors_getBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectionStart\", function() { return selectors_getSelectionStart; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectionEnd\", function() { return selectors_getSelectionEnd; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockSelectionStart\", function() { return getBlockSelectionStart; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockSelectionEnd\", function() { return selectors_getBlockSelectionEnd; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlockCount\", function() { return selectors_getSelectedBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"hasSelectedBlock\", function() { return hasSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlockClientId\", function() { return selectors_getSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlock\", function() { return selectors_getSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockRootClientId\", function() { return selectors_getBlockRootClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockParents\", function() { return selectors_getBlockParents; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockParentsByBlockName\", function() { return getBlockParentsByBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockHierarchyRootClientId\", function() { return getBlockHierarchyRootClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getLowestCommonAncestorWithSelectedBlock\", function() { return getLowestCommonAncestorWithSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getAdjacentBlockClientId\", function() { return getAdjacentBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getPreviousBlockClientId\", function() { return getPreviousBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getNextBlockClientId\", function() { return getNextBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlocksInitialCaretPosition\", function() { return getSelectedBlocksInitialCaretPosition; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlockClientIds\", function() { return selectors_getSelectedBlockClientIds; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlockClientIds\", function() { return getMultiSelectedBlockClientIds; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocks\", function() { return getMultiSelectedBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getFirstMultiSelectedBlockClientId\", function() { return selectors_getFirstMultiSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getLastMultiSelectedBlockClientId\", function() { return getLastMultiSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"isFirstMultiSelectedBlock\", function() { return isFirstMultiSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockMultiSelected\", function() { return isBlockMultiSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"isAncestorMultiSelected\", function() { return isAncestorMultiSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocksStartClientId\", function() { return getMultiSelectedBlocksStartClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocksEndClientId\", function() { return getMultiSelectedBlocksEndClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockOrder\", function() { return selectors_getBlockOrder; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockIndex\", function() { return selectors_getBlockIndex; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockSelected\", function() { return isBlockSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"hasSelectedInnerBlock\", function() { return hasSelectedInnerBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockWithinSelection\", function() { return isBlockWithinSelection; });\n__webpack_require__.d(selectors_namespaceObject, \"hasMultiSelection\", function() { return selectors_hasMultiSelection; });\n__webpack_require__.d(selectors_namespaceObject, \"isMultiSelecting\", function() { return selectors_isMultiSelecting; });\n__webpack_require__.d(selectors_namespaceObject, \"isSelectionEnabled\", function() { return selectors_isSelectionEnabled; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockMode\", function() { return selectors_getBlockMode; });\n__webpack_require__.d(selectors_namespaceObject, \"isTyping\", function() { return selectors_isTyping; });\n__webpack_require__.d(selectors_namespaceObject, \"isDraggingBlocks\", function() { return selectors_isDraggingBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"isCaretWithinFormattedText\", function() { return selectors_isCaretWithinFormattedText; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockInsertionPoint\", function() { return getBlockInsertionPoint; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockInsertionPointVisible\", function() { return isBlockInsertionPointVisible; });\n__webpack_require__.d(selectors_namespaceObject, \"isValidTemplate\", function() { return isValidTemplate; });\n__webpack_require__.d(selectors_namespaceObject, \"getTemplate\", function() { return getTemplate; });\n__webpack_require__.d(selectors_namespaceObject, \"getTemplateLock\", function() { return selectors_getTemplateLock; });\n__webpack_require__.d(selectors_namespaceObject, \"canInsertBlockType\", function() { return selectors_canInsertBlockType; });\n__webpack_require__.d(selectors_namespaceObject, \"canInsertBlocks\", function() { return selectors_canInsertBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getInserterItems\", function() { return selectors_getInserterItems; });\n__webpack_require__.d(selectors_namespaceObject, \"hasInserterItems\", function() { return selectors_hasInserterItems; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetAllowedBlocks\", function() { return selectors_experimentalGetAllowedBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockListSettings\", function() { return selectors_getBlockListSettings; });\n__webpack_require__.d(selectors_namespaceObject, \"getSettings\", function() { return selectors_getSettings; });\n__webpack_require__.d(selectors_namespaceObject, \"isLastBlockChangePersistent\", function() { return isLastBlockChangePersistent; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetBlockListSettingsForBlocks\", function() { return selectors_experimentalGetBlockListSettingsForBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetParsedReusableBlock\", function() { return __experimentalGetParsedReusableBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__unstableIsLastBlockChangeIgnored\", function() { return __unstableIsLastBlockChangeIgnored; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetLastBlockAttributeChanges\", function() { return __experimentalGetLastBlockAttributeChanges; });\n__webpack_require__.d(selectors_namespaceObject, \"isNavigationMode\", function() { return selectors_isNavigationMode; });\n__webpack_require__.d(selectors_namespaceObject, \"hasBlockMovingClientId\", function() { return selectors_hasBlockMovingClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"didAutomaticChange\", function() { return selectors_didAutomaticChange; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockHighlighted\", function() { return isBlockHighlighted; });\n__webpack_require__.d(selectors_namespaceObject, \"areInnerBlocksControlled\", function() { return areInnerBlocksControlled; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"viewport\"]}\nvar external_this_wp_viewport_ = __webpack_require__(72);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keyboardShortcuts\"]}\nvar external_this_wp_keyboardShortcuts_ = __webpack_require__(47);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"notices\"]}\nvar external_this_wp_notices_ = __webpack_require__(92);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/context.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar Context = Object(external_this_wp_element_[\"createContext\"])({\n  name: '',\n  isSelected: false,\n  focusedElement: null,\n  setFocusedElement: external_this_lodash_[\"noop\"],\n  clientId: null\n});\nvar Provider = Context.Provider;\n\n/**\n * A hook that returns the block edit context.\n *\n * @return {Object} Block edit context\n */\n\nfunction useBlockEditContext() {\n  return Object(external_this_wp_element_[\"useContext\"])(Context);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-display-block-controls/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction useDisplayBlockControls() {\n  var _useBlockEditContext = useBlockEditContext(),\n      isSelected = _useBlockEditContext.isSelected,\n      clientId = _useBlockEditContext.clientId,\n      name = _useBlockEditContext.name;\n\n  var isFirstAndSameTypeMultiSelected = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    // Don't bother checking, see OR statement below.\n    if (isSelected) {\n      return;\n    }\n\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName,\n        isFirstMultiSelectedBlock = _select.isFirstMultiSelectedBlock,\n        getMultiSelectedBlockClientIds = _select.getMultiSelectedBlockClientIds;\n\n    if (!isFirstMultiSelectedBlock(clientId)) {\n      return false;\n    }\n\n    return getMultiSelectedBlockClientIds().every(function (id) {\n      return getBlockName(id) === name;\n    });\n  }, [clientId, isSelected, name]);\n  return isSelected || isFirstAndSameTypeMultiSelected;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-controls/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar _createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('BlockControls'),\n    Fill = _createSlotFill.Fill,\n    Slot = _createSlotFill.Slot;\n\nfunction BlockControlsSlot(props) {\n  var accessibleToolbarState = Object(external_this_wp_element_[\"useContext\"])(external_this_wp_components_[\"__experimentalToolbarContext\"]);\n  return Object(external_this_wp_element_[\"createElement\"])(Slot, Object(esm_extends[\"a\" /* default */])({}, props, {\n    fillProps: accessibleToolbarState\n  }));\n}\n\nfunction BlockControlsFill(_ref) {\n  var controls = _ref.controls,\n      children = _ref.children;\n\n  if (!useDisplayBlockControls()) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(Fill, null, function (fillProps) {\n    // Children passed to BlockControlsFill will not have access to any\n    // React Context whose Provider is part of the BlockControlsSlot tree.\n    // So we re-create the Provider in this subtree.\n    var value = !Object(external_this_lodash_[\"isEmpty\"])(fillProps) ? fillProps : null;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarContext\"].Provider, {\n      value: value\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n      controls: controls\n    }), children);\n  });\n}\n\nvar BlockControls = BlockControlsFill;\nBlockControls.Slot = BlockControlsSlot;\n/* harmony default export */ var block_controls = (BlockControls);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-left.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar positionLeft = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 9v6h14V9H4zm8-4.8H4v1.5h8V4.2zM4 19.8h8v-1.5H4v1.5z\"\n}));\n/* harmony default export */ var position_left = (positionLeft);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-center.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar positionCenter = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M5 15h14V9H5v6zm0 4.8h14v-1.5H5v1.5zM5 4.2v1.5h14V4.2H5z\"\n}));\n/* harmony default export */ var position_center = (positionCenter);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/position-right.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar positionRight = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M6 15h14V9H6v6zm6-10.8v1.5h8V4.2h-8zm0 15.6h8v-1.5h-8v1.5z\"\n}));\n/* harmony default export */ var position_right = (positionRight);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-wide.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar stretchWide = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M5 9v6h14V9H5zm11-4.8H8v1.5h8V4.2zM8 19.8h8v-1.5H8v1.5z\"\n}));\n/* harmony default export */ var stretch_wide = (stretchWide);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stretch-full-width.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar stretchFullWidth = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M5 4v11h14V4H5zm3 15.8h8v-1.5H8v1.5z\"\n}));\n/* harmony default export */ var stretch_full_width = (stretchFullWidth);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-toolbar/index.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar BLOCK_ALIGNMENTS_CONTROLS = {\n  left: {\n    icon: position_left,\n    title: Object(external_this_wp_i18n_[\"__\"])('Align left')\n  },\n  center: {\n    icon: position_center,\n    title: Object(external_this_wp_i18n_[\"__\"])('Align center')\n  },\n  right: {\n    icon: position_right,\n    title: Object(external_this_wp_i18n_[\"__\"])('Align right')\n  },\n  wide: {\n    icon: stretch_wide,\n    title: Object(external_this_wp_i18n_[\"__\"])('Wide width')\n  },\n  full: {\n    icon: stretch_full_width,\n    title: Object(external_this_wp_i18n_[\"__\"])('Full width')\n  }\n};\nvar DEFAULT_CONTROLS = ['left', 'center', 'right', 'wide', 'full'];\nvar DEFAULT_CONTROL = 'center';\nvar WIDE_CONTROLS = ['wide', 'full'];\nvar block_alignment_toolbar_POPOVER_PROPS = {\n  isAlternate: true\n};\nfunction BlockAlignmentToolbar(_ref) {\n  var value = _ref.value,\n      onChange = _ref.onChange,\n      _ref$controls = _ref.controls,\n      controls = _ref$controls === void 0 ? DEFAULT_CONTROLS : _ref$controls,\n      _ref$isCollapsed = _ref.isCollapsed,\n      isCollapsed = _ref$isCollapsed === void 0 ? true : _ref$isCollapsed,\n      _ref$wideControlsEnab = _ref.wideControlsEnabled,\n      wideControlsEnabled = _ref$wideControlsEnab === void 0 ? false : _ref$wideControlsEnab;\n\n  function applyOrUnset(align) {\n    return function () {\n      return onChange(value === align ? undefined : align);\n    };\n  }\n\n  var enabledControls = wideControlsEnabled ? controls : controls.filter(function (control) {\n    return WIDE_CONTROLS.indexOf(control) === -1;\n  });\n  var activeAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[value];\n  var defaultAlignmentControl = BLOCK_ALIGNMENTS_CONTROLS[DEFAULT_CONTROL];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    popoverProps: block_alignment_toolbar_POPOVER_PROPS,\n    isCollapsed: isCollapsed,\n    icon: activeAlignmentControl ? activeAlignmentControl.icon : defaultAlignmentControl.icon,\n    label: Object(external_this_wp_i18n_[\"__\"])('Change alignment'),\n    controls: enabledControls.map(function (control) {\n      return _objectSpread({}, BLOCK_ALIGNMENTS_CONTROLS[control], {\n        isActive: value === control,\n        role: isCollapsed ? 'menuitemradio' : undefined,\n        onClick: applyOrUnset(control)\n      });\n    })\n  });\n}\n/* harmony default export */ var block_alignment_toolbar = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  var settings = getSettings();\n  return {\n    wideControlsEnabled: settings.alignWide\n  };\n}))(BlockAlignmentToolbar));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/align.js\n\n\n\n\nfunction align_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction align_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { align_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { align_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * An array which includes all possible valid alignments,\n * used to validate if an alignment is valid or not.\n *\n * @constant\n * @type {string[]}\n */\n\nvar ALL_ALIGNMENTS = ['left', 'center', 'right', 'wide', 'full'];\n/**\n * An array which includes all wide alignments.\n * In order for this alignments to be valid they need to be supported by the block,\n * and by the theme.\n *\n * @constant\n * @type {string[]}\n */\n\nvar WIDE_ALIGNMENTS = ['wide', 'full'];\n/**\n * Returns the valid alignments.\n * Takes into consideration the aligns supported by a block, if the block supports wide controls or not and if theme supports wide controls or not.\n * Exported just for testing purposes, not exported outside the module.\n *\n * @param {?boolean|string[]} blockAlign          Aligns supported by the block.\n * @param {?boolean}          hasWideBlockSupport True if block supports wide alignments. And False otherwise.\n * @param {?boolean}          hasWideEnabled      True if theme supports wide alignments. And False otherwise.\n *\n * @return {string[]} Valid alignments.\n */\n\nfunction getValidAlignments(blockAlign) {\n  var hasWideBlockSupport = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var hasWideEnabled = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  var validAlignments;\n\n  if (Array.isArray(blockAlign)) {\n    validAlignments = blockAlign;\n  } else if (blockAlign === true) {\n    // `true` includes all alignments...\n    validAlignments = ALL_ALIGNMENTS;\n  } else {\n    validAlignments = [];\n  }\n\n  if (!hasWideEnabled || blockAlign === true && !hasWideBlockSupport) {\n    return external_this_lodash_[\"without\"].apply(void 0, [validAlignments].concat(WIDE_ALIGNMENTS));\n  }\n\n  return validAlignments;\n}\n/**\n * Filters registered block settings, extending attributes to include `align`.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\nfunction addAttribute(settings) {\n  // allow blocks to specify their own attribute definition with default values if needed.\n  if (Object(external_this_lodash_[\"has\"])(settings.attributes, ['align', 'type'])) {\n    return settings;\n  }\n\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(settings, 'align')) {\n    // Gracefully handle if settings.attributes is undefined.\n    settings.attributes = align_objectSpread({}, settings.attributes, {\n      align: {\n        type: 'string'\n      }\n    });\n  }\n\n  return settings;\n}\nvar AlignmentHookSettings = Object(external_this_wp_element_[\"createContext\"])({});\n/**\n * Allows to pass additional settings to the alignment hook.\n */\n\nvar AlignmentHookSettingsProvider = AlignmentHookSettings.Provider;\n/**\n * Override the default edit UI to include new toolbar controls for block\n * alignment, if block defines support.\n *\n * @param  {Function} BlockEdit Original component\n * @return {Function}           Wrapped component\n */\n\nvar withToolbarControls = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n  return function (props) {\n    var _useContext = Object(external_this_wp_element_[\"useContext\"])(AlignmentHookSettings),\n        isEmbedButton = _useContext.isEmbedButton;\n\n    var blockName = props.name; // Compute valid alignments without taking into account,\n    // if the theme supports wide alignments or not.\n    // BlockAlignmentToolbar takes into account the theme support.\n\n    var validAlignments = isEmbedButton ? [] : getValidAlignments(Object(external_this_wp_blocks_[\"getBlockSupport\"])(blockName, 'align'), Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, 'alignWide', true));\n\n    var updateAlignment = function updateAlignment(nextAlign) {\n      if (!nextAlign) {\n        var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(props.name);\n        var blockDefaultAlign = Object(external_this_lodash_[\"get\"])(blockType, ['attributes', 'align', 'default']);\n\n        if (blockDefaultAlign) {\n          nextAlign = '';\n        }\n      }\n\n      props.setAttributes({\n        align: nextAlign\n      });\n    };\n\n    return [validAlignments.length > 0 && props.isSelected && Object(external_this_wp_element_[\"createElement\"])(block_controls, {\n      key: \"align-controls\"\n    }, Object(external_this_wp_element_[\"createElement\"])(block_alignment_toolbar, {\n      value: props.attributes.align,\n      onChange: updateAlignment,\n      controls: validAlignments\n    })), Object(external_this_wp_element_[\"createElement\"])(BlockEdit, Object(esm_extends[\"a\" /* default */])({\n      key: \"edit\"\n    }, props))];\n  };\n}, 'withToolbarControls');\n/**\n * Override the default block element to add alignment wrapper props.\n *\n * @param  {Function} BlockListBlock Original component\n * @return {Function}                Wrapped component\n */\n\nvar withDataAlign = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockListBlock) {\n  return function (props) {\n    var name = props.name,\n        attributes = props.attributes;\n    var align = attributes.align;\n    var hasWideEnabled = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n      return !!select('core/block-editor').getSettings().alignWide;\n    }, []); // If an alignment is not assigned, there's no need to go through the\n    // effort to validate or assign its value.\n\n    if (align === undefined) {\n      return Object(external_this_wp_element_[\"createElement\"])(BlockListBlock, props);\n    }\n\n    var validAlignments = getValidAlignments(Object(external_this_wp_blocks_[\"getBlockSupport\"])(name, 'align'), Object(external_this_wp_blocks_[\"hasBlockSupport\"])(name, 'alignWide', true), hasWideEnabled);\n    var wrapperProps = props.wrapperProps;\n\n    if (validAlignments.includes(align)) {\n      wrapperProps = align_objectSpread({}, wrapperProps, {\n        'data-align': align\n      });\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(BlockListBlock, Object(esm_extends[\"a\" /* default */])({}, props, {\n      wrapperProps: wrapperProps\n    }));\n  };\n});\n/**\n * Override props assigned to save component to inject alignment class name if\n * block supports it.\n *\n * @param  {Object} props      Additional props applied to save element\n * @param  {Object} blockType  Block type\n * @param  {Object} attributes Block attributes\n * @return {Object}            Filtered props applied to save element\n */\n\nfunction addAssignedAlign(props, blockType, attributes) {\n  var align = attributes.align;\n  var blockAlign = Object(external_this_wp_blocks_[\"getBlockSupport\"])(blockType, 'align');\n  var hasWideBlockSupport = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'alignWide', true); // Compute valid alignments without taking into account if\n  // the theme supports wide alignments or not.\n  // This way changing themes does not impact the block save.\n\n  var isAlignValid = getValidAlignments(blockAlign, hasWideBlockSupport).includes(align);\n\n  if (isAlignValid) {\n    props.className = classnames_default()(\"align\".concat(align), props.className);\n  }\n\n  return props;\n}\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/align/addAttribute', addAttribute);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockListBlock', 'core/editor/align/with-data-align', withDataAlign);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockEdit', 'core/editor/align/with-toolbar-controls', withToolbarControls);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/align/addAssignedAlign', addAssignedAlign);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-advanced-controls/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar inspector_advanced_controls_name = 'InspectorAdvancedControls';\n\nvar inspector_advanced_controls_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])(inspector_advanced_controls_name),\n    inspector_advanced_controls_Fill = inspector_advanced_controls_createSlotFill.Fill,\n    inspector_advanced_controls_Slot = inspector_advanced_controls_createSlotFill.Slot;\n\nfunction InspectorAdvancedControls(_ref) {\n  var children = _ref.children;\n\n  var _useBlockEditContext = useBlockEditContext(),\n      isSelected = _useBlockEditContext.isSelected;\n\n  return isSelected ? Object(external_this_wp_element_[\"createElement\"])(inspector_advanced_controls_Fill, null, children) : null;\n}\n\nInspectorAdvancedControls.slotName = inspector_advanced_controls_name;\nInspectorAdvancedControls.Slot = inspector_advanced_controls_Slot;\n/* harmony default export */ var inspector_advanced_controls = (InspectorAdvancedControls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/anchor.js\n\n\n\nfunction anchor_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction anchor_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { anchor_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { anchor_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Regular expression matching invalid anchor characters for replacement.\n *\n * @type {RegExp}\n */\n\nvar ANCHOR_REGEX = /[\\s#]/g;\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\n\nfunction anchor_addAttribute(settings) {\n  // allow blocks to specify their own attribute definition with default values if needed.\n  if (Object(external_this_lodash_[\"has\"])(settings.attributes, ['anchor', 'type'])) {\n    return settings;\n  }\n\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(settings, 'anchor')) {\n    // Gracefully handle if settings.attributes is undefined.\n    settings.attributes = anchor_objectSpread({}, settings.attributes, {\n      anchor: {\n        type: 'string',\n        source: 'attribute',\n        attribute: 'id',\n        selector: '*'\n      }\n    });\n  }\n\n  return settings;\n}\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning the anchor ID, if block supports anchor.\n *\n * @param {WPComponent} BlockEdit Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\n\nvar withInspectorControl = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n  return function (props) {\n    var hasAnchor = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(props.name, 'anchor');\n\n    if (hasAnchor && props.isSelected) {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(BlockEdit, props), Object(external_this_wp_element_[\"createElement\"])(inspector_advanced_controls, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n        className: \"html-anchor-control\",\n        label: Object(external_this_wp_i18n_[\"__\"])('HTML anchor'),\n        help: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_i18n_[\"__\"])('Enter a word or two — without spaces — to make a unique web address just for this heading, called an “anchor.” Then, you’ll be able to link directly to this section of your page.'), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n          href: 'https://wordpress.org/support/article/page-jumps/'\n        }, Object(external_this_wp_i18n_[\"__\"])('Learn more about anchors'))),\n        value: props.attributes.anchor || '',\n        onChange: function onChange(nextValue) {\n          nextValue = nextValue.replace(ANCHOR_REGEX, '-');\n          props.setAttributes({\n            anchor: nextValue\n          });\n        },\n        autoComplete: \"off\"\n      })));\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(BlockEdit, props);\n  };\n}, 'withInspectorControl');\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\n\nfunction addSaveProps(extraProps, blockType, attributes) {\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'anchor')) {\n    extraProps.id = attributes.anchor === '' ? null : attributes.anchor;\n  }\n\n  return extraProps;\n}\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/anchor/attribute', anchor_addAttribute);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockEdit', 'core/editor/anchor/with-inspector-control', withInspectorControl);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/anchor/save-props', addSaveProps);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/custom-class-name.js\n\n\n\nfunction custom_class_name_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction custom_class_name_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { custom_class_name_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { custom_class_name_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Filters registered block settings, extending attributes with anchor using ID\n * of the first node.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\n\nfunction custom_class_name_addAttribute(settings) {\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(settings, 'customClassName', true)) {\n    // Gracefully handle if settings.attributes is undefined.\n    settings.attributes = custom_class_name_objectSpread({}, settings.attributes, {\n      className: {\n        type: 'string'\n      }\n    });\n  }\n\n  return settings;\n}\n/**\n * Override the default edit UI to include a new block inspector control for\n * assigning the custom class name, if block supports custom class name.\n *\n * @param {WPComponent} BlockEdit Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\n\nvar custom_class_name_withInspectorControl = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n  return function (props) {\n    var hasCustomClassName = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(props.name, 'customClassName', true);\n\n    if (hasCustomClassName && props.isSelected) {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(BlockEdit, props), Object(external_this_wp_element_[\"createElement\"])(inspector_advanced_controls, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n        autoComplete: \"off\",\n        label: Object(external_this_wp_i18n_[\"__\"])('Additional CSS class(es)'),\n        value: props.attributes.className || '',\n        onChange: function onChange(nextValue) {\n          props.setAttributes({\n            className: nextValue !== '' ? nextValue : undefined\n          });\n        },\n        help: Object(external_this_wp_i18n_[\"__\"])('Separate multiple classes with spaces.')\n      })));\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(BlockEdit, props);\n  };\n}, 'withInspectorControl');\n/**\n * Override props assigned to save component to inject anchor ID, if block\n * supports anchor. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n * @param {Object} attributes Current block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\n\nfunction custom_class_name_addSaveProps(extraProps, blockType, attributes) {\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'customClassName', true) && attributes.className) {\n    extraProps.className = classnames_default()(extraProps.className, attributes.className);\n  }\n\n  return extraProps;\n}\n/**\n * Given an HTML string, returns an array of class names assigned to the root\n * element in the markup.\n *\n * @param {string} innerHTML Markup string from which to extract classes.\n *\n * @return {string[]} Array of class names assigned to the root element.\n */\n\nfunction getHTMLRootElementClasses(innerHTML) {\n  innerHTML = \"<div data-custom-class-name>\".concat(innerHTML, \"</div>\");\n  var parsed = Object(external_this_wp_blocks_[\"parseWithAttributeSchema\"])(innerHTML, {\n    type: 'string',\n    source: 'attribute',\n    selector: '[data-custom-class-name] > *',\n    attribute: 'class'\n  });\n  return parsed ? parsed.trim().split(/\\s+/) : [];\n}\n/**\n * Given a parsed set of block attributes, if the block supports custom class\n * names and an unknown class (per the block's serialization behavior) is\n * found, the unknown classes are treated as custom classes. This prevents the\n * block from being considered as invalid.\n *\n * @param {Object} blockAttributes Original block attributes.\n * @param {Object} blockType       Block type settings.\n * @param {string} innerHTML       Original block markup.\n *\n * @return {Object} Filtered block attributes.\n */\n\nfunction addParsedDifference(blockAttributes, blockType, innerHTML) {\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'customClassName', true)) {\n    // To determine difference, serialize block given the known set of\n    // attributes, with the exception of `className`. This will determine\n    // the default set of classes. From there, any difference in innerHTML\n    // can be considered as custom classes.\n    var attributesSansClassName = Object(external_this_lodash_[\"omit\"])(blockAttributes, ['className']);\n    var serialized = Object(external_this_wp_blocks_[\"getSaveContent\"])(blockType, attributesSansClassName);\n    var defaultClasses = getHTMLRootElementClasses(serialized);\n    var actualClasses = getHTMLRootElementClasses(innerHTML);\n    var customClasses = Object(external_this_lodash_[\"difference\"])(actualClasses, defaultClasses);\n\n    if (customClasses.length) {\n      blockAttributes.className = customClasses.join(' ');\n    } else if (serialized) {\n      delete blockAttributes.className;\n    }\n  }\n\n  return blockAttributes;\n}\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/custom-class-name/attribute', custom_class_name_addAttribute);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockEdit', 'core/editor/custom-class-name/with-inspector-control', custom_class_name_withInspectorControl);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/custom-class-name/save-props', custom_class_name_addSaveProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getBlockAttributes', 'core/custom-class-name/addParsedDifference', addParsedDifference);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/generated-class-name.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Override props assigned to save component to inject generated className if\n * block supports it. This is only applied if the block's save result is an\n * element and not a markup string.\n *\n * @param {Object} extraProps Additional props applied to save element.\n * @param {Object} blockType  Block type.\n *\n * @return {Object} Filtered props applied to save element.\n */\n\nfunction addGeneratedClassName(extraProps, blockType) {\n  // Adding the generated className\n  if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'className', true)) {\n    if (typeof extraProps.className === 'string') {\n      // We have some extra classes and want to add the default classname\n      // We use uniq to prevent duplicate classnames\n      extraProps.className = Object(external_this_lodash_[\"uniq\"])([Object(external_this_wp_blocks_[\"getBlockDefaultClassName\"])(blockType.name)].concat(Object(toConsumableArray[\"a\" /* default */])(extraProps.className.split(' ')))).join(' ').trim();\n    } else {\n      // There is no string in the className variable,\n      // so we just dump the default name in there\n      extraProps.className = Object(external_this_wp_blocks_[\"getBlockDefaultClassName\"])(blockType.name);\n    }\n  }\n\n  return extraProps;\n}\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/generated-class-name/save-props', addGeneratedClassName);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toArray.js\nvar toArray = __webpack_require__(140);\n\n// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js\nvar tinycolor = __webpack_require__(56);\nvar tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/utils.js\n/**\n * External dependencies\n */\n\n\n/**\n * Provided an array of color objects as set by the theme or by the editor defaults,\n * and the values of the defined color or custom color returns a color object describing the color.\n *\n * @param {Array}   colors       Array of color objects as set by the theme or by the editor defaults.\n * @param {?string} definedColor A string containing the color slug.\n * @param {?string} customColor  A string containing the customColor value.\n *\n * @return {?Object} If definedColor is passed and the name is found in colors,\n *                   the color object exactly as set by the theme or editor defaults is returned.\n *                   Otherwise, an object that just sets the color is defined.\n */\n\nvar utils_getColorObjectByAttributeValues = function getColorObjectByAttributeValues(colors, definedColor, customColor) {\n  if (definedColor) {\n    var colorObj = Object(external_this_lodash_[\"find\"])(colors, {\n      slug: definedColor\n    });\n\n    if (colorObj) {\n      return colorObj;\n    }\n  }\n\n  return {\n    color: customColor\n  };\n};\n/**\n * Provided an array of color objects as set by the theme or by the editor defaults, and a color value returns the color object matching that value or undefined.\n *\n * @param {Array}   colors      Array of color objects as set by the theme or by the editor defaults.\n * @param {?string} colorValue  A string containing the color value.\n *\n * @return {?Object} Color object included in the colors array whose color property equals colorValue.\n *                   Returns undefined if no color object matches this requirement.\n */\n\nvar utils_getColorObjectByColorValue = function getColorObjectByColorValue(colors, colorValue) {\n  return Object(external_this_lodash_[\"find\"])(colors, {\n    color: colorValue\n  });\n};\n/**\n * Returns a class based on the context a color is being used and its slug.\n *\n * @param {string} colorContextName Context/place where color is being used e.g: background, text etc...\n * @param {string} colorSlug        Slug of the color.\n *\n * @return {?string} String with the class corresponding to the color in the provided context.\n *                   Returns undefined if either colorContextName or colorSlug are not provided.\n */\n\nfunction getColorClassName(colorContextName, colorSlug) {\n  if (!colorContextName || !colorSlug) {\n    return undefined;\n  }\n\n  return \"has-\".concat(Object(external_this_lodash_[\"kebabCase\"])(colorSlug), \"-\").concat(colorContextName);\n}\n/**\n * Given an array of color objects and a color value returns the color value of the most readable color in the array.\n *\n * @param {Array}   colors     Array of color objects as set by the theme or by the editor defaults.\n * @param {?string} colorValue A string containing the color value.\n *\n * @return {string} String with the color value of the most readable color.\n */\n\nfunction utils_getMostReadableColor(colors, colorValue) {\n  return tinycolor_default.a.mostReadable(colorValue, Object(external_this_lodash_[\"map\"])(colors, 'color')).toHexString();\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/use-gradient.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction __experimentalGetGradientClass(gradientSlug) {\n  if (!gradientSlug) {\n    return undefined;\n  }\n\n  return \"has-\".concat(gradientSlug, \"-gradient-background\");\n}\n/**\n * Retrieves the gradient value per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} slug Gradient slug\n *\n * @return {string} Gradient value.\n */\n\nfunction getGradientValueBySlug(gradients, slug) {\n  var gradient = Object(external_this_lodash_[\"find\"])(gradients, ['slug', slug]);\n  return gradient && gradient.gradient;\n}\nfunction __experimentalGetGradientObjectByGradientValue(gradients, value) {\n  var gradient = Object(external_this_lodash_[\"find\"])(gradients, ['gradient', value]);\n  return gradient;\n}\n/**\n * Retrieves the gradient slug per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} value Gradient value\n * @return {string} Gradient slug.\n */\n\nfunction getGradientSlugByValue(gradients, value) {\n  var gradient = __experimentalGetGradientObjectByGradientValue(gradients, value);\n\n  return gradient && gradient.slug;\n}\nfunction __experimentalUseGradient() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      _ref$gradientAttribut = _ref.gradientAttribute,\n      gradientAttribute = _ref$gradientAttribut === void 0 ? 'gradient' : _ref$gradientAttribut,\n      _ref$customGradientAt = _ref.customGradientAttribute,\n      customGradientAttribute = _ref$customGradientAt === void 0 ? 'customGradient' : _ref$customGradientAt;\n\n  var _useBlockEditContext = useBlockEditContext(),\n      clientId = _useBlockEditContext.clientId;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockAttributes = _select.getBlockAttributes,\n        getSettings = _select.getSettings;\n\n    var attributes = getBlockAttributes(clientId);\n    return {\n      gradient: attributes[gradientAttribute],\n      customGradient: attributes[customGradientAttribute],\n      gradients: getSettings().gradients\n    };\n  }, [clientId, gradientAttribute, customGradientAttribute]),\n      gradients = _useSelect.gradients,\n      gradient = _useSelect.gradient,\n      customGradient = _useSelect.customGradient;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlockAttributes = _useDispatch.updateBlockAttributes;\n\n  var setGradient = Object(external_this_wp_element_[\"useCallback\"])(function (newGradientValue) {\n    var _updateBlockAttribute2;\n\n    var slug = getGradientSlugByValue(gradients, newGradientValue);\n\n    if (slug) {\n      var _updateBlockAttribute;\n\n      updateBlockAttributes(clientId, (_updateBlockAttribute = {}, Object(defineProperty[\"a\" /* default */])(_updateBlockAttribute, gradientAttribute, slug), Object(defineProperty[\"a\" /* default */])(_updateBlockAttribute, customGradientAttribute, undefined), _updateBlockAttribute));\n      return;\n    }\n\n    updateBlockAttributes(clientId, (_updateBlockAttribute2 = {}, Object(defineProperty[\"a\" /* default */])(_updateBlockAttribute2, gradientAttribute, undefined), Object(defineProperty[\"a\" /* default */])(_updateBlockAttribute2, customGradientAttribute, newGradientValue), _updateBlockAttribute2));\n  }, [gradients, clientId, updateBlockAttributes]);\n\n  var gradientClass = __experimentalGetGradientClass(gradient);\n\n  var gradientValue;\n\n  if (gradient) {\n    gradientValue = getGradientValueBySlug(gradients, gradient);\n  } else {\n    gradientValue = customGradient;\n  }\n\n  return {\n    gradientClass: gradientClass,\n    gradientValue: gradientValue,\n    setGradient: setGradient\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/utils.js\n/**\n * External dependencies\n */\n\n/**\n * Removed undefined values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from undefined values\n */\n\nvar utils_cleanEmptyObject = function cleanEmptyObject(object) {\n  if (!Object(external_this_lodash_[\"isObject\"])(object)) {\n    return object;\n  }\n\n  var cleanedNestedObjects = Object(external_this_lodash_[\"pickBy\"])(Object(external_this_lodash_[\"mapValues\"])(object, cleanEmptyObject), external_this_lodash_[\"identity\"]);\n  return Object(external_this_lodash_[\"isEqual\"])(cleanedNestedObjects, {}) ? undefined : cleanedNestedObjects;\n};\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/control.js\n\n\n\n\n\nfunction control_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n // translators: first %s: the color name or value (e.g. red or #ff0000)\n\nvar colorIndicatorAriaLabel = Object(external_this_wp_i18n_[\"__\"])('(Color: %s)'); // translators: first %s: the gradient name or value (e.g. red to green or linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)\n\n\nvar gradientIndicatorAriaLabel = Object(external_this_wp_i18n_[\"__\"])('(Gradient: %s)');\n\nvar colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients'];\n\nfunction VisualLabel(_ref) {\n  var colors = _ref.colors,\n      gradients = _ref.gradients,\n      label = _ref.label,\n      currentTab = _ref.currentTab,\n      colorValue = _ref.colorValue,\n      gradientValue = _ref.gradientValue;\n  var value, ariaLabel;\n\n  if (currentTab === 'color') {\n    if (colorValue) {\n      value = colorValue;\n      var colorObject = utils_getColorObjectByColorValue(colors, value);\n      var colorName = colorObject && colorObject.name;\n      ariaLabel = Object(external_this_wp_i18n_[\"sprintf\"])(colorIndicatorAriaLabel, colorName || value);\n    }\n  } else if (currentTab === 'gradient' && gradientValue) {\n    value = gradientValue;\n\n    var gradientObject = __experimentalGetGradientObjectByGradientValue(gradients, value);\n\n    var gradientName = gradientObject && gradientObject.name;\n    ariaLabel = Object(external_this_wp_i18n_[\"sprintf\"])(gradientIndicatorAriaLabel, gradientName || value);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, label, !!value && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ColorIndicator\"], {\n    colorValue: value,\n    \"aria-label\": ariaLabel\n  }));\n}\n\nfunction ColorGradientControlInner(_ref2) {\n  var colors = _ref2.colors,\n      gradients = _ref2.gradients,\n      disableCustomColors = _ref2.disableCustomColors,\n      disableCustomGradients = _ref2.disableCustomGradients,\n      className = _ref2.className,\n      label = _ref2.label,\n      onColorChange = _ref2.onColorChange,\n      onGradientChange = _ref2.onGradientChange,\n      colorValue = _ref2.colorValue,\n      gradientValue = _ref2.gradientValue;\n  var canChooseAColor = onColorChange && (!Object(external_this_lodash_[\"isEmpty\"])(colors) || !disableCustomColors);\n  var canChooseAGradient = onGradientChange && (!Object(external_this_lodash_[\"isEmpty\"])(gradients) || !disableCustomGradients);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(gradientValue ? 'gradient' : !!canChooseAColor && 'color'),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      currentTab = _useState2[0],\n      setCurrentTab = _useState2[1];\n\n  if (!canChooseAColor && !canChooseAGradient) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], {\n    className: classnames_default()('block-editor-color-gradient-control', className)\n  }, Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", null, Object(external_this_wp_element_[\"createElement\"])(\"legend\", null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-color-gradient-control__color-indicator\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"].VisualLabel, null, Object(external_this_wp_element_[\"createElement\"])(VisualLabel, {\n    currentTab: currentTab,\n    label: label,\n    colorValue: colorValue,\n    gradientValue: gradientValue\n  })))), canChooseAColor && canChooseAGradient && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ButtonGroup\"], {\n    className: \"block-editor-color-gradient-control__button-tabs\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSmall: true,\n    isPressed: currentTab === 'color',\n    onClick: function onClick() {\n      return setCurrentTab('color');\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Solid')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSmall: true,\n    isPressed: currentTab === 'gradient',\n    onClick: function onClick() {\n      return setCurrentTab('gradient');\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Gradient'))), (currentTab === 'color' || !canChooseAGradient) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ColorPalette\"], Object(esm_extends[\"a\" /* default */])({\n    value: colorValue,\n    onChange: canChooseAGradient ? function (newColor) {\n      onColorChange(newColor);\n      onGradientChange();\n    } : onColorChange\n  }, {\n    colors: colors,\n    disableCustomColors: disableCustomColors\n  })), (currentTab === 'gradient' || !canChooseAColor) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalGradientPicker\"], Object(esm_extends[\"a\" /* default */])({\n    value: gradientValue,\n    onChange: canChooseAColor ? function (newGradient) {\n      onGradientChange(newGradient);\n      onColorChange();\n    } : onGradientChange\n  }, {\n    gradients: gradients,\n    disableCustomGradients: disableCustomGradients\n  }))));\n}\n\nfunction ColorGradientControlSelect(props) {\n  var colorGradientSettings = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var settings = select('core/block-editor').getSettings();\n    return Object(external_this_lodash_[\"pick\"])(settings, colorsAndGradientKeys);\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(ColorGradientControlInner, control_objectSpread({}, colorGradientSettings, {}, props));\n}\n\nfunction ColorGradientControl(props) {\n  if (Object(external_this_lodash_[\"every\"])(colorsAndGradientKeys, function (key) {\n    return props.hasOwnProperty(key);\n  })) {\n    return Object(external_this_wp_element_[\"createElement\"])(ColorGradientControlInner, props);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(ColorGradientControlSelect, props);\n}\n\n/* harmony default export */ var control = (ColorGradientControl);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors-gradients/panel-color-gradient-settings.js\n\n\n\n\n\nfunction panel_color_gradient_settings_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction panel_color_gradient_settings_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { panel_color_gradient_settings_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { panel_color_gradient_settings_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n // translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\n\nvar panel_color_gradient_settings_colorIndicatorAriaLabel = Object(external_this_wp_i18n_[\"__\"])('(%s: color %s)'); // translators: first %s: The type of color or gradient (e.g. background, overlay...), second %s: the color name or value (e.g. red or #ff0000)\n\n\nvar panel_color_gradient_settings_gradientIndicatorAriaLabel = Object(external_this_wp_i18n_[\"__\"])('(%s: gradient %s)');\n\nvar panel_color_gradient_settings_colorsAndGradientKeys = ['colors', 'disableCustomColors', 'gradients', 'disableCustomGradients'];\n\nvar panel_color_gradient_settings_Indicators = function Indicators(_ref) {\n  var colors = _ref.colors,\n      gradients = _ref.gradients,\n      settings = _ref.settings;\n  return settings.map(function (_ref2, index) {\n    var colorValue = _ref2.colorValue,\n        gradientValue = _ref2.gradientValue,\n        label = _ref2.label,\n        availableColors = _ref2.colors,\n        availableGradients = _ref2.gradients;\n\n    if (!colorValue && !gradientValue) {\n      return null;\n    }\n\n    var ariaLabel;\n\n    if (colorValue) {\n      var colorObject = utils_getColorObjectByColorValue(availableColors || colors, colorValue);\n      ariaLabel = Object(external_this_wp_i18n_[\"sprintf\"])(panel_color_gradient_settings_colorIndicatorAriaLabel, label.toLowerCase(), colorObject && colorObject.name || colorValue);\n    } else {\n      var gradientObject = __experimentalGetGradientObjectByGradientValue(availableGradients || gradients, colorValue);\n\n      ariaLabel = Object(external_this_wp_i18n_[\"sprintf\"])(panel_color_gradient_settings_gradientIndicatorAriaLabel, label.toLowerCase(), gradientObject && gradientObject.name || gradientValue);\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ColorIndicator\"], {\n      key: index,\n      colorValue: colorValue || gradientValue,\n      \"aria-label\": ariaLabel\n    });\n  });\n};\n\nvar panel_color_gradient_settings_PanelColorGradientSettingsInner = function PanelColorGradientSettingsInner(_ref3) {\n  var className = _ref3.className,\n      colors = _ref3.colors,\n      gradients = _ref3.gradients,\n      disableCustomColors = _ref3.disableCustomColors,\n      disableCustomGradients = _ref3.disableCustomGradients,\n      children = _ref3.children,\n      settings = _ref3.settings,\n      title = _ref3.title,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref3, [\"className\", \"colors\", \"gradients\", \"disableCustomColors\", \"disableCustomGradients\", \"children\", \"settings\", \"title\"]);\n\n  if (Object(external_this_lodash_[\"isEmpty\"])(colors) && Object(external_this_lodash_[\"isEmpty\"])(gradients) && disableCustomColors && disableCustomGradients && Object(external_this_lodash_[\"every\"])(settings, function (setting) {\n    return Object(external_this_lodash_[\"isEmpty\"])(setting.colors) && Object(external_this_lodash_[\"isEmpty\"])(setting.gradients) && (setting.disableCustomColors === undefined || setting.disableCustomColors) && (setting.disableCustomGradients === undefined || setting.disableCustomGradients);\n  })) {\n    return null;\n  }\n\n  var titleElement = Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-panel-color-gradient-settings__panel-title\"\n  }, title, Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings_Indicators, {\n    colors: colors,\n    gradients: gradients,\n    settings: settings\n  }));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('block-editor-panel-color-gradient-settings', className),\n    title: titleElement\n  }, props), settings.map(function (setting, index) {\n    return Object(external_this_wp_element_[\"createElement\"])(control, Object(esm_extends[\"a\" /* default */])({\n      key: index\n    }, panel_color_gradient_settings_objectSpread({\n      colors: colors,\n      gradients: gradients,\n      disableCustomColors: disableCustomColors,\n      disableCustomGradients: disableCustomGradients\n    }, setting)));\n  }), children);\n};\n\nvar panel_color_gradient_settings_PanelColorGradientSettingsSelect = function PanelColorGradientSettingsSelect(props) {\n  var colorGradientSettings = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var settings = select('core/block-editor').getSettings();\n    return Object(external_this_lodash_[\"pick\"])(settings, panel_color_gradient_settings_colorsAndGradientKeys);\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings_PanelColorGradientSettingsInner, panel_color_gradient_settings_objectSpread({}, colorGradientSettings, {}, props));\n};\n\nvar panel_color_gradient_settings_PanelColorGradientSettings = function PanelColorGradientSettings(props) {\n  if (Object(external_this_lodash_[\"every\"])(panel_color_gradient_settings_colorsAndGradientKeys, function (key) {\n    return props.hasOwnProperty(key);\n  })) {\n    return Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings_PanelColorGradientSettingsInner, props);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings_PanelColorGradientSettingsSelect, props);\n};\n\n/* harmony default export */ var panel_color_gradient_settings = (panel_color_gradient_settings_PanelColorGradientSettings);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"a11y\"]}\nvar external_this_wp_a11y_ = __webpack_require__(48);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/contrast-checker/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction ContrastCheckerMessage(_ref) {\n  var tinyBackgroundColor = _ref.tinyBackgroundColor,\n      tinyTextColor = _ref.tinyTextColor,\n      backgroundColor = _ref.backgroundColor,\n      textColor = _ref.textColor;\n  var msg = tinyBackgroundColor.getBrightness() < tinyTextColor.getBrightness() ? Object(external_this_wp_i18n_[\"__\"])('This color combination may be hard for people to read. Try using a darker background color and/or a brighter text color.') : Object(external_this_wp_i18n_[\"__\"])('This color combination may be hard for people to read. Try using a brighter background color and/or a darker text color.'); // Note: The `Notice` component can speak messages via its `spokenMessage`\n  // prop, but the contrast checker requires granular control over when the\n  // announcements are made. Notably, the message will be re-announced if a\n  // new color combination is selected and the contrast is still insufficient.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('This color combination may be hard for people to read.'));\n  }, [backgroundColor, textColor]);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-contrast-checker\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n    spokenMessage: null,\n    status: \"warning\",\n    isDismissible: false\n  }, msg));\n}\n\nfunction ContrastChecker(_ref2) {\n  var backgroundColor = _ref2.backgroundColor,\n      fallbackBackgroundColor = _ref2.fallbackBackgroundColor,\n      fallbackTextColor = _ref2.fallbackTextColor,\n      fontSize = _ref2.fontSize,\n      isLargeText = _ref2.isLargeText,\n      textColor = _ref2.textColor;\n\n  if (!(backgroundColor || fallbackBackgroundColor) || !(textColor || fallbackTextColor)) {\n    return null;\n  }\n\n  var tinyBackgroundColor = tinycolor_default()(backgroundColor || fallbackBackgroundColor);\n  var tinyTextColor = tinycolor_default()(textColor || fallbackTextColor);\n  var hasTransparency = tinyBackgroundColor.getAlpha() !== 1 || tinyTextColor.getAlpha() !== 1;\n\n  if (hasTransparency || tinycolor_default.a.isReadable(tinyBackgroundColor, tinyTextColor, {\n    level: 'AA',\n    size: isLargeText || isLargeText !== false && fontSize >= 24 ? 'large' : 'small'\n  })) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(ContrastCheckerMessage, {\n    backgroundColor: backgroundColor,\n    textColor: textColor,\n    tinyBackgroundColor: tinyBackgroundColor,\n    tinyTextColor: tinyTextColor\n  });\n}\n\n/* harmony default export */ var contrast_checker = (ContrastChecker);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar inspector_controls_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('InspectorControls'),\n    inspector_controls_Fill = inspector_controls_createSlotFill.Fill,\n    inspector_controls_Slot = inspector_controls_createSlotFill.Slot;\n\nfunction InspectorControls(_ref) {\n  var children = _ref.children;\n  return useDisplayBlockControls() ? Object(external_this_wp_element_[\"createElement\"])(inspector_controls_Fill, null, children) : null;\n}\n\nInspectorControls.Slot = inspector_controls_Slot;\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inspector-controls/README.md\n */\n\n/* harmony default export */ var inspector_controls = (InspectorControls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/dom.js\n/**\n * Given a block client ID, returns the corresponding DOM node for the block,\n * if exists. As much as possible, this helper should be avoided, and used only\n * in cases where isolated behaviors need remote access to a block node.\n *\n * @param {string} clientId Block client ID.\n *\n * @return {Element?} Block DOM node.\n */\nfunction getBlockDOMNode(clientId) {\n  return document.getElementById('block-' + clientId);\n}\n/**\n * Returns the preview container DOM node for a given block client ID, or\n * undefined if the container cannot be determined.\n *\n * @param {string} clientId Block client ID.\n *\n * @return {Node|undefined} Preview container DOM node.\n */\n\nfunction getBlockPreviewContainerDOMNode(clientId) {\n  var domNode = getBlockDOMNode(clientId);\n\n  if (!domNode) {\n    return;\n  }\n\n  return domNode.firstChild || domNode;\n}\n/**\n * Returns true if the given element is a block focus stop. Blocks without their\n * own text fields rely on the focus stop to be keyboard navigable.\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element is a block focus stop.\n */\n\nfunction isBlockFocusStop(element) {\n  return element.classList.contains('block-editor-block-list__block');\n}\n/**\n * Returns true if two elements are contained within the same block.\n *\n * @param {Element} a First element.\n * @param {Element} b Second element.\n *\n * @return {boolean} Whether elements are in the same block.\n */\n\nfunction isInSameBlock(a, b) {\n  return a.closest('.block-editor-block-list__block') === b.closest('.block-editor-block-list__block');\n}\n/**\n * Returns true if an element is considered part of the block and not its\n * children.\n *\n * @param {Element} blockElement Block container element.\n * @param {Element} element      Element.\n *\n * @return {boolean} Whether element is in the block Element but not its\n *                   children.\n */\n\nfunction isInsideRootBlock(blockElement, element) {\n  var parentBlock = element.closest('.block-editor-block-list__block');\n  return parentBlock === blockElement;\n}\n/**\n * Returns true if the given element contains inner blocks (an InnerBlocks\n * element).\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element contains inner blocks.\n */\n\nfunction hasInnerBlocksContext(element) {\n  return element.classList.contains('block-editor-block-list__layout') || !!element.querySelector('.block-editor-block-list__layout');\n}\n/**\n * Finds the block client ID given any DOM node inside the block.\n *\n * @param {Node?} node DOM node.\n *\n * @return {string|undefined} Client ID or undefined if the node is not part of\n *                            a block.\n */\n\nfunction getBlockClientId(node) {\n  while (node && node.nodeType !== window.Node.ELEMENT_NODE) {\n    node = node.parentNode;\n  }\n\n  if (!node) {\n    return;\n  }\n\n  var elementNode =\n  /** @type {Element} */\n  node;\n  var blockNode = elementNode.closest('.block-editor-block-list__block');\n\n  if (!blockNode) {\n    return;\n  }\n\n  return blockNode.id.slice('block-'.length);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/color-panel.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction ColorPanel(_ref) {\n  var settings = _ref.settings,\n      clientId = _ref.clientId,\n      _ref$enableContrastCh = _ref.enableContrastChecking,\n      enableContrastChecking = _ref$enableContrastCh === void 0 ? true : _ref$enableContrastCh;\n  var _window = window,\n      getComputedStyle = _window.getComputedStyle,\n      Node = _window.Node;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      detectedBackgroundColor = _useState2[0],\n      setDetectedBackgroundColor = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      detectedColor = _useState4[0],\n      setDetectedColor = _useState4[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!enableContrastChecking) {\n      return;\n    }\n\n    var colorsDetectionElement = getBlockDOMNode(clientId);\n\n    if (!colorsDetectionElement) {\n      return;\n    }\n\n    setDetectedColor(getComputedStyle(colorsDetectionElement).color);\n    var backgroundColorNode = colorsDetectionElement;\n    var backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;\n\n    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === Node.ELEMENT_NODE) {\n      backgroundColorNode = backgroundColorNode.parentNode;\n      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;\n    }\n\n    setDetectedBackgroundColor(backgroundColor);\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(inspector_controls, null, Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Color settings'),\n    initialOpen: false,\n    settings: settings\n  }, enableContrastChecking && Object(external_this_wp_element_[\"createElement\"])(contrast_checker, {\n    backgroundColor: detectedBackgroundColor,\n    textColor: detectedColor\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/color.js\n\n\n\n\n\nfunction color_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction color_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { color_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { color_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar COLOR_SUPPORT_KEY = '__experimentalColor';\n\nvar color_hasColorSupport = function hasColorSupport(blockType) {\n  return external_this_wp_element_[\"Platform\"].OS === 'web' && Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, COLOR_SUPPORT_KEY);\n};\n\nvar color_hasLinkColorSupport = function hasLinkColorSupport(blockType) {\n  if (external_this_wp_element_[\"Platform\"].OS !== 'web') {\n    return false;\n  }\n\n  var colorSupport = Object(external_this_wp_blocks_[\"getBlockSupport\"])(blockType, COLOR_SUPPORT_KEY);\n  return Object(external_this_lodash_[\"isObject\"])(colorSupport) && !!colorSupport.linkColor;\n};\n\nvar color_hasGradientSupport = function hasGradientSupport(blockType) {\n  if (external_this_wp_element_[\"Platform\"].OS !== 'web') {\n    return false;\n  }\n\n  var colorSupport = Object(external_this_wp_blocks_[\"getBlockSupport\"])(blockType, COLOR_SUPPORT_KEY);\n  return Object(external_this_lodash_[\"isObject\"])(colorSupport) && !!colorSupport.gradients;\n};\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\n\nfunction addAttributes(settings) {\n  if (!color_hasColorSupport(settings)) {\n    return settings;\n  } // allow blocks to specify their own attribute definition with default values if needed.\n\n\n  if (!settings.attributes.backgroundColor) {\n    Object.assign(settings.attributes, {\n      backgroundColor: {\n        type: 'string'\n      }\n    });\n  }\n\n  if (!settings.attributes.textColor) {\n    Object.assign(settings.attributes, {\n      textColor: {\n        type: 'string'\n      }\n    });\n  }\n\n  if (color_hasGradientSupport(settings) && !settings.attributes.gradient) {\n    Object.assign(settings.attributes, {\n      gradient: {\n        type: 'string'\n      }\n    });\n  }\n\n  return settings;\n}\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param  {Object} props      Additional props applied to save element\n * @param  {Object} blockType  Block type\n * @param  {Object} attributes Block attributes\n * @return {Object}            Filtered props applied to save element\n */\n\n\nfunction color_addSaveProps(props, blockType, attributes) {\n  var _style$color, _style$color2, _style$color3, _style$color4, _style$color5, _classnames;\n\n  if (!color_hasColorSupport(blockType)) {\n    return props;\n  }\n\n  var hasGradient = color_hasGradientSupport(blockType); // I'd have prefered to avoid the \"style\" attribute usage here\n\n  var backgroundColor = attributes.backgroundColor,\n      textColor = attributes.textColor,\n      gradient = attributes.gradient,\n      style = attributes.style;\n  var backgroundClass = getColorClassName('background-color', backgroundColor);\n\n  var gradientClass = __experimentalGetGradientClass(gradient);\n\n  var textClass = getColorClassName('color', textColor);\n  var newClassName = classnames_default()(props.className, textClass, gradientClass, (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, (!hasGradient || !(style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.gradient)) && !!backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-text-color', textColor || (style === null || style === void 0 ? void 0 : (_style$color2 = style.color) === null || _style$color2 === void 0 ? void 0 : _style$color2.text)), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-background', backgroundColor || (style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.background) || hasGradient && (gradient || (style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.gradient))), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-link-color', style === null || style === void 0 ? void 0 : (_style$color5 = style.color) === null || _style$color5 === void 0 ? void 0 : _style$color5.link), _classnames));\n  props.className = newClassName ? newClassName : undefined;\n  return props;\n}\n/**\n * Filters registered block settings to extand the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\nfunction addEditProps(settings) {\n  if (!color_hasColorSupport(settings)) {\n    return settings;\n  }\n\n  var existingGetEditWrapperProps = settings.getEditWrapperProps;\n\n  settings.getEditWrapperProps = function (attributes) {\n    var props = {};\n\n    if (existingGetEditWrapperProps) {\n      props = existingGetEditWrapperProps(attributes);\n    }\n\n    return color_addSaveProps(props, settings, attributes);\n  };\n\n  return settings;\n}\n\nvar color_getLinkColorFromAttributeValue = function getLinkColorFromAttributeValue(colors, value) {\n  var attributeParsed = /var:preset\\|color\\|(.+)/.exec(value);\n\n  if (attributeParsed && attributeParsed[1]) {\n    return utils_getColorObjectByAttributeValues(colors, attributeParsed[1]).color;\n  }\n\n  return value;\n};\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\n\n\nfunction ColorEdit(props) {\n  var _style$color7, _style$color8, _style$color9, _style$color10, _props$attributes$sty2, _props$attributes$sty3;\n\n  var blockName = props.name,\n      attributes = props.attributes;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings();\n  }, []),\n      colors = _useSelect.colors,\n      gradients = _useSelect.gradients,\n      __experimentalEnableLinkColor = _useSelect.__experimentalEnableLinkColor; // Shouldn't be needed but right now the ColorGradientsPanel\n  // can trigger both onChangeColor and onChangeBackground\n  // synchronously causing our two callbacks to override changes\n  // from each other.\n\n\n  var localAttributes = Object(external_this_wp_element_[\"useRef\"])(attributes);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    localAttributes.current = attributes;\n  }, [attributes]);\n\n  if (!color_hasColorSupport(blockName)) {\n    return null;\n  }\n\n  var hasGradient = color_hasGradientSupport(blockName);\n  var style = attributes.style,\n      textColor = attributes.textColor,\n      backgroundColor = attributes.backgroundColor,\n      gradient = attributes.gradient;\n  var gradientValue;\n\n  if (hasGradient && gradient) {\n    gradientValue = getGradientValueBySlug(gradients, gradient);\n  } else if (hasGradient) {\n    var _style$color6;\n\n    gradientValue = style === null || style === void 0 ? void 0 : (_style$color6 = style.color) === null || _style$color6 === void 0 ? void 0 : _style$color6.gradient;\n  }\n\n  var onChangeColor = function onChangeColor(name) {\n    return function (value) {\n      var _localAttributes$curr, _localAttributes$curr2;\n\n      var colorObject = utils_getColorObjectByColorValue(colors, value);\n      var attributeName = name + 'Color';\n\n      var newStyle = color_objectSpread({}, localAttributes.current.style, {\n        color: color_objectSpread({}, (_localAttributes$curr = localAttributes.current) === null || _localAttributes$curr === void 0 ? void 0 : (_localAttributes$curr2 = _localAttributes$curr.style) === null || _localAttributes$curr2 === void 0 ? void 0 : _localAttributes$curr2.color, Object(defineProperty[\"a\" /* default */])({}, name, (colorObject === null || colorObject === void 0 ? void 0 : colorObject.slug) ? undefined : value))\n      });\n\n      var newNamedColor = (colorObject === null || colorObject === void 0 ? void 0 : colorObject.slug) ? colorObject.slug : undefined;\n\n      var newAttributes = Object(defineProperty[\"a\" /* default */])({\n        style: utils_cleanEmptyObject(newStyle)\n      }, attributeName, newNamedColor);\n\n      props.setAttributes(newAttributes);\n      localAttributes.current = color_objectSpread({}, localAttributes.current, {}, newAttributes);\n    };\n  };\n\n  var onChangeGradient = function onChangeGradient(value) {\n    var slug = getGradientSlugByValue(gradients, value);\n    var newAttributes;\n\n    if (slug) {\n      var _localAttributes$curr3, _localAttributes$curr4, _localAttributes$curr5;\n\n      var newStyle = color_objectSpread({}, (_localAttributes$curr3 = localAttributes.current) === null || _localAttributes$curr3 === void 0 ? void 0 : _localAttributes$curr3.style, {\n        color: color_objectSpread({}, (_localAttributes$curr4 = localAttributes.current) === null || _localAttributes$curr4 === void 0 ? void 0 : (_localAttributes$curr5 = _localAttributes$curr4.style) === null || _localAttributes$curr5 === void 0 ? void 0 : _localAttributes$curr5.color, {\n          gradient: undefined\n        })\n      });\n\n      newAttributes = {\n        style: utils_cleanEmptyObject(newStyle),\n        gradient: slug\n      };\n    } else {\n      var _localAttributes$curr6, _localAttributes$curr7, _localAttributes$curr8;\n\n      var _newStyle = color_objectSpread({}, (_localAttributes$curr6 = localAttributes.current) === null || _localAttributes$curr6 === void 0 ? void 0 : _localAttributes$curr6.style, {\n        color: color_objectSpread({}, (_localAttributes$curr7 = localAttributes.current) === null || _localAttributes$curr7 === void 0 ? void 0 : (_localAttributes$curr8 = _localAttributes$curr7.style) === null || _localAttributes$curr8 === void 0 ? void 0 : _localAttributes$curr8.color, {\n          gradient: value\n        })\n      });\n\n      newAttributes = {\n        style: utils_cleanEmptyObject(_newStyle),\n        gradient: undefined\n      };\n    }\n\n    props.setAttributes(newAttributes);\n    localAttributes.current = color_objectSpread({}, localAttributes.current, {}, newAttributes);\n  };\n\n  var onChangeLinkColor = function onChangeLinkColor(value) {\n    var _props$attributes$sty;\n\n    var colorObject = utils_getColorObjectByColorValue(colors, value);\n    props.setAttributes({\n      style: color_objectSpread({}, props.attributes.style, {\n        color: color_objectSpread({}, (_props$attributes$sty = props.attributes.style) === null || _props$attributes$sty === void 0 ? void 0 : _props$attributes$sty.color, {\n          link: (colorObject === null || colorObject === void 0 ? void 0 : colorObject.slug) ? \"var:preset|color|\".concat(colorObject.slug) : value\n        })\n      })\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(ColorPanel, {\n    enableContrastChecking: // Turn on contrast checker for web only since it's not supported on mobile yet.\n    external_this_wp_element_[\"Platform\"].OS === 'web' && !gradient && !(style === null || style === void 0 ? void 0 : (_style$color7 = style.color) === null || _style$color7 === void 0 ? void 0 : _style$color7.gradient),\n    clientId: props.clientId,\n    settings: [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Text Color'),\n      onColorChange: onChangeColor('text'),\n      colorValue: utils_getColorObjectByAttributeValues(colors, textColor, style === null || style === void 0 ? void 0 : (_style$color8 = style.color) === null || _style$color8 === void 0 ? void 0 : _style$color8.text).color\n    }, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Background Color'),\n      onColorChange: onChangeColor('background'),\n      colorValue: utils_getColorObjectByAttributeValues(colors, backgroundColor, style === null || style === void 0 ? void 0 : (_style$color9 = style.color) === null || _style$color9 === void 0 ? void 0 : _style$color9.background).color,\n      gradientValue: gradientValue,\n      onGradientChange: hasGradient ? onChangeGradient : undefined\n    }].concat(Object(toConsumableArray[\"a\" /* default */])(__experimentalEnableLinkColor && color_hasLinkColorSupport(blockName) ? [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Link Color'),\n      onColorChange: onChangeLinkColor,\n      colorValue: color_getLinkColorFromAttributeValue(colors, style === null || style === void 0 ? void 0 : (_style$color10 = style.color) === null || _style$color10 === void 0 ? void 0 : _style$color10.link),\n      clearable: !!((_props$attributes$sty2 = props.attributes.style) === null || _props$attributes$sty2 === void 0 ? void 0 : (_props$attributes$sty3 = _props$attributes$sty2.color) === null || _props$attributes$sty3 === void 0 ? void 0 : _props$attributes$sty3.link)\n    }] : []))\n  });\n}\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param  {Function} BlockListBlock Original component\n * @return {Function}                Wrapped component\n */\n\nvar withColorPaletteStyles = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockListBlock) {\n  return function (props) {\n    var _getColorObjectByAttr, _getColorObjectByAttr2, _props$wrapperProps;\n\n    var name = props.name,\n        attributes = props.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor;\n    var colors = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n      return select('core/block-editor').getSettings().colors;\n    }, []);\n\n    if (!color_hasColorSupport(name)) {\n      return Object(external_this_wp_element_[\"createElement\"])(BlockListBlock, props);\n    }\n\n    var extraStyles = {\n      color: textColor ? (_getColorObjectByAttr = utils_getColorObjectByAttributeValues(colors, textColor)) === null || _getColorObjectByAttr === void 0 ? void 0 : _getColorObjectByAttr.color : undefined,\n      backgroundColor: backgroundColor ? (_getColorObjectByAttr2 = utils_getColorObjectByAttributeValues(colors, backgroundColor)) === null || _getColorObjectByAttr2 === void 0 ? void 0 : _getColorObjectByAttr2.color : undefined\n    };\n    var wrapperProps = props.wrapperProps;\n    wrapperProps = color_objectSpread({}, props.wrapperProps, {\n      style: color_objectSpread({}, extraStyles, {}, (_props$wrapperProps = props.wrapperProps) === null || _props$wrapperProps === void 0 ? void 0 : _props$wrapperProps.style)\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(BlockListBlock, Object(esm_extends[\"a\" /* default */])({}, props, {\n      wrapperProps: wrapperProps\n    }));\n  };\n});\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/color/addAttribute', addAttributes);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/color/addSaveProps', color_addSaveProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/color/addEditProps', addEditProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockListBlock', 'core/color/with-color-palette-styles', withColorPaletteStyles);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/utils.js\nvar BASE_DEFAULT_VALUE = 1.5;\nvar STEP = 0.1;\n/**\n * There are varying value types within LineHeightControl:\n *\n * {undefined} Initial value. No changes from the user.\n * {string} Input value. Value consumed/outputted by the input. Empty would be ''.\n * {number} Block attribute type. Input value needs to be converted for attribute setting.\n *\n * Note: If the value is undefined, the input requires it to be an empty string ('')\n * in order to be considered \"controlled\" by props (rather than internal state).\n */\n\nvar RESET_VALUE = '';\n/**\n * Determines if the lineHeight attribute has been properly defined.\n *\n * @param {any} lineHeight The value to check.\n *\n * @return {boolean} Whether the lineHeight attribute is valid.\n */\n\nfunction isLineHeightDefined(lineHeight) {\n  return lineHeight !== undefined && lineHeight !== RESET_VALUE;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/line-height-control/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction LineHeightControl(_ref) {\n  var lineHeight = _ref.value,\n      onChange = _ref.onChange;\n  var isDefined = isLineHeightDefined(lineHeight);\n\n  var handleOnKeyDown = function handleOnKeyDown(event) {\n    var keyCode = event.keyCode;\n\n    if (keyCode === external_this_wp_keycodes_[\"ZERO\"] && !isDefined) {\n      /**\n       * Prevents the onChange callback from firing, which prevents\n       * the logic from assuming the change was triggered from\n       * an input arrow CLICK.\n       */\n      event.preventDefault();\n      onChange('0');\n    }\n  };\n\n  var handleOnChange = function handleOnChange(nextValue) {\n    // Set the next value without modification if lineHeight has been defined\n    if (isDefined) {\n      onChange(nextValue);\n      return;\n    } // Otherwise...\n\n    /**\n     * The following logic handles the initial up/down arrow CLICK of the\n     * input element. This is so that the next values (from an undefined value state)\n     * are more better suited for line-height rendering.\n     */\n\n\n    var adjustedNextValue = nextValue;\n\n    switch (nextValue) {\n      case \"\".concat(STEP):\n        // Increment by step value\n        adjustedNextValue = BASE_DEFAULT_VALUE + STEP;\n        break;\n\n      case '0':\n        // Decrement by step value\n        adjustedNextValue = BASE_DEFAULT_VALUE - STEP;\n        break;\n    }\n\n    onChange(adjustedNextValue);\n  };\n\n  var value = isDefined ? lineHeight : RESET_VALUE;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-line-height-control\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    autoComplete: \"off\",\n    onKeyDown: handleOnKeyDown,\n    onChange: handleOnChange,\n    label: Object(external_this_wp_i18n_[\"__\"])('Line height'),\n    placeholder: BASE_DEFAULT_VALUE,\n    step: STEP,\n    type: \"number\",\n    value: value,\n    min: 0\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/line-height.js\n\n\n\nfunction line_height_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction line_height_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { line_height_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { line_height_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar LINE_HEIGHT_SUPPORT_KEY = '__experimentalLineHeight';\n/**\n * Inspector control panel containing the line height related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Line height edit element.\n */\n\nfunction LineHeightEdit(props) {\n  var _style$typography;\n\n  var style = props.attributes.style;\n  var isDisabled = useIsLineHeightDisabled(props);\n\n  if (isDisabled) {\n    return null;\n  }\n\n  var onChange = function onChange(newLineHeightValue) {\n    var newStyle = line_height_objectSpread({}, style, {\n      typography: line_height_objectSpread({}, style === null || style === void 0 ? void 0 : style.typography, {\n        lineHeight: newLineHeightValue\n      })\n    });\n\n    props.setAttributes({\n      style: utils_cleanEmptyObject(newStyle)\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(LineHeightControl, {\n    value: style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.lineHeight,\n    onChange: onChange\n  });\n}\n/**\n * Custom hook that checks if line-height settings have been disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\n\nfunction useIsLineHeightDisabled() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      blockName = _ref.name;\n\n  var isDisabled = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var editorSettings = select('core/block-editor').getSettings();\n    return editorSettings.__experimentalDisableCustomLineHeight;\n  });\n  return !Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, LINE_HEIGHT_SUPPORT_KEY) || isDisabled;\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"tokenList\"]}\nvar external_this_wp_tokenList_ = __webpack_require__(146);\nvar external_this_wp_tokenList_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_tokenList_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/utils.js\n/**\n * External dependencies\n */\n\n/**\n *  Returns the font size object based on an array of named font sizes and the namedFontSize and customFontSize values.\n * \tIf namedFontSize is undefined or not found in fontSizes an object with just the size value based on customFontSize is returned.\n *\n * @param {Array}   fontSizes               Array of font size objects containing at least the \"name\" and \"size\" values as properties.\n * @param {?string} fontSizeAttribute       Content of the font size attribute (slug).\n * @param {?number} customFontSizeAttribute Contents of the custom font size attribute (value).\n *\n * @return {?Object} If fontSizeAttribute is set and an equal slug is found in fontSizes it returns the font size object for that slug.\n * \t\t\t\t\t Otherwise, an object with just the size value based on customFontSize is returned.\n */\n\nvar utils_getFontSize = function getFontSize(fontSizes, fontSizeAttribute, customFontSizeAttribute) {\n  if (fontSizeAttribute) {\n    var fontSizeObject = Object(external_this_lodash_[\"find\"])(fontSizes, {\n      slug: fontSizeAttribute\n    });\n\n    if (fontSizeObject) {\n      return fontSizeObject;\n    }\n  }\n\n  return {\n    size: customFontSizeAttribute\n  };\n};\n/**\n * Returns the corresponding font size object for a given value.\n *\n * @param {Array} fontSizes Array of font size objects.\n * @param {number} value Font size value.\n *\n * @return {Object} Font size object.\n */\n\nfunction getFontSizeObjectByValue(fontSizes, value) {\n  var fontSizeObject = Object(external_this_lodash_[\"find\"])(fontSizes, {\n    size: value\n  });\n\n  if (fontSizeObject) {\n    return fontSizeObject;\n  }\n\n  return {\n    size: value\n  };\n}\n/**\n * Returns a class based on fontSizeName.\n *\n * @param {string} fontSizeSlug    Slug of the fontSize.\n *\n * @return {string} String with the class corresponding to the fontSize passed.\n *                  The class is generated by appending 'has-' followed by fontSizeSlug in kebabCase and ending with '-font-size'.\n */\n\nfunction getFontSizeClass(fontSizeSlug) {\n  if (!fontSizeSlug) {\n    return;\n  }\n\n  return \"has-\".concat(Object(external_this_lodash_[\"kebabCase\"])(fontSizeSlug), \"-font-size\");\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/font-size-picker.js\n/**\n * WordPress dependencies\n */\n\n\n/* harmony default export */ var font_size_picker = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select$getSettings = select('core/block-editor').getSettings(),\n      disableCustomFontSizes = _select$getSettings.disableCustomFontSizes,\n      fontSizes = _select$getSettings.fontSizes;\n\n  return {\n    disableCustomFontSizes: disableCustomFontSizes,\n    fontSizes: fontSizes\n  };\n})(external_this_wp_components_[\"FontSizePicker\"]));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/font-size.js\n\n\n\nfunction font_size_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction font_size_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { font_size_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { font_size_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar FONT_SIZE_SUPPORT_KEY = '__experimentalFontSize';\n/**\n * Filters registered block settings, extending attributes to include\n * `fontSize` and `fontWeight` attributes.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\nfunction font_size_addAttributes(settings) {\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(settings, FONT_SIZE_SUPPORT_KEY)) {\n    return settings;\n  } // Allow blocks to specify a default value if needed.\n\n\n  if (!settings.attributes.fontSize) {\n    Object.assign(settings.attributes, {\n      fontSize: {\n        type: 'string'\n      }\n    });\n  }\n\n  return settings;\n}\n/**\n * Override props assigned to save component to inject font size.\n *\n * @param  {Object} props      Additional props applied to save element\n * @param  {Object} blockType  Block type\n * @param  {Object} attributes Block attributes\n * @return {Object}            Filtered props applied to save element\n */\n\n\nfunction font_size_addSaveProps(props, blockType, attributes) {\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, FONT_SIZE_SUPPORT_KEY)) {\n    return props;\n  } // Use TokenList to dedupe classes.\n\n\n  var classes = new external_this_wp_tokenList_default.a(props.className);\n  classes.add(getFontSizeClass(attributes.fontSize));\n  var newClassName = classes.value;\n  props.className = newClassName ? newClassName : undefined;\n  return props;\n}\n/**\n * Filters registered block settings to expand the block edit wrapper\n * by applying the desired styles and classnames.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\n\nfunction font_size_addEditProps(settings) {\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(settings, FONT_SIZE_SUPPORT_KEY)) {\n    return settings;\n  }\n\n  var existingGetEditWrapperProps = settings.getEditWrapperProps;\n\n  settings.getEditWrapperProps = function (attributes) {\n    var props = {};\n\n    if (existingGetEditWrapperProps) {\n      props = existingGetEditWrapperProps(attributes);\n    }\n\n    return font_size_addSaveProps(props, settings, attributes);\n  };\n\n  return settings;\n}\n\nfunction useFontSizes() {\n  return Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings().fontSizes;\n  });\n}\n/**\n * Inspector control panel containing the font size related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Font size edit element.\n */\n\n\nfunction FontSizeEdit(props) {\n  var _style$typography;\n\n  var _props$attributes = props.attributes,\n      fontSize = _props$attributes.fontSize,\n      style = _props$attributes.style,\n      setAttributes = props.setAttributes;\n  var isDisabled = useIsFontSizeDisabled(props);\n  var fontSizes = useFontSizes();\n\n  if (isDisabled) {\n    return null;\n  }\n\n  var fontSizeObject = utils_getFontSize(fontSizes, fontSize, style === null || style === void 0 ? void 0 : (_style$typography = style.typography) === null || _style$typography === void 0 ? void 0 : _style$typography.fontSize);\n\n  var onChange = function onChange(value) {\n    var fontSizeSlug = getFontSizeObjectByValue(fontSizes, value).slug;\n    setAttributes({\n      style: utils_cleanEmptyObject(font_size_objectSpread({}, style, {\n        typography: font_size_objectSpread({}, style === null || style === void 0 ? void 0 : style.typography, {\n          fontSize: fontSizeSlug ? undefined : value\n        })\n      })),\n      fontSize: fontSizeSlug\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(font_size_picker, {\n    value: fontSizeObject.size,\n    onChange: onChange\n  });\n}\n/**\n * Custom hook that checks if font-size settings have been disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\n\nfunction useIsFontSizeDisabled() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      blockName = _ref.name;\n\n  var fontSizes = useFontSizes();\n  var hasFontSizes = fontSizes.length;\n  return !Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, FONT_SIZE_SUPPORT_KEY) || !hasFontSizes;\n}\n/**\n * Add inline styles for font sizes.\n * Ideally, this is not needed and themes load the font-size classes on the\n * editor.\n *\n * @param  {Function} BlockListBlock Original component\n * @return {Function}                Wrapped component\n */\n\nvar withFontSizeInlineStyles = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockListBlock) {\n  return function (props) {\n    var _style$typography2;\n\n    var fontSizes = useFontSizes();\n    var blockName = props.name,\n        _props$attributes2 = props.attributes,\n        fontSize = _props$attributes2.fontSize,\n        style = _props$attributes2.style,\n        wrapperProps = props.wrapperProps;\n\n    var newProps = font_size_objectSpread({}, props); // Only add inline styles if the block supports font sizes, doesn't\n    // already have an inline font size, and does have a class to extract\n    // the font size from.\n\n\n    if (Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, FONT_SIZE_SUPPORT_KEY) && fontSize && !(style === null || style === void 0 ? void 0 : (_style$typography2 = style.typography) === null || _style$typography2 === void 0 ? void 0 : _style$typography2.fontSize)) {\n      var _style$typography3;\n\n      var fontSizeValue = utils_getFontSize(fontSizes, fontSize, style === null || style === void 0 ? void 0 : (_style$typography3 = style.typography) === null || _style$typography3 === void 0 ? void 0 : _style$typography3.fontSize).size;\n      newProps.wrapperProps = font_size_objectSpread({}, wrapperProps, {\n        style: font_size_objectSpread({\n          fontSize: fontSizeValue\n        }, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.style)\n      });\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(BlockListBlock, newProps);\n  };\n}, 'withFontSizeInlineStyles');\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/font/addAttribute', font_size_addAttributes);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/font/addSaveProps', font_size_addSaveProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/font/addEditProps', font_size_addEditProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockListBlock', 'core/font-size/with-font-size-inline-styles', withFontSizeInlineStyles);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/typography.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY];\nfunction TypographyPanel(props) {\n  var isDisabled = useIsTypographyDisabled(props);\n  var isSupported = typography_hasTypographySupport(props.name);\n  if (isDisabled || !isSupported) return null;\n  return Object(external_this_wp_element_[\"createElement\"])(inspector_controls, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Typography')\n  }, Object(external_this_wp_element_[\"createElement\"])(FontSizeEdit, props), Object(external_this_wp_element_[\"createElement\"])(LineHeightEdit, props)));\n}\n\nvar typography_hasTypographySupport = function hasTypographySupport(blockName) {\n  return external_this_wp_element_[\"Platform\"].OS === 'web' && TYPOGRAPHY_SUPPORT_KEYS.some(function (key) {\n    return Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, key);\n  });\n};\n\nfunction useIsTypographyDisabled() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var configs = [useIsFontSizeDisabled(props), useIsLineHeightDisabled(props)];\n  return configs.filter(Boolean).length === configs.length;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-editor-feature/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Hook that retrieves the setting for the given editor feature.\n * It works with nested objects using by finding the value at path.\n *\n * @param {string} featurePath  The path to the feature.\n *\n * @return {any} Returns the value defined for the setting.\n *\n * @example\n * ```js\n * const isEnabled = useEditorFeature( 'typography.dropCap' );\n * ```\n */\n\nfunction useEditorFeature(featurePath) {\n  var _useBlockEditContext = useBlockEditContext(),\n      blockName = _useBlockEditContext.name;\n\n  var path = \"__experimentalFeatures.\".concat(featurePath);\n  var setting = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/blocks'),\n        getBlockSupport = _select.getBlockSupport;\n\n    var blockSupportValue = getBlockSupport(blockName, path);\n\n    if (blockSupportValue !== undefined) {\n      return blockSupportValue;\n    }\n\n    var _select2 = select('core/block-editor'),\n        getSettings = _select2.getSettings;\n\n    return Object(external_this_lodash_[\"get\"])(getSettings(), path);\n  }, [blockName, path]);\n  return setting;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/unit-control/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction UnitControl(_ref) {\n  var unitsProp = _ref.units,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"units\"]);\n\n  var units = useCustomUnits(unitsProp);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalUnitControl\"], Object(esm_extends[\"a\" /* default */])({\n    units: units\n  }, props));\n}\n/**\n * Filters available units based on values defined by settings.\n *\n * @param {Array} settings Collection of preferred units.\n * @param {Array} units Collection of available units.\n *\n * @return {Array} Filtered units based on settings.\n */\n\nfunction filterUnitsWithSettings() {\n  var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  return units.filter(function (unit) {\n    return settings.includes(unit.value);\n  });\n}\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n *\n * @param {Array} unitsProp Collection of available units.\n *\n * @return {Array} Filtered units based on settings.\n */\n\n\nfunction useCustomUnits(unitsProp) {\n  var settings = useEditorFeature('__experimentalDisableCustomUnits');\n  var isDisabled = !!settings; // Adjust units based on add_theme_support( 'experimental-custom-units' );\n\n  var units;\n  /**\n   * Handle extra arguments for add_theme_support\n   *\n   * Example: add_theme_support( 'experimental-custom-units', 'rem' );\n   * Or: add_theme_support( 'experimental-custom-units', 'px, 'rem', 'em' );\n   *\n   * Note: If there are unit argument (e.g. 'em'), these units are enabled\n   * within the control.\n   */\n\n  if (Array.isArray(settings)) {\n    units = filterUnitsWithSettings(settings, unitsProp);\n  } else {\n    units = isDisabled ? false : unitsProp;\n  }\n\n  return units;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/padding.js\n\n\n\nfunction padding_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction padding_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { padding_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { padding_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar PADDING_SUPPORT_KEY = '__experimentalPadding';\n/**\n * Inspector control panel containing the line height related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Line height edit element.\n */\n\nfunction PaddingEdit(props) {\n  var _style$spacing;\n\n  var blockName = props.name,\n      style = props.attributes.style,\n      setAttributes = props.setAttributes;\n  var units = useCustomUnits();\n\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, PADDING_SUPPORT_KEY)) {\n    return null;\n  }\n\n  var onChange = function onChange(next) {\n    var newStyle = padding_objectSpread({}, style, {\n      spacing: {\n        padding: next\n      }\n    });\n\n    setAttributes({\n      style: utils_cleanEmptyObject(newStyle)\n    });\n  };\n\n  var onChangeShowVisualizer = function onChangeShowVisualizer(next) {\n    var newStyle = padding_objectSpread({}, style, {\n      visualizers: {\n        padding: next\n      }\n    });\n\n    setAttributes({\n      style: utils_cleanEmptyObject(newStyle)\n    });\n  };\n\n  return external_this_wp_element_[\"Platform\"].select({\n    web: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalBoxControl\"], {\n      values: style === null || style === void 0 ? void 0 : (_style$spacing = style.spacing) === null || _style$spacing === void 0 ? void 0 : _style$spacing.padding,\n      onChange: onChange,\n      onChangeShowVisualizer: onChangeShowVisualizer,\n      label: Object(external_this_wp_i18n_[\"__\"])('Padding'),\n      units: units\n    })),\n    native: null\n  });\n}\nvar paddingStyleMappings = {\n  paddingTop: ['spacing', 'padding', 'top'],\n  paddingRight: ['spacing', 'padding', 'right'],\n  paddingBottom: ['spacing', 'padding', 'bottom'],\n  paddingLeft: ['spacing', 'padding', 'left']\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/spacing-panel-control/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction SpacingPanelControl(_ref) {\n  var children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\"]);\n\n  var isSpacingEnabled = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings;\n\n    return Object(external_this_lodash_[\"get\"])(getSettings(), '__experimentalEnableCustomSpacing');\n  }, []);\n  if (!isSpacingEnabled) return null;\n  return Object(external_this_wp_element_[\"createElement\"])(inspector_controls, props, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Spacing')\n  }, children));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/style.js\n\n\n\n\n\n\n\nfunction style_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction style_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { style_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { style_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar styleSupportKeys = [].concat(Object(toConsumableArray[\"a\" /* default */])(TYPOGRAPHY_SUPPORT_KEYS), [COLOR_SUPPORT_KEY, PADDING_SUPPORT_KEY]);\n\nvar style_hasStyleSupport = function hasStyleSupport(blockType) {\n  return styleSupportKeys.some(function (key) {\n    return Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, key);\n  });\n};\n\nvar VARIABLE_REFERENCE_PREFIX = 'var:';\nvar VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = '|';\nvar VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = '--';\n\nfunction compileStyleValue(uncompiledValue) {\n  if (Object(external_this_lodash_[\"startsWith\"])(uncompiledValue, VARIABLE_REFERENCE_PREFIX)) {\n    var variable = uncompiledValue.slice(VARIABLE_REFERENCE_PREFIX.length).split(VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE).join(VARIABLE_PATH_SEPARATOR_TOKEN_STYLE);\n    return \"var(--wp--\".concat(variable, \")\");\n  }\n\n  return uncompiledValue;\n}\n/**\n * Returns the inline styles to add depending on the style object\n *\n * @param  {Object} styles Styles configuration\n * @return {Object}        Flattened CSS variables declaration\n */\n\n\nfunction getInlineStyles() {\n  var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var mappings = style_objectSpread({}, paddingStyleMappings, {\n    lineHeight: ['typography', 'lineHeight'],\n    fontSize: ['typography', 'fontSize'],\n    background: ['color', 'gradient'],\n    backgroundColor: ['color', 'background'],\n    color: ['color', 'text'],\n    '--wp--style--color--link': ['color', 'link']\n  });\n\n  var output = {};\n  Object.entries(mappings).forEach(function (_ref) {\n    var _ref2 = Object(toArray[\"a\" /* default */])(_ref),\n        styleKey = _ref2[0],\n        otherObjectKeys = _ref2.slice(1);\n\n    var _otherObjectKeys = Object(slicedToArray[\"a\" /* default */])(otherObjectKeys, 1),\n        objectKeys = _otherObjectKeys[0];\n\n    if (Object(external_this_lodash_[\"has\"])(styles, objectKeys)) {\n      output[styleKey] = compileStyleValue(Object(external_this_lodash_[\"get\"])(styles, objectKeys));\n    }\n  });\n  return output;\n}\n/**\n * Filters registered block settings, extending attributes to include `style` attribute.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\nfunction style_addAttribute(settings) {\n  if (!style_hasStyleSupport(settings)) {\n    return settings;\n  } // allow blocks to specify their own attribute definition with default values if needed.\n\n\n  if (!settings.attributes.style) {\n    Object.assign(settings.attributes, {\n      style: {\n        type: 'object'\n      }\n    });\n  }\n\n  return settings;\n}\n/**\n * Override props assigned to save component to inject the CSS variables definition.\n *\n * @param  {Object} props      Additional props applied to save element\n * @param  {Object} blockType  Block type\n * @param  {Object} attributes Block attributes\n * @return {Object}            Filtered props applied to save element\n */\n\n\nfunction style_addSaveProps(props, blockType, attributes) {\n  if (!style_hasStyleSupport(blockType)) {\n    return props;\n  }\n\n  var style = attributes.style;\n  props.style = style_objectSpread({}, getInlineStyles(style), {}, props.style);\n  return props;\n}\n/**\n * Filters registered block settings to extand the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param  {Object} settings Original block settings\n * @return {Object}          Filtered block settings\n */\n\nfunction style_addEditProps(settings) {\n  if (!style_hasStyleSupport(settings)) {\n    return settings;\n  }\n\n  var existingGetEditWrapperProps = settings.getEditWrapperProps;\n\n  settings.getEditWrapperProps = function (attributes) {\n    var props = {};\n\n    if (existingGetEditWrapperProps) {\n      props = existingGetEditWrapperProps(attributes);\n    }\n\n    return style_addSaveProps(props, settings, attributes);\n  };\n\n  return settings;\n}\n/**\n * Override the default edit UI to include new inspector controls for\n * all the custom styles configs.\n *\n * @param  {Function} BlockEdit Original component\n * @return {Function}           Wrapped component\n */\n\nvar withBlockControls = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n  return function (props) {\n    var blockName = props.name;\n    var hasPaddingSupport = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, PADDING_SUPPORT_KEY);\n    return [Object(external_this_wp_element_[\"createElement\"])(TypographyPanel, Object(esm_extends[\"a\" /* default */])({\n      key: \"typography\"\n    }, props)), Object(external_this_wp_element_[\"createElement\"])(ColorEdit, Object(esm_extends[\"a\" /* default */])({\n      key: \"colors\"\n    }, props)), Object(external_this_wp_element_[\"createElement\"])(BlockEdit, Object(esm_extends[\"a\" /* default */])({\n      key: \"edit\"\n    }, props)), hasPaddingSupport && Object(external_this_wp_element_[\"createElement\"])(SpacingPanelControl, {\n      key: \"spacing\"\n    }, Object(external_this_wp_element_[\"createElement\"])(PaddingEdit, props))];\n  };\n}, 'withToolbarControls');\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/style/addAttribute', style_addAttribute);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.getSaveContent.extraProps', 'core/style/addSaveProps', style_addSaveProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/style/addEditProps', style_addEditProps);\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockEdit', 'core/style/with-block-controls', withBlockControls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/with-colors.js\n\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction with_colors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction with_colors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { with_colors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { with_colors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar DEFAULT_COLORS = [];\n/**\n * Higher order component factory for injecting the `colorsArray` argument as\n * the colors prop in the `withCustomColors` HOC.\n *\n * @param {Array} colorsArray An array of color objects.\n *\n * @return {Function} The higher order component.\n */\n\nvar with_colors_withCustomColorPalette = function withCustomColorPalette(colorsArray) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n    return function (props) {\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n        colors: colorsArray\n      }));\n    };\n  }, 'withCustomColorPalette');\n};\n/**\n * Higher order component factory for injecting the editor colors as the\n * `colors` prop in the `withColors` HOC.\n *\n * @return {Function} The higher order component.\n */\n\n\nvar with_colors_withEditorColorPalette = function withEditorColorPalette() {\n  return Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n    var settings = select('core/block-editor').getSettings();\n    return {\n      colors: Object(external_this_lodash_[\"get\"])(settings, ['colors'], DEFAULT_COLORS)\n    };\n  });\n};\n/**\n * Helper function used with `createHigherOrderComponent` to create\n * higher order components for managing color logic.\n *\n * @param {Array}    colorTypes       An array of color types (e.g. 'backgroundColor, borderColor).\n * @param {Function} withColorPalette A HOC for injecting the 'colors' prop into the WrappedComponent.\n *\n * @return {WPComponent} The component that can be used as a HOC.\n */\n\n\nfunction createColorHOC(colorTypes, withColorPalette) {\n  var colorMap = Object(external_this_lodash_[\"reduce\"])(colorTypes, function (colorObject, colorType) {\n    return with_colors_objectSpread({}, colorObject, {}, Object(external_this_lodash_[\"isString\"])(colorType) ? Object(defineProperty[\"a\" /* default */])({}, colorType, Object(external_this_lodash_[\"kebabCase\"])(colorType)) : colorType);\n  }, {});\n  return Object(external_this_wp_compose_[\"compose\"])([withColorPalette, function (WrappedComponent) {\n    return /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(_class, _Component);\n\n      var _super = _createSuper(_class);\n\n      function _class(props) {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, _class);\n\n        _this = _super.call(this, props);\n        _this.setters = _this.createSetters();\n        _this.colorUtils = {\n          getMostReadableColor: _this.getMostReadableColor.bind(Object(assertThisInitialized[\"a\" /* default */])(_this))\n        };\n        _this.state = {};\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(_class, [{\n        key: \"getMostReadableColor\",\n        value: function getMostReadableColor(colorValue) {\n          var colors = this.props.colors;\n          return utils_getMostReadableColor(colors, colorValue);\n        }\n      }, {\n        key: \"createSetters\",\n        value: function createSetters() {\n          var _this2 = this;\n\n          return Object(external_this_lodash_[\"reduce\"])(colorMap, function (settersAccumulator, colorContext, colorAttributeName) {\n            var upperFirstColorAttributeName = Object(external_this_lodash_[\"upperFirst\"])(colorAttributeName);\n            var customColorAttributeName = \"custom\".concat(upperFirstColorAttributeName);\n            settersAccumulator[\"set\".concat(upperFirstColorAttributeName)] = _this2.createSetColor(colorAttributeName, customColorAttributeName);\n            return settersAccumulator;\n          }, {});\n        }\n      }, {\n        key: \"createSetColor\",\n        value: function createSetColor(colorAttributeName, customColorAttributeName) {\n          var _this3 = this;\n\n          return function (colorValue) {\n            var _this3$props$setAttri;\n\n            var colorObject = utils_getColorObjectByColorValue(_this3.props.colors, colorValue);\n\n            _this3.props.setAttributes((_this3$props$setAttri = {}, Object(defineProperty[\"a\" /* default */])(_this3$props$setAttri, colorAttributeName, colorObject && colorObject.slug ? colorObject.slug : undefined), Object(defineProperty[\"a\" /* default */])(_this3$props$setAttri, customColorAttributeName, colorObject && colorObject.slug ? undefined : colorValue), _this3$props$setAttri));\n          };\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, with_colors_objectSpread({}, this.props, {\n            colors: undefined\n          }, this.state, {}, this.setters, {\n            colorUtils: this.colorUtils\n          }));\n        }\n      }], [{\n        key: \"getDerivedStateFromProps\",\n        value: function getDerivedStateFromProps(_ref2, previousState) {\n          var attributes = _ref2.attributes,\n              colors = _ref2.colors;\n          return Object(external_this_lodash_[\"reduce\"])(colorMap, function (newState, colorContext, colorAttributeName) {\n            var colorObject = utils_getColorObjectByAttributeValues(colors, attributes[colorAttributeName], attributes[\"custom\".concat(Object(external_this_lodash_[\"upperFirst\"])(colorAttributeName))]);\n            var previousColorObject = previousState[colorAttributeName];\n            var previousColor = Object(external_this_lodash_[\"get\"])(previousColorObject, ['color']);\n            /**\n             * The \"and previousColorObject\" condition checks that a previous color object was already computed.\n             * At the start previousColorObject and colorValue are both equal to undefined\n             * bus as previousColorObject does not exist we should compute the object.\n             */\n\n            if (previousColor === colorObject.color && previousColorObject) {\n              newState[colorAttributeName] = previousColorObject;\n            } else {\n              newState[colorAttributeName] = with_colors_objectSpread({}, colorObject, {\n                class: getColorClassName(colorContext, colorObject.slug)\n              });\n            }\n\n            return newState;\n          }, {});\n        }\n      }]);\n\n      return _class;\n    }(external_this_wp_element_[\"Component\"]);\n  }]);\n}\n/**\n * A higher-order component factory for creating a 'withCustomColors' HOC, which handles color logic\n * for class generation color value, retrieval and color attribute setting.\n *\n * Use this higher-order component to work with a custom set of colors.\n *\n * @example\n *\n * ```jsx\n * const CUSTOM_COLORS = [ { name: 'Red', slug: 'red', color: '#ff0000' }, { name: 'Blue', slug: 'blue', color: '#0000ff' } ];\n * const withCustomColors = createCustomColorsHOC( CUSTOM_COLORS );\n * // ...\n * export default compose(\n *     withCustomColors( 'backgroundColor', 'borderColor' ),\n *     MyColorfulComponent,\n * );\n * ```\n *\n * @param {Array} colorsArray The array of color objects (name, slug, color, etc... ).\n *\n * @return {Function} Higher-order component.\n */\n\n\nfunction createCustomColorsHOC(colorsArray) {\n  return function () {\n    var withColorPalette = with_colors_withCustomColorPalette(colorsArray);\n\n    for (var _len = arguments.length, colorTypes = new Array(_len), _key = 0; _key < _len; _key++) {\n      colorTypes[_key] = arguments[_key];\n    }\n\n    return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(createColorHOC(colorTypes, withColorPalette), 'withCustomColors');\n  };\n}\n/**\n * A higher-order component, which handles color logic for class generation color value, retrieval and color attribute setting.\n *\n * For use with the default editor/theme color palette.\n *\n * @example\n *\n * ```jsx\n * export default compose(\n *     withColors( 'backgroundColor', { textColor: 'color' } ),\n *     MyColorfulComponent,\n * );\n * ```\n *\n * @param {...(Object|string)} colorTypes The arguments can be strings or objects. If the argument is an object,\n *                                        it should contain the color attribute name as key and the color context as value.\n *                                        If the argument is a string the value should be the color attribute name,\n *                                        the color context is computed by applying a kebab case transform to the value.\n *                                        Color context represents the context/place where the color is going to be used.\n *                                        The class name of the color is generated using 'has' followed by the color name\n *                                        and ending with the color context all in kebab case e.g: has-green-background-color.\n *\n * @return {Function} Higher-order component.\n */\n\nfunction withColors() {\n  var withColorPalette = with_colors_withEditorColorPalette();\n\n  for (var _len2 = arguments.length, colorTypes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    colorTypes[_key2] = arguments[_key2];\n  }\n\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(createColorHOC(colorTypes, withColorPalette), 'withColors');\n}\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/panel-color-settings/index.js\n\n\n\n\n\nfunction panel_color_settings_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction panel_color_settings_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { panel_color_settings_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { panel_color_settings_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\nvar panel_color_settings_PanelColorSettings = function PanelColorSettings(_ref) {\n  var colorSettings = _ref.colorSettings,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"colorSettings\"]);\n\n  var settings = colorSettings.map(function (_ref2) {\n    var value = _ref2.value,\n        onChange = _ref2.onChange,\n        otherSettings = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"value\", \"onChange\"]);\n\n    return panel_color_settings_objectSpread({}, otherSettings, {\n      colorValue: value,\n      onColorChange: onChange\n    });\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(panel_color_gradient_settings, Object(esm_extends[\"a\" /* default */])({\n    settings: settings,\n    gradients: [],\n    disableCustomGradients: true\n  }, props));\n};\n\n/* harmony default export */ var panel_color_settings = (panel_color_settings_PanelColorSettings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/color-panel.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar resolveContrastCheckerColor = function resolveContrastCheckerColor(color, colorSettings, detectedColor) {\n  if (typeof color === 'function') {\n    return color(colorSettings);\n  } else if (color === true) {\n    return detectedColor;\n  }\n\n  return color;\n};\n\nfunction color_panel_ColorPanel(_ref) {\n  var title = _ref.title,\n      colorSettings = _ref.colorSettings,\n      colorPanelProps = _ref.colorPanelProps,\n      contrastCheckers = _ref.contrastCheckers,\n      detectedBackgroundColor = _ref.detectedBackgroundColor,\n      detectedColor = _ref.detectedColor,\n      panelChildren = _ref.panelChildren,\n      initialOpen = _ref.initialOpen;\n  return Object(external_this_wp_element_[\"createElement\"])(panel_color_settings, Object(esm_extends[\"a\" /* default */])({\n    title: title,\n    initialOpen: initialOpen,\n    colorSettings: Object.values(colorSettings)\n  }, colorPanelProps), contrastCheckers && (Array.isArray(contrastCheckers) ? contrastCheckers.map(function (_ref2) {\n    var backgroundColor = _ref2.backgroundColor,\n        textColor = _ref2.textColor,\n        rest = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"backgroundColor\", \"textColor\"]);\n\n    backgroundColor = resolveContrastCheckerColor(backgroundColor, colorSettings, detectedBackgroundColor);\n    textColor = resolveContrastCheckerColor(textColor, colorSettings, detectedColor);\n    return Object(external_this_wp_element_[\"createElement\"])(contrast_checker, Object(esm_extends[\"a\" /* default */])({\n      key: \"\".concat(backgroundColor, \"-\").concat(textColor),\n      backgroundColor: backgroundColor,\n      textColor: textColor\n    }, rest));\n  }) : Object(external_this_lodash_[\"map\"])(colorSettings, function (_ref3) {\n    var value = _ref3.value;\n    var backgroundColor = contrastCheckers.backgroundColor,\n        textColor = contrastCheckers.textColor;\n    backgroundColor = resolveContrastCheckerColor(backgroundColor || value, colorSettings, detectedBackgroundColor);\n    textColor = resolveContrastCheckerColor(textColor || value, colorSettings, detectedColor);\n    return Object(external_this_wp_element_[\"createElement\"])(contrast_checker, Object(esm_extends[\"a\" /* default */])({}, contrastCheckers, {\n      key: \"\".concat(backgroundColor, \"-\").concat(textColor),\n      backgroundColor: backgroundColor,\n      textColor: textColor\n    }));\n  })), typeof panelChildren === 'function' ? panelChildren(colorSettings) : panelChildren);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/use-colors.js\n\n\n\n\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction use_colors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction use_colors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_colors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_colors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Browser dependencies\n */\n\nvar use_colors_window = window,\n    use_colors_getComputedStyle = use_colors_window.getComputedStyle,\n    use_colors_Node = use_colors_window.Node;\nvar use_colors_DEFAULT_COLORS = [];\nvar COMMON_COLOR_LABELS = {\n  textColor: Object(external_this_wp_i18n_[\"__\"])('Text Color'),\n  backgroundColor: Object(external_this_wp_i18n_[\"__\"])('Background Color')\n};\n\nvar use_colors_InspectorControlsColorPanel = function InspectorControlsColorPanel(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(inspector_controls, null, Object(external_this_wp_element_[\"createElement\"])(color_panel_ColorPanel, props));\n};\n\nfunction __experimentalUseColors(colorConfigs) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    panelTitle: Object(external_this_wp_i18n_[\"__\"])('Color settings')\n  },\n      _ref$panelTitle = _ref.panelTitle,\n      panelTitle = _ref$panelTitle === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Color settings') : _ref$panelTitle,\n      colorPanelProps = _ref.colorPanelProps,\n      contrastCheckers = _ref.contrastCheckers,\n      panelChildren = _ref.panelChildren,\n      _ref$colorDetector = _ref.colorDetector;\n\n  _ref$colorDetector = _ref$colorDetector === void 0 ? {} : _ref$colorDetector;\n  var targetRef = _ref$colorDetector.targetRef,\n      _ref$colorDetector$ba = _ref$colorDetector.backgroundColorTargetRef,\n      backgroundColorTargetRef = _ref$colorDetector$ba === void 0 ? targetRef : _ref$colorDetector$ba,\n      _ref$colorDetector$te = _ref$colorDetector.textColorTargetRef,\n      textColorTargetRef = _ref$colorDetector$te === void 0 ? targetRef : _ref$colorDetector$te;\n  var deps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n  var _useBlockEditContext = useBlockEditContext(),\n      clientId = _useBlockEditContext.clientId;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockAttributes = _select.getBlockAttributes,\n        getSettings = _select.getSettings;\n\n    var colors = getSettings().colors;\n    return {\n      attributes: getBlockAttributes(clientId),\n      settingsColors: !colors || colors === true ? use_colors_DEFAULT_COLORS : colors\n    };\n  }, [clientId]),\n      attributes = _useSelect.attributes,\n      settingsColors = _useSelect.settingsColors;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlockAttributes = _useDispatch.updateBlockAttributes;\n\n  var setAttributes = Object(external_this_wp_element_[\"useCallback\"])(function (newAttributes) {\n    return updateBlockAttributes(clientId, newAttributes);\n  }, [updateBlockAttributes, clientId]);\n  var createComponent = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return memize_default()(function (name, property, className, color, colorValue, customColor) {\n      return function (_ref2) {\n        var _classnames;\n\n        var children = _ref2.children,\n            _ref2$className = _ref2.className,\n            componentClassName = _ref2$className === void 0 ? '' : _ref2$className,\n            _ref2$style = _ref2.style,\n            componentStyle = _ref2$style === void 0 ? {} : _ref2$style;\n        var colorStyle = {};\n\n        if (color) {\n          colorStyle = Object(defineProperty[\"a\" /* default */])({}, property, colorValue);\n        } else if (customColor) {\n          colorStyle = Object(defineProperty[\"a\" /* default */])({}, property, customColor);\n        }\n\n        var extraProps = {\n          className: classnames_default()(componentClassName, (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, \"has-\".concat(Object(external_this_lodash_[\"kebabCase\"])(color), \"-\").concat(Object(external_this_lodash_[\"kebabCase\"])(property)), color), Object(defineProperty[\"a\" /* default */])(_classnames, className || \"has-\".concat(Object(external_this_lodash_[\"kebabCase\"])(name)), color || customColor), _classnames)),\n          style: use_colors_objectSpread({}, colorStyle, {}, componentStyle)\n        };\n\n        if (Object(external_this_lodash_[\"isFunction\"])(children)) {\n          return children(extraProps);\n        }\n\n        return (// Clone children, setting the style property from the color configuration,\n          // if not already set explicitly through props.\n          external_this_wp_element_[\"Children\"].map(children, function (child) {\n            return Object(external_this_wp_element_[\"cloneElement\"])(child, {\n              className: classnames_default()(child.props.className, extraProps.className),\n              style: use_colors_objectSpread({}, extraProps.style, {}, child.props.style || {})\n            });\n          })\n        );\n      };\n    }, {\n      maxSize: colorConfigs.length\n    });\n  }, [colorConfigs.length]);\n  var createSetColor = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return memize_default()(function (name, colors) {\n      return function (newColor) {\n        var color = colors.find(function (_color) {\n          return _color.color === newColor;\n        });\n        setAttributes(Object(defineProperty[\"a\" /* default */])({}, color ? Object(external_this_lodash_[\"camelCase\"])(\"custom \".concat(name)) : name, undefined));\n        setAttributes(Object(defineProperty[\"a\" /* default */])({}, color ? name : Object(external_this_lodash_[\"camelCase\"])(\"custom \".concat(name)), color ? color.slug : newColor));\n      };\n    }, {\n      maxSize: colorConfigs.length\n    });\n  }, [setAttributes, colorConfigs.length]);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      detectedBackgroundColor = _useState2[0],\n      setDetectedBackgroundColor = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      detectedColor = _useState4[0],\n      setDetectedColor = _useState4[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!contrastCheckers) {\n      return undefined;\n    }\n\n    var needsBackgroundColor = false;\n    var needsColor = false;\n\n    var _iterator = _createForOfIteratorHelper(Object(external_this_lodash_[\"castArray\"])(contrastCheckers)),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var _step$value = _step.value,\n            _backgroundColor = _step$value.backgroundColor,\n            textColor = _step$value.textColor;\n\n        if (!needsBackgroundColor) {\n          needsBackgroundColor = _backgroundColor === true;\n        }\n\n        if (!needsColor) {\n          needsColor = textColor === true;\n        }\n\n        if (needsBackgroundColor && needsColor) {\n          break;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    if (needsColor) {\n      setDetectedColor(use_colors_getComputedStyle(textColorTargetRef.current).color);\n    }\n\n    if (needsBackgroundColor) {\n      var backgroundColorNode = backgroundColorTargetRef.current;\n      var backgroundColor = use_colors_getComputedStyle(backgroundColorNode).backgroundColor;\n\n      while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === use_colors_Node.ELEMENT_NODE) {\n        backgroundColorNode = backgroundColorNode.parentNode;\n        backgroundColor = use_colors_getComputedStyle(backgroundColorNode).backgroundColor;\n      }\n\n      setDetectedBackgroundColor(backgroundColor);\n    }\n  }, [colorConfigs.reduce(function (acc, colorConfig) {\n    return \"\".concat(acc, \" | \").concat(attributes[colorConfig.name], \" | \").concat(attributes[Object(external_this_lodash_[\"camelCase\"])(\"custom \".concat(colorConfig.name))]);\n  }, '')].concat(Object(toConsumableArray[\"a\" /* default */])(deps)));\n  return Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var colorSettings = {};\n    var components = colorConfigs.reduce(function (acc, colorConfig) {\n      if (typeof colorConfig === 'string') {\n        colorConfig = {\n          name: colorConfig\n        };\n      }\n\n      var _colorConfig$color = use_colors_objectSpread({}, colorConfig, {\n        color: attributes[colorConfig.name]\n      }),\n          name = _colorConfig$color.name,\n          _colorConfig$color$pr = _colorConfig$color.property,\n          property = _colorConfig$color$pr === void 0 ? name : _colorConfig$color$pr,\n          className = _colorConfig$color.className,\n          _colorConfig$color$pa = _colorConfig$color.panelLabel,\n          panelLabel = _colorConfig$color$pa === void 0 ? colorConfig.label || COMMON_COLOR_LABELS[name] || Object(external_this_lodash_[\"startCase\"])(name) : _colorConfig$color$pa,\n          _colorConfig$color$co = _colorConfig$color.componentName,\n          componentName = _colorConfig$color$co === void 0 ? Object(external_this_lodash_[\"startCase\"])(name).replace(/\\s/g, '') : _colorConfig$color$co,\n          _colorConfig$color$co2 = _colorConfig$color.color,\n          color = _colorConfig$color$co2 === void 0 ? colorConfig.color : _colorConfig$color$co2,\n          _colorConfig$color$co3 = _colorConfig$color.colors,\n          colors = _colorConfig$color$co3 === void 0 ? settingsColors : _colorConfig$color$co3;\n\n      var customColor = attributes[Object(external_this_lodash_[\"camelCase\"])(\"custom \".concat(name))]; // We memoize the non-primitives to avoid unnecessary updates\n      // when they are used as props for other components.\n\n      var _color = customColor ? undefined : colors.find(function (__color) {\n        return __color.slug === color;\n      });\n\n      acc[componentName] = createComponent(name, property, className, color, _color && _color.color, customColor);\n      acc[componentName].displayName = componentName;\n      acc[componentName].color = customColor ? customColor : _color && _color.color;\n      acc[componentName].slug = color;\n      acc[componentName].setColor = createSetColor(name, colors);\n      colorSettings[componentName] = {\n        value: _color ? _color.color : attributes[Object(external_this_lodash_[\"camelCase\"])(\"custom \".concat(name))],\n        onChange: acc[componentName].setColor,\n        label: panelLabel,\n        colors: colors\n      }; // These settings will be spread over the `colors` in\n      // `colorPanelProps`, so we need to unset the key here,\n      // if not set to an actual value, to avoid overwriting\n      // an actual value in `colorPanelProps`.\n\n      if (!colors) {\n        delete colorSettings[componentName].colors;\n      }\n\n      return acc;\n    }, {});\n    var wrappedColorPanelProps = {\n      title: panelTitle,\n      initialOpen: false,\n      colorSettings: colorSettings,\n      colorPanelProps: colorPanelProps,\n      contrastCheckers: contrastCheckers,\n      detectedBackgroundColor: detectedBackgroundColor,\n      detectedColor: detectedColor,\n      panelChildren: panelChildren\n    };\n    return use_colors_objectSpread({}, components, {\n      ColorPanel: Object(external_this_wp_element_[\"createElement\"])(color_panel_ColorPanel, wrappedColorPanelProps),\n      InspectorControlsColorPanel: Object(external_this_wp_element_[\"createElement\"])(use_colors_InspectorControlsColorPanel, wrappedColorPanelProps)\n    });\n  }, [attributes, setAttributes, detectedColor, detectedBackgroundColor].concat(Object(toConsumableArray[\"a\" /* default */])(deps)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/colors/index.js\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradients/index.js\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/with-font-sizes.js\n\n\n\n\n\n\n\n\nfunction with_font_sizes_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction with_font_sizes_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { with_font_sizes_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { with_font_sizes_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction with_font_sizes_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_font_sizes_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_font_sizes_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order component, which handles font size logic for class generation,\n * font size value retrieval, and font size change handling.\n *\n * @param {...(Object|string)} fontSizeNames The arguments should all be strings.\n *                                           Each string contains the font size\n *                                           attribute name e.g: 'fontSize'.\n *\n * @return {Function} Higher-order component.\n */\n\n/* harmony default export */ var with_font_sizes = (function () {\n  for (var _len = arguments.length, fontSizeNames = new Array(_len), _key = 0; _key < _len; _key++) {\n    fontSizeNames[_key] = arguments[_key];\n  }\n\n  /*\n   * Computes an object whose key is the font size attribute name as passed in the array,\n   * and the value is the custom font size attribute name.\n   * Custom font size is automatically compted by appending custom followed by the font size attribute name in with the first letter capitalized.\n   */\n  var fontSizeAttributeNames = Object(external_this_lodash_[\"reduce\"])(fontSizeNames, function (fontSizeAttributeNamesAccumulator, fontSizeAttributeName) {\n    fontSizeAttributeNamesAccumulator[fontSizeAttributeName] = \"custom\".concat(Object(external_this_lodash_[\"upperFirst\"])(fontSizeAttributeName));\n    return fontSizeAttributeNamesAccumulator;\n  }, {});\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n    var _select$getSettings = select('core/block-editor').getSettings(),\n        fontSizes = _select$getSettings.fontSizes;\n\n    return {\n      fontSizes: fontSizes\n    };\n  }), function (WrappedComponent) {\n    return /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(_class, _Component);\n\n      var _super = with_font_sizes_createSuper(_class);\n\n      function _class(props) {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, _class);\n\n        _this = _super.call(this, props);\n        _this.setters = _this.createSetters();\n        _this.state = {};\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(_class, [{\n        key: \"createSetters\",\n        value: function createSetters() {\n          var _this2 = this;\n\n          return Object(external_this_lodash_[\"reduce\"])(fontSizeAttributeNames, function (settersAccumulator, customFontSizeAttributeName, fontSizeAttributeName) {\n            var upperFirstFontSizeAttributeName = Object(external_this_lodash_[\"upperFirst\"])(fontSizeAttributeName);\n            settersAccumulator[\"set\".concat(upperFirstFontSizeAttributeName)] = _this2.createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName);\n            return settersAccumulator;\n          }, {});\n        }\n      }, {\n        key: \"createSetFontSize\",\n        value: function createSetFontSize(fontSizeAttributeName, customFontSizeAttributeName) {\n          var _this3 = this;\n\n          return function (fontSizeValue) {\n            var _this3$props$setAttri;\n\n            var fontSizeObject = Object(external_this_lodash_[\"find\"])(_this3.props.fontSizes, {\n              size: Number(fontSizeValue)\n            });\n\n            _this3.props.setAttributes((_this3$props$setAttri = {}, Object(defineProperty[\"a\" /* default */])(_this3$props$setAttri, fontSizeAttributeName, fontSizeObject && fontSizeObject.slug ? fontSizeObject.slug : undefined), Object(defineProperty[\"a\" /* default */])(_this3$props$setAttri, customFontSizeAttributeName, fontSizeObject && fontSizeObject.slug ? undefined : fontSizeValue), _this3$props$setAttri));\n          };\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, with_font_sizes_objectSpread({}, this.props, {\n            fontSizes: undefined\n          }, this.state, {}, this.setters));\n        }\n      }], [{\n        key: \"getDerivedStateFromProps\",\n        value: function getDerivedStateFromProps(_ref, previousState) {\n          var attributes = _ref.attributes,\n              fontSizes = _ref.fontSizes;\n\n          var didAttributesChange = function didAttributesChange(customFontSizeAttributeName, fontSizeAttributeName) {\n            if (previousState[fontSizeAttributeName]) {\n              // if new font size is name compare with the previous slug\n              if (attributes[fontSizeAttributeName]) {\n                return attributes[fontSizeAttributeName] !== previousState[fontSizeAttributeName].slug;\n              } // if font size is not named, update when the font size value changes.\n\n\n              return previousState[fontSizeAttributeName].size !== attributes[customFontSizeAttributeName];\n            } // in this case we need to build the font size object\n\n\n            return true;\n          };\n\n          if (!Object(external_this_lodash_[\"some\"])(fontSizeAttributeNames, didAttributesChange)) {\n            return null;\n          }\n\n          var newState = Object(external_this_lodash_[\"reduce\"])(Object(external_this_lodash_[\"pickBy\"])(fontSizeAttributeNames, didAttributesChange), function (newStateAccumulator, customFontSizeAttributeName, fontSizeAttributeName) {\n            var fontSizeAttributeValue = attributes[fontSizeAttributeName];\n            var fontSizeObject = utils_getFontSize(fontSizes, fontSizeAttributeValue, attributes[customFontSizeAttributeName]);\n            newStateAccumulator[fontSizeAttributeName] = with_font_sizes_objectSpread({}, fontSizeObject, {\n              class: getFontSizeClass(fontSizeAttributeValue)\n            });\n            return newStateAccumulator;\n          }, {});\n          return with_font_sizes_objectSpread({}, previousState, {}, newState);\n        }\n      }]);\n\n      return _class;\n    }(external_this_wp_element_[\"Component\"]);\n  }]), 'withFontSizes');\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/font-sizes/index.js\n\n\n\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js\nvar align_left = __webpack_require__(283);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js\nvar align_center = __webpack_require__(284);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js\nvar align_right = __webpack_require__(285);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/alignment-toolbar/index.js\n\n\n\nfunction alignment_toolbar_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction alignment_toolbar_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { alignment_toolbar_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { alignment_toolbar_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar DEFAULT_ALIGNMENT_CONTROLS = [{\n  icon: align_left[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align text left'),\n  align: 'left'\n}, {\n  icon: align_center[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align text center'),\n  align: 'center'\n}, {\n  icon: align_right[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align text right'),\n  align: 'right'\n}];\nvar alignment_toolbar_POPOVER_PROPS = {\n  position: 'bottom right',\n  isAlternate: true\n};\nfunction AlignmentToolbar(props) {\n  var value = props.value,\n      onChange = props.onChange,\n      _props$alignmentContr = props.alignmentControls,\n      alignmentControls = _props$alignmentContr === void 0 ? DEFAULT_ALIGNMENT_CONTROLS : _props$alignmentContr,\n      _props$label = props.label,\n      label = _props$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Change text alignment') : _props$label,\n      _props$isCollapsed = props.isCollapsed,\n      isCollapsed = _props$isCollapsed === void 0 ? true : _props$isCollapsed,\n      isRTL = props.isRTL;\n\n  function applyOrUnset(align) {\n    return function () {\n      return onChange(value === align ? undefined : align);\n    };\n  }\n\n  var activeAlignment = Object(external_this_lodash_[\"find\"])(alignmentControls, function (control) {\n    return control.align === value;\n  });\n\n  function setIcon() {\n    if (activeAlignment) return activeAlignment.icon;\n    return isRTL ? align_right[\"a\" /* default */] : align_left[\"a\" /* default */];\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    isCollapsed: isCollapsed,\n    icon: setIcon(),\n    label: label,\n    popoverProps: alignment_toolbar_POPOVER_PROPS,\n    controls: alignmentControls.map(function (control) {\n      var align = control.align;\n      var isActive = value === align;\n      return alignment_toolbar_objectSpread({}, control, {\n        isActive: isActive,\n        role: isCollapsed ? 'menuitemradio' : undefined,\n        onClick: applyOrUnset(align)\n      });\n    })\n  });\n}\n/* harmony default export */ var alignment_toolbar = (AlignmentToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-items.js\n\n\n\nfunction search_items_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction search_items_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { search_items_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { search_items_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} term The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\n\nvar search_items_normalizeSearchTerm = function normalizeSearchTerm() {\n  var term = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  // Disregard diacritics.\n  //  Input: \"média\"\n  term = Object(external_this_lodash_[\"deburr\"])(term); // Accommodate leading slash, matching autocomplete expectations.\n  //  Input: \"/media\"\n\n  term = term.replace(/^\\//, ''); // Lowercase.\n  //  Input: \"MEDIA\"\n\n  term = term.toLowerCase(); // Extract words.\n\n  return Object(external_this_lodash_[\"words\"])(term);\n};\n\nvar search_items_removeMatchingTerms = function removeMatchingTerms(unmatchedTerms, unprocessedTerms) {\n  return Object(external_this_lodash_[\"differenceWith\"])(unmatchedTerms, search_items_normalizeSearchTerm(unprocessedTerms), function (unmatchedTerm, unprocessedTerm) {\n    return unprocessedTerm.includes(unmatchedTerm);\n  });\n};\n\nvar search_items_searchBlockItems = function searchBlockItems(items, categories, collections, searchTerm) {\n  var normalizedSearchTerms = search_items_normalizeSearchTerm(searchTerm);\n\n  if (normalizedSearchTerms.length === 0) {\n    return items;\n  }\n\n  return search_items_searchItems(items, searchTerm, {\n    getCategory: function getCategory(item) {\n      var _find;\n\n      return (_find = Object(external_this_lodash_[\"find\"])(categories, {\n        slug: item.category\n      })) === null || _find === void 0 ? void 0 : _find.title;\n    },\n    getCollection: function getCollection(item) {\n      var _collections$item$nam;\n\n      return (_collections$item$nam = collections[item.name.split('/')[0]]) === null || _collections$item$nam === void 0 ? void 0 : _collections$item$nam.title;\n    },\n    getVariations: function getVariations(item) {\n      return (item.variations || []).map(function (variation) {\n        return variation.title;\n      });\n    }\n  }).map(function (item) {\n    if (Object(external_this_lodash_[\"isEmpty\"])(item.variations)) {\n      return item;\n    }\n\n    var matchedVariations = item.variations.filter(function (variation) {\n      return Object(external_this_lodash_[\"intersectionWith\"])(normalizedSearchTerms, search_items_normalizeSearchTerm(variation.title), function (termToMatch, labelTerm) {\n        return labelTerm.includes(termToMatch);\n      }).length > 0;\n    }); // When no variations matched, fallback to all variations.\n\n    if (Object(external_this_lodash_[\"isEmpty\"])(matchedVariations)) {\n      return item;\n    }\n\n    return search_items_objectSpread({}, item, {\n      variations: matchedVariations\n    });\n  });\n};\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items       Item list\n * @param {string} searchTerm Search term.\n * @param {Object} config     Search Config.\n * @return {Array}            Filtered item list.\n */\n\nvar search_items_searchItems = function searchItems(items, searchTerm) {\n  var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var normalizedSearchTerms = search_items_normalizeSearchTerm(searchTerm);\n\n  if (normalizedSearchTerms.length === 0) {\n    return items;\n  }\n\n  var defaultGetTitle = function defaultGetTitle(item) {\n    return item.title;\n  };\n\n  var defaultGetKeywords = function defaultGetKeywords(item) {\n    return item.keywords || [];\n  };\n\n  var defaultGetCategory = function defaultGetCategory(item) {\n    return item.category;\n  };\n\n  var defaultGetCollection = function defaultGetCollection() {\n    return null;\n  };\n\n  var defaultGetVariations = function defaultGetVariations() {\n    return [];\n  };\n\n  var _config$getTitle = config.getTitle,\n      getTitle = _config$getTitle === void 0 ? defaultGetTitle : _config$getTitle,\n      _config$getKeywords = config.getKeywords,\n      getKeywords = _config$getKeywords === void 0 ? defaultGetKeywords : _config$getKeywords,\n      _config$getCategory = config.getCategory,\n      getCategory = _config$getCategory === void 0 ? defaultGetCategory : _config$getCategory,\n      _config$getCollection = config.getCollection,\n      getCollection = _config$getCollection === void 0 ? defaultGetCollection : _config$getCollection,\n      _config$getVariations = config.getVariations,\n      getVariations = _config$getVariations === void 0 ? defaultGetVariations : _config$getVariations;\n  return items.filter(function (item) {\n    var title = getTitle(item);\n    var keywords = getKeywords(item);\n    var category = getCategory(item);\n    var collection = getCollection(item);\n    var variations = getVariations(item);\n    var terms = [title].concat(Object(toConsumableArray[\"a\" /* default */])(keywords), [category, collection], Object(toConsumableArray[\"a\" /* default */])(variations)).join(' ');\n    var unmatchedTerms = search_items_removeMatchingTerms(normalizedSearchTerms, terms);\n    return unmatchedTerms.length === 0;\n  });\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-block-types-state.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n // Copied over from the Columns block. It seems like it should become part of public API.\n\nvar use_block_types_state_createBlocksFromInnerBlocksTemplate = function createBlocksFromInnerBlocksTemplate(innerBlocksTemplate) {\n  return Object(external_this_lodash_[\"map\"])(innerBlocksTemplate, function (_ref) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 3),\n        name = _ref2[0],\n        attributes = _ref2[1],\n        _ref2$ = _ref2[2],\n        innerBlocks = _ref2$ === void 0 ? [] : _ref2$;\n\n    return Object(external_this_wp_blocks_[\"createBlock\"])(name, attributes, createBlocksFromInnerBlocksTemplate(innerBlocks));\n  });\n};\n/**\n * Retrieves the block types inserter state.\n *\n * @param {string=}  rootClientId        Insertion's root client ID.\n * @param {Function} onInsert            function called when inserter a list of blocks.\n * @return {Array} Returns the block types state. (block types, categories, collections, onSelect handler)\n */\n\n\nvar use_block_types_state_useBlockTypesState = function useBlockTypesState(rootClientId, onInsert) {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getInserterItems = _select.getInserterItems,\n        getSettings = _select.getSettings;\n\n    var _select2 = select('core/blocks'),\n        getCategories = _select2.getCategories,\n        getCollections = _select2.getCollections;\n\n    var _getSettings = getSettings(),\n        __experimentalFetchReusableBlocks = _getSettings.__experimentalFetchReusableBlocks;\n\n    return {\n      categories: getCategories(),\n      collections: getCollections(),\n      items: getInserterItems(rootClientId),\n      fetchReusableBlocks: __experimentalFetchReusableBlocks\n    };\n  }, [rootClientId]),\n      categories = _useSelect.categories,\n      collections = _useSelect.collections,\n      items = _useSelect.items,\n      fetchReusableBlocks = _useSelect.fetchReusableBlocks; // Fetch resuable blocks on mount\n\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (fetchReusableBlocks) {\n      fetchReusableBlocks();\n    }\n  }, []);\n\n  var onSelectItem = function onSelectItem(_ref3) {\n    var name = _ref3.name,\n        initialAttributes = _ref3.initialAttributes,\n        innerBlocks = _ref3.innerBlocks;\n    var insertedBlock = Object(external_this_wp_blocks_[\"createBlock\"])(name, initialAttributes, use_block_types_state_createBlocksFromInnerBlocksTemplate(innerBlocks));\n    onInsert(insertedBlock);\n  };\n\n  return [items, categories, collections, onSelectItem];\n};\n\n/* harmony default export */ var use_block_types_state = (use_block_types_state_useBlockTypesState);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/utils.js\n\n\nfunction utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Normalizes an inserter block types list and includes variations as separate items.\n *\n * @param {Array} items Denormalized inserter items\n * @return {Array} Normalized inserter items.\n */\nfunction includeVariationsInInserterItems(items) {\n  return items.reduce(function (result, item) {\n    var _item$variations = item.variations,\n        variations = _item$variations === void 0 ? [] : _item$variations;\n    var hasDefaultVariation = variations.some(function (_ref) {\n      var isDefault = _ref.isDefault;\n      return isDefault;\n    }); // If there is no default inserter variation provided,\n    // then default block type is displayed.\n\n    if (!hasDefaultVariation) {\n      result.push(item);\n    }\n\n    if (variations.length) {\n      result = result.concat(variations.map(function (variation) {\n        return utils_objectSpread({}, item, {\n          id: \"\".concat(item.id, \"-\").concat(variation.name),\n          icon: variation.icon || item.icon,\n          title: variation.title || item.title,\n          description: variation.description || item.description,\n          // If `example` is explicitly undefined for the variation, the preview will not be shown.\n          example: variation.hasOwnProperty('example') ? variation.example : item.example,\n          initialAttributes: utils_objectSpread({}, item.initialAttributes, {}, variation.attributes),\n          innerBlocks: variation.innerBlocks\n        });\n      }));\n    }\n\n    return result;\n  }, []);\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js\nvar block_default = __webpack_require__(196);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-icon/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction BlockIcon(_ref) {\n  var icon = _ref.icon,\n      _ref$showColors = _ref.showColors,\n      showColors = _ref$showColors === void 0 ? false : _ref$showColors,\n      className = _ref.className;\n\n  if (Object(external_this_lodash_[\"get\"])(icon, ['src']) === 'block-default') {\n    icon = {\n      src: block_default[\"a\" /* default */]\n    };\n  }\n\n  var renderedIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Icon\"], {\n    icon: icon && icon.src ? icon.src : icon\n  });\n  var style = showColors ? {\n    backgroundColor: icon && icon.background,\n    color: icon && icon.foreground\n  } : {};\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    style: style,\n    className: classnames_default()('block-editor-block-icon', className, {\n      'has-colors': showColors\n    })\n  }, renderedIcon);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/autocompleters/block.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar block_createBlocksFromInnerBlocksTemplate = function createBlocksFromInnerBlocksTemplate(innerBlocksTemplate) {\n  return Object(external_this_lodash_[\"map\"])(innerBlocksTemplate, function (_ref) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 3),\n        name = _ref2[0],\n        attributes = _ref2[1],\n        _ref2$ = _ref2[2],\n        innerBlocks = _ref2$ === void 0 ? [] : _ref2$;\n\n    return Object(external_this_wp_blocks_[\"createBlock\"])(name, attributes, createBlocksFromInnerBlocksTemplate(innerBlocks));\n  });\n};\n/** @typedef {import('@wordpress/block-editor').WPEditorInserterItem} WPEditorInserterItem */\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @param {Object} props                                   Component props.\n * @param {string} [props.getBlockInsertionParentClientId] Client ID of the parent.\n * @param {string} [props.getInserterItems]                Inserter items for parent.\n * @param {string} [props.getSelectedBlockName]            Name of selected block or null.\n *\n * @return {WPCompleter} A blocks completer.\n */\n\n\nfunction createBlockCompleter() {\n  return {\n    name: 'blocks',\n    className: 'block-editor-autocompleters__block',\n    triggerPrefix: '/',\n    useItems: function useItems(filterValue) {\n      var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n        var _select = select('core/block-editor'),\n            getSelectedBlockClientId = _select.getSelectedBlockClientId,\n            getBlockName = _select.getBlockName,\n            getBlockInsertionPoint = _select.getBlockInsertionPoint;\n\n        var selectedBlockClientId = getSelectedBlockClientId();\n        return {\n          selectedBlockName: selectedBlockClientId ? getBlockName(selectedBlockClientId) : null,\n          rootClientId: getBlockInsertionPoint().rootClientId\n        };\n      }, []),\n          rootClientId = _useSelect.rootClientId,\n          selectedBlockName = _useSelect.selectedBlockName;\n\n      var _useBlockTypesState = use_block_types_state(rootClientId, external_this_lodash_[\"noop\"]),\n          _useBlockTypesState2 = Object(slicedToArray[\"a\" /* default */])(_useBlockTypesState, 3),\n          items = _useBlockTypesState2[0],\n          categories = _useBlockTypesState2[1],\n          collections = _useBlockTypesState2[2];\n\n      var filteredItems = Object(external_this_wp_element_[\"useMemo\"])(function () {\n        return search_items_searchBlockItems(items, categories, collections, filterValue).filter(function (item) {\n          return item.name !== selectedBlockName;\n        });\n      }, [filterValue, selectedBlockName, items, categories, collections]);\n      var options = Object(external_this_wp_element_[\"useMemo\"])(function () {\n        return includeVariationsInInserterItems(filteredItems).map(function (blockItem) {\n          var title = blockItem.title,\n              icon = blockItem.icon,\n              isDisabled = blockItem.isDisabled;\n          return {\n            key: \"block-\".concat(blockItem.id),\n            value: blockItem,\n            label: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n              key: \"icon\",\n              icon: icon,\n              showColors: true\n            }), title),\n            isDisabled: isDisabled\n          };\n        });\n      }, [filteredItems]);\n      return [options];\n    },\n    allowContext: function allowContext(before, after) {\n      return !(/\\S/.test(before) || /\\S/.test(after));\n    },\n    getOptionCompletion: function getOptionCompletion(inserterItem) {\n      var name = inserterItem.name,\n          initialAttributes = inserterItem.initialAttributes,\n          innerBlocks = inserterItem.innerBlocks;\n      return {\n        action: 'replace',\n        value: Object(external_this_wp_blocks_[\"createBlock\"])(name, initialAttributes, block_createBlocksFromInnerBlocksTemplate(innerBlocks))\n      };\n    }\n  };\n}\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\n\n\n/* harmony default export */ var autocompleters_block = (createBlockCompleter());\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/autocomplete/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array}\n */\n\nvar EMPTY_ARRAY = [];\n/**\n * Wrap the default Autocomplete component with one that supports a filter hook\n * for customizing its list of autocompleters.\n *\n * @type {import('react').FC}\n */\n\nfunction BlockEditorAutocomplete(props) {\n  var _useBlockEditContext = useBlockEditContext(),\n      name = _useBlockEditContext.name;\n\n  var _props$completers = props.completers,\n      completers = _props$completers === void 0 ? EMPTY_ARRAY : _props$completers;\n  completers = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var filteredCompleters = completers;\n\n    if (name === Object(external_this_wp_blocks_[\"getDefaultBlockName\"])()) {\n      filteredCompleters = filteredCompleters.concat([autocompleters_block]);\n    }\n\n    if (Object(external_this_wp_hooks_[\"hasFilter\"])('editor.Autocomplete.completers')) {\n      // Provide copies so filters may directly modify them.\n      if (filteredCompleters === completers) {\n        filteredCompleters = filteredCompleters.map(external_this_lodash_[\"clone\"]);\n      }\n\n      filteredCompleters = Object(external_this_wp_hooks_[\"applyFilters\"])('editor.Autocomplete.completers', filteredCompleters, name);\n    }\n\n    return filteredCompleters;\n  }, [completers, name]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Autocomplete\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    completers: completers\n  }));\n}\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/autocomplete/README.md\n */\n\n\n/* harmony default export */ var autocomplete = (BlockEditorAutocomplete);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-alignment-matrix-toolbar/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction BlockAlignmentMatrixToolbar(props) {\n  var _props$label = props.label,\n      label = _props$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Change matrix alignment') : _props$label,\n      _props$onChange = props.onChange,\n      onChange = _props$onChange === void 0 ? external_this_lodash_[\"noop\"] : _props$onChange,\n      _props$value = props.value,\n      value = _props$value === void 0 ? 'center' : _props$value;\n  var icon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalAlignmentMatrixControl\"].Icon, {\n    value: value\n  });\n  var className = 'block-editor-block-alignment-matrix-toolbar';\n  var popoverClassName = \"\".concat(className, \"__popover\");\n  var isAlternate = true;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    position: \"bottom right\",\n    className: className,\n    popoverProps: {\n      className: popoverClassName,\n      isAlternate: isAlternate\n    },\n    renderToggle: function renderToggle(_ref) {\n      var onToggle = _ref.onToggle,\n          isOpen = _ref.isOpen;\n\n      var openOnArrowDown = function openOnArrowDown(event) {\n        if (!isOpen && event.keyCode === external_this_wp_keycodes_[\"DOWN\"]) {\n          event.preventDefault();\n          event.stopPropagation();\n          onToggle();\n        }\n      };\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        onClick: onToggle,\n        \"aria-haspopup\": \"true\",\n        \"aria-expanded\": isOpen,\n        onKeyDown: openOnArrowDown,\n        label: label,\n        icon: icon,\n        showTooltip: true\n      }));\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalAlignmentMatrixControl\"], {\n        hasFocusBorder: false,\n        onChange: onChange,\n        value: value\n      });\n    }\n  });\n}\n/* harmony default export */ var block_alignment_matrix_toolbar = (BlockAlignmentMatrixToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-title/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Renders the block's configured title as a string, or empty if the title\n * cannot be determined.\n *\n * @example\n *\n * ```jsx\n * <BlockTitle clientId=\"afd1cb17-2c08-4e7a-91be-007ba7ddc3a1\" />\n * ```\n *\n * @param {Object} props\n * @param {string} props.clientId Client ID of block.\n *\n * @return {?string} Block title.\n */\n\nfunction BlockTitle(_ref) {\n  var clientId = _ref.clientId;\n  var name = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    if (!clientId) {\n      return null;\n    }\n\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName;\n\n    return getBlockName(clientId);\n  }, [clientId]);\n\n  if (!name) {\n    return null;\n  }\n\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n\n  if (!blockType) {\n    return null;\n  }\n\n  return blockType.title;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-breadcrumb/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Block breadcrumb component, displaying the hierarchy of the current block selection as a breadcrumb.\n *\n * @return {WPElement} Block Breadcrumb.\n */\n\nfunction BlockBreadcrumb() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      selectBlock = _useDispatch.selectBlock,\n      clearSelectedBlock = _useDispatch.clearSelectedBlock;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSelectionStart = _select.getSelectionStart,\n        getSelectedBlockClientId = _select.getSelectedBlockClientId,\n        getBlockParents = _select.getBlockParents;\n\n    var selectedBlockClientId = getSelectedBlockClientId();\n    return {\n      parents: getBlockParents(selectedBlockClientId),\n      clientId: selectedBlockClientId,\n      hasSelection: !!getSelectionStart().clientId\n    };\n  }, []),\n      clientId = _useSelect.clientId,\n      parents = _useSelect.parents,\n      hasSelection = _useSelect.hasSelection;\n  /*\n   * Disable reason: The `list` ARIA role is redundant but\n   * Safari+VoiceOver won't announce the list otherwise.\n   */\n\n  /* eslint-disable jsx-a11y/no-redundant-roles */\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"block-editor-block-breadcrumb\",\n    role: \"list\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Block breadcrumb')\n  }, Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n    className: !hasSelection ? 'block-editor-block-breadcrumb__current' : undefined,\n    \"aria-current\": !hasSelection ? 'true' : undefined\n  }, hasSelection && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"block-editor-block-breadcrumb__button\",\n    isTertiary: true,\n    onClick: clearSelectedBlock\n  }, Object(external_this_wp_i18n_[\"__\"])('Document')), !hasSelection && Object(external_this_wp_i18n_[\"__\"])('Document')), parents.map(function (parentClientId) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: parentClientId\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      className: \"block-editor-block-breadcrumb__button\",\n      isTertiary: true,\n      onClick: function onClick() {\n        return selectBlock(parentClientId);\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(BlockTitle, {\n      clientId: parentClientId\n    })));\n  }), !!clientId && Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n    className: \"block-editor-block-breadcrumb__current\",\n    \"aria-current\": \"true\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockTitle, {\n    clientId: clientId\n  })))\n  /* eslint-enable jsx-a11y/no-redundant-roles */\n  ;\n}\n\n/* harmony default export */ var block_breadcrumb = (BlockBreadcrumb);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-context/index.js\n\n\n\nfunction block_context_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_context_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_context_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_context_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/** @typedef {import('react').ReactNode} ReactNode */\n\n/**\n * @typedef BlockContextProviderProps\n *\n * @property {Record<string,*>} value    Context value to merge with current\n *                                       value.\n * @property {ReactNode}        children Component children.\n */\n\n/** @type {import('react').Context<Record<string,*>>} */\n\nvar block_context_Context = Object(external_this_wp_element_[\"createContext\"])({});\n/**\n * Component which merges passed value with current consumed block context.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-context/README.md\n *\n * @param {BlockContextProviderProps} props\n */\n\nfunction BlockContextProvider(_ref) {\n  var value = _ref.value,\n      children = _ref.children;\n  var context = Object(external_this_wp_element_[\"useContext\"])(block_context_Context);\n  var nextValue = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return block_context_objectSpread({}, context, {}, value);\n  }, [context, value]);\n  return Object(external_this_wp_element_[\"createElement\"])(block_context_Context.Provider, {\n    value: nextValue,\n    children: children\n  });\n}\n/* harmony default export */ var block_context = (block_context_Context);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-style-selector/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar color_style_selector_ColorSelectorSVGIcon = function ColorSelectorSVGIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    xmlns: \"https://www.w3.org/2000/svg\",\n    viewBox: \"0 0 20 20\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M7.434 5l3.18 9.16H8.538l-.692-2.184H4.628l-.705 2.184H2L5.18 5h2.254zm-1.13 1.904h-.115l-1.148 3.593H7.44L6.304 6.904zM14.348 7.006c1.853 0 2.9.876 2.9 2.374v4.78h-1.79v-.914h-.114c-.362.64-1.123 1.022-2.031 1.022-1.346 0-2.292-.826-2.292-2.108 0-1.27.972-2.006 2.71-2.107l1.696-.102V9.38c0-.584-.42-.914-1.18-.914-.667 0-1.112.228-1.264.647h-1.701c.12-1.295 1.307-2.107 3.066-2.107zm1.079 4.1l-1.416.09c-.793.056-1.18.342-1.18.844 0 .52.45.837 1.091.837.857 0 1.505-.545 1.505-1.256v-.515z\"\n  }));\n};\n/**\n * Color Selector Icon component.\n *\n * @param {Object} props           Component properties.\n * @param {Object} props.style     Style object.\n * @param {string} props.className Class name for component.\n *\n * @return {*} React Icon component.\n */\n\n\nvar color_style_selector_ColorSelectorIcon = function ColorSelectorIcon(_ref) {\n  var style = _ref.style,\n      className = _ref.className;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-library-colors-selector__icon-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"\".concat(className, \" block-library-colors-selector__state-selection\"),\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(color_style_selector_ColorSelectorSVGIcon, null)));\n};\n/**\n * Renders the Colors Selector Toolbar with the icon button.\n *\n * @param {Object} props                 Component properties.\n * @param {Object} props.TextColor       Text color component that wraps icon.\n * @param {Object} props.BackgroundColor Background color component that wraps icon.\n *\n * @return {*} React toggle button component.\n */\n\n\nvar color_style_selector_renderToggleComponent = function renderToggleComponent(_ref2) {\n  var TextColor = _ref2.TextColor,\n      BackgroundColor = _ref2.BackgroundColor;\n  return function (_ref3) {\n    var onToggle = _ref3.onToggle,\n        isOpen = _ref3.isOpen;\n\n    var openOnArrowDown = function openOnArrowDown(event) {\n      if (!isOpen && event.keyCode === external_this_wp_keycodes_[\"DOWN\"]) {\n        event.preventDefault();\n        event.stopPropagation();\n        onToggle();\n      }\n    };\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n      className: \"components-toolbar__control block-library-colors-selector__toggle\",\n      label: Object(external_this_wp_i18n_[\"__\"])('Open Colors Selector'),\n      onClick: onToggle,\n      onKeyDown: openOnArrowDown,\n      icon: Object(external_this_wp_element_[\"createElement\"])(BackgroundColor, null, Object(external_this_wp_element_[\"createElement\"])(TextColor, null, Object(external_this_wp_element_[\"createElement\"])(color_style_selector_ColorSelectorIcon, null)))\n    }));\n  };\n};\n\nvar color_style_selector_BlockColorsStyleSelector = function BlockColorsStyleSelector(_ref4) {\n  var children = _ref4.children,\n      other = Object(objectWithoutProperties[\"a\" /* default */])(_ref4, [\"children\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    position: \"bottom right\",\n    className: \"block-library-colors-selector\",\n    contentClassName: \"block-library-colors-selector__popover\",\n    renderToggle: color_style_selector_renderToggleComponent(other),\n    renderContent: function renderContent() {\n      return children;\n    }\n  });\n};\n\n/* harmony default export */ var color_style_selector = (color_style_selector_BlockColorsStyleSelector);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Default value used for blocks which do not define their own context needs,\n * used to guarantee that a block's `context` prop will always be an object. It\n * is assigned as a constant since it is always expected to be an empty object,\n * and in order to avoid unnecessary React reconciliations of a changing object.\n *\n * @type {{}}\n */\n\nvar DEFAULT_BLOCK_CONTEXT = {};\nvar edit_Edit = function Edit(props) {\n  var _props$attributes = props.attributes,\n      attributes = _props$attributes === void 0 ? {} : _props$attributes,\n      name = props.name;\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n  var blockContext = Object(external_this_wp_element_[\"useContext\"])(block_context); // Assign context values using the block type's declared context needs.\n\n  var context = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    if (blockType && blockType.context) {\n      external_this_wp_deprecated_default()('Block type \"context\" option', {\n        alternative: '\"usesContext\"',\n        version: '8.6.0',\n        hint: \"Block \\\"\".concat(name, \"\\\".\"),\n        link: 'https://developer.wordpress.org/block-editor/developers/block-api/block-context/'\n      });\n      return Object(external_this_lodash_[\"pick\"])(blockContext, blockType.context);\n    }\n\n    return blockType && blockType.usesContext ? Object(external_this_lodash_[\"pick\"])(blockContext, blockType.usesContext) : DEFAULT_BLOCK_CONTEXT;\n  }, [blockType, blockContext]);\n\n  if (!blockType) {\n    return null;\n  } // `edit` and `save` are functions or components describing the markup\n  // with which a block is displayed. If `blockType` is valid, assign\n  // them preferentially as the render value for the block.\n\n\n  var Component = blockType.edit || blockType.save;\n  var lightBlockWrapper = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'lightBlockWrapper', false);\n\n  if (lightBlockWrapper) {\n    return Object(external_this_wp_element_[\"createElement\"])(Component, Object(esm_extends[\"a\" /* default */])({}, props, {\n      context: context\n    }));\n  } // Generate a class name for the block's editable form\n\n\n  var generatedClassName = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'className', true) ? Object(external_this_wp_blocks_[\"getBlockDefaultClassName\"])(name) : null;\n  var className = classnames_default()(generatedClassName, attributes.className);\n  return Object(external_this_wp_element_[\"createElement\"])(Component, Object(esm_extends[\"a\" /* default */])({}, props, {\n    context: context,\n    className: className\n  }));\n};\n/* harmony default export */ var edit = (Object(external_this_wp_components_[\"withFilters\"])('editor.BlockEdit')(edit_Edit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-edit/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction block_edit_BlockEdit(props) {\n  var name = props.name,\n      isSelected = props.isSelected,\n      clientId = props.clientId,\n      onFocus = props.onFocus,\n      onCaretVerticalPositionChange = props.onCaretVerticalPositionChange;\n  var context = {\n    name: name,\n    isSelected: isSelected,\n    clientId: clientId,\n    onFocus: onFocus,\n    onCaretVerticalPositionChange: onCaretVerticalPositionChange\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(Provider // It is important to return the same object if props haven't\n  // changed to avoid  unnecessary rerenders.\n  // See https://reactjs.org/docs/context.html#caveats.\n  , {\n    value: Object(external_this_wp_element_[\"useMemo\"])(function () {\n      return context;\n    }, Object.values(context))\n  }, Object(external_this_wp_element_[\"createElement\"])(edit, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-format-controls/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar block_format_controls_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('BlockFormatControls'),\n    block_format_controls_Fill = block_format_controls_createSlotFill.Fill,\n    block_format_controls_Slot = block_format_controls_createSlotFill.Slot;\n\nfunction BlockFormatControlsSlot(props) {\n  var accessibleToolbarState = Object(external_this_wp_element_[\"useContext\"])(external_this_wp_components_[\"__experimentalToolbarContext\"]);\n  return Object(external_this_wp_element_[\"createElement\"])(block_format_controls_Slot, Object(esm_extends[\"a\" /* default */])({}, props, {\n    fillProps: accessibleToolbarState\n  }));\n}\n\nfunction BlockFormatControlsFill(props) {\n  var _useBlockEditContext = useBlockEditContext(),\n      isSelected = _useBlockEditContext.isSelected;\n\n  if (!isSelected) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(block_format_controls_Fill, null, function (fillProps) {\n    var value = !Object(external_this_lodash_[\"isEmpty\"])(fillProps) ? fillProps : null;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarContext\"].Provider, {\n      value: value\n    }, props.children);\n  });\n}\n\nvar BlockFormatControls = BlockFormatControlsFill;\nBlockFormatControls.Slot = BlockFormatControlsSlot;\n/* harmony default export */ var block_format_controls = (BlockFormatControls);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js\nvar more_vertical = __webpack_require__(293);\n\n// EXTERNAL MODULE: ./node_modules/react-spring/web.cjs.js\nvar web_cjs = __webpack_require__(108);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dom\"]}\nvar external_this_wp_dom_ = __webpack_require__(31);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-moving-animation/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Simple reducer used to increment a counter.\n *\n * @param {number} state  Previous counter value.\n * @return {number} New state value.\n */\n\nvar counterReducer = function counterReducer(state) {\n  return state + 1;\n};\n\nvar getAbsolutePosition = function getAbsolutePosition(element) {\n  return {\n    top: element.offsetTop,\n    left: element.offsetLeft\n  };\n};\n/**\n * Hook used to compute the styles required to move a div into a new position.\n *\n * The way this animation works is the following:\n *  - It first renders the element as if there was no animation.\n *  - It takes a snapshot of the position of the block to use it\n *    as a destination point for the animation.\n *  - It restores the element to the previous position using a CSS transform\n *  - It uses the \"resetAnimation\" flag to reset the animation\n *    from the beginning in order to animate to the new destination point.\n *\n * @param {Object}  ref                      Reference to the element to animate.\n * @param {boolean} isSelected               Whether it's the current block or not.\n * @param {boolean} adjustScrolling          Adjust the scroll position to the current block.\n * @param {boolean} enableAnimation          Enable/Disable animation.\n * @param {*}       triggerAnimationOnChange Variable used to trigger the animation if it changes.\n */\n\n\nfunction useMovingAnimation(ref, isSelected, adjustScrolling, enableAnimation, triggerAnimationOnChange) {\n  var prefersReducedMotion = Object(external_this_wp_compose_[\"useReducedMotion\"])() || !enableAnimation;\n\n  var _useReducer = Object(external_this_wp_element_[\"useReducer\"])(counterReducer, 0),\n      _useReducer2 = Object(slicedToArray[\"a\" /* default */])(_useReducer, 2),\n      triggeredAnimation = _useReducer2[0],\n      triggerAnimation = _useReducer2[1];\n\n  var _useReducer3 = Object(external_this_wp_element_[\"useReducer\"])(counterReducer, 0),\n      _useReducer4 = Object(slicedToArray[\"a\" /* default */])(_useReducer3, 2),\n      finishedAnimation = _useReducer4[0],\n      endAnimation = _useReducer4[1];\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])({\n    x: 0,\n    y: 0\n  }),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      transform = _useState2[0],\n      setTransform = _useState2[1];\n\n  var previous = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return ref.current ? getAbsolutePosition(ref.current) : null;\n  }, [triggerAnimationOnChange]); // Calculate the previous position of the block relative to the viewport and\n  // return a function to maintain that position by scrolling.\n\n  var preserveScrollPosition = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    if (!adjustScrolling || !ref.current) {\n      return function () {};\n    }\n\n    var scrollContainer = Object(external_this_wp_dom_[\"getScrollContainer\"])(ref.current);\n\n    if (!scrollContainer) {\n      return function () {};\n    }\n\n    var prevRect = ref.current.getBoundingClientRect();\n    return function () {\n      var blockRect = ref.current.getBoundingClientRect();\n      var diff = blockRect.top - prevRect.top;\n\n      if (diff) {\n        scrollContainer.scrollTop += diff;\n      }\n    };\n  }, [triggerAnimationOnChange, adjustScrolling]);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (triggeredAnimation) {\n      endAnimation();\n    }\n  }, [triggeredAnimation]);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (!previous) {\n      return;\n    }\n\n    if (prefersReducedMotion) {\n      // if the animation is disabled and the scroll needs to be adjusted,\n      // just move directly to the final scroll position.\n      preserveScrollPosition();\n      return;\n    }\n\n    ref.current.style.transform = '';\n    var destination = getAbsolutePosition(ref.current);\n    triggerAnimation();\n    setTransform({\n      x: Math.round(previous.left - destination.left),\n      y: Math.round(previous.top - destination.top)\n    });\n  }, [triggerAnimationOnChange]); // Only called when either the x or y value changes.\n\n  function onFrameChange(_ref) {\n    var x = _ref.x,\n        y = _ref.y;\n\n    if (!ref.current) {\n      return;\n    }\n\n    var isMoving = x === 0 && y === 0;\n    ref.current.style.transformOrigin = isMoving ? '' : 'center';\n    ref.current.style.transform = isMoving ? '' : \"translate3d(\".concat(x, \"px,\").concat(y, \"px,0)\");\n    ref.current.style.zIndex = !isSelected || isMoving ? '' : '1';\n    preserveScrollPosition();\n  } // Called for every frame computed by useSpring.\n\n\n  function onFrame(_ref2) {\n    var x = _ref2.x,\n        y = _ref2.y;\n    x = Math.round(x);\n    y = Math.round(y);\n\n    if (x !== onFrame.x || y !== onFrame.y) {\n      onFrameChange({\n        x: x,\n        y: y\n      });\n      onFrame.x = x;\n      onFrame.y = y;\n    }\n  }\n\n  onFrame.x = 0;\n  onFrame.y = 0;\n  Object(web_cjs[\"useSpring\"])({\n    from: {\n      x: transform.x,\n      y: transform.y\n    },\n    to: {\n      x: 0,\n      y: 0\n    },\n    reset: triggeredAnimation !== finishedAnimation,\n    config: {\n      mass: 5,\n      tension: 2000,\n      friction: 200\n    },\n    immediate: prefersReducedMotion,\n    onFrame: onFrame\n  });\n}\n\n/* harmony default export */ var use_moving_animation = (useMovingAnimation);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/leaf.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar AnimatedTreeGridRow = Object(web_cjs[\"animated\"])(external_this_wp_components_[\"__experimentalTreeGridRow\"]);\nfunction BlockNavigationLeaf(_ref) {\n  var isSelected = _ref.isSelected,\n      position = _ref.position,\n      level = _ref.level,\n      rowCount = _ref.rowCount,\n      children = _ref.children,\n      className = _ref.className,\n      path = _ref.path,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isSelected\", \"position\", \"level\", \"rowCount\", \"children\", \"className\", \"path\"]);\n\n  var wrapper = Object(external_this_wp_element_[\"useRef\"])(null);\n  var adjustScrolling = false;\n  var enableAnimation = true;\n  var animateOnChange = path.join('_');\n  var style = use_moving_animation(wrapper, isSelected, adjustScrolling, enableAnimation, animateOnChange);\n  return Object(external_this_wp_element_[\"createElement\"])(AnimatedTreeGridRow, Object(esm_extends[\"a\" /* default */])({\n    ref: wrapper,\n    style: style,\n    className: classnames_default()('block-editor-block-navigation-leaf', className),\n    level: level,\n    positionInSet: position,\n    setSize: rowCount\n  }, props), children);\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js\nvar chevron_right = __webpack_require__(288);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js\nvar chevron_left = __webpack_require__(289);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js\nvar chevron_up = __webpack_require__(290);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js\nvar chevron_down = __webpack_require__(291);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/mover-description.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number}  selectedCount Number of blocks selected.\n * @param {string}  type          Block type - in the case of a single block, should\n *                                 define its 'type'. I.e. 'Text', 'Heading', 'Image' etc.\n * @param {number}  firstIndex    The index (position - 1) of the first block selected.\n * @param {boolean} isFirst       This is the first block.\n * @param {boolean} isLast        This is the last block.\n * @param {number}  dir           Direction of movement (> 0 is considered to be going\n *                                 down, < 0 is up).\n * @param {string}  orientation   The orientation of the block movers, vertical or\n * \t\t\t\t\t\t\t\t   horizontal.\n * @param {boolean} isRTL   \t  True if current writing system is right to left.\n *\n * @return {string} Label for the block movement controls.\n */\n\nfunction getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLast, dir, orientation, isRTL) {\n  var position = firstIndex + 1;\n\n  var getMovementDirection = function getMovementDirection(moveDirection) {\n    if (moveDirection === 'up') {\n      if (orientation === 'horizontal') {\n        return isRTL ? 'right' : 'left';\n      }\n\n      return 'up';\n    } else if (moveDirection === 'down') {\n      if (orientation === 'horizontal') {\n        return isRTL ? 'left' : 'right';\n      }\n\n      return 'down';\n    }\n\n    return null;\n  };\n\n  if (selectedCount > 1) {\n    return getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir);\n  }\n\n  if (isFirst && isLast) {\n    return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: Type of block (i.e. Text, Image etc)\n    Object(external_this_wp_i18n_[\"__\"])('Block %s is the only block, and cannot be moved'), type);\n  }\n\n  if (dir > 0 && !isLast) {\n    // moving down\n    var movementDirection = getMovementDirection('down');\n\n    if (movementDirection === 'down') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d down to position %3$d'), type, position, position + 1);\n    }\n\n    if (movementDirection === 'left') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d left to position %3$d'), type, position, position + 1);\n    }\n\n    if (movementDirection === 'right') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d right to position %3$d'), type, position, position + 1);\n    }\n  }\n\n  if (dir > 0 && isLast) {\n    // moving down, and is the last item\n    var _movementDirection = getMovementDirection('down');\n\n    if (_movementDirection === 'down') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the end of the content and can’t be moved down'), type);\n    }\n\n    if (_movementDirection === 'left') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the end of the content and can’t be moved left'), type);\n    }\n\n    if (_movementDirection === 'right') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the end of the content and can’t be moved right'), type);\n    }\n  }\n\n  if (dir < 0 && !isFirst) {\n    // moving up\n    var _movementDirection2 = getMovementDirection('up');\n\n    if (_movementDirection2 === 'up') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d up to position %3$d'), type, position, position - 1);\n    }\n\n    if (_movementDirection2 === 'left') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d left to position %3$d'), type, position, position - 1);\n    }\n\n    if (_movementDirection2 === 'right') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc), 2: Position of selected block, 3: New position\n      Object(external_this_wp_i18n_[\"__\"])('Move %1$s block from position %2$d right to position %3$d'), type, position, position - 1);\n    }\n  }\n\n  if (dir < 0 && isFirst) {\n    // moving up, and is the first item\n    var _movementDirection3 = getMovementDirection('up');\n\n    if (_movementDirection3 === 'up') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the beginning of the content and can’t be moved up'), type);\n    }\n\n    if (_movementDirection3 === 'left') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the beginning of the content and can’t be moved left'), type);\n    }\n\n    if (_movementDirection3 === 'right') {\n      return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Type of block (i.e. Text, Image etc)\n      Object(external_this_wp_i18n_[\"__\"])('Block %1$s is at the beginning of the content and can’t be moved right'), type);\n    }\n  }\n}\n/**\n * Return a label for the block movement controls depending on block position.\n *\n * @param {number}  selectedCount Number of blocks selected.\n * @param {number}  firstIndex    The index (position - 1) of the first block selected.\n * @param {boolean} isFirst       This is the first block.\n * @param {boolean} isLast        This is the last block.\n * @param {number}  dir           Direction of movement (> 0 is considered to be going\n *                                 down, < 0 is up).\n *\n * @return {string} Label for the block movement controls.\n */\n\nfunction getMultiBlockMoverDescription(selectedCount, firstIndex, isFirst, isLast, dir) {\n  var position = firstIndex + 1;\n\n  if (dir < 0 && isFirst) {\n    return Object(external_this_wp_i18n_[\"__\"])('Blocks cannot be moved up as they are already at the top');\n  }\n\n  if (dir > 0 && isLast) {\n    return Object(external_this_wp_i18n_[\"__\"])('Blocks cannot be moved down as they are already at the bottom');\n  }\n\n  if (dir < 0 && !isFirst) {\n    return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Number of selected blocks, 2: Position of selected blocks\n    Object(external_this_wp_i18n_[\"_n\"])('Move %1$d block from position %2$d up by one place', 'Move %1$d blocks from position %2$d up by one place', selectedCount), selectedCount, position);\n  }\n\n  if (dir > 0 && !isLast) {\n    return Object(external_this_wp_i18n_[\"sprintf\"])( // translators: 1: Number of selected blocks, 2: Position of selected blocks\n    Object(external_this_wp_i18n_[\"_n\"])('Move %1$d block from position %2$d down by one place', 'Move %1$d blocks from position %2$d down by one place', selectedCount), selectedCount, position);\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/button.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar button_getArrowIcon = function getArrowIcon(direction, orientation, isRTL) {\n  if (direction === 'up') {\n    if (orientation === 'horizontal') {\n      return isRTL ? chevron_right[\"a\" /* default */] : chevron_left[\"a\" /* default */];\n    }\n\n    return chevron_up[\"a\" /* default */];\n  } else if (direction === 'down') {\n    if (orientation === 'horizontal') {\n      return isRTL ? chevron_left[\"a\" /* default */] : chevron_right[\"a\" /* default */];\n    }\n\n    return chevron_down[\"a\" /* default */];\n  }\n\n  return null;\n};\n\nvar button_getMovementDirectionLabel = function getMovementDirectionLabel(moveDirection, orientation, isRTL) {\n  if (moveDirection === 'up') {\n    if (orientation === 'horizontal') {\n      return isRTL ? Object(external_this_wp_i18n_[\"__\"])('Move right') : Object(external_this_wp_i18n_[\"__\"])('Move left');\n    }\n\n    return Object(external_this_wp_i18n_[\"__\"])('Move up');\n  } else if (moveDirection === 'down') {\n    if (orientation === 'horizontal') {\n      return isRTL ? Object(external_this_wp_i18n_[\"__\"])('Move left') : Object(external_this_wp_i18n_[\"__\"])('Move right');\n    }\n\n    return Object(external_this_wp_i18n_[\"__\"])('Move down');\n  }\n\n  return null;\n};\n\nvar BlockMoverButton = Object(external_this_wp_element_[\"forwardRef\"])(function (_ref, ref) {\n  var clientIds = _ref.clientIds,\n      direction = _ref.direction,\n      moverOrientation = _ref.orientation,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"clientIds\", \"direction\", \"orientation\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BlockMoverButton);\n  var blocksCount = Object(external_this_lodash_[\"castArray\"])(clientIds).length;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockIndex = _select.getBlockIndex,\n        getBlockRootClientId = _select.getBlockRootClientId,\n        getBlockOrder = _select.getBlockOrder,\n        getBlock = _select.getBlock,\n        getSettings = _select.getSettings,\n        getBlockListSettings = _select.getBlockListSettings;\n\n    var normalizedClientIds = Object(external_this_lodash_[\"castArray\"])(clientIds);\n    var firstClientId = Object(external_this_lodash_[\"first\"])(normalizedClientIds);\n    var blockRootClientId = getBlockRootClientId(firstClientId);\n    var firstBlockIndex = getBlockIndex(firstClientId, blockRootClientId);\n    var lastBlockIndex = getBlockIndex(Object(external_this_lodash_[\"last\"])(normalizedClientIds), blockRootClientId);\n    var blockOrder = getBlockOrder(blockRootClientId);\n    var block = getBlock(firstClientId);\n    var isFirstBlock = firstBlockIndex === 0;\n    var isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\n    var _ref2 = getBlockListSettings(blockRootClientId) || {},\n        blockListOrientation = _ref2.orientation;\n\n    return {\n      blockType: block ? Object(external_this_wp_blocks_[\"getBlockType\"])(block.name) : null,\n      isDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n      rootClientId: blockRootClientId,\n      firstIndex: firstBlockIndex,\n      isFirst: isFirstBlock,\n      isLast: isLastBlock,\n      isRTL: getSettings().isRTL,\n      orientation: moverOrientation || blockListOrientation\n    };\n  }, [clientIds, direction]),\n      blockType = _useSelect.blockType,\n      isDisabled = _useSelect.isDisabled,\n      rootClientId = _useSelect.rootClientId,\n      isFirst = _useSelect.isFirst,\n      isLast = _useSelect.isLast,\n      firstIndex = _useSelect.firstIndex,\n      isRTL = _useSelect.isRTL,\n      _useSelect$orientatio = _useSelect.orientation,\n      orientation = _useSelect$orientatio === void 0 ? 'vertical' : _useSelect$orientatio;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      moveBlocksDown = _useDispatch.moveBlocksDown,\n      moveBlocksUp = _useDispatch.moveBlocksUp;\n\n  var moverFunction = direction === 'up' ? moveBlocksUp : moveBlocksDown;\n\n  var onClick = function onClick(event) {\n    moverFunction(clientIds, rootClientId);\n\n    if (props.onClick) {\n      props.onClick(event);\n    }\n  };\n\n  var descriptionId = \"block-editor-block-mover-button__description-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    className: classnames_default()('block-editor-block-mover-button', \"is-\".concat(direction, \"-button\")),\n    icon: button_getArrowIcon(direction, orientation, isRTL),\n    label: button_getMovementDirectionLabel(direction, orientation, isRTL),\n    \"aria-describedby\": descriptionId\n  }, props, {\n    onClick: isDisabled ? null : onClick,\n    \"aria-disabled\": isDisabled\n  })), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    id: descriptionId,\n    className: \"block-editor-block-mover-button__description\"\n  }, getBlockMoverDescription(blocksCount, blockType && blockType.title, firstIndex, isFirst, isLast, direction === 'up' ? -1 : 1, orientation, isRTL)));\n});\nvar BlockMoverUpButton = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(BlockMoverButton, Object(esm_extends[\"a\" /* default */])({\n    direction: \"up\",\n    ref: ref\n  }, props));\n});\nvar BlockMoverDownButton = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(BlockMoverButton, Object(esm_extends[\"a\" /* default */])({\n    direction: \"down\",\n    ref: ref\n  }, props));\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/descender-lines.js\n\n\n/**\n * External dependencies\n */\n\n\nvar lineClassName = 'block-editor-block-navigator-descender-line';\nfunction DescenderLines(_ref) {\n  var level = _ref.level,\n      isLastRow = _ref.isLastRow,\n      terminatedLevels = _ref.terminatedLevels;\n  return Object(external_this_lodash_[\"times\"])(level - 1, function (index) {\n    // The first 'level' that has a descender line is level 2.\n    // Add 2 to the zero-based index below to reflect that.\n    var currentLevel = index + 2;\n    var hasItem = currentLevel === level;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      key: index,\n      \"aria-hidden\": \"true\",\n      className: classnames_default()(lineClassName, {\n        'has-item': hasItem,\n        'is-last-row': isLastRow,\n        'is-terminated': terminatedLevels.includes(currentLevel)\n      })\n    });\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/context.js\n/**\n * WordPress dependencies\n */\n\nvar BlockNavigationContext = Object(external_this_wp_element_[\"createContext\"])({\n  __experimentalFeatures: false\n});\nvar context_useBlockNavigationContext = function useBlockNavigationContext() {\n  return Object(external_this_wp_element_[\"useContext\"])(BlockNavigationContext);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more-horizontal.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar moreHorizontal = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M11 13h2v-2h-2v2zm-6 0h2v-2H5v2zm12-2v2h2v-2h-2z\"\n}));\n/* harmony default export */ var more_horizontal = (moreHorizontal);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/warning/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction Warning(_ref) {\n  var className = _ref.className,\n      actions = _ref.actions,\n      children = _ref.children,\n      secondaryActions = _ref.secondaryActions;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()(className, 'block-editor-warning')\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-warning__contents\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"block-editor-warning__message\"\n  }, children), (external_this_wp_element_[\"Children\"].count(actions) > 0 || secondaryActions) && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-warning__actions\"\n  }, external_this_wp_element_[\"Children\"].count(actions) > 0 && external_this_wp_element_[\"Children\"].map(actions, function (action, i) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      key: i,\n      className: \"block-editor-warning__action\"\n    }, action);\n  }), secondaryActions && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    className: \"block-editor-warning__secondary\",\n    position: \"bottom left\",\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: more_horizontal,\n        label: Object(external_this_wp_i18n_[\"__\"])('More options'),\n        onClick: onToggle,\n        \"aria-expanded\": isOpen\n      });\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, secondaryActions.map(function (item, pos) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n          onClick: item.onClick,\n          key: pos\n        }, item.title);\n      }));\n    }\n  }))));\n}\n\n/* harmony default export */ var warning = (Warning);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/block-editor/node_modules/diff/lib/diff/character.js\nvar diff_character = __webpack_require__(258);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/block-view.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar block_view_BlockView = function BlockView(_ref) {\n  var title = _ref.title,\n      rawContent = _ref.rawContent,\n      renderedContent = _ref.renderedContent,\n      action = _ref.action,\n      actionText = _ref.actionText,\n      className = _ref.className;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-compare__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"block-editor-block-compare__heading\"\n  }, title), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-compare__html\"\n  }, rawContent), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-compare__preview edit-post-visual-editor\"\n  }, renderedContent)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-compare__action\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    tabIndex: \"0\",\n    onClick: action\n  }, actionText)));\n};\n\n/* harmony default export */ var block_view = (block_view_BlockView);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-compare/index.js\n\n\n/**\n * External dependencies\n */\n\n // diff doesn't tree-shake correctly, so we import from the individual\n// module here, to avoid including too much of the library\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockCompare(_ref) {\n  var block = _ref.block,\n      onKeep = _ref.onKeep,\n      onConvert = _ref.onConvert,\n      convertor = _ref.convertor,\n      convertButtonText = _ref.convertButtonText;\n\n  function getDifference(originalContent, newContent) {\n    var difference = Object(diff_character[\"diffChars\"])(originalContent, newContent);\n    return difference.map(function (item, pos) {\n      var classes = classnames_default()({\n        'block-editor-block-compare__added': item.added,\n        'block-editor-block-compare__removed': item.removed\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        key: pos,\n        className: classes\n      }, item.value);\n    });\n  }\n\n  function getConvertedContent(convertedBlock) {\n    // The convertor may return an array of items or a single item\n    var newBlocks = Object(external_this_lodash_[\"castArray\"])(convertedBlock); // Get converted block details\n\n    var newContent = newBlocks.map(function (item) {\n      return Object(external_this_wp_blocks_[\"getSaveContent\"])(item.name, item.attributes, item.innerBlocks);\n    });\n    var renderedContent = newBlocks.map(function (item) {\n      return Object(external_this_wp_blocks_[\"getSaveElement\"])(item.name, item.attributes, item.innerBlocks);\n    });\n    return {\n      rawContent: newContent.join(''),\n      renderedContent: renderedContent\n    };\n  }\n\n  var original = {\n    rawContent: block.originalContent,\n    renderedContent: Object(external_this_wp_blocks_[\"getSaveElement\"])(block.name, block.attributes)\n  };\n  var converted = getConvertedContent(convertor(block));\n  var difference = getDifference(original.rawContent, converted.rawContent);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-compare__wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_view, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Current'),\n    className: \"block-editor-block-compare__current\",\n    action: onKeep,\n    actionText: Object(external_this_wp_i18n_[\"__\"])('Convert to HTML'),\n    rawContent: original.rawContent,\n    renderedContent: original.renderedContent\n  }), Object(external_this_wp_element_[\"createElement\"])(block_view, {\n    title: Object(external_this_wp_i18n_[\"__\"])('After Conversion'),\n    className: \"block-editor-block-compare__converted\",\n    action: onConvert,\n    actionText: convertButtonText,\n    rawContent: difference,\n    renderedContent: converted.renderedContent\n  }));\n}\n\n/* harmony default export */ var block_compare = (BlockCompare);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-invalid-warning.js\n\n\n\n\n\n\n\n\nfunction block_invalid_warning_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_invalid_warning_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_invalid_warning_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar block_invalid_warning_BlockInvalidWarning = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BlockInvalidWarning, _Component);\n\n  var _super = block_invalid_warning_createSuper(BlockInvalidWarning);\n\n  function BlockInvalidWarning(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BlockInvalidWarning);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      compare: false\n    };\n    _this.onCompare = _this.onCompare.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onCompareClose = _this.onCompareClose.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BlockInvalidWarning, [{\n    key: \"onCompare\",\n    value: function onCompare() {\n      this.setState({\n        compare: true\n      });\n    }\n  }, {\n    key: \"onCompareClose\",\n    value: function onCompareClose() {\n      this.setState({\n        compare: false\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          convertToHTML = _this$props.convertToHTML,\n          convertToBlocks = _this$props.convertToBlocks,\n          convertToClassic = _this$props.convertToClassic,\n          attemptBlockRecovery = _this$props.attemptBlockRecovery,\n          block = _this$props.block;\n      var hasHTMLBlock = !!Object(external_this_wp_blocks_[\"getBlockType\"])('core/html');\n      var compare = this.state.compare;\n      var hiddenActions = [{\n        title: Object(external_this_wp_i18n_[\"__\"])('Convert to Classic Block'),\n        onClick: convertToClassic\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('Attempt Block Recovery'),\n        onClick: attemptBlockRecovery\n      }];\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(warning, {\n        actions: [Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          key: \"convert\",\n          onClick: this.onCompare,\n          isSecondary: hasHTMLBlock,\n          isPrimary: !hasHTMLBlock\n        }, // translators: Button to fix block content\n        Object(external_this_wp_i18n_[\"_x\"])('Resolve', 'imperative verb')), hasHTMLBlock && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          key: \"edit\",\n          onClick: convertToHTML,\n          isPrimary: true\n        }, Object(external_this_wp_i18n_[\"__\"])('Convert to HTML'))],\n        secondaryActions: hiddenActions\n      }, Object(external_this_wp_i18n_[\"__\"])('This block contains unexpected or invalid content.')), compare && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Modal\"], {\n        title: // translators: Dialog title to fix block content\n        Object(external_this_wp_i18n_[\"__\"])('Resolve Block'),\n        onRequestClose: this.onCompareClose,\n        className: \"block-editor-block-compare\"\n      }, Object(external_this_wp_element_[\"createElement\"])(block_compare, {\n        block: block,\n        onKeep: convertToHTML,\n        onConvert: convertToBlocks,\n        convertor: block_invalid_warning_blockToBlocks,\n        convertButtonText: Object(external_this_wp_i18n_[\"__\"])('Convert to Blocks')\n      })));\n    }\n  }]);\n\n  return BlockInvalidWarning;\n}(external_this_wp_element_[\"Component\"]);\n\nvar block_invalid_warning_blockToClassic = function blockToClassic(block) {\n  return Object(external_this_wp_blocks_[\"createBlock\"])('core/freeform', {\n    content: block.originalContent\n  });\n};\n\nvar block_invalid_warning_blockToHTML = function blockToHTML(block) {\n  return Object(external_this_wp_blocks_[\"createBlock\"])('core/html', {\n    content: block.originalContent\n  });\n};\n\nvar block_invalid_warning_blockToBlocks = function blockToBlocks(block) {\n  return Object(external_this_wp_blocks_[\"rawHandler\"])({\n    HTML: block.originalContent\n  });\n};\n\nvar block_invalid_warning_recoverBlock = function recoverBlock(_ref) {\n  var name = _ref.name,\n      attributes = _ref.attributes,\n      innerBlocks = _ref.innerBlocks;\n  return Object(external_this_wp_blocks_[\"createBlock\"])(name, attributes, innerBlocks);\n};\n\n/* harmony default export */ var block_invalid_warning = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var clientId = _ref2.clientId;\n  return {\n    block: select('core/block-editor').getBlock(clientId)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref3) {\n  var block = _ref3.block;\n\n  var _dispatch = dispatch('core/block-editor'),\n      replaceBlock = _dispatch.replaceBlock;\n\n  return {\n    convertToClassic: function convertToClassic() {\n      replaceBlock(block.clientId, block_invalid_warning_blockToClassic(block));\n    },\n    convertToHTML: function convertToHTML() {\n      replaceBlock(block.clientId, block_invalid_warning_blockToHTML(block));\n    },\n    convertToBlocks: function convertToBlocks() {\n      replaceBlock(block.clientId, block_invalid_warning_blockToBlocks(block));\n    },\n    attemptBlockRecovery: function attemptBlockRecovery() {\n      replaceBlock(block.clientId, block_invalid_warning_recoverBlock(block));\n    }\n  };\n})])(block_invalid_warning_BlockInvalidWarning));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-warning.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar block_crash_warning_warning = Object(external_this_wp_element_[\"createElement\"])(warning, {\n  className: \"block-editor-block-list__block-crash-warning\"\n}, Object(external_this_wp_i18n_[\"__\"])('This block has encountered an error and cannot be previewed.'));\n/* harmony default export */ var block_crash_warning = (function () {\n  return block_crash_warning_warning;\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-crash-boundary.js\n\n\n\n\n\n\nfunction block_crash_boundary_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_crash_boundary_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_crash_boundary_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\nvar block_crash_boundary_BlockCrashBoundary = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BlockCrashBoundary, _Component);\n\n  var _super = block_crash_boundary_createSuper(BlockCrashBoundary);\n\n  function BlockCrashBoundary() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BlockCrashBoundary);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      hasError: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BlockCrashBoundary, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(error) {\n      this.props.onError(error);\n      this.setState({\n        hasError: true\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (this.state.hasError) {\n        return null;\n      }\n\n      return this.props.children;\n    }\n  }]);\n\n  return BlockCrashBoundary;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var block_crash_boundary = (block_crash_boundary_BlockCrashBoundary);\n\n// EXTERNAL MODULE: ./node_modules/react-autosize-textarea/lib/index.js\nvar lib = __webpack_require__(88);\nvar lib_default = /*#__PURE__*/__webpack_require__.n(lib);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-html.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction BlockHTML(_ref) {\n  var clientId = _ref.clientId;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(''),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      html = _useState2[0],\n      setHtml = _useState2[1];\n\n  var block = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getBlock(clientId);\n  }, [clientId]);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlock = _useDispatch.updateBlock;\n\n  var onChange = function onChange() {\n    var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(block.name);\n    var attributes = Object(external_this_wp_blocks_[\"getBlockAttributes\"])(blockType, html, block.attributes); // If html is empty  we reset the block to the default HTML and mark it as valid to avoid triggering an error\n\n    var content = html ? html : Object(external_this_wp_blocks_[\"getSaveContent\"])(blockType, attributes);\n    var isValid = html ? Object(external_this_wp_blocks_[\"isValidBlockContent\"])(blockType, attributes, content) : true;\n    updateBlock(clientId, {\n      attributes: attributes,\n      originalContent: content,\n      isValid: isValid\n    }); // Ensure the state is updated if we reset so it displays the default content\n\n    if (!html) {\n      setHtml({\n        content: content\n      });\n    }\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    setHtml(Object(external_this_wp_blocks_[\"getBlockContent\"])(block));\n  }, [block]);\n  return Object(external_this_wp_element_[\"createElement\"])(lib_default.a, {\n    className: \"block-editor-block-list__block-html-textarea\",\n    value: html,\n    onBlur: onChange,\n    onChange: function onChange(event) {\n      return setHtml(event.target.value);\n    }\n  });\n}\n\n/* harmony default export */ var block_html = (BlockHTML);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/use-multi-selection.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns for the deepest node at the start or end of a container node. Ignores\n * any text nodes that only contain HTML formatting whitespace.\n *\n * @param {Element} node Container to search.\n * @param {string} type 'start' or 'end'.\n */\n\nfunction getDeepestNode(node, type) {\n  var child = type === 'start' ? 'firstChild' : 'lastChild';\n  var sibling = type === 'start' ? 'nextSibling' : 'previousSibling';\n\n  while (node[child]) {\n    node = node[child];\n\n    while (node.nodeType === node.TEXT_NODE && /^[ \\t\\n]*$/.test(node.data) && node[sibling]) {\n      node = node[sibling];\n    }\n  }\n\n  return node;\n}\n\nfunction use_multi_selection_selector(select) {\n  var _select = select('core/block-editor'),\n      isSelectionEnabled = _select.isSelectionEnabled,\n      isMultiSelecting = _select.isMultiSelecting,\n      getMultiSelectedBlockClientIds = _select.getMultiSelectedBlockClientIds,\n      hasMultiSelection = _select.hasMultiSelection,\n      getBlockParents = _select.getBlockParents,\n      getSelectedBlockClientId = _select.getSelectedBlockClientId;\n\n  return {\n    isSelectionEnabled: isSelectionEnabled(),\n    isMultiSelecting: isMultiSelecting(),\n    multiSelectedBlockClientIds: getMultiSelectedBlockClientIds(),\n    hasMultiSelection: hasMultiSelection(),\n    getBlockParents: getBlockParents,\n    selectedBlockClientId: getSelectedBlockClientId()\n  };\n}\n\nfunction toggleRichText(container, toggle) {\n  Array.from(container.querySelectorAll('.rich-text')).forEach(function (node) {\n    if (toggle) {\n      node.setAttribute('contenteditable', true);\n    } else {\n      node.removeAttribute('contenteditable');\n    }\n  });\n}\n\nfunction useMultiSelection(ref) {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(use_multi_selection_selector, []),\n      isSelectionEnabled = _useSelect.isSelectionEnabled,\n      isMultiSelecting = _useSelect.isMultiSelecting,\n      multiSelectedBlockClientIds = _useSelect.multiSelectedBlockClientIds,\n      hasMultiSelection = _useSelect.hasMultiSelection,\n      getBlockParents = _useSelect.getBlockParents,\n      selectedBlockClientId = _useSelect.selectedBlockClientId;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      startMultiSelect = _useDispatch.startMultiSelect,\n      stopMultiSelect = _useDispatch.stopMultiSelect,\n      multiSelect = _useDispatch.multiSelect,\n      selectBlock = _useDispatch.selectBlock;\n\n  var rafId = Object(external_this_wp_element_[\"useRef\"])();\n  var startClientId = Object(external_this_wp_element_[\"useRef\"])();\n  var anchorElement = Object(external_this_wp_element_[\"useRef\"])();\n  /**\n   * When the component updates, and there is multi selection, we need to\n   * select the entire block contents.\n   */\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!hasMultiSelection || isMultiSelecting) {\n      if (!selectedBlockClientId || isMultiSelecting) {\n        return;\n      }\n\n      var _selection = window.getSelection();\n\n      if (_selection.rangeCount && !_selection.isCollapsed) {\n        var blockNode = getBlockDOMNode(selectedBlockClientId);\n\n        var _selection$getRangeAt = _selection.getRangeAt(0),\n            startContainer = _selection$getRangeAt.startContainer,\n            endContainer = _selection$getRangeAt.endContainer;\n\n        if (!!blockNode && (!blockNode.contains(startContainer) || !blockNode.contains(endContainer))) {\n          _selection.removeAllRanges();\n        }\n      }\n\n      return;\n    }\n\n    var length = multiSelectedBlockClientIds.length;\n\n    if (length < 2) {\n      return;\n    } // These must be in the right DOM order.\n\n\n    var start = multiSelectedBlockClientIds[0];\n    var end = multiSelectedBlockClientIds[length - 1];\n    var startNode = getBlockDOMNode(start);\n    var endNode = getBlockDOMNode(end);\n    var selection = window.getSelection();\n    var range = document.createRange(); // The most stable way to select the whole block contents is to start\n    // and end at the deepest points.\n\n    startNode = getDeepestNode(startNode, 'start');\n    endNode = getDeepestNode(endNode, 'end');\n    range.setStartBefore(startNode);\n    range.setEndAfter(endNode);\n    selection.removeAllRanges();\n    selection.addRange(range);\n  }, [hasMultiSelection, isMultiSelecting, multiSelectedBlockClientIds, selectBlock, selectedBlockClientId]);\n  var onSelectionChange = Object(external_this_wp_element_[\"useCallback\"])(function (_ref) {\n    var isSelectionEnd = _ref.isSelectionEnd;\n    var selection = window.getSelection(); // If no selection is found, end multi selection and enable all rich\n    // text areas.\n\n    if (!selection.rangeCount || selection.isCollapsed) {\n      toggleRichText(ref.current, true);\n      return;\n    }\n\n    var clientId = getBlockClientId(selection.focusNode);\n    var isSingularSelection = startClientId.current === clientId;\n\n    if (isSingularSelection) {\n      selectBlock(clientId); // If the selection is complete (on mouse up), and no multiple\n      // blocks have been selected, set focus back to the anchor element\n      // if the anchor element contains the selection. Additionally, rich\n      // text elements that were previously disabled can now be enabled\n      // again.\n\n      if (isSelectionEnd) {\n        toggleRichText(ref.current, true);\n\n        if (selection.rangeCount) {\n          var _selection$getRangeAt2 = selection.getRangeAt(0),\n              commonAncestorContainer = _selection$getRangeAt2.commonAncestorContainer;\n\n          if (anchorElement.current.contains(commonAncestorContainer)) {\n            anchorElement.current.focus();\n          }\n        }\n      }\n    } else {\n      var startPath = [].concat(Object(toConsumableArray[\"a\" /* default */])(getBlockParents(startClientId.current)), [startClientId.current]);\n      var endPath = [].concat(Object(toConsumableArray[\"a\" /* default */])(getBlockParents(clientId)), [clientId]);\n      var depth = Math.min(startPath.length, endPath.length) - 1;\n      multiSelect(startPath[depth], endPath[depth]);\n    }\n  }, [selectBlock, getBlockParents, multiSelect]);\n  /**\n   * Handles a mouseup event to end the current mouse multi-selection.\n   */\n\n  var onSelectionEnd = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    document.removeEventListener('selectionchange', onSelectionChange); // Equivalent to attaching the listener once.\n\n    window.removeEventListener('mouseup', onSelectionEnd); // The browser selection won't have updated yet at this point, so wait\n    // until the next animation frame to get the browser selection.\n\n    rafId.current = window.requestAnimationFrame(function () {\n      onSelectionChange({\n        isSelectionEnd: true\n      });\n      stopMultiSelect();\n    });\n  }, [onSelectionChange, stopMultiSelect]); // Only clean up when unmounting, these are added and cleaned up elsewhere.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      document.removeEventListener('selectionchange', onSelectionChange);\n      window.removeEventListener('mouseup', onSelectionEnd);\n      window.cancelAnimationFrame(rafId.current);\n    };\n  }, [onSelectionChange, onSelectionEnd]);\n  /**\n   * Binds event handlers to the document for tracking a pending multi-select\n   * in response to a mousedown event occurring in a rendered block.\n   */\n\n  return Object(external_this_wp_element_[\"useCallback\"])(function (clientId) {\n    if (!isSelectionEnabled) {\n      return;\n    }\n\n    startClientId.current = clientId;\n    anchorElement.current = document.activeElement;\n    startMultiSelect(); // `onSelectionStart` is called after `mousedown` and `mouseleave`\n    // (from a block). The selection ends when `mouseup` happens anywhere\n    // in the window.\n\n    document.addEventListener('selectionchange', onSelectionChange);\n    window.addEventListener('mouseup', onSelectionEnd); // Removing the contenteditable attributes within the block editor is\n    // essential for selection to work across editable areas. The edible\n    // hosts are removed, allowing selection to be extended outside the\n    // DOM element. `startMultiSelect` sets a flag in the store so the rich\n    // text components are updated, but the rerender may happen very slowly,\n    // especially in Safari for the blocks that are asynchonously rendered.\n    // To ensure the browser instantly removes the selection boundaries, we\n    // remove the contenteditable attributes manually.\n\n    toggleRichText(ref.current, false);\n  }, [isSelectionEnabled, startMultiSelect, onSelectionEnd]);\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js\nvar plus = __webpack_require__(286);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tips.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar globalTips = [Object(external_this_wp_element_[\"createInterpolateElement\"])(Object(external_this_wp_i18n_[\"__\"])('While writing, you can press <kbd>/</kbd> to quickly insert new blocks.'), {\n  kbd: Object(external_this_wp_element_[\"createElement\"])(\"kbd\", null)\n}), Object(external_this_wp_element_[\"createInterpolateElement\"])(Object(external_this_wp_i18n_[\"__\"])('Indent a list by pressing <kbd>space</kbd> at the beginning of a line.'), {\n  kbd: Object(external_this_wp_element_[\"createElement\"])(\"kbd\", null)\n}), Object(external_this_wp_element_[\"createInterpolateElement\"])(Object(external_this_wp_i18n_[\"__\"])('Outdent a list by pressing <kbd>backspace</kbd> at the beginning of a line.'), {\n  kbd: Object(external_this_wp_element_[\"createElement\"])(\"kbd\", null)\n}), Object(external_this_wp_i18n_[\"__\"])('Drag files into the editor to automatically insert media blocks.'), Object(external_this_wp_i18n_[\"__\"])(\"Change a block's type by pressing the block icon on the toolbar.\")];\n\nfunction Tips() {\n  var _useState = Object(external_this_wp_element_[\"useState\"])( // Disable Reason: I'm not generating an HTML id.\n  // eslint-disable-next-line no-restricted-syntax\n  Math.floor(Math.random() * globalTips.length)),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 1),\n      randomIndex = _useState2[0];\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Tip\"], null, globalTips[randomIndex]);\n}\n\n/* harmony default export */ var tips = (Tips);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js\nvar close_small = __webpack_require__(171);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar build_module_icon = __webpack_require__(131);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js\nvar search = __webpack_require__(287);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/search-form.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction InserterSearchForm(_ref) {\n  var className = _ref.className,\n      _onChange = _ref.onChange,\n      value = _ref.value;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(InserterSearchForm);\n  var searchInput = Object(external_this_wp_element_[\"useRef\"])(); // Disable reason (no-autofocus): The inserter menu is a modal display, not one which\n  // is always visible, and one which already incurs this behavior of autoFocus via\n  // Popover's focusOnMount.\n\n  /* eslint-disable jsx-a11y/no-autofocus */\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('block-editor-inserter__search', className)\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n    as: \"label\",\n    htmlFor: \"block-editor-inserter__search-\".concat(instanceId)\n  }, Object(external_this_wp_i18n_[\"__\"])('Search for a block')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    ref: searchInput,\n    className: \"block-editor-inserter__search-input\",\n    id: \"block-editor-inserter__search-\".concat(instanceId),\n    type: \"search\",\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Search for a block'),\n    autoFocus: true,\n    onChange: function onChange(event) {\n      return _onChange(event.target.value);\n    },\n    autoComplete: \"off\",\n    value: value || ''\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__search-icon\"\n  }, !!value && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    icon: close_small[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Reset search'),\n    onClick: function onClick() {\n      _onChange('');\n\n      searchInput.current.focus();\n    }\n  }), !value && Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    icon: search[\"a\" /* default */]\n  })));\n  /* eslint-enable jsx-a11y/no-autofocus */\n}\n\n/* harmony default export */ var search_form = (InserterSearchForm);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-card/index.js\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction BlockCard(_ref) {\n  var blockType = _ref.blockType;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-card\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: blockType.icon,\n    showColors: true\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-card__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"block-editor-block-card__title\"\n  }, blockType.title), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-block-card__description\"\n  }, blockType.description)));\n}\n\n/* harmony default export */ var block_card = (BlockCard);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/defaults.js\n/**\n * WordPress dependencies\n */\n\nvar PREFERENCES_DEFAULTS = {\n  insertUsage: {}\n};\n/**\n * The default editor settings\n *\n * @typedef {Object} SETTINGS_DEFAULT\n * @property {boolean} alignWide Enable/Disable Wide/Full Alignments\n * @property {Array} availableLegacyWidgets Array of objects representing the legacy widgets available.\n * @property {Array} colors Palette colors\n * @property {boolean} disableCustomColors Whether or not the custom colors are disabled\n * @property {Array} fontSizes Available font sizes\n * @property {boolean} disableCustomFontSizes Whether or not the custom font sizes are disabled\n * @property {Array} imageSizes Available image sizes\n * @property {number} maxWidth Max width to constraint resizing\n * @property {boolean|Array} allowedBlockTypes Allowed block types\n * @property {boolean} hasFixedToolbar Whether or not the editor toolbar is fixed\n * @property {boolean} hasPermissionsToManageWidgets Whether or not the user is able to manage widgets.\n * @property {boolean} focusMode Whether the focus mode is enabled or not\n * @property {Array} styles Editor Styles\n * @property {boolean} isRTL Whether the editor is in RTL mode\n * @property {boolean} keepCaretInsideBlock Whether caret should move between blocks in edit mode\n * @property {string} bodyPlaceholder Empty post placeholder\n * @property {string} titlePlaceholder Empty title placeholder\n * @property {boolean} codeEditingEnabled Whether or not the user can switch to the code editor\n * @property {boolean} __experimentalCanUserUseUnfilteredHTML Whether the user should be able to use unfiltered HTML or the HTML should be filtered e.g., to remove elements considered insecure like iframes.\n * @property {boolean} __experimentalEnableLegacyWidgetBlock Whether the user has enabled the Legacy Widget Block\n * @property {boolean} __experimentalBlockDirectory Whether the user has enabled the Block Directory\n * @property {boolean} __experimentalEnableFullSiteEditing Whether the user has enabled Full Site Editing\n * @property {boolean} __experimentalEnableFullSiteEditingDemo Whether the user has enabled Full Site Editing Demo Templates\n */\n\nvar SETTINGS_DEFAULTS = {\n  alignWide: false,\n  colors: [{\n    name: Object(external_this_wp_i18n_[\"__\"])('Black'),\n    slug: 'black',\n    color: '#000000'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Cyan bluish gray'),\n    slug: 'cyan-bluish-gray',\n    color: '#abb8c3'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('White'),\n    slug: 'white',\n    color: '#ffffff'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Pale pink'),\n    slug: 'pale-pink',\n    color: '#f78da7'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Vivid red'),\n    slug: 'vivid-red',\n    color: '#cf2e2e'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Luminous vivid orange'),\n    slug: 'luminous-vivid-orange',\n    color: '#ff6900'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Luminous vivid amber'),\n    slug: 'luminous-vivid-amber',\n    color: '#fcb900'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Light green cyan'),\n    slug: 'light-green-cyan',\n    color: '#7bdcb5'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Vivid green cyan'),\n    slug: 'vivid-green-cyan',\n    color: '#00d084'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Pale cyan blue'),\n    slug: 'pale-cyan-blue',\n    color: '#8ed1fc'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Vivid cyan blue'),\n    slug: 'vivid-cyan-blue',\n    color: '#0693e3'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Vivid purple'),\n    slug: 'vivid-purple',\n    color: '#9b51e0'\n  }],\n  fontSizes: [{\n    name: Object(external_this_wp_i18n_[\"_x\"])('Small', 'font size name'),\n    size: 13,\n    slug: 'small'\n  }, {\n    name: Object(external_this_wp_i18n_[\"_x\"])('Normal', 'font size name'),\n    size: 16,\n    slug: 'normal'\n  }, {\n    name: Object(external_this_wp_i18n_[\"_x\"])('Medium', 'font size name'),\n    size: 20,\n    slug: 'medium'\n  }, {\n    name: Object(external_this_wp_i18n_[\"_x\"])('Large', 'font size name'),\n    size: 36,\n    slug: 'large'\n  }, {\n    name: Object(external_this_wp_i18n_[\"_x\"])('Huge', 'font size name'),\n    size: 48,\n    slug: 'huge'\n  }],\n  imageSizes: [{\n    slug: 'thumbnail',\n    name: Object(external_this_wp_i18n_[\"__\"])('Thumbnail')\n  }, {\n    slug: 'medium',\n    name: Object(external_this_wp_i18n_[\"__\"])('Medium')\n  }, {\n    slug: 'large',\n    name: Object(external_this_wp_i18n_[\"__\"])('Large')\n  }, {\n    slug: 'full',\n    name: Object(external_this_wp_i18n_[\"__\"])('Full Size')\n  }],\n  // This is current max width of the block inner area\n  // It's used to constraint image resizing and this value could be overridden later by themes\n  maxWidth: 580,\n  // Allowed block types for the editor, defaulting to true (all supported).\n  allowedBlockTypes: true,\n  // Maximum upload size in bytes allowed for the site.\n  maxUploadFileSize: 0,\n  // List of allowed mime types and file extensions.\n  allowedMimeTypes: null,\n  availableLegacyWidgets: {},\n  hasPermissionsToManageWidgets: false,\n  __experimentalCanUserUseUnfilteredHTML: false,\n  __experimentalEnableLegacyWidgetBlock: false,\n  __experimentalBlockDirectory: false,\n  __experimentalEnableFullSiteEditing: false,\n  __experimentalEnableFullSiteEditingDemo: false,\n  __mobileEnablePageTemplates: false,\n  gradients: [{\n    name: Object(external_this_wp_i18n_[\"__\"])('Vivid cyan blue to vivid purple'),\n    gradient: 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',\n    slug: 'vivid-cyan-blue-to-vivid-purple'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Light green cyan to vivid green cyan'),\n    gradient: 'linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%)',\n    slug: 'light-green-cyan-to-vivid-green-cyan'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Luminous vivid amber to luminous vivid orange'),\n    gradient: 'linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%)',\n    slug: 'luminous-vivid-amber-to-luminous-vivid-orange'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Luminous vivid orange to vivid red'),\n    gradient: 'linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%)',\n    slug: 'luminous-vivid-orange-to-vivid-red'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Very light gray to cyan bluish gray'),\n    gradient: 'linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%)',\n    slug: 'very-light-gray-to-cyan-bluish-gray'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Cool to warm spectrum'),\n    gradient: 'linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%)',\n    slug: 'cool-to-warm-spectrum'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Blush light purple'),\n    gradient: 'linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%)',\n    slug: 'blush-light-purple'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Blush bordeaux'),\n    gradient: 'linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%)',\n    slug: 'blush-bordeaux'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Luminous dusk'),\n    gradient: 'linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%)',\n    slug: 'luminous-dusk'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Pale ocean'),\n    gradient: 'linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%)',\n    slug: 'pale-ocean'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Electric grass'),\n    gradient: 'linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%)',\n    slug: 'electric-grass'\n  }, {\n    name: Object(external_this_wp_i18n_[\"__\"])('Midnight'),\n    gradient: 'linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%)',\n    slug: 'midnight'\n  }]\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/array.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * Insert one or multiple elements into a given position of an array.\n *\n * @param {Array}  array    Source array.\n * @param {*}      elements Elements to insert.\n * @param {number} index    Insert Position.\n *\n * @return {Array}          Result.\n */\n\nfunction insertAt(array, elements, index) {\n  return [].concat(Object(toConsumableArray[\"a\" /* default */])(array.slice(0, index)), Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"castArray\"])(elements)), Object(toConsumableArray[\"a\" /* default */])(array.slice(index)));\n}\n/**\n * Moves an element in an array.\n *\n * @param {Array}  array Source array.\n * @param {number} from  Source index.\n * @param {number} to    Destination index.\n * @param {number} count Number of elements to move.\n *\n * @return {Array}       Result.\n */\n\nfunction moveTo(array, from, to) {\n  var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n\n  var withoutMovedElements = Object(toConsumableArray[\"a\" /* default */])(array);\n\n  withoutMovedElements.splice(from, count);\n  return insertAt(withoutMovedElements, array.slice(from, from + count), to);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/reducer.js\n\n\n\n\nfunction reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Given an array of blocks, returns an object where each key is a nesting\n * context, the value of which is an array of block client IDs existing within\n * that nesting context.\n *\n * @param {Array}   blocks       Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\n\nfunction mapBlockOrder(blocks) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  var result = Object(defineProperty[\"a\" /* default */])({}, rootClientId, []);\n\n  blocks.forEach(function (block) {\n    var clientId = block.clientId,\n        innerBlocks = block.innerBlocks;\n    result[rootClientId].push(clientId);\n    Object.assign(result, mapBlockOrder(innerBlocks, clientId));\n  });\n  return result;\n}\n/**\n * Given an array of blocks, returns an object where each key contains\n * the clientId of the block and the value is the parent of the block.\n *\n * @param {Array}   blocks       Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\n\n\nfunction mapBlockParents(blocks) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return blocks.reduce(function (result, block) {\n    return Object.assign(result, Object(defineProperty[\"a\" /* default */])({}, block.clientId, rootClientId), mapBlockParents(block.innerBlocks, block.clientId));\n  }, {});\n}\n/**\n * Helper method to iterate through all blocks, recursing into inner blocks,\n * applying a transformation function to each one.\n * Returns a flattened object with the transformed blocks.\n *\n * @param {Array} blocks Blocks to flatten.\n * @param {Function} transform Transforming function to be applied to each block.\n *\n * @return {Object} Flattened object.\n */\n\n\nfunction flattenBlocks(blocks) {\n  var transform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : external_this_lodash_[\"identity\"];\n  var result = {};\n\n  var stack = Object(toConsumableArray[\"a\" /* default */])(blocks);\n\n  while (stack.length) {\n    var _stack$shift = stack.shift(),\n        innerBlocks = _stack$shift.innerBlocks,\n        block = Object(objectWithoutProperties[\"a\" /* default */])(_stack$shift, [\"innerBlocks\"]);\n\n    stack.push.apply(stack, Object(toConsumableArray[\"a\" /* default */])(innerBlocks));\n    result[block.clientId] = transform(block);\n  }\n\n  return result;\n}\n/**\n * Given an array of blocks, returns an object containing all blocks, without\n * attributes, recursing into inner blocks. Keys correspond to the block client\n * ID, the value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Object} Flattened block attributes object.\n */\n\n\nfunction getFlattenedBlocksWithoutAttributes(blocks) {\n  return flattenBlocks(blocks, function (block) {\n    return Object(external_this_lodash_[\"omit\"])(block, 'attributes');\n  });\n}\n/**\n * Given an array of blocks, returns an object containing all block attributes,\n * recursing into inner blocks. Keys correspond to the block client ID, the\n * value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Object} Flattened block attributes object.\n */\n\n\nfunction getFlattenedBlockAttributes(blocks) {\n  return flattenBlocks(blocks, function (block) {\n    return block.attributes;\n  });\n}\n/**\n * Given a block order map object, returns *all* of the block client IDs that are\n * a descendant of the given root client ID.\n *\n * Calling this with `rootClientId` set to `''` results in a list of client IDs\n * that are in the post. That is, it excludes blocks like fetched reusable\n * blocks which are stored into state but not visible. It also excludes\n * InnerBlocks controllers, like template parts.\n *\n * It is important to exclude the full inner block controller and not just the\n * inner blocks because in many cases, we need to persist the previous value of\n * an inner block controller. To do so, it must be excluded from the list of\n * client IDs which are considered to be part of the top-level entity.\n *\n * @param {Object}  blocksOrder  Object that maps block client IDs to a list of\n *                               nested block client IDs.\n * @param {?string} rootClientId The root client ID to search. Defaults to ''.\n * @param {?Object} controlledInnerBlocks The InnerBlocks controller state.\n *\n * @return {Array} List of descendant client IDs.\n */\n\n\nfunction getNestedBlockClientIds(blocksOrder) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var controlledInnerBlocks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  return Object(external_this_lodash_[\"reduce\"])(blocksOrder[rootClientId], function (result, clientId) {\n    if (!!controlledInnerBlocks[clientId]) {\n      return result;\n    }\n\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(result), [clientId], Object(toConsumableArray[\"a\" /* default */])(getNestedBlockClientIds(blocksOrder, clientId)));\n  }, []);\n}\n/**\n * Returns an object against which it is safe to perform mutating operations,\n * given the original object and its current working copy.\n *\n * @param {Object} original Original object.\n * @param {Object} working  Working object.\n *\n * @return {Object} Mutation-safe object.\n */\n\n\nfunction getMutateSafeObject(original, working) {\n  if (original === working) {\n    return reducer_objectSpread({}, original);\n  }\n\n  return working;\n}\n/**\n * Returns true if the two object arguments have the same keys, or false\n * otherwise.\n *\n * @param {Object} a First object.\n * @param {Object} b Second object.\n *\n * @return {boolean} Whether the two objects have the same keys.\n */\n\n\nfunction hasSameKeys(a, b) {\n  return Object(external_this_lodash_[\"isEqual\"])(Object(external_this_lodash_[\"keys\"])(a), Object(external_this_lodash_[\"keys\"])(b));\n}\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are updating the same block attribute, or\n * false otherwise.\n *\n * @param {Object} action     Currently dispatching action.\n * @param {Object} lastAction Previously dispatched action.\n *\n * @return {boolean} Whether actions are updating the same block attribute.\n */\n\nfunction isUpdatingSameBlockAttribute(action, lastAction) {\n  return action.type === 'UPDATE_BLOCK_ATTRIBUTES' && lastAction !== undefined && lastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' && Object(external_this_lodash_[\"isEqual\"])(action.clientIds, lastAction.clientIds) && hasSameKeys(action.attributes, lastAction.attributes);\n}\n/**\n * Utility returning an object with an empty object value for each key.\n *\n * @param {Array} objectKeys Keys to fill.\n * @return {Object} Object filled with empty object as values for each clientId.\n */\n\nvar fillKeysWithEmptyObject = function fillKeysWithEmptyObject(objectKeys) {\n  return objectKeys.reduce(function (result, key) {\n    result[key] = {};\n    return result;\n  }, {});\n};\n/**\n * Higher-order reducer intended to compute a cache key for each block in the post.\n * A new instance of the cache key (empty object) is created each time the block object\n * needs to be refreshed (for any change in the block or its children).\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nvar reducer_withBlockCache = function withBlockCache(reducer) {\n  return function () {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n    var newState = reducer(state, action);\n\n    if (newState === state) {\n      return state;\n    }\n\n    newState.cache = state.cache ? state.cache : {};\n    /**\n     * For each clientId provided, traverses up parents, adding the provided clientIds\n     * and each parent's clientId to the returned array.\n     *\n     * When calling this function consider that it uses the old state, so any state\n     * modifications made by the `reducer` will not be present.\n     *\n     * @param {Array} clientIds an Array of block clientIds.\n     *\n     * @return {Array} The provided clientIds and all of their parent clientIds.\n     */\n\n    var getBlocksWithParentsClientIds = function getBlocksWithParentsClientIds(clientIds) {\n      return clientIds.reduce(function (result, clientId) {\n        var current = clientId;\n\n        do {\n          result.push(current);\n          current = state.parents[current];\n        } while (current && !state.controlledInnerBlocks[current]);\n\n        return result;\n      }, []);\n    };\n\n    switch (action.type) {\n      case 'RESET_BLOCKS':\n        newState.cache = Object(external_this_lodash_[\"mapValues\"])(flattenBlocks(action.blocks), function () {\n          return {};\n        });\n        break;\n\n      case 'RECEIVE_BLOCKS':\n      case 'INSERT_BLOCKS':\n        {\n          var updatedBlockUids = Object(external_this_lodash_[\"keys\"])(flattenBlocks(action.blocks));\n\n          if (action.rootClientId && !state.controlledInnerBlocks[action.rootClientId]) {\n            updatedBlockUids.push(action.rootClientId);\n          }\n\n          newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds(updatedBlockUids)));\n          break;\n        }\n\n      case 'UPDATE_BLOCK':\n        newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds([action.clientId])));\n        break;\n\n      case 'UPDATE_BLOCK_ATTRIBUTES':\n        newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds(action.clientIds)));\n        break;\n\n      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        var parentClientIds = fillKeysWithEmptyObject(getBlocksWithParentsClientIds(action.replacedClientIds));\n        newState.cache = reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(newState.cache, action.replacedClientIds), {}, Object(external_this_lodash_[\"omit\"])(parentClientIds, action.replacedClientIds), {}, fillKeysWithEmptyObject(Object(external_this_lodash_[\"keys\"])(flattenBlocks(action.blocks))));\n        break;\n\n      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        newState.cache = reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(newState.cache, action.removedClientIds), {}, fillKeysWithEmptyObject(Object(external_this_lodash_[\"difference\"])(getBlocksWithParentsClientIds(action.clientIds), action.clientIds)));\n        break;\n\n      case 'MOVE_BLOCKS_TO_POSITION':\n        {\n          var _updatedBlockUids = Object(toConsumableArray[\"a\" /* default */])(action.clientIds);\n\n          if (action.fromRootClientId) {\n            _updatedBlockUids.push(action.fromRootClientId);\n          }\n\n          if (action.toRootClientId) {\n            _updatedBlockUids.push(action.toRootClientId);\n          }\n\n          newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds(_updatedBlockUids)));\n          break;\n        }\n\n      case 'MOVE_BLOCKS_UP':\n      case 'MOVE_BLOCKS_DOWN':\n        {\n          var _updatedBlockUids2 = [];\n\n          if (action.rootClientId) {\n            _updatedBlockUids2.push(action.rootClientId);\n          }\n\n          newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds(_updatedBlockUids2)));\n          break;\n        }\n\n      case 'SAVE_REUSABLE_BLOCK_SUCCESS':\n        {\n          var _updatedBlockUids3 = Object(external_this_lodash_[\"keys\"])(Object(external_this_lodash_[\"omitBy\"])(newState.attributes, function (attributes, clientId) {\n            return newState.byClientId[clientId].name !== 'core/block' || attributes.ref !== action.updatedId;\n          }));\n\n          newState.cache = reducer_objectSpread({}, newState.cache, {}, fillKeysWithEmptyObject(getBlocksWithParentsClientIds(_updatedBlockUids3)));\n        }\n    }\n\n    return newState;\n  };\n};\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isPersistentChange` property value corresponding to whether a change in\n * state can be considered as persistent. All changes are considered persistent\n * except when updating the same block attribute as in the previous action.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nfunction withPersistentBlockChange(reducer) {\n  var lastAction;\n  var markNextChangeAsNotPersistent = false;\n  return function (state, action) {\n    var nextState = reducer(state, action);\n    var isExplicitPersistentChange = action.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' || markNextChangeAsNotPersistent; // Defer to previous state value (or default) unless changing or\n    // explicitly marking as persistent.\n\n    if (state === nextState && !isExplicitPersistentChange) {\n      markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n      var nextIsPersistentChange = Object(external_this_lodash_[\"get\"])(state, ['isPersistentChange'], true);\n\n      if (state.isPersistentChange === nextIsPersistentChange) {\n        return state;\n      }\n\n      return reducer_objectSpread({}, nextState, {\n        isPersistentChange: nextIsPersistentChange\n      });\n    }\n\n    nextState = reducer_objectSpread({}, nextState, {\n      isPersistentChange: isExplicitPersistentChange ? !markNextChangeAsNotPersistent : !isUpdatingSameBlockAttribute(action, lastAction)\n    }); // In comparing against the previous action, consider only those which\n    // would have qualified as one which would have been ignored or not\n    // have resulted in a changed state.\n\n    lastAction = action;\n    markNextChangeAsNotPersistent = action.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n    return nextState;\n  };\n}\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isIgnoredChange` property value corresponding to whether a change in state\n * can be considered as ignored. A change is considered ignored when the result\n * of an action not incurred by direct user interaction.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nfunction withIgnoredBlockChange(reducer) {\n  /**\n   * Set of action types for which a blocks state change should be ignored.\n   *\n   * @type {Set}\n   */\n  var IGNORED_ACTION_TYPES = new Set(['RECEIVE_BLOCKS']);\n  return function (state, action) {\n    var nextState = reducer(state, action);\n\n    if (nextState !== state) {\n      nextState.isIgnoredChange = IGNORED_ACTION_TYPES.has(action.type);\n    }\n\n    return nextState;\n  };\n}\n/**\n * Higher-order reducer targeting the combined blocks reducer, augmenting\n * block client IDs in remove action to include cascade of inner blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nvar reducer_withInnerBlocksRemoveCascade = function withInnerBlocksRemoveCascade(reducer) {\n  return function (state, action) {\n    // Gets all children which need to be removed.\n    var getAllChildren = function getAllChildren(clientIds) {\n      var result = clientIds;\n\n      for (var i = 0; i < result.length; i++) {\n        var _result2;\n\n        if (!state.order[result[i]] || action.keepControlledInnerBlocks && action.keepControlledInnerBlocks[result[i]]) {\n          continue;\n        }\n\n        if (result === clientIds) {\n          result = Object(toConsumableArray[\"a\" /* default */])(result);\n        }\n\n        (_result2 = result).push.apply(_result2, Object(toConsumableArray[\"a\" /* default */])(state.order[result[i]]));\n      }\n\n      return result;\n    };\n\n    if (state) {\n      switch (action.type) {\n        case 'REMOVE_BLOCKS':\n          action = reducer_objectSpread({}, action, {\n            type: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n            removedClientIds: getAllChildren(action.clientIds)\n          });\n          break;\n\n        case 'REPLACE_BLOCKS':\n          action = reducer_objectSpread({}, action, {\n            type: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n            replacedClientIds: getAllChildren(action.clientIds)\n          });\n          break;\n      }\n    }\n\n    return reducer(state, action);\n  };\n};\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `RESET_BLOCKS` action. When dispatched, this action will replace all\n * blocks that exist in the post, leaving blocks that exist only in state (e.g.\n * reusable blocks and blocks controlled by inner blocks controllers) alone.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nvar reducer_withBlockReset = function withBlockReset(reducer) {\n  return function (state, action) {\n    if (state && action.type === 'RESET_BLOCKS') {\n      /**\n       * A list of client IDs associated with the top level entity (like a\n       * post or template). It excludes the client IDs of blocks associated\n       * with other entities, like inner block controllers or reusable blocks.\n       */\n      var visibleClientIds = getNestedBlockClientIds(state.order, '', state.controlledInnerBlocks); // pickBy returns only the truthy values from controlledInnerBlocks\n\n      var controlledInnerBlocks = Object.keys(Object(external_this_lodash_[\"pickBy\"])(state.controlledInnerBlocks));\n      /**\n       * Each update operation consists of a few parts:\n       * 1. First, the client IDs associated with the top level entity are\n       *    removed from the existing state key, leaving in place controlled\n       *    blocks (like reusable blocks and inner block controllers).\n       * 2. Second, the blocks from the reset action are used to calculate the\n       *    individual state keys. This will re-populate the clientIDs which\n       *    were removed in step 1.\n       * 3. In some cases, we remove the recalculated inner block controllers,\n       *    letting their old values persist. We need to do this because the\n       *    reset block action from a top-level entity is not aware of any\n       *    inner blocks inside InnerBlock controllers. So if the new values\n       *    were used, it would not take into account the existing InnerBlocks\n       *    which already exist in the state for inner block controllers. For\n       *    example, `attributes` uses the newly computed value for controllers\n       *    since attributes are stored in the top-level entity. But `order`\n       *    uses the previous value for the controllers since the new value\n       *    does not include the order of controlled inner blocks. So if the\n       *    new value was used, template parts would disappear from the editor\n       *    whenever you try to undo a change in the top level entity.\n       */\n\n      return reducer_objectSpread({}, state, {\n        byClientId: reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state.byClientId, visibleClientIds), {}, getFlattenedBlocksWithoutAttributes(action.blocks)),\n        attributes: reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state.attributes, visibleClientIds), {}, getFlattenedBlockAttributes(action.blocks)),\n        order: reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state.order, visibleClientIds), {}, Object(external_this_lodash_[\"omit\"])(mapBlockOrder(action.blocks), controlledInnerBlocks)),\n        parents: reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state.parents, visibleClientIds), {}, mapBlockParents(action.blocks)),\n        cache: reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state.cache, visibleClientIds), {}, Object(external_this_lodash_[\"omit\"])(Object(external_this_lodash_[\"mapValues\"])(flattenBlocks(action.blocks), function () {\n          return {};\n        }), controlledInnerBlocks))\n      });\n    }\n\n    return reducer(state, action);\n  };\n};\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state\n * should become equivalent to the execution of a `REMOVE_BLOCKS` action\n * containing all the child's of the root block followed by the execution of\n * `INSERT_BLOCKS` with the new blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nvar reducer_withReplaceInnerBlocks = function withReplaceInnerBlocks(reducer) {\n  return function (state, action) {\n    if (action.type !== 'REPLACE_INNER_BLOCKS') {\n      return reducer(state, action);\n    } // Finds every nested inner block controller. We must check the action blocks\n    // and not just the block parent state because some inner block controllers\n    // should be deleted if specified, whereas others should not be deleted. If\n    // a controlled should not be deleted, then we need to avoid deleting its\n    // inner blocks from the block state because its inner blocks will not be\n    // attached to the block in the action.\n\n\n    var nestedControllers = {};\n\n    if (Object.keys(state.controlledInnerBlocks).length) {\n      var stack = Object(toConsumableArray[\"a\" /* default */])(action.blocks);\n\n      while (stack.length) {\n        var _stack$shift2 = stack.shift(),\n            innerBlocks = _stack$shift2.innerBlocks,\n            block = Object(objectWithoutProperties[\"a\" /* default */])(_stack$shift2, [\"innerBlocks\"]);\n\n        stack.push.apply(stack, Object(toConsumableArray[\"a\" /* default */])(innerBlocks));\n\n        if (!!state.controlledInnerBlocks[block.clientId]) {\n          nestedControllers[block.clientId] = true;\n        }\n      }\n    } // The `keepControlledInnerBlocks` prop will keep the inner blocks of the\n    // marked block in the block state so that they can be reattached to the\n    // marked block when we re-insert everything a few lines below.\n\n\n    var stateAfterBlocksRemoval = state;\n\n    if (state.order[action.rootClientId]) {\n      stateAfterBlocksRemoval = reducer(stateAfterBlocksRemoval, {\n        type: 'REMOVE_BLOCKS',\n        keepControlledInnerBlocks: nestedControllers,\n        clientIds: state.order[action.rootClientId]\n      });\n    }\n\n    var stateAfterInsert = stateAfterBlocksRemoval;\n\n    if (action.blocks.length) {\n      stateAfterInsert = reducer(stateAfterInsert, reducer_objectSpread({}, action, {\n        type: 'INSERT_BLOCKS',\n        index: 0\n      })); // We need to re-attach the block order of the controlled inner blocks.\n      // Otherwise, an inner block controller's blocks will be deleted entirely\n      // from its entity..\n\n      stateAfterInsert.order = reducer_objectSpread({}, stateAfterInsert.order, {}, Object(external_this_lodash_[\"reduce\"])(nestedControllers, function (result, value, key) {\n        if (state.order[key]) {\n          result[key] = state.order[key];\n        }\n\n        return result;\n      }, {}));\n    }\n\n    return stateAfterInsert;\n  };\n};\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `SAVE_REUSABLE_BLOCK_SUCCESS` action. This action can't be handled by\n * regular reducers and needs a higher-order reducer since it needs access to\n * both `byClientId` and `attributes` simultaneously.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\n\n\nvar reducer_withSaveReusableBlock = function withSaveReusableBlock(reducer) {\n  return function (state, action) {\n    if (state && action.type === 'SAVE_REUSABLE_BLOCK_SUCCESS') {\n      var id = action.id,\n          updatedId = action.updatedId; // If a temporary reusable block is saved, we swap the temporary id with the final one\n\n      if (id === updatedId) {\n        return state;\n      }\n\n      state = reducer_objectSpread({}, state);\n      state.attributes = Object(external_this_lodash_[\"mapValues\"])(state.attributes, function (attributes, clientId) {\n        var name = state.byClientId[clientId].name;\n\n        if (name === 'core/block' && attributes.ref === id) {\n          return reducer_objectSpread({}, attributes, {\n            ref: updatedId\n          });\n        }\n\n        return attributes;\n      });\n    }\n\n    return reducer(state, action);\n  };\n};\n/**\n * Reducer returning the blocks state.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\n\nvar reducer_blocks = Object(external_this_lodash_[\"flow\"])(external_this_wp_data_[\"combineReducers\"], reducer_withSaveReusableBlock, // needs to be before withBlockCache\nreducer_withBlockCache, // needs to be before withInnerBlocksRemoveCascade\nreducer_withInnerBlocksRemoveCascade, reducer_withReplaceInnerBlocks, // needs to be after withInnerBlocksRemoveCascade\nreducer_withBlockReset, withPersistentBlockChange, withIgnoredBlockChange)({\n  byClientId: function byClientId() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'RESET_BLOCKS':\n        return getFlattenedBlocksWithoutAttributes(action.blocks);\n\n      case 'RECEIVE_BLOCKS':\n      case 'INSERT_BLOCKS':\n        return reducer_objectSpread({}, state, {}, getFlattenedBlocksWithoutAttributes(action.blocks));\n\n      case 'UPDATE_BLOCK':\n        // Ignore updates if block isn't known\n        if (!state[action.clientId]) {\n          return state;\n        } // Do nothing if only attributes change.\n\n\n        var changes = Object(external_this_lodash_[\"omit\"])(action.updates, 'attributes');\n\n        if (Object(external_this_lodash_[\"isEmpty\"])(changes)) {\n          return state;\n        }\n\n        return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.clientId, reducer_objectSpread({}, state[action.clientId], {}, changes)));\n\n      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        if (!action.blocks) {\n          return state;\n        }\n\n        return reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state, action.replacedClientIds), {}, getFlattenedBlocksWithoutAttributes(action.blocks));\n\n      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        return Object(external_this_lodash_[\"omit\"])(state, action.removedClientIds);\n    }\n\n    return state;\n  },\n  attributes: function attributes() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'RESET_BLOCKS':\n        return getFlattenedBlockAttributes(action.blocks);\n\n      case 'RECEIVE_BLOCKS':\n      case 'INSERT_BLOCKS':\n        return reducer_objectSpread({}, state, {}, getFlattenedBlockAttributes(action.blocks));\n\n      case 'UPDATE_BLOCK':\n        // Ignore updates if block isn't known or there are no attribute changes.\n        if (!state[action.clientId] || !action.updates.attributes) {\n          return state;\n        }\n\n        return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.clientId, reducer_objectSpread({}, state[action.clientId], {}, action.updates.attributes)));\n\n      case 'UPDATE_BLOCK_ATTRIBUTES':\n        {\n          // Avoid a state change if none of the block IDs are known.\n          if (action.clientIds.every(function (id) {\n            return !state[id];\n          })) {\n            return state;\n          }\n\n          var next = action.clientIds.reduce(function (accumulator, id) {\n            return reducer_objectSpread({}, accumulator, Object(defineProperty[\"a\" /* default */])({}, id, Object(external_this_lodash_[\"reduce\"])(action.attributes, function (result, value, key) {\n              // Consider as updates only changed values.\n              if (value !== result[key]) {\n                result = getMutateSafeObject(state[id], result);\n                result[key] = value;\n              }\n\n              return result;\n            }, state[id])));\n          }, {});\n\n          if (action.clientIds.every(function (id) {\n            return next[id] === state[id];\n          })) {\n            return state;\n          }\n\n          return reducer_objectSpread({}, state, {}, next);\n        }\n\n      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        if (!action.blocks) {\n          return state;\n        }\n\n        return reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state, action.replacedClientIds), {}, getFlattenedBlockAttributes(action.blocks));\n\n      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        return Object(external_this_lodash_[\"omit\"])(state, action.removedClientIds);\n    }\n\n    return state;\n  },\n  order: function order() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'RESET_BLOCKS':\n        return mapBlockOrder(action.blocks);\n\n      case 'RECEIVE_BLOCKS':\n        return reducer_objectSpread({}, state, {}, Object(external_this_lodash_[\"omit\"])(mapBlockOrder(action.blocks), ''));\n\n      case 'INSERT_BLOCKS':\n        {\n          var _action$rootClientId = action.rootClientId,\n              rootClientId = _action$rootClientId === void 0 ? '' : _action$rootClientId;\n          var subState = state[rootClientId] || [];\n          var mappedBlocks = mapBlockOrder(action.blocks, rootClientId);\n          var _action$index = action.index,\n              index = _action$index === void 0 ? subState.length : _action$index;\n          return reducer_objectSpread({}, state, {}, mappedBlocks, Object(defineProperty[\"a\" /* default */])({}, rootClientId, insertAt(subState, mappedBlocks[rootClientId], index)));\n        }\n\n      case 'MOVE_BLOCKS_TO_POSITION':\n        {\n          var _objectSpread7;\n\n          var _action$fromRootClien = action.fromRootClientId,\n              fromRootClientId = _action$fromRootClien === void 0 ? '' : _action$fromRootClien,\n              _action$toRootClientI = action.toRootClientId,\n              toRootClientId = _action$toRootClientI === void 0 ? '' : _action$toRootClientI,\n              clientIds = action.clientIds;\n\n          var _action$index2 = action.index,\n              _index = _action$index2 === void 0 ? state[toRootClientId].length : _action$index2; // Moving inside the same parent block\n\n\n          if (fromRootClientId === toRootClientId) {\n            var _subState = state[toRootClientId];\n\n            var fromIndex = _subState.indexOf(clientIds[0]);\n\n            return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, toRootClientId, moveTo(state[toRootClientId], fromIndex, _index, clientIds.length)));\n          } // Moving from a parent block to another\n\n\n          return reducer_objectSpread({}, state, (_objectSpread7 = {}, Object(defineProperty[\"a\" /* default */])(_objectSpread7, fromRootClientId, external_this_lodash_[\"without\"].apply(void 0, [state[fromRootClientId]].concat(Object(toConsumableArray[\"a\" /* default */])(clientIds)))), Object(defineProperty[\"a\" /* default */])(_objectSpread7, toRootClientId, insertAt(state[toRootClientId], clientIds, _index)), _objectSpread7));\n        }\n\n      case 'MOVE_BLOCKS_UP':\n        {\n          var _clientIds = action.clientIds,\n              _action$rootClientId2 = action.rootClientId,\n              _rootClientId = _action$rootClientId2 === void 0 ? '' : _action$rootClientId2;\n\n          var firstClientId = Object(external_this_lodash_[\"first\"])(_clientIds);\n          var _subState2 = state[_rootClientId];\n\n          if (!_subState2.length || firstClientId === Object(external_this_lodash_[\"first\"])(_subState2)) {\n            return state;\n          }\n\n          var firstIndex = _subState2.indexOf(firstClientId);\n\n          return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, _rootClientId, moveTo(_subState2, firstIndex, firstIndex - 1, _clientIds.length)));\n        }\n\n      case 'MOVE_BLOCKS_DOWN':\n        {\n          var _clientIds2 = action.clientIds,\n              _action$rootClientId3 = action.rootClientId,\n              _rootClientId2 = _action$rootClientId3 === void 0 ? '' : _action$rootClientId3;\n\n          var _firstClientId = Object(external_this_lodash_[\"first\"])(_clientIds2);\n\n          var lastClientId = Object(external_this_lodash_[\"last\"])(_clientIds2);\n          var _subState3 = state[_rootClientId2];\n\n          if (!_subState3.length || lastClientId === Object(external_this_lodash_[\"last\"])(_subState3)) {\n            return state;\n          }\n\n          var _firstIndex = _subState3.indexOf(_firstClientId);\n\n          return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, _rootClientId2, moveTo(_subState3, _firstIndex, _firstIndex + 1, _clientIds2.length)));\n        }\n\n      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        {\n          var _clientIds3 = action.clientIds;\n\n          if (!action.blocks) {\n            return state;\n          }\n\n          var _mappedBlocks = mapBlockOrder(action.blocks);\n\n          return Object(external_this_lodash_[\"flow\"])([function (nextState) {\n            return Object(external_this_lodash_[\"omit\"])(nextState, action.replacedClientIds);\n          }, function (nextState) {\n            return reducer_objectSpread({}, nextState, {}, Object(external_this_lodash_[\"omit\"])(_mappedBlocks, ''));\n          }, function (nextState) {\n            return Object(external_this_lodash_[\"mapValues\"])(nextState, function (subState) {\n              return Object(external_this_lodash_[\"reduce\"])(subState, function (result, clientId) {\n                if (clientId === _clientIds3[0]) {\n                  return [].concat(Object(toConsumableArray[\"a\" /* default */])(result), Object(toConsumableArray[\"a\" /* default */])(_mappedBlocks['']));\n                }\n\n                if (_clientIds3.indexOf(clientId) === -1) {\n                  result.push(clientId);\n                }\n\n                return result;\n              }, []);\n            });\n          }])(state);\n        }\n\n      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        return Object(external_this_lodash_[\"flow\"])([// Remove inner block ordering for removed blocks\n        function (nextState) {\n          return Object(external_this_lodash_[\"omit\"])(nextState, action.removedClientIds);\n        }, // Remove deleted blocks from other blocks' orderings\n        function (nextState) {\n          return Object(external_this_lodash_[\"mapValues\"])(nextState, function (subState) {\n            return external_this_lodash_[\"without\"].apply(void 0, [subState].concat(Object(toConsumableArray[\"a\" /* default */])(action.removedClientIds)));\n          });\n        }])(state);\n    }\n\n    return state;\n  },\n  // While technically redundant data as the inverse of `order`, it serves as\n  // an optimization for the selectors which derive the ancestry of a block.\n  parents: function parents() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'RESET_BLOCKS':\n        return mapBlockParents(action.blocks);\n\n      case 'RECEIVE_BLOCKS':\n        return reducer_objectSpread({}, state, {}, mapBlockParents(action.blocks));\n\n      case 'INSERT_BLOCKS':\n        return reducer_objectSpread({}, state, {}, mapBlockParents(action.blocks, action.rootClientId || ''));\n\n      case 'MOVE_BLOCKS_TO_POSITION':\n        {\n          return reducer_objectSpread({}, state, {}, action.clientIds.reduce(function (accumulator, id) {\n            accumulator[id] = action.toRootClientId || '';\n            return accumulator;\n          }, {}));\n        }\n\n      case 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        return reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state, action.replacedClientIds), {}, mapBlockParents(action.blocks, state[action.clientIds[0]]));\n\n      case 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n        return Object(external_this_lodash_[\"omit\"])(state, action.removedClientIds);\n    }\n\n    return state;\n  },\n  controlledInnerBlocks: function controlledInnerBlocks() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    var _ref = arguments.length > 1 ? arguments[1] : undefined,\n        type = _ref.type,\n        clientId = _ref.clientId,\n        hasControlledInnerBlocks = _ref.hasControlledInnerBlocks;\n\n    if (type === 'SET_HAS_CONTROLLED_INNER_BLOCKS') {\n      return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, clientId, hasControlledInnerBlocks));\n    }\n\n    return state;\n  }\n});\n/**\n * Reducer returning typing state.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_isTyping() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'START_TYPING':\n      return true;\n\n    case 'STOP_TYPING':\n      return false;\n  }\n\n  return state;\n}\n/**\n * Reducer returning dragging state.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction isDraggingBlocks() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'START_DRAGGING_BLOCKS':\n      return true;\n\n    case 'STOP_DRAGGING_BLOCKS':\n      return false;\n  }\n\n  return state;\n}\n/**\n * Reducer returning whether the caret is within formatted text.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_isCaretWithinFormattedText() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ENTER_FORMATTED_TEXT':\n      return true;\n\n    case 'EXIT_FORMATTED_TEXT':\n      return false;\n  }\n\n  return state;\n}\n/**\n * Internal helper reducer for selectionStart and selectionEnd. Can hold a block\n * selection, represented by an object with property clientId.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_selection() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'CLEAR_SELECTED_BLOCK':\n      {\n        if (state.clientId) {\n          return {};\n        }\n\n        return state;\n      }\n\n    case 'SELECT_BLOCK':\n      if (action.clientId === state.clientId) {\n        return state;\n      }\n\n      return {\n        clientId: action.clientId\n      };\n\n    case 'REPLACE_INNER_BLOCKS': // REPLACE_INNER_BLOCKS and INSERT_BLOCKS should follow the same logic.\n\n    case 'INSERT_BLOCKS':\n      {\n        // REPLACE_INNER_BLOCKS can be called with an empty array.\n        if (!action.updateSelection || !action.blocks.length) {\n          return state;\n        }\n\n        return {\n          clientId: action.blocks[0].clientId\n        };\n      }\n\n    case 'REMOVE_BLOCKS':\n      if (!action.clientIds || !action.clientIds.length || action.clientIds.indexOf(state.clientId) === -1) {\n        return state;\n      }\n\n      return {};\n\n    case 'REPLACE_BLOCKS':\n      {\n        if (action.clientIds.indexOf(state.clientId) === -1) {\n          return state;\n        }\n\n        var indexToSelect = action.indexToSelect || action.blocks.length - 1;\n        var blockToSelect = action.blocks[indexToSelect];\n\n        if (!blockToSelect) {\n          return {};\n        }\n\n        if (blockToSelect.clientId === state.clientId) {\n          return state;\n        }\n\n        var newState = {\n          clientId: blockToSelect.clientId\n        };\n\n        if (typeof action.initialPosition === 'number') {\n          newState.initialPosition = action.initialPosition;\n        }\n\n        return newState;\n      }\n  }\n\n  return state;\n}\n/**\n * Reducer returning the block selection's start.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\n\nfunction reducer_selectionStart() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SELECTION_CHANGE':\n      return {\n        clientId: action.clientId,\n        attributeKey: action.attributeKey,\n        offset: action.startOffset\n      };\n\n    case 'RESET_SELECTION':\n      return action.selectionStart;\n\n    case 'MULTI_SELECT':\n      return {\n        clientId: action.start\n      };\n  }\n\n  return reducer_selection(state, action);\n}\n/**\n * Reducer returning the block selection's end.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_selectionEnd() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SELECTION_CHANGE':\n      return {\n        clientId: action.clientId,\n        attributeKey: action.attributeKey,\n        offset: action.endOffset\n      };\n\n    case 'RESET_SELECTION':\n      return action.selectionEnd;\n\n    case 'MULTI_SELECT':\n      return {\n        clientId: action.end\n      };\n  }\n\n  return reducer_selection(state, action);\n}\n/**\n * Reducer returning whether the user is multi-selecting.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_isMultiSelecting() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'START_MULTI_SELECT':\n      return true;\n\n    case 'STOP_MULTI_SELECT':\n      return false;\n  }\n\n  return state;\n}\n/**\n * Reducer returning whether selection is enabled.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_isSelectionEnabled() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'TOGGLE_SELECTION':\n      return action.isSelectionEnabled;\n  }\n\n  return state;\n}\n/**\n * Reducer returning the intial block selection.\n *\n * Currently this in only used to restore the selection after block deletion and\n * pasting new content.This reducer should eventually be removed in favour of setting\n * selection directly.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {?number} Initial position: -1 or undefined.\n */\n\nfunction reducer_initialPosition(state, action) {\n  if (action.type === 'REPLACE_BLOCKS' && typeof action.initialPosition === 'number') {\n    return action.initialPosition;\n  } else if (action.type === 'SELECT_BLOCK') {\n    return action.initialPosition;\n  } else if (action.type === 'REMOVE_BLOCKS') {\n    return state;\n  } else if (action.type === 'START_TYPING') {\n    return state;\n  } // Reset the state by default (for any action not handled).\n\n}\nfunction blocksMode() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  if (action.type === 'TOGGLE_BLOCK_MODE') {\n    var clientId = action.clientId;\n    return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, clientId, state[clientId] && state[clientId] === 'html' ? 'visual' : 'html'));\n  }\n\n  return state;\n}\n/**\n * Reducer returning the block insertion point visibility, either null if there\n * is not an explicit insertion point assigned, or an object of its `index` and\n * `rootClientId`.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction insertionPoint() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SHOW_INSERTION_POINT':\n      var rootClientId = action.rootClientId,\n          index = action.index;\n      return {\n        rootClientId: rootClientId,\n        index: index\n      };\n\n    case 'HIDE_INSERTION_POINT':\n      return null;\n  }\n\n  return state;\n}\n/**\n * Reducer returning whether the post blocks match the defined template or not.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_template() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n    isValid: true\n  };\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_TEMPLATE_VALIDITY':\n      return reducer_objectSpread({}, state, {\n        isValid: action.isValid\n      });\n  }\n\n  return state;\n}\n/**\n * Reducer returning the editor setting.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_settings() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SETTINGS_DEFAULTS;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'UPDATE_SETTINGS':\n      return reducer_objectSpread({}, state, {}, action.settings);\n  }\n\n  return state;\n}\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object}  state                 Current state.\n * @param {Object}  action                Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction preferences() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PREFERENCES_DEFAULTS;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'INSERT_BLOCKS':\n    case 'REPLACE_BLOCKS':\n      return action.blocks.reduce(function (prevState, block) {\n        var id = block.name;\n        var insert = {\n          name: block.name\n        };\n\n        if (Object(external_this_wp_blocks_[\"isReusableBlock\"])(block)) {\n          insert.ref = block.attributes.ref;\n          id += '/' + block.attributes.ref;\n        }\n\n        return reducer_objectSpread({}, prevState, {\n          insertUsage: reducer_objectSpread({}, prevState.insertUsage, Object(defineProperty[\"a\" /* default */])({}, id, {\n            time: action.time,\n            count: prevState.insertUsage[id] ? prevState.insertUsage[id].count + 1 : 1,\n            insert: insert\n          }))\n        });\n      }, state);\n  }\n\n  return state;\n}\n/**\n * Reducer returning an object where each key is a block client ID, its value\n * representing the settings for its nested blocks.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar reducer_blockListSettings = function blockListSettings() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    // Even if the replaced blocks have the same client ID, our logic\n    // should correct the state.\n    case 'REPLACE_BLOCKS':\n    case 'REMOVE_BLOCKS':\n      {\n        return Object(external_this_lodash_[\"omit\"])(state, action.clientIds);\n      }\n\n    case 'UPDATE_BLOCK_LIST_SETTINGS':\n      {\n        var clientId = action.clientId;\n\n        if (!action.settings) {\n          if (state.hasOwnProperty(clientId)) {\n            return Object(external_this_lodash_[\"omit\"])(state, clientId);\n          }\n\n          return state;\n        }\n\n        if (Object(external_this_lodash_[\"isEqual\"])(state[clientId], action.settings)) {\n          return state;\n        }\n\n        return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, clientId, action.settings));\n      }\n  }\n\n  return state;\n};\n/**\n * Reducer returning whether the navigation mode is enabled or not.\n *\n * @param {string} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction reducer_isNavigationMode() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  // Let inserting block always trigger Edit mode.\n  if (action.type === 'INSERT_BLOCKS') {\n    return false;\n  }\n\n  if (action.type === 'SET_NAVIGATION_MODE') {\n    return action.isNavigationMode;\n  }\n\n  return state;\n}\n/**\n * Reducer returning whether the block moving mode is enabled or not.\n *\n * @param {string|null} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|null} Updated state.\n */\n\nfunction reducer_hasBlockMovingClientId() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  // Let inserting block always trigger Edit mode.\n  if (action.type === 'SET_BLOCK_MOVING_MODE') {\n    return action.hasBlockMovingClientId;\n  }\n\n  return state;\n}\n/**\n * Reducer return an updated state representing the most recent block attribute\n * update. The state is structured as an object where the keys represent the\n * client IDs of blocks, the values a subset of attributes from the most recent\n * block update. The state is always reset to null if the last action is\n * anything other than an attributes update.\n *\n * @param {Object<string,Object>} state  Current state.\n * @param {Object}                action Action object.\n *\n * @return {[string,Object]} Updated state.\n */\n\nfunction lastBlockAttributesChange(state, action) {\n  switch (action.type) {\n    case 'UPDATE_BLOCK':\n      if (!action.updates.attributes) {\n        break;\n      }\n\n      return Object(defineProperty[\"a\" /* default */])({}, action.clientId, action.updates.attributes);\n\n    case 'UPDATE_BLOCK_ATTRIBUTES':\n      return action.clientIds.reduce(function (accumulator, id) {\n        return reducer_objectSpread({}, accumulator, Object(defineProperty[\"a\" /* default */])({}, id, action.attributes));\n      }, {});\n  }\n\n  return null;\n}\n/**\n * Reducer returning automatic change state.\n *\n * @param {boolean} state  Current state.\n * @param {Object}  action Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction automaticChangeStatus(state, action) {\n  switch (action.type) {\n    case 'MARK_AUTOMATIC_CHANGE':\n      return 'pending';\n\n    case 'MARK_AUTOMATIC_CHANGE_FINAL':\n      if (state === 'pending') {\n        return 'final';\n      }\n\n      return;\n\n    case 'SELECTION_CHANGE':\n      // As long as the state is not final, ignore any selection changes.\n      if (state !== 'final') {\n        return state;\n      }\n\n      return;\n    // Undoing an automatic change should still be possible after mouse\n    // move.\n\n    case 'STOP_TYPING':\n      return state;\n  } // Reset the state by default (for any action not handled).\n\n}\n/**\n * Reducer returning current highlighted block.\n *\n * @param {boolean} state  Current highlighted block.\n * @param {Object}  action Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction highlightedBlock(state, action) {\n  var clientId = action.clientId,\n      isHighlighted = action.isHighlighted;\n\n  if (action.type === 'TOGGLE_BLOCK_HIGHLIGHT') {\n    if (isHighlighted) {\n      return clientId;\n    } else if (state === clientId) {\n      return null;\n    }\n  }\n\n  return state;\n}\n/* harmony default export */ var store_reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  blocks: reducer_blocks,\n  isTyping: reducer_isTyping,\n  isDraggingBlocks: isDraggingBlocks,\n  isCaretWithinFormattedText: reducer_isCaretWithinFormattedText,\n  selectionStart: reducer_selectionStart,\n  selectionEnd: reducer_selectionEnd,\n  isMultiSelecting: reducer_isMultiSelecting,\n  isSelectionEnabled: reducer_isSelectionEnabled,\n  initialPosition: reducer_initialPosition,\n  blocksMode: blocksMode,\n  blockListSettings: reducer_blockListSettings,\n  insertionPoint: insertionPoint,\n  template: reducer_template,\n  settings: reducer_settings,\n  preferences: preferences,\n  lastBlockAttributesChange: lastBlockAttributesChange,\n  isNavigationMode: reducer_isNavigationMode,\n  hasBlockMovingClientId: reducer_hasBlockMovingClientId,\n  automaticChangeStatus: automaticChangeStatus,\n  highlightedBlock: highlightedBlock\n}));\n\n// EXTERNAL MODULE: ./node_modules/refx/refx.js\nvar refx = __webpack_require__(104);\nvar refx_default = /*#__PURE__*/__webpack_require__.n(refx);\n\n// EXTERNAL MODULE: ./node_modules/redux-multi/lib/index.js\nvar redux_multi_lib = __webpack_require__(257);\nvar redux_multi_lib_default = /*#__PURE__*/__webpack_require__.n(redux_multi_lib);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/controls.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Calls a selector using the current state.\n *\n * @param {string} storeName    Store name.\n * @param {string} selectorName Selector name.\n * @param  {Array} args         Selector arguments.\n *\n * @return {Object} control descriptor.\n */\n\nfunction controls_select(storeName, selectorName) {\n  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    args[_key - 2] = arguments[_key];\n  }\n\n  return {\n    type: 'SELECT',\n    storeName: storeName,\n    selectorName: selectorName,\n    args: args\n  };\n}\nvar controls_controls = {\n  SELECT: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function (_ref) {\n      var _registry$select;\n\n      var storeName = _ref.storeName,\n          selectorName = _ref.selectorName,\n          args = _ref.args;\n      return (_registry$select = registry.select(storeName))[selectorName].apply(_registry$select, Object(toConsumableArray[\"a\" /* default */])(args));\n    };\n  }),\n  SLEEP: function SLEEP(_ref2) {\n    var duration = _ref2.duration;\n    return new Promise(function (resolve) {\n      setTimeout(resolve, duration);\n    });\n  }\n};\n/* harmony default export */ var store_controls = (controls_controls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/actions.js\n\n\n\nfunction actions_createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = actions_unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction actions_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return actions_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return actions_arrayLikeToArray(o, minLen); }\n\nfunction actions_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(ensureDefaultBlock),\n    _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(selectPreviousBlock),\n    _marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(selectNextBlock),\n    _marked4 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_replaceBlocks),\n    _marked5 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_moveBlocksToPosition),\n    _marked6 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_moveBlockToPosition),\n    _marked7 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_insertBlocks),\n    _marked8 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_removeBlocks),\n    _marked9 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_setNavigationMode),\n    _marked10 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_setBlockMovingClientId),\n    _marked11 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_duplicateBlocks),\n    _marked12 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_insertBeforeBlock),\n    _marked13 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_insertAfterBlock),\n    _marked14 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_flashBlock);\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Generator which will yield a default block insert action if there\n * are no other blocks at the root of the editor. This generator should be used\n * in actions which may result in no blocks remaining in the editor (removal,\n * replacement, etc).\n */\n\nfunction ensureDefaultBlock() {\n  var count;\n  return external_this_regeneratorRuntime_default.a.wrap(function ensureDefaultBlock$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          _context.next = 2;\n          return controls_select('core/block-editor', 'getBlockCount');\n\n        case 2:\n          count = _context.sent;\n\n          if (!(count === 0)) {\n            _context.next = 7;\n            break;\n          }\n\n          _context.next = 6;\n          return actions_insertDefaultBlock();\n\n        case 6:\n          return _context.abrupt(\"return\", _context.sent);\n\n        case 7:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked);\n}\n/**\n * Returns an action object used in signalling that blocks state should be\n * reset to the specified array of blocks, taking precedence over any other\n * content reflected as an edit in state.\n *\n * @param {Array} blocks Array of blocks.\n *\n * @return {Object} Action object.\n */\n\n\nfunction actions_resetBlocks(blocks) {\n  return {\n    type: 'RESET_BLOCKS',\n    blocks: blocks\n  };\n}\n/**\n * A block selection object.\n *\n * @typedef {Object} WPBlockSelection\n *\n * @property {string} clientId     A block client ID.\n * @property {string} attributeKey A block attribute key.\n * @property {number} offset       An attribute value offset, based on the rich\n *                                 text value. See `wp.richText.create`.\n */\n\n/**\n * Returns an action object used in signalling that selection state should be\n * reset to the specified selection.\n *\n * @param {WPBlockSelection} selectionStart The selection start.\n * @param {WPBlockSelection} selectionEnd   The selection end.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_resetSelection(selectionStart, selectionEnd) {\n  return {\n    type: 'RESET_SELECTION',\n    selectionStart: selectionStart,\n    selectionEnd: selectionEnd\n  };\n}\n/**\n * Returns an action object used in signalling that blocks have been received.\n * Unlike resetBlocks, these should be appended to the existing known set, not\n * replacing.\n *\n * @param {Object[]} blocks Array of block objects.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveBlocks(blocks) {\n  return {\n    type: 'RECEIVE_BLOCKS',\n    blocks: blocks\n  };\n}\n/**\n * Returns an action object used in signalling that the multiple blocks'\n * attributes with the specified client IDs have been updated.\n *\n * @param {string|string[]} clientIds  Block client IDs.\n * @param {Object}          attributes Block attributes to be merged.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_updateBlockAttributes(clientIds, attributes) {\n  return {\n    type: 'UPDATE_BLOCK_ATTRIBUTES',\n    clientIds: Object(external_this_lodash_[\"castArray\"])(clientIds),\n    attributes: attributes\n  };\n}\n/**\n * Returns an action object used in signalling that the block with the\n * specified client ID has been updated.\n *\n * @param {string} clientId Block client ID.\n * @param {Object} updates  Block attributes to be merged.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_updateBlock(clientId, updates) {\n  return {\n    type: 'UPDATE_BLOCK',\n    clientId: clientId,\n    updates: updates\n  };\n}\n/**\n * Returns an action object used in signalling that the block with the\n * specified client ID has been selected, optionally accepting a position\n * value reflecting its selection directionality. An initialPosition of -1\n * reflects a reverse selection.\n *\n * @param {string}  clientId        Block client ID.\n * @param {?number} initialPosition Optional initial position. Pass as -1 to\n *                                  reflect reverse selection.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_selectBlock(clientId) {\n  var initialPosition = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  return {\n    type: 'SELECT_BLOCK',\n    initialPosition: initialPosition,\n    clientId: clientId\n  };\n}\n/**\n * Yields action objects used in signalling that the block preceding the given\n * clientId should be selected.\n *\n * @param {string} clientId Block client ID.\n */\n\nfunction selectPreviousBlock(clientId) {\n  var previousBlockClientId;\n  return external_this_regeneratorRuntime_default.a.wrap(function selectPreviousBlock$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return controls_select('core/block-editor', 'getPreviousBlockClientId', clientId);\n\n        case 2:\n          previousBlockClientId = _context2.sent;\n\n          if (!previousBlockClientId) {\n            _context2.next = 7;\n            break;\n          }\n\n          _context2.next = 6;\n          return actions_selectBlock(previousBlockClientId, -1);\n\n        case 6:\n          return _context2.abrupt(\"return\", [previousBlockClientId]);\n\n        case 7:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2);\n}\n/**\n * Yields action objects used in signalling that the block following the given\n * clientId should be selected.\n *\n * @param {string} clientId Block client ID.\n */\n\nfunction selectNextBlock(clientId) {\n  var nextBlockClientId;\n  return external_this_regeneratorRuntime_default.a.wrap(function selectNextBlock$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          _context3.next = 2;\n          return controls_select('core/block-editor', 'getNextBlockClientId', clientId);\n\n        case 2:\n          nextBlockClientId = _context3.sent;\n\n          if (!nextBlockClientId) {\n            _context3.next = 7;\n            break;\n          }\n\n          _context3.next = 6;\n          return actions_selectBlock(nextBlockClientId);\n\n        case 6:\n          return _context3.abrupt(\"return\", [nextBlockClientId]);\n\n        case 7:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, _marked3);\n}\n/**\n * Returns an action object used in signalling that a block multi-selection has started.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_startMultiSelect() {\n  return {\n    type: 'START_MULTI_SELECT'\n  };\n}\n/**\n * Returns an action object used in signalling that block multi-selection stopped.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_stopMultiSelect() {\n  return {\n    type: 'STOP_MULTI_SELECT'\n  };\n}\n/**\n * Returns an action object used in signalling that block multi-selection changed.\n *\n * @param {string} start First block of the multi selection.\n * @param {string} end   Last block of the multiselection.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_multiSelect(start, end) {\n  return {\n    type: 'MULTI_SELECT',\n    start: start,\n    end: end\n  };\n}\n/**\n * Returns an action object used in signalling that the block selection is cleared.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_clearSelectedBlock() {\n  return {\n    type: 'CLEAR_SELECTED_BLOCK'\n  };\n}\n/**\n * Returns an action object that enables or disables block selection.\n *\n * @param {boolean} [isSelectionEnabled=true] Whether block selection should\n *                                            be enabled.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_toggleSelection() {\n  var isSelectionEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  return {\n    type: 'TOGGLE_SELECTION',\n    isSelectionEnabled: isSelectionEnabled\n  };\n}\n\nfunction getBlocksWithDefaultStylesApplied(blocks, blockEditorSettings) {\n  var preferredStyleVariations = Object(external_this_lodash_[\"get\"])(blockEditorSettings, ['__experimentalPreferredStyleVariations', 'value'], {});\n  return blocks.map(function (block) {\n    var blockName = block.name;\n\n    if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, 'defaultStylePicker', true)) {\n      return block;\n    }\n\n    if (!preferredStyleVariations[blockName]) {\n      return block;\n    }\n\n    var className = Object(external_this_lodash_[\"get\"])(block, ['attributes', 'className']);\n\n    if (className === null || className === void 0 ? void 0 : className.includes('is-style-')) {\n      return block;\n    }\n\n    var _block$attributes = block.attributes,\n        attributes = _block$attributes === void 0 ? {} : _block$attributes;\n    var blockStyle = preferredStyleVariations[blockName];\n    return actions_objectSpread({}, block, {\n      attributes: actions_objectSpread({}, attributes, {\n        className: \"\".concat(className || '', \" is-style-\").concat(blockStyle).trim()\n      })\n    });\n  });\n}\n/**\n * Returns an action object signalling that a blocks should be replaced with\n * one or more replacement blocks.\n *\n * @param {(string|string[])} clientIds     Block client ID(s) to replace.\n * @param {(Object|Object[])} blocks        Replacement block(s).\n * @param {number}            indexToSelect Index of replacement block to select.\n * @param {number}            initialPosition Index of caret after in the selected block after the operation.\n *\n * @yield {Object} Action object.\n */\n\n\nfunction actions_replaceBlocks(clientIds, blocks, indexToSelect, initialPosition) {\n  var rootClientId, index, block, canInsertBlock;\n  return external_this_regeneratorRuntime_default.a.wrap(function replaceBlocks$(_context4) {\n    while (1) {\n      switch (_context4.prev = _context4.next) {\n        case 0:\n          clientIds = Object(external_this_lodash_[\"castArray\"])(clientIds);\n          _context4.t0 = getBlocksWithDefaultStylesApplied;\n          _context4.t1 = Object(external_this_lodash_[\"castArray\"])(blocks);\n          _context4.next = 5;\n          return controls_select('core/block-editor', 'getSettings');\n\n        case 5:\n          _context4.t2 = _context4.sent;\n          blocks = (0, _context4.t0)(_context4.t1, _context4.t2);\n          _context4.next = 9;\n          return controls_select('core/block-editor', 'getBlockRootClientId', Object(external_this_lodash_[\"first\"])(clientIds));\n\n        case 9:\n          rootClientId = _context4.sent;\n          index = 0;\n\n        case 11:\n          if (!(index < blocks.length)) {\n            _context4.next = 21;\n            break;\n          }\n\n          block = blocks[index];\n          _context4.next = 15;\n          return controls_select('core/block-editor', 'canInsertBlockType', block.name, rootClientId);\n\n        case 15:\n          canInsertBlock = _context4.sent;\n\n          if (canInsertBlock) {\n            _context4.next = 18;\n            break;\n          }\n\n          return _context4.abrupt(\"return\");\n\n        case 18:\n          index++;\n          _context4.next = 11;\n          break;\n\n        case 21:\n          _context4.next = 23;\n          return {\n            type: 'REPLACE_BLOCKS',\n            clientIds: clientIds,\n            blocks: blocks,\n            time: Date.now(),\n            indexToSelect: indexToSelect,\n            initialPosition: initialPosition\n          };\n\n        case 23:\n          return _context4.delegateYield(ensureDefaultBlock(), \"t3\", 24);\n\n        case 24:\n        case \"end\":\n          return _context4.stop();\n      }\n    }\n  }, _marked4);\n}\n/**\n * Returns an action object signalling that a single block should be replaced\n * with one or more replacement blocks.\n *\n * @param {(string|string[])} clientId Block client ID to replace.\n * @param {(Object|Object[])} block    Replacement block(s).\n *\n * @return {Object} Action object.\n */\n\nfunction replaceBlock(clientId, block) {\n  return actions_replaceBlocks(clientId, block);\n}\n/**\n * Higher-order action creator which, given the action type to dispatch creates\n * an action creator for managing block movement.\n *\n * @param {string} type Action type to dispatch.\n *\n * @return {Function} Action creator.\n */\n\nfunction createOnMove(type) {\n  return function (clientIds, rootClientId) {\n    return {\n      clientIds: Object(external_this_lodash_[\"castArray\"])(clientIds),\n      type: type,\n      rootClientId: rootClientId\n    };\n  };\n}\n\nvar actions_moveBlocksDown = createOnMove('MOVE_BLOCKS_DOWN');\nvar actions_moveBlocksUp = createOnMove('MOVE_BLOCKS_UP');\n/**\n * Returns an action object signalling that the given blocks should be moved to\n * a new position.\n *\n * @param  {?string} clientIds        The client IDs of the blocks.\n * @param  {?string} fromRootClientId Root client ID source.\n * @param  {?string} toRootClientId   Root client ID destination.\n * @param  {number}  index            The index to move the blocks to.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_moveBlocksToPosition(clientIds) {\n  var fromRootClientId,\n      toRootClientId,\n      index,\n      templateLock,\n      action,\n      canInsertBlocks,\n      _args5 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function moveBlocksToPosition$(_context5) {\n    while (1) {\n      switch (_context5.prev = _context5.next) {\n        case 0:\n          fromRootClientId = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : '';\n          toRootClientId = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : '';\n          index = _args5.length > 3 ? _args5[3] : undefined;\n          _context5.next = 5;\n          return controls_select('core/block-editor', 'getTemplateLock', fromRootClientId);\n\n        case 5:\n          templateLock = _context5.sent;\n\n          if (!(templateLock === 'all')) {\n            _context5.next = 8;\n            break;\n          }\n\n          return _context5.abrupt(\"return\");\n\n        case 8:\n          action = {\n            type: 'MOVE_BLOCKS_TO_POSITION',\n            fromRootClientId: fromRootClientId,\n            toRootClientId: toRootClientId,\n            clientIds: clientIds,\n            index: index\n          }; // If moving inside the same root block the move is always possible.\n\n          if (!(fromRootClientId === toRootClientId)) {\n            _context5.next = 13;\n            break;\n          }\n\n          _context5.next = 12;\n          return action;\n\n        case 12:\n          return _context5.abrupt(\"return\");\n\n        case 13:\n          if (!(templateLock === 'insert')) {\n            _context5.next = 15;\n            break;\n          }\n\n          return _context5.abrupt(\"return\");\n\n        case 15:\n          _context5.next = 17;\n          return controls_select('core/block-editor', 'canInsertBlocks', clientIds, toRootClientId);\n\n        case 17:\n          canInsertBlocks = _context5.sent;\n\n          if (!canInsertBlocks) {\n            _context5.next = 21;\n            break;\n          }\n\n          _context5.next = 21;\n          return action;\n\n        case 21:\n        case \"end\":\n          return _context5.stop();\n      }\n    }\n  }, _marked5);\n}\n/**\n * Returns an action object signalling that the given block should be moved to a\n * new position.\n *\n * @param  {?string} clientId         The client ID of the block.\n * @param  {?string} fromRootClientId Root client ID source.\n * @param  {?string} toRootClientId   Root client ID destination.\n * @param  {number}  index            The index to move the block to.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_moveBlockToPosition(clientId) {\n  var fromRootClientId,\n      toRootClientId,\n      index,\n      _args6 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function moveBlockToPosition$(_context6) {\n    while (1) {\n      switch (_context6.prev = _context6.next) {\n        case 0:\n          fromRootClientId = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : '';\n          toRootClientId = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : '';\n          index = _args6.length > 3 ? _args6[3] : undefined;\n          _context6.next = 5;\n          return actions_moveBlocksToPosition([clientId], fromRootClientId, toRootClientId, index);\n\n        case 5:\n        case \"end\":\n          return _context6.stop();\n      }\n    }\n  }, _marked6);\n}\n/**\n * Returns an action object used in signalling that a single block should be\n * inserted, optionally at a specific index respective a root block list.\n *\n * @param {Object}  block            Block object to insert.\n * @param {?number} index            Index at which block should be inserted.\n * @param {?string} rootClientId     Optional root client ID of block list on which to insert.\n * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_insertBlock(block, index, rootClientId) {\n  var updateSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  return actions_insertBlocks([block], index, rootClientId, updateSelection);\n}\n/**\n * Returns an action object used in signalling that an array of blocks should\n * be inserted, optionally at a specific index respective a root block list.\n *\n * @param {Object[]} blocks          Block objects to insert.\n * @param {?number}  index           Index at which block should be inserted.\n * @param {?string}  rootClientId    Optional root client ID of block list on which to insert.\n * @param {?boolean} updateSelection If true block selection will be updated.  If false, block selection will not change. Defaults to true.\n *\n *  @return {Object} Action object.\n */\n\nfunction actions_insertBlocks(blocks, index, rootClientId) {\n  var updateSelection,\n      allowedBlocks,\n      _iterator,\n      _step,\n      block,\n      isValid,\n      _args7 = arguments;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function insertBlocks$(_context7) {\n    while (1) {\n      switch (_context7.prev = _context7.next) {\n        case 0:\n          updateSelection = _args7.length > 3 && _args7[3] !== undefined ? _args7[3] : true;\n          _context7.t0 = getBlocksWithDefaultStylesApplied;\n          _context7.t1 = Object(external_this_lodash_[\"castArray\"])(blocks);\n          _context7.next = 5;\n          return controls_select('core/block-editor', 'getSettings');\n\n        case 5:\n          _context7.t2 = _context7.sent;\n          blocks = (0, _context7.t0)(_context7.t1, _context7.t2);\n          allowedBlocks = [];\n          _iterator = actions_createForOfIteratorHelper(blocks);\n          _context7.prev = 9;\n\n          _iterator.s();\n\n        case 11:\n          if ((_step = _iterator.n()).done) {\n            _context7.next = 19;\n            break;\n          }\n\n          block = _step.value;\n          _context7.next = 15;\n          return controls_select('core/block-editor', 'canInsertBlockType', block.name, rootClientId);\n\n        case 15:\n          isValid = _context7.sent;\n\n          if (isValid) {\n            allowedBlocks.push(block);\n          }\n\n        case 17:\n          _context7.next = 11;\n          break;\n\n        case 19:\n          _context7.next = 24;\n          break;\n\n        case 21:\n          _context7.prev = 21;\n          _context7.t3 = _context7[\"catch\"](9);\n\n          _iterator.e(_context7.t3);\n\n        case 24:\n          _context7.prev = 24;\n\n          _iterator.f();\n\n          return _context7.finish(24);\n\n        case 27:\n          if (!allowedBlocks.length) {\n            _context7.next = 29;\n            break;\n          }\n\n          return _context7.abrupt(\"return\", {\n            type: 'INSERT_BLOCKS',\n            blocks: allowedBlocks,\n            index: index,\n            rootClientId: rootClientId,\n            time: Date.now(),\n            updateSelection: updateSelection\n          });\n\n        case 29:\n        case \"end\":\n          return _context7.stop();\n      }\n    }\n  }, _marked7, null, [[9, 21, 24, 27]]);\n}\n/**\n * Returns an action object used in signalling that the insertion point should\n * be shown.\n *\n * @param {?string} rootClientId Optional root client ID of block list on\n *                               which to insert.\n * @param {?number} index        Index at which block should be inserted.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_showInsertionPoint(rootClientId, index) {\n  return {\n    type: 'SHOW_INSERTION_POINT',\n    rootClientId: rootClientId,\n    index: index\n  };\n}\n/**\n * Returns an action object hiding the insertion point.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_hideInsertionPoint() {\n  return {\n    type: 'HIDE_INSERTION_POINT'\n  };\n}\n/**\n * Returns an action object resetting the template validity.\n *\n * @param {boolean}  isValid  template validity flag.\n *\n * @return {Object} Action object.\n */\n\nfunction setTemplateValidity(isValid) {\n  return {\n    type: 'SET_TEMPLATE_VALIDITY',\n    isValid: isValid\n  };\n}\n/**\n * Returns an action object synchronize the template with the list of blocks\n *\n * @return {Object} Action object.\n */\n\nfunction synchronizeTemplate() {\n  return {\n    type: 'SYNCHRONIZE_TEMPLATE'\n  };\n}\n/**\n * Returns an action object used in signalling that two blocks should be merged\n *\n * @param {string} firstBlockClientId  Client ID of the first block to merge.\n * @param {string} secondBlockClientId Client ID of the second block to merge.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_mergeBlocks(firstBlockClientId, secondBlockClientId) {\n  return {\n    type: 'MERGE_BLOCKS',\n    blocks: [firstBlockClientId, secondBlockClientId]\n  };\n}\n/**\n * Yields action objects used in signalling that the blocks corresponding to\n * the set of specified client IDs are to be removed.\n *\n * @param {string|string[]} clientIds      Client IDs of blocks to remove.\n * @param {boolean}         selectPrevious True if the previous block should be\n *                                         selected when a block is removed.\n */\n\nfunction actions_removeBlocks(clientIds) {\n  var selectPrevious,\n      rootClientId,\n      isLocked,\n      previousBlockId,\n      defaultBlockId,\n      _args8 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function removeBlocks$(_context8) {\n    while (1) {\n      switch (_context8.prev = _context8.next) {\n        case 0:\n          selectPrevious = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : true;\n\n          if (!(!clientIds || !clientIds.length)) {\n            _context8.next = 3;\n            break;\n          }\n\n          return _context8.abrupt(\"return\");\n\n        case 3:\n          clientIds = Object(external_this_lodash_[\"castArray\"])(clientIds);\n          _context8.next = 6;\n          return controls_select('core/block-editor', 'getBlockRootClientId', clientIds[0]);\n\n        case 6:\n          rootClientId = _context8.sent;\n          _context8.next = 9;\n          return controls_select('core/block-editor', 'getTemplateLock', rootClientId);\n\n        case 9:\n          isLocked = _context8.sent;\n\n          if (!isLocked) {\n            _context8.next = 12;\n            break;\n          }\n\n          return _context8.abrupt(\"return\");\n\n        case 12:\n          if (!selectPrevious) {\n            _context8.next = 18;\n            break;\n          }\n\n          _context8.next = 15;\n          return selectPreviousBlock(clientIds[0]);\n\n        case 15:\n          previousBlockId = _context8.sent;\n          _context8.next = 21;\n          break;\n\n        case 18:\n          _context8.next = 20;\n          return controls_select('core/block-editor', 'getPreviousBlockClientId', clientIds[0]);\n\n        case 20:\n          previousBlockId = _context8.sent;\n\n        case 21:\n          _context8.next = 23;\n          return {\n            type: 'REMOVE_BLOCKS',\n            clientIds: clientIds\n          };\n\n        case 23:\n          return _context8.delegateYield(ensureDefaultBlock(), \"t0\", 24);\n\n        case 24:\n          defaultBlockId = _context8.t0;\n          return _context8.abrupt(\"return\", [previousBlockId || defaultBlockId]);\n\n        case 26:\n        case \"end\":\n          return _context8.stop();\n      }\n    }\n  }, _marked8);\n}\n/**\n * Returns an action object used in signalling that the block with the\n * specified client ID is to be removed.\n *\n * @param {string}  clientId       Client ID of block to remove.\n * @param {boolean} selectPrevious True if the previous block should be\n *                                 selected when a block is removed.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_removeBlock(clientId, selectPrevious) {\n  return actions_removeBlocks([clientId], selectPrevious);\n}\n/**\n * Returns an action object used in signalling that the inner blocks with the\n * specified client ID should be replaced.\n *\n * @param {string}   rootClientId    Client ID of the block whose InnerBlocks will re replaced.\n * @param {Object[]} blocks          Block objects to insert as new InnerBlocks\n * @param {?boolean} updateSelection If true block selection will be updated. If false, block selection will not change. Defaults to true.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_replaceInnerBlocks(rootClientId, blocks) {\n  var updateSelection = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  return {\n    type: 'REPLACE_INNER_BLOCKS',\n    rootClientId: rootClientId,\n    blocks: blocks,\n    updateSelection: updateSelection,\n    time: Date.now()\n  };\n}\n/**\n * Returns an action object used to toggle the block editing mode between\n * visual and HTML modes.\n *\n * @param {string} clientId Block client ID.\n *\n * @return {Object} Action object.\n */\n\nfunction toggleBlockMode(clientId) {\n  return {\n    type: 'TOGGLE_BLOCK_MODE',\n    clientId: clientId\n  };\n}\n/**\n * Returns an action object used in signalling that the user has begun to type.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_startTyping() {\n  return {\n    type: 'START_TYPING'\n  };\n}\n/**\n * Returns an action object used in signalling that the user has stopped typing.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_stopTyping() {\n  return {\n    type: 'STOP_TYPING'\n  };\n}\n/**\n * Returns an action object used in signalling that the user has begun to drag blocks.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_startDraggingBlocks() {\n  return {\n    type: 'START_DRAGGING_BLOCKS'\n  };\n}\n/**\n * Returns an action object used in signalling that the user has stopped dragging blocks.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_stopDraggingBlocks() {\n  return {\n    type: 'STOP_DRAGGING_BLOCKS'\n  };\n}\n/**\n * Returns an action object used in signalling that the caret has entered formatted text.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_enterFormattedText() {\n  return {\n    type: 'ENTER_FORMATTED_TEXT'\n  };\n}\n/**\n * Returns an action object used in signalling that the user caret has exited formatted text.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_exitFormattedText() {\n  return {\n    type: 'EXIT_FORMATTED_TEXT'\n  };\n}\n/**\n * Returns an action object used in signalling that the user caret has changed\n * position.\n *\n * @param {string} clientId     The selected block client ID.\n * @param {string} attributeKey The selected block attribute key.\n * @param {number} startOffset  The start offset.\n * @param {number} endOffset    The end offset.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_selectionChange(clientId, attributeKey, startOffset, endOffset) {\n  return {\n    type: 'SELECTION_CHANGE',\n    clientId: clientId,\n    attributeKey: attributeKey,\n    startOffset: startOffset,\n    endOffset: endOffset\n  };\n}\n/**\n * Returns an action object used in signalling that a new block of the default\n * type should be added to the block list.\n *\n * @param {?Object} attributes   Optional attributes of the block to assign.\n * @param {?string} rootClientId Optional root client ID of block list on which\n *                               to append.\n * @param {?number} index        Optional index where to insert the default block\n *\n * @return {Object} Action object\n */\n\nfunction actions_insertDefaultBlock(attributes, rootClientId, index) {\n  // Abort if there is no default block type (if it has been unregistered).\n  var defaultBlockName = Object(external_this_wp_blocks_[\"getDefaultBlockName\"])();\n\n  if (!defaultBlockName) {\n    return;\n  }\n\n  var block = Object(external_this_wp_blocks_[\"createBlock\"])(defaultBlockName, attributes);\n  return actions_insertBlock(block, index, rootClientId);\n}\n/**\n * Returns an action object that changes the nested settings of a given block.\n *\n * @param {string} clientId Client ID of the block whose nested setting are\n *                          being received.\n * @param {Object} settings Object with the new settings for the nested block.\n *\n * @return {Object} Action object\n */\n\nfunction actions_updateBlockListSettings(clientId, settings) {\n  return {\n    type: 'UPDATE_BLOCK_LIST_SETTINGS',\n    clientId: clientId,\n    settings: settings\n  };\n}\n/**\n * Returns an action object used in signalling that the block editor settings have been updated.\n *\n * @param {Object} settings Updated settings\n *\n * @return {Object} Action object\n */\n\nfunction actions_updateSettings(settings) {\n  return {\n    type: 'UPDATE_SETTINGS',\n    settings: settings\n  };\n}\n/**\n * Returns an action object used in signalling that a temporary reusable blocks have been saved\n * in order to switch its temporary id with the real id.\n *\n * @param {string} id        Reusable block's id.\n * @param {string} updatedId Updated block's id.\n *\n * @return {Object} Action object.\n */\n\nfunction __unstableSaveReusableBlock(id, updatedId) {\n  return {\n    type: 'SAVE_REUSABLE_BLOCK_SUCCESS',\n    id: id,\n    updatedId: updatedId\n  };\n}\n/**\n * Returns an action object used in signalling that the last block change should be marked explicitely as persistent.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_unstableMarkLastChangeAsPersistent() {\n  return {\n    type: 'MARK_LAST_CHANGE_AS_PERSISTENT'\n  };\n}\n/**\n * Returns an action object used in signalling that the next block change should be marked explicitly as not persistent.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_unstableMarkNextChangeAsNotPersistent() {\n  return {\n    type: 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT'\n  };\n}\n/**\n * Returns an action object used in signalling that the last block change is\n * an automatic change, meaning it was not performed by the user, and can be\n * undone using the `Escape` and `Backspace` keys. This action must be called\n * after the change was made, and any actions that are a consequence of it, so\n * it is recommended to be called at the next idle period to ensure all\n * selection changes have been recorded.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_unstableMarkAutomaticChange() {\n  return {\n    type: 'MARK_AUTOMATIC_CHANGE'\n  };\n}\n/**\n * Generators that triggers an action used to enable or disable the navigation mode.\n *\n * @param {string} isNavigationMode Enable/Disable navigation mode.\n */\n\nfunction actions_setNavigationMode() {\n  var isNavigationMode,\n      _args9 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function setNavigationMode$(_context9) {\n    while (1) {\n      switch (_context9.prev = _context9.next) {\n        case 0:\n          isNavigationMode = _args9.length > 0 && _args9[0] !== undefined ? _args9[0] : true;\n          _context9.next = 3;\n          return {\n            type: 'SET_NAVIGATION_MODE',\n            isNavigationMode: isNavigationMode\n          };\n\n        case 3:\n          if (isNavigationMode) {\n            Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('You are currently in navigation mode. Navigate blocks using the Tab key and Arrow keys. Use Left and Right Arrow keys to move between nesting levels. To exit navigation mode and edit the selected block, press Enter.'));\n          } else {\n            Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('You are currently in edit mode. To return to the navigation mode, press Escape.'));\n          }\n\n        case 4:\n        case \"end\":\n          return _context9.stop();\n      }\n    }\n  }, _marked9);\n}\n/**\n * Generator that triggers an action used to enable or disable the block moving mode.\n *\n * @param {string|null} hasBlockMovingClientId Enable/Disable block moving mode.\n */\n\nfunction actions_setBlockMovingClientId() {\n  var hasBlockMovingClientId,\n      _args10 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function setBlockMovingClientId$(_context10) {\n    while (1) {\n      switch (_context10.prev = _context10.next) {\n        case 0:\n          hasBlockMovingClientId = _args10.length > 0 && _args10[0] !== undefined ? _args10[0] : null;\n          _context10.next = 3;\n          return {\n            type: 'SET_BLOCK_MOVING_MODE',\n            hasBlockMovingClientId: hasBlockMovingClientId\n          };\n\n        case 3:\n          if (hasBlockMovingClientId) {\n            Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('Use the Tab key and Arrow keys to choose new block location. Use Left and Right Arrow keys to move between nesting levels. Once location is selected press Enter or Space to move the block.'));\n          }\n\n        case 4:\n        case \"end\":\n          return _context10.stop();\n      }\n    }\n  }, _marked10);\n}\n/**\n * Generator that triggers an action used to duplicate a list of blocks.\n *\n * @param {string[]} clientIds\n * @param {boolean} updateSelection\n */\n\nfunction actions_duplicateBlocks(clientIds) {\n  var updateSelection,\n      blocks,\n      rootClientId,\n      blockNames,\n      lastSelectedIndex,\n      clonedBlocks,\n      _args11 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function duplicateBlocks$(_context11) {\n    while (1) {\n      switch (_context11.prev = _context11.next) {\n        case 0:\n          updateSelection = _args11.length > 1 && _args11[1] !== undefined ? _args11[1] : true;\n\n          if (!(!clientIds && !clientIds.length)) {\n            _context11.next = 3;\n            break;\n          }\n\n          return _context11.abrupt(\"return\");\n\n        case 3:\n          _context11.next = 5;\n          return controls_select('core/block-editor', 'getBlocksByClientId', clientIds);\n\n        case 5:\n          blocks = _context11.sent;\n          _context11.next = 8;\n          return controls_select('core/block-editor', 'getBlockRootClientId', clientIds[0]);\n\n        case 8:\n          rootClientId = _context11.sent;\n\n          if (!Object(external_this_lodash_[\"some\"])(blocks, function (block) {\n            return !block;\n          })) {\n            _context11.next = 11;\n            break;\n          }\n\n          return _context11.abrupt(\"return\");\n\n        case 11:\n          blockNames = blocks.map(function (block) {\n            return block.name;\n          }); // Return early if blocks don't support multiple usage.\n\n          if (!Object(external_this_lodash_[\"some\"])(blockNames, function (blockName) {\n            return !Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockName, 'multiple', true);\n          })) {\n            _context11.next = 14;\n            break;\n          }\n\n          return _context11.abrupt(\"return\");\n\n        case 14:\n          _context11.next = 16;\n          return controls_select('core/block-editor', 'getBlockIndex', Object(external_this_lodash_[\"last\"])(Object(external_this_lodash_[\"castArray\"])(clientIds)), rootClientId);\n\n        case 16:\n          lastSelectedIndex = _context11.sent;\n          clonedBlocks = blocks.map(function (block) {\n            return Object(external_this_wp_blocks_[\"cloneBlock\"])(block);\n          });\n          _context11.next = 20;\n          return actions_insertBlocks(clonedBlocks, lastSelectedIndex + 1, rootClientId, updateSelection);\n\n        case 20:\n          if (!(clonedBlocks.length > 1 && updateSelection)) {\n            _context11.next = 23;\n            break;\n          }\n\n          _context11.next = 23;\n          return actions_multiSelect(Object(external_this_lodash_[\"first\"])(clonedBlocks).clientId, Object(external_this_lodash_[\"last\"])(clonedBlocks).clientId);\n\n        case 23:\n          return _context11.abrupt(\"return\", clonedBlocks.map(function (block) {\n            return block.clientId;\n          }));\n\n        case 24:\n        case \"end\":\n          return _context11.stop();\n      }\n    }\n  }, _marked11);\n}\n/**\n * Generator used to insert an empty block after a given block.\n *\n * @param {string} clientId\n */\n\nfunction actions_insertBeforeBlock(clientId) {\n  var rootClientId, isLocked, firstSelectedIndex;\n  return external_this_regeneratorRuntime_default.a.wrap(function insertBeforeBlock$(_context12) {\n    while (1) {\n      switch (_context12.prev = _context12.next) {\n        case 0:\n          if (clientId) {\n            _context12.next = 2;\n            break;\n          }\n\n          return _context12.abrupt(\"return\");\n\n        case 2:\n          _context12.next = 4;\n          return controls_select('core/block-editor', 'getBlockRootClientId', clientId);\n\n        case 4:\n          rootClientId = _context12.sent;\n          _context12.next = 7;\n          return controls_select('core/block-editor', 'getTemplateLock', rootClientId);\n\n        case 7:\n          isLocked = _context12.sent;\n\n          if (!isLocked) {\n            _context12.next = 10;\n            break;\n          }\n\n          return _context12.abrupt(\"return\");\n\n        case 10:\n          _context12.next = 12;\n          return controls_select('core/block-editor', 'getBlockIndex', clientId, rootClientId);\n\n        case 12:\n          firstSelectedIndex = _context12.sent;\n          _context12.next = 15;\n          return actions_insertDefaultBlock({}, rootClientId, firstSelectedIndex);\n\n        case 15:\n          return _context12.abrupt(\"return\", _context12.sent);\n\n        case 16:\n        case \"end\":\n          return _context12.stop();\n      }\n    }\n  }, _marked12);\n}\n/**\n * Generator used to insert an empty block before a given block.\n *\n * @param {string} clientId\n */\n\nfunction actions_insertAfterBlock(clientId) {\n  var rootClientId, isLocked, firstSelectedIndex;\n  return external_this_regeneratorRuntime_default.a.wrap(function insertAfterBlock$(_context13) {\n    while (1) {\n      switch (_context13.prev = _context13.next) {\n        case 0:\n          if (clientId) {\n            _context13.next = 2;\n            break;\n          }\n\n          return _context13.abrupt(\"return\");\n\n        case 2:\n          _context13.next = 4;\n          return controls_select('core/block-editor', 'getBlockRootClientId', clientId);\n\n        case 4:\n          rootClientId = _context13.sent;\n          _context13.next = 7;\n          return controls_select('core/block-editor', 'getTemplateLock', rootClientId);\n\n        case 7:\n          isLocked = _context13.sent;\n\n          if (!isLocked) {\n            _context13.next = 10;\n            break;\n          }\n\n          return _context13.abrupt(\"return\");\n\n        case 10:\n          _context13.next = 12;\n          return controls_select('core/block-editor', 'getBlockIndex', clientId, rootClientId);\n\n        case 12:\n          firstSelectedIndex = _context13.sent;\n          _context13.next = 15;\n          return actions_insertDefaultBlock({}, rootClientId, firstSelectedIndex + 1);\n\n        case 15:\n          return _context13.abrupt(\"return\", _context13.sent);\n\n        case 16:\n        case \"end\":\n          return _context13.stop();\n      }\n    }\n  }, _marked13);\n}\n/**\n * Returns an action object that toggles the highlighted block state.\n *\n * @param {string} clientId The block's clientId.\n * @param {boolean} isHighlighted The highlight state.\n */\n\nfunction actions_toggleBlockHighlight(clientId, isHighlighted) {\n  return {\n    type: 'TOGGLE_BLOCK_HIGHLIGHT',\n    clientId: clientId,\n    isHighlighted: isHighlighted\n  };\n}\n/**\n * Yields action objects used in signalling that the block corresponding to the\n * given clientId should appear to \"flash\" by rhythmically highlighting it.\n *\n * @param {string} clientId Target block client ID.\n */\n\nfunction actions_flashBlock(clientId) {\n  return external_this_regeneratorRuntime_default.a.wrap(function flashBlock$(_context14) {\n    while (1) {\n      switch (_context14.prev = _context14.next) {\n        case 0:\n          _context14.next = 2;\n          return actions_toggleBlockHighlight(clientId, true);\n\n        case 2:\n          _context14.next = 4;\n          return {\n            type: 'SLEEP',\n            duration: 150\n          };\n\n        case 4:\n          _context14.next = 6;\n          return actions_toggleBlockHighlight(clientId, false);\n\n        case 6:\n        case \"end\":\n          return _context14.stop();\n      }\n    }\n  }, _marked14);\n}\n/**\n * Returns an action object that sets whether the block has controlled innerblocks.\n *\n * @param {string} clientId The block's clientId.\n * @param {boolean} hasControlledInnerBlocks True if the block's inner blocks are controlled.\n */\n\nfunction actions_setHasControlledInnerBlocks(clientId, hasControlledInnerBlocks) {\n  return {\n    type: 'SET_HAS_CONTROLLED_INNER_BLOCKS',\n    hasControlledInnerBlocks: hasControlledInnerBlocks,\n    clientId: clientId\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/selectors.js\n\n\n\n\nfunction selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * A block selection object.\n *\n * @typedef {Object} WPBlockSelection\n *\n * @property {string} clientId     A block client ID.\n * @property {string} attributeKey A block attribute key.\n * @property {number} offset       An attribute value offset, based on the rich\n *                                 text value. See `wp.richText.create`.\n */\n// Module constants\n\nvar MILLISECONDS_PER_HOUR = 3600 * 1000;\nvar MILLISECONDS_PER_DAY = 24 * 3600 * 1000;\nvar MILLISECONDS_PER_WEEK = 7 * 24 * 3600 * 1000;\nvar templateIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Rect\"], {\n  x: \"0\",\n  fill: \"none\",\n  width: \"24\",\n  height: \"24\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"G\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z\"\n})));\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n *\n * @type {Array}\n */\n\nvar selectors_EMPTY_ARRAY = [];\n/**\n * Returns a block's name given its client ID, or null if no block exists with\n * the client ID.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {string} Block name.\n */\n\nfunction selectors_getBlockName(state, clientId) {\n  var block = state.blocks.byClientId[clientId];\n  return block ? block.name : null;\n}\n/**\n * Returns whether a block is valid or not.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Is Valid.\n */\n\nfunction selectors_isBlockValid(state, clientId) {\n  var block = state.blocks.byClientId[clientId];\n  return !!block && block.isValid;\n}\n/**\n * Returns a block's attributes given its client ID, or null if no block exists with\n * the client ID.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {Object?} Block attributes.\n */\n\nfunction getBlockAttributes(state, clientId) {\n  var block = state.blocks.byClientId[clientId];\n\n  if (!block) {\n    return null;\n  }\n\n  return state.blocks.attributes[clientId];\n}\n/**\n * Returns a block given its client ID. This is a parsed copy of the block,\n * containing its `blockName`, `clientId`, and current `attributes` state. This\n * is not the block's registration settings, which must be retrieved from the\n * blocks module registration store.\n *\n * getBlock recurses through its inner blocks until all its children blocks have\n * been retrieved. Note that getBlock will not return the child inner blocks of\n * an inner block controller. This is because an inner block controller syncs\n * itself with its own entity, and should therefore not be included with the\n * blocks of a different entity. For example, say you call `getBlocks( TP )` to\n * get the blocks of a template part. If another template part is a child of TP,\n * then the nested template part's child blocks will not be returned. This way,\n * the template block itself is considered part of the parent, but the children\n * are not.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {Object} Parsed block object.\n */\n\nvar selectors_getBlock = Object(rememo[\"a\" /* default */])(function (state, clientId) {\n  var block = state.blocks.byClientId[clientId];\n\n  if (!block) {\n    return null;\n  }\n\n  return selectors_objectSpread({}, block, {\n    attributes: getBlockAttributes(state, clientId),\n    innerBlocks: areInnerBlocksControlled(state, clientId) ? selectors_EMPTY_ARRAY : selectors_getBlocks(state, clientId)\n  });\n}, function (state, clientId) {\n  return [// Normally, we'd have both `getBlockAttributes` dependencies and\n  // `getBlocks` (children) dependancies here but for performance reasons\n  // we use a denormalized cache key computed in the reducer that takes both\n  // the attributes and inner blocks into account. The value of the cache key\n  // is being changed whenever one of these dependencies is out of date.\n  state.blocks.cache[clientId]];\n});\nvar selectors_unstableGetBlockWithoutInnerBlocks = Object(rememo[\"a\" /* default */])(function (state, clientId) {\n  var block = state.blocks.byClientId[clientId];\n\n  if (!block) {\n    return null;\n  }\n\n  return selectors_objectSpread({}, block, {\n    attributes: getBlockAttributes(state, clientId)\n  });\n}, function (state, clientId) {\n  return [state.blocks.byClientId[clientId], state.blocks.attributes[clientId]];\n});\n/**\n * Returns all block objects for the current post being edited as an array in\n * the order they appear in the post. Note that this will exclude child blocks\n * of nested inner block controllers.\n *\n * Note: It's important to memoize this selector to avoid return a new instance\n * on each call. We use the block cache state for each top-level block of the\n * given clientID. This way, the selector only refreshes on changes to blocks\n * associated with the given entity, and does not refresh when changes are made\n * to blocks which are part of different inner block controllers.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {Object[]} Post blocks.\n */\n\nvar selectors_getBlocks = Object(rememo[\"a\" /* default */])(function (state, rootClientId) {\n  return Object(external_this_lodash_[\"map\"])(selectors_getBlockOrder(state, rootClientId), function (clientId) {\n    return selectors_getBlock(state, clientId);\n  });\n}, function (state, rootClientId) {\n  return Object(external_this_lodash_[\"map\"])(state.blocks.order[rootClientId || ''], function (id) {\n    return state.blocks.cache[id];\n  });\n});\n/**\n * Returns an array containing the clientIds of all descendants\n * of the blocks given.\n *\n * @param {Object} state Global application state.\n * @param {Array} clientIds Array of blocks to inspect.\n *\n * @return {Array} ids of descendants.\n */\n\nvar selectors_getClientIdsOfDescendants = function getClientIdsOfDescendants(state, clientIds) {\n  return Object(external_this_lodash_[\"flatMap\"])(clientIds, function (clientId) {\n    var descendants = selectors_getBlockOrder(state, clientId);\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(descendants), Object(toConsumableArray[\"a\" /* default */])(getClientIdsOfDescendants(state, descendants)));\n  });\n};\n/**\n * Returns an array containing the clientIds of the top-level blocks\n * and their descendants of any depth (for nested blocks).\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} ids of top-level and descendant blocks.\n */\n\nvar getClientIdsWithDescendants = Object(rememo[\"a\" /* default */])(function (state) {\n  var topLevelIds = selectors_getBlockOrder(state);\n  return [].concat(Object(toConsumableArray[\"a\" /* default */])(topLevelIds), Object(toConsumableArray[\"a\" /* default */])(selectors_getClientIdsOfDescendants(state, topLevelIds)));\n}, function (state) {\n  return [state.blocks.order];\n});\n/**\n * Returns the total number of blocks, or the total number of blocks with a specific name in a post.\n * The number returned includes nested blocks.\n *\n * @param {Object}  state     Global application state.\n * @param {?string} blockName Optional block name, if specified only blocks of that type will be counted.\n *\n * @return {number} Number of blocks in the post, or number of blocks with name equal to blockName.\n */\n\nvar getGlobalBlockCount = Object(rememo[\"a\" /* default */])(function (state, blockName) {\n  var clientIds = getClientIdsWithDescendants(state);\n\n  if (!blockName) {\n    return clientIds.length;\n  }\n\n  return Object(external_this_lodash_[\"reduce\"])(clientIds, function (accumulator, clientId) {\n    var block = state.blocks.byClientId[clientId];\n    return block.name === blockName ? accumulator + 1 : accumulator;\n  }, 0);\n}, function (state) {\n  return [state.blocks.order, state.blocks.byClientId];\n});\n/**\n * Given an array of block client IDs, returns the corresponding array of block\n * objects.\n *\n * @param {Object}   state     Editor state.\n * @param {string[]} clientIds Client IDs for which blocks are to be returned.\n *\n * @return {WPBlock[]} Block objects.\n */\n\nvar selectors_getBlocksByClientId = Object(rememo[\"a\" /* default */])(function (state, clientIds) {\n  return Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"castArray\"])(clientIds), function (clientId) {\n    return selectors_getBlock(state, clientId);\n  });\n}, function (state) {\n  return [state.blocks.byClientId, state.blocks.order, state.blocks.attributes];\n});\n/**\n * Returns the number of blocks currently present in the post.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {number} Number of blocks in the post.\n */\n\nfunction selectors_getBlockCount(state, rootClientId) {\n  return selectors_getBlockOrder(state, rootClientId).length;\n}\n/**\n * Returns the current selection start block client ID, attribute key and text\n * offset.\n *\n * @param {Object} state Block editor state.\n *\n * @return {WPBlockSelection} Selection start information.\n */\n\nfunction selectors_getSelectionStart(state) {\n  return state.selectionStart;\n}\n/**\n * Returns the current selection end block client ID, attribute key and text\n * offset.\n *\n * @param {Object} state Block editor state.\n *\n * @return {WPBlockSelection} Selection end information.\n */\n\nfunction selectors_getSelectionEnd(state) {\n  return state.selectionEnd;\n}\n/**\n * Returns the current block selection start. This value may be null, and it\n * may represent either a singular block selection or multi-selection start.\n * A selection is singular if its start and end match.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Client ID of block selection start.\n */\n\nfunction getBlockSelectionStart(state) {\n  return state.selectionStart.clientId;\n}\n/**\n * Returns the current block selection end. This value may be null, and it\n * may represent either a singular block selection or multi-selection end.\n * A selection is singular if its start and end match.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Client ID of block selection end.\n */\n\nfunction selectors_getBlockSelectionEnd(state) {\n  return state.selectionEnd.clientId;\n}\n/**\n * Returns the number of blocks currently selected in the post.\n *\n * @param {Object} state Global application state.\n *\n * @return {number} Number of blocks selected in the post.\n */\n\nfunction selectors_getSelectedBlockCount(state) {\n  var multiSelectedBlockCount = getMultiSelectedBlockClientIds(state).length;\n\n  if (multiSelectedBlockCount) {\n    return multiSelectedBlockCount;\n  }\n\n  return state.selectionStart.clientId ? 1 : 0;\n}\n/**\n * Returns true if there is a single selected block, or false otherwise.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether a single block is selected.\n */\n\nfunction hasSelectedBlock(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n  return !!selectionStart.clientId && selectionStart.clientId === selectionEnd.clientId;\n}\n/**\n * Returns the currently selected block client ID, or null if there is no\n * selected block.\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} Selected block client ID.\n */\n\nfunction selectors_getSelectedBlockClientId(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n  var clientId = selectionStart.clientId;\n\n  if (!clientId || clientId !== selectionEnd.clientId) {\n    return null;\n  }\n\n  return clientId;\n}\n/**\n * Returns the currently selected block, or null if there is no selected block.\n *\n * @param {Object} state Global application state.\n *\n * @return {?Object} Selected block.\n */\n\nfunction selectors_getSelectedBlock(state) {\n  var clientId = selectors_getSelectedBlockClientId(state);\n  return clientId ? selectors_getBlock(state, clientId) : null;\n}\n/**\n * Given a block client ID, returns the root block from which the block is\n * nested, an empty string for top-level blocks, or null if the block does not\n * exist.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block from which to find root client ID.\n *\n * @return {?string} Root client ID, if exists\n */\n\nfunction selectors_getBlockRootClientId(state, clientId) {\n  return state.blocks.parents[clientId] !== undefined ? state.blocks.parents[clientId] : null;\n}\n/**\n * Given a block client ID, returns the list of all its parents from top to bottom.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block from which to find root client ID.\n * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false).\n *\n * @return {Array} ClientIDs of the parent blocks.\n */\n\nvar selectors_getBlockParents = Object(rememo[\"a\" /* default */])(function (state, clientId) {\n  var ascending = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  var parents = [];\n  var current = clientId;\n\n  while (!!state.blocks.parents[current]) {\n    current = state.blocks.parents[current];\n    parents.push(current);\n  }\n\n  return ascending ? parents : parents.reverse();\n}, function (state) {\n  return [state.blocks.parents];\n});\n/**\n * Given a block client ID and a block name,\n * returns the list of all its parents from top to bottom,\n * filtered by the given name.\n *\n * @param {Object} state     Editor state.\n * @param {string} clientId  Block from which to find root client ID.\n * @param {string} blockName Block name to filter.\n * @param {boolean} ascending Order results from bottom to top (true) or top to bottom (false).\n *\n * @return {Array} ClientIDs of the parent blocks.\n */\n\nvar getBlockParentsByBlockName = Object(rememo[\"a\" /* default */])(function (state, clientId, blockName) {\n  var ascending = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var parents = selectors_getBlockParents(state, clientId, ascending);\n  return Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"filter\"])(Object(external_this_lodash_[\"map\"])(parents, function (id) {\n    return {\n      id: id,\n      name: selectors_getBlockName(state, id)\n    };\n  }), {\n    name: blockName\n  }), function (_ref) {\n    var id = _ref.id;\n    return id;\n  });\n}, function (state) {\n  return [state.blocks.parents];\n});\n/**\n * Given a block client ID, returns the root of the hierarchy from which the block is nested, return the block itself for root level blocks.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block from which to find root client ID.\n *\n * @return {string} Root client ID\n */\n\nfunction getBlockHierarchyRootClientId(state, clientId) {\n  var current = clientId;\n  var parent;\n\n  do {\n    parent = current;\n    current = state.blocks.parents[current];\n  } while (current);\n\n  return parent;\n}\n/**\n * Given a block client ID, returns the lowest common ancestor with selected client ID.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block from which to find common ancestor client ID.\n *\n * @return {string} Common ancestor client ID or undefined\n */\n\nfunction getLowestCommonAncestorWithSelectedBlock(state, clientId) {\n  var selectedId = selectors_getSelectedBlockClientId(state);\n  var clientParents = [].concat(Object(toConsumableArray[\"a\" /* default */])(selectors_getBlockParents(state, clientId)), [clientId]);\n  var selectedParents = [].concat(Object(toConsumableArray[\"a\" /* default */])(selectors_getBlockParents(state, selectedId)), [selectedId]);\n  var lowestCommonAncestor;\n  var maxDepth = Math.min(clientParents.length, selectedParents.length);\n\n  for (var index = 0; index < maxDepth; index++) {\n    if (clientParents[index] === selectedParents[index]) {\n      lowestCommonAncestor = clientParents[index];\n    } else {\n      break;\n    }\n  }\n\n  return lowestCommonAncestor;\n}\n/**\n * Returns the client ID of the block adjacent one at the given reference\n * startClientId and modifier directionality. Defaults start startClientId to\n * the selected block, and direction as next block. Returns null if there is no\n * adjacent block.\n *\n * @param {Object}  state         Editor state.\n * @param {?string} startClientId Optional client ID of block from which to\n *                                search.\n * @param {?number} modifier      Directionality multiplier (1 next, -1\n *                                previous).\n *\n * @return {?string} Return the client ID of the block, or null if none exists.\n */\n\nfunction getAdjacentBlockClientId(state, startClientId) {\n  var modifier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n  // Default to selected block.\n  if (startClientId === undefined) {\n    startClientId = selectors_getSelectedBlockClientId(state);\n  } // Try multi-selection starting at extent based on modifier.\n\n\n  if (startClientId === undefined) {\n    if (modifier < 0) {\n      startClientId = selectors_getFirstMultiSelectedBlockClientId(state);\n    } else {\n      startClientId = getLastMultiSelectedBlockClientId(state);\n    }\n  } // Validate working start client ID.\n\n\n  if (!startClientId) {\n    return null;\n  } // Retrieve start block root client ID, being careful to allow the falsey\n  // empty string top-level root by explicitly testing against null.\n\n\n  var rootClientId = selectors_getBlockRootClientId(state, startClientId);\n\n  if (rootClientId === null) {\n    return null;\n  }\n\n  var order = state.blocks.order;\n  var orderSet = order[rootClientId];\n  var index = orderSet.indexOf(startClientId);\n  var nextIndex = index + 1 * modifier; // Block was first in set and we're attempting to get previous.\n\n  if (nextIndex < 0) {\n    return null;\n  } // Block was last in set and we're attempting to get next.\n\n\n  if (nextIndex === orderSet.length) {\n    return null;\n  } // Assume incremented index is within the set.\n\n\n  return orderSet[nextIndex];\n}\n/**\n * Returns the previous block's client ID from the given reference start ID.\n * Defaults start to the selected block. Returns null if there is no previous\n * block.\n *\n * @param {Object}  state         Editor state.\n * @param {?string} startClientId Optional client ID of block from which to\n *                                search.\n *\n * @return {?string} Adjacent block's client ID, or null if none exists.\n */\n\nfunction getPreviousBlockClientId(state, startClientId) {\n  return getAdjacentBlockClientId(state, startClientId, -1);\n}\n/**\n * Returns the next block's client ID from the given reference start ID.\n * Defaults start to the selected block. Returns null if there is no next\n * block.\n *\n * @param {Object}  state         Editor state.\n * @param {?string} startClientId Optional client ID of block from which to\n *                                search.\n *\n * @return {?string} Adjacent block's client ID, or null if none exists.\n */\n\nfunction getNextBlockClientId(state, startClientId) {\n  return getAdjacentBlockClientId(state, startClientId, 1);\n}\n/**\n * Returns the initial caret position for the selected block.\n * This position is to used to position the caret properly when the selected block changes.\n *\n * @param {Object} state Global application state.\n *\n * @return {?Object} Selected block.\n */\n\nfunction getSelectedBlocksInitialCaretPosition(state) {\n  return state.initialPosition;\n}\n/**\n * Returns the current selection set of block client IDs (multiselection or single selection).\n *\n * @param {Object} state Editor state.\n *\n * @return {Array} Multi-selected block client IDs.\n */\n\nvar selectors_getSelectedBlockClientIds = Object(rememo[\"a\" /* default */])(function (state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n\n  if (selectionStart.clientId === undefined || selectionEnd.clientId === undefined) {\n    return selectors_EMPTY_ARRAY;\n  }\n\n  if (selectionStart.clientId === selectionEnd.clientId) {\n    return [selectionStart.clientId];\n  } // Retrieve root client ID to aid in retrieving relevant nested block\n  // order, being careful to allow the falsey empty string top-level root\n  // by explicitly testing against null.\n\n\n  var rootClientId = selectors_getBlockRootClientId(state, selectionStart.clientId);\n\n  if (rootClientId === null) {\n    return selectors_EMPTY_ARRAY;\n  }\n\n  var blockOrder = selectors_getBlockOrder(state, rootClientId);\n  var startIndex = blockOrder.indexOf(selectionStart.clientId);\n  var endIndex = blockOrder.indexOf(selectionEnd.clientId);\n\n  if (startIndex > endIndex) {\n    return blockOrder.slice(endIndex, startIndex + 1);\n  }\n\n  return blockOrder.slice(startIndex, endIndex + 1);\n}, function (state) {\n  return [state.blocks.order, state.selectionStart.clientId, state.selectionEnd.clientId];\n});\n/**\n * Returns the current multi-selection set of block client IDs, or an empty\n * array if there is no multi-selection.\n *\n * @param {Object} state Editor state.\n *\n * @return {Array} Multi-selected block client IDs.\n */\n\nfunction getMultiSelectedBlockClientIds(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n\n  if (selectionStart.clientId === selectionEnd.clientId) {\n    return selectors_EMPTY_ARRAY;\n  }\n\n  return selectors_getSelectedBlockClientIds(state);\n}\n/**\n * Returns the current multi-selection set of blocks, or an empty array if\n * there is no multi-selection.\n *\n * @param {Object} state Editor state.\n *\n * @return {Array} Multi-selected block objects.\n */\n\nvar getMultiSelectedBlocks = Object(rememo[\"a\" /* default */])(function (state) {\n  var multiSelectedBlockClientIds = getMultiSelectedBlockClientIds(state);\n\n  if (!multiSelectedBlockClientIds.length) {\n    return selectors_EMPTY_ARRAY;\n  }\n\n  return multiSelectedBlockClientIds.map(function (clientId) {\n    return selectors_getBlock(state, clientId);\n  });\n}, function (state) {\n  return [].concat(Object(toConsumableArray[\"a\" /* default */])(selectors_getSelectedBlockClientIds.getDependants(state)), [state.blocks.byClientId, state.blocks.order, state.blocks.attributes]);\n});\n/**\n * Returns the client ID of the first block in the multi-selection set, or null\n * if there is no multi-selection.\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} First block client ID in the multi-selection set.\n */\n\nfunction selectors_getFirstMultiSelectedBlockClientId(state) {\n  return Object(external_this_lodash_[\"first\"])(getMultiSelectedBlockClientIds(state)) || null;\n}\n/**\n * Returns the client ID of the last block in the multi-selection set, or null\n * if there is no multi-selection.\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} Last block client ID in the multi-selection set.\n */\n\nfunction getLastMultiSelectedBlockClientId(state) {\n  return Object(external_this_lodash_[\"last\"])(getMultiSelectedBlockClientIds(state)) || null;\n}\n/**\n * Returns true if a multi-selection exists, and the block corresponding to the\n * specified client ID is the first block of the multi-selection set, or false\n * otherwise.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Whether block is first in multi-selection.\n */\n\nfunction isFirstMultiSelectedBlock(state, clientId) {\n  return selectors_getFirstMultiSelectedBlockClientId(state) === clientId;\n}\n/**\n * Returns true if the client ID occurs within the block multi-selection, or\n * false otherwise.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Whether block is in multi-selection set.\n */\n\nfunction isBlockMultiSelected(state, clientId) {\n  return getMultiSelectedBlockClientIds(state).indexOf(clientId) !== -1;\n}\n/**\n * Returns true if an ancestor of the block is multi-selected, or false\n * otherwise.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Whether an ancestor of the block is in multi-selection\n *                   set.\n */\n\nvar isAncestorMultiSelected = Object(rememo[\"a\" /* default */])(function (state, clientId) {\n  var ancestorClientId = clientId;\n  var isMultiSelected = false;\n\n  while (ancestorClientId && !isMultiSelected) {\n    ancestorClientId = selectors_getBlockRootClientId(state, ancestorClientId);\n    isMultiSelected = isBlockMultiSelected(state, ancestorClientId);\n  }\n\n  return isMultiSelected;\n}, function (state) {\n  return [state.blocks.order, state.selectionStart.clientId, state.selectionEnd.clientId];\n});\n/**\n * Returns the client ID of the block which begins the multi-selection set, or\n * null if there is no multi-selection.\n *\n * This is not necessarily the first client ID in the selection.\n *\n * @see getFirstMultiSelectedBlockClientId\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} Client ID of block beginning multi-selection.\n */\n\nfunction getMultiSelectedBlocksStartClientId(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n\n  if (selectionStart.clientId === selectionEnd.clientId) {\n    return null;\n  }\n\n  return selectionStart.clientId || null;\n}\n/**\n * Returns the client ID of the block which ends the multi-selection set, or\n * null if there is no multi-selection.\n *\n * This is not necessarily the last client ID in the selection.\n *\n * @see getLastMultiSelectedBlockClientId\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} Client ID of block ending multi-selection.\n */\n\nfunction getMultiSelectedBlocksEndClientId(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n\n  if (selectionStart.clientId === selectionEnd.clientId) {\n    return null;\n  }\n\n  return selectionEnd.clientId || null;\n}\n/**\n * Returns an array containing all block client IDs in the editor in the order\n * they appear. Optionally accepts a root client ID of the block list for which\n * the order should be returned, defaulting to the top-level block order.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {Array} Ordered client IDs of editor blocks.\n */\n\nfunction selectors_getBlockOrder(state, rootClientId) {\n  return state.blocks.order[rootClientId || ''] || selectors_EMPTY_ARRAY;\n}\n/**\n * Returns the index at which the block corresponding to the specified client\n * ID occurs within the block order, or `-1` if the block does not exist.\n *\n * @param {Object}  state        Editor state.\n * @param {string}  clientId     Block client ID.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {number} Index at which block exists in order.\n */\n\nfunction selectors_getBlockIndex(state, clientId, rootClientId) {\n  return selectors_getBlockOrder(state, rootClientId).indexOf(clientId);\n}\n/**\n * Returns true if the block corresponding to the specified client ID is\n * currently selected and no multi-selection exists, or false otherwise.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Whether block is selected and multi-selection exists.\n */\n\nfunction isBlockSelected(state, clientId) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n\n  if (selectionStart.clientId !== selectionEnd.clientId) {\n    return false;\n  }\n\n  return selectionStart.clientId === clientId;\n}\n/**\n * Returns true if one of the block's inner blocks is selected.\n *\n * @param {Object}  state    Editor state.\n * @param {string}  clientId Block client ID.\n * @param {boolean} deep     Perform a deep check.\n *\n * @return {boolean} Whether the block as an inner block selected\n */\n\nfunction hasSelectedInnerBlock(state, clientId) {\n  var deep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  return Object(external_this_lodash_[\"some\"])(selectors_getBlockOrder(state, clientId), function (innerClientId) {\n    return isBlockSelected(state, innerClientId) || isBlockMultiSelected(state, innerClientId) || deep && hasSelectedInnerBlock(state, innerClientId, deep);\n  });\n}\n/**\n * Returns true if the block corresponding to the specified client ID is\n * currently selected but isn't the last of the selected blocks. Here \"last\"\n * refers to the block sequence in the document, _not_ the sequence of\n * multi-selection, which is why `state.selectionEnd` isn't used.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {boolean} Whether block is selected and not the last in the\n *                   selection.\n */\n\nfunction isBlockWithinSelection(state, clientId) {\n  if (!clientId) {\n    return false;\n  }\n\n  var clientIds = getMultiSelectedBlockClientIds(state);\n  var index = clientIds.indexOf(clientId);\n  return index > -1 && index < clientIds.length - 1;\n}\n/**\n * Returns true if a multi-selection has been made, or false otherwise.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether multi-selection has been made.\n */\n\nfunction selectors_hasMultiSelection(state) {\n  var selectionStart = state.selectionStart,\n      selectionEnd = state.selectionEnd;\n  return selectionStart.clientId !== selectionEnd.clientId;\n}\n/**\n * Whether in the process of multi-selecting or not. This flag is only true\n * while the multi-selection is being selected (by mouse move), and is false\n * once the multi-selection has been settled.\n *\n * @see hasMultiSelection\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if multi-selecting, false if not.\n */\n\nfunction selectors_isMultiSelecting(state) {\n  return state.isMultiSelecting;\n}\n/**\n * Selector that returns if multi-selection is enabled or not.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} True if it should be possible to multi-select blocks, false if multi-selection is disabled.\n */\n\nfunction selectors_isSelectionEnabled(state) {\n  return state.isSelectionEnabled;\n}\n/**\n * Returns the block's editing mode, defaulting to \"visual\" if not explicitly\n * assigned.\n *\n * @param {Object} state    Editor state.\n * @param {string} clientId Block client ID.\n *\n * @return {Object} Block editing mode.\n */\n\nfunction selectors_getBlockMode(state, clientId) {\n  return state.blocksMode[clientId] || 'visual';\n}\n/**\n * Returns true if the user is typing, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether user is typing.\n */\n\nfunction selectors_isTyping(state) {\n  return state.isTyping;\n}\n/**\n * Returns true if the user is dragging blocks, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether user is dragging blocks.\n */\n\nfunction selectors_isDraggingBlocks(state) {\n  return state.isDraggingBlocks;\n}\n/**\n * Returns true if the caret is within formatted text, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the caret is within formatted text.\n */\n\nfunction selectors_isCaretWithinFormattedText(state) {\n  return state.isCaretWithinFormattedText;\n}\n/**\n * Returns the insertion point, the index at which the new inserted block would\n * be placed. Defaults to the last index.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} Insertion point object with `rootClientId`, `index`.\n */\n\nfunction getBlockInsertionPoint(state) {\n  var rootClientId, index;\n  var insertionPoint = state.insertionPoint,\n      selectionEnd = state.selectionEnd;\n\n  if (insertionPoint !== null) {\n    return insertionPoint;\n  }\n\n  var clientId = selectionEnd.clientId;\n\n  if (clientId) {\n    rootClientId = selectors_getBlockRootClientId(state, clientId) || undefined;\n    index = selectors_getBlockIndex(state, selectionEnd.clientId, rootClientId) + 1;\n  } else {\n    index = selectors_getBlockOrder(state).length;\n  }\n\n  return {\n    rootClientId: rootClientId,\n    index: index\n  };\n}\n/**\n * Returns true if we should show the block insertion point.\n *\n * @param {Object} state Global application state.\n *\n * @return {?boolean} Whether the insertion point is visible or not.\n */\n\nfunction isBlockInsertionPointVisible(state) {\n  return state.insertionPoint !== null;\n}\n/**\n * Returns whether the blocks matches the template or not.\n *\n * @param {boolean} state\n * @return {?boolean} Whether the template is valid or not.\n */\n\nfunction isValidTemplate(state) {\n  return state.template.isValid;\n}\n/**\n * Returns the defined block template\n *\n * @param {boolean} state\n * @return {?Array}        Block Template\n */\n\nfunction getTemplate(state) {\n  return state.settings.template;\n}\n/**\n * Returns the defined block template lock. Optionally accepts a root block\n * client ID as context, otherwise defaulting to the global context.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional block root client ID.\n *\n * @return {?string} Block Template Lock\n */\n\nfunction selectors_getTemplateLock(state, rootClientId) {\n  if (!rootClientId) {\n    return state.settings.templateLock;\n  }\n\n  var blockListSettings = selectors_getBlockListSettings(state, rootClientId);\n\n  if (!blockListSettings) {\n    return null;\n  }\n\n  return blockListSettings.templateLock;\n}\n/**\n * Determines if the given block type is allowed to be inserted into the block list.\n * This function is not exported and not memoized because using a memoized selector\n * inside another memoized selector is just a waste of time.\n *\n * @param {Object}  state        Editor state.\n * @param {string}  blockName    The name of the block type, e.g.' core/paragraph'.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {boolean} Whether the given block type is allowed to be inserted.\n */\n\nvar selectors_canInsertBlockTypeUnmemoized = function canInsertBlockTypeUnmemoized(state, blockName) {\n  var rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  var checkAllowList = function checkAllowList(list, item) {\n    var defaultResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    if (Object(external_this_lodash_[\"isBoolean\"])(list)) {\n      return list;\n    }\n\n    if (Object(external_this_lodash_[\"isArray\"])(list)) {\n      // TODO: when there is a canonical way to detect that we are editing a post\n      // the following check should be changed to something like:\n      // if ( list.includes( 'core/post-content' ) && getEditorMode() === 'post-content' && item === null )\n      if (list.includes('core/post-content') && item === null) {\n        return true;\n      }\n\n      return list.includes(item);\n    }\n\n    return defaultResult;\n  };\n\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(blockName);\n\n  if (!blockType) {\n    return false;\n  }\n\n  var _getSettings = selectors_getSettings(state),\n      allowedBlockTypes = _getSettings.allowedBlockTypes;\n\n  var isBlockAllowedInEditor = checkAllowList(allowedBlockTypes, blockName, true);\n\n  if (!isBlockAllowedInEditor) {\n    return false;\n  }\n\n  var isLocked = !!selectors_getTemplateLock(state, rootClientId);\n\n  if (isLocked) {\n    return false;\n  }\n\n  var parentBlockListSettings = selectors_getBlockListSettings(state, rootClientId);\n  var parentAllowedBlocks = Object(external_this_lodash_[\"get\"])(parentBlockListSettings, ['allowedBlocks']);\n  var hasParentAllowedBlock = checkAllowList(parentAllowedBlocks, blockName);\n  var blockAllowedParentBlocks = blockType.parent;\n  var parentName = selectors_getBlockName(state, rootClientId);\n  var hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName);\n\n  if (hasParentAllowedBlock !== null && hasBlockAllowedParent !== null) {\n    return hasParentAllowedBlock || hasBlockAllowedParent;\n  } else if (hasParentAllowedBlock !== null) {\n    return hasParentAllowedBlock;\n  } else if (hasBlockAllowedParent !== null) {\n    return hasBlockAllowedParent;\n  }\n\n  return true;\n};\n/**\n * Determines if the given block type is allowed to be inserted into the block list.\n *\n * @param {Object}  state        Editor state.\n * @param {string}  blockName    The name of the block type, e.g.' core/paragraph'.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {boolean} Whether the given block type is allowed to be inserted.\n */\n\n\nvar selectors_canInsertBlockType = Object(rememo[\"a\" /* default */])(selectors_canInsertBlockTypeUnmemoized, function (state, blockName, rootClientId) {\n  return [state.blockListSettings[rootClientId], state.blocks.byClientId[rootClientId], state.settings.allowedBlockTypes, state.settings.templateLock];\n});\n/**\n * Determines if the given blocks are allowed to be inserted into the block\n * list.\n *\n * @param {Object}  state        Editor state.\n * @param {string}  clientIds    The block client IDs to be inserted.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {boolean} Whether the given blocks are allowed to be inserted.\n */\n\nfunction selectors_canInsertBlocks(state, clientIds) {\n  var rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n  return clientIds.every(function (id) {\n    return selectors_canInsertBlockType(state, selectors_getBlockName(state, id), rootClientId);\n  });\n}\n/**\n * Returns information about how recently and frequently a block has been inserted.\n *\n * @param {Object} state Global application state.\n * @param {string} id    A string which identifies the insert, e.g. 'core/block/12'\n *\n * @return {?{ time: number, count: number }} An object containing `time` which is when the last\n *                                            insert occurred as a UNIX epoch, and `count` which is\n *                                            the number of inserts that have occurred.\n */\n\nfunction getInsertUsage(state, id) {\n  return Object(external_this_lodash_[\"get\"])(state.preferences.insertUsage, [id], null);\n}\n/**\n * Returns whether we can show a block type in the inserter\n *\n * @param {Object} state Global State\n * @param {Object} blockType BlockType\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {boolean} Whether the given block type is allowed to be shown in the inserter.\n */\n\n\nvar selectors_canIncludeBlockTypeInInserter = function canIncludeBlockTypeInInserter(state, blockType, rootClientId) {\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'inserter', true)) {\n    return false;\n  }\n\n  return selectors_canInsertBlockTypeUnmemoized(state, blockType.name, rootClientId);\n};\n/**\n * Determines the items that appear in the inserter. Includes both static\n * items (e.g. a regular block type) and dynamic items (e.g. a reusable block).\n *\n * Each item object contains what's necessary to display a button in the\n * inserter and handle its selection.\n *\n * The 'frecency' property is a heuristic (https://en.wikipedia.org/wiki/Frecency)\n * that combines block usage frequenty and recency.\n *\n * Items are returned ordered descendingly by their 'utility' and 'frecency'.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {WPEditorInserterItem[]} Items that appear in inserter.\n *\n * @typedef {Object} WPEditorInserterItem\n * @property {string}   id                Unique identifier for the item.\n * @property {string}   name              The type of block to create.\n * @property {Object}   initialAttributes Attributes to pass to the newly created block.\n * @property {string}   title             Title of the item, as it appears in the inserter.\n * @property {string}   icon              Dashicon for the item, as it appears in the inserter.\n * @property {string}   category          Block category that the item is associated with.\n * @property {string[]} keywords          Keywords that can be searched to find this item.\n * @property {boolean}  isDisabled        Whether or not the user should be prevented from inserting\n *                                        this item.\n * @property {number}   frecency          Hueristic that combines frequency and recency.\n */\n\n\nvar selectors_getInserterItems = Object(rememo[\"a\" /* default */])(function (state) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n  var calculateFrecency = function calculateFrecency(time, count) {\n    if (!time) {\n      return count;\n    } // The selector is cached, which means Date.now() is the last time that the\n    // relevant state changed. This suits our needs.\n\n\n    var duration = Date.now() - time;\n\n    switch (true) {\n      case duration < MILLISECONDS_PER_HOUR:\n        return count * 4;\n\n      case duration < MILLISECONDS_PER_DAY:\n        return count * 2;\n\n      case duration < MILLISECONDS_PER_WEEK:\n        return count / 2;\n\n      default:\n        return count / 4;\n    }\n  };\n\n  var buildBlockTypeInserterItem = function buildBlockTypeInserterItem(blockType) {\n    var id = blockType.name;\n    var isDisabled = false;\n\n    if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType.name, 'multiple', true)) {\n      isDisabled = Object(external_this_lodash_[\"some\"])(selectors_getBlocksByClientId(state, getClientIdsWithDescendants(state)), {\n        name: blockType.name\n      });\n    }\n\n    var _ref2 = getInsertUsage(state, id) || {},\n        time = _ref2.time,\n        _ref2$count = _ref2.count,\n        count = _ref2$count === void 0 ? 0 : _ref2$count;\n\n    var inserterVariations = blockType.variations.filter(function (_ref3) {\n      var scope = _ref3.scope;\n      return !scope || scope.includes('inserter');\n    });\n    return {\n      id: id,\n      name: blockType.name,\n      initialAttributes: {},\n      title: blockType.title,\n      description: blockType.description,\n      icon: blockType.icon,\n      category: blockType.category,\n      keywords: blockType.keywords,\n      variations: inserterVariations,\n      example: blockType.example,\n      isDisabled: isDisabled,\n      utility: 1,\n      // deprecated\n      frecency: calculateFrecency(time, count)\n    };\n  };\n\n  var buildReusableBlockInserterItem = function buildReusableBlockInserterItem(reusableBlock) {\n    var id = \"core/block/\".concat(reusableBlock.id);\n\n    var referencedBlocks = __experimentalGetParsedReusableBlock(state, reusableBlock.id);\n\n    var referencedBlockType;\n\n    if (referencedBlocks.length === 1) {\n      referencedBlockType = Object(external_this_wp_blocks_[\"getBlockType\"])(referencedBlocks[0].name);\n    }\n\n    var _ref4 = getInsertUsage(state, id) || {},\n        time = _ref4.time,\n        _ref4$count = _ref4.count,\n        count = _ref4$count === void 0 ? 0 : _ref4$count;\n\n    var frecency = calculateFrecency(time, count);\n    return {\n      id: id,\n      name: 'core/block',\n      initialAttributes: {\n        ref: reusableBlock.id\n      },\n      title: reusableBlock.title,\n      icon: referencedBlockType ? referencedBlockType.icon : templateIcon,\n      category: 'reusable',\n      keywords: [],\n      isDisabled: false,\n      utility: 1,\n      // deprecated\n      frecency: frecency\n    };\n  };\n\n  var blockTypeInserterItems = Object(external_this_wp_blocks_[\"getBlockTypes\"])().filter(function (blockType) {\n    return selectors_canIncludeBlockTypeInInserter(state, blockType, rootClientId);\n  }).map(buildBlockTypeInserterItem);\n  var reusableBlockInserterItems = selectors_canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) ? getReusableBlocks(state).map(buildReusableBlockInserterItem) : [];\n  return [].concat(Object(toConsumableArray[\"a\" /* default */])(blockTypeInserterItems), Object(toConsumableArray[\"a\" /* default */])(reusableBlockInserterItems));\n}, function (state, rootClientId) {\n  return [state.blockListSettings[rootClientId], state.blocks.byClientId, state.blocks.order, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), Object(external_this_wp_blocks_[\"getBlockTypes\"])()];\n});\n/**\n * Determines whether there are items to show in the inserter.\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {boolean} Items that appear in inserter.\n */\n\nvar selectors_hasInserterItems = Object(rememo[\"a\" /* default */])(function (state) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  var hasBlockType = Object(external_this_lodash_[\"some\"])(Object(external_this_wp_blocks_[\"getBlockTypes\"])(), function (blockType) {\n    return selectors_canIncludeBlockTypeInInserter(state, blockType, rootClientId);\n  });\n\n  if (hasBlockType) {\n    return true;\n  }\n\n  var hasReusableBlock = selectors_canInsertBlockTypeUnmemoized(state, 'core/block', rootClientId) && getReusableBlocks(state).length > 0;\n  return hasReusableBlock;\n}, function (state, rootClientId) {\n  return [state.blockListSettings[rootClientId], state.blocks.byClientId, state.settings.allowedBlockTypes, state.settings.templateLock, getReusableBlocks(state), Object(external_this_wp_blocks_[\"getBlockTypes\"])()];\n});\n/**\n * Returns the list of allowed inserter blocks for inner blocks children\n *\n * @param {Object}  state        Editor state.\n * @param {?string} rootClientId Optional root client ID of block list.\n *\n * @return {Array?} The list of allowed block types.\n */\n\nvar selectors_experimentalGetAllowedBlocks = Object(rememo[\"a\" /* default */])(function (state) {\n  var rootClientId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n  if (!rootClientId) {\n    return;\n  }\n\n  return Object(external_this_lodash_[\"filter\"])(Object(external_this_wp_blocks_[\"getBlockTypes\"])(), function (blockType) {\n    return selectors_canIncludeBlockTypeInInserter(state, blockType, rootClientId);\n  });\n}, function (state, rootClientId) {\n  return [state.blockListSettings[rootClientId], state.blocks.byClientId, state.settings.allowedBlockTypes, state.settings.templateLock, Object(external_this_wp_blocks_[\"getBlockTypes\"])()];\n});\n/**\n * Returns the Block List settings of a block, if any exist.\n *\n * @param {Object}  state    Editor state.\n * @param {?string} clientId Block client ID.\n *\n * @return {?Object} Block settings of the block if set.\n */\n\nfunction selectors_getBlockListSettings(state, clientId) {\n  return state.blockListSettings[clientId];\n}\n/**\n * Returns the editor settings.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} The editor settings object.\n */\n\nfunction selectors_getSettings(state) {\n  return state.settings;\n}\n/**\n * Returns true if the most recent block change is be considered persistent, or\n * false otherwise. A persistent change is one committed by BlockEditorProvider\n * via its `onChange` callback, in addition to `onInput`.\n *\n * @param {Object} state Block editor state.\n *\n * @return {boolean} Whether the most recent block change was persistent.\n */\n\nfunction isLastBlockChangePersistent(state) {\n  return state.blocks.isPersistentChange;\n}\n/**\n * Returns the Block List settings for an array of blocks, if any exist.\n *\n * @param {Object}  state    Editor state.\n * @param {Array} clientIds Block client IDs.\n *\n * @return {Array} Block List Settings for each of the found blocks\n */\n\nvar selectors_experimentalGetBlockListSettingsForBlocks = Object(rememo[\"a\" /* default */])(function (state, clientIds) {\n  return Object(external_this_lodash_[\"filter\"])(state.blockListSettings, function (value, key) {\n    return clientIds.includes(key);\n  });\n}, function (state) {\n  return [state.blockListSettings];\n});\n/**\n * Returns the parsed block saved as shared block with the given ID.\n *\n * @param {Object}        state Global application state.\n * @param {number|string} ref   The shared block's ID.\n *\n * @return {Object} The parsed block.\n */\n\nvar __experimentalGetParsedReusableBlock = Object(rememo[\"a\" /* default */])(function (state, ref) {\n  var reusableBlock = Object(external_this_lodash_[\"find\"])(getReusableBlocks(state), function (block) {\n    return block.id === ref;\n  });\n\n  if (!reusableBlock) {\n    return null;\n  }\n\n  return Object(external_this_wp_blocks_[\"parse\"])(reusableBlock.content);\n}, function (state) {\n  return [getReusableBlocks(state)];\n});\n/**\n * Returns true if the most recent block change is be considered ignored, or\n * false otherwise. An ignored change is one not to be committed by\n * BlockEditorProvider, neither via `onChange` nor `onInput`.\n *\n * @param {Object} state Block editor state.\n *\n * @return {boolean} Whether the most recent block change was ignored.\n */\n\nfunction __unstableIsLastBlockChangeIgnored(state) {\n  // TODO: Removal Plan: Changes incurred by RECEIVE_BLOCKS should not be\n  // ignored if in-fact they result in a change in blocks state. The current\n  // need to ignore changes not a result of user interaction should be\n  // accounted for in the refactoring of reusable blocks as occurring within\n  // their own separate block editor / state (#7119).\n  return state.blocks.isIgnoredChange;\n}\n/**\n * Returns the block attributes changed as a result of the last dispatched\n * action.\n *\n * @param {Object} state Block editor state.\n *\n * @return {Object<string,Object>} Subsets of block attributes changed, keyed\n *                                 by block client ID.\n */\n\nfunction __experimentalGetLastBlockAttributeChanges(state) {\n  return state.lastBlockAttributesChange;\n}\n/**\n * Returns the available reusable blocks\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} Reusable blocks\n */\n\nfunction getReusableBlocks(state) {\n  return Object(external_this_lodash_[\"get\"])(state, ['settings', '__experimentalReusableBlocks'], selectors_EMPTY_ARRAY);\n}\n/**\n * Returns whether the navigation mode is enabled.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean}     Is navigation mode enabled.\n */\n\n\nfunction selectors_isNavigationMode(state) {\n  return state.isNavigationMode;\n}\n/**\n * Returns whether block moving mode is enabled.\n *\n * @param {Object} state Editor state.\n *\n * @return {string}     Client Id of moving block.\n */\n\nfunction selectors_hasBlockMovingClientId(state) {\n  return state.hasBlockMovingClientId;\n}\n/**\n * Returns true if the last change was an automatic change, false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the last change was automatic.\n */\n\nfunction selectors_didAutomaticChange(state) {\n  return !!state.automaticChangeStatus;\n}\n/**\n * Returns true if the current highlighted block matches the block clientId.\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block to check.\n *\n * @return {boolean} Whether the block is currently highlighted.\n */\n\nfunction isBlockHighlighted(state, clientId) {\n  return state.highlightedBlock === clientId;\n}\n/**\n * Checks if a given block has controlled inner blocks.\n *\n * @param {Object} state Global application state.\n * @param {string} clientId The block to check.\n *\n * @return {boolean} True if the block has controlled inner blocks.\n */\n\nfunction areInnerBlocksControlled(state, clientId) {\n  return !!state.blocks.controlledInnerBlocks[clientId];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/effects.js\n\n\n\n\n\nfunction effects_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction effects_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { effects_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { effects_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Block validity is a function of blocks state (at the point of a\n * reset) and the template setting. As a compromise to its placement\n * across distinct parts of state, it is implemented here as a side-\n * effect of the block reset action.\n *\n * @param {Object} action RESET_BLOCKS action.\n * @param {Object} store  Store instance.\n *\n * @return {?Object} New validity set action if validity has changed.\n */\n\nfunction validateBlocksToTemplate(action, store) {\n  var state = store.getState();\n  var template = getTemplate(state);\n  var templateLock = selectors_getTemplateLock(state); // Unlocked templates are considered always valid because they act\n  // as default values only.\n\n  var isBlocksValidToTemplate = !template || templateLock !== 'all' || Object(external_this_wp_blocks_[\"doBlocksMatchTemplate\"])(action.blocks, template); // Update if validity has changed.\n\n  if (isBlocksValidToTemplate !== isValidTemplate(state)) {\n    return setTemplateValidity(isBlocksValidToTemplate);\n  }\n}\n/* harmony default export */ var effects = ({\n  MERGE_BLOCKS: function MERGE_BLOCKS(action, store) {\n    var dispatch = store.dispatch;\n    var state = store.getState();\n\n    var _action$blocks = Object(slicedToArray[\"a\" /* default */])(action.blocks, 2),\n        clientIdA = _action$blocks[0],\n        clientIdB = _action$blocks[1];\n\n    var blockA = selectors_getBlock(state, clientIdA);\n    var blockAType = Object(external_this_wp_blocks_[\"getBlockType\"])(blockA.name); // Only focus the previous block if it's not mergeable\n\n    if (!blockAType.merge) {\n      dispatch(actions_selectBlock(blockA.clientId));\n      return;\n    }\n\n    var blockB = selectors_getBlock(state, clientIdB);\n    var blockBType = Object(external_this_wp_blocks_[\"getBlockType\"])(blockB.name);\n\n    var _getSelectionStart = selectors_getSelectionStart(state),\n        clientId = _getSelectionStart.clientId,\n        attributeKey = _getSelectionStart.attributeKey,\n        offset = _getSelectionStart.offset;\n\n    var selectedBlockType = clientId === clientIdA ? blockAType : blockBType;\n    var attributeDefinition = selectedBlockType.attributes[attributeKey];\n    var canRestoreTextSelection = (clientId === clientIdA || clientId === clientIdB) && attributeKey !== undefined && offset !== undefined && // We cannot restore text selection if the RichText identifier\n    // is not a defined block attribute key. This can be the case if the\n    // fallback intance ID is used to store selection (and no RichText\n    // identifier is set), or when the identifier is wrong.\n    !!attributeDefinition;\n\n    if (!attributeDefinition) {\n      if (typeof attributeKey === 'number') {\n        window.console.error(\"RichText needs an identifier prop that is the block attribute key of the attribute it controls. Its type is expected to be a string, but was \".concat(Object(esm_typeof[\"a\" /* default */])(attributeKey)));\n      } else {\n        window.console.error('The RichText identifier prop does not match any attributes defined by the block.');\n      }\n    } // A robust way to retain selection position through various transforms\n    // is to insert a special character at the position and then recover it.\n\n\n    var START_OF_SELECTED_AREA = \"\\x86\"; // Clone the blocks so we don't insert the character in a \"live\" block.\n\n    var cloneA = Object(external_this_wp_blocks_[\"cloneBlock\"])(blockA);\n    var cloneB = Object(external_this_wp_blocks_[\"cloneBlock\"])(blockB);\n\n    if (canRestoreTextSelection) {\n      var selectedBlock = clientId === clientIdA ? cloneA : cloneB;\n      var html = selectedBlock.attributes[attributeKey];\n      var multilineTag = attributeDefinition.multiline,\n          multilineWrapperTags = attributeDefinition.__unstableMultilineWrapperTags,\n          preserveWhiteSpace = attributeDefinition.__unstablePreserveWhiteSpace;\n      var value = Object(external_this_wp_richText_[\"insert\"])(Object(external_this_wp_richText_[\"create\"])({\n        html: html,\n        multilineTag: multilineTag,\n        multilineWrapperTags: multilineWrapperTags,\n        preserveWhiteSpace: preserveWhiteSpace\n      }), START_OF_SELECTED_AREA, offset, offset);\n      selectedBlock.attributes[attributeKey] = Object(external_this_wp_richText_[\"toHTMLString\"])({\n        value: value,\n        multilineTag: multilineTag,\n        preserveWhiteSpace: preserveWhiteSpace\n      });\n    } // We can only merge blocks with similar types\n    // thus, we transform the block to merge first\n\n\n    var blocksWithTheSameType = blockA.name === blockB.name ? [cloneB] : Object(external_this_wp_blocks_[\"switchToBlockType\"])(cloneB, blockA.name); // If the block types can not match, do nothing\n\n    if (!blocksWithTheSameType || !blocksWithTheSameType.length) {\n      return;\n    } // Calling the merge to update the attributes and remove the block to be merged\n\n\n    var updatedAttributes = blockAType.merge(cloneA.attributes, blocksWithTheSameType[0].attributes);\n\n    if (canRestoreTextSelection) {\n      var newAttributeKey = Object(external_this_lodash_[\"findKey\"])(updatedAttributes, function (v) {\n        return typeof v === 'string' && v.indexOf(START_OF_SELECTED_AREA) !== -1;\n      });\n      var convertedHtml = updatedAttributes[newAttributeKey];\n      var _blockAType$attribute = blockAType.attributes[newAttributeKey],\n          _multilineTag = _blockAType$attribute.multiline,\n          _multilineWrapperTags = _blockAType$attribute.__unstableMultilineWrapperTags,\n          _preserveWhiteSpace = _blockAType$attribute.__unstablePreserveWhiteSpace;\n      var convertedValue = Object(external_this_wp_richText_[\"create\"])({\n        html: convertedHtml,\n        multilineTag: _multilineTag,\n        multilineWrapperTags: _multilineWrapperTags,\n        preserveWhiteSpace: _preserveWhiteSpace\n      });\n      var newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA);\n      var newValue = Object(external_this_wp_richText_[\"remove\"])(convertedValue, newOffset, newOffset + 1);\n      var newHtml = Object(external_this_wp_richText_[\"toHTMLString\"])({\n        value: newValue,\n        multilineTag: _multilineTag,\n        preserveWhiteSpace: _preserveWhiteSpace\n      });\n      updatedAttributes[newAttributeKey] = newHtml;\n      dispatch(actions_selectionChange(blockA.clientId, newAttributeKey, newOffset, newOffset));\n    }\n\n    dispatch(actions_replaceBlocks([blockA.clientId, blockB.clientId], [effects_objectSpread({}, blockA, {\n      attributes: effects_objectSpread({}, blockA.attributes, {}, updatedAttributes)\n    })].concat(Object(toConsumableArray[\"a\" /* default */])(blocksWithTheSameType.slice(1)))));\n  },\n  RESET_BLOCKS: [validateBlocksToTemplate],\n  MULTI_SELECT: function MULTI_SELECT(action, _ref) {\n    var getState = _ref.getState;\n    var blockCount = selectors_getSelectedBlockCount(getState());\n    Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: number of selected blocks */\n    Object(external_this_wp_i18n_[\"_n\"])('%s block selected.', '%s blocks selected.', blockCount), blockCount), 'assertive');\n  },\n  SYNCHRONIZE_TEMPLATE: function SYNCHRONIZE_TEMPLATE(action, _ref2) {\n    var getState = _ref2.getState;\n    var state = getState();\n    var blocks = selectors_getBlocks(state);\n    var template = getTemplate(state);\n    var updatedBlockList = Object(external_this_wp_blocks_[\"synchronizeBlocksWithTemplate\"])(blocks, template);\n    return actions_resetBlocks(updatedBlockList);\n  },\n  MARK_AUTOMATIC_CHANGE: function MARK_AUTOMATIC_CHANGE(action, store) {\n    var _window = window,\n        setTimeout = _window.setTimeout,\n        _window$requestIdleCa = _window.requestIdleCallback,\n        requestIdleCallback = _window$requestIdleCa === void 0 ? function (callback) {\n      return setTimeout(callback, 100);\n    } : _window$requestIdleCa;\n    requestIdleCallback(function () {\n      store.dispatch({\n        type: 'MARK_AUTOMATIC_CHANGE_FINAL'\n      });\n    });\n  }\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/middlewares.js\n\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Applies the custom middlewares used specifically in the editor module.\n *\n * @param {Object} store Store Object.\n *\n * @return {Object} Update Store Object.\n */\n\nfunction applyMiddlewares(store) {\n  var middlewares = [refx_default()(effects), redux_multi_lib_default.a];\n\n  var enhancedDispatch = function enhancedDispatch() {\n    throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n  };\n\n  var chain = [];\n  var middlewareAPI = {\n    getState: store.getState,\n    dispatch: function dispatch() {\n      return enhancedDispatch.apply(void 0, arguments);\n    }\n  };\n  chain = middlewares.map(function (middleware) {\n    return middleware(middlewareAPI);\n  });\n  enhancedDispatch = external_this_lodash_[\"flowRight\"].apply(void 0, Object(toConsumableArray[\"a\" /* default */])(chain))(store.dispatch);\n  store.dispatch = enhancedDispatch;\n  return store;\n}\n\n/* harmony default export */ var store_middlewares = (applyMiddlewares);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/store/index.js\n\n\nfunction store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar MODULE_KEY = 'core/block-editor';\n/**\n * Block editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/data/README.md#registerStore\n *\n * @type {Object}\n */\n\nvar storeConfig = {\n  reducer: store_reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject,\n  controls: store_controls\n};\nvar store_store = Object(external_this_wp_data_[\"registerStore\"])(MODULE_KEY, store_objectSpread({}, storeConfig, {\n  persist: ['preferences']\n}));\nstore_middlewares(store_store);\n/* harmony default export */ var build_module_store = (store_store);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/with-registry-provider.js\n\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar withRegistryProvider = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return Object(external_this_wp_data_[\"withRegistry\"])(function (_ref) {\n    var _ref$useSubRegistry = _ref.useSubRegistry,\n        useSubRegistry = _ref$useSubRegistry === void 0 ? true : _ref$useSubRegistry,\n        registry = _ref.registry,\n        props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"useSubRegistry\", \"registry\"]);\n\n    if (!useSubRegistry) {\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({\n        registry: registry\n      }, props));\n    }\n\n    var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n        _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n        subRegistry = _useState2[0],\n        setSubRegistry = _useState2[1];\n\n    Object(external_this_wp_element_[\"useEffect\"])(function () {\n      var newRegistry = Object(external_this_wp_data_[\"createRegistry\"])({}, registry);\n      var store = newRegistry.registerStore('core/block-editor', storeConfig); // This should be removed after the refactoring of the effects to controls.\n\n      store_middlewares(store);\n      setSubRegistry(newRegistry);\n    }, [registry]);\n\n    if (!subRegistry) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_data_[\"RegistryProvider\"], {\n      value: subRegistry\n    }, Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({\n      registry: subRegistry\n    }, props)));\n  });\n}, 'withRegistryProvider');\n/* harmony default export */ var with_registry_provider = (withRegistryProvider);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/use-block-sync.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * A function to call when the block value has been updated in the block-editor\n * store.\n *\n * @callback onBlockUpdate\n * @param {Object[]} blocks  The updated blocks.\n * @param {Object}   options The updated block options, such as selectionStart\n *                           and selectionEnd.\n */\n\n/**\n * useBlockSync is a side effect which handles bidirectional sync between the\n * block-editor store and a controlling data source which provides blocks. This\n * is most commonly used by the BlockEditorProvider to synchronize the contents\n * of the block-editor store with the root entity, like a post.\n *\n * Another example would be the template part block, which provides blocks from\n * a separate entity data source than a root entity. This hook syncs edits to\n * the template part in the block editor back to the entity and vice-versa.\n *\n * Here are some of its basic functions:\n * - Initalizes the block-editor store for the given clientID to the blocks\n *   given via props.\n * - Adds incoming changes (like undo) to the block-editor store.\n * - Adds outgoing changes (like editing content) to the controlling entity,\n *   determining if a change should be considered persistent or not.\n * - Handles edge cases and race conditions which occur in those operations.\n * - Ignores changes which happen to other entities (like nested inner block\n *   controllers.\n * - Passes selection state from the block-editor store to the controlling entity.\n *\n * @param {Object} props Props for the block sync hook\n * @param {string} props.clientId The client ID of the inner block controller.\n *                                If none is passed, then it is assumed to be a\n *                                root controller rather than an inner block\n *                                controller.\n * @param {Object[]} props.value  The control value for the blocks. This value\n *                                is used to initalize the block-editor store\n *                                and for resetting the blocks to incoming\n *                                changes like undo.\n * @param {Object} props.selectionStart The selection start vlaue from the\n *                                controlling component.\n * @param {Object} props.selectionEnd The selection end vlaue from the\n *                                controlling component.\n * @param {onBlockUpdate} props.onChange Function to call when a persistent\n *                                change has been made in the block-editor blocks\n *                                for the given clientId. For example, after\n *                                this function is called, an entity is marked\n *                                dirty because it has changes to save.\n * @param {onBlockUpdate} props.onInput Function to call when a non-persistent\n *                                change has been made in the block-editor blocks\n *                                for the given clientId. When this is called,\n *                                controlling sources do not become dirty.\n */\n\nfunction useBlockSync(_ref) {\n  var _ref$clientId = _ref.clientId,\n      clientId = _ref$clientId === void 0 ? null : _ref$clientId,\n      controlledBlocks = _ref.value,\n      controlledSelectionStart = _ref.selectionStart,\n      controlledSelectionEnd = _ref.selectionEnd,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onInput = _ref.onInput,\n      onInput = _ref$onInput === void 0 ? external_this_lodash_[\"noop\"] : _ref$onInput;\n  var registry = Object(external_this_wp_data_[\"useRegistry\"])();\n\n  var _registry$dispatch = registry.dispatch('core/block-editor'),\n      resetBlocks = _registry$dispatch.resetBlocks,\n      resetSelection = _registry$dispatch.resetSelection,\n      replaceInnerBlocks = _registry$dispatch.replaceInnerBlocks,\n      setHasControlledInnerBlocks = _registry$dispatch.setHasControlledInnerBlocks,\n      __unstableMarkNextChangeAsNotPersistent = _registry$dispatch.__unstableMarkNextChangeAsNotPersistent;\n\n  var _registry$select = registry.select('core/block-editor'),\n      getBlockName = _registry$select.getBlockName,\n      getBlocks = _registry$select.getBlocks;\n\n  var pendingChanges = Object(external_this_wp_element_[\"useRef\"])({\n    incoming: null,\n    outgoing: []\n  });\n\n  var setControlledBlocks = function setControlledBlocks() {\n    if (!controlledBlocks) {\n      return;\n    } // We don't need to persist this change because we only replace\n    // controlled inner blocks when the change was caused by an entity,\n    // and so it would already be persisted.\n\n\n    __unstableMarkNextChangeAsNotPersistent();\n\n    if (clientId) {\n      setHasControlledInnerBlocks(clientId, true);\n\n      __unstableMarkNextChangeAsNotPersistent();\n\n      replaceInnerBlocks(clientId, controlledBlocks, false);\n    } else {\n      resetBlocks(controlledBlocks);\n    }\n  }; // Add a subscription to the block-editor registry to detect when changes\n  // have been made. This lets us inform the data source of changes. This\n  // is an effect so that the subscriber can run synchronously without\n  // waiting for React renders for changes.\n\n\n  var onInputRef = Object(external_this_wp_element_[\"useRef\"])(onInput);\n  var onChangeRef = Object(external_this_wp_element_[\"useRef\"])(onChange);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    onInputRef.current = onInput;\n    onChangeRef.current = onChange;\n  }, [onInput, onChange]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var _registry$select2 = registry.select('core/block-editor'),\n        getSelectionStart = _registry$select2.getSelectionStart,\n        getSelectionEnd = _registry$select2.getSelectionEnd,\n        isLastBlockChangePersistent = _registry$select2.isLastBlockChangePersistent,\n        __unstableIsLastBlockChangeIgnored = _registry$select2.__unstableIsLastBlockChangeIgnored;\n\n    var blocks;\n    var isPersistent = isLastBlockChangePersistent();\n    var previousAreBlocksDifferent = false;\n    var unsubscribe = registry.subscribe(function () {\n      // Sometimes, when changing block lists, lingering subscriptions\n      // might trigger before they are cleaned up. If the block for which\n      // the subscription runs is no longer in the store, this would clear\n      // its parent entity's block list. To avoid this, we bail out if\n      // the subscription is triggering for a block (`clientId !== null`)\n      // and its block name can't be found because it's not on the list.\n      // (`getBlockName( clientId ) === null`).\n      if (clientId !== null && getBlockName(clientId) === null) return;\n      var newIsPersistent = isLastBlockChangePersistent();\n      var newBlocks = getBlocks(clientId);\n      var areBlocksDifferent = newBlocks !== blocks;\n      blocks = newBlocks;\n\n      if (areBlocksDifferent && (pendingChanges.current.incoming || __unstableIsLastBlockChangeIgnored())) {\n        pendingChanges.current.incoming = null;\n        isPersistent = newIsPersistent;\n        return;\n      } // Since we often dispatch an action to mark the previous action as\n      // persistent, we need to make sure that the blocks changed on the\n      // previous action before committing the change.\n\n\n      var didPersistenceChange = previousAreBlocksDifferent && !areBlocksDifferent && newIsPersistent && !isPersistent;\n\n      if (areBlocksDifferent || didPersistenceChange) {\n        isPersistent = newIsPersistent; // We know that onChange/onInput will update controlledBlocks.\n        // We need to be aware that it was caused by an outgoing change\n        // so that we do not treat it as an incoming change later on,\n        // which would cause a block reset.\n\n        pendingChanges.current.outgoing.push(blocks); // Inform the controlling entity that changes have been made to\n        // the block-editor store they should be aware about.\n\n        var updateParent = isPersistent ? onChange : onInput;\n        updateParent(blocks, {\n          selectionStart: getSelectionStart(),\n          selectionEnd: getSelectionEnd()\n        });\n      }\n\n      previousAreBlocksDifferent = areBlocksDifferent;\n    });\n    return function () {\n      return unsubscribe();\n    };\n  }, [registry, clientId]); // Determine if blocks need to be reset when they change.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (pendingChanges.current.outgoing.includes(controlledBlocks)) {\n      // Skip block reset if the value matches expected outbound sync\n      // triggered by this component by a preceding change detection.\n      // Only skip if the value matches expectation, since a reset should\n      // still occur if the value is modified (not equal by reference),\n      // to allow that the consumer may apply modifications to reflect\n      // back on the editor.\n      if (Object(external_this_lodash_[\"last\"])(pendingChanges.current.outgoing) === controlledBlocks) {\n        pendingChanges.current.outgoing = [];\n      }\n    } else if (getBlocks(clientId) !== controlledBlocks) {\n      // Reset changing value in all other cases than the sync described\n      // above. Since this can be reached in an update following an out-\n      // bound sync, unset the outbound value to avoid considering it in\n      // subsequent renders.\n      pendingChanges.current.outgoing = [];\n      pendingChanges.current.incoming = controlledBlocks;\n      setControlledBlocks();\n\n      if (controlledSelectionStart && controlledSelectionEnd) {\n        resetSelection(controlledSelectionStart, controlledSelectionEnd);\n      }\n    }\n  }, [controlledBlocks, clientId]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/provider/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/** @typedef {import('@wordpress/data').WPDataRegistry} WPDataRegistry */\n\nfunction BlockEditorProvider(props) {\n  var children = props.children,\n      settings = props.settings;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateSettings = _useDispatch.updateSettings;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    updateSettings(settings);\n  }, [settings]); // Syncs the entity provider with changes in the block-editor store.\n\n  useBlockSync(props);\n  return children;\n}\n\n/* harmony default export */ var provider = (with_registry_provider(BlockEditorProvider));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"htmlEntities\"]}\nvar external_this_wp_htmlEntities_ = __webpack_require__(62);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-block-appender/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction default_block_appender_DefaultBlockAppender(_ref) {\n  var isLocked = _ref.isLocked,\n      isVisible = _ref.isVisible,\n      onAppend = _ref.onAppend,\n      showPrompt = _ref.showPrompt,\n      placeholder = _ref.placeholder,\n      rootClientId = _ref.rootClientId;\n\n  if (isLocked || !isVisible) {\n    return null;\n  }\n\n  var value = Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(placeholder) || Object(external_this_wp_i18n_[\"__\"])('Start writing or type / to choose a block'); // The appender \"button\" is in-fact a text field so as to support\n  // transitions by WritingFlow occurring by arrow key press. WritingFlow\n  // only supports tab transitions into text fields and to the block focus\n  // boundary.\n  //\n  // See: https://github.com/WordPress/gutenberg/issues/4829#issuecomment-374213658\n  //\n  // If it were ever to be made to be a proper `button` element, it is\n  // important to note that `onFocus` alone would not be sufficient to\n  // capture click events, notably in Firefox.\n  //\n  // See: https://gist.github.com/cvrebert/68659d0333a578d75372\n  // The wp-block className is important for editor styles.\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    \"data-root-client-id\": rootClientId || '',\n    className: \"wp-block block-editor-default-block-appender\"\n  }, Object(external_this_wp_element_[\"createElement\"])(lib_default.a, {\n    role: \"button\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Add block'),\n    className: \"block-editor-default-block-appender__content\",\n    readOnly: true,\n    onFocus: onAppend,\n    value: showPrompt ? value : ''\n  }), Object(external_this_wp_element_[\"createElement\"])(inserter, {\n    rootClientId: rootClientId,\n    position: \"bottom right\",\n    isAppender: true,\n    __experimentalIsQuick: true\n  }));\n}\n/* harmony default export */ var default_block_appender = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var _select = select('core/block-editor'),\n      getBlockCount = _select.getBlockCount,\n      getBlockName = _select.getBlockName,\n      isBlockValid = _select.isBlockValid,\n      getSettings = _select.getSettings,\n      getTemplateLock = _select.getTemplateLock;\n\n  var isEmpty = !getBlockCount(ownProps.rootClientId);\n  var isLastBlockDefault = getBlockName(ownProps.lastBlockClientId) === Object(external_this_wp_blocks_[\"getDefaultBlockName\"])();\n  var isLastBlockValid = isBlockValid(ownProps.lastBlockClientId);\n\n  var _getSettings = getSettings(),\n      bodyPlaceholder = _getSettings.bodyPlaceholder;\n\n  return {\n    isVisible: isEmpty || !isLastBlockDefault || !isLastBlockValid,\n    showPrompt: isEmpty,\n    isLocked: !!getTemplateLock(ownProps.rootClientId),\n    placeholder: bodyPlaceholder\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  var _dispatch = dispatch('core/block-editor'),\n      insertDefaultBlock = _dispatch.insertDefaultBlock,\n      startTyping = _dispatch.startTyping;\n\n  return {\n    onAppend: function onAppend() {\n      var rootClientId = ownProps.rootClientId;\n      insertDefaultBlock(undefined, rootClientId);\n      startTyping();\n    }\n  };\n}))(default_block_appender_DefaultBlockAppender));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/button-block-appender/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction button_block_appender_ButtonBlockAppender(_ref, ref) {\n  var rootClientId = _ref.rootClientId,\n      className = _ref.className,\n      selectBlockOnInsert = _ref.__experimentalSelectBlockOnInsert,\n      onFocus = _ref.onFocus,\n      tabIndex = _ref.tabIndex;\n  return Object(external_this_wp_element_[\"createElement\"])(inserter, {\n    position: \"bottom center\",\n    rootClientId: rootClientId,\n    __experimentalSelectBlockOnInsert: selectBlockOnInsert,\n    __experimentalIsQuick: true,\n    renderToggle: function renderToggle(_ref2) {\n      var onToggle = _ref2.onToggle,\n          disabled = _ref2.disabled,\n          isOpen = _ref2.isOpen,\n          blockTitle = _ref2.blockTitle,\n          hasSingleBlockType = _ref2.hasSingleBlockType;\n      var label;\n\n      if (hasSingleBlockType) {\n        label = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: the name of the block when there is only one\n        Object(external_this_wp_i18n_[\"_x\"])('Add %s', 'directly add the only allowed block'), blockTitle);\n      } else {\n        label = Object(external_this_wp_i18n_[\"_x\"])('Add block', 'Generic label for block inserter button');\n      }\n\n      var isToggleButton = !hasSingleBlockType;\n      var inserterButton = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        ref: ref,\n        onFocus: onFocus,\n        tabIndex: tabIndex,\n        className: classnames_default()(className, 'block-editor-button-block-appender'),\n        onClick: onToggle,\n        \"aria-haspopup\": isToggleButton ? 'true' : undefined,\n        \"aria-expanded\": isToggleButton ? isOpen : undefined,\n        disabled: disabled,\n        label: label\n      }, !hasSingleBlockType && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"span\"\n      }, label), Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n        icon: plus[\"a\" /* default */]\n      }));\n\n      if (isToggleButton || hasSingleBlockType) {\n        inserterButton = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Tooltip\"], {\n          text: label\n        }, inserterButton);\n      }\n\n      return inserterButton;\n    },\n    isAppender: true\n  });\n}\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/button-block-appender/README.md\n */\n\n\n/* harmony default export */ var button_block_appender = (Object(external_this_wp_element_[\"forwardRef\"])(button_block_appender_ButtonBlockAppender));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list-appender/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction block_list_appender_stopPropagation(event) {\n  event.stopPropagation();\n}\n\nfunction BlockListAppender(_ref) {\n  var blockClientIds = _ref.blockClientIds,\n      rootClientId = _ref.rootClientId,\n      canInsertDefaultBlock = _ref.canInsertDefaultBlock,\n      isLocked = _ref.isLocked,\n      CustomAppender = _ref.renderAppender,\n      className = _ref.className,\n      _ref$tagName = _ref.tagName,\n      TagName = _ref$tagName === void 0 ? 'div' : _ref$tagName;\n\n  if (isLocked || CustomAppender === false) {\n    return null;\n  }\n\n  var appender;\n\n  if (CustomAppender) {\n    // Prefer custom render prop if provided.\n    appender = Object(external_this_wp_element_[\"createElement\"])(CustomAppender, null);\n  } else if (canInsertDefaultBlock) {\n    // Render the default block appender when renderAppender has not been\n    // provided and the context supports use of the default appender.\n    appender = Object(external_this_wp_element_[\"createElement\"])(default_block_appender, {\n      rootClientId: rootClientId,\n      lastBlockClientId: Object(external_this_lodash_[\"last\"])(blockClientIds)\n    });\n  } else {\n    // Fallback in the case no renderAppender has been provided and the\n    // default block can't be inserted.\n    appender = Object(external_this_wp_element_[\"createElement\"])(button_block_appender, {\n      rootClientId: rootClientId,\n      className: \"block-list-appender__toggle\"\n    });\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(TagName // A `tabIndex` is used on the wrapping `div` element in order to\n  // force a focus event to occur when an appender `button` element\n  // is clicked. In some browsers (Firefox, Safari), button clicks do\n  // not emit a focus event, which could cause this event to propagate\n  // unexpectedly. The `tabIndex` ensures that the interaction is\n  // captured as a focus, without also adding an extra tab stop.\n  //\n  // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n  , {\n    tabIndex: -1 // Prevent the block from being selected when the appender is\n    // clicked.\n    ,\n    onFocus: block_list_appender_stopPropagation,\n    className: classnames_default()('block-list-appender', className)\n  }, appender);\n}\n\n/* harmony default export */ var block_list_appender = (Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var rootClientId = _ref2.rootClientId;\n\n  var _select = select('core/block-editor'),\n      getBlockOrder = _select.getBlockOrder,\n      canInsertBlockType = _select.canInsertBlockType,\n      getTemplateLock = _select.getTemplateLock;\n\n  return {\n    isLocked: !!getTemplateLock(rootClientId),\n    blockClientIds: getBlockOrder(rootClientId),\n    canInsertDefaultBlock: canInsertBlockType(Object(external_this_wp_blocks_[\"getDefaultBlockName\"])(), rootClientId)\n  };\n})(BlockListAppender));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-block-drop-zone/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */\n\n/**\n * @typedef  {Object} WPBlockDragPosition\n * @property {number} x The horizontal position of a the block being dragged.\n * @property {number} y The vertical position of the block being dragged.\n */\n\n/**\n * The orientation of a block list.\n *\n * @typedef {'horizontal'|'vertical'|undefined} WPBlockListOrientation\n */\n\n/**\n * Given a list of block DOM elements finds the index that a block should be dropped\n * at.\n *\n * This function works for both horizontal and vertical block lists and uses the following\n * terms for its variables:\n *\n * - Lateral, meaning the axis running horizontally when a block list is vertical and vertically when a block list is horizontal.\n * - Forward, meaning the axis running vertically when a block list is vertical and horizontally\n * when a block list is horizontal.\n *\n *\n * @param {Element[]}              elements    Array of DOM elements that represent each block in a block list.\n * @param {WPBlockDragPosition}    position    The position of the item being dragged.\n * @param {WPBlockListOrientation} orientation The orientation of a block list.\n *\n * @return {number|undefined} The block index that's closest to the drag position.\n */\n\nfunction getNearestBlockIndex(elements, position, orientation) {\n  var x = position.x,\n      y = position.y;\n  var isHorizontal = orientation === 'horizontal';\n  var candidateIndex;\n  var candidateDistance;\n  elements.forEach(function (element, index) {\n    // Ensure the element is a block. It should have the `data-block` attribute.\n    if (!element.dataset.block) {\n      return;\n    }\n\n    var rect = element.getBoundingClientRect();\n    var cursorLateralPosition = isHorizontal ? y : x;\n    var cursorForwardPosition = isHorizontal ? x : y;\n    var edgeLateralStart = isHorizontal ? rect.top : rect.left;\n    var edgeLateralEnd = isHorizontal ? rect.bottom : rect.right; // When the cursor position is within the lateral bounds of the block,\n    // measure the straight line distance to the nearest point on the\n    // block's edge, else measure diagonal distance to the nearest corner.\n\n    var edgeLateralPosition;\n\n    if (cursorLateralPosition >= edgeLateralStart && cursorLateralPosition <= edgeLateralEnd) {\n      edgeLateralPosition = cursorLateralPosition;\n    } else if (cursorLateralPosition < edgeLateralStart) {\n      edgeLateralPosition = edgeLateralStart;\n    } else {\n      edgeLateralPosition = edgeLateralEnd;\n    }\n\n    var leadingEdgeForwardPosition = isHorizontal ? rect.left : rect.top;\n    var trailingEdgeForwardPosition = isHorizontal ? rect.right : rect.bottom; // First measure the distance to the leading edge of the block.\n\n    var leadingEdgeDistance = Math.sqrt(Math.pow(cursorLateralPosition - edgeLateralPosition, 2) + Math.pow(cursorForwardPosition - leadingEdgeForwardPosition, 2)); // If no candidate has been assigned yet or this is the nearest\n    // block edge to the cursor, then assign it as the candidate.\n\n    if (candidateDistance === undefined || Math.abs(leadingEdgeDistance) < candidateDistance) {\n      candidateDistance = leadingEdgeDistance;\n      candidateIndex = index;\n    } // Next measure the distance to the trailing edge of the block.\n\n\n    var trailingEdgeDistance = Math.sqrt(Math.pow(cursorLateralPosition - edgeLateralPosition, 2) + Math.pow(cursorForwardPosition - trailingEdgeForwardPosition, 2)); // If no candidate has been assigned yet or this is the nearest\n    // block edge to the cursor, then assign the next block as the candidate.\n\n    if (Math.abs(trailingEdgeDistance) < candidateDistance) {\n      candidateDistance = trailingEdgeDistance;\n      var nextBlockOffset = 1; // If the next block is the one being dragged, skip it and consider\n      // the block afterwards the drop target. This is needed as the\n      // block being dragged is set to display: none and won't display\n      // any drop target styling.\n\n      if (elements[index + 1] && elements[index + 1].classList.contains('is-dragging')) {\n        nextBlockOffset = 2;\n      }\n\n      candidateIndex = index + nextBlockOffset;\n    }\n  });\n  return candidateIndex;\n}\n/**\n * Retrieve the data for a block drop event.\n *\n * @param {WPSyntheticEvent} event The drop event.\n *\n * @return {Object} An object with block drag and drop data.\n */\n\nfunction parseDropEvent(event) {\n  var result = {\n    srcRootClientId: null,\n    srcClientIds: null,\n    type: null\n  };\n\n  if (!event.dataTransfer) {\n    return result;\n  }\n\n  try {\n    result = Object.assign(result, JSON.parse(event.dataTransfer.getData('text')));\n  } catch (err) {\n    return result;\n  }\n\n  return result;\n}\n/**\n * @typedef  {Object} WPBlockDropZoneConfig\n * @property {Object} element      A React ref object pointing to the block list's DOM element.\n * @property {string} rootClientId The root client id for the block list.\n */\n\n/**\n * A React hook that can be used to make a block list handle drag and drop.\n *\n * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone.\n *\n * @return {number|undefined} The block index that's closest to the drag position.\n */\n\n\nfunction useBlockDropZone(_ref) {\n  var element = _ref.element,\n      targetRootClientId = _ref.rootClientId;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      targetBlockIndex = _useState2[0],\n      setTargetBlockIndex = _useState2[1];\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _getBlockListSettings;\n\n    var _select = select('core/block-editor'),\n        getBlockListSettings = _select.getBlockListSettings,\n        _getClientIdsOfDescendants = _select.getClientIdsOfDescendants,\n        _getBlockIndex = _select.getBlockIndex,\n        getSettings = _select.getSettings,\n        getTemplateLock = _select.getTemplateLock;\n\n    return {\n      orientation: (_getBlockListSettings = getBlockListSettings(targetRootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation,\n      getClientIdsOfDescendants: _getClientIdsOfDescendants,\n      getBlockIndex: _getBlockIndex,\n      hasUploadPermissions: !!getSettings().mediaUpload,\n      isLockedAll: getTemplateLock(targetRootClientId) === 'all'\n    };\n  }, [targetRootClientId]),\n      getClientIdsOfDescendants = _useSelect.getClientIdsOfDescendants,\n      getBlockIndex = _useSelect.getBlockIndex,\n      hasUploadPermissions = _useSelect.hasUploadPermissions,\n      isLockedAll = _useSelect.isLockedAll,\n      orientation = _useSelect.orientation;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      insertBlocks = _useDispatch.insertBlocks,\n      updateBlockAttributes = _useDispatch.updateBlockAttributes,\n      moveBlocksToPosition = _useDispatch.moveBlocksToPosition;\n\n  var onFilesDrop = Object(external_this_wp_element_[\"useCallback\"])(function (files) {\n    if (!hasUploadPermissions) {\n      return;\n    }\n\n    var transformation = Object(external_this_wp_blocks_[\"findTransform\"])(Object(external_this_wp_blocks_[\"getBlockTransforms\"])('from'), function (transform) {\n      return transform.type === 'files' && transform.isMatch(files);\n    });\n\n    if (transformation) {\n      var blocks = transformation.transform(files, updateBlockAttributes);\n      insertBlocks(blocks, targetBlockIndex, targetRootClientId);\n    }\n  }, [hasUploadPermissions, updateBlockAttributes, insertBlocks, targetBlockIndex, targetRootClientId]);\n  var onHTMLDrop = Object(external_this_wp_element_[\"useCallback\"])(function (HTML) {\n    var blocks = Object(external_this_wp_blocks_[\"pasteHandler\"])({\n      HTML: HTML,\n      mode: 'BLOCKS'\n    });\n\n    if (blocks.length) {\n      insertBlocks(blocks, targetBlockIndex, targetRootClientId);\n    }\n  }, [insertBlocks, targetBlockIndex, targetRootClientId]);\n  var onDrop = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    var _parseDropEvent = parseDropEvent(event),\n        sourceRootClientId = _parseDropEvent.srcRootClientId,\n        sourceClientIds = _parseDropEvent.srcClientIds,\n        dropType = _parseDropEvent.type; // If the user isn't dropping a block, return early.\n\n\n    if (dropType !== 'block') {\n      return;\n    }\n\n    var sourceBlockIndex = getBlockIndex(sourceClientIds[0]); // If the user is dropping to the same position, return early.\n\n    if (sourceRootClientId === targetRootClientId && sourceBlockIndex === targetBlockIndex) {\n      return;\n    } // If the user is attempting to drop a block within its own\n    // nested blocks, return early as this would create infinite\n    // recursion.\n\n\n    if (sourceClientIds.includes(targetRootClientId) || getClientIdsOfDescendants(sourceClientIds).some(function (id) {\n      return id === targetRootClientId;\n    })) {\n      return;\n    }\n\n    var isAtSameLevel = sourceRootClientId === targetRootClientId || sourceRootClientId === '' && targetRootClientId === undefined; // If the block is kept at the same level and moved downwards,\n    // subtract to account for blocks shifting upward to occupy its old position.\n\n    var insertIndex = isAtSameLevel && sourceBlockIndex < targetBlockIndex ? targetBlockIndex - 1 : targetBlockIndex;\n    moveBlocksToPosition(sourceClientIds, sourceRootClientId, targetRootClientId, insertIndex);\n  }, [getClientIdsOfDescendants, getBlockIndex, targetBlockIndex, moveBlocksToPosition, targetRootClientId]);\n\n  var _useDropZone = Object(external_this_wp_components_[\"__unstableUseDropZone\"])({\n    element: element,\n    onFilesDrop: onFilesDrop,\n    onHTMLDrop: onHTMLDrop,\n    onDrop: onDrop,\n    isDisabled: isLockedAll,\n    withPosition: true\n  }),\n      position = _useDropZone.position;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (position) {\n      var blockElements = Array.from(element.current.children);\n      var targetIndex = getNearestBlockIndex(blockElements, position, orientation);\n\n      if (targetIndex === undefined) {\n        return;\n      }\n\n      setTargetBlockIndex(targetIndex);\n    }\n  }, [position]);\n\n  if (position) {\n    return targetBlockIndex;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\n\nvar BLOCK_ANIMATION_THRESHOLD = 200;\n\nfunction BlockList(_ref, ref) {\n  var className = _ref.className,\n      rootClientId = _ref.rootClientId,\n      renderAppender = _ref.renderAppender,\n      _ref$__experimentalTa = _ref.__experimentalTagName,\n      __experimentalTagName = _ref$__experimentalTa === void 0 ? 'div' : _ref$__experimentalTa,\n      __experimentalAppenderTagName = _ref.__experimentalAppenderTagName,\n      _ref$__experimentalPa = _ref.__experimentalPassedProps,\n      __experimentalPassedProps = _ref$__experimentalPa === void 0 ? {} : _ref$__experimentalPa;\n\n  function selector(select) {\n    var _getBlockListSettings;\n\n    var _select = select('core/block-editor'),\n        getBlockOrder = _select.getBlockOrder,\n        getBlockListSettings = _select.getBlockListSettings,\n        getSelectedBlockClientId = _select.getSelectedBlockClientId,\n        getMultiSelectedBlockClientIds = _select.getMultiSelectedBlockClientIds,\n        hasMultiSelection = _select.hasMultiSelection,\n        getGlobalBlockCount = _select.getGlobalBlockCount,\n        isTyping = _select.isTyping;\n\n    return {\n      blockClientIds: getBlockOrder(rootClientId),\n      selectedBlockClientId: getSelectedBlockClientId(),\n      multiSelectedBlockClientIds: getMultiSelectedBlockClientIds(),\n      orientation: (_getBlockListSettings = getBlockListSettings(rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation,\n      hasMultiSelection: hasMultiSelection(),\n      enableAnimation: !isTyping() && getGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD\n    };\n  }\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(selector, [rootClientId]),\n      blockClientIds = _useSelect.blockClientIds,\n      selectedBlockClientId = _useSelect.selectedBlockClientId,\n      multiSelectedBlockClientIds = _useSelect.multiSelectedBlockClientIds,\n      orientation = _useSelect.orientation,\n      hasMultiSelection = _useSelect.hasMultiSelection,\n      enableAnimation = _useSelect.enableAnimation;\n\n  var Container = rootClientId ? __experimentalTagName : root_container;\n  var dropTargetIndex = useBlockDropZone({\n    element: ref,\n    rootClientId: rootClientId\n  });\n  var isAppenderDropTarget = dropTargetIndex === blockClientIds.length;\n  return Object(external_this_wp_element_[\"createElement\"])(Container, Object(esm_extends[\"a\" /* default */])({}, __experimentalPassedProps, {\n    ref: ref,\n    className: classnames_default()('block-editor-block-list__layout', className, __experimentalPassedProps.className)\n  }), blockClientIds.map(function (clientId, index) {\n    var isBlockInSelection = hasMultiSelection ? multiSelectedBlockClientIds.includes(clientId) : selectedBlockClientId === clientId;\n    var isDropTarget = dropTargetIndex === index;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_data_[\"AsyncModeProvider\"], {\n      key: clientId,\n      value: !isBlockInSelection\n    }, Object(external_this_wp_element_[\"createElement\"])(block_list_block, {\n      rootClientId: rootClientId,\n      clientId: clientId // This prop is explicitely computed and passed down\n      // to avoid being impacted by the async mode\n      // otherwise there might be a small delay to trigger the animation.\n      ,\n      index: index,\n      enableAnimation: enableAnimation,\n      className: classnames_default()({\n        'is-drop-target': isDropTarget,\n        'is-dropping-horizontally': isDropTarget && orientation === 'horizontal'\n      })\n    }));\n  }), Object(external_this_wp_element_[\"createElement\"])(block_list_appender, {\n    tagName: __experimentalAppenderTagName,\n    rootClientId: rootClientId,\n    renderAppender: renderAppender,\n    className: classnames_default()({\n      'is-drop-target': isAppenderDropTarget,\n      'is-dropping-horizontally': isAppenderDropTarget && orientation === 'horizontal'\n    })\n  }));\n}\n\nvar ForwardedBlockList = Object(external_this_wp_element_[\"forwardRef\"])(BlockList); // This component needs to always be synchronous\n// as it's the one changing the async mode\n// depending on the block selection.\n\n/* harmony default export */ var block_list = (Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  var fallbackRef = Object(external_this_wp_element_[\"useRef\"])();\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_data_[\"AsyncModeProvider\"], {\n    value: false\n  }, Object(external_this_wp_element_[\"createElement\"])(ForwardedBlockList, Object(esm_extends[\"a\" /* default */])({\n    ref: ref || fallbackRef\n  }, props)));\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/live.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction LiveBlockPreview(_ref) {\n  var onClick = _ref.onClick;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    tabIndex: 0,\n    role: \"button\",\n    onClick: onClick,\n    onKeyPress: onClick\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(block_list, null)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/auto.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n // This is used to avoid rendering the block list if the sizes change.\n\nvar MemoizedBlockList;\n\nfunction AutoBlockPreview(_ref) {\n  var viewportWidth = _ref.viewportWidth,\n      __experimentalPadding = _ref.__experimentalPadding;\n\n  var _useResizeObserver = Object(external_this_wp_compose_[\"useResizeObserver\"])(),\n      _useResizeObserver2 = Object(slicedToArray[\"a\" /* default */])(_useResizeObserver, 2),\n      containerResizeListener = _useResizeObserver2[0],\n      containerWidth = _useResizeObserver2[1].width;\n\n  var _useResizeObserver3 = Object(external_this_wp_compose_[\"useResizeObserver\"])(),\n      _useResizeObserver4 = Object(slicedToArray[\"a\" /* default */])(_useResizeObserver3, 2),\n      containtResizeListener = _useResizeObserver4[0],\n      contentHeight = _useResizeObserver4[1].height; // Initialize on render instead of module top level, to avoid circular dependency issues.\n\n\n  MemoizedBlockList = MemoizedBlockList || Object(external_this_wp_compose_[\"pure\"])(block_list);\n  var scale = (containerWidth - 2 * __experimentalPadding) / viewportWidth;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-preview__container editor-styles-wrapper\",\n    \"aria-hidden\": true,\n    style: {\n      height: contentHeight * scale + 2 * __experimentalPadding\n    }\n  }, containerResizeListener, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], {\n    style: {\n      transform: \"scale(\".concat(scale, \")\"),\n      width: viewportWidth,\n      left: __experimentalPadding,\n      right: __experimentalPadding,\n      top: __experimentalPadding\n    },\n    className: \"block-editor-block-preview__content\"\n  }, containtResizeListener, Object(external_this_wp_element_[\"createElement\"])(MemoizedBlockList, null)));\n}\n\n/* harmony default export */ var auto = (AutoBlockPreview);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-preview/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockPreview(_ref) {\n  var blocks = _ref.blocks,\n      _ref$__experimentalPa = _ref.__experimentalPadding,\n      __experimentalPadding = _ref$__experimentalPa === void 0 ? 0 : _ref$__experimentalPa,\n      _ref$viewportWidth = _ref.viewportWidth,\n      viewportWidth = _ref$viewportWidth === void 0 ? 700 : _ref$viewportWidth,\n      _ref$__experimentalLi = _ref.__experimentalLive,\n      __experimentalLive = _ref$__experimentalLi === void 0 ? false : _ref$__experimentalLi,\n      __experimentalOnClick = _ref.__experimentalOnClick;\n\n  var settings = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings();\n  }, []);\n  var renderedBlocks = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_lodash_[\"castArray\"])(blocks);\n  }, [blocks]);\n\n  if (!blocks || blocks.length === 0) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(provider, {\n    value: renderedBlocks,\n    settings: settings\n  }, __experimentalLive ? Object(external_this_wp_element_[\"createElement\"])(LiveBlockPreview, {\n    onClick: __experimentalOnClick\n  }) : Object(external_this_wp_element_[\"createElement\"])(auto, {\n    viewportWidth: viewportWidth,\n    __experimentalPadding: __experimentalPadding\n  }));\n}\n/**\n * BlockPreview renders a preview of a block or array of blocks.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-preview/README.md\n *\n * @param {Object} preview options for how the preview should be shown\n * @param {Array|Object} preview.blocks A block instance (object) or an array of blocks to be previewed.\n * @param {number} preview.viewportWidth Width of the preview container in pixels. Controls at what size the blocks will be rendered inside the preview. Default: 700.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n/* harmony default export */ var block_preview = (Object(external_this_wp_element_[\"memo\"])(BlockPreview));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/preview-panel.js\n\n\n\nfunction preview_panel_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction preview_panel_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { preview_panel_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { preview_panel_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction InserterPreviewPanel(_ref) {\n  var item = _ref.item;\n  var hoveredItemBlockType = Object(external_this_wp_blocks_[\"getBlockType\"])(item.name);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__menu-preview-panel\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__preview\"\n  }, Object(external_this_wp_blocks_[\"isReusableBlock\"])(item) || hoveredItemBlockType.example ? Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__preview-content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_preview, {\n    __experimentalPadding: 16,\n    viewportWidth: 500,\n    blocks: hoveredItemBlockType.example ? Object(external_this_wp_blocks_[\"getBlockFromExample\"])(item.name, {\n      attributes: preview_panel_objectSpread({}, hoveredItemBlockType.example.attributes, {}, item.initialAttributes),\n      innerBlocks: hoveredItemBlockType.example.innerBlocks\n    }) : Object(external_this_wp_blocks_[\"createBlock\"])(item.name, item.initialAttributes)\n  })) : Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__preview-content-missing\"\n  }, Object(external_this_wp_i18n_[\"__\"])('No Preview Available.'))), !Object(external_this_wp_blocks_[\"isReusableBlock\"])(item) && Object(external_this_wp_element_[\"createElement\"])(block_card, {\n    blockType: item\n  }));\n}\n\n/* harmony default export */ var preview_panel = (InserterPreviewPanel);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction InserterListItem(_ref) {\n  var icon = _ref.icon,\n      _onClick = _ref.onClick,\n      isDisabled = _ref.isDisabled,\n      title = _ref.title,\n      className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"icon\", \"onClick\", \"isDisabled\", \"title\", \"className\"]);\n\n  var itemIconStyle = icon ? {\n    backgroundColor: icon.background,\n    color: icon.foreground\n  } : {};\n  return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n    className: \"block-editor-block-types-list__list-item\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('block-editor-block-types-list__item', className),\n    onClick: function onClick(event) {\n      event.preventDefault();\n\n      _onClick();\n    },\n    disabled: isDisabled\n  }, props), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-block-types-list__item-icon\",\n    style: itemIconStyle\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: icon,\n    showColors: true\n  })), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-block-types-list__item-title\"\n  }, title)));\n}\n\n/* harmony default export */ var inserter_list_item = (InserterListItem);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-types-list/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockTypesList(_ref) {\n  var _ref$items = _ref.items,\n      items = _ref$items === void 0 ? [] : _ref$items,\n      onSelect = _ref.onSelect,\n      _ref$onHover = _ref.onHover,\n      onHover = _ref$onHover === void 0 ? function () {} : _ref$onHover,\n      children = _ref.children;\n  var normalizedItems = includeVariationsInInserterItems(items);\n  return (\n    /*\n     * Disable reason: The `list` ARIA role is redundant but\n     * Safari+VoiceOver won't announce the list otherwise.\n     */\n\n    /* eslint-disable jsx-a11y/no-redundant-roles */\n    Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      role: \"list\",\n      className: \"block-editor-block-types-list\"\n    }, normalizedItems.map(function (item) {\n      return Object(external_this_wp_element_[\"createElement\"])(inserter_list_item, {\n        key: item.id,\n        className: Object(external_this_wp_blocks_[\"getBlockMenuDefaultClassName\"])(item.id),\n        icon: item.icon,\n        onClick: function onClick() {\n          onSelect(item);\n          onHover(null);\n        },\n        onFocus: function onFocus() {\n          return onHover(item);\n        },\n        onMouseEnter: function onMouseEnter() {\n          return onHover(item);\n        },\n        onMouseLeave: function onMouseLeave() {\n          return onHover(null);\n        },\n        onBlur: function onBlur() {\n          return onHover(null);\n        },\n        isDisabled: item.isDisabled,\n        title: item.title\n      });\n    }), children)\n    /* eslint-enable jsx-a11y/no-redundant-roles */\n\n  );\n}\n\n/* harmony default export */ var block_types_list = (BlockTypesList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/child-blocks.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction ChildBlocks(_ref) {\n  var rootClientId = _ref.rootClientId,\n      children = _ref.children;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/blocks'),\n        getBlockType = _select.getBlockType;\n\n    var _select2 = select('core/block-editor'),\n        getBlockName = _select2.getBlockName;\n\n    var rootBlockName = getBlockName(rootClientId);\n    var rootBlockType = getBlockType(rootBlockName);\n    return {\n      rootBlockTitle: rootBlockType && rootBlockType.title,\n      rootBlockIcon: rootBlockType && rootBlockType.icon\n    };\n  }),\n      rootBlockTitle = _useSelect.rootBlockTitle,\n      rootBlockIcon = _useSelect.rootBlockIcon;\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__child-blocks\"\n  }, (rootBlockIcon || rootBlockTitle) && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__parent-block-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: rootBlockIcon,\n    showColors: true\n  }), rootBlockTitle && Object(external_this_wp_element_[\"createElement\"])(\"h2\", null, rootBlockTitle)), children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter-menu-extension/index.js\n/**\n * WordPress dependencies\n */\n\n\nvar inserter_menu_extension_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('__experimentalInserterMenuExtension'),\n    __experimentalInserterMenuExtension = inserter_menu_extension_createSlotFill.Fill,\n    inserter_menu_extension_Slot = inserter_menu_extension_createSlotFill.Slot;\n\n__experimentalInserterMenuExtension.Slot = inserter_menu_extension_Slot;\n/* harmony default export */ var inserter_menu_extension = (__experimentalInserterMenuExtension);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/panel.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction InserterPanel(_ref) {\n  var title = _ref.title,\n      icon = _ref.icon,\n      children = _ref.children;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__panel-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"block-editor-inserter__panel-title\"\n  }, title), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Icon\"], {\n    icon: icon\n  })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__panel-content\"\n  }, children));\n}\n\n/* harmony default export */ var panel = (InserterPanel);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/no-results.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction InserterNoResults() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__no-results\"\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    className: \"block-editor-inserter__no-results-icon\",\n    icon: block_default[\"a\" /* default */]\n  }), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('No results found.')));\n}\n\n/* harmony default export */ var no_results = (InserterNoResults);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-types-tab.js\n\n\n\n\nfunction block_types_tab_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_types_tab_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_types_tab_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_types_tab_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\nvar getBlockNamespace = function getBlockNamespace(item) {\n  return item.name.split('/')[0];\n};\n\nvar MAX_SUGGESTED_ITEMS = 6;\nfunction BlockTypesTab(_ref) {\n  var rootClientId = _ref.rootClientId,\n      onInsert = _ref.onInsert,\n      onHover = _ref.onHover,\n      filterValue = _ref.filterValue,\n      debouncedSpeak = _ref.debouncedSpeak,\n      showMostUsedBlocks = _ref.showMostUsedBlocks;\n\n  var _useBlockTypesState = use_block_types_state(rootClientId, onInsert),\n      _useBlockTypesState2 = Object(slicedToArray[\"a\" /* default */])(_useBlockTypesState, 4),\n      items = _useBlockTypesState2[0],\n      categories = _useBlockTypesState2[1],\n      collections = _useBlockTypesState2[2],\n      onSelectItem = _useBlockTypesState2[3];\n\n  var hasChildItems = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName;\n\n    var _select2 = select('core/blocks'),\n        getChildBlockNames = _select2.getChildBlockNames;\n\n    var rootBlockName = getBlockName(rootClientId);\n    return !!getChildBlockNames(rootBlockName).length;\n  }, [rootClientId]);\n  var filteredItems = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return search_items_searchBlockItems(items, categories, collections, filterValue);\n  }, [filterValue, items, categories, collections]);\n  var suggestedItems = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_lodash_[\"orderBy\"])(items, ['frecency'], ['desc']).slice(0, MAX_SUGGESTED_ITEMS);\n  }, [items]);\n  var uncategorizedItems = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return filteredItems.filter(function (item) {\n      return !item.category;\n    });\n  }, [filteredItems]);\n  var itemsPerCategory = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var getCategoryIndex = function getCategoryIndex(item) {\n      return Object(external_this_lodash_[\"findIndex\"])(categories, function (category) {\n        return category.slug === item.category;\n      });\n    };\n\n    return Object(external_this_lodash_[\"flow\"])(function (itemList) {\n      return itemList.filter(function (item) {\n        return item.category && item.category !== 'reusable';\n      });\n    }, function (itemList) {\n      return Object(external_this_lodash_[\"sortBy\"])(itemList, getCategoryIndex);\n    }, function (itemList) {\n      return Object(external_this_lodash_[\"groupBy\"])(itemList, 'category');\n    })(filteredItems);\n  }, [filteredItems, categories]);\n  var itemsPerCollection = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    // Create a new Object to avoid mutating collection\n    var result = block_types_tab_objectSpread({}, collections);\n\n    Object.keys(collections).forEach(function (namespace) {\n      result[namespace] = filteredItems.filter(function (item) {\n        return getBlockNamespace(item) === namespace;\n      });\n\n      if (result[namespace].length === 0) {\n        delete result[namespace];\n      }\n    });\n    return result;\n  }, [filteredItems, collections]); // Announce search results on change\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var resultsFoundMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %d: number of results. */\n    Object(external_this_wp_i18n_[\"_n\"])('%d result found.', '%d results found.', filteredItems.length), filteredItems.length);\n    debouncedSpeak(resultsFoundMessage);\n  }, [filterValue, debouncedSpeak]);\n  var hasItems = !Object(external_this_lodash_[\"isEmpty\"])(filteredItems);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, hasChildItems && Object(external_this_wp_element_[\"createElement\"])(ChildBlocks, {\n    rootClientId: rootClientId\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_list // Pass along every block, as useBlockTypesState() and\n  // getInserterItems() will have already filtered out\n  // non-child blocks.\n  , {\n    items: filteredItems,\n    onSelect: onSelectItem,\n    onHover: onHover\n  })), showMostUsedBlocks && !hasChildItems && !!suggestedItems.length && !filterValue && Object(external_this_wp_element_[\"createElement\"])(panel, {\n    title: Object(external_this_wp_i18n_[\"_x\"])('Most used', 'blocks')\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n    items: suggestedItems,\n    onSelect: onSelectItem,\n    onHover: onHover\n  })), !hasChildItems && Object(external_this_lodash_[\"map\"])(categories, function (category) {\n    var categoryItems = itemsPerCategory[category.slug];\n\n    if (!categoryItems || !categoryItems.length) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(panel, {\n      key: category.slug,\n      title: category.title,\n      icon: category.icon\n    }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n      items: categoryItems,\n      onSelect: onSelectItem,\n      onHover: onHover\n    }));\n  }), !hasChildItems && !!uncategorizedItems.length && Object(external_this_wp_element_[\"createElement\"])(panel, {\n    className: \"block-editor-inserter__uncategorized-blocks-panel\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Uncategorized')\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n    items: uncategorizedItems,\n    onSelect: onSelectItem,\n    onHover: onHover\n  })), !hasChildItems && Object(external_this_lodash_[\"map\"])(collections, function (collection, namespace) {\n    var collectionItems = itemsPerCollection[namespace];\n\n    if (!collectionItems || !collectionItems.length) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(panel, {\n      key: namespace,\n      title: collection.title,\n      icon: collection.icon\n    }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n      items: collectionItems,\n      onSelect: onSelectItem,\n      onHover: onHover\n    }));\n  }), Object(external_this_wp_element_[\"createElement\"])(inserter_menu_extension.Slot, {\n    fillProps: {\n      onSelect: onSelectItem,\n      onHover: onHover,\n      filterValue: filterValue,\n      hasItems: hasItems\n    }\n  }, function (fills) {\n    if (fills.length) {\n      return fills;\n    }\n\n    if (!hasItems) {\n      return Object(external_this_wp_element_[\"createElement\"])(no_results, null);\n    }\n\n    return null;\n  }));\n}\n/* harmony default export */ var block_types_tab = (Object(external_this_wp_components_[\"withSpokenMessages\"])(BlockTypesTab));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-patterns-state.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\n\nvar use_patterns_state_usePatternsState = function usePatternsState(onInsert) {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select$getSettings = select('core/block-editor').getSettings(),\n        __experimentalBlockPatterns = _select$getSettings.__experimentalBlockPatterns,\n        __experimentalBlockPatternCategories = _select$getSettings.__experimentalBlockPatternCategories;\n\n    return {\n      patterns: __experimentalBlockPatterns,\n      patternCategories: __experimentalBlockPatternCategories\n    };\n  }, []),\n      patternCategories = _useSelect.patternCategories,\n      patterns = _useSelect.patterns;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/notices'),\n      createSuccessNotice = _useDispatch.createSuccessNotice;\n\n  var onClickPattern = Object(external_this_wp_element_[\"useCallback\"])(function (pattern, blocks) {\n    onInsert(Object(external_this_lodash_[\"map\"])(blocks, function (block) {\n      return Object(external_this_wp_blocks_[\"cloneBlock\"])(block);\n    }));\n    createSuccessNotice(Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: block pattern title. */\n    Object(external_this_wp_i18n_[\"__\"])('Pattern \"%s\" inserted.'), pattern.title), {\n      type: 'snackbar'\n    });\n  }, []);\n  return [patterns, patternCategories, onClickPattern];\n};\n\n/* harmony default export */ var use_patterns_state = (use_patterns_state_usePatternsState);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-patterns-list/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockPattern(_ref) {\n  var pattern = _ref.pattern,\n      _onClick = _ref.onClick;\n  var content = pattern.content,\n      viewportWidth = pattern.viewportWidth;\n  var blocks = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_wp_blocks_[\"parse\"])(content);\n  }, [content]);\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BlockPattern);\n  var descriptionId = \"block-editor-block-patterns-list__item-description-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-patterns-list__item\",\n    role: \"button\",\n    onClick: function onClick() {\n      return _onClick(pattern, blocks);\n    },\n    onKeyDown: function onKeyDown(event) {\n      if (external_this_wp_keycodes_[\"ENTER\"] === event.keyCode || external_this_wp_keycodes_[\"SPACE\"] === event.keyCode) {\n        _onClick(pattern, blocks);\n      }\n    },\n    tabIndex: 0,\n    \"aria-label\": pattern.title,\n    \"aria-describedby\": pattern.description ? descriptionId : undefined\n  }, Object(external_this_wp_element_[\"createElement\"])(block_preview, {\n    blocks: blocks,\n    viewportWidth: viewportWidth\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-patterns-list__item-title\"\n  }, pattern.title), !!pattern.description && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n    id: descriptionId\n  }, pattern.description));\n}\n\nfunction BlockPatternPlaceholder() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-patterns-list__item is-placeholder\"\n  });\n}\n\nfunction BlockPatternList(_ref2) {\n  var blockPatterns = _ref2.blockPatterns,\n      shownPatterns = _ref2.shownPatterns,\n      onClickPattern = _ref2.onClickPattern;\n  return blockPatterns.map(function (pattern) {\n    var isShown = shownPatterns.includes(pattern);\n    return isShown ? Object(external_this_wp_element_[\"createElement\"])(BlockPattern, {\n      key: pattern.name,\n      pattern: pattern,\n      onClick: onClickPattern\n    }) : Object(external_this_wp_element_[\"createElement\"])(BlockPatternPlaceholder, {\n      key: pattern.name\n    });\n  });\n}\n\n/* harmony default export */ var block_patterns_list = (BlockPatternList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/block-patterns-tab.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction BlockPatternsSearchResults(_ref) {\n  var filterValue = _ref.filterValue,\n      onInsert = _ref.onInsert;\n\n  var _usePatternsState = use_patterns_state(onInsert),\n      _usePatternsState2 = Object(slicedToArray[\"a\" /* default */])(_usePatternsState, 3),\n      patterns = _usePatternsState2[0],\n      onClick = _usePatternsState2[2];\n\n  var currentShownPatterns = Object(external_this_wp_compose_[\"useAsyncList\"])(patterns);\n  var filteredPatterns = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return search_items_searchItems(patterns, filterValue);\n  }, [filterValue, patterns]);\n\n  if (filterValue) {\n    return !!filteredPatterns.length ? Object(external_this_wp_element_[\"createElement\"])(panel, {\n      title: Object(external_this_wp_i18n_[\"__\"])('Search Results')\n    }, Object(external_this_wp_element_[\"createElement\"])(block_patterns_list, {\n      shownPatterns: currentShownPatterns,\n      blockPatterns: filteredPatterns,\n      onClickPattern: onClick\n    })) : Object(external_this_wp_element_[\"createElement\"])(no_results, null);\n  }\n}\n\nfunction BlockPatternsPerCategories(_ref2) {\n  var onInsert = _ref2.onInsert;\n\n  var _usePatternsState3 = use_patterns_state(onInsert),\n      _usePatternsState4 = Object(slicedToArray[\"a\" /* default */])(_usePatternsState3, 3),\n      patterns = _usePatternsState4[0],\n      categories = _usePatternsState4[1],\n      onClick = _usePatternsState4[2];\n\n  var getPatternIndex = Object(external_this_wp_element_[\"useCallback\"])(function (pattern) {\n    if (!pattern.categories || !pattern.categories.length) {\n      return Infinity;\n    }\n\n    var indexedCategories = Object(external_this_lodash_[\"fromPairs\"])(categories.map(function (_ref3, index) {\n      var name = _ref3.name;\n      return [name, index];\n    }));\n    return Math.min.apply(Math, Object(toConsumableArray[\"a\" /* default */])(pattern.categories.map(function (category) {\n      return indexedCategories[category] !== undefined ? indexedCategories[category] : Infinity;\n    })));\n  }, [categories]); // Ordering the patterns per category is important for the async rendering.\n\n  var orderedPatterns = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return patterns.sort(function (a, b) {\n      return getPatternIndex(a) - getPatternIndex(b);\n    });\n  }, [patterns, getPatternIndex]);\n  var currentShownPatterns = Object(external_this_wp_compose_[\"useAsyncList\"])(orderedPatterns); // Uncategorized Patterns\n\n  var uncategorizedPatterns = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return patterns.filter(function (pattern) {\n      return getPatternIndex(pattern) === Infinity;\n    });\n  }, [patterns, getPatternIndex]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, categories.map(function (patternCategory) {\n    var categoryPatterns = patterns.filter(function (pattern) {\n      return pattern.categories && pattern.categories.includes(patternCategory.name);\n    });\n    return !!categoryPatterns.length && Object(external_this_wp_element_[\"createElement\"])(panel, {\n      key: patternCategory.name,\n      title: patternCategory.label\n    }, Object(external_this_wp_element_[\"createElement\"])(block_patterns_list, {\n      shownPatterns: currentShownPatterns,\n      blockPatterns: categoryPatterns,\n      onClickPattern: onClick\n    }));\n  }), !!uncategorizedPatterns.length && Object(external_this_wp_element_[\"createElement\"])(panel, {\n    title: Object(external_this_wp_i18n_[\"_x\"])('Uncategorized')\n  }, Object(external_this_wp_element_[\"createElement\"])(block_patterns_list, {\n    shownPatterns: currentShownPatterns,\n    blockPatterns: uncategorizedPatterns,\n    onClickPattern: onClick\n  })));\n}\n\nfunction BlockPatternsTabs(_ref4) {\n  var onInsert = _ref4.onInsert,\n      filterValue = _ref4.filterValue;\n  return filterValue ? Object(external_this_wp_element_[\"createElement\"])(BlockPatternsSearchResults, {\n    onInsert: onInsert,\n    filterValue: filterValue\n  }) : Object(external_this_wp_element_[\"createElement\"])(BlockPatternsPerCategories, {\n    onInsert: onInsert\n  });\n}\n\n/* harmony default export */ var block_patterns_tab = (BlockPatternsTabs);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/reusable-blocks-tab.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction ReusableBlocksList(_ref) {\n  var debouncedSpeak = _ref.debouncedSpeak,\n      filterValue = _ref.filterValue,\n      onHover = _ref.onHover,\n      onInsert = _ref.onInsert,\n      rootClientId = _ref.rootClientId;\n\n  var _useBlockTypesState = use_block_types_state(rootClientId, onInsert),\n      _useBlockTypesState2 = Object(slicedToArray[\"a\" /* default */])(_useBlockTypesState, 4),\n      items = _useBlockTypesState2[0],\n      categories = _useBlockTypesState2[1],\n      collections = _useBlockTypesState2[2],\n      onSelectItem = _useBlockTypesState2[3];\n\n  var filteredItems = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var reusableItems = items.filter(function (_ref2) {\n      var category = _ref2.category;\n      return category === 'reusable';\n    });\n\n    if (!filterValue) {\n      return reusableItems;\n    }\n\n    return search_items_searchBlockItems(reusableItems, categories, collections, filterValue);\n  }, [filterValue, items, categories, collections]); // Announce search results on change.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var resultsFoundMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %d: number of results. */\n    Object(external_this_wp_i18n_[\"_n\"])('%d result found.', '%d results found.', filteredItems.length), filteredItems.length);\n    debouncedSpeak(resultsFoundMessage);\n  }, [filterValue, debouncedSpeak]);\n\n  if (filteredItems.length === 0) {\n    return Object(external_this_wp_element_[\"createElement\"])(no_results, null);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(panel, {\n    title: filterValue ? Object(external_this_wp_i18n_[\"__\"])('Search Results') : Object(external_this_wp_i18n_[\"__\"])('Reusable blocks')\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n    items: filteredItems,\n    onSelect: onSelectItem,\n    onHover: onHover\n  }));\n} // The unwrapped component is only exported for use by unit tests.\n\n/**\n * List of reusable blocks shown in the \"Reusable\" tab of the inserter.\n *\n * @param {Object}   props                Component props.\n * @param {?string}  props.rootClientId   Client id of block to insert into.\n * @param {Function} props.onInsert       Callback to run when item is inserted.\n * @param {Function} props.onHover        Callback to run when item is hovered.\n * @param {?string}  props.filterValue    Search term.\n * @param {Function} props.debouncedSpeak Debounced speak function.\n *\n * @return {WPComponent} The component.\n */\n\n\nfunction ReusableBlocksTab(_ref3) {\n  var rootClientId = _ref3.rootClientId,\n      onInsert = _ref3.onInsert,\n      onHover = _ref3.onHover,\n      filterValue = _ref3.filterValue,\n      debouncedSpeak = _ref3.debouncedSpeak;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(ReusableBlocksList, {\n    debouncedSpeak: debouncedSpeak,\n    filterValue: filterValue,\n    onHover: onHover,\n    onInsert: onInsert,\n    rootClientId: rootClientId\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__manage-reusable-blocks-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    className: \"block-editor-inserter__manage-reusable-blocks\",\n    href: Object(external_this_wp_url_[\"addQueryArgs\"])('edit.php', {\n      post_type: 'wp_block'\n    })\n  }, Object(external_this_wp_i18n_[\"__\"])('Manage all reusable blocks'))));\n}\n/* harmony default export */ var reusable_blocks_tab = (Object(external_this_wp_components_[\"withSpokenMessages\"])(ReusableBlocksTab));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/hooks/use-insertion-point.js\n\n\nfunction use_insertion_point_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction use_insertion_point_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_insertion_point_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_insertion_point_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * @typedef WPInserterConfig\n *\n * @property {string=} rootClientId        Inserter Root Client ID.\n * @property {string=} clientId            Inserter Client ID.\n * @property {boolean} isAppender          Whether the inserter is an appender or not.\n * @property {boolean} selectBlockOnInsert Whether the block should be selected on insert.\n */\n\n/**\n * Returns the insertion point state given the inserter config.\n *\n * @param {WPInserterConfig} config Inserter Config.\n * @return {Array} Insertion Point State (rootClientID, onInsertBlocks and onToggle).\n */\n\nfunction useInsertionPoint(_ref) {\n  var rootClientId = _ref.rootClientId,\n      clientId = _ref.clientId,\n      isAppender = _ref.isAppender,\n      selectBlockOnInsert = _ref.selectBlockOnInsert;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _getSettings$__experi;\n\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings,\n        getBlockRootClientId = _select.getBlockRootClientId,\n        _getBlockSelectionEnd = _select.getBlockSelectionEnd;\n\n    var destRootClientId = rootClientId;\n\n    if (!destRootClientId && !clientId && !isAppender) {\n      var end = _getBlockSelectionEnd();\n\n      if (end) {\n        destRootClientId = getBlockRootClientId(end);\n      }\n    }\n\n    return use_insertion_point_objectSpread({\n      hasPatterns: !!((_getSettings$__experi = getSettings().__experimentalBlockPatterns) === null || _getSettings$__experi === void 0 ? void 0 : _getSettings$__experi.length),\n      destinationRootClientId: destRootClientId\n    }, Object(external_this_lodash_[\"pick\"])(select('core/block-editor'), ['getSelectedBlock', 'getBlockIndex', 'getBlockSelectionEnd', 'getBlockOrder']));\n  }, [isAppender, clientId, rootClientId]),\n      destinationRootClientId = _useSelect.destinationRootClientId,\n      getSelectedBlock = _useSelect.getSelectedBlock,\n      getBlockIndex = _useSelect.getBlockIndex,\n      getBlockSelectionEnd = _useSelect.getBlockSelectionEnd,\n      getBlockOrder = _useSelect.getBlockOrder;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      replaceBlocks = _useDispatch.replaceBlocks,\n      insertBlocks = _useDispatch.insertBlocks,\n      showInsertionPoint = _useDispatch.showInsertionPoint,\n      hideInsertionPoint = _useDispatch.hideInsertionPoint;\n\n  function getInsertionIndex() {\n    // If the clientId is defined, we insert at the position of the block.\n    if (clientId) {\n      return getBlockIndex(clientId, destinationRootClientId);\n    } // If there a selected block, we insert after the selected block.\n\n\n    var end = getBlockSelectionEnd();\n\n    if (!isAppender && end) {\n      return getBlockIndex(end, destinationRootClientId) + 1;\n    } // Otherwise, we insert at the end of the current rootClientId\n\n\n    return getBlockOrder(destinationRootClientId).length;\n  }\n\n  var onInsertBlocks = function onInsertBlocks(blocks) {\n    var selectedBlock = getSelectedBlock();\n\n    if (!isAppender && selectedBlock && Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])(selectedBlock)) {\n      replaceBlocks(selectedBlock.clientId, blocks);\n    } else {\n      insertBlocks(blocks, getInsertionIndex(), destinationRootClientId, selectBlockOnInsert);\n    }\n\n    if (!selectBlockOnInsert) {\n      // translators: %d: the name of the block that has been added\n      var message = Object(external_this_wp_i18n_[\"_n\"])('%d block added.', '%d blocks added', blocks.length);\n\n      Object(external_this_wp_a11y_[\"speak\"])(message);\n    }\n  };\n\n  var onToggleInsertionPoint = function onToggleInsertionPoint(show) {\n    if (show) {\n      var index = getInsertionIndex();\n      showInsertionPoint(destinationRootClientId, index);\n    } else {\n      hideInsertionPoint();\n    }\n  };\n\n  return [destinationRootClientId, onInsertBlocks, onToggleInsertionPoint];\n}\n\n/* harmony default export */ var use_insertion_point = (useInsertionPoint);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/tabs.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar tabs_blocksTab = {\n  name: 'blocks',\n\n  /* translators: Blocks tab title in the block inserter. */\n  title: Object(external_this_wp_i18n_[\"__\"])('Blocks')\n};\nvar tabs_patternsTab = {\n  name: 'patterns',\n\n  /* translators: Patterns tab title in the block inserter. */\n  title: Object(external_this_wp_i18n_[\"__\"])('Patterns')\n};\nvar tabs_reusableBlocksTab = {\n  name: 'reusable',\n\n  /* translators: Reusable blocks tab title in the block inserter. */\n  title: Object(external_this_wp_i18n_[\"__\"])('Reusable')\n};\n\nfunction InserterTabs(_ref) {\n  var children = _ref.children,\n      _ref$showPatterns = _ref.showPatterns,\n      showPatterns = _ref$showPatterns === void 0 ? false : _ref$showPatterns,\n      _ref$showReusableBloc = _ref.showReusableBlocks,\n      showReusableBlocks = _ref$showReusableBloc === void 0 ? false : _ref$showReusableBloc;\n  var tabs = [tabs_blocksTab];\n\n  if (showPatterns) {\n    tabs.push(tabs_patternsTab);\n  }\n\n  if (showReusableBlocks) {\n    tabs.push(tabs_reusableBlocksTab);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TabPanel\"], {\n    className: \"block-editor-inserter__tabs\",\n    tabs: tabs\n  }, children);\n}\n\n/* harmony default export */ var inserter_tabs = (InserterTabs);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/menu.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\nvar stopKeyPropagation = function stopKeyPropagation(event) {\n  return event.stopPropagation();\n};\n\nfunction InserterMenu(_ref) {\n  var rootClientId = _ref.rootClientId,\n      clientId = _ref.clientId,\n      isAppender = _ref.isAppender,\n      __experimentalSelectBlockOnInsert = _ref.__experimentalSelectBlockOnInsert,\n      onSelect = _ref.onSelect,\n      showInserterHelpPanel = _ref.showInserterHelpPanel,\n      showMostUsedBlocks = _ref.showMostUsedBlocks;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(''),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      filterValue = _useState2[0],\n      setFilterValue = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      hoveredItem = _useState4[0],\n      setHoveredItem = _useState4[1];\n\n  var _useInsertionPoint = use_insertion_point({\n    rootClientId: rootClientId,\n    clientId: clientId,\n    isAppender: isAppender,\n    selectBlockOnInsert: __experimentalSelectBlockOnInsert\n  }),\n      _useInsertionPoint2 = Object(slicedToArray[\"a\" /* default */])(_useInsertionPoint, 3),\n      destinationRootClientId = _useInsertionPoint2[0],\n      onInsertBlocks = _useInsertionPoint2[1],\n      onToggleInsertionPoint = _useInsertionPoint2[2];\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select$getSettings = select('core/block-editor').getSettings(),\n        __experimentalBlockPatterns = _select$getSettings.__experimentalBlockPatterns,\n        __experimentalReusableBlocks = _select$getSettings.__experimentalReusableBlocks;\n\n    return {\n      hasPatterns: !!(__experimentalBlockPatterns === null || __experimentalBlockPatterns === void 0 ? void 0 : __experimentalBlockPatterns.length),\n      hasReusableBlocks: !!(__experimentalReusableBlocks === null || __experimentalReusableBlocks === void 0 ? void 0 : __experimentalReusableBlocks.length)\n    };\n  }, []),\n      hasPatterns = _useSelect.hasPatterns,\n      hasReusableBlocks = _useSelect.hasReusableBlocks;\n\n  var showPatterns = !destinationRootClientId && hasPatterns;\n\n  var onKeyDown = function onKeyDown(event) {\n    if ([external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"BACKSPACE\"], external_this_wp_keycodes_[\"ENTER\"]].includes(event.keyCode)) {\n      // Stop the key event from propagating up to ObserveTyping.startTypingInTextField.\n      event.stopPropagation();\n    }\n  };\n\n  var onInsert = function onInsert(blocks) {\n    onInsertBlocks(blocks);\n    onSelect();\n  };\n\n  var onHover = function onHover(item) {\n    onToggleInsertionPoint(!!item);\n    setHoveredItem(item);\n  };\n\n  var blocksTab = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__block-list\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_tab, {\n    rootClientId: destinationRootClientId,\n    onInsert: onInsert,\n    onHover: onHover,\n    filterValue: filterValue,\n    showMostUsedBlocks: showMostUsedBlocks\n  })), showInserterHelpPanel && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__tips\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n    as: \"h2\"\n  }, Object(external_this_wp_i18n_[\"__\"])('A tip for using the block editor')), Object(external_this_wp_element_[\"createElement\"])(tips, null)));\n  var patternsTab = Object(external_this_wp_element_[\"createElement\"])(block_patterns_tab, {\n    onInsert: onInsert,\n    filterValue: filterValue\n  });\n  var reusableBlocksTab = Object(external_this_wp_element_[\"createElement\"])(reusable_blocks_tab, {\n    rootClientId: destinationRootClientId,\n    onInsert: onInsert,\n    onHover: onHover,\n    filterValue: filterValue\n  }); // Disable reason (no-autofocus): The inserter menu is a modal display, not one which\n  // is always visible, and one which already incurs this behavior of autoFocus via\n  // Popover's focusOnMount.\n  // Disable reason (no-static-element-interactions): Navigational key-presses within\n  // the menu are prevented from triggering WritingFlow and ObserveTyping interactions.\n\n  /* eslint-disable jsx-a11y/no-autofocus, jsx-a11y/no-static-element-interactions */\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__menu\",\n    onKeyPress: stopKeyPropagation,\n    onKeyDown: onKeyDown\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__main-area\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(search_form, {\n    onChange: setFilterValue,\n    value: filterValue\n  }), (showPatterns || hasReusableBlocks) && Object(external_this_wp_element_[\"createElement\"])(inserter_tabs, {\n    showPatterns: showPatterns,\n    showReusableBlocks: hasReusableBlocks\n  }, function (tab) {\n    if (tab.name === 'blocks') {\n      return blocksTab;\n    } else if (tab.name === 'patterns') {\n      return patternsTab;\n    }\n\n    return reusableBlocksTab;\n  }), !showPatterns && !hasReusableBlocks && blocksTab)), showInserterHelpPanel && hoveredItem && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__preview-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(preview_panel, {\n    item: hoveredItem\n  })));\n  /* eslint-enable jsx-a11y/no-autofocus, jsx-a11y/no-static-element-interactions */\n}\n\n/* harmony default export */ var menu = (InserterMenu);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/quick-inserter.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\nvar SEARCH_THRESHOLD = 6;\nvar SHOWN_BLOCK_TYPES = 6;\nvar SHOWN_BLOCK_PATTERNS = 2;\n\nvar quick_inserter_preventArrowKeysPropagation = function preventArrowKeysPropagation(event) {\n  if ([external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"BACKSPACE\"], external_this_wp_keycodes_[\"ENTER\"]].includes(event.keyCode)) {\n    // Stop the key event from propagating up to ObserveTyping.startTypingInTextField.\n    event.stopPropagation();\n  }\n};\n\nvar quick_inserter_stopKeyPropagation = function stopKeyPropagation(event) {\n  return event.stopPropagation();\n};\n\nfunction QuickInserterList(_ref) {\n  var blockTypes = _ref.blockTypes,\n      blockPatterns = _ref.blockPatterns,\n      onSelectBlockType = _ref.onSelectBlockType,\n      onSelectBlockPattern = _ref.onSelectBlockPattern,\n      onHover = _ref.onHover;\n  var shownBlockTypes = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_lodash_[\"orderBy\"])(blockTypes, ['frecency'], ['desc']).slice(0, SHOWN_BLOCK_TYPES);\n  }, [blockTypes]);\n  var shownBlockPatterns = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return blockPatterns.slice(0, SHOWN_BLOCK_PATTERNS);\n  }, [blockTypes]);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__quick-inserter-results\"\n  }, !shownBlockTypes.length && !shownBlockPatterns.length && Object(external_this_wp_element_[\"createElement\"])(no_results, null), !!shownBlockTypes.length && Object(external_this_wp_element_[\"createElement\"])(panel, {\n    title: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], null, Object(external_this_wp_i18n_[\"__\"])('Blocks'))\n  }, Object(external_this_wp_element_[\"createElement\"])(block_types_list, {\n    items: shownBlockTypes,\n    onSelect: onSelectBlockType,\n    onHover: onHover\n  })), !!shownBlockTypes.length && !!shownBlockPatterns.length && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__quick-inserter-separator\"\n  }), !!shownBlockPatterns.length && Object(external_this_wp_element_[\"createElement\"])(panel, {\n    title: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], null, Object(external_this_wp_i18n_[\"__\"])('Blocks'))\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__quick-inserter-patterns\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_patterns_list, {\n    shownPatterns: shownBlockPatterns,\n    blockPatterns: shownBlockPatterns,\n    onClickPattern: onSelectBlockPattern\n  }))));\n}\n\nfunction QuickInserter(_ref2) {\n  var rootClientId = _ref2.rootClientId,\n      clientId = _ref2.clientId,\n      isAppender = _ref2.isAppender,\n      selectBlockOnInsert = _ref2.selectBlockOnInsert,\n      debouncedSpeak = _ref2.debouncedSpeak;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(''),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      filterValue = _useState2[0],\n      setFilterValue = _useState2[1];\n\n  var _useInsertionPoint = use_insertion_point({\n    rootClientId: rootClientId,\n    clientId: clientId,\n    isAppender: isAppender,\n    selectBlockOnInsert: selectBlockOnInsert\n  }),\n      _useInsertionPoint2 = Object(slicedToArray[\"a\" /* default */])(_useInsertionPoint, 3),\n      destinationRootClientId = _useInsertionPoint2[0],\n      onInsertBlocks = _useInsertionPoint2[1],\n      onToggleInsertionPoint = _useInsertionPoint2[2];\n\n  var _useBlockTypesState = use_block_types_state(destinationRootClientId, onInsertBlocks),\n      _useBlockTypesState2 = Object(slicedToArray[\"a\" /* default */])(_useBlockTypesState, 4),\n      blockTypes = _useBlockTypesState2[0],\n      blockTypeCategories = _useBlockTypesState2[1],\n      blockTypeCollections = _useBlockTypesState2[2],\n      onSelectBlockType = _useBlockTypesState2[3];\n\n  var _usePatternsState = use_patterns_state(onInsertBlocks),\n      _usePatternsState2 = Object(slicedToArray[\"a\" /* default */])(_usePatternsState, 3),\n      patterns = _usePatternsState2[0],\n      onSelectBlockPattern = _usePatternsState2[2];\n\n  var showPatterns = !destinationRootClientId && patterns.length && !!filterValue;\n  var showSearch = showPatterns && patterns.length > SEARCH_THRESHOLD || blockTypes.length > SEARCH_THRESHOLD;\n  var filteredBlockTypes = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return search_items_searchBlockItems(blockTypes, blockTypeCategories, blockTypeCollections, filterValue);\n  }, [filterValue, blockTypes, blockTypeCategories, blockTypeCollections]);\n  var filteredBlockPatterns = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return search_items_searchItems(patterns, filterValue);\n  }, [filterValue, patterns]);\n  var setInsererIsOpened = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings().__experimentalSetIsInserterOpened;\n  }, []);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (setInsererIsOpened) {\n      setInsererIsOpened(false);\n    }\n  }, [setInsererIsOpened]); // Announce search results on change\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!filterValue) {\n      return;\n    }\n\n    var count = filteredBlockTypes.length + filteredBlockPatterns.length;\n    var resultsFoundMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %d: number of results. */\n    Object(external_this_wp_i18n_[\"_n\"])('%d result found.', '%d results found.', count), count);\n    debouncedSpeak(resultsFoundMessage);\n  }, [filterValue, debouncedSpeak]); // Disable reason (no-autofocus): The inserter menu is a modal display, not one which\n  // is always visible, and one which already incurs this behavior of autoFocus via\n  // Popover's focusOnMount.\n  // Disable reason (no-static-element-interactions): Navigational key-presses within\n  // the menu are prevented from triggering WritingFlow and ObserveTyping interactions.\n\n  /* eslint-disable jsx-a11y/no-autofocus, jsx-a11y/no-static-element-interactions */\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inserter__quick-inserter\",\n    onKeyPress: quick_inserter_stopKeyPropagation,\n    onKeyDown: quick_inserter_preventArrowKeysPropagation\n  }, showSearch && Object(external_this_wp_element_[\"createElement\"])(search_form, {\n    value: filterValue,\n    onChange: function onChange(value) {\n      setFilterValue(value);\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(QuickInserterList, {\n    blockTypes: filteredBlockTypes,\n    blockPatterns: showPatterns ? filteredBlockPatterns : [],\n    onSelectBlockPattern: onSelectBlockPattern,\n    onSelectBlockType: onSelectBlockType,\n    onHover: onToggleInsertionPoint\n  }), setInsererIsOpened && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"block-editor-inserter__quick-inserter-expand\",\n    onClick: function onClick() {\n      return setInsererIsOpened(true);\n    },\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Browse all. This will open the main inserter panel in the editor toolbar.')\n  }, Object(external_this_wp_i18n_[\"__\"])('Browse all')));\n  /* eslint-enable jsx-a11y/no-autofocus, jsx-a11y/no-static-element-interactions */\n}\n\n/* harmony default export */ var quick_inserter = (Object(external_this_wp_components_[\"withSpokenMessages\"])(QuickInserter));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/index.js\n\n\n\n\n\n\n\n\n\nfunction inserter_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (inserter_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction inserter_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar inserter_defaultRenderToggle = function defaultRenderToggle(_ref) {\n  var onToggle = _ref.onToggle,\n      disabled = _ref.disabled,\n      isOpen = _ref.isOpen,\n      blockTitle = _ref.blockTitle,\n      hasSingleBlockType = _ref.hasSingleBlockType,\n      toggleProps = _ref.toggleProps;\n  var label;\n\n  if (hasSingleBlockType) {\n    label = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: the name of the block when there is only one\n    Object(external_this_wp_i18n_[\"_x\"])('Add %s', 'directly add the only allowed block'), blockTitle);\n  } else {\n    label = Object(external_this_wp_i18n_[\"_x\"])('Add block', 'Generic label for block inserter button');\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({\n    icon: plus[\"a\" /* default */],\n    label: label,\n    tooltipPosition: \"bottom\",\n    onClick: onToggle,\n    className: \"block-editor-inserter__toggle\",\n    \"aria-haspopup\": !hasSingleBlockType ? 'true' : false,\n    \"aria-expanded\": !hasSingleBlockType ? isOpen : false,\n    disabled: disabled\n  }, toggleProps));\n};\n\nvar inserter_Inserter = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Inserter, _Component);\n\n  var _super = inserter_createSuper(Inserter);\n\n  function Inserter() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Inserter);\n\n    _this = _super.apply(this, arguments);\n    _this.onToggle = _this.onToggle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderToggle = _this.renderToggle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderContent = _this.renderContent.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Inserter, [{\n    key: \"onToggle\",\n    value: function onToggle(isOpen) {\n      var onToggle = this.props.onToggle; // Surface toggle callback to parent component\n\n      if (onToggle) {\n        onToggle(isOpen);\n      }\n    }\n    /**\n     * Render callback to display Dropdown toggle element.\n     *\n     * @param {Object}   options\n     * @param {Function} options.onToggle Callback to invoke when toggle is\n     *                                    pressed.\n     * @param {boolean}  options.isOpen   Whether dropdown is currently open.\n     *\n     * @return {WPElement} Dropdown toggle element.\n     */\n\n  }, {\n    key: \"renderToggle\",\n    value: function renderToggle(_ref2) {\n      var onToggle = _ref2.onToggle,\n          isOpen = _ref2.isOpen;\n      var _this$props = this.props,\n          disabled = _this$props.disabled,\n          blockTitle = _this$props.blockTitle,\n          hasSingleBlockType = _this$props.hasSingleBlockType,\n          toggleProps = _this$props.toggleProps,\n          hasItems = _this$props.hasItems,\n          _this$props$renderTog = _this$props.renderToggle,\n          renderToggle = _this$props$renderTog === void 0 ? inserter_defaultRenderToggle : _this$props$renderTog;\n      return renderToggle({\n        onToggle: onToggle,\n        isOpen: isOpen,\n        disabled: disabled || !hasItems,\n        blockTitle: blockTitle,\n        hasSingleBlockType: hasSingleBlockType,\n        toggleProps: toggleProps\n      });\n    }\n    /**\n     * Render callback to display Dropdown content element.\n     *\n     * @param {Object}   options\n     * @param {Function} options.onClose Callback to invoke when dropdown is\n     *                                   closed.\n     *\n     * @return {WPElement} Dropdown content element.\n     */\n\n  }, {\n    key: \"renderContent\",\n    value: function renderContent(_ref3) {\n      var onClose = _ref3.onClose;\n      var _this$props2 = this.props,\n          rootClientId = _this$props2.rootClientId,\n          clientId = _this$props2.clientId,\n          isAppender = _this$props2.isAppender,\n          showInserterHelpPanel = _this$props2.showInserterHelpPanel,\n          selectBlockOnInsert = _this$props2.__experimentalSelectBlockOnInsert,\n          isQuick = _this$props2.__experimentalIsQuick;\n\n      if (isQuick) {\n        return Object(external_this_wp_element_[\"createElement\"])(quick_inserter, {\n          rootClientId: rootClientId,\n          clientId: clientId,\n          isAppender: isAppender,\n          selectBlockOnInsert: selectBlockOnInsert\n        });\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(menu, {\n        onSelect: onClose,\n        rootClientId: rootClientId,\n        clientId: clientId,\n        isAppender: isAppender,\n        showInserterHelpPanel: showInserterHelpPanel,\n        __experimentalSelectBlockOnInsert: selectBlockOnInsert\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          position = _this$props3.position,\n          hasSingleBlockType = _this$props3.hasSingleBlockType,\n          insertOnlyAllowedBlock = _this$props3.insertOnlyAllowedBlock,\n          isQuick = _this$props3.__experimentalIsQuick;\n\n      if (hasSingleBlockType) {\n        return this.renderToggle({\n          onToggle: insertOnlyAllowedBlock\n        });\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n        className: \"block-editor-inserter\",\n        contentClassName: classnames_default()('block-editor-inserter__popover', {\n          'is-quick': isQuick\n        }),\n        position: position,\n        onToggle: this.onToggle,\n        expandOnMobile: true,\n        headerTitle: Object(external_this_wp_i18n_[\"__\"])('Add a block'),\n        renderToggle: this.renderToggle,\n        renderContent: this.renderContent\n      });\n    }\n  }]);\n\n  return Inserter;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var inserter = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref4) {\n  var clientId = _ref4.clientId,\n      rootClientId = _ref4.rootClientId;\n\n  var _select = select('core/block-editor'),\n      getBlockRootClientId = _select.getBlockRootClientId,\n      hasInserterItems = _select.hasInserterItems,\n      __experimentalGetAllowedBlocks = _select.__experimentalGetAllowedBlocks;\n\n  var _select2 = select('core/blocks'),\n      getBlockVariations = _select2.getBlockVariations;\n\n  rootClientId = rootClientId || getBlockRootClientId(clientId) || undefined;\n\n  var allowedBlocks = __experimentalGetAllowedBlocks(rootClientId);\n\n  var hasSingleBlockType = Object(external_this_lodash_[\"size\"])(allowedBlocks) === 1 && Object(external_this_lodash_[\"size\"])(getBlockVariations(allowedBlocks[0].name, 'inserter')) === 0;\n  var allowedBlockType = false;\n\n  if (hasSingleBlockType) {\n    allowedBlockType = allowedBlocks[0];\n  }\n\n  return {\n    hasItems: hasInserterItems(rootClientId),\n    hasSingleBlockType: hasSingleBlockType,\n    blockTitle: allowedBlockType ? allowedBlockType.title : '',\n    allowedBlockType: allowedBlockType,\n    rootClientId: rootClientId\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps, _ref5) {\n  var select = _ref5.select;\n  return {\n    insertOnlyAllowedBlock: function insertOnlyAllowedBlock() {\n      var rootClientId = ownProps.rootClientId,\n          clientId = ownProps.clientId,\n          isAppender = ownProps.isAppender;\n      var hasSingleBlockType = ownProps.hasSingleBlockType,\n          allowedBlockType = ownProps.allowedBlockType,\n          selectBlockOnInsert = ownProps.__experimentalSelectBlockOnInsert;\n\n      if (!hasSingleBlockType) {\n        return;\n      }\n\n      function getInsertionIndex() {\n        var _select3 = select('core/block-editor'),\n            getBlockIndex = _select3.getBlockIndex,\n            getBlockSelectionEnd = _select3.getBlockSelectionEnd,\n            getBlockOrder = _select3.getBlockOrder; // If the clientId is defined, we insert at the position of the block.\n\n\n        if (clientId) {\n          return getBlockIndex(clientId, rootClientId);\n        } // If there a selected block, we insert after the selected block.\n\n\n        var end = getBlockSelectionEnd();\n\n        if (!isAppender && end) {\n          return getBlockIndex(end, rootClientId) + 1;\n        } // Otherwise, we insert at the end of the current rootClientId\n\n\n        return getBlockOrder(rootClientId).length;\n      }\n\n      var _dispatch = dispatch('core/block-editor'),\n          insertBlock = _dispatch.insertBlock;\n\n      var blockToInsert = Object(external_this_wp_blocks_[\"createBlock\"])(allowedBlockType.name);\n      insertBlock(blockToInsert, getInsertionIndex(), rootClientId, selectBlockOnInsert);\n\n      if (!selectBlockOnInsert) {\n        var message = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: the name of the block that has been added\n        Object(external_this_wp_i18n_[\"__\"])('%s block added'), allowedBlockType.title);\n        Object(external_this_wp_a11y_[\"speak\"])(message);\n      }\n    }\n  };\n}), // The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n// a way to detect the global Inserter.\nObject(external_this_wp_compose_[\"ifCondition\"])(function (_ref6) {\n  var hasItems = _ref6.hasItems,\n      isAppender = _ref6.isAppender,\n      rootClientId = _ref6.rootClientId,\n      clientId = _ref6.clientId;\n  return hasItems || !isAppender && !rootClientId && !clientId;\n})])(inserter_Inserter));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/focus-capture.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Renders focus capturing areas to redirect focus to the selected block if not\n * in Navigation mode.\n *\n * @param {string}  selectedClientId Client ID of the selected block.\n * @param {boolean} isReverse        Set to true if the component is rendered\n *                                   after the block list, false if rendered\n *                                   before.\n * @param {Object}  containerRef     Reference containing the element reference\n *                                   of the block list container.\n * @param {boolean} noCapture        Reference containing the flag for enabling\n *                                   or disabling capturing.\n *\n * @return {WPElement} The focus capture element.\n */\n\nvar FocusCapture = Object(external_this_wp_element_[\"forwardRef\"])(function (_ref, ref) {\n  var selectedClientId = _ref.selectedClientId,\n      isReverse = _ref.isReverse,\n      containerRef = _ref.containerRef,\n      noCapture = _ref.noCapture,\n      hasMultiSelection = _ref.hasMultiSelection,\n      multiSelectionContainer = _ref.multiSelectionContainer;\n  var isNavigationMode = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').isNavigationMode();\n  });\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      setNavigationMode = _useDispatch.setNavigationMode;\n\n  function onFocus() {\n    // Do not capture incoming focus if set by us in WritingFlow.\n    if (noCapture.current) {\n      noCapture.current = null;\n      return;\n    } // When focus coming in from out of the block list, and no block is\n    // selected, enable Navigation mode and select the first or last block\n    // depending on the direction.\n\n\n    if (!selectedClientId) {\n      if (hasMultiSelection) {\n        multiSelectionContainer.current.focus();\n        return;\n      }\n\n      setNavigationMode(true);\n      var tabbables = external_this_wp_dom_[\"focus\"].tabbable.find(containerRef.current);\n\n      if (tabbables.length) {\n        if (isReverse) {\n          Object(external_this_lodash_[\"last\"])(tabbables).focus();\n        } else {\n          Object(external_this_lodash_[\"first\"])(tabbables).focus();\n        }\n      }\n\n      return;\n    } // If there is a selected block, move focus to the first or last\n    // tabbable element depending on the direction.\n\n\n    var wrapper = getBlockDOMNode(selectedClientId);\n\n    if (isReverse) {\n      var _tabbables = external_this_wp_dom_[\"focus\"].tabbable.find(wrapper);\n\n      var lastTabbable = Object(external_this_lodash_[\"last\"])(_tabbables) || wrapper;\n      lastTabbable.focus();\n    } else {\n      wrapper.focus();\n    }\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: ref // Don't allow tabbing to this element in Navigation mode.\n    ,\n    tabIndex: !isNavigationMode ? '0' : undefined,\n    onFocus: onFocus // Needs to be positioned within the viewport, so focus to this\n    // element does not scroll the page.\n    ,\n    style: {\n      position: 'fixed'\n    }\n  });\n});\n/* harmony default export */ var focus_capture = (FocusCapture);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/writing-flow/index.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Browser constants\n */\n\nvar writing_flow_window = window,\n    getSelection = writing_flow_window.getSelection,\n    writing_flow_getComputedStyle = writing_flow_window.getComputedStyle;\n/**\n * Given an element, returns true if the element is a tabbable text field, or\n * false otherwise.\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element is a tabbable text field.\n */\n\nvar isTabbableTextField = Object(external_this_lodash_[\"overEvery\"])([external_this_wp_dom_[\"isTextField\"], external_this_wp_dom_[\"focus\"].tabbable.isTabbableIndex]);\n/**\n * Returns true if the element should consider edge navigation upon a keyboard\n * event of the given directional key code, or false otherwise.\n *\n * @param {Element} element     HTML element to test.\n * @param {number}  keyCode     KeyboardEvent keyCode to test.\n * @param {boolean} hasModifier Whether a modifier is pressed.\n *\n * @return {boolean} Whether element should consider edge navigation.\n */\n\nfunction isNavigationCandidate(element, keyCode, hasModifier) {\n  var isVertical = keyCode === external_this_wp_keycodes_[\"UP\"] || keyCode === external_this_wp_keycodes_[\"DOWN\"]; // Currently, all elements support unmodified vertical navigation.\n\n  if (isVertical && !hasModifier) {\n    return true;\n  } // Native inputs should not navigate horizontally.\n\n\n  var tagName = element.tagName;\n  return tagName !== 'INPUT' && tagName !== 'TEXTAREA';\n}\n/**\n * Returns the optimal tab target from the given focused element in the\n * desired direction. A preference is made toward text fields, falling back\n * to the block focus stop if no other candidates exist for the block.\n *\n * @param {Element} target           Currently focused text field.\n * @param {boolean} isReverse        True if considering as the first field.\n * @param {Element} containerElement Element containing all blocks.\n * @param {boolean} onlyVertical     Wether to only consider tabbable elements\n *                                   that are visually above or under the\n *                                   target.\n *\n * @return {?Element} Optimal tab target, if one exists.\n */\n\nfunction getClosestTabbable(target, isReverse, containerElement, onlyVertical) {\n  // Since the current focus target is not guaranteed to be a text field,\n  // find all focusables. Tabbability is considered later.\n  var focusableNodes = external_this_wp_dom_[\"focus\"].focusable.find(containerElement);\n\n  if (isReverse) {\n    focusableNodes = Object(external_this_lodash_[\"reverse\"])(focusableNodes);\n  } // Consider as candidates those focusables after the current target.\n  // It's assumed this can only be reached if the target is focusable\n  // (on its keydown event), so no need to verify it exists in the set.\n\n\n  focusableNodes = focusableNodes.slice(focusableNodes.indexOf(target) + 1);\n  var targetRect;\n\n  if (onlyVertical) {\n    targetRect = target.getBoundingClientRect();\n  }\n\n  function isTabCandidate(node, i, array) {\n    // Not a candidate if the node is not tabbable.\n    if (!external_this_wp_dom_[\"focus\"].tabbable.isTabbableIndex(node)) {\n      return false;\n    }\n\n    if (onlyVertical) {\n      var nodeRect = node.getBoundingClientRect();\n\n      if (nodeRect.left >= targetRect.right || nodeRect.right <= targetRect.left) {\n        return false;\n      }\n    } // Prefer text fields...\n\n\n    if (Object(external_this_wp_dom_[\"isTextField\"])(node)) {\n      return true;\n    } // ...but settle for block focus stop.\n\n\n    if (!isBlockFocusStop(node)) {\n      return false;\n    } // If element contains inner blocks, stop immediately at its focus\n    // wrapper.\n\n\n    if (hasInnerBlocksContext(node)) {\n      return true;\n    } // If navigating out of a block (in reverse), don't consider its\n    // block focus stop.\n\n\n    if (node.contains(target)) {\n      return false;\n    } // In case of block focus stop, check to see if there's a better\n    // text field candidate within.\n\n\n    for (var offset = 1, nextNode; nextNode = array[i + offset]; offset++) {\n      // Abort if no longer testing descendents of focus stop.\n      if (!node.contains(nextNode)) {\n        break;\n      } // Apply same tests by recursion. This is important to consider\n      // nestable blocks where we don't want to settle for the inner\n      // block focus stop.\n\n\n      if (isTabCandidate(nextNode, i + offset, array)) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  return Object(external_this_lodash_[\"find\"])(focusableNodes, isTabCandidate);\n}\n\nfunction writing_flow_selector(select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientId = _select.getSelectedBlockClientId,\n      getMultiSelectedBlocksStartClientId = _select.getMultiSelectedBlocksStartClientId,\n      getMultiSelectedBlocksEndClientId = _select.getMultiSelectedBlocksEndClientId,\n      getPreviousBlockClientId = _select.getPreviousBlockClientId,\n      getNextBlockClientId = _select.getNextBlockClientId,\n      getFirstMultiSelectedBlockClientId = _select.getFirstMultiSelectedBlockClientId,\n      getLastMultiSelectedBlockClientId = _select.getLastMultiSelectedBlockClientId,\n      hasMultiSelection = _select.hasMultiSelection,\n      getBlockOrder = _select.getBlockOrder,\n      isNavigationMode = _select.isNavigationMode,\n      hasBlockMovingClientId = _select.hasBlockMovingClientId,\n      getBlockIndex = _select.getBlockIndex,\n      getBlockRootClientId = _select.getBlockRootClientId,\n      getClientIdsOfDescendants = _select.getClientIdsOfDescendants,\n      canInsertBlockType = _select.canInsertBlockType,\n      getBlockName = _select.getBlockName,\n      isSelectionEnabled = _select.isSelectionEnabled,\n      getBlockSelectionStart = _select.getBlockSelectionStart,\n      isMultiSelecting = _select.isMultiSelecting,\n      getSettings = _select.getSettings;\n\n  var selectedBlockClientId = getSelectedBlockClientId();\n  var selectionStartClientId = getMultiSelectedBlocksStartClientId();\n  var selectionEndClientId = getMultiSelectedBlocksEndClientId();\n  return {\n    selectedBlockClientId: selectedBlockClientId,\n    selectionStartClientId: selectionStartClientId,\n    selectionBeforeEndClientId: getPreviousBlockClientId(selectionEndClientId || selectedBlockClientId),\n    selectionAfterEndClientId: getNextBlockClientId(selectionEndClientId || selectedBlockClientId),\n    selectedFirstClientId: getFirstMultiSelectedBlockClientId(),\n    selectedLastClientId: getLastMultiSelectedBlockClientId(),\n    hasMultiSelection: hasMultiSelection(),\n    blocks: getBlockOrder(),\n    isNavigationMode: isNavigationMode(),\n    hasBlockMovingClientId: hasBlockMovingClientId,\n    getBlockIndex: getBlockIndex,\n    getBlockRootClientId: getBlockRootClientId,\n    getClientIdsOfDescendants: getClientIdsOfDescendants,\n    canInsertBlockType: canInsertBlockType,\n    getBlockName: getBlockName,\n    isSelectionEnabled: isSelectionEnabled(),\n    blockSelectionStart: getBlockSelectionStart(),\n    isMultiSelecting: isMultiSelecting(),\n    keepCaretInsideBlock: getSettings().keepCaretInsideBlock\n  };\n}\n/**\n * Handles selection and navigation across blocks. This component should be\n * wrapped around BlockList.\n *\n * @param {Object}    props          Component properties.\n * @param {WPElement} props.children Children to be rendered.\n */\n\n\nfunction WritingFlow(_ref) {\n  var children = _ref.children;\n  var container = Object(external_this_wp_element_[\"useRef\"])();\n  var focusCaptureBeforeRef = Object(external_this_wp_element_[\"useRef\"])();\n  var focusCaptureAfterRef = Object(external_this_wp_element_[\"useRef\"])();\n  var multiSelectionContainer = Object(external_this_wp_element_[\"useRef\"])();\n  var entirelySelected = Object(external_this_wp_element_[\"useRef\"])(); // Reference that holds the a flag for enabling or disabling\n  // capturing on the focus capture elements.\n\n  var noCapture = Object(external_this_wp_element_[\"useRef\"])(); // Here a DOMRect is stored while moving the caret vertically so vertical\n  // position of the start position can be restored. This is to recreate\n  // browser behaviour across blocks.\n\n  var verticalRect = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(writing_flow_selector, []),\n      selectedBlockClientId = _useSelect.selectedBlockClientId,\n      selectionStartClientId = _useSelect.selectionStartClientId,\n      selectionBeforeEndClientId = _useSelect.selectionBeforeEndClientId,\n      selectionAfterEndClientId = _useSelect.selectionAfterEndClientId,\n      selectedFirstClientId = _useSelect.selectedFirstClientId,\n      selectedLastClientId = _useSelect.selectedLastClientId,\n      hasMultiSelection = _useSelect.hasMultiSelection,\n      blocks = _useSelect.blocks,\n      isNavigationMode = _useSelect.isNavigationMode,\n      hasBlockMovingClientId = _useSelect.hasBlockMovingClientId,\n      isSelectionEnabled = _useSelect.isSelectionEnabled,\n      blockSelectionStart = _useSelect.blockSelectionStart,\n      isMultiSelecting = _useSelect.isMultiSelecting,\n      getBlockIndex = _useSelect.getBlockIndex,\n      getBlockRootClientId = _useSelect.getBlockRootClientId,\n      getClientIdsOfDescendants = _useSelect.getClientIdsOfDescendants,\n      canInsertBlockType = _useSelect.canInsertBlockType,\n      getBlockName = _useSelect.getBlockName,\n      keepCaretInsideBlock = _useSelect.keepCaretInsideBlock;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      multiSelect = _useDispatch.multiSelect,\n      selectBlock = _useDispatch.selectBlock,\n      clearSelectedBlock = _useDispatch.clearSelectedBlock,\n      setNavigationMode = _useDispatch.setNavigationMode,\n      setBlockMovingClientId = _useDispatch.setBlockMovingClientId,\n      moveBlockToPosition = _useDispatch.moveBlockToPosition;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      canInsertMovingBlock = _useState2[0],\n      setCanInsertMovingBlock = _useState2[1];\n\n  function onMouseDown(event) {\n    verticalRect.current = null; // Clicking inside a selected block should exit navigation mode and block moving mode.\n\n    if (isNavigationMode && selectedBlockClientId && isInsideRootBlock(getBlockDOMNode(selectedBlockClientId), event.target)) {\n      setNavigationMode(false);\n      setBlockMovingClientId(null);\n    } else if (isNavigationMode && hasBlockMovingClientId() && getBlockClientId(event.target)) {\n      setCanInsertMovingBlock(canInsertBlockType(getBlockName(hasBlockMovingClientId()), getBlockRootClientId(getBlockClientId(event.target))));\n    } // Multi-select blocks when Shift+clicking.\n\n\n    if (isSelectionEnabled && // The main button.\n    // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n    event.button === 0) {\n      var clientId = getBlockClientId(event.target);\n\n      if (clientId) {\n        if (event.shiftKey) {\n          if (blockSelectionStart !== clientId) {\n            multiSelect(blockSelectionStart, clientId);\n            event.preventDefault();\n          } // Allow user to escape out of a multi-selection to a singular\n          // selection of a block via click. This is handled here since\n          // focus handling excludes blocks when there is multiselection,\n          // as focus can be incurred by starting a multiselection (focus\n          // moved to first block's multi-controls).\n\n        } else if (hasMultiSelection) {\n          selectBlock(clientId);\n        }\n      }\n    }\n  }\n\n  function expandSelection(isReverse) {\n    var nextSelectionEndClientId = isReverse ? selectionBeforeEndClientId : selectionAfterEndClientId;\n\n    if (nextSelectionEndClientId) {\n      multiSelect(selectionStartClientId || selectedBlockClientId, nextSelectionEndClientId);\n    }\n  }\n\n  function moveSelection(isReverse) {\n    var focusedBlockClientId = isReverse ? selectedFirstClientId : selectedLastClientId;\n\n    if (focusedBlockClientId) {\n      selectBlock(focusedBlockClientId);\n    }\n  }\n  /**\n   * Returns true if the given target field is the last in its block which\n   * can be considered for tab transition. For example, in a block with two\n   * text fields, this would return true when reversing from the first of the\n   * two fields, but false when reversing from the second.\n   *\n   * @param {Element} target    Currently focused text field.\n   * @param {boolean} isReverse True if considering as the first field.\n   *\n   * @return {boolean} Whether field is at edge for tab transition.\n   */\n\n\n  function isTabbableEdge(target, isReverse) {\n    var closestTabbable = getClosestTabbable(target, isReverse, container.current);\n    return !closestTabbable || !isInSameBlock(target, closestTabbable);\n  }\n\n  function onKeyDown(event) {\n    var keyCode = event.keyCode,\n        target = event.target;\n    var isUp = keyCode === external_this_wp_keycodes_[\"UP\"];\n    var isDown = keyCode === external_this_wp_keycodes_[\"DOWN\"];\n    var isLeft = keyCode === external_this_wp_keycodes_[\"LEFT\"];\n    var isRight = keyCode === external_this_wp_keycodes_[\"RIGHT\"];\n    var isTab = keyCode === external_this_wp_keycodes_[\"TAB\"];\n    var isEscape = keyCode === external_this_wp_keycodes_[\"ESCAPE\"];\n    var isEnter = keyCode === external_this_wp_keycodes_[\"ENTER\"];\n    var isSpace = keyCode === external_this_wp_keycodes_[\"SPACE\"];\n    var isReverse = isUp || isLeft;\n    var isHorizontal = isLeft || isRight;\n    var isVertical = isUp || isDown;\n    var isNav = isHorizontal || isVertical;\n    var isShift = event.shiftKey;\n    var hasModifier = isShift || event.ctrlKey || event.altKey || event.metaKey;\n    var isNavEdge = isVertical ? external_this_wp_dom_[\"isVerticalEdge\"] : external_this_wp_dom_[\"isHorizontalEdge\"]; // In navigation mode, tab and arrows navigate from block to block.\n\n    if (isNavigationMode) {\n      var navigateUp = isTab && isShift || isUp;\n      var navigateDown = isTab && !isShift || isDown; // Move out of current nesting level (no effect if at root level).\n\n      var navigateOut = isLeft; // Move into next nesting level (no effect if the current block has no innerBlocks).\n\n      var navigateIn = isRight;\n      var focusedBlockUid;\n\n      if (navigateUp) {\n        focusedBlockUid = selectionBeforeEndClientId;\n      } else if (navigateDown) {\n        focusedBlockUid = selectionAfterEndClientId;\n      } else if (navigateOut) {\n        var _getBlockRootClientId;\n\n        focusedBlockUid = (_getBlockRootClientId = getBlockRootClientId(selectedBlockClientId)) !== null && _getBlockRootClientId !== void 0 ? _getBlockRootClientId : selectedBlockClientId;\n      } else if (navigateIn) {\n        var _getClientIdsOfDescen;\n\n        focusedBlockUid = (_getClientIdsOfDescen = getClientIdsOfDescendants([selectedBlockClientId])[0]) !== null && _getClientIdsOfDescen !== void 0 ? _getClientIdsOfDescen : selectedBlockClientId;\n      }\n\n      var startingBlockClientId = hasBlockMovingClientId();\n\n      if (startingBlockClientId && focusedBlockUid) {\n        setCanInsertMovingBlock(canInsertBlockType(getBlockName(startingBlockClientId), getBlockRootClientId(focusedBlockUid)));\n      }\n\n      if (isEscape && startingBlockClientId) {\n        setBlockMovingClientId(null);\n        setCanInsertMovingBlock(false);\n      }\n\n      if ((isEnter || isSpace) && startingBlockClientId) {\n        var sourceRoot = getBlockRootClientId(startingBlockClientId);\n        var destRoot = getBlockRootClientId(selectedBlockClientId);\n        var sourceBlockIndex = getBlockIndex(startingBlockClientId, sourceRoot);\n        var destinationBlockIndex = getBlockIndex(selectedBlockClientId, destRoot);\n\n        if (sourceBlockIndex < destinationBlockIndex && sourceRoot === destRoot) {\n          destinationBlockIndex -= 1;\n        }\n\n        moveBlockToPosition(startingBlockClientId, sourceRoot, destRoot, destinationBlockIndex);\n        selectBlock(startingBlockClientId);\n        setBlockMovingClientId(null);\n      }\n\n      if (navigateDown || navigateUp || navigateOut || navigateIn) {\n        if (focusedBlockUid) {\n          event.preventDefault();\n          selectBlock(focusedBlockUid);\n        } else if (isTab && selectedBlockClientId) {\n          var wrapper = getBlockDOMNode(selectedBlockClientId);\n          var nextTabbable;\n\n          if (navigateDown) {\n            nextTabbable = external_this_wp_dom_[\"focus\"].tabbable.findNext(wrapper);\n          } else {\n            nextTabbable = external_this_wp_dom_[\"focus\"].tabbable.findPrevious(wrapper);\n          }\n\n          if (nextTabbable) {\n            event.preventDefault();\n            nextTabbable.focus();\n            clearSelectedBlock();\n          }\n        }\n      }\n\n      return;\n    } // In Edit mode, Tab should focus the first tabbable element after the\n    // content, which is normally the sidebar (with block controls) and\n    // Shift+Tab should focus the first tabbable element before the content,\n    // which is normally the block toolbar.\n    // Arrow keys can be used, and Tab and arrow keys can be used in\n    // Navigation mode (press Esc), to navigate through blocks.\n\n\n    if (selectedBlockClientId) {\n      if (isTab) {\n        var _wrapper = getBlockDOMNode(selectedBlockClientId);\n\n        if (isShift) {\n          if (target === _wrapper) {\n            // Disable focus capturing on the focus capture element, so\n            // it doesn't refocus this block and so it allows default\n            // behaviour (moving focus to the next tabbable element).\n            noCapture.current = true;\n            focusCaptureBeforeRef.current.focus();\n            return;\n          }\n        } else {\n          var tabbables = external_this_wp_dom_[\"focus\"].tabbable.find(_wrapper);\n\n          var lastTabbable = Object(external_this_lodash_[\"last\"])(tabbables) || _wrapper;\n\n          if (target === lastTabbable) {\n            // See comment above.\n            noCapture.current = true;\n            focusCaptureAfterRef.current.focus();\n            return;\n          }\n        }\n      } else if (isEscape) {\n        setNavigationMode(true);\n      }\n    } else if (hasMultiSelection && isTab && target === multiSelectionContainer.current) {\n      // See comment above.\n      noCapture.current = true;\n\n      if (isShift) {\n        focusCaptureBeforeRef.current.focus();\n      } else {\n        focusCaptureAfterRef.current.focus();\n      }\n\n      return;\n    } // When presing any key other than up or down, the initial vertical\n    // position must ALWAYS be reset. The vertical position is saved so it\n    // can be restored as well as possible on sebsequent vertical arrow key\n    // presses. It may not always be possible to restore the exact same\n    // position (such as at an empty line), so it wouldn't be good to\n    // compute the position right before any vertical arrow key press.\n\n\n    if (!isVertical) {\n      verticalRect.current = null;\n    } else if (!verticalRect.current) {\n      verticalRect.current = Object(external_this_wp_dom_[\"computeCaretRect\"])();\n    } // This logic inside this condition needs to be checked before\n    // the check for event.nativeEvent.defaultPrevented.\n    // The logic handles meta+a keypress and this event is default prevented\n    // by RichText.\n\n\n    if (!isNav) {\n      // Set immediately before the meta+a combination can be pressed.\n      if (external_this_wp_keycodes_[\"isKeyboardEvent\"].primary(event)) {\n        entirelySelected.current = Object(external_this_wp_dom_[\"isEntirelySelected\"])(target);\n      }\n\n      if (external_this_wp_keycodes_[\"isKeyboardEvent\"].primary(event, 'a')) {\n        // When the target is contentEditable, selection will already\n        // have been set by the browser earlier in this call stack. We\n        // need check the previous result, otherwise all blocks will be\n        // selected right away.\n        if (target.isContentEditable ? entirelySelected.current : Object(external_this_wp_dom_[\"isEntirelySelected\"])(target)) {\n          multiSelect(Object(external_this_lodash_[\"first\"])(blocks), Object(external_this_lodash_[\"last\"])(blocks));\n          event.preventDefault();\n        } // After pressing primary + A we can assume isEntirelySelected is true.\n        // Calling right away isEntirelySelected after primary + A may still return false on some browsers.\n\n\n        entirelySelected.current = true;\n      }\n\n      return;\n    } // Abort if navigation has already been handled (e.g. RichText inline\n    // boundaries).\n\n\n    if (event.nativeEvent.defaultPrevented) {\n      return;\n    } // Abort if our current target is not a candidate for navigation (e.g.\n    // preserve native input behaviors).\n\n\n    if (!isNavigationCandidate(target, keyCode, hasModifier)) {\n      return;\n    } // In the case of RTL scripts, right means previous and left means next,\n    // which is the exact reverse of LTR.\n\n\n    var _getComputedStyle = writing_flow_getComputedStyle(target),\n        direction = _getComputedStyle.direction;\n\n    var isReverseDir = direction === 'rtl' ? !isReverse : isReverse;\n\n    if (isShift) {\n      if ( // Ensure that there is a target block.\n      (isReverse && selectionBeforeEndClientId || !isReverse && selectionAfterEndClientId) && (hasMultiSelection || isTabbableEdge(target, isReverse) && isNavEdge(target, isReverse))) {\n        // Shift key is down, and there is multi selection or we're at\n        // the end of the current block.\n        expandSelection(isReverse);\n        event.preventDefault();\n      }\n    } else if (hasMultiSelection) {\n      // Moving from block multi-selection to single block selection\n      moveSelection(isReverse);\n      event.preventDefault();\n    } else if (isVertical && Object(external_this_wp_dom_[\"isVerticalEdge\"])(target, isReverse) && !keepCaretInsideBlock) {\n      var closestTabbable = getClosestTabbable(target, isReverse, container.current, true);\n\n      if (closestTabbable) {\n        Object(external_this_wp_dom_[\"placeCaretAtVerticalEdge\"])(closestTabbable, isReverse, verticalRect.current);\n        event.preventDefault();\n      }\n    } else if (isHorizontal && getSelection().isCollapsed && Object(external_this_wp_dom_[\"isHorizontalEdge\"])(target, isReverseDir) && !keepCaretInsideBlock) {\n      var _closestTabbable = getClosestTabbable(target, isReverseDir, container.current);\n\n      Object(external_this_wp_dom_[\"placeCaretAtHorizontalEdge\"])(_closestTabbable, isReverseDir);\n      event.preventDefault();\n    }\n  }\n\n  function focusLastTextField() {\n    var focusableNodes = external_this_wp_dom_[\"focus\"].focusable.find(container.current);\n    var target = Object(external_this_lodash_[\"findLast\"])(focusableNodes, isTabbableTextField);\n\n    if (target) {\n      Object(external_this_wp_dom_[\"placeCaretAtHorizontalEdge\"])(target, true);\n    }\n  }\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (hasMultiSelection && !isMultiSelecting) {\n      multiSelectionContainer.current.focus();\n    }\n  }, [hasMultiSelection, isMultiSelecting]);\n  var className = classnames_default()('block-editor-writing-flow', {\n    'is-navigate-mode': isNavigationMode,\n    'is-block-moving-mode': !!hasBlockMovingClientId(),\n    'can-insert-moving-block': canInsertMovingBlock\n  }); // Disable reason: Wrapper itself is non-interactive, but must capture\n  // bubbling events from children to determine focus transition intents.\n\n  /* eslint-disable jsx-a11y/no-static-element-interactions */\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(focus_capture, {\n    ref: focusCaptureBeforeRef,\n    selectedClientId: selectedBlockClientId,\n    containerRef: container,\n    noCapture: noCapture,\n    hasMultiSelection: hasMultiSelection,\n    multiSelectionContainer: multiSelectionContainer\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: container,\n    onKeyDown: onKeyDown,\n    onMouseDown: onMouseDown\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: multiSelectionContainer,\n    tabIndex: hasMultiSelection ? '0' : undefined,\n    \"aria-label\": hasMultiSelection ? Object(external_this_wp_i18n_[\"__\"])('Multiple selected blocks') : undefined // Needs to be positioned within the viewport, so focus to this\n    // element does not scroll the page.\n    ,\n    style: {\n      position: 'fixed'\n    }\n  }), children), Object(external_this_wp_element_[\"createElement\"])(focus_capture, {\n    ref: focusCaptureAfterRef,\n    selectedClientId: selectedBlockClientId,\n    containerRef: container,\n    noCapture: noCapture,\n    hasMultiSelection: hasMultiSelection,\n    multiSelectionContainer: multiSelectionContainer,\n    isReverse: true\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    \"aria-hidden\": true,\n    tabIndex: -1,\n    onClick: focusLastTextField,\n    className: \"block-editor-writing-flow__click-redirect\"\n  }));\n  /* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/insertion-point.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction Indicator(_ref) {\n  var clientId = _ref.clientId;\n  var showInsertionPoint = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockIndex = _select.getBlockIndex,\n        getBlockInsertionPoint = _select.getBlockInsertionPoint,\n        isBlockInsertionPointVisible = _select.isBlockInsertionPointVisible,\n        getBlockRootClientId = _select.getBlockRootClientId;\n\n    var rootClientId = getBlockRootClientId(clientId);\n    var blockIndex = getBlockIndex(clientId, rootClientId);\n    var insertionPoint = getBlockInsertionPoint();\n    return isBlockInsertionPointVisible() && insertionPoint.index === blockIndex && insertionPoint.rootClientId === rootClientId;\n  }, [clientId]);\n\n  if (!showInsertionPoint) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-list__insertion-point-indicator\"\n  });\n}\n\nfunction InsertionPoint(_ref2) {\n  var hasMultiSelection = _ref2.hasMultiSelection,\n      selectedBlockClientId = _ref2.selectedBlockClientId,\n      children = _ref2.children,\n      containerRef = _ref2.containerRef;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isInserterShown = _useState2[0],\n      setIsInserterShown = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isInserterForced = _useState4[0],\n      setIsInserterForced = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      inserterElement = _useState6[0],\n      setInserterElement = _useState6[1];\n\n  var _useState7 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState8 = Object(slicedToArray[\"a\" /* default */])(_useState7, 2),\n      inserterClientId = _useState8[0],\n      setInserterClientId = _useState8[1];\n\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select2 = select('core/block-editor'),\n        getMultiSelectedBlockClientIds = _select2.getMultiSelectedBlockClientIds,\n        _isMultiSelecting = _select2.isMultiSelecting;\n\n    return {\n      isMultiSelecting: _isMultiSelecting(),\n      multiSelectedBlockClientIds: getMultiSelectedBlockClientIds()\n    };\n  }, []),\n      multiSelectedBlockClientIds = _useSelect.multiSelectedBlockClientIds,\n      isMultiSelecting = _useSelect.isMultiSelecting;\n\n  function onMouseMove(event) {\n    if (!event.target.classList.contains('block-editor-block-list__layout')) {\n      if (isInserterShown) {\n        setIsInserterShown(false);\n      }\n\n      return;\n    }\n\n    var rect = event.target.getBoundingClientRect();\n    var offset = event.clientY - rect.top;\n    var element = Array.from(event.target.children).find(function (blockEl) {\n      return blockEl.offsetTop > offset;\n    });\n\n    if (!element) {\n      return;\n    }\n\n    var clientId = element.id.slice('block-'.length);\n\n    if (!clientId) {\n      return;\n    }\n\n    var elementRect = element.getBoundingClientRect();\n\n    if (event.clientX > elementRect.right || event.clientX < elementRect.left) {\n      if (isInserterShown) {\n        setIsInserterShown(false);\n      }\n\n      return;\n    }\n\n    setIsInserterShown(true);\n    setInserterElement(element);\n    setInserterClientId(clientId);\n  }\n\n  function focusClosestTabbable(event) {\n    var clientX = event.clientX,\n        clientY = event.clientY,\n        target = event.target; // Only handle click on the wrapper specifically, and not an event\n    // bubbled from the inserter itself.\n\n    if (target !== ref.current) {\n      return;\n    }\n\n    var targetRect = target.getBoundingClientRect();\n    var isReverse = clientY < targetRect.top + targetRect.height / 2;\n    var blockNode = getBlockDOMNode(inserterClientId);\n    var container = isReverse ? containerRef.current : blockNode;\n    var closest = getClosestTabbable(blockNode, true, container) || blockNode;\n    var rect = new window.DOMRect(clientX, clientY, 0, 16);\n    Object(external_this_wp_dom_[\"placeCaretAtVerticalEdge\"])(closest, isReverse, rect, false);\n  } // Hide the inserter above the selected block and during multi-selection.\n\n\n  var isInserterHidden = hasMultiSelection ? multiSelectedBlockClientIds.includes(inserterClientId) : inserterClientId === selectedBlockClientId;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !isMultiSelecting && (isInserterShown || isInserterForced) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    noArrow: true,\n    animate: false,\n    anchorRef: inserterElement,\n    position: \"top right left\",\n    focusOnMount: false,\n    className: \"block-editor-block-list__insertion-point-popover\",\n    __unstableSlotName: \"block-toolbar\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-list__insertion-point\",\n    style: {\n      width: inserterElement.offsetWidth\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(Indicator, {\n    clientId: inserterClientId\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: ref,\n    onFocus: function onFocus() {\n      return setIsInserterForced(true);\n    },\n    onBlur: function onBlur() {\n      return setIsInserterForced(false);\n    },\n    onClick: focusClosestTabbable // While ideally it would be enough to capture the\n    // bubbling focus event from the Inserter, due to the\n    // characteristics of click focusing of `button`s in\n    // Firefox and Safari, it is not reliable.\n    //\n    // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n    ,\n    tabIndex: -1,\n    className: classnames_default()('block-editor-block-list__insertion-point-inserter', {\n      'is-inserter-hidden': isInserterHidden\n    })\n  }, Object(external_this_wp_element_[\"createElement\"])(inserter, {\n    position: \"bottom center\",\n    clientId: inserterClientId,\n    __experimentalIsQuick: true\n  })))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    onMouseMove: !isInserterForced && !isMultiSelecting ? onMouseMove : undefined\n  }, children));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-selection-button.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props          Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nfunction BlockSelectionButton(_ref) {\n  var clientId = _ref.clientId,\n      rootClientId = _ref.rootClientId,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"clientId\", \"rootClientId\"]);\n\n  var selected = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _getBlockListSettings;\n\n    var _select = select('core/block-editor'),\n        __unstableGetBlockWithoutInnerBlocks = _select.__unstableGetBlockWithoutInnerBlocks,\n        getBlockIndex = _select.getBlockIndex,\n        hasBlockMovingClientId = _select.hasBlockMovingClientId,\n        getBlockListSettings = _select.getBlockListSettings;\n\n    var index = getBlockIndex(clientId, rootClientId);\n\n    var _unstableGetBlockWit = __unstableGetBlockWithoutInnerBlocks(clientId),\n        name = _unstableGetBlockWit.name,\n        attributes = _unstableGetBlockWit.attributes;\n\n    var blockMovingMode = hasBlockMovingClientId();\n    return {\n      index: index,\n      name: name,\n      attributes: attributes,\n      blockMovingMode: blockMovingMode,\n      orientation: (_getBlockListSettings = getBlockListSettings(rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation\n    };\n  }, [clientId, rootClientId]);\n  var index = selected.index,\n      name = selected.name,\n      attributes = selected.attributes,\n      blockMovingMode = selected.blockMovingMode,\n      orientation = selected.orientation;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      setNavigationMode = _useDispatch.setNavigationMode,\n      removeBlock = _useDispatch.removeBlock;\n\n  var ref = Object(external_this_wp_element_[\"useRef\"])(); // Focus the breadcrumb in navigation mode.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    ref.current.focus();\n  });\n\n  function onKeyDown(event) {\n    var keyCode = event.keyCode;\n\n    if (keyCode === external_this_wp_keycodes_[\"BACKSPACE\"] || keyCode === external_this_wp_keycodes_[\"DELETE\"]) {\n      removeBlock(clientId);\n      event.preventDefault();\n    }\n  }\n\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n  var label = Object(external_this_wp_blocks_[\"__experimentalGetAccessibleBlockLabel\"])(blockType, attributes, index + 1, orientation);\n  var classNames = classnames_default()('block-editor-block-list__block-selection-button', {\n    'is-block-moving-mode': !!blockMovingMode\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n    className: classNames\n  }, props), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    ref: ref,\n    onClick: function onClick() {\n      return setNavigationMode(false);\n    },\n    onKeyDown: onKeyDown,\n    label: label\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockTitle, {\n    clientId: clientId\n  })));\n}\n\n/* harmony default export */ var block_selection_button = (BlockSelectionButton);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/navigable-toolbar/index.js\n\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction useUpdateLayoutEffect(effect, deps) {\n  var mounted = Object(external_this_wp_element_[\"useRef\"])(false);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (mounted.current) {\n      return effect();\n    }\n\n    mounted.current = true;\n  }, deps);\n}\n\nfunction hasOnlyToolbarItem(elements) {\n  var dataProp = 'experimentalToolbarItem';\n  return !elements.some(function (element) {\n    return !(dataProp in element.dataset);\n  });\n}\n\nfunction focusFirstTabbableIn(container) {\n  var _focus$tabbable$find = external_this_wp_dom_[\"focus\"].tabbable.find(container),\n      _focus$tabbable$find2 = Object(slicedToArray[\"a\" /* default */])(_focus$tabbable$find, 1),\n      firstTabbable = _focus$tabbable$find2[0];\n\n  if (firstTabbable) {\n    firstTabbable.focus();\n  }\n}\n\nfunction useIsAccessibleToolbar(ref) {\n  // By default, it's gonna render NavigableMenu. If all the tabbable elements\n  // inside the toolbar are ToolbarItem components (or derived components like\n  // ToolbarButton), then we can wrap them with the accessible Toolbar\n  // component.\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isAccessibleToolbar = _useState2[0],\n      setIsAccessibleToolbar = _useState2[1];\n\n  var determineIsAccessibleToolbar = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    var tabbables = external_this_wp_dom_[\"focus\"].tabbable.find(ref.current);\n    setIsAccessibleToolbar(hasOnlyToolbarItem(tabbables));\n  }, []);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(determineIsAccessibleToolbar, []);\n  useUpdateLayoutEffect(function () {\n    // Toolbar buttons may be rendered asynchronously, so we use\n    // MutationObserver to check if the toolbar subtree has been modified\n    var observer = new window.MutationObserver(determineIsAccessibleToolbar);\n    observer.observe(ref.current, {\n      childList: true,\n      subtree: true\n    });\n    return function () {\n      return observer.disconnect();\n    };\n  }, [isAccessibleToolbar]);\n  return isAccessibleToolbar;\n}\n\nfunction useToolbarFocus(ref, focusOnMount, isAccessibleToolbar) {\n  // Make sure we don't use modified versions of this prop\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(focusOnMount),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 1),\n      initialFocusOnMount = _useState4[0];\n\n  var focusToolbar = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    focusFirstTabbableIn(ref.current);\n  }, []);\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/focus-toolbar', focusToolbar, {\n    bindGlobal: true,\n    eventName: 'keydown'\n  });\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (initialFocusOnMount) {\n      focusToolbar();\n    }\n  }, [isAccessibleToolbar, initialFocusOnMount, focusToolbar]);\n}\n\nfunction NavigableToolbar(_ref) {\n  var children = _ref.children,\n      focusOnMount = _ref.focusOnMount,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"focusOnMount\"]);\n\n  var wrapper = Object(external_this_wp_element_[\"useRef\"])();\n  var isAccessibleToolbar = useIsAccessibleToolbar(wrapper);\n  useToolbarFocus(wrapper, focusOnMount, isAccessibleToolbar);\n\n  if (isAccessibleToolbar) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Toolbar\"], Object(esm_extends[\"a\" /* default */])({\n      __experimentalAccessibilityLabel: props['aria-label'],\n      ref: wrapper\n    }, props), children);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NavigableMenu\"], Object(esm_extends[\"a\" /* default */])({\n    orientation: \"horizontal\",\n    role: \"toolbar\",\n    ref: wrapper\n  }, props), children);\n}\n\n/* harmony default export */ var navigable_toolbar = (NavigableToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-mover/index.js\n\n\n\n\n\n\n\n\n\nfunction block_mover_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_mover_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_mover_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar block_mover_BlockMover = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BlockMover, _Component);\n\n  var _super = block_mover_createSuper(BlockMover);\n\n  function BlockMover() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BlockMover);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      isFocused: false\n    };\n    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onBlur = _this.onBlur.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BlockMover, [{\n    key: \"onFocus\",\n    value: function onFocus() {\n      this.setState({\n        isFocused: true\n      });\n    }\n  }, {\n    key: \"onBlur\",\n    value: function onBlur() {\n      this.setState({\n        isFocused: false\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          isFirst = _this$props.isFirst,\n          isLast = _this$props.isLast,\n          clientIds = _this$props.clientIds,\n          isLocked = _this$props.isLocked,\n          isHidden = _this$props.isHidden,\n          rootClientId = _this$props.rootClientId,\n          orientation = _this$props.orientation;\n      var isFocused = this.state.isFocused;\n\n      if (isLocked || isFirst && isLast && !rootClientId) {\n        return null;\n      } // We emulate a disabled state because forcefully applying the `disabled`\n      // attribute on the buttons while it has focus causes the screen to change\n      // to an unfocused state (body as active element) without firing blur on,\n      // the rendering parent, leaving it unable to react to focus out.\n\n\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classnames_default()('block-editor-block-mover', {\n          'is-visible': isFocused || !isHidden,\n          'is-horizontal': orientation === 'horizontal'\n        })\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n        onFocus: this.onFocus,\n        onBlur: this.onBlur\n      }, function (itemProps) {\n        return Object(external_this_wp_element_[\"createElement\"])(BlockMoverUpButton, Object(esm_extends[\"a\" /* default */])({\n          clientIds: clientIds\n        }, itemProps));\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n        onFocus: this.onFocus,\n        onBlur: this.onBlur\n      }, function (itemProps) {\n        return Object(external_this_wp_element_[\"createElement\"])(BlockMoverDownButton, Object(esm_extends[\"a\" /* default */])({\n          clientIds: clientIds\n        }, itemProps));\n      })));\n    }\n  }]);\n\n  return BlockMover;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var block_mover = (Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var _getBlockListSettings;\n\n  var clientIds = _ref.clientIds;\n\n  var _select = select('core/block-editor'),\n      getBlock = _select.getBlock,\n      getBlockIndex = _select.getBlockIndex,\n      getBlockListSettings = _select.getBlockListSettings,\n      getTemplateLock = _select.getTemplateLock,\n      getBlockOrder = _select.getBlockOrder,\n      getBlockRootClientId = _select.getBlockRootClientId;\n\n  var normalizedClientIds = Object(external_this_lodash_[\"castArray\"])(clientIds);\n  var firstClientId = Object(external_this_lodash_[\"first\"])(normalizedClientIds);\n  var block = getBlock(firstClientId);\n  var rootClientId = getBlockRootClientId(Object(external_this_lodash_[\"first\"])(normalizedClientIds));\n  var firstIndex = getBlockIndex(firstClientId, rootClientId);\n  var lastIndex = getBlockIndex(Object(external_this_lodash_[\"last\"])(normalizedClientIds), rootClientId);\n  var blockOrder = getBlockOrder(rootClientId);\n  var isFirst = firstIndex === 0;\n  var isLast = lastIndex === blockOrder.length - 1;\n  return {\n    blockType: block ? Object(external_this_wp_blocks_[\"getBlockType\"])(block.name) : null,\n    isLocked: getTemplateLock(rootClientId) === 'all',\n    rootClientId: rootClientId,\n    firstIndex: firstIndex,\n    isFirst: isFirst,\n    isLast: isLast,\n    orientation: (_getBlockListSettings = getBlockListSettings(rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation\n  };\n})(block_mover_BlockMover));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-parent-selector/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Block parent selector component, displaying the hierarchy of the\n * current block selection as a single icon to \"go up\" a level.\n *\n * @return {WPComponent} Parent block selector.\n */\n\nfunction BlockParentSelector() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      selectBlock = _useDispatch.selectBlock;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName,\n        getBlockParents = _select.getBlockParents,\n        getSelectedBlockClientId = _select.getSelectedBlockClientId;\n\n    var selectedBlockClientId = getSelectedBlockClientId();\n    var parents = getBlockParents(selectedBlockClientId);\n    var _firstParentClientId = parents[parents.length - 1];\n    var parentBlockName = getBlockName(_firstParentClientId);\n    return {\n      parentBlockType: Object(external_this_wp_blocks_[\"getBlockType\"])(parentBlockName),\n      firstParentClientId: _firstParentClientId\n    };\n  }, []),\n      parentBlockType = _useSelect.parentBlockType,\n      firstParentClientId = _useSelect.firstParentClientId;\n\n  if (firstParentClientId !== undefined) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-parent-selector\",\n      key: firstParentClientId\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n      className: \"block-editor-block-parent-selector__button\",\n      onClick: function onClick() {\n        return selectBlock(firstParentClientId);\n      },\n      label: Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: Name of the block's parent. */\n      Object(external_this_wp_i18n_[\"__\"])('Select parent (%s)'), parentBlockType.title),\n      showTooltip: true,\n      icon: Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n        icon: parentBlockType.icon\n      })\n    }));\n  }\n\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/stack.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar stack_stack = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zm-13.5 0V4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1v11.8c0 .1-.1.1-.1.1H4.6l-.1-.1z\"\n}));\n/* harmony default export */ var library_stack = (stack_stack);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-styles/index.js\n\n\n\nfunction block_styles_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_styles_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_styles_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_styles_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction block_styles_createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = block_styles_unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction block_styles_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return block_styles_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return block_styles_arrayLikeToArray(o, minLen); }\n\nfunction block_styles_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns the active style from the given className.\n *\n * @param {Array} styles Block style variations.\n * @param {string} className  Class name\n *\n * @return {Object?} The active style.\n */\n\nfunction getActiveStyle(styles, className) {\n  var _iterator = block_styles_createForOfIteratorHelper(new external_this_wp_tokenList_default.a(className).values()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var style = _step.value;\n\n      if (style.indexOf('is-style-') === -1) {\n        continue;\n      }\n\n      var potentialStyleName = style.substring(9);\n      var activeStyle = Object(external_this_lodash_[\"find\"])(styles, {\n        name: potentialStyleName\n      });\n\n      if (activeStyle) {\n        return activeStyle;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return Object(external_this_lodash_[\"find\"])(styles, 'isDefault');\n}\n/**\n * Replaces the active style in the block's className.\n *\n * @param {string}  className   Class name.\n * @param {Object?} activeStyle The replaced style.\n * @param {Object}  newStyle    The replacing style.\n *\n * @return {string} The updated className.\n */\n\nfunction replaceActiveStyle(className, activeStyle, newStyle) {\n  var list = new external_this_wp_tokenList_default.a(className);\n\n  if (activeStyle) {\n    list.remove('is-style-' + activeStyle.name);\n  }\n\n  list.add('is-style-' + newStyle.name);\n  return list.value;\n}\n\nvar block_styles_useGenericPreviewBlock = function useGenericPreviewBlock(block, type) {\n  return Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return type.example ? Object(external_this_wp_blocks_[\"getBlockFromExample\"])(block.name, {\n      attributes: type.example.attributes,\n      innerBlocks: type.example.innerBlocks\n    }) : Object(external_this_wp_blocks_[\"cloneBlock\"])(block);\n  }, [type.example ? block.name : block, type]);\n};\n\nfunction BlockStyles(_ref) {\n  var clientId = _ref.clientId,\n      _ref$onSwitch = _ref.onSwitch,\n      onSwitch = _ref$onSwitch === void 0 ? external_this_lodash_[\"noop\"] : _ref$onSwitch,\n      _ref$onHoverClassName = _ref.onHoverClassName,\n      onHoverClassName = _ref$onHoverClassName === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverClassName,\n      itemRole = _ref.itemRole;\n\n  var selector = function selector(select) {\n    var _select = select('core/block-editor'),\n        getBlock = _select.getBlock;\n\n    var _select2 = select('core/blocks'),\n        getBlockStyles = _select2.getBlockStyles;\n\n    var block = getBlock(clientId);\n    var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(block.name);\n    return {\n      block: block,\n      type: blockType,\n      styles: getBlockStyles(block.name),\n      className: block.attributes.className || ''\n    };\n  };\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(selector, [clientId]),\n      styles = _useSelect.styles,\n      block = _useSelect.block,\n      type = _useSelect.type,\n      className = _useSelect.className;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlockAttributes = _useDispatch.updateBlockAttributes;\n\n  var genericPreviewBlock = block_styles_useGenericPreviewBlock(block, type);\n\n  if (!styles || styles.length === 0) {\n    return null;\n  }\n\n  if (!type.styles && !Object(external_this_lodash_[\"find\"])(styles, 'isDefault')) {\n    styles.unshift({\n      name: 'default',\n      label: Object(external_this_wp_i18n_[\"_x\"])('Default', 'block style'),\n      isDefault: true\n    });\n  }\n\n  var activeStyle = getActiveStyle(styles, className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-styles\"\n  }, styles.map(function (style) {\n    var styleClassName = replaceActiveStyle(className, activeStyle, style);\n    return Object(external_this_wp_element_[\"createElement\"])(BlockStyleItem, {\n      genericPreviewBlock: genericPreviewBlock,\n      className: className,\n      isActive: activeStyle === style,\n      key: style.name,\n      onSelect: function onSelect() {\n        updateBlockAttributes(clientId, {\n          className: styleClassName\n        });\n        onHoverClassName(null);\n        onSwitch();\n      },\n      onBlur: function onBlur() {\n        return onHoverClassName(null);\n      },\n      onHover: function onHover() {\n        return onHoverClassName(styleClassName);\n      },\n      style: style,\n      styleClassName: styleClassName,\n      itemRole: itemRole\n    });\n  }));\n}\n\nfunction BlockStyleItem(_ref2) {\n  var genericPreviewBlock = _ref2.genericPreviewBlock,\n      style = _ref2.style,\n      isActive = _ref2.isActive,\n      onBlur = _ref2.onBlur,\n      onHover = _ref2.onHover,\n      onSelect = _ref2.onSelect,\n      styleClassName = _ref2.styleClassName,\n      itemRole = _ref2.itemRole;\n  var previewBlocks = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return block_styles_objectSpread({}, genericPreviewBlock, {\n      attributes: block_styles_objectSpread({}, genericPreviewBlock.attributes, {\n        className: styleClassName\n      })\n    });\n  }, [genericPreviewBlock, styleClassName]);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    key: style.name,\n    className: classnames_default()('block-editor-block-styles__item', {\n      'is-active': isActive\n    }),\n    onClick: function onClick() {\n      return onSelect();\n    },\n    onKeyDown: function onKeyDown(event) {\n      if (external_this_wp_keycodes_[\"ENTER\"] === event.keyCode || external_this_wp_keycodes_[\"SPACE\"] === event.keyCode) {\n        event.preventDefault();\n        onSelect();\n      }\n    },\n    onMouseEnter: onHover,\n    onMouseLeave: onBlur,\n    role: itemRole || 'button',\n    tabIndex: \"0\",\n    \"aria-label\": style.label || style.name\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-styles__item-preview\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_preview, {\n    viewportWidth: 500,\n    blocks: previewBlocks\n  })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-styles__item-label\"\n  }, style.label || style.name));\n}\n\n/* harmony default export */ var block_styles = (BlockStyles);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/block-transformations-menu.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar block_transformations_menu_BlockTransformationsMenu = function BlockTransformationsMenu(_ref) {\n  var className = _ref.className,\n      possibleBlockTransformations = _ref.possibleBlockTransformations,\n      onSelect = _ref.onSelect;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Transform to'),\n    className: className\n  }, possibleBlockTransformations.map(function (item) {\n    var name = item.name,\n        icon = item.icon,\n        title = item.title;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      key: name,\n      className: Object(external_this_wp_blocks_[\"getBlockMenuDefaultClassName\"])(name),\n      icon: Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n        icon: icon,\n        showColors: true\n      }),\n      onClick: function onClick(event) {\n        event.preventDefault();\n        onSelect(name);\n      }\n    }, title);\n  }));\n};\n\n/* harmony default export */ var block_transformations_menu = (block_transformations_menu_BlockTransformationsMenu);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-switcher/index.js\n\n\n\n\n\n\n\n\n\n\nfunction block_switcher_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_switcher_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_switcher_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction block_switcher_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_switcher_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_switcher_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_switcher_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction PreviewBlockPopover(_ref) {\n  var hoveredBlock = _ref.hoveredBlock,\n      hoveredClassName = _ref.hoveredClassName;\n  var hoveredBlockType = Object(external_this_wp_blocks_[\"getBlockType\"])(hoveredBlock.name);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-switcher__popover__preview__parent\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-switcher__popover__preview__container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    className: \"block-editor-block-switcher__preview__popover\",\n    position: \"bottom right\",\n    focusOnMount: false\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-switcher__preview\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-switcher__preview-title\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Preview')), Object(external_this_wp_element_[\"createElement\"])(block_preview, {\n    viewportWidth: 500,\n    blocks: hoveredBlockType.example ? Object(external_this_wp_blocks_[\"getBlockFromExample\"])(hoveredBlock.name, {\n      attributes: block_switcher_objectSpread({}, hoveredBlockType.example.attributes, {\n        className: hoveredClassName\n      }),\n      innerBlocks: hoveredBlockType.example.innerBlocks\n    }) : Object(external_this_wp_blocks_[\"cloneBlock\"])(hoveredBlock, {\n      className: hoveredClassName\n    })\n  })))));\n}\n\nvar block_switcher_BlockSwitcher = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BlockSwitcher, _Component);\n\n  var _super = block_switcher_createSuper(BlockSwitcher);\n\n  function BlockSwitcher() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BlockSwitcher);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      hoveredClassName: null\n    };\n    _this.onHoverClassName = _this.onHoverClassName.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BlockSwitcher, [{\n    key: \"onHoverClassName\",\n    value: function onHoverClassName(className) {\n      this.setState({\n        hoveredClassName: className\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          blocks = _this$props.blocks,\n          onTransform = _this$props.onTransform,\n          inserterItems = _this$props.inserterItems,\n          hasBlockStyles = _this$props.hasBlockStyles;\n      var hoveredClassName = this.state.hoveredClassName;\n\n      if (!Array.isArray(blocks) || !blocks.length) {\n        return null;\n      }\n\n      var _blocks = Object(slicedToArray[\"a\" /* default */])(blocks, 1),\n          hoveredBlock = _blocks[0];\n\n      var itemsByName = Object(external_this_lodash_[\"mapKeys\"])(inserterItems, function (_ref2) {\n        var name = _ref2.name;\n        return name;\n      });\n      var possibleBlockTransformations = Object(external_this_lodash_[\"orderBy\"])(Object(external_this_lodash_[\"filter\"])(Object(external_this_wp_blocks_[\"getPossibleBlockTransformations\"])(blocks), function (block) {\n        return block && !!itemsByName[block.name];\n      }), function (block) {\n        return itemsByName[block.name].frecency;\n      }, 'desc'); // When selection consists of blocks of multiple types, display an\n      // appropriate icon to communicate the non-uniformity.\n\n      var isSelectionOfSameType = Object(external_this_lodash_[\"uniq\"])(Object(external_this_lodash_[\"map\"])(blocks, 'name')).length === 1;\n      var icon;\n\n      if (isSelectionOfSameType) {\n        var sourceBlockName = hoveredBlock.name;\n        var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(sourceBlockName);\n        icon = blockType.icon;\n      } else {\n        icon = library_stack;\n      }\n\n      var hasPossibleBlockTransformations = !!possibleBlockTransformations.length;\n\n      if (!hasBlockStyles && !hasPossibleBlockTransformations) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n          disabled: true,\n          className: \"block-editor-block-switcher__no-switcher-icon\",\n          title: Object(external_this_wp_i18n_[\"__\"])('Block icon'),\n          icon: Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n            icon: icon,\n            showColors: true\n          })\n        }));\n      }\n\n      var blockSwitcherLabel = 1 === blocks.length ? Object(external_this_wp_i18n_[\"__\"])('Change block type or style') : Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: number of blocks. */\n      Object(external_this_wp_i18n_[\"_n\"])('Change type of %d block', 'Change type of %d blocks', blocks.length), blocks.length);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], null, function (toggleProps) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], {\n          className: \"block-editor-block-switcher\",\n          label: blockSwitcherLabel,\n          popoverProps: {\n            position: 'bottom right',\n            isAlternate: true,\n            className: 'block-editor-block-switcher__popover'\n          },\n          icon: Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n            icon: icon,\n            className: \"block-editor-block-switcher__toggle\",\n            showColors: true\n          }),\n          toggleProps: toggleProps,\n          menuProps: {\n            orientation: 'both'\n          }\n        }, function (_ref3) {\n          var onClose = _ref3.onClose;\n          return (hasBlockStyles || hasPossibleBlockTransformations) && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n            className: \"block-editor-block-switcher__container\"\n          }, hasPossibleBlockTransformations && Object(external_this_wp_element_[\"createElement\"])(block_transformations_menu, {\n            className: \"block-editor-block-switcher__transforms__menugroup\",\n            possibleBlockTransformations: possibleBlockTransformations,\n            onSelect: function onSelect(name) {\n              onTransform(blocks, name);\n              onClose();\n            }\n          }), hasBlockStyles && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n            label: Object(external_this_wp_i18n_[\"__\"])('Styles'),\n            className: \"block-editor-block-switcher__styles__menugroup\"\n          }, hoveredClassName !== null && Object(external_this_wp_element_[\"createElement\"])(PreviewBlockPopover, {\n            hoveredBlock: hoveredBlock,\n            hoveredClassName: hoveredClassName\n          }), Object(external_this_wp_element_[\"createElement\"])(block_styles, {\n            clientId: hoveredBlock.clientId,\n            onSwitch: onClose,\n            onHoverClassName: _this2.onHoverClassName,\n            itemRole: \"menuitem\"\n          })));\n        });\n      }));\n    }\n  }]);\n\n  return BlockSwitcher;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var block_switcher = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref4) {\n  var clientIds = _ref4.clientIds;\n\n  var _select = select('core/block-editor'),\n      getBlocksByClientId = _select.getBlocksByClientId,\n      getBlockRootClientId = _select.getBlockRootClientId,\n      getInserterItems = _select.getInserterItems;\n\n  var _select2 = select('core/blocks'),\n      getBlockStyles = _select2.getBlockStyles;\n\n  var rootClientId = getBlockRootClientId(Object(external_this_lodash_[\"castArray\"])(clientIds)[0]);\n  var blocks = getBlocksByClientId(clientIds);\n  var firstBlock = blocks && blocks.length === 1 ? blocks[0] : null;\n  var styles = firstBlock && getBlockStyles(firstBlock.name);\n  return {\n    blocks: blocks,\n    inserterItems: getInserterItems(rootClientId),\n    hasBlockStyles: styles && styles.length > 0\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  return {\n    onTransform: function onTransform(blocks, name) {\n      dispatch('core/block-editor').replaceBlocks(ownProps.clientIds, Object(external_this_wp_blocks_[\"switchToBlockType\"])(blocks, name));\n    }\n  };\n}))(block_switcher_BlockSwitcher));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blob\"]}\nvar external_this_wp_blob_ = __webpack_require__(44);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/get-paste-event-data.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction getPasteEventData(_ref) {\n  var clipboardData = _ref.clipboardData;\n  var items = clipboardData.items,\n      files = clipboardData.files; // In Edge these properties can be null instead of undefined, so a more\n  // rigorous test is required over using default values.\n\n  items = Object(external_this_lodash_[\"isNil\"])(items) ? [] : items;\n  files = Object(external_this_lodash_[\"isNil\"])(files) ? [] : files;\n  var plainText = '';\n  var html = ''; // IE11 only supports `Text` as an argument for `getData` and will\n  // otherwise throw an invalid argument error, so we try the standard\n  // arguments first, then fallback to `Text` if they fail.\n\n  try {\n    plainText = clipboardData.getData('text/plain');\n    html = clipboardData.getData('text/html');\n  } catch (error1) {\n    try {\n      html = clipboardData.getData('Text');\n    } catch (error2) {\n      // Some browsers like UC Browser paste plain text by default and\n      // don't support clipboardData at all, so allow default\n      // behaviour.\n      return;\n    }\n  }\n\n  files = Array.from(files);\n  Array.from(items).forEach(function (item) {\n    if (!item.getAsFile) {\n      return;\n    }\n\n    var file = item.getAsFile();\n\n    if (!file) {\n      return;\n    }\n\n    var name = file.name,\n        type = file.type,\n        size = file.size;\n\n    if (!Object(external_this_lodash_[\"find\"])(files, {\n      name: name,\n      type: type,\n      size: size\n    })) {\n      files.push(file);\n    }\n  });\n  files = files.filter(function (_ref2) {\n    var type = _ref2.type;\n    return /^image\\/(?:jpe?g|png|gif)$/.test(type);\n  }); // Only process files if no HTML is present.\n  // A pasted file may have the URL as plain text.\n\n  if (files.length && !html) {\n    html = files.map(function (file) {\n      return \"<img src=\\\"\".concat(Object(external_this_wp_blob_[\"createBlobURL\"])(file), \"\\\">\");\n    }).join('');\n    plainText = '';\n  }\n\n  return {\n    html: html,\n    plainText: plainText\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/copy-handler/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction useNotifyCopy() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor');\n  }, []),\n      getBlockName = _useSelect.getBlockName;\n\n  var _useSelect2 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/blocks');\n  }, []),\n      getBlockType = _useSelect2.getBlockType;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/notices'),\n      createSuccessNotice = _useDispatch.createSuccessNotice;\n\n  return Object(external_this_wp_element_[\"useCallback\"])(function (eventType, selectedBlockClientIds) {\n    var notice = '';\n\n    if (selectedBlockClientIds.length === 1) {\n      var clientId = selectedBlockClientIds[0];\n\n      var _getBlockType = getBlockType(getBlockName(clientId)),\n          title = _getBlockType.title;\n\n      notice = eventType === 'copy' ? Object(external_this_wp_i18n_[\"sprintf\"])( // Translators: Name of the block being copied, e.g. \"Paragraph\"\n      Object(external_this_wp_i18n_[\"__\"])('Copied \"%s\" to clipboard.'), title) : Object(external_this_wp_i18n_[\"sprintf\"])( // Translators: Name of the block being cut, e.g. \"Paragraph\"\n      Object(external_this_wp_i18n_[\"__\"])('Moved \"%s\" to clipboard.'), title);\n    } else {\n      notice = eventType === 'copy' ? Object(external_this_wp_i18n_[\"sprintf\"])( // Translators: Number of blocks being copied\n      Object(external_this_wp_i18n_[\"__\"])('Copied %d blocks to clipboard.'), selectedBlockClientIds.length) : Object(external_this_wp_i18n_[\"sprintf\"])( // Translators: Number of blocks being cut\n      Object(external_this_wp_i18n_[\"__\"])('Moved %d blocks to clipboard.'), selectedBlockClientIds.length);\n    }\n\n    createSuccessNotice(notice, {\n      type: 'snackbar'\n    });\n  }, []);\n}\n\nfunction CopyHandler(_ref) {\n  var children = _ref.children;\n  var containerRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useSelect3 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor');\n  }, []),\n      getBlocksByClientId = _useSelect3.getBlocksByClientId,\n      getSelectedBlockClientIds = _useSelect3.getSelectedBlockClientIds,\n      hasMultiSelection = _useSelect3.hasMultiSelection,\n      getSettings = _useSelect3.getSettings;\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      flashBlock = _useDispatch2.flashBlock,\n      removeBlocks = _useDispatch2.removeBlocks,\n      replaceBlocks = _useDispatch2.replaceBlocks;\n\n  var notifyCopy = useNotifyCopy();\n\n  var _getSettings = getSettings(),\n      canUserUseUnfilteredHTML = _getSettings.__experimentalCanUserUseUnfilteredHTML;\n\n  var handler = function handler(event) {\n    var selectedBlockClientIds = getSelectedBlockClientIds();\n\n    if (selectedBlockClientIds.length === 0) {\n      return;\n    } // Always handle multiple selected blocks.\n\n\n    if (!hasMultiSelection()) {\n      // If copying, only consider actual text selection as selection.\n      // Otherwise, any focus on an input field is considered.\n      var hasSelection = event.type === 'copy' || event.type === 'cut' ? Object(external_this_wp_dom_[\"documentHasUncollapsedSelection\"])() : Object(external_this_wp_dom_[\"documentHasSelection\"])(); // Let native copy behaviour take over in input fields.\n\n      if (hasSelection) {\n        return;\n      }\n    }\n\n    if (!containerRef.current.contains(event.target)) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (event.type === 'copy' || event.type === 'cut') {\n      if (selectedBlockClientIds.length === 1) {\n        flashBlock(selectedBlockClientIds[0]);\n      }\n\n      notifyCopy(event.type, selectedBlockClientIds);\n      var blocks = getBlocksByClientId(selectedBlockClientIds);\n      var serialized = Object(external_this_wp_blocks_[\"serialize\"])(blocks);\n      event.clipboardData.setData('text/plain', serialized);\n      event.clipboardData.setData('text/html', serialized);\n    }\n\n    if (event.type === 'cut') {\n      removeBlocks(selectedBlockClientIds);\n    } else if (event.type === 'paste') {\n      var _getPasteEventData = getPasteEventData(event),\n          plainText = _getPasteEventData.plainText,\n          html = _getPasteEventData.html;\n\n      var _blocks = Object(external_this_wp_blocks_[\"pasteHandler\"])({\n        HTML: html,\n        plainText: plainText,\n        mode: 'BLOCKS',\n        canUserUseUnfilteredHTML: canUserUseUnfilteredHTML\n      });\n\n      replaceBlocks(selectedBlockClientIds, _blocks, _blocks.length - 1, -1);\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: containerRef,\n    onCopy: handler,\n    onCut: handler,\n    onPaste: handler\n  }, children);\n}\n\n/* harmony default export */ var copy_handler = (CopyHandler);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-actions/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction BlockActions(_ref) {\n  var clientIds = _ref.clientIds,\n      children = _ref.children,\n      updateSelection = _ref.__experimentalUpdateSelection;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor');\n  }, []),\n      canInsertBlockType = _useSelect.canInsertBlockType,\n      getBlockRootClientId = _useSelect.getBlockRootClientId,\n      getBlocksByClientId = _useSelect.getBlocksByClientId,\n      getTemplateLock = _useSelect.getTemplateLock;\n\n  var _useSelect2 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/blocks');\n  }, []),\n      getDefaultBlockName = _useSelect2.getDefaultBlockName,\n      getGroupingBlockName = _useSelect2.getGroupingBlockName;\n\n  var blocks = getBlocksByClientId(clientIds);\n  var rootClientId = getBlockRootClientId(clientIds[0]);\n  var canDuplicate = Object(external_this_lodash_[\"every\"])(blocks, function (block) {\n    return !!block && Object(external_this_wp_blocks_[\"hasBlockSupport\"])(block.name, 'multiple', true) && canInsertBlockType(block.name, rootClientId);\n  });\n  var canInsertDefaultBlock = canInsertBlockType(getDefaultBlockName(), rootClientId);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      removeBlocks = _useDispatch.removeBlocks,\n      replaceBlocks = _useDispatch.replaceBlocks,\n      duplicateBlocks = _useDispatch.duplicateBlocks,\n      insertAfterBlock = _useDispatch.insertAfterBlock,\n      insertBeforeBlock = _useDispatch.insertBeforeBlock,\n      flashBlock = _useDispatch.flashBlock,\n      setBlockMovingClientId = _useDispatch.setBlockMovingClientId,\n      setNavigationMode = _useDispatch.setNavigationMode;\n\n  var notifyCopy = useNotifyCopy();\n  return children({\n    canDuplicate: canDuplicate,\n    canInsertDefaultBlock: canInsertDefaultBlock,\n    isLocked: !!getTemplateLock(rootClientId),\n    rootClientId: rootClientId,\n    blocks: blocks,\n    onDuplicate: function onDuplicate() {\n      return duplicateBlocks(clientIds, updateSelection);\n    },\n    onRemove: function onRemove() {\n      return removeBlocks(clientIds, updateSelection);\n    },\n    onInsertBefore: function onInsertBefore() {\n      insertBeforeBlock(Object(external_this_lodash_[\"first\"])(Object(external_this_lodash_[\"castArray\"])(clientIds)));\n    },\n    onInsertAfter: function onInsertAfter() {\n      insertAfterBlock(Object(external_this_lodash_[\"last\"])(Object(external_this_lodash_[\"castArray\"])(clientIds)));\n    },\n    onMoveTo: function onMoveTo() {\n      setNavigationMode(true);\n      setBlockMovingClientId(clientIds[0]);\n    },\n    onGroup: function onGroup() {\n      if (!blocks.length) {\n        return;\n      }\n\n      var groupingBlockName = getGroupingBlockName(); // Activate the `transform` on `core/group` which does the conversion\n\n      var newBlocks = Object(external_this_wp_blocks_[\"switchToBlockType\"])(blocks, groupingBlockName);\n\n      if (!newBlocks) {\n        return;\n      }\n\n      replaceBlocks(clientIds, newBlocks);\n    },\n    onUngroup: function onUngroup() {\n      if (!blocks.length) {\n        return;\n      }\n\n      var innerBlocks = blocks[0].innerBlocks;\n\n      if (!innerBlocks.length) {\n        return;\n      }\n\n      replaceBlocks(clientIds, innerBlocks);\n    },\n    onCopy: function onCopy() {\n      var selectedBlockClientIds = blocks.map(function (_ref2) {\n        var clientId = _ref2.clientId;\n        return clientId;\n      });\n\n      if (blocks.length === 1) {\n        flashBlock(selectedBlockClientIds[0]);\n      }\n\n      notifyCopy('copy', selectedBlockClientIds);\n    }\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-mode-toggle.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction BlockModeToggle(_ref) {\n  var blockType = _ref.blockType,\n      mode = _ref.mode,\n      onToggleMode = _ref.onToggleMode,\n      _ref$small = _ref.small,\n      small = _ref$small === void 0 ? false : _ref$small,\n      _ref$isCodeEditingEna = _ref.isCodeEditingEnabled,\n      isCodeEditingEnabled = _ref$isCodeEditingEna === void 0 ? true : _ref$isCodeEditingEna;\n\n  if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'html', true) || !isCodeEditingEnabled) {\n    return null;\n  }\n\n  var label = mode === 'visual' ? Object(external_this_wp_i18n_[\"__\"])('Edit as HTML') : Object(external_this_wp_i18n_[\"__\"])('Edit visually');\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: onToggleMode\n  }, !small && label);\n}\n/* harmony default export */ var block_mode_toggle = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var clientId = _ref2.clientId;\n\n  var _select = select('core/block-editor'),\n      getBlock = _select.getBlock,\n      getBlockMode = _select.getBlockMode,\n      getSettings = _select.getSettings;\n\n  var block = getBlock(clientId);\n  var isCodeEditingEnabled = getSettings().codeEditingEnabled;\n  return {\n    mode: getBlockMode(clientId),\n    blockType: block ? Object(external_this_wp_blocks_[\"getBlockType\"])(block.name) : null,\n    isCodeEditingEnabled: isCodeEditingEnabled\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref3) {\n  var _ref3$onToggle = _ref3.onToggle,\n      onToggle = _ref3$onToggle === void 0 ? external_this_lodash_[\"noop\"] : _ref3$onToggle,\n      clientId = _ref3.clientId;\n  return {\n    onToggleMode: function onToggleMode() {\n      dispatch('core/block-editor').toggleBlockMode(clientId);\n      onToggle();\n    }\n  };\n})])(BlockModeToggle));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-convert-button.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction BlockConvertButton(_ref) {\n  var shouldRender = _ref.shouldRender,\n      onClick = _ref.onClick,\n      small = _ref.small;\n\n  if (!shouldRender) {\n    return null;\n  }\n\n  var label = Object(external_this_wp_i18n_[\"__\"])('Convert to Blocks');\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: onClick\n  }, !small && label);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-html-convert-button.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var block_html_convert_button = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var clientId = _ref.clientId;\n  var block = select('core/block-editor').getBlock(clientId);\n  return {\n    block: block,\n    shouldRender: block && block.name === 'core/html'\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var block = _ref2.block;\n  return {\n    onClick: function onClick() {\n      return dispatch('core/block-editor').replaceBlocks(block.clientId, Object(external_this_wp_blocks_[\"rawHandler\"])({\n        HTML: Object(external_this_wp_blocks_[\"getBlockContent\"])(block)\n      }));\n    }\n  };\n}))(BlockConvertButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-unknown-convert-button.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var block_unknown_convert_button = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var clientId = _ref.clientId;\n  var block = select('core/block-editor').getBlock(clientId);\n  return {\n    block: block,\n    shouldRender: block && block.name === Object(external_this_wp_blocks_[\"getFreeformContentHandlerName\"])()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var block = _ref2.block;\n  return {\n    onClick: function onClick() {\n      return dispatch('core/block-editor').replaceBlocks(block.clientId, Object(external_this_wp_blocks_[\"rawHandler\"])({\n        HTML: Object(external_this_wp_blocks_[\"serialize\"])(block)\n      }));\n    }\n  };\n}))(BlockConvertButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-menu-first-item.js\n/**\n * WordPress dependencies\n */\n\n\nvar block_settings_menu_first_item_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('__experimentalBlockSettingsMenuFirstItem'),\n    __experimentalBlockSettingsMenuFirstItem = block_settings_menu_first_item_createSlotFill.Fill,\n    block_settings_menu_first_item_Slot = block_settings_menu_first_item_createSlotFill.Slot;\n\n__experimentalBlockSettingsMenuFirstItem.Slot = block_settings_menu_first_item_Slot;\n/* harmony default export */ var block_settings_menu_first_item = (__experimentalBlockSettingsMenuFirstItem);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu-controls/index.js\n\n\n\nfunction block_settings_menu_controls_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_settings_menu_controls_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_settings_menu_controls_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_settings_menu_controls_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar block_settings_menu_controls_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('BlockSettingsMenuControls'),\n    BlockSettingsMenuControls = block_settings_menu_controls_createSlotFill.Fill,\n    block_settings_menu_controls_Slot = block_settings_menu_controls_createSlotFill.Slot;\n\nvar block_settings_menu_controls_BlockSettingsMenuControlsSlot = function BlockSettingsMenuControlsSlot(_ref) {\n  var fillProps = _ref.fillProps,\n      _ref$clientIds = _ref.clientIds,\n      clientIds = _ref$clientIds === void 0 ? null : _ref$clientIds;\n  var selectedBlocks = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlocksByClientId = _select.getBlocksByClientId,\n        getSelectedBlockClientIds = _select.getSelectedBlockClientIds;\n\n    var ids = clientIds !== null ? clientIds : getSelectedBlockClientIds();\n    return Object(external_this_lodash_[\"map\"])(getBlocksByClientId(ids), function (block) {\n      return block.name;\n    });\n  }, [clientIds]);\n  return Object(external_this_wp_element_[\"createElement\"])(block_settings_menu_controls_Slot, {\n    fillProps: block_settings_menu_controls_objectSpread({}, fillProps, {\n      selectedBlocks: selectedBlocks\n    })\n  }, function (fills) {\n    return !Object(external_this_lodash_[\"isEmpty\"])(fills) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, fills);\n  });\n};\n\nBlockSettingsMenuControls.Slot = block_settings_menu_controls_BlockSettingsMenuControlsSlot;\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-settings-menu-controls/README.md\n */\n\n/* harmony default export */ var block_settings_menu_controls = (BlockSettingsMenuControls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/block-settings-dropdown.js\n\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nvar block_settings_dropdown_POPOVER_PROPS = {\n  className: 'block-editor-block-settings-menu__popover',\n  position: 'bottom right',\n  isAlternate: true\n};\nfunction BlockSettingsDropdown(_ref) {\n  var clientIds = _ref.clientIds,\n      __experimentalSelectBlock = _ref.__experimentalSelectBlock,\n      children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"clientIds\", \"__experimentalSelectBlock\", \"children\"]);\n\n  var blockClientIds = Object(external_this_lodash_[\"castArray\"])(clientIds);\n  var count = blockClientIds.length;\n  var firstBlockClientId = blockClientIds[0];\n  var shortcuts = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/keyboard-shortcuts'),\n        getShortcutRepresentation = _select.getShortcutRepresentation;\n\n    return {\n      duplicate: getShortcutRepresentation('core/block-editor/duplicate'),\n      remove: getShortcutRepresentation('core/block-editor/remove'),\n      insertAfter: getShortcutRepresentation('core/block-editor/insert-after'),\n      insertBefore: getShortcutRepresentation('core/block-editor/insert-before')\n    };\n  }, []);\n  var updateSelection = Object(external_this_wp_element_[\"useCallback\"])(__experimentalSelectBlock ? /*#__PURE__*/function () {\n    var _ref2 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(clientIdsPromise) {\n      var ids;\n      return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return clientIdsPromise;\n\n            case 2:\n              ids = _context.sent;\n\n              if (ids && ids[0]) {\n                __experimentalSelectBlock(ids[0]);\n              }\n\n            case 4:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function (_x) {\n      return _ref2.apply(this, arguments);\n    };\n  }() : external_this_lodash_[\"noop\"], [__experimentalSelectBlock]);\n  return Object(external_this_wp_element_[\"createElement\"])(BlockActions, {\n    clientIds: clientIds,\n    __experimentalUpdateSelection: !__experimentalSelectBlock\n  }, function (_ref3) {\n    var canDuplicate = _ref3.canDuplicate,\n        canInsertDefaultBlock = _ref3.canInsertDefaultBlock,\n        isLocked = _ref3.isLocked,\n        onDuplicate = _ref3.onDuplicate,\n        onInsertAfter = _ref3.onInsertAfter,\n        onInsertBefore = _ref3.onInsertBefore,\n        onRemove = _ref3.onRemove,\n        onCopy = _ref3.onCopy,\n        onMoveTo = _ref3.onMoveTo,\n        blocks = _ref3.blocks;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], Object(esm_extends[\"a\" /* default */])({\n      icon: more_horizontal,\n      label: Object(external_this_wp_i18n_[\"__\"])('More options'),\n      className: \"block-editor-block-settings-menu\",\n      popoverProps: block_settings_dropdown_POPOVER_PROPS,\n      noIcons: true\n    }, props), function (_ref4) {\n      var onClose = _ref4.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(block_settings_menu_first_item.Slot, {\n        fillProps: {\n          onClose: onClose\n        }\n      }), count === 1 && Object(external_this_wp_element_[\"createElement\"])(block_unknown_convert_button, {\n        clientId: firstBlockClientId\n      }), count === 1 && Object(external_this_wp_element_[\"createElement\"])(block_html_convert_button, {\n        clientId: firstBlockClientId\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ClipboardButton\"], {\n        text: function text() {\n          return Object(external_this_wp_blocks_[\"serialize\"])(blocks);\n        },\n        role: \"menuitem\",\n        className: \"components-menu-item__button\",\n        onCopy: onCopy\n      }, Object(external_this_wp_i18n_[\"__\"])('Copy')), canDuplicate && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: Object(external_this_lodash_[\"flow\"])(onClose, onDuplicate, updateSelection),\n        shortcut: shortcuts.duplicate\n      }, Object(external_this_wp_i18n_[\"__\"])('Duplicate')), canInsertDefaultBlock && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: Object(external_this_lodash_[\"flow\"])(onClose, onInsertBefore),\n        shortcut: shortcuts.insertBefore\n      }, Object(external_this_wp_i18n_[\"__\"])('Insert Before')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: Object(external_this_lodash_[\"flow\"])(onClose, onInsertAfter),\n        shortcut: shortcuts.insertAfter\n      }, Object(external_this_wp_i18n_[\"__\"])('Insert After'))), !isLocked && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: Object(external_this_lodash_[\"flow\"])(onClose, onMoveTo)\n      }, Object(external_this_wp_i18n_[\"__\"])('Move To')), count === 1 && Object(external_this_wp_element_[\"createElement\"])(block_mode_toggle, {\n        clientId: firstBlockClientId,\n        onToggle: onClose\n      })), Object(external_this_wp_element_[\"createElement\"])(block_settings_menu_controls.Slot, {\n        fillProps: {\n          onClose: onClose\n        },\n        clientIds: clientIds\n      }), typeof children === 'function' ? children({\n        onClose: onClose\n      }) : external_this_wp_element_[\"Children\"].map(function (child) {\n        return Object(external_this_wp_element_[\"cloneElement\"])(child, {\n          onClose: onClose\n        });\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, !isLocked && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: Object(external_this_lodash_[\"flow\"])(onClose, onRemove, updateSelection),\n        shortcut: shortcuts.remove\n      }, Object(external_this_wp_i18n_[\"_n\"])('Remove Block', 'Remove Blocks', count))));\n    });\n  });\n}\n/* harmony default export */ var block_settings_dropdown = (BlockSettingsDropdown);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-settings-menu/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction BlockSettingsMenu(_ref) {\n  var clientIds = _ref.clientIds,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"clientIds\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], null, function (toggleProps) {\n    return Object(external_this_wp_element_[\"createElement\"])(block_settings_dropdown, Object(esm_extends[\"a\" /* default */])({\n      clientIds: clientIds,\n      toggleProps: toggleProps\n    }, props));\n  }));\n}\n/* harmony default export */ var block_settings_menu = (BlockSettingsMenu);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/handle.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar handle = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M7 16.5h10V15H7v1.5zm0-9V9h10V7.5H7z\"\n}));\n/* harmony default export */ var library_handle = (handle);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/draggable-chip.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction BlockDraggableChip(_ref) {\n  var clientIds = _ref.clientIds;\n  var icon = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    if (clientIds.length !== 1) {\n      return;\n    }\n\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName;\n\n    var _clientIds = Object(slicedToArray[\"a\" /* default */])(clientIds, 1),\n        firstId = _clientIds[0];\n\n    var blockName = getBlockName(firstId);\n    return Object(external_this_wp_blocks_[\"getBlockType\"])(blockName).icon;\n  }, [clientIds]);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-draggable-chip-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-draggable-chip\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Flex\"], {\n    justify: \"center\",\n    className: \"block-editor-block-draggable-chip__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FlexItem\"], null, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: library_handle\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FlexItem\"], null, icon ? Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: icon\n  }) : Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %d: number of blocks. */\n  Object(external_this_wp_i18n_[\"__\"])('%d blocks'), clientIds.length)))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/use-scroll-when-dragging.js\n/**\n * WordPress dependencies\n */\n\n\nvar SCROLL_INACTIVE_DISTANCE_PX = 50;\nvar SCROLL_INTERVAL_MS = 25;\nvar PIXELS_PER_SECOND_PER_PERCENTAGE = 1000;\nvar VELOCITY_MULTIPLIER = PIXELS_PER_SECOND_PER_PERCENTAGE * (SCROLL_INTERVAL_MS / 1000);\n/**\n * React hook that scrolls the scroll container when a block is being dragged.\n *\n * @return {Function[]} `startScrolling`, `scrollOnDragOver`, `stopScrolling`\n *                      functions to be called in `onDragStart`, `onDragOver`\n *                      and `onDragEnd` events respectively.\n */\n\nfunction useScrollWhenDragging() {\n  var dragStartY = Object(external_this_wp_element_[\"useRef\"])(null);\n  var velocityY = Object(external_this_wp_element_[\"useRef\"])(null);\n  var scrollParentY = Object(external_this_wp_element_[\"useRef\"])(null);\n  var scrollEditorInterval = Object(external_this_wp_element_[\"useRef\"])(null); // Clear interval when unmounting.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      if (scrollEditorInterval.current) {\n        clearInterval(scrollEditorInterval.current);\n        scrollEditorInterval.current = null;\n      }\n    };\n  }, []);\n  var startScrolling = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    dragStartY.current = event.clientY; // Find nearest parent(s) to scroll.\n\n    scrollParentY.current = Object(external_this_wp_dom_[\"getScrollContainer\"])(event.target);\n    scrollEditorInterval.current = setInterval(function () {\n      if (scrollParentY.current && velocityY.current) {\n        var newTop = scrollParentY.current.scrollTop + velocityY.current; // Setting `behavior: 'smooth'` as a scroll property seems to hurt performance.\n        // Better to use a small scroll interval.\n\n        scrollParentY.current.scroll({\n          top: newTop\n        });\n      }\n    }, SCROLL_INTERVAL_MS);\n  }, []);\n  var scrollOnDragOver = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    if (!scrollParentY.current) {\n      return;\n    }\n\n    var scrollParentHeight = scrollParentY.current.offsetHeight;\n    var offsetDragStartPosition = dragStartY.current - scrollParentY.current.offsetTop;\n    var offsetDragPosition = event.clientY - scrollParentY.current.offsetTop;\n\n    if (event.clientY > offsetDragStartPosition) {\n      // User is dragging downwards.\n      var moveableDistance = Math.max(scrollParentHeight - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);\n      var dragDistance = Math.max(offsetDragPosition - offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);\n      var distancePercentage = dragDistance / moveableDistance;\n      velocityY.current = VELOCITY_MULTIPLIER * distancePercentage;\n    } else if (event.clientY < offsetDragStartPosition) {\n      // User is dragging upwards.\n      var _moveableDistance = Math.max(offsetDragStartPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);\n\n      var _dragDistance = Math.max(offsetDragStartPosition - offsetDragPosition - SCROLL_INACTIVE_DISTANCE_PX, 0);\n\n      var _distancePercentage = _dragDistance / _moveableDistance;\n\n      velocityY.current = -VELOCITY_MULTIPLIER * _distancePercentage;\n    } else {\n      velocityY.current = 0;\n    }\n  }, []);\n\n  var stopScrolling = function stopScrolling() {\n    dragStartY.current = null;\n    scrollParentY.current = null;\n\n    if (scrollEditorInterval.current) {\n      clearInterval(scrollEditorInterval.current);\n      scrollEditorInterval.current = null;\n    }\n  };\n\n  return [startScrolling, scrollOnDragOver, stopScrolling];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-draggable/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar block_draggable_BlockDraggable = function BlockDraggable(_ref) {\n  var children = _ref.children,\n      clientIds = _ref.clientIds,\n      cloneClassname = _ref.cloneClassname,\n      _onDragStart = _ref.onDragStart,\n      _onDragEnd = _ref.onDragEnd;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockRootClientId = _select.getBlockRootClientId,\n        getTemplateLock = _select.getTemplateLock;\n\n    var rootClientId = getBlockRootClientId(clientIds[0]);\n    var templateLock = rootClientId ? getTemplateLock(rootClientId) : null;\n    return {\n      srcRootClientId: rootClientId,\n      isDraggable: 'all' !== templateLock\n    };\n  }, [clientIds]),\n      srcRootClientId = _useSelect.srcRootClientId,\n      isDraggable = _useSelect.isDraggable;\n\n  var isDragging = Object(external_this_wp_element_[\"useRef\"])(false);\n\n  var _useScrollWhenDraggin = useScrollWhenDragging(),\n      _useScrollWhenDraggin2 = Object(slicedToArray[\"a\" /* default */])(_useScrollWhenDraggin, 3),\n      startScrolling = _useScrollWhenDraggin2[0],\n      scrollOnDragOver = _useScrollWhenDraggin2[1],\n      stopScrolling = _useScrollWhenDraggin2[2];\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      startDraggingBlocks = _useDispatch.startDraggingBlocks,\n      stopDraggingBlocks = _useDispatch.stopDraggingBlocks; // Stop dragging blocks if the block draggable is unmounted\n\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      if (isDragging.current) {\n        stopDraggingBlocks();\n      }\n    };\n  }, []);\n\n  if (!isDraggable) {\n    return children({\n      isDraggable: false\n    });\n  }\n\n  var transferData = {\n    type: 'block',\n    srcClientIds: clientIds,\n    srcRootClientId: srcRootClientId\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Draggable\"], {\n    cloneClassname: cloneClassname,\n    elementId: \"block-\".concat(clientIds[0]),\n    transferData: transferData,\n    onDragStart: function onDragStart(event) {\n      startDraggingBlocks();\n      isDragging.current = true;\n      startScrolling(event);\n\n      if (_onDragStart) {\n        _onDragStart();\n      }\n    },\n    onDragOver: scrollOnDragOver,\n    onDragEnd: function onDragEnd() {\n      stopDraggingBlocks();\n      isDragging.current = false;\n      stopScrolling();\n\n      if (_onDragEnd) {\n        _onDragEnd();\n      }\n    },\n    __experimentalDragComponent: Object(external_this_wp_element_[\"createElement\"])(BlockDraggableChip, {\n      clientIds: clientIds\n    })\n  }, function (_ref2) {\n    var onDraggableStart = _ref2.onDraggableStart,\n        onDraggableEnd = _ref2.onDraggableEnd;\n    return children({\n      isDraggable: true,\n      onDraggableStart: onDraggableStart,\n      onDraggableEnd: onDraggableEnd\n    });\n  });\n};\n\n/* harmony default export */ var block_draggable = (block_draggable_BlockDraggable);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/utils.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar utils_window = window,\n    utils_clearTimeout = utils_window.clearTimeout,\n    requestAnimationFrame = utils_window.requestAnimationFrame,\n    cancelAnimationFrame = utils_window.cancelAnimationFrame,\n    utils_setTimeout = utils_window.setTimeout;\nvar DEBOUNCE_TIMEOUT = 250;\n/**\n * Hook that creates a showMover state, as well as debounced show/hide callbacks.\n *\n * @param {Object}   props                       Component props.\n * @param {Object}   props.ref                   Element reference.\n * @param {boolean}  props.isFocused             Whether the component has current focus.\n * @param {number}   [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop]       Callback function.\n */\n\nfunction useDebouncedShowMovers(_ref) {\n  var ref = _ref.ref,\n      isFocused = _ref.isFocused,\n      _ref$debounceTimeout = _ref.debounceTimeout,\n      debounceTimeout = _ref$debounceTimeout === void 0 ? DEBOUNCE_TIMEOUT : _ref$debounceTimeout,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      showMovers = _useState2[0],\n      setShowMovers = _useState2[1];\n\n  var timeoutRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var handleOnChange = function handleOnChange(nextIsFocused) {\n    setShowMovers(nextIsFocused);\n    onChange(nextIsFocused);\n  };\n\n  var getIsHovered = function getIsHovered() {\n    return (ref === null || ref === void 0 ? void 0 : ref.current) && ref.current.matches(':hover');\n  };\n\n  var shouldHideMovers = function shouldHideMovers() {\n    var isHovered = getIsHovered();\n    return !isFocused && !isHovered;\n  };\n\n  var clearTimeoutRef = function clearTimeoutRef() {\n    var timeout = timeoutRef.current;\n\n    if (timeout && utils_clearTimeout) {\n      utils_clearTimeout(timeout);\n    }\n  };\n\n  var debouncedShowMovers = function debouncedShowMovers(event) {\n    if (event) {\n      event.stopPropagation();\n    }\n\n    clearTimeoutRef();\n\n    if (!showMovers) {\n      handleOnChange(true);\n    }\n  };\n\n  var debouncedHideMovers = function debouncedHideMovers(event) {\n    if (event) {\n      event.stopPropagation();\n    }\n\n    clearTimeoutRef();\n    timeoutRef.current = utils_setTimeout(function () {\n      if (shouldHideMovers()) {\n        handleOnChange(false);\n      }\n    }, debounceTimeout);\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      return clearTimeoutRef();\n    };\n  }, []);\n  return {\n    showMovers: showMovers,\n    debouncedShowMovers: debouncedShowMovers,\n    debouncedHideMovers: debouncedHideMovers\n  };\n}\n/**\n * Hook that provides a showMovers state and gesture events for DOM elements\n * that interact with the showMovers state.\n *\n * @param {Object}   props                       Component props.\n * @param {Object}   props.ref                   Element reference.\n * @param {number}   [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop]       Callback function.\n */\n\nfunction useShowMoversGestures(_ref2) {\n  var ref = _ref2.ref,\n      _ref2$debounceTimeout = _ref2.debounceTimeout,\n      debounceTimeout = _ref2$debounceTimeout === void 0 ? DEBOUNCE_TIMEOUT : _ref2$debounceTimeout,\n      _ref2$onChange = _ref2.onChange,\n      onChange = _ref2$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onChange;\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isFocused = _useState4[0],\n      setIsFocused = _useState4[1];\n\n  var _useDebouncedShowMove = useDebouncedShowMovers({\n    ref: ref,\n    debounceTimeout: debounceTimeout,\n    isFocused: isFocused,\n    onChange: onChange\n  }),\n      showMovers = _useDebouncedShowMove.showMovers,\n      debouncedShowMovers = _useDebouncedShowMove.debouncedShowMovers,\n      debouncedHideMovers = _useDebouncedShowMove.debouncedHideMovers;\n\n  var registerRef = Object(external_this_wp_element_[\"useRef\"])(false);\n\n  var isFocusedWithin = function isFocusedWithin() {\n    return (ref === null || ref === void 0 ? void 0 : ref.current) && ref.current.contains(document.activeElement);\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var node = ref.current;\n\n    var handleOnFocus = function handleOnFocus() {\n      if (isFocusedWithin()) {\n        setIsFocused(true);\n        debouncedShowMovers();\n      }\n    };\n\n    var handleOnBlur = function handleOnBlur() {\n      if (!isFocusedWithin()) {\n        setIsFocused(false);\n        debouncedHideMovers();\n      }\n    };\n    /**\n     * Events are added via DOM events (vs. React synthetic events),\n     * as the child React components swallow mouse events.\n     */\n\n\n    if (node && !registerRef.current) {\n      node.addEventListener('focus', handleOnFocus, true);\n      node.addEventListener('blur', handleOnBlur, true);\n      registerRef.current = true;\n    }\n\n    return function () {\n      if (node) {\n        node.removeEventListener('focus', handleOnFocus);\n        node.removeEventListener('blur', handleOnBlur);\n      }\n    };\n  }, [ref, registerRef, setIsFocused, debouncedShowMovers, debouncedHideMovers]);\n  return {\n    showMovers: showMovers,\n    gestures: {\n      onMouseMove: debouncedShowMovers,\n      onMouseLeave: debouncedHideMovers\n    }\n  };\n}\nvar requestAnimationFrameId;\n/**\n * Hook that toggles the highlight (outline) state of a block\n *\n * @param {string} clientId The block's clientId\n *\n * @return {Function} Callback function to toggle highlight state.\n */\n\nfunction useToggleBlockHighlight(clientId) {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      toggleBlockHighlight = _useDispatch.toggleBlockHighlight;\n\n  var updateBlockHighlight = Object(external_this_wp_element_[\"useCallback\"])(function (isFocused) {\n    toggleBlockHighlight(clientId, isFocused);\n  }, [clientId]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // On mount, we make sure to cancel any pending animation frame request\n    // that hasn't been completed yet. Components like NavigableToolbar may\n    // mount and unmount quickly.\n    if (requestAnimationFrameId) {\n      cancelAnimationFrame(requestAnimationFrameId);\n    }\n\n    return function () {\n      // Sequences state change to enable editor updates (e.g. cursor\n      // position) to render correctly.\n      requestAnimationFrameId = requestAnimationFrame(function () {\n        updateBlockHighlight(false);\n      });\n    };\n  }, []);\n  return updateBlockHighlight;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-toolbar/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\nfunction BlockToolbar(_ref) {\n  var hideDragHandle = _ref.hideDragHandle;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName,\n        getBlockMode = _select.getBlockMode,\n        getSelectedBlockClientIds = _select.getSelectedBlockClientIds,\n        isBlockValid = _select.isBlockValid,\n        getBlockRootClientId = _select.getBlockRootClientId,\n        getSettings = _select.getSettings;\n\n    var selectedBlockClientIds = getSelectedBlockClientIds();\n    var selectedBlockClientId = selectedBlockClientIds[0];\n    var blockRootClientId = getBlockRootClientId(selectedBlockClientId);\n    return {\n      blockClientIds: selectedBlockClientIds,\n      blockClientId: selectedBlockClientId,\n      blockType: selectedBlockClientId && Object(external_this_wp_blocks_[\"getBlockType\"])(getBlockName(selectedBlockClientId)),\n      hasFixedToolbar: getSettings().hasFixedToolbar,\n      rootClientId: blockRootClientId,\n      isValid: selectedBlockClientIds.every(function (id) {\n        return isBlockValid(id);\n      }),\n      isVisual: selectedBlockClientIds.every(function (id) {\n        return getBlockMode(id) === 'visual';\n      })\n    };\n  }, []),\n      blockClientIds = _useSelect.blockClientIds,\n      blockClientId = _useSelect.blockClientId,\n      blockType = _useSelect.blockType,\n      hasFixedToolbar = _useSelect.hasFixedToolbar,\n      isValid = _useSelect.isValid,\n      isVisual = _useSelect.isVisual;\n\n  var toggleBlockHighlight = useToggleBlockHighlight(blockClientId);\n  var nodeRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useShowMoversGesture = useShowMoversGestures({\n    ref: nodeRef,\n    onChange: toggleBlockHighlight\n  }),\n      showMovers = _useShowMoversGesture.showMovers,\n      showMoversGestures = _useShowMoversGesture.gestures;\n\n  var displayHeaderToolbar = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium', '<') || hasFixedToolbar;\n\n  if (blockType) {\n    if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, '__experimentalToolbar', true)) {\n      return null;\n    }\n  }\n\n  var shouldShowMovers = displayHeaderToolbar || showMovers;\n\n  if (blockClientIds.length === 0) {\n    return null;\n  }\n\n  var shouldShowVisualToolbar = isValid && isVisual;\n  var isMultiToolbar = blockClientIds.length > 1;\n  var classes = classnames_default()('block-editor-block-toolbar', shouldShowMovers && 'is-showing-movers');\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classes\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-toolbar__mover-switcher-container\",\n    ref: nodeRef\n  }, !isMultiToolbar && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-toolbar__block-parent-selector-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockParentSelector, {\n    clientIds: blockClientIds\n  })), (shouldShowVisualToolbar || isMultiToolbar) && Object(external_this_wp_element_[\"createElement\"])(block_draggable, {\n    clientIds: blockClientIds,\n    cloneClassname: \"block-editor-block-toolbar__drag-clone\"\n  }, function (_ref2) {\n    var isDraggable = _ref2.isDraggable,\n        onDraggableStart = _ref2.onDraggableStart,\n        onDraggableEnd = _ref2.onDraggableEnd;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({}, showMoversGestures, {\n      className: \"block-editor-block-toolbar__block-switcher-wrapper\",\n      draggable: isDraggable && !hideDragHandle,\n      onDragStart: onDraggableStart,\n      onDragEnd: onDraggableEnd\n    }), Object(external_this_wp_element_[\"createElement\"])(block_switcher, {\n      clientIds: blockClientIds\n    }), Object(external_this_wp_element_[\"createElement\"])(block_mover, {\n      clientIds: blockClientIds\n    }));\n  })), shouldShowVisualToolbar && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(block_controls.Slot, {\n    bubblesVirtually: true,\n    className: \"block-editor-block-toolbar__slot\"\n  }), Object(external_this_wp_element_[\"createElement\"])(block_format_controls.Slot, {\n    bubblesVirtually: true,\n    className: \"block-editor-block-toolbar__slot\"\n  })), Object(external_this_wp_element_[\"createElement\"])(block_settings_menu, {\n    clientIds: blockClientIds\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-contextual-toolbar.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockContextualToolbar(_ref) {\n  var focusOnMount = _ref.focusOnMount,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"focusOnMount\"]);\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockName = _select.getBlockName,\n        getSelectedBlockClientIds = _select.getSelectedBlockClientIds;\n\n    var _select2 = select('core/blocks'),\n        getBlockType = _select2.getBlockType;\n\n    var selectedBlockClientIds = getSelectedBlockClientIds();\n    var selectedBlockClientId = selectedBlockClientIds[0];\n    return {\n      blockType: selectedBlockClientId && getBlockType(getBlockName(selectedBlockClientId))\n    };\n  }, []),\n      blockType = _useSelect.blockType;\n\n  if (blockType) {\n    if (!Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, '__experimentalToolbar', true)) {\n      return null;\n    }\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-contextual-toolbar-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(navigable_toolbar, Object(esm_extends[\"a\" /* default */])({\n    focusOnMount: focusOnMount,\n    className: \"block-editor-block-contextual-toolbar\"\n    /* translators: accessibility text for the block toolbar */\n    ,\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Block tools')\n  }, props), Object(external_this_wp_element_[\"createElement\"])(BlockToolbar, null)));\n}\n\n/* harmony default export */ var block_contextual_toolbar = (BlockContextualToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-popover.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction block_popover_selector(select) {\n  var _select = select('core/block-editor'),\n      isNavigationMode = _select.isNavigationMode,\n      isMultiSelecting = _select.isMultiSelecting,\n      hasMultiSelection = _select.hasMultiSelection,\n      isTyping = _select.isTyping,\n      isCaretWithinFormattedText = _select.isCaretWithinFormattedText,\n      getSettings = _select.getSettings,\n      getLastMultiSelectedBlockClientId = _select.getLastMultiSelectedBlockClientId;\n\n  return {\n    isNavigationMode: isNavigationMode(),\n    isMultiSelecting: isMultiSelecting(),\n    isTyping: isTyping(),\n    isCaretWithinFormattedText: isCaretWithinFormattedText(),\n    hasMultiSelection: hasMultiSelection(),\n    hasFixedToolbar: getSettings().hasFixedToolbar,\n    lastClientId: getLastMultiSelectedBlockClientId()\n  };\n}\n\nfunction BlockPopover(_ref) {\n  var clientId = _ref.clientId,\n      rootClientId = _ref.rootClientId,\n      isValid = _ref.isValid,\n      isEmptyDefaultBlock = _ref.isEmptyDefaultBlock,\n      capturingClientId = _ref.capturingClientId;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(block_popover_selector, []),\n      isNavigationMode = _useSelect.isNavigationMode,\n      isMultiSelecting = _useSelect.isMultiSelecting,\n      isTyping = _useSelect.isTyping,\n      isCaretWithinFormattedText = _useSelect.isCaretWithinFormattedText,\n      hasMultiSelection = _useSelect.hasMultiSelection,\n      hasFixedToolbar = _useSelect.hasFixedToolbar,\n      lastClientId = _useSelect.lastClientId;\n\n  var isLargeViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium');\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isToolbarForced = _useState2[0],\n      setIsToolbarForced = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isInserterShown = _useState4[0],\n      setIsInserterShown = _useState4[1];\n\n  var blockNodes = Object(external_this_wp_element_[\"useContext\"])(BlockNodes);\n  var showEmptyBlockSideInserter = !isNavigationMode && isEmptyDefaultBlock && isValid;\n  var shouldShowBreadcrumb = isNavigationMode;\n  var shouldShowContextualToolbar = !isNavigationMode && !hasFixedToolbar && isLargeViewport && !showEmptyBlockSideInserter && !isMultiSelecting && (!isTyping || isCaretWithinFormattedText);\n  var canFocusHiddenToolbar = !isNavigationMode && !shouldShowContextualToolbar && !hasFixedToolbar && !isEmptyDefaultBlock;\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/focus-toolbar', Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return setIsToolbarForced(true);\n  }, []), {\n    bindGlobal: true,\n    eventName: 'keydown',\n    isDisabled: !canFocusHiddenToolbar\n  });\n\n  if (!shouldShowBreadcrumb && !shouldShowContextualToolbar && !isToolbarForced && !showEmptyBlockSideInserter) {\n    return null;\n  }\n\n  var node = blockNodes[clientId];\n\n  if (capturingClientId) {\n    node = document.getElementById('block-' + capturingClientId);\n  }\n\n  if (!node) {\n    return null;\n  }\n\n  var anchorRef = node;\n\n  if (hasMultiSelection) {\n    var bottomNode = blockNodes[lastClientId]; // Wait to render the popover until the bottom reference is available\n    // as well.\n\n    if (!bottomNode) {\n      return null;\n    }\n\n    anchorRef = {\n      top: node,\n      bottom: bottomNode\n    };\n  }\n\n  function onFocus() {\n    setIsInserterShown(true);\n  }\n\n  function onBlur() {\n    setIsInserterShown(false);\n  } // Position above the anchor, pop out towards the right, and position in the\n  // left corner. For the side inserter, pop out towards the left, and\n  // position in the right corner.\n  // To do: refactor `Popover` to make this prop clearer.\n\n\n  var popoverPosition = showEmptyBlockSideInserter ? 'top left right' : 'top right left';\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    noArrow: true,\n    animate: false,\n    position: popoverPosition,\n    focusOnMount: false,\n    anchorRef: anchorRef,\n    className: \"block-editor-block-list__block-popover\",\n    __unstableSticky: !showEmptyBlockSideInserter,\n    __unstableSlotName: \"block-toolbar\",\n    __unstableBoundaryParent: true // Observe movement for block animations (especially horizontal).\n    ,\n    __unstableObserveElement: node,\n    onBlur: function onBlur() {\n      return setIsToolbarForced(false);\n    },\n    shouldAnchorIncludePadding: true\n  }, (shouldShowContextualToolbar || isToolbarForced) && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    onFocus: onFocus,\n    onBlur: onBlur // While ideally it would be enough to capture the\n    // bubbling focus event from the Inserter, due to the\n    // characteristics of click focusing of `button`s in\n    // Firefox and Safari, it is not reliable.\n    //\n    // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n    ,\n    tabIndex: -1,\n    className: classnames_default()('block-editor-block-list__block-popover-inserter', {\n      'is-visible': isInserterShown\n    })\n  }, Object(external_this_wp_element_[\"createElement\"])(inserter, {\n    clientId: clientId,\n    rootClientId: rootClientId,\n    __experimentalIsQuick: true\n  })), (shouldShowContextualToolbar || isToolbarForced) && Object(external_this_wp_element_[\"createElement\"])(block_contextual_toolbar // If the toolbar is being shown because of being forced\n  // it should focus the toolbar right after the mount.\n  , {\n    focusOnMount: isToolbarForced\n  }), shouldShowBreadcrumb && Object(external_this_wp_element_[\"createElement\"])(block_selection_button, {\n    clientId: clientId,\n    rootClientId: rootClientId\n  }), showEmptyBlockSideInserter && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-list__empty-block-inserter\"\n  }, Object(external_this_wp_element_[\"createElement\"])(inserter, {\n    position: \"bottom right\",\n    rootClientId: rootClientId,\n    clientId: clientId,\n    __experimentalIsQuick: true\n  })));\n}\n\nfunction wrapperSelector(select) {\n  var _select2 = select('core/block-editor'),\n      getSelectedBlockClientId = _select2.getSelectedBlockClientId,\n      getFirstMultiSelectedBlockClientId = _select2.getFirstMultiSelectedBlockClientId,\n      getBlockRootClientId = _select2.getBlockRootClientId,\n      __unstableGetBlockWithoutInnerBlocks = _select2.__unstableGetBlockWithoutInnerBlocks,\n      getBlockParents = _select2.getBlockParents,\n      __experimentalGetBlockListSettingsForBlocks = _select2.__experimentalGetBlockListSettingsForBlocks;\n\n  var clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n  if (!clientId) {\n    return;\n  }\n\n  var _ref2 = __unstableGetBlockWithoutInnerBlocks(clientId) || {},\n      name = _ref2.name,\n      _ref2$attributes = _ref2.attributes,\n      attributes = _ref2$attributes === void 0 ? {} : _ref2$attributes,\n      isValid = _ref2.isValid;\n\n  var blockParentsClientIds = getBlockParents(clientId); // Get Block List Settings for all ancestors of the current Block clientId\n\n  var ancestorBlockListSettings = __experimentalGetBlockListSettingsForBlocks(blockParentsClientIds); // Find the index of the first Block with the `captureDescendantsToolbars` prop defined\n  // This will be the top most ancestor because getBlockParents() returns tree from top -> bottom\n\n\n  var topmostAncestorWithCaptureDescendantsToolbarsIndex = Object(external_this_lodash_[\"findIndex\"])(ancestorBlockListSettings, ['__experimentalCaptureToolbars', true]);\n  var capturingClientId;\n\n  if (topmostAncestorWithCaptureDescendantsToolbarsIndex !== -1) {\n    capturingClientId = blockParentsClientIds[topmostAncestorWithCaptureDescendantsToolbarsIndex];\n  }\n\n  return {\n    clientId: clientId,\n    rootClientId: getBlockRootClientId(clientId),\n    name: name,\n    isValid: isValid,\n    isEmptyDefaultBlock: name && Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])({\n      name: name,\n      attributes: attributes\n    }),\n    capturingClientId: capturingClientId\n  };\n}\n\nfunction WrappedBlockPopover() {\n  var selected = Object(external_this_wp_data_[\"useSelect\"])(wrapperSelector, []);\n\n  if (!selected) {\n    return null;\n  }\n\n  var clientId = selected.clientId,\n      rootClientId = selected.rootClientId,\n      name = selected.name,\n      isValid = selected.isValid,\n      isEmptyDefaultBlock = selected.isEmptyDefaultBlock,\n      capturingClientId = selected.capturingClientId;\n\n  if (!name) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(BlockPopover, {\n    clientId: clientId,\n    rootClientId: rootClientId,\n    isValid: isValid,\n    isEmptyDefaultBlock: isEmptyDefaultBlock,\n    capturingClientId: capturingClientId\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/root-container.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */\n\nvar root_container_Context = Object(external_this_wp_element_[\"createContext\"])();\nvar BlockNodes = Object(external_this_wp_element_[\"createContext\"])();\nvar SetBlockNodes = Object(external_this_wp_element_[\"createContext\"])();\n\nfunction root_container_selector(select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientId = _select.getSelectedBlockClientId,\n      hasMultiSelection = _select.hasMultiSelection;\n\n  return {\n    selectedBlockClientId: getSelectedBlockClientId(),\n    hasMultiSelection: hasMultiSelection()\n  };\n}\n/**\n * Prevents default dragging behavior within a block.\n * To do: we must handle this in the future and clean up the drag target.\n * Previously dragging was prevented for multi-selected, but this is no longer\n * needed.\n *\n * @param {WPSyntheticEvent} event Synthetic drag event.\n */\n\n\nfunction onDragStart(event) {\n  // Ensure we target block content, not block controls.\n  if (getBlockClientId(event.target)) {\n    event.preventDefault();\n  }\n}\n\nfunction RootContainer(_ref, ref) {\n  var children = _ref.children,\n      className = _ref.className;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(root_container_selector, []),\n      selectedBlockClientId = _useSelect.selectedBlockClientId,\n      hasMultiSelection = _useSelect.hasMultiSelection;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      selectBlock = _useDispatch.selectBlock;\n\n  var onSelectionStart = useMultiSelection(ref);\n  /**\n   * Marks the block as selected when focused and not already selected. This\n   * specifically handles the case where block does not set focus on its own\n   * (via `setFocus`), typically if there is no focusable input in the block.\n   *\n   * @param {WPSyntheticEvent} event\n   */\n\n  function onFocus(event) {\n    if (hasMultiSelection) {\n      return;\n    }\n\n    var clientId = getBlockClientId(event.target);\n\n    if (clientId && clientId !== selectedBlockClientId) {\n      selectBlock(clientId);\n    }\n  }\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])({}),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      blockNodes = _useState2[0],\n      setBlockNodes = _useState2[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(InsertionPoint, {\n    hasMultiSelection: hasMultiSelection,\n    selectedBlockClientId: selectedBlockClientId,\n    containerRef: ref\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockNodes.Provider, {\n    value: blockNodes\n  }, Object(external_this_wp_element_[\"createElement\"])(WrappedBlockPopover, null), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: ref,\n    className: classnames_default()(className, 'is-root-container'),\n    onFocus: onFocus,\n    onDragStart: onDragStart\n  }, Object(external_this_wp_element_[\"createElement\"])(SetBlockNodes.Provider, {\n    value: setBlockNodes\n  }, Object(external_this_wp_element_[\"createElement\"])(root_container_Context.Provider, {\n    value: onSelectionStart\n  }, children)))));\n}\n\n/* harmony default export */ var root_container = (Object(external_this_wp_element_[\"forwardRef\"])(RootContainer));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-wrapper-elements.js\n/**\n * HTML elements that can be used as a block wrapper.\n */\nvar ELEMENTS = ['p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ol', 'ul', 'li', 'figure', 'nav', 'pre', 'header', 'section', 'aside', 'footer', 'main'];\n/* harmony default export */ var block_wrapper_elements = (ELEMENTS);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block-wrapper.js\n\n\n\n\n\n\nfunction block_wrapper_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_wrapper_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_wrapper_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_wrapper_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar BlockComponent = Object(external_this_wp_element_[\"forwardRef\"])(function (_ref, wrapper) {\n  var children = _ref.children,\n      _ref$tagName = _ref.tagName,\n      TagName = _ref$tagName === void 0 ? 'div' : _ref$tagName,\n      __unstableIsHtml = _ref.__unstableIsHtml,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"tagName\", \"__unstableIsHtml\"]);\n\n  var onSelectionStart = Object(external_this_wp_element_[\"useContext\"])(root_container_Context);\n  var setBlockNodes = Object(external_this_wp_element_[\"useContext\"])(SetBlockNodes);\n\n  var _useContext = Object(external_this_wp_element_[\"useContext\"])(BlockListBlockContext),\n      clientId = _useContext.clientId,\n      rootClientId = _useContext.rootClientId,\n      isSelected = _useContext.isSelected,\n      isFirstMultiSelected = _useContext.isFirstMultiSelected,\n      isLastMultiSelected = _useContext.isLastMultiSelected,\n      isPartOfMultiSelection = _useContext.isPartOfMultiSelection,\n      enableAnimation = _useContext.enableAnimation,\n      index = _useContext.index,\n      className = _useContext.className,\n      isLocked = _useContext.isLocked,\n      name = _useContext.name,\n      mode = _useContext.mode,\n      blockTitle = _useContext.blockTitle,\n      wrapperProps = _useContext.wrapperProps;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSelectedBlocksInitialCaretPosition = _select.getSelectedBlocksInitialCaretPosition,\n        _isMultiSelecting = _select.isMultiSelecting,\n        _isNavigationMode = _select.isNavigationMode;\n\n    return {\n      shouldFocusFirstElement: isSelected && !_isMultiSelecting() && !_isNavigationMode(),\n      initialPosition: isSelected ? getSelectedBlocksInitialCaretPosition() : undefined\n    };\n  }, [isSelected]),\n      initialPosition = _useSelect.initialPosition,\n      shouldFocusFirstElement = _useSelect.shouldFocusFirstElement,\n      isNavigationMode = _useSelect.isNavigationMode;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      insertDefaultBlock = _useDispatch.insertDefaultBlock,\n      removeBlock = _useDispatch.removeBlock;\n\n  var fallbackRef = Object(external_this_wp_element_[\"useRef\"])();\n  var isAligned = wrapperProps && !!wrapperProps['data-align'];\n  wrapper = wrapper || fallbackRef;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isHovered = _useState2[0],\n      setHovered = _useState2[1]; // Provide the selected node, or the first and last nodes of a multi-\n  // selection, so it can be used to position the contextual block toolbar.\n  // We only provide what is necessary, and remove the nodes again when they\n  // are no longer selected.\n\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isSelected || isFirstMultiSelected || isLastMultiSelected) {\n      var node = wrapper.current;\n      setBlockNodes(function (nodes) {\n        return block_wrapper_objectSpread({}, nodes, Object(defineProperty[\"a\" /* default */])({}, clientId, node));\n      });\n      return function () {\n        setBlockNodes(function (nodes) {\n          return Object(external_this_lodash_[\"omit\"])(nodes, clientId);\n        });\n      };\n    }\n  }, [isSelected, isFirstMultiSelected, isLastMultiSelected]); // translators: %s: Type of block (i.e. Text, Image etc)\n\n  var blockLabel = Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Block: %s'), blockTitle); // Handing the focus of the block on creation and update\n\n  /**\n   * When a block becomes selected, transition focus to an inner tabbable.\n   */\n\n  var focusTabbable = function focusTabbable() {\n    // Focus is captured by the wrapper node, so while focus transition\n    // should only consider tabbables within editable display, since it\n    // may be the wrapper itself or a side control which triggered the\n    // focus event, don't unnecessary transition to an inner tabbable.\n    if (document.activeElement && isInsideRootBlock(wrapper.current, document.activeElement)) {\n      return;\n    } // Find all tabbables within node.\n\n\n    var textInputs = external_this_wp_dom_[\"focus\"].tabbable.find(wrapper.current).filter(external_this_wp_dom_[\"isTextField\"]) // Exclude inner blocks and block appenders\n    .filter(function (node) {\n      return isInsideRootBlock(wrapper.current, node) && !node.closest('.block-list-appender');\n    }); // If reversed (e.g. merge via backspace), use the last in the set of\n    // tabbables.\n\n    var isReverse = -1 === initialPosition;\n    var target = (isReverse ? external_this_lodash_[\"last\"] : external_this_lodash_[\"first\"])(textInputs) || wrapper.current;\n    Object(external_this_wp_dom_[\"placeCaretAtHorizontalEdge\"])(target, isReverse);\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (shouldFocusFirstElement) {\n      focusTabbable();\n    }\n  }, [shouldFocusFirstElement]); // Block Reordering animation\n\n  use_moving_animation(wrapper, isSelected || isPartOfMultiSelection, isSelected || isFirstMultiSelected, enableAnimation, index);\n  /**\n   * Interprets keydown event intent to remove or insert after block if key\n   * event occurs on wrapper node. This can occur when the block has no text\n   * fields of its own, particularly after initial insertion, to allow for\n   * easy deletion and continuous writing flow to add additional content.\n   *\n   * @param {KeyboardEvent} event Keydown event.\n   */\n\n  var onKeyDown = function onKeyDown(event) {\n    var keyCode = event.keyCode,\n        target = event.target;\n\n    if (props.onKeyDown) {\n      props.onKeyDown(event);\n    }\n\n    if (keyCode !== external_this_wp_keycodes_[\"ENTER\"] && keyCode !== external_this_wp_keycodes_[\"BACKSPACE\"] && keyCode !== external_this_wp_keycodes_[\"DELETE\"]) {\n      return;\n    }\n\n    if (target !== wrapper.current || Object(external_this_wp_dom_[\"isTextField\"])(target)) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (keyCode === external_this_wp_keycodes_[\"ENTER\"]) {\n      insertDefaultBlock({}, rootClientId, index + 1);\n    } else {\n      removeBlock(clientId);\n    }\n  };\n\n  var onMouseLeave = function onMouseLeave(_ref2) {\n    var which = _ref2.which,\n        buttons = _ref2.buttons;\n\n    // The primary button must be pressed to initiate selection. Fall back\n    // to `which` if the standard `buttons` property is falsy. There are\n    // cases where Firefox might always set `buttons` to `0`.\n    // See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n    // See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which\n    if ((buttons || which) === 1) {\n      onSelectionStart(clientId);\n    }\n  };\n\n  var htmlSuffix = mode === 'html' && !__unstableIsHtml ? '-visual' : '';\n  var blockElementId = \"block-\".concat(clientId).concat(htmlSuffix);\n\n  function onMouseOver(event) {\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (isHovered) {\n      return;\n    }\n\n    setHovered(true);\n  }\n\n  function onMouseOut(event) {\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (!isHovered) {\n      return;\n    }\n\n    setHovered(false);\n  }\n\n  return (// eslint-disable-next-line jsx-a11y/mouse-events-have-key-events\n    Object(external_this_wp_element_[\"createElement\"])(TagName // Overrideable props.\n    , Object(esm_extends[\"a\" /* default */])({\n      \"aria-label\": blockLabel,\n      role: \"group\"\n    }, Object(external_this_lodash_[\"omit\"])(wrapperProps, ['data-align']), props, {\n      id: blockElementId,\n      ref: wrapper,\n      className: classnames_default()(className, props.className, wrapperProps && wrapperProps.className, {\n        'is-hovered': isHovered,\n        'wp-block': !isAligned\n      }),\n      \"data-block\": clientId,\n      \"data-type\": name,\n      \"data-title\": blockTitle // Only allow shortcuts when a blocks is selected and not locked.\n      ,\n      onKeyDown: isSelected && !isLocked ? onKeyDown : undefined // Only allow selection to be started from a selected block.\n      ,\n      onMouseLeave: isSelected ? onMouseLeave : undefined // No need to have these listeners for hover class in edit mode.\n      ,\n      onMouseOver: isNavigationMode ? onMouseOver : undefined,\n      onMouseOut: isNavigationMode ? onMouseOut : undefined,\n      tabIndex: \"0\",\n      style: block_wrapper_objectSpread({}, wrapperProps ? wrapperProps.style : {}, {}, props.style || {})\n    }), children)\n  );\n});\nvar ExtendedBlockComponent = block_wrapper_elements.reduce(function (acc, element) {\n  acc[element] = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n    return Object(external_this_wp_element_[\"createElement\"])(BlockComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n      ref: ref,\n      tagName: element\n    }));\n  });\n  return acc;\n}, BlockComponent);\nvar Block = ExtendedBlockComponent;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-list/block.js\n\n\n\n\n\nfunction block_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nvar BlockListBlockContext = Object(external_this_wp_element_[\"createContext\"])();\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\n\nfunction mergeWrapperProps(propsA, propsB) {\n  var newProps = block_objectSpread({}, propsA, {}, propsB);\n\n  if (propsA && propsB && propsA.className && propsB.className) {\n    newProps.className = classnames_default()(propsA.className, propsB.className);\n  }\n\n  if (propsA && propsB && propsA.style && propsB.style) {\n    newProps.style = block_objectSpread({}, propsA.style, {}, propsB.style);\n  }\n\n  return newProps;\n}\n\nfunction block_BlockListBlock(_ref) {\n  var mode = _ref.mode,\n      isFocusMode = _ref.isFocusMode,\n      isLocked = _ref.isLocked,\n      clientId = _ref.clientId,\n      rootClientId = _ref.rootClientId,\n      isSelected = _ref.isSelected,\n      isMultiSelected = _ref.isMultiSelected,\n      isPartOfMultiSelection = _ref.isPartOfMultiSelection,\n      isFirstMultiSelected = _ref.isFirstMultiSelected,\n      isLastMultiSelected = _ref.isLastMultiSelected,\n      isTypingWithinBlock = _ref.isTypingWithinBlock,\n      isAncestorOfSelectedBlock = _ref.isAncestorOfSelectedBlock,\n      isSelectionEnabled = _ref.isSelectionEnabled,\n      className = _ref.className,\n      name = _ref.name,\n      isValid = _ref.isValid,\n      attributes = _ref.attributes,\n      wrapperProps = _ref.wrapperProps,\n      setAttributes = _ref.setAttributes,\n      onReplace = _ref.onReplace,\n      onInsertBlocksAfter = _ref.onInsertBlocksAfter,\n      onMerge = _ref.onMerge,\n      toggleSelection = _ref.toggleSelection,\n      index = _ref.index,\n      enableAnimation = _ref.enableAnimation;\n\n  // In addition to withSelect, we should favor using useSelect in this\n  // component going forward to avoid leaking new props to the public API\n  // (editor.BlockListBlock filter)\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        isDraggingBlocks = _select.isDraggingBlocks,\n        isBlockHighlighted = _select.isBlockHighlighted;\n\n    return {\n      isDragging: isDraggingBlocks(),\n      isHighlighted: isBlockHighlighted(clientId)\n    };\n  }, [clientId]),\n      isDragging = _useSelect.isDragging,\n      isHighlighted = _useSelect.isHighlighted;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      removeBlock = _useDispatch.removeBlock;\n\n  var onRemove = function onRemove() {\n    return removeBlock(clientId);\n  }; // Handling the error state\n\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      hasError = _useState2[0],\n      setErrorState = _useState2[1];\n\n  var onBlockError = function onBlockError() {\n    return setErrorState(true);\n  };\n\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n  var lightBlockWrapper = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'lightBlockWrapper', false);\n  var isUnregisteredBlock = name === Object(external_this_wp_blocks_[\"getUnregisteredTypeHandlerName\"])(); // Determine whether the block has props to apply to the wrapper.\n\n  if (blockType.getEditWrapperProps) {\n    wrapperProps = mergeWrapperProps(wrapperProps, blockType.getEditWrapperProps(attributes));\n  }\n\n  var generatedClassName = lightBlockWrapper && Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType, 'className', true) ? Object(external_this_wp_blocks_[\"getBlockDefaultClassName\"])(name) : null;\n  var customClassName = lightBlockWrapper ? attributes.className : null;\n  var isAligned = wrapperProps && !!wrapperProps['data-align']; // The wp-block className is important for editor styles.\n  // Generate the wrapper class names handling the different states of the\n  // block.\n\n  var wrapperClassName = classnames_default()(generatedClassName, customClassName, 'block-editor-block-list__block', {\n    'wp-block': !isAligned,\n    'has-warning': !isValid || !!hasError || isUnregisteredBlock,\n    'is-selected': isSelected,\n    'is-highlighted': isHighlighted,\n    'is-multi-selected': isMultiSelected,\n    'is-reusable': Object(external_this_wp_blocks_[\"isReusableBlock\"])(blockType),\n    'is-dragging': isDragging && (isSelected || isPartOfMultiSelection),\n    'is-typing': isTypingWithinBlock,\n    'is-focused': isFocusMode && (isSelected || isAncestorOfSelectedBlock),\n    'is-focus-mode': isFocusMode,\n    'has-child-selected': isAncestorOfSelectedBlock\n  }, className); // We wrap the BlockEdit component in a div that hides it when editing in\n  // HTML mode. This allows us to render all of the ancillary pieces\n  // (InspectorControls, etc.) which are inside `BlockEdit` but not\n  // `BlockHTML`, even in HTML mode.\n\n  var blockEdit = Object(external_this_wp_element_[\"createElement\"])(block_edit_BlockEdit, {\n    name: name,\n    isSelected: isSelected,\n    attributes: attributes,\n    setAttributes: setAttributes,\n    insertBlocksAfter: isLocked ? undefined : onInsertBlocksAfter,\n    onReplace: isLocked ? undefined : onReplace,\n    onRemove: isLocked ? undefined : onRemove,\n    mergeBlocks: isLocked ? undefined : onMerge,\n    clientId: clientId,\n    isSelectionEnabled: isSelectionEnabled,\n    toggleSelection: toggleSelection\n  }); // For aligned blocks, provide a wrapper element so the block can be\n  // positioned relative to the block column.\n\n  if (isAligned) {\n    var alignmentWrapperProps = {\n      'data-align': wrapperProps['data-align']\n    };\n    blockEdit = Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n      className: \"wp-block\"\n    }, alignmentWrapperProps), blockEdit);\n  }\n\n  if (mode !== 'visual') {\n    blockEdit = Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      style: {\n        display: 'none'\n      }\n    }, blockEdit);\n  }\n\n  var value = {\n    clientId: clientId,\n    rootClientId: rootClientId,\n    isSelected: isSelected,\n    isFirstMultiSelected: isFirstMultiSelected,\n    isLastMultiSelected: isLastMultiSelected,\n    isPartOfMultiSelection: isPartOfMultiSelection,\n    enableAnimation: enableAnimation,\n    index: index,\n    className: wrapperClassName,\n    isLocked: isLocked,\n    name: name,\n    mode: mode,\n    blockTitle: blockType.title,\n    wrapperProps: wrapperProps\n  };\n  var memoizedValue = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return value;\n  }, Object.values(value));\n  return Object(external_this_wp_element_[\"createElement\"])(BlockListBlockContext.Provider, {\n    value: memoizedValue\n  }, Object(external_this_wp_element_[\"createElement\"])(block_crash_boundary, {\n    onError: onBlockError\n  }, isValid && lightBlockWrapper && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, blockEdit, mode === 'html' && Object(external_this_wp_element_[\"createElement\"])(Block.div, {\n    __unstableIsHtml: true\n  }, Object(external_this_wp_element_[\"createElement\"])(block_html, {\n    clientId: clientId\n  }))), isValid && !lightBlockWrapper && Object(external_this_wp_element_[\"createElement\"])(Block.div, wrapperProps, blockEdit, mode === 'html' && Object(external_this_wp_element_[\"createElement\"])(block_html, {\n    clientId: clientId\n  })), !isValid && Object(external_this_wp_element_[\"createElement\"])(Block.div, null, Object(external_this_wp_element_[\"createElement\"])(block_invalid_warning, {\n    clientId: clientId\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_blocks_[\"getSaveElement\"])(blockType, attributes)))), !!hasError && Object(external_this_wp_element_[\"createElement\"])(Block.div, null, Object(external_this_wp_element_[\"createElement\"])(block_crash_warning, null)));\n}\n\nvar applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var clientId = _ref2.clientId,\n      rootClientId = _ref2.rootClientId,\n      isLargeViewport = _ref2.isLargeViewport;\n\n  var _select2 = select('core/block-editor'),\n      isBlockSelected = _select2.isBlockSelected,\n      isAncestorMultiSelected = _select2.isAncestorMultiSelected,\n      isBlockMultiSelected = _select2.isBlockMultiSelected,\n      isFirstMultiSelectedBlock = _select2.isFirstMultiSelectedBlock,\n      getLastMultiSelectedBlockClientId = _select2.getLastMultiSelectedBlockClientId,\n      isTyping = _select2.isTyping,\n      getBlockMode = _select2.getBlockMode,\n      isSelectionEnabled = _select2.isSelectionEnabled,\n      getSettings = _select2.getSettings,\n      hasSelectedInnerBlock = _select2.hasSelectedInnerBlock,\n      getTemplateLock = _select2.getTemplateLock,\n      __unstableGetBlockWithoutInnerBlocks = _select2.__unstableGetBlockWithoutInnerBlocks,\n      getMultiSelectedBlockClientIds = _select2.getMultiSelectedBlockClientIds;\n\n  var block = __unstableGetBlockWithoutInnerBlocks(clientId);\n\n  var isSelected = isBlockSelected(clientId);\n\n  var _getSettings = getSettings(),\n      focusMode = _getSettings.focusMode,\n      isRTL = _getSettings.isRTL;\n\n  var templateLock = getTemplateLock(rootClientId);\n  var checkDeep = true; // \"ancestor\" is the more appropriate label due to \"deep\" check\n\n  var isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep); // The fallback to `{}` is a temporary fix.\n  // This function should never be called when a block is not present in\n  // the state. It happens now because the order in withSelect rendering\n  // is not correct.\n\n  var _ref3 = block || {},\n      name = _ref3.name,\n      attributes = _ref3.attributes,\n      isValid = _ref3.isValid;\n\n  var isFirstMultiSelected = isFirstMultiSelectedBlock(clientId); // Do not add new properties here, use `useSelect` instead to avoid\n  // leaking new props to the public API (editor.BlockListBlock filter).\n\n  return {\n    isMultiSelected: isBlockMultiSelected(clientId),\n    isPartOfMultiSelection: isBlockMultiSelected(clientId) || isAncestorMultiSelected(clientId),\n    isFirstMultiSelected: isFirstMultiSelected,\n    isLastMultiSelected: getLastMultiSelectedBlockClientId() === clientId,\n    multiSelectedClientIds: isFirstMultiSelected ? getMultiSelectedBlockClientIds() : undefined,\n    // We only care about this prop when the block is selected\n    // Thus to avoid unnecessary rerenders we avoid updating the prop if\n    // the block is not selected.\n    isTypingWithinBlock: (isSelected || isAncestorOfSelectedBlock) && isTyping(),\n    mode: getBlockMode(clientId),\n    isSelectionEnabled: isSelectionEnabled(),\n    isLocked: !!templateLock,\n    isFocusMode: focusMode && isLargeViewport,\n    isRTL: isRTL,\n    // Users of the editor.BlockListBlock filter used to be able to\n    // access the block prop.\n    // Ideally these blocks would rely on the clientId prop only.\n    // This is kept for backward compatibility reasons.\n    block: block,\n    name: name,\n    attributes: attributes,\n    isValid: isValid,\n    isSelected: isSelected,\n    isAncestorOfSelectedBlock: isAncestorOfSelectedBlock\n  };\n});\nvar applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps, _ref4) {\n  var select = _ref4.select;\n\n  var _dispatch = dispatch('core/block-editor'),\n      updateBlockAttributes = _dispatch.updateBlockAttributes,\n      insertBlocks = _dispatch.insertBlocks,\n      mergeBlocks = _dispatch.mergeBlocks,\n      replaceBlocks = _dispatch.replaceBlocks,\n      _toggleSelection = _dispatch.toggleSelection,\n      __unstableMarkLastChangeAsPersistent = _dispatch.__unstableMarkLastChangeAsPersistent; // Do not add new properties here, use `useDispatch` instead to avoid\n  // leaking new props to the public API (editor.BlockListBlock filter).\n\n\n  return {\n    setAttributes: function setAttributes(newAttributes) {\n      var clientId = ownProps.clientId,\n          isFirstMultiSelected = ownProps.isFirstMultiSelected,\n          multiSelectedClientIds = ownProps.multiSelectedClientIds;\n      var clientIds = isFirstMultiSelected ? multiSelectedClientIds : [clientId];\n      updateBlockAttributes(clientIds, newAttributes);\n    },\n    onInsertBlocks: function onInsertBlocks(blocks, index) {\n      var rootClientId = ownProps.rootClientId;\n      insertBlocks(blocks, index, rootClientId);\n    },\n    onInsertBlocksAfter: function onInsertBlocksAfter(blocks) {\n      var clientId = ownProps.clientId,\n          rootClientId = ownProps.rootClientId;\n\n      var _select3 = select('core/block-editor'),\n          getBlockIndex = _select3.getBlockIndex;\n\n      var index = getBlockIndex(clientId, rootClientId);\n      insertBlocks(blocks, index + 1, rootClientId);\n    },\n    onMerge: function onMerge(forward) {\n      var clientId = ownProps.clientId;\n\n      var _select4 = select('core/block-editor'),\n          getPreviousBlockClientId = _select4.getPreviousBlockClientId,\n          getNextBlockClientId = _select4.getNextBlockClientId;\n\n      if (forward) {\n        var nextBlockClientId = getNextBlockClientId(clientId);\n\n        if (nextBlockClientId) {\n          mergeBlocks(clientId, nextBlockClientId);\n        }\n      } else {\n        var previousBlockClientId = getPreviousBlockClientId(clientId);\n\n        if (previousBlockClientId) {\n          mergeBlocks(previousBlockClientId, clientId);\n        }\n      }\n    },\n    onReplace: function onReplace(blocks, indexToSelect, initialPosition) {\n      if (blocks.length && !Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])(blocks[blocks.length - 1])) {\n        __unstableMarkLastChangeAsPersistent();\n      }\n\n      replaceBlocks([ownProps.clientId], blocks, indexToSelect, initialPosition);\n    },\n    toggleSelection: function toggleSelection(selectionEnabled) {\n      _toggleSelection(selectionEnabled);\n    }\n  };\n});\n/* harmony default export */ var block_list_block = (Object(external_this_wp_compose_[\"compose\"])(external_this_wp_compose_[\"pure\"], Object(external_this_wp_viewport_[\"withViewportMatch\"])({\n  isLargeViewport: 'medium'\n}), applyWithSelect, applyWithDispatch, // block is sometimes not mounted at the right time, causing it be undefined\n// see issue for more info\n// https://github.com/WordPress/gutenberg/issues/17013\nObject(external_this_wp_compose_[\"ifCondition\"])(function (_ref5) {\n  var block = _ref5.block;\n  return !!block;\n}), Object(external_this_wp_components_[\"withFilters\"])('editor.BlockListBlock'))(block_BlockListBlock));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/utils.js\n/**\n * WordPress dependencies\n */\n\nvar utils_getBlockPositionDescription = function getBlockPositionDescription(position, siblingCount, level) {\n  return Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */\n  Object(external_this_wp_i18n_[\"__\"])('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/block-select-button.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockNavigationBlockSelectButton(_ref, ref) {\n  var className = _ref.className,\n      block = _ref.block,\n      isSelected = _ref.isSelected,\n      onClick = _ref.onClick,\n      position = _ref.position,\n      siblingCount = _ref.siblingCount,\n      level = _ref.level,\n      tabIndex = _ref.tabIndex,\n      onFocus = _ref.onFocus;\n  var name = block.name,\n      attributes = block.attributes;\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n  var blockDisplayName = Object(external_this_wp_blocks_[\"__experimentalGetBlockLabel\"])(blockType, attributes);\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BlockNavigationBlockSelectButton);\n  var descriptionId = \"block-navigation-block-select-button__\".concat(instanceId);\n  var blockPositionDescription = utils_getBlockPositionDescription(position, siblingCount, level);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: classnames_default()('block-editor-block-navigation-block-select-button', className),\n    onClick: onClick,\n    \"aria-describedby\": descriptionId,\n    ref: ref,\n    tabIndex: tabIndex,\n    onFocus: onFocus\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: blockType.icon,\n    showColors: true\n  }), blockDisplayName, isSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], null, Object(external_this_wp_i18n_[\"__\"])('(selected block)'))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-navigation-block-select-button__description\",\n    id: descriptionId\n  }, blockPositionDescription));\n}\n\n/* harmony default export */ var block_select_button = (Object(external_this_wp_element_[\"forwardRef\"])(BlockNavigationBlockSelectButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/block-slot.js\n\n\n\n\nfunction block_slot_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_slot_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_slot_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_slot_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar getSlotName = function getSlotName(clientId) {\n  return \"BlockNavigationBlock-\".concat(clientId);\n};\n\nfunction BlockNavigationBlockSlot(props, ref) {\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BlockNavigationBlockSlot);\n  var clientId = props.block.clientId;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], {\n    name: getSlotName(clientId)\n  }, function (fills) {\n    if (!fills.length) {\n      return Object(external_this_wp_element_[\"createElement\"])(block_select_button, Object(esm_extends[\"a\" /* default */])({\n        ref: ref\n      }, props));\n    }\n\n    var className = props.className,\n        block = props.block,\n        isSelected = props.isSelected,\n        position = props.position,\n        siblingCount = props.siblingCount,\n        level = props.level,\n        tabIndex = props.tabIndex,\n        onFocus = props.onFocus;\n    var name = block.name;\n    var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(name);\n    var descriptionId = \"block-navigation-block-slot__\".concat(instanceId);\n    var blockPositionDescription = utils_getBlockPositionDescription(position, siblingCount, level);\n    var forwardedFillProps = {\n      // Ensure that the component in the slot can receive\n      // keyboard navigation.\n      tabIndex: tabIndex,\n      onFocus: onFocus,\n      ref: ref,\n      // Give the element rendered in the slot a description\n      // that describes its position.\n      'aria-describedby': descriptionId\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classnames_default()('block-editor-block-navigation-block-slot', className)\n    }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n      icon: blockType.icon,\n      showColors: true\n    }), external_this_wp_element_[\"Children\"].map(fills, function (fill) {\n      return Object(external_this_wp_element_[\"cloneElement\"])(fill, block_slot_objectSpread({}, fill.props, {}, forwardedFillProps));\n    }), isSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], null, Object(external_this_wp_i18n_[\"__\"])('(selected block)')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-navigation-block-slot__description\",\n      id: descriptionId\n    }, blockPositionDescription)));\n  });\n}\n\n/* harmony default export */ var block_slot = (Object(external_this_wp_element_[\"forwardRef\"])(BlockNavigationBlockSlot));\nvar block_slot_BlockNavigationBlockFill = function BlockNavigationBlockFill(props) {\n  var _useContext = Object(external_this_wp_element_[\"useContext\"])(BlockListBlockContext),\n      clientId = _useContext.clientId;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Fill\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    name: getSlotName(clientId)\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/block-contents.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar BlockNavigationBlockContents = Object(external_this_wp_element_[\"forwardRef\"])(function (_ref, ref) {\n  var onClick = _ref.onClick,\n      block = _ref.block,\n      isSelected = _ref.isSelected,\n      position = _ref.position,\n      siblingCount = _ref.siblingCount,\n      level = _ref.level,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"onClick\", \"block\", \"isSelected\", \"position\", \"siblingCount\", \"level\"]);\n\n  var _useBlockNavigationCo = context_useBlockNavigationContext(),\n      withBlockNavigationSlots = _useBlockNavigationCo.__experimentalFeatures;\n\n  return withBlockNavigationSlots ? Object(external_this_wp_element_[\"createElement\"])(block_slot, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    className: \"block-editor-block-navigation-block-contents\",\n    block: block,\n    onClick: onClick,\n    isSelected: isSelected,\n    position: position,\n    siblingCount: siblingCount,\n    level: level\n  }, props)) : Object(external_this_wp_element_[\"createElement\"])(block_select_button, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    className: \"block-editor-block-navigation-block-contents\",\n    block: block,\n    onClick: onClick,\n    isSelected: isSelected,\n    position: position,\n    siblingCount: siblingCount,\n    level: level\n  }, props));\n});\n/* harmony default export */ var block_contents = (BlockNavigationBlockContents);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/block.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction BlockNavigationBlock(_ref) {\n  var block = _ref.block,\n      isSelected = _ref.isSelected,\n      _onClick = _ref.onClick,\n      position = _ref.position,\n      level = _ref.level,\n      rowCount = _ref.rowCount,\n      showBlockMovers = _ref.showBlockMovers,\n      terminatedLevels = _ref.terminatedLevels,\n      path = _ref.path;\n  var cellRef = Object(external_this_wp_element_[\"useRef\"])(null);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isHovered = _useState2[0],\n      setIsHovered = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isFocused = _useState4[0],\n      setIsFocused = _useState4[1];\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      selectEditorBlock = _useDispatch.selectBlock;\n\n  var clientId = block.clientId; // Subtract 1 from rowCount, as it includes the block appender.\n\n  var siblingCount = rowCount - 1;\n  var hasSiblings = siblingCount > 1;\n  var hasRenderedMovers = showBlockMovers && hasSiblings;\n  var hasVisibleMovers = isHovered || isFocused;\n  var moverCellClassName = classnames_default()('block-editor-block-navigation-block__mover-cell', {\n    'is-visible': hasVisibleMovers\n  });\n\n  var _useBlockNavigationCo = context_useBlockNavigationContext(),\n      withExperimentalFeatures = _useBlockNavigationCo.__experimentalFeatures;\n\n  var blockNavigationBlockSettingsClassName = classnames_default()('block-editor-block-navigation-block__menu-cell', {\n    'is-visible': hasVisibleMovers\n  });\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (withExperimentalFeatures && isSelected) {\n      cellRef.current.focus();\n    }\n  }, [withExperimentalFeatures, isSelected]);\n  return Object(external_this_wp_element_[\"createElement\"])(BlockNavigationLeaf, {\n    className: classnames_default()({\n      'is-selected': isSelected\n    }),\n    onMouseEnter: function onMouseEnter() {\n      return setIsHovered(true);\n    },\n    onMouseLeave: function onMouseLeave() {\n      return setIsHovered(false);\n    },\n    onFocus: function onFocus() {\n      return setIsFocused(true);\n    },\n    onBlur: function onBlur() {\n      return setIsFocused(false);\n    },\n    level: level,\n    position: position,\n    rowCount: rowCount,\n    path: path\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridCell\"], {\n    className: \"block-editor-block-navigation-block__contents-cell\",\n    colSpan: hasRenderedMovers ? undefined : 2,\n    ref: cellRef\n  }, function (_ref2) {\n    var ref = _ref2.ref,\n        tabIndex = _ref2.tabIndex,\n        onFocus = _ref2.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-navigation-block__contents-container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(DescenderLines, {\n      level: level,\n      isLastRow: position === rowCount,\n      terminatedLevels: terminatedLevels\n    }), Object(external_this_wp_element_[\"createElement\"])(block_contents, {\n      block: block,\n      onClick: function onClick() {\n        return _onClick(block.clientId);\n      },\n      isSelected: isSelected,\n      position: position,\n      siblingCount: siblingCount,\n      level: level,\n      ref: ref,\n      tabIndex: tabIndex,\n      onFocus: onFocus\n    }));\n  }), hasRenderedMovers && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridCell\"], {\n    className: moverCellClassName,\n    withoutGridItem: true\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridItem\"], null, function (_ref3) {\n    var ref = _ref3.ref,\n        tabIndex = _ref3.tabIndex,\n        onFocus = _ref3.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(BlockMoverUpButton, {\n      __experimentalOrientation: \"vertical\",\n      clientIds: [clientId],\n      ref: ref,\n      tabIndex: tabIndex,\n      onFocus: onFocus\n    });\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridItem\"], null, function (_ref4) {\n    var ref = _ref4.ref,\n        tabIndex = _ref4.tabIndex,\n        onFocus = _ref4.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(BlockMoverDownButton, {\n      __experimentalOrientation: \"vertical\",\n      clientIds: [clientId],\n      ref: ref,\n      tabIndex: tabIndex,\n      onFocus: onFocus\n    });\n  }))), withExperimentalFeatures && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridCell\"], {\n    className: blockNavigationBlockSettingsClassName\n  }, function (_ref5) {\n    var ref = _ref5.ref,\n        tabIndex = _ref5.tabIndex,\n        onFocus = _ref5.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(block_settings_dropdown, {\n      clientIds: [clientId],\n      icon: more_vertical[\"a\" /* default */],\n      toggleProps: {\n        ref: ref,\n        tabIndex: tabIndex,\n        onFocus: onFocus\n      },\n      disableOpenOnArrowDown: true,\n      __experimentalSelectBlock: _onClick\n    }, function (_ref6) {\n      var onClose = _ref6.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        onClick: /*#__PURE__*/Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee() {\n          return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  _context.next = 2;\n                  return selectEditorBlock(null);\n\n                case 2:\n                  _context.next = 4;\n                  return selectEditorBlock(clientId);\n\n                case 4:\n                  onClose();\n\n                case 5:\n                case \"end\":\n                  return _context.stop();\n              }\n            }\n          }, _callee);\n        }))\n      }, Object(external_this_wp_i18n_[\"__\"])('Go to block')));\n    });\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/appender.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockNavigationAppender(_ref) {\n  var parentBlockClientId = _ref.parentBlockClientId,\n      position = _ref.position,\n      level = _ref.level,\n      rowCount = _ref.rowCount,\n      terminatedLevels = _ref.terminatedLevels,\n      path = _ref.path;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BlockNavigationAppender);\n  var descriptionId = \"block-navigation-appender-row__description_\".concat(instanceId);\n  var appenderPositionDescription = Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: The numerical position of the block that will be inserted. 2: The level of nesting for the block that will be inserted. */\n  Object(external_this_wp_i18n_[\"__\"])('Add block at position %1$d, Level %2$d'), position, level);\n  return Object(external_this_wp_element_[\"createElement\"])(BlockNavigationLeaf, {\n    level: level,\n    position: position,\n    rowCount: rowCount,\n    path: path\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGridCell\"], {\n    className: \"block-editor-block-navigation-appender__cell\",\n    colSpan: \"3\"\n  }, function (_ref2) {\n    var ref = _ref2.ref,\n        tabIndex = _ref2.tabIndex,\n        onFocus = _ref2.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-navigation-appender__container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(DescenderLines, {\n      level: level,\n      isLastRow: position === rowCount,\n      terminatedLevels: terminatedLevels\n    }), Object(external_this_wp_element_[\"createElement\"])(inserter, {\n      rootClientId: parentBlockClientId,\n      __experimentalSelectBlockOnInsert: false,\n      \"aria-describedby\": descriptionId,\n      toggleProps: {\n        ref: ref,\n        tabIndex: tabIndex,\n        onFocus: onFocus\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-navigation-appender__description\",\n      id: descriptionId\n    }, appenderPositionDescription));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/branch.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockNavigationBranch(props) {\n  var blocks = props.blocks,\n      selectBlock = props.selectBlock,\n      selectedBlockClientId = props.selectedBlockClientId,\n      showAppender = props.showAppender,\n      showBlockMovers = props.showBlockMovers,\n      showNestedBlocks = props.showNestedBlocks,\n      parentBlockClientId = props.parentBlockClientId,\n      _props$level = props.level,\n      level = _props$level === void 0 ? 1 : _props$level,\n      _props$terminatedLeve = props.terminatedLevels,\n      terminatedLevels = _props$terminatedLeve === void 0 ? [] : _props$terminatedLeve,\n      _props$path = props.path,\n      path = _props$path === void 0 ? [] : _props$path;\n  var isTreeRoot = !parentBlockClientId;\n  var filteredBlocks = Object(external_this_lodash_[\"compact\"])(blocks);\n\n  var itemHasAppender = function itemHasAppender(parentClientId) {\n    return showAppender && !isTreeRoot && selectedBlockClientId === parentClientId;\n  };\n\n  var hasAppender = itemHasAppender(parentBlockClientId); // Add +1 to the rowCount to take the block appender into account.\n\n  var rowCount = hasAppender ? filteredBlocks.length + 1 : filteredBlocks.length;\n  var appenderPosition = rowCount;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_lodash_[\"map\"])(filteredBlocks, function (block, index) {\n    var clientId = block.clientId,\n        innerBlocks = block.innerBlocks;\n    var position = index + 1;\n    var isLastRowAtLevel = rowCount === position;\n    var updatedTerminatedLevels = isLastRowAtLevel ? [].concat(Object(toConsumableArray[\"a\" /* default */])(terminatedLevels), [level]) : terminatedLevels;\n    var updatedPath = [].concat(Object(toConsumableArray[\"a\" /* default */])(path), [position]);\n    var hasNestedBlocks = showNestedBlocks && !!innerBlocks && !!innerBlocks.length;\n    var hasNestedAppender = itemHasAppender(clientId);\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], {\n      key: clientId\n    }, Object(external_this_wp_element_[\"createElement\"])(BlockNavigationBlock, {\n      block: block,\n      onClick: selectBlock,\n      isSelected: selectedBlockClientId === clientId,\n      level: level,\n      position: position,\n      rowCount: rowCount,\n      showBlockMovers: showBlockMovers,\n      terminatedLevels: terminatedLevels,\n      path: updatedPath\n    }), (hasNestedBlocks || hasNestedAppender) && Object(external_this_wp_element_[\"createElement\"])(BlockNavigationBranch, {\n      blocks: innerBlocks,\n      selectedBlockClientId: selectedBlockClientId,\n      selectBlock: selectBlock,\n      showAppender: showAppender,\n      showBlockMovers: showBlockMovers,\n      showNestedBlocks: showNestedBlocks,\n      parentBlockClientId: clientId,\n      level: level + 1,\n      terminatedLevels: updatedTerminatedLevels,\n      path: updatedPath\n    }));\n  }), hasAppender && Object(external_this_wp_element_[\"createElement\"])(BlockNavigationAppender, {\n    parentBlockClientId: parentBlockClientId,\n    position: rowCount,\n    rowCount: appenderPosition,\n    level: level,\n    terminatedLevels: terminatedLevels,\n    path: [].concat(Object(toConsumableArray[\"a\" /* default */])(path), [appenderPosition])\n  }));\n}\nBlockNavigationBranch.defaultProps = {\n  selectBlock: function selectBlock() {}\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/tree.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Wrap `BlockNavigationRows` with `TreeGrid`. BlockNavigationRows is a\n * recursive component (it renders itself), so this ensures TreeGrid is only\n * present at the very top of the navigation grid.\n *\n * @param {Object} props                        Components props.\n * @param {Object} props.__experimentalFeatures Object used in context provider.\n */\n\nfunction BlockNavigationTree(_ref) {\n  var __experimentalFeatures = _ref.__experimentalFeatures,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"__experimentalFeatures\"]);\n\n  var contextValue = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return {\n      __experimentalFeatures: __experimentalFeatures\n    };\n  }, [__experimentalFeatures]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalTreeGrid\"], {\n    className: \"block-editor-block-navigation-tree\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Block navigation structure')\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockNavigationContext.Provider, {\n    value: contextValue\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockNavigationBranch, props)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockNavigation(_ref) {\n  var rootBlock = _ref.rootBlock,\n      rootBlocks = _ref.rootBlocks,\n      selectedBlockClientId = _ref.selectedBlockClientId,\n      selectBlock = _ref.selectBlock,\n      __experimentalFeatures = _ref.__experimentalFeatures;\n\n  if (!rootBlocks || rootBlocks.length === 0) {\n    return null;\n  }\n\n  var hasHierarchy = rootBlock && (rootBlock.clientId !== selectedBlockClientId || rootBlock.innerBlocks && rootBlock.innerBlocks.length !== 0);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-navigation__container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"block-editor-block-navigation__label\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Block navigation')), hasHierarchy && Object(external_this_wp_element_[\"createElement\"])(BlockNavigationTree, {\n    blocks: [rootBlock],\n    selectedBlockClientId: selectedBlockClientId,\n    selectBlock: selectBlock,\n    __experimentalFeatures: __experimentalFeatures,\n    showNestedBlocks: true\n  }), !hasHierarchy && Object(external_this_wp_element_[\"createElement\"])(BlockNavigationTree, {\n    blocks: rootBlocks,\n    selectedBlockClientId: selectedBlockClientId,\n    selectBlock: selectBlock,\n    __experimentalFeatures: __experimentalFeatures\n  }));\n}\n\n/* harmony default export */ var block_navigation = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientId = _select.getSelectedBlockClientId,\n      getBlockHierarchyRootClientId = _select.getBlockHierarchyRootClientId,\n      getBlock = _select.getBlock,\n      getBlocks = _select.getBlocks;\n\n  var selectedBlockClientId = getSelectedBlockClientId();\n  return {\n    rootBlocks: getBlocks(),\n    rootBlock: selectedBlockClientId ? getBlock(getBlockHierarchyRootClientId(selectedBlockClientId)) : null,\n    selectedBlockClientId: selectedBlockClientId\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var _ref2$onSelect = _ref2.onSelect,\n      onSelect = _ref2$onSelect === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onSelect;\n  return {\n    selectBlock: function selectBlock(clientId) {\n      dispatch('core/block-editor').selectBlock(clientId);\n      onSelect(clientId);\n    }\n  };\n}))(BlockNavigation));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/dropdown.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar MenuIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\",\n  width: \"24\",\n  height: \"24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M13.8 5.2H3v1.5h10.8V5.2zm-3.6 12v1.5H21v-1.5H10.2zm7.2-6H6.6v1.5h10.8v-1.5z\"\n}));\n\nfunction BlockNavigationDropdownToggle(_ref) {\n  var isEnabled = _ref.isEnabled,\n      onToggle = _ref.onToggle,\n      isOpen = _ref.isOpen,\n      innerRef = _ref.innerRef,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isEnabled\", \"onToggle\", \"isOpen\", \"innerRef\"]);\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/edit-post/toggle-block-navigation', Object(external_this_wp_element_[\"useCallback\"])(onToggle, [onToggle]), {\n    bindGlobal: true,\n    isDisabled: !isEnabled\n  });\n  var shortcut = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/keyboard-shortcuts').getShortcutRepresentation('core/edit-post/toggle-block-navigation');\n  }, []);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    ref: innerRef,\n    icon: MenuIcon,\n    \"aria-expanded\": isOpen,\n    onClick: isEnabled ? onToggle : undefined,\n    label: Object(external_this_wp_i18n_[\"__\"])('Block navigation'),\n    className: \"block-editor-block-navigation\",\n    shortcut: shortcut,\n    \"aria-disabled\": !isEnabled\n  }));\n}\n\nfunction BlockNavigationDropdown(_ref2, ref) {\n  var isDisabled = _ref2.isDisabled,\n      __experimentalFeatures = _ref2.__experimentalFeatures,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"isDisabled\", \"__experimentalFeatures\"]);\n\n  var hasBlocks = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return !!select('core/block-editor').getBlockCount();\n  }, []);\n  var isEnabled = hasBlocks && !isDisabled;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    contentClassName: \"block-editor-block-navigation__popover\",\n    position: \"bottom right\",\n    renderToggle: function renderToggle(_ref3) {\n      var isOpen = _ref3.isOpen,\n          onToggle = _ref3.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(BlockNavigationDropdownToggle, Object(esm_extends[\"a\" /* default */])({}, props, {\n        innerRef: ref,\n        isOpen: isOpen,\n        onToggle: onToggle,\n        isEnabled: isEnabled\n      }));\n    },\n    renderContent: function renderContent(_ref4) {\n      var onClose = _ref4.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(block_navigation, {\n        onSelect: onClose,\n        __experimentalFeatures: __experimentalFeatures\n      });\n    }\n  });\n}\n\n/* harmony default export */ var dropdown = (Object(external_this_wp_element_[\"forwardRef\"])(BlockNavigationDropdown));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"shortcode\"]}\nvar external_this_wp_shortcode_ = __webpack_require__(119);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/remove-browser-shortcuts.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Set of keyboard shortcuts handled internally by RichText.\n *\n * @type {Array}\n */\n\nvar HANDLED_SHORTCUTS = [external_this_wp_keycodes_[\"rawShortcut\"].primary('z'), external_this_wp_keycodes_[\"rawShortcut\"].primaryShift('z'), external_this_wp_keycodes_[\"rawShortcut\"].primary('y')];\n/**\n * An instance of a KeyboardShortcuts element pre-bound for the handled\n * shortcuts. Since shortcuts never change, the element can be considered\n * static, and can be skipped in reconciliation.\n *\n * @type {WPElement}\n */\n\nvar SHORTCUTS_ELEMENT = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"KeyboardShortcuts\"], {\n  bindGlobal: true,\n  shortcuts: Object(external_this_lodash_[\"fromPairs\"])(HANDLED_SHORTCUTS.map(function (shortcut) {\n    return [shortcut, function (event) {\n      return event.preventDefault();\n    }];\n  }))\n});\n/**\n * Component which registered keyboard event handlers to prevent default\n * behaviors for key combinations otherwise handled internally by RichText.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nvar RemoveBrowserShortcuts = function RemoveBrowserShortcuts() {\n  return SHORTCUTS_ELEMENT;\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/file-paste-handler.js\n/**\n * WordPress dependencies\n */\n\nfunction filePasteHandler(files) {\n  return files.filter(function (_ref) {\n    var type = _ref.type;\n    return /^image\\/(?:jpe?g|png|gif)$/.test(type);\n  }).map(function (file) {\n    return \"<img src=\\\"\".concat(Object(external_this_wp_blob_[\"createBlobURL\"])(file), \"\\\">\");\n  }).join('');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar format_toolbar_POPOVER_PROPS = {\n  position: 'bottom right',\n  isAlternate: true\n};\n\nvar format_toolbar_FormatToolbar = function FormatToolbar() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-format-toolbar\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, ['bold', 'italic', 'link', 'text-color'].map(function (format) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], {\n      name: \"RichText.ToolbarControls.\".concat(format),\n      key: format\n    });\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], {\n    name: \"RichText.ToolbarControls\"\n  }, function (fills) {\n    return fills.length !== 0 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], null, function (toggleProps) {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], {\n        icon: chevron_down[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('More rich text controls'),\n        toggleProps: toggleProps,\n        controls: Object(external_this_lodash_[\"orderBy\"])(fills.map(function (_ref) {\n          var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 1),\n              props = _ref2[0].props;\n\n          return props;\n        }), 'title'),\n        popoverProps: format_toolbar_POPOVER_PROPS\n      });\n    });\n  })));\n};\n\n/* harmony default export */ var format_toolbar = (format_toolbar_FormatToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/format-toolbar-container.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar format_toolbar_container_FormatToolbarContainer = function FormatToolbarContainer(_ref) {\n  var inline = _ref.inline,\n      anchorRef = _ref.anchorRef;\n\n  if (inline) {\n    // Render in popover\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n      noArrow: true,\n      position: \"top center\",\n      focusOnMount: false,\n      anchorRef: anchorRef,\n      className: \"block-editor-rich-text__inline-format-toolbar\"\n    }, Object(external_this_wp_element_[\"createElement\"])(format_toolbar, null));\n  } // Render regular toolbar\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(block_format_controls, null, Object(external_this_wp_element_[\"createElement\"])(format_toolbar, null));\n};\n\n/* harmony default export */ var format_toolbar_container = (format_toolbar_container_FormatToolbarContainer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/index.js\n\n\n\n\n\n\n\nfunction rich_text_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction rich_text_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { rich_text_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { rich_text_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar wrapperClasses = 'block-editor-rich-text';\nvar rich_text_classes = 'block-editor-rich-text__editable';\n/**\n * Get the multiline tag based on the multiline prop.\n *\n * @param {?(string|boolean)} multiline The multiline prop.\n *\n * @return {?string} The multiline tag.\n */\n\nfunction getMultilineTag(multiline) {\n  if (multiline !== true && multiline !== 'p' && multiline !== 'li') {\n    return;\n  }\n\n  return multiline === true ? 'p' : multiline;\n}\n\nfunction getAllowedFormats(_ref) {\n  var allowedFormats = _ref.allowedFormats,\n      formattingControls = _ref.formattingControls,\n      disableFormats = _ref.disableFormats;\n\n  if (disableFormats) {\n    return getAllowedFormats.EMPTY_ARRAY;\n  }\n\n  if (!allowedFormats && !formattingControls) {\n    return;\n  }\n\n  if (allowedFormats) {\n    return allowedFormats;\n  }\n\n  external_this_wp_deprecated_default()('wp.blockEditor.RichText formattingControls prop', {\n    alternative: 'allowedFormats'\n  });\n  return formattingControls.map(function (name) {\n    return \"core/\".concat(name);\n  });\n}\n\ngetAllowedFormats.EMPTY_ARRAY = [];\n\nvar rich_text_isShortcode = function isShortcode(text) {\n  return Object(external_this_wp_shortcode_[\"regexp\"])('.*').test(text);\n};\n\nfunction RichTextWrapper(_ref2, forwardedRef) {\n  var children = _ref2.children,\n      tagName = _ref2.tagName,\n      originalValue = _ref2.value,\n      originalOnChange = _ref2.onChange,\n      originalIsSelected = _ref2.isSelected,\n      multiline = _ref2.multiline,\n      inlineToolbar = _ref2.inlineToolbar,\n      wrapperClassName = _ref2.wrapperClassName,\n      className = _ref2.className,\n      autocompleters = _ref2.autocompleters,\n      onReplace = _ref2.onReplace,\n      placeholder = _ref2.placeholder,\n      keepPlaceholderOnFocus = _ref2.keepPlaceholderOnFocus,\n      allowedFormats = _ref2.allowedFormats,\n      formattingControls = _ref2.formattingControls,\n      withoutInteractiveFormatting = _ref2.withoutInteractiveFormatting,\n      onRemove = _ref2.onRemove,\n      onMerge = _ref2.onMerge,\n      onSplit = _ref2.onSplit,\n      onSplitAtEnd = _ref2.__unstableOnSplitAtEnd,\n      onSplitMiddle = _ref2.__unstableOnSplitMiddle,\n      identifier = _ref2.identifier,\n      startAttr = _ref2.start,\n      reversed = _ref2.reversed,\n      style = _ref2.style,\n      preserveWhiteSpace = _ref2.preserveWhiteSpace,\n      __unstableEmbedURLOnPaste = _ref2.__unstableEmbedURLOnPaste,\n      disableFormats = _ref2.__unstableDisableFormats,\n      disableLineBreaks = _ref2.disableLineBreaks,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"children\", \"tagName\", \"value\", \"onChange\", \"isSelected\", \"multiline\", \"inlineToolbar\", \"wrapperClassName\", \"className\", \"autocompleters\", \"onReplace\", \"placeholder\", \"keepPlaceholderOnFocus\", \"allowedFormats\", \"formattingControls\", \"withoutInteractiveFormatting\", \"onRemove\", \"onMerge\", \"onSplit\", \"__unstableOnSplitAtEnd\", \"__unstableOnSplitMiddle\", \"identifier\", \"start\", \"reversed\", \"style\", \"preserveWhiteSpace\", \"__unstableEmbedURLOnPaste\", \"__unstableDisableFormats\", \"disableLineBreaks\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(RichTextWrapper);\n  identifier = identifier || instanceId;\n  var fallbackRef = Object(external_this_wp_element_[\"useRef\"])();\n  var ref = forwardedRef || fallbackRef;\n\n  var _useBlockEditContext = useBlockEditContext(),\n      clientId = _useBlockEditContext.clientId,\n      onCaretVerticalPositionChange = _useBlockEditContext.onCaretVerticalPositionChange,\n      blockIsSelected = _useBlockEditContext.isSelected;\n\n  var selector = function selector(select) {\n    var _select = select('core/block-editor'),\n        isCaretWithinFormattedText = _select.isCaretWithinFormattedText,\n        getSelectionStart = _select.getSelectionStart,\n        getSelectionEnd = _select.getSelectionEnd,\n        getSettings = _select.getSettings,\n        didAutomaticChange = _select.didAutomaticChange,\n        __unstableGetBlockWithoutInnerBlocks = _select.__unstableGetBlockWithoutInnerBlocks,\n        isMultiSelecting = _select.isMultiSelecting,\n        hasMultiSelection = _select.hasMultiSelection;\n\n    var selectionStart = getSelectionStart();\n    var selectionEnd = getSelectionEnd();\n\n    var _getSettings = getSettings(),\n        undo = _getSettings.__experimentalUndo;\n\n    var isSelected;\n\n    if (originalIsSelected === undefined) {\n      isSelected = selectionStart.clientId === clientId && selectionStart.attributeKey === identifier;\n    } else if (originalIsSelected) {\n      isSelected = selectionStart.clientId === clientId;\n    }\n\n    var extraProps = {};\n\n    if (external_this_wp_element_[\"Platform\"].OS === 'native') {\n      // If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n      // In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n      // This apparently assumes functionality the BlockHlder actually\n      var block = clientId && __unstableGetBlockWithoutInnerBlocks(clientId);\n\n      var _shouldBlurOnUnmount = block && isSelected && Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])(block);\n\n      extraProps = {\n        shouldBlurOnUnmount: _shouldBlurOnUnmount\n      };\n    }\n\n    return rich_text_objectSpread({\n      isCaretWithinFormattedText: isCaretWithinFormattedText(),\n      selectionStart: isSelected ? selectionStart.offset : undefined,\n      selectionEnd: isSelected ? selectionEnd.offset : undefined,\n      isSelected: isSelected,\n      didAutomaticChange: didAutomaticChange(),\n      disabled: isMultiSelecting() || hasMultiSelection(),\n      undo: undo\n    }, extraProps);\n  }; // This selector must run on every render so the right selection state is\n  // retreived from the store on merge.\n  // To do: fix this somehow.\n\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(selector),\n      isCaretWithinFormattedText = _useSelect.isCaretWithinFormattedText,\n      selectionStart = _useSelect.selectionStart,\n      selectionEnd = _useSelect.selectionEnd,\n      isSelected = _useSelect.isSelected,\n      didAutomaticChange = _useSelect.didAutomaticChange,\n      disabled = _useSelect.disabled,\n      undo = _useSelect.undo,\n      shouldBlurOnUnmount = _useSelect.shouldBlurOnUnmount;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      __unstableMarkLastChangeAsPersistent = _useDispatch.__unstableMarkLastChangeAsPersistent,\n      enterFormattedText = _useDispatch.enterFormattedText,\n      exitFormattedText = _useDispatch.exitFormattedText,\n      selectionChange = _useDispatch.selectionChange,\n      __unstableMarkAutomaticChange = _useDispatch.__unstableMarkAutomaticChange;\n\n  var multilineTag = getMultilineTag(multiline);\n  var adjustedAllowedFormats = getAllowedFormats({\n    allowedFormats: allowedFormats,\n    formattingControls: formattingControls,\n    disableFormats: disableFormats\n  });\n  var hasFormats = !adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n  var adjustedValue = originalValue;\n  var adjustedOnChange = originalOnChange; // Handle deprecated format.\n\n  if (Array.isArray(originalValue)) {\n    adjustedValue = external_this_wp_blocks_[\"children\"].toHTML(originalValue);\n\n    adjustedOnChange = function adjustedOnChange(newValue) {\n      return originalOnChange(external_this_wp_blocks_[\"children\"].fromDOM(Object(external_this_wp_richText_[\"__unstableCreateElement\"])(document, newValue).childNodes));\n    };\n  }\n\n  var onSelectionChange = Object(external_this_wp_element_[\"useCallback\"])(function (start, end) {\n    selectionChange(clientId, identifier, start, end);\n  }, [clientId, identifier]);\n  var onDelete = Object(external_this_wp_element_[\"useCallback\"])(function (_ref3) {\n    var value = _ref3.value,\n        isReverse = _ref3.isReverse;\n\n    if (onMerge) {\n      onMerge(!isReverse);\n    } // Only handle remove on Backspace. This serves dual-purpose of being\n    // an intentional user interaction distinguishing between Backspace and\n    // Delete to remove the empty field, but also to avoid merge & remove\n    // causing destruction of two fields (merge, then removed merged).\n\n\n    if (onRemove && Object(external_this_wp_richText_[\"isEmpty\"])(value) && isReverse) {\n      onRemove(!isReverse);\n    }\n  }, [onMerge, onRemove]);\n  /**\n   * Signals to the RichText owner that the block can be replaced with two\n   * blocks as a result of splitting the block by pressing enter, or with\n   * blocks as a result of splitting the block by pasting block content in the\n   * instance.\n   *\n   * @param  {Object} record       The rich text value to split.\n   * @param  {Array}  pastedBlocks The pasted blocks to insert, if any.\n   */\n\n  var splitValue = Object(external_this_wp_element_[\"useCallback\"])(function (record) {\n    var pastedBlocks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    if (!onReplace || !onSplit) {\n      return;\n    }\n\n    var blocks = [];\n\n    var _split = Object(external_this_wp_richText_[\"split\"])(record),\n        _split2 = Object(slicedToArray[\"a\" /* default */])(_split, 2),\n        before = _split2[0],\n        after = _split2[1];\n\n    var hasPastedBlocks = pastedBlocks.length > 0;\n    var lastPastedBlockIndex = -1; // Create a block with the content before the caret if there's no pasted\n    // blocks, or if there are pasted blocks and the value is not empty.\n    // We do not want a leading empty block on paste, but we do if split\n    // with e.g. the enter key.\n\n    if (!hasPastedBlocks || !Object(external_this_wp_richText_[\"isEmpty\"])(before)) {\n      blocks.push(onSplit(Object(external_this_wp_richText_[\"toHTMLString\"])({\n        value: before,\n        multilineTag: multilineTag\n      })));\n      lastPastedBlockIndex += 1;\n    }\n\n    if (hasPastedBlocks) {\n      blocks.push.apply(blocks, Object(toConsumableArray[\"a\" /* default */])(pastedBlocks));\n      lastPastedBlockIndex += pastedBlocks.length;\n    } else if (onSplitMiddle) {\n      blocks.push(onSplitMiddle());\n    } // If there's pasted blocks, append a block with non empty content\n    /// after the caret. Otherwise, do append an empty block if there\n    // is no `onSplitMiddle` prop, but if there is and the content is\n    // empty, the middle block is enough to set focus in.\n\n\n    if (hasPastedBlocks ? !Object(external_this_wp_richText_[\"isEmpty\"])(after) : !onSplitMiddle || !Object(external_this_wp_richText_[\"isEmpty\"])(after)) {\n      blocks.push(onSplit(Object(external_this_wp_richText_[\"toHTMLString\"])({\n        value: after,\n        multilineTag: multilineTag\n      })));\n    } // If there are pasted blocks, set the selection to the last one.\n    // Otherwise, set the selection to the second block.\n\n\n    var indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1; // If there are pasted blocks, move the caret to the end of the selected block\n    // Otherwise, retain the default value.\n\n    var initialPosition = hasPastedBlocks ? -1 : null;\n    onReplace(blocks, indexToSelect, initialPosition);\n  }, [onReplace, onSplit, multilineTag, onSplitMiddle]);\n  var onEnter = Object(external_this_wp_element_[\"useCallback\"])(function (_ref4) {\n    var value = _ref4.value,\n        onChange = _ref4.onChange,\n        shiftKey = _ref4.shiftKey;\n    var canSplit = onReplace && onSplit;\n\n    if (onReplace) {\n      var transforms = Object(external_this_wp_blocks_[\"getBlockTransforms\"])('from').filter(function (_ref5) {\n        var type = _ref5.type;\n        return type === 'enter';\n      });\n      var transformation = Object(external_this_wp_blocks_[\"findTransform\"])(transforms, function (item) {\n        return item.regExp.test(value.text);\n      });\n\n      if (transformation) {\n        onReplace([transformation.transform({\n          content: value.text\n        })]);\n\n        __unstableMarkAutomaticChange();\n      }\n    }\n\n    if (multiline) {\n      if (shiftKey) {\n        if (!disableLineBreaks) {\n          onChange(Object(external_this_wp_richText_[\"insert\"])(value, '\\n'));\n        }\n      } else if (canSplit && Object(external_this_wp_richText_[\"__unstableIsEmptyLine\"])(value)) {\n        splitValue(value);\n      } else {\n        onChange(Object(external_this_wp_richText_[\"__unstableInsertLineSeparator\"])(value));\n      }\n    } else {\n      var text = value.text,\n          start = value.start,\n          end = value.end;\n      var canSplitAtEnd = onSplitAtEnd && start === end && end === text.length;\n\n      if (shiftKey || !canSplit && !canSplitAtEnd) {\n        if (!disableLineBreaks) {\n          onChange(Object(external_this_wp_richText_[\"insert\"])(value, '\\n'));\n        }\n      } else if (!canSplit && canSplitAtEnd) {\n        onSplitAtEnd();\n      } else if (canSplit) {\n        splitValue(value);\n      }\n    }\n  }, [onReplace, onSplit, __unstableMarkAutomaticChange, multiline, splitValue, onSplitAtEnd]);\n  var onPaste = Object(external_this_wp_element_[\"useCallback\"])(function (_ref6) {\n    var value = _ref6.value,\n        onChange = _ref6.onChange,\n        html = _ref6.html,\n        plainText = _ref6.plainText,\n        files = _ref6.files,\n        activeFormats = _ref6.activeFormats;\n\n    // Only process file if no HTML is present.\n    // Note: a pasted file may have the URL as plain text.\n    if (files && files.length && !html) {\n      var _content = Object(external_this_wp_blocks_[\"pasteHandler\"])({\n        HTML: filePasteHandler(files),\n        mode: 'BLOCKS',\n        tagName: tagName\n      }); // Allows us to ask for this information when we get a report.\n      // eslint-disable-next-line no-console\n\n\n      window.console.log('Received items:\\n\\n', files);\n\n      if (onReplace && Object(external_this_wp_richText_[\"isEmpty\"])(value)) {\n        onReplace(_content);\n      } else {\n        splitValue(value, _content);\n      }\n\n      return;\n    }\n\n    var mode = onReplace && onSplit ? 'AUTO' : 'INLINE'; // Force the blocks mode when the user is pasting\n    // on a new line & the content resembles a shortcode.\n    // Otherwise it's going to be detected as inline\n    // and the shortcode won't be replaced.\n\n    if (mode === 'AUTO' && Object(external_this_wp_richText_[\"isEmpty\"])(value) && rich_text_isShortcode(plainText)) {\n      mode = 'BLOCKS';\n    }\n\n    if (__unstableEmbedURLOnPaste && Object(external_this_wp_richText_[\"isEmpty\"])(value) && Object(external_this_wp_url_[\"isURL\"])(plainText.trim())) {\n      mode = 'BLOCKS';\n    }\n\n    var content = Object(external_this_wp_blocks_[\"pasteHandler\"])({\n      HTML: html,\n      plainText: plainText,\n      mode: mode,\n      tagName: tagName\n    });\n\n    if (typeof content === 'string') {\n      var valueToInsert = Object(external_this_wp_richText_[\"create\"])({\n        html: content\n      }); // If there are active formats, merge them with the pasted formats.\n\n      if (activeFormats.length) {\n        var index = valueToInsert.formats.length;\n\n        while (index--) {\n          valueToInsert.formats[index] = [].concat(Object(toConsumableArray[\"a\" /* default */])(activeFormats), Object(toConsumableArray[\"a\" /* default */])(valueToInsert.formats[index] || []));\n        }\n      } // If the content should be multiline, we should process text\n      // separated by a line break as separate lines.\n\n\n      if (multiline) {\n        valueToInsert = Object(external_this_wp_richText_[\"replace\"])(valueToInsert, /\\n+/g, external_this_wp_richText_[\"__UNSTABLE_LINE_SEPARATOR\"]);\n      }\n\n      onChange(Object(external_this_wp_richText_[\"insert\"])(value, valueToInsert));\n    } else if (content.length > 0) {\n      if (onReplace && Object(external_this_wp_richText_[\"isEmpty\"])(value)) {\n        onReplace(content, content.length - 1, -1);\n      } else {\n        splitValue(value, content);\n      }\n    }\n  }, [tagName, onReplace, onSplit, splitValue, __unstableEmbedURLOnPaste, multiline]);\n  var inputRule = Object(external_this_wp_element_[\"useCallback\"])(function (value, valueToFormat) {\n    if (!onReplace) {\n      return;\n    }\n\n    var start = value.start,\n        text = value.text;\n    var characterBefore = text.slice(start - 1, start); // The character right before the caret must be a plain space.\n\n    if (characterBefore !== ' ') {\n      return;\n    }\n\n    var trimmedTextBefore = text.slice(0, start).trim();\n    var prefixTransforms = Object(external_this_wp_blocks_[\"getBlockTransforms\"])('from').filter(function (_ref7) {\n      var type = _ref7.type;\n      return type === 'prefix';\n    });\n    var transformation = Object(external_this_wp_blocks_[\"findTransform\"])(prefixTransforms, function (_ref8) {\n      var prefix = _ref8.prefix;\n      return trimmedTextBefore === prefix;\n    });\n\n    if (!transformation) {\n      return;\n    }\n\n    var content = valueToFormat(Object(external_this_wp_richText_[\"slice\"])(value, start, text.length));\n    var block = transformation.transform(content);\n    onReplace([block]);\n\n    __unstableMarkAutomaticChange();\n  }, [onReplace, __unstableMarkAutomaticChange]);\n  var content = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_richText_[\"__experimentalRichText\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    clientId: clientId,\n    identifier: identifier,\n    ref: ref,\n    value: adjustedValue,\n    onChange: adjustedOnChange,\n    selectionStart: selectionStart,\n    selectionEnd: selectionEnd,\n    onSelectionChange: onSelectionChange,\n    tagName: tagName,\n    className: classnames_default()(rich_text_classes, className, {\n      'keep-placeholder-on-focus': keepPlaceholderOnFocus\n    }),\n    placeholder: placeholder,\n    allowedFormats: adjustedAllowedFormats,\n    withoutInteractiveFormatting: withoutInteractiveFormatting,\n    onEnter: onEnter,\n    onDelete: onDelete,\n    onPaste: onPaste,\n    __unstableIsSelected: isSelected,\n    __unstableInputRule: inputRule,\n    __unstableMultilineTag: multilineTag,\n    __unstableIsCaretWithinFormattedText: isCaretWithinFormattedText,\n    __unstableOnEnterFormattedText: enterFormattedText,\n    __unstableOnExitFormattedText: exitFormattedText,\n    __unstableOnCreateUndoLevel: __unstableMarkLastChangeAsPersistent,\n    __unstableMarkAutomaticChange: __unstableMarkAutomaticChange,\n    __unstableDidAutomaticChange: didAutomaticChange,\n    __unstableUndo: undo,\n    __unstableDisableFormats: disableFormats,\n    style: style,\n    preserveWhiteSpace: preserveWhiteSpace,\n    disabled: disabled,\n    start: startAttr,\n    reversed: reversed // Native props.\n    ,\n    onCaretVerticalPositionChange: onCaretVerticalPositionChange,\n    blockIsSelected: originalIsSelected !== undefined ? originalIsSelected : blockIsSelected,\n    shouldBlurOnUnmount: shouldBlurOnUnmount\n  }), function (_ref9) {\n    var nestedIsSelected = _ref9.isSelected,\n        value = _ref9.value,\n        onChange = _ref9.onChange,\n        onFocus = _ref9.onFocus,\n        editableProps = _ref9.editableProps,\n        TagName = _ref9.editableTagName;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, children && children({\n      value: value,\n      onChange: onChange,\n      onFocus: onFocus\n    }), nestedIsSelected && hasFormats && Object(external_this_wp_element_[\"createElement\"])(format_toolbar_container, {\n      inline: inlineToolbar,\n      anchorRef: ref.current\n    }), nestedIsSelected && Object(external_this_wp_element_[\"createElement\"])(RemoveBrowserShortcuts, null), Object(external_this_wp_element_[\"createElement\"])(autocomplete, {\n      onReplace: onReplace,\n      completers: autocompleters,\n      record: value,\n      onChange: onChange,\n      isSelected: nestedIsSelected\n    }, function (_ref10) {\n      var listBoxId = _ref10.listBoxId,\n          activeId = _ref10.activeId,\n          _onKeyDown = _ref10.onKeyDown;\n      return Object(external_this_wp_element_[\"createElement\"])(TagName, Object(esm_extends[\"a\" /* default */])({}, editableProps, {\n        \"aria-autocomplete\": listBoxId ? 'list' : undefined,\n        \"aria-owns\": listBoxId,\n        \"aria-activedescendant\": activeId,\n        start: startAttr,\n        reversed: reversed,\n        onKeyDown: function onKeyDown(event) {\n          _onKeyDown(event);\n\n          editableProps.onKeyDown(event);\n        }\n      }));\n    }));\n  });\n\n  if (!wrapperClassName) {\n    return content;\n  }\n\n  external_this_wp_deprecated_default()('wp.blockEditor.RichText wrapperClassName prop', {\n    alternative: 'className prop or create your own wrapper div'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()(wrapperClasses, wrapperClassName)\n  }, content);\n}\n\nvar ForwardedRichTextContainer = Object(external_this_wp_element_[\"forwardRef\"])(RichTextWrapper);\n\nForwardedRichTextContainer.Content = function (_ref11) {\n  var value = _ref11.value,\n      Tag = _ref11.tagName,\n      multiline = _ref11.multiline,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref11, [\"value\", \"tagName\", \"multiline\"]);\n\n  // Handle deprecated `children` and `node` sources.\n  if (Array.isArray(value)) {\n    value = external_this_wp_blocks_[\"children\"].toHTML(value);\n  }\n\n  var MultilineTag = getMultilineTag(multiline);\n\n  if (!value && MultilineTag) {\n    value = \"<\".concat(MultilineTag, \"></\").concat(MultilineTag, \">\");\n  }\n\n  var content = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, value);\n\n  if (Tag) {\n    return Object(external_this_wp_element_[\"createElement\"])(Tag, Object(external_this_lodash_[\"omit\"])(props, ['format']), content);\n  }\n\n  return content;\n};\n\nForwardedRichTextContainer.isEmpty = function (value) {\n  return !value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n  format: 'string',\n  value: ''\n};\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/rich-text/README.md\n */\n\n/* harmony default export */ var rich_text = (ForwardedRichTextContainer);\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-navigation/editor.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockNavigationEditor(_ref) {\n  var value = _ref.value,\n      onChange = _ref.onChange;\n  return Object(external_this_wp_element_[\"createElement\"])(block_slot_BlockNavigationBlockFill, null, Object(external_this_wp_element_[\"createElement\"])(rich_text, {\n    value: value,\n    onChange: onChange,\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Navigation item'),\n    keepPlaceholderOnFocus: true,\n    withoutInteractiveFormatting: true,\n    allowedFormats: ['core/bold', 'core/italic', 'core/image', 'core/strikethrough']\n  }));\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js\nvar layout = __webpack_require__(294);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-variation-picker/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction BlockVariationPicker(_ref) {\n  var _ref$icon = _ref.icon,\n      icon = _ref$icon === void 0 ? layout[\"a\" /* default */] : _ref$icon,\n      _ref$label = _ref.label,\n      label = _ref$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Choose variation') : _ref$label,\n      _ref$instructions = _ref.instructions,\n      instructions = _ref$instructions === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Select a variation to start with.') : _ref$instructions,\n      variations = _ref.variations,\n      onSelect = _ref.onSelect,\n      allowSkip = _ref.allowSkip;\n  var classes = classnames_default()('block-editor-block-variation-picker', {\n    'has-many-variations': variations.length > 4\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n    icon: icon,\n    label: label,\n    instructions: instructions,\n    className: classes\n  }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"block-editor-block-variation-picker__variations\",\n    role: \"list\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Block variations')\n  }, variations.map(function (variation) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: variation.name\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      isSecondary: true,\n      icon: variation.icon,\n      iconSize: 48,\n      onClick: function onClick() {\n        return onSelect(variation);\n      },\n      className: \"block-editor-block-variation-picker__variation\",\n      label: variation.description || variation.title\n    }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"block-editor-block-variation-picker__variation-label\",\n      role: \"presentation\"\n    }, variation.title));\n  })), allowSkip && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-variation-picker__skip\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isLink: true,\n    onClick: function onClick() {\n      return onSelect();\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Skip'))));\n}\n\n/* harmony default export */ var block_variation_picker = (BlockVariationPicker);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-toolbar/icons.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignBottom = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M15 4H9v11h6V4zM4 18.5V20h16v-1.5H4z\"\n}));\nvar alignCenter = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M20 11h-5V4H9v7H4v1.5h5V20h6v-7.5h5z\"\n}));\nvar alignTop = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M9 20h6V9H9v11zM4 4v1.5h16V4H4z\"\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-vertical-alignment-toolbar/index.js\n\n\n\nfunction block_vertical_alignment_toolbar_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction block_vertical_alignment_toolbar_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { block_vertical_alignment_toolbar_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { block_vertical_alignment_toolbar_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar block_vertical_alignment_toolbar_BLOCK_ALIGNMENTS_CONTROLS = {\n  top: {\n    icon: alignTop,\n    title: Object(external_this_wp_i18n_[\"_x\"])('Vertically Align Top', 'Block vertical alignment setting')\n  },\n  center: {\n    icon: alignCenter,\n    title: Object(external_this_wp_i18n_[\"_x\"])('Vertically Align Middle', 'Block vertical alignment setting')\n  },\n  bottom: {\n    icon: alignBottom,\n    title: Object(external_this_wp_i18n_[\"_x\"])('Vertically Align Bottom', 'Block vertical alignment setting')\n  }\n};\nvar block_vertical_alignment_toolbar_DEFAULT_CONTROLS = ['top', 'center', 'bottom'];\nvar block_vertical_alignment_toolbar_DEFAULT_CONTROL = 'top';\nvar block_vertical_alignment_toolbar_POPOVER_PROPS = {\n  isAlternate: true\n};\nfunction BlockVerticalAlignmentToolbar(_ref) {\n  var value = _ref.value,\n      onChange = _ref.onChange,\n      _ref$controls = _ref.controls,\n      controls = _ref$controls === void 0 ? block_vertical_alignment_toolbar_DEFAULT_CONTROLS : _ref$controls,\n      _ref$isCollapsed = _ref.isCollapsed,\n      isCollapsed = _ref$isCollapsed === void 0 ? true : _ref$isCollapsed;\n\n  function applyOrUnset(align) {\n    return function () {\n      return onChange(value === align ? undefined : align);\n    };\n  }\n\n  var activeAlignment = block_vertical_alignment_toolbar_BLOCK_ALIGNMENTS_CONTROLS[value];\n  var defaultAlignmentControl = block_vertical_alignment_toolbar_BLOCK_ALIGNMENTS_CONTROLS[block_vertical_alignment_toolbar_DEFAULT_CONTROL];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    popoverProps: block_vertical_alignment_toolbar_POPOVER_PROPS,\n    isCollapsed: isCollapsed,\n    icon: activeAlignment ? activeAlignment.icon : defaultAlignmentControl.icon,\n    label: Object(external_this_wp_i18n_[\"_x\"])('Change vertical alignment', 'Block vertical alignment setting label'),\n    controls: controls.map(function (control) {\n      return block_vertical_alignment_toolbar_objectSpread({}, block_vertical_alignment_toolbar_BLOCK_ALIGNMENTS_CONTROLS[control], {\n        isActive: value === control,\n        role: isCollapsed ? 'menuitemradio' : undefined,\n        onClick: applyOrUnset(control)\n      });\n    })\n  });\n}\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/block-vertical-alignment-toolbar/README.md\n */\n\n/* harmony default export */ var block_vertical_alignment_toolbar = (BlockVerticalAlignmentToolbar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/with-color-context.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/* harmony default export */ var with_color_context = (Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var settings = select('core/block-editor').getSettings();\n  var colors = ownProps.colors === undefined ? settings.colors : ownProps.colors;\n  var disableCustomColors = ownProps.disableCustomColors === undefined ? settings.disableCustomColors : ownProps.disableCustomColors;\n  return {\n    colors: colors,\n    disableCustomColors: disableCustomColors,\n    hasColorsToChoose: !Object(external_this_lodash_[\"isEmpty\"])(colors) || !disableCustomColors\n  };\n}), 'withColorContext'));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var color_palette = (with_color_context(external_this_wp_components_[\"ColorPalette\"]));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/color-palette/control.js\n\n\n\n\n/**\n * Internal dependencies\n */\n\nfunction ColorPaletteControl(_ref) {\n  var onChange = _ref.onChange,\n      value = _ref.value,\n      otherProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"onChange\", \"value\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(control, Object(esm_extends[\"a\" /* default */])({}, otherProps, {\n    onColorChange: onChange,\n    colorValue: value,\n    gradients: [],\n    disableCustomGradients: true\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradient-picker/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction GradientPickerWithGradients(props) {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return Object(external_this_lodash_[\"pick\"])(select('core/block-editor').getSettings(), ['gradients', 'disableCustomGradients']);\n  }, []),\n      gradients = _useSelect.gradients,\n      disableCustomGradients = _useSelect.disableCustomGradients;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalGradientPicker\"], Object(esm_extends[\"a\" /* default */])({\n    gradients: props.gradients !== undefined ? props.gradient : gradients,\n    disableCustomGradients: props.disableCustomGradients !== undefined ? props.disableCustomGradients : disableCustomGradients\n  }, props));\n}\n\n/* harmony default export */ var gradient_picker = (function (props) {\n  var ComponentToUse = props.gradients !== undefined && props.disableCustomGradients !== undefined ? external_this_wp_components_[\"__experimentalGradientPicker\"] : GradientPickerWithGradients;\n  return Object(external_this_wp_element_[\"createElement\"])(ComponentToUse, props);\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradient-picker/control.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction GradientPickerControl(_ref) {\n  var className = _ref.className,\n      value = _ref.value,\n      onChange = _ref.onChange,\n      _ref$label = _ref.label,\n      label = _ref$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Gradient Presets') : _ref$label,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"value\", \"onChange\", \"label\"]);\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return Object(external_this_lodash_[\"pick\"])(select('core/block-editor').getSettings(), ['gradients', 'disableCustomGradients']);\n  }, []),\n      _useSelect$gradients = _useSelect.gradients,\n      gradients = _useSelect$gradients === void 0 ? [] : _useSelect$gradients,\n      disableCustomGradients = _useSelect.disableCustomGradients;\n\n  if (Object(external_this_lodash_[\"isEmpty\"])(gradients) && disableCustomGradients) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], {\n    className: classnames_default()('block-editor-gradient-picker-control', className)\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"].VisualLabel, null, label), Object(external_this_wp_element_[\"createElement\"])(gradient_picker, Object(esm_extends[\"a\" /* default */])({\n    value: value,\n    onChange: onChange,\n    className: \"block-editor-gradient-picker-control__gradient-picker-presets\",\n    gradients: gradients,\n    disableCustomGradients: disableCustomGradients\n  }, props)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/gradient-picker/panel.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction GradientPanel(props) {\n  var gradients = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings().gradients;\n  }, []);\n\n  if (Object(external_this_lodash_[\"isEmpty\"])(gradients)) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Gradient')\n  }, Object(external_this_wp_element_[\"createElement\"])(GradientPickerControl, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/image-size-control/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar IMAGE_SIZE_PRESETS = [25, 50, 75, 100];\nfunction ImageSizeControl(_ref) {\n  var _ref2, _ref3;\n\n  var imageWidth = _ref.imageWidth,\n      imageHeight = _ref.imageHeight,\n      _ref$imageSizeOptions = _ref.imageSizeOptions,\n      imageSizeOptions = _ref$imageSizeOptions === void 0 ? [] : _ref$imageSizeOptions,\n      _ref$isResizable = _ref.isResizable,\n      isResizable = _ref$isResizable === void 0 ? true : _ref$isResizable,\n      slug = _ref.slug,\n      width = _ref.width,\n      height = _ref.height,\n      _onChange = _ref.onChange,\n      _ref$onChangeImage = _ref.onChangeImage,\n      onChangeImage = _ref$onChangeImage === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChangeImage;\n\n  function updateDimensions(nextWidth, nextHeight) {\n    return function () {\n      _onChange({\n        width: nextWidth,\n        height: nextHeight\n      });\n    };\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !Object(external_this_lodash_[\"isEmpty\"])(imageSizeOptions) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Image size'),\n    value: slug,\n    options: imageSizeOptions,\n    onChange: onChangeImage\n  }), isResizable && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-image-size-control\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"block-editor-image-size-control__row\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Image dimensions')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-image-size-control__row\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    type: \"number\",\n    className: \"block-editor-image-size-control__width\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Width'),\n    value: (_ref2 = width !== null && width !== void 0 ? width : imageWidth) !== null && _ref2 !== void 0 ? _ref2 : '',\n    min: 1,\n    onChange: function onChange(value) {\n      return _onChange({\n        width: parseInt(value, 10)\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    type: \"number\",\n    className: \"block-editor-image-size-control__height\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Height'),\n    value: (_ref3 = height !== null && height !== void 0 ? height : imageHeight) !== null && _ref3 !== void 0 ? _ref3 : '',\n    min: 1,\n    onChange: function onChange(value) {\n      return _onChange({\n        height: parseInt(value, 10)\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-image-size-control__row\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ButtonGroup\"], {\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Image size presets')\n  }, IMAGE_SIZE_PRESETS.map(function (scale) {\n    var scaledWidth = Math.round(imageWidth * (scale / 100));\n    var scaledHeight = Math.round(imageHeight * (scale / 100));\n    var isCurrent = width === scaledWidth && height === scaledHeight;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      key: scale,\n      isSmall: true,\n      isPrimary: isCurrent,\n      isPressed: isCurrent,\n      onClick: updateDimensions(scaledWidth, scaledHeight)\n    }, scale, \"%\");\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSmall: true,\n    onClick: updateDimensions()\n  }, Object(external_this_wp_i18n_[\"__\"])('Reset')))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/with-client-id.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar withClientId = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return function (props) {\n    var _useBlockEditContext = useBlockEditContext(),\n        clientId = _useBlockEditContext.clientId;\n\n    return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n      clientId: clientId\n    }));\n  };\n}, 'withClientId');\n/* harmony default export */ var with_client_id = (withClientId);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/button-block-appender.js\n\n\n/**\n * Internal dependencies\n */\n\n\nvar inner_blocks_button_block_appender_ButtonBlockAppender = function ButtonBlockAppender(_ref) {\n  var clientId = _ref.clientId,\n      showSeparator = _ref.showSeparator,\n      isFloating = _ref.isFloating,\n      onAddBlock = _ref.onAddBlock;\n  return Object(external_this_wp_element_[\"createElement\"])(button_block_appender, {\n    rootClientId: clientId,\n    showSeparator: showSeparator,\n    isFloating: isFloating,\n    onAddBlock: onAddBlock\n  });\n};\n/* harmony default export */ var inner_blocks_button_block_appender = (with_client_id(inner_blocks_button_block_appender_ButtonBlockAppender));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/default-block-appender.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar inner_blocks_default_block_appender_DefaultBlockAppender = function DefaultBlockAppender(_ref) {\n  var clientId = _ref.clientId,\n      lastBlockClientId = _ref.lastBlockClientId;\n  return Object(external_this_wp_element_[\"createElement\"])(default_block_appender, {\n    rootClientId: clientId,\n    lastBlockClientId: lastBlockClientId\n  });\n};\n/* harmony default export */ var inner_blocks_default_block_appender = (Object(external_this_wp_compose_[\"compose\"])([with_client_id, Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var clientId = _ref2.clientId;\n\n  var _select = select('core/block-editor'),\n      getBlockOrder = _select.getBlockOrder;\n\n  var blockClientIds = getBlockOrder(clientId);\n  return {\n    lastBlockClientId: Object(external_this_lodash_[\"last\"])(blockClientIds)\n  };\n})])(inner_blocks_default_block_appender_DefaultBlockAppender));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-nested-settings-update.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string}   clientId        The client ID of the block to update.\n * @param {string[]} allowedBlocks   An array of block names which are permitted\n *                                   in inner blocks.\n * @param {string}   [templateLock]  The template lock specified for the inner\n *                                   blocks component. (e.g. \"all\")\n * @param {boolean}  captureToolbars Whether or children toolbars should be shown\n *                                   in the inner blocks component rather than on\n *                                   the child block.\n * @param {string}   orientation     The direction in which the block\n *                                   should face.\n */\n\nfunction useNestedSettingsUpdate(clientId, allowedBlocks, templateLock, captureToolbars, orientation) {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlockListSettings = _useDispatch.updateBlockListSettings;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var rootClientId = select('core/block-editor').getBlockRootClientId(clientId);\n    return {\n      blockListSettings: select('core/block-editor').getBlockListSettings(clientId),\n      parentLock: select('core/block-editor').getTemplateLock(rootClientId)\n    };\n  }, [clientId]),\n      blockListSettings = _useSelect.blockListSettings,\n      parentLock = _useSelect.parentLock;\n\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    var newSettings = {\n      allowedBlocks: allowedBlocks,\n      templateLock: templateLock === undefined ? parentLock : templateLock\n    }; // These values are not defined for RN, so only include them if they\n    // are defined.\n\n    if (captureToolbars !== undefined) {\n      newSettings.__experimentalCaptureToolbars = captureToolbars;\n    }\n\n    if (orientation !== undefined) {\n      newSettings.orientation = orientation;\n    }\n\n    if (!external_this_wp_isShallowEqual_default()(blockListSettings, newSettings)) {\n      updateBlockListSettings(clientId, newSettings);\n    }\n  }, [clientId, blockListSettings, allowedBlocks, templateLock, parentLock, captureToolbars, orientation, updateBlockListSettings]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/use-inner-block-template-sync.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * This hook makes sure that a block's inner blocks stay in sync with the given\n * block \"template\". The template is a block hierarchy to which inner blocks must\n * conform. If the blocks get \"out of sync\" with the template and the template\n * is meant to be locked (e.g. templateLock = \"all\"), then we replace the inner\n * blocks with the correct value after synchronizing it with the template.\n *\n * @param {string} clientId     The block client ID.\n * @param {Object} template     The template to match.\n * @param {string} templateLock The template lock state for the inner blocks. For\n *                              example, if the template lock is set to \"all\",\n *                              then the inner blocks will stay in sync with the\n *                              template. If not defined or set to false, then\n *                              the inner blocks will not be synchronized with\n *                              the given template.\n * @param {boolean} templateInsertUpdatesSelection Whether or not to update the\n *                              block-editor selection state when inner blocks\n *                              are replaced after template synchronization.\n */\n\nfunction useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection) {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      replaceInnerBlocks = _useDispatch.replaceInnerBlocks;\n\n  var innerBlocks = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getBlocks(clientId);\n  }, [clientId]); // Maintain a reference to the previous value so we can do a deep equality check.\n\n  var existingTemplate = Object(external_this_wp_element_[\"useRef\"])(null);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    // Only synchronize innerBlocks with template if innerBlocks are empty or\n    // a locking all exists directly on the block.\n    if (innerBlocks.length === 0 || templateLock === 'all') {\n      var hasTemplateChanged = !Object(external_this_lodash_[\"isEqual\"])(template, existingTemplate.current);\n\n      if (hasTemplateChanged) {\n        existingTemplate.current = template;\n        var nextBlocks = Object(external_this_wp_blocks_[\"synchronizeBlocksWithTemplate\"])(innerBlocks, template);\n\n        if (!Object(external_this_lodash_[\"isEqual\"])(nextBlocks, innerBlocks)) {\n          replaceInnerBlocks(clientId, nextBlocks, innerBlocks.length === 0 && templateInsertUpdatesSelection && nextBlocks.length !== 0);\n        }\n      }\n    }\n  }, [innerBlocks, templateLock, clientId]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/get-block-context.js\n/**\n * External dependencies\n */\n\n/**\n * Block context cache, implemented as a WeakMap mapping block types to a\n * WeakMap mapping attributes object to context value.\n *\n * @type {WeakMap<string,WeakMap<string,*>>}\n */\n\nvar BLOCK_CONTEXT_CACHE = new WeakMap();\n/**\n * Returns a cached context object value for a given set of attributes for the\n * block type.\n *\n * @param {Record<string,*>} attributes Block attributes object.\n * @param {WPBlockType}      blockType  Block type settings.\n *\n * @return {Record<string,*>} Context value.\n */\n\nfunction getBlockContext(attributes, blockType) {\n  if (!BLOCK_CONTEXT_CACHE.has(blockType)) {\n    BLOCK_CONTEXT_CACHE.set(blockType, new WeakMap());\n  }\n\n  var blockTypeCache = BLOCK_CONTEXT_CACHE.get(blockType);\n\n  if (!blockTypeCache.has(attributes)) {\n    var context = Object(external_this_lodash_[\"mapValues\"])(blockType.providesContext, function (attributeName) {\n      return attributes[attributeName];\n    });\n    blockTypeCache.set(attributes, context);\n  }\n\n  return blockTypeCache.get(attributes);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inner-blocks/index.js\n\n\n\n\nfunction inner_blocks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction inner_blocks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { inner_blocks_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { inner_blocks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * InnerBlocks is a component which allows a single block to have multiple blocks\n * as children. The UncontrolledInnerBlocks component is used whenever the inner\n * blocks are not controlled by another entity. In other words, it is normally\n * used for inner blocks in the post editor\n *\n * @param {Object} props The component props.\n */\n\nfunction UncontrolledInnerBlocks(props) {\n  var clientId = props.clientId,\n      allowedBlocks = props.allowedBlocks,\n      template = props.template,\n      templateLock = props.templateLock,\n      forwardedRef = props.forwardedRef,\n      templateInsertUpdatesSelection = props.templateInsertUpdatesSelection,\n      captureToolbars = props.__experimentalCaptureToolbars,\n      orientation = props.orientation;\n  var isSmallScreen = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium', '<');\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlock = _select.getBlock,\n        isBlockSelected = _select.isBlockSelected,\n        hasSelectedInnerBlock = _select.hasSelectedInnerBlock,\n        isNavigationMode = _select.isNavigationMode;\n\n    var theBlock = getBlock(clientId);\n    return {\n      block: theBlock,\n      hasOverlay: theBlock.name !== 'core/template' && !isBlockSelected(clientId) && !hasSelectedInnerBlock(clientId, true),\n      enableClickThrough: isNavigationMode() || isSmallScreen\n    };\n  }),\n      hasOverlay = _useSelect.hasOverlay,\n      block = _useSelect.block,\n      enableClickThrough = _useSelect.enableClickThrough;\n\n  useNestedSettingsUpdate(clientId, allowedBlocks, templateLock, captureToolbars, orientation);\n  useInnerBlockTemplateSync(clientId, template, templateLock, templateInsertUpdatesSelection);\n  var classes = classnames_default()({\n    'has-overlay': enableClickThrough && hasOverlay,\n    'is-capturing-toolbar': captureToolbars\n  });\n  var blockList = Object(external_this_wp_element_[\"createElement\"])(block_list, Object(esm_extends[\"a\" /* default */])({}, props, {\n    ref: forwardedRef,\n    rootClientId: clientId,\n    className: classes\n  })); // Wrap context provider if (and only if) block has context to provide.\n\n  var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(block.name);\n\n  if (blockType && blockType.providesContext) {\n    var context = getBlockContext(block.attributes, blockType);\n    blockList = Object(external_this_wp_element_[\"createElement\"])(BlockContextProvider, {\n      value: context\n    }, blockList);\n  }\n\n  if (props.__experimentalTagName) {\n    return blockList;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-inner-blocks\"\n  }, blockList);\n}\n/**\n * The controlled inner blocks component wraps the uncontrolled inner blocks\n * component with the blockSync hook. This keeps the innerBlocks of the block in\n * the block-editor store in sync with the blocks of the controlling entity. An\n * example of an inner block controller is a template part block, which provides\n * its own blocks from the template part entity data source.\n *\n * @param {Object} props The component props.\n */\n\n\nfunction ControlledInnerBlocks(props) {\n  useBlockSync(props);\n  return Object(external_this_wp_element_[\"createElement\"])(UncontrolledInnerBlocks, props);\n}\n/**\n * Wrapped InnerBlocks component which detects whether to use the controlled or\n * uncontrolled variations of the InnerBlocks component. This is the component\n * which should be used throughout the application.\n */\n\n\nvar ForwardedInnerBlocks = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  var _useBlockEditContext = useBlockEditContext(),\n      clientId = _useBlockEditContext.clientId;\n\n  var fallbackRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var allProps = inner_blocks_objectSpread({\n    clientId: clientId,\n    forwardedRef: ref || fallbackRef\n  }, props); // Detects if the InnerBlocks should be controlled by an incoming value.\n\n\n  if (props.value && props.onChange) {\n    return Object(external_this_wp_element_[\"createElement\"])(ControlledInnerBlocks, allProps);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(UncontrolledInnerBlocks, allProps);\n}); // Expose default appender placeholders as components.\n\nForwardedInnerBlocks.DefaultBlockAppender = inner_blocks_default_block_appender;\nForwardedInnerBlocks.ButtonBlockAppender = inner_blocks_button_block_appender;\nForwardedInnerBlocks.Content = Object(external_this_wp_blocks_[\"withBlockContentContext\"])(function (_ref) {\n  var BlockContent = _ref.BlockContent;\n  return Object(external_this_wp_element_[\"createElement\"])(BlockContent, null);\n});\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/inner-blocks/README.md\n */\n\n/* harmony default export */ var inner_blocks = (ForwardedInnerBlocks);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings-drawer.js\n\n\n\nfunction settings_drawer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction settings_drawer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { settings_drawer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { settings_drawer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar defaultSettings = [{\n  id: 'opensInNewTab',\n  title: Object(external_this_wp_i18n_[\"__\"])('Open in new tab')\n}];\n\nvar settings_drawer_LinkControlSettingsDrawer = function LinkControlSettingsDrawer(_ref) {\n  var value = _ref.value,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$settings = _ref.settings,\n      settings = _ref$settings === void 0 ? defaultSettings : _ref$settings;\n\n  if (!settings || !settings.length) {\n    return null;\n  }\n\n  var handleSettingChange = function handleSettingChange(setting) {\n    return function (newValue) {\n      onChange(settings_drawer_objectSpread({}, value, Object(defineProperty[\"a\" /* default */])({}, setting.id, newValue)));\n    };\n  };\n\n  var theSettings = settings.map(function (setting) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n      className: \"block-editor-link-control__setting\",\n      key: setting.id,\n      label: setting.title,\n      onChange: handleSettingChange(setting),\n      checked: value ? !!value[setting.id] : false\n    });\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", {\n    className: \"block-editor-link-control__settings\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n    as: \"legend\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Currently selected link settings')), theSettings);\n};\n\n/* harmony default export */ var settings_drawer = (settings_drawer_LinkControlSettingsDrawer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/globe.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar globe = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zM1.11 9.68h2.51c.04.91.167 1.814.38 2.7H1.84c-.403-.85-.65-1.764-.73-2.7zm8.57-5.4V1.19c.964.366 1.756 1.08 2.22 2 .205.347.386.708.54 1.08l-2.76.01zm3.22 1.35c.232.883.37 1.788.41 2.7H9.68v-2.7h3.22zM8.32 1.19v3.09H5.56c.154-.372.335-.733.54-1.08.462-.924 1.255-1.64 2.22-2.01zm0 4.44v2.7H4.7c.04-.912.178-1.817.41-2.7h3.21zm-4.7 2.69H1.11c.08-.936.327-1.85.73-2.7H4c-.213.886-.34 1.79-.38 2.7zM4.7 9.68h3.62v2.7H5.11c-.232-.883-.37-1.788-.41-2.7zm3.63 4v3.09c-.964-.366-1.756-1.08-2.22-2-.205-.347-.386-.708-.54-1.08l2.76-.01zm1.35 3.09v-3.04h2.76c-.154.372-.335.733-.54 1.08-.464.92-1.256 1.634-2.22 2v-.04zm0-4.44v-2.7h3.62c-.04.912-.178 1.817-.41 2.7H9.68zm4.71-2.7h2.51c-.08.936-.327 1.85-.73 2.7H14c.21-.87.337-1.757.38-2.65l.01-.05zm0-1.35c-.046-.894-.176-1.78-.39-2.65h2.16c.403.85.65 1.764.73 2.7l-2.5-.05zm1-4H13.6c-.324-.91-.793-1.76-1.39-2.52 1.244.56 2.325 1.426 3.14 2.52h.04zm-9.6-2.52c-.597.76-1.066 1.61-1.39 2.52H2.65c.815-1.094 1.896-1.96 3.14-2.52zm-3.15 12H4.4c.324.91.793 1.76 1.39 2.52-1.248-.567-2.33-1.445-3.14-2.55l-.01.03zm9.56 2.52c.597-.76 1.066-1.61 1.39-2.52h1.76c-.82 1.08-1.9 1.933-3.14 2.48l-.01.04z\"\n}));\n/* harmony default export */ var library_globe = (globe);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-item.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar search_item_LinkControlSearchItem = function LinkControlSearchItem(_ref) {\n  var itemProps = _ref.itemProps,\n      suggestion = _ref.suggestion,\n      _ref$isSelected = _ref.isSelected,\n      isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,\n      onClick = _ref.onClick,\n      _ref$isURL = _ref.isURL,\n      isURL = _ref$isURL === void 0 ? false : _ref$isURL,\n      _ref$searchTerm = _ref.searchTerm,\n      searchTerm = _ref$searchTerm === void 0 ? '' : _ref$searchTerm;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, itemProps, {\n    onClick: onClick,\n    className: classnames_default()('block-editor-link-control__search-item', {\n      'is-selected': isSelected,\n      'is-url': isURL,\n      'is-entity': !isURL\n    })\n  }), isURL && Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    className: \"block-editor-link-control__search-item-icon\",\n    icon: library_globe\n  }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-title\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextHighlight\"], {\n    text: suggestion.title,\n    highlight: searchTerm\n  })), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    \"aria-hidden\": !isURL,\n    className: \"block-editor-link-control__search-item-info\"\n  }, !isURL && (Object(external_this_wp_url_[\"filterURLForDisplay\"])(Object(external_this_wp_url_[\"safeDecodeURI\"])(suggestion.url)) || ''), isURL && Object(external_this_wp_i18n_[\"__\"])('Press ENTER to add this link'))), suggestion.type && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-type\"\n  }, suggestion.type));\n};\n/* harmony default export */ var search_item = (search_item_LinkControlSearchItem);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js\nvar keyboard_return = __webpack_require__(197);\n\n// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js\nvar dom_scroll_into_view_lib = __webpack_require__(117);\nvar dom_scroll_into_view_lib_default = /*#__PURE__*/__webpack_require__.n(dom_scroll_into_view_lib);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/index.js\n\n\n\n\n\n\n\n\n\nfunction url_input_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (url_input_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction url_input_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n // Since URLInput is rendered in the context of other inputs, but should be\n// considered a separate modal node, prevent keyboard events from propagating\n// as being considered from the input.\n\nvar stopEventPropagation = function stopEventPropagation(event) {\n  return event.stopPropagation();\n};\n\nvar url_input_URLInput = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(URLInput, _Component);\n\n  var _super = url_input_createSuper(URLInput);\n\n  function URLInput(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, URLInput);\n\n    _this = _super.call(this, props);\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.selectLink = _this.selectLink.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleOnClick = _this.handleOnClick.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindSuggestionNode = _this.bindSuggestionNode.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.autocompleteRef = props.autocompleteRef || Object(external_this_wp_element_[\"createRef\"])();\n    _this.inputRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.updateSuggestions = Object(external_this_lodash_[\"throttle\"])(_this.updateSuggestions.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), 200);\n    _this.suggestionNodes = [];\n    _this.isUpdatingSuggestions = false;\n    _this.state = {\n      suggestions: [],\n      showSuggestions: false,\n      selectedSuggestion: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(URLInput, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this2 = this;\n\n      var _this$state = this.state,\n          showSuggestions = _this$state.showSuggestions,\n          selectedSuggestion = _this$state.selectedSuggestion;\n      var value = this.props.value; // only have to worry about scrolling selected suggestion into view\n      // when already expanded\n\n      if (showSuggestions && selectedSuggestion !== null && !this.scrollingIntoView) {\n        this.scrollingIntoView = true;\n        dom_scroll_into_view_lib_default()(this.suggestionNodes[selectedSuggestion], this.autocompleteRef.current, {\n          onlyScrollIfNeeded: true\n        });\n        this.props.setTimeout(function () {\n          _this2.scrollingIntoView = false;\n        }, 100);\n      } // Only attempt an update on suggestions if the input value has actually changed.\n\n\n      if (prevProps.value !== value && this.shouldShowInitialSuggestions()) {\n        this.updateSuggestions();\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.shouldShowInitialSuggestions()) {\n        this.updateSuggestions();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      delete this.suggestionsRequest;\n    }\n  }, {\n    key: \"bindSuggestionNode\",\n    value: function bindSuggestionNode(index) {\n      var _this3 = this;\n\n      return function (ref) {\n        _this3.suggestionNodes[index] = ref;\n      };\n    }\n  }, {\n    key: \"shouldShowInitialSuggestions\",\n    value: function shouldShowInitialSuggestions() {\n      var suggestions = this.state.suggestions;\n\n      var _this$props = this.props,\n          _this$props$__experim = _this$props.__experimentalShowInitialSuggestions,\n          __experimentalShowInitialSuggestions = _this$props$__experim === void 0 ? false : _this$props$__experim,\n          value = _this$props.value;\n\n      return !this.isUpdatingSuggestions && __experimentalShowInitialSuggestions && !(value && value.length) && !(suggestions && suggestions.length);\n    }\n  }, {\n    key: \"updateSuggestions\",\n    value: function updateSuggestions() {\n      var _this4 = this;\n\n      var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      var _this$props2 = this.props,\n          fetchLinkSuggestions = _this$props2.__experimentalFetchLinkSuggestions,\n          handleURLSuggestions = _this$props2.__experimentalHandleURLSuggestions;\n\n      if (!fetchLinkSuggestions) {\n        return;\n      }\n\n      var isInitialSuggestions = !(value && value.length); // Allow a suggestions request if:\n      // - there are at least 2 characters in the search input (except manual searches where\n      //   search input length is not required to trigger a fetch)\n      // - this is a direct entry (eg: a URL)\n\n      if (!isInitialSuggestions && (value.length < 2 || !handleURLSuggestions && Object(external_this_wp_url_[\"isURL\"])(value))) {\n        this.setState({\n          showSuggestions: false,\n          selectedSuggestion: null,\n          loading: false\n        });\n        return;\n      }\n\n      this.isUpdatingSuggestions = true;\n      this.setState({\n        selectedSuggestion: null,\n        loading: true\n      });\n      var request = fetchLinkSuggestions(value, {\n        isInitialSuggestions: isInitialSuggestions\n      });\n      request.then(function (suggestions) {\n        // A fetch Promise doesn't have an abort option. It's mimicked by\n        // comparing the request reference in on the instance, which is\n        // reset or deleted on subsequent requests or unmounting.\n        if (_this4.suggestionsRequest !== request) {\n          return;\n        }\n\n        _this4.setState({\n          suggestions: suggestions,\n          loading: false,\n          showSuggestions: !!suggestions.length\n        });\n\n        if (!!suggestions.length) {\n          _this4.props.debouncedSpeak(Object(external_this_wp_i18n_[\"sprintf\"])(\n          /* translators: %s: number of results. */\n          Object(external_this_wp_i18n_[\"_n\"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', suggestions.length), suggestions.length), 'assertive');\n        } else {\n          _this4.props.debouncedSpeak(Object(external_this_wp_i18n_[\"__\"])('No results.'), 'assertive');\n        }\n\n        _this4.isUpdatingSuggestions = false;\n      }).catch(function () {\n        if (_this4.suggestionsRequest === request) {\n          _this4.setState({\n            loading: false\n          });\n\n          _this4.isUpdatingSuggestions = false;\n        }\n      }); // Note that this assignment is handled *before* the async search request\n      // as a Promise always resolves on the next tick of the event loop.\n\n      this.suggestionsRequest = request;\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(event) {\n      var inputValue = event.target.value;\n      this.props.onChange(inputValue);\n\n      if (!this.props.disableSuggestions) {\n        this.updateSuggestions(inputValue.trim());\n      }\n    }\n  }, {\n    key: \"onFocus\",\n    value: function onFocus() {\n      var suggestions = this.state.suggestions;\n      var _this$props3 = this.props,\n          disableSuggestions = _this$props3.disableSuggestions,\n          value = _this$props3.value; // When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value\n      // Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)\n\n      if (value && !disableSuggestions && !this.isUpdatingSuggestions && !(suggestions && suggestions.length)) {\n        // Ensure the suggestions are updated with the current input value\n        this.updateSuggestions(value.trim());\n      }\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      var _this$state2 = this.state,\n          showSuggestions = _this$state2.showSuggestions,\n          selectedSuggestion = _this$state2.selectedSuggestion,\n          suggestions = _this$state2.suggestions,\n          loading = _this$state2.loading; // If the suggestions are not shown or loading, we shouldn't handle the arrow keys\n      // We shouldn't preventDefault to allow block arrow keys navigation\n\n      if (!showSuggestions || !suggestions.length || loading) {\n        // In the Windows version of Firefox the up and down arrows don't move the caret\n        // within an input field like they do for Mac Firefox/Chrome/Safari. This causes\n        // a form of focus trapping that is disruptive to the user experience. This disruption\n        // only happens if the caret is not in the first or last position in the text input.\n        // See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747\n        switch (event.keyCode) {\n          // When UP is pressed, if the caret is at the start of the text, move it to the 0\n          // position.\n          case external_this_wp_keycodes_[\"UP\"]:\n            {\n              if (0 !== event.target.selectionStart) {\n                event.stopPropagation();\n                event.preventDefault(); // Set the input caret to position 0\n\n                event.target.setSelectionRange(0, 0);\n              }\n\n              break;\n            }\n          // When DOWN is pressed, if the caret is not at the end of the text, move it to the\n          // last position.\n\n          case external_this_wp_keycodes_[\"DOWN\"]:\n            {\n              if (this.props.value.length !== event.target.selectionStart) {\n                event.stopPropagation();\n                event.preventDefault(); // Set the input caret to the last position\n\n                event.target.setSelectionRange(this.props.value.length, this.props.value.length);\n              }\n\n              break;\n            }\n        }\n\n        return;\n      }\n\n      var suggestion = this.state.suggestions[this.state.selectedSuggestion];\n\n      switch (event.keyCode) {\n        case external_this_wp_keycodes_[\"UP\"]:\n          {\n            event.stopPropagation();\n            event.preventDefault();\n            var previousIndex = !selectedSuggestion ? suggestions.length - 1 : selectedSuggestion - 1;\n            this.setState({\n              selectedSuggestion: previousIndex\n            });\n            break;\n          }\n\n        case external_this_wp_keycodes_[\"DOWN\"]:\n          {\n            event.stopPropagation();\n            event.preventDefault();\n            var nextIndex = selectedSuggestion === null || selectedSuggestion === suggestions.length - 1 ? 0 : selectedSuggestion + 1;\n            this.setState({\n              selectedSuggestion: nextIndex\n            });\n            break;\n          }\n\n        case external_this_wp_keycodes_[\"TAB\"]:\n          {\n            if (this.state.selectedSuggestion !== null) {\n              this.selectLink(suggestion); // Announce a link has been selected when tabbing away from the input field.\n\n              this.props.speak(Object(external_this_wp_i18n_[\"__\"])('Link selected.'));\n            }\n\n            break;\n          }\n\n        case external_this_wp_keycodes_[\"ENTER\"]:\n          {\n            if (this.state.selectedSuggestion !== null) {\n              event.stopPropagation();\n              this.selectLink(suggestion);\n            }\n\n            break;\n          }\n      }\n    }\n  }, {\n    key: \"selectLink\",\n    value: function selectLink(suggestion) {\n      this.props.onChange(suggestion.url, suggestion);\n      this.setState({\n        selectedSuggestion: null,\n        showSuggestions: false\n      });\n    }\n  }, {\n    key: \"handleOnClick\",\n    value: function handleOnClick(suggestion) {\n      this.selectLink(suggestion); // Move focus to the input field when a link suggestion is clicked.\n\n      this.inputRef.current.focus();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this5 = this;\n\n      var _this$props4 = this.props,\n          label = _this$props4.label,\n          instanceId = _this$props4.instanceId,\n          className = _this$props4.className,\n          isFullWidth = _this$props4.isFullWidth,\n          renderSuggestions = _this$props4.__experimentalRenderSuggestions,\n          _this$props4$placehol = _this$props4.placeholder,\n          placeholder = _this$props4$placehol === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Paste URL or type to search') : _this$props4$placehol,\n          _this$props4$value = _this$props4.value,\n          value = _this$props4$value === void 0 ? '' : _this$props4$value,\n          _this$props4$autoFocu = _this$props4.autoFocus,\n          autoFocus = _this$props4$autoFocu === void 0 ? true : _this$props4$autoFocu,\n          _this$props4$__experi = _this$props4.__experimentalShowInitialSuggestions,\n          __experimentalShowInitialSuggestions = _this$props4$__experi === void 0 ? false : _this$props4$__experi;\n\n      var _this$state3 = this.state,\n          showSuggestions = _this$state3.showSuggestions,\n          suggestions = _this$state3.suggestions,\n          selectedSuggestion = _this$state3.selectedSuggestion,\n          loading = _this$state3.loading;\n      var id = \"url-input-control-\".concat(instanceId);\n      var suggestionsListboxId = \"block-editor-url-input-suggestions-\".concat(instanceId);\n      var suggestionOptionIdPrefix = \"block-editor-url-input-suggestion-\".concat(instanceId);\n      var suggestionsListProps = {\n        id: suggestionsListboxId,\n        ref: this.autocompleteRef,\n        role: 'listbox'\n      };\n\n      var buildSuggestionItemProps = function buildSuggestionItemProps(suggestion, index) {\n        return {\n          role: 'option',\n          tabIndex: '-1',\n          id: \"\".concat(suggestionOptionIdPrefix, \"-\").concat(index),\n          ref: _this5.bindSuggestionNode(index),\n          'aria-selected': index === selectedSuggestion\n        };\n      };\n      /* eslint-disable jsx-a11y/no-autofocus */\n\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], {\n        label: label,\n        id: id,\n        className: classnames_default()('block-editor-url-input', className, {\n          'is-full-width': isFullWidth\n        })\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        className: \"block-editor-url-input__input\",\n        autoFocus: autoFocus,\n        type: \"text\",\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('URL'),\n        required: true,\n        value: value,\n        onChange: this.onChange,\n        onFocus: this.onFocus,\n        onInput: stopEventPropagation,\n        placeholder: placeholder,\n        onKeyDown: this.onKeyDown,\n        role: \"combobox\",\n        \"aria-expanded\": showSuggestions,\n        \"aria-autocomplete\": \"list\",\n        \"aria-owns\": suggestionsListboxId,\n        \"aria-activedescendant\": selectedSuggestion !== null ? \"\".concat(suggestionOptionIdPrefix, \"-\").concat(selectedSuggestion) : undefined,\n        ref: this.inputRef\n      }), loading && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null), Object(external_this_lodash_[\"isFunction\"])(renderSuggestions) && showSuggestions && !!suggestions.length && renderSuggestions({\n        suggestions: suggestions,\n        selectedSuggestion: selectedSuggestion,\n        suggestionsListProps: suggestionsListProps,\n        buildSuggestionItemProps: buildSuggestionItemProps,\n        isLoading: loading,\n        handleSuggestionClick: this.handleOnClick,\n        isInitialSuggestions: __experimentalShowInitialSuggestions && !(value && value.length)\n      }), !Object(external_this_lodash_[\"isFunction\"])(renderSuggestions) && showSuggestions && !!suggestions.length && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n        position: \"bottom\",\n        noArrow: true,\n        focusOnMount: false\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({}, suggestionsListProps, {\n        className: classnames_default()('block-editor-url-input__suggestions', \"\".concat(className, \"__suggestions\"))\n      }), suggestions.map(function (suggestion, index) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, buildSuggestionItemProps(suggestion, index), {\n          key: suggestion.id,\n          className: classnames_default()('block-editor-url-input__suggestion', {\n            'is-selected': index === selectedSuggestion\n          }),\n          onClick: function onClick() {\n            return _this5.handleOnClick(suggestion);\n          }\n        }), suggestion.title);\n      }))));\n      /* eslint-enable jsx-a11y/no-autofocus */\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(_ref, _ref2) {\n      var value = _ref.value,\n          disableSuggestions = _ref.disableSuggestions,\n          _ref$__experimentalSh = _ref.__experimentalShowInitialSuggestions,\n          __experimentalShowInitialSuggestions = _ref$__experimentalSh === void 0 ? false : _ref$__experimentalSh;\n\n      var showSuggestions = _ref2.showSuggestions;\n      var shouldShowSuggestions = showSuggestions;\n      var hasValue = value && value.length;\n\n      if (!__experimentalShowInitialSuggestions && !hasValue) {\n        shouldShowSuggestions = false;\n      }\n\n      if (disableSuggestions === true) {\n        shouldShowSuggestions = false;\n      }\n\n      return {\n        showSuggestions: shouldShowSuggestions\n      };\n    }\n  }]);\n\n  return URLInput;\n}(external_this_wp_element_[\"Component\"]);\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/url-input/README.md\n */\n\n\n/* harmony default export */ var url_input = (Object(external_this_wp_compose_[\"compose\"])(external_this_wp_compose_[\"withSafeTimeout\"], external_this_wp_components_[\"withSpokenMessages\"], external_this_wp_compose_[\"withInstanceId\"], Object(external_this_wp_data_[\"withSelect\"])(function (select, props) {\n  // If a link suggestions handler is already provided then\n  // bail\n  if (Object(external_this_lodash_[\"isFunction\"])(props.__experimentalFetchLinkSuggestions)) {\n    return;\n  }\n\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  return {\n    __experimentalFetchLinkSuggestions: getSettings().__experimentalFetchLinkSuggestions\n  };\n}))(url_input_URLInput));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-input.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar search_input_LinkControlSearchInput = function LinkControlSearchInput(_ref) {\n  var placeholder = _ref.placeholder,\n      value = _ref.value,\n      onChange = _ref.onChange,\n      onSelect = _ref.onSelect,\n      renderSuggestions = _ref.renderSuggestions,\n      fetchSuggestions = _ref.fetchSuggestions,\n      showInitialSuggestions = _ref.showInitialSuggestions,\n      errorMessage = _ref.errorMessage;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      selectedSuggestion = _useState2[0],\n      setSelectedSuggestion = _useState2[1];\n  /**\n   * Handles the user moving between different suggestions. Does not handle\n   * choosing an individual item.\n   *\n   * @param {string} selection the url of the selected suggestion.\n   * @param {Object} suggestion the suggestion object.\n   */\n\n\n  var selectItemHandler = function selectItemHandler(selection, suggestion) {\n    onChange(selection);\n    setSelectedSuggestion(suggestion);\n  };\n\n  function selectSuggestionOrCurrentInputValue(event) {\n    // Avoid default forms behavior, since it's being handled custom here.\n    event.preventDefault(); // Interpret the selected value as either the selected suggestion, if\n    // exists, or otherwise the current input value as entered.\n\n    onSelect(selectedSuggestion || {\n      url: value\n    });\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n    onSubmit: selectSuggestionOrCurrentInputValue\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-link-control__search-input-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(url_input, {\n    className: \"block-editor-link-control__search-input\",\n    value: value,\n    onChange: selectItemHandler,\n    placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : Object(external_this_wp_i18n_[\"__\"])('Search or type url'),\n    __experimentalRenderSuggestions: renderSuggestions,\n    __experimentalFetchLinkSuggestions: fetchSuggestions,\n    __experimentalHandleURLSuggestions: true,\n    __experimentalShowInitialSuggestions: showInitialSuggestions\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-link-control__search-actions\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    type: \"submit\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Submit'),\n    icon: keyboard_return[\"a\" /* default */],\n    className: \"block-editor-link-control__search-submit\"\n  }))), errorMessage && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n    className: \"block-editor-link-control__search-error\",\n    status: \"error\",\n    isDismissible: false\n  }, errorMessage));\n};\n\n/* harmony default export */ var search_input = (search_input_LinkControlSearchInput);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/search-create-button.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar search_create_button_LinkControlSearchCreate = function LinkControlSearchCreate(_ref) {\n  var searchTerm = _ref.searchTerm,\n      onClick = _ref.onClick,\n      itemProps = _ref.itemProps,\n      isSelected = _ref.isSelected;\n\n  if (!searchTerm) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, itemProps, {\n    className: classnames_default()('block-editor-link-control__search-create block-editor-link-control__search-item', {\n      'is-selected': isSelected\n    }),\n    onClick: onClick\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Icon\"], {\n    className: \"block-editor-link-control__search-item-icon\",\n    icon: \"insert\"\n  }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-title\"\n  }, Object(external_this_wp_element_[\"createInterpolateElement\"])(Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %s: search term. */\n  Object(external_this_wp_i18n_[\"__\"])('New page: <mark>%s</mark>'), searchTerm), {\n    mark: Object(external_this_wp_element_[\"createElement\"])(\"mark\", null)\n  }))));\n};\n/* harmony default export */ var search_create_button = (search_create_button_LinkControlSearchCreate);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/index.js\n\n\n\n\n\n\nfunction link_control_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction link_control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { link_control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { link_control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar link_control_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('BlockEditorLinkControlViewer'),\n    ViewerSlot = link_control_createSlotFill.Slot,\n    ViewerFill = link_control_createSlotFill.Fill; // Used as a unique identifier for the \"Create\" option within search results.\n// Used to help distinguish the \"Create\" suggestion within the search results in\n// order to handle it as a unique case.\n\n\nvar CREATE_TYPE = '__CREATE__';\n/**\n * Creates a wrapper around a promise which allows it to be programmatically\n * cancelled.\n * See: https://reactjs.org/blog/2015/12/16/ismounted-antipattern.html\n *\n * @param {Promise} promise the Promise to make cancelable\n */\n\nvar makeCancelable = function makeCancelable(promise) {\n  var hasCanceled_ = false;\n  var wrappedPromise = new Promise(function (resolve, reject) {\n    promise.then(function (val) {\n      return hasCanceled_ ? reject({\n        isCanceled: true\n      }) : resolve(val);\n    }, function (error) {\n      return hasCanceled_ ? reject({\n        isCanceled: true\n      }) : reject(error);\n    });\n  });\n  return {\n    promise: wrappedPromise,\n    cancel: function cancel() {\n      hasCanceled_ = true;\n    }\n  };\n};\n/**\n * Default properties associated with a link control value.\n *\n * @typedef WPLinkControlDefaultValue\n *\n * @property {string}   url           Link URL.\n * @property {string=}  title         Link title.\n * @property {boolean=} opensInNewTab Whether link should open in a new browser\n *                                    tab. This value is only assigned if not\n *                                    providing a custom `settings` prop.\n */\n\n/* eslint-disable jsdoc/valid-types */\n\n/**\n * Custom settings values associated with a link.\n *\n * @typedef {{[setting:string]:any}} WPLinkControlSettingsValue\n */\n\n/* eslint-enable */\n\n/**\n * Custom settings values associated with a link.\n *\n * @typedef WPLinkControlSetting\n *\n * @property {string} id    Identifier to use as property for setting value.\n * @property {string} title Human-readable label to show in user interface.\n */\n\n/* eslint-disable jsdoc/valid-types */\n\n/**\n * Properties associated with a link control value, composed as a union of the\n * default properties and any custom settings values.\n *\n * @typedef {WPLinkControlDefaultValue&WPLinkControlSettingsValue} WPLinkControlValue\n */\n\n/* eslint-enable */\n\n/** @typedef {(nextValue:WPLinkControlValue)=>void} WPLinkControlOnChangeProp */\n\n/**\n * Properties associated with a search suggestion used within the LinkControl.\n *\n * @typedef WPLinkControlSuggestion\n *\n * @property {string} id    Identifier to use to uniquely identify the suggestion.\n * @property {string} type  Identifies the type of the suggestion (eg: `post`,\n *                          `page`, `url`...etc)\n * @property {string} title Human-readable label to show in user interface.\n * @property {string} url   A URL for the suggestion.\n */\n\n/** @typedef {(title:string)=>WPLinkControlSuggestion} WPLinkControlCreateSuggestionProp */\n\n/**\n * @typedef WPLinkControlProps\n *\n * @property {(WPLinkControlSetting[])=}            settings               An array of settings objects. Each object will used to\n *                                                                         render a `ToggleControl` for that setting.\n * @property {boolean=}                             forceIsEditingLink     If passed as either `true` or `false`, controls the\n *                                                                         internal editing state of the component to respective\n *                                                                         show or not show the URL input field.\n * @property {WPLinkControlValue=}                  value                  Current link value.\n * @property {WPLinkControlOnChangeProp=}           onChange               Value change handler, called with the updated value if\n *                                                                         the user selects a new link or updates settings.\n * @property {boolean=}                             noDirectEntry          Whether to disable direct entries or not.\n * @property {boolean=}                             showSuggestions        Whether to present suggestions when typing the URL.\n * @property {boolean=}                             showInitialSuggestions Whether to present initial suggestions immediately.\n * @property {WPLinkControlCreateSuggestionProp=}   createSuggestion       Handler to manage creation of link value from suggestion.\n */\n\n/**\n * Renders a link control. A link control is a controlled input which maintains\n * a value associated with a link (HTML anchor element) and relevant settings\n * for how that link is expected to behave.\n *\n * @param {WPLinkControlProps} props Component props.\n */\n\n\nfunction LinkControl(_ref) {\n  var searchInputPlaceholder = _ref.searchInputPlaceholder,\n      value = _ref.value,\n      settings = _ref.settings,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$noDirectEntry = _ref.noDirectEntry,\n      noDirectEntry = _ref$noDirectEntry === void 0 ? false : _ref$noDirectEntry,\n      _ref$showSuggestions = _ref.showSuggestions,\n      showSuggestions = _ref$showSuggestions === void 0 ? true : _ref$showSuggestions,\n      showInitialSuggestions = _ref.showInitialSuggestions,\n      forceIsEditingLink = _ref.forceIsEditingLink,\n      createSuggestion = _ref.createSuggestion;\n  var cancelableOnCreate = Object(external_this_wp_element_[\"useRef\"])();\n  var cancelableCreateSuggestion = Object(external_this_wp_element_[\"useRef\"])();\n  var wrapperNode = Object(external_this_wp_element_[\"useRef\"])();\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(LinkControl);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(value && value.url || ''),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      inputValue = _useState2[0],\n      setInputValue = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(forceIsEditingLink !== undefined ? forceIsEditingLink : !value || !value.url),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isEditingLink = _useState4[0],\n      setIsEditingLink = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      isResolvingLink = _useState6[0],\n      setIsResolvingLink = _useState6[1];\n\n  var _useState7 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState8 = Object(slicedToArray[\"a\" /* default */])(_useState7, 2),\n      errorMessage = _useState8[0],\n      setErrorMessage = _useState8[1];\n\n  var isEndingEditWithFocus = Object(external_this_wp_element_[\"useRef\"])(false);\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings;\n\n    return {\n      fetchSearchSuggestions: getSettings().__experimentalFetchLinkSuggestions\n    };\n  }, []),\n      fetchSearchSuggestions = _useSelect.fetchSearchSuggestions;\n\n  var displayURL = value && Object(external_this_wp_url_[\"filterURLForDisplay\"])(Object(external_this_wp_url_[\"safeDecodeURI\"])(value.url)) || '';\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (forceIsEditingLink !== undefined && forceIsEditingLink !== isEditingLink) {\n      setIsEditingLink(forceIsEditingLink);\n    }\n  }, [forceIsEditingLink]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // When `isEditingLink` is set to `false`, a focus loss could occur\n    // since the link input may be removed from the DOM. To avoid this,\n    // reinstate focus to a suitable target if focus has in-fact been lost.\n    // Note that the check is necessary because while typically unsetting\n    // edit mode would render the read-only mode's link element, it isn't\n    // guaranteed. The link input may continue to be shown if the next value\n    // is still unassigned after calling `onChange`.\n    var hadFocusLoss = isEndingEditWithFocus.current && wrapperNode.current && !wrapperNode.current.contains(document.activeElement);\n\n    if (hadFocusLoss) {\n      // Prefer to focus a natural focusable descendent of the wrapper,\n      // but settle for the wrapper if there are no other options.\n      var nextFocusTarget = external_this_wp_dom_[\"focus\"].focusable.find(wrapperNode.current)[0] || wrapperNode.current;\n      nextFocusTarget.focus();\n    }\n\n    isEndingEditWithFocus.current = false;\n  }, [isEditingLink]);\n  /**\n   * Handles cancelling any pending Promises that have been made cancelable.\n   */\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      // componentDidUnmount\n      if (cancelableOnCreate.current) {\n        cancelableOnCreate.current.cancel();\n      }\n\n      if (cancelableCreateSuggestion.current) {\n        cancelableCreateSuggestion.current.cancel();\n      }\n    };\n  }, []);\n  /**\n   * onChange LinkControlSearchInput event handler\n   *\n   * @param {string} val Current value returned by the search.\n   */\n\n  var onInputChange = function onInputChange() {\n    var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    setInputValue(val);\n  };\n\n  var handleDirectEntry = noDirectEntry ? function () {\n    return Promise.resolve([]);\n  } : function (val) {\n    var type = 'URL';\n    var protocol = Object(external_this_wp_url_[\"getProtocol\"])(val) || '';\n\n    if (protocol.includes('mailto')) {\n      type = 'mailto';\n    }\n\n    if (protocol.includes('tel')) {\n      type = 'tel';\n    }\n\n    if (Object(external_this_lodash_[\"startsWith\"])(val, '#')) {\n      type = 'internal';\n    }\n\n    return Promise.resolve([{\n      id: val,\n      title: val,\n      url: type === 'URL' ? Object(external_this_wp_url_[\"prependHTTP\"])(val) : val,\n      type: type\n    }]);\n  };\n\n  var handleEntitySearch = /*#__PURE__*/function () {\n    var _ref2 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(val, args) {\n      var results, couldBeURL;\n      return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return Promise.all([fetchSearchSuggestions(val, link_control_objectSpread({}, args.isInitialSuggestions ? {\n                perPage: 3\n              } : {})), handleDirectEntry(val)]);\n\n            case 2:\n              results = _context.sent;\n              couldBeURL = !val.includes(' '); // If it's potentially a URL search then concat on a URL search suggestion\n              // just for good measure. That way once the actual results run out we always\n              // have a URL option to fallback on.\n\n              results = couldBeURL && !args.isInitialSuggestions ? results[0].concat(results[1]) : results[0]; // If displaying initial suggestions just return plain results.\n\n              if (!args.isInitialSuggestions) {\n                _context.next = 7;\n                break;\n              }\n\n              return _context.abrupt(\"return\", results);\n\n            case 7:\n              return _context.abrupt(\"return\", isURLLike(val) ? results : results.concat({\n                // the `id` prop is intentionally ommitted here because it\n                // is never exposed as part of the component's public API.\n                // see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n                title: val,\n                // must match the existing `<input>`s text value\n                url: val,\n                // must match the existing `<input>`s text value\n                type: CREATE_TYPE\n              }));\n\n            case 8:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, _callee);\n    }));\n\n    return function handleEntitySearch(_x, _x2) {\n      return _ref2.apply(this, arguments);\n    };\n  }();\n  /**\n   * Cancels editing state and marks that focus may need to be restored after\n   * the next render, if focus was within the wrapper when editing finished.\n   */\n\n\n  function stopEditing() {\n    var _wrapperNode$current;\n\n    isEndingEditWithFocus.current = !!((_wrapperNode$current = wrapperNode.current) === null || _wrapperNode$current === void 0 ? void 0 : _wrapperNode$current.contains(document.activeElement));\n    setIsEditingLink(false);\n  }\n  /**\n   * Determines whether a given value could be a URL. Note this does not\n   * guarantee the value is a URL only that it looks like it might be one. For\n   * example, just because a string has `www.` in it doesn't make it a URL,\n   * but it does make it highly likely that it will be so in the context of\n   * creating a link it makes sense to treat it like one.\n   *\n   * @param {string} val the candidate for being URL-like (or not).\n   * @return {boolean}   whether or not the value is potentially a URL.\n   */\n\n\n  function isURLLike(val) {\n    var isInternal = Object(external_this_lodash_[\"startsWith\"])(val, '#');\n    return Object(external_this_wp_url_[\"isURL\"])(val) || val && val.includes('www.') || isInternal;\n  } // Effects\n\n\n  var getSearchHandler = Object(external_this_wp_element_[\"useCallback\"])(function (val, args) {\n    if (!showSuggestions) {\n      return Promise.resolve([]);\n    }\n\n    return isURLLike(val) ? handleDirectEntry(val, args) : handleEntitySearch(val, args);\n  }, [handleDirectEntry, fetchSearchSuggestions]);\n\n  var handleOnCreate = /*#__PURE__*/function () {\n    var _ref3 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee2(suggestionTitle) {\n      var newSuggestion;\n      return external_this_regeneratorRuntime_default.a.wrap(function _callee2$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              setIsResolvingLink(true);\n              setErrorMessage(null);\n              _context2.prev = 2;\n              // Make cancellable in order that we can avoid setting State\n              // if the component unmounts during the call to `createSuggestion`\n              cancelableCreateSuggestion.current = makeCancelable( // Using Promise.resolve to allow createSuggestion to return a\n              // non-Promise based value.\n              Promise.resolve(createSuggestion(suggestionTitle)));\n              _context2.next = 6;\n              return cancelableCreateSuggestion.current.promise;\n\n            case 6:\n              newSuggestion = _context2.sent;\n              // ********\n              // NOTE: if the above Promise rejects then code below here will never run\n              // ********\n              setIsResolvingLink(false); // Only set link if request is resolved, otherwise enable edit mode.\n\n              if (newSuggestion) {\n                onChange(newSuggestion);\n                stopEditing();\n              } else {\n                setIsEditingLink(true);\n              }\n\n              _context2.next = 18;\n              break;\n\n            case 11:\n              _context2.prev = 11;\n              _context2.t0 = _context2[\"catch\"](2);\n\n              if (!(_context2.t0 && _context2.t0.isCanceled)) {\n                _context2.next = 15;\n                break;\n              }\n\n              return _context2.abrupt(\"return\");\n\n            case 15:\n              setErrorMessage(_context2.t0.message || Object(external_this_wp_i18n_[\"__\"])('An unknown error occurred during creation. Please try again.'));\n              setIsResolvingLink(false);\n              setIsEditingLink(true);\n\n            case 18:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, _callee2, null, [[2, 11]]);\n    }));\n\n    return function handleOnCreate(_x3) {\n      return _ref3.apply(this, arguments);\n    };\n  }();\n\n  var handleSelectSuggestion = function handleSelectSuggestion(suggestion) {\n    var _value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    setIsEditingLink(false);\n\n    var __value = link_control_objectSpread({}, _value); // Some direct entries don't have types or IDs, and we still need to clear the previous ones.\n\n\n    delete __value.type;\n    delete __value.id;\n    onChange(link_control_objectSpread({}, __value, {}, suggestion));\n  }; // Render Components\n\n\n  var renderSearchResults = function renderSearchResults(_ref4) {\n    var suggestionsListProps = _ref4.suggestionsListProps,\n        buildSuggestionItemProps = _ref4.buildSuggestionItemProps,\n        suggestions = _ref4.suggestions,\n        selectedSuggestion = _ref4.selectedSuggestion,\n        isLoading = _ref4.isLoading,\n        isInitialSuggestions = _ref4.isInitialSuggestions;\n    var resultsListClasses = classnames_default()('block-editor-link-control__search-results', {\n      'is-loading': isLoading\n    });\n    var directLinkEntryTypes = ['url', 'mailto', 'tel', 'internal'];\n    var isSingleDirectEntryResult = suggestions.length === 1 && directLinkEntryTypes.includes(suggestions[0].type.toLowerCase());\n    var shouldShowCreateSuggestion = createSuggestion && !isSingleDirectEntryResult && !isInitialSuggestions; // According to guidelines aria-label should be added if the label\n    // itself is not visible.\n    // See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\n    var searchResultsLabelId = \"block-editor-link-control-search-results-label-\".concat(instanceId);\n    var labelText = isInitialSuggestions ? Object(external_this_wp_i18n_[\"__\"])('Recently updated') : Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: search term. */\n    Object(external_this_wp_i18n_[\"__\"])('Search results for \"%s\"'), inputValue); // VisuallyHidden rightly doesn't accept custom classNames\n    // so we conditionally render it as a wrapper to visually hide the label\n    // when that is required.\n\n    var searchResultsLabel = Object(external_this_wp_element_[\"createElement\"])(isInitialSuggestions ? external_this_wp_element_[\"Fragment\"] : external_this_wp_components_[\"VisuallyHidden\"], {}, // empty props\n    Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"block-editor-link-control__search-results-label\",\n      id: searchResultsLabelId\n    }, labelText));\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-link-control__search-results-wrapper\"\n    }, searchResultsLabel, Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({}, suggestionsListProps, {\n      className: resultsListClasses,\n      \"aria-labelledby\": searchResultsLabelId\n    }), suggestions.map(function (suggestion, index) {\n      if (shouldShowCreateSuggestion && CREATE_TYPE === suggestion.type) {\n        return Object(external_this_wp_element_[\"createElement\"])(search_create_button, {\n          searchTerm: inputValue,\n          onClick: /*#__PURE__*/Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee3() {\n            return external_this_regeneratorRuntime_default.a.wrap(function _callee3$(_context3) {\n              while (1) {\n                switch (_context3.prev = _context3.next) {\n                  case 0:\n                    _context3.next = 2;\n                    return handleOnCreate(suggestion.title);\n\n                  case 2:\n                  case \"end\":\n                    return _context3.stop();\n                }\n              }\n            }, _callee3);\n          })) // Intentionally only using `type` here as\n          // the constant is enough to uniquely\n          // identify the single \"CREATE\" suggestion.\n          ,\n          key: suggestion.type,\n          itemProps: buildSuggestionItemProps(suggestion, index),\n          isSelected: index === selectedSuggestion\n        });\n      } // If we're not handling \"Create\" suggestions above then\n      // we don't want them in the main results so exit early\n\n\n      if (CREATE_TYPE === suggestion.type) {\n        return null;\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(search_item, {\n        key: \"\".concat(suggestion.id, \"-\").concat(suggestion.type),\n        itemProps: buildSuggestionItemProps(suggestion, index),\n        suggestion: suggestion,\n        index: index,\n        onClick: function onClick() {\n          stopEditing();\n          onChange(link_control_objectSpread({}, value, {}, suggestion));\n        },\n        isSelected: index === selectedSuggestion,\n        isURL: directLinkEntryTypes.includes(suggestion.type.toLowerCase()),\n        searchTerm: inputValue\n      });\n    })));\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    tabIndex: -1,\n    ref: wrapperNode,\n    className: \"block-editor-link-control\"\n  }, isResolvingLink && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-link-control__loading\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null), \" \", Object(external_this_wp_i18n_[\"__\"])('Creating'), \"\\u2026\"), (isEditingLink || !value) && !isResolvingLink && Object(external_this_wp_element_[\"createElement\"])(search_input, {\n    placeholder: searchInputPlaceholder,\n    value: inputValue,\n    onChange: onInputChange,\n    onSelect: /*#__PURE__*/function () {\n      var _ref6 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee4(suggestion) {\n        return external_this_regeneratorRuntime_default.a.wrap(function _callee4$(_context4) {\n          while (1) {\n            switch (_context4.prev = _context4.next) {\n              case 0:\n                if (!(CREATE_TYPE === suggestion.type)) {\n                  _context4.next = 5;\n                  break;\n                }\n\n                _context4.next = 3;\n                return handleOnCreate(inputValue);\n\n              case 3:\n                _context4.next = 6;\n                break;\n\n              case 5:\n                if (!noDirectEntry || Object.keys(suggestion).length > 1) {\n                  handleSelectSuggestion(suggestion, value);\n                  stopEditing();\n                }\n\n              case 6:\n              case \"end\":\n                return _context4.stop();\n            }\n          }\n        }, _callee4);\n      }));\n\n      return function (_x4) {\n        return _ref6.apply(this, arguments);\n      };\n    }(),\n    renderSuggestions: showSuggestions ? renderSearchResults : null,\n    fetchSuggestions: getSearchHandler,\n    showInitialSuggestions: showInitialSuggestions,\n    errorMessage: errorMessage\n  }), value && !isEditingLink && !isResolvingLink && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Currently selected'),\n    \"aria-selected\": \"true\",\n    className: classnames_default()('block-editor-link-control__search-item', {\n      'is-current': true\n    })\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    className: \"block-editor-link-control__search-item-title\",\n    href: value.url\n  }, value && value.title || displayURL), value && value.title && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"block-editor-link-control__search-item-info\"\n  }, displayURL)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    onClick: function onClick() {\n      return setIsEditingLink(true);\n    },\n    className: \"block-editor-link-control__search-item-action\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Edit')), Object(external_this_wp_element_[\"createElement\"])(ViewerSlot, {\n    fillProps: value\n  }))), Object(external_this_wp_element_[\"createElement\"])(settings_drawer, {\n    value: value,\n    settings: settings,\n    onChange: onChange\n  }));\n}\n\nLinkControl.ViewerFill = ViewerFill;\n/* harmony default export */ var link_control = (LinkControl);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar media_media = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M13 11V4c0-.55-.45-1-1-1h-1.67L9 1H5L3.67 3H2c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h10c.55 0 1-.45 1-1zM7 4.5c1.38 0 2.5 1.12 2.5 2.5S8.38 9.5 7 9.5 4.5 8.38 4.5 7 5.62 4.5 7 4.5zM14 6h5v10.5c0 1.38-1.12 2.5-2.5 2.5S14 17.88 14 16.5s1.12-2.5 2.5-2.5c.17 0 .34.02.5.05V9h-3V6zm-4 8.05V13h2v3.5c0 1.38-1.12 2.5-2.5 2.5S7 17.88 7 16.5 8.12 14 9.5 14c.17 0 .34.02.5.05z\"\n}));\n/* harmony default export */ var library_media = (media_media);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js\nvar upload = __webpack_require__(198);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * This is a placeholder for the media upload component necessary to make it possible to provide\n * an integration with the core blocks that handle media files. By default it renders nothing but\n * it provides a way to have it overridden with the `editor.MediaUpload` filter.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nvar MediaUpload = function MediaUpload() {\n  return null;\n};\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/media-upload/README.md\n */\n\n\n/* harmony default export */ var media_upload = (Object(external_this_wp_components_[\"withFilters\"])('editor.MediaUpload')(MediaUpload));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/check.js\n/**\n * WordPress dependencies\n */\n\nfunction MediaUploadCheck(_ref) {\n  var hasUploadPermissions = _ref.hasUploadPermissions,\n      _ref$fallback = _ref.fallback,\n      fallback = _ref$fallback === void 0 ? null : _ref$fallback,\n      children = _ref.children;\n  return hasUploadPermissions ? children : fallback;\n}\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/media-upload/README.md\n */\n\n/* harmony default export */ var check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  return {\n    hasUploadPermissions: !!getSettings().mediaUpload\n  };\n})(MediaUploadCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-replace-flow/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar media_replace_flow_MediaReplaceFlow = function MediaReplaceFlow(_ref) {\n  var mediaURL = _ref.mediaURL,\n      mediaId = _ref.mediaId,\n      allowedTypes = _ref.allowedTypes,\n      accept = _ref.accept,\n      onSelect = _ref.onSelect,\n      onSelectURL = _ref.onSelectURL,\n      _ref$onFilesUpload = _ref.onFilesUpload,\n      onFilesUpload = _ref$onFilesUpload === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFilesUpload,\n      _ref$name = _ref.name,\n      name = _ref$name === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Replace') : _ref$name,\n      createNotice = _ref.createNotice,\n      removeNotice = _ref.removeNotice;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(mediaURL),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      mediaURLValue = _useState2[0],\n      setMediaURLValue = _useState2[1];\n\n  var mediaUpload = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings().mediaUpload;\n  }, []);\n  var editMediaButtonRef = Object(external_this_wp_element_[\"createRef\"])();\n  var errorNoticeID = Object(external_this_lodash_[\"uniqueId\"])('block-editor/media-replace-flow/error-notice/');\n\n  var onError = function onError(message) {\n    var errorElement = document.createElement('div');\n    errorElement.innerHTML = Object(external_this_wp_element_[\"renderToString\"])(message); // The default error contains some HTML that,\n    // for example, makes the filename bold.\n    // The notice, by default, accepts strings only and so\n    // we need to remove the html from the error.\n\n    var renderMsg = errorElement.textContent || errorElement.innerText || ''; // We need to set a timeout for showing the notice\n    // so that VoiceOver and possibly other screen readers\n    // can announce the error afer the toolbar button\n    // regains focus once the upload dialog closes.\n    // Otherwise VO simply skips over the notice and announces\n    // the focused element and the open menu.\n\n    setTimeout(function () {\n      createNotice('error', renderMsg, {\n        speak: true,\n        id: errorNoticeID,\n        isDismissible: true\n      });\n    }, 1000);\n  };\n\n  var selectMedia = function selectMedia(media) {\n    onSelect(media);\n    setMediaURLValue(media.url);\n    Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('The media file has been replaced'));\n    removeNotice(errorNoticeID);\n  };\n\n  var selectURL = function selectURL(newURL) {\n    onSelectURL(newURL);\n  };\n\n  var uploadFiles = function uploadFiles(event) {\n    var files = event.target.files;\n    onFilesUpload(files);\n\n    var setMedia = function setMedia(_ref2) {\n      var _ref3 = Object(slicedToArray[\"a\" /* default */])(_ref2, 1),\n          media = _ref3[0];\n\n      selectMedia(media);\n    };\n\n    mediaUpload({\n      allowedTypes: allowedTypes,\n      filesList: files,\n      onFileChange: setMedia,\n      onError: onError\n    });\n  };\n\n  var openOnArrowDown = function openOnArrowDown(event) {\n    if (event.keyCode === external_this_wp_keycodes_[\"DOWN\"]) {\n      event.preventDefault();\n      event.stopPropagation();\n      event.target.click();\n    }\n  };\n\n  var POPOVER_PROPS = {\n    isAlternate: true\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    popoverProps: POPOVER_PROPS,\n    contentClassName: \"block-editor-media-replace-flow__options\",\n    renderToggle: function renderToggle(_ref4) {\n      var isOpen = _ref4.isOpen,\n          onToggle = _ref4.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n        className: \"media-replace-flow\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        ref: editMediaButtonRef,\n        \"aria-expanded\": isOpen,\n        onClick: onToggle,\n        onKeyDown: openOnArrowDown\n      }, name));\n    },\n    renderContent: function renderContent(_ref5) {\n      var onClose = _ref5.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NavigableMenu\"], {\n        className: \"block-editor-media-replace-flow__media-upload-menu\"\n      }, Object(external_this_wp_element_[\"createElement\"])(media_upload, {\n        value: mediaId,\n        onSelect: function onSelect(media) {\n          return selectMedia(media);\n        },\n        allowedTypes: allowedTypes,\n        render: function render(_ref6) {\n          var open = _ref6.open;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n            icon: library_media,\n            onClick: open\n          }, Object(external_this_wp_i18n_[\"__\"])('Open Media Library'));\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(check, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FormFileUpload\"], {\n        onChange: function onChange(event) {\n          uploadFiles(event, onClose);\n        },\n        accept: accept,\n        render: function render(_ref7) {\n          var openFileDialog = _ref7.openFileDialog;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n            icon: upload[\"a\" /* default */],\n            onClick: function onClick() {\n              openFileDialog();\n            }\n          }, Object(external_this_wp_i18n_[\"__\"])('Upload'));\n        }\n      }))), onSelectURL && // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n      Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n        className: \"block-editor-media-flow__url-input\",\n        onKeyDown: function onKeyDown(event) {\n          event.stopPropagation();\n        },\n        onKeyPress: function onKeyPress(event) {\n          event.stopPropagation();\n        }\n      }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        className: \"block-editor-media-replace-flow__image-url-label\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Current media URL:')), Object(external_this_wp_element_[\"createElement\"])(link_control, {\n        value: {\n          url: mediaURLValue\n        },\n        settings: [],\n        showSuggestions: false,\n        onChange: function onChange(_ref8) {\n          var url = _ref8.url;\n          setMediaURLValue(url);\n          selectURL(url);\n          editMediaButtonRef.current.focus();\n        }\n      })));\n    }\n  });\n};\n\n/* harmony default export */ var media_replace_flow = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/notices'),\n      createNotice = _dispatch.createNotice,\n      removeNotice = _dispatch.removeNotice;\n\n  return {\n    createNotice: createNotice,\n    removeNotice: removeNotice\n  };\n}), Object(external_this_wp_components_[\"withFilters\"])('editor.MediaReplaceFlow')])(media_replace_flow_MediaReplaceFlow));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js\nvar pencil = __webpack_require__(295);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer-url.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction LinkViewerURL(_ref) {\n  var url = _ref.url,\n      urlLabel = _ref.urlLabel,\n      className = _ref.className;\n  var linkClassName = classnames_default()(className, 'block-editor-url-popover__link-viewer-url');\n\n  if (!url) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: linkClassName\n    });\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    className: linkClassName,\n    href: url\n  }, urlLabel || Object(external_this_wp_url_[\"filterURLForDisplay\"])(Object(external_this_wp_url_[\"safeDecodeURI\"])(url)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-viewer.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction LinkViewer(_ref) {\n  var className = _ref.className,\n      linkClassName = _ref.linkClassName,\n      onEditLinkClick = _ref.onEditLinkClick,\n      url = _ref.url,\n      urlLabel = _ref.urlLabel,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"linkClassName\", \"onEditLinkClick\", \"url\", \"urlLabel\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('block-editor-url-popover__link-viewer', className)\n  }, props), Object(external_this_wp_element_[\"createElement\"])(LinkViewerURL, {\n    url: url,\n    urlLabel: urlLabel,\n    className: linkClassName\n  }), onEditLinkClick && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    icon: pencil[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Edit'),\n    onClick: onEditLinkClick\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/link-editor.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction LinkEditor(_ref) {\n  var autocompleteRef = _ref.autocompleteRef,\n      className = _ref.className,\n      onChangeInputValue = _ref.onChangeInputValue,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"autocompleteRef\", \"className\", \"onChangeInputValue\", \"value\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"form\", Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('block-editor-url-popover__link-editor', className)\n  }, props), Object(external_this_wp_element_[\"createElement\"])(url_input, {\n    value: value,\n    onChange: onChangeInputValue,\n    autocompleteRef: autocompleteRef\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    icon: keyboard_return[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Apply'),\n    type: \"submit\"\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/index.js\n\n\n\n\n\n\n\n\n\n\nfunction url_popover_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (url_popover_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction url_popover_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar url_popover_URLPopover = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(URLPopover, _Component);\n\n  var _super = url_popover_createSuper(URLPopover);\n\n  function URLPopover() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, URLPopover);\n\n    _this = _super.apply(this, arguments);\n    _this.toggleSettingsVisibility = _this.toggleSettingsVisibility.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      isSettingsExpanded: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(URLPopover, [{\n    key: \"toggleSettingsVisibility\",\n    value: function toggleSettingsVisibility() {\n      this.setState({\n        isSettingsExpanded: !this.state.isSettingsExpanded\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          additionalControls = _this$props.additionalControls,\n          children = _this$props.children,\n          renderSettings = _this$props.renderSettings,\n          _this$props$position = _this$props.position,\n          position = _this$props$position === void 0 ? 'bottom center' : _this$props$position,\n          _this$props$focusOnMo = _this$props.focusOnMount,\n          focusOnMount = _this$props$focusOnMo === void 0 ? 'firstElement' : _this$props$focusOnMo,\n          popoverProps = Object(objectWithoutProperties[\"a\" /* default */])(_this$props, [\"additionalControls\", \"children\", \"renderSettings\", \"position\", \"focusOnMount\"]);\n\n      var isSettingsExpanded = this.state.isSettingsExpanded;\n      var showSettings = !!renderSettings && isSettingsExpanded;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], Object(esm_extends[\"a\" /* default */])({\n        className: \"block-editor-url-popover\",\n        focusOnMount: focusOnMount,\n        position: position\n      }, popoverProps), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-popover__input-container\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-popover__row\"\n      }, children, !!renderSettings && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"block-editor-url-popover__settings-toggle\",\n        icon: chevron_down[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('Link settings'),\n        onClick: this.toggleSettingsVisibility,\n        \"aria-expanded\": isSettingsExpanded\n      })), showSettings && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-popover__row block-editor-url-popover__settings\"\n      }, renderSettings())), additionalControls && !showSettings && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-popover__additional-controls\"\n      }, additionalControls));\n    }\n  }]);\n\n  return URLPopover;\n}(external_this_wp_element_[\"Component\"]);\n\nurl_popover_URLPopover.LinkEditor = LinkEditor;\nurl_popover_URLPopover.LinkViewer = LinkViewer;\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/url-popover/README.md\n */\n\n/* harmony default export */ var url_popover = (url_popover_URLPopover);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-placeholder/index.js\n\n\n\n\n\n\n\n\n\nfunction media_placeholder_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (media_placeholder_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction media_placeholder_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar media_placeholder_InsertFromURLPopover = function InsertFromURLPopover(_ref) {\n  var src = _ref.src,\n      onChange = _ref.onChange,\n      onSubmit = _ref.onSubmit,\n      onClose = _ref.onClose;\n  return Object(external_this_wp_element_[\"createElement\"])(url_popover, {\n    onClose: onClose\n  }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n    className: \"block-editor-media-placeholder__url-input-form\",\n    onSubmit: onSubmit\n  }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    className: \"block-editor-media-placeholder__url-input-field\",\n    type: \"url\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('URL'),\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Paste or type URL'),\n    onChange: onChange,\n    value: src\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"block-editor-media-placeholder__url-input-submit-button\",\n    icon: keyboard_return[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Apply'),\n    type: \"submit\"\n  })));\n};\n\nvar media_placeholder_MediaPlaceholder = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MediaPlaceholder, _Component);\n\n  var _super = media_placeholder_createSuper(MediaPlaceholder);\n\n  function MediaPlaceholder() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, MediaPlaceholder);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      src: '',\n      isURLInputVisible: false\n    };\n    _this.onChangeSrc = _this.onChangeSrc.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSubmitSrc = _this.onSubmitSrc.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUpload = _this.onUpload.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onFilesUpload = _this.onFilesUpload.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.openURLInput = _this.openURLInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.closeURLInput = _this.closeURLInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(MediaPlaceholder, [{\n    key: \"onlyAllowsImages\",\n    value: function onlyAllowsImages() {\n      var allowedTypes = this.props.allowedTypes;\n\n      if (!allowedTypes) {\n        return false;\n      }\n\n      return Object(external_this_lodash_[\"every\"])(allowedTypes, function (allowedType) {\n        return allowedType === 'image' || Object(external_this_lodash_[\"startsWith\"])(allowedType, 'image/');\n      });\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.setState({\n        src: Object(external_this_lodash_[\"get\"])(this.props.value, ['src'], '')\n      });\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (Object(external_this_lodash_[\"get\"])(prevProps.value, ['src'], '') !== Object(external_this_lodash_[\"get\"])(this.props.value, ['src'], '')) {\n        this.setState({\n          src: Object(external_this_lodash_[\"get\"])(this.props.value, ['src'], '')\n        });\n      }\n    }\n  }, {\n    key: \"onChangeSrc\",\n    value: function onChangeSrc(event) {\n      this.setState({\n        src: event.target.value\n      });\n    }\n  }, {\n    key: \"onSubmitSrc\",\n    value: function onSubmitSrc(event) {\n      event.preventDefault();\n\n      if (this.state.src && this.props.onSelectURL) {\n        this.props.onSelectURL(this.state.src);\n        this.closeURLInput();\n      }\n    }\n  }, {\n    key: \"onUpload\",\n    value: function onUpload(event) {\n      this.onFilesUpload(event.target.files);\n    }\n  }, {\n    key: \"onFilesUpload\",\n    value: function onFilesUpload(files) {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          addToGallery = _this$props.addToGallery,\n          allowedTypes = _this$props.allowedTypes,\n          mediaUpload = _this$props.mediaUpload,\n          multiple = _this$props.multiple,\n          onError = _this$props.onError,\n          onSelect = _this$props.onSelect,\n          _this$props$onFilesPr = _this$props.onFilesPreUpload,\n          onFilesPreUpload = _this$props$onFilesPr === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onFilesPr;\n      onFilesPreUpload(files);\n      var setMedia;\n\n      if (multiple) {\n        if (addToGallery) {\n          // To allow changes to a gallery to be made while uploads are in progress\n          // (including trigging multiple upload groups and removing already in place images),\n          // we must be able to add newMedia based on the current value of the Gallery\n          // whenever the setMedia function runs (not destructuring 'value' from props).\n          // Additionally, since the setMedia function runs multiple times per upload group\n          // and is passed newMedia containing every item in its group each time, we must\n          // also filter out whatever this upload group had previously returned to the\n          // gallery before adding and returning the image array with replacement newMedia\n          // values.\n          // Define an array to store urls from newMedia between subsequent function calls.\n          var lastMediaPassed = [];\n\n          setMedia = function setMedia(newMedia) {\n            // Remove any images this upload group is responsible for (lastMediaPassed).\n            // Their replacements are contained in newMedia.\n            var filteredMedia = (_this2.props.value || []).filter(function (item) {\n              // If Item has id, only remove it if lastMediaPassed has an item with that id.\n              if (item.id) {\n                return !lastMediaPassed.some( // Be sure to convert to number for comparison.\n                function (_ref2) {\n                  var id = _ref2.id;\n                  return Number(id) === Number(item.id);\n                });\n              } // Compare transient images via .includes since gallery may append extra info onto the url.\n\n\n              return !lastMediaPassed.some(function (_ref3) {\n                var urlSlug = _ref3.urlSlug;\n                return item.url.includes(urlSlug);\n              });\n            }); // Return the filtered media array along with newMedia.\n\n            onSelect(filteredMedia.concat(newMedia)); // Reset lastMediaPassed and set it with ids and urls from newMedia.\n\n            lastMediaPassed = newMedia.map(function (media) {\n              // Add everything up to '.fileType' to compare via .includes.\n              var cutOffIndex = media.url.lastIndexOf('.');\n              var urlSlug = media.url.slice(0, cutOffIndex);\n              return {\n                id: media.id,\n                urlSlug: urlSlug\n              };\n            });\n          };\n        } else {\n          setMedia = onSelect;\n        }\n      } else {\n        setMedia = function setMedia(_ref4) {\n          var _ref5 = Object(slicedToArray[\"a\" /* default */])(_ref4, 1),\n              media = _ref5[0];\n\n          return onSelect(media);\n        };\n      }\n\n      mediaUpload({\n        allowedTypes: allowedTypes,\n        filesList: files,\n        onFileChange: setMedia,\n        onError: onError\n      });\n    }\n  }, {\n    key: \"openURLInput\",\n    value: function openURLInput() {\n      this.setState({\n        isURLInputVisible: true\n      });\n    }\n  }, {\n    key: \"closeURLInput\",\n    value: function closeURLInput() {\n      this.setState({\n        isURLInputVisible: false\n      });\n    }\n  }, {\n    key: \"renderPlaceholder\",\n    value: function renderPlaceholder(content, onClick) {\n      var _this$props2 = this.props,\n          _this$props2$allowedT = _this$props2.allowedTypes,\n          allowedTypes = _this$props2$allowedT === void 0 ? [] : _this$props2$allowedT,\n          className = _this$props2.className,\n          icon = _this$props2.icon,\n          isAppender = _this$props2.isAppender,\n          _this$props2$labels = _this$props2.labels,\n          labels = _this$props2$labels === void 0 ? {} : _this$props2$labels,\n          onDoubleClick = _this$props2.onDoubleClick,\n          mediaPreview = _this$props2.mediaPreview,\n          notices = _this$props2.notices,\n          onSelectURL = _this$props2.onSelectURL,\n          mediaUpload = _this$props2.mediaUpload,\n          children = _this$props2.children;\n      var instructions = labels.instructions;\n      var title = labels.title;\n\n      if (!mediaUpload && !onSelectURL) {\n        instructions = Object(external_this_wp_i18n_[\"__\"])('To edit this block, you need permission to upload media.');\n      }\n\n      if (instructions === undefined || title === undefined) {\n        var isOneType = 1 === allowedTypes.length;\n        var isAudio = isOneType && 'audio' === allowedTypes[0];\n        var isImage = isOneType && 'image' === allowedTypes[0];\n        var isVideo = isOneType && 'video' === allowedTypes[0];\n\n        if (instructions === undefined && mediaUpload) {\n          instructions = Object(external_this_wp_i18n_[\"__\"])('Upload a media file or pick one from your media library.');\n\n          if (isAudio) {\n            instructions = Object(external_this_wp_i18n_[\"__\"])('Upload an audio file, pick one from your media library, or add one with a URL.');\n          } else if (isImage) {\n            instructions = Object(external_this_wp_i18n_[\"__\"])('Upload an image file, pick one from your media library, or add one with a URL.');\n          } else if (isVideo) {\n            instructions = Object(external_this_wp_i18n_[\"__\"])('Upload a video file, pick one from your media library, or add one with a URL.');\n          }\n        }\n\n        if (title === undefined) {\n          title = Object(external_this_wp_i18n_[\"__\"])('Media');\n\n          if (isAudio) {\n            title = Object(external_this_wp_i18n_[\"__\"])('Audio');\n          } else if (isImage) {\n            title = Object(external_this_wp_i18n_[\"__\"])('Image');\n          } else if (isVideo) {\n            title = Object(external_this_wp_i18n_[\"__\"])('Video');\n          }\n        }\n      }\n\n      var placeholderClassName = classnames_default()('block-editor-media-placeholder', className, {\n        'is-appender': isAppender\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n        icon: icon,\n        label: title,\n        instructions: instructions,\n        className: placeholderClassName,\n        notices: notices,\n        onClick: onClick,\n        onDoubleClick: onDoubleClick,\n        preview: mediaPreview\n      }, content, children);\n    }\n  }, {\n    key: \"renderDropZone\",\n    value: function renderDropZone() {\n      var _this$props3 = this.props,\n          disableDropZone = _this$props3.disableDropZone,\n          _this$props3$onHTMLDr = _this$props3.onHTMLDrop,\n          onHTMLDrop = _this$props3$onHTMLDr === void 0 ? external_this_lodash_[\"noop\"] : _this$props3$onHTMLDr;\n\n      if (disableDropZone) {\n        return null;\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropZone\"], {\n        onFilesDrop: this.onFilesUpload,\n        onHTMLDrop: onHTMLDrop\n      });\n    }\n  }, {\n    key: \"renderCancelLink\",\n    value: function renderCancelLink() {\n      var onCancel = this.props.onCancel;\n      return onCancel && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"block-editor-media-placeholder__cancel-button\",\n        title: Object(external_this_wp_i18n_[\"__\"])('Cancel'),\n        isLink: true,\n        onClick: onCancel\n      }, Object(external_this_wp_i18n_[\"__\"])('Cancel'));\n    }\n  }, {\n    key: \"renderUrlSelectionUI\",\n    value: function renderUrlSelectionUI() {\n      var onSelectURL = this.props.onSelectURL;\n\n      if (!onSelectURL) {\n        return null;\n      }\n\n      var _this$state = this.state,\n          isURLInputVisible = _this$state.isURLInputVisible,\n          src = _this$state.src;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-media-placeholder__url-input-container\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"block-editor-media-placeholder__button\",\n        onClick: this.openURLInput,\n        isPressed: isURLInputVisible,\n        isTertiary: true\n      }, Object(external_this_wp_i18n_[\"__\"])('Insert from URL')), isURLInputVisible && Object(external_this_wp_element_[\"createElement\"])(media_placeholder_InsertFromURLPopover, {\n        src: src,\n        onChange: this.onChangeSrc,\n        onSubmit: this.onSubmitSrc,\n        onClose: this.closeURLInput\n      }));\n    }\n  }, {\n    key: \"renderMediaUploadChecked\",\n    value: function renderMediaUploadChecked() {\n      var _this3 = this;\n\n      var _this$props4 = this.props,\n          accept = _this$props4.accept,\n          addToGallery = _this$props4.addToGallery,\n          _this$props4$allowedT = _this$props4.allowedTypes,\n          allowedTypes = _this$props4$allowedT === void 0 ? [] : _this$props4$allowedT,\n          isAppender = _this$props4.isAppender,\n          mediaUpload = _this$props4.mediaUpload,\n          _this$props4$multiple = _this$props4.multiple,\n          multiple = _this$props4$multiple === void 0 ? false : _this$props4$multiple,\n          onSelect = _this$props4.onSelect,\n          _this$props4$value = _this$props4.value,\n          value = _this$props4$value === void 0 ? {} : _this$props4$value;\n      var mediaLibraryButton = Object(external_this_wp_element_[\"createElement\"])(media_upload, {\n        addToGallery: addToGallery,\n        gallery: multiple && this.onlyAllowsImages(),\n        multiple: multiple,\n        onSelect: onSelect,\n        allowedTypes: allowedTypes,\n        value: Object(external_this_lodash_[\"isArray\"])(value) ? value.map(function (_ref6) {\n          var id = _ref6.id;\n          return id;\n        }) : value.id,\n        render: function render(_ref7) {\n          var open = _ref7.open;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n            isTertiary: true,\n            onClick: function onClick(event) {\n              event.stopPropagation();\n              open();\n            }\n          }, Object(external_this_wp_i18n_[\"__\"])('Media Library'));\n        }\n      });\n\n      if (mediaUpload && isAppender) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, this.renderDropZone(), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FormFileUpload\"], {\n          onChange: this.onUpload,\n          accept: accept,\n          multiple: multiple,\n          render: function render(_ref8) {\n            var openFileDialog = _ref8.openFileDialog;\n            var content = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n              isPrimary: true,\n              className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button')\n            }, Object(external_this_wp_i18n_[\"__\"])('Upload')), mediaLibraryButton, _this3.renderUrlSelectionUI(), _this3.renderCancelLink());\n            return _this3.renderPlaceholder(content, openFileDialog);\n          }\n        }));\n      }\n\n      if (mediaUpload) {\n        var content = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, this.renderDropZone(), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FormFileUpload\"], {\n          isPrimary: true,\n          className: classnames_default()('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'),\n          onChange: this.onUpload,\n          accept: accept,\n          multiple: multiple\n        }, Object(external_this_wp_i18n_[\"__\"])('Upload')), mediaLibraryButton, this.renderUrlSelectionUI(), this.renderCancelLink());\n        return this.renderPlaceholder(content);\n      }\n\n      return this.renderPlaceholder(mediaLibraryButton);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props5 = this.props,\n          disableMediaButtons = _this$props5.disableMediaButtons,\n          dropZoneUIOnly = _this$props5.dropZoneUIOnly;\n\n      if (dropZoneUIOnly || disableMediaButtons) {\n        if (dropZoneUIOnly) {\n          external_this_wp_deprecated_default()('wp.blockEditor.MediaPlaceholder dropZoneUIOnly prop', {\n            alternative: 'disableMediaButtons'\n          });\n        }\n\n        return Object(external_this_wp_element_[\"createElement\"])(check, null, this.renderDropZone());\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(check, {\n        fallback: this.renderPlaceholder(this.renderUrlSelectionUI())\n      }, this.renderMediaUploadChecked());\n    }\n  }]);\n\n  return MediaPlaceholder;\n}(external_this_wp_element_[\"Component\"]);\nvar media_placeholder_applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  return {\n    mediaUpload: getSettings().mediaUpload\n  };\n});\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/media-placeholder/README.md\n */\n\n/* harmony default export */ var media_placeholder = (Object(external_this_wp_compose_[\"compose\"])(media_placeholder_applyWithSelect, Object(external_this_wp_components_[\"withFilters\"])('editor.MediaPlaceholder'))(media_placeholder_MediaPlaceholder));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editable-text/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar EditableText = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(rich_text, Object(esm_extends[\"a\" /* default */])({\n    ref: ref\n  }, props, {\n    __unstableDisableFormats: true,\n    preserveWhiteSpace: true\n  }));\n});\n\nEditableText.Content = function (_ref) {\n  var _ref$value = _ref.value,\n      value = _ref$value === void 0 ? '' : _ref$value,\n      _ref$tagName = _ref.tagName,\n      Tag = _ref$tagName === void 0 ? 'div' : _ref$tagName,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"value\", \"tagName\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(Tag, props, value);\n};\n/**\n * Renders an editable text input in which text formatting is not allowed.\n */\n\n\n/* harmony default export */ var editable_text = (EditableText);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/plain-text/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/plain-text/README.md\n */\n\nvar PlainText = Object(external_this_wp_element_[\"forwardRef\"])(function (_ref, ref) {\n  var __experimentalVersion = _ref.__experimentalVersion,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"__experimentalVersion\"]);\n\n  if (__experimentalVersion === 2) {\n    return Object(external_this_wp_element_[\"createElement\"])(editable_text, Object(esm_extends[\"a\" /* default */])({\n      ref: ref\n    }, props));\n  }\n\n  var className = props.className,\n      _onChange = props.onChange,\n      remainingProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\", \"onChange\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(lib_default.a, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    className: classnames_default()('block-editor-plain-text', className),\n    onChange: function onChange(event) {\n      return _onChange(event.target.value);\n    }\n  }, remainingProps));\n});\n/* harmony default export */ var plain_text = (PlainText);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/label.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction ResponsiveBlockControlLabel(_ref) {\n  var property = _ref.property,\n      viewport = _ref.viewport,\n      desc = _ref.desc;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(ResponsiveBlockControlLabel);\n  var accessibleLabel = desc || Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: property name. 2: viewport name. */\n  Object(external_this_wp_i18n_[\"_x\"])('Controls the %1$s property for %2$s viewports.', 'Text labelling a interface as controlling a given layout property (eg: margin) for a given screen size.'), property, viewport.label);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    \"aria-describedby\": \"rbc-desc-\".concat(instanceId)\n  }, viewport.label), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n    as: \"span\",\n    id: \"rbc-desc-\".concat(instanceId)\n  }, accessibleLabel));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/responsive-block-control/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ResponsiveBlockControl(props) {\n  var title = props.title,\n      property = props.property,\n      toggleLabel = props.toggleLabel,\n      onIsResponsiveChange = props.onIsResponsiveChange,\n      renderDefaultControl = props.renderDefaultControl,\n      renderResponsiveControls = props.renderResponsiveControls,\n      _props$isResponsive = props.isResponsive,\n      isResponsive = _props$isResponsive === void 0 ? false : _props$isResponsive,\n      _props$defaultLabel = props.defaultLabel,\n      defaultLabel = _props$defaultLabel === void 0 ? {\n    id: 'all',\n\n    /* translators: 'Label. Used to signify a layout property (eg: margin, padding) will apply uniformly to all screensizes.' */\n    label: Object(external_this_wp_i18n_[\"__\"])('All')\n  } : _props$defaultLabel,\n      _props$viewports = props.viewports,\n      viewports = _props$viewports === void 0 ? [{\n    id: 'small',\n    label: Object(external_this_wp_i18n_[\"__\"])('Small screens')\n  }, {\n    id: 'medium',\n    label: Object(external_this_wp_i18n_[\"__\"])('Medium screens')\n  }, {\n    id: 'large',\n    label: Object(external_this_wp_i18n_[\"__\"])('Large screens')\n  }] : _props$viewports;\n\n  if (!title || !property || !renderDefaultControl) {\n    return null;\n  }\n\n  var toggleControlLabel = toggleLabel || Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 'Toggle control label. Should the property be the same across all screen sizes or unique per screen size.'. %s property value for the control (eg: margin, padding...etc) */\n  Object(external_this_wp_i18n_[\"__\"])('Use the same %s on all screensizes.'), property);\n  /* translators: 'Help text for the responsive mode toggle control.' */\n\n  var toggleHelpText = Object(external_this_wp_i18n_[\"__\"])('Toggle between using the same value for all screen sizes or using a unique value per screen size.');\n\n  var defaultControl = renderDefaultControl(Object(external_this_wp_element_[\"createElement\"])(ResponsiveBlockControlLabel, {\n    property: property,\n    viewport: defaultLabel\n  }), defaultLabel);\n\n  var defaultResponsiveControls = function defaultResponsiveControls() {\n    return viewports.map(function (viewport) {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], {\n        key: viewport.id\n      }, renderDefaultControl(Object(external_this_wp_element_[\"createElement\"])(ResponsiveBlockControlLabel, {\n        property: property,\n        viewport: viewport\n      }), viewport));\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", {\n    className: \"block-editor-responsive-block-control\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"legend\", {\n    className: \"block-editor-responsive-block-control__title\"\n  }, title), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-responsive-block-control__inner\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    className: \"block-editor-responsive-block-control__toggle\",\n    label: toggleControlLabel,\n    checked: !isResponsive,\n    onChange: onIsResponsiveChange,\n    help: toggleHelpText\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('block-editor-responsive-block-control__group', {\n      'is-responsive': isResponsive\n    })\n  }, !isResponsive && defaultControl, isResponsive && (renderResponsiveControls ? renderResponsiveControls(viewports) : defaultResponsiveControls()))));\n}\n\n/* harmony default export */ var responsive_block_control = (ResponsiveBlockControl);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/shortcut.js\n/**\n * WordPress dependencies\n */\n\n\nfunction RichTextShortcut(_ref) {\n  var character = _ref.character,\n      type = _ref.type,\n      onUse = _ref.onUse;\n\n  var callback = function callback() {\n    onUse();\n    return false;\n  };\n\n  Object(external_this_wp_compose_[\"useKeyboardShortcut\"])(external_this_wp_keycodes_[\"rawShortcut\"][type](character), callback, {\n    bindGlobal: true\n  });\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/toolbar-button.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction RichTextToolbarButton(_ref) {\n  var name = _ref.name,\n      shortcutType = _ref.shortcutType,\n      shortcutCharacter = _ref.shortcutCharacter,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"name\", \"shortcutType\", \"shortcutCharacter\"]);\n\n  var shortcut;\n  var fillName = 'RichText.ToolbarControls';\n\n  if (name) {\n    fillName += \".\".concat(name);\n  }\n\n  if (shortcutType && shortcutCharacter) {\n    shortcut = external_this_wp_keycodes_[\"displayShortcut\"][shortcutType](shortcutCharacter);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Fill\"], {\n    name: fillName\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    shortcut: shortcut\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/rich-text/input-event.js\n\n\n\n\n\n\n\nfunction input_event_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (input_event_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction input_event_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\nvar input_event_unstableRichTextInputEvent = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(__unstableRichTextInputEvent, _Component);\n\n  var _super = input_event_createSuper(__unstableRichTextInputEvent);\n\n  function __unstableRichTextInputEvent() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, __unstableRichTextInputEvent);\n\n    _this = _super.apply(this, arguments);\n    _this.onInput = _this.onInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(__unstableRichTextInputEvent, [{\n    key: \"onInput\",\n    value: function onInput(event) {\n      if (event.inputType === this.props.inputType) {\n        this.props.onInput();\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      document.addEventListener('input', this.onInput, true);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      document.removeEventListener('input', this.onInput, true);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return __unstableRichTextInputEvent;\n}(external_this_wp_element_[\"Component\"]);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js\nvar library_edit = __webpack_require__(296);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/tool-selector/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar selectIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"24\",\n  height: \"24\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M9.4 20.5L5.2 3.8l14.6 9-2 .3c-.2 0-.4.1-.7.1-.9.2-1.6.3-2.2.5-.8.3-1.4.5-1.8.8-.4.3-.8.8-1.3 1.5-.4.5-.8 1.2-1.2 2l-.3.6-.9 1.9zM7.6 7.1l2.4 9.3c.2-.4.5-.8.7-1.1.6-.8 1.1-1.4 1.6-1.8.5-.4 1.3-.8 2.2-1.1l1.2-.3-8.1-5z\"\n}));\n\nfunction ToolSelector(props, ref) {\n  var isNavigationTool = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').isNavigationMode();\n  }, []);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      setNavigationMode = _useDispatch.setNavigationMode;\n\n  var onSwitchMode = function onSwitchMode(mode) {\n    setNavigationMode(mode === 'edit' ? false : true);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    renderToggle: function renderToggle(_ref) {\n      var isOpen = _ref.isOpen,\n          onToggle = _ref.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n        ref: ref,\n        icon: isNavigationTool ? selectIcon : library_edit[\"a\" /* default */],\n        \"aria-expanded\": isOpen,\n        onClick: onToggle,\n        label: Object(external_this_wp_i18n_[\"__\"])('Tools')\n      }));\n    },\n    position: \"bottom right\",\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NavigableMenu\"], {\n        role: \"menu\",\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Tools')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItemsChoice\"], {\n        value: isNavigationTool ? 'select' : 'edit',\n        onSelect: onSwitchMode,\n        choices: [{\n          value: 'edit',\n          label: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n            icon: library_edit[\"a\" /* default */]\n          }), Object(external_this_wp_i18n_[\"__\"])('Edit'))\n        }, {\n          value: 'select',\n          label: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, selectIcon, Object(external_this_wp_i18n_[\"__\"])('Select'))\n        }]\n      })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-tool-selector__help\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Tools offer different interactions for block selection & editing. To select, press Escape, to go back to editing, press Enter.')));\n    }\n  });\n}\n\n/* harmony default export */ var tool_selector = (Object(external_this_wp_element_[\"forwardRef\"])(ToolSelector));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js\nvar library_link = __webpack_require__(174);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/arrow-left.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar arrowLeft = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M9.737 18.011L3.98 12.255l5.734-6.28 1.107 1.012-4.103 4.494h13.3v1.5H6.828l3.97 3.97-1.06 1.06z\"\n}));\n/* harmony default export */ var arrow_left = (arrowLeft);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/button.js\n\n\n\n\n\n\n\n\nfunction button_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (button_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction button_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar button_URLInputButton = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(URLInputButton, _Component);\n\n  var _super = button_createSuper(URLInputButton);\n\n  function URLInputButton() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, URLInputButton);\n\n    _this = _super.apply(this, arguments);\n    _this.toggle = _this.toggle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.submitLink = _this.submitLink.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      expanded: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(URLInputButton, [{\n    key: \"toggle\",\n    value: function toggle() {\n      this.setState({\n        expanded: !this.state.expanded\n      });\n    }\n  }, {\n    key: \"submitLink\",\n    value: function submitLink(event) {\n      event.preventDefault();\n      this.toggle();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          url = _this$props.url,\n          onChange = _this$props.onChange;\n      var expanded = this.state.expanded;\n      var buttonLabel = url ? Object(external_this_wp_i18n_[\"__\"])('Edit link') : Object(external_this_wp_i18n_[\"__\"])('Insert link');\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-input__button\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: library_link[\"a\" /* default */],\n        label: buttonLabel,\n        onClick: this.toggle,\n        className: \"components-toolbar__control\",\n        isPressed: !!url\n      }), expanded && Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n        className: \"block-editor-url-input__button-modal\",\n        onSubmit: this.submitLink\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-editor-url-input__button-modal-line\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"block-editor-url-input__back\",\n        icon: arrow_left,\n        label: Object(external_this_wp_i18n_[\"__\"])('Close'),\n        onClick: this.toggle\n      }), Object(external_this_wp_element_[\"createElement\"])(url_input, {\n        value: url || '',\n        onChange: onChange\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: keyboard_return[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('Submit'),\n        type: \"submit\"\n      }))));\n    }\n  }]);\n\n  return URLInputButton;\n}(external_this_wp_element_[\"Component\"]);\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/url-input/README.md\n */\n\n\n/* harmony default export */ var url_input_button = (button_URLInputButton);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-popover/image-url-input-ui.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar LINK_DESTINATION_NONE = 'none';\nvar LINK_DESTINATION_CUSTOM = 'custom';\nvar LINK_DESTINATION_MEDIA = 'media';\nvar LINK_DESTINATION_ATTACHMENT = 'attachment';\nvar NEW_TAB_REL = ['noreferrer', 'noopener'];\nvar image_url_input_ui_icon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M0,0h24v24H0V0z\",\n  fill: \"none\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\"\n}));\n\nvar image_url_input_ui_ImageURLInputUI = function ImageURLInputUI(_ref) {\n  var linkDestination = _ref.linkDestination,\n      onChangeUrl = _ref.onChangeUrl,\n      url = _ref.url,\n      _ref$mediaType = _ref.mediaType,\n      mediaType = _ref$mediaType === void 0 ? 'image' : _ref$mediaType,\n      mediaUrl = _ref.mediaUrl,\n      mediaLink = _ref.mediaLink,\n      linkTarget = _ref.linkTarget,\n      linkClass = _ref.linkClass,\n      rel = _ref.rel;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isOpen = _useState2[0],\n      setIsOpen = _useState2[1];\n\n  var openLinkUI = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    setIsOpen(true);\n  });\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isEditingLink = _useState4[0],\n      setIsEditingLink = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      urlInput = _useState6[0],\n      setUrlInput = _useState6[1];\n\n  var autocompleteRef = Object(external_this_wp_element_[\"useRef\"])(null);\n\n  var stopPropagation = function stopPropagation(event) {\n    event.stopPropagation();\n  };\n\n  var stopPropagationRelevantKeys = function stopPropagationRelevantKeys(event) {\n    if ([external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"BACKSPACE\"], external_this_wp_keycodes_[\"ENTER\"]].indexOf(event.keyCode) > -1) {\n      // Stop the key event from propagating up to ObserveTyping.startTypingInTextField.\n      event.stopPropagation();\n    }\n  };\n\n  var startEditLink = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    if (linkDestination === LINK_DESTINATION_MEDIA || linkDestination === LINK_DESTINATION_ATTACHMENT) {\n      setUrlInput('');\n    }\n\n    setIsEditingLink(true);\n  });\n  var stopEditLink = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    setIsEditingLink(false);\n  });\n  var closeLinkUI = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    setUrlInput(null);\n    stopEditLink();\n    setIsOpen(false);\n  });\n\n  var removeNewTabRel = function removeNewTabRel(currentRel) {\n    var newRel = currentRel;\n\n    if (currentRel !== undefined && !Object(external_this_lodash_[\"isEmpty\"])(newRel)) {\n      if (!Object(external_this_lodash_[\"isEmpty\"])(newRel)) {\n        Object(external_this_lodash_[\"each\"])(NEW_TAB_REL, function (relVal) {\n          var regExp = new RegExp('\\\\b' + relVal + '\\\\b', 'gi');\n          newRel = newRel.replace(regExp, '');\n        }); // Only trim if NEW_TAB_REL values was replaced.\n\n        if (newRel !== currentRel) {\n          newRel = newRel.trim();\n        }\n\n        if (Object(external_this_lodash_[\"isEmpty\"])(newRel)) {\n          newRel = undefined;\n        }\n      }\n    }\n\n    return newRel;\n  };\n\n  var getUpdatedLinkTargetSettings = function getUpdatedLinkTargetSettings(value) {\n    var newLinkTarget = value ? '_blank' : undefined;\n    var updatedRel;\n\n    if (!newLinkTarget && !rel) {\n      updatedRel = undefined;\n    } else {\n      updatedRel = removeNewTabRel(rel);\n    }\n\n    return {\n      linkTarget: newLinkTarget,\n      rel: updatedRel\n    };\n  };\n\n  var onFocusOutside = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return function (event) {\n      // The autocomplete suggestions list renders in a separate popover (in a portal),\n      // so onFocusOutside fails to detect that a click on a suggestion occurred in the\n      // LinkContainer. Detect clicks on autocomplete suggestions using a ref here, and\n      // return to avoid the popover being closed.\n      var autocompleteElement = autocompleteRef.current;\n\n      if (autocompleteElement && autocompleteElement.contains(event.target)) {\n        return;\n      }\n\n      setIsOpen(false);\n      setUrlInput(null);\n      stopEditLink();\n    };\n  });\n  var onSubmitLinkChange = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return function (event) {\n      if (urlInput) {\n        onChangeUrl({\n          href: urlInput\n        });\n      }\n\n      stopEditLink();\n      setUrlInput(null);\n      event.preventDefault();\n    };\n  });\n  var onLinkRemove = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    onChangeUrl({\n      linkDestination: LINK_DESTINATION_NONE,\n      href: ''\n    });\n  });\n\n  var getLinkDestinations = function getLinkDestinations() {\n    return [{\n      linkDestination: LINK_DESTINATION_MEDIA,\n      title: Object(external_this_wp_i18n_[\"__\"])('Media File'),\n      url: mediaType === 'image' ? mediaUrl : undefined,\n      icon: image_url_input_ui_icon\n    }, {\n      linkDestination: LINK_DESTINATION_ATTACHMENT,\n      title: Object(external_this_wp_i18n_[\"__\"])('Attachment Page'),\n      url: mediaType === 'image' ? mediaLink : undefined,\n      icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n        viewBox: \"0 0 24 24\",\n        xmlns: \"http://www.w3.org/2000/svg\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n        d: \"M0 0h24v24H0V0z\",\n        fill: \"none\"\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n        d: \"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z\"\n      }))\n    }];\n  };\n\n  var onSetHref = function onSetHref(value) {\n    var linkDestinations = getLinkDestinations();\n    var linkDestinationInput;\n\n    if (!value) {\n      linkDestinationInput = LINK_DESTINATION_NONE;\n    } else {\n      linkDestinationInput = (Object(external_this_lodash_[\"find\"])(linkDestinations, function (destination) {\n        return destination.url === value;\n      }) || {\n        linkDestination: LINK_DESTINATION_CUSTOM\n      }).linkDestination;\n    }\n\n    onChangeUrl({\n      linkDestination: linkDestinationInput,\n      href: value\n    });\n  };\n\n  var onSetNewTab = function onSetNewTab(value) {\n    var updatedLinkTarget = getUpdatedLinkTargetSettings(value);\n    onChangeUrl(updatedLinkTarget);\n  };\n\n  var onSetLinkRel = function onSetLinkRel(value) {\n    onChangeUrl({\n      rel: value\n    });\n  };\n\n  var onSetLinkClass = function onSetLinkClass(value) {\n    onChangeUrl({\n      linkClass: value\n    });\n  };\n\n  var advancedOptions = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Open in new tab'),\n    onChange: onSetNewTab,\n    checked: linkTarget === '_blank'\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Link Rel'),\n    value: removeNewTabRel(rel) || '',\n    onChange: onSetLinkRel,\n    onKeyPress: stopPropagation,\n    onKeyDown: stopPropagationRelevantKeys\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Link CSS Class'),\n    value: linkClass || '',\n    onKeyPress: stopPropagation,\n    onKeyDown: stopPropagationRelevantKeys,\n    onChange: onSetLinkClass\n  }));\n  var linkEditorValue = urlInput !== null ? urlInput : url;\n  var urlLabel = (Object(external_this_lodash_[\"find\"])(getLinkDestinations(), ['linkDestination', linkDestination]) || {}).title;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    icon: library_link[\"a\" /* default */],\n    className: \"components-toolbar__control\",\n    label: url ? Object(external_this_wp_i18n_[\"__\"])('Edit link') : Object(external_this_wp_i18n_[\"__\"])('Insert link'),\n    \"aria-expanded\": isOpen,\n    onClick: openLinkUI\n  }), isOpen && Object(external_this_wp_element_[\"createElement\"])(url_popover, {\n    onFocusOutside: onFocusOutside(),\n    onClose: closeLinkUI,\n    renderSettings: function renderSettings() {\n      return advancedOptions;\n    },\n    additionalControls: !linkEditorValue && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NavigableMenu\"], null, Object(external_this_lodash_[\"map\"])(getLinkDestinations(), function (link) {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        key: link.linkDestination,\n        icon: link.icon,\n        onClick: function onClick() {\n          setUrlInput(null);\n          onSetHref(link.url);\n          stopEditLink();\n        }\n      }, link.title);\n    }))\n  }, (!url || isEditingLink) && Object(external_this_wp_element_[\"createElement\"])(url_popover.LinkEditor, {\n    className: \"block-editor-format-toolbar__link-container-content\",\n    value: linkEditorValue,\n    onChangeInputValue: setUrlInput,\n    onKeyDown: stopPropagationRelevantKeys,\n    onKeyPress: stopPropagation,\n    onSubmit: onSubmitLinkChange(),\n    autocompleteRef: autocompleteRef\n  }), url && !isEditingLink && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(url_popover.LinkViewer, {\n    className: \"block-editor-format-toolbar__link-container-content\",\n    onKeyPress: stopPropagation,\n    url: url,\n    onEditLinkClick: startEditLink,\n    urlLabel: urlLabel\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    icon: library_close[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Remove link'),\n    onClick: onLinkRemove\n  }))));\n};\n\n\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js\nvar library_check = __webpack_require__(148);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/preview-options/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction PreviewOptions(_ref) {\n  var children = _ref.children,\n      className = _ref.className,\n      _ref$isEnabled = _ref.isEnabled,\n      isEnabled = _ref$isEnabled === void 0 ? true : _ref$isEnabled,\n      deviceType = _ref.deviceType,\n      setDeviceType = _ref.setDeviceType;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    className: \"block-editor-post-preview__dropdown\",\n    contentClassName: classnames_default()(className, 'block-editor-post-preview__dropdown-content'),\n    popoverProps: {\n      role: 'menu'\n    },\n    position: \"bottom left\",\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isTertiary: true,\n        onClick: onToggle,\n        className: \"block-editor-post-preview__button-toggle\",\n        \"aria-expanded\": isOpen,\n        disabled: !isEnabled\n      }, Object(external_this_wp_i18n_[\"__\"])('Preview'));\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        className: \"block-editor-post-preview__button-resize\",\n        onClick: function onClick() {\n          return setDeviceType('Desktop');\n        },\n        icon: deviceType === 'Desktop' && library_check[\"a\" /* default */]\n      }, Object(external_this_wp_i18n_[\"__\"])('Desktop')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        className: \"block-editor-post-preview__button-resize\",\n        onClick: function onClick() {\n          return setDeviceType('Tablet');\n        },\n        icon: deviceType === 'Tablet' && library_check[\"a\" /* default */]\n      }, Object(external_this_wp_i18n_[\"__\"])('Tablet')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        className: \"block-editor-post-preview__button-resize\",\n        onClick: function onClick() {\n          return setDeviceType('Mobile');\n        },\n        icon: deviceType === 'Mobile' && library_check[\"a\" /* default */]\n      }, Object(external_this_wp_i18n_[\"__\"])('Mobile'))), children);\n    }\n  });\n}\n\n// EXTERNAL MODULE: ./node_modules/css-mediaquery/index.js\nvar css_mediaquery = __webpack_require__(259);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-simulated-media-query/index.js\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar ENABLED_MEDIA_QUERY = '(min-width:0px)';\nvar DISABLED_MEDIA_QUERY = '(min-width:999999px)';\nvar VALID_MEDIA_QUERY_REGEX = /\\((min|max)-width:[^\\(]*?\\)/g;\n\nfunction getStyleSheetsThatMatchHostname() {\n  if (typeof window === 'undefined') {\n    return [];\n  }\n\n  return Object(external_this_lodash_[\"filter\"])(Object(external_this_lodash_[\"get\"])(window, ['document', 'styleSheets'], []), function (styleSheet) {\n    if (!styleSheet.href) {\n      return false;\n    }\n\n    return Object(external_this_wp_url_[\"getProtocol\"])(styleSheet.href) === window.location.protocol && Object(external_this_wp_url_[\"getAuthority\"])(styleSheet.href) === window.location.host;\n  });\n}\n\nfunction isReplaceableMediaRule(rule) {\n  if (!rule.media) {\n    return false;\n  } // Need to use \"media.mediaText\" instead of \"conditionText\" for IE support.\n\n\n  return !!rule.media.mediaText.match(VALID_MEDIA_QUERY_REGEX);\n}\n\nfunction replaceRule(styleSheet, newRuleText, index) {\n  styleSheet.deleteRule(index);\n  styleSheet.insertRule(newRuleText, index);\n}\n\nfunction replaceMediaQueryWithWidthEvaluation(ruleText, widthValue) {\n  return ruleText.replace(VALID_MEDIA_QUERY_REGEX, function (matchedSubstring) {\n    if (Object(css_mediaquery[\"match\"])(matchedSubstring, {\n      type: 'screen',\n      width: widthValue\n    })) {\n      return ENABLED_MEDIA_QUERY;\n    }\n\n    return DISABLED_MEDIA_QUERY;\n  });\n}\n/**\n * Function that manipulates media queries from stylesheets to simulate a given\n * viewport width.\n *\n * @param {string}  marker CSS selector string defining start and end of\n *                         manipulable styles.\n * @param {number?} width  Viewport width to simulate. If provided null, the\n *                         stylesheets will not be modified.\n */\n\n\nfunction useSimulatedMediaQuery(marker, width) {\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!width) {\n      return;\n    }\n\n    var styleSheets = getStyleSheetsThatMatchHostname();\n    var originalStyles = [];\n    styleSheets.forEach(function (styleSheet, styleSheetIndex) {\n      var relevantSection = false;\n\n      for (var ruleIndex = 0; ruleIndex < styleSheet.cssRules.length; ++ruleIndex) {\n        var rule = styleSheet.cssRules[ruleIndex];\n\n        if (rule.type !== window.CSSRule.STYLE_RULE && rule.type !== window.CSSRule.MEDIA_RULE) {\n          continue;\n        }\n\n        if (!relevantSection && !!rule.cssText.match(new RegExp(\"#start-\".concat(marker)))) {\n          relevantSection = true;\n        }\n\n        if (relevantSection && !!rule.cssText.match(new RegExp(\"#end-\".concat(marker)))) {\n          relevantSection = false;\n        }\n\n        if (!relevantSection || !isReplaceableMediaRule(rule)) {\n          continue;\n        }\n\n        var ruleText = rule.cssText;\n\n        if (!originalStyles[styleSheetIndex]) {\n          originalStyles[styleSheetIndex] = [];\n        }\n\n        originalStyles[styleSheetIndex][ruleIndex] = ruleText;\n        replaceRule(styleSheet, replaceMediaQueryWithWidthEvaluation(ruleText, width), ruleIndex);\n      }\n    });\n    return function () {\n      originalStyles.forEach(function (rulesCollection, styleSheetIndex) {\n        if (!rulesCollection) {\n          return;\n        }\n\n        for (var ruleIndex = 0; ruleIndex < rulesCollection.length; ++ruleIndex) {\n          var originalRuleText = rulesCollection[ruleIndex];\n\n          if (originalRuleText) {\n            replaceRule(styleSheets[styleSheetIndex], originalRuleText, ruleIndex);\n          }\n        }\n      });\n    };\n  }, [width]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/use-resize-canvas/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Function to resize the editor window.\n *\n * @param {string} deviceType Used for determining the size of the container (e.g. Desktop, Tablet, Mobile)\n *\n * @return {Object} Inline styles to be added to resizable container.\n */\n\nfunction useResizeCanvas(deviceType) {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(window.innerWidth),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      actualWidth = _useState2[0],\n      updateActualWidth = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (deviceType === 'Desktop') {\n      return;\n    }\n\n    var resizeListener = function resizeListener() {\n      return updateActualWidth(window.innerWidth);\n    };\n\n    window.addEventListener('resize', resizeListener);\n    return function () {\n      window.removeEventListener('resize', resizeListener);\n    };\n  }, [deviceType]);\n\n  var getCanvasWidth = function getCanvasWidth(device) {\n    var deviceWidth;\n\n    switch (device) {\n      case 'Tablet':\n        deviceWidth = 780;\n        break;\n\n      case 'Mobile':\n        deviceWidth = 360;\n        break;\n\n      default:\n        return null;\n    }\n\n    return deviceWidth < actualWidth ? deviceWidth : actualWidth;\n  };\n\n  var marginValue = function marginValue() {\n    return window.innerHeight < 800 ? 36 : 72;\n  };\n\n  var contentInlineStyles = function contentInlineStyles(device) {\n    switch (device) {\n      case 'Tablet':\n      case 'Mobile':\n        return {\n          width: getCanvasWidth(device),\n          margin: marginValue() + 'px auto',\n          flexGrow: 0,\n          maxHeight: device === 'Mobile' ? '768px' : '1024px',\n          overflowY: 'auto'\n        };\n\n      default:\n        return null;\n    }\n  };\n\n  useSimulatedMediaQuery('resizable-editor-section', getCanvasWidth(deviceType));\n  return contentInlineStyles(deviceType);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/skip-to-selected-block/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar skip_to_selected_block_SkipToSelectedBlock = function SkipToSelectedBlock(_ref) {\n  var selectedBlockClientId = _ref.selectedBlockClientId;\n\n  var onClick = function onClick() {\n    var selectedBlockElement = getBlockDOMNode(selectedBlockClientId);\n    selectedBlockElement.focus();\n  };\n\n  return selectedBlockClientId && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    className: \"block-editor-skip-to-selected-block\",\n    onClick: onClick\n  }, Object(external_this_wp_i18n_[\"__\"])('Skip to the selected block'));\n};\n\n/* harmony default export */ var skip_to_selected_block = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    selectedBlockClientId: select('core/block-editor').getBlockSelectionStart()\n  };\n})(skip_to_selected_block_SkipToSelectedBlock));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"wordcount\"]}\nvar external_this_wp_wordcount_ = __webpack_require__(141);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/multi-selection-inspector/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction MultiSelectionInspector(_ref) {\n  var blocks = _ref.blocks;\n  var words = Object(external_this_wp_wordcount_[\"count\"])(Object(external_this_wp_blocks_[\"serialize\"])(blocks), 'words');\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-multi-selection-inspector__card\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BlockIcon, {\n    icon: library_stack,\n    showColors: true\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-multi-selection-inspector__card-content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-multi-selection-inspector__card-title\"\n  }, Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %d: number of blocks */\n  Object(external_this_wp_i18n_[\"_n\"])('%d block', '%d blocks', blocks.length), blocks.length)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-multi-selection-inspector__card-description\"\n  }, Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %d: number of words */\n  Object(external_this_wp_i18n_[\"_n\"])('%d word', '%d words', words), words))));\n}\n\n/* harmony default export */ var multi_selection_inspector = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getMultiSelectedBlocks = _select.getMultiSelectedBlocks;\n\n  return {\n    blocks: getMultiSelectedBlocks()\n  };\n})(MultiSelectionInspector));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/default-style-picker/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction DefaultStylePicker(_ref) {\n  var blockName = _ref.blockName;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var settings = select('core/block-editor').getSettings();\n    var preferredStyleVariations = settings.__experimentalPreferredStyleVariations;\n    return {\n      preferredStyle: Object(external_this_lodash_[\"get\"])(preferredStyleVariations, ['value', blockName]),\n      onUpdatePreferredStyleVariations: Object(external_this_lodash_[\"get\"])(preferredStyleVariations, ['onChange'], null),\n      styles: select('core/blocks').getBlockStyles(blockName)\n    };\n  }, [blockName]),\n      preferredStyle = _useSelect.preferredStyle,\n      onUpdatePreferredStyleVariations = _useSelect.onUpdatePreferredStyleVariations,\n      styles = _useSelect.styles;\n\n  var selectOptions = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Not set'),\n      value: ''\n    }].concat(Object(toConsumableArray[\"a\" /* default */])(styles.map(function (_ref2) {\n      var label = _ref2.label,\n          name = _ref2.name;\n      return {\n        label: label,\n        value: name\n      };\n    })));\n  }, [styles]);\n  var selectOnChange = Object(external_this_wp_element_[\"useCallback\"])(function (blockStyle) {\n    onUpdatePreferredStyleVariations(blockName, blockStyle);\n  }, [blockName, onUpdatePreferredStyleVariations]);\n  return onUpdatePreferredStyleVariations && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    options: selectOptions,\n    value: preferredStyle || '',\n    label: Object(external_this_wp_i18n_[\"__\"])('Default Style'),\n    onChange: selectOnChange\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-inspector/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\nvar block_inspector_BlockInspector = function BlockInspector(_ref) {\n  var blockType = _ref.blockType,\n      count = _ref.count,\n      hasBlockStyles = _ref.hasBlockStyles,\n      selectedBlockClientId = _ref.selectedBlockClientId,\n      selectedBlockName = _ref.selectedBlockName,\n      _ref$showNoBlockSelec = _ref.showNoBlockSelectedMessage,\n      showNoBlockSelectedMessage = _ref$showNoBlockSelec === void 0 ? true : _ref$showNoBlockSelec;\n\n  if (count > 1) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"block-editor-block-inspector\"\n    }, Object(external_this_wp_element_[\"createElement\"])(multi_selection_inspector, null), Object(external_this_wp_element_[\"createElement\"])(inspector_controls.Slot, {\n      bubblesVirtually: true\n    }));\n  }\n\n  var isSelectedBlockUnregistered = selectedBlockName === Object(external_this_wp_blocks_[\"getUnregisteredTypeHandlerName\"])();\n  /*\n   * If the selected block is of an unregistered type, avoid showing it as an actual selection\n   * because we want the user to focus on the unregistered block warning, not block settings.\n   */\n\n  if (!blockType || !selectedBlockClientId || isSelectedBlockUnregistered) {\n    if (showNoBlockSelectedMessage) {\n      return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        className: \"block-editor-block-inspector__no-blocks\"\n      }, Object(external_this_wp_i18n_[\"__\"])('No block selected.'));\n    }\n\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-block-inspector\"\n  }, Object(external_this_wp_element_[\"createElement\"])(block_card, {\n    blockType: blockType\n  }), hasBlockStyles && Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Styles')\n  }, Object(external_this_wp_element_[\"createElement\"])(block_styles, {\n    clientId: selectedBlockClientId\n  }), Object(external_this_wp_blocks_[\"hasBlockSupport\"])(blockType.name, 'defaultStylePicker', true) && Object(external_this_wp_element_[\"createElement\"])(DefaultStylePicker, {\n    blockName: blockType.name\n  }))), Object(external_this_wp_element_[\"createElement\"])(inspector_controls.Slot, {\n    bubblesVirtually: true\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(block_inspector_AdvancedControls, {\n    slotName: inspector_advanced_controls.slotName\n  })), Object(external_this_wp_element_[\"createElement\"])(skip_to_selected_block, {\n    key: \"back\"\n  }));\n};\n\nvar block_inspector_AdvancedControls = function AdvancedControls(_ref2) {\n  var slotName = _ref2.slotName;\n  var slot = Object(external_this_wp_components_[\"__experimentalUseSlot\"])(slotName);\n  var hasFills = Boolean(slot.fills && slot.fills.length);\n\n  if (!hasFills) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    className: \"block-editor-block-inspector__advanced\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Advanced'),\n    initialOpen: false\n  }, Object(external_this_wp_element_[\"createElement\"])(inspector_advanced_controls.Slot, {\n    bubblesVirtually: true\n  }));\n};\n\n/* harmony default export */ var block_inspector = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientId = _select.getSelectedBlockClientId,\n      getSelectedBlockCount = _select.getSelectedBlockCount,\n      getBlockName = _select.getBlockName;\n\n  var _select2 = select('core/blocks'),\n      getBlockStyles = _select2.getBlockStyles;\n\n  var selectedBlockClientId = getSelectedBlockClientId();\n  var selectedBlockName = selectedBlockClientId && getBlockName(selectedBlockClientId);\n  var blockType = selectedBlockClientId && Object(external_this_wp_blocks_[\"getBlockType\"])(selectedBlockName);\n  var blockStyles = selectedBlockClientId && getBlockStyles(selectedBlockName);\n  return {\n    count: getSelectedBlockCount(),\n    hasBlockStyles: blockStyles && blockStyles.length > 0,\n    selectedBlockName: selectedBlockName,\n    selectedBlockClientId: selectedBlockClientId,\n    blockType: blockType\n  };\n})(block_inspector_BlockInspector));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/block-selection-clearer/index.js\n\n\n\n\n\n\n\n\n\nfunction block_selection_clearer_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_selection_clearer_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_selection_clearer_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar block_selection_clearer_BlockSelectionClearer = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BlockSelectionClearer, _Component);\n\n  var _super = block_selection_clearer_createSuper(BlockSelectionClearer);\n\n  function BlockSelectionClearer() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BlockSelectionClearer);\n\n    _this = _super.apply(this, arguments);\n    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.clearSelectionIfFocusTarget = _this.clearSelectionIfFocusTarget.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BlockSelectionClearer, [{\n    key: \"bindContainer\",\n    value: function bindContainer(ref) {\n      this.container = ref;\n    }\n    /**\n     * Clears the selected block on focus if the container is the target of the\n     * focus. This assumes no other descendents have received focus until event\n     * has bubbled to the container.\n     *\n     * @param {FocusEvent} event Focus event.\n     */\n\n  }, {\n    key: \"clearSelectionIfFocusTarget\",\n    value: function clearSelectionIfFocusTarget(event) {\n      var _this$props = this.props,\n          hasSelectedBlock = _this$props.hasSelectedBlock,\n          hasMultiSelection = _this$props.hasMultiSelection,\n          clearSelectedBlock = _this$props.clearSelectedBlock;\n      var hasSelection = hasSelectedBlock || hasMultiSelection;\n\n      if (event.target === this.container && hasSelection) {\n        clearSelectedBlock();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n        tabIndex: -1,\n        onFocus: this.clearSelectionIfFocusTarget,\n        ref: this.bindContainer\n      }, Object(external_this_lodash_[\"omit\"])(this.props, ['clearSelectedBlock', 'hasSelectedBlock', 'hasMultiSelection'])));\n    }\n  }]);\n\n  return BlockSelectionClearer;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var block_selection_clearer = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      hasSelectedBlock = _select.hasSelectedBlock,\n      hasMultiSelection = _select.hasMultiSelection;\n\n  return {\n    hasSelectedBlock: hasSelectedBlock(),\n    hasMultiSelection: hasMultiSelection()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      clearSelectedBlock = _dispatch.clearSelectedBlock;\n\n  return {\n    clearSelectedBlock: clearSelectedBlock\n  };\n})])(block_selection_clearer_BlockSelectionClearer));\n\n// EXTERNAL MODULE: ./node_modules/traverse/index.js\nvar traverse = __webpack_require__(260);\nvar traverse_default = /*#__PURE__*/__webpack_require__.n(traverse);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/parse.js\n\n\n/* eslint-disable @wordpress/no-unused-vars-before-return */\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n// http://www.w3.org/TR/CSS21/grammar.htm\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar commentre = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n/* harmony default export */ var parse = (function (css, options) {\n  options = options || {};\n  /**\n   * Positional.\n   */\n\n  var lineno = 1;\n  var column = 1;\n  /**\n   * Update lineno and column based on `str`.\n   */\n\n  function updatePosition(str) {\n    var lines = str.match(/\\n/g);\n\n    if (lines) {\n      lineno += lines.length;\n    }\n\n    var i = str.lastIndexOf('\\n'); // eslint-disable-next-line no-bitwise\n\n    column = ~i ? str.length - i : column + str.length;\n  }\n  /**\n   * Mark position and patch `node.position`.\n   */\n\n\n  function position() {\n    var start = {\n      line: lineno,\n      column: column\n    };\n    return function (node) {\n      node.position = new Position(start);\n      whitespace();\n      return node;\n    };\n  }\n  /**\n   * Store position information for a node\n   */\n\n\n  function Position(start) {\n    this.start = start;\n    this.end = {\n      line: lineno,\n      column: column\n    };\n    this.source = options.source;\n  }\n  /**\n   * Non-enumerable source string\n   */\n\n\n  Position.prototype.content = css;\n  /**\n   * Error `msg`.\n   */\n\n  var errorsList = [];\n\n  function error(msg) {\n    var err = new Error(options.source + ':' + lineno + ':' + column + ': ' + msg);\n    err.reason = msg;\n    err.filename = options.source;\n    err.line = lineno;\n    err.column = column;\n    err.source = css;\n\n    if (options.silent) {\n      errorsList.push(err);\n    } else {\n      throw err;\n    }\n  }\n  /**\n   * Parse stylesheet.\n   */\n\n\n  function stylesheet() {\n    var rulesList = rules();\n    return {\n      type: 'stylesheet',\n      stylesheet: {\n        source: options.source,\n        rules: rulesList,\n        parsingErrors: errorsList\n      }\n    };\n  }\n  /**\n   * Opening brace.\n   */\n\n\n  function open() {\n    return match(/^{\\s*/);\n  }\n  /**\n   * Closing brace.\n   */\n\n\n  function close() {\n    return match(/^}/);\n  }\n  /**\n   * Parse ruleset.\n   */\n\n\n  function rules() {\n    var node;\n    var accumulator = [];\n    whitespace();\n    comments(accumulator);\n\n    while (css.length && css.charAt(0) !== '}' && (node = atrule() || rule())) {\n      if (node !== false) {\n        accumulator.push(node);\n        comments(accumulator);\n      }\n    }\n\n    return accumulator;\n  }\n  /**\n   * Match `re` and return captures.\n   */\n\n\n  function match(re) {\n    var m = re.exec(css);\n\n    if (!m) {\n      return;\n    }\n\n    var str = m[0];\n    updatePosition(str);\n    css = css.slice(str.length);\n    return m;\n  }\n  /**\n   * Parse whitespace.\n   */\n\n\n  function whitespace() {\n    match(/^\\s*/);\n  }\n  /**\n   * Parse comments;\n   */\n\n\n  function comments(accumulator) {\n    var c;\n    accumulator = accumulator || []; // eslint-disable-next-line no-cond-assign\n\n    while (c = comment()) {\n      if (c !== false) {\n        accumulator.push(c);\n      }\n    }\n\n    return accumulator;\n  }\n  /**\n   * Parse comment.\n   */\n\n\n  function comment() {\n    var pos = position();\n\n    if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) {\n      return;\n    }\n\n    var i = 2;\n\n    while ('' !== css.charAt(i) && ('*' !== css.charAt(i) || '/' !== css.charAt(i + 1))) {\n      ++i;\n    }\n\n    i += 2;\n\n    if ('' === css.charAt(i - 1)) {\n      return error('End of comment missing');\n    }\n\n    var str = css.slice(2, i - 2);\n    column += 2;\n    updatePosition(str);\n    css = css.slice(i);\n    column += 2;\n    return pos({\n      type: 'comment',\n      comment: str\n    });\n  }\n  /**\n   * Parse selector.\n   */\n\n\n  function selector() {\n    var m = match(/^([^{]+)/);\n\n    if (!m) {\n      return;\n    } // FIXME: Remove all comments from selectors http://ostermiller.org/findcomment.html\n\n\n    return trim(m[0]).replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*\\/+/g, '').replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function (matched) {\n      return matched.replace(/,/g, \"\\u200C\");\n    }).split(/\\s*(?![^(]*\\)),\\s*/).map(function (s) {\n      return s.replace(/\\u200C/g, ',');\n    });\n  }\n  /**\n   * Parse declaration.\n   */\n\n\n  function declaration() {\n    var pos = position(); // prop\n\n    var prop = match(/^(\\*?[-#\\/\\*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n\n    if (!prop) {\n      return;\n    }\n\n    prop = trim(prop[0]); // :\n\n    if (!match(/^:\\s*/)) {\n      return error(\"property missing ':'\");\n    } // val\n\n\n    var val = match(/^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^\\)]*?\\)|[^};])+)/);\n    var ret = pos({\n      type: 'declaration',\n      property: prop.replace(commentre, ''),\n      value: val ? trim(val[0]).replace(commentre, '') : ''\n    }); // ;\n\n    match(/^[;\\s]*/);\n    return ret;\n  }\n  /**\n   * Parse declarations.\n   */\n\n\n  function declarations() {\n    var decls = [];\n\n    if (!open()) {\n      return error(\"missing '{'\");\n    }\n\n    comments(decls); // declarations\n\n    var decl; // eslint-disable-next-line no-cond-assign\n\n    while (decl = declaration()) {\n      if (decl !== false) {\n        decls.push(decl);\n        comments(decls);\n      }\n    }\n\n    if (!close()) {\n      return error(\"missing '}'\");\n    }\n\n    return decls;\n  }\n  /**\n   * Parse keyframe.\n   */\n\n\n  function keyframe() {\n    var m;\n    var vals = [];\n    var pos = position(); // eslint-disable-next-line no-cond-assign\n\n    while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n      vals.push(m[1]);\n      match(/^,\\s*/);\n    }\n\n    if (!vals.length) {\n      return;\n    }\n\n    return pos({\n      type: 'keyframe',\n      values: vals,\n      declarations: declarations()\n    });\n  }\n  /**\n   * Parse keyframes.\n   */\n\n\n  function atkeyframes() {\n    var pos = position();\n    var m = match(/^@([-\\w]+)?keyframes\\s*/);\n\n    if (!m) {\n      return;\n    }\n\n    var vendor = m[1]; // identifier\n\n    m = match(/^([-\\w]+)\\s*/);\n\n    if (!m) {\n      return error('@keyframes missing name');\n    }\n\n    var name = m[1];\n\n    if (!open()) {\n      return error(\"@keyframes missing '{'\");\n    }\n\n    var frame;\n    var frames = comments(); // eslint-disable-next-line no-cond-assign\n\n    while (frame = keyframe()) {\n      frames.push(frame);\n      frames = frames.concat(comments());\n    }\n\n    if (!close()) {\n      return error(\"@keyframes missing '}'\");\n    }\n\n    return pos({\n      type: 'keyframes',\n      name: name,\n      vendor: vendor,\n      keyframes: frames\n    });\n  }\n  /**\n   * Parse supports.\n   */\n\n\n  function atsupports() {\n    var pos = position();\n    var m = match(/^@supports *([^{]+)/);\n\n    if (!m) {\n      return;\n    }\n\n    var supports = trim(m[1]);\n\n    if (!open()) {\n      return error(\"@supports missing '{'\");\n    }\n\n    var style = comments().concat(rules());\n\n    if (!close()) {\n      return error(\"@supports missing '}'\");\n    }\n\n    return pos({\n      type: 'supports',\n      supports: supports,\n      rules: style\n    });\n  }\n  /**\n   * Parse host.\n   */\n\n\n  function athost() {\n    var pos = position();\n    var m = match(/^@host\\s*/);\n\n    if (!m) {\n      return;\n    }\n\n    if (!open()) {\n      return error(\"@host missing '{'\");\n    }\n\n    var style = comments().concat(rules());\n\n    if (!close()) {\n      return error(\"@host missing '}'\");\n    }\n\n    return pos({\n      type: 'host',\n      rules: style\n    });\n  }\n  /**\n   * Parse media.\n   */\n\n\n  function atmedia() {\n    var pos = position();\n    var m = match(/^@media *([^{]+)/);\n\n    if (!m) {\n      return;\n    }\n\n    var media = trim(m[1]);\n\n    if (!open()) {\n      return error(\"@media missing '{'\");\n    }\n\n    var style = comments().concat(rules());\n\n    if (!close()) {\n      return error(\"@media missing '}'\");\n    }\n\n    return pos({\n      type: 'media',\n      media: media,\n      rules: style\n    });\n  }\n  /**\n   * Parse custom-media.\n   */\n\n\n  function atcustommedia() {\n    var pos = position();\n    var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n\n    if (!m) {\n      return;\n    }\n\n    return pos({\n      type: 'custom-media',\n      name: trim(m[1]),\n      media: trim(m[2])\n    });\n  }\n  /**\n   * Parse paged media.\n   */\n\n\n  function atpage() {\n    var pos = position();\n    var m = match(/^@page */);\n\n    if (!m) {\n      return;\n    }\n\n    var sel = selector() || [];\n\n    if (!open()) {\n      return error(\"@page missing '{'\");\n    }\n\n    var decls = comments(); // declarations\n\n    var decl; // eslint-disable-next-line no-cond-assign\n\n    while (decl = declaration()) {\n      decls.push(decl);\n      decls = decls.concat(comments());\n    }\n\n    if (!close()) {\n      return error(\"@page missing '}'\");\n    }\n\n    return pos({\n      type: 'page',\n      selectors: sel,\n      declarations: decls\n    });\n  }\n  /**\n   * Parse document.\n   */\n\n\n  function atdocument() {\n    var pos = position();\n    var m = match(/^@([-\\w]+)?document *([^{]+)/);\n\n    if (!m) {\n      return;\n    }\n\n    var vendor = trim(m[1]);\n    var doc = trim(m[2]);\n\n    if (!open()) {\n      return error(\"@document missing '{'\");\n    }\n\n    var style = comments().concat(rules());\n\n    if (!close()) {\n      return error(\"@document missing '}'\");\n    }\n\n    return pos({\n      type: 'document',\n      document: doc,\n      vendor: vendor,\n      rules: style\n    });\n  }\n  /**\n   * Parse font-face.\n   */\n\n\n  function atfontface() {\n    var pos = position();\n    var m = match(/^@font-face\\s*/);\n\n    if (!m) {\n      return;\n    }\n\n    if (!open()) {\n      return error(\"@font-face missing '{'\");\n    }\n\n    var decls = comments(); // declarations\n\n    var decl; // eslint-disable-next-line no-cond-assign\n\n    while (decl = declaration()) {\n      decls.push(decl);\n      decls = decls.concat(comments());\n    }\n\n    if (!close()) {\n      return error(\"@font-face missing '}'\");\n    }\n\n    return pos({\n      type: 'font-face',\n      declarations: decls\n    });\n  }\n  /**\n   * Parse import\n   */\n\n\n  var atimport = _compileAtrule('import');\n  /**\n   * Parse charset\n   */\n\n\n  var atcharset = _compileAtrule('charset');\n  /**\n   * Parse namespace\n   */\n\n\n  var atnamespace = _compileAtrule('namespace');\n  /**\n   * Parse non-block at-rules\n   */\n\n\n  function _compileAtrule(name) {\n    var re = new RegExp('^@' + name + '\\\\s*([^;]+);');\n    return function () {\n      var pos = position();\n      var m = match(re);\n\n      if (!m) {\n        return;\n      }\n\n      var ret = {\n        type: name\n      };\n      ret[name] = m[1].trim();\n      return pos(ret);\n    };\n  }\n  /**\n   * Parse at rule.\n   */\n\n\n  function atrule() {\n    if (css[0] !== '@') {\n      return;\n    }\n\n    return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface();\n  }\n  /**\n   * Parse rule.\n   */\n\n\n  function rule() {\n    var pos = position();\n    var sel = selector();\n\n    if (!sel) {\n      return error('selector missing');\n    }\n\n    comments();\n    return pos({\n      type: 'rule',\n      selectors: sel,\n      declarations: declarations()\n    });\n  }\n\n  return addParent(stylesheet());\n});\n/**\n * Trim `str`.\n */\n\nfunction trim(str) {\n  return str ? str.replace(/^\\s+|\\s+$/g, '') : '';\n}\n/**\n * Adds non-enumerable parent node reference to each node.\n */\n\n\nfunction addParent(obj, parent) {\n  var isNode = obj && typeof obj.type === 'string';\n  var childParent = isNode ? obj : parent;\n\n  for (var k in obj) {\n    var value = obj[k];\n\n    if (Array.isArray(value)) {\n      value.forEach(function (v) {\n        addParent(v, childParent);\n      });\n    } else if (value && Object(esm_typeof[\"a\" /* default */])(value) === 'object') {\n      addParent(value, childParent);\n    }\n  }\n\n  if (isNode) {\n    Object.defineProperty(obj, 'parent', {\n      configurable: true,\n      writable: true,\n      enumerable: false,\n      value: parent || null\n    });\n  }\n\n  return obj;\n}\n/* eslint-enable @wordpress/no-unused-vars-before-return */\n\n// EXTERNAL MODULE: ./node_modules/inherits/inherits_browser.js\nvar inherits_browser = __webpack_require__(159);\nvar inherits_browser_default = /*#__PURE__*/__webpack_require__.n(inherits_browser);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/compiler.js\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n/**\n * Expose `Compiler`.\n */\n/* harmony default export */ var stringify_compiler = (Compiler);\n/**\n * Initialize a compiler.\n */\n\nfunction Compiler(opts) {\n  this.options = opts || {};\n}\n/**\n * Emit `str`\n */\n\n\nCompiler.prototype.emit = function (str) {\n  return str;\n};\n/**\n * Visit `node`.\n */\n\n\nCompiler.prototype.visit = function (node) {\n  return this[node.type](node);\n};\n/**\n * Map visit over array of `nodes`, optionally using a `delim`\n */\n\n\nCompiler.prototype.mapVisit = function (nodes, delim) {\n  var buf = '';\n  delim = delim || '';\n\n  for (var i = 0, length = nodes.length; i < length; i++) {\n    buf += this.visit(nodes[i]);\n\n    if (delim && i < length - 1) {\n      buf += this.emit(delim);\n    }\n  }\n\n  return buf;\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/compress.js\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Expose compiler.\n */\n\n/* harmony default export */ var compress = (compress_Compiler);\n/**\n * Initialize a new `Compiler`.\n */\n\nfunction compress_Compiler(options) {\n  stringify_compiler.call(this, options);\n}\n/**\n * Inherit from `Base.prototype`.\n */\n\n\ninherits_browser_default()(compress_Compiler, stringify_compiler);\n/**\n * Compile `node`.\n */\n\ncompress_Compiler.prototype.compile = function (node) {\n  return node.stylesheet.rules.map(this.visit, this).join('');\n};\n/**\n * Visit comment node.\n */\n\n\ncompress_Compiler.prototype.comment = function (node) {\n  return this.emit('', node.position);\n};\n/**\n * Visit import node.\n */\n\n\ncompress_Compiler.prototype.import = function (node) {\n  return this.emit('@import ' + node.import + ';', node.position);\n};\n/**\n * Visit media node.\n */\n\n\ncompress_Compiler.prototype.media = function (node) {\n  return this.emit('@media ' + node.media, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');\n};\n/**\n * Visit document node.\n */\n\n\ncompress_Compiler.prototype.document = function (node) {\n  var doc = '@' + (node.vendor || '') + 'document ' + node.document;\n  return this.emit(doc, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');\n};\n/**\n * Visit charset node.\n */\n\n\ncompress_Compiler.prototype.charset = function (node) {\n  return this.emit('@charset ' + node.charset + ';', node.position);\n};\n/**\n * Visit namespace node.\n */\n\n\ncompress_Compiler.prototype.namespace = function (node) {\n  return this.emit('@namespace ' + node.namespace + ';', node.position);\n};\n/**\n * Visit supports node.\n */\n\n\ncompress_Compiler.prototype.supports = function (node) {\n  return this.emit('@supports ' + node.supports, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');\n};\n/**\n * Visit keyframes node.\n */\n\n\ncompress_Compiler.prototype.keyframes = function (node) {\n  return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit('{') + this.mapVisit(node.keyframes) + this.emit('}');\n};\n/**\n * Visit keyframe node.\n */\n\n\ncompress_Compiler.prototype.keyframe = function (node) {\n  var decls = node.declarations;\n  return this.emit(node.values.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');\n};\n/**\n * Visit page node.\n */\n\n\ncompress_Compiler.prototype.page = function (node) {\n  var sel = node.selectors.length ? node.selectors.join(', ') : '';\n  return this.emit('@page ' + sel, node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');\n};\n/**\n * Visit font-face node.\n */\n\n\ncompress_Compiler.prototype['font-face'] = function (node) {\n  return this.emit('@font-face', node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');\n};\n/**\n * Visit host node.\n */\n\n\ncompress_Compiler.prototype.host = function (node) {\n  return this.emit('@host', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');\n};\n/**\n * Visit custom-media node.\n */\n\n\ncompress_Compiler.prototype['custom-media'] = function (node) {\n  return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position);\n};\n/**\n * Visit rule node.\n */\n\n\ncompress_Compiler.prototype.rule = function (node) {\n  var decls = node.declarations;\n\n  if (!decls.length) {\n    return '';\n  }\n\n  return this.emit(node.selectors.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');\n};\n/**\n * Visit declaration node.\n */\n\n\ncompress_Compiler.prototype.declaration = function (node) {\n  return this.emit(node.property + ':' + node.value, node.position) + this.emit(';');\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/identity.js\n/* eslint-disable @wordpress/no-unused-vars-before-return */\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Expose compiler.\n */\n\n/* harmony default export */ var identity = (identity_Compiler);\n/**\n * Initialize a new `Compiler`.\n */\n\nfunction identity_Compiler(options) {\n  options = options || {};\n  stringify_compiler.call(this, options);\n  this.indentation = options.indent;\n}\n/**\n * Inherit from `Base.prototype`.\n */\n\n\ninherits_browser_default()(identity_Compiler, stringify_compiler);\n/**\n * Compile `node`.\n */\n\nidentity_Compiler.prototype.compile = function (node) {\n  return this.stylesheet(node);\n};\n/**\n * Visit stylesheet node.\n */\n\n\nidentity_Compiler.prototype.stylesheet = function (node) {\n  return this.mapVisit(node.stylesheet.rules, '\\n\\n');\n};\n/**\n * Visit comment node.\n */\n\n\nidentity_Compiler.prototype.comment = function (node) {\n  return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);\n};\n/**\n * Visit import node.\n */\n\n\nidentity_Compiler.prototype.import = function (node) {\n  return this.emit('@import ' + node.import + ';', node.position);\n};\n/**\n * Visit media node.\n */\n\n\nidentity_Compiler.prototype.media = function (node) {\n  return this.emit('@media ' + node.media, node.position) + this.emit(' {\\n' + this.indent(1)) + this.mapVisit(node.rules, '\\n\\n') + this.emit(this.indent(-1) + '\\n}');\n};\n/**\n * Visit document node.\n */\n\n\nidentity_Compiler.prototype.document = function (node) {\n  var doc = '@' + (node.vendor || '') + 'document ' + node.document;\n  return this.emit(doc, node.position) + this.emit(' ' + ' {\\n' + this.indent(1)) + this.mapVisit(node.rules, '\\n\\n') + this.emit(this.indent(-1) + '\\n}');\n};\n/**\n * Visit charset node.\n */\n\n\nidentity_Compiler.prototype.charset = function (node) {\n  return this.emit('@charset ' + node.charset + ';', node.position);\n};\n/**\n * Visit namespace node.\n */\n\n\nidentity_Compiler.prototype.namespace = function (node) {\n  return this.emit('@namespace ' + node.namespace + ';', node.position);\n};\n/**\n * Visit supports node.\n */\n\n\nidentity_Compiler.prototype.supports = function (node) {\n  return this.emit('@supports ' + node.supports, node.position) + this.emit(' {\\n' + this.indent(1)) + this.mapVisit(node.rules, '\\n\\n') + this.emit(this.indent(-1) + '\\n}');\n};\n/**\n * Visit keyframes node.\n */\n\n\nidentity_Compiler.prototype.keyframes = function (node) {\n  return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit(' {\\n' + this.indent(1)) + this.mapVisit(node.keyframes, '\\n') + this.emit(this.indent(-1) + '}');\n};\n/**\n * Visit keyframe node.\n */\n\n\nidentity_Compiler.prototype.keyframe = function (node) {\n  var decls = node.declarations;\n  return this.emit(this.indent()) + this.emit(node.values.join(', '), node.position) + this.emit(' {\\n' + this.indent(1)) + this.mapVisit(decls, '\\n') + this.emit(this.indent(-1) + '\\n' + this.indent() + '}\\n');\n};\n/**\n * Visit page node.\n */\n\n\nidentity_Compiler.prototype.page = function (node) {\n  var sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';\n  return this.emit('@page ' + sel, node.position) + this.emit('{\\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\\n') + this.emit(this.indent(-1)) + this.emit('\\n}');\n};\n/**\n * Visit font-face node.\n */\n\n\nidentity_Compiler.prototype['font-face'] = function (node) {\n  return this.emit('@font-face ', node.position) + this.emit('{\\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\\n') + this.emit(this.indent(-1)) + this.emit('\\n}');\n};\n/**\n * Visit host node.\n */\n\n\nidentity_Compiler.prototype.host = function (node) {\n  return this.emit('@host', node.position) + this.emit(' {\\n' + this.indent(1)) + this.mapVisit(node.rules, '\\n\\n') + this.emit(this.indent(-1) + '\\n}');\n};\n/**\n * Visit custom-media node.\n */\n\n\nidentity_Compiler.prototype['custom-media'] = function (node) {\n  return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position);\n};\n/**\n * Visit rule node.\n */\n\n\nidentity_Compiler.prototype.rule = function (node) {\n  var indent = this.indent();\n  var decls = node.declarations;\n\n  if (!decls.length) {\n    return '';\n  }\n\n  return this.emit(node.selectors.map(function (s) {\n    return indent + s;\n  }).join(',\\n'), node.position) + this.emit(' {\\n') + this.emit(this.indent(1)) + this.mapVisit(decls, '\\n') + this.emit(this.indent(-1)) + this.emit('\\n' + this.indent() + '}');\n};\n/**\n * Visit declaration node.\n */\n\n\nidentity_Compiler.prototype.declaration = function (node) {\n  return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value, node.position) + this.emit(';');\n};\n/**\n * Increase, decrease or return current indentation.\n */\n\n\nidentity_Compiler.prototype.indent = function (level) {\n  this.level = this.level || 1;\n\n  if (null !== level) {\n    this.level += level;\n    return '';\n  }\n\n  return Array(this.level).join(this.indentation || '  ');\n};\n/* eslint-enable @wordpress/no-unused-vars-before-return */\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/ast/stringify/index.js\n// Adapted from https://github.com/reworkcss/css\n// because we needed to remove source map support.\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Stringfy the given AST `node`.\n *\n * Options:\n *\n *  - `compress` space-optimized output\n *  - `sourcemap` return an object with `.code` and `.map`\n *\n * @param {Object} node\n * @param {Object} [options]\n * @return {string}\n */\n\n/* harmony default export */ var stringify = (function (node, options) {\n  options = options || {};\n  var compiler = options.compress ? new compress(options) : new identity(options);\n  var code = compiler.compile(node);\n  return code;\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/traverse.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction traverseCSS(css, callback) {\n  try {\n    var parsed = parse(css);\n    var updated = traverse_default.a.map(parsed, function (node) {\n      if (!node) {\n        return node;\n      }\n\n      var updatedNode = callback(node);\n      return this.update(updatedNode);\n    });\n    return stringify(updated);\n  } catch (err) {\n    // eslint-disable-next-line no-console\n    console.warn('Error while traversing the CSS: ' + err);\n    return null;\n  }\n}\n\n/* harmony default export */ var transform_styles_traverse = (traverseCSS);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/transforms/url-rewrite.js\n\n\nfunction url_rewrite_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction url_rewrite_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { url_rewrite_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { url_rewrite_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Return `true` if the given path is http/https.\n *\n * @param  {string}  filePath path\n *\n * @return {boolean} is remote path.\n */\nfunction isRemotePath(filePath) {\n  return /^(?:https?:)?\\/\\//.test(filePath);\n}\n/**\n * Return `true` if the given filePath is an absolute url.\n *\n * @param  {string}  filePath path\n *\n * @return {boolean} is absolute path.\n */\n\n\nfunction isAbsolutePath(filePath) {\n  return /^\\/(?!\\/)/.test(filePath);\n}\n/**\n * Whether or not the url should be inluded.\n *\n * @param  {Object} meta url meta info\n *\n * @return {boolean} is valid.\n */\n\n\nfunction isValidURL(meta) {\n  // ignore hashes or data uris\n  if (meta.value.indexOf('data:') === 0 || meta.value.indexOf('#') === 0) {\n    return false;\n  }\n\n  if (isAbsolutePath(meta.value)) {\n    return false;\n  } // do not handle the http/https urls if `includeRemote` is false\n\n\n  if (isRemotePath(meta.value)) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Get the absolute path of the url, relative to the basePath\n *\n * @param  {string} str          the url\n * @param  {string} baseURL      base URL\n *\n * @return {string}              the full path to the file\n */\n\n\nfunction getResourcePath(str, baseURL) {\n  return new URL(str, baseURL).toString();\n}\n/**\n * Process the single `url()` pattern\n *\n * @param  {string} baseURL  the base URL for relative URLs\n * @return {Promise}         the Promise\n */\n\n\nfunction processURL(baseURL) {\n  return function (meta) {\n    return url_rewrite_objectSpread({}, meta, {\n      newUrl: 'url(' + meta.before + meta.quote + getResourcePath(meta.value, baseURL) + meta.quote + meta.after + ')'\n    });\n  };\n}\n/**\n * Get all `url()`s, and return the meta info\n *\n * @param  {string} value decl.value\n *\n * @return {Array}        the urls\n */\n\n\nfunction getURLs(value) {\n  var reg = /url\\((\\s*)(['\"]?)(.+?)\\2(\\s*)\\)/g;\n  var match;\n  var URLs = [];\n\n  while ((match = reg.exec(value)) !== null) {\n    var meta = {\n      source: match[0],\n      before: match[1],\n      quote: match[2],\n      value: match[3],\n      after: match[4]\n    };\n\n    if (isValidURL(meta)) {\n      URLs.push(meta);\n    }\n  }\n\n  return URLs;\n}\n/**\n * Replace the raw value's `url()` segment to the new value\n *\n * @param  {string} raw  the raw value\n * @param  {Array}  URLs the URLs to replace\n *\n * @return {string}     the new value\n */\n\n\nfunction replaceURLs(raw, URLs) {\n  URLs.forEach(function (item) {\n    raw = raw.replace(item.source, item.newUrl);\n  });\n  return raw;\n}\n\nvar rewrite = function rewrite(rootURL) {\n  return function (node) {\n    if (node.type === 'declaration') {\n      var updatedURLs = getURLs(node.value).map(processURL(rootURL));\n      return url_rewrite_objectSpread({}, node, {\n        value: replaceURLs(node.value, updatedURLs)\n      });\n    }\n\n    return node;\n  };\n};\n\n/* harmony default export */ var url_rewrite = (rewrite);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/transforms/wrap.js\n\n\nfunction wrap_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction wrap_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { wrap_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { wrap_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * @constant string IS_ROOT_TAG Regex to check if the selector is a root tag selector.\n */\nvar IS_ROOT_TAG = /^(body|html|:root).*$/;\n\nvar wrap = function wrap(namespace) {\n  var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  return function (node) {\n    var updateSelector = function updateSelector(selector) {\n      if (ignore.includes(selector.trim())) {\n        return selector;\n      } // Anything other than a root tag is always prefixed.\n\n\n      {\n        if (!selector.match(IS_ROOT_TAG)) {\n          return namespace + ' ' + selector;\n        }\n      } // HTML and Body elements cannot be contained within our container so lets extract their styles.\n\n      return selector.replace(/^(body|html|:root)/, namespace);\n    };\n\n    if (node.type === 'rule') {\n      return wrap_objectSpread({}, node, {\n        selectors: node.selectors.map(updateSelector)\n      });\n    }\n\n    return node;\n  };\n};\n\n/* harmony default export */ var transforms_wrap = (wrap);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/transform-styles/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @param {Array} styles CSS rules.\n * @param {string} wrapperClassName Wrapper Class Name.\n * @return {Array} converted rules.\n */\n\nvar transform_styles_transformStyles = function transformStyles(styles) {\n  var wrapperClassName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return Object(external_this_lodash_[\"map\"])(styles, function (_ref) {\n    var css = _ref.css,\n        baseURL = _ref.baseURL;\n    var transforms = [];\n\n    if (wrapperClassName) {\n      transforms.push(transforms_wrap(wrapperClassName));\n    }\n\n    if (baseURL) {\n      transforms.push(url_rewrite(baseURL));\n    }\n\n    if (transforms.length) {\n      return transform_styles_traverse(css, Object(external_this_wp_compose_[\"compose\"])(transforms));\n    }\n\n    return css;\n  });\n};\n\n/* harmony default export */ var transform_styles = (transform_styles_transformStyles);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/editor-styles/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction EditorStyles(_ref) {\n  var styles = _ref.styles;\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var updatedStyles = transform_styles(styles, '.editor-styles-wrapper');\n    var nodes = Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"compact\"])(updatedStyles), function (updatedCSS) {\n      var node = document.createElement('style');\n      node.innerHTML = updatedCSS;\n      document.body.appendChild(node);\n      return node;\n    });\n    return function () {\n      return nodes.forEach(function (node) {\n        return document.body.removeChild(node);\n      });\n    };\n  }, [styles]);\n  return null;\n}\n\n/* harmony default export */ var editor_styles = (EditorStyles);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/library.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction InserterLibrary(_ref) {\n  var rootClientId = _ref.rootClientId,\n      clientId = _ref.clientId,\n      isAppender = _ref.isAppender,\n      showInserterHelpPanel = _ref.showInserterHelpPanel,\n      _ref$showMostUsedBloc = _ref.showMostUsedBlocks,\n      showMostUsedBlocks = _ref$showMostUsedBloc === void 0 ? false : _ref$showMostUsedBloc,\n      selectBlockOnInsert = _ref.__experimentalSelectBlockOnInsert,\n      _ref$onSelect = _ref.onSelect,\n      onSelect = _ref$onSelect === void 0 ? external_this_lodash_[\"noop\"] : _ref$onSelect;\n  var destinationRootClientId = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockRootClientId = _select.getBlockRootClientId;\n\n    return rootClientId || getBlockRootClientId(clientId) || undefined;\n  }, [clientId, rootClientId]);\n  return Object(external_this_wp_element_[\"createElement\"])(menu, {\n    onSelect: onSelect,\n    rootClientId: destinationRootClientId,\n    clientId: clientId,\n    isAppender: isAppender,\n    showInserterHelpPanel: showInserterHelpPanel,\n    showMostUsedBlocks: showMostUsedBlocks,\n    __experimentalSelectBlockOnInsert: selectBlockOnInsert\n  });\n}\n\n/* harmony default export */ var library = (InserterLibrary);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/keyboard-shortcuts/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction KeyboardShortcuts() {\n  // Shortcuts Logic\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSelectedBlockClientIds = _select.getSelectedBlockClientIds,\n        getBlockOrder = _select.getBlockOrder,\n        getBlockRootClientId = _select.getBlockRootClientId;\n\n    var selectedClientIds = getSelectedBlockClientIds();\n\n    var _selectedClientIds = Object(slicedToArray[\"a\" /* default */])(selectedClientIds, 1),\n        firstClientId = _selectedClientIds[0];\n\n    return {\n      clientIds: selectedClientIds,\n      rootBlocksClientIds: getBlockOrder(),\n      rootClientId: getBlockRootClientId(firstClientId)\n    };\n  }, []),\n      clientIds = _useSelect.clientIds,\n      rootBlocksClientIds = _useSelect.rootBlocksClientIds,\n      rootClientId = _useSelect.rootClientId;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      duplicateBlocks = _useDispatch.duplicateBlocks,\n      removeBlocks = _useDispatch.removeBlocks,\n      insertAfterBlock = _useDispatch.insertAfterBlock,\n      insertBeforeBlock = _useDispatch.insertBeforeBlock,\n      multiSelect = _useDispatch.multiSelect,\n      clearSelectedBlock = _useDispatch.clearSelectedBlock,\n      moveBlocksUp = _useDispatch.moveBlocksUp,\n      moveBlocksDown = _useDispatch.moveBlocksDown; // Moves selected block/blocks up\n\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/move-up', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    moveBlocksUp(clientIds, rootClientId);\n  }, [clientIds, moveBlocksUp]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  }); // Moves selected block/blocks up\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/move-down', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    moveBlocksDown(clientIds, rootClientId);\n  }, [clientIds, moveBlocksDown]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  }); // Prevents bookmark all Tabs shortcut in Chrome when devtools are closed.\n  // Prevents reposition Chrome devtools pane shortcut when devtools are open.\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/duplicate', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    duplicateBlocks(clientIds);\n  }, [clientIds, duplicateBlocks]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  }); // Does not clash with any known browser/native shortcuts, but preventDefault\n  // is used to prevent any obscure unknown shortcuts from triggering.\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/remove', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    removeBlocks(clientIds);\n  }, [clientIds, removeBlocks]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  }); // Does not clash with any known browser/native shortcuts, but preventDefault\n  // is used to prevent any obscure unknown shortcuts from triggering.\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/insert-after', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    insertAfterBlock(Object(external_this_lodash_[\"last\"])(clientIds));\n  }, [clientIds, insertAfterBlock]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  }); // Prevent 'view recently closed tabs' in Opera using preventDefault.\n\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/insert-before', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    insertBeforeBlock(Object(external_this_lodash_[\"first\"])(clientIds));\n  }, [clientIds, insertBeforeBlock]), {\n    bindGlobal: true,\n    isDisabled: clientIds.length === 0\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/delete-multi-selection', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    removeBlocks(clientIds);\n  }, [clientIds, removeBlocks]), {\n    isDisabled: clientIds.length < 2\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/select-all', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    multiSelect(Object(external_this_lodash_[\"first\"])(rootBlocksClientIds), Object(external_this_lodash_[\"last\"])(rootBlocksClientIds));\n  }, [rootBlocksClientIds, multiSelect]));\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/block-editor/unselect', Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    event.preventDefault();\n    clearSelectedBlock();\n    window.getSelection().removeAllRanges();\n  }, [clientIds, clearSelectedBlock]), {\n    isDisabled: clientIds.length < 2\n  });\n  return null;\n}\n\nfunction KeyboardShortcutsRegister() {\n  // Registering the shortcuts\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/keyboard-shortcuts'),\n      registerShortcut = _useDispatch2.registerShortcut;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    registerShortcut({\n      name: 'core/block-editor/duplicate',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Duplicate the selected block(s).'),\n      keyCombination: {\n        modifier: 'primaryShift',\n        character: 'd'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/remove',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Remove the selected block(s).'),\n      keyCombination: {\n        modifier: 'access',\n        character: 'z'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/insert-before',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Insert a new block before the selected block(s).'),\n      keyCombination: {\n        modifier: 'primaryAlt',\n        character: 't'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/insert-after',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Insert a new block after the selected block(s).'),\n      keyCombination: {\n        modifier: 'primaryAlt',\n        character: 'y'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/delete-multi-selection',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Remove multiple selected blocks.'),\n      keyCombination: {\n        character: 'del'\n      },\n      aliases: [{\n        character: 'backspace'\n      }]\n    });\n    registerShortcut({\n      name: 'core/block-editor/select-all',\n      category: 'selection',\n      description: Object(external_this_wp_i18n_[\"__\"])('Select all text when typing. Press again to select all blocks.'),\n      keyCombination: {\n        modifier: 'primary',\n        character: 'a'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/unselect',\n      category: 'selection',\n      description: Object(external_this_wp_i18n_[\"__\"])('Clear selection.'),\n      keyCombination: {\n        character: 'escape'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/focus-toolbar',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Navigate to the nearest toolbar.'),\n      keyCombination: {\n        modifier: 'alt',\n        character: 'F10'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/move-up',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Move the selected block(s) up.'),\n      keyCombination: {\n        modifier: 'secondary',\n        character: 't'\n      }\n    });\n    registerShortcut({\n      name: 'core/block-editor/move-down',\n      category: 'block',\n      description: Object(external_this_wp_i18n_[\"__\"])('Move the selected block(s) down.'),\n      keyCombination: {\n        modifier: 'secondary',\n        character: 'y'\n      }\n    });\n  }, [registerShortcut]);\n  return null;\n}\n\nKeyboardShortcuts.Register = KeyboardShortcutsRegister;\n/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/multi-select-scroll-into-view/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Scrolls the multi block selection end into view if not in view already. This\n * is important to do after selection by keyboard.\n */\n\nfunction MultiSelectScrollIntoView() {\n  var selector = function selector(select) {\n    var _select = select('core/block-editor'),\n        getBlockSelectionEnd = _select.getBlockSelectionEnd,\n        hasMultiSelection = _select.hasMultiSelection,\n        isMultiSelecting = _select.isMultiSelecting;\n\n    return {\n      selectionEnd: getBlockSelectionEnd(),\n      isMultiSelection: hasMultiSelection(),\n      isMultiSelecting: isMultiSelecting()\n    };\n  };\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(selector, []),\n      isMultiSelection = _useSelect.isMultiSelection,\n      selectionEnd = _useSelect.selectionEnd,\n      isMultiSelecting = _useSelect.isMultiSelecting;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!selectionEnd || isMultiSelecting || !isMultiSelection) {\n      return;\n    }\n\n    var extentNode = getBlockDOMNode(selectionEnd);\n\n    if (!extentNode) {\n      return;\n    }\n\n    var scrollContainer = Object(external_this_wp_dom_[\"getScrollContainer\"])(extentNode); // If there's no scroll container, it follows that there's no scrollbar\n    // and thus there's no need to try to scroll into view.\n\n    if (!scrollContainer) {\n      return;\n    }\n\n    dom_scroll_into_view_lib_default()(extentNode, scrollContainer, {\n      onlyScrollIfNeeded: true\n    });\n  }, [isMultiSelection, selectionEnd, isMultiSelecting]);\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/observe-typing/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Set of key codes upon which typing is to be initiated on a keydown event.\n *\n * @type {number[]}\n */\n\nvar KEY_DOWN_ELIGIBLE_KEY_CODES = [external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"ENTER\"], external_this_wp_keycodes_[\"BACKSPACE\"]];\n/**\n * Returns true if a given keydown event can be inferred as intent to start\n * typing, or false otherwise. A keydown is considered eligible if it is a\n * text navigation without shift active.\n *\n * @param {KeyboardEvent} event Keydown event to test.\n *\n * @return {boolean} Whether event is eligible to start typing.\n */\n\nfunction isKeyDownEligibleForStartTyping(event) {\n  var keyCode = event.keyCode,\n      shiftKey = event.shiftKey;\n  return !shiftKey && KEY_DOWN_ELIGIBLE_KEY_CODES.includes(keyCode);\n}\n\nfunction ObserveTyping(_ref) {\n  var children = _ref.children,\n      setSafeTimeout = _ref.setTimeout;\n  var typingContainer = Object(external_this_wp_element_[\"useRef\"])();\n  var lastMouseMove = Object(external_this_wp_element_[\"useRef\"])();\n  var isTyping = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').isTyping();\n  });\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      startTyping = _useDispatch.startTyping,\n      stopTyping = _useDispatch.stopTyping;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    toggleEventBindings(isTyping);\n    return function () {\n      return toggleEventBindings(false);\n    };\n  }, [isTyping]);\n  /**\n   * Bind or unbind events to the document when typing has started or stopped\n   * respectively, or when component has become unmounted.\n   *\n   * @param {boolean} isBound Whether event bindings should be applied.\n   */\n\n  function toggleEventBindings(isBound) {\n    var bindFn = isBound ? 'addEventListener' : 'removeEventListener';\n    document[bindFn]('selectionchange', stopTypingOnSelectionUncollapse);\n    document[bindFn]('mousemove', stopTypingOnMouseMove);\n  }\n  /**\n   * On mouse move, unset typing flag if user has moved cursor.\n   *\n   * @param {MouseEvent} event Mousemove event.\n   */\n\n\n  function stopTypingOnMouseMove(event) {\n    var clientX = event.clientX,\n        clientY = event.clientY; // We need to check that the mouse really moved because Safari triggers\n    // mousemove events when shift or ctrl are pressed.\n\n    if (lastMouseMove.current) {\n      var _lastMouseMove$curren = lastMouseMove.current,\n          lastClientX = _lastMouseMove$curren.clientX,\n          lastClientY = _lastMouseMove$curren.clientY;\n\n      if (lastClientX !== clientX || lastClientY !== clientY) {\n        stopTyping();\n      }\n    }\n\n    lastMouseMove.current = {\n      clientX: clientX,\n      clientY: clientY\n    };\n  }\n  /**\n   * On selection change, unset typing flag if user has made an uncollapsed\n   * (shift) selection.\n   */\n\n\n  function stopTypingOnSelectionUncollapse() {\n    var selection = window.getSelection();\n    var isCollapsed = selection.rangeCount > 0 && selection.getRangeAt(0).collapsed;\n\n    if (!isCollapsed) {\n      stopTyping();\n    }\n  }\n  /**\n   * Unsets typing flag if user presses Escape while typing flag is active.\n   *\n   * @param {KeyboardEvent} event Keypress or keydown event to interpret.\n   */\n\n\n  function stopTypingOnEscapeKey(event) {\n    if (isTyping && (event.keyCode === external_this_wp_keycodes_[\"ESCAPE\"] || event.keyCode === external_this_wp_keycodes_[\"TAB\"])) {\n      stopTyping();\n    }\n  }\n  /**\n   * Handles a keypress or keydown event to infer intention to start typing.\n   *\n   * @param {KeyboardEvent} event Keypress or keydown event to interpret.\n   */\n\n\n  function startTypingInTextField(event) {\n    var type = event.type,\n        target = event.target; // Abort early if already typing, or key press is incurred outside a\n    // text field (e.g. arrow-ing through toolbar buttons).\n    // Ignore typing if outside the current DOM container\n\n    if (isTyping || !Object(external_this_wp_dom_[\"isTextField\"])(target) || !typingContainer.current.contains(target)) {\n      return;\n    } // Special-case keydown because certain keys do not emit a keypress\n    // event. Conversely avoid keydown as the canonical event since there\n    // are many keydown which are explicitly not targeted for typing.\n\n\n    if (type === 'keydown' && !isKeyDownEligibleForStartTyping(event)) {\n      return;\n    }\n\n    startTyping();\n  }\n  /**\n   * Stops typing when focus transitions to a non-text field element.\n   *\n   * @param {FocusEvent} event Focus event.\n   */\n\n\n  function stopTypingOnNonTextField(event) {\n    var target = event.target; // Since focus to a non-text field via arrow key will trigger before\n    // the keydown event, wait until after current stack before evaluating\n    // whether typing is to be stopped. Otherwise, typing will re-start.\n\n    setSafeTimeout(function () {\n      if (isTyping && !Object(external_this_wp_dom_[\"isTextField\"])(target)) {\n        stopTyping();\n      }\n    });\n  } // Disable reason: This component is responsible for capturing bubbled\n  // keyboard events which are interpreted as typing intent.\n\n  /* eslint-disable jsx-a11y/no-static-element-interactions */\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: typingContainer,\n    onFocus: stopTypingOnNonTextField,\n    onKeyPress: startTypingInTextField,\n    onKeyDown: Object(external_this_lodash_[\"over\"])([startTypingInTextField, stopTypingOnEscapeKey])\n  }, children);\n  /* eslint-enable jsx-a11y/no-static-element-interactions */\n}\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/observe-typing/README.md\n */\n\n\n/* harmony default export */ var observe_typing = (Object(external_this_wp_compose_[\"withSafeTimeout\"])(ObserveTyping));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/preserve-scroll-in-reorder/index.js\n/**\n * WordPress dependencies\n */\n\nfunction PreserveScrollInReorder() {\n  external_this_wp_deprecated_default()('PreserveScrollInReorder component', {\n    hint: 'This behavior is now built-in the block list'\n  });\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/typewriter/index.js\n\n\n\n\n\n\n\n\nfunction typewriter_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (typewriter_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction typewriter_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */\n\nvar isIE = window.navigator.userAgent.indexOf('Trident') !== -1;\nvar arrowKeyCodes = new Set([external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"RIGHT\"]]);\nvar initialTriggerPercentage = 0.75;\n\nvar typewriter_Typewriter = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Typewriter, _Component);\n\n  var _super = typewriter_createSuper(Typewriter);\n\n  function Typewriter() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Typewriter);\n\n    _this = _super.apply(this, arguments);\n    _this.ref = Object(external_this_wp_element_[\"createRef\"])();\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.addSelectionChangeListener = _this.addSelectionChangeListener.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.computeCaretRectOnSelectionChange = _this.computeCaretRectOnSelectionChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.maintainCaretPosition = _this.maintainCaretPosition.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.computeCaretRect = _this.computeCaretRect.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onScrollResize = _this.onScrollResize.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.isSelectionEligibleForScroll = _this.isSelectionEligibleForScroll.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Typewriter, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // When the user scrolls or resizes, the scroll position should be\n      // reset.\n      window.addEventListener('scroll', this.onScrollResize, true);\n      window.addEventListener('resize', this.onScrollResize, true);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.removeEventListener('scroll', this.onScrollResize, true);\n      window.removeEventListener('resize', this.onScrollResize, true);\n      document.removeEventListener('selectionchange', this.computeCaretRectOnSelectionChange);\n\n      if (this.onScrollResize.rafId) {\n        window.cancelAnimationFrame(this.onScrollResize.rafId);\n      }\n\n      if (this.onKeyDown.rafId) {\n        window.cancelAnimationFrame(this.onKeyDown.rafId);\n      }\n    }\n    /**\n     * Resets the scroll position to be maintained.\n     */\n\n  }, {\n    key: \"computeCaretRect\",\n    value: function computeCaretRect() {\n      if (this.isSelectionEligibleForScroll()) {\n        this.caretRect = Object(external_this_wp_dom_[\"computeCaretRect\"])();\n      }\n    }\n    /**\n     * Resets the scroll position to be maintained during a `selectionchange`\n     * event. Also removes the listener, so it acts as a one-time listener.\n     */\n\n  }, {\n    key: \"computeCaretRectOnSelectionChange\",\n    value: function computeCaretRectOnSelectionChange() {\n      document.removeEventListener('selectionchange', this.computeCaretRectOnSelectionChange);\n      this.computeCaretRect();\n    }\n  }, {\n    key: \"onScrollResize\",\n    value: function onScrollResize() {\n      var _this2 = this;\n\n      if (this.onScrollResize.rafId) {\n        return;\n      }\n\n      this.onScrollResize.rafId = window.requestAnimationFrame(function () {\n        _this2.computeCaretRect();\n\n        delete _this2.onScrollResize.rafId;\n      });\n    }\n    /**\n     * Checks if the current situation is elegible for scroll:\n     * - There should be one and only one block selected.\n     * - The component must contain the selection.\n     * - The active element must be contenteditable.\n     */\n\n  }, {\n    key: \"isSelectionEligibleForScroll\",\n    value: function isSelectionEligibleForScroll() {\n      return this.props.selectedBlockClientId && this.ref.current.contains(document.activeElement) && document.activeElement.isContentEditable;\n    }\n  }, {\n    key: \"isLastEditableNode\",\n    value: function isLastEditableNode() {\n      var editableNodes = this.ref.current.querySelectorAll('[contenteditable=\"true\"]');\n      var lastEditableNode = editableNodes[editableNodes.length - 1];\n      return lastEditableNode === document.activeElement;\n    }\n    /**\n     * Maintains the scroll position after a selection change caused by a\n     * keyboard event.\n     *\n     * @param {WPSyntheticEvent} event Synthetic keyboard event.\n     */\n\n  }, {\n    key: \"maintainCaretPosition\",\n    value: function maintainCaretPosition(_ref) {\n      var keyCode = _ref.keyCode;\n\n      if (!this.isSelectionEligibleForScroll()) {\n        return;\n      }\n\n      var currentCaretRect = Object(external_this_wp_dom_[\"computeCaretRect\"])();\n\n      if (!currentCaretRect) {\n        return;\n      } // If for some reason there is no position set to be scrolled to, let\n      // this be the position to be scrolled to in the future.\n\n\n      if (!this.caretRect) {\n        this.caretRect = currentCaretRect;\n        return;\n      } // Even though enabling the typewriter effect for arrow keys results in\n      // a pleasant experience, it may not be the case for everyone, so, for\n      // now, let's disable it.\n\n\n      if (arrowKeyCodes.has(keyCode)) {\n        // Reset the caret position to maintain.\n        this.caretRect = currentCaretRect;\n        return;\n      }\n\n      var diff = currentCaretRect.top - this.caretRect.top;\n\n      if (diff === 0) {\n        return;\n      }\n\n      var scrollContainer = Object(external_this_wp_dom_[\"getScrollContainer\"])(this.ref.current); // The page must be scrollable.\n\n      if (!scrollContainer) {\n        return;\n      }\n\n      var windowScroll = scrollContainer === document.body;\n      var scrollY = windowScroll ? window.scrollY : scrollContainer.scrollTop;\n      var scrollContainerY = windowScroll ? 0 : scrollContainer.getBoundingClientRect().top;\n      var relativeScrollPosition = windowScroll ? this.caretRect.top / window.innerHeight : (this.caretRect.top - scrollContainerY) / (window.innerHeight - scrollContainerY); // If the scroll position is at the start, the active editable element\n      // is the last one, and the caret is positioned within the initial\n      // trigger percentage of the page, do not scroll the page.\n      // The typewriter effect should not kick in until an empty page has been\n      // filled with the initial trigger percentage or the user scrolls\n      // intentionally down.\n\n      if (scrollY === 0 && relativeScrollPosition < initialTriggerPercentage && this.isLastEditableNode()) {\n        // Reset the caret position to maintain.\n        this.caretRect = currentCaretRect;\n        return;\n      }\n\n      var scrollContainerHeight = windowScroll ? window.innerHeight : scrollContainer.clientHeight; // Abort if the target scroll position would scroll the caret out of\n      // view.\n\n      if ( // The caret is under the lower fold.\n      this.caretRect.top + this.caretRect.height > scrollContainerY + scrollContainerHeight || // The caret is above the upper fold.\n      this.caretRect.top < scrollContainerY) {\n        // Reset the caret position to maintain.\n        this.caretRect = currentCaretRect;\n        return;\n      }\n\n      if (windowScroll) {\n        window.scrollBy(0, diff);\n      } else {\n        scrollContainer.scrollTop += diff;\n      }\n    }\n    /**\n     * Adds a `selectionchange` listener to reset the scroll position to be\n     * maintained.\n     */\n\n  }, {\n    key: \"addSelectionChangeListener\",\n    value: function addSelectionChangeListener() {\n      document.addEventListener('selectionchange', this.computeCaretRectOnSelectionChange);\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      var _this3 = this;\n\n      event.persist(); // Ensure the any remaining request is cancelled.\n\n      if (this.onKeyDown.rafId) {\n        window.cancelAnimationFrame(this.onKeyDown.rafId);\n      } // Use an animation frame for a smooth result.\n\n\n      this.onKeyDown.rafId = window.requestAnimationFrame(function () {\n        _this3.maintainCaretPosition(event);\n\n        delete _this3.onKeyDown.rafId;\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      // Disable reason: Wrapper itself is non-interactive, but must capture\n      // bubbling events from children to determine focus transition intents.\n\n      /* eslint-disable jsx-a11y/no-static-element-interactions */\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        ref: this.ref,\n        onKeyDown: this.onKeyDown,\n        onKeyUp: this.maintainCaretPosition,\n        onMouseDown: this.addSelectionChangeListener,\n        onTouchStart: this.addSelectionChangeListener,\n        className: \"block-editor__typewriter\"\n      }, this.props.children);\n      /* eslint-enable jsx-a11y/no-static-element-interactions */\n    }\n  }]);\n\n  return Typewriter;\n}(external_this_wp_element_[\"Component\"]);\n/**\n * The exported component. The implementation of Typewriter faced technical\n * challenges in Internet Explorer, and is simply skipped, rendering the given\n * props children instead.\n *\n * @type {WPComponent}\n */\n\n\nvar TypewriterOrIEBypass = isIE ? function (props) {\n  return props.children;\n} : Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientId = _select.getSelectedBlockClientId;\n\n  return {\n    selectedBlockClientId: getSelectedBlockClientId()\n  };\n})(typewriter_Typewriter);\n/**\n * Ensures that the text selection keeps the same vertical distance from the\n * viewport during keyboard events within this component. The vertical distance\n * can vary. It is the last clicked or scrolled to position.\n */\n\n/* harmony default export */ var typewriter = (TypewriterOrIEBypass);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/index.js\n/*\n * Block Creation Components\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * Content Related Components\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * State Related Components\n */\n\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/index.js\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/index.js\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 44:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blob\"]; }());\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keyboardShortcuts\"]; }());\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"a11y\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ }),\n\n/***/ 56:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n    trimRight = /\\s+$/,\n    tinyCounter = 0,\n    mathRound = Math.round,\n    mathMin = Math.min,\n    mathMax = Math.max,\n    mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n    color = (color) ? color : '';\n    opts = opts || { };\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n       return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n        return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color,\n    this._r = rgb.r,\n    this._g = rgb.g,\n    this._b = rgb.b,\n    this._a = rgb.a,\n    this._roundA = mathRound(100*this._a) / 100,\n    this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) { this._r = mathRound(this._r); }\n    if (this._g < 1) { this._g = mathRound(this._g); }\n    if (this._b < 1) { this._b = mathRound(this._b); }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n    isDark: function() {\n        return this.getBrightness() < 128;\n    },\n    isLight: function() {\n        return !this.isDark();\n    },\n    isValid: function() {\n        return this._ok;\n    },\n    getOriginalInput: function() {\n      return this._originalInput;\n    },\n    getFormat: function() {\n        return this._format;\n    },\n    getAlpha: function() {\n        return this._a;\n    },\n    getBrightness: function() {\n        //http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function() {\n        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var RsRGB, GsRGB, BsRGB, R, G, B;\n        RsRGB = rgb.r/255;\n        GsRGB = rgb.g/255;\n        BsRGB = rgb.b/255;\n\n        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n    },\n    setAlpha: function(value) {\n        this._a = boundAlpha(value);\n        this._roundA = mathRound(100*this._a) / 100;\n        return this;\n    },\n    toHsv: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n    },\n    toHsvString: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n        return (this._a == 1) ?\n          \"hsv(\"  + h + \", \" + s + \"%, \" + v + \"%)\" :\n          \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n    },\n    toHsl: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n    },\n    toHslString: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n        return (this._a == 1) ?\n          \"hsl(\"  + h + \", \" + s + \"%, \" + l + \"%)\" :\n          \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n    },\n    toHex: function(allow3Char) {\n        return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function(allow3Char) {\n        return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function(allow4Char) {\n        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function(allow4Char) {\n        return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function() {\n        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n    },\n    toRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n          \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function() {\n        return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n    },\n    toPercentageRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n          \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function() {\n        if (this._a === 0) {\n            return \"transparent\";\n        }\n\n        if (this._a < 1) {\n            return false;\n        }\n\n        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function(secondColor) {\n        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n        var secondHex8String = hex8String;\n        var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n        if (secondColor) {\n            var s = tinycolor(secondColor);\n            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n        }\n\n        return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n    },\n    toString: function(format) {\n        var formatSet = !!format;\n        format = format || this._format;\n\n        var formattedString = false;\n        var hasAlpha = this._a < 1 && this._a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === \"name\" && this._a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"prgb\") {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n        if (format === \"name\") {\n            formattedString = this.toName();\n        }\n        if (format === \"hsl\") {\n            formattedString = this.toHslString();\n        }\n        if (format === \"hsv\") {\n            formattedString = this.toHsvString();\n        }\n\n        return formattedString || this.toHexString();\n    },\n    clone: function() {\n        return tinycolor(this.toString());\n    },\n\n    _applyModification: function(fn, args) {\n        var color = fn.apply(null, [this].concat([].slice.call(args)));\n        this._r = color._r;\n        this._g = color._g;\n        this._b = color._b;\n        this.setAlpha(color._a);\n        return this;\n    },\n    lighten: function() {\n        return this._applyModification(lighten, arguments);\n    },\n    brighten: function() {\n        return this._applyModification(brighten, arguments);\n    },\n    darken: function() {\n        return this._applyModification(darken, arguments);\n    },\n    desaturate: function() {\n        return this._applyModification(desaturate, arguments);\n    },\n    saturate: function() {\n        return this._applyModification(saturate, arguments);\n    },\n    greyscale: function() {\n        return this._applyModification(greyscale, arguments);\n    },\n    spin: function() {\n        return this._applyModification(spin, arguments);\n    },\n\n    _applyCombination: function(fn, args) {\n        return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function() {\n        return this._applyCombination(analogous, arguments);\n    },\n    complement: function() {\n        return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function() {\n        return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function() {\n        return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function() {\n        return this._applyCombination(triad, arguments);\n    },\n    tetrad: function() {\n        return this._applyCombination(tetrad, arguments);\n    }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n    if (typeof color == \"object\") {\n        var newColor = {};\n        for (var i in color) {\n            if (color.hasOwnProperty(i)) {\n                if (i === \"a\") {\n                    newColor[i] = color[i];\n                }\n                else {\n                    newColor[i] = convertToPercentage(color[i]);\n                }\n            }\n        }\n        color = newColor;\n    }\n\n    return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n//     \"red\"\n//     \"#f00\" or \"f00\"\n//     \"#ff0000\" or \"ff0000\"\n//     \"#ff000000\" or \"ff000000\"\n//     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n//     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n//     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n//     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n//     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n//     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n//     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n        color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = \"hsv\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = \"hsl\";\n        }\n\n        if (color.hasOwnProperty(\"a\")) {\n            a = color.a;\n        }\n    }\n\n    a = boundAlpha(a);\n\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: mathMin(255, mathMax(rgb.r, 0)),\n        g: mathMin(255, mathMax(rgb.g, 0)),\n        b: mathMin(255, mathMax(rgb.b, 0)),\n        a: a\n    };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255\n    };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, l = (max + min) / 2;\n\n    if(max == min) {\n        h = s = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n\n        h /= 6;\n    }\n\n    return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n    var r, g, b;\n\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n        if(t < 0) t += 1;\n        if(t > 1) t -= 1;\n        if(t < 1/6) return p + (q - p) * 6 * t;\n        if(t < 1/2) return q;\n        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    }\n\n    if(s === 0) {\n        r = g = b = l; // achromatic\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1/3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1/3);\n    }\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if(max == min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) { return false; }\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n    return tinycolor.fromRatio({\n        r: mathRandom(),\n        g: mathRandom(),\n        b: mathRandom()\n    });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n    return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n    return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n}\n\nfunction triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n    ];\n}\n\nfunction analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n        hsl.h = (hsl.h + part) % 360;\n        ret.push(tinycolor(hsl));\n    }\n    return ret;\n}\n\nfunction monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h, s = hsv.s, v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n        ret.push(tinycolor({ h: h, s: s, v: v}));\n        v = (v + modification) % 1;\n    }\n\n    return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n    amount = (amount === 0) ? 0 : (amount || 50);\n\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n\n    var p = amount / 100;\n\n    var rgba = {\n        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n        a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n    };\n\n    return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n//    tinycolor.isReadable(\"#000\", \"#111\") => false\n//    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n\n    out = false;\n\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n        case \"AAsmall\":\n        case \"AAAlarge\":\n            out = readability >= 4.5;\n            break;\n        case \"AAlarge\":\n            out = readability >= 3;\n            break;\n        case \"AAAsmall\":\n            out = readability >= 7;\n            break;\n    }\n    return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size ;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors ;\n    level = args.level;\n    size = args.size;\n\n    for (var i= 0; i < colorList.length ; i++) {\n        readability = tinycolor.readability(baseColor, colorList[i]);\n        if (readability > bestScore) {\n            bestScore = readability;\n            bestColor = tinycolor(colorList[i]);\n        }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n        return bestColor;\n    }\n    else {\n        args.includeFallbackColors=false;\n        return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n    }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n    var flipped = { };\n    for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n            flipped[o[i]] = i;\n        }\n    }\n    return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n\n    return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n    if (isOnePointZero(n)) { n = \"100%\"; }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n        n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if ((Math.abs(n - max) < 0.000001)) {\n        return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n    if (n <= 1) {\n        n = (n * 100) + \"%\";\n    }\n\n    return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n    return {\n        CSS_UNIT: new RegExp(CSS_UNIT),\n        rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n        rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n        hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n        hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n        hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n        hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color == 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsl.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    if ((match = matchers.hsla.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsv.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    if ((match = matchers.hsva.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n\n    return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n        level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n        size = \"small\";\n    }\n    return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n    module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 62:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"htmlEntities\"]; }());\n\n/***/ }),\n\n/***/ 72:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"viewport\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 88:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar TextareaAutosize_1 = __webpack_require__(167);\nexports[\"default\"] = TextareaAutosize_1[\"default\"];\n\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 92:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"notices\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-block-library.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blockLibrary\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 432);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 148:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (check);\n\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 171:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (closeSmall);\n\n\n/***/ }),\n\n/***/ 174:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (link);\n\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 197:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar keyboardReturn = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M16 4h2v9H7v3l-5-4 5-4v3h9V4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (keyboardReturn);\n\n\n/***/ }),\n\n/***/ 198:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (upload);\n\n\n/***/ }),\n\n/***/ 199:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar linkOff = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (linkOff);\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 261:\n/***/ (function(module, exports, __webpack_require__) {\n\n/*! Fast Average Color | © 2019 Denis Seleznev | MIT License | https://github.com/hcodes/fast-average-color/ */\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\tundefined;\n}(this, (function () { 'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nvar FastAverageColor =\n/*#__PURE__*/\nfunction () {\n  function FastAverageColor() {\n    _classCallCheck(this, FastAverageColor);\n  }\n\n  _createClass(FastAverageColor, [{\n    key: \"getColorAsync\",\n\n    /**\n     * Get asynchronously the average color from not loaded image.\n     *\n     * @param {HTMLImageElement} resource\n     * @param {Function} callback\n     * @param {Object|null} [options]\n     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]\n     * @param {*}      [options.data]\n     * @param {string} [options.mode=\"speed\"] \"precision\" or \"speed\"\n     * @param {string} [options.algorithm=\"sqrt\"] \"simple\", \"sqrt\" or \"dominant\"\n     * @param {number} [options.step=1]\n     * @param {number} [options.left=0]\n     * @param {number} [options.top=0]\n     * @param {number} [options.width=width of resource]\n     * @param {number} [options.height=height of resource]\n     */\n    value: function getColorAsync(resource, callback, options) {\n      if (resource.complete) {\n        callback.call(resource, this.getColor(resource, options), options && options.data);\n      } else {\n        this._bindImageEvents(resource, callback, options);\n      }\n    }\n    /**\n     * Get the average color from images, videos and canvas.\n     *\n     * @param {HTMLImageElement|HTMLVideoElement|HTMLCanvasElement} resource\n     * @param {Object|null} [options]\n     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]\n     * @param {*}      [options.data]\n     * @param {string} [options.mode=\"speed\"] \"precision\" or \"speed\"\n     * @param {string} [options.algorithm=\"sqrt\"] \"simple\", \"sqrt\" or \"dominant\"\n     * @param {number} [options.step=1]\n     * @param {number} [options.left=0]\n     * @param {number} [options.top=0]\n     * @param {number} [options.width=width of resource]\n     * @param {number} [options.height=height of resource]\n     *\n     * @returns {Object}\n     */\n\n  }, {\n    key: \"getColor\",\n    value: function getColor(resource, options) {\n      options = options || {};\n\n      var defaultColor = this._getDefaultColor(options),\n          originalSize = this._getOriginalSize(resource),\n          size = this._prepareSizeAndPosition(originalSize, options);\n\n      var error = null,\n          value = defaultColor;\n\n      if (!size.srcWidth || !size.srcHeight || !size.destWidth || !size.destHeight) {\n        return this._prepareResult(defaultColor, new Error('FastAverageColor: Incorrect sizes.'));\n      }\n\n      if (!this._ctx) {\n        this._canvas = this._makeCanvas();\n        this._ctx = this._canvas.getContext && this._canvas.getContext('2d');\n\n        if (!this._ctx) {\n          return this._prepareResult(defaultColor, new Error('FastAverageColor: Canvas Context 2D is not supported in this browser.'));\n        }\n      }\n\n      this._canvas.width = size.destWidth;\n      this._canvas.height = size.destHeight;\n\n      try {\n        this._ctx.clearRect(0, 0, size.destWidth, size.destHeight);\n\n        this._ctx.drawImage(resource, size.srcLeft, size.srcTop, size.srcWidth, size.srcHeight, 0, 0, size.destWidth, size.destHeight);\n\n        var bitmapData = this._ctx.getImageData(0, 0, size.destWidth, size.destHeight).data;\n\n        value = this.getColorFromArray4(bitmapData, options);\n      } catch (e) {\n        // Security error, CORS\n        // https://developer.mozilla.org/en/docs/Web/HTML/CORS_enabled_image\n        error = e;\n      }\n\n      return this._prepareResult(value, error);\n    }\n    /**\n     * Get the average color from a array when 1 pixel is 4 bytes.\n     *\n     * @param {Array|Uint8Array} arr\n     * @param {Object} [options]\n     * @param {string} [options.algorithm=\"sqrt\"] \"simple\", \"sqrt\" or \"dominant\"\n     * @param {Array}  [options.defaultColor=[255, 255, 255, 255]]\n     * @param {number} [options.step=1]\n     *\n     * @returns {Array} [red (0-255), green (0-255), blue (0-255), alpha (0-255)]\n     */\n\n  }, {\n    key: \"getColorFromArray4\",\n    value: function getColorFromArray4(arr, options) {\n      options = options || {};\n      var bytesPerPixel = 4,\n          arrLength = arr.length;\n\n      if (arrLength < bytesPerPixel) {\n        return this._getDefaultColor(options);\n      }\n\n      var len = arrLength - arrLength % bytesPerPixel,\n          preparedStep = (options.step || 1) * bytesPerPixel,\n          algorithm = '_' + (options.algorithm || 'sqrt') + 'Algorithm';\n\n      if (typeof this[algorithm] !== 'function') {\n        throw new Error(\"FastAverageColor: \".concat(options.algorithm, \" is unknown algorithm.\"));\n      }\n\n      return this[algorithm](arr, len, preparedStep);\n    }\n    /**\n     * Destroy the instance.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      delete this._canvas;\n      delete this._ctx;\n    }\n  }, {\n    key: \"_getDefaultColor\",\n    value: function _getDefaultColor(options) {\n      return this._getOption(options, 'defaultColor', [255, 255, 255, 255]);\n    }\n  }, {\n    key: \"_getOption\",\n    value: function _getOption(options, name, defaultValue) {\n      return typeof options[name] === 'undefined' ? defaultValue : options[name];\n    }\n  }, {\n    key: \"_prepareSizeAndPosition\",\n    value: function _prepareSizeAndPosition(originalSize, options) {\n      var srcLeft = this._getOption(options, 'left', 0),\n          srcTop = this._getOption(options, 'top', 0),\n          srcWidth = this._getOption(options, 'width', originalSize.width),\n          srcHeight = this._getOption(options, 'height', originalSize.height),\n          destWidth = srcWidth,\n          destHeight = srcHeight;\n\n      if (options.mode === 'precision') {\n        return {\n          srcLeft: srcLeft,\n          srcTop: srcTop,\n          srcWidth: srcWidth,\n          srcHeight: srcHeight,\n          destWidth: destWidth,\n          destHeight: destHeight\n        };\n      }\n\n      var maxSize = 100,\n          minSize = 10;\n      var factor;\n\n      if (srcWidth > srcHeight) {\n        factor = srcWidth / srcHeight;\n        destWidth = maxSize;\n        destHeight = Math.round(destWidth / factor);\n      } else {\n        factor = srcHeight / srcWidth;\n        destHeight = maxSize;\n        destWidth = Math.round(destHeight / factor);\n      }\n\n      if (destWidth > srcWidth || destHeight > srcHeight || destWidth < minSize || destHeight < minSize) {\n        destWidth = srcWidth;\n        destHeight = srcHeight;\n      }\n\n      return {\n        srcLeft: srcLeft,\n        srcTop: srcTop,\n        srcWidth: srcWidth,\n        srcHeight: srcHeight,\n        destWidth: destWidth,\n        destHeight: destHeight\n      };\n    }\n  }, {\n    key: \"_simpleAlgorithm\",\n    value: function _simpleAlgorithm(arr, len, preparedStep) {\n      var redTotal = 0,\n          greenTotal = 0,\n          blueTotal = 0,\n          alphaTotal = 0,\n          count = 0;\n\n      for (var i = 0; i < len; i += preparedStep) {\n        var alpha = arr[i + 3],\n            red = arr[i] * alpha,\n            green = arr[i + 1] * alpha,\n            blue = arr[i + 2] * alpha;\n        redTotal += red;\n        greenTotal += green;\n        blueTotal += blue;\n        alphaTotal += alpha;\n        count++;\n      }\n\n      return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];\n    }\n  }, {\n    key: \"_sqrtAlgorithm\",\n    value: function _sqrtAlgorithm(arr, len, preparedStep) {\n      var redTotal = 0,\n          greenTotal = 0,\n          blueTotal = 0,\n          alphaTotal = 0,\n          count = 0;\n\n      for (var i = 0; i < len; i += preparedStep) {\n        var red = arr[i],\n            green = arr[i + 1],\n            blue = arr[i + 2],\n            alpha = arr[i + 3];\n        redTotal += red * red * alpha;\n        greenTotal += green * green * alpha;\n        blueTotal += blue * blue * alpha;\n        alphaTotal += alpha;\n        count++;\n      }\n\n      return alphaTotal ? [Math.round(Math.sqrt(redTotal / alphaTotal)), Math.round(Math.sqrt(greenTotal / alphaTotal)), Math.round(Math.sqrt(blueTotal / alphaTotal)), Math.round(alphaTotal / count)] : [0, 0, 0, 0];\n    }\n  }, {\n    key: \"_dominantAlgorithm\",\n    value: function _dominantAlgorithm(arr, len, preparedStep) {\n      var colorHash = {},\n          divider = 24;\n\n      for (var i = 0; i < len; i += preparedStep) {\n        var red = arr[i],\n            green = arr[i + 1],\n            blue = arr[i + 2],\n            alpha = arr[i + 3],\n            key = Math.round(red / divider) + ',' + Math.round(green / divider) + ',' + Math.round(blue / divider);\n\n        if (colorHash[key]) {\n          colorHash[key] = [colorHash[key][0] + red * alpha, colorHash[key][1] + green * alpha, colorHash[key][2] + blue * alpha, colorHash[key][3] + alpha, colorHash[key][4] + 1];\n        } else {\n          colorHash[key] = [red * alpha, green * alpha, blue * alpha, alpha, 1];\n        }\n      }\n\n      var buffer = Object.keys(colorHash).map(function (key) {\n        return colorHash[key];\n      }).sort(function (a, b) {\n        var countA = a[4],\n            countB = b[4];\n        return countA > countB ? -1 : countA === countB ? 0 : 1;\n      });\n\n      var _buffer$ = _slicedToArray(buffer[0], 5),\n          redTotal = _buffer$[0],\n          greenTotal = _buffer$[1],\n          blueTotal = _buffer$[2],\n          alphaTotal = _buffer$[3],\n          count = _buffer$[4];\n\n      return alphaTotal ? [Math.round(redTotal / alphaTotal), Math.round(greenTotal / alphaTotal), Math.round(blueTotal / alphaTotal), Math.round(alphaTotal / count)] : [0, 0, 0, 0];\n    }\n  }, {\n    key: \"_bindImageEvents\",\n    value: function _bindImageEvents(resource, callback, options) {\n      var _this = this;\n\n      options = options || {};\n\n      var data = options && options.data,\n          defaultColor = this._getDefaultColor(options),\n          onload = function onload() {\n        unbindEvents();\n        callback.call(resource, _this.getColor(resource, options), data);\n      },\n          onerror = function onerror() {\n        unbindEvents();\n        callback.call(resource, _this._prepareResult(defaultColor, new Error('Image error')), data);\n      },\n          onabort = function onabort() {\n        unbindEvents();\n        callback.call(resource, _this._prepareResult(defaultColor, new Error('Image abort')), data);\n      },\n          unbindEvents = function unbindEvents() {\n        resource.removeEventListener('load', onload);\n        resource.removeEventListener('error', onerror);\n        resource.removeEventListener('abort', onabort);\n      };\n\n      resource.addEventListener('load', onload);\n      resource.addEventListener('error', onerror);\n      resource.addEventListener('abort', onabort);\n    }\n  }, {\n    key: \"_prepareResult\",\n    value: function _prepareResult(value, error) {\n      var rgb = value.slice(0, 3),\n          rgba = [].concat(rgb, value[3] / 255),\n          isDark = this._isDark(value);\n\n      return {\n        error: error,\n        value: value,\n        rgb: 'rgb(' + rgb.join(',') + ')',\n        rgba: 'rgba(' + rgba.join(',') + ')',\n        hex: this._arrayToHex(rgb),\n        hexa: this._arrayToHex(value),\n        isDark: isDark,\n        isLight: !isDark\n      };\n    }\n  }, {\n    key: \"_getOriginalSize\",\n    value: function _getOriginalSize(resource) {\n      if (resource instanceof HTMLImageElement) {\n        return {\n          width: resource.naturalWidth,\n          height: resource.naturalHeight\n        };\n      }\n\n      if (resource instanceof HTMLVideoElement) {\n        return {\n          width: resource.videoWidth,\n          height: resource.videoHeight\n        };\n      }\n\n      return {\n        width: resource.width,\n        height: resource.height\n      };\n    }\n  }, {\n    key: \"_toHex\",\n    value: function _toHex(num) {\n      var str = num.toString(16);\n      return str.length === 1 ? '0' + str : str;\n    }\n  }, {\n    key: \"_arrayToHex\",\n    value: function _arrayToHex(arr) {\n      return '#' + arr.map(this._toHex).join('');\n    }\n  }, {\n    key: \"_isDark\",\n    value: function _isDark(color) {\n      // http://www.w3.org/TR/AERT#color-contrast\n      var result = (color[0] * 299 + color[1] * 587 + color[2] * 114) / 1000;\n      return result < 128;\n    }\n  }, {\n    key: \"_makeCanvas\",\n    value: function _makeCanvas() {\n      return typeof window === 'undefined' ? new OffscreenCanvas(1, 1) : document.createElement('canvas');\n    }\n  }]);\n\n  return FastAverageColor;\n}();\n\nreturn FastAverageColor;\n\n})));\n\n\n/***/ }),\n\n/***/ 283:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M4 19.8h8.9v-1.5H4v1.5zm8.9-15.6H4v1.5h8.9V4.2zm-8.9 7v1.5h16v-1.5H4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignLeft);\n\n\n/***/ }),\n\n/***/ 284:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignCenter = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M16.4 4.2H7.6v1.5h8.9V4.2zM4 11.2v1.5h16v-1.5H4zm3.6 8.6h8.9v-1.5H7.6v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignCenter);\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar alignRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M11.1 19.8H20v-1.5h-8.9v1.5zm0-15.6v1.5H20V4.2h-8.9zM4 12.8h16v-1.5H4v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (alignRight);\n\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar search = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.5 6C10.5 6 8 8.5 8 11.5c0 1.1.3 2.1.9 3l-3.4 3 1 1.1 3.4-2.9c1 .9 2.2 1.4 3.6 1.4 3 0 5.5-2.5 5.5-5.5C19 8.5 16.5 6 13.5 6zm0 9.5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (search);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronRight = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronRight);\n\n\n/***/ }),\n\n/***/ 289:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronLeft);\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 295:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar pencil = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6zM13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (pencil);\n\n\n/***/ }),\n\n/***/ 296:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar edit = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (edit);\n\n\n/***/ }),\n\n/***/ 297:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar code = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (code);\n\n\n/***/ }),\n\n/***/ 298:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar grid = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 9V3H3v6h6zm8 0V3h-6v6h6zm-8 8v-6H3v6h6zm8 0v-6h-6v6h6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (grid);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"moment\"]; }());\n\n/***/ }),\n\n/***/ 432:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"registerCoreBlocks\", function() { return /* binding */ build_module_registerCoreBlocks; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalRegisterExperimentalCoreBlocks\", function() { return /* binding */ __experimentalRegisterExperimentalCoreBlocks; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js\nvar build_module_paragraph_namespaceObject = {};\n__webpack_require__.r(build_module_paragraph_namespaceObject);\n__webpack_require__.d(build_module_paragraph_namespaceObject, \"metadata\", function() { return paragraph_metadata; });\n__webpack_require__.d(build_module_paragraph_namespaceObject, \"name\", function() { return paragraph_name; });\n__webpack_require__.d(build_module_paragraph_namespaceObject, \"settings\", function() { return paragraph_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/image/index.js\nvar build_module_image_namespaceObject = {};\n__webpack_require__.r(build_module_image_namespaceObject);\n__webpack_require__.d(build_module_image_namespaceObject, \"metadata\", function() { return image_metadata; });\n__webpack_require__.d(build_module_image_namespaceObject, \"name\", function() { return image_name; });\n__webpack_require__.d(build_module_image_namespaceObject, \"settings\", function() { return image_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/heading/index.js\nvar build_module_heading_namespaceObject = {};\n__webpack_require__.r(build_module_heading_namespaceObject);\n__webpack_require__.d(build_module_heading_namespaceObject, \"metadata\", function() { return heading_metadata; });\n__webpack_require__.d(build_module_heading_namespaceObject, \"name\", function() { return heading_name; });\n__webpack_require__.d(build_module_heading_namespaceObject, \"settings\", function() { return heading_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/quote/index.js\nvar build_module_quote_namespaceObject = {};\n__webpack_require__.r(build_module_quote_namespaceObject);\n__webpack_require__.d(build_module_quote_namespaceObject, \"metadata\", function() { return quote_metadata; });\n__webpack_require__.d(build_module_quote_namespaceObject, \"name\", function() { return quote_name; });\n__webpack_require__.d(build_module_quote_namespaceObject, \"settings\", function() { return quote_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/gallery/index.js\nvar build_module_gallery_namespaceObject = {};\n__webpack_require__.r(build_module_gallery_namespaceObject);\n__webpack_require__.d(build_module_gallery_namespaceObject, \"metadata\", function() { return gallery_metadata; });\n__webpack_require__.d(build_module_gallery_namespaceObject, \"name\", function() { return gallery_name; });\n__webpack_require__.d(build_module_gallery_namespaceObject, \"settings\", function() { return gallery_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/archives/index.js\nvar archives_namespaceObject = {};\n__webpack_require__.r(archives_namespaceObject);\n__webpack_require__.d(archives_namespaceObject, \"metadata\", function() { return archives_metadata; });\n__webpack_require__.d(archives_namespaceObject, \"name\", function() { return archives_name; });\n__webpack_require__.d(archives_namespaceObject, \"settings\", function() { return archives_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/audio/index.js\nvar build_module_audio_namespaceObject = {};\n__webpack_require__.r(build_module_audio_namespaceObject);\n__webpack_require__.d(build_module_audio_namespaceObject, \"metadata\", function() { return audio_metadata; });\n__webpack_require__.d(build_module_audio_namespaceObject, \"name\", function() { return audio_name; });\n__webpack_require__.d(build_module_audio_namespaceObject, \"settings\", function() { return audio_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/button/index.js\nvar build_module_button_namespaceObject = {};\n__webpack_require__.r(build_module_button_namespaceObject);\n__webpack_require__.d(build_module_button_namespaceObject, \"metadata\", function() { return button_metadata; });\n__webpack_require__.d(build_module_button_namespaceObject, \"name\", function() { return button_name; });\n__webpack_require__.d(build_module_button_namespaceObject, \"settings\", function() { return button_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/buttons/index.js\nvar buttons_namespaceObject = {};\n__webpack_require__.r(buttons_namespaceObject);\n__webpack_require__.d(buttons_namespaceObject, \"metadata\", function() { return buttons_metadata; });\n__webpack_require__.d(buttons_namespaceObject, \"name\", function() { return buttons_name; });\n__webpack_require__.d(buttons_namespaceObject, \"settings\", function() { return buttons_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/calendar/index.js\nvar build_module_calendar_namespaceObject = {};\n__webpack_require__.r(build_module_calendar_namespaceObject);\n__webpack_require__.d(build_module_calendar_namespaceObject, \"metadata\", function() { return calendar_metadata; });\n__webpack_require__.d(build_module_calendar_namespaceObject, \"name\", function() { return calendar_name; });\n__webpack_require__.d(build_module_calendar_namespaceObject, \"settings\", function() { return calendar_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/categories/index.js\nvar categories_namespaceObject = {};\n__webpack_require__.r(categories_namespaceObject);\n__webpack_require__.d(categories_namespaceObject, \"metadata\", function() { return categories_metadata; });\n__webpack_require__.d(categories_namespaceObject, \"name\", function() { return categories_name; });\n__webpack_require__.d(categories_namespaceObject, \"settings\", function() { return categories_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/code/index.js\nvar code_namespaceObject = {};\n__webpack_require__.r(code_namespaceObject);\n__webpack_require__.d(code_namespaceObject, \"metadata\", function() { return code_metadata; });\n__webpack_require__.d(code_namespaceObject, \"name\", function() { return code_name; });\n__webpack_require__.d(code_namespaceObject, \"settings\", function() { return code_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/columns/index.js\nvar build_module_columns_namespaceObject = {};\n__webpack_require__.r(build_module_columns_namespaceObject);\n__webpack_require__.d(build_module_columns_namespaceObject, \"metadata\", function() { return columns_metadata; });\n__webpack_require__.d(build_module_columns_namespaceObject, \"name\", function() { return columns_name; });\n__webpack_require__.d(build_module_columns_namespaceObject, \"settings\", function() { return columns_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/column/index.js\nvar build_module_column_namespaceObject = {};\n__webpack_require__.r(build_module_column_namespaceObject);\n__webpack_require__.d(build_module_column_namespaceObject, \"metadata\", function() { return column_metadata; });\n__webpack_require__.d(build_module_column_namespaceObject, \"name\", function() { return column_name; });\n__webpack_require__.d(build_module_column_namespaceObject, \"settings\", function() { return column_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/cover/index.js\nvar build_module_cover_namespaceObject = {};\n__webpack_require__.r(build_module_cover_namespaceObject);\n__webpack_require__.d(build_module_cover_namespaceObject, \"metadata\", function() { return cover_metadata; });\n__webpack_require__.d(build_module_cover_namespaceObject, \"name\", function() { return cover_name; });\n__webpack_require__.d(build_module_cover_namespaceObject, \"settings\", function() { return cover_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/embed/index.js\nvar embed_namespaceObject = {};\n__webpack_require__.r(embed_namespaceObject);\n__webpack_require__.d(embed_namespaceObject, \"name\", function() { return embed_name; });\n__webpack_require__.d(embed_namespaceObject, \"settings\", function() { return embed_settings; });\n__webpack_require__.d(embed_namespaceObject, \"common\", function() { return embed_common; });\n__webpack_require__.d(embed_namespaceObject, \"others\", function() { return embed_others; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/file/index.js\nvar build_module_file_namespaceObject = {};\n__webpack_require__.r(build_module_file_namespaceObject);\n__webpack_require__.d(build_module_file_namespaceObject, \"metadata\", function() { return file_metadata; });\n__webpack_require__.d(build_module_file_namespaceObject, \"name\", function() { return file_name; });\n__webpack_require__.d(build_module_file_namespaceObject, \"settings\", function() { return file_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/html/index.js\nvar build_module_html_namespaceObject = {};\n__webpack_require__.r(build_module_html_namespaceObject);\n__webpack_require__.d(build_module_html_namespaceObject, \"metadata\", function() { return html_metadata; });\n__webpack_require__.d(build_module_html_namespaceObject, \"name\", function() { return html_name; });\n__webpack_require__.d(build_module_html_namespaceObject, \"settings\", function() { return html_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/media-text/index.js\nvar media_text_namespaceObject = {};\n__webpack_require__.r(media_text_namespaceObject);\n__webpack_require__.d(media_text_namespaceObject, \"metadata\", function() { return media_text_metadata; });\n__webpack_require__.d(media_text_namespaceObject, \"name\", function() { return media_text_name; });\n__webpack_require__.d(media_text_namespaceObject, \"settings\", function() { return media_text_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js\nvar latest_comments_namespaceObject = {};\n__webpack_require__.r(latest_comments_namespaceObject);\n__webpack_require__.d(latest_comments_namespaceObject, \"metadata\", function() { return latest_comments_metadata; });\n__webpack_require__.d(latest_comments_namespaceObject, \"name\", function() { return latest_comments_name; });\n__webpack_require__.d(latest_comments_namespaceObject, \"settings\", function() { return latest_comments_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js\nvar latest_posts_namespaceObject = {};\n__webpack_require__.r(latest_posts_namespaceObject);\n__webpack_require__.d(latest_posts_namespaceObject, \"metadata\", function() { return latest_posts_metadata; });\n__webpack_require__.d(latest_posts_namespaceObject, \"name\", function() { return latest_posts_name; });\n__webpack_require__.d(latest_posts_namespaceObject, \"settings\", function() { return latest_posts_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/list/index.js\nvar build_module_list_namespaceObject = {};\n__webpack_require__.r(build_module_list_namespaceObject);\n__webpack_require__.d(build_module_list_namespaceObject, \"metadata\", function() { return list_metadata; });\n__webpack_require__.d(build_module_list_namespaceObject, \"name\", function() { return list_name; });\n__webpack_require__.d(build_module_list_namespaceObject, \"settings\", function() { return list_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/missing/index.js\nvar missing_namespaceObject = {};\n__webpack_require__.r(missing_namespaceObject);\n__webpack_require__.d(missing_namespaceObject, \"metadata\", function() { return missing_metadata; });\n__webpack_require__.d(missing_namespaceObject, \"name\", function() { return missing_name; });\n__webpack_require__.d(missing_namespaceObject, \"settings\", function() { return missing_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/more/index.js\nvar build_module_more_namespaceObject = {};\n__webpack_require__.r(build_module_more_namespaceObject);\n__webpack_require__.d(build_module_more_namespaceObject, \"metadata\", function() { return more_metadata; });\n__webpack_require__.d(build_module_more_namespaceObject, \"name\", function() { return more_name; });\n__webpack_require__.d(build_module_more_namespaceObject, \"settings\", function() { return more_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js\nvar nextpage_namespaceObject = {};\n__webpack_require__.r(nextpage_namespaceObject);\n__webpack_require__.d(nextpage_namespaceObject, \"metadata\", function() { return nextpage_metadata; });\n__webpack_require__.d(nextpage_namespaceObject, \"name\", function() { return nextpage_name; });\n__webpack_require__.d(nextpage_namespaceObject, \"settings\", function() { return nextpage_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js\nvar build_module_preformatted_namespaceObject = {};\n__webpack_require__.r(build_module_preformatted_namespaceObject);\n__webpack_require__.d(build_module_preformatted_namespaceObject, \"metadata\", function() { return preformatted_metadata; });\n__webpack_require__.d(build_module_preformatted_namespaceObject, \"name\", function() { return preformatted_name; });\n__webpack_require__.d(build_module_preformatted_namespaceObject, \"settings\", function() { return preformatted_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js\nvar build_module_pullquote_namespaceObject = {};\n__webpack_require__.r(build_module_pullquote_namespaceObject);\n__webpack_require__.d(build_module_pullquote_namespaceObject, \"metadata\", function() { return pullquote_metadata; });\n__webpack_require__.d(build_module_pullquote_namespaceObject, \"name\", function() { return pullquote_name; });\n__webpack_require__.d(build_module_pullquote_namespaceObject, \"settings\", function() { return pullquote_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/block/index.js\nvar block_namespaceObject = {};\n__webpack_require__.r(block_namespaceObject);\n__webpack_require__.d(block_namespaceObject, \"metadata\", function() { return block_metadata; });\n__webpack_require__.d(block_namespaceObject, \"name\", function() { return block_name; });\n__webpack_require__.d(block_namespaceObject, \"settings\", function() { return block_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/rss/index.js\nvar build_module_rss_namespaceObject = {};\n__webpack_require__.r(build_module_rss_namespaceObject);\n__webpack_require__.d(build_module_rss_namespaceObject, \"metadata\", function() { return rss_metadata; });\n__webpack_require__.d(build_module_rss_namespaceObject, \"name\", function() { return rss_name; });\n__webpack_require__.d(build_module_rss_namespaceObject, \"settings\", function() { return rss_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/search/index.js\nvar search_namespaceObject = {};\n__webpack_require__.r(search_namespaceObject);\n__webpack_require__.d(search_namespaceObject, \"metadata\", function() { return search_metadata; });\n__webpack_require__.d(search_namespaceObject, \"name\", function() { return search_name; });\n__webpack_require__.d(search_namespaceObject, \"settings\", function() { return search_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/group/index.js\nvar build_module_group_namespaceObject = {};\n__webpack_require__.r(build_module_group_namespaceObject);\n__webpack_require__.d(build_module_group_namespaceObject, \"metadata\", function() { return group_metadata; });\n__webpack_require__.d(build_module_group_namespaceObject, \"name\", function() { return group_name; });\n__webpack_require__.d(build_module_group_namespaceObject, \"settings\", function() { return group_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/separator/index.js\nvar build_module_separator_namespaceObject = {};\n__webpack_require__.r(build_module_separator_namespaceObject);\n__webpack_require__.d(build_module_separator_namespaceObject, \"metadata\", function() { return separator_metadata; });\n__webpack_require__.d(build_module_separator_namespaceObject, \"name\", function() { return separator_name; });\n__webpack_require__.d(build_module_separator_namespaceObject, \"settings\", function() { return build_module_separator_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js\nvar build_module_shortcode_namespaceObject = {};\n__webpack_require__.r(build_module_shortcode_namespaceObject);\n__webpack_require__.d(build_module_shortcode_namespaceObject, \"metadata\", function() { return shortcode_metadata; });\n__webpack_require__.d(build_module_shortcode_namespaceObject, \"name\", function() { return shortcode_name; });\n__webpack_require__.d(build_module_shortcode_namespaceObject, \"settings\", function() { return shortcode_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/spacer/index.js\nvar spacer_namespaceObject = {};\n__webpack_require__.r(spacer_namespaceObject);\n__webpack_require__.d(spacer_namespaceObject, \"metadata\", function() { return spacer_metadata; });\n__webpack_require__.d(spacer_namespaceObject, \"name\", function() { return spacer_name; });\n__webpack_require__.d(spacer_namespaceObject, \"settings\", function() { return spacer_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/subhead/index.js\nvar subhead_namespaceObject = {};\n__webpack_require__.r(subhead_namespaceObject);\n__webpack_require__.d(subhead_namespaceObject, \"metadata\", function() { return subhead_metadata; });\n__webpack_require__.d(subhead_namespaceObject, \"name\", function() { return subhead_name; });\n__webpack_require__.d(subhead_namespaceObject, \"settings\", function() { return subhead_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/table/index.js\nvar build_module_table_namespaceObject = {};\n__webpack_require__.r(build_module_table_namespaceObject);\n__webpack_require__.d(build_module_table_namespaceObject, \"metadata\", function() { return table_metadata; });\n__webpack_require__.d(build_module_table_namespaceObject, \"name\", function() { return table_name; });\n__webpack_require__.d(build_module_table_namespaceObject, \"settings\", function() { return table_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js\nvar text_columns_namespaceObject = {};\n__webpack_require__.r(text_columns_namespaceObject);\n__webpack_require__.d(text_columns_namespaceObject, \"metadata\", function() { return text_columns_metadata; });\n__webpack_require__.d(text_columns_namespaceObject, \"name\", function() { return text_columns_name; });\n__webpack_require__.d(text_columns_namespaceObject, \"settings\", function() { return text_columns_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/verse/index.js\nvar build_module_verse_namespaceObject = {};\n__webpack_require__.r(build_module_verse_namespaceObject);\n__webpack_require__.d(build_module_verse_namespaceObject, \"metadata\", function() { return verse_metadata; });\n__webpack_require__.d(build_module_verse_namespaceObject, \"name\", function() { return verse_name; });\n__webpack_require__.d(build_module_verse_namespaceObject, \"settings\", function() { return verse_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/video/index.js\nvar build_module_video_namespaceObject = {};\n__webpack_require__.r(build_module_video_namespaceObject);\n__webpack_require__.d(build_module_video_namespaceObject, \"metadata\", function() { return video_metadata; });\n__webpack_require__.d(build_module_video_namespaceObject, \"name\", function() { return video_name; });\n__webpack_require__.d(build_module_video_namespaceObject, \"settings\", function() { return video_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js\nvar tag_cloud_namespaceObject = {};\n__webpack_require__.r(tag_cloud_namespaceObject);\n__webpack_require__.d(tag_cloud_namespaceObject, \"metadata\", function() { return tag_cloud_metadata; });\n__webpack_require__.d(tag_cloud_namespaceObject, \"name\", function() { return tag_cloud_name; });\n__webpack_require__.d(tag_cloud_namespaceObject, \"settings\", function() { return tag_cloud_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/classic/index.js\nvar build_module_classic_namespaceObject = {};\n__webpack_require__.r(build_module_classic_namespaceObject);\n__webpack_require__.d(build_module_classic_namespaceObject, \"metadata\", function() { return classic_metadata; });\n__webpack_require__.d(build_module_classic_namespaceObject, \"name\", function() { return classic_name; });\n__webpack_require__.d(build_module_classic_namespaceObject, \"settings\", function() { return classic_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-links/index.js\nvar social_links_namespaceObject = {};\n__webpack_require__.r(social_links_namespaceObject);\n__webpack_require__.d(social_links_namespaceObject, \"metadata\", function() { return social_links_metadata; });\n__webpack_require__.d(social_links_namespaceObject, \"name\", function() { return social_links_name; });\n__webpack_require__.d(social_links_namespaceObject, \"settings\", function() { return social_links_settings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/block-library/build-module/social-link/index.js\nvar social_link_namespaceObject = {};\n__webpack_require__.r(social_link_namespaceObject);\n__webpack_require__.d(social_link_namespaceObject, \"metadata\", function() { return social_link_metadata; });\n__webpack_require__.d(social_link_namespaceObject, \"name\", function() { return social_link_name; });\n__webpack_require__.d(social_link_namespaceObject, \"settings\", function() { return social_link_settings; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"coreData\"]}\nvar external_this_wp_coreData_ = __webpack_require__(89);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"notices\"]}\nvar external_this_wp_notices_ = __webpack_require__(92);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockEditor\"]}\nvar external_this_wp_blockEditor_ = __webpack_require__(7);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/paragraph.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar paragraph = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18.3 4H9.9v-.1l-.9.2c-2.3.4-4 2.4-4 4.8s1.7 4.4 4 4.8l.7.1V20h1.5V5.5h2.9V20h1.5V5.5h2.7V4z\"\n}));\n/* harmony default export */ var library_paragraph = (paragraph);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/deprecated.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar deprecated_supports = {\n  className: false\n};\nvar deprecated_blockAttributes = {\n  align: {\n    type: 'string'\n  },\n  content: {\n    type: 'string',\n    source: 'html',\n    selector: 'p',\n    default: ''\n  },\n  dropCap: {\n    type: 'boolean',\n    default: false\n  },\n  placeholder: {\n    type: 'string'\n  },\n  textColor: {\n    type: 'string'\n  },\n  backgroundColor: {\n    type: 'string'\n  },\n  fontSize: {\n    type: 'string'\n  },\n  direction: {\n    type: 'string',\n    enum: ['ltr', 'rtl']\n  },\n  style: {\n    type: 'object'\n  }\n};\n\nvar deprecated_migrateCustomColorsAndFontSizes = function migrateCustomColorsAndFontSizes(attributes) {\n  if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customFontSize) {\n    return attributes;\n  }\n\n  var style = {};\n\n  if (attributes.customTextColor || attributes.customBackgroundColor) {\n    style.color = {};\n  }\n\n  if (attributes.customTextColor) {\n    style.color.text = attributes.customTextColor;\n  }\n\n  if (attributes.customBackgroundColor) {\n    style.color.background = attributes.customBackgroundColor;\n  }\n\n  if (attributes.customFontSize) {\n    style.typography = {\n      fontSize: attributes.customFontSize\n    };\n  }\n\n  return _objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customTextColor', 'customBackgroundColor', 'customFontSize']), {\n    style: style\n  });\n};\n\nvar deprecated = [{\n  supports: deprecated_supports,\n  attributes: _objectSpread({}, Object(external_this_lodash_[\"omit\"])(deprecated_blockAttributes, ['style']), {\n    customTextColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customFontSize: {\n      type: 'number'\n    }\n  }),\n  migrate: deprecated_migrateCustomColorsAndFontSizes,\n  save: function save(_ref) {\n    var _classnames;\n\n    var attributes = _ref.attributes;\n    var align = attributes.align,\n        content = attributes.content,\n        dropCap = attributes.dropCap,\n        backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor,\n        fontSize = attributes.fontSize,\n        customFontSize = attributes.customFontSize,\n        direction = attributes.direction;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var fontSizeClass = Object(external_this_wp_blockEditor_[\"getFontSizeClass\"])(fontSize);\n    var className = classnames_default()((_classnames = {\n      'has-text-color': textColor || customTextColor,\n      'has-background': backgroundColor || customBackgroundColor,\n      'has-drop-cap': dropCap\n    }, Object(defineProperty[\"a\" /* default */])(_classnames, \"has-text-align-\".concat(align), align), Object(defineProperty[\"a\" /* default */])(_classnames, fontSizeClass, fontSizeClass), Object(defineProperty[\"a\" /* default */])(_classnames, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, backgroundClass), _classnames));\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor,\n      fontSize: fontSizeClass ? undefined : customFontSize\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      style: styles,\n      className: className ? className : undefined,\n      value: content,\n      dir: direction\n    });\n  }\n}, {\n  supports: deprecated_supports,\n  attributes: _objectSpread({}, Object(external_this_lodash_[\"omit\"])(deprecated_blockAttributes, ['style']), {\n    customTextColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customFontSize: {\n      type: 'number'\n    }\n  }),\n  migrate: deprecated_migrateCustomColorsAndFontSizes,\n  save: function save(_ref2) {\n    var _classnames2;\n\n    var attributes = _ref2.attributes;\n    var align = attributes.align,\n        content = attributes.content,\n        dropCap = attributes.dropCap,\n        backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor,\n        fontSize = attributes.fontSize,\n        customFontSize = attributes.customFontSize,\n        direction = attributes.direction;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var fontSizeClass = Object(external_this_wp_blockEditor_[\"getFontSizeClass\"])(fontSize);\n    var className = classnames_default()((_classnames2 = {\n      'has-text-color': textColor || customTextColor,\n      'has-background': backgroundColor || customBackgroundColor,\n      'has-drop-cap': dropCap\n    }, Object(defineProperty[\"a\" /* default */])(_classnames2, fontSizeClass, fontSizeClass), Object(defineProperty[\"a\" /* default */])(_classnames2, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames2, backgroundClass, backgroundClass), _classnames2));\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor,\n      fontSize: fontSizeClass ? undefined : customFontSize,\n      textAlign: align\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      style: styles,\n      className: className ? className : undefined,\n      value: content,\n      dir: direction\n    });\n  }\n}, {\n  supports: deprecated_supports,\n  attributes: _objectSpread({}, Object(external_this_lodash_[\"omit\"])(deprecated_blockAttributes, ['style']), {\n    customTextColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customFontSize: {\n      type: 'number'\n    },\n    width: {\n      type: 'string'\n    }\n  }),\n  migrate: deprecated_migrateCustomColorsAndFontSizes,\n  save: function save(_ref3) {\n    var _classnames3;\n\n    var attributes = _ref3.attributes;\n    var width = attributes.width,\n        align = attributes.align,\n        content = attributes.content,\n        dropCap = attributes.dropCap,\n        backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor,\n        fontSize = attributes.fontSize,\n        customFontSize = attributes.customFontSize;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var fontSizeClass = fontSize && \"is-\".concat(fontSize, \"-text\");\n    var className = classnames_default()((_classnames3 = {}, Object(defineProperty[\"a\" /* default */])(_classnames3, \"align\".concat(width), width), Object(defineProperty[\"a\" /* default */])(_classnames3, 'has-background', backgroundColor || customBackgroundColor), Object(defineProperty[\"a\" /* default */])(_classnames3, 'has-drop-cap', dropCap), Object(defineProperty[\"a\" /* default */])(_classnames3, fontSizeClass, fontSizeClass), Object(defineProperty[\"a\" /* default */])(_classnames3, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames3, backgroundClass, backgroundClass), _classnames3));\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor,\n      fontSize: fontSizeClass ? undefined : customFontSize,\n      textAlign: align\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      style: styles,\n      className: className ? className : undefined,\n      value: content\n    });\n  }\n}, {\n  supports: deprecated_supports,\n  attributes: Object(external_this_lodash_[\"omit\"])(_objectSpread({}, deprecated_blockAttributes, {\n    fontSize: {\n      type: 'number'\n    }\n  }), ['style']),\n  save: function save(_ref4) {\n    var _classnames4;\n\n    var attributes = _ref4.attributes;\n    var width = attributes.width,\n        align = attributes.align,\n        content = attributes.content,\n        dropCap = attributes.dropCap,\n        backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor,\n        fontSize = attributes.fontSize;\n    var className = classnames_default()((_classnames4 = {}, Object(defineProperty[\"a\" /* default */])(_classnames4, \"align\".concat(width), width), Object(defineProperty[\"a\" /* default */])(_classnames4, 'has-background', backgroundColor), Object(defineProperty[\"a\" /* default */])(_classnames4, 'has-drop-cap', dropCap), _classnames4));\n    var styles = {\n      backgroundColor: backgroundColor,\n      color: textColor,\n      fontSize: fontSize,\n      textAlign: align\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n      style: styles,\n      className: className ? className : undefined\n    }, content);\n  },\n  migrate: function migrate(attributes) {\n    return deprecated_migrateCustomColorsAndFontSizes(Object(external_this_lodash_[\"omit\"])(_objectSpread({}, attributes, {\n      customFontSize: Object(external_this_lodash_[\"isFinite\"])(attributes.fontSize) ? attributes.fontSize : undefined,\n      customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,\n      customBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[0] ? attributes.backgroundColor : undefined\n    })), ['fontSize', 'textColor', 'backgroundColor', 'style']);\n  }\n}, {\n  supports: deprecated_supports,\n  attributes: _objectSpread({}, deprecated_blockAttributes, {\n    content: {\n      type: 'string',\n      source: 'html',\n      default: ''\n    }\n  }),\n  save: function save(_ref5) {\n    var attributes = _ref5.attributes;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, attributes.content);\n  },\n  migrate: function migrate(attributes) {\n    return attributes;\n  }\n}];\n/* harmony default export */ var paragraph_deprecated = (deprecated);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-ltr.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatLtr = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z\"\n}));\n/* harmony default export */ var format_ltr = (formatLtr);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/edit.js\n\n\n\n\nfunction edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Browser dependencies\n */\n\nvar edit_window = window,\n    edit_getComputedStyle = edit_window.getComputedStyle;\nvar querySelector = window.document.querySelector.bind(document);\nvar edit_name = 'core/paragraph';\nvar PARAGRAPH_DROP_CAP_SELECTOR = 'p.has-drop-cap';\n\nfunction ParagraphRTLToolbar(_ref) {\n  var direction = _ref.direction,\n      setDirection = _ref.setDirection;\n  var isRTL = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return !!select('core/block-editor').getSettings().isRTL;\n  }, []);\n  return isRTL && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    controls: [{\n      icon: format_ltr,\n      title: Object(external_this_wp_i18n_[\"_x\"])('Left to right', 'editor button'),\n      isActive: direction === 'ltr',\n      onClick: function onClick() {\n        setDirection(direction === 'ltr' ? undefined : 'ltr');\n      }\n    }]\n  });\n}\n\nfunction useDropCap(isDropCap, fontSize, styleFontSize) {\n  var isDisabled = !Object(external_this_wp_blockEditor_[\"__experimentalUseEditorFeature\"])('typography.dropCap');\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      minimumHeight = _useState2[0],\n      setMinimumHeight = _useState2[1];\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings();\n  }),\n      fontSizes = _useSelect.fontSizes;\n\n  var fontSizeObject = Object(external_this_wp_blockEditor_[\"getFontSize\"])(fontSizes, fontSize, styleFontSize);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isDisabled) {\n      return;\n    }\n\n    var element = querySelector(PARAGRAPH_DROP_CAP_SELECTOR);\n\n    if (isDropCap && element) {\n      setMinimumHeight(edit_getComputedStyle(element, 'first-letter').lineHeight);\n    } else if (minimumHeight) {\n      setMinimumHeight(undefined);\n    }\n  }, [isDisabled, isDropCap, minimumHeight, setMinimumHeight, fontSizeObject.size]);\n  return [!isDisabled, minimumHeight];\n}\n\nfunction ParagraphBlock(_ref2) {\n  var attributes = _ref2.attributes,\n      mergeBlocks = _ref2.mergeBlocks,\n      onReplace = _ref2.onReplace,\n      onRemove = _ref2.onRemove,\n      setAttributes = _ref2.setAttributes;\n  var align = attributes.align,\n      content = attributes.content,\n      direction = attributes.direction,\n      dropCap = attributes.dropCap,\n      placeholder = attributes.placeholder,\n      fontSize = attributes.fontSize,\n      style = attributes.style;\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useDropCap = useDropCap(dropCap, fontSize, style === null || style === void 0 ? void 0 : style.fontSize),\n      _useDropCap2 = Object(slicedToArray[\"a\" /* default */])(_useDropCap, 2),\n      isDropCapEnabled = _useDropCap2[0],\n      dropCapMinimumHeight = _useDropCap2[1];\n\n  var styles = {\n    direction: direction,\n    minHeight: dropCapMinimumHeight\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n    value: align,\n    onChange: function onChange(newAlign) {\n      return setAttributes({\n        align: newAlign\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(ParagraphRTLToolbar, {\n    direction: direction,\n    setDirection: function setDirection(newDirection) {\n      return setAttributes({\n        direction: newDirection\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, isDropCapEnabled && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Text settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Drop cap'),\n    checked: !!dropCap,\n    onChange: function onChange() {\n      return setAttributes({\n        dropCap: !dropCap\n      });\n    },\n    help: dropCap ? Object(external_this_wp_i18n_[\"__\"])('Showing large initial letter.') : Object(external_this_wp_i18n_[\"__\"])('Toggle to show a large initial letter.')\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    ref: ref,\n    identifier: \"content\",\n    tagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].p,\n    className: classnames_default()(Object(defineProperty[\"a\" /* default */])({\n      'has-drop-cap': dropCap\n    }, \"has-text-align-\".concat(align), align)),\n    style: styles,\n    value: content,\n    onChange: function onChange(newContent) {\n      return setAttributes({\n        content: newContent\n      });\n    },\n    onSplit: function onSplit(value) {\n      if (!value) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])(edit_name);\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])(edit_name, edit_objectSpread({}, attributes, {\n        content: value\n      }));\n    },\n    onMerge: mergeBlocks,\n    onReplace: onReplace,\n    onRemove: onRemove,\n    \"aria-label\": content ? Object(external_this_wp_i18n_[\"__\"])('Paragraph block') : Object(external_this_wp_i18n_[\"__\"])('Empty block; start writing or type forward slash to choose a block'),\n    placeholder: placeholder || Object(external_this_wp_i18n_[\"__\"])('Start writing or type / to choose a block'),\n    __unstableEmbedURLOnPaste: true,\n    __unstableAllowPrefixTransformations: true\n  }));\n}\n\n/* harmony default export */ var paragraph_edit = (ParagraphBlock);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction save_save(_ref) {\n  var attributes = _ref.attributes;\n  var align = attributes.align,\n      content = attributes.content,\n      dropCap = attributes.dropCap,\n      direction = attributes.direction;\n  var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({\n    'has-drop-cap': dropCap\n  }, \"has-text-align-\".concat(align), align));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"p\",\n    className: className ? className : undefined,\n    value: content,\n    dir: direction\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/transforms.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\nvar _name$category$attrib = {\n  name: \"core/paragraph\",\n  category: \"text\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"p\",\n      \"default\": \"\"\n    },\n    dropCap: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    placeholder: {\n      type: \"string\"\n    },\n    direction: {\n      type: \"string\",\n      \"enum\": [\"ltr\", \"rtl\"]\n    }\n  },\n  supports: {\n    anchor: true,\n    className: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      linkColor: true\n    },\n    __experimentalFontSize: true,\n    __experimentalLineHeight: true,\n    __experimentalFeatures: {\n      typography: {\n        dropCap: true\n      }\n    },\n    __experimentalSelector: \"p\",\n    __unstablePasteTextInline: true\n  }\n},\n    transforms_name = _name$category$attrib.name;\nvar transforms_transforms = {\n  from: [{\n    type: 'raw',\n    // Paragraph is a fallback and should be matched last.\n    priority: 20,\n    selector: 'p',\n    schema: function schema(_ref) {\n      var phrasingContentSchema = _ref.phrasingContentSchema,\n          isPaste = _ref.isPaste;\n      return {\n        p: {\n          children: phrasingContentSchema,\n          attributes: isPaste ? [] : ['style', 'id']\n        }\n      };\n    },\n    transform: function transform(node) {\n      var attributes = Object(external_this_wp_blocks_[\"getBlockAttributes\"])(transforms_name, node.outerHTML);\n\n      var _ref2 = node.style || {},\n          textAlign = _ref2.textAlign;\n\n      if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {\n        attributes.align = textAlign;\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])(transforms_name, attributes);\n    }\n  }]\n};\n/* harmony default export */ var paragraph_transforms = (transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/paragraph/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar paragraph_metadata = {\n  name: \"core/paragraph\",\n  category: \"text\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"p\",\n      \"default\": \"\"\n    },\n    dropCap: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    placeholder: {\n      type: \"string\"\n    },\n    direction: {\n      type: \"string\",\n      \"enum\": [\"ltr\", \"rtl\"]\n    }\n  },\n  supports: {\n    anchor: true,\n    className: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      linkColor: true\n    },\n    __experimentalFontSize: true,\n    __experimentalLineHeight: true,\n    __experimentalFeatures: {\n      typography: {\n        dropCap: true\n      }\n    },\n    __experimentalSelector: \"p\",\n    __unstablePasteTextInline: true\n  }\n};\n\n\nvar paragraph_name = paragraph_metadata.name;\n\nvar paragraph_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Paragraph'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Start with the building block of all narrative.'),\n  icon: library_paragraph,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('text')],\n  example: {\n    attributes: {\n      content: Object(external_this_wp_i18n_[\"__\"])('In a village of La Mancha, the name of which I have no desire to call to mind, there lived not long since one of those gentlemen that keep a lance in the lance-rack, an old buckler, a lean hack, and a greyhound for coursing.'),\n      style: {\n        typography: {\n          fontSize: 28\n        }\n      },\n      dropCap: true\n    }\n  },\n  __experimentalLabel: function __experimentalLabel(attributes, _ref) {\n    var context = _ref.context;\n\n    if (context === 'accessibility') {\n      var content = attributes.content;\n      return Object(external_this_lodash_[\"isEmpty\"])(content) ? Object(external_this_wp_i18n_[\"__\"])('Empty') : content;\n    }\n  },\n  transforms: paragraph_transforms,\n  deprecated: paragraph_deprecated,\n  merge: function merge(attributes, attributesToMerge) {\n    return {\n      content: (attributes.content || '') + (attributesToMerge.content || '')\n    };\n  },\n  edit: paragraph_edit,\n  save: save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/image.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar image_image = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\"\n}));\n/* harmony default export */ var library_image = (image_image);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/deprecated.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar image_deprecated_blockAttributes = {\n  align: {\n    type: 'string'\n  },\n  url: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'img',\n    attribute: 'src'\n  },\n  alt: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'img',\n    attribute: 'alt',\n    default: ''\n  },\n  caption: {\n    type: 'string',\n    source: 'html',\n    selector: 'figcaption'\n  },\n  href: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'figure > a',\n    attribute: 'href'\n  },\n  rel: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'figure > a',\n    attribute: 'rel'\n  },\n  linkClass: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'figure > a',\n    attribute: 'class'\n  },\n  id: {\n    type: 'number'\n  },\n  width: {\n    type: 'number'\n  },\n  height: {\n    type: 'number'\n  },\n  linkDestination: {\n    type: 'string',\n    default: 'none'\n  },\n  linkTarget: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'figure > a',\n    attribute: 'target'\n  }\n};\nvar deprecated_deprecated = [{\n  attributes: image_deprecated_blockAttributes,\n  save: function save(_ref) {\n    var _classnames;\n\n    var attributes = _ref.attributes;\n    var url = attributes.url,\n        alt = attributes.alt,\n        caption = attributes.caption,\n        align = attributes.align,\n        href = attributes.href,\n        width = attributes.width,\n        height = attributes.height,\n        id = attributes.id;\n    var classes = classnames_default()((_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, \"align\".concat(align), align), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-resized', width || height), _classnames));\n    var image = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n      src: url,\n      alt: alt,\n      className: id ? \"wp-image-\".concat(id) : null,\n      width: width,\n      height: height\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: classes\n    }, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n      href: href\n    }, image) : image, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      value: caption\n    }));\n  }\n}, {\n  attributes: image_deprecated_blockAttributes,\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var url = attributes.url,\n        alt = attributes.alt,\n        caption = attributes.caption,\n        align = attributes.align,\n        href = attributes.href,\n        width = attributes.width,\n        height = attributes.height,\n        id = attributes.id;\n    var image = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n      src: url,\n      alt: alt,\n      className: id ? \"wp-image-\".concat(id) : null,\n      width: width,\n      height: height\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: align ? \"align\".concat(align) : null\n    }, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n      href: href\n    }, image) : image, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      value: caption\n    }));\n  }\n}, {\n  attributes: image_deprecated_blockAttributes,\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var url = attributes.url,\n        alt = attributes.alt,\n        caption = attributes.caption,\n        align = attributes.align,\n        href = attributes.href,\n        width = attributes.width,\n        height = attributes.height;\n    var extraImageProps = width || height ? {\n      width: width,\n      height: height\n    } : {};\n    var image = Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n      src: url,\n      alt: alt\n    }, extraImageProps));\n    var figureStyle = {};\n\n    if (width) {\n      figureStyle = {\n        width: width\n      };\n    } else if (align === 'left' || align === 'right') {\n      figureStyle = {\n        maxWidth: '50%'\n      };\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: align ? \"align\".concat(align) : null,\n      style: figureStyle\n    }, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n      href: href\n    }, image) : image, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      value: caption\n    }));\n  }\n}];\n/* harmony default export */ var image_deprecated = (deprecated_deprecated);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blob\"]}\nvar external_this_wp_blob_ = __webpack_require__(44);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/crop.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar crop_crop = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M17.5 7v8H19V7c0-1.1-.9-2-2-2H9v1.5h8c.3 0 .5.2.5.5zM7 17.5c-.3 0-.5-.2-.5-.5V1H5v4H1v1.5h4V17c0 1.1.9 2 2 2h10.5v4H19v-4h4v-1.5H7z\"\n}));\n/* harmony default export */ var library_crop = (crop_crop);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js\nvar upload = __webpack_require__(198);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/icons.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar embedContentIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zm-6-9.5L16 12l-2.5 2.8 1.1 1L18 12l-3.5-3.5-1 1zm-3 0l-1-1L6 12l3.5 3.8 1.1-1L8 12l2.5-2.5z\"\n}));\nvar embedAudioIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM13.2 7.7c-.4.4-.7 1.1-.7 1.9v3.7c-.4-.3-.8-.4-1.3-.4-1.2 0-2.2 1-2.2 2.2 0 1.2 1 2.2 2.2 2.2.5 0 1-.2 1.4-.5.9-.6 1.4-1.6 1.4-2.6V9.6c0-.4.1-.6.2-.8.3-.3 1-.3 1.6-.3h.2V7h-.2c-.7 0-1.8 0-2.6.7z\"\n}));\nvar embedPhotoIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9.2 4.5H19c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V9.8l4.6-5.3zm9.8 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z\"\n}));\nvar embedVideoIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V9.8l4.7-5.3H19c.3 0 .5.2.5.5v14zM10 15l5-3-5-3v6z\"\n}));\nvar embedTwitterIcon = {\n  foreground: '#1da1f2',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"G\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z\"\n  })))\n};\nvar embedYouTubeIcon = {\n  foreground: '#ff0000',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z\"\n  }))\n};\nvar embedFacebookIcon = {\n  foreground: '#3b5998',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z\"\n  }))\n};\nvar embedInstagramIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"G\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z\"\n})));\nvar embedWordPressIcon = {\n  foreground: '#0073AA',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"G\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z\"\n  })))\n};\nvar embedSpotifyIcon = {\n  foreground: '#1db954',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325\"\n  }))\n};\nvar embedFlickrIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z\"\n}));\nvar embedVimeoIcon = {\n  foreground: '#1ab7ea',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"G\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z\"\n  })))\n};\nvar embedRedditIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z\"\n}));\nvar embedTumblrIcon = {\n  foreground: '#35465c',\n  src: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M19 3H5a2 2 0 00-2 2v14c0 1.1.9 2 2 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-5.69 14.66c-2.72 0-3.1-1.9-3.1-3.16v-3.56H8.49V8.99c1.7-.62 2.54-1.99 2.64-2.87 0-.06.06-.41.06-.58h1.9v3.1h2.17v2.3h-2.18v3.1c0 .47.13 1.3 1.2 1.26h1.1v2.36c-1.01.02-2.07 0-2.07 0z\"\n  }))\n};\nvar embedAmazonIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M18.42 14.58c-.51-.66-1.05-1.23-1.05-2.5V7.87c0-1.8.15-3.45-1.2-4.68-1.05-1.02-2.79-1.35-4.14-1.35-2.6 0-5.52.96-6.12 4.14-.06.36.18.54.4.57l2.66.3c.24-.03.42-.27.48-.5.24-1.12 1.17-1.63 2.2-1.63.56 0 1.22.21 1.55.7.4.56.33 1.31.33 1.97v.36c-1.59.18-3.66.27-5.16.93a4.63 4.63 0 0 0-2.93 4.44c0 2.82 1.8 4.23 4.1 4.23 1.95 0 3.03-.45 4.53-1.98.51.72.66 1.08 1.59 1.83.18.09.45.09.63-.1v.04l2.1-1.8c.24-.21.2-.48.03-.75zm-5.4-1.2c-.45.75-1.14 1.23-1.92 1.23-1.05 0-1.65-.81-1.65-1.98 0-2.31 2.1-2.73 4.08-2.73v.6c0 1.05.03 1.92-.5 2.88z\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M21.69 19.2a17.62 17.62 0 0 1-21.6-1.57c-.23-.2 0-.5.28-.33a23.88 23.88 0 0 0 20.93 1.3c.45-.19.84.3.39.6z\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M22.8 17.96c-.36-.45-2.22-.2-3.1-.12-.23.03-.3-.18-.05-.36 1.5-1.05 3.96-.75 4.26-.39.3.36-.1 2.82-1.5 4.02-.21.18-.42.1-.3-.15.3-.8 1.02-2.58.69-3z\"\n}));\nvar embedAnimotoIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m.0206909 21 19.8160091-13.07806 3.5831 6.20826z\",\n  fill: \"#4bc7ee\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m23.7254 19.0205-10.1074-17.18468c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418h22.5655c1.279 0 1.8019-.8905 1.1599-1.9795z\",\n  fill: \"#d4cdcb\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m.0206909 21 15.2439091-16.38571 4.3029 7.32271z\",\n  fill: \"#c3d82e\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m13.618 1.83582c-.6421-1.114428-1.7087-1.114428-2.3249 0l-11.2931 19.16418 15.2646-16.38573z\",\n  fill: \"#e4ecb0\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m.0206909 21 19.5468091-9.063 1.6621 2.8344z\",\n  fill: \"#209dbd\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m.0206909 21 17.9209091-11.82623 1.6259 2.76323z\",\n  fill: \"#7cb3c9\"\n}));\nvar embedDailymotionIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"m12.1479 18.5957c-2.4949 0-4.28131-1.7558-4.28131-4.0658 0-2.2176 1.78641-4.0965 4.09651-4.0965 2.2793 0 4.0349 1.7864 4.0349 4.1581 0 2.2794-1.7556 4.0042-3.8501 4.0042zm8.3521-18.5957-4.5329 1v7c-1.1088-1.41691-2.8028-1.8787-4.8049-1.8787-2.09443 0-3.97329.76993-5.5133 2.27917-1.72483 1.66323-2.6489 3.78863-2.6489 6.16033 0 2.5873.98562 4.8049 2.89526 6.499 1.44763 1.2936 3.17251 1.9402 5.17454 1.9402 1.9713 0 3.4498-.5236 4.8973-1.9402v1.9402h4.5329c0-7.6359 0-15.3641 0-23z\",\n  fill: \"#333436\"\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/core-embeds.js\n/**\n * Internal dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar common = [{\n  name: 'core-embed/twitter',\n  settings: {\n    title: 'Twitter',\n    icon: embedTwitterIcon,\n    keywords: ['tweet', Object(external_this_wp_i18n_[\"__\"])('social')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a tweet.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?twitter\\.com\\/.+/i]\n}, {\n  name: 'core-embed/youtube',\n  settings: {\n    title: 'YouTube',\n    icon: embedYouTubeIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('music'), Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a YouTube video.')\n  },\n  patterns: [/^https?:\\/\\/((m|www)\\.)?youtube\\.com\\/.+/i, /^https?:\\/\\/youtu\\.be\\/.+/i]\n}, {\n  name: 'core-embed/facebook',\n  settings: {\n    title: 'Facebook',\n    icon: embedFacebookIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('social')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a Facebook post.'),\n    previewable: false\n  },\n  patterns: [/^https?:\\/\\/www\\.facebook.com\\/.+/i]\n}, {\n  name: 'core-embed/instagram',\n  settings: {\n    title: 'Instagram',\n    icon: embedInstagramIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('image'), Object(external_this_wp_i18n_[\"__\"])('social')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed an Instagram post.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?instagr(\\.am|am\\.com)\\/.+/i]\n}, {\n  name: 'core-embed/wordpress',\n  settings: {\n    title: 'WordPress',\n    icon: embedWordPressIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('post'), Object(external_this_wp_i18n_[\"__\"])('blog')],\n    responsive: false,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a WordPress post.')\n  }\n}, {\n  name: 'core-embed/soundcloud',\n  settings: {\n    title: 'SoundCloud',\n    icon: embedAudioIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('music'), Object(external_this_wp_i18n_[\"__\"])('audio')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed SoundCloud content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?soundcloud\\.com\\/.+/i]\n}, {\n  name: 'core-embed/spotify',\n  settings: {\n    title: 'Spotify',\n    icon: embedSpotifyIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('music'), Object(external_this_wp_i18n_[\"__\"])('audio')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Spotify content.')\n  },\n  patterns: [/^https?:\\/\\/(open|play)\\.spotify\\.com\\/.+/i]\n}, {\n  name: 'core-embed/flickr',\n  settings: {\n    title: 'Flickr',\n    icon: embedFlickrIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('image')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Flickr content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?flickr\\.com\\/.+/i, /^https?:\\/\\/flic\\.kr\\/.+/i]\n}, {\n  name: 'core-embed/vimeo',\n  settings: {\n    title: 'Vimeo',\n    icon: embedVimeoIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a Vimeo video.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?vimeo\\.com\\/.+/i]\n}];\nvar others = [{\n  name: 'core-embed/animoto',\n  settings: {\n    title: 'Animoto',\n    icon: embedAnimotoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed an Animoto video.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?(animoto|video214)\\.com\\/.+/i]\n}, {\n  name: 'core-embed/cloudup',\n  settings: {\n    title: 'Cloudup',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Cloudup content.')\n  },\n  patterns: [/^https?:\\/\\/cloudup\\.com\\/.+/i]\n}, {\n  // Deprecated since CollegeHumor content is now powered by YouTube\n  name: 'core-embed/collegehumor',\n  settings: {\n    title: 'CollegeHumor',\n    icon: embedVideoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed CollegeHumor content.'),\n    supports: {\n      inserter: false\n    }\n  },\n  patterns: []\n}, {\n  name: 'core-embed/crowdsignal',\n  settings: {\n    title: 'Crowdsignal',\n    icon: embedContentIcon,\n    keywords: ['polldaddy', Object(external_this_wp_i18n_[\"__\"])('survey')],\n    transform: [{\n      type: 'block',\n      blocks: ['core-embed/polldaddy'],\n      transform: function transform(content) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core-embed/crowdsignal', {\n          content: content\n        });\n      }\n    }],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Crowdsignal (formerly Polldaddy) content.')\n  },\n  patterns: [/^https?:\\/\\/((.+\\.)?polldaddy\\.com|poll\\.fm|.+\\.survey\\.fm)\\/.+/i]\n}, {\n  name: 'core-embed/dailymotion',\n  settings: {\n    title: 'Dailymotion',\n    icon: embedDailymotionIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a Dailymotion video.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?dailymotion\\.com\\/.+/i]\n}, {\n  name: 'core-embed/hulu',\n  settings: {\n    title: 'Hulu',\n    icon: embedVideoIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Hulu content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?hulu\\.com\\/.+/i]\n}, {\n  name: 'core-embed/imgur',\n  settings: {\n    title: 'Imgur',\n    icon: embedPhotoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Imgur content.')\n  },\n  patterns: [/^https?:\\/\\/(.+\\.)?imgur\\.com\\/.+/i]\n}, {\n  name: 'core-embed/issuu',\n  settings: {\n    title: 'Issuu',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Issuu content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?issuu\\.com\\/.+/i]\n}, {\n  name: 'core-embed/kickstarter',\n  settings: {\n    title: 'Kickstarter',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Kickstarter content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?kickstarter\\.com\\/.+/i, /^https?:\\/\\/kck\\.st\\/.+/i]\n}, {\n  name: 'core-embed/meetup-com',\n  settings: {\n    title: 'Meetup.com',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Meetup.com content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?meetu(\\.ps|p\\.com)\\/.+/i]\n}, {\n  name: 'core-embed/mixcloud',\n  settings: {\n    title: 'Mixcloud',\n    icon: embedAudioIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('music'), Object(external_this_wp_i18n_[\"__\"])('audio')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Mixcloud content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?mixcloud\\.com\\/.+/i]\n}, {\n  // Deprecated in favour of the core-embed/crowdsignal block\n  name: 'core-embed/polldaddy',\n  settings: {\n    title: 'Polldaddy',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Polldaddy content.'),\n    supports: {\n      inserter: false\n    }\n  },\n  patterns: []\n}, {\n  name: 'core-embed/reddit',\n  settings: {\n    title: 'Reddit',\n    icon: embedRedditIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a Reddit thread.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?reddit\\.com\\/.+/i]\n}, {\n  name: 'core-embed/reverbnation',\n  settings: {\n    title: 'ReverbNation',\n    icon: embedAudioIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed ReverbNation content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?reverbnation\\.com\\/.+/i]\n}, {\n  name: 'core-embed/screencast',\n  settings: {\n    title: 'Screencast',\n    icon: embedVideoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Screencast content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?screencast\\.com\\/.+/i]\n}, {\n  name: 'core-embed/scribd',\n  settings: {\n    title: 'Scribd',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Scribd content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?scribd\\.com\\/.+/i]\n}, {\n  name: 'core-embed/slideshare',\n  settings: {\n    title: 'Slideshare',\n    icon: embedContentIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Slideshare content.')\n  },\n  patterns: [/^https?:\\/\\/(.+?\\.)?slideshare\\.net\\/.+/i]\n}, {\n  name: 'core-embed/smugmug',\n  settings: {\n    title: 'SmugMug',\n    icon: embedPhotoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed SmugMug content.'),\n    previewable: false\n  },\n  patterns: [/^https?:\\/\\/(.+\\.)?smugmug\\.com\\/.*/i]\n}, {\n  // Deprecated in favour of the core-embed/speaker-deck block.\n  name: 'core-embed/speaker',\n  settings: {\n    title: 'Speaker',\n    icon: embedAudioIcon,\n    supports: {\n      inserter: false\n    }\n  },\n  patterns: []\n}, {\n  name: 'core-embed/speaker-deck',\n  settings: {\n    title: 'Speaker Deck',\n    icon: embedContentIcon,\n    transform: [{\n      type: 'block',\n      blocks: ['core-embed/speaker'],\n      transform: function transform(content) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core-embed/speaker-deck', {\n          content: content\n        });\n      }\n    }],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Speaker Deck content.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?speakerdeck\\.com\\/.+/i]\n}, {\n  name: 'core-embed/tiktok',\n  settings: {\n    title: 'TikTok',\n    icon: embedVideoIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a TikTok video.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?tiktok\\.com\\/.+/i]\n}, {\n  name: 'core-embed/ted',\n  settings: {\n    title: 'TED',\n    icon: embedVideoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a TED video.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.|embed\\.)?ted\\.com\\/.+/i]\n}, {\n  name: 'core-embed/tumblr',\n  settings: {\n    title: 'Tumblr',\n    icon: embedTumblrIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('social')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a Tumblr post.')\n  },\n  patterns: [/^https?:\\/\\/(www\\.)?tumblr\\.com\\/.+/i]\n}, {\n  name: 'core-embed/videopress',\n  settings: {\n    title: 'VideoPress',\n    icon: embedVideoIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('video')],\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a VideoPress video.')\n  },\n  patterns: [/^https?:\\/\\/videopress\\.com\\/.+/i]\n}, {\n  name: 'core-embed/wordpress-tv',\n  settings: {\n    title: 'WordPress.tv',\n    icon: embedVideoIcon,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed a WordPress.tv video.')\n  },\n  patterns: [/^https?:\\/\\/wordpress\\.tv\\/.+/i]\n}, {\n  name: 'core-embed/amazon-kindle',\n  settings: {\n    title: 'Amazon Kindle',\n    icon: embedAmazonIcon,\n    keywords: [Object(external_this_wp_i18n_[\"__\"])('ebook')],\n    responsive: false,\n    description: Object(external_this_wp_i18n_[\"__\"])('Embed Amazon Kindle content.')\n  },\n  patterns: [/^https?:\\/\\/([a-z0-9-]+\\.)?(amazon|amzn)(\\.[a-z]{2,4})+\\/.+/i, /^https?:\\/\\/(www\\.)?(a\\.co|z\\.cn)\\/.+/i]\n}];\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/constants.js\nvar ASPECT_RATIOS = [// Common video resolutions.\n{\n  ratio: '2.33',\n  className: 'wp-embed-aspect-21-9'\n}, {\n  ratio: '2.00',\n  className: 'wp-embed-aspect-18-9'\n}, {\n  ratio: '1.78',\n  className: 'wp-embed-aspect-16-9'\n}, {\n  ratio: '1.33',\n  className: 'wp-embed-aspect-4-3'\n}, // Vertical video and instagram square video support.\n{\n  ratio: '1.00',\n  className: 'wp-embed-aspect-1-1'\n}, {\n  ratio: '0.56',\n  className: 'wp-embed-aspect-9-16'\n}, {\n  ratio: '0.50',\n  className: 'wp-embed-aspect-1-2'\n}];\nvar DEFAULT_EMBED_BLOCK = 'core/embed';\nvar WORDPRESS_EMBED_BLOCK = 'core-embed/wordpress';\n\n// EXTERNAL MODULE: ./node_modules/classnames/dedupe.js\nvar dedupe = __webpack_require__(98);\nvar dedupe_default = /*#__PURE__*/__webpack_require__.n(dedupe);\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/util.js\n\n\n\n\nfunction util_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction util_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { util_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { util_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * External dependencies\n */\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Returns true if any of the regular expressions match the URL.\n *\n * @param {string}   url      The URL to test.\n * @param {Array}    patterns The list of regular expressions to test agains.\n * @return {boolean} True if any of the regular expressions match the URL.\n */\n\nvar matchesPatterns = function matchesPatterns(url) {\n  var patterns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  return patterns.some(function (pattern) {\n    return url.match(pattern);\n  });\n};\n/**\n * Finds the block name that should be used for the URL, based on the\n * structure of the URL.\n *\n * @param {string}  url The URL to test.\n * @return {string} The name of the block that should be used for this URL, e.g. core-embed/twitter\n */\n\nvar util_findBlock = function findBlock(url) {\n  for (var _i = 0, _arr = [].concat(Object(toConsumableArray[\"a\" /* default */])(common), Object(toConsumableArray[\"a\" /* default */])(others)); _i < _arr.length; _i++) {\n    var block = _arr[_i];\n\n    if (matchesPatterns(url, block.patterns)) {\n      return block.name;\n    }\n  }\n\n  return DEFAULT_EMBED_BLOCK;\n};\nvar util_isFromWordPress = function isFromWordPress(html) {\n  return Object(external_this_lodash_[\"includes\"])(html, 'class=\"wp-embedded-content\"');\n};\nvar util_getPhotoHtml = function getPhotoHtml(photo) {\n  // 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n  // actually the full size photo. If thumbnails not found, use full image.\n  var imageUrl = photo.thumbnail_url ? photo.thumbnail_url : photo.url;\n  var photoPreview = Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    src: imageUrl,\n    alt: photo.title,\n    width: \"100%\"\n  }));\n  return Object(external_this_wp_element_[\"renderToString\"])(photoPreview);\n};\n/**\n * Creates a more suitable embed block based on the passed in props\n * and attributes generated from an embed block's preview.\n *\n * We require `attributesFromPreview` to be generated from the latest attributes\n * and preview, and because of the way the react lifecycle operates, we can't\n * guarantee that the attributes contained in the block's props are the latest\n * versions, so we require that these are generated separately.\n * See `getAttributesFromPreview` in the generated embed edit component.\n *\n * @param {Object} props                  The block's props.\n * @param {Object} attributesFromPreview  Attributes generated from the block's most up to date preview.\n * @return {Object|undefined} A more suitable embed block if one exists.\n */\n\nvar util_createUpgradedEmbedBlock = function createUpgradedEmbedBlock(props, attributesFromPreview) {\n  var preview = props.preview,\n      name = props.name;\n  var url = props.attributes.url;\n\n  if (!url) {\n    return;\n  }\n\n  var matchingBlock = util_findBlock(url);\n\n  if (!Object(external_this_wp_blocks_[\"getBlockType\"])(matchingBlock)) {\n    return;\n  } // WordPress blocks can work on multiple sites, and so don't have patterns,\n  // so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\n\n  if (WORDPRESS_EMBED_BLOCK !== name && DEFAULT_EMBED_BLOCK !== matchingBlock) {\n    // At this point, we have discovered a more suitable block for this url, so transform it.\n    if (name !== matchingBlock) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])(matchingBlock, {\n        url: url\n      });\n    }\n  }\n\n  if (preview) {\n    var html = preview.html; // We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\n    if (util_isFromWordPress(html)) {\n      // If this is not the WordPress embed block, transform it into one.\n      if (WORDPRESS_EMBED_BLOCK !== name) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])(WORDPRESS_EMBED_BLOCK, util_objectSpread({\n          url: url\n        }, attributesFromPreview));\n      }\n    }\n  }\n};\n/**\n * Returns class names with any relevant responsive aspect ratio names.\n *\n * @param {string}  html               The preview HTML that possibly contains an iframe with width and height set.\n * @param {string}  existingClassNames Any existing class names.\n * @param {boolean} allowResponsive    If the responsive class names should be added, or removed.\n * @return {string} Deduped class names.\n */\n\nfunction getClassNames(html) {\n  var existingClassNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var allowResponsive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n  if (!allowResponsive) {\n    // Remove all of the aspect ratio related class names.\n    var aspectRatioClassNames = {\n      'wp-has-aspect-ratio': false\n    };\n\n    for (var ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++) {\n      var aspectRatioToRemove = ASPECT_RATIOS[ratioIndex];\n      aspectRatioClassNames[aspectRatioToRemove.className] = false;\n    }\n\n    return dedupe_default()(existingClassNames, aspectRatioClassNames);\n  }\n\n  var previewDocument = document.implementation.createHTMLDocument('');\n  previewDocument.body.innerHTML = html;\n  var iframe = previewDocument.body.querySelector('iframe'); // If we have a fixed aspect iframe, and it's a responsive embed block.\n\n  if (iframe && iframe.height && iframe.width) {\n    var aspectRatio = (iframe.width / iframe.height).toFixed(2); // Given the actual aspect ratio, find the widest ratio to support it.\n\n    for (var _ratioIndex = 0; _ratioIndex < ASPECT_RATIOS.length; _ratioIndex++) {\n      var potentialRatio = ASPECT_RATIOS[_ratioIndex];\n\n      if (aspectRatio >= potentialRatio.ratio) {\n        var _classnames;\n\n        return dedupe_default()(existingClassNames, (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, potentialRatio.className, allowResponsive), Object(defineProperty[\"a\" /* default */])(_classnames, 'wp-has-aspect-ratio', allowResponsive), _classnames));\n      }\n    }\n  }\n\n  return existingClassNames;\n}\n/**\n * Fallback behaviour for unembeddable URLs.\n * Creates a paragraph block containing a link to the URL, and calls `onReplace`.\n *\n * @param {string}   url       The URL that could not be embedded.\n * @param {Function} onReplace Function to call with the created fallback block.\n */\n\nfunction util_fallback(url, onReplace) {\n  var link = Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    href: url\n  }, url);\n  onReplace(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n    content: Object(external_this_wp_element_[\"renderToString\"])(link)\n  }));\n}\n/***\n * Gets block attributes based on the preview and responsive state.\n *\n * @param {Object} preview The preview data.\n * @param {string} title The block's title, e.g. Twitter.\n * @param {Object} currentClassNames The block's current class names.\n * @param {boolean} isResponsive Boolean indicating if the block supports responsive content.\n * @param {boolean} allowResponsive Apply responsive classes to fixed size content.\n * @return {Object} Attributes and values.\n */\n\nvar getAttributesFromPreview = memize_default()(function (preview, title, currentClassNames, isResponsive) {\n  var allowResponsive = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n\n  if (!preview) {\n    return {};\n  }\n\n  var attributes = {}; // Some plugins only return HTML with no type info, so default this to 'rich'.\n\n  var _preview$type = preview.type,\n      type = _preview$type === void 0 ? 'rich' : _preview$type; // If we got a provider name from the API, use it for the slug, otherwise we use the title,\n  // because not all embed code gives us a provider name.\n\n  var html = preview.html,\n      providerName = preview.provider_name;\n  var providerNameSlug = Object(external_this_lodash_[\"kebabCase\"])(Object(external_this_lodash_[\"toLower\"])('' !== providerName ? providerName : title));\n\n  if (util_isFromWordPress(html)) {\n    type = 'wp-embed';\n  }\n\n  if (html || 'photo' === type) {\n    attributes.type = type;\n    attributes.providerNameSlug = providerNameSlug;\n  }\n\n  attributes.className = getClassNames(html, currentClassNames, isResponsive && allowResponsive);\n  return attributes;\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/use-client-width.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction useClientWidth(ref, dependencies) {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      clientWidth = _useState2[0],\n      setClientWidth = _useState2[1];\n\n  function calculateClientWidth() {\n    setClientWidth(ref.current.clientWidth);\n  }\n\n  Object(external_this_wp_element_[\"useEffect\"])(calculateClientWidth, dependencies);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var defaultView = ref.current.ownerDocument.defaultView;\n    defaultView.addEventListener('resize', calculateClientWidth);\n    return function () {\n      defaultView.removeEventListener('resize', calculateClientWidth);\n    };\n  }, []);\n  return clientWidth;\n}\n\n// CONCATENATED MODULE: ./node_modules/react-easy-crop/node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nfunction __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nfunction __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\nvar external_this_React_default = /*#__PURE__*/__webpack_require__.n(external_this_React_);\n\n// CONCATENATED MODULE: ./node_modules/react-easy-crop/index.module.js\n\n\n\n/**\r\n * Compute the dimension of the crop area based on media size,\r\n * aspect ratio and optionally rotatation\r\n */\n\nfunction getCropSize(mediaWidth, mediaHeight, aspect, rotation) {\n  if (rotation === void 0) {\n    rotation = 0;\n  }\n\n  var _a = translateSize(mediaWidth, mediaHeight, rotation),\n      width = _a.width,\n      height = _a.height;\n\n  if (mediaWidth >= mediaHeight * aspect && width > mediaHeight * aspect) {\n    return {\n      width: mediaHeight * aspect,\n      height: mediaHeight\n    };\n  }\n\n  if (width > mediaHeight * aspect) {\n    return {\n      width: mediaWidth,\n      height: mediaWidth / aspect\n    };\n  }\n\n  if (width > height * aspect) {\n    return {\n      width: height * aspect,\n      height: height\n    };\n  }\n\n  return {\n    width: width,\n    height: width / aspect\n  };\n}\n/**\r\n * Ensure a new media position stays in the crop area.\r\n */\n\nfunction index_module_restrictPosition(position, mediaSize, cropSize, zoom, rotation) {\n  if (rotation === void 0) {\n    rotation = 0;\n  }\n\n  var _a = translateSize(mediaSize.width, mediaSize.height, rotation),\n      width = _a.width,\n      height = _a.height;\n\n  return {\n    x: restrictPositionCoord(position.x, width, cropSize.width, zoom),\n    y: restrictPositionCoord(position.y, height, cropSize.height, zoom)\n  };\n}\n\nfunction restrictPositionCoord(position, mediaSize, cropSize, zoom) {\n  var maxPosition = mediaSize * zoom / 2 - cropSize / 2;\n  return Math.min(maxPosition, Math.max(position, -maxPosition));\n}\n\nfunction getDistanceBetweenPoints(pointA, pointB) {\n  return Math.sqrt(Math.pow(pointA.y - pointB.y, 2) + Math.pow(pointA.x - pointB.x, 2));\n}\nfunction getRotationBetweenPoints(pointA, pointB) {\n  return Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x) * 180 / Math.PI;\n}\n/**\r\n * Compute the output cropped area of the media in percentages and pixels.\r\n * x/y are the top-left coordinates on the src media\r\n */\n\nfunction computeCroppedArea(crop, mediaSize, cropSize, aspect, zoom, rotation, restrictPosition) {\n  if (rotation === void 0) {\n    rotation = 0;\n  }\n\n  if (restrictPosition === void 0) {\n    restrictPosition = true;\n  } // if the media is rotated by the user, we cannot limit the position anymore\n  // as it might need to be negative.\n\n\n  var limitAreaFn = restrictPosition && rotation === 0 ? limitArea : noOp;\n  var croppedAreaPercentages = {\n    x: limitAreaFn(100, ((mediaSize.width - cropSize.width / zoom) / 2 - crop.x / zoom) / mediaSize.width * 100),\n    y: limitAreaFn(100, ((mediaSize.height - cropSize.height / zoom) / 2 - crop.y / zoom) / mediaSize.height * 100),\n    width: limitAreaFn(100, cropSize.width / mediaSize.width * 100 / zoom),\n    height: limitAreaFn(100, cropSize.height / mediaSize.height * 100 / zoom)\n  }; // we compute the pixels size naively\n\n  var widthInPixels = Math.round(limitAreaFn(mediaSize.naturalWidth, croppedAreaPercentages.width * mediaSize.naturalWidth / 100));\n  var heightInPixels = Math.round(limitAreaFn(mediaSize.naturalHeight, croppedAreaPercentages.height * mediaSize.naturalHeight / 100));\n  var isImgWiderThanHigh = mediaSize.naturalWidth >= mediaSize.naturalHeight * aspect; // then we ensure the width and height exactly match the aspect (to avoid rounding approximations)\n  // if the media is wider than high, when zoom is 0, the crop height will be equals to iamge height\n  // thus we want to compute the width from the height and aspect for accuracy.\n  // Otherwise, we compute the height from width and aspect.\n\n  var sizePixels = isImgWiderThanHigh ? {\n    width: Math.round(heightInPixels * aspect),\n    height: heightInPixels\n  } : {\n    width: widthInPixels,\n    height: Math.round(widthInPixels / aspect)\n  };\n\n  var croppedAreaPixels = __assign(__assign({}, sizePixels), {\n    x: Math.round(limitAreaFn(mediaSize.naturalWidth - sizePixels.width, croppedAreaPercentages.x * mediaSize.naturalWidth / 100)),\n    y: Math.round(limitAreaFn(mediaSize.naturalHeight - sizePixels.height, croppedAreaPercentages.y * mediaSize.naturalHeight / 100))\n  });\n\n  return {\n    croppedAreaPercentages: croppedAreaPercentages,\n    croppedAreaPixels: croppedAreaPixels\n  };\n}\n/**\r\n * Ensure the returned value is between 0 and max\r\n */\n\nfunction limitArea(max, value) {\n  return Math.min(max, Math.max(0, value));\n}\n\nfunction noOp(_max, value) {\n  return value;\n}\n/**\r\n * Compute the crop and zoom from the croppedAreaPixels\r\n */\n\n\nfunction getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) {\n  var mediaZoom = mediaSize.width / mediaSize.naturalWidth;\n\n  if (cropSize) {\n    var isHeightMaxSize_1 = cropSize.height > cropSize.width;\n    return isHeightMaxSize_1 ? cropSize.height / mediaZoom / croppedAreaPixels.height : cropSize.width / mediaZoom / croppedAreaPixels.width;\n  }\n\n  var aspect = croppedAreaPixels.width / croppedAreaPixels.height;\n  var isHeightMaxSize = mediaSize.naturalWidth >= mediaSize.naturalHeight * aspect;\n  return isHeightMaxSize ? mediaSize.naturalHeight / croppedAreaPixels.height : mediaSize.naturalWidth / croppedAreaPixels.width;\n}\n/**\r\n * Compute the crop and zoom from the croppedAreaPixels\r\n */\n\n\nfunction getInitialCropFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize) {\n  var mediaZoom = mediaSize.width / mediaSize.naturalWidth;\n  var zoom = getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize);\n  var cropZoom = mediaZoom * zoom;\n  var crop = {\n    x: ((mediaSize.naturalWidth - croppedAreaPixels.width) / 2 - croppedAreaPixels.x) * cropZoom,\n    y: ((mediaSize.naturalHeight - croppedAreaPixels.height) / 2 - croppedAreaPixels.y) * cropZoom\n  };\n  return {\n    crop: crop,\n    zoom: zoom\n  };\n}\n/**\r\n * Return the point that is the center of point a and b\r\n */\n\nfunction getCenter(a, b) {\n  return {\n    x: (b.x + a.x) / 2,\n    y: (b.y + a.y) / 2\n  };\n}\n/**\r\n *\r\n * Returns an x,y point once rotated around xMid,yMid\r\n */\n\nfunction rotateAroundMidPoint(x, y, xMid, yMid, degrees) {\n  var cos = Math.cos;\n  var sin = Math.sin;\n  var radian = degrees * Math.PI / 180; // Convert to radians\n  // Subtract midpoints, so that midpoint is translated to origin\n  // and add it in the end again\n\n  var xr = (x - xMid) * cos(radian) - (y - yMid) * sin(radian) + xMid;\n  var yr = (x - xMid) * sin(radian) + (y - yMid) * cos(radian) + yMid;\n  return [xr, yr];\n}\n/**\r\n * Returns the new bounding area of a rotated rectangle.\r\n */\n\nfunction translateSize(width, height, rotation) {\n  var centerX = width / 2;\n  var centerY = height / 2;\n  var outerBounds = [rotateAroundMidPoint(0, 0, centerX, centerY, rotation), rotateAroundMidPoint(width, 0, centerX, centerY, rotation), rotateAroundMidPoint(width, height, centerX, centerY, rotation), rotateAroundMidPoint(0, height, centerX, centerY, rotation)];\n  var minX = Math.min.apply(Math, outerBounds.map(function (p) {\n    return p[0];\n  }));\n  var maxX = Math.max.apply(Math, outerBounds.map(function (p) {\n    return p[0];\n  }));\n  var minY = Math.min.apply(Math, outerBounds.map(function (p) {\n    return p[1];\n  }));\n  var maxY = Math.max.apply(Math, outerBounds.map(function (p) {\n    return p[1];\n  }));\n  return {\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\n/**\r\n * Combine multiple class names into a single string.\r\n */\n\nfunction index_module_classNames() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  return args.filter(function (value) {\n    if (typeof value === 'string' && value.length > 0) {\n      return true;\n    }\n\n    return false;\n  }).join(' ').trim();\n}\n\nvar css = \".reactEasyCrop_Container {\\n  position: absolute;\\n  top: 0;\\n  left: 0;\\n  right: 0;\\n  bottom: 0;\\n  overflow: hidden;\\n  user-select: none;\\n  touch-action: none;\\n  cursor: move;\\n}\\n\\n.reactEasyCrop_Image,\\n.reactEasyCrop_Video {\\n  max-width: 100%;\\n  max-height: 100%;\\n  margin: auto;\\n  position: absolute;\\n  top: 0;\\n  bottom: 0;\\n  left: 0;\\n  right: 0;\\n  will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */\\n}\\n\\n.reactEasyCrop_CropArea {\\n  position: absolute;\\n  left: 50%;\\n  top: 50%;\\n  transform: translate(-50%, -50%);\\n  border: 1px solid rgba(255, 255, 255, 0.5);\\n  box-sizing: border-box;\\n  box-shadow: 0 0 0 9999em;\\n  color: rgba(0, 0, 0, 0.5);\\n  overflow: hidden;\\n}\\n\\n.reactEasyCrop_CropAreaRound {\\n  border-radius: 50%;\\n}\\n\\n.reactEasyCrop_CropAreaGrid::before {\\n  content: ' ';\\n  box-sizing: border-box;\\n  position: absolute;\\n  border: 1px solid rgba(255, 255, 255, 0.5);\\n  top: 0;\\n  bottom: 0;\\n  left: 33.33%;\\n  right: 33.33%;\\n  border-top: 0;\\n  border-bottom: 0;\\n}\\n\\n.reactEasyCrop_CropAreaGrid::after {\\n  content: ' ';\\n  box-sizing: border-box;\\n  position: absolute;\\n  border: 1px solid rgba(255, 255, 255, 0.5);\\n  top: 33.33%;\\n  bottom: 33.33%;\\n  left: 0;\\n  right: 0;\\n  border-left: 0;\\n  border-right: 0;\\n}\\n\";\n\nvar MIN_ZOOM = 1;\nvar MAX_ZOOM = 3;\n\nvar index_module_Cropper =\n/** @class */\nfunction (_super) {\n  __extends(Cropper, _super);\n\n  function Cropper() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.imageRef = null;\n    _this.videoRef = null;\n    _this.containerRef = null;\n    _this.styleRef = null;\n    _this.containerRect = null;\n    _this.mediaSize = {\n      width: 0,\n      height: 0,\n      naturalWidth: 0,\n      naturalHeight: 0\n    };\n    _this.dragStartPosition = {\n      x: 0,\n      y: 0\n    };\n    _this.dragStartCrop = {\n      x: 0,\n      y: 0\n    };\n    _this.lastPinchDistance = 0;\n    _this.lastPinchRotation = 0;\n    _this.rafDragTimeout = null;\n    _this.rafPinchTimeout = null;\n    _this.wheelTimer = null;\n    _this.state = {\n      cropSize: null,\n      hasWheelJustStarted: false\n    }; // this is to prevent Safari on iOS >= 10 to zoom the page\n\n    _this.preventZoomSafari = function (e) {\n      return e.preventDefault();\n    };\n\n    _this.cleanEvents = function () {\n      document.removeEventListener('mousemove', _this.onMouseMove);\n      document.removeEventListener('mouseup', _this.onDragStopped);\n      document.removeEventListener('touchmove', _this.onTouchMove);\n      document.removeEventListener('touchend', _this.onDragStopped);\n    };\n\n    _this.clearScrollEvent = function () {\n      if (_this.containerRef) _this.containerRef.removeEventListener('wheel', _this.onWheel);\n\n      if (_this.wheelTimer) {\n        clearTimeout(_this.wheelTimer);\n      }\n    };\n\n    _this.onMediaLoad = function () {\n      _this.computeSizes();\n\n      _this.emitCropData();\n\n      _this.setInitialCrop();\n\n      if (_this.props.onMediaLoaded) {\n        _this.props.onMediaLoaded(_this.mediaSize);\n      }\n    };\n\n    _this.setInitialCrop = function () {\n      var _a = _this.props,\n          initialCroppedAreaPixels = _a.initialCroppedAreaPixels,\n          cropSize = _a.cropSize;\n\n      if (!initialCroppedAreaPixels) {\n        return;\n      }\n\n      var _b = getInitialCropFromCroppedAreaPixels(initialCroppedAreaPixels, _this.mediaSize, cropSize),\n          crop = _b.crop,\n          zoom = _b.zoom;\n\n      _this.props.onCropChange(crop);\n\n      _this.props.onZoomChange && _this.props.onZoomChange(zoom);\n    };\n\n    _this.computeSizes = function () {\n      var _a, _b, _c, _d;\n\n      var mediaRef = _this.imageRef || _this.videoRef;\n\n      if (mediaRef) {\n        _this.mediaSize = {\n          width: mediaRef.offsetWidth,\n          height: mediaRef.offsetHeight,\n          naturalWidth: ((_a = _this.imageRef) === null || _a === void 0 ? void 0 : _a.naturalWidth) || ((_b = _this.videoRef) === null || _b === void 0 ? void 0 : _b.videoWidth) || 0,\n          naturalHeight: ((_c = _this.imageRef) === null || _c === void 0 ? void 0 : _c.naturalHeight) || ((_d = _this.videoRef) === null || _d === void 0 ? void 0 : _d.videoHeight) || 0\n        };\n        var cropSize = _this.props.cropSize ? _this.props.cropSize : getCropSize(mediaRef.offsetWidth, mediaRef.offsetHeight, _this.props.aspect, _this.props.rotation);\n\n        _this.setState({\n          cropSize: cropSize\n        }, _this.recomputeCropPosition);\n      }\n\n      if (_this.containerRef) {\n        _this.containerRect = _this.containerRef.getBoundingClientRect();\n      }\n    };\n\n    _this.onMouseDown = function (e) {\n      e.preventDefault();\n      document.addEventListener('mousemove', _this.onMouseMove);\n      document.addEventListener('mouseup', _this.onDragStopped);\n\n      _this.onDragStart(Cropper.getMousePoint(e));\n    };\n\n    _this.onMouseMove = function (e) {\n      return _this.onDrag(Cropper.getMousePoint(e));\n    };\n\n    _this.onTouchStart = function (e) {\n      e.preventDefault();\n      document.addEventListener('touchmove', _this.onTouchMove, {\n        passive: false\n      }); // iOS 11 now defaults to passive: true\n\n      document.addEventListener('touchend', _this.onDragStopped);\n\n      if (e.touches.length === 2) {\n        _this.onPinchStart(e);\n      } else if (e.touches.length === 1) {\n        _this.onDragStart(Cropper.getTouchPoint(e.touches[0]));\n      }\n    };\n\n    _this.onTouchMove = function (e) {\n      // Prevent whole page from scrolling on iOS.\n      e.preventDefault();\n\n      if (e.touches.length === 2) {\n        _this.onPinchMove(e);\n      } else if (e.touches.length === 1) {\n        _this.onDrag(Cropper.getTouchPoint(e.touches[0]));\n      }\n    };\n\n    _this.onDragStart = function (_a) {\n      var x = _a.x,\n          y = _a.y;\n\n      var _b, _c;\n\n      _this.dragStartPosition = {\n        x: x,\n        y: y\n      };\n      _this.dragStartCrop = __assign({}, _this.props.crop);\n      (_c = (_b = _this.props).onInteractionStart) === null || _c === void 0 ? void 0 : _c.call(_b);\n    };\n\n    _this.onDrag = function (_a) {\n      var x = _a.x,\n          y = _a.y;\n      if (_this.rafDragTimeout) window.cancelAnimationFrame(_this.rafDragTimeout);\n      _this.rafDragTimeout = window.requestAnimationFrame(function () {\n        if (!_this.state.cropSize) return;\n        if (x === undefined || y === undefined) return;\n        var offsetX = x - _this.dragStartPosition.x;\n        var offsetY = y - _this.dragStartPosition.y;\n        var requestedPosition = {\n          x: _this.dragStartCrop.x + offsetX,\n          y: _this.dragStartCrop.y + offsetY\n        };\n        var newPosition = _this.props.restrictPosition ? index_module_restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : requestedPosition;\n\n        _this.props.onCropChange(newPosition);\n      });\n    };\n\n    _this.onDragStopped = function () {\n      var _a, _b;\n\n      _this.cleanEvents();\n\n      _this.emitCropData();\n\n      (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);\n    };\n\n    _this.onWheel = function (e) {\n      e.preventDefault();\n      var point = Cropper.getMousePoint(e);\n      var newZoom = _this.props.zoom - e.deltaY * _this.props.zoomSpeed / 200;\n\n      _this.setNewZoom(newZoom, point);\n\n      if (!_this.state.hasWheelJustStarted) {\n        _this.setState({\n          hasWheelJustStarted: true\n        }, function () {\n          var _a, _b;\n\n          return (_b = (_a = _this.props).onInteractionStart) === null || _b === void 0 ? void 0 : _b.call(_a);\n        });\n      }\n\n      if (_this.wheelTimer) {\n        clearTimeout(_this.wheelTimer);\n      }\n\n      _this.wheelTimer = window.setTimeout(function () {\n        return _this.setState({\n          hasWheelJustStarted: false\n        }, function () {\n          var _a, _b;\n\n          return (_b = (_a = _this.props).onInteractionEnd) === null || _b === void 0 ? void 0 : _b.call(_a);\n        });\n      }, 250);\n    };\n\n    _this.getPointOnContainer = function (_a) {\n      var x = _a.x,\n          y = _a.y;\n\n      if (!_this.containerRect) {\n        throw new Error('The Cropper is not mounted');\n      }\n\n      return {\n        x: _this.containerRect.width / 2 - (x - _this.containerRect.left),\n        y: _this.containerRect.height / 2 - (y - _this.containerRect.top)\n      };\n    };\n\n    _this.getPointOnMedia = function (_a) {\n      var x = _a.x,\n          y = _a.y;\n      var _b = _this.props,\n          crop = _b.crop,\n          zoom = _b.zoom;\n      return {\n        x: (x + crop.x) / zoom,\n        y: (y + crop.y) / zoom\n      };\n    };\n\n    _this.setNewZoom = function (zoom, point) {\n      if (!_this.state.cropSize || !_this.props.onZoomChange) return;\n\n      var zoomPoint = _this.getPointOnContainer(point);\n\n      var zoomTarget = _this.getPointOnMedia(zoomPoint);\n\n      var newZoom = Math.min(_this.props.maxZoom, Math.max(zoom, _this.props.minZoom));\n      var requestedPosition = {\n        x: zoomTarget.x * newZoom - zoomPoint.x,\n        y: zoomTarget.y * newZoom - zoomPoint.y\n      };\n      var newPosition = _this.props.restrictPosition ? index_module_restrictPosition(requestedPosition, _this.mediaSize, _this.state.cropSize, newZoom, _this.props.rotation) : requestedPosition;\n\n      _this.props.onCropChange(newPosition);\n\n      _this.props.onZoomChange(newZoom);\n    };\n\n    _this.emitCropData = function () {\n      if (!_this.state.cropSize) return; // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ricardo-ch/react-easy-crop/issues/6)\n\n      var restrictedPosition = _this.props.restrictPosition ? index_module_restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop;\n\n      var _a = computeCroppedArea(restrictedPosition, _this.mediaSize, _this.state.cropSize, _this.getAspect(), _this.props.zoom, _this.props.rotation, _this.props.restrictPosition),\n          croppedAreaPercentages = _a.croppedAreaPercentages,\n          croppedAreaPixels = _a.croppedAreaPixels;\n\n      _this.props.onCropComplete && _this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels);\n    };\n\n    _this.recomputeCropPosition = function () {\n      if (!_this.state.cropSize) return;\n      var newPosition = _this.props.restrictPosition ? index_module_restrictPosition(_this.props.crop, _this.mediaSize, _this.state.cropSize, _this.props.zoom, _this.props.rotation) : _this.props.crop;\n\n      _this.props.onCropChange(newPosition);\n\n      _this.emitCropData();\n    };\n\n    return _this;\n  }\n\n  Cropper.prototype.componentDidMount = function () {\n    window.addEventListener('resize', this.computeSizes);\n\n    if (this.containerRef) {\n      this.props.zoomWithScroll && this.containerRef.addEventListener('wheel', this.onWheel, {\n        passive: false\n      });\n      this.containerRef.addEventListener('gesturestart', this.preventZoomSafari);\n      this.containerRef.addEventListener('gesturechange', this.preventZoomSafari);\n    }\n\n    if (!this.props.disableAutomaticStylesInjection) {\n      this.styleRef = document.createElement('style');\n      this.styleRef.setAttribute('type', 'text/css');\n      this.styleRef.innerHTML = css;\n      document.head.appendChild(this.styleRef);\n    } // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called\n\n\n    if (this.imageRef && this.imageRef.complete) {\n      this.onMediaLoad();\n    }\n  };\n\n  Cropper.prototype.componentWillUnmount = function () {\n    window.removeEventListener('resize', this.computeSizes);\n\n    if (this.containerRef) {\n      this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari);\n      this.containerRef.removeEventListener('gesturechange', this.preventZoomSafari);\n    }\n\n    if (this.styleRef) {\n      this.styleRef.remove();\n    }\n\n    this.cleanEvents();\n    this.props.zoomWithScroll && this.clearScrollEvent();\n  };\n\n  Cropper.prototype.componentDidUpdate = function (prevProps) {\n    var _a, _b, _c, _d;\n\n    if (prevProps.rotation !== this.props.rotation) {\n      this.computeSizes();\n      this.recomputeCropPosition();\n    } else if (prevProps.aspect !== this.props.aspect) {\n      this.computeSizes();\n    } else if (prevProps.zoom !== this.props.zoom) {\n      this.recomputeCropPosition();\n    } else if (((_a = prevProps.cropSize) === null || _a === void 0 ? void 0 : _a.height) !== ((_b = this.props.cropSize) === null || _b === void 0 ? void 0 : _b.height) || ((_c = prevProps.cropSize) === null || _c === void 0 ? void 0 : _c.width) !== ((_d = this.props.cropSize) === null || _d === void 0 ? void 0 : _d.width)) {\n      this.computeSizes();\n    }\n\n    if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) {\n      this.props.zoomWithScroll ? this.containerRef.addEventListener('wheel', this.onWheel, {\n        passive: false\n      }) : this.clearScrollEvent();\n    }\n  };\n\n  Cropper.prototype.getAspect = function () {\n    var _a = this.props,\n        cropSize = _a.cropSize,\n        aspect = _a.aspect;\n\n    if (cropSize) {\n      return cropSize.width / cropSize.height;\n    }\n\n    return aspect;\n  };\n\n  Cropper.prototype.onPinchStart = function (e) {\n    var pointA = Cropper.getTouchPoint(e.touches[0]);\n    var pointB = Cropper.getTouchPoint(e.touches[1]);\n    this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB);\n    this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB);\n    this.onDragStart(getCenter(pointA, pointB));\n  };\n\n  Cropper.prototype.onPinchMove = function (e) {\n    var _this = this;\n\n    var pointA = Cropper.getTouchPoint(e.touches[0]);\n    var pointB = Cropper.getTouchPoint(e.touches[1]);\n    var center = getCenter(pointA, pointB);\n    this.onDrag(center);\n    if (this.rafPinchTimeout) window.cancelAnimationFrame(this.rafPinchTimeout);\n    this.rafPinchTimeout = window.requestAnimationFrame(function () {\n      var distance = getDistanceBetweenPoints(pointA, pointB);\n      var newZoom = _this.props.zoom * (distance / _this.lastPinchDistance);\n\n      _this.setNewZoom(newZoom, center);\n\n      _this.lastPinchDistance = distance;\n      var rotation = getRotationBetweenPoints(pointA, pointB);\n      var newRotation = _this.props.rotation + (rotation - _this.lastPinchRotation);\n      _this.props.onRotationChange && _this.props.onRotationChange(newRotation);\n      _this.lastPinchRotation = rotation;\n    });\n  };\n\n  Cropper.prototype.render = function () {\n    var _this = this;\n\n    var _a = this.props,\n        image = _a.image,\n        video = _a.video,\n        mediaProps = _a.mediaProps,\n        transform = _a.transform,\n        _b = _a.crop,\n        x = _b.x,\n        y = _b.y,\n        rotation = _a.rotation,\n        zoom = _a.zoom,\n        cropShape = _a.cropShape,\n        showGrid = _a.showGrid,\n        _c = _a.style,\n        containerStyle = _c.containerStyle,\n        cropAreaStyle = _c.cropAreaStyle,\n        mediaStyle = _c.mediaStyle,\n        _d = _a.classes,\n        containerClassName = _d.containerClassName,\n        cropAreaClassName = _d.cropAreaClassName,\n        mediaClassName = _d.mediaClassName;\n    return external_this_React_default.a.createElement(\"div\", {\n      onMouseDown: this.onMouseDown,\n      onTouchStart: this.onTouchStart,\n      ref: function ref(el) {\n        return _this.containerRef = el;\n      },\n      \"data-testid\": \"container\",\n      style: containerStyle,\n      className: index_module_classNames('reactEasyCrop_Container', containerClassName)\n    }, image ? external_this_React_default.a.createElement(\"img\", __assign({\n      alt: \"\",\n      className: index_module_classNames('reactEasyCrop_Image', mediaClassName)\n    }, mediaProps, {\n      src: image,\n      ref: function ref(el) {\n        return _this.imageRef = el;\n      },\n      style: __assign(__assign({}, mediaStyle), {\n        transform: transform || \"translate(\" + x + \"px, \" + y + \"px) rotate(\" + rotation + \"deg) scale(\" + zoom + \")\"\n      }),\n      onLoad: this.onMediaLoad\n    })) : video && external_this_React_default.a.createElement(\"video\", __assign({\n      autoPlay: true,\n      loop: true,\n      muted: true,\n      className: index_module_classNames('reactEasyCrop_Video', mediaClassName)\n    }, mediaProps, {\n      src: video,\n      ref: function ref(el) {\n        return _this.videoRef = el;\n      },\n      onLoadedMetadata: this.onMediaLoad,\n      style: __assign(__assign({}, mediaStyle), {\n        transform: transform || \"translate(\" + x + \"px, \" + y + \"px) rotate(\" + rotation + \"deg) scale(\" + zoom + \")\"\n      }),\n      controls: false\n    })), this.state.cropSize && external_this_React_default.a.createElement(\"div\", {\n      style: __assign(__assign({}, cropAreaStyle), {\n        width: this.state.cropSize.width,\n        height: this.state.cropSize.height\n      }),\n      \"data-testid\": \"cropper\",\n      className: index_module_classNames('reactEasyCrop_CropArea', cropShape === 'round' && 'reactEasyCrop_CropAreaRound', showGrid && 'reactEasyCrop_CropAreaGrid', cropAreaClassName)\n    }));\n  };\n\n  Cropper.defaultProps = {\n    zoom: 1,\n    rotation: 0,\n    aspect: 4 / 3,\n    maxZoom: MAX_ZOOM,\n    minZoom: MIN_ZOOM,\n    cropShape: 'rect',\n    showGrid: true,\n    style: {},\n    classes: {},\n    mediaProps: {},\n    zoomSpeed: 1,\n    restrictPosition: true,\n    zoomWithScroll: true\n  };\n\n  Cropper.getMousePoint = function (e) {\n    return {\n      x: Number(e.clientX),\n      y: Number(e.clientY)\n    };\n  };\n\n  Cropper.getTouchPoint = function (touch) {\n    return {\n      x: Number(touch.clientX),\n      y: Number(touch.clientY)\n    };\n  };\n\n  return Cropper;\n}(external_this_React_default.a.Component);\n\n/* harmony default export */ var index_module = (index_module_Cropper);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js\nvar check = __webpack_require__(148);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/aspect-ratio.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar aspect_ratio_aspectRatio = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18.5 5.5h-13c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2v-9c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-9c0-.3.2-.5.5-.5h13c.3 0 .5.2.5.5v9zM6.5 12H8v-2h2V8.5H6.5V12zm9.5 2h-2v1.5h3.5V12H16v2z\"\n}));\n/* harmony default export */ var aspect_ratio = (aspect_ratio_aspectRatio);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/search.js\nvar search = __webpack_require__(287);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rotate-right.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar rotateRight = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M15.1 4.8l-3-2.5V4c-4.4 0-8 3.6-8 8 0 3.7 2.5 6.9 6 7.7.3.1.6.1 1 .2l.2-1.5c-.4 0-.7-.1-1.1-.2l-.1.2v-.2c-2.6-.8-4.5-3.3-4.5-6.2 0-3.6 2.9-6.5 6.5-6.5v1.8l3-2.5zM20 11c-.2-1.4-.7-2.7-1.6-3.8l-1.2.8c.7.9 1.1 2 1.3 3.1L20 11zm-1.5 1.8c-.1.5-.2 1.1-.4 1.6s-.5 1-.8 1.5l1.2.9c.4-.5.8-1.1 1-1.8s.5-1.3.5-2l-1.5-.2zm-5.6 5.6l.2 1.5c1.4-.2 2.7-.7 3.8-1.6l-.9-1.1c-.9.7-2 1.1-3.1 1.2z\"\n}));\n/* harmony default export */ var rotate_right = (rotateRight);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image-editor.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\nvar image_editor_MIN_ZOOM = 100;\nvar image_editor_MAX_ZOOM = 300;\nvar POPOVER_PROPS = {\n  position: 'bottom right',\n  isAlternate: true\n};\n\nfunction AspectGroup(_ref) {\n  var aspectRatios = _ref.aspectRatios,\n      isDisabled = _ref.isDisabled,\n      label = _ref.label,\n      _onClick = _ref.onClick,\n      value = _ref.value;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n    label: label\n  }, aspectRatios.map(function (_ref2) {\n    var title = _ref2.title,\n        aspect = _ref2.aspect;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      key: aspect,\n      isDisabled: isDisabled,\n      onClick: function onClick() {\n        _onClick(aspect);\n      },\n      role: \"menuitemradio\",\n      isSelected: aspect === value,\n      icon: aspect === value ? check[\"a\" /* default */] : undefined\n    }, title);\n  }));\n}\n\nfunction AspectMenu(_ref3) {\n  var isDisabled = _ref3.isDisabled,\n      _onClick2 = _ref3.onClick,\n      value = _ref3.value,\n      defaultValue = _ref3.defaultValue;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], {\n    icon: aspect_ratio,\n    label: Object(external_this_wp_i18n_[\"__\"])('Aspect Ratio'),\n    popoverProps: POPOVER_PROPS,\n    className: \"wp-block-image__aspect-ratio\"\n  }, function (_ref4) {\n    var onClose = _ref4.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(AspectGroup, {\n      isDisabled: isDisabled,\n      onClick: function onClick(aspect) {\n        _onClick2(aspect);\n\n        onClose();\n      },\n      value: value,\n      aspectRatios: [{\n        title: Object(external_this_wp_i18n_[\"__\"])('Original'),\n        aspect: defaultValue\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('Square'),\n        aspect: 1\n      }]\n    }), Object(external_this_wp_element_[\"createElement\"])(AspectGroup, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Landscape'),\n      isDisabled: isDisabled,\n      onClick: function onClick(aspect) {\n        _onClick2(aspect);\n\n        onClose();\n      },\n      value: value,\n      aspectRatios: [{\n        title: Object(external_this_wp_i18n_[\"__\"])('16:10'),\n        aspect: 16 / 10\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('16:9'),\n        aspect: 16 / 9\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('4:3'),\n        aspect: 4 / 3\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('3:2'),\n        aspect: 3 / 2\n      }]\n    }), Object(external_this_wp_element_[\"createElement\"])(AspectGroup, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Portrait'),\n      isDisabled: isDisabled,\n      onClick: function onClick(aspect) {\n        _onClick2(aspect);\n\n        onClose();\n      },\n      value: value,\n      aspectRatios: [{\n        title: Object(external_this_wp_i18n_[\"__\"])('10:16'),\n        aspect: 10 / 16\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('9:16'),\n        aspect: 9 / 16\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('3:4'),\n        aspect: 3 / 4\n      }, {\n        title: Object(external_this_wp_i18n_[\"__\"])('2:3'),\n        aspect: 2 / 3\n      }]\n    }));\n  });\n}\n\nfunction ImageEditor(_ref5) {\n  var id = _ref5.id,\n      url = _ref5.url,\n      setAttributes = _ref5.setAttributes,\n      naturalWidth = _ref5.naturalWidth,\n      naturalHeight = _ref5.naturalHeight,\n      width = _ref5.width,\n      height = _ref5.height,\n      clientWidth = _ref5.clientWidth,\n      setIsEditingImage = _ref5.setIsEditingImage;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/notices'),\n      createErrorNotice = _useDispatch.createErrorNotice;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      inProgress = _useState2[0],\n      setIsProgress = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      crop = _useState4[0],\n      setCrop = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])({\n    x: 0,\n    y: 0\n  }),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      position = _useState6[0],\n      setPosition = _useState6[1];\n\n  var _useState7 = Object(external_this_wp_element_[\"useState\"])(100),\n      _useState8 = Object(slicedToArray[\"a\" /* default */])(_useState7, 2),\n      zoom = _useState8[0],\n      setZoom = _useState8[1];\n\n  var _useState9 = Object(external_this_wp_element_[\"useState\"])(naturalWidth / naturalHeight),\n      _useState10 = Object(slicedToArray[\"a\" /* default */])(_useState9, 2),\n      aspect = _useState10[0],\n      setAspect = _useState10[1];\n\n  var _useState11 = Object(external_this_wp_element_[\"useState\"])(0),\n      _useState12 = Object(slicedToArray[\"a\" /* default */])(_useState11, 2),\n      rotation = _useState12[0],\n      setRotation = _useState12[1];\n\n  var _useState13 = Object(external_this_wp_element_[\"useState\"])(),\n      _useState14 = Object(slicedToArray[\"a\" /* default */])(_useState13, 2),\n      editedUrl = _useState14[0],\n      setEditedUrl = _useState14[1];\n\n  var editedWidth = width;\n  var editedHeight = height || clientWidth * naturalHeight / naturalWidth;\n  var naturalAspectRatio = naturalWidth / naturalHeight;\n\n  if (rotation % 180 === 90) {\n    editedHeight = clientWidth * naturalWidth / naturalHeight;\n    naturalAspectRatio = naturalHeight / naturalWidth;\n  }\n\n  function apply() {\n    setIsProgress(true);\n    var attrs = {}; // The crop script may return some very small, sub-pixel values when the image was not cropped.\n    // Crop only when the new size has changed by more than 0.1%.\n\n    if (crop.width < 99.9 || crop.height < 99.9) {\n      attrs = crop;\n    }\n\n    if (rotation > 0) {\n      attrs.rotation = rotation;\n    }\n\n    attrs.src = url;\n    external_this_wp_apiFetch_default()({\n      path: \"wp/v2/media/\".concat(id, \"/edit\"),\n      method: 'POST',\n      data: attrs\n    }).then(function (response) {\n      setAttributes({\n        id: response.id,\n        url: response.source_url,\n        height: height && width ? width / aspect : undefined\n      });\n    }).catch(function (error) {\n      createErrorNotice(Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: 1. Error message */\n      Object(external_this_wp_i18n_[\"__\"])('Could not edit image. %s'), error.message), {\n        id: 'image-editing-error',\n        type: 'snackbar'\n      });\n    }).finally(function () {\n      setIsProgress(false);\n      setIsEditingImage(false);\n    });\n  }\n\n  function rotate() {\n    var angle = (rotation + 90) % 360;\n\n    if (angle === 0) {\n      setEditedUrl();\n      setRotation(angle);\n      setAspect(1 / aspect);\n      setPosition({\n        x: -(position.y * naturalAspectRatio),\n        y: position.x * naturalAspectRatio\n      });\n      return;\n    }\n\n    function editImage(event) {\n      var canvas = document.createElement('canvas');\n      var translateX = 0;\n      var translateY = 0;\n\n      if (angle % 180) {\n        canvas.width = event.target.height;\n        canvas.height = event.target.width;\n      } else {\n        canvas.width = event.target.width;\n        canvas.height = event.target.height;\n      }\n\n      if (angle === 90 || angle === 180) {\n        translateX = canvas.width;\n      }\n\n      if (angle === 270 || angle === 180) {\n        translateY = canvas.height;\n      }\n\n      var context = canvas.getContext('2d');\n      context.translate(translateX, translateY);\n      context.rotate(angle * Math.PI / 180);\n      context.drawImage(event.target, 0, 0);\n      canvas.toBlob(function (blob) {\n        setEditedUrl(URL.createObjectURL(blob));\n        setRotation(angle);\n        setAspect(1 / aspect);\n        setPosition({\n          x: -(position.y * naturalAspectRatio),\n          y: position.x * naturalAspectRatio\n        });\n      });\n    }\n\n    var el = new window.Image();\n    el.src = url;\n    el.onload = editImage;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('wp-block-image__crop-area', {\n      'is-applying': inProgress\n    }),\n    style: {\n      width: editedWidth,\n      height: editedHeight\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(index_module, {\n    image: editedUrl || url,\n    disabled: inProgress,\n    minZoom: image_editor_MIN_ZOOM / 100,\n    maxZoom: image_editor_MAX_ZOOM / 100,\n    crop: position,\n    zoom: zoom / 100,\n    aspect: aspect,\n    onCropChange: setPosition,\n    onCropComplete: function onCropComplete(newCropPercent) {\n      setCrop(newCropPercent);\n    },\n    onZoomChange: function onZoomChange(newZoom) {\n      setZoom(newZoom * 100);\n    }\n  }), inProgress && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    contentClassName: \"wp-block-image__zoom\",\n    popoverProps: POPOVER_PROPS,\n    renderToggle: function renderToggle(_ref6) {\n      var isOpen = _ref6.isOpen,\n          onToggle = _ref6.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        icon: search[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('Zoom'),\n        onClick: onToggle,\n        \"aria-expanded\": isOpen,\n        disabled: inProgress\n      });\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n        min: image_editor_MIN_ZOOM,\n        max: image_editor_MAX_ZOOM,\n        value: Math.round(zoom),\n        onChange: setZoom\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], null, function (toggleProps) {\n    return Object(external_this_wp_element_[\"createElement\"])(AspectMenu, {\n      toggleProps: toggleProps,\n      isDisabled: inProgress,\n      onClick: setAspect,\n      value: aspect,\n      defaultValue: naturalWidth / naturalHeight\n    });\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    icon: rotate_right,\n    label: Object(external_this_wp_i18n_[\"__\"])('Rotate'),\n    onClick: rotate,\n    disabled: inProgress\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    onClick: apply,\n    disabled: inProgress\n  }, Object(external_this_wp_i18n_[\"__\"])('Apply')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    onClick: function onClick() {\n      return setIsEditingImage(false);\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Cancel')))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/constants.js\nvar MIN_SIZE = 20;\nvar LINK_DESTINATION_NONE = 'none';\nvar LINK_DESTINATION_MEDIA = 'media';\nvar LINK_DESTINATION_ATTACHMENT = 'attachment';\nvar LINK_DESTINATION_CUSTOM = 'custom';\nvar NEW_TAB_REL = ['noreferrer', 'noopener'];\nvar ALLOWED_MEDIA_TYPES = ['image'];\nvar DEFAULT_SIZE_SLUG = 'large';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/image.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Module constants\n */\n\n\n\nfunction getFilename(url) {\n  var path = Object(external_this_wp_url_[\"getPath\"])(url);\n\n  if (path) {\n    return Object(external_this_lodash_[\"last\"])(path.split('/'));\n  }\n}\n\nfunction Image(_ref) {\n  var _ref$attributes = _ref.attributes,\n      _ref$attributes$url = _ref$attributes.url,\n      url = _ref$attributes$url === void 0 ? '' : _ref$attributes$url,\n      alt = _ref$attributes.alt,\n      caption = _ref$attributes.caption,\n      align = _ref$attributes.align,\n      id = _ref$attributes.id,\n      href = _ref$attributes.href,\n      rel = _ref$attributes.rel,\n      linkClass = _ref$attributes.linkClass,\n      linkDestination = _ref$attributes.linkDestination,\n      title = _ref$attributes.title,\n      width = _ref$attributes.width,\n      height = _ref$attributes.height,\n      linkTarget = _ref$attributes.linkTarget,\n      sizeSlug = _ref$attributes.sizeSlug,\n      setAttributes = _ref.setAttributes,\n      isSelected = _ref.isSelected,\n      insertBlocksAfter = _ref.insertBlocksAfter,\n      onReplace = _ref.onReplace,\n      onSelectImage = _ref.onSelectImage,\n      onSelectURL = _ref.onSelectURL,\n      onUploadError = _ref.onUploadError,\n      containerRef = _ref.containerRef;\n  var image = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core'),\n        getMedia = _select.getMedia;\n\n    return id && isSelected ? getMedia(id) : null;\n  }, [id, isSelected]);\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select2 = select('core/block-editor'),\n        getSettings = _select2.getSettings;\n\n    return Object(external_this_lodash_[\"pick\"])(getSettings(), ['imageSizes', 'isRTL', 'maxWidth', 'mediaUpload']);\n  }),\n      maxWidth = _useSelect.maxWidth,\n      isRTL = _useSelect.isRTL,\n      imageSizes = _useSelect.imageSizes,\n      mediaUpload = _useSelect.mediaUpload;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      toggleSelection = _useDispatch.toggleSelection;\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/notices'),\n      createErrorNotice = _useDispatch2.createErrorNotice,\n      createSuccessNotice = _useDispatch2.createSuccessNotice;\n\n  var isLargeViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium');\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      captionFocused = _useState2[0],\n      setCaptionFocused = _useState2[1];\n\n  var isWideAligned = Object(external_this_lodash_[\"includes\"])(['wide', 'full'], align);\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])({}),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      _useState4$ = _useState4[0],\n      naturalWidth = _useState4$.naturalWidth,\n      naturalHeight = _useState4$.naturalHeight,\n      setNaturalSize = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      isEditingImage = _useState6[0],\n      setIsEditingImage = _useState6[1];\n\n  var _useState7 = Object(external_this_wp_element_[\"useState\"])(),\n      _useState8 = Object(slicedToArray[\"a\" /* default */])(_useState7, 2),\n      externalBlob = _useState8[0],\n      setExternalBlob = _useState8[1];\n\n  var clientWidth = useClientWidth(containerRef, [align]);\n  var isResizable = !isWideAligned && isLargeViewport;\n  var imageSizeOptions = Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"filter\"])(imageSizes, function (_ref2) {\n    var slug = _ref2.slug;\n    return Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', slug, 'source_url']);\n  }), function (_ref3) {\n    var name = _ref3.name,\n        slug = _ref3.slug;\n    return {\n      value: slug,\n      label: name\n    };\n  });\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isSelected) {\n      setCaptionFocused(false);\n    }\n  }, [isSelected]); // If an image is externally hosted, try to fetch the image data. This may\n  // fail if the image host doesn't allow CORS with the domain. If it works,\n  // we can enable a button in the toolbar to upload the image.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!edit_isExternalImage(id, url) || !isSelected || externalBlob) {\n      return;\n    }\n\n    window.fetch(url).then(function (response) {\n      return response.blob();\n    }).then(function (blob) {\n      return setExternalBlob(blob);\n    });\n  }, [id, url, isSelected, externalBlob]);\n\n  function onResizeStart() {\n    toggleSelection(false);\n  }\n\n  function _onResizeStop() {\n    toggleSelection(true);\n  }\n\n  function onImageError() {\n    // Check if there's an embed block that handles this URL.\n    var embedBlock = util_createUpgradedEmbedBlock({\n      attributes: {\n        url: url\n      }\n    });\n\n    if (undefined !== embedBlock) {\n      onReplace(embedBlock);\n    }\n  }\n\n  function onSetHref(props) {\n    setAttributes(props);\n  }\n\n  function onSetTitle(value) {\n    // This is the HTML title attribute, separate from the media object\n    // title.\n    setAttributes({\n      title: value\n    });\n  }\n\n  function onFocusCaption() {\n    if (!captionFocused) {\n      setCaptionFocused(true);\n    }\n  }\n\n  function onImageClick() {\n    if (captionFocused) {\n      setCaptionFocused(false);\n    }\n  }\n\n  function updateAlt(newAlt) {\n    setAttributes({\n      alt: newAlt\n    });\n  }\n\n  function updateImage(newSizeSlug) {\n    var newUrl = Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', newSizeSlug, 'source_url']);\n\n    if (!newUrl) {\n      return null;\n    }\n\n    setAttributes({\n      url: newUrl,\n      width: undefined,\n      height: undefined,\n      sizeSlug: newSizeSlug\n    });\n  }\n\n  function uploadExternal() {\n    mediaUpload({\n      filesList: [externalBlob],\n      onFileChange: function onFileChange(_ref4) {\n        var _ref5 = Object(slicedToArray[\"a\" /* default */])(_ref4, 1),\n            img = _ref5[0];\n\n        onSelectImage(img);\n\n        if (Object(external_this_wp_blob_[\"isBlobURL\"])(img.url)) {\n          return;\n        }\n\n        setExternalBlob();\n        createSuccessNotice(Object(external_this_wp_i18n_[\"__\"])('Image uploaded.'), {\n          type: 'snackbar'\n        });\n      },\n      allowedTypes: ALLOWED_MEDIA_TYPES,\n      onError: function onError(message) {\n        createErrorNotice(message, {\n          type: 'snackbar'\n        });\n      }\n    });\n  }\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isSelected) {\n      setIsEditingImage(false);\n    }\n  }, [isSelected]);\n  var canEditImage = id && naturalWidth && naturalHeight;\n  var controls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, !isEditingImage && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalImageURLInputUI\"], {\n    url: href || '',\n    onChangeUrl: onSetHref,\n    linkDestination: linkDestination,\n    mediaUrl: image && image.source_url,\n    mediaLink: image && image.link,\n    linkTarget: linkTarget,\n    linkClass: linkClass,\n    rel: rel\n  })), canEditImage && !isEditingImage && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    onClick: function onClick() {\n      return setIsEditingImage(true);\n    },\n    icon: library_crop,\n    label: Object(external_this_wp_i18n_[\"__\"])('Crop')\n  })), externalBlob && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    onClick: uploadExternal,\n    icon: upload[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Upload external image')\n  })), !isEditingImage && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n    mediaId: id,\n    mediaURL: url,\n    allowedTypes: ALLOWED_MEDIA_TYPES,\n    accept: \"image/*\",\n    onSelect: onSelectImage,\n    onSelectURL: onSelectURL,\n    onError: onUploadError\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Image settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextareaControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Alt text (alternative text)'),\n    value: alt,\n    onChange: updateAlt,\n    help: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n      href: \"https://www.w3.org/WAI/tutorials/images/decision-tree\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Describe the purpose of the image')), Object(external_this_wp_i18n_[\"__\"])('Leave empty if the image is purely decorative.'))\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalImageSizeControl\"], {\n    onChangeImage: updateImage,\n    onChange: function onChange(value) {\n      return setAttributes(value);\n    },\n    slug: sizeSlug,\n    width: width,\n    height: height,\n    imageSizeOptions: imageSizeOptions,\n    isResizable: isResizable,\n    imageWidth: naturalWidth,\n    imageHeight: naturalHeight\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorAdvancedControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Title attribute'),\n    value: title || '',\n    onChange: onSetTitle,\n    help: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_i18n_[\"__\"])('Describe the role of this image on the page.'), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n      href: \"https://www.w3.org/TR/html52/dom.html#the-title-attribute\"\n    }, Object(external_this_wp_i18n_[\"__\"])('(Note: many devices and browsers do not display this text.)')))\n  })));\n  var filename = getFilename(url);\n  var defaultedAlt;\n\n  if (alt) {\n    defaultedAlt = alt;\n  } else if (filename) {\n    defaultedAlt = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: file name */\n    Object(external_this_wp_i18n_[\"__\"])('This image has an empty alt attribute; its file name is %s'), filename);\n  } else {\n    defaultedAlt = Object(external_this_wp_i18n_[\"__\"])('This image has an empty alt attribute');\n  }\n\n  var img = // Disable reason: Image itself is not meant to be interactive, but\n  // should direct focus to block.\n\n  /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n  Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    src: url,\n    alt: defaultedAlt,\n    onClick: onImageClick,\n    onError: function onError() {\n      return onImageError();\n    },\n    onLoad: function onLoad(event) {\n      setNaturalSize(Object(external_this_lodash_[\"pick\"])(event.target, ['naturalWidth', 'naturalHeight']));\n    }\n  }), Object(external_this_wp_blob_[\"isBlobURL\"])(url) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null))\n  /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n  ;\n  var imageWidthWithinContainer;\n  var imageHeightWithinContainer;\n\n  if (clientWidth && naturalWidth && naturalHeight) {\n    var exceedMaxWidth = naturalWidth > clientWidth;\n    var ratio = naturalHeight / naturalWidth;\n    imageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n    imageHeightWithinContainer = exceedMaxWidth ? clientWidth * ratio : naturalHeight;\n  }\n\n  if (canEditImage && isEditingImage) {\n    img = Object(external_this_wp_element_[\"createElement\"])(ImageEditor, {\n      id: id,\n      url: url,\n      setAttributes: setAttributes,\n      naturalWidth: naturalWidth,\n      naturalHeight: naturalHeight,\n      width: width,\n      height: height,\n      clientWidth: clientWidth,\n      setIsEditingImage: setIsEditingImage\n    });\n  } else if (!isResizable || !imageWidthWithinContainer) {\n    img = Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      style: {\n        width: width,\n        height: height\n      }\n    }, img);\n  } else {\n    var currentWidth = width || imageWidthWithinContainer;\n    var currentHeight = height || imageHeightWithinContainer;\n\n    var _ratio = naturalWidth / naturalHeight;\n\n    var minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * _ratio;\n    var minHeight = naturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / _ratio; // With the current implementation of ResizableBox, an image needs an\n    // explicit pixel value for the max-width. In absence of being able to\n    // set the content-width, this max-width is currently dictated by the\n    // vanilla editor style. The following variable adds a buffer to this\n    // vanilla style, so 3rd party themes have some wiggleroom. This does,\n    // in most cases, allow you to scale the image beyond the width of the\n    // main column, though not infinitely.\n    // @todo It would be good to revisit this once a content-width variable\n    // becomes available.\n\n    var maxWidthBuffer = maxWidth * 2.5;\n    var showRightHandle = false;\n    var showLeftHandle = false;\n    /* eslint-disable no-lonely-if */\n    // See https://github.com/WordPress/gutenberg/issues/7584.\n\n    if (align === 'center') {\n      // When the image is centered, show both handles.\n      showRightHandle = true;\n      showLeftHandle = true;\n    } else if (isRTL) {\n      // In RTL mode the image is on the right by default.\n      // Show the right handle and hide the left handle only when it is\n      // aligned left. Otherwise always show the left handle.\n      if (align === 'left') {\n        showRightHandle = true;\n      } else {\n        showLeftHandle = true;\n      }\n    } else {\n      // Show the left handle and hide the right handle only when the\n      // image is aligned right. Otherwise always show the right handle.\n      if (align === 'right') {\n        showLeftHandle = true;\n      } else {\n        showRightHandle = true;\n      }\n    }\n    /* eslint-enable no-lonely-if */\n\n\n    img = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ResizableBox\"], {\n      size: {\n        width: width,\n        height: height\n      },\n      showHandle: isSelected,\n      minWidth: minWidth,\n      maxWidth: maxWidthBuffer,\n      minHeight: minHeight,\n      maxHeight: maxWidthBuffer / _ratio,\n      lockAspectRatio: true,\n      enable: {\n        top: false,\n        right: showRightHandle,\n        bottom: true,\n        left: showLeftHandle\n      },\n      onResizeStart: onResizeStart,\n      onResizeStop: function onResizeStop(event, direction, elt, delta) {\n        _onResizeStop();\n\n        setAttributes({\n          width: parseInt(currentWidth + delta.width, 10),\n          height: parseInt(currentHeight + delta.height, 10)\n        });\n      }\n    }, img);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, controls, img, (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    tagName: \"figcaption\",\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write caption…'),\n    value: caption,\n    unstableOnFocus: onFocusCaption,\n    onChange: function onChange(value) {\n      return setAttributes({\n        caption: value\n      });\n    },\n    isSelected: captionFocused,\n    inlineToolbar: true,\n    __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n      return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n    }\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/edit.js\n\n\n\n\nfunction image_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction image_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { image_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { image_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Module constants\n */\n\n\nvar edit_pickRelevantMediaFiles = function pickRelevantMediaFiles(image) {\n  var imageProps = Object(external_this_lodash_[\"pick\"])(image, ['alt', 'id', 'link', 'caption']);\n  imageProps.url = Object(external_this_lodash_[\"get\"])(image, ['sizes', 'large', 'url']) || Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', 'large', 'source_url']) || image.url;\n  return imageProps;\n};\n/**\n * Is the URL a temporary blob URL? A blob URL is one that is used temporarily\n * while the image is being uploaded and will not have an id yet allocated.\n *\n * @param {number=} id The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the URL a Blob URL\n */\n\nvar edit_isTemporaryImage = function isTemporaryImage(id, url) {\n  return !id && Object(external_this_wp_blob_[\"isBlobURL\"])(url);\n};\n/**\n * Is the url for the image hosted externally. An externally hosted image has no\n * id and is not a blob url.\n *\n * @param {number=} id  The id of the image.\n * @param {string=} url The url of the image.\n *\n * @return {boolean} Is the url an externally hosted url?\n */\n\n\nvar edit_isExternalImage = function isExternalImage(id, url) {\n  return url && !id && !Object(external_this_wp_blob_[\"isBlobURL\"])(url);\n};\nfunction ImageEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      isSelected = _ref.isSelected,\n      className = _ref.className,\n      noticeUI = _ref.noticeUI,\n      insertBlocksAfter = _ref.insertBlocksAfter,\n      noticeOperations = _ref.noticeOperations,\n      onReplace = _ref.onReplace;\n  var _attributes$url = attributes.url,\n      url = _attributes$url === void 0 ? '' : _attributes$url,\n      alt = attributes.alt,\n      caption = attributes.caption,\n      align = attributes.align,\n      id = attributes.id,\n      linkDestination = attributes.linkDestination,\n      width = attributes.width,\n      height = attributes.height,\n      sizeSlug = attributes.sizeSlug;\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n  var mediaUpload = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings;\n\n    return getSettings().mediaUpload;\n  });\n\n  function onUploadError(message) {\n    noticeOperations.removeAllNotices();\n    noticeOperations.createErrorNotice(message);\n  }\n\n  function onSelectImage(media) {\n    if (!media || !media.url) {\n      setAttributes({\n        url: undefined,\n        alt: undefined,\n        id: undefined,\n        title: undefined,\n        caption: undefined\n      });\n      return;\n    }\n\n    var mediaAttributes = edit_pickRelevantMediaFiles(media); // If the current image is temporary but an alt text was meanwhile\n    // written by the user, make sure the text is not overwritten.\n\n    if (edit_isTemporaryImage(id, url)) {\n      if (alt) {\n        mediaAttributes = Object(external_this_lodash_[\"omit\"])(mediaAttributes, ['alt']);\n      }\n    } // If a caption text was meanwhile written by the user,\n    // make sure the text is not overwritten by empty captions.\n\n\n    if (caption && !Object(external_this_lodash_[\"get\"])(mediaAttributes, ['caption'])) {\n      mediaAttributes = Object(external_this_lodash_[\"omit\"])(mediaAttributes, ['caption']);\n    }\n\n    var additionalAttributes; // Reset the dimension attributes if changing to a different image.\n\n    if (!media.id || media.id !== id) {\n      additionalAttributes = {\n        width: undefined,\n        height: undefined,\n        sizeSlug: DEFAULT_SIZE_SLUG\n      };\n    } else {\n      // Keep the same url when selecting the same file, so \"Image Size\"\n      // option is not changed.\n      additionalAttributes = {\n        url: url\n      };\n    } // Check if the image is linked to it's media.\n\n\n    if (linkDestination === LINK_DESTINATION_MEDIA) {\n      // Update the media link.\n      mediaAttributes.href = media.url;\n    } // Check if the image is linked to the attachment page.\n\n\n    if (linkDestination === LINK_DESTINATION_ATTACHMENT) {\n      // Update the media link.\n      mediaAttributes.href = media.link;\n    }\n\n    setAttributes(image_edit_objectSpread({}, mediaAttributes, {}, additionalAttributes));\n  }\n\n  function onSelectURL(newURL) {\n    if (newURL !== url) {\n      setAttributes({\n        url: newURL,\n        id: undefined,\n        sizeSlug: DEFAULT_SIZE_SLUG\n      });\n    }\n  }\n\n  function updateAlignment(nextAlign) {\n    var extraUpdatedAttributes = ['wide', 'full'].includes(nextAlign) ? {\n      width: undefined,\n      height: undefined\n    } : {};\n    setAttributes(image_edit_objectSpread({}, extraUpdatedAttributes, {\n      align: nextAlign\n    }));\n  }\n\n  var isTemp = edit_isTemporaryImage(id, url); // Upload a temporary image on mount.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isTemp) {\n      return;\n    }\n\n    var file = Object(external_this_wp_blob_[\"getBlobByURL\"])(url);\n\n    if (file) {\n      mediaUpload({\n        filesList: [file],\n        onFileChange: function onFileChange(_ref2) {\n          var _ref3 = Object(slicedToArray[\"a\" /* default */])(_ref2, 1),\n              img = _ref3[0];\n\n          onSelectImage(img);\n        },\n        allowedTypes: ALLOWED_MEDIA_TYPES,\n        onError: function onError(message) {\n          noticeOperations.createErrorNotice(message);\n        }\n      });\n    }\n  }, []); // If an image is temporary, revoke the Blob url when it is uploaded (and is\n  // no longer temporary).\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isTemp) {\n      return;\n    }\n\n    return function () {\n      Object(external_this_wp_blob_[\"revokeBlobURL\"])(url);\n    };\n  }, [isTemp]);\n  var isExternal = edit_isExternalImage(id, url);\n  var controls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockAlignmentToolbar\"], {\n    value: align,\n    onChange: updateAlignment\n  }));\n  var src = isExternal ? url : undefined;\n  var mediaPreview = !!url && Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    alt: Object(external_this_wp_i18n_[\"__\"])('Edit image'),\n    title: Object(external_this_wp_i18n_[\"__\"])('Edit image'),\n    className: 'edit-image-preview',\n    src: url\n  });\n  var mediaPlaceholder = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n    icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n      icon: library_image\n    }),\n    onSelect: onSelectImage,\n    onSelectURL: onSelectURL,\n    notices: noticeUI,\n    onError: onUploadError,\n    accept: \"image/*\",\n    allowedTypes: ALLOWED_MEDIA_TYPES,\n    value: {\n      id: id,\n      src: src\n    },\n    mediaPreview: mediaPreview,\n    disableMediaButtons: url\n  });\n  var classes = classnames_default()(className, Object(defineProperty[\"a\" /* default */])({\n    'is-transient': Object(external_this_wp_blob_[\"isBlobURL\"])(url),\n    'is-resized': !!width || !!height,\n    'is-focused': isSelected\n  }, \"size-\".concat(sizeSlug), sizeSlug)); // Focussing the image caption after inserting an image relies on the\n  // component remounting. This needs to be fixed.\n\n  var key = !!url;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, controls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].figure, {\n    ref: ref,\n    className: classes,\n    key: key\n  }, url && Object(external_this_wp_element_[\"createElement\"])(Image, {\n    attributes: attributes,\n    setAttributes: setAttributes,\n    isSelected: isSelected,\n    insertBlocksAfter: insertBlocksAfter,\n    onReplace: onReplace,\n    onSelectImage: onSelectImage,\n    onSelectURL: onSelectURL,\n    onUploadError: onUploadError,\n    containerRef: ref\n  }), mediaPlaceholder));\n}\n/* harmony default export */ var image_edit = (Object(external_this_wp_components_[\"withNotices\"])(ImageEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/save.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction image_save_save(_ref) {\n  var _classnames;\n\n  var attributes = _ref.attributes;\n  var url = attributes.url,\n      alt = attributes.alt,\n      caption = attributes.caption,\n      align = attributes.align,\n      href = attributes.href,\n      rel = attributes.rel,\n      linkClass = attributes.linkClass,\n      width = attributes.width,\n      height = attributes.height,\n      id = attributes.id,\n      linkTarget = attributes.linkTarget,\n      sizeSlug = attributes.sizeSlug,\n      title = attributes.title;\n  var newRel = Object(external_this_lodash_[\"isEmpty\"])(rel) ? undefined : rel;\n  var classes = classnames_default()((_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, \"align\".concat(align), align), Object(defineProperty[\"a\" /* default */])(_classnames, \"size-\".concat(sizeSlug), sizeSlug), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-resized', width || height), _classnames));\n  var image = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    src: url,\n    alt: alt,\n    className: id ? \"wp-image-\".concat(id) : null,\n    width: width,\n    height: height,\n    title: title\n  });\n  var figure = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    className: linkClass,\n    href: href,\n    target: linkTarget,\n    rel: newRel\n  }, image) : image, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"figcaption\",\n    value: caption\n  }));\n\n  if ('left' === align || 'right' === align || 'center' === align) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: classes\n    }, figure));\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n    className: classes\n  }, figure);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/transforms.js\n\n\nfunction transforms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction transforms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { transforms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { transforms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\nfunction stripFirstImage(attributes, _ref) {\n  var shortcode = _ref.shortcode;\n\n  var _document$implementat = document.implementation.createHTMLDocument(''),\n      body = _document$implementat.body;\n\n  body.innerHTML = shortcode.content;\n  var nodeToRemove = body.querySelector('img'); // if an image has parents, find the topmost node to remove\n\n  while (nodeToRemove && nodeToRemove.parentNode && nodeToRemove.parentNode !== body) {\n    nodeToRemove = nodeToRemove.parentNode;\n  }\n\n  if (nodeToRemove) {\n    nodeToRemove.parentNode.removeChild(nodeToRemove);\n  }\n\n  return body.innerHTML.trim();\n}\n\nfunction getFirstAnchorAttributeFormHTML(html, attributeName) {\n  var _document$implementat2 = document.implementation.createHTMLDocument(''),\n      body = _document$implementat2.body;\n\n  body.innerHTML = html;\n  var firstElementChild = body.firstElementChild;\n\n  if (firstElementChild && firstElementChild.nodeName === 'A') {\n    return firstElementChild.getAttribute(attributeName) || undefined;\n  }\n}\n\nvar imageSchema = {\n  img: {\n    attributes: ['src', 'alt', 'title'],\n    classes: ['alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\\d+$/]\n  }\n};\n\nvar schema = function schema(_ref2) {\n  var phrasingContentSchema = _ref2.phrasingContentSchema;\n  return {\n    figure: {\n      require: ['img'],\n      children: transforms_objectSpread({}, imageSchema, {\n        a: {\n          attributes: ['href', 'rel', 'target'],\n          children: imageSchema\n        },\n        figcaption: {\n          children: phrasingContentSchema\n        }\n      })\n    }\n  };\n};\n\nvar image_transforms_transforms = {\n  from: [{\n    type: 'raw',\n    isMatch: function isMatch(node) {\n      return node.nodeName === 'FIGURE' && !!node.querySelector('img');\n    },\n    schema: schema,\n    transform: function transform(node) {\n      // Search both figure and image classes. Alignment could be\n      // set on either. ID is set on the image.\n      var className = node.className + ' ' + node.querySelector('img').className;\n      var alignMatches = /(?:^|\\s)align(left|center|right)(?:$|\\s)/.exec(className);\n      var anchor = node.id === '' ? undefined : node.id;\n      var align = alignMatches ? alignMatches[1] : undefined;\n      var idMatches = /(?:^|\\s)wp-image-(\\d+)(?:$|\\s)/.exec(className);\n      var id = idMatches ? Number(idMatches[1]) : undefined;\n      var anchorElement = node.querySelector('a');\n      var linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;\n      var href = anchorElement && anchorElement.href ? anchorElement.href : undefined;\n      var rel = anchorElement && anchorElement.rel ? anchorElement.rel : undefined;\n      var linkClass = anchorElement && anchorElement.className ? anchorElement.className : undefined;\n      var attributes = Object(external_this_wp_blocks_[\"getBlockAttributes\"])('core/image', node.outerHTML, {\n        align: align,\n        id: id,\n        linkDestination: linkDestination,\n        href: href,\n        rel: rel,\n        linkClass: linkClass,\n        anchor: anchor\n      });\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', attributes);\n    }\n  }, {\n    type: 'files',\n    isMatch: function isMatch(files) {\n      return files.length === 1 && files[0].type.indexOf('image/') === 0;\n    },\n    transform: function transform(files) {\n      var file = files[0]; // We don't need to upload the media directly here\n      // It's already done as part of the `componentDidMount`\n      // int the image block\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n        url: Object(external_this_wp_blob_[\"createBlobURL\"])(file)\n      });\n    }\n  }, {\n    type: 'shortcode',\n    tag: 'caption',\n    attributes: {\n      url: {\n        type: 'string',\n        source: 'attribute',\n        attribute: 'src',\n        selector: 'img'\n      },\n      alt: {\n        type: 'string',\n        source: 'attribute',\n        attribute: 'alt',\n        selector: 'img'\n      },\n      caption: {\n        shortcode: stripFirstImage\n      },\n      href: {\n        shortcode: function shortcode(attributes, _ref3) {\n          var _shortcode = _ref3.shortcode;\n          return getFirstAnchorAttributeFormHTML(_shortcode.content, 'href');\n        }\n      },\n      rel: {\n        shortcode: function shortcode(attributes, _ref4) {\n          var _shortcode2 = _ref4.shortcode;\n          return getFirstAnchorAttributeFormHTML(_shortcode2.content, 'rel');\n        }\n      },\n      linkClass: {\n        shortcode: function shortcode(attributes, _ref5) {\n          var _shortcode3 = _ref5.shortcode;\n          return getFirstAnchorAttributeFormHTML(_shortcode3.content, 'class');\n        }\n      },\n      id: {\n        type: 'number',\n        shortcode: function shortcode(_ref6) {\n          var id = _ref6.named.id;\n\n          if (!id) {\n            return;\n          }\n\n          return parseInt(id.replace('attachment_', ''), 10);\n        }\n      },\n      align: {\n        type: 'string',\n        shortcode: function shortcode(_ref7) {\n          var _ref7$named$align = _ref7.named.align,\n              align = _ref7$named$align === void 0 ? 'alignnone' : _ref7$named$align;\n          return align.replace('align', '');\n        }\n      }\n    }\n  }]\n};\n/* harmony default export */ var image_transforms = (image_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/image/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar image_metadata = {\n  name: \"core/image\",\n  category: \"media\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    url: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"img\",\n      attribute: \"src\"\n    },\n    alt: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"img\",\n      attribute: \"alt\",\n      \"default\": \"\"\n    },\n    caption: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"figcaption\"\n    },\n    title: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"img\",\n      attribute: \"title\"\n    },\n    href: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure > a\",\n      attribute: \"href\"\n    },\n    rel: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure > a\",\n      attribute: \"rel\"\n    },\n    linkClass: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure > a\",\n      attribute: \"class\"\n    },\n    id: {\n      type: \"number\"\n    },\n    width: {\n      type: \"number\"\n    },\n    height: {\n      type: \"number\"\n    },\n    sizeSlug: {\n      type: \"string\"\n    },\n    linkDestination: {\n      type: \"string\",\n      \"default\": \"none\"\n    },\n    linkTarget: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure > a\",\n      attribute: \"target\"\n    }\n  },\n  supports: {\n    anchor: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar image_name = image_metadata.name;\n\nvar image_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Image'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Insert an image to make a visual statement.'),\n  icon: library_image,\n  keywords: ['img', // \"img\" is not translated as it is intended to reflect the HTML <img> tag.\n  Object(external_this_wp_i18n_[\"__\"])('photo')],\n  example: {\n    attributes: {\n      sizeSlug: 'large',\n      url: 'https://s.w.org/images/core/5.3/MtBlanc1.jpg',\n      // translators: Caption accompanying an image of the Mont Blanc, which serves as an example for the Image block.\n      caption: Object(external_this_wp_i18n_[\"__\"])('Mont Blanc appears—still, snowy, and serene.')\n    }\n  },\n  styles: [{\n    name: 'default',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Default', 'block style'),\n    isDefault: true\n  }, {\n    name: 'rounded',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Rounded', 'block style')\n  }],\n  __experimentalLabel: function __experimentalLabel(attributes, _ref) {\n    var context = _ref.context;\n\n    if (context === 'accessibility') {\n      var caption = attributes.caption,\n          alt = attributes.alt,\n          url = attributes.url;\n\n      if (!url) {\n        return Object(external_this_wp_i18n_[\"__\"])('Empty');\n      }\n\n      if (!alt) {\n        return caption || '';\n      } // This is intended to be read by a screen reader.\n      // A period simply means a pause, no need to translate it.\n\n\n      return alt + (caption ? '. ' + caption : '');\n    }\n  },\n  getEditWrapperProps: function getEditWrapperProps(attributes) {\n    return {\n      'data-align': attributes.align\n    };\n  },\n  transforms: image_transforms,\n  edit: image_edit,\n  save: image_save_save,\n  deprecated: image_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/heading.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar heading = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M6.2 5.2v13.4l5.8-4.8 5.8 4.8V5.2z\"\n}));\n/* harmony default export */ var library_heading = (heading);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/deprecated.js\n\n\n\nfunction deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar blockSupports = {\n  className: false,\n  anchor: true\n};\nvar heading_deprecated_blockAttributes = {\n  align: {\n    type: 'string'\n  },\n  content: {\n    type: 'string',\n    source: 'html',\n    selector: 'h1,h2,h3,h4,h5,h6',\n    default: ''\n  },\n  level: {\n    type: 'number',\n    default: 2\n  },\n  placeholder: {\n    type: 'string'\n  }\n};\n\nvar deprecated_migrateCustomColors = function migrateCustomColors(attributes) {\n  if (!attributes.customTextColor) {\n    return attributes;\n  }\n\n  var style = {\n    color: {\n      text: attributes.customTextColor\n    }\n  };\n  return deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customTextColor']), {\n    style: style\n  });\n};\n\nvar heading_deprecated_deprecated = [{\n  supports: blockSupports,\n  attributes: deprecated_objectSpread({}, heading_deprecated_blockAttributes, {\n    customTextColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    }\n  }),\n  migrate: deprecated_migrateCustomColors,\n  save: function save(_ref) {\n    var _classnames;\n\n    var attributes = _ref.attributes;\n    var align = attributes.align,\n        content = attributes.content,\n        customTextColor = attributes.customTextColor,\n        level = attributes.level,\n        textColor = attributes.textColor;\n    var tagName = 'h' + level;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()((_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-text-color', textColor || customTextColor), Object(defineProperty[\"a\" /* default */])(_classnames, \"has-text-align-\".concat(align), align), _classnames));\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      className: className ? className : undefined,\n      tagName: tagName,\n      style: {\n        color: textClass ? undefined : customTextColor\n      },\n      value: content\n    });\n  }\n}, {\n  attributes: deprecated_objectSpread({}, heading_deprecated_blockAttributes, {\n    customTextColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    }\n  }),\n  migrate: deprecated_migrateCustomColors,\n  save: function save(_ref2) {\n    var _classnames2;\n\n    var attributes = _ref2.attributes;\n    var align = attributes.align,\n        content = attributes.content,\n        customTextColor = attributes.customTextColor,\n        level = attributes.level,\n        textColor = attributes.textColor;\n    var tagName = 'h' + level;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()((_classnames2 = {}, Object(defineProperty[\"a\" /* default */])(_classnames2, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames2, \"has-text-align-\".concat(align), align), _classnames2));\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      className: className ? className : undefined,\n      tagName: tagName,\n      style: {\n        color: textClass ? undefined : customTextColor\n      },\n      value: content\n    });\n  },\n  supports: blockSupports\n}, {\n  supports: blockSupports,\n  attributes: deprecated_objectSpread({}, heading_deprecated_blockAttributes, {\n    customTextColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    }\n  }),\n  migrate: deprecated_migrateCustomColors,\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var align = attributes.align,\n        level = attributes.level,\n        content = attributes.content,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor;\n    var tagName = 'h' + level;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, textClass, textClass));\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      className: className ? className : undefined,\n      tagName: tagName,\n      style: {\n        textAlign: align,\n        color: textClass ? undefined : customTextColor\n      },\n      value: content\n    });\n  }\n}];\n/* harmony default export */ var heading_deprecated = (heading_deprecated_deprecated);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-icon.js\n\n\n/**\n * WordPress dependencies\n */\n\n/** @typedef {import('@wordpress/element').WPComponent} WPComponent */\n\n/**\n * HeadingLevelIcon props.\n *\n * @typedef WPHeadingLevelIconProps\n *\n * @property {number}   level     The heading level to show an icon for.\n * @property {?boolean} isPressed Whether or not the icon should appear pressed; default: false.\n */\n\n/**\n * Heading level icon.\n *\n * @param {WPHeadingLevelIconProps} props Component props.\n *\n * @return {?WPComponent} The icon.\n */\n\nfunction HeadingLevelIcon(_ref) {\n  var level = _ref.level,\n      _ref$isPressed = _ref.isPressed,\n      isPressed = _ref$isPressed === void 0 ? false : _ref$isPressed;\n  var levelToPath = {\n    1: 'M9 5h2v10H9v-4H5v4H3V5h2v4h4V5zm6.6 0c-.6.9-1.5 1.7-2.6 2v1h2v7h2V5h-1.4z',\n    2: 'M7 5h2v10H7v-4H3v4H1V5h2v4h4V5zm8 8c.5-.4.6-.6 1.1-1.1.4-.4.8-.8 1.2-1.3.3-.4.6-.8.9-1.3.2-.4.3-.8.3-1.3 0-.4-.1-.9-.3-1.3-.2-.4-.4-.7-.8-1-.3-.3-.7-.5-1.2-.6-.5-.2-1-.2-1.5-.2-.4 0-.7 0-1.1.1-.3.1-.7.2-1 .3-.3.1-.6.3-.9.5-.3.2-.6.4-.8.7l1.2 1.2c.3-.3.6-.5 1-.7.4-.2.7-.3 1.2-.3s.9.1 1.3.4c.3.3.5.7.5 1.1 0 .4-.1.8-.4 1.1-.3.5-.6.9-1 1.2-.4.4-1 .9-1.6 1.4-.6.5-1.4 1.1-2.2 1.6V15h8v-2H15z',\n    3: 'M12.1 12.2c.4.3.8.5 1.2.7.4.2.9.3 1.4.3.5 0 1-.1 1.4-.3.3-.1.5-.5.5-.8 0-.2 0-.4-.1-.6-.1-.2-.3-.3-.5-.4-.3-.1-.7-.2-1-.3-.5-.1-1-.1-1.5-.1V9.1c.7.1 1.5-.1 2.2-.4.4-.2.6-.5.6-.9 0-.3-.1-.6-.4-.8-.3-.2-.7-.3-1.1-.3-.4 0-.8.1-1.1.3-.4.2-.7.4-1.1.6l-1.2-1.4c.5-.4 1.1-.7 1.6-.9.5-.2 1.2-.3 1.8-.3.5 0 1 .1 1.6.2.4.1.8.3 1.2.5.3.2.6.5.8.8.2.3.3.7.3 1.1 0 .5-.2.9-.5 1.3-.4.4-.9.7-1.5.9v.1c.6.1 1.2.4 1.6.8.4.4.7.9.7 1.5 0 .4-.1.8-.3 1.2-.2.4-.5.7-.9.9-.4.3-.9.4-1.3.5-.5.1-1 .2-1.6.2-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1l1.1-1.4zM7 9H3V5H1v10h2v-4h4v4h2V5H7v4z',\n    4: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm10-2h-1v2h-2v-2h-5v-2l4-6h3v6h1v2zm-3-2V7l-2.8 4H16z',\n    5: 'M12.1 12.2c.4.3.7.5 1.1.7.4.2.9.3 1.3.3.5 0 1-.1 1.4-.4.4-.3.6-.7.6-1.1 0-.4-.2-.9-.6-1.1-.4-.3-.9-.4-1.4-.4H14c-.1 0-.3 0-.4.1l-.4.1-.5.2-1-.6.3-5h6.4v1.9h-4.3L14 8.8c.2-.1.5-.1.7-.2.2 0 .5-.1.7-.1.5 0 .9.1 1.4.2.4.1.8.3 1.1.6.3.2.6.6.8.9.2.4.3.9.3 1.4 0 .5-.1 1-.3 1.4-.2.4-.5.8-.9 1.1-.4.3-.8.5-1.3.7-.5.2-1 .3-1.5.3-.8 0-1.6-.1-2.3-.4-.6-.2-1.1-.6-1.6-1-.1-.1 1-1.5 1-1.5zM9 15H7v-4H3v4H1V5h2v4h4V5h2v10z',\n    6: 'M9 15H7v-4H3v4H1V5h2v4h4V5h2v10zm8.6-7.5c-.2-.2-.5-.4-.8-.5-.6-.2-1.3-.2-1.9 0-.3.1-.6.3-.8.5l-.6.9c-.2.5-.2.9-.2 1.4.4-.3.8-.6 1.2-.8.4-.2.8-.3 1.3-.3.4 0 .8 0 1.2.2.4.1.7.3 1 .6.3.3.5.6.7.9.2.4.3.8.3 1.3s-.1.9-.3 1.4c-.2.4-.5.7-.8 1-.4.3-.8.5-1.2.6-1 .3-2 .3-3 0-.5-.2-1-.5-1.4-.9-.4-.4-.8-.9-1-1.5-.2-.6-.3-1.3-.3-2.1s.1-1.6.4-2.3c.2-.6.6-1.2 1-1.6.4-.4.9-.7 1.4-.9.6-.3 1.1-.4 1.7-.4.7 0 1.4.1 2 .3.5.2 1 .5 1.4.8 0 .1-1.3 1.4-1.3 1.4zm-2.4 5.8c.2 0 .4 0 .6-.1.2 0 .4-.1.5-.2.1-.1.3-.3.4-.5.1-.2.1-.5.1-.7 0-.4-.1-.8-.4-1.1-.3-.2-.7-.3-1.1-.3-.3 0-.7.1-1 .2-.4.2-.7.4-1 .7 0 .3.1.7.3 1 .1.2.3.4.4.6.2.1.3.3.5.3.2.1.5.2.7.1z'\n  };\n\n  if (!levelToPath.hasOwnProperty(level)) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 20 20\",\n    xmlns: \"http://www.w3.org/2000/svg\",\n    isPressed: isPressed\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: levelToPath[level]\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/heading-level-dropdown.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar HEADING_LEVELS = [1, 2, 3, 4, 5, 6];\nvar heading_level_dropdown_POPOVER_PROPS = {\n  className: 'block-library-heading-level-dropdown',\n  isAlternate: true\n};\n/** @typedef {import('@wordpress/element').WPComponent} WPComponent */\n\n/**\n * HeadingLevelDropdown props.\n *\n * @typedef WPHeadingLevelDropdownProps\n *\n * @property {number}                 selectedLevel The chosen heading level.\n * @property {(newValue:number)=>any} onChange      Callback to run when\n *                                                  toolbar value is changed.\n */\n\n/**\n * Dropdown for selecting a heading level (1 through 6).\n *\n * @param {WPHeadingLevelDropdownProps} props Component props.\n *\n * @return {WPComponent} The toolbar.\n */\n\nfunction HeadingLevelDropdown(_ref) {\n  var selectedLevel = _ref.selectedLevel,\n      onChange = _ref.onChange;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    popoverProps: heading_level_dropdown_POPOVER_PROPS,\n    renderToggle: function renderToggle(_ref2) {\n      var onToggle = _ref2.onToggle,\n          isOpen = _ref2.isOpen;\n\n      var openOnArrowDown = function openOnArrowDown(event) {\n        if (!isOpen && event.keyCode === external_this_wp_keycodes_[\"DOWN\"]) {\n          event.preventDefault();\n          event.stopPropagation();\n          onToggle();\n        }\n      };\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        \"aria-expanded\": isOpen,\n        \"aria-haspopup\": \"true\",\n        icon: Object(external_this_wp_element_[\"createElement\"])(HeadingLevelIcon, {\n          level: selectedLevel\n        }),\n        label: Object(external_this_wp_i18n_[\"__\"])('Change heading level'),\n        onClick: onToggle,\n        onKeyDown: openOnArrowDown,\n        showTooltip: true\n      });\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Toolbar\"], {\n        className: \"block-library-heading-level-toolbar\",\n        __experimentalAccessibilityLabel: Object(external_this_wp_i18n_[\"__\"])('Change heading level')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n        isCollapsed: false,\n        controls: HEADING_LEVELS.map(function (targetLevel) {\n          var isActive = targetLevel === selectedLevel;\n          return {\n            icon: Object(external_this_wp_element_[\"createElement\"])(HeadingLevelIcon, {\n              level: targetLevel,\n              isPressed: isActive\n            }),\n            title: Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n            Object(external_this_wp_i18n_[\"__\"])('Heading %d'), targetLevel),\n            isActive: isActive,\n            onClick: function onClick() {\n              onChange(targetLevel);\n            }\n          };\n        })\n      }));\n    }\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/edit.js\n\n\n\nfunction heading_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction heading_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { heading_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { heading_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction HeadingEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      mergeBlocks = _ref.mergeBlocks,\n      onReplace = _ref.onReplace,\n      mergedStyle = _ref.mergedStyle;\n  var align = attributes.align,\n      content = attributes.content,\n      level = attributes.level,\n      placeholder = attributes.placeholder;\n  var tagName = 'h' + level;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(HeadingLevelDropdown, {\n    selectedLevel: level,\n    onChange: function onChange(newLevel) {\n      return setAttributes({\n        level: newLevel\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n    value: align,\n    onChange: function onChange(nextAlign) {\n      setAttributes({\n        align: nextAlign\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    identifier: \"content\",\n    tagName: external_this_wp_blockEditor_[\"__experimentalBlock\"][tagName],\n    value: content,\n    onChange: function onChange(value) {\n      return setAttributes({\n        content: value\n      });\n    },\n    onMerge: mergeBlocks,\n    onSplit: function onSplit(value) {\n      if (!value) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph');\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/heading', heading_edit_objectSpread({}, attributes, {\n        content: value\n      }));\n    },\n    onReplace: onReplace,\n    onRemove: function onRemove() {\n      return onReplace([]);\n    },\n    className: classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align)),\n    placeholder: placeholder || Object(external_this_wp_i18n_[\"__\"])('Write heading…'),\n    textAlign: align,\n    style: mergedStyle\n  }));\n}\n\n/* harmony default export */ var heading_edit = (HeadingEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction heading_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var align = attributes.align,\n      content = attributes.content,\n      level = attributes.level;\n  var tagName = 'h' + level;\n  var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    className: className ? className : undefined,\n    tagName: tagName,\n    value: content\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/shared.js\n/**\n * Given a node name string for a heading node, returns its numeric level.\n *\n * @param {string} nodeName Heading node name.\n *\n * @return {number} Heading level.\n */\nfunction getLevelFromHeadingNodeName(nodeName) {\n  return Number(nodeName.substr(1));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/transforms.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar transforms_name$category$attrib = {\n  name: \"core/heading\",\n  category: \"text\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"h1,h2,h3,h4,h5,h6\",\n      \"default\": \"\"\n    },\n    level: {\n      type: \"number\",\n      \"default\": 2\n    },\n    placeholder: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    className: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      linkColor: true\n    },\n    __experimentalFontSize: true,\n    __experimentalLineHeight: true,\n    __experimentalSelector: {\n      \"core/heading/h1\": \"h1\",\n      \"core/heading/h2\": \"h2\",\n      \"core/heading/h3\": \"h3\",\n      \"core/heading/h4\": \"h4\",\n      \"core/heading/h5\": \"h5\",\n      \"core/heading/h6\": \"h6\"\n    },\n    __unstablePasteTextInline: true\n  }\n},\n    heading_transforms_name = transforms_name$category$attrib.name;\nvar heading_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref) {\n      var content = _ref.content,\n          anchor = _ref.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])(heading_transforms_name, {\n        content: content,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'raw',\n    selector: 'h1,h2,h3,h4,h5,h6',\n    schema: function schema(_ref2) {\n      var phrasingContentSchema = _ref2.phrasingContentSchema,\n          isPaste = _ref2.isPaste;\n      var schema = {\n        children: phrasingContentSchema,\n        attributes: isPaste ? [] : ['style', 'id']\n      };\n      return {\n        h1: schema,\n        h2: schema,\n        h3: schema,\n        h4: schema,\n        h5: schema,\n        h6: schema\n      };\n    },\n    transform: function transform(node) {\n      var attributes = Object(external_this_wp_blocks_[\"getBlockAttributes\"])(heading_transforms_name, node.outerHTML);\n\n      var _ref3 = node.style || {},\n          textAlign = _ref3.textAlign;\n\n      attributes.level = getLevelFromHeadingNodeName(node.nodeName);\n\n      if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {\n        attributes.align = textAlign;\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])(heading_transforms_name, attributes);\n    }\n  }].concat(Object(toConsumableArray[\"a\" /* default */])([2, 3, 4, 5, 6].map(function (level) {\n    return {\n      type: 'prefix',\n      prefix: Array(level + 1).join('#'),\n      transform: function transform(content) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])(heading_transforms_name, {\n          level: level,\n          content: content\n        });\n      }\n    };\n  }))),\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref4) {\n      var content = _ref4.content,\n          anchor = _ref4.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n        content: content,\n        anchor: anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var heading_transforms = (heading_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/heading/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar heading_metadata = {\n  name: \"core/heading\",\n  category: \"text\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"h1,h2,h3,h4,h5,h6\",\n      \"default\": \"\"\n    },\n    level: {\n      type: \"number\",\n      \"default\": 2\n    },\n    placeholder: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    className: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      linkColor: true\n    },\n    __experimentalFontSize: true,\n    __experimentalLineHeight: true,\n    __experimentalSelector: {\n      \"core/heading/h1\": \"h1\",\n      \"core/heading/h2\": \"h2\",\n      \"core/heading/h3\": \"h3\",\n      \"core/heading/h4\": \"h4\",\n      \"core/heading/h5\": \"h5\",\n      \"core/heading/h6\": \"h6\"\n    },\n    __unstablePasteTextInline: true\n  }\n};\n\n\nvar heading_name = heading_metadata.name;\n\nvar heading_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Heading'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.'),\n  icon: library_heading,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('title'), Object(external_this_wp_i18n_[\"__\"])('subtitle')],\n  example: {\n    attributes: {\n      content: Object(external_this_wp_i18n_[\"__\"])('Code is Poetry'),\n      level: 2\n    }\n  },\n  __experimentalLabel: function __experimentalLabel(attributes, _ref) {\n    var context = _ref.context;\n\n    if (context === 'accessibility') {\n      var content = attributes.content,\n          level = attributes.level;\n      return Object(external_this_lodash_[\"isEmpty\"])(content) ? Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: accessibility text. %s: heading level. */\n      Object(external_this_wp_i18n_[\"__\"])('Level %s. Empty.'), level) : Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: accessibility text. 1: heading level. 2: heading content. */\n      Object(external_this_wp_i18n_[\"__\"])('Level %1$s. %2$s'), level, content);\n    }\n  },\n  transforms: heading_transforms,\n  deprecated: heading_deprecated,\n  merge: function merge(attributes, attributesToMerge) {\n    return {\n      content: (attributes.content || '') + (attributesToMerge.content || '')\n    };\n  },\n  edit: heading_edit,\n  save: heading_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/quote.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar quote = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M13 6v6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H13zm-9 6h5.2v4c0 .8-.2 1.4-.5 1.7-.6.6-1.6.6-2.5.5h-.3v1.5h.5c1 0 2.3-.1 3.3-1 .6-.6 1-1.6 1-2.8V6H4v6z\"\n}));\n/* harmony default export */ var library_quote = (quote);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/deprecated.js\n\n\n\nfunction quote_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction quote_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { quote_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { quote_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar quote_deprecated_blockAttributes = {\n  value: {\n    type: 'string',\n    source: 'html',\n    selector: 'blockquote',\n    multiline: 'p',\n    default: ''\n  },\n  citation: {\n    type: 'string',\n    source: 'html',\n    selector: 'cite',\n    default: ''\n  },\n  align: {\n    type: 'string'\n  }\n};\nvar quote_deprecated_deprecated = [{\n  attributes: quote_deprecated_blockAttributes,\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var align = attributes.align,\n        value = attributes.value,\n        citation = attributes.citation;\n    return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      style: {\n        textAlign: align ? align : null\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      multiline: true,\n      value: value\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"cite\",\n      value: citation\n    }));\n  }\n}, {\n  attributes: quote_deprecated_objectSpread({}, quote_deprecated_blockAttributes, {\n    style: {\n      type: 'number',\n      default: 1\n    }\n  }),\n  migrate: function migrate(attributes) {\n    if (attributes.style === 2) {\n      return quote_deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['style']), {\n        className: attributes.className ? attributes.className + ' is-style-large' : 'is-style-large'\n      });\n    }\n\n    return attributes;\n  },\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var align = attributes.align,\n        value = attributes.value,\n        citation = attributes.citation,\n        style = attributes.style;\n    return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      className: style === 2 ? 'is-large' : '',\n      style: {\n        textAlign: align ? align : null\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      multiline: true,\n      value: value\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"cite\",\n      value: citation\n    }));\n  }\n}, {\n  attributes: quote_deprecated_objectSpread({}, quote_deprecated_blockAttributes, {\n    citation: {\n      type: 'string',\n      source: 'html',\n      selector: 'footer',\n      default: ''\n    },\n    style: {\n      type: 'number',\n      default: 1\n    }\n  }),\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var align = attributes.align,\n        value = attributes.value,\n        citation = attributes.citation,\n        style = attributes.style;\n    return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      className: \"blocks-quote-style-\".concat(style),\n      style: {\n        textAlign: align ? align : null\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      multiline: true,\n      value: value\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"footer\",\n      value: citation\n    }));\n  }\n}];\n/* harmony default export */ var quote_deprecated = (quote_deprecated_deprecated);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/edit.js\n\n\n\nfunction quote_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction quote_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { quote_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { quote_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction QuoteEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      isSelected = _ref.isSelected,\n      mergeBlocks = _ref.mergeBlocks,\n      onReplace = _ref.onReplace,\n      className = _ref.className,\n      insertBlocksAfter = _ref.insertBlocksAfter;\n  var align = attributes.align,\n      value = attributes.value,\n      citation = attributes.citation;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n    value: align,\n    onChange: function onChange(nextAlign) {\n      setAttributes({\n        align: nextAlign\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BlockQuotation\"], {\n    className: classnames_default()(className, Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align))\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    identifier: \"value\",\n    multiline: true,\n    value: value,\n    onChange: function onChange(nextValue) {\n      return setAttributes({\n        value: nextValue\n      });\n    },\n    onMerge: mergeBlocks,\n    onRemove: function onRemove(forward) {\n      var hasEmptyCitation = !citation || citation.length === 0;\n\n      if (!forward && hasEmptyCitation) {\n        onReplace([]);\n      }\n    },\n    placeholder: // translators: placeholder text used for the quote\n    Object(external_this_wp_i18n_[\"__\"])('Write quote…'),\n    onReplace: onReplace,\n    onSplit: function onSplit(piece) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', quote_edit_objectSpread({}, attributes, {\n        value: piece\n      }));\n    },\n    __unstableOnSplitMiddle: function __unstableOnSplitMiddle() {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph');\n    },\n    textAlign: align\n  }), (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    identifier: \"citation\",\n    value: citation,\n    onChange: function onChange(nextCitation) {\n      return setAttributes({\n        citation: nextCitation\n      });\n    },\n    __unstableMobileNoFocusOnMount: true,\n    placeholder: // translators: placeholder text used for the citation\n    Object(external_this_wp_i18n_[\"__\"])('Write citation…'),\n    className: \"wp-block-quote__citation\",\n    textAlign: align,\n    __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n      return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n    }\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction quote_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var align = attributes.align,\n      value = attributes.value,\n      citation = attributes.citation;\n  var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align));\n  return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    multiline: true,\n    value: value\n  }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"cite\",\n    value: citation\n  }));\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/transforms.js\n\n\n\n\nfunction quote_transforms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction quote_transforms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { quote_transforms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { quote_transforms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\nvar quote_transforms_transforms = {\n  from: [{\n    type: 'block',\n    isMultiBlock: true,\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', {\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"join\"])(attributes.map(function (_ref) {\n            var content = _ref.content;\n            return Object(external_this_wp_richText_[\"create\"])({\n              html: content\n            });\n          }), \"\\u2028\"),\n          multilineTag: 'p'\n        }),\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/heading'],\n    transform: function transform(_ref2) {\n      var content = _ref2.content,\n          anchor = _ref2.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', {\n        value: \"<p>\".concat(content, \"</p>\"),\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/pullquote'],\n    transform: function transform(_ref3) {\n      var value = _ref3.value,\n          citation = _ref3.citation,\n          anchor = _ref3.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', {\n        value: value,\n        citation: citation,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'prefix',\n    prefix: '>',\n    transform: function transform(content) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', {\n        value: \"<p>\".concat(content, \"</p>\")\n      });\n    }\n  }, {\n    type: 'raw',\n    isMatch: function isMatch(node) {\n      var isParagraphOrSingleCite = function () {\n        var hasCitation = false;\n        return function (child) {\n          // Child is a paragraph.\n          if (child.nodeName === 'P') {\n            return true;\n          } // Child is a cite and no other cite child exists before it.\n\n\n          if (!hasCitation && child.nodeName === 'CITE') {\n            hasCitation = true;\n            return true;\n          }\n        };\n      }();\n\n      return node.nodeName === 'BLOCKQUOTE' && // The quote block can only handle multiline paragraph\n      // content with an optional cite child.\n      Array.from(node.childNodes).every(isParagraphOrSingleCite);\n    },\n    schema: function schema(_ref4) {\n      var phrasingContentSchema = _ref4.phrasingContentSchema;\n      return {\n        blockquote: {\n          children: {\n            p: {\n              children: phrasingContentSchema\n            },\n            cite: {\n              children: phrasingContentSchema\n            }\n          }\n        }\n      };\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref5) {\n      var value = _ref5.value,\n          citation = _ref5.citation;\n      var paragraphs = [];\n\n      if (value && value !== '<p></p>') {\n        paragraphs.push.apply(paragraphs, Object(toConsumableArray[\"a\" /* default */])(Object(external_this_wp_richText_[\"split\"])(Object(external_this_wp_richText_[\"create\"])({\n          html: value,\n          multilineTag: 'p'\n        }), \"\\u2028\").map(function (piece) {\n          return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n            content: Object(external_this_wp_richText_[\"toHTMLString\"])({\n              value: piece\n            })\n          });\n        })));\n      }\n\n      if (citation && citation !== '<p></p>') {\n        paragraphs.push(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: citation\n        }));\n      }\n\n      if (paragraphs.length === 0) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: ''\n        });\n      }\n\n      return paragraphs;\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/heading'],\n    transform: function transform(_ref6) {\n      var value = _ref6.value,\n          citation = _ref6.citation,\n          attrs = Object(objectWithoutProperties[\"a\" /* default */])(_ref6, [\"value\", \"citation\"]);\n\n      // If there is no quote content, use the citation as the\n      // content of the resulting heading. A nonexistent citation\n      // will result in an empty heading.\n      if (value === '<p></p>') {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/heading', {\n          content: citation\n        });\n      }\n\n      var pieces = Object(external_this_wp_richText_[\"split\"])(Object(external_this_wp_richText_[\"create\"])({\n        html: value,\n        multilineTag: 'p'\n      }), \"\\u2028\");\n      var headingBlock = Object(external_this_wp_blocks_[\"createBlock\"])('core/heading', {\n        content: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: pieces[0]\n        })\n      });\n\n      if (!citation && pieces.length === 1) {\n        return headingBlock;\n      }\n\n      var quotePieces = pieces.slice(1);\n      var quoteBlock = Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', quote_transforms_objectSpread({}, attrs, {\n        citation: citation,\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: quotePieces.length ? Object(external_this_wp_richText_[\"join\"])(pieces.slice(1), \"\\u2028\") : Object(external_this_wp_richText_[\"create\"])(),\n          multilineTag: 'p'\n        })\n      }));\n      return [headingBlock, quoteBlock];\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/pullquote'],\n    transform: function transform(_ref7) {\n      var value = _ref7.value,\n          citation = _ref7.citation,\n          anchor = _ref7.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/pullquote', {\n        value: value,\n        citation: citation,\n        anchor: anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var quote_transforms = (quote_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/quote/index.js\n\n\nfunction quote_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction quote_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { quote_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { quote_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar quote_metadata = {\n  name: \"core/quote\",\n  category: \"text\",\n  attributes: {\n    value: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"blockquote\",\n      multiline: \"p\",\n      \"default\": \"\"\n    },\n    citation: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"cite\",\n      \"default\": \"\"\n    },\n    align: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true\n  }\n};\n\n\nvar quote_name = quote_metadata.name;\n\nvar quote_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Quote'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar'),\n  icon: library_quote,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('blockquote'), Object(external_this_wp_i18n_[\"__\"])('cite')],\n  example: {\n    attributes: {\n      value: '<p>' + Object(external_this_wp_i18n_[\"__\"])('In quoting others, we cite ourselves.') + '</p>',\n      citation: 'Julio Cortázar',\n      className: 'is-style-large'\n    }\n  },\n  styles: [{\n    name: 'default',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Default', 'block style'),\n    isDefault: true\n  }, {\n    name: 'large',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Large', 'block style')\n  }],\n  transforms: quote_transforms,\n  edit: QuoteEdit,\n  save: quote_save_save,\n  merge: function merge(attributes, _ref) {\n    var value = _ref.value,\n        citation = _ref.citation;\n\n    // Quote citations cannot be merged. Pick the second one unless it's\n    // empty.\n    if (!citation) {\n      citation = attributes.citation;\n    }\n\n    if (!value || value === '<p></p>') {\n      return quote_objectSpread({}, attributes, {\n        citation: citation\n      });\n    }\n\n    return quote_objectSpread({}, attributes, {\n      value: attributes.value + value,\n      citation: citation\n    });\n  },\n  deprecated: quote_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/gallery.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar gallery = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20.2 8v11c0 .7-.6 1.2-1.2 1.2H6v1.5h13c1.5 0 2.7-1.2 2.7-2.8V8h-1.5zM18 16.4V4.6c0-.9-.7-1.6-1.6-1.6H4.6C3.7 3 3 3.7 3 4.6v11.8c0 .9.7 1.6 1.6 1.6h11.8c.9 0 1.6-.7 1.6-1.6zM4.5 4.6c0-.1.1-.1.1-.1h11.8c.1 0 .1.1.1.1V12l-2.3-1.7c-.3-.2-.6-.2-.9 0l-2.9 2.1L8 11.3c-.2-.1-.5-.1-.7 0l-2.9 1.5V4.6zm0 11.8v-1.8l3.2-1.7 2.4 1.2c.2.1.5.1.8-.1l2.8-2 2.8 2v2.5c0 .1-.1.1-.1.1H4.6c0-.1-.1-.2-.1-.2z\"\n}));\n/* harmony default export */ var library_gallery = (gallery);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared.js\n/**\n * External dependencies\n */\n\nfunction defaultColumnsNumber(attributes) {\n  return Math.min(3, attributes.images.length);\n}\nvar shared_pickRelevantMediaFiles = function pickRelevantMediaFiles(image) {\n  var sizeSlug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'large';\n  var imageProps = Object(external_this_lodash_[\"pick\"])(image, ['alt', 'id', 'link', 'caption']);\n  imageProps.url = Object(external_this_lodash_[\"get\"])(image, ['sizes', sizeSlug, 'url']) || Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', sizeSlug, 'source_url']) || image.url;\n  var fullUrl = Object(external_this_lodash_[\"get\"])(image, ['sizes', 'full', 'url']) || Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', 'full', 'source_url']);\n\n  if (fullUrl) {\n    imageProps.fullUrl = fullUrl;\n  }\n\n  return imageProps;\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/deprecated.js\n\n\n\nfunction gallery_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction gallery_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { gallery_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { gallery_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar gallery_deprecated_deprecated = [{\n  attributes: {\n    images: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: '.blocks-gallery-item',\n      query: {\n        url: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'src'\n        },\n        fullUrl: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-full-url'\n        },\n        link: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-link'\n        },\n        alt: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'alt',\n          default: ''\n        },\n        id: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-id'\n        },\n        caption: {\n          type: 'string',\n          source: 'html',\n          selector: '.blocks-gallery-item__caption'\n        }\n      }\n    },\n    ids: {\n      type: 'array',\n      default: []\n    },\n    columns: {\n      type: 'number'\n    },\n    caption: {\n      type: 'string',\n      source: 'html',\n      selector: '.blocks-gallery-caption'\n    },\n    imageCrop: {\n      type: 'boolean',\n      default: true\n    },\n    linkTo: {\n      type: 'string',\n      default: 'none'\n    }\n  },\n  supports: {\n    align: true\n  },\n  isEligible: function isEligible(_ref) {\n    var ids = _ref.ids;\n    return ids && ids.some(function (id) {\n      return typeof id === 'string';\n    });\n  },\n  migrate: function migrate(attributes) {\n    return gallery_deprecated_objectSpread({}, attributes, {\n      ids: Object(external_this_lodash_[\"map\"])(attributes.ids, function (id) {\n        var parsedId = parseInt(id, 10);\n        return Number.isInteger(parsedId) ? parsedId : null;\n      })\n    });\n  },\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var images = attributes.images,\n        _attributes$columns = attributes.columns,\n        columns = _attributes$columns === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns,\n        imageCrop = attributes.imageCrop,\n        caption = attributes.caption,\n        linkTo = attributes.linkTo;\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: \"columns-\".concat(columns, \" \").concat(imageCrop ? 'is-cropped' : '')\n    }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      className: \"blocks-gallery-grid\"\n    }, images.map(function (image) {\n      var href;\n\n      switch (linkTo) {\n        case 'media':\n          href = image.fullUrl || image.url;\n          break;\n\n        case 'attachment':\n          href = image.link;\n          break;\n      }\n\n      var img = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: image.url,\n        alt: image.alt,\n        \"data-id\": image.id,\n        \"data-full-url\": image.fullUrl,\n        \"data-link\": image.link,\n        className: image.id ? \"wp-image-\".concat(image.id) : null\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n        key: image.id || image.url,\n        className: \"blocks-gallery-item\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: href\n      }, img) : img, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(image.caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n        tagName: \"figcaption\",\n        className: \"blocks-gallery-item__caption\",\n        value: image.caption\n      })));\n    })), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      className: \"blocks-gallery-caption\",\n      value: caption\n    }));\n  }\n}, {\n  attributes: {\n    images: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'ul.wp-block-gallery .blocks-gallery-item',\n      query: {\n        url: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'src'\n        },\n        fullUrl: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-full-url'\n        },\n        alt: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'alt',\n          default: ''\n        },\n        id: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-id'\n        },\n        link: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-link'\n        },\n        caption: {\n          type: 'array',\n          source: 'children',\n          selector: 'figcaption'\n        }\n      }\n    },\n    ids: {\n      type: 'array',\n      default: []\n    },\n    columns: {\n      type: 'number'\n    },\n    imageCrop: {\n      type: 'boolean',\n      default: true\n    },\n    linkTo: {\n      type: 'string',\n      default: 'none'\n    }\n  },\n  supports: {\n    align: true\n  },\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var images = attributes.images,\n        _attributes$columns2 = attributes.columns,\n        columns = _attributes$columns2 === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns2,\n        imageCrop = attributes.imageCrop,\n        linkTo = attributes.linkTo;\n    return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      className: \"columns-\".concat(columns, \" \").concat(imageCrop ? 'is-cropped' : '')\n    }, images.map(function (image) {\n      var href;\n\n      switch (linkTo) {\n        case 'media':\n          href = image.fullUrl || image.url;\n          break;\n\n        case 'attachment':\n          href = image.link;\n          break;\n      }\n\n      var img = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: image.url,\n        alt: image.alt,\n        \"data-id\": image.id,\n        \"data-full-url\": image.fullUrl,\n        \"data-link\": image.link,\n        className: image.id ? \"wp-image-\".concat(image.id) : null\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n        key: image.id || image.url,\n        className: \"blocks-gallery-item\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: href\n      }, img) : img, image.caption && image.caption.length > 0 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n        tagName: \"figcaption\",\n        value: image.caption\n      })));\n    }));\n  }\n}, {\n  attributes: {\n    images: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'ul.wp-block-gallery .blocks-gallery-item',\n      query: {\n        url: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'src'\n        },\n        alt: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'alt',\n          default: ''\n        },\n        id: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-id'\n        },\n        link: {\n          source: 'attribute',\n          selector: 'img',\n          attribute: 'data-link'\n        },\n        caption: {\n          type: 'array',\n          source: 'children',\n          selector: 'figcaption'\n        }\n      }\n    },\n    columns: {\n      type: 'number'\n    },\n    imageCrop: {\n      type: 'boolean',\n      default: true\n    },\n    linkTo: {\n      type: 'string',\n      default: 'none'\n    }\n  },\n  isEligible: function isEligible(_ref4) {\n    var images = _ref4.images,\n        ids = _ref4.ids;\n    return images && images.length > 0 && (!ids && images || ids && images && ids.length !== images.length || Object(external_this_lodash_[\"some\"])(images, function (id, index) {\n      if (!id && ids[index] !== null) {\n        return true;\n      }\n\n      return parseInt(id, 10) !== ids[index];\n    }));\n  },\n  migrate: function migrate(attributes) {\n    return gallery_deprecated_objectSpread({}, attributes, {\n      ids: Object(external_this_lodash_[\"map\"])(attributes.images, function (_ref5) {\n        var id = _ref5.id;\n\n        if (!id) {\n          return null;\n        }\n\n        return parseInt(id, 10);\n      })\n    });\n  },\n  supports: {\n    align: true\n  },\n  save: function save(_ref6) {\n    var attributes = _ref6.attributes;\n    var images = attributes.images,\n        _attributes$columns3 = attributes.columns,\n        columns = _attributes$columns3 === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns3,\n        imageCrop = attributes.imageCrop,\n        linkTo = attributes.linkTo;\n    return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      className: \"columns-\".concat(columns, \" \").concat(imageCrop ? 'is-cropped' : '')\n    }, images.map(function (image) {\n      var href;\n\n      switch (linkTo) {\n        case 'media':\n          href = image.url;\n          break;\n\n        case 'attachment':\n          href = image.link;\n          break;\n      }\n\n      var img = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: image.url,\n        alt: image.alt,\n        \"data-id\": image.id,\n        \"data-link\": image.link,\n        className: image.id ? \"wp-image-\".concat(image.id) : null\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n        key: image.id || image.url,\n        className: \"blocks-gallery-item\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: href\n      }, img) : img, image.caption && image.caption.length > 0 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n        tagName: \"figcaption\",\n        value: image.caption\n      })));\n    }));\n  }\n}, {\n  attributes: {\n    images: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'div.wp-block-gallery figure.blocks-gallery-image img',\n      query: {\n        url: {\n          source: 'attribute',\n          attribute: 'src'\n        },\n        alt: {\n          source: 'attribute',\n          attribute: 'alt',\n          default: ''\n        },\n        id: {\n          source: 'attribute',\n          attribute: 'data-id'\n        }\n      }\n    },\n    columns: {\n      type: 'number'\n    },\n    imageCrop: {\n      type: 'boolean',\n      default: true\n    },\n    linkTo: {\n      type: 'string',\n      default: 'none'\n    },\n    align: {\n      type: 'string',\n      default: 'none'\n    }\n  },\n  supports: {\n    align: true\n  },\n  save: function save(_ref7) {\n    var attributes = _ref7.attributes;\n    var images = attributes.images,\n        _attributes$columns4 = attributes.columns,\n        columns = _attributes$columns4 === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns4,\n        align = attributes.align,\n        imageCrop = attributes.imageCrop,\n        linkTo = attributes.linkTo;\n    var className = classnames_default()(\"columns-\".concat(columns), {\n      alignnone: align === 'none',\n      'is-cropped': imageCrop\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className\n    }, images.map(function (image) {\n      var href;\n\n      switch (linkTo) {\n        case 'media':\n          href = image.url;\n          break;\n\n        case 'attachment':\n          href = image.link;\n          break;\n      }\n\n      var img = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: image.url,\n        alt: image.alt,\n        \"data-id\": image.id\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n        key: image.id || image.url,\n        className: \"blocks-gallery-image\"\n      }, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: href\n      }, img) : img);\n    }));\n  }\n}];\n/* harmony default export */ var gallery_deprecated = (gallery_deprecated_deprecated);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"viewport\"]}\nvar external_this_wp_viewport_ = __webpack_require__(72);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/shared-icon.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar sharedIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n  icon: library_gallery\n});\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left.js\nvar chevron_left = __webpack_require__(289);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right.js\nvar chevron_right = __webpack_require__(288);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/edit.js\nvar library_edit = __webpack_require__(296);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js\nvar close_small = __webpack_require__(171);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery-image.js\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar gallery_image_isTemporaryImage = function isTemporaryImage(id, url) {\n  return !id && Object(external_this_wp_blob_[\"isBlobURL\"])(url);\n};\n\nvar gallery_image_GalleryImage = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(GalleryImage, _Component);\n\n  var _super = _createSuper(GalleryImage);\n\n  function GalleryImage() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, GalleryImage);\n\n    _this = _super.apply(this, arguments);\n    _this.onSelectImage = _this.onSelectImage.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectCaption = _this.onSelectCaption.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onRemoveImage = _this.onRemoveImage.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onEdit = _this.onEdit.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectImageFromLibrary = _this.onSelectImageFromLibrary.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectCustomURL = _this.onSelectCustomURL.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      captionSelected: false,\n      isEditing: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(GalleryImage, [{\n    key: \"bindContainer\",\n    value: function bindContainer(ref) {\n      this.container = ref;\n    }\n  }, {\n    key: \"onSelectCaption\",\n    value: function onSelectCaption() {\n      if (!this.state.captionSelected) {\n        this.setState({\n          captionSelected: true\n        });\n      }\n\n      if (!this.props.isSelected) {\n        this.props.onSelect();\n      }\n    }\n  }, {\n    key: \"onSelectImage\",\n    value: function onSelectImage() {\n      if (!this.props.isSelected) {\n        this.props.onSelect();\n      }\n\n      if (this.state.captionSelected) {\n        this.setState({\n          captionSelected: false\n        });\n      }\n    }\n  }, {\n    key: \"onRemoveImage\",\n    value: function onRemoveImage(event) {\n      if (this.container === document.activeElement && this.props.isSelected && [external_this_wp_keycodes_[\"BACKSPACE\"], external_this_wp_keycodes_[\"DELETE\"]].indexOf(event.keyCode) !== -1) {\n        event.stopPropagation();\n        event.preventDefault();\n        this.props.onRemove();\n      }\n    }\n  }, {\n    key: \"onEdit\",\n    value: function onEdit() {\n      this.setState({\n        isEditing: true\n      });\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          isSelected = _this$props.isSelected,\n          image = _this$props.image,\n          url = _this$props.url,\n          __unstableMarkNextChangeAsNotPersistent = _this$props.__unstableMarkNextChangeAsNotPersistent;\n\n      if (image && !url) {\n        __unstableMarkNextChangeAsNotPersistent();\n\n        this.props.setAttributes({\n          url: image.source_url,\n          alt: image.alt_text\n        });\n      } // unselect the caption so when the user selects other image and comeback\n      // the caption is not immediately selected\n\n\n      if (this.state.captionSelected && !isSelected && prevProps.isSelected) {\n        this.setState({\n          captionSelected: false\n        });\n      }\n    }\n  }, {\n    key: \"deselectOnBlur\",\n    value: function deselectOnBlur() {\n      this.props.onDeselect();\n    }\n  }, {\n    key: \"onSelectImageFromLibrary\",\n    value: function onSelectImageFromLibrary(media) {\n      var _this$props2 = this.props,\n          setAttributes = _this$props2.setAttributes,\n          id = _this$props2.id,\n          url = _this$props2.url,\n          alt = _this$props2.alt,\n          caption = _this$props2.caption,\n          sizeSlug = _this$props2.sizeSlug;\n\n      if (!media || !media.url) {\n        return;\n      }\n\n      var mediaAttributes = shared_pickRelevantMediaFiles(media, sizeSlug); // If the current image is temporary but an alt text was meanwhile\n      // written by the user, make sure the text is not overwritten.\n\n      if (gallery_image_isTemporaryImage(id, url)) {\n        if (alt) {\n          mediaAttributes = Object(external_this_lodash_[\"omit\"])(mediaAttributes, ['alt']);\n        }\n      } // If a caption text was meanwhile written by the user,\n      // make sure the text is not overwritten by empty captions.\n\n\n      if (caption && !Object(external_this_lodash_[\"get\"])(mediaAttributes, ['caption'])) {\n        mediaAttributes = Object(external_this_lodash_[\"omit\"])(mediaAttributes, ['caption']);\n      }\n\n      setAttributes(mediaAttributes);\n      this.setState({\n        isEditing: false\n      });\n    }\n  }, {\n    key: \"onSelectCustomURL\",\n    value: function onSelectCustomURL(newURL) {\n      var _this$props3 = this.props,\n          setAttributes = _this$props3.setAttributes,\n          url = _this$props3.url;\n\n      if (newURL !== url) {\n        setAttributes({\n          url: newURL,\n          id: undefined\n        });\n        this.setState({\n          isEditing: false\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          url = _this$props4.url,\n          alt = _this$props4.alt,\n          id = _this$props4.id,\n          linkTo = _this$props4.linkTo,\n          link = _this$props4.link,\n          isFirstItem = _this$props4.isFirstItem,\n          isLastItem = _this$props4.isLastItem,\n          isSelected = _this$props4.isSelected,\n          caption = _this$props4.caption,\n          onRemove = _this$props4.onRemove,\n          onMoveForward = _this$props4.onMoveForward,\n          onMoveBackward = _this$props4.onMoveBackward,\n          setAttributes = _this$props4.setAttributes,\n          ariaLabel = _this$props4['aria-label'];\n      var isEditing = this.state.isEditing;\n      var href;\n\n      switch (linkTo) {\n        case 'media':\n          href = url;\n          break;\n\n        case 'attachment':\n          href = link;\n          break;\n      }\n\n      var img = // Disable reason: Image itself is not meant to be interactive, but should\n      // direct image selection and unfocus caption fields.\n\n      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n      Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: url,\n        alt: alt,\n        \"data-id\": id,\n        onClick: this.onSelectImage,\n        onFocus: this.onSelectImage,\n        onKeyDown: this.onRemoveImage,\n        tabIndex: \"0\",\n        \"aria-label\": ariaLabel,\n        ref: this.bindContainer\n      }), Object(external_this_wp_blob_[\"isBlobURL\"])(url) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null))\n      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n      ;\n      var className = classnames_default()({\n        'is-selected': isSelected,\n        'is-transient': Object(external_this_wp_blob_[\"isBlobURL\"])(url)\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n        className: className\n      }, !isEditing && (href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: href\n      }, img) : img), isEditing && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n        labels: {\n          title: Object(external_this_wp_i18n_[\"__\"])('Edit gallery image')\n        },\n        icon: library_image,\n        onSelect: this.onSelectImageFromLibrary,\n        onSelectURL: this.onSelectCustomURL,\n        accept: \"image/*\",\n        allowedTypes: ['image'],\n        value: {\n          id: id,\n          src: url\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ButtonGroup\"], {\n        className: \"block-library-gallery-item__inline-menu is-left\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: chevron_left[\"a\" /* default */],\n        onClick: isFirstItem ? undefined : onMoveBackward,\n        label: Object(external_this_wp_i18n_[\"__\"])('Move image backward'),\n        \"aria-disabled\": isFirstItem,\n        disabled: !isSelected\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: chevron_right[\"a\" /* default */],\n        onClick: isLastItem ? undefined : onMoveForward,\n        label: Object(external_this_wp_i18n_[\"__\"])('Move image forward'),\n        \"aria-disabled\": isLastItem,\n        disabled: !isSelected\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ButtonGroup\"], {\n        className: \"block-library-gallery-item__inline-menu is-right\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: library_edit[\"a\" /* default */],\n        onClick: this.onEdit,\n        label: Object(external_this_wp_i18n_[\"__\"])('Replace image'),\n        disabled: !isSelected\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        icon: close_small[\"a\" /* default */],\n        onClick: onRemove,\n        label: Object(external_this_wp_i18n_[\"__\"])('Remove image'),\n        disabled: !isSelected\n      })), !isEditing && (isSelected || caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        tagName: \"figcaption\",\n        placeholder: isSelected ? Object(external_this_wp_i18n_[\"__\"])('Write caption…') : null,\n        value: caption,\n        isSelected: this.state.captionSelected,\n        onChange: function onChange(newCaption) {\n          return setAttributes({\n            caption: newCaption\n          });\n        },\n        unstableOnFocus: this.onSelectCaption,\n        inlineToolbar: true\n      }));\n    }\n  }]);\n\n  return GalleryImage;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var gallery_image = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var _select = select('core'),\n      getMedia = _select.getMedia;\n\n  var id = ownProps.id;\n  return {\n    image: id ? getMedia(parseInt(id, 10)) : null\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      __unstableMarkNextChangeAsNotPersistent = _dispatch.__unstableMarkNextChangeAsNotPersistent;\n\n  return {\n    __unstableMarkNextChangeAsNotPersistent: __unstableMarkNextChangeAsNotPersistent\n  };\n})])(gallery_image_GalleryImage));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/gallery.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar gallery_Gallery = function Gallery(props) {\n  var _classnames;\n\n  var attributes = props.attributes,\n      className = props.className,\n      isSelected = props.isSelected,\n      setAttributes = props.setAttributes,\n      selectedImage = props.selectedImage,\n      mediaPlaceholder = props.mediaPlaceholder,\n      onMoveBackward = props.onMoveBackward,\n      onMoveForward = props.onMoveForward,\n      onRemoveImage = props.onRemoveImage,\n      onSelectImage = props.onSelectImage,\n      onDeselectImage = props.onDeselectImage,\n      onSetImageAttributes = props.onSetImageAttributes,\n      onFocusGalleryCaption = props.onFocusGalleryCaption,\n      insertBlocksAfter = props.insertBlocksAfter;\n  var align = attributes.align,\n      _attributes$columns = attributes.columns,\n      columns = _attributes$columns === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns,\n      caption = attributes.caption,\n      imageCrop = attributes.imageCrop,\n      images = attributes.images;\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n    className: classnames_default()(className, (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, \"align\".concat(align), align), Object(defineProperty[\"a\" /* default */])(_classnames, \"columns-\".concat(columns), columns), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-cropped', imageCrop), _classnames))\n  }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"blocks-gallery-grid\"\n  }, images.map(function (img, index) {\n    var ariaLabel = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: 1: the order number of the image. 2: the total number of images. */\n    Object(external_this_wp_i18n_[\"__\"])('image %1$d of %2$d in gallery'), index + 1, images.length);\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      className: \"blocks-gallery-item\",\n      key: img.id || img.url\n    }, Object(external_this_wp_element_[\"createElement\"])(gallery_image, {\n      url: img.url,\n      alt: img.alt,\n      id: img.id,\n      isFirstItem: index === 0,\n      isLastItem: index + 1 === images.length,\n      isSelected: isSelected && selectedImage === index,\n      onMoveBackward: onMoveBackward(index),\n      onMoveForward: onMoveForward(index),\n      onRemove: onRemoveImage(index),\n      onSelect: onSelectImage(index),\n      onDeselect: onDeselectImage(index),\n      setAttributes: function setAttributes(attrs) {\n        return onSetImageAttributes(index, attrs);\n      },\n      caption: img.caption,\n      \"aria-label\": ariaLabel,\n      sizeSlug: attributes.sizeSlug\n    }));\n  })), mediaPlaceholder, Object(external_this_wp_element_[\"createElement\"])(RichTextVisibilityHelper, {\n    isHidden: !isSelected && external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption),\n    tagName: \"figcaption\",\n    className: \"blocks-gallery-caption\",\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write gallery caption…'),\n    value: caption,\n    unstableOnFocus: onFocusGalleryCaption,\n    onChange: function onChange(value) {\n      return setAttributes({\n        caption: value\n      });\n    },\n    inlineToolbar: true,\n    __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n      return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n    }\n  }));\n};\n\nfunction RichTextVisibilityHelper(_ref) {\n  var isHidden = _ref.isHidden,\n      richTextProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isHidden\"]);\n\n  return isHidden ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], Object(esm_extends[\"a\" /* default */])({\n    as: external_this_wp_blockEditor_[\"RichText\"]\n  }, richTextProps)) : Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], richTextProps);\n}\n\n/* harmony default export */ var gallery_gallery = (gallery_Gallery);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/edit.js\n\n\n\n\n\n\n\n\n\n\n\nfunction gallery_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction gallery_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { gallery_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { gallery_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar MAX_COLUMNS = 8;\nvar linkOptions = [{\n  value: 'attachment',\n  label: Object(external_this_wp_i18n_[\"__\"])('Attachment Page')\n}, {\n  value: 'media',\n  label: Object(external_this_wp_i18n_[\"__\"])('Media File')\n}, {\n  value: 'none',\n  label: Object(external_this_wp_i18n_[\"__\"])('None')\n}];\nvar edit_ALLOWED_MEDIA_TYPES = ['image'];\nvar PLACEHOLDER_TEXT = external_this_wp_element_[\"Platform\"].select({\n  web: Object(external_this_wp_i18n_[\"__\"])('Drag images, upload new ones or select files from your library.'),\n  native: Object(external_this_wp_i18n_[\"__\"])('ADD MEDIA')\n});\nvar MOBILE_CONTROL_PROPS_RANGE_CONTROL = external_this_wp_element_[\"Platform\"].select({\n  web: {},\n  native: {\n    type: 'stepper'\n  }\n});\n\nvar edit_GalleryEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(GalleryEdit, _Component);\n\n  var _super = edit_createSuper(GalleryEdit);\n\n  function GalleryEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, GalleryEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.onSelectImage = _this.onSelectImage.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectImages = _this.onSelectImages.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDeselectImage = _this.onDeselectImage.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setLinkTo = _this.setLinkTo.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setColumnsNumber = _this.setColumnsNumber.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.toggleImageCrop = _this.toggleImageCrop.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onMove = _this.onMove.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onMoveForward = _this.onMoveForward.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onMoveBackward = _this.onMoveBackward.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onRemoveImage = _this.onRemoveImage.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUploadError = _this.onUploadError.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setImageAttributes = _this.setImageAttributes.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setAttributes = _this.setAttributes.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onFocusGalleryCaption = _this.onFocusGalleryCaption.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getImagesSizeOptions = _this.getImagesSizeOptions.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateImagesSize = _this.updateImagesSize.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      selectedImage: null,\n      attachmentCaptions: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(GalleryEdit, [{\n    key: \"setAttributes\",\n    value: function setAttributes(attributes) {\n      if (attributes.ids) {\n        throw new Error('The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes');\n      }\n\n      if (attributes.images) {\n        attributes = gallery_edit_objectSpread({}, attributes, {\n          // Unlike images[ n ].id which is a string, always ensure the\n          // ids array contains numbers as per its attribute type.\n          ids: Object(external_this_lodash_[\"map\"])(attributes.images, function (_ref) {\n            var id = _ref.id;\n            return parseInt(id, 10);\n          })\n        });\n      }\n\n      this.props.setAttributes(attributes);\n    }\n  }, {\n    key: \"onSelectImage\",\n    value: function onSelectImage(index) {\n      var _this2 = this;\n\n      return function () {\n        if (_this2.state.selectedImage !== index) {\n          _this2.setState({\n            selectedImage: index\n          });\n        }\n      };\n    }\n  }, {\n    key: \"onDeselectImage\",\n    value: function onDeselectImage(index) {\n      var _this3 = this;\n\n      return function () {\n        if (_this3.state.selectedImage === index) {\n          _this3.setState({\n            selectedImage: null\n          });\n        }\n      };\n    }\n  }, {\n    key: \"onMove\",\n    value: function onMove(oldIndex, newIndex) {\n      var images = Object(toConsumableArray[\"a\" /* default */])(this.props.attributes.images);\n\n      images.splice(newIndex, 1, this.props.attributes.images[oldIndex]);\n      images.splice(oldIndex, 1, this.props.attributes.images[newIndex]);\n      this.setState({\n        selectedImage: newIndex\n      });\n      this.setAttributes({\n        images: images\n      });\n    }\n  }, {\n    key: \"onMoveForward\",\n    value: function onMoveForward(oldIndex) {\n      var _this4 = this;\n\n      return function () {\n        if (oldIndex === _this4.props.attributes.images.length - 1) {\n          return;\n        }\n\n        _this4.onMove(oldIndex, oldIndex + 1);\n      };\n    }\n  }, {\n    key: \"onMoveBackward\",\n    value: function onMoveBackward(oldIndex) {\n      var _this5 = this;\n\n      return function () {\n        if (oldIndex === 0) {\n          return;\n        }\n\n        _this5.onMove(oldIndex, oldIndex - 1);\n      };\n    }\n  }, {\n    key: \"onRemoveImage\",\n    value: function onRemoveImage(index) {\n      var _this6 = this;\n\n      return function () {\n        var images = Object(external_this_lodash_[\"filter\"])(_this6.props.attributes.images, function (img, i) {\n          return index !== i;\n        });\n        var columns = _this6.props.attributes.columns;\n\n        _this6.setState({\n          selectedImage: null\n        });\n\n        _this6.setAttributes({\n          images: images,\n          columns: columns ? Math.min(images.length, columns) : columns\n        });\n      };\n    }\n  }, {\n    key: \"selectCaption\",\n    value: function selectCaption(newImage, images, attachmentCaptions) {\n      // The image id in both the images and attachmentCaptions arrays is a\n      // string, so ensure comparison works correctly by converting the\n      // newImage.id to a string.\n      var newImageId = Object(external_this_lodash_[\"toString\"])(newImage.id);\n      var currentImage = Object(external_this_lodash_[\"find\"])(images, {\n        id: newImageId\n      });\n      var currentImageCaption = currentImage ? currentImage.caption : newImage.caption;\n\n      if (!attachmentCaptions) {\n        return currentImageCaption;\n      }\n\n      var attachment = Object(external_this_lodash_[\"find\"])(attachmentCaptions, {\n        id: newImageId\n      }); // if the attachment caption is updated\n\n      if (attachment && attachment.caption !== newImage.caption) {\n        return newImage.caption;\n      }\n\n      return currentImageCaption;\n    }\n  }, {\n    key: \"onSelectImages\",\n    value: function onSelectImages(newImages) {\n      var _this7 = this;\n\n      var _this$props$attribute = this.props.attributes,\n          columns = _this$props$attribute.columns,\n          images = _this$props$attribute.images,\n          sizeSlug = _this$props$attribute.sizeSlug;\n      var attachmentCaptions = this.state.attachmentCaptions;\n      this.setState({\n        attachmentCaptions: newImages.map(function (newImage) {\n          return {\n            // Store the attachmentCaption id as a string for consistency\n            // with the type of the id in the images attribute.\n            id: Object(external_this_lodash_[\"toString\"])(newImage.id),\n            caption: newImage.caption\n          };\n        })\n      });\n      this.setAttributes({\n        images: newImages.map(function (newImage) {\n          return gallery_edit_objectSpread({}, shared_pickRelevantMediaFiles(newImage, sizeSlug), {\n            caption: _this7.selectCaption(newImage, images, attachmentCaptions),\n            // The id value is stored in a data attribute, so when the\n            // block is parsed it's converted to a string. Converting\n            // to a string here ensures it's type is consistent.\n            id: Object(external_this_lodash_[\"toString\"])(newImage.id)\n          });\n        }),\n        columns: columns ? Math.min(newImages.length, columns) : columns\n      });\n    }\n  }, {\n    key: \"onUploadError\",\n    value: function onUploadError(message) {\n      var noticeOperations = this.props.noticeOperations;\n      noticeOperations.removeAllNotices();\n      noticeOperations.createErrorNotice(message);\n    }\n  }, {\n    key: \"setLinkTo\",\n    value: function setLinkTo(value) {\n      this.setAttributes({\n        linkTo: value\n      });\n    }\n  }, {\n    key: \"setColumnsNumber\",\n    value: function setColumnsNumber(value) {\n      this.setAttributes({\n        columns: value\n      });\n    }\n  }, {\n    key: \"toggleImageCrop\",\n    value: function toggleImageCrop() {\n      this.setAttributes({\n        imageCrop: !this.props.attributes.imageCrop\n      });\n    }\n  }, {\n    key: \"getImageCropHelp\",\n    value: function getImageCropHelp(checked) {\n      return checked ? Object(external_this_wp_i18n_[\"__\"])('Thumbnails are cropped to align.') : Object(external_this_wp_i18n_[\"__\"])('Thumbnails are not cropped.');\n    }\n  }, {\n    key: \"onFocusGalleryCaption\",\n    value: function onFocusGalleryCaption() {\n      this.setState({\n        selectedImage: null\n      });\n    }\n  }, {\n    key: \"setImageAttributes\",\n    value: function setImageAttributes(index, attributes) {\n      var images = this.props.attributes.images;\n      var setAttributes = this.setAttributes;\n\n      if (!images[index]) {\n        return;\n      }\n\n      setAttributes({\n        images: [].concat(Object(toConsumableArray[\"a\" /* default */])(images.slice(0, index)), [gallery_edit_objectSpread({}, images[index], {}, attributes)], Object(toConsumableArray[\"a\" /* default */])(images.slice(index + 1)))\n      });\n    }\n  }, {\n    key: \"getImagesSizeOptions\",\n    value: function getImagesSizeOptions() {\n      var _this$props = this.props,\n          imageSizes = _this$props.imageSizes,\n          resizedImages = _this$props.resizedImages;\n      return Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"filter\"])(imageSizes, function (_ref2) {\n        var slug = _ref2.slug;\n        return Object(external_this_lodash_[\"some\"])(resizedImages, function (sizes) {\n          return sizes[slug];\n        });\n      }), function (_ref3) {\n        var name = _ref3.name,\n            slug = _ref3.slug;\n        return {\n          value: slug,\n          label: name\n        };\n      });\n    }\n  }, {\n    key: \"updateImagesSize\",\n    value: function updateImagesSize(sizeSlug) {\n      var _this$props2 = this.props,\n          images = _this$props2.attributes.images,\n          resizedImages = _this$props2.resizedImages;\n      var updatedImages = Object(external_this_lodash_[\"map\"])(images, function (image) {\n        if (!image.id) {\n          return image;\n        }\n\n        var url = Object(external_this_lodash_[\"get\"])(resizedImages, [parseInt(image.id, 10), sizeSlug]);\n        return gallery_edit_objectSpread({}, image, {}, url && {\n          url: url\n        });\n      });\n      this.setAttributes({\n        images: updatedImages,\n        sizeSlug: sizeSlug\n      });\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props3 = this.props,\n          attributes = _this$props3.attributes,\n          mediaUpload = _this$props3.mediaUpload;\n      var images = attributes.images;\n\n      if (external_this_wp_element_[\"Platform\"].OS === 'web' && images && images.length > 0 && Object(external_this_lodash_[\"every\"])(images, function (_ref4) {\n        var url = _ref4.url;\n        return Object(external_this_wp_blob_[\"isBlobURL\"])(url);\n      })) {\n        var filesList = Object(external_this_lodash_[\"map\"])(images, function (_ref5) {\n          var url = _ref5.url;\n          return Object(external_this_wp_blob_[\"getBlobByURL\"])(url);\n        });\n        Object(external_this_lodash_[\"forEach\"])(images, function (_ref6) {\n          var url = _ref6.url;\n          return Object(external_this_wp_blob_[\"revokeBlobURL\"])(url);\n        });\n        mediaUpload({\n          filesList: filesList,\n          onFileChange: this.onSelectImages,\n          allowedTypes: ['image']\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Deselect images when deselecting the block\n      if (!this.props.isSelected && prevProps.isSelected) {\n        this.setState({\n          selectedImage: null,\n          captionSelected: false\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          attributes = _this$props4.attributes,\n          className = _this$props4.className,\n          isSelected = _this$props4.isSelected,\n          noticeUI = _this$props4.noticeUI,\n          insertBlocksAfter = _this$props4.insertBlocksAfter;\n      var _attributes$columns = attributes.columns,\n          columns = _attributes$columns === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns,\n          imageCrop = attributes.imageCrop,\n          images = attributes.images,\n          linkTo = attributes.linkTo,\n          sizeSlug = attributes.sizeSlug;\n      var hasImages = !!images.length;\n      var mediaPlaceholder = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n        addToGallery: hasImages,\n        isAppender: hasImages,\n        className: className,\n        disableMediaButtons: hasImages && !isSelected,\n        icon: !hasImages && sharedIcon,\n        labels: {\n          title: !hasImages && Object(external_this_wp_i18n_[\"__\"])('Gallery'),\n          instructions: !hasImages && PLACEHOLDER_TEXT\n        },\n        onSelect: this.onSelectImages,\n        accept: \"image/*\",\n        allowedTypes: edit_ALLOWED_MEDIA_TYPES,\n        multiple: true,\n        value: images,\n        onError: this.onUploadError,\n        notices: hasImages ? undefined : noticeUI,\n        onFocus: this.props.onFocus\n      });\n\n      if (!hasImages) {\n        return mediaPlaceholder;\n      }\n\n      var imageSizeOptions = this.getImagesSizeOptions();\n      var shouldShowSizeOptions = hasImages && !Object(external_this_lodash_[\"isEmpty\"])(imageSizeOptions);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Gallery settings')\n      }, images.length > 1 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], Object(esm_extends[\"a\" /* default */])({\n        label: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n        value: columns,\n        onChange: this.setColumnsNumber,\n        min: 1,\n        max: Math.min(MAX_COLUMNS, images.length)\n      }, MOBILE_CONTROL_PROPS_RANGE_CONTROL, {\n        required: true\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Crop images'),\n        checked: !!imageCrop,\n        onChange: this.toggleImageCrop,\n        help: this.getImageCropHelp\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Link to'),\n        value: linkTo,\n        onChange: this.setLinkTo,\n        options: linkOptions\n      }), shouldShowSizeOptions && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Image size'),\n        value: sizeSlug,\n        options: imageSizeOptions,\n        onChange: this.updateImagesSize\n      }))), noticeUI, Object(external_this_wp_element_[\"createElement\"])(gallery_gallery, Object(esm_extends[\"a\" /* default */])({}, this.props, {\n        selectedImage: this.state.selectedImage,\n        mediaPlaceholder: mediaPlaceholder,\n        onMoveBackward: this.onMoveBackward,\n        onMoveForward: this.onMoveForward,\n        onRemoveImage: this.onRemoveImage,\n        onSelectImage: this.onSelectImage,\n        onDeselectImage: this.onDeselectImage,\n        onSetImageAttributes: this.setImageAttributes,\n        onFocusGalleryCaption: this.onFocusGalleryCaption,\n        insertBlocksAfter: insertBlocksAfter\n      })));\n    }\n  }]);\n\n  return GalleryEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var gallery_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref7) {\n  var ids = _ref7.attributes.ids,\n      isSelected = _ref7.isSelected;\n\n  var _select = select('core'),\n      getMedia = _select.getMedia;\n\n  var _select2 = select('core/block-editor'),\n      getSettings = _select2.getSettings;\n\n  var _getSettings = getSettings(),\n      imageSizes = _getSettings.imageSizes,\n      mediaUpload = _getSettings.mediaUpload;\n\n  var resizedImages = {};\n\n  if (isSelected) {\n    resizedImages = Object(external_this_lodash_[\"reduce\"])(ids, function (currentResizedImages, id) {\n      if (!id) {\n        return currentResizedImages;\n      }\n\n      var image = getMedia(id);\n      var sizes = Object(external_this_lodash_[\"reduce\"])(imageSizes, function (currentSizes, size) {\n        var defaultUrl = Object(external_this_lodash_[\"get\"])(image, ['sizes', size.slug, 'url']);\n        var mediaDetailsUrl = Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', size.slug, 'source_url']);\n        return gallery_edit_objectSpread({}, currentSizes, Object(defineProperty[\"a\" /* default */])({}, size.slug, defaultUrl || mediaDetailsUrl));\n      }, {});\n      return gallery_edit_objectSpread({}, currentResizedImages, Object(defineProperty[\"a\" /* default */])({}, parseInt(id, 10), sizes));\n    }, {});\n  }\n\n  return {\n    imageSizes: imageSizes,\n    mediaUpload: mediaUpload,\n    resizedImages: resizedImages\n  };\n}), external_this_wp_components_[\"withNotices\"], Object(external_this_wp_viewport_[\"withViewportMatch\"])({\n  isNarrow: '< small'\n})])(edit_GalleryEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/save.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction gallery_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var images = attributes.images,\n      _attributes$columns = attributes.columns,\n      columns = _attributes$columns === void 0 ? defaultColumnsNumber(attributes) : _attributes$columns,\n      imageCrop = attributes.imageCrop,\n      caption = attributes.caption,\n      linkTo = attributes.linkTo;\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n    className: \"columns-\".concat(columns, \" \").concat(imageCrop ? 'is-cropped' : '')\n  }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"blocks-gallery-grid\"\n  }, images.map(function (image) {\n    var href;\n\n    switch (linkTo) {\n      case 'media':\n        href = image.fullUrl || image.url;\n        break;\n\n      case 'attachment':\n        href = image.link;\n        break;\n    }\n\n    var img = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n      src: image.url,\n      alt: image.alt,\n      \"data-id\": image.id,\n      \"data-full-url\": image.fullUrl,\n      \"data-link\": image.link,\n      className: image.id ? \"wp-image-\".concat(image.id) : null\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: image.id || image.url,\n      className: \"blocks-gallery-item\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, href ? Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n      href: href\n    }, img) : img, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(image.caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      className: \"blocks-gallery-item__caption\",\n      value: image.caption\n    })));\n  })), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"figcaption\",\n    className: \"blocks-gallery-caption\",\n    value: caption\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/transforms.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar parseShortcodeIds = function parseShortcodeIds(ids) {\n  if (!ids) {\n    return [];\n  }\n\n  return ids.split(',').map(function (id) {\n    return parseInt(id, 10);\n  });\n};\n\nvar gallery_transforms_transforms = {\n  from: [{\n    type: 'block',\n    isMultiBlock: true,\n    blocks: ['core/image'],\n    transform: function transform(attributes) {\n      // Init the align and size from the first item which may be either the placeholder or an image.\n      var _attributes$ = attributes[0],\n          align = _attributes$.align,\n          sizeSlug = _attributes$.sizeSlug; // Loop through all the images and check if they have the same align and size.\n\n      align = Object(external_this_lodash_[\"every\"])(attributes, ['align', align]) ? align : undefined;\n      sizeSlug = Object(external_this_lodash_[\"every\"])(attributes, ['sizeSlug', sizeSlug]) ? sizeSlug : undefined;\n      var validImages = Object(external_this_lodash_[\"filter\"])(attributes, function (_ref) {\n        var url = _ref.url;\n        return url;\n      });\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/gallery', {\n        images: validImages.map(function (_ref2) {\n          var id = _ref2.id,\n              url = _ref2.url,\n              alt = _ref2.alt,\n              caption = _ref2.caption;\n          return {\n            id: Object(external_this_lodash_[\"toString\"])(id),\n            url: url,\n            alt: alt,\n            caption: caption\n          };\n        }),\n        ids: validImages.map(function (_ref3) {\n          var id = _ref3.id;\n          return parseInt(id, 10);\n        }),\n        align: align,\n        sizeSlug: sizeSlug\n      });\n    }\n  }, {\n    type: 'shortcode',\n    tag: 'gallery',\n    attributes: {\n      images: {\n        type: 'array',\n        shortcode: function shortcode(_ref4) {\n          var ids = _ref4.named.ids;\n          return parseShortcodeIds(ids).map(function (id) {\n            return {\n              id: Object(external_this_lodash_[\"toString\"])(id)\n            };\n          });\n        }\n      },\n      ids: {\n        type: 'array',\n        shortcode: function shortcode(_ref5) {\n          var ids = _ref5.named.ids;\n          return parseShortcodeIds(ids);\n        }\n      },\n      columns: {\n        type: 'number',\n        shortcode: function shortcode(_ref6) {\n          var _ref6$named$columns = _ref6.named.columns,\n              columns = _ref6$named$columns === void 0 ? '3' : _ref6$named$columns;\n          return parseInt(columns, 10);\n        }\n      },\n      linkTo: {\n        type: 'string',\n        shortcode: function shortcode(_ref7) {\n          var _ref7$named$link = _ref7.named.link,\n              link = _ref7$named$link === void 0 ? 'attachment' : _ref7$named$link;\n          return link === 'file' ? 'media' : link;\n        }\n      }\n    }\n  }, {\n    // When created by drag and dropping multiple files on an insertion point\n    type: 'files',\n    isMatch: function isMatch(files) {\n      return files.length !== 1 && Object(external_this_lodash_[\"every\"])(files, function (file) {\n        return file.type.indexOf('image/') === 0;\n      });\n    },\n    transform: function transform(files) {\n      var block = Object(external_this_wp_blocks_[\"createBlock\"])('core/gallery', {\n        images: files.map(function (file) {\n          return shared_pickRelevantMediaFiles({\n            url: Object(external_this_wp_blob_[\"createBlobURL\"])(file)\n          });\n        })\n      });\n      return block;\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/image'],\n    transform: function transform(_ref8) {\n      var images = _ref8.images,\n          align = _ref8.align,\n          sizeSlug = _ref8.sizeSlug,\n          ids = _ref8.ids;\n\n      if (images.length > 0) {\n        return images.map(function (_ref9, index) {\n          var url = _ref9.url,\n              alt = _ref9.alt,\n              caption = _ref9.caption;\n          return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n            id: ids[index],\n            url: url,\n            alt: alt,\n            caption: caption,\n            align: align,\n            sizeSlug: sizeSlug\n          });\n        });\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n        align: align\n      });\n    }\n  }]\n};\n/* harmony default export */ var gallery_transforms = (gallery_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/gallery/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar gallery_metadata = {\n  name: \"core/gallery\",\n  category: \"media\",\n  attributes: {\n    images: {\n      type: \"array\",\n      \"default\": [],\n      source: \"query\",\n      selector: \".blocks-gallery-item\",\n      query: {\n        url: {\n          type: \"string\",\n          source: \"attribute\",\n          selector: \"img\",\n          attribute: \"src\"\n        },\n        fullUrl: {\n          type: \"string\",\n          source: \"attribute\",\n          selector: \"img\",\n          attribute: \"data-full-url\"\n        },\n        link: {\n          type: \"string\",\n          source: \"attribute\",\n          selector: \"img\",\n          attribute: \"data-link\"\n        },\n        alt: {\n          type: \"string\",\n          source: \"attribute\",\n          selector: \"img\",\n          attribute: \"alt\",\n          \"default\": \"\"\n        },\n        id: {\n          type: \"string\",\n          source: \"attribute\",\n          selector: \"img\",\n          attribute: \"data-id\"\n        },\n        caption: {\n          type: \"string\",\n          source: \"html\",\n          selector: \".blocks-gallery-item__caption\"\n        }\n      }\n    },\n    ids: {\n      type: \"array\",\n      items: {\n        type: \"number\"\n      },\n      \"default\": []\n    },\n    columns: {\n      type: \"number\",\n      minimum: 1,\n      maximum: 8\n    },\n    caption: {\n      type: \"string\",\n      source: \"html\",\n      selector: \".blocks-gallery-caption\"\n    },\n    imageCrop: {\n      type: \"boolean\",\n      \"default\": true\n    },\n    linkTo: {\n      type: \"string\",\n      \"default\": \"none\"\n    },\n    sizeSlug: {\n      type: \"string\",\n      \"default\": \"large\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true\n  }\n};\n\n\nvar gallery_name = gallery_metadata.name;\n\nvar gallery_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Gallery'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display multiple images in a rich gallery.'),\n  icon: library_gallery,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('images'), Object(external_this_wp_i18n_[\"__\"])('photos')],\n  example: {\n    attributes: {\n      columns: 2,\n      images: [{\n        url: 'https://s.w.org/images/core/5.3/Glacial_lakes%2C_Bhutan.jpg'\n      }, {\n        url: 'https://s.w.org/images/core/5.3/Sediment_off_the_Yucatan_Peninsula.jpg'\n      }]\n    }\n  },\n  transforms: gallery_transforms,\n  edit: gallery_edit,\n  save: gallery_save_save,\n  deprecated: gallery_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/archive.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar archive = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5zM8 12.8h8v-1.5H8v1.5zm0 3h8v-1.5H8v1.5z\"\n}));\n/* harmony default export */ var library_archive = (archive);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"serverSideRender\"]}\nvar external_this_wp_serverSideRender_ = __webpack_require__(74);\nvar external_this_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_serverSideRender_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction ArchivesEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes;\n  var showPostCounts = attributes.showPostCounts,\n      displayAsDropdown = attributes.displayAsDropdown;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Archives settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Display as dropdown'),\n    checked: displayAsDropdown,\n    onChange: function onChange() {\n      return setAttributes({\n        displayAsDropdown: !displayAsDropdown\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Show post counts'),\n    checked: showPostCounts,\n    onChange: function onChange() {\n      return setAttributes({\n        showPostCounts: !showPostCounts\n      });\n    }\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_serverSideRender_default.a, {\n    block: \"core/archives\",\n    attributes: attributes\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/archives/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar archives_metadata = {\n  name: \"core/archives\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    displayAsDropdown: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    showPostCounts: {\n      type: \"boolean\",\n      \"default\": false\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\n\nvar archives_name = archives_metadata.name;\n\nvar archives_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Archives'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display a monthly archive of your posts.'),\n  icon: library_archive,\n  example: {},\n  edit: ArchivesEdit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/audio.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar audio = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M17.7 4.3c-1.2 0-2.8 0-3.8 1-.6.6-.9 1.5-.9 2.6V14c-.6-.6-1.5-1-2.5-1C8.6 13 7 14.6 7 16.5S8.6 20 10.5 20c1.5 0 2.8-1 3.3-2.3.5-.8.7-1.8.7-2.5V7.9c0-.7.2-1.2.5-1.6.6-.6 1.8-.6 2.8-.6h.3V4.3h-.4z\"\n}));\n/* harmony default export */ var library_audio = (audio);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/deprecated.js\n\n\n/**\n * WordPress dependencies\n */\n\n/* harmony default export */ var audio_deprecated = ([{\n  attributes: {\n    src: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'audio',\n      attribute: 'src'\n    },\n    caption: {\n      type: 'string',\n      source: 'html',\n      selector: 'figcaption'\n    },\n    id: {\n      type: 'number'\n    },\n    autoplay: {\n      type: 'boolean',\n      source: 'attribute',\n      selector: 'audio',\n      attribute: 'autoplay'\n    },\n    loop: {\n      type: 'boolean',\n      source: 'attribute',\n      selector: 'audio',\n      attribute: 'loop'\n    },\n    preload: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'audio',\n      attribute: 'preload'\n    }\n  },\n  supports: {\n    align: true\n  },\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var autoplay = attributes.autoplay,\n        caption = attributes.caption,\n        loop = attributes.loop,\n        preload = attributes.preload,\n        src = attributes.src;\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, Object(external_this_wp_element_[\"createElement\"])(\"audio\", {\n      controls: \"controls\",\n      src: src,\n      autoPlay: autoplay,\n      loop: loop,\n      preload: preload\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"figcaption\",\n      value: caption\n    }));\n  }\n}]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/edit.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar audio_edit_ALLOWED_MEDIA_TYPES = ['audio'];\n\nfunction AudioEdit(_ref) {\n  var attributes = _ref.attributes,\n      noticeOperations = _ref.noticeOperations,\n      setAttributes = _ref.setAttributes,\n      onReplace = _ref.onReplace,\n      isSelected = _ref.isSelected,\n      noticeUI = _ref.noticeUI,\n      insertBlocksAfter = _ref.insertBlocksAfter;\n  var id = attributes.id,\n      autoplay = attributes.autoplay,\n      caption = attributes.caption,\n      loop = attributes.loop,\n      preload = attributes.preload,\n      src = attributes.src;\n  var mediaUpload = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings;\n\n    return getSettings().mediaUpload;\n  }, []);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!id && Object(external_this_wp_blob_[\"isBlobURL\"])(src)) {\n      var file = Object(external_this_wp_blob_[\"getBlobByURL\"])(src);\n\n      if (file) {\n        mediaUpload({\n          filesList: [file],\n          onFileChange: function onFileChange(_ref2) {\n            var _ref3 = Object(slicedToArray[\"a\" /* default */])(_ref2, 1),\n                _ref3$ = _ref3[0],\n                mediaId = _ref3$.id,\n                url = _ref3$.url;\n\n            setAttributes({\n              id: mediaId,\n              src: url\n            });\n          },\n          onError: function onError(e) {\n            setAttributes({\n              src: undefined,\n              id: undefined\n            });\n            noticeOperations.createErrorNotice(e);\n          },\n          allowedTypes: audio_edit_ALLOWED_MEDIA_TYPES\n        });\n      }\n    }\n  }, []);\n\n  function toggleAttribute(attribute) {\n    return function (newValue) {\n      setAttributes(Object(defineProperty[\"a\" /* default */])({}, attribute, newValue));\n    };\n  }\n\n  function onSelectURL(newSrc) {\n    // Set the block's src from the edit component's state, and switch off\n    // the editing UI.\n    if (newSrc !== src) {\n      // Check if there's an embed block that handles this URL.\n      var embedBlock = util_createUpgradedEmbedBlock({\n        attributes: {\n          url: newSrc\n        }\n      });\n\n      if (undefined !== embedBlock) {\n        onReplace(embedBlock);\n        return;\n      }\n\n      setAttributes({\n        src: newSrc,\n        id: undefined\n      });\n    }\n  }\n\n  function onUploadError(message) {\n    noticeOperations.removeAllNotices();\n    noticeOperations.createErrorNotice(message);\n  }\n\n  function getAutoplayHelp(checked) {\n    return checked ? Object(external_this_wp_i18n_[\"__\"])('Note: Autoplaying audio may cause usability issues for some visitors.') : null;\n  } // const { setAttributes, isSelected, noticeUI } = this.props;\n\n\n  function onSelectAudio(media) {\n    if (!media || !media.url) {\n      // in this case there was an error and we should continue in the editing state\n      // previous attributes should be removed because they may be temporary blob urls\n      setAttributes({\n        src: undefined,\n        id: undefined\n      });\n      return;\n    } // sets the block's attribute and updates the edit component from the\n    // selected media, then switches off the editing UI\n\n\n    setAttributes({\n      src: media.url,\n      id: media.id\n    });\n  }\n\n  if (!src) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n      icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n        icon: library_audio\n      }),\n      onSelect: onSelectAudio,\n      onSelectURL: onSelectURL,\n      accept: \"audio/*\",\n      allowedTypes: audio_edit_ALLOWED_MEDIA_TYPES,\n      value: attributes,\n      notices: noticeUI,\n      onError: onUploadError\n    }));\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n    mediaId: id,\n    mediaURL: src,\n    allowedTypes: audio_edit_ALLOWED_MEDIA_TYPES,\n    accept: \"audio/*\",\n    onSelect: onSelectAudio,\n    onSelectURL: onSelectURL,\n    onError: onUploadError\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Audio settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Autoplay'),\n    onChange: toggleAttribute('autoplay'),\n    checked: autoplay,\n    help: getAutoplayHelp\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Loop'),\n    onChange: toggleAttribute('loop'),\n    checked: loop\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Preload'),\n    value: preload || '' // `undefined` is required for the preload attribute to be unset.\n    ,\n    onChange: function onChange(value) {\n      return setAttributes({\n        preload: value || undefined\n      });\n    },\n    options: [{\n      value: '',\n      label: Object(external_this_wp_i18n_[\"__\"])('Browser default')\n    }, {\n      value: 'auto',\n      label: Object(external_this_wp_i18n_[\"__\"])('Auto')\n    }, {\n      value: 'metadata',\n      label: Object(external_this_wp_i18n_[\"__\"])('Metadata')\n    }, {\n      value: 'none',\n      label: Object(external_this_wp_i18n_[\"__\"])('None')\n    }]\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].figure, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(\"audio\", {\n    controls: \"controls\",\n    src: src\n  })), (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    tagName: \"figcaption\",\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write caption…'),\n    value: caption,\n    onChange: function onChange(value) {\n      return setAttributes({\n        caption: value\n      });\n    },\n    inlineToolbar: true,\n    __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n      return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n    }\n  })));\n}\n\n/* harmony default export */ var audio_edit = (Object(external_this_wp_components_[\"withNotices\"])(AudioEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction audio_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var autoplay = attributes.autoplay,\n      caption = attributes.caption,\n      loop = attributes.loop,\n      preload = attributes.preload,\n      src = attributes.src;\n  return src && Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, Object(external_this_wp_element_[\"createElement\"])(\"audio\", {\n    controls: \"controls\",\n    src: src,\n    autoPlay: autoplay,\n    loop: loop,\n    preload: preload\n  }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"figcaption\",\n    value: caption\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/transforms.js\n/**\n * WordPress dependencies\n */\n\n\nvar audio_transforms_transforms = {\n  from: [{\n    type: 'files',\n    isMatch: function isMatch(files) {\n      return files.length === 1 && files[0].type.indexOf('audio/') === 0;\n    },\n    transform: function transform(files) {\n      var file = files[0]; // We don't need to upload the media directly here\n      // It's already done as part of the `componentDidMount`\n      // in the audio block\n\n      var block = Object(external_this_wp_blocks_[\"createBlock\"])('core/audio', {\n        src: Object(external_this_wp_blob_[\"createBlobURL\"])(file)\n      });\n      return block;\n    }\n  }, {\n    type: 'shortcode',\n    tag: 'audio',\n    attributes: {\n      src: {\n        type: 'string',\n        shortcode: function shortcode(_ref) {\n          var src = _ref.named.src;\n          return src;\n        }\n      },\n      loop: {\n        type: 'string',\n        shortcode: function shortcode(_ref2) {\n          var loop = _ref2.named.loop;\n          return loop;\n        }\n      },\n      autoplay: {\n        type: 'string',\n        shortcode: function shortcode(_ref3) {\n          var autoplay = _ref3.named.autoplay;\n          return autoplay;\n        }\n      },\n      preload: {\n        type: 'string',\n        shortcode: function shortcode(_ref4) {\n          var preload = _ref4.named.preload;\n          return preload;\n        }\n      }\n    }\n  }]\n};\n/* harmony default export */ var audio_transforms = (audio_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/audio/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar audio_metadata = {\n  name: \"core/audio\",\n  category: \"media\",\n  attributes: {\n    src: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"audio\",\n      attribute: \"src\"\n    },\n    caption: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"figcaption\"\n    },\n    id: {\n      type: \"number\"\n    },\n    autoplay: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"audio\",\n      attribute: \"autoplay\"\n    },\n    loop: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"audio\",\n      attribute: \"loop\"\n    },\n    preload: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"audio\",\n      attribute: \"preload\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar audio_name = audio_metadata.name;\n\nvar audio_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Audio'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Embed a simple audio player.'),\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('music'), Object(external_this_wp_i18n_[\"__\"])('sound'), Object(external_this_wp_i18n_[\"__\"])('podcast'), Object(external_this_wp_i18n_[\"__\"])('recording')],\n  icon: library_audio,\n  transforms: audio_transforms,\n  deprecated: audio_deprecated,\n  edit: audio_edit,\n  save: audio_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/button.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar button_button = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 13h8v-1.5H8V13z\"\n}));\n/* harmony default export */ var library_button = (button_button);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/transforms.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\nvar _name$category$suppor = {\n  name: \"core/buttons\",\n  category: \"design\",\n  supports: {\n    anchor: true,\n    align: true,\n    alignWide: false,\n    lightBlockWrapper: true\n  }\n},\n    buttons_transforms_name = _name$category$suppor.name;\nvar buttons_transforms_transforms = {\n  from: [{\n    type: 'block',\n    isMultiBlock: true,\n    blocks: ['core/button'],\n    transform: function transform(buttons) {\n      return (// Creates the buttons block\n        Object(external_this_wp_blocks_[\"createBlock\"])(buttons_transforms_name, {}, // Loop the selected buttons\n        buttons.map(function (attributes) {\n          return (// Create singular button in the buttons block\n            Object(external_this_wp_blocks_[\"createBlock\"])('core/button', attributes)\n          );\n        }))\n      );\n    }\n  }]\n};\n/* harmony default export */ var buttons_transforms = (buttons_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/deprecated.js\n\n\n\nfunction button_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction button_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { button_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { button_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar deprecated_migrateCustomColorsAndGradients = function migrateCustomColorsAndGradients(attributes) {\n  if (!attributes.customTextColor && !attributes.customBackgroundColor && !attributes.customGradient) {\n    return attributes;\n  }\n\n  var style = {\n    color: {}\n  };\n\n  if (attributes.customTextColor) {\n    style.color.text = attributes.customTextColor;\n  }\n\n  if (attributes.customBackgroundColor) {\n    style.color.background = attributes.customBackgroundColor;\n  }\n\n  if (attributes.customGradient) {\n    style.color.gradient = attributes.customGradient;\n  }\n\n  return button_deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customTextColor', 'customBackgroundColor', 'customGradient']), {\n    style: style\n  });\n};\n\nvar deprecated_oldColorsMigration = function oldColorsMigration(attributes) {\n  return deprecated_migrateCustomColorsAndGradients(Object(external_this_lodash_[\"omit\"])(button_deprecated_objectSpread({}, attributes, {\n    customTextColor: attributes.textColor && '#' === attributes.textColor[0] ? attributes.textColor : undefined,\n    customBackgroundColor: attributes.color && '#' === attributes.color[0] ? attributes.color : undefined\n  }), ['color', 'textColor']));\n};\n\nvar button_deprecated_blockAttributes = {\n  url: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'a',\n    attribute: 'href'\n  },\n  title: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'a',\n    attribute: 'title'\n  },\n  text: {\n    type: 'string',\n    source: 'html',\n    selector: 'a'\n  }\n};\nvar button_deprecated_deprecated = [{\n  supports: {\n    align: true,\n    alignWide: false,\n    __experimentalColor: {\n      gradients: true\n    }\n  },\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    linkTarget: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'target'\n    },\n    rel: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'rel'\n    },\n    placeholder: {\n      type: 'string'\n    },\n    borderRadius: {\n      type: 'number'\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    gradient: {\n      type: 'string'\n    },\n    style: {\n      type: 'object'\n    }\n  }),\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var borderRadius = attributes.borderRadius,\n        linkTarget = attributes.linkTarget,\n        rel = attributes.rel,\n        text = attributes.text,\n        title = attributes.title,\n        url = attributes.url;\n    var buttonClasses = classnames_default()('wp-block-button__link', {\n      'no-border-radius': borderRadius === 0\n    });\n    var buttonStyle = {\n      borderRadius: borderRadius ? borderRadius + 'px' : undefined\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      className: buttonClasses,\n      href: url,\n      title: title,\n      style: buttonStyle,\n      value: text,\n      target: linkTarget,\n      rel: rel\n    });\n  }\n}, {\n  supports: {\n    align: true,\n    alignWide: false\n  },\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    linkTarget: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'target'\n    },\n    rel: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'rel'\n    },\n    placeholder: {\n      type: 'string'\n    },\n    borderRadius: {\n      type: 'number'\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    },\n    customGradient: {\n      type: 'string'\n    },\n    gradient: {\n      type: 'string'\n    }\n  }),\n  isEligible: function isEligible(attributes) {\n    return !!attributes.customTextColor || !!attributes.customBackgroundColor || !!attributes.customGradient;\n  },\n  migrate: deprecated_migrateCustomColorsAndGradients,\n  save: function save(_ref2) {\n    var _classnames;\n\n    var attributes = _ref2.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        borderRadius = attributes.borderRadius,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor,\n        customGradient = attributes.customGradient,\n        linkTarget = attributes.linkTarget,\n        gradient = attributes.gradient,\n        rel = attributes.rel,\n        text = attributes.text,\n        textColor = attributes.textColor,\n        title = attributes.title,\n        url = attributes.url;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = !customGradient && Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n\n    var gradientClass = Object(external_this_wp_blockEditor_[\"__experimentalGetGradientClass\"])(gradient);\n\n    var buttonClasses = classnames_default()('wp-block-button__link', (_classnames = {\n      'has-text-color': textColor || customTextColor\n    }, Object(defineProperty[\"a\" /* default */])(_classnames, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-background', backgroundColor || customBackgroundColor || customGradient || gradient), Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'no-border-radius', borderRadius === 0), Object(defineProperty[\"a\" /* default */])(_classnames, gradientClass, gradientClass), _classnames));\n    var buttonStyle = {\n      background: customGradient ? customGradient : undefined,\n      backgroundColor: backgroundClass || customGradient || gradient ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor,\n      borderRadius: borderRadius ? borderRadius + 'px' : undefined\n    }; // The use of a `title` attribute here is soft-deprecated, but still applied\n    // if it had already been assigned, for the sake of backward-compatibility.\n    // A title will no longer be assigned for new or updated button block links.\n\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      className: buttonClasses,\n      href: url,\n      title: title,\n      style: buttonStyle,\n      value: text,\n      target: linkTarget,\n      rel: rel\n    }));\n  }\n}, {\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    align: {\n      type: 'string',\n      default: 'none'\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    },\n    linkTarget: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'target'\n    },\n    rel: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'a',\n      attribute: 'rel'\n    },\n    placeholder: {\n      type: 'string'\n    }\n  }),\n  isEligible: function isEligible(attribute) {\n    return attribute.className && attribute.className.includes('is-style-squared');\n  },\n  migrate: function migrate(attributes) {\n    var newClassName = attributes.className;\n\n    if (newClassName) {\n      newClassName = newClassName.replace(/is-style-squared[\\s]?/, '').trim();\n    }\n\n    return deprecated_migrateCustomColorsAndGradients(button_deprecated_objectSpread({}, attributes, {\n      className: newClassName ? newClassName : undefined,\n      borderRadius: 0\n    }));\n  },\n  save: function save(_ref3) {\n    var _classnames2;\n\n    var attributes = _ref3.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor,\n        linkTarget = attributes.linkTarget,\n        rel = attributes.rel,\n        text = attributes.text,\n        textColor = attributes.textColor,\n        title = attributes.title,\n        url = attributes.url;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var buttonClasses = classnames_default()('wp-block-button__link', (_classnames2 = {\n      'has-text-color': textColor || customTextColor\n    }, Object(defineProperty[\"a\" /* default */])(_classnames2, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames2, 'has-background', backgroundColor || customBackgroundColor), Object(defineProperty[\"a\" /* default */])(_classnames2, backgroundClass, backgroundClass), _classnames2));\n    var buttonStyle = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      className: buttonClasses,\n      href: url,\n      title: title,\n      style: buttonStyle,\n      value: text,\n      target: linkTarget,\n      rel: rel\n    }));\n  }\n}, {\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    align: {\n      type: 'string',\n      default: 'none'\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    }\n  }),\n  migrate: deprecated_oldColorsMigration,\n  save: function save(_ref4) {\n    var _classnames3;\n\n    var attributes = _ref4.attributes;\n    var url = attributes.url,\n        text = attributes.text,\n        title = attributes.title,\n        backgroundColor = attributes.backgroundColor,\n        textColor = attributes.textColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        customTextColor = attributes.customTextColor;\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var buttonClasses = classnames_default()('wp-block-button__link', (_classnames3 = {\n      'has-text-color': textColor || customTextColor\n    }, Object(defineProperty[\"a\" /* default */])(_classnames3, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames3, 'has-background', backgroundColor || customBackgroundColor), Object(defineProperty[\"a\" /* default */])(_classnames3, backgroundClass, backgroundClass), _classnames3));\n    var buttonStyle = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      className: buttonClasses,\n      href: url,\n      title: title,\n      style: buttonStyle,\n      value: text\n    }));\n  }\n}, {\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    color: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    align: {\n      type: 'string',\n      default: 'none'\n    }\n  }),\n  save: function save(_ref5) {\n    var attributes = _ref5.attributes;\n    var url = attributes.url,\n        text = attributes.text,\n        title = attributes.title,\n        align = attributes.align,\n        color = attributes.color,\n        textColor = attributes.textColor;\n    var buttonStyle = {\n      backgroundColor: color,\n      color: textColor\n    };\n    var linkClass = 'wp-block-button__link';\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"align\".concat(align)\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      className: linkClass,\n      href: url,\n      title: title,\n      style: buttonStyle,\n      value: text\n    }));\n  },\n  migrate: deprecated_oldColorsMigration\n}, {\n  attributes: button_deprecated_objectSpread({}, button_deprecated_blockAttributes, {\n    color: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    align: {\n      type: 'string',\n      default: 'none'\n    }\n  }),\n  save: function save(_ref6) {\n    var attributes = _ref6.attributes;\n    var url = attributes.url,\n        text = attributes.text,\n        title = attributes.title,\n        align = attributes.align,\n        color = attributes.color,\n        textColor = attributes.textColor;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"align\".concat(align),\n      style: {\n        backgroundColor: color\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"a\",\n      href: url,\n      title: title,\n      style: {\n        color: textColor\n      },\n      value: text\n    }));\n  },\n  migrate: deprecated_oldColorsMigration\n}];\n/* harmony default export */ var button_deprecated = (button_deprecated_deprecated);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js\nvar library_link = __webpack_require__(174);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js\nvar link_off = __webpack_require__(199);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/color-edit.js\n\n\n\n\nfunction color_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction color_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { color_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { color_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar isWebPlatform = external_this_wp_element_[\"Platform\"].OS === 'web'; // The code in this file is copied entirely from the \"color\" and \"style\" support flags\n// The flag can't be used at the moment because of the extra wrapper around\n// the button block markup.\n\nfunction getBlockDOMNode(clientId) {\n  return document.getElementById('block-' + clientId);\n}\n/**\n * Removed undefined values from nested object.\n *\n * @param {*} object\n * @return {*} Object cleaned from undefined values\n */\n\n\nvar color_edit_cleanEmptyObject = function cleanEmptyObject(object) {\n  if (!Object(external_this_lodash_[\"isObject\"])(object)) {\n    return object;\n  }\n\n  var cleanedNestedObjects = Object(external_this_lodash_[\"pickBy\"])(Object(external_this_lodash_[\"mapValues\"])(object, cleanEmptyObject), external_this_lodash_[\"identity\"]);\n  return Object(external_this_lodash_[\"isEqual\"])(cleanedNestedObjects, {}) ? undefined : cleanedNestedObjects;\n};\n\nfunction ColorPanel(_ref) {\n  var settings = _ref.settings,\n      clientId = _ref.clientId,\n      _ref$enableContrastCh = _ref.enableContrastChecking,\n      enableContrastChecking = _ref$enableContrastCh === void 0 ? true : _ref$enableContrastCh;\n  var _window = window,\n      getComputedStyle = _window.getComputedStyle,\n      Node = _window.Node;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      detectedBackgroundColor = _useState2[0],\n      setDetectedBackgroundColor = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      detectedColor = _useState4[0],\n      setDetectedColor = _useState4[1];\n\n  var title = isWebPlatform ? Object(external_this_wp_i18n_[\"__\"])('Color settings') : Object(external_this_wp_i18n_[\"__\"])('Color Settings');\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isWebPlatform && !enableContrastChecking) {\n      return;\n    }\n\n    var colorsDetectionElement = getBlockDOMNode(clientId);\n\n    if (!colorsDetectionElement) {\n      return;\n    }\n\n    setDetectedColor(getComputedStyle(colorsDetectionElement).color);\n    var backgroundColorNode = colorsDetectionElement;\n    var backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;\n\n    while (backgroundColor === 'rgba(0, 0, 0, 0)' && backgroundColorNode.parentNode && backgroundColorNode.parentNode.nodeType === Node.ELEMENT_NODE) {\n      backgroundColorNode = backgroundColorNode.parentNode;\n      backgroundColor = getComputedStyle(backgroundColorNode).backgroundColor;\n    }\n\n    setDetectedBackgroundColor(backgroundColor);\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalPanelColorGradientSettings\"], {\n    title: title,\n    initialOpen: false,\n    settings: settings\n  }, isWebPlatform && enableContrastChecking && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"ContrastChecker\"], {\n    backgroundColor: detectedBackgroundColor,\n    textColor: detectedColor\n  })));\n}\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\n\n\nfunction ColorEdit(props) {\n  var _style$color2, _style$color3, _style$color4;\n\n  var attributes = props.attributes;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/block-editor').getSettings();\n  }, []),\n      colors = _useSelect.colors,\n      gradients = _useSelect.gradients; // Shouldn't be needed but right now the ColorGradientsPanel\n  // can trigger both onChangeColor and onChangeBackground\n  // synchronously causing our two callbacks to override changes\n  // from each other.\n\n\n  var localAttributes = Object(external_this_wp_element_[\"useRef\"])(attributes);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    localAttributes.current = attributes;\n  }, [attributes]);\n  var style = attributes.style,\n      textColor = attributes.textColor,\n      backgroundColor = attributes.backgroundColor,\n      gradient = attributes.gradient;\n  var gradientValue;\n\n  if (gradient) {\n    gradientValue = Object(external_this_wp_blockEditor_[\"getGradientValueBySlug\"])(gradients, gradient);\n  } else {\n    var _style$color;\n\n    gradientValue = style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.gradient;\n  }\n\n  var onChangeColor = function onChangeColor(name) {\n    return function (value) {\n      var _localAttributes$curr, _localAttributes$curr2;\n\n      var colorObject = Object(external_this_wp_blockEditor_[\"getColorObjectByColorValue\"])(colors, value);\n      var attributeName = name + 'Color';\n\n      var newStyle = color_edit_objectSpread({}, localAttributes.current.style, {\n        color: color_edit_objectSpread({}, (_localAttributes$curr = localAttributes.current) === null || _localAttributes$curr === void 0 ? void 0 : (_localAttributes$curr2 = _localAttributes$curr.style) === null || _localAttributes$curr2 === void 0 ? void 0 : _localAttributes$curr2.color, Object(defineProperty[\"a\" /* default */])({}, name, (colorObject === null || colorObject === void 0 ? void 0 : colorObject.slug) ? undefined : value))\n      });\n\n      var newNamedColor = (colorObject === null || colorObject === void 0 ? void 0 : colorObject.slug) ? colorObject.slug : undefined;\n\n      var newAttributes = Object(defineProperty[\"a\" /* default */])({\n        style: color_edit_cleanEmptyObject(newStyle)\n      }, attributeName, newNamedColor);\n\n      props.setAttributes(newAttributes);\n      localAttributes.current = color_edit_objectSpread({}, localAttributes.current, {}, newAttributes);\n    };\n  };\n\n  var onChangeGradient = function onChangeGradient(value) {\n    var slug = Object(external_this_wp_blockEditor_[\"getGradientSlugByValue\"])(gradients, value);\n    var newAttributes;\n\n    if (slug) {\n      var _localAttributes$curr3, _localAttributes$curr4, _localAttributes$curr5;\n\n      var newStyle = color_edit_objectSpread({}, (_localAttributes$curr3 = localAttributes.current) === null || _localAttributes$curr3 === void 0 ? void 0 : _localAttributes$curr3.style, {\n        color: color_edit_objectSpread({}, (_localAttributes$curr4 = localAttributes.current) === null || _localAttributes$curr4 === void 0 ? void 0 : (_localAttributes$curr5 = _localAttributes$curr4.style) === null || _localAttributes$curr5 === void 0 ? void 0 : _localAttributes$curr5.color, {\n          gradient: undefined\n        })\n      });\n\n      newAttributes = {\n        style: color_edit_cleanEmptyObject(newStyle),\n        gradient: slug\n      };\n    } else {\n      var _localAttributes$curr6, _localAttributes$curr7, _localAttributes$curr8;\n\n      var _newStyle = color_edit_objectSpread({}, (_localAttributes$curr6 = localAttributes.current) === null || _localAttributes$curr6 === void 0 ? void 0 : _localAttributes$curr6.style, {\n        color: color_edit_objectSpread({}, (_localAttributes$curr7 = localAttributes.current) === null || _localAttributes$curr7 === void 0 ? void 0 : (_localAttributes$curr8 = _localAttributes$curr7.style) === null || _localAttributes$curr8 === void 0 ? void 0 : _localAttributes$curr8.color, {\n          gradient: value\n        })\n      });\n\n      newAttributes = {\n        style: color_edit_cleanEmptyObject(_newStyle),\n        gradient: undefined\n      };\n    }\n\n    props.setAttributes(newAttributes);\n    localAttributes.current = color_edit_objectSpread({}, localAttributes.current, {}, newAttributes);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(ColorPanel, {\n    enableContrastChecking: !gradient && !(style === null || style === void 0 ? void 0 : (_style$color2 = style.color) === null || _style$color2 === void 0 ? void 0 : _style$color2.gradient),\n    clientId: props.clientId,\n    settings: [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Text Color'),\n      onColorChange: onChangeColor('text'),\n      colorValue: Object(external_this_wp_blockEditor_[\"getColorObjectByAttributeValues\"])(colors, textColor, style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.text).color\n    }, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Background Color'),\n      onColorChange: onChangeColor('background'),\n      colorValue: Object(external_this_wp_blockEditor_[\"getColorObjectByAttributeValues\"])(colors, backgroundColor, style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.background).color,\n      gradientValue: gradientValue,\n      onGradientChange: onChangeGradient\n    }]\n  });\n}\n\n/* harmony default export */ var color_edit = (ColorEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/color-props.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n // The code in this file is copied entirely from the \"color\" and \"style\" support flags\n// The flag can't be used at the moment because of the extra wrapper around\n// the button block markup.\n\nfunction getColorAndStyleProps(attributes) {\n  var _style$color, _style$color2, _style$color3, _style$color4, _classnames, _style$color5, _style$color6, _style$color7, _style$color8, _style$color9, _style$color10;\n\n  // I'd have prefered to avoid the \"style\" attribute usage here\n  var backgroundColor = attributes.backgroundColor,\n      textColor = attributes.textColor,\n      gradient = attributes.gradient,\n      style = attributes.style;\n  var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n\n  var gradientClass = Object(external_this_wp_blockEditor_[\"__experimentalGetGradientClass\"])(gradient);\n\n  var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n  var className = classnames_default()(textClass, gradientClass, (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, !(style === null || style === void 0 ? void 0 : (_style$color = style.color) === null || _style$color === void 0 ? void 0 : _style$color.gradient) && !!backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-text-color', textColor || (style === null || style === void 0 ? void 0 : (_style$color2 = style.color) === null || _style$color2 === void 0 ? void 0 : _style$color2.text)), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-background', backgroundColor || (style === null || style === void 0 ? void 0 : (_style$color3 = style.color) === null || _style$color3 === void 0 ? void 0 : _style$color3.background) || gradient || (style === null || style === void 0 ? void 0 : (_style$color4 = style.color) === null || _style$color4 === void 0 ? void 0 : _style$color4.gradient)), _classnames));\n  var styleProp = (style === null || style === void 0 ? void 0 : (_style$color5 = style.color) === null || _style$color5 === void 0 ? void 0 : _style$color5.background) || (style === null || style === void 0 ? void 0 : (_style$color6 = style.color) === null || _style$color6 === void 0 ? void 0 : _style$color6.text) || (style === null || style === void 0 ? void 0 : (_style$color7 = style.color) === null || _style$color7 === void 0 ? void 0 : _style$color7.gradient) ? {\n    background: (style === null || style === void 0 ? void 0 : (_style$color8 = style.color) === null || _style$color8 === void 0 ? void 0 : _style$color8.gradient) ? style.color.gradient : undefined,\n    backgroundColor: (style === null || style === void 0 ? void 0 : (_style$color9 = style.color) === null || _style$color9 === void 0 ? void 0 : _style$color9.background) ? style.color.background : undefined,\n    color: (style === null || style === void 0 ? void 0 : (_style$color10 = style.color) === null || _style$color10 === void 0 ? void 0 : _style$color10.text) ? style.color.text : undefined\n  } : {};\n  return {\n    className: !!className ? className : undefined,\n    style: styleProp\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/edit.js\n\n\n\n\nfunction button_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction button_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { button_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { button_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar edit_NEW_TAB_REL = 'noreferrer noopener';\nvar MIN_BORDER_RADIUS_VALUE = 0;\nvar MAX_BORDER_RADIUS_VALUE = 50;\nvar INITIAL_BORDER_RADIUS_POSITION = 5;\n\nfunction BorderPanel(_ref) {\n  var _ref$borderRadius = _ref.borderRadius,\n      borderRadius = _ref$borderRadius === void 0 ? '' : _ref$borderRadius,\n      setAttributes = _ref.setAttributes;\n  var initialBorderRadius = borderRadius;\n  var setBorderRadius = Object(external_this_wp_element_[\"useCallback\"])(function (newBorderRadius) {\n    if (newBorderRadius === undefined) setAttributes({\n      borderRadius: initialBorderRadius\n    });else setAttributes({\n      borderRadius: newBorderRadius\n    });\n  }, [setAttributes]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Border settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    value: borderRadius,\n    label: Object(external_this_wp_i18n_[\"__\"])('Border radius'),\n    min: MIN_BORDER_RADIUS_VALUE,\n    max: MAX_BORDER_RADIUS_VALUE,\n    initialPosition: INITIAL_BORDER_RADIUS_POSITION,\n    allowReset: true,\n    onChange: setBorderRadius\n  }));\n}\n\nfunction URLPicker(_ref2) {\n  var _ref4;\n\n  var isSelected = _ref2.isSelected,\n      url = _ref2.url,\n      setAttributes = _ref2.setAttributes,\n      opensInNewTab = _ref2.opensInNewTab,\n      onToggleOpenInNewTab = _ref2.onToggleOpenInNewTab;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isURLPickerOpen = _useState2[0],\n      setIsURLPickerOpen = _useState2[1];\n\n  var urlIsSet = !!url;\n  var urlIsSetandSelected = urlIsSet && isSelected;\n\n  var openLinkControl = function openLinkControl() {\n    setIsURLPickerOpen(true);\n    return false; // prevents default behaviour for event\n  };\n\n  var unlinkButton = function unlinkButton() {\n    setAttributes({\n      url: undefined,\n      linkTarget: undefined,\n      rel: undefined\n    });\n    setIsURLPickerOpen(false);\n  };\n\n  var linkControl = (isURLPickerOpen || urlIsSetandSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    position: \"bottom center\",\n    onClose: function onClose() {\n      return setIsURLPickerOpen(false);\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalLinkControl\"], {\n    className: \"wp-block-navigation-link__inline-link-input\",\n    value: {\n      url: url,\n      opensInNewTab: opensInNewTab\n    },\n    onChange: function onChange(_ref3) {\n      var _ref3$url = _ref3.url,\n          newURL = _ref3$url === void 0 ? '' : _ref3$url,\n          newOpensInNewTab = _ref3.opensInNewTab;\n      setAttributes({\n        url: newURL\n      });\n\n      if (opensInNewTab !== newOpensInNewTab) {\n        onToggleOpenInNewTab(newOpensInNewTab);\n      }\n    }\n  }));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, !urlIsSet && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    name: \"link\",\n    icon: library_link[\"a\" /* default */],\n    title: Object(external_this_wp_i18n_[\"__\"])('Link'),\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primary('k'),\n    onClick: openLinkControl\n  }), urlIsSetandSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    name: \"link\",\n    icon: link_off[\"a\" /* default */],\n    title: Object(external_this_wp_i18n_[\"__\"])('Unlink'),\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primaryShift('k'),\n    onClick: unlinkButton,\n    isActive: true\n  }))), isSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"KeyboardShortcuts\"], {\n    bindGlobal: true,\n    shortcuts: (_ref4 = {}, Object(defineProperty[\"a\" /* default */])(_ref4, external_this_wp_keycodes_[\"rawShortcut\"].primary('k'), openLinkControl), Object(defineProperty[\"a\" /* default */])(_ref4, external_this_wp_keycodes_[\"rawShortcut\"].primaryShift('k'), unlinkButton), _ref4)\n  }), linkControl);\n}\n\nfunction ButtonEdit(props) {\n  var attributes = props.attributes,\n      setAttributes = props.setAttributes,\n      className = props.className,\n      isSelected = props.isSelected,\n      onReplace = props.onReplace,\n      mergeBlocks = props.mergeBlocks;\n  var borderRadius = attributes.borderRadius,\n      linkTarget = attributes.linkTarget,\n      placeholder = attributes.placeholder,\n      rel = attributes.rel,\n      text = attributes.text,\n      url = attributes.url;\n  var onSetLinkRel = Object(external_this_wp_element_[\"useCallback\"])(function (value) {\n    setAttributes({\n      rel: value\n    });\n  }, [setAttributes]);\n  var onToggleOpenInNewTab = Object(external_this_wp_element_[\"useCallback\"])(function (value) {\n    var newLinkTarget = value ? '_blank' : undefined;\n    var updatedRel = rel;\n\n    if (newLinkTarget && !rel) {\n      updatedRel = edit_NEW_TAB_REL;\n    } else if (!newLinkTarget && rel === edit_NEW_TAB_REL) {\n      updatedRel = undefined;\n    }\n\n    setAttributes({\n      linkTarget: newLinkTarget,\n      rel: updatedRel\n    });\n  }, [rel, setAttributes]);\n  var colorProps = getColorAndStyleProps(attributes);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(color_edit, props), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    placeholder: placeholder || Object(external_this_wp_i18n_[\"__\"])('Add text…'),\n    value: text,\n    onChange: function onChange(value) {\n      return setAttributes({\n        text: value\n      });\n    },\n    withoutInteractiveFormatting: true,\n    className: classnames_default()(className, 'wp-block-button__link', colorProps.className, {\n      'no-border-radius': borderRadius === 0\n    }),\n    style: button_edit_objectSpread({\n      borderRadius: borderRadius ? borderRadius + 'px' : undefined\n    }, colorProps.style),\n    onSplit: function onSplit(value) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/button', button_edit_objectSpread({}, attributes, {\n        text: value\n      }));\n    },\n    onReplace: onReplace,\n    onMerge: mergeBlocks,\n    identifier: \"text\"\n  })), Object(external_this_wp_element_[\"createElement\"])(URLPicker, {\n    url: url,\n    setAttributes: setAttributes,\n    isSelected: isSelected,\n    opensInNewTab: linkTarget === '_blank',\n    onToggleOpenInNewTab: onToggleOpenInNewTab\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(BorderPanel, {\n    borderRadius: borderRadius,\n    setAttributes: setAttributes\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Link settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Open in new tab'),\n    onChange: onToggleOpenInNewTab,\n    checked: linkTarget === '_blank'\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Link rel'),\n    value: rel || '',\n    onChange: onSetLinkRel\n  }))));\n}\n\n/* harmony default export */ var button_edit = (ButtonEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/save.js\n\n\n\nfunction save_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction save_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { save_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { save_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction button_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var borderRadius = attributes.borderRadius,\n      linkTarget = attributes.linkTarget,\n      rel = attributes.rel,\n      text = attributes.text,\n      title = attributes.title,\n      url = attributes.url;\n  var colorProps = getColorAndStyleProps(attributes);\n  var buttonClasses = classnames_default()('wp-block-button__link', colorProps.className, {\n    'no-border-radius': borderRadius === 0\n  });\n\n  var buttonStyle = save_objectSpread({\n    borderRadius: borderRadius ? borderRadius + 'px' : undefined\n  }, colorProps.style); // The use of a `title` attribute here is soft-deprecated, but still applied\n  // if it had already been assigned, for the sake of backward-compatibility.\n  // A title will no longer be assigned for new or updated button block links.\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"a\",\n    className: buttonClasses,\n    href: url,\n    title: title,\n    style: buttonStyle,\n    value: text,\n    target: linkTarget,\n    rel: rel\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/button/index.js\n\n\nfunction button_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction button_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { button_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { button_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar button_metadata = {\n  name: \"core/button\",\n  category: \"design\",\n  parent: [\"core/buttons\"],\n  attributes: {\n    url: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a\",\n      attribute: \"href\"\n    },\n    title: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a\",\n      attribute: \"title\"\n    },\n    text: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"a\"\n    },\n    linkTarget: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a\",\n      attribute: \"target\"\n    },\n    rel: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a\",\n      attribute: \"rel\"\n    },\n    placeholder: {\n      type: \"string\"\n    },\n    borderRadius: {\n      type: \"number\"\n    },\n    style: {\n      type: \"object\"\n    },\n    backgroundColor: {\n      type: \"string\"\n    },\n    textColor: {\n      type: \"string\"\n    },\n    gradient: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true,\n    alignWide: false,\n    reusable: false,\n    lightBlockWrapper: true\n  }\n};\n\nvar button_name = button_metadata.name;\n\nvar button_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Button'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Prompt visitors to take action with a button-style link.'),\n  icon: library_button,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('link')],\n  example: {\n    attributes: {\n      className: 'is-style-fill',\n      backgroundColor: 'vivid-green-cyan',\n      text: Object(external_this_wp_i18n_[\"__\"])('Call to Action')\n    }\n  },\n  styles: [{\n    name: 'fill',\n    label: Object(external_this_wp_i18n_[\"__\"])('Fill'),\n    isDefault: true\n  }, {\n    name: 'outline',\n    label: Object(external_this_wp_i18n_[\"__\"])('Outline')\n  }],\n  edit: button_edit,\n  save: button_save_save,\n  deprecated: button_deprecated,\n  merge: function merge(a, _ref) {\n    var _ref$text = _ref.text,\n        text = _ref$text === void 0 ? '' : _ref$text;\n    return button_objectSpread({}, a, {\n      text: (a.text || '') + text\n    });\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar ALLOWED_BLOCKS = [button_name];\nvar BUTTONS_TEMPLATE = [['core/button']]; // Inside buttons block alignment options are not supported.\n\nvar alignmentHooksSetting = {\n  isEmbedButton: true\n};\n\nfunction ButtonsEdit() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalAlignmentHookSettingsProvider\"], {\n    value: alignmentHooksSetting\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    allowedBlocks: ALLOWED_BLOCKS,\n    template: BUTTONS_TEMPLATE,\n    orientation: \"horizontal\"\n  })));\n}\n\n/* harmony default export */ var buttons_edit = (ButtonsEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction buttons_save_save() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/buttons/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar buttons_metadata = {\n  name: \"core/buttons\",\n  category: \"design\",\n  supports: {\n    anchor: true,\n    align: true,\n    alignWide: false,\n    lightBlockWrapper: true\n  }\n};\n\nvar buttons_name = buttons_metadata.name;\n\nvar buttons_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Buttons'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Prompt visitors to take action with a group of button-style links.'),\n  icon: library_button,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('link')],\n  transforms: buttons_transforms,\n  edit: buttons_edit,\n  save: buttons_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/calendar.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar calendar = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z\"\n}));\n/* harmony default export */ var library_calendar = (calendar);\n\n// EXTERNAL MODULE: external {\"this\":\"moment\"}\nvar external_this_moment_ = __webpack_require__(43);\nvar external_this_moment_default = /*#__PURE__*/__webpack_require__.n(external_this_moment_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/edit.js\n\n\n\n\n\n\n\n\n\nfunction calendar_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction calendar_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { calendar_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { calendar_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction calendar_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (calendar_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction calendar_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar edit_CalendarEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(CalendarEdit, _Component);\n\n  var _super = calendar_edit_createSuper(CalendarEdit);\n\n  function CalendarEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, CalendarEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.getYearMonth = memize_default()(_this.getYearMonth.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), {\n      maxSize: 1\n    });\n    _this.getServerSideAttributes = memize_default()(_this.getServerSideAttributes.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), {\n      maxSize: 1\n    });\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(CalendarEdit, [{\n    key: \"getYearMonth\",\n    value: function getYearMonth(date) {\n      if (!date) {\n        return {};\n      }\n\n      var momentDate = external_this_moment_default()(date);\n      return {\n        year: momentDate.year(),\n        month: momentDate.month() + 1\n      };\n    }\n  }, {\n    key: \"getServerSideAttributes\",\n    value: function getServerSideAttributes(attributes, date) {\n      return calendar_edit_objectSpread({}, attributes, {}, this.getYearMonth(date));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_serverSideRender_default.a, {\n        block: \"core/calendar\",\n        attributes: this.getServerSideAttributes(this.props.attributes, this.props.date)\n      }));\n    }\n  }]);\n\n  return CalendarEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var calendar_edit = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var coreEditorSelect = select('core/editor');\n\n  if (!coreEditorSelect) {\n    return;\n  }\n\n  var getEditedPostAttribute = coreEditorSelect.getEditedPostAttribute;\n  var postType = getEditedPostAttribute('type'); // Dates are used to overwrite year and month used on the calendar.\n  // This overwrite should only happen for 'post' post types.\n  // For other post types the calendar always displays the current month.\n\n  return {\n    date: postType === 'post' ? getEditedPostAttribute('date') : undefined\n  };\n})(edit_CalendarEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/calendar/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar calendar_metadata = {\n  name: \"core/calendar\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    month: {\n      type: \"integer\"\n    },\n    year: {\n      type: \"integer\"\n    }\n  },\n  supports: {\n    align: true\n  }\n};\n\nvar calendar_name = calendar_metadata.name;\n\nvar calendar_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Calendar'),\n  description: Object(external_this_wp_i18n_[\"__\"])('A calendar of your site’s posts.'),\n  icon: library_calendar,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('posts'), Object(external_this_wp_i18n_[\"__\"])('archive')],\n  example: {},\n  edit: calendar_edit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/category.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar category_category = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm.5 16c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V7h15v12zM9 10H7v2h2v-2zm0 4H7v2h2v-2zm4-4h-2v2h2v-2zm4 0h-2v2h2v-2zm-4 4h-2v2h2v-2zm4 0h-2v2h2v-2z\"\n}));\n/* harmony default export */ var library_category = (category_category);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pin.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pin = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M10.44 3.02l1.82-1.82 6.36 6.35-1.83 1.82c-1.05-.68-2.48-.57-3.41.36l-.75.75c-.92.93-1.04 2.35-.35 3.41l-1.83 1.82-2.41-2.41-2.8 2.79c-.42.42-3.38 2.71-3.8 2.29s1.86-3.39 2.28-3.81l2.79-2.79L4.1 9.36l1.83-1.82c1.05.69 2.48.57 3.4-.36l.75-.75c.93-.92 1.05-2.35.36-3.41z\"\n}));\n/* harmony default export */ var library_pin = (pin);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/edit.js\n\n\n\n\n\n\n\n\nfunction categories_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (categories_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction categories_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\nvar edit_CategoriesEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(CategoriesEdit, _Component);\n\n  var _super = categories_edit_createSuper(CategoriesEdit);\n\n  function CategoriesEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, CategoriesEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.toggleDisplayAsDropdown = _this.toggleDisplayAsDropdown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.toggleShowPostCounts = _this.toggleShowPostCounts.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.toggleShowHierarchy = _this.toggleShowHierarchy.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(CategoriesEdit, [{\n    key: \"toggleDisplayAsDropdown\",\n    value: function toggleDisplayAsDropdown() {\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          setAttributes = _this$props.setAttributes;\n      var displayAsDropdown = attributes.displayAsDropdown;\n      setAttributes({\n        displayAsDropdown: !displayAsDropdown\n      });\n    }\n  }, {\n    key: \"toggleShowPostCounts\",\n    value: function toggleShowPostCounts() {\n      var _this$props2 = this.props,\n          attributes = _this$props2.attributes,\n          setAttributes = _this$props2.setAttributes;\n      var showPostCounts = attributes.showPostCounts;\n      setAttributes({\n        showPostCounts: !showPostCounts\n      });\n    }\n  }, {\n    key: \"toggleShowHierarchy\",\n    value: function toggleShowHierarchy() {\n      var _this$props3 = this.props,\n          attributes = _this$props3.attributes,\n          setAttributes = _this$props3.setAttributes;\n      var showHierarchy = attributes.showHierarchy;\n      setAttributes({\n        showHierarchy: !showHierarchy\n      });\n    }\n  }, {\n    key: \"getCategories\",\n    value: function getCategories() {\n      var parentId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n      var categories = this.props.categories;\n\n      if (!categories || !categories.length) {\n        return [];\n      }\n\n      if (parentId === null) {\n        return categories;\n      }\n\n      return categories.filter(function (category) {\n        return category.parent === parentId;\n      });\n    }\n  }, {\n    key: \"getCategoryListClassName\",\n    value: function getCategoryListClassName(level) {\n      return \"wp-block-categories__list wp-block-categories__list-level-\".concat(level);\n    }\n  }, {\n    key: \"renderCategoryName\",\n    value: function renderCategoryName(category) {\n      if (!category.name) {\n        return Object(external_this_wp_i18n_[\"__\"])('(Untitled)');\n      }\n\n      return Object(external_this_lodash_[\"unescape\"])(category.name).trim();\n    }\n  }, {\n    key: \"renderCategoryList\",\n    value: function renderCategoryList() {\n      var _this2 = this;\n\n      var showHierarchy = this.props.attributes.showHierarchy;\n      var parentId = showHierarchy ? 0 : null;\n      var categories = this.getCategories(parentId);\n      return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n        className: this.getCategoryListClassName(0)\n      }, categories.map(function (category) {\n        return _this2.renderCategoryListItem(category, 0);\n      }));\n    }\n  }, {\n    key: \"renderCategoryListItem\",\n    value: function renderCategoryListItem(category, level) {\n      var _this3 = this;\n\n      var _this$props$attribute = this.props.attributes,\n          showHierarchy = _this$props$attribute.showHierarchy,\n          showPostCounts = _this$props$attribute.showPostCounts;\n      var childCategories = this.getCategories(category.id);\n      return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n        key: category.id\n      }, Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: category.link,\n        target: \"_blank\",\n        rel: \"noreferrer noopener\"\n      }, this.renderCategoryName(category)), showPostCounts && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        className: \"wp-block-categories__post-count\"\n      }, ' ', \"(\", category.count, \")\"), showHierarchy && !!childCategories.length && Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n        className: this.getCategoryListClassName(level + 1)\n      }, childCategories.map(function (childCategory) {\n        return _this3.renderCategoryListItem(childCategory, level + 1);\n      })));\n    }\n  }, {\n    key: \"renderCategoryDropdown\",\n    value: function renderCategoryDropdown() {\n      var _this4 = this;\n\n      var instanceId = this.props.instanceId;\n      var showHierarchy = this.props.attributes.showHierarchy;\n      var parentId = showHierarchy ? 0 : null;\n      var categories = this.getCategories(parentId);\n      var selectId = \"blocks-category-select-\".concat(instanceId);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"label\",\n        htmlFor: selectId\n      }, Object(external_this_wp_i18n_[\"__\"])('Categories')), Object(external_this_wp_element_[\"createElement\"])(\"select\", {\n        id: selectId,\n        className: \"wp-block-categories__dropdown\"\n      }, categories.map(function (category) {\n        return _this4.renderCategoryDropdownItem(category, 0);\n      })));\n    }\n  }, {\n    key: \"renderCategoryDropdownItem\",\n    value: function renderCategoryDropdownItem(category, level) {\n      var _this5 = this;\n\n      var _this$props$attribute2 = this.props.attributes,\n          showHierarchy = _this$props$attribute2.showHierarchy,\n          showPostCounts = _this$props$attribute2.showPostCounts;\n      var childCategories = this.getCategories(category.id);\n      return [Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        key: category.id\n      }, Object(external_this_lodash_[\"times\"])(level * 3, function () {\n        return '\\xa0';\n      }), this.renderCategoryName(category), !!showPostCounts ? \" (\".concat(category.count, \")\") : ''), showHierarchy && !!childCategories.length && childCategories.map(function (childCategory) {\n        return _this5.renderCategoryDropdownItem(childCategory, level + 1);\n      })];\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          attributes = _this$props4.attributes,\n          isRequesting = _this$props4.isRequesting;\n      var displayAsDropdown = attributes.displayAsDropdown,\n          showHierarchy = attributes.showHierarchy,\n          showPostCounts = attributes.showPostCounts;\n      var inspectorControls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Categories settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display as dropdown'),\n        checked: displayAsDropdown,\n        onChange: this.toggleDisplayAsDropdown\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Show hierarchy'),\n        checked: showHierarchy,\n        onChange: this.toggleShowHierarchy\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Show post counts'),\n        checked: showPostCounts,\n        onChange: this.toggleShowPostCounts\n      })));\n\n      if (isRequesting) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, inspectorControls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n          icon: library_pin,\n          label: Object(external_this_wp_i18n_[\"__\"])('Categories')\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null)));\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, inspectorControls, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: this.props.className\n      }, displayAsDropdown ? this.renderCategoryDropdown() : this.renderCategoryList()));\n    }\n  }]);\n\n  return CategoriesEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var categories_edit = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core'),\n      getEntityRecords = _select.getEntityRecords;\n\n  var _select2 = select('core/data'),\n      isResolving = _select2.isResolving;\n\n  var query = {\n    per_page: -1,\n    hide_empty: true\n  };\n  return {\n    categories: getEntityRecords('taxonomy', 'category', query),\n    isRequesting: isResolving('core', 'getEntityRecords', ['taxonomy', 'category', query])\n  };\n}), external_this_wp_compose_[\"withInstanceId\"])(edit_CategoriesEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/categories/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar categories_metadata = {\n  name: \"core/categories\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    displayAsDropdown: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    showHierarchy: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    showPostCounts: {\n      type: \"boolean\",\n      \"default\": false\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\n\nvar categories_name = categories_metadata.name;\n\nvar categories_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Categories'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display a list of all categories.'),\n  icon: library_category,\n  example: {},\n  edit: categories_edit\n};\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js\nvar code = __webpack_require__(297);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction CodeEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].pre, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PlainText\"], {\n    __experimentalVersion: 2,\n    tagName: \"code\",\n    value: attributes.content,\n    onChange: function onChange(content) {\n      return setAttributes({\n        content: content\n      });\n    },\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write code…'),\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Code')\n  }));\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"escapeHtml\"]}\nvar external_this_wp_escapeHtml_ = __webpack_require__(79);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/utils.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Escapes ampersands, shortcodes, and links.\n *\n * @param {string} content The content of a code block.\n * @return {string} The given content with some characters escaped.\n */\n\nfunction utils_escape(content) {\n  return Object(external_this_lodash_[\"flow\"])(external_this_wp_escapeHtml_[\"escapeEditableHTML\"], escapeOpeningSquareBrackets, escapeProtocolInIsolatedUrls)(content || '');\n}\n/**\n * Returns the given content with all opening shortcode characters converted\n * into their HTML entity counterpart (i.e. [ => &#91;). For instance, a\n * shortcode like [embed] becomes &#91;embed]\n *\n * This function replicates the escaping of HTML tags, where a tag like\n * <strong> becomes &lt;strong>.\n *\n * @param {string}  content The content of a code block.\n * @return {string} The given content with its opening shortcode characters\n *                  converted into their HTML entity counterpart\n *                  (i.e. [ => &#91;)\n */\n\nfunction escapeOpeningSquareBrackets(content) {\n  return content.replace(/\\[/g, '&#91;');\n}\n/**\n * Converts the first two forward slashes of any isolated URL into their HTML\n * counterparts (i.e. // => &#47;&#47;). For instance, https://youtube.com/watch?x\n * becomes https:&#47;&#47;youtube.com/watch?x.\n *\n * An isolated URL is a URL that sits in its own line, surrounded only by spacing\n * characters.\n *\n * See https://github.com/WordPress/wordpress-develop/blob/5.1.1/src/wp-includes/class-wp-embed.php#L403\n *\n * @param {string}  content The content of a code block.\n * @return {string} The given content with its ampersands converted into\n *                  their HTML entity counterpart (i.e. & => &amp;)\n */\n\n\nfunction escapeProtocolInIsolatedUrls(content) {\n  return content.replace(/^(\\s*https?:)\\/\\/([^\\s<>\"]+\\s*)$/m, '$1&#47;&#47;$2');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/save.js\n\n\n/**\n * Internal dependencies\n */\n\nfunction code_save_save(_ref) {\n  var attributes = _ref.attributes;\n  return Object(external_this_wp_element_[\"createElement\"])(\"pre\", null, Object(external_this_wp_element_[\"createElement\"])(\"code\", null, utils_escape(attributes.content)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar code_transforms_transforms = {\n  from: [{\n    type: 'enter',\n    regExp: /^```$/,\n    transform: function transform() {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/code');\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/html'],\n    transform: function transform(_ref) {\n      var content = _ref.content;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/code', {\n        content: content\n      });\n    }\n  }, {\n    type: 'raw',\n    isMatch: function isMatch(node) {\n      return node.nodeName === 'PRE' && node.children.length === 1 && node.firstChild.nodeName === 'CODE';\n    },\n    schema: {\n      pre: {\n        children: {\n          code: {\n            children: {\n              '#text': {}\n            }\n          }\n        }\n      }\n    }\n  }]\n};\n/* harmony default export */ var code_transforms = (code_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/code/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar code_metadata = {\n  name: \"core/code\",\n  category: \"text\",\n  attributes: {\n    content: {\n      type: \"string\",\n      source: \"text\",\n      selector: \"code\"\n    }\n  },\n  supports: {\n    anchor: true,\n    html: false,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar code_name = code_metadata.name;\n\nvar code_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Code'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display code snippets that respect your spacing and tabs.'),\n  icon: code[\"a\" /* default */],\n  example: {\n    attributes: {\n      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n      // translators: Preserve \\n markers for line breaks\n      content: Object(external_this_wp_i18n_[\"__\"])('// A \"block\" is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );')\n      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\n    }\n  },\n  transforms: code_transforms,\n  edit: CodeEdit,\n  save: code_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/columns.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar columns_columns = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-4.1 1.5v10H10v-10h4.9zM5.5 17V8c0-.3.2-.5.5-.5h2.5v10H6c-.3 0-.5-.2-.5-.5zm14 0c0 .3-.2.5-.5.5h-2.6v-10H19c.3 0 .5.2.5.5v9z\"\n}));\n/* harmony default export */ var library_columns = (columns_columns);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/deprecated.js\n\n\n\nfunction columns_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction columns_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { columns_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { columns_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Given an HTML string for a deprecated columns inner block, returns the\n * column index to which the migrated inner block should be assigned. Returns\n * undefined if the inner block was not assigned to a column.\n *\n * @param {string} originalContent Deprecated Columns inner block HTML.\n *\n * @return {?number} Column to which inner block is to be assigned.\n */\n\nfunction getDeprecatedLayoutColumn(originalContent) {\n  var doc = getDeprecatedLayoutColumn.doc;\n\n  if (!doc) {\n    doc = document.implementation.createHTMLDocument('');\n    getDeprecatedLayoutColumn.doc = doc;\n  }\n\n  var columnMatch;\n  doc.body.innerHTML = originalContent;\n\n  var _iterator = _createForOfIteratorHelper(doc.body.firstChild.classList),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var classListItem = _step.value;\n\n      if (columnMatch = classListItem.match(/^layout-column-(\\d+)$/)) {\n        return Number(columnMatch[1]) - 1;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n}\n\nvar columns_deprecated_migrateCustomColors = function migrateCustomColors(attributes) {\n  if (!attributes.customTextColor && !attributes.customBackgroundColor) {\n    return attributes;\n  }\n\n  var style = {\n    color: {}\n  };\n\n  if (attributes.customTextColor) {\n    style.color.text = attributes.customTextColor;\n  }\n\n  if (attributes.customBackgroundColor) {\n    style.color.background = attributes.customBackgroundColor;\n  }\n\n  return columns_deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customTextColor', 'customBackgroundColor']), {\n    style: style\n  });\n};\n\n/* harmony default export */ var columns_deprecated = ([{\n  attributes: {\n    verticalAlignment: {\n      type: 'string'\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    }\n  },\n  migrate: columns_deprecated_migrateCustomColors,\n  save: function save(_ref) {\n    var _classnames;\n\n    var attributes = _ref.attributes;\n    var verticalAlignment = attributes.verticalAlignment,\n        backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor;\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()((_classnames = {\n      'has-background': backgroundColor || customBackgroundColor,\n      'has-text-color': textColor || customTextColor\n    }, Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, textClass, textClass), Object(defineProperty[\"a\" /* default */])(_classnames, \"are-vertically-aligned-\".concat(verticalAlignment), verticalAlignment), _classnames));\n    var style = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className ? className : undefined,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n  }\n}, {\n  attributes: {\n    columns: {\n      type: 'number',\n      default: 2\n    }\n  },\n  isEligible: function isEligible(attributes, innerBlocks) {\n    // Since isEligible is called on every valid instance of the\n    // Columns block and a deprecation is the unlikely case due to\n    // its subsequent migration, optimize for the `false` condition\n    // by performing a naive, inaccurate pass at inner blocks.\n    var isFastPassEligible = innerBlocks.some(function (innerBlock) {\n      return /layout-column-\\d+/.test(innerBlock.originalContent);\n    });\n\n    if (!isFastPassEligible) {\n      return false;\n    } // Only if the fast pass is considered eligible is the more\n    // accurate, durable, slower condition performed.\n\n\n    return innerBlocks.some(function (innerBlock) {\n      return getDeprecatedLayoutColumn(innerBlock.originalContent) !== undefined;\n    });\n  },\n  migrate: function migrate(attributes, innerBlocks) {\n    var columns = innerBlocks.reduce(function (accumulator, innerBlock) {\n      var originalContent = innerBlock.originalContent;\n      var columnIndex = getDeprecatedLayoutColumn(originalContent);\n\n      if (columnIndex === undefined) {\n        columnIndex = 0;\n      }\n\n      if (!accumulator[columnIndex]) {\n        accumulator[columnIndex] = [];\n      }\n\n      accumulator[columnIndex].push(innerBlock);\n      return accumulator;\n    }, []);\n    var migratedInnerBlocks = columns.map(function (columnBlocks) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/column', {}, columnBlocks);\n    });\n    return [Object(external_this_lodash_[\"omit\"])(attributes, ['columns']), migratedInnerBlocks];\n  },\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var columns = attributes.columns;\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"has-\".concat(columns, \"-columns\")\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n  }\n}, {\n  attributes: {\n    columns: {\n      type: 'number',\n      default: 2\n    }\n  },\n  migrate: function migrate(attributes, innerBlocks) {\n    attributes = Object(external_this_lodash_[\"omit\"])(attributes, ['columns']);\n    return [attributes, innerBlocks];\n  },\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var verticalAlignment = attributes.verticalAlignment,\n        columns = attributes.columns;\n    var wrapperClasses = classnames_default()(\"has-\".concat(columns, \"-columns\"), Object(defineProperty[\"a\" /* default */])({}, \"are-vertically-aligned-\".concat(verticalAlignment), verticalAlignment));\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: wrapperClasses\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n  }\n}]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/utils.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * Returns a column width attribute value rounded to standard precision.\n * Returns `undefined` if the value is not a valid finite number.\n *\n * @param {?number} value Raw value.\n *\n * @return {number} Value rounded to standard precision.\n */\n\nvar toWidthPrecision = function toWidthPrecision(value) {\n  return Number.isFinite(value) ? parseFloat(value.toFixed(2)) : undefined;\n};\n/**\n * Returns an effective width for a given block. An effective width is equal to\n * its attribute value if set, or a computed value assuming equal distribution.\n *\n * @param {WPBlock} block           Block object.\n * @param {number}  totalBlockCount Total number of blocks in Columns.\n *\n * @return {number} Effective column width.\n */\n\nfunction getEffectiveColumnWidth(block, totalBlockCount) {\n  var _block$attributes$wid = block.attributes.width,\n      width = _block$attributes$wid === void 0 ? 100 / totalBlockCount : _block$attributes$wid;\n  return toWidthPrecision(width);\n}\n/**\n * Returns the total width occupied by the given set of column blocks.\n *\n * @param {WPBlock[]} blocks          Block objects.\n * @param {?number}   totalBlockCount Total number of blocks in Columns.\n *                                    Defaults to number of blocks passed.\n *\n * @return {number} Total width occupied by blocks.\n */\n\nfunction getTotalColumnsWidth(blocks) {\n  var totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;\n  return Object(external_this_lodash_[\"sumBy\"])(blocks, function (block) {\n    return getEffectiveColumnWidth(block, totalBlockCount);\n  });\n}\n/**\n * Returns an object of `clientId` → `width` of effective column widths.\n *\n * @param {WPBlock[]} blocks          Block objects.\n * @param {?number}   totalBlockCount Total number of blocks in Columns.\n *                                    Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Column widths.\n */\n\nfunction getColumnWidths(blocks) {\n  var totalBlockCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : blocks.length;\n  return blocks.reduce(function (accumulator, block) {\n    var width = getEffectiveColumnWidth(block, totalBlockCount);\n    return Object.assign(accumulator, Object(defineProperty[\"a\" /* default */])({}, block.clientId, width));\n  }, {});\n}\n/**\n * Returns an object of `clientId` → `width` of column widths as redistributed\n * proportional to their current widths, constrained or expanded to fit within\n * the given available width.\n *\n * @param {WPBlock[]} blocks          Block objects.\n * @param {number}    availableWidth  Maximum width to fit within.\n * @param {?number}   totalBlockCount Total number of blocks in Columns.\n *                                    Defaults to number of blocks passed.\n *\n * @return {Object<string,number>} Redistributed column widths.\n */\n\nfunction getRedistributedColumnWidths(blocks, availableWidth) {\n  var totalBlockCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : blocks.length;\n  var totalWidth = getTotalColumnsWidth(blocks, totalBlockCount);\n  var difference = availableWidth - totalWidth;\n  var adjustment = difference / blocks.length;\n  return Object(external_this_lodash_[\"mapValues\"])(getColumnWidths(blocks, totalBlockCount), function (width) {\n    return toWidthPrecision(width + adjustment);\n  });\n}\n/**\n * Returns true if column blocks within the provided set are assigned with\n * explicit widths, or false otherwise.\n *\n * @param {WPBlock[]} blocks Block objects.\n *\n * @return {boolean} Whether columns have explicit widths.\n */\n\nfunction hasExplicitColumnWidths(blocks) {\n  return blocks.every(function (block) {\n    return Number.isFinite(block.attributes.width);\n  });\n}\n/**\n * Returns a copy of the given set of blocks with new widths assigned from the\n * provided object of redistributed column widths.\n *\n * @param {WPBlock[]}             blocks Block objects.\n * @param {Object<string,number>} widths Redistributed column widths.\n *\n * @return {WPBlock[]} blocks Mapped block objects.\n */\n\nfunction getMappedColumnWidths(blocks, widths) {\n  return blocks.map(function (block) {\n    return Object(external_this_lodash_[\"merge\"])({}, block, {\n      attributes: {\n        width: widths[block.clientId]\n      }\n    });\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/edit.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n */\n\nvar edit_ALLOWED_BLOCKS = ['core/column'];\n\nfunction ColumnsEditContainer(_ref) {\n  var attributes = _ref.attributes,\n      updateAlignment = _ref.updateAlignment,\n      updateColumns = _ref.updateColumns,\n      clientId = _ref.clientId;\n  var verticalAlignment = attributes.verticalAlignment;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      count: select('core/block-editor').getBlockCount(clientId)\n    };\n  }, [clientId]),\n      count = _useSelect.count;\n\n  var classes = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"are-vertically-aligned-\".concat(verticalAlignment), verticalAlignment));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockVerticalAlignmentToolbar\"], {\n    onChange: updateAlignment,\n    value: verticalAlignment\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n    value: count,\n    onChange: function onChange(value) {\n      return updateColumns(count, value);\n    },\n    min: 2,\n    max: Math.max(6, count)\n  }), count > 6 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n    status: \"warning\",\n    isDismissible: false\n  }, Object(external_this_wp_i18n_[\"__\"])('This column count exceeds the recommended amount and may cause visual breakage.')))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    allowedBlocks: edit_ALLOWED_BLOCKS,\n    orientation: \"horizontal\",\n    __experimentalTagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].div,\n    __experimentalPassedProps: {\n      className: classes\n    },\n    renderAppender: false\n  }));\n}\n\nvar ColumnsEditContainerWrapper = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps, registry) {\n  return {\n    /**\n     * Update all child Column blocks with a new vertical alignment setting\n     * based on whatever alignment is passed in. This allows change to parent\n     * to overide anything set on a individual column basis.\n     *\n     * @param {string} verticalAlignment the vertical alignment setting\n     */\n    updateAlignment: function updateAlignment(verticalAlignment) {\n      var clientId = ownProps.clientId,\n          setAttributes = ownProps.setAttributes;\n\n      var _dispatch = dispatch('core/block-editor'),\n          updateBlockAttributes = _dispatch.updateBlockAttributes;\n\n      var _registry$select = registry.select('core/block-editor'),\n          getBlockOrder = _registry$select.getBlockOrder; // Update own alignment.\n\n\n      setAttributes({\n        verticalAlignment: verticalAlignment\n      }); // Update all child Column Blocks to match\n\n      var innerBlockClientIds = getBlockOrder(clientId);\n      innerBlockClientIds.forEach(function (innerBlockClientId) {\n        updateBlockAttributes(innerBlockClientId, {\n          verticalAlignment: verticalAlignment\n        });\n      });\n    },\n\n    /**\n     * Updates the column count, including necessary revisions to child Column\n     * blocks to grant required or redistribute available space.\n     *\n     * @param {number} previousColumns Previous column count.\n     * @param {number} newColumns      New column count.\n     */\n    updateColumns: function updateColumns(previousColumns, newColumns) {\n      var clientId = ownProps.clientId;\n\n      var _dispatch2 = dispatch('core/block-editor'),\n          replaceInnerBlocks = _dispatch2.replaceInnerBlocks;\n\n      var _registry$select2 = registry.select('core/block-editor'),\n          getBlocks = _registry$select2.getBlocks;\n\n      var innerBlocks = getBlocks(clientId);\n      var hasExplicitWidths = hasExplicitColumnWidths(innerBlocks); // Redistribute available width for existing inner blocks.\n\n      var isAddingColumn = newColumns > previousColumns;\n\n      if (isAddingColumn && hasExplicitWidths) {\n        // If adding a new column, assign width to the new column equal to\n        // as if it were `1 / columns` of the total available space.\n        var newColumnWidth = toWidthPrecision(100 / newColumns); // Redistribute in consideration of pending block insertion as\n        // constraining the available working width.\n\n        var widths = getRedistributedColumnWidths(innerBlocks, 100 - newColumnWidth);\n        innerBlocks = [].concat(Object(toConsumableArray[\"a\" /* default */])(getMappedColumnWidths(innerBlocks, widths)), Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"times\"])(newColumns - previousColumns, function () {\n          return Object(external_this_wp_blocks_[\"createBlock\"])('core/column', {\n            width: newColumnWidth\n          });\n        })));\n      } else if (isAddingColumn) {\n        innerBlocks = [].concat(Object(toConsumableArray[\"a\" /* default */])(innerBlocks), Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"times\"])(newColumns - previousColumns, function () {\n          return Object(external_this_wp_blocks_[\"createBlock\"])('core/column');\n        })));\n      } else {\n        // The removed column will be the last of the inner blocks.\n        innerBlocks = Object(external_this_lodash_[\"dropRight\"])(innerBlocks, previousColumns - newColumns);\n\n        if (hasExplicitWidths) {\n          // Redistribute as if block is already removed.\n          var _widths = getRedistributedColumnWidths(innerBlocks, 100);\n\n          innerBlocks = getMappedColumnWidths(innerBlocks, _widths);\n        }\n      }\n\n      replaceInnerBlocks(clientId, innerBlocks, false);\n    }\n  };\n})(ColumnsEditContainer);\n\nvar edit_createBlocksFromInnerBlocksTemplate = function createBlocksFromInnerBlocksTemplate(innerBlocksTemplate) {\n  return Object(external_this_lodash_[\"map\"])(innerBlocksTemplate, function (_ref2) {\n    var _ref3 = Object(slicedToArray[\"a\" /* default */])(_ref2, 3),\n        name = _ref3[0],\n        attributes = _ref3[1],\n        _ref3$ = _ref3[2],\n        innerBlocks = _ref3$ === void 0 ? [] : _ref3$;\n\n    return Object(external_this_wp_blocks_[\"createBlock\"])(name, attributes, createBlocksFromInnerBlocksTemplate(innerBlocks));\n  });\n};\n\nvar edit_ColumnsEdit = function ColumnsEdit(props) {\n  var clientId = props.clientId,\n      name = props.name;\n\n  var _useSelect2 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/blocks'),\n        getBlockVariations = _select.getBlockVariations,\n        getBlockType = _select.getBlockType,\n        getDefaultBlockVariation = _select.getDefaultBlockVariation;\n\n    return {\n      blockType: getBlockType(name),\n      defaultVariation: getDefaultBlockVariation(name, 'block'),\n      hasInnerBlocks: select('core/block-editor').getBlocks(clientId).length > 0,\n      variations: getBlockVariations(name, 'block')\n    };\n  }, [clientId, name]),\n      blockType = _useSelect2.blockType,\n      defaultVariation = _useSelect2.defaultVariation,\n      hasInnerBlocks = _useSelect2.hasInnerBlocks,\n      variations = _useSelect2.variations;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      replaceInnerBlocks = _useDispatch.replaceInnerBlocks;\n\n  if (hasInnerBlocks) {\n    return Object(external_this_wp_element_[\"createElement\"])(ColumnsEditContainerWrapper, props);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlockVariationPicker\"], {\n    icon: Object(external_this_lodash_[\"get\"])(blockType, ['icon', 'src']),\n    label: Object(external_this_lodash_[\"get\"])(blockType, ['title']),\n    variations: variations,\n    onSelect: function onSelect() {\n      var nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;\n\n      if (nextVariation.attributes) {\n        props.setAttributes(nextVariation.attributes);\n      }\n\n      if (nextVariation.innerBlocks) {\n        replaceInnerBlocks(props.clientId, edit_createBlocksFromInnerBlocksTemplate(nextVariation.innerBlocks));\n      }\n    },\n    allowSkip: true\n  }));\n};\n\n/* harmony default export */ var columns_edit = (edit_ColumnsEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction columns_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var verticalAlignment = attributes.verticalAlignment;\n  var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"are-vertically-aligned-\".concat(verticalAlignment), verticalAlignment));\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className ? className : undefined\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/variations.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/** @typedef {import('@wordpress/blocks').WPBlockVariation} WPBlockVariation */\n\n/**\n * Template option choices for predefined columns layouts.\n *\n * @type {WPBlockVariation[]}\n */\n\nvar variations_variations = [{\n  name: 'two-columns-equal',\n  title: Object(external_this_wp_i18n_[\"__\"])('50 / 50'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Two columns; equal split'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"48\",\n    height: \"48\",\n    viewBox: \"0 0 48 48\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H25V34H39ZM23 34H9V14H23V34Z\"\n  })),\n  isDefault: true,\n  innerBlocks: [['core/column'], ['core/column']],\n  scope: ['block']\n}, {\n  name: 'two-columns-one-third-two-thirds',\n  title: Object(external_this_wp_i18n_[\"__\"])('30 / 70'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Two columns; one-third, two-thirds split'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"48\",\n    height: \"48\",\n    viewBox: \"0 0 48 48\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H20V34H39ZM18 34H9V14H18V34Z\"\n  })),\n  innerBlocks: [['core/column', {\n    width: 33.33\n  }], ['core/column', {\n    width: 66.66\n  }]],\n  scope: ['block']\n}, {\n  name: 'two-columns-two-thirds-one-third',\n  title: Object(external_this_wp_i18n_[\"__\"])('70 / 30'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Two columns; two-thirds, one-third split'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"48\",\n    height: \"48\",\n    viewBox: \"0 0 48 48\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M39 12C40.1046 12 41 12.8954 41 14V34C41 35.1046 40.1046 36 39 36H9C7.89543 36 7 35.1046 7 34V14C7 12.8954 7.89543 12 9 12H39ZM39 34V14H30V34H39ZM28 34H9V14H28V34Z\"\n  })),\n  innerBlocks: [['core/column', {\n    width: 66.66\n  }], ['core/column', {\n    width: 33.33\n  }]],\n  scope: ['block']\n}, {\n  name: 'three-columns-equal',\n  title: Object(external_this_wp_i18n_[\"__\"])('33 / 33 / 33'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Three columns; equal split'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"48\",\n    height: \"48\",\n    viewBox: \"0 0 48 48\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    fillRule: \"evenodd\",\n    d: \"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM28.5 34h-9V14h9v20zm2 0V14H39v20h-8.5zm-13 0H9V14h8.5v20z\"\n  })),\n  innerBlocks: [['core/column'], ['core/column'], ['core/column']],\n  scope: ['block']\n}, {\n  name: 'three-columns-wider-center',\n  title: Object(external_this_wp_i18n_[\"__\"])('25 / 50 / 25'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Three columns; wide center column'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    width: \"48\",\n    height: \"48\",\n    viewBox: \"0 0 48 48\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    fillRule: \"evenodd\",\n    d: \"M41 14a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h30a2 2 0 0 0 2-2V14zM31 34H17V14h14v20zm2 0V14h6v20h-6zm-18 0H9V14h6v20z\"\n  })),\n  innerBlocks: [['core/column', {\n    width: 25\n  }], ['core/column', {\n    width: 50\n  }], ['core/column', {\n    width: 25\n  }]],\n  scope: ['block']\n}];\n/* harmony default export */ var columns_variations = (variations_variations);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/columns/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar columns_metadata = {\n  name: \"core/columns\",\n  category: \"design\",\n  attributes: {\n    verticalAlignment: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: [\"wide\", \"full\"],\n    html: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      gradients: true,\n      linkColor: true\n    }\n  }\n};\n\n\nvar columns_name = columns_metadata.name;\n\nvar columns_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n  icon: library_columns,\n  description: Object(external_this_wp_i18n_[\"__\"])('Add a block that displays content in multiple columns, then add whatever content blocks you’d like.'),\n  variations: columns_variations,\n  example: {\n    innerBlocks: [{\n      name: 'core/column',\n      innerBlocks: [{\n        name: 'core/paragraph',\n        attributes: {\n          /* translators: example text. */\n          content: Object(external_this_wp_i18n_[\"__\"])('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent et eros eu felis.')\n        }\n      }, {\n        name: 'core/image',\n        attributes: {\n          url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'\n        }\n      }, {\n        name: 'core/paragraph',\n        attributes: {\n          /* translators: example text. */\n          content: Object(external_this_wp_i18n_[\"__\"])('Suspendisse commodo neque lacus, a dictum orci interdum et.')\n        }\n      }]\n    }, {\n      name: 'core/column',\n      innerBlocks: [{\n        name: 'core/paragraph',\n        attributes: {\n          /* translators: example text. */\n          content: Object(external_this_wp_i18n_[\"__\"])('Etiam et egestas lorem. Vivamus sagittis sit amet dolor quis lobortis. Integer sed fermentum arcu, id vulputate lacus. Etiam fermentum sem eu quam hendrerit.')\n        }\n      }, {\n        name: 'core/paragraph',\n        attributes: {\n          /* translators: example text. */\n          content: Object(external_this_wp_i18n_[\"__\"])('Nam risus massa, ullamcorper consectetur eros fermentum, porta aliquet ligula. Sed vel mauris nec enim.')\n        }\n      }]\n    }]\n  },\n  deprecated: columns_deprecated,\n  edit: columns_edit,\n  save: columns_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/column.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar column = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 6H6c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zM6 17.5c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h3v10H6zm13.5-.5c0 .3-.2.5-.5.5h-3v-10h3c.3 0 .5.2.5.5v9z\"\n}));\n/* harmony default export */ var library_column = (column);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction ColumnEdit(_ref) {\n  var _ref$attributes = _ref.attributes,\n      verticalAlignment = _ref$attributes.verticalAlignment,\n      width = _ref$attributes.width,\n      setAttributes = _ref.setAttributes,\n      clientId = _ref.clientId;\n  var classes = classnames_default()('block-core-columns', Object(defineProperty[\"a\" /* default */])({}, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment));\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlockOrder = _select.getBlockOrder,\n        getBlockRootClientId = _select.getBlockRootClientId;\n\n    return {\n      hasChildBlocks: getBlockOrder(clientId).length > 0,\n      rootClientId: getBlockRootClientId(clientId)\n    };\n  }, [clientId]),\n      hasChildBlocks = _useSelect.hasChildBlocks,\n      rootClientId = _useSelect.rootClientId;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      updateBlockAttributes = _useDispatch.updateBlockAttributes;\n\n  var updateAlignment = function updateAlignment(value) {\n    // Update own alignment.\n    setAttributes({\n      verticalAlignment: value\n    }); // Reset parent Columns block.\n\n    updateBlockAttributes(rootClientId, {\n      verticalAlignment: null\n    });\n  };\n\n  var hasWidth = Number.isFinite(width);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockVerticalAlignmentToolbar\"], {\n    onChange: updateAlignment,\n    value: verticalAlignment\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Column settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Percentage width'),\n    value: width || '',\n    onChange: function onChange(nextWidth) {\n      setAttributes({\n        width: nextWidth\n      });\n    },\n    min: 0,\n    max: 100,\n    step: 0.1,\n    required: true,\n    allowReset: true,\n    placeholder: width === undefined ? Object(external_this_wp_i18n_[\"__\"])('Auto') : undefined\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    templateLock: false,\n    renderAppender: hasChildBlocks ? undefined : function () {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].ButtonBlockAppender, null);\n    },\n    __experimentalTagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].div,\n    __experimentalPassedProps: {\n      className: classes,\n      style: hasWidth ? {\n        flexBasis: width + '%'\n      } : undefined\n    }\n  }));\n}\n\n/* harmony default export */ var column_edit = (ColumnEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction column_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var verticalAlignment = attributes.verticalAlignment,\n      width = attributes.width;\n  var wrapperClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment));\n  var style;\n\n  if (Number.isFinite(width)) {\n    style = {\n      flexBasis: width + '%'\n    };\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: wrapperClasses,\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/column/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar column_metadata = {\n  name: \"core/column\",\n  category: \"text\",\n  parent: [\"core/columns\"],\n  attributes: {\n    verticalAlignment: {\n      type: \"string\"\n    },\n    width: {\n      type: \"number\",\n      min: 0,\n      max: 100\n    }\n  },\n  supports: {\n    anchor: true,\n    reusable: false,\n    html: false,\n    lightBlockWrapper: true\n  }\n};\n\nvar column_name = column_metadata.name;\n\nvar column_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Column'),\n  icon: library_column,\n  description: Object(external_this_wp_i18n_[\"__\"])('A single column within a columns block.'),\n  edit: column_edit,\n  save: column_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cover.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar cover = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h6.2v8.9l2.5-3.1 2.5 3.1V4.5h2.2c.4 0 .8.4.8.8v13.4z\"\n}));\n/* harmony default export */ var library_cover = (cover);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/shared.js\n\n\nfunction shared_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction shared_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { shared_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { shared_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar POSITION_CLASSNAMES = {\n  'top left': 'is-position-top-left',\n  'top center': 'is-position-top-center',\n  'top right': 'is-position-top-right',\n  'center left': 'is-position-center-left',\n  'center center': 'is-position-center-center',\n  center: 'is-position-center-center',\n  'center right': 'is-position-center-right',\n  'bottom left': 'is-position-bottom-left',\n  'bottom center': 'is-position-bottom-center',\n  'bottom right': 'is-position-bottom-right'\n};\nvar IMAGE_BACKGROUND_TYPE = 'image';\nvar VIDEO_BACKGROUND_TYPE = 'video';\nvar COVER_MIN_HEIGHT = 50;\nfunction backgroundImageStyles(url) {\n  return url ? {\n    backgroundImage: \"url(\".concat(url, \")\")\n  } : {};\n}\nvar CSS_UNITS = [{\n  value: 'px',\n  label: 'px',\n  default: 430\n}, {\n  value: 'em',\n  label: 'em',\n  default: 20\n}, {\n  value: 'rem',\n  label: 'rem',\n  default: 20\n}, {\n  value: 'vw',\n  label: 'vw',\n  default: 20\n}, {\n  value: 'vh',\n  label: 'vh',\n  default: 50\n}];\nfunction dimRatioToClass(ratio) {\n  return ratio === 0 || ratio === 50 || !ratio ? null : 'has-background-dim-' + 10 * Math.round(ratio / 10);\n}\nfunction attributesFromMedia(setAttributes) {\n  return function (media) {\n    if (!media || !media.url) {\n      setAttributes({\n        url: undefined,\n        id: undefined\n      });\n      return;\n    }\n\n    var mediaType; // for media selections originated from a file upload.\n\n    if (media.media_type) {\n      if (media.media_type === IMAGE_BACKGROUND_TYPE) {\n        mediaType = IMAGE_BACKGROUND_TYPE;\n      } else {\n        // only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n        // Videos contain the media type of 'file' in the object returned from the rest api.\n        mediaType = VIDEO_BACKGROUND_TYPE;\n      }\n    } else {\n      // for media selections originated from existing files in the media library.\n      if (media.type !== IMAGE_BACKGROUND_TYPE && media.type !== VIDEO_BACKGROUND_TYPE) {\n        return;\n      }\n\n      mediaType = media.type;\n    }\n\n    setAttributes(shared_objectSpread({\n      url: media.url,\n      id: media.id,\n      backgroundType: mediaType\n    }, mediaType === VIDEO_BACKGROUND_TYPE ? {\n      focalPoint: undefined,\n      hasParallax: undefined\n    } : {}));\n  };\n}\nfunction getPositionClassName(contentPosition) {\n  if (contentPosition === undefined) return '';\n  return POSITION_CLASSNAMES[contentPosition];\n}\nfunction isContentPositionCenter(contentPosition) {\n  return !contentPosition || contentPosition === 'center center' || contentPosition === 'center';\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/deprecated.js\n\n\n\nfunction cover_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction cover_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { cover_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { cover_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar cover_deprecated_blockAttributes = {\n  url: {\n    type: 'string'\n  },\n  id: {\n    type: 'number'\n  },\n  hasParallax: {\n    type: 'boolean',\n    default: false\n  },\n  dimRatio: {\n    type: 'number',\n    default: 50\n  },\n  overlayColor: {\n    type: 'string'\n  },\n  customOverlayColor: {\n    type: 'string'\n  },\n  backgroundType: {\n    type: 'string',\n    default: 'image'\n  },\n  focalPoint: {\n    type: 'object'\n  }\n};\nvar cover_deprecated_deprecated = [{\n  attributes: cover_deprecated_objectSpread({}, cover_deprecated_blockAttributes, {\n    title: {\n      type: 'string',\n      source: 'html',\n      selector: 'p'\n    },\n    contentAlign: {\n      type: 'string',\n      default: 'center'\n    },\n    minHeight: {\n      type: 'number'\n    },\n    gradient: {\n      type: 'string'\n    },\n    customGradient: {\n      type: 'string'\n    }\n  }),\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var backgroundType = attributes.backgroundType,\n        gradient = attributes.gradient,\n        customGradient = attributes.customGradient,\n        customOverlayColor = attributes.customOverlayColor,\n        dimRatio = attributes.dimRatio,\n        focalPoint = attributes.focalPoint,\n        hasParallax = attributes.hasParallax,\n        overlayColor = attributes.overlayColor,\n        url = attributes.url,\n        minHeight = attributes.minHeight;\n    var overlayColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', overlayColor);\n\n    var gradientClass = Object(external_this_wp_blockEditor_[\"__experimentalGetGradientClass\"])(gradient);\n\n    var style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};\n\n    if (!overlayColorClass) {\n      style.backgroundColor = customOverlayColor;\n    }\n\n    if (focalPoint && !hasParallax) {\n      style.backgroundPosition = \"\".concat(Math.round(focalPoint.x * 100), \"% \").concat(Math.round(focalPoint.y * 100), \"%\");\n    }\n\n    if (customGradient && !url) {\n      style.background = customGradient;\n    }\n\n    style.minHeight = minHeight || undefined;\n    var classes = classnames_default()(dimRatioToClass(dimRatio), overlayColorClass, Object(defineProperty[\"a\" /* default */])({\n      'has-background-dim': dimRatio !== 0,\n      'has-parallax': hasParallax,\n      'has-background-gradient': customGradient\n    }, gradientClass, !url && gradientClass));\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classes,\n      style: style\n    }, url && (gradient || customGradient) && dimRatio !== 0 && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      \"aria-hidden\": \"true\",\n      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),\n      style: customGradient ? {\n        background: customGradient\n      } : undefined\n    }), VIDEO_BACKGROUND_TYPE === backgroundType && url && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n      className: \"wp-block-cover__video-background\",\n      autoPlay: true,\n      muted: true,\n      loop: true,\n      src: url\n    }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-cover__inner-container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, {\n  attributes: cover_deprecated_objectSpread({}, cover_deprecated_blockAttributes, {\n    title: {\n      type: 'string',\n      source: 'html',\n      selector: 'p'\n    },\n    contentAlign: {\n      type: 'string',\n      default: 'center'\n    },\n    minHeight: {\n      type: 'number'\n    },\n    gradient: {\n      type: 'string'\n    },\n    customGradient: {\n      type: 'string'\n    }\n  }),\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var backgroundType = attributes.backgroundType,\n        gradient = attributes.gradient,\n        customGradient = attributes.customGradient,\n        customOverlayColor = attributes.customOverlayColor,\n        dimRatio = attributes.dimRatio,\n        focalPoint = attributes.focalPoint,\n        hasParallax = attributes.hasParallax,\n        overlayColor = attributes.overlayColor,\n        url = attributes.url,\n        minHeight = attributes.minHeight;\n    var overlayColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', overlayColor);\n\n    var gradientClass = Object(external_this_wp_blockEditor_[\"__experimentalGetGradientClass\"])(gradient);\n\n    var style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};\n\n    if (!overlayColorClass) {\n      style.backgroundColor = customOverlayColor;\n    }\n\n    if (focalPoint && !hasParallax) {\n      style.backgroundPosition = \"\".concat(focalPoint.x * 100, \"% \").concat(focalPoint.y * 100, \"%\");\n    }\n\n    if (customGradient && !url) {\n      style.background = customGradient;\n    }\n\n    style.minHeight = minHeight || undefined;\n    var classes = classnames_default()(dimRatioToClass(dimRatio), overlayColorClass, Object(defineProperty[\"a\" /* default */])({\n      'has-background-dim': dimRatio !== 0,\n      'has-parallax': hasParallax,\n      'has-background-gradient': customGradient\n    }, gradientClass, !url && gradientClass));\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classes,\n      style: style\n    }, url && (gradient || customGradient) && dimRatio !== 0 && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      \"aria-hidden\": \"true\",\n      className: classnames_default()('wp-block-cover__gradient-background', gradientClass),\n      style: customGradient ? {\n        background: customGradient\n      } : undefined\n    }), VIDEO_BACKGROUND_TYPE === backgroundType && url && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n      className: \"wp-block-cover__video-background\",\n      autoPlay: true,\n      muted: true,\n      loop: true,\n      src: url\n    }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-cover__inner-container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, {\n  attributes: cover_deprecated_objectSpread({}, cover_deprecated_blockAttributes, {\n    title: {\n      type: 'string',\n      source: 'html',\n      selector: 'p'\n    },\n    contentAlign: {\n      type: 'string',\n      default: 'center'\n    }\n  }),\n  supports: {\n    align: true\n  },\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var backgroundType = attributes.backgroundType,\n        contentAlign = attributes.contentAlign,\n        customOverlayColor = attributes.customOverlayColor,\n        dimRatio = attributes.dimRatio,\n        focalPoint = attributes.focalPoint,\n        hasParallax = attributes.hasParallax,\n        overlayColor = attributes.overlayColor,\n        title = attributes.title,\n        url = attributes.url;\n    var overlayColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', overlayColor);\n    var style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};\n\n    if (!overlayColorClass) {\n      style.backgroundColor = customOverlayColor;\n    }\n\n    if (focalPoint && !hasParallax) {\n      style.backgroundPosition = \"\".concat(focalPoint.x * 100, \"% \").concat(focalPoint.y * 100, \"%\");\n    }\n\n    var classes = classnames_default()(dimRatioToClass(dimRatio), overlayColorClass, Object(defineProperty[\"a\" /* default */])({\n      'has-background-dim': dimRatio !== 0,\n      'has-parallax': hasParallax\n    }, \"has-\".concat(contentAlign, \"-content\"), contentAlign !== 'center'));\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classes,\n      style: style\n    }, VIDEO_BACKGROUND_TYPE === backgroundType && url && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n      className: \"wp-block-cover__video-background\",\n      autoPlay: true,\n      muted: true,\n      loop: true,\n      src: url\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(title) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      className: \"wp-block-cover-text\",\n      value: title\n    }));\n  },\n  migrate: function migrate(attributes) {\n    return [Object(external_this_lodash_[\"omit\"])(attributes, ['title', 'contentAlign']), [Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n      content: attributes.title,\n      align: attributes.contentAlign,\n      fontSize: 'large',\n      placeholder: Object(external_this_wp_i18n_[\"__\"])('Write title…')\n    })]];\n  }\n}, {\n  attributes: cover_deprecated_objectSpread({}, cover_deprecated_blockAttributes, {\n    title: {\n      type: 'string',\n      source: 'html',\n      selector: 'p'\n    },\n    contentAlign: {\n      type: 'string',\n      default: 'center'\n    },\n    align: {\n      type: 'string'\n    }\n  }),\n  supports: {\n    className: false\n  },\n  save: function save(_ref4) {\n    var attributes = _ref4.attributes;\n    var url = attributes.url,\n        title = attributes.title,\n        hasParallax = attributes.hasParallax,\n        dimRatio = attributes.dimRatio,\n        align = attributes.align,\n        contentAlign = attributes.contentAlign,\n        overlayColor = attributes.overlayColor,\n        customOverlayColor = attributes.customOverlayColor;\n    var overlayColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', overlayColor);\n    var style = backgroundImageStyles(url);\n\n    if (!overlayColorClass) {\n      style.backgroundColor = customOverlayColor;\n    }\n\n    var classes = classnames_default()('wp-block-cover-image', dimRatioToClass(dimRatio), overlayColorClass, Object(defineProperty[\"a\" /* default */])({\n      'has-background-dim': dimRatio !== 0,\n      'has-parallax': hasParallax\n    }, \"has-\".concat(contentAlign, \"-content\"), contentAlign !== 'center'), align ? \"align\".concat(align) : null);\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classes,\n      style: style\n    }, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(title) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      className: \"wp-block-cover-image-text\",\n      value: title\n    }));\n  },\n  migrate: function migrate(attributes) {\n    return [Object(external_this_lodash_[\"omit\"])(attributes, ['title', 'contentAlign', 'align']), [Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n      content: attributes.title,\n      align: attributes.contentAlign,\n      fontSize: 'large',\n      placeholder: Object(external_this_wp_i18n_[\"__\"])('Write title…')\n    })]];\n  }\n}, {\n  attributes: cover_deprecated_objectSpread({}, cover_deprecated_blockAttributes, {\n    title: {\n      type: 'string',\n      source: 'html',\n      selector: 'h2'\n    },\n    align: {\n      type: 'string'\n    },\n    contentAlign: {\n      type: 'string',\n      default: 'center'\n    }\n  }),\n  supports: {\n    className: false\n  },\n  save: function save(_ref5) {\n    var attributes = _ref5.attributes;\n    var url = attributes.url,\n        title = attributes.title,\n        hasParallax = attributes.hasParallax,\n        dimRatio = attributes.dimRatio,\n        align = attributes.align;\n    var style = backgroundImageStyles(url);\n    var classes = classnames_default()('wp-block-cover-image', dimRatioToClass(dimRatio), {\n      'has-background-dim': dimRatio !== 0,\n      'has-parallax': hasParallax\n    }, align ? \"align\".concat(align) : null);\n    return Object(external_this_wp_element_[\"createElement\"])(\"section\", {\n      className: classes,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"h2\",\n      value: title\n    }));\n  },\n  migrate: function migrate(attributes) {\n    return [Object(external_this_lodash_[\"omit\"])(attributes, ['title', 'contentAlign', 'align']), [Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n      content: attributes.title,\n      align: attributes.contentAlign,\n      fontSize: 'large',\n      placeholder: Object(external_this_wp_i18n_[\"__\"])('Write title…')\n    })]];\n  }\n}];\n/* harmony default export */ var cover_deprecated = (cover_deprecated_deprecated);\n\n// EXTERNAL MODULE: ./node_modules/fast-average-color/dist/index.js\nvar dist = __webpack_require__(261);\nvar dist_default = /*#__PURE__*/__webpack_require__.n(dist);\n\n// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js\nvar tinycolor = __webpack_require__(56);\nvar tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/edit.js\n\n\n\n\n\n\nfunction cover_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction cover_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { cover_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { cover_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Module Constants\n */\n\nvar cover_edit_ALLOWED_MEDIA_TYPES = ['image', 'video'];\nvar INNER_BLOCKS_TEMPLATE = [['core/paragraph', {\n  align: 'center',\n  fontSize: 'large',\n  placeholder: Object(external_this_wp_i18n_[\"__\"])('Write title…')\n}]];\nvar BoxControlVisualizer = external_this_wp_components_[\"__experimentalBoxControl\"].__Visualizer;\n\nfunction retrieveFastAverageColor() {\n  if (!retrieveFastAverageColor.fastAverageColor) {\n    retrieveFastAverageColor.fastAverageColor = new dist_default.a();\n  }\n\n  return retrieveFastAverageColor.fastAverageColor;\n}\n\nfunction CoverHeightInput(_ref) {\n  var onChange = _ref.onChange,\n      onUnitChange = _ref.onUnitChange,\n      _ref$unit = _ref.unit,\n      unit = _ref$unit === void 0 ? 'px' : _ref$unit,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? '' : _ref$value;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      temporaryInput = _useState2[0],\n      setTemporaryInput = _useState2[1];\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(external_this_wp_blockEditor_[\"__experimentalUnitControl\"]);\n  var inputId = \"block-cover-height-input-\".concat(instanceId);\n  var isPx = unit === 'px';\n\n  var handleOnChange = function handleOnChange(unprocessedValue) {\n    var inputValue = unprocessedValue !== '' ? parseInt(unprocessedValue, 10) : undefined;\n\n    if (isNaN(inputValue) && inputValue !== undefined) {\n      setTemporaryInput(unprocessedValue);\n      return;\n    }\n\n    setTemporaryInput(null);\n    onChange(inputValue);\n  };\n\n  var handleOnBlur = function handleOnBlur() {\n    if (temporaryInput !== null) {\n      setTemporaryInput(null);\n    }\n  };\n\n  var inputValue = temporaryInput !== null ? temporaryInput : value;\n  var min = isPx ? COVER_MIN_HEIGHT : 0;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Minimum height of cover'),\n    id: inputId\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalUnitControl\"], {\n    id: inputId,\n    isResetValueOnUnitChange: true,\n    min: min,\n    onBlur: handleOnBlur,\n    onChange: handleOnChange,\n    onUnitChange: onUnitChange,\n    step: \"1\",\n    style: {\n      maxWidth: 80\n    },\n    unit: unit,\n    units: CSS_UNITS,\n    value: inputValue\n  }));\n}\n\nvar RESIZABLE_BOX_ENABLE_OPTION = {\n  top: false,\n  right: false,\n  bottom: true,\n  left: false,\n  topRight: false,\n  bottomRight: false,\n  bottomLeft: false,\n  topLeft: false\n};\n\nfunction ResizableCover(_ref2) {\n  var className = _ref2.className,\n      _onResizeStart = _ref2.onResizeStart,\n      _onResize = _ref2.onResize,\n      _onResizeStop = _ref2.onResizeStop,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"className\", \"onResizeStart\", \"onResize\", \"onResizeStop\"]);\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isResizing = _useState4[0],\n      setIsResizing = _useState4[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ResizableBox\"], Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()(className, {\n      'is-resizing': isResizing\n    }),\n    enable: RESIZABLE_BOX_ENABLE_OPTION,\n    onResizeStart: function onResizeStart(_event, _direction, elt) {\n      _onResizeStart(elt.clientHeight);\n\n      _onResize(elt.clientHeight);\n    },\n    onResize: function onResize(_event, _direction, elt) {\n      _onResize(elt.clientHeight);\n\n      if (!isResizing) {\n        setIsResizing(true);\n      }\n    },\n    onResizeStop: function onResizeStop(_event, _direction, elt) {\n      _onResizeStop(elt.clientHeight);\n\n      setIsResizing(false);\n    },\n    minHeight: COVER_MIN_HEIGHT\n  }, props));\n}\n/**\n * useCoverIsDark is a hook that returns a boolean variable specifying if the cover\n * background is dark or not.\n *\n * @param {?string} url          Url of the media background.\n * @param {?number} dimRatio     Transparency of the overlay color. If an image and\n *                               color are set, dimRatio is used to decide what is used\n *                               for background darkness checking purposes.\n * @param {?string} overlayColor String containing the overlay color value if one exists.\n * @param {?Object} elementRef   If a media background is set, elementRef should contain a reference to a\n *                               dom element that renders that media.\n *\n * @return {boolean} True if the cover background is considered \"dark\" and false otherwise.\n */\n\n\nfunction useCoverIsDark(url) {\n  var dimRatio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;\n  var overlayColor = arguments.length > 2 ? arguments[2] : undefined;\n  var elementRef = arguments.length > 3 ? arguments[3] : undefined;\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      isDark = _useState6[0],\n      setIsDark = _useState6[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // If opacity is lower than 50 the dominant color is the image or video color,\n    // so use that color for the dark mode computation.\n    if (url && dimRatio <= 50 && elementRef.current) {\n      retrieveFastAverageColor().getColorAsync(elementRef.current, function (color) {\n        setIsDark(color.isDark);\n      });\n    }\n  }, [url, url && dimRatio <= 50 && elementRef.current, setIsDark]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // If opacity is greater than 50 the dominant color is the overlay color,\n    // so use that color for the dark mode computation.\n    if (dimRatio > 50 || !url) {\n      if (!overlayColor) {\n        // If no overlay color exists the overlay color is black (isDark )\n        setIsDark(true);\n        return;\n      }\n\n      setIsDark(tinycolor_default()(overlayColor).isDark());\n    }\n  }, [overlayColor, dimRatio > 50 || !url, setIsDark]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!url && !overlayColor) {\n      // Reset isDark\n      setIsDark(false);\n    }\n  }, [!url && !overlayColor, setIsDark]);\n  return isDark;\n}\n\nfunction CoverEdit(_ref3) {\n  var _classnames, _styleAttribute$spaci, _styleAttribute$visua;\n\n  var attributes = _ref3.attributes,\n      setAttributes = _ref3.setAttributes,\n      isSelected = _ref3.isSelected,\n      noticeUI = _ref3.noticeUI,\n      overlayColor = _ref3.overlayColor,\n      setOverlayColor = _ref3.setOverlayColor,\n      toggleSelection = _ref3.toggleSelection,\n      noticeOperations = _ref3.noticeOperations;\n  var contentPosition = attributes.contentPosition,\n      id = attributes.id,\n      backgroundType = attributes.backgroundType,\n      dimRatio = attributes.dimRatio,\n      focalPoint = attributes.focalPoint,\n      hasParallax = attributes.hasParallax,\n      minHeight = attributes.minHeight,\n      minHeightUnit = attributes.minHeightUnit,\n      styleAttribute = attributes.style,\n      url = attributes.url;\n\n  var _experimentalUseGrad = Object(external_this_wp_blockEditor_[\"__experimentalUseGradient\"])(),\n      gradientClass = _experimentalUseGrad.gradientClass,\n      gradientValue = _experimentalUseGrad.gradientValue,\n      setGradient = _experimentalUseGrad.setGradient;\n\n  var onSelectMedia = attributesFromMedia(setAttributes);\n\n  var toggleParallax = function toggleParallax() {\n    setAttributes(cover_edit_objectSpread({\n      hasParallax: !hasParallax\n    }, !hasParallax ? {\n      focalPoint: undefined\n    } : {}));\n  };\n\n  var isDarkElement = Object(external_this_wp_element_[\"useRef\"])();\n  var isDark = useCoverIsDark(url, dimRatio, overlayColor.color, isDarkElement);\n\n  var _useState7 = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState8 = Object(slicedToArray[\"a\" /* default */])(_useState7, 2),\n      temporaryMinHeight = _useState8[0],\n      setTemporaryMinHeight = _useState8[1];\n\n  var removeAllNotices = noticeOperations.removeAllNotices,\n      createErrorNotice = noticeOperations.createErrorNotice;\n  var minHeightWithUnit = minHeightUnit ? \"\".concat(minHeight).concat(minHeightUnit) : minHeight;\n\n  var style = cover_edit_objectSpread({}, backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {}, {\n    backgroundColor: overlayColor.color,\n    minHeight: temporaryMinHeight || minHeightWithUnit || undefined\n  });\n\n  if (gradientValue && !url) {\n    style.background = gradientValue;\n  }\n\n  if (focalPoint) {\n    style.backgroundPosition = \"\".concat(focalPoint.x * 100, \"% \").concat(focalPoint.y * 100, \"%\");\n  }\n\n  var hasBackground = !!(url || overlayColor.color || gradientValue);\n  var controls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, hasBackground && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlockAlignmentMatrixToolbar\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Change content position'),\n    value: contentPosition,\n    onChange: function onChange(nextPosition) {\n      return setAttributes({\n        contentPosition: nextPosition\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n    mediaId: id,\n    mediaURL: url,\n    allowedTypes: cover_edit_ALLOWED_MEDIA_TYPES,\n    accept: \"image/*,video/*\",\n    onSelect: onSelectMedia\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, !!url && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Media settings')\n  }, IMAGE_BACKGROUND_TYPE === backgroundType && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Fixed background'),\n    checked: hasParallax,\n    onChange: toggleParallax\n  }), IMAGE_BACKGROUND_TYPE === backgroundType && !hasParallax && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FocalPointPicker\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Focal point picker'),\n    url: url,\n    value: focalPoint,\n    onChange: function onChange(newFocalPoint) {\n      return setAttributes({\n        focalPoint: newFocalPoint\n      });\n    }\n  }), VIDEO_BACKGROUND_TYPE === backgroundType && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n    autoPlay: true,\n    muted: true,\n    loop: true,\n    src: url\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    isSmall: true,\n    className: \"block-library-cover__reset-button\",\n    onClick: function onClick() {\n      return setAttributes({\n        url: undefined,\n        id: undefined,\n        backgroundType: undefined,\n        dimRatio: undefined,\n        focalPoint: undefined,\n        hasParallax: undefined\n      });\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Clear Media')))), hasBackground && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Dimensions')\n  }, Object(external_this_wp_element_[\"createElement\"])(CoverHeightInput, {\n    value: temporaryMinHeight || minHeight,\n    unit: minHeightUnit,\n    onChange: function onChange(newMinHeight) {\n      return setAttributes({\n        minHeight: newMinHeight\n      });\n    },\n    onUnitChange: function onUnitChange(nextUnit) {\n      setAttributes({\n        minHeightUnit: nextUnit\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalPanelColorGradientSettings\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Overlay'),\n    initialOpen: true,\n    settings: [{\n      colorValue: overlayColor.color,\n      gradientValue: gradientValue,\n      onColorChange: setOverlayColor,\n      onGradientChange: setGradient,\n      label: Object(external_this_wp_i18n_[\"__\"])('Color')\n    }]\n  }, !!url && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Opacity'),\n    value: dimRatio,\n    onChange: function onChange(newDimRation) {\n      return setAttributes({\n        dimRatio: newDimRation\n      });\n    },\n    min: 0,\n    max: 100,\n    required: true\n  })))));\n\n  if (!hasBackground) {\n    var placeholderIcon = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n      icon: library_cover\n    });\n\n    var label = Object(external_this_wp_i18n_[\"__\"])('Cover');\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, controls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, {\n      className: \"is-placeholder\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n      icon: placeholderIcon,\n      labels: {\n        title: label,\n        instructions: Object(external_this_wp_i18n_[\"__\"])('Upload an image or video file, or pick one from your media library.')\n      },\n      onSelect: onSelectMedia,\n      accept: \"image/*,video/*\",\n      allowedTypes: cover_edit_ALLOWED_MEDIA_TYPES,\n      notices: noticeUI,\n      onError: function onError(message) {\n        removeAllNotices();\n        createErrorNotice(message);\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-cover__placeholder-background-options\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"ColorPalette\"], {\n      disableCustomColors: true,\n      value: overlayColor.color,\n      onChange: setOverlayColor,\n      clearable: false\n    })))));\n  }\n\n  var classes = classnames_default()(dimRatioToClass(dimRatio), (_classnames = {\n    'is-dark-theme': isDark,\n    'has-background-dim': dimRatio !== 0,\n    'has-parallax': hasParallax\n  }, Object(defineProperty[\"a\" /* default */])(_classnames, overlayColor.class, overlayColor.class), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-background-gradient', gradientValue), Object(defineProperty[\"a\" /* default */])(_classnames, gradientClass, !url && gradientClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-custom-content-position', !isContentPositionCenter(contentPosition)), _classnames), getPositionClassName(contentPosition));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, controls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, {\n    className: classes,\n    \"data-url\": url,\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(BoxControlVisualizer, {\n    values: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$spaci = styleAttribute.spacing) === null || _styleAttribute$spaci === void 0 ? void 0 : _styleAttribute$spaci.padding,\n    showValues: styleAttribute === null || styleAttribute === void 0 ? void 0 : (_styleAttribute$visua = styleAttribute.visualizers) === null || _styleAttribute$visua === void 0 ? void 0 : _styleAttribute$visua.padding\n  }), Object(external_this_wp_element_[\"createElement\"])(ResizableCover, {\n    className: \"block-library-cover__resize-container\",\n    onResizeStart: function onResizeStart() {\n      setAttributes({\n        minHeightUnit: 'px'\n      });\n      toggleSelection(false);\n    },\n    onResize: setTemporaryMinHeight,\n    onResizeStop: function onResizeStop(newMinHeight) {\n      toggleSelection(true);\n      setAttributes({\n        minHeight: newMinHeight\n      });\n      setTemporaryMinHeight(null);\n    },\n    showHandle: isSelected\n  }), IMAGE_BACKGROUND_TYPE === backgroundType && // Used only to programmatically check if the image is dark or not\n  Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    ref: isDarkElement,\n    \"aria-hidden\": true,\n    alt: \"\",\n    style: {\n      display: 'none'\n    },\n    src: url\n  }), url && gradientValue && dimRatio !== 0 && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    \"aria-hidden\": \"true\",\n    className: classnames_default()('wp-block-cover__gradient-background', gradientClass),\n    style: {\n      background: gradientValue\n    }\n  }), VIDEO_BACKGROUND_TYPE === backgroundType && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n    ref: isDarkElement,\n    className: \"wp-block-cover__video-background\",\n    autoPlay: true,\n    muted: true,\n    loop: true,\n    src: url\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    __experimentalTagName: \"div\",\n    __experimentalPassedProps: {\n      className: 'wp-block-cover__inner-container'\n    },\n    template: INNER_BLOCKS_TEMPLATE\n  })));\n}\n\n/* harmony default export */ var cover_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      toggleSelection = _dispatch.toggleSelection;\n\n  return {\n    toggleSelection: toggleSelection\n  };\n}), Object(external_this_wp_blockEditor_[\"withColors\"])({\n  overlayColor: 'background-color'\n}), external_this_wp_components_[\"withNotices\"], external_this_wp_compose_[\"withInstanceId\"]])(CoverEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction cover_save_save(_ref) {\n  var _classnames;\n\n  var attributes = _ref.attributes;\n  var backgroundType = attributes.backgroundType,\n      gradient = attributes.gradient,\n      contentPosition = attributes.contentPosition,\n      customGradient = attributes.customGradient,\n      customOverlayColor = attributes.customOverlayColor,\n      dimRatio = attributes.dimRatio,\n      focalPoint = attributes.focalPoint,\n      hasParallax = attributes.hasParallax,\n      overlayColor = attributes.overlayColor,\n      url = attributes.url,\n      minHeightProp = attributes.minHeight,\n      minHeightUnit = attributes.minHeightUnit;\n  var overlayColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', overlayColor);\n\n  var gradientClass = Object(external_this_wp_blockEditor_[\"__experimentalGetGradientClass\"])(gradient);\n\n  var minHeight = minHeightUnit ? \"\".concat(minHeightProp).concat(minHeightUnit) : minHeightProp;\n  var style = backgroundType === IMAGE_BACKGROUND_TYPE ? backgroundImageStyles(url) : {};\n\n  if (!overlayColorClass) {\n    style.backgroundColor = customOverlayColor;\n  }\n\n  if (focalPoint && !hasParallax) {\n    style.backgroundPosition = \"\".concat(Math.round(focalPoint.x * 100), \"% \").concat(Math.round(focalPoint.y * 100), \"%\");\n  }\n\n  if (customGradient && !url) {\n    style.background = customGradient;\n  }\n\n  style.minHeight = minHeight || undefined;\n  var classes = classnames_default()(dimRatioToClass(dimRatio), overlayColorClass, (_classnames = {\n    'has-background-dim': dimRatio !== 0,\n    'has-parallax': hasParallax,\n    'has-background-gradient': gradient || customGradient\n  }, Object(defineProperty[\"a\" /* default */])(_classnames, gradientClass, !url && gradientClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'has-custom-content-position', !isContentPositionCenter(contentPosition)), _classnames), getPositionClassName(contentPosition));\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classes,\n    style: style\n  }, url && (gradient || customGradient) && dimRatio !== 0 && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    \"aria-hidden\": \"true\",\n    className: classnames_default()('wp-block-cover__gradient-background', gradientClass),\n    style: customGradient ? {\n      background: customGradient\n    } : undefined\n  }), VIDEO_BACKGROUND_TYPE === backgroundType && url && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n    className: \"wp-block-cover__video-background\",\n    autoPlay: true,\n    muted: true,\n    loop: true,\n    playsInline: true,\n    src: url\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-cover__inner-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/transforms.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar cover_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/image'],\n    transform: function transform(_ref) {\n      var caption = _ref.caption,\n          url = _ref.url,\n          align = _ref.align,\n          id = _ref.id,\n          anchor = _ref.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/cover', {\n        title: caption,\n        url: url,\n        align: align,\n        id: id,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    transform: function transform(_ref2) {\n      var caption = _ref2.caption,\n          src = _ref2.src,\n          align = _ref2.align,\n          id = _ref2.id,\n          anchor = _ref2.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/cover', {\n        title: caption,\n        url: src,\n        align: align,\n        id: id,\n        backgroundType: VIDEO_BACKGROUND_TYPE,\n        anchor: anchor\n      });\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/image'],\n    isMatch: function isMatch(_ref3) {\n      var backgroundType = _ref3.backgroundType,\n          url = _ref3.url,\n          overlayColor = _ref3.overlayColor,\n          customOverlayColor = _ref3.customOverlayColor,\n          gradient = _ref3.gradient,\n          customGradient = _ref3.customGradient;\n\n      if (url) {\n        // If a url exists the transform could happen if that URL represents an image background.\n        return backgroundType === IMAGE_BACKGROUND_TYPE;\n      } // If a url is not set the transform could happen if the cover has no background color or gradient;\n\n\n      return !overlayColor && !customOverlayColor && !gradient && !customGradient;\n    },\n    transform: function transform(_ref4) {\n      var title = _ref4.title,\n          url = _ref4.url,\n          align = _ref4.align,\n          id = _ref4.id,\n          anchor = _ref4.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n        caption: title,\n        url: url,\n        align: align,\n        id: id,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    isMatch: function isMatch(_ref5) {\n      var backgroundType = _ref5.backgroundType,\n          url = _ref5.url,\n          overlayColor = _ref5.overlayColor,\n          customOverlayColor = _ref5.customOverlayColor,\n          gradient = _ref5.gradient,\n          customGradient = _ref5.customGradient;\n\n      if (url) {\n        // If a url exists the transform could happen if that URL represents a video background.\n        return backgroundType === VIDEO_BACKGROUND_TYPE;\n      } // If a url is not set the transform could happen if the cover has no background color or gradient;\n\n\n      return !overlayColor && !customOverlayColor && !gradient && !customGradient;\n    },\n    transform: function transform(_ref6) {\n      var title = _ref6.title,\n          url = _ref6.url,\n          align = _ref6.align,\n          id = _ref6.id,\n          anchor = _ref6.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/video', {\n        caption: title,\n        src: url,\n        id: id,\n        align: align,\n        anchor: anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var cover_transforms = (cover_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/cover/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar cover_metadata = {\n  name: \"core/cover\",\n  category: \"media\",\n  attributes: {\n    url: {\n      type: \"string\"\n    },\n    id: {\n      type: \"number\"\n    },\n    hasParallax: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    dimRatio: {\n      type: \"number\",\n      \"default\": 50\n    },\n    overlayColor: {\n      type: \"string\"\n    },\n    customOverlayColor: {\n      type: \"string\"\n    },\n    backgroundType: {\n      type: \"string\",\n      \"default\": \"image\"\n    },\n    focalPoint: {\n      type: \"object\"\n    },\n    minHeight: {\n      type: \"number\"\n    },\n    minHeightUnit: {\n      type: \"string\"\n    },\n    gradient: {\n      type: \"string\"\n    },\n    customGradient: {\n      type: \"string\"\n    },\n    contentPosition: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true,\n    html: false,\n    lightBlockWrapper: true,\n    __experimentalPadding: true\n  }\n};\n\n\nvar cover_name = cover_metadata.name;\n\nvar cover_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Cover'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Add an image or video with a text overlay — great for headers.'),\n  icon: library_cover,\n  example: {\n    attributes: {\n      customOverlayColor: '#065174',\n      dimRatio: 40,\n      url: 'https://s.w.org/images/core/5.3/Windbuchencom.jpg'\n    },\n    innerBlocks: [{\n      name: 'core/paragraph',\n      attributes: {\n        customFontSize: 48,\n        content: Object(external_this_wp_i18n_[\"__\"])('<strong>Snow Patrol</strong>'),\n        align: 'center'\n      }\n    }]\n  },\n  transforms: cover_transforms,\n  save: cover_save_save,\n  edit: cover_edit,\n  deprecated: cover_deprecated\n};\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/pencil.js\nvar pencil = __webpack_require__(295);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-controls.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar embed_controls_EmbedControls = function EmbedControls(props) {\n  var blockSupportsResponsive = props.blockSupportsResponsive,\n      showEditButton = props.showEditButton,\n      themeSupportsResponsive = props.themeSupportsResponsive,\n      allowResponsive = props.allowResponsive,\n      getResponsiveHelp = props.getResponsiveHelp,\n      toggleResponsive = props.toggleResponsive,\n      switchBackToURLInput = props.switchBackToURLInput;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, showEditButton && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n    className: \"components-toolbar__control\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Edit URL'),\n    icon: pencil[\"a\" /* default */],\n    onClick: switchBackToURLInput\n  }))), themeSupportsResponsive && blockSupportsResponsive && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Media settings'),\n    className: \"blocks-responsive\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Resize for smaller devices'),\n    checked: allowResponsive,\n    help: getResponsiveHelp,\n    onChange: toggleResponsive\n  }))));\n};\n\n/* harmony default export */ var embed_controls = (embed_controls_EmbedControls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-loading.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar embed_loading_EmbedLoading = function EmbedLoading() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-embed is-loading\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('Embedding…')));\n};\n\n/* harmony default export */ var embed_loading = (embed_loading_EmbedLoading);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-placeholder.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar embed_placeholder_EmbedPlaceholder = function EmbedPlaceholder(props) {\n  var icon = props.icon,\n      label = props.label,\n      value = props.value,\n      onSubmit = props.onSubmit,\n      onChange = props.onChange,\n      cannotEmbed = props.cannotEmbed,\n      fallback = props.fallback,\n      tryAgain = props.tryAgain;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n    icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n      icon: icon,\n      showColors: true\n    }),\n    label: label,\n    className: \"wp-block-embed\",\n    instructions: Object(external_this_wp_i18n_[\"__\"])('Paste a link to the content you want to display on your site.')\n  }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n    onSubmit: onSubmit\n  }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    type: \"url\",\n    value: value || '',\n    className: \"components-placeholder__input\",\n    \"aria-label\": label,\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Enter URL to embed here…'),\n    onChange: onChange\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isPrimary: true,\n    type: \"submit\"\n  }, Object(external_this_wp_i18n_[\"_x\"])('Embed', 'button label'))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__learn-more\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    href: Object(external_this_wp_i18n_[\"__\"])('https://wordpress.org/support/article/embeds/')\n  }, Object(external_this_wp_i18n_[\"__\"])('Learn more about embeds'))), cannotEmbed && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__error\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__instructions\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Sorry, this content could not be embedded.')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    onClick: tryAgain\n  }, Object(external_this_wp_i18n_[\"_x\"])('Try again', 'button label')), ' ', Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isSecondary: true,\n    onClick: fallback\n  }, Object(external_this_wp_i18n_[\"_x\"])('Convert to link', 'button label'))));\n};\n\n/* harmony default export */ var embed_placeholder = (embed_placeholder_EmbedPlaceholder);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/wp-embed-preview.js\n\n\n\n\n\n\n\n\nfunction wp_embed_preview_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (wp_embed_preview_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction wp_embed_preview_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Browser dependencies\n */\n\nvar wp_embed_preview_window = window,\n    FocusEvent = wp_embed_preview_window.FocusEvent;\n\nvar wp_embed_preview_WpEmbedPreview = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(WpEmbedPreview, _Component);\n\n  var _super = wp_embed_preview_createSuper(WpEmbedPreview);\n\n  function WpEmbedPreview() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, WpEmbedPreview);\n\n    _this = _super.apply(this, arguments);\n    _this.checkFocus = _this.checkFocus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.node = Object(external_this_wp_element_[\"createRef\"])();\n    return _this;\n  }\n  /**\n   * Checks whether the wp embed iframe is the activeElement,\n   * if it is dispatch a focus event.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(WpEmbedPreview, [{\n    key: \"checkFocus\",\n    value: function checkFocus() {\n      var _document = document,\n          activeElement = _document.activeElement;\n\n      if (activeElement.tagName !== 'IFRAME' || activeElement.parentNode !== this.node.current) {\n        return;\n      }\n\n      var focusEvent = new FocusEvent('focus', {\n        bubbles: true\n      });\n      activeElement.dispatchEvent(focusEvent);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var html = this.props.html;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        ref: this.node,\n        className: \"wp-block-embed__wrapper\",\n        dangerouslySetInnerHTML: {\n          __html: html\n        }\n      });\n    }\n  }]);\n\n  return WpEmbedPreview;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var wp_embed_preview = (Object(external_this_wp_compose_[\"withGlobalEvents\"])({\n  blur: 'checkFocus'\n})(wp_embed_preview_WpEmbedPreview));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/embed-preview.js\n\n\n\n\n\n\n\n\nfunction embed_preview_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (embed_preview_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction embed_preview_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Internal dependencies\n */\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar embed_preview_EmbedPreview = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(EmbedPreview, _Component);\n\n  var _super = embed_preview_createSuper(EmbedPreview);\n\n  function EmbedPreview() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, EmbedPreview);\n\n    _this = _super.apply(this, arguments);\n    _this.hideOverlay = _this.hideOverlay.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      interactive: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(EmbedPreview, [{\n    key: \"hideOverlay\",\n    value: function hideOverlay() {\n      // This is called onMouseUp on the overlay. We can't respond to the `isSelected` prop\n      // changing, because that happens on mouse down, and the overlay immediately disappears,\n      // and the mouse event can end up in the preview content. We can't use onClick on\n      // the overlay to hide it either, because then the editor misses the mouseup event, and\n      // thinks we're multi-selecting blocks.\n      this.setState({\n        interactive: true\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          preview = _this$props.preview,\n          previewable = _this$props.previewable,\n          url = _this$props.url,\n          type = _this$props.type,\n          caption = _this$props.caption,\n          onCaptionChange = _this$props.onCaptionChange,\n          isSelected = _this$props.isSelected,\n          className = _this$props.className,\n          icon = _this$props.icon,\n          label = _this$props.label,\n          insertBlocksAfter = _this$props.insertBlocksAfter;\n      var scripts = preview.scripts;\n      var interactive = this.state.interactive;\n      var html = 'photo' === type ? util_getPhotoHtml(preview) : preview.html;\n      var parsedHost = new URL(url).host.split('.');\n      var parsedHostBaseUrl = parsedHost.splice(parsedHost.length - 2, parsedHost.length - 1).join('.');\n      var iframeTitle = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: host providing embed content e.g: www.youtube.com\n      Object(external_this_wp_i18n_[\"__\"])('Embedded content from %s'), parsedHostBaseUrl);\n      var sandboxClassnames = dedupe_default()(type, className, 'wp-block-embed__wrapper'); // Disabled because the overlay div doesn't actually have a role or functionality\n      // as far as the user is concerned. We're just catching the first click so that\n      // the block can be selected without interacting with the embed preview that the overlay covers.\n\n      /* eslint-disable jsx-a11y/no-static-element-interactions */\n\n      var embedWrapper = 'wp-embed' === type ? Object(external_this_wp_element_[\"createElement\"])(wp_embed_preview, {\n        html: html\n      }) : Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"wp-block-embed__wrapper\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SandBox\"], {\n        html: html,\n        scripts: scripts,\n        title: iframeTitle,\n        type: sandboxClassnames,\n        onFocus: this.hideOverlay\n      }), !interactive && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-library-embed__interactive-overlay\",\n        onMouseUp: this.hideOverlay\n      }));\n      /* eslint-enable jsx-a11y/no-static-element-interactions */\n\n      return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n        className: dedupe_default()(className, 'wp-block-embed', {\n          'is-type-video': 'video' === type\n        })\n      }, previewable ? embedWrapper : Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n        icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n          icon: icon,\n          showColors: true\n        }),\n        label: label\n      }, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"components-placeholder__error\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: url\n      }, url)), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"components-placeholder__error\"\n      }, Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: host providing embed content e.g: www.youtube.com */\n      Object(external_this_wp_i18n_[\"__\"])(\"Embedded content from %s can't be previewed in the editor.\"), parsedHostBaseUrl))), (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        tagName: \"figcaption\",\n        placeholder: Object(external_this_wp_i18n_[\"__\"])('Write caption…'),\n        value: caption,\n        onChange: onCaptionChange,\n        inlineToolbar: true,\n        __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n          return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n        }\n      }));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps, state) {\n      if (!nextProps.isSelected && state.interactive) {\n        // We only want to change this when the block is not selected, because changing it when\n        // the block becomes selected makes the overlap disappear too early. Hiding the overlay\n        // happens on mouseup when the overlay is clicked.\n        return {\n          interactive: false\n        };\n      }\n\n      return null;\n    }\n  }]);\n\n  return EmbedPreview;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var embed_preview = (embed_preview_EmbedPreview);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/edit.js\n\n\n\n\nfunction embed_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction embed_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { embed_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { embed_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction edit_getResponsiveHelp(checked) {\n  return checked ? Object(external_this_wp_i18n_[\"__\"])('This embed will preserve its aspect ratio when the browser is resized.') : Object(external_this_wp_i18n_[\"__\"])('This embed may not preserve its aspect ratio when the browser is resized.');\n}\n\nfunction getEmbedEditComponent(title, icon) {\n  var responsive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  var previewable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n  return function EmbedEditComponent(props) {\n    var attributes = props.attributes,\n        cannotEmbed = props.cannotEmbed,\n        fetching = props.fetching,\n        isSelected = props.isSelected,\n        onReplace = props.onReplace,\n        preview = props.preview,\n        setAttributes = props.setAttributes,\n        themeSupportsResponsive = props.themeSupportsResponsive,\n        tryAgain = props.tryAgain,\n        insertBlocksAfter = props.insertBlocksAfter;\n\n    var _useState = Object(external_this_wp_element_[\"useState\"])(attributes.url),\n        _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n        url = _useState2[0],\n        setURL = _useState2[1];\n\n    var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n        _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n        isEditingURL = _useState4[0],\n        setIsEditingURL = _useState4[1];\n    /**\n     * @return {Object} Attributes derived from the preview, merged with the current attributes.\n     */\n\n\n    var getMergedAttributes = function getMergedAttributes() {\n      var className = attributes.className,\n          allowResponsive = attributes.allowResponsive;\n      return embed_edit_objectSpread({}, attributes, {}, getAttributesFromPreview(preview, title, className, responsive, allowResponsive));\n    };\n\n    var handleIncomingPreview = function handleIncomingPreview() {\n      setAttributes(getMergedAttributes());\n\n      if (onReplace) {\n        var upgradedBlock = util_createUpgradedEmbedBlock(props, getMergedAttributes());\n\n        if (upgradedBlock) {\n          onReplace(upgradedBlock);\n        }\n      }\n    };\n\n    var toggleResponsive = function toggleResponsive() {\n      var allowResponsive = attributes.allowResponsive,\n          className = attributes.className;\n      var html = preview.html;\n      var newAllowResponsive = !allowResponsive;\n      setAttributes({\n        allowResponsive: newAllowResponsive,\n        className: getClassNames(html, className, responsive && newAllowResponsive)\n      });\n    };\n\n    Object(external_this_wp_element_[\"useEffect\"])(function () {\n      if (!(preview === null || preview === void 0 ? void 0 : preview.html)) {\n        return;\n      } // If we can embed the url, bail early.\n\n\n      if (!cannotEmbed) {\n        return;\n      } // At this stage, we either have a new preview or a new URL, but we can't embed it.\n      // If we are already fetching the preview, bail early.\n\n\n      if (fetching) {\n        return;\n      } // At this stage, we're not fetching the preview, so we know it can't be embedded, so try\n      // removing any trailing slash, and resubmit.\n\n\n      var newURL = attributes.url.replace(/\\/$/, '');\n      setURL(newURL);\n      setIsEditingURL(false);\n      setAttributes({\n        url: newURL\n      });\n    }, [preview === null || preview === void 0 ? void 0 : preview.html, attributes.url]);\n    Object(external_this_wp_element_[\"useEffect\"])(function () {\n      if (preview && !isEditingURL) {\n        handleIncomingPreview();\n      }\n    }, [preview, isEditingURL]);\n\n    if (fetching) {\n      return Object(external_this_wp_element_[\"createElement\"])(embed_loading, null);\n    } // translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\n\n    var label = Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('%s URL'), title); // No preview, or we can't embed the current URL, or we've clicked the edit button.\n\n    if (!preview || cannotEmbed || isEditingURL) {\n      return Object(external_this_wp_element_[\"createElement\"])(embed_placeholder, {\n        icon: icon,\n        label: label,\n        onSubmit: function onSubmit(event) {\n          if (event) {\n            event.preventDefault();\n          }\n\n          setIsEditingURL(false);\n          setAttributes({\n            url: url\n          });\n        },\n        value: url,\n        cannotEmbed: cannotEmbed,\n        onChange: function onChange(event) {\n          return setURL(event.target.value);\n        },\n        fallback: function fallback() {\n          return util_fallback(url, onReplace);\n        },\n        tryAgain: tryAgain\n      });\n    } // Even though we set attributes that get derived from the preview,\n    // we don't access them directly because for the initial render,\n    // the `setAttributes` call will not have taken effect. If we're\n    // rendering responsive content, setting the responsive classes\n    // after the preview has been rendered can result in unwanted\n    // clipping or scrollbars. The `getAttributesFromPreview` function\n    // that `getMergedAttributes` uses is memoized so that we're not\n    // calculating them on every render.\n\n\n    var previewAttributes = getMergedAttributes(props, title, responsive);\n    var caption = previewAttributes.caption,\n        type = previewAttributes.type,\n        allowResponsive = previewAttributes.allowResponsive;\n    var className = classnames_default()(previewAttributes.className, props.className);\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(embed_controls, {\n      showEditButton: preview && !cannotEmbed,\n      themeSupportsResponsive: themeSupportsResponsive,\n      blockSupportsResponsive: responsive,\n      allowResponsive: allowResponsive,\n      getResponsiveHelp: edit_getResponsiveHelp,\n      toggleResponsive: toggleResponsive,\n      switchBackToURLInput: function switchBackToURLInput() {\n        return setIsEditingURL(true);\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(embed_preview, {\n      preview: preview,\n      previewable: previewable,\n      className: className,\n      url: url,\n      type: type,\n      caption: caption,\n      onCaptionChange: function onCaptionChange(value) {\n        return setAttributes({\n          caption: value\n        });\n      },\n      isSelected: isSelected,\n      icon: icon,\n      label: label,\n      insertBlocksAfter: insertBlocksAfter\n    }));\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/settings.js\n\n\n\nfunction settings_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction settings_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { settings_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { settings_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar embedAttributes = {\n  url: {\n    type: 'string'\n  },\n  caption: {\n    type: 'string',\n    source: 'html',\n    selector: 'figcaption'\n  },\n  type: {\n    type: 'string'\n  },\n  providerNameSlug: {\n    type: 'string'\n  },\n  allowResponsive: {\n    type: 'boolean',\n    default: true\n  }\n};\nfunction getEmbedBlockSettings(_ref) {\n  var title = _ref.title,\n      description = _ref.description,\n      icon = _ref.icon,\n      _ref$category = _ref.category,\n      category = _ref$category === void 0 ? 'embed' : _ref$category,\n      transforms = _ref.transforms,\n      _ref$keywords = _ref.keywords,\n      keywords = _ref$keywords === void 0 ? [] : _ref$keywords,\n      _ref$supports = _ref.supports,\n      supports = _ref$supports === void 0 ? {} : _ref$supports,\n      _ref$responsive = _ref.responsive,\n      responsive = _ref$responsive === void 0 ? true : _ref$responsive,\n      _ref$previewable = _ref.previewable,\n      previewable = _ref$previewable === void 0 ? true : _ref$previewable;\n\n  var blockDescription = description || Object(external_this_wp_i18n_[\"__\"])('Add a block that displays content pulled from other sites, like Twitter, Instagram or YouTube.');\n\n  var edit = getEmbedEditComponent(title, icon, responsive, previewable);\n  return {\n    title: title,\n    description: blockDescription,\n    icon: icon,\n    category: category,\n    keywords: keywords,\n    attributes: embedAttributes,\n    supports: settings_objectSpread({\n      align: true\n    }, supports),\n    transforms: transforms,\n    edit: Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n      var url = ownProps.attributes.url;\n      var core = select('core');\n      var getEmbedPreview = core.getEmbedPreview,\n          isPreviewEmbedFallback = core.isPreviewEmbedFallback,\n          isRequestingEmbedPreview = core.isRequestingEmbedPreview,\n          getThemeSupports = core.getThemeSupports;\n      var preview = undefined !== url && getEmbedPreview(url);\n      var previewIsFallback = undefined !== url && isPreviewEmbedFallback(url);\n      var fetching = undefined !== url && isRequestingEmbedPreview(url);\n      var themeSupports = getThemeSupports(); // The external oEmbed provider does not exist. We got no type info and no html.\n\n      var badEmbedProvider = !!preview && undefined === preview.type && false === preview.html; // Some WordPress URLs that can't be embedded will cause the API to return\n      // a valid JSON response with no HTML and `data.status` set to 404, rather\n      // than generating a fallback response as other embeds do.\n\n      var wordpressCantEmbed = !!preview && preview.data && preview.data.status === 404;\n      var validPreview = !!preview && !badEmbedProvider && !wordpressCantEmbed;\n      var cannotEmbed = undefined !== url && (!validPreview || previewIsFallback);\n      return {\n        preview: validPreview ? preview : undefined,\n        fetching: fetching,\n        themeSupportsResponsive: themeSupports['responsive-embeds'],\n        cannotEmbed: cannotEmbed\n      };\n    }), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n      var url = ownProps.attributes.url;\n      var coreData = dispatch('core/data');\n\n      var tryAgain = function tryAgain() {\n        coreData.invalidateResolution('core', 'getEmbedPreview', [url]);\n      };\n\n      return {\n        tryAgain: tryAgain\n      };\n    }))(edit),\n    save: function save(_ref2) {\n      var _classnames;\n\n      var attributes = _ref2.attributes;\n      var url = attributes.url,\n          caption = attributes.caption,\n          type = attributes.type,\n          providerNameSlug = attributes.providerNameSlug;\n\n      if (!url) {\n        return null;\n      }\n\n      var embedClassName = dedupe_default()('wp-block-embed', (_classnames = {}, Object(defineProperty[\"a\" /* default */])(_classnames, \"is-type-\".concat(type), type), Object(defineProperty[\"a\" /* default */])(_classnames, \"is-provider-\".concat(providerNameSlug), providerNameSlug), _classnames));\n      return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n        className: embedClassName\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"wp-block-embed__wrapper\"\n      }, \"\\n\".concat(url, \"\\n\")\n      /* URL needs to be on its own line. */\n      ), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n        tagName: \"figcaption\",\n        value: caption\n      }));\n    },\n    deprecated: [{\n      attributes: embedAttributes,\n      save: function save(_ref3) {\n        var _classnames2;\n\n        var attributes = _ref3.attributes;\n        var url = attributes.url,\n            caption = attributes.caption,\n            type = attributes.type,\n            providerNameSlug = attributes.providerNameSlug;\n\n        if (!url) {\n          return null;\n        }\n\n        var embedClassName = dedupe_default()('wp-block-embed', (_classnames2 = {}, Object(defineProperty[\"a\" /* default */])(_classnames2, \"is-type-\".concat(type), type), Object(defineProperty[\"a\" /* default */])(_classnames2, \"is-provider-\".concat(providerNameSlug), providerNameSlug), _classnames2));\n        return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n          className: embedClassName\n        }, \"\\n\".concat(url, \"\\n\")\n        /* URL needs to be on its own line. */\n        , !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n          tagName: \"figcaption\",\n          value: caption\n        }));\n      }\n    }]\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/transforms.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Default transforms for generic embeds.\n */\n\nvar embed_transforms_transforms = {\n  from: [{\n    type: 'raw',\n    isMatch: function isMatch(node) {\n      return node.nodeName === 'P' && /^\\s*(https?:\\/\\/\\S+)\\s*$/i.test(node.textContent);\n    },\n    transform: function transform(node) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/embed', {\n        url: node.textContent.trim()\n      });\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref) {\n      var url = _ref.url,\n          caption = _ref.caption;\n      var link = Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        href: url\n      }, caption || url);\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n        content: Object(external_this_wp_element_[\"renderToString\"])(link)\n      });\n    }\n  }]\n};\n/* harmony default export */ var embed_transforms = (embed_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/embed/index.js\n\n\nfunction embed_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction embed_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { embed_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { embed_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar embed_name = 'core/embed';\nvar embed_settings = getEmbedBlockSettings({\n  title: Object(external_this_wp_i18n_[\"_x\"])('Embed', 'block title'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Embed videos, images, tweets, audio, and other content from external sources.'),\n  icon: embedContentIcon,\n  // Unknown embeds should not be responsive by default.\n  responsive: false,\n  transforms: embed_transforms\n});\nvar embed_common = common.map(function (embedDefinition) {\n  var embedSettings = getEmbedBlockSettings(embedDefinition.settings);\n  return embed_objectSpread({}, embedDefinition, {\n    settings: embed_objectSpread({}, embedSettings, {\n      transforms: embed_transforms\n    })\n  });\n});\nvar embed_others = others.map(function (embedDefinition) {\n  var embedSettings = getEmbedBlockSettings(embedDefinition.settings);\n  return embed_objectSpread({}, embedDefinition, {\n    settings: embed_objectSpread({}, embedSettings, {\n      transforms: embed_transforms\n    })\n  });\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/file.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar file_file = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 6.2h-5.9l-.6-1.1c-.3-.7-1-1.1-1.8-1.1H5c-1.1 0-2 .9-2 2v11.8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8.2c0-1.1-.9-2-2-2zm.5 11.6c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h5.8c.2 0 .4.1.4.3l1 2H19c.3 0 .5.2.5.5v9.5z\"\n}));\n/* harmony default export */ var library_file = (file_file);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/inspector.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction FileBlockInspector(_ref) {\n  var hrefs = _ref.hrefs,\n      openInNewWindow = _ref.openInNewWindow,\n      showDownloadButton = _ref.showDownloadButton,\n      changeLinkDestinationOption = _ref.changeLinkDestinationOption,\n      changeOpenInNewWindow = _ref.changeOpenInNewWindow,\n      changeShowDownloadButton = _ref.changeShowDownloadButton;\n  var href = hrefs.href,\n      textLinkHref = hrefs.textLinkHref,\n      attachmentPage = hrefs.attachmentPage;\n  var linkDestinationOptions = [{\n    value: href,\n    label: Object(external_this_wp_i18n_[\"__\"])('URL')\n  }];\n\n  if (attachmentPage) {\n    linkDestinationOptions = [{\n      value: href,\n      label: Object(external_this_wp_i18n_[\"__\"])('Media file')\n    }, {\n      value: attachmentPage,\n      label: Object(external_this_wp_i18n_[\"__\"])('Attachment page')\n    }];\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Text link settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Link to'),\n    value: textLinkHref,\n    options: linkDestinationOptions,\n    onChange: changeLinkDestinationOption\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Open in new tab'),\n    checked: openInNewWindow,\n    onChange: changeOpenInNewWindow\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Download button settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Show download button'),\n    checked: showDownloadButton,\n    onChange: changeShowDownloadButton\n  }))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/edit.js\n\n\n\n\n\n\n\n\n\n\nfunction file_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (file_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction file_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar edit_FileEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FileEdit, _Component);\n\n  var _super = file_edit_createSuper(FileEdit);\n\n  function FileEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, FileEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.onSelectFile = _this.onSelectFile.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.confirmCopyURL = _this.confirmCopyURL.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.resetCopyConfirmation = _this.resetCopyConfirmation.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.changeLinkDestinationOption = _this.changeLinkDestinationOption.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.changeOpenInNewWindow = _this.changeOpenInNewWindow.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.changeShowDownloadButton = _this.changeShowDownloadButton.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUploadError = _this.onUploadError.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      hasError: false,\n      showCopyConfirmation: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(FileEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          mediaUpload = _this$props.mediaUpload,\n          noticeOperations = _this$props.noticeOperations,\n          setAttributes = _this$props.setAttributes;\n      var downloadButtonText = attributes.downloadButtonText,\n          href = attributes.href; // Upload a file drag-and-dropped into the editor\n\n      if (Object(external_this_wp_blob_[\"isBlobURL\"])(href)) {\n        var file = Object(external_this_wp_blob_[\"getBlobByURL\"])(href);\n        mediaUpload({\n          filesList: [file],\n          onFileChange: function onFileChange(_ref) {\n            var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 1),\n                media = _ref2[0];\n\n            return _this2.onSelectFile(media);\n          },\n          onError: function onError(message) {\n            _this2.setState({\n              hasError: true\n            });\n\n            noticeOperations.createErrorNotice(message);\n          }\n        });\n        Object(external_this_wp_blob_[\"revokeBlobURL\"])(href);\n      }\n\n      if (downloadButtonText === undefined) {\n        setAttributes({\n          downloadButtonText: Object(external_this_wp_i18n_[\"_x\"])('Download', 'button label')\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Reset copy confirmation state when block is deselected\n      if (prevProps.isSelected && !this.props.isSelected) {\n        this.setState({\n          showCopyConfirmation: false\n        });\n      }\n    }\n  }, {\n    key: \"onSelectFile\",\n    value: function onSelectFile(media) {\n      if (media && media.url) {\n        this.setState({\n          hasError: false\n        });\n        this.props.setAttributes({\n          href: media.url,\n          fileName: media.title,\n          textLinkHref: media.url,\n          id: media.id\n        });\n      }\n    }\n  }, {\n    key: \"onUploadError\",\n    value: function onUploadError(message) {\n      var noticeOperations = this.props.noticeOperations;\n      noticeOperations.removeAllNotices();\n      noticeOperations.createErrorNotice(message);\n    }\n  }, {\n    key: \"confirmCopyURL\",\n    value: function confirmCopyURL() {\n      this.setState({\n        showCopyConfirmation: true\n      });\n    }\n  }, {\n    key: \"resetCopyConfirmation\",\n    value: function resetCopyConfirmation() {\n      this.setState({\n        showCopyConfirmation: false\n      });\n    }\n  }, {\n    key: \"changeLinkDestinationOption\",\n    value: function changeLinkDestinationOption(newHref) {\n      // Choose Media File or Attachment Page (when file is in Media Library)\n      this.props.setAttributes({\n        textLinkHref: newHref\n      });\n    }\n  }, {\n    key: \"changeOpenInNewWindow\",\n    value: function changeOpenInNewWindow(newValue) {\n      this.props.setAttributes({\n        textLinkTarget: newValue ? '_blank' : false\n      });\n    }\n  }, {\n    key: \"changeShowDownloadButton\",\n    value: function changeShowDownloadButton(newValue) {\n      this.props.setAttributes({\n        showDownloadButton: newValue\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this3 = this;\n\n      var _this$props2 = this.props,\n          className = _this$props2.className,\n          isSelected = _this$props2.isSelected,\n          attributes = _this$props2.attributes,\n          setAttributes = _this$props2.setAttributes,\n          noticeUI = _this$props2.noticeUI,\n          media = _this$props2.media;\n      var id = attributes.id,\n          fileName = attributes.fileName,\n          href = attributes.href,\n          textLinkHref = attributes.textLinkHref,\n          textLinkTarget = attributes.textLinkTarget,\n          showDownloadButton = attributes.showDownloadButton,\n          downloadButtonText = attributes.downloadButtonText;\n      var _this$state = this.state,\n          hasError = _this$state.hasError,\n          showCopyConfirmation = _this$state.showCopyConfirmation;\n      var attachmentPage = media && media.link;\n\n      if (!href || hasError) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n          icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n            icon: library_file\n          }),\n          labels: {\n            title: Object(external_this_wp_i18n_[\"__\"])('File'),\n            instructions: Object(external_this_wp_i18n_[\"__\"])('Upload a file or pick one from your media library.')\n          },\n          onSelect: this.onSelectFile,\n          notices: noticeUI,\n          onError: this.onUploadError,\n          accept: \"*\"\n        });\n      }\n\n      var classes = classnames_default()(className, {\n        'is-transient': Object(external_this_wp_blob_[\"isBlobURL\"])(href)\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(FileBlockInspector, Object(esm_extends[\"a\" /* default */])({\n        hrefs: {\n          href: href,\n          textLinkHref: textLinkHref,\n          attachmentPage: attachmentPage\n        }\n      }, {\n        openInNewWindow: !!textLinkTarget,\n        showDownloadButton: showDownloadButton,\n        changeLinkDestinationOption: this.changeLinkDestinationOption,\n        changeOpenInNewWindow: this.changeOpenInNewWindow,\n        changeShowDownloadButton: this.changeShowDownloadButton\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n        mediaId: id,\n        mediaURL: href,\n        accept: \"*\",\n        onSelect: this.onSelectFile,\n        onError: this.onUploadError\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Animate\"], {\n        type: Object(external_this_wp_blob_[\"isBlobURL\"])(href) ? 'loading' : null\n      }, function (_ref3) {\n        var animateClassName = _ref3.className;\n        return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: classnames_default()(classes, animateClassName)\n        }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: 'wp-block-file__content-wrapper'\n        }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"wp-block-file__textlink\"\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n          tagName: \"div\" // must be block-level or else cursor disappears\n          ,\n          value: fileName,\n          placeholder: Object(external_this_wp_i18n_[\"__\"])('Write file name…'),\n          withoutInteractiveFormatting: true,\n          onChange: function onChange(text) {\n            return setAttributes({\n              fileName: text\n            });\n          }\n        })), showDownloadButton && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: 'wp-block-file__button-richtext-wrapper'\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n          tagName: \"div\" // must be block-level or else cursor disappears\n          ,\n          className: 'wp-block-file__button',\n          value: downloadButtonText,\n          withoutInteractiveFormatting: true,\n          placeholder: Object(external_this_wp_i18n_[\"__\"])('Add text…'),\n          onChange: function onChange(text) {\n            return setAttributes({\n              downloadButtonText: text\n            });\n          }\n        }))), isSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ClipboardButton\"], {\n          isSecondary: true,\n          text: href,\n          className: 'wp-block-file__copy-url-button',\n          onCopy: _this3.confirmCopyURL,\n          onFinishCopy: _this3.resetCopyConfirmation,\n          disabled: Object(external_this_wp_blob_[\"isBlobURL\"])(href)\n        }, showCopyConfirmation ? Object(external_this_wp_i18n_[\"__\"])('Copied!') : Object(external_this_wp_i18n_[\"__\"])('Copy URL')));\n      }));\n    }\n  }]);\n\n  return FileEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var file_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, props) {\n  var _select = select('core'),\n      getMedia = _select.getMedia;\n\n  var _select2 = select('core/block-editor'),\n      getSettings = _select2.getSettings;\n\n  var _getSettings = getSettings(),\n      mediaUpload = _getSettings.mediaUpload;\n\n  var id = props.attributes.id;\n  return {\n    media: id === undefined ? undefined : getMedia(id),\n    mediaUpload: mediaUpload\n  };\n}), external_this_wp_components_[\"withNotices\"]])(edit_FileEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction file_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var href = attributes.href,\n      fileName = attributes.fileName,\n      textLinkHref = attributes.textLinkHref,\n      textLinkTarget = attributes.textLinkTarget,\n      showDownloadButton = attributes.showDownloadButton,\n      downloadButtonText = attributes.downloadButtonText;\n  return href && Object(external_this_wp_element_[\"createElement\"])(\"div\", null, !external_this_wp_blockEditor_[\"RichText\"].isEmpty(fileName) && Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    href: textLinkHref,\n    target: textLinkTarget,\n    rel: textLinkTarget ? 'noreferrer noopener' : false\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    value: fileName\n  })), showDownloadButton && Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    href: href,\n    className: \"wp-block-file__button\",\n    download: true\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    value: downloadButtonText\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/transforms.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar file_transforms_transforms = {\n  from: [{\n    type: 'files',\n    isMatch: function isMatch(files) {\n      return files.length > 0;\n    },\n    // We define a lower priorty (higher number) than the default of 10. This\n    // ensures that the File block is only created as a fallback.\n    priority: 15,\n    transform: function transform(files) {\n      var blocks = [];\n      files.forEach(function (file) {\n        var blobURL = Object(external_this_wp_blob_[\"createBlobURL\"])(file); // File will be uploaded in componentDidMount()\n\n        blocks.push(Object(external_this_wp_blocks_[\"createBlock\"])('core/file', {\n          href: blobURL,\n          fileName: file.name,\n          textLinkHref: blobURL\n        }));\n      });\n      return blocks;\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/audio'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/file', {\n        href: attributes.src,\n        fileName: attributes.caption,\n        textLinkHref: attributes.src,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/file', {\n        href: attributes.src,\n        fileName: attributes.caption,\n        textLinkHref: attributes.src,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/image'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/file', {\n        href: attributes.url,\n        fileName: attributes.caption,\n        textLinkHref: attributes.url,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/audio'],\n    isMatch: function isMatch(_ref) {\n      var id = _ref.id;\n\n      if (!id) {\n        return false;\n      }\n\n      var _select = Object(external_this_wp_data_[\"select\"])('core'),\n          getMedia = _select.getMedia;\n\n      var media = getMedia(id);\n      return !!media && Object(external_this_lodash_[\"includes\"])(media.mime_type, 'audio');\n    },\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/audio', {\n        src: attributes.href,\n        caption: attributes.fileName,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    isMatch: function isMatch(_ref2) {\n      var id = _ref2.id;\n\n      if (!id) {\n        return false;\n      }\n\n      var _select2 = Object(external_this_wp_data_[\"select\"])('core'),\n          getMedia = _select2.getMedia;\n\n      var media = getMedia(id);\n      return !!media && Object(external_this_lodash_[\"includes\"])(media.mime_type, 'video');\n    },\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/video', {\n        src: attributes.href,\n        caption: attributes.fileName,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/image'],\n    isMatch: function isMatch(_ref3) {\n      var id = _ref3.id;\n\n      if (!id) {\n        return false;\n      }\n\n      var _select3 = Object(external_this_wp_data_[\"select\"])('core'),\n          getMedia = _select3.getMedia;\n\n      var media = getMedia(id);\n      return !!media && Object(external_this_lodash_[\"includes\"])(media.mime_type, 'image');\n    },\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n        url: attributes.href,\n        caption: attributes.fileName,\n        id: attributes.id,\n        anchor: attributes.anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var file_transforms = (file_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/file/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar file_metadata = {\n  name: \"core/file\",\n  category: \"media\",\n  attributes: {\n    id: {\n      type: \"number\"\n    },\n    href: {\n      type: \"string\"\n    },\n    fileName: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"a:not([download])\"\n    },\n    textLinkHref: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a:not([download])\",\n      attribute: \"href\"\n    },\n    textLinkTarget: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"a:not([download])\",\n      attribute: \"target\"\n    },\n    showDownloadButton: {\n      type: \"boolean\",\n      \"default\": true\n    },\n    downloadButtonText: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"a[download]\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true\n  }\n};\n\n\nvar file_name = file_metadata.name;\n\nvar file_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('File'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Add a link to a downloadable file.'),\n  icon: library_file,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('document'), Object(external_this_wp_i18n_[\"__\"])('pdf'), Object(external_this_wp_i18n_[\"__\"])('download')],\n  transforms: file_transforms,\n  edit: file_edit,\n  save: file_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/html.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar html_html = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4.8 11.4H2.1V9H1v6h1.1v-2.6h2.7V15h1.1V9H4.8v2.4zm1.9-1.3h1.7V15h1.1v-4.9h1.7V9H6.7v1.1zM16.2 9l-1.5 2.7L13.3 9h-.9l-.8 6h1.1l.5-4 1.5 2.8 1.5-2.8.5 4h1.1L17 9h-.8zm3.8 5V9h-1.1v6h3.6v-1H20z\"\n}));\n/* harmony default export */ var library_html = (html_html);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/edit.js\n\n\n\n\n\n\n\n\n\nfunction html_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (html_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction html_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar edit_HTMLEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(HTMLEdit, _Component);\n\n  var _super = html_edit_createSuper(HTMLEdit);\n\n  function HTMLEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, HTMLEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      isPreview: false,\n      styles: []\n    };\n    _this.switchToHTML = _this.switchToHTML.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.switchToPreview = _this.switchToPreview.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(HTMLEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var styles = this.props.styles; // Default styles used to unset some of the styles\n      // that might be inherited from the editor style.\n\n      var defaultStyles = \"\\n\\t\\t\\thtml,body,:root {\\n\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\tpadding: 0 !important;\\n\\t\\t\\t\\toverflow: visible !important;\\n\\t\\t\\t\\tmin-height: auto !important;\\n\\t\\t\\t}\\n\\t\\t\";\n      this.setState({\n        styles: [defaultStyles].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_wp_blockEditor_[\"transformStyles\"])(styles)))\n      });\n    }\n  }, {\n    key: \"switchToPreview\",\n    value: function switchToPreview() {\n      this.setState({\n        isPreview: true\n      });\n    }\n  }, {\n    key: \"switchToHTML\",\n    value: function switchToHTML() {\n      this.setState({\n        isPreview: false\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          setAttributes = _this$props.setAttributes;\n      var _this$state = this.state,\n          isPreview = _this$state.isPreview,\n          styles = _this$state.styles;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"wp-block-html\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        className: \"components-tab-button\",\n        isPressed: !isPreview,\n        onClick: this.switchToHTML\n      }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, \"HTML\")), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarButton\"], {\n        className: \"components-tab-button\",\n        isPressed: isPreview,\n        onClick: this.switchToPreview\n      }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_i18n_[\"__\"])('Preview'))))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"].Consumer, null, function (isDisabled) {\n        return isPreview || isDisabled ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SandBox\"], {\n          html: attributes.content,\n          styles: styles\n        }), !_this2.props.isSelected && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"block-library-html__preview-overlay\"\n        })) : Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PlainText\"], {\n          value: attributes.content,\n          onChange: function onChange(content) {\n            return setAttributes({\n              content: content\n            });\n          },\n          placeholder: Object(external_this_wp_i18n_[\"__\"])('Write HTML…'),\n          \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('HTML')\n        });\n      }));\n    }\n  }]);\n\n  return HTMLEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var html_edit = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  return {\n    styles: getSettings().styles\n  };\n})(edit_HTMLEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction html_save_save(_ref) {\n  var attributes = _ref.attributes;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, attributes.content);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar html_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/code'],\n    transform: function transform(_ref) {\n      var content = _ref.content;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/html', {\n        content: content\n      });\n    }\n  }]\n};\n/* harmony default export */ var html_transforms = (html_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/html/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar html_metadata = {\n  name: \"core/html\",\n  category: \"widgets\",\n  attributes: {\n    content: {\n      type: \"string\",\n      source: \"html\"\n    }\n  },\n  supports: {\n    customClassName: false,\n    className: false,\n    html: false\n  }\n};\n\n\nvar html_name = html_metadata.name;\n\nvar html_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Custom HTML'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Add custom HTML code and preview it as you edit.'),\n  icon: library_html,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('embed')],\n  example: {\n    attributes: {\n      content: '<marquee>' + Object(external_this_wp_i18n_[\"__\"])('Welcome to the wonderful world of blocks…') + '</marquee>'\n    }\n  },\n  edit: html_edit,\n  save: html_save_save,\n  transforms: html_transforms\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media-and-text.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar mediaAndText = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 17h7V6H4v11zm9-10v1.5h7V7h-7zm0 5.5h7V11h-7v1.5zm0 4h7V15h-7v1.5z\"\n}));\n/* harmony default export */ var media_and_text = (mediaAndText);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container-icon.js\n\n\n/**\n * WordPress dependencies\n */\n\n/* harmony default export */ var media_container_icon = (Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M18 2l2 4h-2l-2-4h-3l2 4h-2l-2-4h-1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V2zm2 12H10V4.4L11.8 8H20z\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M14 20H4V10h3V8H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3h-2z\"\n}), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n  d: \"M5 19h8l-1.59-2H9.24l-.84 1.1L7 16.3 5 19z\"\n})));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/media-container.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Constants\n */\n\nvar media_container_ALLOWED_MEDIA_TYPES = ['image', 'video'];\nfunction imageFillStyles(url, focalPoint) {\n  return url ? {\n    backgroundImage: \"url(\".concat(url, \")\"),\n    backgroundPosition: focalPoint ? \"\".concat(focalPoint.x * 100, \"% \").concat(focalPoint.y * 100, \"%\") : \"50% 50%\"\n  } : {};\n}\n\nfunction ResizableBoxContainer(_ref) {\n  var isSelected = _ref.isSelected,\n      isStackedOnMobile = _ref.isStackedOnMobile,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isSelected\", \"isStackedOnMobile\"]);\n\n  var isMobile = Object(external_this_wp_compose_[\"useViewportMatch\"])('small', '<');\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ResizableBox\"], Object(esm_extends[\"a\" /* default */])({\n    showHandle: isSelected && (!isMobile || !isStackedOnMobile)\n  }, props));\n}\n\nfunction ToolbarEditButton(_ref2) {\n  var mediaId = _ref2.mediaId,\n      mediaUrl = _ref2.mediaUrl,\n      onSelectMedia = _ref2.onSelectMedia;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n    mediaId: mediaId,\n    mediaURL: mediaUrl,\n    allowedTypes: media_container_ALLOWED_MEDIA_TYPES,\n    accept: \"image/*,video/*\",\n    onSelect: onSelectMedia\n  }));\n}\n\nfunction PlaceholderContainer(_ref3) {\n  var className = _ref3.className,\n      noticeOperations = _ref3.noticeOperations,\n      noticeUI = _ref3.noticeUI,\n      onSelectMedia = _ref3.onSelectMedia;\n\n  var onUploadError = function onUploadError(message) {\n    noticeOperations.removeAllNotices();\n    noticeOperations.createErrorNotice(message);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n    icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n      icon: media_container_icon\n    }),\n    labels: {\n      title: Object(external_this_wp_i18n_[\"__\"])('Media area')\n    },\n    className: className,\n    onSelect: onSelectMedia,\n    accept: \"image/*,video/*\",\n    allowedTypes: media_container_ALLOWED_MEDIA_TYPES,\n    notices: noticeUI,\n    onError: onUploadError\n  });\n}\n\nfunction MediaContainer(props) {\n  var className = props.className,\n      commitWidthChange = props.commitWidthChange,\n      focalPoint = props.focalPoint,\n      imageFill = props.imageFill,\n      isSelected = props.isSelected,\n      isStackedOnMobile = props.isStackedOnMobile,\n      mediaAlt = props.mediaAlt,\n      mediaId = props.mediaId,\n      mediaPosition = props.mediaPosition,\n      mediaType = props.mediaType,\n      mediaUrl = props.mediaUrl,\n      mediaWidth = props.mediaWidth,\n      onSelectMedia = props.onSelectMedia,\n      onWidthChange = props.onWidthChange;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      toggleSelection = _useDispatch.toggleSelection;\n\n  if (mediaType && mediaUrl) {\n    var onResizeStart = function onResizeStart() {\n      toggleSelection(false);\n    };\n\n    var onResize = function onResize(event, direction, elt) {\n      onWidthChange(parseInt(elt.style.width));\n    };\n\n    var onResizeStop = function onResizeStop(event, direction, elt) {\n      toggleSelection(true);\n      commitWidthChange(parseInt(elt.style.width));\n    };\n\n    var enablePositions = {\n      right: mediaPosition === 'left',\n      left: mediaPosition === 'right'\n    };\n    var backgroundStyles = mediaType === 'image' && imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};\n    var mediaTypeRenderers = {\n      image: function image() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n          src: mediaUrl,\n          alt: mediaAlt\n        });\n      },\n      video: function video() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n          controls: true,\n          src: mediaUrl\n        });\n      }\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(ResizableBoxContainer, {\n      as: \"figure\",\n      className: classnames_default()(className, 'editor-media-container__resizer'),\n      style: backgroundStyles,\n      size: {\n        width: mediaWidth + '%'\n      },\n      minWidth: \"10%\",\n      maxWidth: \"100%\",\n      enable: enablePositions,\n      onResizeStart: onResizeStart,\n      onResize: onResize,\n      onResizeStop: onResizeStop,\n      axis: \"x\",\n      isSelected: isSelected,\n      isStackedOnMobile: isStackedOnMobile\n    }, Object(external_this_wp_element_[\"createElement\"])(ToolbarEditButton, {\n      onSelectMedia: onSelectMedia,\n      mediaUrl: mediaUrl,\n      mediaId: mediaId\n    }), (mediaTypeRenderers[mediaType] || external_this_lodash_[\"noop\"])());\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(PlaceholderContainer, props);\n}\n\n/* harmony default export */ var media_container = (Object(external_this_wp_components_[\"withNotices\"])(MediaContainer));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/deprecated.js\n\n\n\nfunction media_text_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction media_text_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { media_text_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { media_text_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar DEFAULT_MEDIA_WIDTH = 50;\n\nvar media_text_deprecated_migrateCustomColors = function migrateCustomColors(attributes) {\n  if (!attributes.customBackgroundColor) {\n    return attributes;\n  }\n\n  var style = {\n    color: {\n      background: attributes.customBackgroundColor\n    }\n  };\n  return media_text_deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customBackgroundColor']), {\n    style: style\n  });\n};\n\nvar baseAttributes = {\n  align: {\n    type: 'string',\n    default: 'wide'\n  },\n  backgroundColor: {\n    type: 'string'\n  },\n  mediaAlt: {\n    type: 'string',\n    source: 'attribute',\n    selector: 'figure img',\n    attribute: 'alt',\n    default: ''\n  },\n  mediaPosition: {\n    type: 'string',\n    default: 'left'\n  },\n  mediaId: {\n    type: 'number'\n  },\n  mediaType: {\n    type: 'string'\n  },\n  mediaWidth: {\n    type: 'number',\n    default: 50\n  },\n  isStackedOnMobile: {\n    type: 'boolean',\n    default: false\n  }\n};\n/* harmony default export */ var media_text_deprecated = ([{\n  attributes: media_text_deprecated_objectSpread({}, baseAttributes, {\n    customBackgroundColor: {\n      type: 'string'\n    },\n    mediaLink: {\n      type: 'string'\n    },\n    linkDestination: {\n      type: 'string'\n    },\n    linkTarget: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure a',\n      attribute: 'target'\n    },\n    href: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure a',\n      attribute: 'href'\n    },\n    rel: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure a',\n      attribute: 'rel'\n    },\n    linkClass: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure a',\n      attribute: 'class'\n    },\n    verticalAlignment: {\n      type: 'string'\n    },\n    imageFill: {\n      type: 'boolean'\n    },\n    focalPoint: {\n      type: 'object'\n    }\n  }),\n  migrate: media_text_deprecated_migrateCustomColors,\n  save: function save(_ref) {\n    var _classnames;\n\n    var attributes = _ref.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        isStackedOnMobile = attributes.isStackedOnMobile,\n        mediaAlt = attributes.mediaAlt,\n        mediaPosition = attributes.mediaPosition,\n        mediaType = attributes.mediaType,\n        mediaUrl = attributes.mediaUrl,\n        mediaWidth = attributes.mediaWidth,\n        mediaId = attributes.mediaId,\n        verticalAlignment = attributes.verticalAlignment,\n        imageFill = attributes.imageFill,\n        focalPoint = attributes.focalPoint,\n        linkClass = attributes.linkClass,\n        href = attributes.href,\n        linkTarget = attributes.linkTarget,\n        rel = attributes.rel;\n    var newRel = Object(external_this_lodash_[\"isEmpty\"])(rel) ? undefined : rel;\n\n    var _image = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n      src: mediaUrl,\n      alt: mediaAlt,\n      className: mediaId && mediaType === 'image' ? \"wp-image-\".concat(mediaId) : null\n    });\n\n    if (href) {\n      _image = Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        className: linkClass,\n        href: href,\n        target: linkTarget,\n        rel: newRel\n      }, _image);\n    }\n\n    var mediaTypeRenders = {\n      image: function image() {\n        return _image;\n      },\n      video: function video() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n          controls: true,\n          src: mediaUrl\n        });\n      }\n    };\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var className = classnames_default()((_classnames = {\n      'has-media-on-the-right': 'right' === mediaPosition,\n      'has-background': backgroundClass || customBackgroundColor\n    }, Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-stacked-on-mobile', isStackedOnMobile), Object(defineProperty[\"a\" /* default */])(_classnames, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-image-fill', imageFill), _classnames));\n    var backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};\n    var gridTemplateColumns;\n\n    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {\n      gridTemplateColumns = 'right' === mediaPosition ? \"auto \".concat(mediaWidth, \"%\") : \"\".concat(mediaWidth, \"% auto\");\n    }\n\n    var style = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      gridTemplateColumns: gridTemplateColumns\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: \"wp-block-media-text__media\",\n      style: backgroundStyles\n    }, (mediaTypeRenders[mediaType] || external_this_lodash_[\"noop\"])()), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-media-text__content\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, {\n  attributes: media_text_deprecated_objectSpread({}, baseAttributes, {\n    customBackgroundColor: {\n      type: 'string'\n    },\n    mediaUrl: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure video,figure img',\n      attribute: 'src'\n    },\n    verticalAlignment: {\n      type: 'string'\n    },\n    imageFill: {\n      type: 'boolean'\n    },\n    focalPoint: {\n      type: 'object'\n    }\n  }),\n  migrate: media_text_deprecated_migrateCustomColors,\n  save: function save(_ref2) {\n    var _classnames2;\n\n    var attributes = _ref2.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        isStackedOnMobile = attributes.isStackedOnMobile,\n        mediaAlt = attributes.mediaAlt,\n        mediaPosition = attributes.mediaPosition,\n        mediaType = attributes.mediaType,\n        mediaUrl = attributes.mediaUrl,\n        mediaWidth = attributes.mediaWidth,\n        mediaId = attributes.mediaId,\n        verticalAlignment = attributes.verticalAlignment,\n        imageFill = attributes.imageFill,\n        focalPoint = attributes.focalPoint;\n    var mediaTypeRenders = {\n      image: function image() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n          src: mediaUrl,\n          alt: mediaAlt,\n          className: mediaId && mediaType === 'image' ? \"wp-image-\".concat(mediaId) : null\n        });\n      },\n      video: function video() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n          controls: true,\n          src: mediaUrl\n        });\n      }\n    };\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var className = classnames_default()((_classnames2 = {\n      'has-media-on-the-right': 'right' === mediaPosition\n    }, Object(defineProperty[\"a\" /* default */])(_classnames2, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames2, 'is-stacked-on-mobile', isStackedOnMobile), Object(defineProperty[\"a\" /* default */])(_classnames2, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment), Object(defineProperty[\"a\" /* default */])(_classnames2, 'is-image-fill', imageFill), _classnames2));\n    var backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};\n    var gridTemplateColumns;\n\n    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {\n      gridTemplateColumns = 'right' === mediaPosition ? \"auto \".concat(mediaWidth, \"%\") : \"\".concat(mediaWidth, \"% auto\");\n    }\n\n    var style = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      gridTemplateColumns: gridTemplateColumns\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: \"wp-block-media-text__media\",\n      style: backgroundStyles\n    }, (mediaTypeRenders[mediaType] || external_this_lodash_[\"noop\"])()), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-media-text__content\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, {\n  attributes: media_text_deprecated_objectSpread({}, baseAttributes, {\n    customBackgroundColor: {\n      type: 'string'\n    },\n    mediaUrl: {\n      type: 'string',\n      source: 'attribute',\n      selector: 'figure video,figure img',\n      attribute: 'src'\n    }\n  }),\n  save: function save(_ref3) {\n    var _classnames3;\n\n    var attributes = _ref3.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        isStackedOnMobile = attributes.isStackedOnMobile,\n        mediaAlt = attributes.mediaAlt,\n        mediaPosition = attributes.mediaPosition,\n        mediaType = attributes.mediaType,\n        mediaUrl = attributes.mediaUrl,\n        mediaWidth = attributes.mediaWidth;\n    var mediaTypeRenders = {\n      image: function image() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n          src: mediaUrl,\n          alt: mediaAlt\n        });\n      },\n      video: function video() {\n        return Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n          controls: true,\n          src: mediaUrl\n        });\n      }\n    };\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var className = classnames_default()((_classnames3 = {\n      'has-media-on-the-right': 'right' === mediaPosition\n    }, Object(defineProperty[\"a\" /* default */])(_classnames3, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames3, 'is-stacked-on-mobile', isStackedOnMobile), _classnames3));\n    var gridTemplateColumns;\n\n    if (mediaWidth !== DEFAULT_MEDIA_WIDTH) {\n      gridTemplateColumns = 'right' === mediaPosition ? \"auto \".concat(mediaWidth, \"%\") : \"\".concat(mediaWidth, \"% auto\");\n    }\n\n    var style = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      gridTemplateColumns: gridTemplateColumns\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: \"wp-block-media-text__media\"\n    }, (mediaTypeRenders[mediaType] || external_this_lodash_[\"noop\"])()), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-media-text__content\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-left.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pullLeft = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 18h6V6H4v12zm9-10v1.5h7V8h-7zm0 7.5h7V14h-7v1.5z\"\n}));\n/* harmony default export */ var pull_left = (pullLeft);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pull-right.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pullRight = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M14 6v12h6V6h-6zM4 9.5h7V8H4v1.5zm0 6h7V14H4v1.5z\"\n}));\n/* harmony default export */ var pull_right = (pullRight);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/edit.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Constants\n */\n\nvar TEMPLATE = [['core/paragraph', {\n  fontSize: 'large',\n  placeholder: Object(external_this_wp_i18n_[\"_x\"])('Content…', 'content placeholder')\n}]]; // this limits the resize to a safe zone to avoid making broken layouts\n\nvar WIDTH_CONSTRAINT_PERCENTAGE = 15;\n\nvar applyWidthConstraints = function applyWidthConstraints(width) {\n  return Math.max(WIDTH_CONSTRAINT_PERCENTAGE, Math.min(width, 100 - WIDTH_CONSTRAINT_PERCENTAGE));\n};\n\nvar edit_LINK_DESTINATION_MEDIA = 'media';\nvar edit_LINK_DESTINATION_ATTACHMENT = 'attachment';\n\nfunction edit_attributesFromMedia(_ref) {\n  var _ref$attributes = _ref.attributes,\n      linkDestination = _ref$attributes.linkDestination,\n      href = _ref$attributes.href,\n      setAttributes = _ref.setAttributes;\n  return function (media) {\n    var mediaType;\n    var src; // for media selections originated from a file upload.\n\n    if (media.media_type) {\n      if (media.media_type === 'image') {\n        mediaType = 'image';\n      } else {\n        // only images and videos are accepted so if the media_type is not an image we can assume it is a video.\n        // video contain the media type of 'file' in the object returned from the rest api.\n        mediaType = 'video';\n      }\n    } else {\n      // for media selections originated from existing files in the media library.\n      mediaType = media.type;\n    }\n\n    if (mediaType === 'image') {\n      var _media$sizes, _media$sizes$large, _media$media_details, _media$media_details$, _media$media_details$2;\n\n      // Try the \"large\" size URL, falling back to the \"full\" size URL below.\n      src = ((_media$sizes = media.sizes) === null || _media$sizes === void 0 ? void 0 : (_media$sizes$large = _media$sizes.large) === null || _media$sizes$large === void 0 ? void 0 : _media$sizes$large.url) || ( // eslint-disable-next-line camelcase\n      (_media$media_details = media.media_details) === null || _media$media_details === void 0 ? void 0 : (_media$media_details$ = _media$media_details.sizes) === null || _media$media_details$ === void 0 ? void 0 : (_media$media_details$2 = _media$media_details$.large) === null || _media$media_details$2 === void 0 ? void 0 : _media$media_details$2.source_url);\n    }\n\n    var newHref = href;\n\n    if (linkDestination === edit_LINK_DESTINATION_MEDIA) {\n      // Update the media link.\n      newHref = media.url;\n    } // Check if the image is linked to the attachment page.\n\n\n    if (linkDestination === edit_LINK_DESTINATION_ATTACHMENT) {\n      // Update the media link.\n      newHref = media.link;\n    }\n\n    setAttributes({\n      mediaAlt: media.alt,\n      mediaId: media.id,\n      mediaType: mediaType,\n      mediaUrl: src || media.url,\n      mediaLink: media.link || undefined,\n      href: newHref,\n      focalPoint: undefined\n    });\n  };\n}\n\nfunction MediaTextEdit(_ref2) {\n  var _classnames;\n\n  var attributes = _ref2.attributes,\n      isSelected = _ref2.isSelected,\n      setAttributes = _ref2.setAttributes;\n  var focalPoint = attributes.focalPoint,\n      href = attributes.href,\n      imageFill = attributes.imageFill,\n      isStackedOnMobile = attributes.isStackedOnMobile,\n      linkClass = attributes.linkClass,\n      linkDestination = attributes.linkDestination,\n      linkTarget = attributes.linkTarget,\n      mediaAlt = attributes.mediaAlt,\n      mediaId = attributes.mediaId,\n      mediaPosition = attributes.mediaPosition,\n      mediaType = attributes.mediaType,\n      mediaUrl = attributes.mediaUrl,\n      mediaWidth = attributes.mediaWidth,\n      rel = attributes.rel,\n      verticalAlignment = attributes.verticalAlignment;\n  var image = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return mediaId && isSelected ? select('core').getMedia(mediaId) : null;\n  }, [isSelected, mediaId]);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      temporaryMediaWidth = _useState2[0],\n      setTemporaryMediaWidth = _useState2[1];\n\n  var onSelectMedia = edit_attributesFromMedia({\n    attributes: attributes,\n    setAttributes: setAttributes\n  });\n\n  var onSetHref = function onSetHref(props) {\n    setAttributes(props);\n  };\n\n  var onWidthChange = function onWidthChange(width) {\n    setTemporaryMediaWidth(applyWidthConstraints(width));\n  };\n\n  var commitWidthChange = function commitWidthChange(width) {\n    setAttributes({\n      mediaWidth: applyWidthConstraints(width)\n    });\n    setTemporaryMediaWidth(applyWidthConstraints(width));\n  };\n\n  var classNames = classnames_default()((_classnames = {\n    'has-media-on-the-right': 'right' === mediaPosition,\n    'is-selected': isSelected,\n    'is-stacked-on-mobile': isStackedOnMobile\n  }, Object(defineProperty[\"a\" /* default */])(_classnames, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-image-fill', imageFill), _classnames));\n  var widthString = \"\".concat(temporaryMediaWidth || mediaWidth, \"%\");\n  var gridTemplateColumns = 'right' === mediaPosition ? \"1fr \".concat(widthString) : \"\".concat(widthString, \" 1fr\");\n  var style = {\n    gridTemplateColumns: gridTemplateColumns,\n    msGridColumns: gridTemplateColumns\n  };\n  var toolbarControls = [{\n    icon: pull_left,\n    title: Object(external_this_wp_i18n_[\"__\"])('Show media on left'),\n    isActive: mediaPosition === 'left',\n    onClick: function onClick() {\n      return setAttributes({\n        mediaPosition: 'left'\n      });\n    }\n  }, {\n    icon: pull_right,\n    title: Object(external_this_wp_i18n_[\"__\"])('Show media on right'),\n    isActive: mediaPosition === 'right',\n    onClick: function onClick() {\n      return setAttributes({\n        mediaPosition: 'right'\n      });\n    }\n  }];\n\n  var onMediaAltChange = function onMediaAltChange(newMediaAlt) {\n    setAttributes({\n      mediaAlt: newMediaAlt\n    });\n  };\n\n  var onVerticalAlignmentChange = function onVerticalAlignmentChange(alignment) {\n    setAttributes({\n      verticalAlignment: alignment\n    });\n  };\n\n  var mediaTextGeneralSettings = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Media & Text settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Stack on mobile'),\n    checked: isStackedOnMobile,\n    onChange: function onChange() {\n      return setAttributes({\n        isStackedOnMobile: !isStackedOnMobile\n      });\n    }\n  }), mediaType === 'image' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Crop image to fill entire column'),\n    checked: imageFill,\n    onChange: function onChange() {\n      return setAttributes({\n        imageFill: !imageFill\n      });\n    }\n  }), imageFill && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FocalPointPicker\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Focal point picker'),\n    url: mediaUrl,\n    value: focalPoint,\n    onChange: function onChange(value) {\n      return setAttributes({\n        focalPoint: value\n      });\n    }\n  }), mediaType === 'image' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextareaControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Alt text (alternative text)'),\n    value: mediaAlt,\n    onChange: onMediaAltChange,\n    help: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n      href: \"https://www.w3.org/WAI/tutorials/images/decision-tree\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Describe the purpose of the image')), Object(external_this_wp_i18n_[\"__\"])('Leave empty if the image is purely decorative.'))\n  }));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, mediaTextGeneralSettings), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    controls: toolbarControls\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockVerticalAlignmentToolbar\"], {\n    onChange: onVerticalAlignmentChange,\n    value: verticalAlignment\n  }), mediaType === 'image' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalImageURLInputUI\"], {\n    url: href || '',\n    onChangeUrl: onSetHref,\n    linkDestination: linkDestination,\n    mediaType: mediaType,\n    mediaUrl: image && image.source_url,\n    mediaLink: image && image.link,\n    linkTarget: linkTarget,\n    linkClass: linkClass,\n    rel: rel\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, {\n    className: classNames,\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(media_container, Object(esm_extends[\"a\" /* default */])({\n    className: \"wp-block-media-text__media\",\n    onSelectMedia: onSelectMedia,\n    onWidthChange: onWidthChange,\n    commitWidthChange: commitWidthChange\n  }, {\n    focalPoint: focalPoint,\n    imageFill: imageFill,\n    isSelected: isSelected,\n    isStackedOnMobile: isStackedOnMobile,\n    mediaAlt: mediaAlt,\n    mediaId: mediaId,\n    mediaPosition: mediaPosition,\n    mediaType: mediaType,\n    mediaUrl: mediaUrl,\n    mediaWidth: mediaWidth\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    __experimentalTagName: \"div\",\n    __experimentalPassedProps: {\n      className: 'wp-block-media-text__content'\n    },\n    template: TEMPLATE,\n    templateInsertUpdatesSelection: false\n  })));\n}\n\n/* harmony default export */ var media_text_edit = (MediaTextEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/save.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar save_DEFAULT_MEDIA_WIDTH = 50;\nfunction media_text_save_save(_ref) {\n  var _classnames;\n\n  var attributes = _ref.attributes;\n  var isStackedOnMobile = attributes.isStackedOnMobile,\n      mediaAlt = attributes.mediaAlt,\n      mediaPosition = attributes.mediaPosition,\n      mediaType = attributes.mediaType,\n      mediaUrl = attributes.mediaUrl,\n      mediaWidth = attributes.mediaWidth,\n      mediaId = attributes.mediaId,\n      verticalAlignment = attributes.verticalAlignment,\n      imageFill = attributes.imageFill,\n      focalPoint = attributes.focalPoint,\n      linkClass = attributes.linkClass,\n      href = attributes.href,\n      linkTarget = attributes.linkTarget,\n      rel = attributes.rel;\n  var newRel = Object(external_this_lodash_[\"isEmpty\"])(rel) ? undefined : rel;\n\n  var _image = Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n    src: mediaUrl,\n    alt: mediaAlt,\n    className: mediaId && mediaType === 'image' ? \"wp-image-\".concat(mediaId) : null\n  });\n\n  if (href) {\n    _image = Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n      className: linkClass,\n      href: href,\n      target: linkTarget,\n      rel: newRel\n    }, _image);\n  }\n\n  var mediaTypeRenders = {\n    image: function image() {\n      return _image;\n    },\n    video: function video() {\n      return Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n        controls: true,\n        src: mediaUrl\n      });\n    }\n  };\n  var className = classnames_default()((_classnames = {\n    'has-media-on-the-right': 'right' === mediaPosition,\n    'is-stacked-on-mobile': isStackedOnMobile\n  }, Object(defineProperty[\"a\" /* default */])(_classnames, \"is-vertically-aligned-\".concat(verticalAlignment), verticalAlignment), Object(defineProperty[\"a\" /* default */])(_classnames, 'is-image-fill', imageFill), _classnames));\n  var backgroundStyles = imageFill ? imageFillStyles(mediaUrl, focalPoint) : {};\n  var gridTemplateColumns;\n\n  if (mediaWidth !== save_DEFAULT_MEDIA_WIDTH) {\n    gridTemplateColumns = 'right' === mediaPosition ? \"auto \".concat(mediaWidth, \"%\") : \"\".concat(mediaWidth, \"% auto\");\n  }\n\n  var style = {\n    gridTemplateColumns: gridTemplateColumns\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className,\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n    className: \"wp-block-media-text__media\",\n    style: backgroundStyles\n  }, (mediaTypeRenders[mediaType] || external_this_lodash_[\"noop\"])()), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-media-text__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar media_text_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/image'],\n    transform: function transform(_ref) {\n      var alt = _ref.alt,\n          url = _ref.url,\n          id = _ref.id,\n          anchor = _ref.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/media-text', {\n        mediaAlt: alt,\n        mediaId: id,\n        mediaUrl: url,\n        mediaType: 'image',\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    transform: function transform(_ref2) {\n      var src = _ref2.src,\n          id = _ref2.id,\n          anchor = _ref2.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/media-text', {\n        mediaId: id,\n        mediaUrl: src,\n        mediaType: 'video',\n        anchor: anchor\n      });\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/image'],\n    isMatch: function isMatch(_ref3) {\n      var mediaType = _ref3.mediaType,\n          mediaUrl = _ref3.mediaUrl;\n      return !mediaUrl || mediaType === 'image';\n    },\n    transform: function transform(_ref4) {\n      var mediaAlt = _ref4.mediaAlt,\n          mediaId = _ref4.mediaId,\n          mediaUrl = _ref4.mediaUrl,\n          anchor = _ref4.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/image', {\n        alt: mediaAlt,\n        id: mediaId,\n        url: mediaUrl,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/video'],\n    isMatch: function isMatch(_ref5) {\n      var mediaType = _ref5.mediaType,\n          mediaUrl = _ref5.mediaUrl;\n      return !mediaUrl || mediaType === 'video';\n    },\n    transform: function transform(_ref6) {\n      var mediaId = _ref6.mediaId,\n          mediaUrl = _ref6.mediaUrl,\n          anchor = _ref6.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/video', {\n        id: mediaId,\n        src: mediaUrl,\n        anchor: anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var media_text_transforms = (media_text_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/media-text/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar media_text_metadata = {\n  name: \"core/media-text\",\n  category: \"media\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"default\": \"wide\"\n    },\n    mediaAlt: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure img\",\n      attribute: \"alt\",\n      \"default\": \"\"\n    },\n    mediaPosition: {\n      type: \"string\",\n      \"default\": \"left\"\n    },\n    mediaId: {\n      type: \"number\"\n    },\n    mediaUrl: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure video,figure img\",\n      attribute: \"src\"\n    },\n    mediaLink: {\n      type: \"string\"\n    },\n    linkDestination: {\n      type: \"string\"\n    },\n    linkTarget: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure a\",\n      attribute: \"target\"\n    },\n    href: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure a\",\n      attribute: \"href\"\n    },\n    rel: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure a\",\n      attribute: \"rel\"\n    },\n    linkClass: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"figure a\",\n      attribute: \"class\"\n    },\n    mediaType: {\n      type: \"string\"\n    },\n    mediaWidth: {\n      type: \"number\",\n      \"default\": 50\n    },\n    isStackedOnMobile: {\n      type: \"boolean\",\n      \"default\": true\n    },\n    verticalAlignment: {\n      type: \"string\"\n    },\n    imageFill: {\n      type: \"boolean\"\n    },\n    focalPoint: {\n      type: \"object\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: [\"wide\", \"full\"],\n    html: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      gradients: true,\n      linkColor: true\n    }\n  }\n};\n\n\nvar media_text_name = media_text_metadata.name;\n\nvar media_text_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Media & Text'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Set media and words side-by-side for a richer layout.'),\n  icon: media_and_text,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('image'), Object(external_this_wp_i18n_[\"__\"])('video')],\n  example: {\n    attributes: {\n      mediaType: 'image',\n      mediaUrl: 'https://s.w.org/images/core/5.3/Biologia_Centrali-Americana_-_Cantorchilus_semibadius_1902.jpg'\n    },\n    innerBlocks: [{\n      name: 'core/paragraph',\n      attributes: {\n        content: Object(external_this_wp_i18n_[\"__\"])('The wren<br>Earns his living<br>Noiselessly.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        content: Object(external_this_wp_i18n_[\"__\"])('— Kobayashi Issa (一茶)')\n      }\n    }]\n  },\n  transforms: media_text_transforms,\n  edit: media_text_edit,\n  save: media_text_save_save,\n  deprecated: media_text_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/comment.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar comment = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z\"\n}));\n/* harmony default export */ var library_comment = (comment);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/edit.js\n\n\n\n\n\n\n\n\n\nfunction latest_comments_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (latest_comments_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction latest_comments_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\n\nvar MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\n\nvar MAX_COMMENTS = 100;\n\nvar edit_LatestComments = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(LatestComments, _Component);\n\n  var _super = latest_comments_edit_createSuper(LatestComments);\n\n  function LatestComments() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, LatestComments);\n\n    _this = _super.apply(this, arguments);\n    _this.setCommentsToShow = _this.setCommentsToShow.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)); // Create toggles for each attribute; we create them here rather than\n    // passing `this.createToggleAttribute( 'displayAvatar' )` directly to\n    // `onChange` to avoid re-renders.\n\n    _this.toggleDisplayAvatar = _this.createToggleAttribute('displayAvatar');\n    _this.toggleDisplayDate = _this.createToggleAttribute('displayDate');\n    _this.toggleDisplayExcerpt = _this.createToggleAttribute('displayExcerpt');\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(LatestComments, [{\n    key: \"createToggleAttribute\",\n    value: function createToggleAttribute(propName) {\n      var _this2 = this;\n\n      return function () {\n        var value = _this2.props.attributes[propName];\n        var setAttributes = _this2.props.setAttributes;\n        setAttributes(Object(defineProperty[\"a\" /* default */])({}, propName, !value));\n      };\n    }\n  }, {\n    key: \"setCommentsToShow\",\n    value: function setCommentsToShow(commentsToShow) {\n      this.props.setAttributes({\n        commentsToShow: commentsToShow\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props$attribute = this.props.attributes,\n          commentsToShow = _this$props$attribute.commentsToShow,\n          displayAvatar = _this$props$attribute.displayAvatar,\n          displayDate = _this$props$attribute.displayDate,\n          displayExcerpt = _this$props$attribute.displayExcerpt;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Latest comments settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display avatar'),\n        checked: displayAvatar,\n        onChange: this.toggleDisplayAvatar\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display date'),\n        checked: displayDate,\n        onChange: this.toggleDisplayDate\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display excerpt'),\n        checked: displayExcerpt,\n        onChange: this.toggleDisplayExcerpt\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Number of comments'),\n        value: commentsToShow,\n        onChange: this.setCommentsToShow,\n        min: MIN_COMMENTS,\n        max: MAX_COMMENTS,\n        required: true\n      }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_serverSideRender_default.a, {\n        block: \"core/latest-comments\",\n        attributes: this.props.attributes\n      })));\n    }\n  }]);\n\n  return LatestComments;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var latest_comments_edit = (edit_LatestComments);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-comments/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar latest_comments_metadata = {\n  name: \"core/latest-comments\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    commentsToShow: {\n      type: \"number\",\n      \"default\": 5,\n      minimum: 1,\n      maximum: 100\n    },\n    displayAvatar: {\n      type: \"boolean\",\n      \"default\": true\n    },\n    displayDate: {\n      type: \"boolean\",\n      \"default\": true\n    },\n    displayExcerpt: {\n      type: \"boolean\",\n      \"default\": true\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\n\nvar latest_comments_name = latest_comments_metadata.name;\n\nvar latest_comments_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Latest Comments'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display a list of your most recent comments.'),\n  icon: library_comment,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('recent comments')],\n  example: {},\n  edit: latest_comments_edit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-list.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar postList = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 11h2V9H7v2zm0 4h2v-2H7v2zm3-4h7V9h-7v2zm0 4h7v-2h-7v2z\"\n}));\n/* harmony default export */ var post_list = (postList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/deprecated.js\n\n\nfunction latest_posts_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction latest_posts_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { latest_posts_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { latest_posts_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\nvar deprecated_metadata = {\n  name: \"core/latest-posts\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    categories: {\n      type: \"array\",\n      items: {\n        type: \"object\"\n      }\n    },\n    selectedAuthor: {\n      type: \"number\"\n    },\n    postsToShow: {\n      type: \"number\",\n      \"default\": 5\n    },\n    displayPostContent: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayPostContentRadio: {\n      type: \"string\",\n      \"default\": \"excerpt\"\n    },\n    excerptLength: {\n      type: \"number\",\n      \"default\": 55\n    },\n    displayAuthor: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayPostDate: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    postLayout: {\n      type: \"string\",\n      \"default\": \"list\"\n    },\n    columns: {\n      type: \"number\",\n      \"default\": 3\n    },\n    order: {\n      type: \"string\",\n      \"default\": \"desc\"\n    },\n    orderBy: {\n      type: \"string\",\n      \"default\": \"date\"\n    },\n    displayFeaturedImage: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    featuredImageAlign: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\"]\n    },\n    featuredImageSizeSlug: {\n      type: \"string\",\n      \"default\": \"thumbnail\"\n    },\n    featuredImageSizeWidth: {\n      type: \"number\",\n      \"default\": null\n    },\n    featuredImageSizeHeight: {\n      type: \"number\",\n      \"default\": null\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\nvar deprecated_attributes = deprecated_metadata.attributes;\n/* harmony default export */ var latest_posts_deprecated = ([{\n  attributes: latest_posts_deprecated_objectSpread({}, deprecated_attributes, {\n    categories: {\n      type: 'string'\n    }\n  }),\n  supports: {\n    align: true,\n    html: false\n  },\n  migrate: function migrate(oldAttributes) {\n    // This needs the full category object, not just the ID.\n    return latest_posts_deprecated_objectSpread({}, oldAttributes, {\n      categories: [{\n        id: Number(oldAttributes.categories)\n      }]\n    });\n  },\n  isEligible: function isEligible(_ref) {\n    var categories = _ref.categories;\n    return categories && 'string' === typeof categories;\n  },\n  save: function save() {\n    return null;\n  }\n}]);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"date\"]}\nvar external_this_wp_date_ = __webpack_require__(68);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/list.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar list = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 4v1.5h16V4H4zm8 8.5h8V11h-8v1.5zM4 20h16v-1.5H4V20zm4-8c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2z\"\n}));\n/* harmony default export */ var library_list = (list);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js\nvar grid = __webpack_require__(298);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/constants.js\nvar MIN_EXCERPT_LENGTH = 10;\nvar MAX_EXCERPT_LENGTH = 100;\nvar MAX_POSTS_COLUMNS = 6;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/edit.js\n\n\n\n\n\n\n\n\n\nfunction latest_posts_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction latest_posts_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { latest_posts_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { latest_posts_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction latest_posts_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (latest_posts_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction latest_posts_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Module Constants\n */\n\nvar CATEGORIES_LIST_QUERY = {\n  per_page: -1\n};\nvar USERS_LIST_QUERY = {\n  per_page: -1\n};\n\nvar edit_LatestPostsEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(LatestPostsEdit, _Component);\n\n  var _super = latest_posts_edit_createSuper(LatestPostsEdit);\n\n  function LatestPostsEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, LatestPostsEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      categoriesList: [],\n      authorList: []\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(LatestPostsEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      this.isStillMounted = true;\n      this.fetchRequest = external_this_wp_apiFetch_default()({\n        path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/categories\", CATEGORIES_LIST_QUERY)\n      }).then(function (categoriesList) {\n        if (_this2.isStillMounted) {\n          _this2.setState({\n            categoriesList: categoriesList\n          });\n        }\n      }).catch(function () {\n        if (_this2.isStillMounted) {\n          _this2.setState({\n            categoriesList: []\n          });\n        }\n      });\n      this.fetchRequest = external_this_wp_apiFetch_default()({\n        path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/users\", USERS_LIST_QUERY)\n      }).then(function (authorList) {\n        if (_this2.isStillMounted) {\n          _this2.setState({\n            authorList: authorList\n          });\n        }\n      }).catch(function () {\n        if (_this2.isStillMounted) {\n          _this2.setState({\n            authorList: []\n          });\n        }\n      });\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.isStillMounted = false;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          setAttributes = _this$props.setAttributes,\n          imageSizeOptions = _this$props.imageSizeOptions,\n          latestPosts = _this$props.latestPosts,\n          defaultImageWidth = _this$props.defaultImageWidth,\n          defaultImageHeight = _this$props.defaultImageHeight;\n      var _this$state = this.state,\n          categoriesList = _this$state.categoriesList,\n          authorList = _this$state.authorList;\n      var displayFeaturedImage = attributes.displayFeaturedImage,\n          displayPostContentRadio = attributes.displayPostContentRadio,\n          displayPostContent = attributes.displayPostContent,\n          displayPostDate = attributes.displayPostDate,\n          displayAuthor = attributes.displayAuthor,\n          postLayout = attributes.postLayout,\n          columns = attributes.columns,\n          order = attributes.order,\n          orderBy = attributes.orderBy,\n          categories = attributes.categories,\n          selectedAuthor = attributes.selectedAuthor,\n          postsToShow = attributes.postsToShow,\n          excerptLength = attributes.excerptLength,\n          featuredImageAlign = attributes.featuredImageAlign,\n          featuredImageSizeSlug = attributes.featuredImageSizeSlug,\n          featuredImageSizeWidth = attributes.featuredImageSizeWidth,\n          featuredImageSizeHeight = attributes.featuredImageSizeHeight;\n      var categorySuggestions = categoriesList.reduce(function (accumulator, category) {\n        return latest_posts_edit_objectSpread({}, accumulator, Object(defineProperty[\"a\" /* default */])({}, category.name, category));\n      }, {});\n\n      var selectCategories = function selectCategories(tokens) {\n        var hasNoSuggestion = tokens.some(function (token) {\n          return typeof token === 'string' && !categorySuggestions[token];\n        });\n\n        if (hasNoSuggestion) {\n          return;\n        } // Categories that are already will be objects, while new additions will be strings (the name).\n        // allCategories nomalizes the array so that they are all objects.\n\n\n        var allCategories = tokens.map(function (token) {\n          return typeof token === 'string' ? categorySuggestions[token] : token;\n        }); // We do nothing if the category is not selected\n        // from suggestions.\n\n        if (Object(external_this_lodash_[\"includes\"])(allCategories, null)) {\n          return false;\n        }\n\n        setAttributes({\n          categories: allCategories\n        });\n      };\n\n      var inspectorControls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Post content settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Post content'),\n        checked: displayPostContent,\n        onChange: function onChange(value) {\n          return setAttributes({\n            displayPostContent: value\n          });\n        }\n      }), displayPostContent && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RadioControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Show:'),\n        selected: displayPostContentRadio,\n        options: [{\n          label: Object(external_this_wp_i18n_[\"__\"])('Excerpt'),\n          value: 'excerpt'\n        }, {\n          label: Object(external_this_wp_i18n_[\"__\"])('Full post'),\n          value: 'full_post'\n        }],\n        onChange: function onChange(value) {\n          return setAttributes({\n            displayPostContentRadio: value\n          });\n        }\n      }), displayPostContent && displayPostContentRadio === 'excerpt' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Max number of words in excerpt'),\n        value: excerptLength,\n        onChange: function onChange(value) {\n          return setAttributes({\n            excerptLength: value\n          });\n        },\n        min: MIN_EXCERPT_LENGTH,\n        max: MAX_EXCERPT_LENGTH\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Post meta settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display author name'),\n        checked: displayAuthor,\n        onChange: function onChange(value) {\n          return setAttributes({\n            displayAuthor: value\n          });\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display post date'),\n        checked: displayPostDate,\n        onChange: function onChange(value) {\n          return setAttributes({\n            displayPostDate: value\n          });\n        }\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Featured image settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Display featured image'),\n        checked: displayFeaturedImage,\n        onChange: function onChange(value) {\n          return setAttributes({\n            displayFeaturedImage: value\n          });\n        }\n      }), displayFeaturedImage && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalImageSizeControl\"], {\n        onChange: function onChange(value) {\n          var newAttrs = {};\n\n          if (value.hasOwnProperty('width')) {\n            newAttrs.featuredImageSizeWidth = value.width;\n          }\n\n          if (value.hasOwnProperty('height')) {\n            newAttrs.featuredImageSizeHeight = value.height;\n          }\n\n          setAttributes(newAttrs);\n        },\n        slug: featuredImageSizeSlug,\n        width: featuredImageSizeWidth,\n        height: featuredImageSizeHeight,\n        imageWidth: defaultImageWidth,\n        imageHeight: defaultImageHeight,\n        imageSizeOptions: imageSizeOptions,\n        onChangeImage: function onChangeImage(value) {\n          return setAttributes({\n            featuredImageSizeSlug: value,\n            featuredImageSizeWidth: undefined,\n            featuredImageSizeHeight: undefined\n          });\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"].VisualLabel, null, Object(external_this_wp_i18n_[\"__\"])('Image alignment')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockAlignmentToolbar\"], {\n        value: featuredImageAlign,\n        onChange: function onChange(value) {\n          return setAttributes({\n            featuredImageAlign: value\n          });\n        },\n        controls: ['left', 'center', 'right'],\n        isCollapsed: false\n      })))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Sorting and filtering')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"QueryControls\"], Object(esm_extends[\"a\" /* default */])({\n        order: order,\n        orderBy: orderBy\n      }, {\n        numberOfItems: postsToShow,\n        onOrderChange: function onOrderChange(value) {\n          return setAttributes({\n            order: value\n          });\n        },\n        onOrderByChange: function onOrderByChange(value) {\n          return setAttributes({\n            orderBy: value\n          });\n        },\n        onNumberOfItemsChange: function onNumberOfItemsChange(value) {\n          return setAttributes({\n            postsToShow: value\n          });\n        },\n        categorySuggestions: categorySuggestions,\n        onCategoryChange: selectCategories,\n        selectedCategories: categories,\n        onAuthorChange: function onAuthorChange(value) {\n          return setAttributes({\n            selectedAuthor: '' !== value ? Number(value) : undefined\n          });\n        },\n        authorList: authorList,\n        selectedAuthorId: selectedAuthor\n      })), postLayout === 'grid' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n        value: columns,\n        onChange: function onChange(value) {\n          return setAttributes({\n            columns: value\n          });\n        },\n        min: 2,\n        max: !hasPosts ? MAX_POSTS_COLUMNS : Math.min(MAX_POSTS_COLUMNS, latestPosts.length),\n        required: true\n      })));\n      var hasPosts = Array.isArray(latestPosts) && latestPosts.length;\n\n      if (!hasPosts) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, inspectorControls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n          icon: library_pin,\n          label: Object(external_this_wp_i18n_[\"__\"])('Latest Posts')\n        }, !Array.isArray(latestPosts) ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null) : Object(external_this_wp_i18n_[\"__\"])('No posts found.')));\n      } // Removing posts from display should be instant.\n\n\n      var displayPosts = latestPosts.length > postsToShow ? latestPosts.slice(0, postsToShow) : latestPosts;\n      var layoutControls = [{\n        icon: library_list,\n        title: Object(external_this_wp_i18n_[\"__\"])('List view'),\n        onClick: function onClick() {\n          return setAttributes({\n            postLayout: 'list'\n          });\n        },\n        isActive: postLayout === 'list'\n      }, {\n        icon: grid[\"a\" /* default */],\n        title: Object(external_this_wp_i18n_[\"__\"])('Grid view'),\n        onClick: function onClick() {\n          return setAttributes({\n            postLayout: 'grid'\n          });\n        },\n        isActive: postLayout === 'grid'\n      }];\n\n      var dateFormat = Object(external_this_wp_date_[\"__experimentalGetSettings\"])().formats.date;\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, inspectorControls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n        controls: layoutControls\n      })), Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n        className: classnames_default()(this.props.className, Object(defineProperty[\"a\" /* default */])({\n          'wp-block-latest-posts__list': true,\n          'is-grid': postLayout === 'grid',\n          'has-dates': displayPostDate,\n          'has-author': displayAuthor\n        }, \"columns-\".concat(columns), postLayout === 'grid'))\n      }, displayPosts.map(function (post, i) {\n        var titleTrimmed = Object(external_this_lodash_[\"invoke\"])(post, ['title', 'rendered', 'trim']);\n        var excerpt = post.excerpt.rendered;\n        var currentAuthor = authorList.find(function (author) {\n          return author.id === post.author;\n        });\n        var excerptElement = document.createElement('div');\n        excerptElement.innerHTML = excerpt;\n        excerpt = excerptElement.textContent || excerptElement.innerText || '';\n        var imageSourceUrl = post.featuredImageSourceUrl;\n        var imageClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({\n          'wp-block-latest-posts__featured-image': true\n        }, \"align\".concat(featuredImageAlign), !!featuredImageAlign));\n        var needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';\n        var postExcerpt = needsReadMore ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, excerpt.trim().split(' ', excerptLength).join(' '), Object(external_this_wp_i18n_[\"__\"])(' … '), Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n          href: post.link,\n          target: \"_blank\",\n          rel: \"noopener noreferrer\"\n        }, Object(external_this_wp_i18n_[\"__\"])('Read more'))) : excerpt;\n        return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n          key: i\n        }, displayFeaturedImage && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: imageClasses\n        }, imageSourceUrl && Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n          src: imageSourceUrl,\n          alt: \"\",\n          style: {\n            maxWidth: featuredImageSizeWidth,\n            maxHeight: featuredImageSizeHeight\n          }\n        })), Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n          href: post.link,\n          target: \"_blank\",\n          rel: \"noreferrer noopener\"\n        }, titleTrimmed ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, titleTrimmed) : Object(external_this_wp_i18n_[\"__\"])('(no title)')), displayAuthor && currentAuthor && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"wp-block-latest-posts__post-author\"\n        }, Object(external_this_wp_i18n_[\"sprintf\"])(\n        /* translators: byline. %s: current author. */\n        Object(external_this_wp_i18n_[\"__\"])('by %s'), currentAuthor.name)), displayPostDate && post.date_gmt && Object(external_this_wp_element_[\"createElement\"])(\"time\", {\n          dateTime: Object(external_this_wp_date_[\"format\"])('c', post.date_gmt),\n          className: \"wp-block-latest-posts__post-date\"\n        }, Object(external_this_wp_date_[\"dateI18n\"])(dateFormat, post.date_gmt)), displayPostContent && displayPostContentRadio === 'excerpt' && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"wp-block-latest-posts__post-excerpt\"\n        }, postExcerpt), displayPostContent && displayPostContentRadio === 'full_post' && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"wp-block-latest-posts__post-full-content\"\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], {\n          key: \"html\"\n        }, post.content.raw.trim())));\n      })));\n    }\n  }]);\n\n  return LatestPostsEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var latest_posts_edit = (Object(external_this_wp_data_[\"withSelect\"])(function (select, props) {\n  var _props$attributes = props.attributes,\n      featuredImageSizeSlug = _props$attributes.featuredImageSizeSlug,\n      postsToShow = _props$attributes.postsToShow,\n      order = _props$attributes.order,\n      orderBy = _props$attributes.orderBy,\n      categories = _props$attributes.categories,\n      selectedAuthor = _props$attributes.selectedAuthor;\n\n  var _select = select('core'),\n      getEntityRecords = _select.getEntityRecords,\n      getMedia = _select.getMedia;\n\n  var _select2 = select('core/block-editor'),\n      getSettings = _select2.getSettings;\n\n  var _getSettings = getSettings(),\n      imageSizes = _getSettings.imageSizes,\n      imageDimensions = _getSettings.imageDimensions;\n\n  var catIds = categories && categories.length > 0 ? categories.map(function (cat) {\n    return cat.id;\n  }) : [];\n  var latestPostsQuery = Object(external_this_lodash_[\"pickBy\"])({\n    categories: catIds,\n    author: selectedAuthor,\n    order: order,\n    orderby: orderBy,\n    per_page: postsToShow\n  }, function (value) {\n    return !Object(external_this_lodash_[\"isUndefined\"])(value);\n  });\n  var posts = getEntityRecords('postType', 'post', latestPostsQuery);\n  var imageSizeOptions = imageSizes.filter(function (_ref) {\n    var slug = _ref.slug;\n    return slug !== 'full';\n  }).map(function (_ref2) {\n    var name = _ref2.name,\n        slug = _ref2.slug;\n    return {\n      value: slug,\n      label: name\n    };\n  });\n  return {\n    defaultImageWidth: Object(external_this_lodash_[\"get\"])(imageDimensions, [featuredImageSizeSlug, 'width'], 0),\n    defaultImageHeight: Object(external_this_lodash_[\"get\"])(imageDimensions, [featuredImageSizeSlug, 'height'], 0),\n    imageSizeOptions: imageSizeOptions,\n    latestPosts: !Array.isArray(posts) ? posts : posts.map(function (post) {\n      if (post.featured_media) {\n        var image = getMedia(post.featured_media);\n        var url = Object(external_this_lodash_[\"get\"])(image, ['media_details', 'sizes', featuredImageSizeSlug, 'source_url'], null);\n\n        if (!url) {\n          url = Object(external_this_lodash_[\"get\"])(image, 'source_url', null);\n        }\n\n        return latest_posts_edit_objectSpread({}, post, {\n          featuredImageSourceUrl: url\n        });\n      }\n\n      return post;\n    })\n  };\n})(edit_LatestPostsEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/latest-posts/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar latest_posts_metadata = {\n  name: \"core/latest-posts\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    categories: {\n      type: \"array\",\n      items: {\n        type: \"object\"\n      }\n    },\n    selectedAuthor: {\n      type: \"number\"\n    },\n    postsToShow: {\n      type: \"number\",\n      \"default\": 5\n    },\n    displayPostContent: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayPostContentRadio: {\n      type: \"string\",\n      \"default\": \"excerpt\"\n    },\n    excerptLength: {\n      type: \"number\",\n      \"default\": 55\n    },\n    displayAuthor: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayPostDate: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    postLayout: {\n      type: \"string\",\n      \"default\": \"list\"\n    },\n    columns: {\n      type: \"number\",\n      \"default\": 3\n    },\n    order: {\n      type: \"string\",\n      \"default\": \"desc\"\n    },\n    orderBy: {\n      type: \"string\",\n      \"default\": \"date\"\n    },\n    displayFeaturedImage: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    featuredImageAlign: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\"]\n    },\n    featuredImageSizeSlug: {\n      type: \"string\",\n      \"default\": \"thumbnail\"\n    },\n    featuredImageSizeWidth: {\n      type: \"number\",\n      \"default\": null\n    },\n    featuredImageSizeHeight: {\n      type: \"number\",\n      \"default\": null\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\nvar latest_posts_name = latest_posts_metadata.name;\n\nvar latest_posts_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Latest Posts'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display a list of your most recent posts.'),\n  icon: post_list,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('recent posts')],\n  example: {},\n  edit: latest_posts_edit,\n  deprecated: latest_posts_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatListBulletsRTL = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n}));\n/* harmony default export */ var format_list_bullets_rtl = (formatListBulletsRTL);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatListBullets = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}));\n/* harmony default export */ var format_list_bullets = (formatListBullets);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered-rtl.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatListNumberedRTL = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M3.8 15.8h8.9v-1.5H3.8v1.5zm0-7h8.9V7.2H3.8v1.6zm14.7-2.1V10h1V5.3l-2.2.7.3 1 .9-.3zm1.2 6.1c-.5-.6-1.2-.5-1.7-.4-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5H20v-1h-.9c.3-.6.8-1.4.9-2.1 0-.3 0-.8-.3-1.1z\"\n}));\n/* harmony default export */ var format_list_numbered_rtl = (formatListNumberedRTL);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-list-numbered.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatListNumbered = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM5 6.7V10h1V5.3L3.8 6l.4 1 .8-.3zm-.4 5.7c-.3.1-.5.2-.7.3l.1 1.1c.2-.2.5-.4.8-.5.3-.1.6 0 .7.1.2.3 0 .8-.2 1.1-.5.8-.9 1.6-1.4 2.5h2.7v-1h-1c.3-.6.8-1.4.9-2.1.1-.3 0-.8-.2-1.1-.5-.6-1.3-.5-1.7-.4z\"\n}));\n/* harmony default export */ var format_list_numbered = (formatListNumbered);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent-rtl.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatOutdentRTL = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM15.4697 14.9697L18.4393 12L15.4697 9.03033L16.5303 7.96967L20.0303 11.4697L20.5607 12L20.0303 12.5303L16.5303 16.0303L15.4697 14.9697Z\"\n}));\n/* harmony default export */ var format_outdent_rtl = (formatOutdentRTL);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-outdent.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatOutdent = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-4-4.6l-4 4 4 4 1-1-3-3 3-3-1-1z\"\n}));\n/* harmony default export */ var format_outdent = (formatOutdent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent-rtl.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatIndentRTL = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20 5.5H4V4H20V5.5ZM12 12.5H4V11H12V12.5ZM20 20V18.5H4V20H20ZM20.0303 9.03033L17.0607 12L20.0303 14.9697L18.9697 16.0303L15.4697 12.5303L14.9393 12L15.4697 11.4697L18.9697 7.96967L20.0303 9.03033Z\"\n}));\n/* harmony default export */ var format_indent_rtl = (formatIndentRTL);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-indent.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatIndent = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 7.2v1.5h16V7.2H4zm8 8.6h8v-1.5h-8v1.5zm-8-3.5l3 3-3 3 1 1 4-4-4-4-1 1z\"\n}));\n/* harmony default export */ var format_indent = (formatIndent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/ordered-list-settings.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar ordered_list_settings_OrderedListSettings = function OrderedListSettings(_ref) {\n  var setAttributes = _ref.setAttributes,\n      reversed = _ref.reversed,\n      start = _ref.start;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Ordered list settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Start value'),\n    type: \"number\",\n    onChange: function onChange(value) {\n      var int = parseInt(value, 10);\n      setAttributes({\n        // It should be possible to unset the value,\n        // e.g. with an empty string.\n        start: isNaN(int) ? undefined : int\n      });\n    },\n    value: Number.isInteger(start) ? start.toString(10) : '',\n    step: \"1\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Reverse list numbering'),\n    checked: reversed || false,\n    onChange: function onChange(value) {\n      setAttributes({\n        // Unset the attribute if not reversed.\n        reversed: value || undefined\n      });\n    }\n  })));\n};\n\n/* harmony default export */ var ordered_list_settings = (ordered_list_settings_OrderedListSettings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/edit.js\n\n\n\nfunction list_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction list_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { list_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { list_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ListEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      mergeBlocks = _ref.mergeBlocks,\n      onReplace = _ref.onReplace,\n      isSelected = _ref.isSelected;\n  var ordered = attributes.ordered,\n      values = attributes.values,\n      type = attributes.type,\n      reversed = attributes.reversed,\n      start = attributes.start;\n  var tagName = ordered ? 'ol' : 'ul';\n  var isRTL = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return !!select('core/block-editor').getSettings().isRTL;\n  }, []);\n\n  var controls = function controls(_ref2) {\n    var value = _ref2.value,\n        onChange = _ref2.onChange,\n        onFocus = _ref2.onFocus;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, isSelected && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"[\",\n      onUse: function onUse() {\n        onChange(Object(external_this_wp_richText_[\"__unstableOutdentListItems\"])(value));\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"]\",\n      onUse: function onUse() {\n        onChange(Object(external_this_wp_richText_[\"__unstableIndentListItems\"])(value, {\n          type: tagName\n        }));\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"m\",\n      onUse: function onUse() {\n        onChange(Object(external_this_wp_richText_[\"__unstableIndentListItems\"])(value, {\n          type: tagName\n        }));\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primaryShift\",\n      character: \"m\",\n      onUse: function onUse() {\n        onChange(Object(external_this_wp_richText_[\"__unstableOutdentListItems\"])(value));\n      }\n    })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n      controls: [{\n        icon: isRTL ? format_list_bullets_rtl : format_list_bullets,\n        title: Object(external_this_wp_i18n_[\"__\"])('Convert to unordered list'),\n        isActive: Object(external_this_wp_richText_[\"__unstableIsActiveListType\"])(value, 'ul', tagName),\n        onClick: function onClick() {\n          onChange(Object(external_this_wp_richText_[\"__unstableChangeListType\"])(value, {\n            type: 'ul'\n          }));\n          onFocus();\n\n          if (Object(external_this_wp_richText_[\"__unstableIsListRootSelected\"])(value)) {\n            setAttributes({\n              ordered: false\n            });\n          }\n        }\n      }, {\n        icon: isRTL ? format_list_numbered_rtl : format_list_numbered,\n        title: Object(external_this_wp_i18n_[\"__\"])('Convert to ordered list'),\n        isActive: Object(external_this_wp_richText_[\"__unstableIsActiveListType\"])(value, 'ol', tagName),\n        onClick: function onClick() {\n          onChange(Object(external_this_wp_richText_[\"__unstableChangeListType\"])(value, {\n            type: 'ol'\n          }));\n          onFocus();\n\n          if (Object(external_this_wp_richText_[\"__unstableIsListRootSelected\"])(value)) {\n            setAttributes({\n              ordered: true\n            });\n          }\n        }\n      }, {\n        icon: isRTL ? format_outdent_rtl : format_outdent,\n        title: Object(external_this_wp_i18n_[\"__\"])('Outdent list item'),\n        shortcut: Object(external_this_wp_i18n_[\"_x\"])('Backspace', 'keyboard key'),\n        isDisabled: !Object(external_this_wp_richText_[\"__unstableCanOutdentListItems\"])(value),\n        onClick: function onClick() {\n          onChange(Object(external_this_wp_richText_[\"__unstableOutdentListItems\"])(value));\n          onFocus();\n        }\n      }, {\n        icon: isRTL ? format_indent_rtl : format_indent,\n        title: Object(external_this_wp_i18n_[\"__\"])('Indent list item'),\n        shortcut: Object(external_this_wp_i18n_[\"_x\"])('Space', 'keyboard key'),\n        isDisabled: !Object(external_this_wp_richText_[\"__unstableCanIndentListItems\"])(value),\n        onClick: function onClick() {\n          onChange(Object(external_this_wp_richText_[\"__unstableIndentListItems\"])(value, {\n            type: tagName\n          }));\n          onFocus();\n        }\n      }]\n    })));\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    identifier: \"values\",\n    multiline: \"li\",\n    __unstableMultilineRootTag: tagName,\n    tagName: external_this_wp_blockEditor_[\"__experimentalBlock\"][tagName],\n    onChange: function onChange(nextValues) {\n      return setAttributes({\n        values: nextValues\n      });\n    },\n    value: values,\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write list…'),\n    onMerge: mergeBlocks,\n    onSplit: function onSplit(value) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])(list_name, list_edit_objectSpread({}, attributes, {\n        values: value\n      }));\n    },\n    __unstableOnSplitMiddle: function __unstableOnSplitMiddle() {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph');\n    },\n    onReplace: onReplace,\n    onRemove: function onRemove() {\n      return onReplace([]);\n    },\n    start: start,\n    reversed: reversed,\n    type: type\n  }, controls), ordered && Object(external_this_wp_element_[\"createElement\"])(ordered_list_settings, {\n    setAttributes: setAttributes,\n    ordered: ordered,\n    reversed: reversed,\n    start: start\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction list_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var ordered = attributes.ordered,\n      values = attributes.values,\n      type = attributes.type,\n      reversed = attributes.reversed,\n      start = attributes.start;\n  var tagName = ordered ? 'ol' : 'ul';\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: tagName,\n    value: values,\n    type: type,\n    reversed: reversed,\n    start: start,\n    multiline: \"li\"\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/transforms.js\n\n\n\nfunction list_transforms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction list_transforms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { list_transforms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { list_transforms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction getListContentSchema(_ref) {\n  var phrasingContentSchema = _ref.phrasingContentSchema;\n\n  var listContentSchema = list_transforms_objectSpread({}, phrasingContentSchema, {\n    ul: {},\n    ol: {\n      attributes: ['type', 'start', 'reversed']\n    }\n  }); // Recursion is needed.\n  // Possible: ul > li > ul.\n  // Impossible: ul > ul.\n\n\n  ['ul', 'ol'].forEach(function (tag) {\n    listContentSchema[tag].children = {\n      li: {\n        children: listContentSchema\n      }\n    };\n  });\n  return listContentSchema;\n}\n\nvar list_transforms_transforms = {\n  from: [{\n    type: 'block',\n    isMultiBlock: true,\n    blocks: ['core/paragraph'],\n    transform: function transform(blockAttributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/list', {\n        values: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"join\"])(blockAttributes.map(function (_ref2) {\n            var content = _ref2.content;\n            var value = Object(external_this_wp_richText_[\"create\"])({\n              html: content\n            });\n\n            if (blockAttributes.length > 1) {\n              return value;\n            } // When converting only one block, transform\n            // every line to a list item.\n\n\n            return Object(external_this_wp_richText_[\"replace\"])(value, /\\n/g, external_this_wp_richText_[\"__UNSTABLE_LINE_SEPARATOR\"]);\n          }), external_this_wp_richText_[\"__UNSTABLE_LINE_SEPARATOR\"]),\n          multilineTag: 'li'\n        }),\n        anchor: blockAttributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/quote', 'core/pullquote'],\n    transform: function transform(_ref3) {\n      var value = _ref3.value,\n          anchor = _ref3.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/list', {\n        values: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"create\"])({\n            html: value,\n            multilineTag: 'p'\n          }),\n          multilineTag: 'li'\n        }),\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'raw',\n    selector: 'ol,ul',\n    schema: function schema(args) {\n      return {\n        ol: getListContentSchema(args).ol,\n        ul: getListContentSchema(args).ul\n      };\n    },\n    transform: function transform(node) {\n      var attributes = {\n        ordered: node.nodeName === 'OL',\n        anchor: node.id === '' ? undefined : node.id\n      };\n\n      if (attributes.ordered) {\n        var type = node.getAttribute('type');\n\n        if (type) {\n          attributes.type = type;\n        }\n\n        if (node.getAttribute('reversed') !== null) {\n          attributes.reversed = true;\n        }\n\n        var start = parseInt(node.getAttribute('start'), 10);\n\n        if (!isNaN(start) && ( // start=1 only makes sense if the list is reversed.\n        start !== 1 || attributes.reversed)) {\n          attributes.start = start;\n        }\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/list', list_transforms_objectSpread({}, Object(external_this_wp_blocks_[\"getBlockAttributes\"])('core/list', node.outerHTML), {}, attributes));\n    }\n  }].concat(Object(toConsumableArray[\"a\" /* default */])(['*', '-'].map(function (prefix) {\n    return {\n      type: 'prefix',\n      prefix: prefix,\n      transform: function transform(content) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/list', {\n          values: \"<li>\".concat(content, \"</li>\")\n        });\n      }\n    };\n  })), Object(toConsumableArray[\"a\" /* default */])(['1.', '1)'].map(function (prefix) {\n    return {\n      type: 'prefix',\n      prefix: prefix,\n      transform: function transform(content) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/list', {\n          ordered: true,\n          values: \"<li>\".concat(content, \"</li>\")\n        });\n      }\n    };\n  }))),\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref4) {\n      var values = _ref4.values;\n      return Object(external_this_wp_richText_[\"split\"])(Object(external_this_wp_richText_[\"create\"])({\n        html: values,\n        multilineTag: 'li',\n        multilineWrapperTags: ['ul', 'ol']\n      }), external_this_wp_richText_[\"__UNSTABLE_LINE_SEPARATOR\"]).map(function (piece) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: Object(external_this_wp_richText_[\"toHTMLString\"])({\n            value: piece\n          })\n        });\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/quote'],\n    transform: function transform(_ref5) {\n      var values = _ref5.values,\n          anchor = _ref5.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/quote', {\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"create\"])({\n            html: values,\n            multilineTag: 'li',\n            multilineWrapperTags: ['ul', 'ol']\n          }),\n          multilineTag: 'p'\n        }),\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/pullquote'],\n    transform: function transform(_ref6) {\n      var values = _ref6.values,\n          anchor = _ref6.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/pullquote', {\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"create\"])({\n            html: values,\n            multilineTag: 'li',\n            multilineWrapperTags: ['ul', 'ol']\n          }),\n          multilineTag: 'p'\n        }),\n        anchor: anchor\n      });\n    }\n  }]\n};\n/* harmony default export */ var list_transforms = (list_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/list/index.js\n\n\nfunction list_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction list_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { list_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { list_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar list_metadata = {\n  name: \"core/list\",\n  category: \"text\",\n  attributes: {\n    ordered: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    values: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"ol,ul\",\n      multiline: \"li\",\n      __unstableMultilineWrapperTags: [\"ol\", \"ul\"],\n      \"default\": \"\"\n    },\n    type: {\n      type: \"string\"\n    },\n    start: {\n      type: \"number\"\n    },\n    reversed: {\n      type: \"boolean\"\n    }\n  },\n  supports: {\n    anchor: true,\n    className: false,\n    __unstablePasteTextInline: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar list_name = list_metadata.name;\n\nvar list_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('List'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Create a bulleted or numbered list.'),\n  icon: library_list,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('bullet list'), Object(external_this_wp_i18n_[\"__\"])('ordered list'), Object(external_this_wp_i18n_[\"__\"])('numbered list')],\n  example: {\n    attributes: {\n      values: '<li>Alice.</li><li>The White Rabbit.</li><li>The Cheshire Cat.</li><li>The Mad Hatter.</li><li>The Queen of Hearts.</li>'\n    }\n  },\n  transforms: list_transforms,\n  merge: function merge(attributes, attributesToMerge) {\n    var values = attributesToMerge.values;\n\n    if (!values || values === '<li></li>') {\n      return attributes;\n    }\n\n    return list_objectSpread({}, attributes, {\n      values: attributes.values + values\n    });\n  },\n  edit: ListEdit,\n  save: list_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction MissingBlockWarning(_ref) {\n  var attributes = _ref.attributes,\n      convertToHTML = _ref.convertToHTML;\n  var originalName = attributes.originalName,\n      originalUndelimitedContent = attributes.originalUndelimitedContent;\n  var hasContent = !!originalUndelimitedContent;\n  var hasHTMLBlock = Object(external_this_wp_blocks_[\"getBlockType\"])('core/html');\n  var actions = [];\n  var messageHTML;\n\n  if (hasContent && hasHTMLBlock) {\n    messageHTML = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: block name */\n    Object(external_this_wp_i18n_[\"__\"])('Your site doesn’t include support for the \"%s\" block. You can leave this block intact, convert its content to a Custom HTML block, or remove it entirely.'), originalName);\n    actions.push(Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      key: \"convert\",\n      onClick: convertToHTML,\n      isLarge: true,\n      isPrimary: true\n    }, Object(external_this_wp_i18n_[\"__\"])('Keep as HTML')));\n  } else {\n    messageHTML = Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: block name */\n    Object(external_this_wp_i18n_[\"__\"])('Your site doesn’t include support for the \"%s\" block. You can leave this block intact or remove it entirely.'), originalName);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"Warning\"], {\n    actions: actions\n  }, messageHTML), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, originalUndelimitedContent));\n}\n\nvar MissingEdit = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var clientId = _ref2.clientId,\n      attributes = _ref2.attributes;\n\n  var _dispatch = dispatch('core/block-editor'),\n      replaceBlock = _dispatch.replaceBlock;\n\n  return {\n    convertToHTML: function convertToHTML() {\n      replaceBlock(clientId, Object(external_this_wp_blocks_[\"createBlock\"])('core/html', {\n        content: attributes.originalUndelimitedContent\n      }));\n    }\n  };\n})(MissingBlockWarning);\n/* harmony default export */ var missing_edit = (MissingEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction missing_save_save(_ref) {\n  var attributes = _ref.attributes;\n  // Preserve the missing block's content.\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, attributes.originalContent);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/missing/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar missing_metadata = {\n  name: \"core/missing\",\n  category: \"text\",\n  attributes: {\n    originalName: {\n      type: \"string\"\n    },\n    originalUndelimitedContent: {\n      type: \"string\"\n    },\n    originalContent: {\n      type: \"string\",\n      source: \"html\"\n    }\n  },\n  supports: {\n    className: false,\n    customClassName: false,\n    inserter: false,\n    html: false,\n    reusable: false\n  }\n};\n\nvar missing_name = missing_metadata.name;\n\nvar missing_settings = {\n  name: missing_name,\n  title: Object(external_this_wp_i18n_[\"__\"])('Unsupported'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Your site doesn’t include support for this block.'),\n  __experimentalLabel: function __experimentalLabel(attributes, _ref) {\n    var context = _ref.context;\n\n    if (context === 'accessibility') {\n      var originalName = attributes.originalName;\n      var originalBlockType = originalName ? Object(external_this_wp_blocks_[\"getBlockType\"])(originalName) : undefined;\n\n      if (originalBlockType) {\n        return originalBlockType.settings.title || originalName;\n      }\n\n      return '';\n    }\n  },\n  edit: missing_edit,\n  save: missing_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/more.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar more = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 9v1.5h16V9H4zm12 5.5h4V13h-4v1.5zm-6 0h4V13h-4v1.5zm-6 0h4V13H4v1.5z\"\n}));\n/* harmony default export */ var library_more = (more);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/edit.js\n\n\n\n\n\n\n\n\nfunction more_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (more_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction more_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nvar edit_MoreEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MoreEdit, _Component);\n\n  var _super = more_edit_createSuper(MoreEdit);\n\n  function MoreEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, MoreEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.onChangeInput = _this.onChangeInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      defaultText: Object(external_this_wp_i18n_[\"__\"])('Read more')\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(MoreEdit, [{\n    key: \"onChangeInput\",\n    value: function onChangeInput(event) {\n      // Set defaultText to an empty string, allowing the user to clear/replace the input field's text\n      this.setState({\n        defaultText: ''\n      });\n      var value = event.target.value.length === 0 ? undefined : event.target.value;\n      this.props.setAttributes({\n        customText: value\n      });\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      var keyCode = event.keyCode;\n      var insertBlocksAfter = this.props.insertBlocksAfter;\n\n      if (keyCode === external_this_wp_keycodes_[\"ENTER\"]) {\n        insertBlocksAfter([Object(external_this_wp_blocks_[\"createBlock\"])(Object(external_this_wp_blocks_[\"getDefaultBlockName\"])())]);\n      }\n    }\n  }, {\n    key: \"getHideExcerptHelp\",\n    value: function getHideExcerptHelp(checked) {\n      return checked ? Object(external_this_wp_i18n_[\"__\"])('The excerpt is hidden.') : Object(external_this_wp_i18n_[\"__\"])('The excerpt is visible.');\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props$attribute = this.props.attributes,\n          customText = _this$props$attribute.customText,\n          noTeaser = _this$props$attribute.noTeaser;\n      var setAttributes = this.props.setAttributes;\n\n      var toggleHideExcerpt = function toggleHideExcerpt() {\n        return setAttributes({\n          noTeaser: !noTeaser\n        });\n      };\n\n      var defaultText = this.state.defaultText;\n      var value = customText !== undefined ? customText : defaultText;\n      var inputLength = value.length + 1.2;\n      var currentWidth = {\n        width: inputLength + 'em'\n      };\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Hide the excerpt on the full content page'),\n        checked: !!noTeaser,\n        onChange: toggleHideExcerpt,\n        help: this.getHideExcerptHelp\n      }))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"wp-block-more\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        type: \"text\",\n        value: value,\n        onChange: this.onChangeInput,\n        onKeyDown: this.onKeyDown,\n        style: currentWidth\n      })));\n    }\n  }]);\n\n  return MoreEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction more_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var customText = attributes.customText,\n      noTeaser = attributes.noTeaser;\n  var moreTag = customText ? \"<!--more \".concat(customText, \"-->\") : '<!--more-->';\n  var noTeaserTag = noTeaser ? '<!--noteaser-->' : '';\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, Object(external_this_lodash_[\"compact\"])([moreTag, noTeaserTag]).join('\\n'));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar more_transforms_transforms = {\n  from: [{\n    type: 'raw',\n    schema: {\n      'wp-block': {\n        attributes: ['data-block']\n      }\n    },\n    isMatch: function isMatch(node) {\n      return node.dataset && node.dataset.block === 'core/more';\n    },\n    transform: function transform(node) {\n      var _node$dataset = node.dataset,\n          customText = _node$dataset.customText,\n          noTeaser = _node$dataset.noTeaser;\n      var attrs = {}; // Don't copy unless defined and not an empty string\n\n      if (customText) {\n        attrs.customText = customText;\n      } // Special handling for boolean\n\n\n      if (noTeaser === '') {\n        attrs.noTeaser = true;\n      }\n\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/more', attrs);\n    }\n  }]\n};\n/* harmony default export */ var more_transforms = (more_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/more/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar more_metadata = {\n  name: \"core/more\",\n  category: \"design\",\n  attributes: {\n    customText: {\n      type: \"string\"\n    },\n    noTeaser: {\n      type: \"boolean\",\n      \"default\": false\n    }\n  },\n  supports: {\n    customClassName: false,\n    className: false,\n    html: false,\n    multiple: false\n  }\n};\n\n\nvar more_name = more_metadata.name;\n\nvar more_settings = {\n  title: Object(external_this_wp_i18n_[\"_x\"])('More', 'block name'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Content before this block will be shown in the excerpt on your archives page.'),\n  icon: library_more,\n  example: {},\n  __experimentalLabel: function __experimentalLabel(attributes, _ref) {\n    var context = _ref.context;\n\n    if (context === 'accessibility') {\n      return attributes.customText;\n    }\n  },\n  transforms: more_transforms,\n  edit: edit_MoreEdit,\n  save: more_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page-break.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pageBreak = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M7.8 6c0-.7.6-1.2 1.2-1.2h6c.7 0 1.2.6 1.2 1.2v3h1.5V6c0-1.5-1.2-2.8-2.8-2.8H9C7.5 3.2 6.2 4.5 6.2 6v3h1.5V6zm8.4 11c0 .7-.6 1.2-1.2 1.2H9c-.7 0-1.2-.6-1.2-1.2v-3H6.2v3c0 1.5 1.2 2.8 2.8 2.8h6c1.5 0 2.8-1.2 2.8-2.8v-3h-1.5v3zM4 11v1h16v-1H4z\"\n}));\n/* harmony default export */ var page_break = (pageBreak);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction NextPageEdit() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-nextpage\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_i18n_[\"__\"])('Page break')));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction nextpage_save_save() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, '<!--nextpage-->');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar nextpage_transforms_transforms = {\n  from: [{\n    type: 'raw',\n    schema: {\n      'wp-block': {\n        attributes: ['data-block']\n      }\n    },\n    isMatch: function isMatch(node) {\n      return node.dataset && node.dataset.block === 'core/nextpage';\n    },\n    transform: function transform() {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/nextpage', {});\n    }\n  }]\n};\n/* harmony default export */ var nextpage_transforms = (nextpage_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/nextpage/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar nextpage_metadata = {\n  name: \"core/nextpage\",\n  category: \"design\",\n  parent: [\"core/post-content\"],\n  supports: {\n    customClassName: false,\n    className: false,\n    html: false\n  }\n};\n\n\nvar nextpage_name = nextpage_metadata.name;\n\nvar nextpage_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Page Break'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Separate your content into a multi-page experience.'),\n  icon: page_break,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('next page'), Object(external_this_wp_i18n_[\"__\"])('pagination')],\n  example: {},\n  transforms: nextpage_transforms,\n  edit: NextPageEdit,\n  save: nextpage_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/preformatted.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar preformatted = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v12zM7 16.5h6V15H7v1.5zm4-4h6V11h-6v1.5zM9 11H7v1.5h2V11zm6 5.5h2V15h-2v1.5z\"\n}));\n/* harmony default export */ var library_preformatted = (preformatted);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PreformattedEdit(_ref) {\n  var attributes = _ref.attributes,\n      mergeBlocks = _ref.mergeBlocks,\n      setAttributes = _ref.setAttributes,\n      className = _ref.className,\n      style = _ref.style;\n  var content = attributes.content;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    tagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].pre,\n    identifier: \"content\",\n    preserveWhiteSpace: true,\n    value: content,\n    onChange: function onChange(nextContent) {\n      setAttributes({\n        content: nextContent\n      });\n    },\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write preformatted text…'),\n    className: className,\n    style: style,\n    onMerge: mergeBlocks\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction preformatted_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var content = attributes.content;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"pre\",\n    value: content\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar preformatted_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/code', 'core/paragraph'],\n    transform: function transform(_ref) {\n      var content = _ref.content,\n          anchor = _ref.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/preformatted', {\n        content: content,\n        anchor: anchor\n      });\n    }\n  }, {\n    type: 'raw',\n    isMatch: function isMatch(node) {\n      return node.nodeName === 'PRE' && !(node.children.length === 1 && node.firstChild.nodeName === 'CODE');\n    },\n    schema: function schema(_ref2) {\n      var phrasingContentSchema = _ref2.phrasingContentSchema;\n      return {\n        pre: {\n          children: phrasingContentSchema\n        }\n      };\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', attributes);\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/code'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/code', attributes);\n    }\n  }]\n};\n/* harmony default export */ var preformatted_transforms = (preformatted_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/preformatted/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar preformatted_metadata = {\n  name: \"core/preformatted\",\n  category: \"text\",\n  attributes: {\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"pre\",\n      \"default\": \"\",\n      __unstablePreserveWhiteSpace: true\n    }\n  },\n  supports: {\n    anchor: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar preformatted_name = preformatted_metadata.name;\n\nvar preformatted_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Preformatted'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Add text that respects your spacing and tabs, and also allows styling.'),\n  icon: library_preformatted,\n  example: {\n    attributes: {\n      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n      // translators: Sample content for the Preformatted block. Can be replaced with a more locale-adequate work.\n      content: Object(external_this_wp_i18n_[\"__\"])('EXT. XANADU - FAINT DAWN - 1940 (MINIATURE)\\nWindow, very small in the distance, illuminated.\\nAll around this is an almost totally black screen. Now, as the camera moves slowly towards the window which is almost a postage stamp in the frame, other forms appear;')\n      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\n    }\n  },\n  transforms: preformatted_transforms,\n  edit: PreformattedEdit,\n  save: preformatted_save_save,\n  merge: function merge(attributes, attributesToMerge) {\n    return {\n      content: attributes.content + attributesToMerge.content\n    };\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/pullquote.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pullquote = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 8H6c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm.5 6c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-4c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v4zM4 4v1.5h16V4H4zm0 16h16v-1.5H4V20z\"\n}));\n/* harmony default export */ var library_pullquote = (pullquote);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/shared.js\nvar SOLID_COLOR_STYLE_NAME = 'solid-color';\nvar SOLID_COLOR_CLASS = \"is-style-\".concat(SOLID_COLOR_STYLE_NAME);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/deprecated.js\n\n\n\n\nfunction pullquote_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction pullquote_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { pullquote_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { pullquote_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar pullquote_deprecated_blockAttributes = {\n  value: {\n    type: 'string',\n    source: 'html',\n    selector: 'blockquote',\n    multiline: 'p'\n  },\n  citation: {\n    type: 'string',\n    source: 'html',\n    selector: 'cite',\n    default: ''\n  },\n  mainColor: {\n    type: 'string'\n  },\n  customMainColor: {\n    type: 'string'\n  },\n  textColor: {\n    type: 'string'\n  },\n  customTextColor: {\n    type: 'string'\n  }\n};\n\nfunction parseBorderColor(styleString) {\n  if (!styleString) {\n    return;\n  }\n\n  var matches = styleString.match(/border-color:([^;]+)[;]?/);\n\n  if (matches && matches[1]) {\n    return matches[1];\n  }\n}\n\nvar pullquote_deprecated_deprecated = [{\n  attributes: pullquote_deprecated_objectSpread({}, pullquote_deprecated_blockAttributes, {\n    // figureStyle is an attribute that never existed.\n    // We are using it as a way to access the styles previously applied to the figure.\n    figureStyle: {\n      source: 'attribute',\n      selector: 'figure',\n      attribute: 'style'\n    }\n  }),\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var mainColor = attributes.mainColor,\n        customMainColor = attributes.customMainColor,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor,\n        value = attributes.value,\n        citation = attributes.citation,\n        className = attributes.className,\n        figureStyle = attributes.figureStyle;\n    var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS);\n    var figureClasses, figureStyles; // Is solid color style\n\n    if (isSolidColorStyle) {\n      var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', mainColor);\n      figureClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({\n        'has-background': backgroundClass || customMainColor\n      }, backgroundClass, backgroundClass));\n      figureStyles = {\n        backgroundColor: backgroundClass ? undefined : customMainColor\n      }; // Is normal style and a custom color is being used ( we can set a style directly with its value)\n    } else if (customMainColor) {\n      figureStyles = {\n        borderColor: customMainColor\n      }; // If normal style and a named color are being used, we need to retrieve the color value to set the style,\n      // as there is no expectation that themes create classes that set border colors.\n    } else if (mainColor) {\n      // Previously here we queried the color settings to know the color value\n      // of a named color. This made the save function impure and the block was refactored,\n      // because meanwhile a change in the editor made it impossible to query color settings in the save function.\n      // Here instead of querying the color settings to know the color value, we retrieve the value\n      // directly from the style previously serialized.\n      var borderColor = parseBorderColor(figureStyle);\n      figureStyles = {\n        borderColor: borderColor\n      };\n    }\n\n    var blockquoteTextColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var blockquoteClasses = (textColor || customTextColor) && classnames_default()('has-text-color', Object(defineProperty[\"a\" /* default */])({}, blockquoteTextColorClass, blockquoteTextColorClass));\n    var blockquoteStyles = blockquoteTextColorClass ? undefined : {\n      color: customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: figureClasses,\n      style: figureStyles\n    }, Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      className: blockquoteClasses,\n      style: blockquoteStyles\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      value: value,\n      multiline: true\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"cite\",\n      value: citation\n    })));\n  },\n  migrate: function migrate(_ref2) {\n    var className = _ref2.className,\n        figureStyle = _ref2.figureStyle,\n        mainColor = _ref2.mainColor,\n        attributes = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"className\", \"figureStyle\", \"mainColor\"]);\n\n    var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS); // If is the default style, and a main color is set,\n    // migrate the main color value into a custom color.\n    // The custom color value is retrived by parsing the figure styles.\n\n    if (!isSolidColorStyle && mainColor && figureStyle) {\n      var borderColor = parseBorderColor(figureStyle);\n\n      if (borderColor) {\n        return pullquote_deprecated_objectSpread({}, attributes, {\n          className: className,\n          customMainColor: borderColor\n        });\n      }\n    }\n\n    return pullquote_deprecated_objectSpread({\n      className: className,\n      mainColor: mainColor\n    }, attributes);\n  }\n}, {\n  attributes: pullquote_deprecated_blockAttributes,\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var mainColor = attributes.mainColor,\n        customMainColor = attributes.customMainColor,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor,\n        value = attributes.value,\n        citation = attributes.citation,\n        className = attributes.className;\n    var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS);\n    var figureClass, figureStyles; // Is solid color style\n\n    if (isSolidColorStyle) {\n      figureClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', mainColor);\n\n      if (!figureClass) {\n        figureStyles = {\n          backgroundColor: customMainColor\n        };\n      } // Is normal style and a custom color is being used ( we can set a style directly with its value)\n\n    } else if (customMainColor) {\n      figureStyles = {\n        borderColor: customMainColor\n      }; // Is normal style and a named color is being used, we need to retrieve the color value to set the style,\n      // as there is no expectation that themes create classes that set border colors.\n    } else if (mainColor) {\n      var colors = Object(external_this_lodash_[\"get\"])(Object(external_this_wp_data_[\"select\"])('core/block-editor').getSettings(), ['colors'], []);\n      var colorObject = Object(external_this_wp_blockEditor_[\"getColorObjectByAttributeValues\"])(colors, mainColor);\n      figureStyles = {\n        borderColor: colorObject.color\n      };\n    }\n\n    var blockquoteTextColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var blockquoteClasses = textColor || customTextColor ? classnames_default()('has-text-color', Object(defineProperty[\"a\" /* default */])({}, blockquoteTextColorClass, blockquoteTextColorClass)) : undefined;\n    var blockquoteStyle = blockquoteTextColorClass ? undefined : {\n      color: customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n      className: figureClass,\n      style: figureStyles\n    }, Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      className: blockquoteClasses,\n      style: blockquoteStyle\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      value: value,\n      multiline: true\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"cite\",\n      value: citation\n    })));\n  }\n}, {\n  attributes: pullquote_deprecated_objectSpread({}, pullquote_deprecated_blockAttributes),\n  save: function save(_ref4) {\n    var attributes = _ref4.attributes;\n    var value = attributes.value,\n        citation = attributes.citation;\n    return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      value: value,\n      multiline: true\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"cite\",\n      value: citation\n    }));\n  }\n}, {\n  attributes: pullquote_deprecated_objectSpread({}, pullquote_deprecated_blockAttributes, {\n    citation: {\n      type: 'string',\n      source: 'html',\n      selector: 'footer'\n    },\n    align: {\n      type: 'string',\n      default: 'none'\n    }\n  }),\n  save: function save(_ref5) {\n    var attributes = _ref5.attributes;\n    var value = attributes.value,\n        citation = attributes.citation,\n        align = attributes.align;\n    return Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n      className: \"align\".concat(align)\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      value: value,\n      multiline: true\n    }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"footer\",\n      value: citation\n    }));\n  }\n}];\n/* harmony default export */ var pullquote_deprecated = (pullquote_deprecated_deprecated);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/figure.js\nvar Figure = 'figure';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/blockquote.js\nvar BlockQuote = 'blockquote';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/edit.js\n\n\n\n\n\n\n\n\n\n\nfunction pullquote_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (pullquote_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction pullquote_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar edit_PullQuoteEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PullQuoteEdit, _Component);\n\n  var _super = pullquote_edit_createSuper(PullQuoteEdit);\n\n  function PullQuoteEdit(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PullQuoteEdit);\n\n    _this = _super.call(this, props);\n    _this.wasTextColorAutomaticallyComputed = false;\n    _this.pullQuoteMainColorSetter = _this.pullQuoteMainColorSetter.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.pullQuoteTextColorSetter = _this.pullQuoteTextColorSetter.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PullQuoteEdit, [{\n    key: \"pullQuoteMainColorSetter\",\n    value: function pullQuoteMainColorSetter(colorValue) {\n      var _this$props = this.props,\n          colorUtils = _this$props.colorUtils,\n          textColor = _this$props.textColor,\n          setAttributes = _this$props.setAttributes,\n          setTextColor = _this$props.setTextColor,\n          setMainColor = _this$props.setMainColor,\n          className = _this$props.className;\n      var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS);\n      var needTextColor = !textColor.color || this.wasTextColorAutomaticallyComputed;\n      var shouldSetTextColor = isSolidColorStyle && needTextColor && colorValue;\n\n      if (isSolidColorStyle) {\n        // If we use the solid color style, set the color using the normal mechanism.\n        setMainColor(colorValue);\n      } else {\n        // If we use the default style, set the color as a custom color to force the usage of an inline style.\n        // Default style uses a border color for which classes are not available.\n        setAttributes({\n          customMainColor: colorValue\n        });\n      }\n\n      if (shouldSetTextColor) {\n        this.wasTextColorAutomaticallyComputed = true;\n        setTextColor(colorUtils.getMostReadableColor(colorValue));\n      }\n    }\n  }, {\n    key: \"pullQuoteTextColorSetter\",\n    value: function pullQuoteTextColorSetter(colorValue) {\n      var setTextColor = this.props.setTextColor;\n      setTextColor(colorValue);\n      this.wasTextColorAutomaticallyComputed = false;\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props2 = this.props,\n          attributes = _this$props2.attributes,\n          className = _this$props2.className,\n          mainColor = _this$props2.mainColor,\n          setAttributes = _this$props2.setAttributes; // If the block includes a named color and we switched from the\n      // solid color style to the default style.\n\n      if (attributes.mainColor && !Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS) && Object(external_this_lodash_[\"includes\"])(prevProps.className, SOLID_COLOR_CLASS)) {\n        // Remove the named color, and set the color as a custom color.\n        // This is done because named colors use classes, in the default style we use a border color,\n        // and themes don't set classes for border colors.\n        setAttributes({\n          mainColor: undefined,\n          customMainColor: mainColor.color\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          attributes = _this$props3.attributes,\n          mainColor = _this$props3.mainColor,\n          textColor = _this$props3.textColor,\n          setAttributes = _this$props3.setAttributes,\n          isSelected = _this$props3.isSelected,\n          className = _this$props3.className,\n          insertBlocksAfter = _this$props3.insertBlocksAfter;\n      var value = attributes.value,\n          citation = attributes.citation;\n      var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS);\n      var figureStyles = isSolidColorStyle ? {\n        backgroundColor: mainColor.color\n      } : {\n        borderColor: mainColor.color\n      };\n      var figureClasses = classnames_default()(className, Object(defineProperty[\"a\" /* default */])({\n        'has-background': isSolidColorStyle && mainColor.color\n      }, mainColor.class, isSolidColorStyle && mainColor.class));\n      var blockquoteStyles = {\n        color: textColor.color\n      };\n      var blockquoteClasses = textColor.color && classnames_default()('has-text-color', Object(defineProperty[\"a\" /* default */])({}, textColor.class, textColor.class));\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(Figure, {\n        style: figureStyles,\n        className: figureClasses\n      }, Object(external_this_wp_element_[\"createElement\"])(BlockQuote, {\n        style: blockquoteStyles,\n        className: blockquoteClasses\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        identifier: \"value\",\n        multiline: true,\n        value: value,\n        onChange: function onChange(nextValue) {\n          return setAttributes({\n            value: nextValue\n          });\n        },\n        placeholder: // translators: placeholder text used for the quote\n        Object(external_this_wp_i18n_[\"__\"])('Write quote…'),\n        textAlign: \"center\"\n      }), (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        identifier: \"citation\",\n        value: citation,\n        placeholder: // translators: placeholder text used for the citation\n        Object(external_this_wp_i18n_[\"__\"])('Write citation…'),\n        onChange: function onChange(nextCitation) {\n          return setAttributes({\n            citation: nextCitation\n          });\n        },\n        className: \"wp-block-pullquote__citation\",\n        __unstableMobileNoFocusOnMount: true,\n        textAlign: \"center\",\n        __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n          return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n        }\n      }))), external_this_wp_element_[\"Platform\"].OS === 'web' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PanelColorSettings\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Color settings'),\n        colorSettings: [{\n          value: mainColor.color,\n          onChange: this.pullQuoteMainColorSetter,\n          label: Object(external_this_wp_i18n_[\"__\"])('Main color')\n        }, {\n          value: textColor.color,\n          onChange: this.pullQuoteTextColorSetter,\n          label: Object(external_this_wp_i18n_[\"__\"])('Text color')\n        }]\n      }, isSolidColorStyle && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"ContrastChecker\"], Object(esm_extends[\"a\" /* default */])({\n        textColor: textColor.color,\n        backgroundColor: mainColor.color\n      }, {\n        isLargeText: false\n      })))));\n    }\n  }]);\n\n  return PullQuoteEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var pullquote_edit = (Object(external_this_wp_blockEditor_[\"withColors\"])({\n  mainColor: 'background-color',\n  textColor: 'color'\n})(edit_PullQuoteEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/save.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction pullquote_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var mainColor = attributes.mainColor,\n      customMainColor = attributes.customMainColor,\n      textColor = attributes.textColor,\n      customTextColor = attributes.customTextColor,\n      value = attributes.value,\n      citation = attributes.citation,\n      className = attributes.className;\n  var isSolidColorStyle = Object(external_this_lodash_[\"includes\"])(className, SOLID_COLOR_CLASS);\n  var figureClasses, figureStyles; // Is solid color style\n\n  if (isSolidColorStyle) {\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', mainColor);\n    figureClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({\n      'has-background': backgroundClass || customMainColor\n    }, backgroundClass, backgroundClass));\n    figureStyles = {\n      backgroundColor: backgroundClass ? undefined : customMainColor\n    }; // Is normal style and a custom color is being used ( we can set a style directly with its value)\n  } else if (customMainColor) {\n    figureStyles = {\n      borderColor: customMainColor\n    };\n  }\n\n  var blockquoteTextColorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n  var blockquoteClasses = (textColor || customTextColor) && classnames_default()('has-text-color', Object(defineProperty[\"a\" /* default */])({}, blockquoteTextColorClass, blockquoteTextColorClass));\n  var blockquoteStyles = blockquoteTextColorClass ? undefined : {\n    color: customTextColor\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n    className: figureClasses,\n    style: figureStyles\n  }, Object(external_this_wp_element_[\"createElement\"])(\"blockquote\", {\n    className: blockquoteClasses,\n    style: blockquoteStyles\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    value: value,\n    multiline: true\n  }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(citation) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"cite\",\n    value: citation\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/transforms.js\n\n\n\n\nfunction pullquote_transforms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction pullquote_transforms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { pullquote_transforms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { pullquote_transforms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\nvar pullquote_transforms_transforms = {\n  from: [{\n    type: 'block',\n    isMultiBlock: true,\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/pullquote', {\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: Object(external_this_wp_richText_[\"join\"])(attributes.map(function (_ref) {\n            var content = _ref.content;\n            return Object(external_this_wp_richText_[\"create\"])({\n              html: content\n            });\n          }), \"\\u2028\"),\n          multilineTag: 'p'\n        }),\n        anchor: attributes.anchor\n      });\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/heading'],\n    transform: function transform(_ref2) {\n      var content = _ref2.content,\n          anchor = _ref2.anchor;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/pullquote', {\n        value: \"<p>\".concat(content, \"</p>\"),\n        anchor: anchor\n      });\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(_ref3) {\n      var value = _ref3.value,\n          citation = _ref3.citation;\n      var paragraphs = [];\n\n      if (value && value !== '<p></p>') {\n        paragraphs.push.apply(paragraphs, Object(toConsumableArray[\"a\" /* default */])(Object(external_this_wp_richText_[\"split\"])(Object(external_this_wp_richText_[\"create\"])({\n          html: value,\n          multilineTag: 'p'\n        }), \"\\u2028\").map(function (piece) {\n          return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n            content: Object(external_this_wp_richText_[\"toHTMLString\"])({\n              value: piece\n            })\n          });\n        })));\n      }\n\n      if (citation && citation !== '<p></p>') {\n        paragraphs.push(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: citation\n        }));\n      }\n\n      if (paragraphs.length === 0) {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: ''\n        });\n      }\n\n      return paragraphs;\n    }\n  }, {\n    type: 'block',\n    blocks: ['core/heading'],\n    transform: function transform(_ref4) {\n      var value = _ref4.value,\n          citation = _ref4.citation,\n          attrs = Object(objectWithoutProperties[\"a\" /* default */])(_ref4, [\"value\", \"citation\"]);\n\n      // If there is no pullquote content, use the citation as the\n      // content of the resulting heading. A nonexistent citation\n      // will result in an empty heading.\n      if (value === '<p></p>') {\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/heading', {\n          content: citation\n        });\n      }\n\n      var pieces = Object(external_this_wp_richText_[\"split\"])(Object(external_this_wp_richText_[\"create\"])({\n        html: value,\n        multilineTag: 'p'\n      }), \"\\u2028\");\n      var headingBlock = Object(external_this_wp_blocks_[\"createBlock\"])('core/heading', {\n        content: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: pieces[0]\n        })\n      });\n\n      if (!citation && pieces.length === 1) {\n        return headingBlock;\n      }\n\n      var quotePieces = pieces.slice(1);\n      var pullquoteBlock = Object(external_this_wp_blocks_[\"createBlock\"])('core/pullquote', pullquote_transforms_objectSpread({}, attrs, {\n        citation: citation,\n        value: Object(external_this_wp_richText_[\"toHTMLString\"])({\n          value: quotePieces.length ? Object(external_this_wp_richText_[\"join\"])(pieces.slice(1), \"\\u2028\") : Object(external_this_wp_richText_[\"create\"])(),\n          multilineTag: 'p'\n        })\n      }));\n      return [headingBlock, pullquoteBlock];\n    }\n  }]\n};\n/* harmony default export */ var pullquote_transforms = (pullquote_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/pullquote/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar pullquote_metadata = {\n  name: \"core/pullquote\",\n  category: \"text\",\n  attributes: {\n    value: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"blockquote\",\n      multiline: \"p\"\n    },\n    citation: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"cite\",\n      \"default\": \"\"\n    },\n    mainColor: {\n      type: \"string\"\n    },\n    customMainColor: {\n      type: \"string\"\n    },\n    textColor: {\n      type: \"string\"\n    },\n    customTextColor: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: [\"left\", \"right\", \"wide\", \"full\"]\n  }\n};\n\n\nvar pullquote_name = pullquote_metadata.name;\n\nvar pullquote_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Pullquote'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Give special visual emphasis to a quote from your text.'),\n  icon: library_pullquote,\n  example: {\n    attributes: {\n      value: '<p>' + // translators: Quote serving as example for the Pullquote block. Attributed to Matt Mullenweg.\n      Object(external_this_wp_i18n_[\"__\"])('One of the hardest things to do in technology is disrupt yourself.') + '</p>',\n      citation: Object(external_this_wp_i18n_[\"__\"])('Matt Mullenweg')\n    }\n  },\n  styles: [{\n    name: 'default',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Default', 'block style'),\n    isDefault: true\n  }, {\n    name: SOLID_COLOR_STYLE_NAME,\n    label: Object(external_this_wp_i18n_[\"__\"])('Solid color')\n  }],\n  transforms: pullquote_transforms,\n  edit: pullquote_edit,\n  save: pullquote_save_save,\n  deprecated: pullquote_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit-panel/index.js\n\n\n\n\n\n\n\n\nfunction edit_panel_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (edit_panel_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction edit_panel_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar edit_panel_ReusableBlockEditPanel = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ReusableBlockEditPanel, _Component);\n\n  var _super = edit_panel_createSuper(ReusableBlockEditPanel);\n\n  function ReusableBlockEditPanel() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ReusableBlockEditPanel);\n\n    _this = _super.apply(this, arguments);\n    _this.titleField = Object(external_this_wp_element_[\"createRef\"])();\n    _this.editButton = Object(external_this_wp_element_[\"createRef\"])();\n    _this.handleFormSubmit = _this.handleFormSubmit.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleTitleChange = _this.handleTitleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleTitleKeyDown = _this.handleTitleKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ReusableBlockEditPanel, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // Select the input text when the form opens.\n      if (this.props.isEditing && this.titleField.current) {\n        this.titleField.current.select();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Select the input text only once when the form opens.\n      if (!prevProps.isEditing && this.props.isEditing) {\n        this.titleField.current.select();\n      } // Move focus back to the Edit button after pressing the Escape key or Save.\n\n\n      if ((prevProps.isEditing || prevProps.isSaving) && !this.props.isEditing && !this.props.isSaving) {\n        this.editButton.current.focus();\n      }\n    }\n  }, {\n    key: \"handleFormSubmit\",\n    value: function handleFormSubmit(event) {\n      event.preventDefault();\n      this.props.onSave();\n    }\n  }, {\n    key: \"handleTitleChange\",\n    value: function handleTitleChange(event) {\n      this.props.onChangeTitle(event.target.value);\n    }\n  }, {\n    key: \"handleTitleKeyDown\",\n    value: function handleTitleKeyDown(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"ESCAPE\"]) {\n        event.stopPropagation();\n        this.props.onCancel();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          isEditing = _this$props.isEditing,\n          title = _this$props.title,\n          isSaving = _this$props.isSaving,\n          isEditDisabled = _this$props.isEditDisabled,\n          onEdit = _this$props.onEdit,\n          instanceId = _this$props.instanceId;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !isEditing && !isSaving && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"reusable-block-edit-panel\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"b\", {\n        className: \"reusable-block-edit-panel__info\"\n      }, title), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        ref: this.editButton,\n        isSecondary: true,\n        className: \"reusable-block-edit-panel__button\",\n        disabled: isEditDisabled,\n        onClick: onEdit\n      }, Object(external_this_wp_i18n_[\"__\"])('Edit'))), (isEditing || isSaving) && Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n        className: \"reusable-block-edit-panel\",\n        onSubmit: this.handleFormSubmit\n      }, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: \"reusable-block-edit-panel__title-\".concat(instanceId),\n        className: \"reusable-block-edit-panel__label\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Name:')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        ref: this.titleField,\n        type: \"text\",\n        disabled: isSaving,\n        className: \"reusable-block-edit-panel__title\",\n        value: title,\n        onChange: this.handleTitleChange,\n        onKeyDown: this.handleTitleKeyDown,\n        id: \"reusable-block-edit-panel__title-\".concat(instanceId)\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        type: \"submit\",\n        isSecondary: true,\n        isBusy: isSaving,\n        disabled: !title || isSaving,\n        className: \"reusable-block-edit-panel__button\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Save'))));\n    }\n  }]);\n\n  return ReusableBlockEditPanel;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var edit_panel = (Object(external_this_wp_compose_[\"withInstanceId\"])(edit_panel_ReusableBlockEditPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/edit.js\n\n\n\n\n\n\n\n\nfunction block_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (block_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction block_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar edit_ReusableBlockEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ReusableBlockEdit, _Component);\n\n  var _super = block_edit_createSuper(ReusableBlockEdit);\n\n  function ReusableBlockEdit(_ref) {\n    var _this;\n\n    var reusableBlock = _ref.reusableBlock;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ReusableBlockEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.startEditing = _this.startEditing.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.stopEditing = _this.stopEditing.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setBlocks = _this.setBlocks.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setTitle = _this.setTitle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.save = _this.save.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n\n    if (reusableBlock) {\n      // Start in edit mode when we're working with a newly created reusable block\n      _this.state = {\n        isEditing: reusableBlock.isTemporary,\n        title: reusableBlock.title,\n        blocks: Object(external_this_wp_blocks_[\"parse\"])(reusableBlock.content)\n      };\n    } else {\n      // Start in preview mode when we're working with an existing reusable block\n      _this.state = {\n        isEditing: false,\n        title: null,\n        blocks: []\n      };\n    }\n\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ReusableBlockEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (!this.props.reusableBlock) {\n        this.props.fetchReusableBlock();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.reusableBlock !== this.props.reusableBlock && this.state.title === null) {\n        this.setState({\n          title: this.props.reusableBlock.title,\n          blocks: Object(external_this_wp_blocks_[\"parse\"])(this.props.reusableBlock.content)\n        });\n      }\n    }\n  }, {\n    key: \"startEditing\",\n    value: function startEditing() {\n      var reusableBlock = this.props.reusableBlock;\n      this.setState({\n        isEditing: true,\n        title: reusableBlock.title,\n        blocks: Object(external_this_wp_blocks_[\"parse\"])(reusableBlock.content)\n      });\n    }\n  }, {\n    key: \"stopEditing\",\n    value: function stopEditing() {\n      this.setState({\n        isEditing: false,\n        title: null,\n        blocks: []\n      });\n    }\n  }, {\n    key: \"setBlocks\",\n    value: function setBlocks(blocks) {\n      this.setState({\n        blocks: blocks\n      });\n    }\n  }, {\n    key: \"setTitle\",\n    value: function setTitle(title) {\n      this.setState({\n        title: title\n      });\n    }\n  }, {\n    key: \"save\",\n    value: function save() {\n      var _this$props = this.props,\n          onChange = _this$props.onChange,\n          onSave = _this$props.onSave;\n      var _this$state = this.state,\n          blocks = _this$state.blocks,\n          title = _this$state.title;\n      var content = Object(external_this_wp_blocks_[\"serialize\"])(blocks);\n      onChange({\n        title: title,\n        content: content\n      });\n      onSave();\n      this.stopEditing();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          isSelected = _this$props2.isSelected,\n          reusableBlock = _this$props2.reusableBlock,\n          isFetching = _this$props2.isFetching,\n          isSaving = _this$props2.isSaving,\n          canUpdateBlock = _this$props2.canUpdateBlock,\n          settings = _this$props2.settings;\n      var _this$state2 = this.state,\n          isEditing = _this$state2.isEditing,\n          title = _this$state2.title,\n          blocks = _this$state2.blocks;\n\n      if (!reusableBlock && isFetching) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null));\n      }\n\n      if (!reusableBlock) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], null, Object(external_this_wp_i18n_[\"__\"])('Block has been deleted or is unavailable.'));\n      }\n\n      var element = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockEditorProvider\"], {\n        settings: settings,\n        value: blocks,\n        onChange: this.setBlocks,\n        onInput: this.setBlocks\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"WritingFlow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockList\"], null)));\n\n      if (!isEditing) {\n        element = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, element);\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"block-library-block__reusable-block-container\"\n      }, (isSelected || isEditing) && Object(external_this_wp_element_[\"createElement\"])(edit_panel, {\n        isEditing: isEditing,\n        title: title !== null ? title : reusableBlock.title,\n        isSaving: isSaving && !reusableBlock.isTemporary,\n        isEditDisabled: !canUpdateBlock,\n        onEdit: this.startEditing,\n        onChangeTitle: this.setTitle,\n        onSave: this.save,\n        onCancel: this.stopEditing\n      }), element);\n    }\n  }]);\n\n  return ReusableBlockEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var block_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var _select = select('core/editor'),\n      getReusableBlock = _select.__experimentalGetReusableBlock,\n      isFetchingReusableBlock = _select.__experimentalIsFetchingReusableBlock,\n      isSavingReusableBlock = _select.__experimentalIsSavingReusableBlock;\n\n  var _select2 = select('core'),\n      canUser = _select2.canUser;\n\n  var _select3 = select('core/block-editor'),\n      __experimentalGetParsedReusableBlock = _select3.__experimentalGetParsedReusableBlock,\n      getSettings = _select3.getSettings;\n\n  var ref = ownProps.attributes.ref;\n  var reusableBlock = getReusableBlock(ref);\n  return {\n    reusableBlock: reusableBlock,\n    isFetching: isFetchingReusableBlock(ref),\n    isSaving: isSavingReusableBlock(ref),\n    blocks: reusableBlock ? __experimentalGetParsedReusableBlock(reusableBlock.id) : null,\n    canUpdateBlock: !!reusableBlock && !reusableBlock.isTemporary && !!canUser('update', 'blocks', ref),\n    settings: getSettings()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  var _dispatch = dispatch('core/editor'),\n      fetchReusableBlocks = _dispatch.__experimentalFetchReusableBlocks,\n      updateReusableBlock = _dispatch.__experimentalUpdateReusableBlock,\n      saveReusableBlock = _dispatch.__experimentalSaveReusableBlock;\n\n  var ref = ownProps.attributes.ref;\n  return {\n    fetchReusableBlock: Object(external_this_lodash_[\"partial\"])(fetchReusableBlocks, ref),\n    onChange: Object(external_this_lodash_[\"partial\"])(updateReusableBlock, ref),\n    onSave: Object(external_this_lodash_[\"partial\"])(saveReusableBlock, ref)\n  };\n})])(edit_ReusableBlockEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/block/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\nvar block_metadata = {\n  name: \"core/block\",\n  category: \"reusable\",\n  attributes: {\n    ref: {\n      type: \"number\"\n    }\n  },\n  supports: {\n    customClassName: false,\n    html: false,\n    inserter: false\n  }\n};\n\nvar block_name = block_metadata.name;\n\nvar block_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Reusable Block'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.'),\n  edit: block_edit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/rss.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar rss = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M5 10.2h-.8v1.5H5c1.9 0 3.8.8 5.1 2.1 1.4 1.4 2.1 3.2 2.1 5.1v.8h1.5V19c0-2.3-.9-4.5-2.6-6.2-1.6-1.6-3.8-2.6-6.1-2.6zm10.4-1.6C12.6 5.8 8.9 4.2 5 4.2h-.8v1.5H5c3.5 0 6.9 1.4 9.4 3.9s3.9 5.8 3.9 9.4v.8h1.5V19c0-3.9-1.6-7.6-4.4-10.4zM4 20h3v-3H4v3z\"\n}));\n/* harmony default export */ var library_rss = (rss);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/edit.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar DEFAULT_MIN_ITEMS = 1;\nvar DEFAULT_MAX_ITEMS = 10;\nfunction RSSEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(!attributes.feedURL),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isEditing = _useState2[0],\n      setIsEditing = _useState2[1];\n\n  var blockLayout = attributes.blockLayout,\n      columns = attributes.columns,\n      displayAuthor = attributes.displayAuthor,\n      displayDate = attributes.displayDate,\n      displayExcerpt = attributes.displayExcerpt,\n      excerptLength = attributes.excerptLength,\n      feedURL = attributes.feedURL,\n      itemsToShow = attributes.itemsToShow;\n\n  function toggleAttribute(propName) {\n    return function () {\n      var value = attributes[propName];\n      setAttributes(Object(defineProperty[\"a\" /* default */])({}, propName, !value));\n    };\n  }\n\n  function onSubmitURL(event) {\n    event.preventDefault();\n\n    if (feedURL) {\n      setIsEditing(false);\n    }\n  }\n\n  if (isEditing) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n      icon: library_rss,\n      label: \"RSS\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n      onSubmit: onSubmitURL,\n      className: \"wp-block-rss__placeholder-form\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n      placeholder: Object(external_this_wp_i18n_[\"__\"])('Enter URL here…'),\n      value: feedURL,\n      onChange: function onChange(value) {\n        return setAttributes({\n          feedURL: value\n        });\n      },\n      className: \"wp-block-rss__placeholder-input\"\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      isPrimary: true,\n      type: \"submit\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Use URL'))));\n  }\n\n  var toolbarControls = [{\n    icon: pencil[\"a\" /* default */],\n    title: Object(external_this_wp_i18n_[\"__\"])('Edit RSS URL'),\n    onClick: function onClick() {\n      return setIsEditing(true);\n    }\n  }, {\n    icon: library_list,\n    title: Object(external_this_wp_i18n_[\"__\"])('List view'),\n    onClick: function onClick() {\n      return setAttributes({\n        blockLayout: 'list'\n      });\n    },\n    isActive: blockLayout === 'list'\n  }, {\n    icon: grid[\"a\" /* default */],\n    title: Object(external_this_wp_i18n_[\"__\"])('Grid view'),\n    onClick: function onClick() {\n      return setAttributes({\n        blockLayout: 'grid'\n      });\n    },\n    isActive: blockLayout === 'grid'\n  }];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], {\n    controls: toolbarControls\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('RSS settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Number of items'),\n    value: itemsToShow,\n    onChange: function onChange(value) {\n      return setAttributes({\n        itemsToShow: value\n      });\n    },\n    min: DEFAULT_MIN_ITEMS,\n    max: DEFAULT_MAX_ITEMS,\n    required: true\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Display author'),\n    checked: displayAuthor,\n    onChange: toggleAttribute('displayAuthor')\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Display date'),\n    checked: displayDate,\n    onChange: toggleAttribute('displayDate')\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Display excerpt'),\n    checked: displayExcerpt,\n    onChange: toggleAttribute('displayExcerpt')\n  }), displayExcerpt && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Max number of words in excerpt'),\n    value: excerptLength,\n    onChange: function onChange(value) {\n      return setAttributes({\n        excerptLength: value\n      });\n    },\n    min: 10,\n    max: 100,\n    required: true\n  }), blockLayout === 'grid' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n    value: columns,\n    onChange: function onChange(value) {\n      return setAttributes({\n        columns: value\n      });\n    },\n    min: 2,\n    max: 6,\n    required: true\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_serverSideRender_default.a, {\n    block: \"core/rss\",\n    attributes: attributes\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/rss/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar rss_metadata = {\n  name: \"core/rss\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    columns: {\n      type: \"number\",\n      \"default\": 2\n    },\n    blockLayout: {\n      type: \"string\",\n      \"default\": \"list\"\n    },\n    feedURL: {\n      type: \"string\",\n      \"default\": \"\"\n    },\n    itemsToShow: {\n      type: \"number\",\n      \"default\": 5\n    },\n    displayExcerpt: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayAuthor: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    displayDate: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    excerptLength: {\n      type: \"number\",\n      \"default\": 55\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\n\nvar rss_name = rss_metadata.name;\n\nvar rss_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('RSS'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display entries from any RSS or Atom feed.'),\n  icon: library_rss,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('atom'), Object(external_this_wp_i18n_[\"__\"])('feed')],\n  example: {\n    attributes: {\n      feedURL: 'https://wordpress.org'\n    }\n  },\n  edit: RSSEdit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction SearchEdit(_ref) {\n  var className = _ref.className,\n      attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes;\n  var label = attributes.label,\n      placeholder = attributes.placeholder,\n      buttonText = attributes.buttonText;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    className: \"wp-block-search__label\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Label text'),\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Add label…'),\n    withoutInteractiveFormatting: true,\n    value: label,\n    onChange: function onChange(html) {\n      return setAttributes({\n        label: html\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    className: \"wp-block-search__input\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Optional placeholder text') // We hide the placeholder field's placeholder when there is a value. This\n    // stops screen readers from reading the placeholder field's placeholder\n    // which is confusing.\n    ,\n    placeholder: placeholder ? undefined : Object(external_this_wp_i18n_[\"__\"])('Optional placeholder…'),\n    value: placeholder,\n    onChange: function onChange(event) {\n      return setAttributes({\n        placeholder: event.target.value\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    className: \"wp-block-search__button\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Button text'),\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Add button text…'),\n    withoutInteractiveFormatting: true,\n    value: buttonText,\n    onChange: function onChange(html) {\n      return setAttributes({\n        buttonText: html\n      });\n    }\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/variations.js\n/**\n * WordPress dependencies\n */\n\nvar search_variations_variations = [{\n  name: 'default',\n  isDefault: true,\n  attributes: {\n    buttonText: Object(external_this_wp_i18n_[\"__\"])('Search'),\n    label: Object(external_this_wp_i18n_[\"__\"])('Search')\n  }\n}];\n/* harmony default export */ var search_variations = (search_variations_variations);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/search/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar search_metadata = {\n  name: \"core/search\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    label: {\n      type: \"string\"\n    },\n    placeholder: {\n      type: \"string\",\n      \"default\": \"\"\n    },\n    buttonText: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    align: true,\n    html: false\n  }\n};\n\n\nvar search_name = search_metadata.name;\n\nvar search_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Search'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Help visitors find your content.'),\n  icon: search[\"a\" /* default */],\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('find')],\n  example: {},\n  variations: search_variations,\n  edit: SearchEdit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/group.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar group = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z\"\n}));\n/* harmony default export */ var library_group = (group);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/deprecated.js\n\n\n\nfunction group_deprecated_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction group_deprecated_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { group_deprecated_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { group_deprecated_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar deprecated_migrateAttributes = function migrateAttributes(attributes) {\n  if (!attributes.tagName) {\n    attributes = group_deprecated_objectSpread({}, attributes, {\n      tagName: 'div'\n    });\n  }\n\n  if (!attributes.customTextColor && !attributes.customBackgroundColor) {\n    return attributes;\n  }\n\n  var style = {\n    color: {}\n  };\n\n  if (attributes.customTextColor) {\n    style.color.text = attributes.customTextColor;\n  }\n\n  if (attributes.customBackgroundColor) {\n    style.color.background = attributes.customBackgroundColor;\n  }\n\n  return group_deprecated_objectSpread({}, Object(external_this_lodash_[\"omit\"])(attributes, ['customTextColor', 'customBackgroundColor']), {\n    style: style\n  });\n};\n\nvar group_deprecated_deprecated = [// Version of the block without global styles support\n{\n  attributes: {\n    backgroundColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    }\n  },\n  supports: {\n    align: ['wide', 'full'],\n    anchor: true,\n    html: false\n  },\n  migrate: deprecated_migrateAttributes,\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor;\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()(backgroundClass, textClass, {\n      'has-text-color': textColor || customTextColor,\n      'has-background': backgroundColor || customBackgroundColor\n    });\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: styles\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-group__inner-container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, // Version of the group block with a bug that made text color class not applied.\n{\n  attributes: {\n    backgroundColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    },\n    textColor: {\n      type: 'string'\n    },\n    customTextColor: {\n      type: 'string'\n    }\n  },\n  migrate: deprecated_migrateAttributes,\n  supports: {\n    align: ['wide', 'full'],\n    anchor: true,\n    html: false\n  },\n  save: function save(_ref2) {\n    var attributes = _ref2.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor,\n        textColor = attributes.textColor,\n        customTextColor = attributes.customTextColor;\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var textClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', textColor);\n    var className = classnames_default()(backgroundClass, {\n      'has-text-color': textColor || customTextColor,\n      'has-background': backgroundColor || customBackgroundColor\n    });\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor,\n      color: textClass ? undefined : customTextColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: styles\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-group__inner-container\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n  }\n}, // v1 of group block. Deprecated to add an inner-container div around `InnerBlocks.Content`.\n{\n  attributes: {\n    backgroundColor: {\n      type: 'string'\n    },\n    customBackgroundColor: {\n      type: 'string'\n    }\n  },\n  supports: {\n    align: ['wide', 'full'],\n    anchor: true,\n    html: false\n  },\n  migrate: deprecated_migrateAttributes,\n  save: function save(_ref3) {\n    var attributes = _ref3.attributes;\n    var backgroundColor = attributes.backgroundColor,\n        customBackgroundColor = attributes.customBackgroundColor;\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var className = classnames_default()(backgroundClass, {\n      'has-background': backgroundColor || customBackgroundColor\n    });\n    var styles = {\n      backgroundColor: backgroundClass ? undefined : customBackgroundColor\n    };\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className,\n      style: styles\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n  }\n}];\n/* harmony default export */ var group_deprecated = (group_deprecated_deprecated);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction GroupEdit(_ref) {\n  var attributes = _ref.attributes,\n      className = _ref.className,\n      clientId = _ref.clientId;\n  var hasInnerBlocks = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getBlock = _select.getBlock;\n\n    var block = getBlock(clientId);\n    return !!(block && block.innerBlocks.length);\n  }, [clientId]);\n  var BlockWrapper = external_this_wp_blockEditor_[\"__experimentalBlock\"][attributes.tagName];\n  return Object(external_this_wp_element_[\"createElement\"])(BlockWrapper, {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    renderAppender: hasInnerBlocks ? undefined : function () {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].ButtonBlockAppender, null);\n    },\n    __experimentalTagName: \"div\",\n    __experimentalPassedProps: {\n      className: 'wp-block-group__inner-container'\n    }\n  }));\n}\n\n/* harmony default export */ var group_edit = (GroupEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction group_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var Tag = attributes.tagName;\n  return Object(external_this_wp_element_[\"createElement\"])(Tag, null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-group__inner-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/group/index.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar group_metadata = {\n  name: \"core/group\",\n  category: \"design\",\n  attributes: {\n    tagName: {\n      type: \"string\",\n      \"default\": \"div\"\n    }\n  },\n  supports: {\n    align: [\"wide\", \"full\"],\n    anchor: true,\n    html: false,\n    lightBlockWrapper: true,\n    __experimentalColor: {\n      gradients: true,\n      linkColor: true\n    }\n  }\n};\n\nvar group_name = group_metadata.name;\n\nvar group_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Group'),\n  icon: library_group,\n  description: Object(external_this_wp_i18n_[\"__\"])('A block that groups other blocks.'),\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('container'), Object(external_this_wp_i18n_[\"__\"])('wrapper'), Object(external_this_wp_i18n_[\"__\"])('row'), Object(external_this_wp_i18n_[\"__\"])('section')],\n  example: {\n    attributes: {\n      style: {\n        color: {\n          text: '#000000',\n          background: '#ffffff'\n        }\n      }\n    },\n    innerBlocks: [{\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#cf2e2e',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('One.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#ff6900',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('Two.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#fcb900',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('Three.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#00d084',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('Four.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#0693e3',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('Five.')\n      }\n    }, {\n      name: 'core/paragraph',\n      attributes: {\n        customTextColor: '#9b51e0',\n        fontSize: 'large',\n        content: Object(external_this_wp_i18n_[\"__\"])('Six.')\n      }\n    }]\n  },\n  transforms: {\n    from: [{\n      type: 'block',\n      isMultiBlock: true,\n      blocks: ['*'],\n      __experimentalConvert: function __experimentalConvert(blocks) {\n        // Avoid transforming a single `core/group` Block\n        if (blocks.length === 1 && blocks[0].name === 'core/group') {\n          return;\n        }\n\n        var alignments = ['wide', 'full']; // Determine the widest setting of all the blocks to be grouped\n\n        var widestAlignment = blocks.reduce(function (accumulator, block) {\n          var align = block.attributes.align;\n          return alignments.indexOf(align) > alignments.indexOf(accumulator) ? align : accumulator;\n        }, undefined); // Clone the Blocks to be Grouped\n        // Failing to create new block references causes the original blocks\n        // to be replaced in the switchToBlockType call thereby meaning they\n        // are removed both from their original location and within the\n        // new group block.\n\n        var groupInnerBlocks = blocks.map(function (block) {\n          return Object(external_this_wp_blocks_[\"createBlock\"])(block.name, block.attributes, block.innerBlocks);\n        });\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/group', {\n          align: widestAlignment\n        }, groupInnerBlocks);\n      }\n    }]\n  },\n  edit: group_edit,\n  save: group_save_save,\n  deprecated: group_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/separator.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar separator = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20.2 7v4H3.8V7H2.2v9h1.6v-3.5h16.4V16h1.6V7z\"\n}));\n/* harmony default export */ var library_separator = (separator);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/separator-settings.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar separator_settings_SeparatorSettings = function SeparatorSettings(_ref) {\n  var color = _ref.color,\n      setColor = _ref.setColor;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PanelColorSettings\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Color settings'),\n    colorSettings: [{\n      value: color.color,\n      onChange: setColor,\n      label: Object(external_this_wp_i18n_[\"__\"])('Color')\n    }]\n  }));\n};\n\n/* harmony default export */ var separator_settings = (separator_settings_SeparatorSettings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction SeparatorEdit(_ref) {\n  var color = _ref.color,\n      setColor = _ref.setColor,\n      className = _ref.className;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"HorizontalRule\"], {\n    className: classnames_default()(className, Object(defineProperty[\"a\" /* default */])({\n      'has-background': color.color\n    }, color.class, color.class)),\n    style: {\n      backgroundColor: color.color,\n      color: color.color\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(separator_settings, {\n    color: color,\n    setColor: setColor\n  }));\n}\n\n/* harmony default export */ var separator_edit = (Object(external_this_wp_blockEditor_[\"withColors\"])('color', {\n  textColor: 'color'\n})(SeparatorEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction separatorSave(_ref) {\n  var _classnames;\n\n  var attributes = _ref.attributes;\n  var color = attributes.color,\n      customColor = attributes.customColor; // the hr support changing color using border-color, since border-color\n  // is not yet supported in the color palette, we use background-color\n\n  var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', color); // the dots styles uses text for the dots, to change those dots color is\n  // using color, not backgroundColor\n\n  var colorClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', color);\n  var separatorClasses = classnames_default()((_classnames = {\n    'has-text-color has-background': color || customColor\n  }, Object(defineProperty[\"a\" /* default */])(_classnames, backgroundClass, backgroundClass), Object(defineProperty[\"a\" /* default */])(_classnames, colorClass, colorClass), _classnames));\n  var separatorStyle = {\n    backgroundColor: backgroundClass ? undefined : customColor,\n    color: colorClass ? undefined : customColor\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(\"hr\", {\n    className: separatorClasses,\n    style: separatorStyle\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar separator_transforms_transforms = {\n  from: [{\n    type: 'enter',\n    regExp: /^-{3,}$/,\n    transform: function transform() {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/separator');\n    }\n  }, {\n    type: 'raw',\n    selector: 'hr',\n    schema: {\n      hr: {}\n    }\n  }]\n};\n/* harmony default export */ var separator_transforms = (separator_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/separator/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar separator_metadata = {\n  name: \"core/separator\",\n  category: \"design\",\n  attributes: {\n    color: {\n      type: \"string\"\n    },\n    customColor: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true\n  }\n};\n\n\nvar separator_name = separator_metadata.name;\n\nvar build_module_separator_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Separator'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Create a break between ideas or sections with a horizontal separator.'),\n  icon: library_separator,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('horizontal-line'), 'hr', Object(external_this_wp_i18n_[\"__\"])('divider')],\n  example: {\n    attributes: {\n      customColor: '#065174',\n      className: 'is-style-wide'\n    }\n  },\n  styles: [{\n    name: 'default',\n    label: Object(external_this_wp_i18n_[\"__\"])('Default'),\n    isDefault: true\n  }, {\n    name: 'wide',\n    label: Object(external_this_wp_i18n_[\"__\"])('Wide Line')\n  }, {\n    name: 'dots',\n    label: Object(external_this_wp_i18n_[\"__\"])('Dots')\n  }],\n  transforms: separator_transforms,\n  edit: separator_edit,\n  save: separatorSave\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/shortcode.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar shortcode_shortcode = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M16 4.2v1.5h2.5v12.5H16v1.5h4V4.2h-4zM4.2 19.8h4v-1.5H5.8V5.8h2.5V4.2h-4l-.1 15.6zm5.1-3.1l1.4.6 4-10-1.4-.6-4 10z\"\n}));\n/* harmony default export */ var library_shortcode = (shortcode_shortcode);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar build_module_icon = __webpack_require__(131);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction ShortcodeEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(ShortcodeEdit);\n  var inputId = \"blocks-shortcode-input-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"wp-block-shortcode components-placeholder\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    htmlFor: inputId,\n    className: \"components-placeholder__label\"\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    icon: library_shortcode\n  }), Object(external_this_wp_i18n_[\"__\"])('Shortcode')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PlainText\"], {\n    className: \"blocks-shortcode__textarea\",\n    id: inputId,\n    value: attributes.text,\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write shortcode here…'),\n    onChange: function onChange(text) {\n      return setAttributes({\n        text: text\n      });\n    }\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction shortcode_save_save(_ref) {\n  var attributes = _ref.attributes;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, attributes.text);\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"autop\"]}\nvar external_this_wp_autop_ = __webpack_require__(96);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar shortcode_transforms_transforms = {\n  from: [{\n    type: 'shortcode',\n    // Per \"Shortcode names should be all lowercase and use all\n    // letters, but numbers and underscores should work fine too.\n    // Be wary of using hyphens (dashes), you'll be better off not\n    // using them.\" in https://codex.wordpress.org/Shortcode_API\n    // Require that the first character be a letter. This notably\n    // prevents footnote markings ([1]) from being caught as\n    // shortcodes.\n    tag: '[a-z][a-z0-9_-]*',\n    attributes: {\n      text: {\n        type: 'string',\n        shortcode: function shortcode(attrs, _ref) {\n          var content = _ref.content;\n          return Object(external_this_wp_autop_[\"removep\"])(Object(external_this_wp_autop_[\"autop\"])(content));\n        }\n      }\n    },\n    priority: 20\n  }]\n};\n/* harmony default export */ var shortcode_transforms = (shortcode_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/shortcode/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar shortcode_metadata = {\n  name: \"core/shortcode\",\n  category: \"widgets\",\n  attributes: {\n    text: {\n      type: \"string\",\n      source: \"html\"\n    }\n  },\n  supports: {\n    className: false,\n    customClassName: false,\n    html: false\n  }\n};\nvar shortcode_name = shortcode_metadata.name;\n\nvar shortcode_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Shortcode'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Insert additional custom elements with a WordPress shortcode.'),\n  icon: library_shortcode,\n  transforms: shortcode_transforms,\n  edit: ShortcodeEdit,\n  save: shortcode_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/resize-corner-n-e.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar resizeCornerNE = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M12.5 4.2v1.6h4.7L5.8 17.2V12H4.2v7.8H12v-1.6H6.8L18.2 6.8v4.7h1.6V4.2z\"\n}));\n/* harmony default export */ var resize_corner_n_e = (resizeCornerNE);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nvar MIN_SPACER_HEIGHT = 20;\nvar MAX_SPACER_HEIGHT = 500;\n\nvar edit_SpacerEdit = function SpacerEdit(_ref) {\n  var attributes = _ref.attributes,\n      isSelected = _ref.isSelected,\n      setAttributes = _ref.setAttributes,\n      onResizeStart = _ref.onResizeStart,\n      onResizeStop = _ref.onResizeStop;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isResizing = _useState2[0],\n      setIsResizing = _useState2[1];\n\n  var height = attributes.height;\n\n  var updateHeight = function updateHeight(value) {\n    setAttributes({\n      height: value\n    });\n  };\n\n  var handleOnResizeStart = function handleOnResizeStart() {\n    onResizeStart.apply(void 0, arguments);\n    setIsResizing(true);\n  };\n\n  var handleOnResizeStop = function handleOnResizeStop(event, direction, elt, delta) {\n    onResizeStop();\n    var spacerHeight = Math.min(parseInt(height + delta.height, 10), MAX_SPACER_HEIGHT);\n    updateHeight(spacerHeight);\n    setIsResizing(false);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ResizableBox\"], {\n    className: classnames_default()('block-library-spacer__resize-container', {\n      'is-selected': isSelected\n    }),\n    size: {\n      height: height\n    },\n    minHeight: MIN_SPACER_HEIGHT,\n    enable: {\n      top: false,\n      right: false,\n      bottom: true,\n      left: false,\n      topRight: false,\n      bottomRight: false,\n      bottomLeft: false,\n      topLeft: false\n    },\n    onResizeStart: handleOnResizeStart,\n    onResizeStop: handleOnResizeStop,\n    showHandle: isSelected,\n    __experimentalShowTooltip: true,\n    __experimentalTooltipProps: {\n      axis: 'y',\n      position: 'bottom',\n      isVisible: isResizing\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Spacer settings')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Height in pixels'),\n    min: MIN_SPACER_HEIGHT,\n    max: Math.max(MAX_SPACER_HEIGHT, height),\n    value: height,\n    onChange: updateHeight\n  }))));\n};\n\n/* harmony default export */ var spacer_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      toggleSelection = _dispatch.toggleSelection;\n\n  return {\n    onResizeStart: function onResizeStart() {\n      return toggleSelection(false);\n    },\n    onResizeStop: function onResizeStop() {\n      return toggleSelection(true);\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(edit_SpacerEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/save.js\n\nfunction spacer_save_save(_ref) {\n  var attributes = _ref.attributes;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    style: {\n      height: attributes.height\n    },\n    \"aria-hidden\": true\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/spacer/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar spacer_metadata = {\n  name: \"core/spacer\",\n  category: \"design\",\n  attributes: {\n    height: {\n      type: \"number\",\n      \"default\": 100\n    }\n  },\n  supports: {\n    anchor: true\n  }\n};\n\nvar spacer_name = spacer_metadata.name;\n\nvar spacer_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Spacer'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Add white space between blocks and customize its height.'),\n  icon: resize_corner_n_e,\n  edit: spacer_edit,\n  save: spacer_save_save\n};\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/subhead/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction SubheadEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      className = _ref.className;\n  var align = attributes.align,\n      content = attributes.content,\n      placeholder = attributes.placeholder;\n  external_this_wp_deprecated_default()('The Subheading block', {\n    alternative: 'the Paragraph block',\n    plugin: 'Gutenberg'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n    value: align,\n    onChange: function onChange(nextAlign) {\n      setAttributes({\n        align: nextAlign\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    tagName: \"p\",\n    value: content,\n    onChange: function onChange(nextContent) {\n      setAttributes({\n        content: nextContent\n      });\n    },\n    style: {\n      textAlign: align\n    },\n    className: className,\n    placeholder: placeholder || Object(external_this_wp_i18n_[\"__\"])('Write subheading…')\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/subhead/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction subhead_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var align = attributes.align,\n      content = attributes.content;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"p\",\n    style: {\n      textAlign: align\n    },\n    value: content\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/subhead/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar subhead_transforms_transforms = {\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', attributes);\n    }\n  }]\n};\n/* harmony default export */ var subhead_transforms = (subhead_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/subhead/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar subhead_metadata = {\n  name: \"core/subhead\",\n  category: \"text\",\n  attributes: {\n    align: {\n      type: \"string\"\n    },\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"p\"\n    }\n  },\n  supports: {\n    inserter: false,\n    multiple: false\n  }\n};\n\n\nvar subhead_name = subhead_metadata.name;\n\nvar subhead_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Subheading (deprecated)'),\n  description: Object(external_this_wp_i18n_[\"__\"])('This block is deprecated. Please use the Paragraph block instead.'),\n  icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    d: \"M7.1 6l-.5 3h4.5L9.4 19h3l1.8-10h4.5l.5-3H7.1z\"\n  })),\n  transforms: subhead_transforms,\n  edit: SubheadEdit,\n  save: subhead_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/block-table.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar blockTable = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z\"\n}));\n/* harmony default export */ var block_table = (blockTable);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/deprecated.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar table_deprecated_supports = {\n  align: true\n};\nvar table_deprecated_deprecated = [{\n  attributes: {\n    hasFixedLayout: {\n      type: 'boolean',\n      default: false\n    },\n    backgroundColor: {\n      type: 'string'\n    },\n    head: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'thead tr',\n      query: {\n        cells: {\n          type: 'array',\n          default: [],\n          source: 'query',\n          selector: 'td,th',\n          query: {\n            content: {\n              type: 'string',\n              source: 'html'\n            },\n            tag: {\n              type: 'string',\n              default: 'td',\n              source: 'tag'\n            },\n            scope: {\n              type: 'string',\n              source: 'attribute',\n              attribute: 'scope'\n            }\n          }\n        }\n      }\n    },\n    body: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'tbody tr',\n      query: {\n        cells: {\n          type: 'array',\n          default: [],\n          source: 'query',\n          selector: 'td,th',\n          query: {\n            content: {\n              type: 'string',\n              source: 'html'\n            },\n            tag: {\n              type: 'string',\n              default: 'td',\n              source: 'tag'\n            },\n            scope: {\n              type: 'string',\n              source: 'attribute',\n              attribute: 'scope'\n            }\n          }\n        }\n      }\n    },\n    foot: {\n      type: 'array',\n      default: [],\n      source: 'query',\n      selector: 'tfoot tr',\n      query: {\n        cells: {\n          type: 'array',\n          default: [],\n          source: 'query',\n          selector: 'td,th',\n          query: {\n            content: {\n              type: 'string',\n              source: 'html'\n            },\n            tag: {\n              type: 'string',\n              default: 'td',\n              source: 'tag'\n            },\n            scope: {\n              type: 'string',\n              source: 'attribute',\n              attribute: 'scope'\n            }\n          }\n        }\n      }\n    }\n  },\n  supports: table_deprecated_supports,\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var hasFixedLayout = attributes.hasFixedLayout,\n        head = attributes.head,\n        body = attributes.body,\n        foot = attributes.foot,\n        backgroundColor = attributes.backgroundColor;\n    var isEmpty = !head.length && !body.length && !foot.length;\n\n    if (isEmpty) {\n      return null;\n    }\n\n    var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n    var classes = classnames_default()(backgroundClass, {\n      'has-fixed-layout': hasFixedLayout,\n      'has-background': !!backgroundClass\n    });\n\n    var Section = function Section(_ref2) {\n      var type = _ref2.type,\n          rows = _ref2.rows;\n\n      if (!rows.length) {\n        return null;\n      }\n\n      var Tag = \"t\".concat(type);\n      return Object(external_this_wp_element_[\"createElement\"])(Tag, null, rows.map(function (_ref3, rowIndex) {\n        var cells = _ref3.cells;\n        return Object(external_this_wp_element_[\"createElement\"])(\"tr\", {\n          key: rowIndex\n        }, cells.map(function (_ref4, cellIndex) {\n          var content = _ref4.content,\n              tag = _ref4.tag,\n              scope = _ref4.scope;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n            tagName: tag,\n            value: content,\n            key: cellIndex,\n            scope: tag === 'th' ? scope : undefined\n          });\n        }));\n      }));\n    };\n\n    return Object(external_this_wp_element_[\"createElement\"])(\"table\", {\n      className: classes\n    }, Object(external_this_wp_element_[\"createElement\"])(Section, {\n      type: \"head\",\n      rows: head\n    }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n      type: \"body\",\n      rows: body\n    }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n      type: \"foot\",\n      rows: foot\n    }));\n  }\n}];\n/* harmony default export */ var table_deprecated = (table_deprecated_deprecated);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-left.js\nvar align_left = __webpack_require__(283);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-center.js\nvar align_center = __webpack_require__(284);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/align-right.js\nvar align_right = __webpack_require__(285);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-before.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableRowBefore = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84zM6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z\"\n}));\n/* harmony default export */ var table_row_before = (tableRowBefore);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-after.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableRowAfter = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z\"\n}));\n/* harmony default export */ var table_row_after = (tableRowAfter);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-row-delete.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableRowDelete = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z\"\n}));\n/* harmony default export */ var table_row_delete = (tableRowDelete);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-before.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableColumnBefore = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z\"\n}));\n/* harmony default export */ var table_column_before = (tableColumnBefore);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-after.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableColumnAfter = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z\"\n}));\n/* harmony default export */ var table_column_after = (tableColumnAfter);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table-column-delete.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tableColumnDelete = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z\"\n}));\n/* harmony default export */ var table_column_delete = (tableColumnDelete);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/table.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar table = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M4 6v11.5h16V6H4zm1.5 1.5h6V11h-6V7.5zm0 8.5v-3.5h6V16h-6zm13 0H13v-3.5h5.5V16zM13 11V7.5h5.5V11H13z\"\n}));\n/* harmony default export */ var library_table = (table);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/state.js\n\n\n\nfunction state_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\nvar INHERITED_COLUMN_ATTRIBUTES = ['align'];\n/**\n * Creates a table state.\n *\n * @param {Object} options\n * @param {number} options.rowCount    Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\n\nfunction createTable(_ref) {\n  var rowCount = _ref.rowCount,\n      columnCount = _ref.columnCount;\n  return {\n    body: Object(external_this_lodash_[\"times\"])(rowCount, function () {\n      return {\n        cells: Object(external_this_lodash_[\"times\"])(columnCount, function () {\n          return {\n            content: '',\n            tag: 'td'\n          };\n        })\n      };\n    })\n  };\n}\n/**\n * Returns the first row in the table.\n *\n * @param {Object} state Current table state.\n *\n * @return {Object} The first table row.\n */\n\nfunction getFirstRow(state) {\n  if (!isEmptyTableSection(state.head)) {\n    return state.head[0];\n  }\n\n  if (!isEmptyTableSection(state.body)) {\n    return state.body[0];\n  }\n\n  if (!isEmptyTableSection(state.foot)) {\n    return state.foot[0];\n  }\n}\n/**\n * Gets an attribute for a cell.\n *\n * @param {Object} state \t\t Current table state.\n * @param {Object} cellLocation  The location of the cell\n * @param {string} attributeName The name of the attribute to get the value of.\n *\n * @return {*} The attribute value.\n */\n\nfunction getCellAttribute(state, cellLocation, attributeName) {\n  var sectionName = cellLocation.sectionName,\n      rowIndex = cellLocation.rowIndex,\n      columnIndex = cellLocation.columnIndex;\n  return Object(external_this_lodash_[\"get\"])(state, [sectionName, rowIndex, 'cells', columnIndex, attributeName]);\n}\n/**\n * Returns updated cell attributes after applying the `updateCell` function to the selection.\n *\n * @param {Object}   state      The block attributes.\n * @param {Object}   selection  The selection of cells to update.\n * @param {Function} updateCell A function to update the selected cell attributes.\n *\n * @return {Object} New table state including the updated cells.\n */\n\nfunction updateSelectedCell(state, selection, updateCell) {\n  if (!selection) {\n    return state;\n  }\n\n  var tableSections = Object(external_this_lodash_[\"pick\"])(state, ['head', 'body', 'foot']);\n  var selectionSectionName = selection.sectionName,\n      selectionRowIndex = selection.rowIndex;\n  return Object(external_this_lodash_[\"mapValues\"])(tableSections, function (section, sectionName) {\n    if (selectionSectionName && selectionSectionName !== sectionName) {\n      return section;\n    }\n\n    return section.map(function (row, rowIndex) {\n      if (selectionRowIndex && selectionRowIndex !== rowIndex) {\n        return row;\n      }\n\n      return {\n        cells: row.cells.map(function (cellAttributes, columnIndex) {\n          var cellLocation = {\n            sectionName: sectionName,\n            columnIndex: columnIndex,\n            rowIndex: rowIndex\n          };\n\n          if (!isCellSelected(cellLocation, selection)) {\n            return cellAttributes;\n          }\n\n          return updateCell(cellAttributes);\n        })\n      };\n    });\n  });\n}\n/**\n * Returns whether the cell at `cellLocation` is included in the selection `selection`.\n *\n * @param {Object} cellLocation An object containing cell location properties.\n * @param {Object} selection    An object containing selection properties.\n *\n * @return {boolean} True if the cell is selected, false otherwise.\n */\n\nfunction isCellSelected(cellLocation, selection) {\n  if (!cellLocation || !selection) {\n    return false;\n  }\n\n  switch (selection.type) {\n    case 'column':\n      return selection.type === 'column' && cellLocation.columnIndex === selection.columnIndex;\n\n    case 'cell':\n      return selection.type === 'cell' && cellLocation.sectionName === selection.sectionName && cellLocation.columnIndex === selection.columnIndex && cellLocation.rowIndex === selection.rowIndex;\n  }\n}\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state               Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to insert the row.\n * @param {number} options.rowIndex    Row index at which to insert the row.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\n\nfunction insertRow(state, _ref2) {\n  var sectionName = _ref2.sectionName,\n      rowIndex = _ref2.rowIndex,\n      columnCount = _ref2.columnCount;\n  var firstRow = getFirstRow(state);\n  var cellCount = columnCount === undefined ? Object(external_this_lodash_[\"get\"])(firstRow, ['cells', 'length']) : columnCount; // Bail early if the function cannot determine how many cells to add.\n\n  if (!cellCount) {\n    return state;\n  }\n\n  return Object(defineProperty[\"a\" /* default */])({}, sectionName, [].concat(Object(toConsumableArray[\"a\" /* default */])(state[sectionName].slice(0, rowIndex)), [{\n    cells: Object(external_this_lodash_[\"times\"])(cellCount, function (index) {\n      var firstCellInColumn = Object(external_this_lodash_[\"get\"])(firstRow, ['cells', index], {});\n      var inheritedAttributes = Object(external_this_lodash_[\"pick\"])(firstCellInColumn, INHERITED_COLUMN_ATTRIBUTES);\n      return state_objectSpread({}, inheritedAttributes, {\n        content: '',\n        tag: sectionName === 'head' ? 'th' : 'td'\n      });\n    })\n  }], Object(toConsumableArray[\"a\" /* default */])(state[sectionName].slice(rowIndex))));\n}\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state               Current table state.\n * @param {Object} options\n * @param {string} options.sectionName Section in which to delete the row.\n * @param {number} options.rowIndex    Row index to delete.\n *\n * @return {Object} New table state.\n */\n\nfunction deleteRow(state, _ref4) {\n  var sectionName = _ref4.sectionName,\n      rowIndex = _ref4.rowIndex;\n  return Object(defineProperty[\"a\" /* default */])({}, sectionName, state[sectionName].filter(function (row, index) {\n    return index !== rowIndex;\n  }));\n}\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state               Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\n\nfunction insertColumn(state, _ref6) {\n  var columnIndex = _ref6.columnIndex;\n  var tableSections = Object(external_this_lodash_[\"pick\"])(state, ['head', 'body', 'foot']);\n  return Object(external_this_lodash_[\"mapValues\"])(tableSections, function (section, sectionName) {\n    // Bail early if the table section is empty.\n    if (isEmptyTableSection(section)) {\n      return section;\n    }\n\n    return section.map(function (row) {\n      // Bail early if the row is empty or it's an attempt to insert past\n      // the last possible index of the array.\n      if (isEmptyRow(row) || row.cells.length < columnIndex) {\n        return row;\n      }\n\n      return {\n        cells: [].concat(Object(toConsumableArray[\"a\" /* default */])(row.cells.slice(0, columnIndex)), [{\n          content: '',\n          tag: sectionName === 'head' ? 'th' : 'td'\n        }], Object(toConsumableArray[\"a\" /* default */])(row.cells.slice(columnIndex)))\n      };\n    });\n  });\n}\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state               Current table state.\n * @param {Object} options\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\n\nfunction deleteColumn(state, _ref7) {\n  var columnIndex = _ref7.columnIndex;\n  var tableSections = Object(external_this_lodash_[\"pick\"])(state, ['head', 'body', 'foot']);\n  return Object(external_this_lodash_[\"mapValues\"])(tableSections, function (section) {\n    // Bail early if the table section is empty.\n    if (isEmptyTableSection(section)) {\n      return section;\n    }\n\n    return section.map(function (row) {\n      return {\n        cells: row.cells.length >= columnIndex ? row.cells.filter(function (cell, index) {\n          return index !== columnIndex;\n        }) : row.cells\n      };\n    }).filter(function (row) {\n      return row.cells.length;\n    });\n  });\n}\n/**\n * Toggles the existance of a section.\n *\n * @param {Object} state       Current table state.\n * @param {string} sectionName Name of the section to toggle.\n *\n * @return {Object} New table state.\n */\n\nfunction toggleSection(state, sectionName) {\n  // Section exists, replace it with an empty row to remove it.\n  if (!isEmptyTableSection(state[sectionName])) {\n    return Object(defineProperty[\"a\" /* default */])({}, sectionName, []);\n  } // Get the length of the first row of the body to use when creating the header.\n\n\n  var columnCount = Object(external_this_lodash_[\"get\"])(state, ['body', 0, 'cells', 'length'], 1); // Section doesn't exist, insert an empty row to create the section.\n\n  return insertRow(state, {\n    sectionName: sectionName,\n    rowIndex: 0,\n    columnCount: columnCount\n  });\n}\n/**\n * Determines whether a table section is empty.\n *\n * @param {Object} section Table section state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\n\nfunction isEmptyTableSection(section) {\n  return !section || !section.length || Object(external_this_lodash_[\"every\"])(section, isEmptyRow);\n}\n/**\n * Determines whether a table row is empty.\n *\n * @param {Object} row Table row state.\n *\n * @return {boolean} True if the table section is empty, false otherwise.\n */\n\nfunction isEmptyRow(row) {\n  return !(row.cells && row.cells.length);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/edit.js\n\n\n\n\n\n\n\n\n\nfunction table_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction table_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { table_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { table_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction table_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (table_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction table_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar BACKGROUND_COLORS = [{\n  color: '#f3f4f5',\n  name: 'Subtle light gray',\n  slug: 'subtle-light-gray'\n}, {\n  color: '#e9fbe5',\n  name: 'Subtle pale green',\n  slug: 'subtle-pale-green'\n}, {\n  color: '#e7f5fe',\n  name: 'Subtle pale blue',\n  slug: 'subtle-pale-blue'\n}, {\n  color: '#fcf0ef',\n  name: 'Subtle pale pink',\n  slug: 'subtle-pale-pink'\n}];\nvar ALIGNMENT_CONTROLS = [{\n  icon: align_left[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align Column Left'),\n  align: 'left'\n}, {\n  icon: align_center[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align Column Center'),\n  align: 'center'\n}, {\n  icon: align_right[\"a\" /* default */],\n  title: Object(external_this_wp_i18n_[\"__\"])('Align Column Right'),\n  align: 'right'\n}];\nvar withCustomBackgroundColors = Object(external_this_wp_blockEditor_[\"createCustomColorsHOC\"])(BACKGROUND_COLORS);\nvar edit_TableEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(TableEdit, _Component);\n\n  var _super = table_edit_createSuper(TableEdit);\n\n  function TableEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, TableEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.onCreateTable = _this.onCreateTable.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeFixedLayout = _this.onChangeFixedLayout.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeInitialColumnCount = _this.onChangeInitialColumnCount.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeInitialRowCount = _this.onChangeInitialRowCount.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderSection = _this.renderSection.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getTableControls = _this.getTableControls.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertRow = _this.onInsertRow.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertRowBefore = _this.onInsertRowBefore.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertRowAfter = _this.onInsertRowAfter.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDeleteRow = _this.onDeleteRow.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertColumn = _this.onInsertColumn.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertColumnBefore = _this.onInsertColumnBefore.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInsertColumnAfter = _this.onInsertColumnAfter.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDeleteColumn = _this.onDeleteColumn.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onToggleHeaderSection = _this.onToggleHeaderSection.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onToggleFooterSection = _this.onToggleFooterSection.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeColumnAlignment = _this.onChangeColumnAlignment.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getCellAlignment = _this.getCellAlignment.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      initialRowCount: 2,\n      initialColumnCount: 2,\n      selectedCell: null\n    };\n    return _this;\n  }\n  /**\n   * Updates the initial column count used for table creation.\n   *\n   * @param {number} initialColumnCount New initial column count.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(TableEdit, [{\n    key: \"onChangeInitialColumnCount\",\n    value: function onChangeInitialColumnCount(initialColumnCount) {\n      this.setState({\n        initialColumnCount: initialColumnCount\n      });\n    }\n    /**\n     * Updates the initial row count used for table creation.\n     *\n     * @param {number} initialRowCount New initial row count.\n     */\n\n  }, {\n    key: \"onChangeInitialRowCount\",\n    value: function onChangeInitialRowCount(initialRowCount) {\n      this.setState({\n        initialRowCount: initialRowCount\n      });\n    }\n    /**\n     * Creates a table based on dimensions in local state.\n     *\n     * @param {Object} event Form submit event.\n     */\n\n  }, {\n    key: \"onCreateTable\",\n    value: function onCreateTable(event) {\n      event.preventDefault();\n      var setAttributes = this.props.setAttributes;\n      var _this$state = this.state,\n          initialRowCount = _this$state.initialRowCount,\n          initialColumnCount = _this$state.initialColumnCount;\n      initialRowCount = parseInt(initialRowCount, 10) || 2;\n      initialColumnCount = parseInt(initialColumnCount, 10) || 2;\n      setAttributes(createTable({\n        rowCount: initialRowCount,\n        columnCount: initialColumnCount\n      }));\n    }\n    /**\n     * Toggles whether the table has a fixed layout or not.\n     */\n\n  }, {\n    key: \"onChangeFixedLayout\",\n    value: function onChangeFixedLayout() {\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          setAttributes = _this$props.setAttributes;\n      var hasFixedLayout = attributes.hasFixedLayout;\n      setAttributes({\n        hasFixedLayout: !hasFixedLayout\n      });\n    }\n    /**\n     * Changes the content of the currently selected cell.\n     *\n     * @param {Array} content A RichText content value.\n     */\n\n  }, {\n    key: \"onChange\",\n    value: function onChange(content) {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var _this$props2 = this.props,\n          attributes = _this$props2.attributes,\n          setAttributes = _this$props2.setAttributes;\n      setAttributes(updateSelectedCell(attributes, selectedCell, function (cellAttributes) {\n        return table_edit_objectSpread({}, cellAttributes, {\n          content: content\n        });\n      }));\n    }\n    /**\n     * Align text within the a column.\n     *\n     * @param {string} align The new alignment to apply to the column.\n     */\n\n  }, {\n    key: \"onChangeColumnAlignment\",\n    value: function onChangeColumnAlignment(align) {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      } // Convert the cell selection to a column selection so that alignment\n      // is applied to the entire column.\n\n\n      var columnSelection = {\n        type: 'column',\n        columnIndex: selectedCell.columnIndex\n      };\n      var _this$props3 = this.props,\n          attributes = _this$props3.attributes,\n          setAttributes = _this$props3.setAttributes;\n      var newAttributes = updateSelectedCell(attributes, columnSelection, function (cellAttributes) {\n        return table_edit_objectSpread({}, cellAttributes, {\n          align: align\n        });\n      });\n      setAttributes(newAttributes);\n    }\n    /**\n     * Get the alignment of the currently selected cell.\n     *\n     * @return {string} The new alignment to apply to the column.\n     */\n\n  }, {\n    key: \"getCellAlignment\",\n    value: function getCellAlignment() {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var attributes = this.props.attributes;\n      return getCellAttribute(attributes, selectedCell, 'align');\n    }\n    /**\n     * Add or remove a `head` table section.\n     */\n\n  }, {\n    key: \"onToggleHeaderSection\",\n    value: function onToggleHeaderSection() {\n      var _this$props4 = this.props,\n          attributes = _this$props4.attributes,\n          setAttributes = _this$props4.setAttributes;\n      setAttributes(toggleSection(attributes, 'head'));\n    }\n    /**\n     * Add or remove a `foot` table section.\n     */\n\n  }, {\n    key: \"onToggleFooterSection\",\n    value: function onToggleFooterSection() {\n      var _this$props5 = this.props,\n          attributes = _this$props5.attributes,\n          setAttributes = _this$props5.setAttributes;\n      setAttributes(toggleSection(attributes, 'foot'));\n    }\n    /**\n     * Inserts a row at the currently selected row index, plus `delta`.\n     *\n     * @param {number} delta Offset for selected row index at which to insert.\n     */\n\n  }, {\n    key: \"onInsertRow\",\n    value: function onInsertRow(delta) {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var _this$props6 = this.props,\n          attributes = _this$props6.attributes,\n          setAttributes = _this$props6.setAttributes;\n      var sectionName = selectedCell.sectionName,\n          rowIndex = selectedCell.rowIndex;\n      var newRowIndex = rowIndex + delta;\n      setAttributes(insertRow(attributes, {\n        sectionName: sectionName,\n        rowIndex: newRowIndex\n      })); // Select the first cell of the new row\n\n      this.setState({\n        selectedCell: {\n          sectionName: sectionName,\n          rowIndex: newRowIndex,\n          columnIndex: 0,\n          type: 'cell'\n        }\n      });\n    }\n    /**\n     * Inserts a row before the currently selected row.\n     */\n\n  }, {\n    key: \"onInsertRowBefore\",\n    value: function onInsertRowBefore() {\n      this.onInsertRow(0);\n    }\n    /**\n     * Inserts a row after the currently selected row.\n     */\n\n  }, {\n    key: \"onInsertRowAfter\",\n    value: function onInsertRowAfter() {\n      this.onInsertRow(1);\n    }\n    /**\n     * Deletes the currently selected row.\n     */\n\n  }, {\n    key: \"onDeleteRow\",\n    value: function onDeleteRow() {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var _this$props7 = this.props,\n          attributes = _this$props7.attributes,\n          setAttributes = _this$props7.setAttributes;\n      var sectionName = selectedCell.sectionName,\n          rowIndex = selectedCell.rowIndex;\n      this.setState({\n        selectedCell: null\n      });\n      setAttributes(deleteRow(attributes, {\n        sectionName: sectionName,\n        rowIndex: rowIndex\n      }));\n    }\n    /**\n     * Inserts a column at the currently selected column index, plus `delta`.\n     *\n     * @param {number} delta Offset for selected column index at which to insert.\n     */\n\n  }, {\n    key: \"onInsertColumn\",\n    value: function onInsertColumn() {\n      var delta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var _this$props8 = this.props,\n          attributes = _this$props8.attributes,\n          setAttributes = _this$props8.setAttributes;\n      var columnIndex = selectedCell.columnIndex;\n      var newColumnIndex = columnIndex + delta;\n      setAttributes(insertColumn(attributes, {\n        columnIndex: newColumnIndex\n      })); // Select the first cell of the new column\n\n      this.setState({\n        selectedCell: {\n          rowIndex: 0,\n          columnIndex: newColumnIndex,\n          type: 'cell'\n        }\n      });\n    }\n    /**\n     * Inserts a column before the currently selected column.\n     */\n\n  }, {\n    key: \"onInsertColumnBefore\",\n    value: function onInsertColumnBefore() {\n      this.onInsertColumn(0);\n    }\n    /**\n     * Inserts a column after the currently selected column.\n     */\n\n  }, {\n    key: \"onInsertColumnAfter\",\n    value: function onInsertColumnAfter() {\n      this.onInsertColumn(1);\n    }\n    /**\n     * Deletes the currently selected column.\n     */\n\n  }, {\n    key: \"onDeleteColumn\",\n    value: function onDeleteColumn() {\n      var selectedCell = this.state.selectedCell;\n\n      if (!selectedCell) {\n        return;\n      }\n\n      var _this$props9 = this.props,\n          attributes = _this$props9.attributes,\n          setAttributes = _this$props9.setAttributes;\n      var sectionName = selectedCell.sectionName,\n          columnIndex = selectedCell.columnIndex;\n      this.setState({\n        selectedCell: null\n      });\n      setAttributes(deleteColumn(attributes, {\n        sectionName: sectionName,\n        columnIndex: columnIndex\n      }));\n    }\n    /**\n     * Creates an onFocus handler for a specified cell.\n     *\n     * @param {Object} cellLocation Object with `section`, `rowIndex`, and\n     *                              `columnIndex` properties.\n     *\n     * @return {Function} Function to call on focus.\n     */\n\n  }, {\n    key: \"createOnFocus\",\n    value: function createOnFocus(cellLocation) {\n      var _this2 = this;\n\n      return function () {\n        _this2.setState({\n          selectedCell: table_edit_objectSpread({}, cellLocation, {\n            type: 'cell'\n          })\n        });\n      };\n    }\n    /**\n     * Gets the table controls to display in the block toolbar.\n     *\n     * @return {Array} Table controls.\n     */\n\n  }, {\n    key: \"getTableControls\",\n    value: function getTableControls() {\n      var selectedCell = this.state.selectedCell;\n      return [{\n        icon: table_row_before,\n        title: Object(external_this_wp_i18n_[\"__\"])('Add Row Before'),\n        isDisabled: !selectedCell,\n        onClick: this.onInsertRowBefore\n      }, {\n        icon: table_row_after,\n        title: Object(external_this_wp_i18n_[\"__\"])('Add Row After'),\n        isDisabled: !selectedCell,\n        onClick: this.onInsertRowAfter\n      }, {\n        icon: table_row_delete,\n        title: Object(external_this_wp_i18n_[\"__\"])('Delete Row'),\n        isDisabled: !selectedCell,\n        onClick: this.onDeleteRow\n      }, {\n        icon: table_column_before,\n        title: Object(external_this_wp_i18n_[\"__\"])('Add Column Before'),\n        isDisabled: !selectedCell,\n        onClick: this.onInsertColumnBefore\n      }, {\n        icon: table_column_after,\n        title: Object(external_this_wp_i18n_[\"__\"])('Add Column After'),\n        isDisabled: !selectedCell,\n        onClick: this.onInsertColumnAfter\n      }, {\n        icon: table_column_delete,\n        title: Object(external_this_wp_i18n_[\"__\"])('Delete Column'),\n        isDisabled: !selectedCell,\n        onClick: this.onDeleteColumn\n      }];\n    }\n    /**\n     * Renders a table section.\n     *\n     * @param {Object} options\n     * @param {string} options.name Section type: head, body, or foot.\n     * @param {Array}  options.rows The rows to render.\n     *\n     * @return {Object} React element for the section.\n     */\n\n  }, {\n    key: \"renderSection\",\n    value: function renderSection(_ref) {\n      var _this3 = this;\n\n      var name = _ref.name,\n          rows = _ref.rows;\n\n      if (isEmptyTableSection(rows)) {\n        return null;\n      }\n\n      var Tag = \"t\".concat(name);\n      return Object(external_this_wp_element_[\"createElement\"])(Tag, null, rows.map(function (_ref2, rowIndex) {\n        var cells = _ref2.cells;\n        return Object(external_this_wp_element_[\"createElement\"])(\"tr\", {\n          key: rowIndex\n        }, cells.map(function (_ref3, columnIndex) {\n          var content = _ref3.content,\n              CellTag = _ref3.tag,\n              scope = _ref3.scope,\n              align = _ref3.align;\n          var cellLocation = {\n            sectionName: name,\n            rowIndex: rowIndex,\n            columnIndex: columnIndex\n          };\n          var cellClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align), 'wp-block-table__cell-content');\n          var placeholder = '';\n\n          if (name === 'head') {\n            placeholder = Object(external_this_wp_i18n_[\"__\"])('Header label');\n          } else if (name === 'foot') {\n            placeholder = Object(external_this_wp_i18n_[\"__\"])('Footer label');\n          }\n\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n            tagName: CellTag,\n            key: columnIndex,\n            className: cellClasses,\n            scope: CellTag === 'th' ? scope : undefined,\n            value: content,\n            onChange: _this3.onChange,\n            unstableOnFocus: _this3.createOnFocus(cellLocation),\n            placeholder: placeholder\n          });\n        }));\n      }));\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      var isSelected = this.props.isSelected;\n      var selectedCell = this.state.selectedCell;\n\n      if (!isSelected && selectedCell) {\n        this.setState({\n          selectedCell: null\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this4 = this;\n\n      var _this$props10 = this.props,\n          attributes = _this$props10.attributes,\n          className = _this$props10.className,\n          backgroundColor = _this$props10.backgroundColor,\n          setBackgroundColor = _this$props10.setBackgroundColor,\n          setAttributes = _this$props10.setAttributes,\n          insertBlocksAfter = _this$props10.insertBlocksAfter;\n      var _this$state2 = this.state,\n          initialRowCount = _this$state2.initialRowCount,\n          initialColumnCount = _this$state2.initialColumnCount;\n      var hasFixedLayout = attributes.hasFixedLayout,\n          caption = attributes.caption,\n          head = attributes.head,\n          body = attributes.body,\n          foot = attributes.foot;\n      var isEmpty = isEmptyTableSection(head) && isEmptyTableSection(body) && isEmptyTableSection(foot);\n      var Section = this.renderSection;\n\n      if (isEmpty) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n          label: Object(external_this_wp_i18n_[\"__\"])('Table'),\n          icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n            icon: block_table,\n            showColors: true\n          }),\n          instructions: Object(external_this_wp_i18n_[\"__\"])('Insert a table for sharing data.')\n        }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n          className: \"blocks-table__placeholder-form\",\n          onSubmit: this.onCreateTable\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n          type: \"number\",\n          label: Object(external_this_wp_i18n_[\"__\"])('Column Count'),\n          value: initialColumnCount,\n          onChange: this.onChangeInitialColumnCount,\n          min: \"1\",\n          className: \"blocks-table__placeholder-input\"\n        }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n          type: \"number\",\n          label: Object(external_this_wp_i18n_[\"__\"])('Row Count'),\n          value: initialRowCount,\n          onChange: this.onChangeInitialRowCount,\n          min: \"1\",\n          className: \"blocks-table__placeholder-input\"\n        }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          className: \"blocks-table__placeholder-button\",\n          isPrimary: true,\n          type: \"submit\"\n        }, Object(external_this_wp_i18n_[\"__\"])('Create Table'))));\n      }\n\n      var tableClasses = classnames_default()(backgroundColor.class, {\n        'has-fixed-layout': hasFixedLayout,\n        'has-background': !!backgroundColor.color\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToolbarGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], null, function (toggleProps) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], {\n          hasArrowIndicator: true,\n          icon: library_table,\n          toggleProps: toggleProps,\n          label: Object(external_this_wp_i18n_[\"__\"])('Edit table'),\n          controls: _this4.getTableControls()\n        });\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Change column alignment'),\n        alignmentControls: ALIGNMENT_CONTROLS,\n        value: this.getCellAlignment(),\n        onChange: function onChange(nextAlign) {\n          return _this4.onChangeColumnAlignment(nextAlign);\n        },\n        onHover: this.onHoverAlignment\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Table settings'),\n        className: \"blocks-table-settings\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Fixed width table cells'),\n        checked: !!hasFixedLayout,\n        onChange: this.onChangeFixedLayout\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Header section'),\n        checked: !!(head && head.length),\n        onChange: this.onToggleHeaderSection\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Footer section'),\n        checked: !!(foot && foot.length),\n        onChange: this.onToggleFooterSection\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"PanelColorSettings\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Color settings'),\n        initialOpen: false,\n        colorSettings: [{\n          value: backgroundColor.color,\n          onChange: setBackgroundColor,\n          label: Object(external_this_wp_i18n_[\"__\"])('Background color'),\n          disableCustomColors: true,\n          colors: BACKGROUND_COLORS\n        }]\n      })), Object(external_this_wp_element_[\"createElement\"])(\"figure\", {\n        className: className\n      }, Object(external_this_wp_element_[\"createElement\"])(\"table\", {\n        className: tableClasses\n      }, Object(external_this_wp_element_[\"createElement\"])(Section, {\n        name: \"head\",\n        rows: head\n      }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n        name: \"body\",\n        rows: body\n      }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n        name: \"foot\",\n        rows: foot\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        tagName: \"figcaption\",\n        placeholder: Object(external_this_wp_i18n_[\"__\"])('Write caption…'),\n        value: caption,\n        onChange: function onChange(value) {\n          return setAttributes({\n            caption: value\n          });\n        } // Deselect the selected table cell when the caption is focused.\n        ,\n        unstableOnFocus: function unstableOnFocus() {\n          return _this4.setState({\n            selectedCell: null\n          });\n        },\n        __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n          return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n        }\n      })));\n    }\n  }]);\n\n  return TableEdit;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var table_edit = (withCustomBackgroundColors('backgroundColor')(edit_TableEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction table_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var hasFixedLayout = attributes.hasFixedLayout,\n      head = attributes.head,\n      body = attributes.body,\n      foot = attributes.foot,\n      backgroundColor = attributes.backgroundColor,\n      caption = attributes.caption;\n  var isEmpty = !head.length && !body.length && !foot.length;\n\n  if (isEmpty) {\n    return null;\n  }\n\n  var backgroundClass = Object(external_this_wp_blockEditor_[\"getColorClassName\"])('background-color', backgroundColor);\n  var classes = classnames_default()(backgroundClass, {\n    'has-fixed-layout': hasFixedLayout,\n    'has-background': !!backgroundClass\n  });\n  var hasCaption = !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption);\n\n  var Section = function Section(_ref2) {\n    var type = _ref2.type,\n        rows = _ref2.rows;\n\n    if (!rows.length) {\n      return null;\n    }\n\n    var Tag = \"t\".concat(type);\n    return Object(external_this_wp_element_[\"createElement\"])(Tag, null, rows.map(function (_ref3, rowIndex) {\n      var cells = _ref3.cells;\n      return Object(external_this_wp_element_[\"createElement\"])(\"tr\", {\n        key: rowIndex\n      }, cells.map(function (_ref4, cellIndex) {\n        var content = _ref4.content,\n            tag = _ref4.tag,\n            scope = _ref4.scope,\n            align = _ref4.align;\n        var cellClasses = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(align), align));\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n          className: cellClasses ? cellClasses : undefined,\n          \"data-align\": align,\n          tagName: tag,\n          value: content,\n          key: cellIndex,\n          scope: tag === 'th' ? scope : undefined\n        });\n      }));\n    }));\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, Object(external_this_wp_element_[\"createElement\"])(\"table\", {\n    className: classes === '' ? undefined : classes\n  }, Object(external_this_wp_element_[\"createElement\"])(Section, {\n    type: \"head\",\n    rows: head\n  }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n    type: \"body\",\n    rows: body\n  }), Object(external_this_wp_element_[\"createElement\"])(Section, {\n    type: \"foot\",\n    rows: foot\n  })), hasCaption && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"figcaption\",\n    value: caption\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/transforms.js\nvar tableContentPasteSchema = function tableContentPasteSchema(_ref) {\n  var phrasingContentSchema = _ref.phrasingContentSchema;\n  return {\n    tr: {\n      allowEmpty: true,\n      children: {\n        th: {\n          allowEmpty: true,\n          children: phrasingContentSchema,\n          attributes: ['scope']\n        },\n        td: {\n          allowEmpty: true,\n          children: phrasingContentSchema\n        }\n      }\n    }\n  };\n};\n\nvar tablePasteSchema = function tablePasteSchema(args) {\n  return {\n    table: {\n      children: {\n        thead: {\n          allowEmpty: true,\n          children: tableContentPasteSchema(args)\n        },\n        tfoot: {\n          allowEmpty: true,\n          children: tableContentPasteSchema(args)\n        },\n        tbody: {\n          allowEmpty: true,\n          children: tableContentPasteSchema(args)\n        }\n      }\n    }\n  };\n};\n\nvar table_transforms_transforms = {\n  from: [{\n    type: 'raw',\n    selector: 'table',\n    schema: tablePasteSchema\n  }]\n};\n/* harmony default export */ var table_transforms = (table_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/table/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar table_metadata = {\n  name: \"core/table\",\n  category: \"text\",\n  attributes: {\n    hasFixedLayout: {\n      type: \"boolean\",\n      \"default\": false\n    },\n    backgroundColor: {\n      type: \"string\"\n    },\n    caption: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"figcaption\",\n      \"default\": \"\"\n    },\n    head: {\n      type: \"array\",\n      \"default\": [],\n      source: \"query\",\n      selector: \"thead tr\",\n      query: {\n        cells: {\n          type: \"array\",\n          \"default\": [],\n          source: \"query\",\n          selector: \"td,th\",\n          query: {\n            content: {\n              type: \"string\",\n              source: \"html\"\n            },\n            tag: {\n              type: \"string\",\n              \"default\": \"td\",\n              source: \"tag\"\n            },\n            scope: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"scope\"\n            },\n            align: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"data-align\"\n            }\n          }\n        }\n      }\n    },\n    body: {\n      type: \"array\",\n      \"default\": [],\n      source: \"query\",\n      selector: \"tbody tr\",\n      query: {\n        cells: {\n          type: \"array\",\n          \"default\": [],\n          source: \"query\",\n          selector: \"td,th\",\n          query: {\n            content: {\n              type: \"string\",\n              source: \"html\"\n            },\n            tag: {\n              type: \"string\",\n              \"default\": \"td\",\n              source: \"tag\"\n            },\n            scope: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"scope\"\n            },\n            align: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"data-align\"\n            }\n          }\n        }\n      }\n    },\n    foot: {\n      type: \"array\",\n      \"default\": [],\n      source: \"query\",\n      selector: \"tfoot tr\",\n      query: {\n        cells: {\n          type: \"array\",\n          \"default\": [],\n          source: \"query\",\n          selector: \"td,th\",\n          query: {\n            content: {\n              type: \"string\",\n              source: \"html\"\n            },\n            tag: {\n              type: \"string\",\n              \"default\": \"td\",\n              source: \"tag\"\n            },\n            scope: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"scope\"\n            },\n            align: {\n              type: \"string\",\n              source: \"attribute\",\n              attribute: \"data-align\"\n            }\n          }\n        }\n      }\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true\n  }\n};\n\n\nvar table_name = table_metadata.name;\n\nvar table_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Table'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Insert a table — perfect for sharing charts and data.'),\n  icon: block_table,\n  example: {\n    attributes: {\n      head: [{\n        cells: [{\n          content: Object(external_this_wp_i18n_[\"__\"])('Version'),\n          tag: 'th'\n        }, {\n          content: Object(external_this_wp_i18n_[\"__\"])('Jazz Musician'),\n          tag: 'th'\n        }, {\n          content: Object(external_this_wp_i18n_[\"__\"])('Release Date'),\n          tag: 'th'\n        }]\n      }],\n      body: [{\n        cells: [{\n          content: '5.2',\n          tag: 'td'\n        }, {\n          content: 'Jaco Pastorius',\n          tag: 'td'\n        }, {\n          content: Object(external_this_wp_i18n_[\"__\"])('May 7, 2019'),\n          tag: 'td'\n        }]\n      }, {\n        cells: [{\n          content: '5.1',\n          tag: 'td'\n        }, {\n          content: 'Betty Carter',\n          tag: 'td'\n        }, {\n          content: Object(external_this_wp_i18n_[\"__\"])('February 21, 2019'),\n          tag: 'td'\n        }]\n      }, {\n        cells: [{\n          content: '5.0',\n          tag: 'td'\n        }, {\n          content: 'Bebo Valdés',\n          tag: 'td'\n        }, {\n          content: Object(external_this_wp_i18n_[\"__\"])('December 6, 2018'),\n          tag: 'td'\n        }]\n      }]\n    }\n  },\n  styles: [{\n    name: 'regular',\n    label: Object(external_this_wp_i18n_[\"_x\"])('Default', 'block style'),\n    isDefault: true\n  }, {\n    name: 'stripes',\n    label: Object(external_this_wp_i18n_[\"__\"])('Stripes')\n  }],\n  transforms: table_transforms,\n  edit: table_edit,\n  save: table_save_save,\n  deprecated: table_deprecated\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction TextColumnsEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      className = _ref.className;\n  var width = attributes.width,\n      content = attributes.content,\n      columns = attributes.columns;\n  external_this_wp_deprecated_default()('The Text Columns block', {\n    alternative: 'the Columns block',\n    plugin: 'Gutenberg'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockAlignmentToolbar\"], {\n    value: width,\n    onChange: function onChange(nextWidth) {\n      return setAttributes({\n        width: nextWidth\n      });\n    },\n    controls: ['center', 'wide', 'full']\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"RangeControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Columns'),\n    value: columns,\n    onChange: function onChange(value) {\n      return setAttributes({\n        columns: value\n      });\n    },\n    min: 2,\n    max: 4,\n    required: true\n  }))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"\".concat(className, \" align\").concat(width, \" columns-\").concat(columns)\n  }, Object(external_this_lodash_[\"times\"])(columns, function (index) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-column\",\n      key: \"column-\".concat(index)\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n      tagName: \"p\",\n      value: Object(external_this_lodash_[\"get\"])(content, [index, 'children']),\n      onChange: function onChange(nextContent) {\n        setAttributes({\n          content: [].concat(Object(toConsumableArray[\"a\" /* default */])(content.slice(0, index)), [{\n            children: nextContent\n          }], Object(toConsumableArray[\"a\" /* default */])(content.slice(index + 1)))\n        });\n      },\n      placeholder: Object(external_this_wp_i18n_[\"__\"])('New Column')\n    }));\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/save.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction text_columns_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var width = attributes.width,\n      content = attributes.content,\n      columns = attributes.columns;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"align\".concat(width, \" columns-\").concat(columns)\n  }, Object(external_this_lodash_[\"times\"])(columns, function (index) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"wp-block-column\",\n      key: \"column-\".concat(index)\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"p\",\n      value: Object(external_this_lodash_[\"get\"])(content, [index, 'children'])\n    }));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar text_columns_transforms_transforms = {\n  to: [{\n    type: 'block',\n    blocks: ['core/columns'],\n    transform: function transform(_ref) {\n      var className = _ref.className,\n          columns = _ref.columns,\n          content = _ref.content,\n          width = _ref.width;\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/columns', {\n        align: 'wide' === width || 'full' === width ? width : undefined,\n        className: className,\n        columns: columns\n      }, content.map(function (_ref2) {\n        var children = _ref2.children;\n        return Object(external_this_wp_blocks_[\"createBlock\"])('core/column', {}, [Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', {\n          content: children\n        })]);\n      }));\n    }\n  }]\n};\n/* harmony default export */ var text_columns_transforms = (text_columns_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/text-columns/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar text_columns_metadata = {\n  name: \"core/text-columns\",\n  icon: \"columns\",\n  category: \"design\",\n  attributes: {\n    content: {\n      type: \"array\",\n      source: \"query\",\n      selector: \"p\",\n      query: {\n        children: {\n          type: \"string\",\n          source: \"html\"\n        }\n      },\n      \"default\": [{}, {}]\n    },\n    columns: {\n      type: \"number\",\n      \"default\": 2\n    },\n    width: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    inserter: false\n  }\n};\n\n\nvar text_columns_name = text_columns_metadata.name;\n\nvar text_columns_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Text Columns (deprecated)'),\n  description: Object(external_this_wp_i18n_[\"__\"])('This block is deprecated. Please use the Columns block instead.'),\n  transforms: text_columns_transforms,\n  getEditWrapperProps: function getEditWrapperProps(attributes) {\n    var width = attributes.width;\n\n    if ('wide' === width || 'full' === width) {\n      return {\n        'data-align': width\n      };\n    }\n  },\n  edit: TextColumnsEdit,\n  save: text_columns_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/verse.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar verse = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z\"\n}));\n/* harmony default export */ var library_verse = (verse);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/deprecated.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar verse_deprecated_blockAttributes = {\n  content: {\n    type: 'string',\n    source: 'html',\n    selector: 'pre',\n    default: ''\n  },\n  textAlign: {\n    type: 'string'\n  }\n};\nvar verse_deprecated_deprecated = [{\n  attributes: verse_deprecated_blockAttributes,\n  save: function save(_ref) {\n    var attributes = _ref.attributes;\n    var textAlign = attributes.textAlign,\n        content = attributes.content;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n      tagName: \"pre\",\n      style: {\n        textAlign: textAlign\n      },\n      value: content\n    });\n  }\n}];\n/* harmony default export */ var verse_deprecated = (verse_deprecated_deprecated);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction VerseEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      className = _ref.className,\n      mergeBlocks = _ref.mergeBlocks;\n  var textAlign = attributes.textAlign,\n      content = attributes.content;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"AlignmentToolbar\"], {\n    value: textAlign,\n    onChange: function onChange(nextAlign) {\n      setAttributes({\n        textAlign: nextAlign\n      });\n    }\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n    tagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].pre,\n    identifier: \"content\",\n    preserveWhiteSpace: true,\n    value: content,\n    onChange: function onChange(nextContent) {\n      setAttributes({\n        content: nextContent\n      });\n    },\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Write…'),\n    className: classnames_default()(className, Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(textAlign), textAlign)),\n    onMerge: mergeBlocks,\n    textAlign: textAlign\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/save.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction verse_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var textAlign = attributes.textAlign,\n      content = attributes.content;\n  var className = classnames_default()(Object(defineProperty[\"a\" /* default */])({}, \"has-text-align-\".concat(textAlign), textAlign));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"pre\",\n    className: className,\n    value: content\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/transforms.js\n/**\n * WordPress dependencies\n */\n\nvar verse_transforms_transforms = {\n  from: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/verse', attributes);\n    }\n  }],\n  to: [{\n    type: 'block',\n    blocks: ['core/paragraph'],\n    transform: function transform(attributes) {\n      return Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph', attributes);\n    }\n  }]\n};\n/* harmony default export */ var verse_transforms = (verse_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/verse/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar verse_metadata = {\n  name: \"core/verse\",\n  category: \"text\",\n  attributes: {\n    content: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"pre\",\n      \"default\": \"\",\n      __unstablePreserveWhiteSpace: true\n    },\n    textAlign: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    anchor: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar verse_name = verse_metadata.name;\n\nvar verse_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Verse'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Insert poetry. Use special spacing formats. Or quote song lyrics.'),\n  icon: library_verse,\n  example: {\n    attributes: {\n      /* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n      // translators: Sample content for the Verse block. Can be replaced with a more locale-adequate work.\n      content: Object(external_this_wp_i18n_[\"__\"])('WHAT was he doing, the great god Pan,\\n\tDown in the reeds by the river?\\nSpreading ruin and scattering ban,\\nSplashing and paddling with hoofs of a goat,\\nAnd breaking the golden lilies afloat\\n    With the dragon-fly on the river.')\n      /* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\n    }\n  },\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('poetry'), Object(external_this_wp_i18n_[\"__\"])('poem')],\n  transforms: verse_transforms,\n  deprecated: verse_deprecated,\n  merge: function merge(attributes, attributesToMerge) {\n    return {\n      content: attributes.content + attributesToMerge.content\n    };\n  },\n  edit: VerseEdit,\n  save: verse_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/video.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar video_video = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z\"\n}));\n/* harmony default export */ var library_video = (video_video);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit-common-settings.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar edit_common_settings_VideoSettings = function VideoSettings(_ref) {\n  var setAttributes = _ref.setAttributes,\n      attributes = _ref.attributes;\n  var autoplay = attributes.autoplay,\n      controls = attributes.controls,\n      loop = attributes.loop,\n      muted = attributes.muted,\n      playsInline = attributes.playsInline,\n      preload = attributes.preload;\n\n  var getAutoplayHelp = function getAutoplayHelp(checked) {\n    return checked ? Object(external_this_wp_i18n_[\"__\"])('Note: Autoplaying videos may cause usability issues for some visitors.') : null;\n  };\n\n  var toggleAttribute = function toggleAttribute(attribute) {\n    return function (newValue) {\n      setAttributes(Object(defineProperty[\"a\" /* default */])({}, attribute, newValue));\n    };\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Autoplay'),\n    onChange: toggleAttribute('autoplay'),\n    checked: autoplay,\n    help: getAutoplayHelp\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Loop'),\n    onChange: toggleAttribute('loop'),\n    checked: loop\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Muted'),\n    onChange: toggleAttribute('muted'),\n    checked: muted\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Playback controls'),\n    onChange: toggleAttribute('controls'),\n    checked: controls\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Play inline'),\n    onChange: toggleAttribute('playsInline'),\n    checked: playsInline\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Preload'),\n    value: preload,\n    onChange: function onChange(value) {\n      return setAttributes({\n        preload: value\n      });\n    },\n    options: [{\n      value: 'auto',\n      label: Object(external_this_wp_i18n_[\"__\"])('Auto')\n    }, {\n      value: 'metadata',\n      label: Object(external_this_wp_i18n_[\"__\"])('Metadata')\n    }, {\n      value: 'none',\n      label: Object(external_this_wp_i18n_[\"__\"])('None')\n    }]\n  }));\n};\n\n/* harmony default export */ var edit_common_settings = (edit_common_settings_VideoSettings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/edit.js\n\n\n\n\n\n\n\n\n\nfunction video_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (video_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction video_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar video_edit_ALLOWED_MEDIA_TYPES = ['video'];\nvar VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];\n\nvar edit_VideoEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(VideoEdit, _Component);\n\n  var _super = video_edit_createSuper(VideoEdit);\n\n  function VideoEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, VideoEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.videoPlayer = Object(external_this_wp_element_[\"createRef\"])();\n    _this.posterImageButton = Object(external_this_wp_element_[\"createRef\"])();\n    _this.onSelectURL = _this.onSelectURL.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectPoster = _this.onSelectPoster.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onRemovePoster = _this.onRemovePoster.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUploadError = _this.onUploadError.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(VideoEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          mediaUpload = _this$props.mediaUpload,\n          noticeOperations = _this$props.noticeOperations,\n          setAttributes = _this$props.setAttributes;\n      var id = attributes.id,\n          _attributes$src = attributes.src,\n          src = _attributes$src === void 0 ? '' : _attributes$src;\n\n      if (!id && Object(external_this_wp_blob_[\"isBlobURL\"])(src)) {\n        var file = Object(external_this_wp_blob_[\"getBlobByURL\"])(src);\n\n        if (file) {\n          mediaUpload({\n            filesList: [file],\n            onFileChange: function onFileChange(_ref) {\n              var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 1),\n                  url = _ref2[0].url;\n\n              setAttributes({\n                src: url\n              });\n            },\n            onError: function onError(message) {\n              noticeOperations.createErrorNotice(message);\n            },\n            allowedTypes: video_edit_ALLOWED_MEDIA_TYPES\n          });\n        }\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.attributes.poster !== prevProps.attributes.poster) {\n        this.videoPlayer.current.load();\n      }\n    }\n  }, {\n    key: \"onSelectURL\",\n    value: function onSelectURL(newSrc) {\n      var _this$props2 = this.props,\n          attributes = _this$props2.attributes,\n          setAttributes = _this$props2.setAttributes;\n      var src = attributes.src;\n\n      if (newSrc !== src) {\n        // Check if there's an embed block that handles this URL.\n        var embedBlock = util_createUpgradedEmbedBlock({\n          attributes: {\n            url: newSrc\n          }\n        });\n\n        if (undefined !== embedBlock) {\n          this.props.onReplace(embedBlock);\n          return;\n        }\n\n        setAttributes({\n          src: newSrc,\n          id: undefined\n        });\n      }\n    }\n  }, {\n    key: \"onSelectPoster\",\n    value: function onSelectPoster(image) {\n      var setAttributes = this.props.setAttributes;\n      setAttributes({\n        poster: image.url\n      });\n    }\n  }, {\n    key: \"onRemovePoster\",\n    value: function onRemovePoster() {\n      var setAttributes = this.props.setAttributes;\n      setAttributes({\n        poster: ''\n      }); // Move focus back to the Media Upload button.\n\n      this.posterImageButton.current.focus();\n    }\n  }, {\n    key: \"onUploadError\",\n    value: function onUploadError(message) {\n      var noticeOperations = this.props.noticeOperations;\n      noticeOperations.removeAllNotices();\n      noticeOperations.createErrorNotice(message);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props$attribute = this.props.attributes,\n          id = _this$props$attribute.id,\n          caption = _this$props$attribute.caption,\n          controls = _this$props$attribute.controls,\n          poster = _this$props$attribute.poster,\n          src = _this$props$attribute.src;\n      var _this$props3 = this.props,\n          instanceId = _this$props3.instanceId,\n          isSelected = _this$props3.isSelected,\n          noticeUI = _this$props3.noticeUI,\n          attributes = _this$props3.attributes,\n          setAttributes = _this$props3.setAttributes,\n          insertBlocksAfter = _this$props3.insertBlocksAfter;\n\n      var onSelectVideo = function onSelectVideo(media) {\n        if (!media || !media.url) {\n          // in this case there was an error\n          // previous attributes should be removed\n          // because they may be temporary blob urls\n          setAttributes({\n            src: undefined,\n            id: undefined\n          });\n          return;\n        } // sets the block's attribute and updates the edit component from the\n        // selected media\n\n\n        setAttributes({\n          src: media.url,\n          id: media.id\n        });\n      };\n\n      if (!src) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].div, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaPlaceholder\"], {\n          icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n            icon: library_video\n          }),\n          onSelect: onSelectVideo,\n          onSelectURL: this.onSelectURL,\n          accept: \"video/*\",\n          allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,\n          value: this.props.attributes,\n          notices: noticeUI,\n          onError: this.onUploadError\n        }));\n      }\n\n      var videoPosterDescription = \"video-block__poster-image-description-\".concat(instanceId);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaReplaceFlow\"], {\n        mediaId: id,\n        mediaURL: src,\n        allowedTypes: video_edit_ALLOWED_MEDIA_TYPES,\n        accept: \"video/*\",\n        onSelect: onSelectVideo,\n        onSelectURL: this.onSelectURL,\n        onError: this.onUploadError\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Video settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(edit_common_settings, {\n        setAttributes: setAttributes,\n        attributes: attributes\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUploadCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"], {\n        className: \"editor-video-poster-control\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"BaseControl\"].VisualLabel, null, Object(external_this_wp_i18n_[\"__\"])('Poster image')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUpload\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Select poster image'),\n        onSelect: this.onSelectPoster,\n        allowedTypes: VIDEO_POSTER_ALLOWED_MEDIA_TYPES,\n        render: function render(_ref3) {\n          var open = _ref3.open;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n            isPrimary: true,\n            onClick: open,\n            ref: _this2.posterImageButton,\n            \"aria-describedby\": videoPosterDescription\n          }, !_this2.props.attributes.poster ? Object(external_this_wp_i18n_[\"__\"])('Select') : Object(external_this_wp_i18n_[\"__\"])('Replace'));\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        id: videoPosterDescription,\n        hidden: true\n      }, this.props.attributes.poster ? Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: poster image URL. */\n      Object(external_this_wp_i18n_[\"__\"])('The current poster image url is %s'), this.props.attributes.poster) : Object(external_this_wp_i18n_[\"__\"])('There is no poster image currently selected')), !!this.props.attributes.poster && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        onClick: this.onRemovePoster,\n        isTertiary: true\n      }, Object(external_this_wp_i18n_[\"__\"])('Remove')))))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].figure, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Disabled\"], null, Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n        controls: controls,\n        poster: poster,\n        src: src,\n        ref: this.videoPlayer\n      })), (!external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) || isSelected) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"], {\n        tagName: \"figcaption\",\n        placeholder: Object(external_this_wp_i18n_[\"__\"])('Write caption…'),\n        value: caption,\n        onChange: function onChange(value) {\n          return setAttributes({\n            caption: value\n          });\n        },\n        inlineToolbar: true,\n        __unstableOnSplitAtEnd: function __unstableOnSplitAtEnd() {\n          return insertBlocksAfter(Object(external_this_wp_blocks_[\"createBlock\"])('core/paragraph'));\n        }\n      })));\n    }\n  }]);\n\n  return VideoEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var video_edit = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSettings = _select.getSettings;\n\n  var _getSettings = getSettings(),\n      mediaUpload = _getSettings.mediaUpload;\n\n  return {\n    mediaUpload: mediaUpload\n  };\n}), external_this_wp_components_[\"withNotices\"], external_this_wp_compose_[\"withInstanceId\"]])(edit_VideoEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction video_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var autoplay = attributes.autoplay,\n      caption = attributes.caption,\n      controls = attributes.controls,\n      loop = attributes.loop,\n      muted = attributes.muted,\n      poster = attributes.poster,\n      preload = attributes.preload,\n      src = attributes.src,\n      playsInline = attributes.playsInline;\n  return Object(external_this_wp_element_[\"createElement\"])(\"figure\", null, src && Object(external_this_wp_element_[\"createElement\"])(\"video\", {\n    autoPlay: autoplay,\n    controls: controls,\n    loop: loop,\n    muted: muted,\n    poster: poster,\n    preload: preload !== 'metadata' ? preload : undefined,\n    src: src,\n    playsInline: playsInline\n  }), !external_this_wp_blockEditor_[\"RichText\"].isEmpty(caption) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichText\"].Content, {\n    tagName: \"figcaption\",\n    value: caption\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/transforms.js\n/**\n * WordPress dependencies\n */\n\n\nvar video_transforms_transforms = {\n  from: [{\n    type: 'files',\n    isMatch: function isMatch(files) {\n      return files.length === 1 && files[0].type.indexOf('video/') === 0;\n    },\n    transform: function transform(files) {\n      var file = files[0]; // We don't need to upload the media directly here\n      // It's already done as part of the `componentDidMount`\n      // in the video block\n\n      var block = Object(external_this_wp_blocks_[\"createBlock\"])('core/video', {\n        src: Object(external_this_wp_blob_[\"createBlobURL\"])(file)\n      });\n      return block;\n    }\n  }, {\n    type: 'shortcode',\n    tag: 'video',\n    attributes: {\n      src: {\n        type: 'string',\n        shortcode: function shortcode(_ref) {\n          var _ref$named = _ref.named,\n              src = _ref$named.src,\n              mp4 = _ref$named.mp4,\n              m4v = _ref$named.m4v,\n              webm = _ref$named.webm,\n              ogv = _ref$named.ogv,\n              flv = _ref$named.flv;\n          return src || mp4 || m4v || webm || ogv || flv;\n        }\n      },\n      poster: {\n        type: 'string',\n        shortcode: function shortcode(_ref2) {\n          var poster = _ref2.named.poster;\n          return poster;\n        }\n      },\n      loop: {\n        type: 'string',\n        shortcode: function shortcode(_ref3) {\n          var loop = _ref3.named.loop;\n          return loop;\n        }\n      },\n      autoplay: {\n        type: 'string',\n        shortcode: function shortcode(_ref4) {\n          var autoplay = _ref4.named.autoplay;\n          return autoplay;\n        }\n      },\n      preload: {\n        type: 'string',\n        shortcode: function shortcode(_ref5) {\n          var preload = _ref5.named.preload;\n          return preload;\n        }\n      }\n    }\n  }]\n};\n/* harmony default export */ var video_transforms = (video_transforms_transforms);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/video/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar video_metadata = {\n  name: \"core/video\",\n  category: \"media\",\n  attributes: {\n    autoplay: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"autoplay\"\n    },\n    caption: {\n      type: \"string\",\n      source: \"html\",\n      selector: \"figcaption\"\n    },\n    controls: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"controls\",\n      \"default\": true\n    },\n    id: {\n      type: \"number\"\n    },\n    loop: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"loop\"\n    },\n    muted: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"muted\"\n    },\n    poster: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"poster\"\n    },\n    preload: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"preload\",\n      \"default\": \"metadata\"\n    },\n    src: {\n      type: \"string\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"src\"\n    },\n    playsInline: {\n      type: \"boolean\",\n      source: \"attribute\",\n      selector: \"video\",\n      attribute: \"playsinline\"\n    }\n  },\n  supports: {\n    anchor: true,\n    align: true,\n    lightBlockWrapper: true\n  }\n};\n\n\nvar video_name = video_metadata.name;\n\nvar video_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Video'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Embed a video from your media library or upload a new one.'),\n  icon: library_video,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('movie')],\n  transforms: video_transforms,\n  edit: video_edit,\n  save: video_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/tag.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tag_tag = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20.1 11.2l-6.7-6.7c-.1-.1-.3-.2-.5-.2H5c-.4-.1-.8.3-.8.7v7.8c0 .2.1.4.2.5l6.7 6.7c.2.2.5.4.7.5s.6.2.9.2c.3 0 .6-.1.9-.2.3-.1.5-.3.8-.5l5.6-5.6c.4-.4.7-1 .7-1.6.1-.6-.2-1.2-.6-1.6zM19 13.4L13.4 19c-.1.1-.2.1-.3.2-.2.1-.4.1-.6 0-.1 0-.2-.1-.3-.2l-6.5-6.5V5.8h6.8l6.5 6.5c.2.2.2.4.2.6 0 .1 0 .3-.2.5zM9 8c-.6 0-1 .4-1 1s.4 1 1 1 1-.4 1-1-.4-1-1-1z\"\n}));\n/* harmony default export */ var library_tag = (tag_tag);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/edit.js\n\n\n\n\n\n\n\n\n\nfunction tag_cloud_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (tag_cloud_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction tag_cloud_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\nvar edit_TagCloudEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(TagCloudEdit, _Component);\n\n  var _super = tag_cloud_edit_createSuper(TagCloudEdit);\n\n  function TagCloudEdit() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, TagCloudEdit);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      editing: !_this.props.attributes.taxonomy\n    };\n    _this.setTaxonomy = _this.setTaxonomy.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.toggleShowTagCounts = _this.toggleShowTagCounts.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(TagCloudEdit, [{\n    key: \"getTaxonomyOptions\",\n    value: function getTaxonomyOptions() {\n      var taxonomies = Object(external_this_lodash_[\"filter\"])(this.props.taxonomies, 'show_cloud');\n      var selectOption = {\n        label: Object(external_this_wp_i18n_[\"__\"])('- Select -'),\n        value: '',\n        disabled: true\n      };\n      var taxonomyOptions = Object(external_this_lodash_[\"map\"])(taxonomies, function (taxonomy) {\n        return {\n          value: taxonomy.slug,\n          label: taxonomy.name\n        };\n      });\n      return [selectOption].concat(Object(toConsumableArray[\"a\" /* default */])(taxonomyOptions));\n    }\n  }, {\n    key: \"setTaxonomy\",\n    value: function setTaxonomy(taxonomy) {\n      var setAttributes = this.props.setAttributes;\n      setAttributes({\n        taxonomy: taxonomy\n      });\n    }\n  }, {\n    key: \"toggleShowTagCounts\",\n    value: function toggleShowTagCounts() {\n      var _this$props = this.props,\n          attributes = _this$props.attributes,\n          setAttributes = _this$props.setAttributes;\n      var showTagCounts = attributes.showTagCounts;\n      setAttributes({\n        showTagCounts: !showTagCounts\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var attributes = this.props.attributes;\n      var taxonomy = attributes.taxonomy,\n          showTagCounts = attributes.showTagCounts;\n      var taxonomyOptions = this.getTaxonomyOptions();\n      var inspectorControls = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        title: Object(external_this_wp_i18n_[\"__\"])('Tag Cloud settings')\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Taxonomy'),\n        options: taxonomyOptions,\n        value: taxonomy,\n        onChange: this.setTaxonomy\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ToggleControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Show post counts'),\n        checked: showTagCounts,\n        onChange: this.toggleShowTagCounts\n      })));\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, inspectorControls, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_serverSideRender_default.a, {\n        key: \"tag-cloud\",\n        block: \"core/tag-cloud\",\n        attributes: attributes\n      }));\n    }\n  }]);\n\n  return TagCloudEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var tag_cloud_edit = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    taxonomies: select('core').getTaxonomies()\n  };\n})(edit_TagCloudEdit));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/tag-cloud/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar tag_cloud_metadata = {\n  name: \"core/tag-cloud\",\n  category: \"widgets\",\n  attributes: {\n    align: {\n      type: \"string\",\n      \"enum\": [\"left\", \"center\", \"right\", \"wide\", \"full\"]\n    },\n    className: {\n      type: \"string\"\n    },\n    taxonomy: {\n      type: \"string\",\n      \"default\": \"post_tag\"\n    },\n    showTagCounts: {\n      type: \"boolean\",\n      \"default\": false\n    }\n  },\n  supports: {\n    html: false,\n    align: true\n  }\n};\n\nvar tag_cloud_name = tag_cloud_metadata.name;\n\nvar tag_cloud_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Tag Cloud'),\n  description: Object(external_this_wp_i18n_[\"__\"])('A cloud of your most used tags.'),\n  icon: library_tag,\n  example: {},\n  edit: tag_cloud_edit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/classic.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar classic = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20 6H4c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H4c-.3 0-.5-.2-.5-.5V8c0-.3.2-.5.5-.5h16c.3 0 .5.2.5.5v9zM10 10H8v2h2v-2zm-5 2h2v-2H5v2zm8-2h-2v2h2v-2zm-5 6h8v-2H8v2zm6-4h2v-2h-2v2zm3 0h2v-2h-2v2zm0 4h2v-2h-2v2zM5 16h2v-2H5v2z\"\n}));\n/* harmony default export */ var library_classic = (classic);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/classic/edit.js\n\n\n\n\n\n\n\n\n\nfunction classic_edit_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction classic_edit_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { classic_edit_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { classic_edit_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction classic_edit_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (classic_edit_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction classic_edit_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar classic_edit_window = window,\n    wp = classic_edit_window.wp;\n\nfunction isTmceEmpty(editor) {\n  // When tinyMce is empty the content seems to be:\n  // <p><br data-mce-bogus=\"1\"></p>\n  // avoid expensive checks for large documents\n  var body = editor.getBody();\n\n  if (body.childNodes.length > 1) {\n    return false;\n  } else if (body.childNodes.length === 0) {\n    return true;\n  }\n\n  if (body.childNodes[0].childNodes.length > 1) {\n    return false;\n  }\n\n  return /^\\n?$/.test(body.innerText || body.textContent);\n}\n\nvar edit_ClassicEdit = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ClassicEdit, _Component);\n\n  var _super = classic_edit_createSuper(ClassicEdit);\n\n  function ClassicEdit(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ClassicEdit);\n\n    _this = _super.call(this, props);\n    _this.initialize = _this.initialize.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSetup = _this.onSetup.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.focus = _this.focus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ClassicEdit, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _window$wpEditorL10n$ = window.wpEditorL10n.tinymce,\n          baseURL = _window$wpEditorL10n$.baseURL,\n          suffix = _window$wpEditorL10n$.suffix;\n      window.tinymce.EditorManager.overrideDefaults({\n        base_url: baseURL,\n        suffix: suffix\n      });\n\n      if (document.readyState === 'complete') {\n        this.initialize();\n      } else {\n        window.addEventListener('DOMContentLoaded', this.initialize);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.addEventListener('DOMContentLoaded', this.initialize);\n      wp.oldEditor.remove(\"editor-\".concat(this.props.clientId));\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          clientId = _this$props.clientId,\n          content = _this$props.attributes.content;\n      var editor = window.tinymce.get(\"editor-\".concat(clientId));\n      var currentContent = editor.getContent();\n\n      if (prevProps.attributes.content !== content && currentContent !== content) {\n        editor.setContent(content || '');\n      }\n    }\n  }, {\n    key: \"initialize\",\n    value: function initialize() {\n      var clientId = this.props.clientId;\n      var settings = window.wpEditorL10n.tinymce.settings;\n      wp.oldEditor.initialize(\"editor-\".concat(clientId), {\n        tinymce: classic_edit_objectSpread({}, settings, {\n          inline: true,\n          content_css: false,\n          fixed_toolbar_container: \"#toolbar-\".concat(clientId),\n          setup: this.onSetup\n        })\n      });\n    }\n  }, {\n    key: \"onSetup\",\n    value: function onSetup(editor) {\n      var _this2 = this;\n\n      var _this$props2 = this.props,\n          content = _this$props2.attributes.content,\n          setAttributes = _this$props2.setAttributes;\n      var ref = this.ref;\n      var bookmark;\n      this.editor = editor;\n\n      if (content) {\n        editor.on('loadContent', function () {\n          return editor.setContent(content);\n        });\n      }\n\n      editor.on('blur', function () {\n        bookmark = editor.selection.getBookmark(2, true); // There is an issue with Chrome and the editor.focus call in core at https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/lib/link.js#L451.\n        // This causes a scroll to the top of editor content on return from some content updating dialogs so tracking\n        // scroll position until this is fixed in core.\n\n        var scrollContainer = document.querySelector('.interface-interface-skeleton__content');\n        var scrollPosition = scrollContainer.scrollTop;\n        setAttributes({\n          content: editor.getContent()\n        });\n        editor.once('focus', function () {\n          if (bookmark) {\n            editor.selection.moveToBookmark(bookmark);\n\n            if (scrollContainer.scrollTop !== scrollPosition) {\n              scrollContainer.scrollTop = scrollPosition;\n            }\n          }\n        });\n        return false;\n      });\n      editor.on('mousedown touchstart', function () {\n        bookmark = null;\n      });\n      editor.on('Paste Change input Undo Redo', Object(external_this_lodash_[\"debounce\"])(function () {\n        var value = editor.getContent();\n\n        if (value !== editor._lastChange) {\n          editor._lastChange = value;\n          setAttributes({\n            content: value\n          });\n        }\n      }, 250));\n      editor.on('keydown', function (event) {\n        if (external_this_wp_keycodes_[\"isKeyboardEvent\"].primary(event, 'z')) {\n          // Prevent the gutenberg undo kicking in so TinyMCE undo stack works as expected\n          event.stopPropagation();\n        }\n\n        if ((event.keyCode === external_this_wp_keycodes_[\"BACKSPACE\"] || event.keyCode === external_this_wp_keycodes_[\"DELETE\"]) && isTmceEmpty(editor)) {\n          // delete the block\n          _this2.props.onReplace([]);\n\n          event.preventDefault();\n          event.stopImmediatePropagation();\n        }\n\n        var altKey = event.altKey;\n        /*\n         * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n         * `alt+f10` shortcut to focus its toolbar.\n         */\n\n        if (altKey && event.keyCode === external_this_wp_keycodes_[\"F10\"]) {\n          event.stopPropagation();\n        }\n      }); // TODO: the following is for back-compat with WP 4.9, not needed in WP 5.0. Remove it after the release.\n\n      editor.addButton('kitchensink', {\n        tooltip: Object(external_this_wp_i18n_[\"_x\"])('More', 'button to expand options'),\n        icon: 'dashicon dashicons-editor-kitchensink',\n        onClick: function onClick() {\n          var button = this;\n          var active = !button.active();\n          button.active(active);\n          editor.dom.toggleClass(ref, 'has-advanced-toolbar', active);\n        }\n      }); // Show the second, third, etc. toolbars when the `kitchensink` button is removed by a plugin.\n\n      editor.on('init', function () {\n        if (editor.settings.toolbar1 && editor.settings.toolbar1.indexOf('kitchensink') === -1) {\n          editor.dom.addClass(ref, 'has-advanced-toolbar');\n        }\n      });\n      editor.addButton('wp_add_media', {\n        tooltip: Object(external_this_wp_i18n_[\"__\"])('Insert Media'),\n        icon: 'dashicon dashicons-admin-media',\n        cmd: 'WP_Medialib'\n      }); // End TODO.\n\n      editor.on('init', function () {\n        var rootNode = _this2.editor.getBody(); // Create the toolbar by refocussing the editor.\n\n\n        if (document.activeElement === rootNode) {\n          rootNode.blur();\n\n          _this2.editor.focus();\n        }\n      });\n    }\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      if (this.editor) {\n        this.editor.focus();\n      }\n    }\n  }, {\n    key: \"onToolbarKeyDown\",\n    value: function onToolbarKeyDown(event) {\n      // Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n      event.stopPropagation(); // Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\n      event.nativeEvent.stopImmediatePropagation();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this3 = this;\n\n      var clientId = this.props.clientId; // Disable reasons:\n      //\n      // jsx-a11y/no-static-element-interactions\n      //  - the toolbar itself is non-interactive, but must capture events\n      //    from the KeyboardShortcuts component to stop their propagation.\n\n      /* eslint-disable jsx-a11y/no-static-element-interactions */\n\n      return [Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        key: \"toolbar\",\n        id: \"toolbar-\".concat(clientId),\n        ref: function ref(_ref) {\n          return _this3.ref = _ref;\n        },\n        className: \"block-library-classic__toolbar\",\n        onClick: this.focus,\n        \"data-placeholder\": Object(external_this_wp_i18n_[\"__\"])('Classic'),\n        onKeyDown: this.onToolbarKeyDown\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        key: \"editor\",\n        id: \"editor-\".concat(clientId),\n        className: \"wp-block-freeform block-library-rich-text__tinymce\"\n      })];\n      /* eslint-enable jsx-a11y/no-static-element-interactions */\n    }\n  }]);\n\n  return ClassicEdit;\n}(external_this_wp_element_[\"Component\"]);\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/classic/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction classic_save_save(_ref) {\n  var attributes = _ref.attributes;\n  var content = attributes.content;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, content);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/classic/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar classic_metadata = {\n  name: \"core/freeform\",\n  category: \"text\",\n  attributes: {\n    content: {\n      type: \"string\",\n      source: \"html\"\n    }\n  },\n  supports: {\n    className: false,\n    customClassName: false,\n    reusable: false\n  }\n};\n\nvar classic_name = classic_metadata.name;\n\nvar classic_settings = {\n  title: Object(external_this_wp_i18n_[\"_x\"])('Classic', 'block title'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Use the classic WordPress editor.'),\n  icon: library_classic,\n  edit: edit_ClassicEdit,\n  save: classic_save_save\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/share.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar share = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z\"\n}));\n/* harmony default export */ var library_share = (share);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/edit.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar social_links_edit_ALLOWED_BLOCKS = ['core/social-link']; // Template contains the links that show when start.\n\nvar edit_TEMPLATE = [['core/social-link', {\n  service: 'wordpress',\n  url: 'https://wordpress.org'\n}], ['core/social-link', {\n  service: 'facebook'\n}], ['core/social-link', {\n  service: 'twitter'\n}], ['core/social-link', {\n  service: 'instagram'\n}], ['core/social-link', {\n  service: 'linkedin'\n}], ['core/social-link', {\n  service: 'youtube'\n}]];\nfunction SocialLinksEdit() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"], {\n    allowedBlocks: social_links_edit_ALLOWED_BLOCKS,\n    templateLock: false,\n    template: edit_TEMPLATE,\n    orientation: \"horizontal\",\n    __experimentalTagName: external_this_wp_blockEditor_[\"__experimentalBlock\"].ul,\n    __experimentalAppenderTagName: \"li\"\n  });\n}\n/* harmony default export */ var social_links_edit = (SocialLinksEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/save.js\n\n\n/**\n * WordPress dependencies\n */\n\nfunction social_links_save_save(_ref) {\n  var className = _ref.className;\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InnerBlocks\"].Content, null));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-links/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar social_links_metadata = {\n  name: \"core/social-links\",\n  category: \"widgets\",\n  supports: {\n    align: [\"left\", \"center\", \"right\"],\n    lightBlockWrapper: true,\n    anchor: true\n  }\n};\n\nvar social_links_name = social_links_metadata.name;\n\nvar social_links_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Social Icons'),\n  description: Object(external_this_wp_i18n_[\"__\"])('Display icons linking to your social media profiles or websites.'),\n  keywords: [Object(external_this_wp_i18n_[\"_x\"])('links', 'block keywords')],\n  example: {\n    innerBlocks: [{\n      name: 'core/social-link',\n      attributes: {\n        service: 'wordpress',\n        url: 'https://wordpress.org'\n      }\n    }, {\n      name: 'core/social-link',\n      attributes: {\n        service: 'facebook',\n        url: 'https://www.facebook.com/WordPress/'\n      }\n    }, {\n      name: 'core/social-link',\n      attributes: {\n        service: 'twitter',\n        url: 'https://twitter.com/WordPress'\n      }\n    }]\n  },\n  styles: [{\n    name: 'default',\n    label: Object(external_this_wp_i18n_[\"__\"])('Default'),\n    isDefault: true\n  }, {\n    name: 'logos-only',\n    label: Object(external_this_wp_i18n_[\"__\"])('Logos Only')\n  }, {\n    name: 'pill-shape',\n    label: Object(external_this_wp_i18n_[\"__\"])('Pill Shape')\n  }],\n  icon: library_share,\n  edit: social_links_edit,\n  save: social_links_save_save\n};\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js\nvar keyboard_return = __webpack_require__(197);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/wordpress.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar wordpress_WordPressIcon = function WordPressIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/fivehundredpx.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar fivehundredpx_FivehundredpxIcon = function FivehundredpxIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/amazon.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar amazon_AmazonIcon = function AmazonIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/bandcamp.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar bandcamp_BandcampIcon = function BandcampIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/behance.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar behance_BehanceIcon = function BehanceIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/chain.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar chain_ChainIcon = function ChainIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M19.647,16.706a1.134,1.134,0,0,0-.343-.833l-2.549-2.549a1.134,1.134,0,0,0-.833-.343,1.168,1.168,0,0,0-.883.392l.233.226q.2.189.264.264a2.922,2.922,0,0,1,.184.233.986.986,0,0,1,.159.312,1.242,1.242,0,0,1,.043.337,1.172,1.172,0,0,1-1.176,1.176,1.237,1.237,0,0,1-.337-.043,1,1,0,0,1-.312-.159,2.76,2.76,0,0,1-.233-.184q-.073-.068-.264-.264l-.226-.233a1.19,1.19,0,0,0-.4.895,1.134,1.134,0,0,0,.343.833L15.837,19.3a1.13,1.13,0,0,0,.833.331,1.18,1.18,0,0,0,.833-.318l1.8-1.789a1.12,1.12,0,0,0,.343-.821Zm-8.615-8.64a1.134,1.134,0,0,0-.343-.833L8.163,4.7a1.134,1.134,0,0,0-.833-.343,1.184,1.184,0,0,0-.833.331L4.7,6.473a1.12,1.12,0,0,0-.343.821,1.134,1.134,0,0,0,.343.833l2.549,2.549a1.13,1.13,0,0,0,.833.331,1.184,1.184,0,0,0,.883-.38L8.728,10.4q-.2-.189-.264-.264A2.922,2.922,0,0,1,8.28,9.9a.986.986,0,0,1-.159-.312,1.242,1.242,0,0,1-.043-.337A1.172,1.172,0,0,1,9.254,8.079a1.237,1.237,0,0,1,.337.043,1,1,0,0,1,.312.159,2.761,2.761,0,0,1,.233.184q.073.068.264.264l.226.233a1.19,1.19,0,0,0,.4-.895ZM22,16.706a3.343,3.343,0,0,1-1.042,2.488l-1.8,1.789a3.536,3.536,0,0,1-4.988-.025l-2.525-2.537a3.384,3.384,0,0,1-1.017-2.488,3.448,3.448,0,0,1,1.078-2.561l-1.078-1.078a3.434,3.434,0,0,1-2.549,1.078,3.4,3.4,0,0,1-2.5-1.029L3.029,9.794A3.4,3.4,0,0,1,2,7.294,3.343,3.343,0,0,1,3.042,4.806l1.8-1.789A3.384,3.384,0,0,1,7.331,2a3.357,3.357,0,0,1,2.5,1.042l2.525,2.537a3.384,3.384,0,0,1,1.017,2.488,3.448,3.448,0,0,1-1.078,2.561l1.078,1.078a3.551,3.551,0,0,1,5.049-.049l2.549,2.549A3.4,3.4,0,0,1,22,16.706Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/codepen.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar codepen_CodepenIcon = function CodepenIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/deviantart.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar deviantart_DeviantArtIcon = function DeviantArtIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dribbble.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar dribbble_DribbbleIcon = function DribbbleIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/dropbox.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar dropbox_DropboxIcon = function DropboxIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/etsy.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar etsy_EtsyIcon = function EtsyIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/facebook.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar facebook_FacebookIcon = function FacebookIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/feed.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar feed_FeedIcon = function FeedIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/flickr.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar flickr_FlickrIcon = function FlickrIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/foursquare.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar foursquare_FoursquareIcon = function FoursquareIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/goodreads.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar goodreads_GoodreadsIcon = function GoodreadsIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/google.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar google_GoogleIcon = function GoogleIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/github.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar github_GitHubIcon = function GitHubIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/instagram.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar instagram_InstagramIcon = function InstagramIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/lastfm.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar lastfm_LastfmIcon = function LastfmIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M10.5002,0 C4.7006,0 0,4.70109753 0,10.4998496 C0,16.2989526 4.7006,21 10.5002,21 C16.299,21 21,16.2989526 21,10.4998496 C21,4.70109753 16.299,0 10.5002,0 Z M14.69735,14.7204413 C13.3164,14.7151781 12.4346,14.0870017 11.83445,12.6859357 L11.6816001,12.3451305 L10.35405,9.31011397 C9.92709997,8.26875064 8.85260001,7.57120012 7.68010001,7.57120012 C6.06945001,7.57120012 4.75925001,8.88509738 4.75925001,10.5009524 C4.75925001,12.1164565 6.06945001,13.4303036 7.68010001,13.4303036 C8.77200001,13.4303036 9.76514999,12.827541 10.2719501,11.8567047 C10.2893,11.8235214 10.3239,11.8019673 10.36305,11.8038219 C10.4007,11.8053759 10.43535,11.8287847 10.4504,11.8631709 L10.98655,13.1045863 C11.0016,13.1389726 10.9956,13.17782 10.97225,13.2068931 C10.1605001,14.1995341 8.96020001,14.7683115 7.68010001,14.7683115 C5.33305,14.7683115 3.42340001,12.8535563 3.42340001,10.5009524 C3.42340001,8.14679459 5.33300001,6.23203946 7.68010001,6.23203946 C9.45720002,6.23203946 10.8909,7.19074535 11.6138,8.86359341 C11.6205501,8.88018505 12.3412,10.5707777 12.97445,12.0190621 C13.34865,12.8739575 13.64615,13.3959676 14.6288,13.4291508 C15.5663001,13.4612814 16.25375,12.9121534 16.25375,12.1484869 C16.25375,11.4691321 15.8320501,11.3003585 14.8803,10.98216 C13.2365,10.4397989 12.34495,9.88605929 12.34495,8.51817658 C12.34495,7.1809207 13.26665,6.31615054 14.692,6.31615054 C15.62875,6.31615054 16.3155,6.7286858 16.79215,7.5768142 C16.80495,7.60062396 16.8079001,7.62814302 16.8004001,7.65420843 C16.7929,7.68027384 16.7748,7.70212868 16.7507001,7.713808 L15.86145,8.16900031 C15.8178001,8.19200805 15.7643,8.17807308 15.73565,8.13847371 C15.43295,7.71345711 15.0956,7.52513451 14.6423,7.52513451 C14.05125,7.52513451 13.6220001,7.92899802 13.6220001,8.48649708 C13.6220001,9.17382194 14.1529001,9.34144259 15.0339,9.61923972 C15.14915,9.65578139 15.26955,9.69397731 15.39385,9.73432853 C16.7763,10.1865133 17.57675,10.7311301 17.57675,12.1836251 C17.57685,13.629654 16.3389,14.7204413 14.69735,14.7204413 Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/linkedin.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar linkedin_LinkedInIcon = function LinkedInIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mail.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar mail_MailIcon = function MailIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/mastodon.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar mastodon_MastodonIcon = function MastodonIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/meetup.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar meetup_MeetupIcon = function MeetupIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/medium.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar medium_MediumIcon = function MediumIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pinterest.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pinterest_PinterestIcon = function PinterestIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/pocket.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar pocket_PocketIcon = function PocketIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/reddit.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar reddit_RedditIcon = function RedditIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M22,11.816c0-1.256-1.021-2.277-2.277-2.277c-0.593,0-1.122,0.24-1.526,0.614c-1.481-0.965-3.455-1.594-5.647-1.69 l1.171-3.702l3.18,0.748c0.008,1.028,0.846,1.862,1.876,1.862c1.035,0,1.877-0.842,1.877-1.878c0-1.035-0.842-1.877-1.877-1.877 c-0.769,0-1.431,0.466-1.72,1.13l-3.508-0.826c-0.203-0.047-0.399,0.067-0.46,0.261l-1.35,4.268 c-2.316,0.038-4.411,0.67-5.97,1.671C5.368,9.765,4.853,9.539,4.277,9.539C3.021,9.539,2,10.56,2,11.816 c0,0.814,0.433,1.523,1.078,1.925c-0.037,0.221-0.061,0.444-0.061,0.672c0,3.292,4.011,5.97,8.941,5.97s8.941-2.678,8.941-5.97 c0-0.214-0.02-0.424-0.053-0.632C21.533,13.39,22,12.661,22,11.816z M18.776,4.394c0.606,0,1.1,0.493,1.1,1.1s-0.493,1.1-1.1,1.1 s-1.1-0.494-1.1-1.1S18.169,4.394,18.776,4.394z M2.777,11.816c0-0.827,0.672-1.5,1.499-1.5c0.313,0,0.598,0.103,0.838,0.269 c-0.851,0.676-1.477,1.479-1.812,2.36C2.983,12.672,2.777,12.27,2.777,11.816z M11.959,19.606c-4.501,0-8.164-2.329-8.164-5.193 S7.457,9.22,11.959,9.22s8.164,2.329,8.164,5.193S16.46,19.606,11.959,19.606z M20.636,13.001c-0.326-0.89-0.948-1.701-1.797-2.384 c0.248-0.186,0.55-0.301,0.883-0.301c0.827,0,1.5,0.673,1.5,1.5C21.223,12.299,20.992,12.727,20.636,13.001z M8.996,14.704 c-0.76,0-1.397-0.616-1.397-1.376c0-0.76,0.637-1.397,1.397-1.397c0.76,0,1.376,0.637,1.376,1.397 C10.372,14.088,9.756,14.704,8.996,14.704z M16.401,13.328c0,0.76-0.616,1.376-1.376,1.376c-0.76,0-1.399-0.616-1.399-1.376 c0-0.76,0.639-1.397,1.399-1.397C15.785,11.931,16.401,12.568,16.401,13.328z M15.229,16.708c0.152,0.152,0.152,0.398,0,0.55 c-0.674,0.674-1.727,1.002-3.219,1.002c-0.004,0-0.007-0.002-0.011-0.002c-0.004,0-0.007,0.002-0.011,0.002 c-1.492,0-2.544-0.328-3.218-1.002c-0.152-0.152-0.152-0.398,0-0.55c0.152-0.152,0.399-0.151,0.55,0 c0.521,0.521,1.394,0.775,2.669,0.775c0.004,0,0.007,0.002,0.011,0.002c0.004,0,0.007-0.002,0.011-0.002 c1.275,0,2.148-0.253,2.669-0.775C14.831,16.556,15.078,16.556,15.229,16.708z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/skype.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar skype_SkypeIcon = function SkypeIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/snapchat.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar snapchat_SnapchatIcon = function SnapchatIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/soundcloud.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar soundcloud_SoundCloudIcon = function SoundCloudIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/spotify.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar spotify_SpotifyIcon = function SpotifyIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/tumblr.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar tumblr_TumblrIcon = function TumblrIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitch.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar twitch_TwitchIcon = function TwitchIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/twitter.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar twitter_TwitterIcon = function TwitterIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vimeo.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar vimeo_VimeoIcon = function VimeoIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/vk.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar vk_VkIcon = function VkIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/yelp.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar yelp_YelpIcon = function YelpIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/icons/youtube.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar youtube_YouTubeIcon = function YouTubeIcon() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\",\n    version: \"1.1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/variations.js\n/**\n * Internal dependencies\n */\n\nvar social_link_variations_variations = [{\n  isDefault: true,\n  name: 'wordpress',\n  attributes: {\n    service: 'wordpress'\n  },\n  title: 'WordPress',\n  icon: wordpress_WordPressIcon\n}, {\n  name: 'fivehundredpx',\n  attributes: {\n    service: 'fivehundredpx'\n  },\n  title: '500px',\n  icon: fivehundredpx_FivehundredpxIcon\n}, {\n  name: 'amazon',\n  attributes: {\n    service: 'amazon'\n  },\n  title: 'Amazon',\n  icon: amazon_AmazonIcon\n}, {\n  name: 'bandcamp',\n  attributes: {\n    service: 'bandcamp'\n  },\n  title: 'Bandcamp',\n  icon: bandcamp_BandcampIcon\n}, {\n  name: 'behance',\n  attributes: {\n    service: 'behance'\n  },\n  title: 'Behance',\n  icon: behance_BehanceIcon\n}, {\n  name: 'chain',\n  attributes: {\n    service: 'chain'\n  },\n  title: 'Link',\n  icon: chain_ChainIcon\n}, {\n  name: 'codepen',\n  attributes: {\n    service: 'codepen'\n  },\n  title: 'CodePen',\n  icon: codepen_CodepenIcon\n}, {\n  name: 'deviantart',\n  attributes: {\n    service: 'deviantart'\n  },\n  title: 'DeviantArt',\n  icon: deviantart_DeviantArtIcon\n}, {\n  name: 'dribbble',\n  attributes: {\n    service: 'dribbble'\n  },\n  title: 'Dribbble',\n  icon: dribbble_DribbbleIcon\n}, {\n  name: 'dropbox',\n  attributes: {\n    service: 'dropbox'\n  },\n  title: 'Dropbox',\n  icon: dropbox_DropboxIcon\n}, {\n  name: 'etsy',\n  attributes: {\n    service: 'etsy'\n  },\n  title: 'Etsy',\n  icon: etsy_EtsyIcon\n}, {\n  name: 'facebook',\n  attributes: {\n    service: 'facebook'\n  },\n  title: 'Facebook',\n  icon: facebook_FacebookIcon\n}, {\n  name: 'feed',\n  attributes: {\n    service: 'feed'\n  },\n  title: 'RSS Feed',\n  icon: feed_FeedIcon\n}, {\n  name: 'flickr',\n  attributes: {\n    service: 'flickr'\n  },\n  title: 'Flickr',\n  icon: flickr_FlickrIcon\n}, {\n  name: 'foursquare',\n  attributes: {\n    service: 'foursquare'\n  },\n  title: 'Foursquare',\n  icon: foursquare_FoursquareIcon\n}, {\n  name: 'goodreads',\n  attributes: {\n    service: 'goodreads'\n  },\n  title: 'Goodreads',\n  icon: goodreads_GoodreadsIcon\n}, {\n  name: 'google',\n  attributes: {\n    service: 'google'\n  },\n  title: 'Google',\n  icon: google_GoogleIcon\n}, {\n  name: 'github',\n  attributes: {\n    service: 'github'\n  },\n  title: 'GitHub',\n  icon: github_GitHubIcon\n}, {\n  name: 'instagram',\n  attributes: {\n    service: 'instagram'\n  },\n  title: 'Instagram',\n  icon: instagram_InstagramIcon\n}, {\n  name: 'lastfm',\n  attributes: {\n    service: 'lastfm'\n  },\n  title: 'Last.fm',\n  icon: lastfm_LastfmIcon\n}, {\n  name: 'linkedin',\n  attributes: {\n    service: 'linkedin'\n  },\n  title: 'LinkedIn',\n  icon: linkedin_LinkedInIcon\n}, {\n  name: 'mail',\n  attributes: {\n    service: 'mail'\n  },\n  title: 'Mail',\n  icon: mail_MailIcon\n}, {\n  name: 'mastodon',\n  attributes: {\n    service: 'mastodon'\n  },\n  title: 'Mastodon',\n  icon: mastodon_MastodonIcon\n}, {\n  name: 'meetup',\n  attributes: {\n    service: 'meetup'\n  },\n  title: 'Meetup',\n  icon: meetup_MeetupIcon\n}, {\n  name: 'medium',\n  attributes: {\n    service: 'medium'\n  },\n  title: 'Medium',\n  icon: medium_MediumIcon\n}, {\n  name: 'pinterest',\n  attributes: {\n    service: 'pinterest'\n  },\n  title: 'Pinterest',\n  icon: pinterest_PinterestIcon\n}, {\n  name: 'pocket',\n  attributes: {\n    service: 'pocket'\n  },\n  title: 'Pocket',\n  icon: pocket_PocketIcon\n}, {\n  name: 'reddit',\n  attributes: {\n    service: 'reddit'\n  },\n  title: 'Reddit',\n  icon: reddit_RedditIcon\n}, {\n  name: 'skype',\n  attributes: {\n    service: 'skype'\n  },\n  title: 'Skype',\n  icon: skype_SkypeIcon\n}, {\n  name: 'snapchat',\n  attributes: {\n    service: 'snapchat'\n  },\n  title: 'Snapchat',\n  icon: snapchat_SnapchatIcon\n}, {\n  name: 'soundcloud',\n  attributes: {\n    service: 'soundcloud'\n  },\n  title: 'SoundCloud',\n  icon: soundcloud_SoundCloudIcon\n}, {\n  name: 'spotify',\n  attributes: {\n    service: 'spotify'\n  },\n  title: 'Spotify',\n  icon: spotify_SpotifyIcon\n}, {\n  name: 'tumblr',\n  attributes: {\n    service: 'tumblr'\n  },\n  title: 'Tumblr',\n  icon: tumblr_TumblrIcon\n}, {\n  name: 'twitch',\n  attributes: {\n    service: 'twitch'\n  },\n  title: 'Twitch',\n  icon: twitch_TwitchIcon\n}, {\n  name: 'twitter',\n  attributes: {\n    service: 'twitter'\n  },\n  title: 'Twitter',\n  icon: twitter_TwitterIcon\n}, {\n  name: 'vimeo',\n  attributes: {\n    service: 'vimeo'\n  },\n  title: 'Vimeo',\n  icon: vimeo_VimeoIcon\n}, {\n  name: 'vk',\n  attributes: {\n    service: 'vk'\n  },\n  title: 'VK',\n  icon: vk_VkIcon\n}, {\n  name: 'yelp',\n  attributes: {\n    service: 'yelp'\n  },\n  title: 'Yelp',\n  icon: yelp_YelpIcon\n}, {\n  name: 'youtube',\n  attributes: {\n    service: 'youtube'\n  },\n  title: 'YouTube',\n  icon: youtube_YouTubeIcon\n}];\n/* harmony default export */ var social_link_variations = (social_link_variations_variations);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/social-list.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Retrieves the social service's icon component.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {WPComponent} Icon component for social service.\n */\n\nvar social_list_getIconBySite = function getIconBySite(name) {\n  var variation = Object(external_this_lodash_[\"find\"])(social_link_variations, {\n    name: name\n  });\n  return variation ? variation.icon : chain_ChainIcon;\n};\n/**\n * Retrieves the display name for the social service.\n *\n * @param {string} name key for a social service (lowercase slug)\n *\n * @return {string} Display name for social service\n */\n\nvar social_list_getNameBySite = function getNameBySite(name) {\n  var variation = Object(external_this_lodash_[\"find\"])(social_link_variations, {\n    name: name\n  });\n  return variation ? variation.title : Object(external_this_wp_i18n_[\"__\"])('Social Icon');\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/edit.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar edit_SocialLinkEdit = function SocialLinkEdit(_ref) {\n  var attributes = _ref.attributes,\n      setAttributes = _ref.setAttributes,\n      isSelected = _ref.isSelected;\n  var url = attributes.url,\n      service = attributes.service,\n      label = attributes.label;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      showURLPopover = _useState2[0],\n      setPopover = _useState2[1];\n\n  var classes = classnames_default()('wp-social-link', 'wp-social-link-' + service, {\n    'wp-social-link__is-incomplete': !url\n  });\n  var IconComponent = social_list_getIconBySite(service);\n  var socialLinkName = social_list_getNameBySite(service);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"InspectorControls\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: name of the social service. */\n    Object(external_this_wp_i18n_[\"__\"])('%s label'), socialLinkName),\n    initialOpen: false\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Link label'),\n    help: Object(external_this_wp_i18n_[\"__\"])('Briefly describe the link to help screen reader users.'),\n    value: label,\n    onChange: function onChange(value) {\n      return setAttributes({\n        label: value\n      });\n    }\n  })))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlock\"].li, {\n    className: classes\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: function onClick() {\n      return setPopover(true);\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(IconComponent, null), isSelected && showURLPopover && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"URLPopover\"], {\n    onClose: function onClose() {\n      return setPopover(false);\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n    className: \"block-editor-url-popover__link-editor\",\n    onSubmit: function onSubmit(event) {\n      event.preventDefault();\n      setPopover(false);\n    }\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"block-editor-url-input\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"URLInput\"], {\n    value: url,\n    onChange: function onChange(nextURL) {\n      return setAttributes({\n        url: nextURL\n      });\n    },\n    placeholder: Object(external_this_wp_i18n_[\"__\"])('Enter address'),\n    disableSuggestions: true\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    icon: keyboard_return[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Apply'),\n    type: \"submit\"\n  }))))));\n};\n\n/* harmony default export */ var social_link_edit = (edit_SocialLinkEdit);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/social-link/index.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar social_link_metadata = {\n  name: \"core/social-link\",\n  category: \"widgets\",\n  parent: [\"core/social-links\"],\n  attributes: {\n    url: {\n      type: \"string\"\n    },\n    service: {\n      type: \"string\"\n    },\n    label: {\n      type: \"string\"\n    }\n  },\n  supports: {\n    reusable: false,\n    html: false,\n    lightBlockWrapper: true\n  }\n};\n\nvar social_link_name = social_link_metadata.name;\n\nvar social_link_settings = {\n  title: Object(external_this_wp_i18n_[\"__\"])('Social Icon'),\n  icon: library_share,\n  edit: social_link_edit,\n  description: Object(external_this_wp_i18n_[\"__\"])('Display an icon linking to a social media profile or website.'),\n  variations: social_link_variations\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // Full Site Editing Blocks\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Function to register an individual block.\n *\n * @param {Object} block The block to be registered.\n *\n */\n\nvar build_module_registerBlock = function registerBlock(block) {\n  if (!block) {\n    return;\n  }\n\n  var metadata = block.metadata,\n      settings = block.settings,\n      name = block.name;\n\n  if (metadata) {\n    Object(external_this_wp_blocks_[\"unstable__bootstrapServerSideBlockDefinitions\"])(Object(defineProperty[\"a\" /* default */])({}, name, metadata));\n  }\n\n  Object(external_this_wp_blocks_[\"registerBlockType\"])(name, settings);\n};\n/**\n * Function to register core blocks provided by the block editor.\n *\n * @example\n * ```js\n * import { registerCoreBlocks } from '@wordpress/block-library';\n *\n * registerCoreBlocks();\n * ```\n */\n\n\nvar build_module_registerCoreBlocks = function registerCoreBlocks() {\n  [// Common blocks are grouped at the top to prioritize their display\n  // in various contexts — like the inserter and auto-complete components.\n  build_module_paragraph_namespaceObject, build_module_image_namespaceObject, build_module_heading_namespaceObject, build_module_gallery_namespaceObject, build_module_list_namespaceObject, build_module_quote_namespaceObject, // Register all remaining core blocks.\n  build_module_shortcode_namespaceObject, archives_namespaceObject, build_module_audio_namespaceObject, build_module_button_namespaceObject, buttons_namespaceObject, build_module_calendar_namespaceObject, categories_namespaceObject, code_namespaceObject, build_module_columns_namespaceObject, build_module_column_namespaceObject, build_module_cover_namespaceObject, embed_namespaceObject].concat(Object(toConsumableArray[\"a\" /* default */])(embed_common), Object(toConsumableArray[\"a\" /* default */])(embed_others), [build_module_file_namespaceObject, build_module_group_namespaceObject, window.wp && window.wp.oldEditor ? build_module_classic_namespaceObject : null, // Only add the classic block in WP Context\n  build_module_html_namespaceObject, media_text_namespaceObject, latest_comments_namespaceObject, latest_posts_namespaceObject, missing_namespaceObject, build_module_more_namespaceObject, nextpage_namespaceObject, build_module_preformatted_namespaceObject, build_module_pullquote_namespaceObject, build_module_rss_namespaceObject, search_namespaceObject, build_module_separator_namespaceObject, block_namespaceObject, social_links_namespaceObject, social_link_namespaceObject, spacer_namespaceObject, subhead_namespaceObject, build_module_table_namespaceObject, tag_cloud_namespaceObject, text_columns_namespaceObject, build_module_verse_namespaceObject, build_module_video_namespaceObject]).forEach(build_module_registerBlock);\n  Object(external_this_wp_blocks_[\"setDefaultBlockName\"])(paragraph_name);\n\n  if (window.wp && window.wp.oldEditor) {\n    Object(external_this_wp_blocks_[\"setFreeformContentHandlerName\"])(classic_name);\n  }\n\n  Object(external_this_wp_blocks_[\"setUnregisteredTypeHandlerName\"])(missing_name);\n  Object(external_this_wp_blocks_[\"setGroupingBlockName\"])(group_name);\n};\n/**\n * Function to register experimental core blocks depending on editor settings.\n *\n * @param {Object} settings Editor settings.\n *\n * @example\n * ```js\n * import { __experimentalRegisterExperimentalCoreBlocks } from '@wordpress/block-library';\n *\n * __experimentalRegisterExperimentalCoreBlocks( settings );\n * ```\n */\n\nvar __experimentalRegisterExperimentalCoreBlocks =  false ? undefined : undefined;\n\n\n/***/ }),\n\n/***/ 44:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blob\"]; }());\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ }),\n\n/***/ 56:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n    trimRight = /\\s+$/,\n    tinyCounter = 0,\n    mathRound = Math.round,\n    mathMin = Math.min,\n    mathMax = Math.max,\n    mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n    color = (color) ? color : '';\n    opts = opts || { };\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n       return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n        return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color,\n    this._r = rgb.r,\n    this._g = rgb.g,\n    this._b = rgb.b,\n    this._a = rgb.a,\n    this._roundA = mathRound(100*this._a) / 100,\n    this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) { this._r = mathRound(this._r); }\n    if (this._g < 1) { this._g = mathRound(this._g); }\n    if (this._b < 1) { this._b = mathRound(this._b); }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n    isDark: function() {\n        return this.getBrightness() < 128;\n    },\n    isLight: function() {\n        return !this.isDark();\n    },\n    isValid: function() {\n        return this._ok;\n    },\n    getOriginalInput: function() {\n      return this._originalInput;\n    },\n    getFormat: function() {\n        return this._format;\n    },\n    getAlpha: function() {\n        return this._a;\n    },\n    getBrightness: function() {\n        //http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function() {\n        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var RsRGB, GsRGB, BsRGB, R, G, B;\n        RsRGB = rgb.r/255;\n        GsRGB = rgb.g/255;\n        BsRGB = rgb.b/255;\n\n        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n    },\n    setAlpha: function(value) {\n        this._a = boundAlpha(value);\n        this._roundA = mathRound(100*this._a) / 100;\n        return this;\n    },\n    toHsv: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n    },\n    toHsvString: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n        return (this._a == 1) ?\n          \"hsv(\"  + h + \", \" + s + \"%, \" + v + \"%)\" :\n          \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n    },\n    toHsl: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n    },\n    toHslString: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n        return (this._a == 1) ?\n          \"hsl(\"  + h + \", \" + s + \"%, \" + l + \"%)\" :\n          \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n    },\n    toHex: function(allow3Char) {\n        return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function(allow3Char) {\n        return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function(allow4Char) {\n        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function(allow4Char) {\n        return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function() {\n        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n    },\n    toRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n          \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function() {\n        return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n    },\n    toPercentageRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n          \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function() {\n        if (this._a === 0) {\n            return \"transparent\";\n        }\n\n        if (this._a < 1) {\n            return false;\n        }\n\n        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function(secondColor) {\n        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n        var secondHex8String = hex8String;\n        var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n        if (secondColor) {\n            var s = tinycolor(secondColor);\n            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n        }\n\n        return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n    },\n    toString: function(format) {\n        var formatSet = !!format;\n        format = format || this._format;\n\n        var formattedString = false;\n        var hasAlpha = this._a < 1 && this._a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === \"name\" && this._a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"prgb\") {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n        if (format === \"name\") {\n            formattedString = this.toName();\n        }\n        if (format === \"hsl\") {\n            formattedString = this.toHslString();\n        }\n        if (format === \"hsv\") {\n            formattedString = this.toHsvString();\n        }\n\n        return formattedString || this.toHexString();\n    },\n    clone: function() {\n        return tinycolor(this.toString());\n    },\n\n    _applyModification: function(fn, args) {\n        var color = fn.apply(null, [this].concat([].slice.call(args)));\n        this._r = color._r;\n        this._g = color._g;\n        this._b = color._b;\n        this.setAlpha(color._a);\n        return this;\n    },\n    lighten: function() {\n        return this._applyModification(lighten, arguments);\n    },\n    brighten: function() {\n        return this._applyModification(brighten, arguments);\n    },\n    darken: function() {\n        return this._applyModification(darken, arguments);\n    },\n    desaturate: function() {\n        return this._applyModification(desaturate, arguments);\n    },\n    saturate: function() {\n        return this._applyModification(saturate, arguments);\n    },\n    greyscale: function() {\n        return this._applyModification(greyscale, arguments);\n    },\n    spin: function() {\n        return this._applyModification(spin, arguments);\n    },\n\n    _applyCombination: function(fn, args) {\n        return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function() {\n        return this._applyCombination(analogous, arguments);\n    },\n    complement: function() {\n        return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function() {\n        return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function() {\n        return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function() {\n        return this._applyCombination(triad, arguments);\n    },\n    tetrad: function() {\n        return this._applyCombination(tetrad, arguments);\n    }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n    if (typeof color == \"object\") {\n        var newColor = {};\n        for (var i in color) {\n            if (color.hasOwnProperty(i)) {\n                if (i === \"a\") {\n                    newColor[i] = color[i];\n                }\n                else {\n                    newColor[i] = convertToPercentage(color[i]);\n                }\n            }\n        }\n        color = newColor;\n    }\n\n    return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n//     \"red\"\n//     \"#f00\" or \"f00\"\n//     \"#ff0000\" or \"ff0000\"\n//     \"#ff000000\" or \"ff000000\"\n//     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n//     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n//     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n//     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n//     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n//     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n//     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n        color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = \"hsv\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = \"hsl\";\n        }\n\n        if (color.hasOwnProperty(\"a\")) {\n            a = color.a;\n        }\n    }\n\n    a = boundAlpha(a);\n\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: mathMin(255, mathMax(rgb.r, 0)),\n        g: mathMin(255, mathMax(rgb.g, 0)),\n        b: mathMin(255, mathMax(rgb.b, 0)),\n        a: a\n    };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255\n    };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, l = (max + min) / 2;\n\n    if(max == min) {\n        h = s = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n\n        h /= 6;\n    }\n\n    return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n    var r, g, b;\n\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n        if(t < 0) t += 1;\n        if(t > 1) t -= 1;\n        if(t < 1/6) return p + (q - p) * 6 * t;\n        if(t < 1/2) return q;\n        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    }\n\n    if(s === 0) {\n        r = g = b = l; // achromatic\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1/3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1/3);\n    }\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if(max == min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) { return false; }\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n    return tinycolor.fromRatio({\n        r: mathRandom(),\n        g: mathRandom(),\n        b: mathRandom()\n    });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n    return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n    return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n}\n\nfunction triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n    ];\n}\n\nfunction analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n        hsl.h = (hsl.h + part) % 360;\n        ret.push(tinycolor(hsl));\n    }\n    return ret;\n}\n\nfunction monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h, s = hsv.s, v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n        ret.push(tinycolor({ h: h, s: s, v: v}));\n        v = (v + modification) % 1;\n    }\n\n    return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n    amount = (amount === 0) ? 0 : (amount || 50);\n\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n\n    var p = amount / 100;\n\n    var rgba = {\n        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n        a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n    };\n\n    return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n//    tinycolor.isReadable(\"#000\", \"#111\") => false\n//    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n\n    out = false;\n\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n        case \"AAsmall\":\n        case \"AAAlarge\":\n            out = readability >= 4.5;\n            break;\n        case \"AAlarge\":\n            out = readability >= 3;\n            break;\n        case \"AAAsmall\":\n            out = readability >= 7;\n            break;\n    }\n    return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size ;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors ;\n    level = args.level;\n    size = args.size;\n\n    for (var i= 0; i < colorList.length ; i++) {\n        readability = tinycolor.readability(baseColor, colorList[i]);\n        if (readability > bestScore) {\n            bestScore = readability;\n            bestColor = tinycolor(colorList[i]);\n        }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n        return bestColor;\n    }\n    else {\n        args.includeFallbackColors=false;\n        return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n    }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n    var flipped = { };\n    for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n            flipped[o[i]] = i;\n        }\n    }\n    return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n\n    return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n    if (isOnePointZero(n)) { n = \"100%\"; }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n        n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if ((Math.abs(n - max) < 0.000001)) {\n        return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n    if (n <= 1) {\n        n = (n * 100) + \"%\";\n    }\n\n    return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n    return {\n        CSS_UNIT: new RegExp(CSS_UNIT),\n        rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n        rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n        hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n        hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n        hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n        hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color == 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsl.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    if ((match = matchers.hsla.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsv.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    if ((match = matchers.hsva.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n\n    return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n        level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n        size = \"small\";\n    }\n    return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n    module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 68:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"date\"]; }());\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());\n\n/***/ }),\n\n/***/ 72:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"viewport\"]; }());\n\n/***/ }),\n\n/***/ 74:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"serverSideRender\"]; }());\n\n/***/ }),\n\n/***/ 79:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"escapeHtml\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 89:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"coreData\"]; }());\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 92:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"notices\"]; }());\n\n/***/ }),\n\n/***/ 96:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"autop\"]; }());\n\n/***/ }),\n\n/***/ 98:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar classNames = (function () {\n\t\t// don't inherit from Object so we can skip hasOwnProperty check later\n\t\t// http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232\n\t\tfunction StorageObject() {}\n\t\tStorageObject.prototype = Object.create(null);\n\n\t\tfunction _parseArray (resultSet, array) {\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t_parse(resultSet, array[i]);\n\t\t\t}\n\t\t}\n\n\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\tfunction _parseNumber (resultSet, num) {\n\t\t\tresultSet[num] = true;\n\t\t}\n\n\t\tfunction _parseObject (resultSet, object) {\n\t\t\tfor (var k in object) {\n\t\t\t\tif (hasOwn.call(object, k)) {\n\t\t\t\t\t// set value to false instead of deleting it to avoid changing object structure\n\t\t\t\t\t// https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions\n\t\t\t\t\tresultSet[k] = !!object[k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar SPACE = /\\s+/;\n\t\tfunction _parseString (resultSet, str) {\n\t\t\tvar array = str.split(SPACE);\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\tresultSet[array[i]] = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction _parse (resultSet, arg) {\n\t\t\tif (!arg) return;\n\t\t\tvar argType = typeof arg;\n\n\t\t\t// 'foo bar'\n\t\t\tif (argType === 'string') {\n\t\t\t\t_parseString(resultSet, arg);\n\n\t\t\t// ['foo', 'bar', ...]\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t_parseArray(resultSet, arg);\n\n\t\t\t// { 'foo': true, ... }\n\t\t\t} else if (argType === 'object') {\n\t\t\t\t_parseObject(resultSet, arg);\n\n\t\t\t// '130'\n\t\t\t} else if (argType === 'number') {\n\t\t\t\t_parseNumber(resultSet, arg);\n\t\t\t}\n\t\t}\n\n\t\tfunction _classNames () {\n\t\t\t// don't leak arguments\n\t\t\t// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n\t\t\tvar len = arguments.length;\n\t\t\tvar args = Array(len);\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\targs[i] = arguments[i];\n\t\t\t}\n\n\t\t\tvar classSet = new StorageObject();\n\t\t\t_parseArray(classSet, args);\n\n\t\t\tvar list = [];\n\n\t\t\tfor (var k in classSet) {\n\t\t\t\tif (classSet[k]) {\n\t\t\t\t\tlist.push(k)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list.join(' ');\n\t\t}\n\n\t\treturn _classNames;\n\t})();\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-block-serialization-default-parser.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blockSerializationDefaultParser\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 299);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 299:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parse\", function() { return parse; });\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);\n\nvar document;\nvar offset;\nvar output;\nvar stack;\n/**\n * Matches block comment delimiters\n *\n * While most of this pattern is straightforward the attribute parsing\n * incorporates a tricks to make sure we don't choke on specific input\n *\n *  - since JavaScript has no possessive quantifier or atomic grouping\n *    we are emulating it with a trick\n *\n *    we want a possessive quantifier or atomic group to prevent backtracking\n *    on the `}`s should we fail to match the remainder of the pattern\n *\n *    we can emulate this with a positive lookahead and back reference\n *    (a++)*c === ((?=(a+))\\1)*c\n *\n *    let's examine an example:\n *      - /(a+)*c/.test('aaaaaaaaaaaaad') fails after over 49,000 steps\n *      - /(a++)*c/.test('aaaaaaaaaaaaad') fails after 85 steps\n *      - /(?>a+)*c/.test('aaaaaaaaaaaaad') fails after 126 steps\n *\n *    this is because the possessive `++` and the atomic group `(?>)`\n *    tell the engine that all those `a`s belong together as a single group\n *    and so it won't split it up when stepping backwards to try and match\n *\n *    if we use /((?=(a+))\\1)*c/ then we get the same behavior as the atomic group\n *    or possessive and prevent the backtracking because the `a+` is matched but\n *    not captured. thus, we find the long string of `a`s and remember it, then\n *    reference it as a whole unit inside our pattern\n *\n *    @see http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead\n *    @see http://blog.stevenlevithan.com/archives/mimic-atomic-groups\n *    @see https://javascript.info/regexp-infinite-backtracking-problem\n *\n *    once browsers reliably support atomic grouping or possessive\n *    quantifiers natively we should remove this trick and simplify\n *\n * @type {RegExp}\n *\n * @since 3.8.0\n * @since 4.6.1 added optimization to prevent backtracking on attribute parsing\n */\n\nvar tokenizer = /<!--\\s+(\\/)?wp:([a-z][a-z0-9_-]*\\/)?([a-z][a-z0-9_-]*)\\s+({(?:(?=([^}]+|}+(?=})|(?!}\\s+\\/?-->)[^])*)\\5|[^]*?)}\\s+)?(\\/)?-->/g;\n\nfunction Block(blockName, attrs, innerBlocks, innerHTML, innerContent) {\n  return {\n    blockName: blockName,\n    attrs: attrs,\n    innerBlocks: innerBlocks,\n    innerHTML: innerHTML,\n    innerContent: innerContent\n  };\n}\n\nfunction Freeform(innerHTML) {\n  return Block(null, {}, [], innerHTML, [innerHTML]);\n}\n\nfunction Frame(block, tokenStart, tokenLength, prevOffset, leadingHtmlStart) {\n  return {\n    block: block,\n    tokenStart: tokenStart,\n    tokenLength: tokenLength,\n    prevOffset: prevOffset || tokenStart + tokenLength,\n    leadingHtmlStart: leadingHtmlStart\n  };\n}\n/**\n * Parser function, that converts input HTML into a block based structure.\n *\n * @param {string} doc The HTML document to parse.\n *\n * @example\n * Input post:\n * ```html\n * <!-- wp:columns {\"columns\":3} -->\n * <div class=\"wp-block-columns has-3-columns\"><!-- wp:column -->\n * <div class=\"wp-block-column\"><!-- wp:paragraph -->\n * <p>Left</p>\n * <!-- /wp:paragraph --></div>\n * <!-- /wp:column -->\n *\n * <!-- wp:column -->\n * <div class=\"wp-block-column\"><!-- wp:paragraph -->\n * <p><strong>Middle</strong></p>\n * <!-- /wp:paragraph --></div>\n * <!-- /wp:column -->\n *\n * <!-- wp:column -->\n * <div class=\"wp-block-column\"></div>\n * <!-- /wp:column --></div>\n * <!-- /wp:columns -->\n * ```\n *\n * Parsing code:\n * ```js\n * import { parse } from '@wordpress/block-serialization-default-parser';\n *\n * parse( post ) === [\n *     {\n *         blockName: \"core/columns\",\n *         attrs: {\n *             columns: 3\n *         },\n *         innerBlocks: [\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [\n *                     {\n *                         blockName: \"core/paragraph\",\n *                         attrs: null,\n *                         innerBlocks: [],\n *                         innerHTML: \"\\n<p>Left</p>\\n\"\n *                     }\n *                 ],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             },\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [\n *                     {\n *                         blockName: \"core/paragraph\",\n *                         attrs: null,\n *                         innerBlocks: [],\n *                         innerHTML: \"\\n<p><strong>Middle</strong></p>\\n\"\n *                     }\n *                 ],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             },\n *             {\n *                 blockName: \"core/column\",\n *                 attrs: null,\n *                 innerBlocks: [],\n *                 innerHTML: '\\n<div class=\"wp-block-column\"></div>\\n'\n *             }\n *         ],\n *         innerHTML: '\\n<div class=\"wp-block-columns has-3-columns\">\\n\\n\\n\\n</div>\\n'\n *     }\n * ];\n * ```\n * @return {Array} A block-based representation of the input HTML.\n */\n\n\nvar parse = function parse(doc) {\n  document = doc;\n  offset = 0;\n  output = [];\n  stack = [];\n  tokenizer.lastIndex = 0;\n\n  do {// twiddle our thumbs\n  } while (proceed());\n\n  return output;\n};\n\nfunction proceed() {\n  var next = nextToken();\n\n  var _next = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(next, 5),\n      tokenType = _next[0],\n      blockName = _next[1],\n      attrs = _next[2],\n      startOffset = _next[3],\n      tokenLength = _next[4];\n\n  var stackDepth = stack.length; // we may have some HTML soup before the next block\n\n  var leadingHtmlStart = startOffset > offset ? offset : null;\n\n  switch (tokenType) {\n    case 'no-more-tokens':\n      // if not in a block then flush output\n      if (0 === stackDepth) {\n        addFreeform();\n        return false;\n      } // Otherwise we have a problem\n      // This is an error\n      // we have options\n      //  - treat it all as freeform text\n      //  - assume an implicit closer (easiest when not nesting)\n      // for the easy case we'll assume an implicit closer\n\n\n      if (1 === stackDepth) {\n        addBlockFromStack();\n        return false;\n      } // for the nested case where it's more difficult we'll\n      // have to assume that multiple closers are missing\n      // and so we'll collapse the whole stack piecewise\n\n\n      while (0 < stack.length) {\n        addBlockFromStack();\n      }\n\n      return false;\n\n    case 'void-block':\n      // easy case is if we stumbled upon a void block\n      // in the top-level of the document\n      if (0 === stackDepth) {\n        if (null !== leadingHtmlStart) {\n          output.push(Freeform(document.substr(leadingHtmlStart, startOffset - leadingHtmlStart)));\n        }\n\n        output.push(Block(blockName, attrs, [], '', []));\n        offset = startOffset + tokenLength;\n        return true;\n      } // otherwise we found an inner block\n\n\n      addInnerBlock(Block(blockName, attrs, [], '', []), startOffset, tokenLength);\n      offset = startOffset + tokenLength;\n      return true;\n\n    case 'block-opener':\n      // track all newly-opened blocks on the stack\n      stack.push(Frame(Block(blockName, attrs, [], '', []), startOffset, tokenLength, startOffset + tokenLength, leadingHtmlStart));\n      offset = startOffset + tokenLength;\n      return true;\n\n    case 'block-closer':\n      // if we're missing an opener we're in trouble\n      // This is an error\n      if (0 === stackDepth) {\n        // we have options\n        //  - assume an implicit opener\n        //  - assume _this_ is the opener\n        //  - give up and close out the document\n        addFreeform();\n        return false;\n      } // if we're not nesting then this is easy - close the block\n\n\n      if (1 === stackDepth) {\n        addBlockFromStack(startOffset);\n        offset = startOffset + tokenLength;\n        return true;\n      } // otherwise we're nested and we have to close out the current\n      // block and add it as a innerBlock to the parent\n\n\n      var stackTop = stack.pop();\n      var html = document.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset);\n      stackTop.block.innerHTML += html;\n      stackTop.block.innerContent.push(html);\n      stackTop.prevOffset = startOffset + tokenLength;\n      addInnerBlock(stackTop.block, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength);\n      offset = startOffset + tokenLength;\n      return true;\n\n    default:\n      // This is an error\n      addFreeform();\n      return false;\n  }\n}\n/**\n * Parse JSON if valid, otherwise return null\n *\n * Note that JSON coming from the block comment\n * delimiters is constrained to be an object\n * and cannot be things like `true` or `null`\n *\n * @param {string} input JSON input string to parse\n * @return {Object|null} parsed JSON if valid\n */\n\n\nfunction parseJSON(input) {\n  try {\n    return JSON.parse(input);\n  } catch (e) {\n    return null;\n  }\n}\n\nfunction nextToken() {\n  // aye the magic\n  // we're using a single RegExp to tokenize the block comment delimiters\n  // we're also using a trick here because the only difference between a\n  // block opener and a block closer is the leading `/` before `wp:` (and\n  // a closer has no attributes). we can trap them both and process the\n  // match back in Javascript to see which one it was.\n  var matches = tokenizer.exec(document); // we have no more tokens\n\n  if (null === matches) {\n    return ['no-more-tokens'];\n  }\n\n  var startedAt = matches.index;\n\n  var _matches = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(matches, 7),\n      match = _matches[0],\n      closerMatch = _matches[1],\n      namespaceMatch = _matches[2],\n      nameMatch = _matches[3],\n      attrsMatch\n  /* internal/unused */\n  = _matches[4],\n      voidMatch = _matches[6];\n\n  var length = match.length;\n  var isCloser = !!closerMatch;\n  var isVoid = !!voidMatch;\n  var namespace = namespaceMatch || 'core/';\n  var name = namespace + nameMatch;\n  var hasAttrs = !!attrsMatch;\n  var attrs = hasAttrs ? parseJSON(attrsMatch) : {}; // This state isn't allowed\n  // This is an error\n\n  if (isCloser && (isVoid || hasAttrs)) {// we can ignore them since they don't hurt anything\n    // we may warn against this at some point or reject it\n  }\n\n  if (isVoid) {\n    return ['void-block', name, attrs, startedAt, length];\n  }\n\n  if (isCloser) {\n    return ['block-closer', name, null, startedAt, length];\n  }\n\n  return ['block-opener', name, attrs, startedAt, length];\n}\n\nfunction addFreeform(rawLength) {\n  var length = rawLength ? rawLength : document.length - offset;\n\n  if (0 === length) {\n    return;\n  }\n\n  output.push(Freeform(document.substr(offset, length)));\n}\n\nfunction addInnerBlock(block, tokenStart, tokenLength, lastOffset) {\n  var parent = stack[stack.length - 1];\n  parent.block.innerBlocks.push(block);\n  var html = document.substr(parent.prevOffset, tokenStart - parent.prevOffset);\n\n  if (html) {\n    parent.block.innerHTML += html;\n    parent.block.innerContent.push(html);\n  }\n\n  parent.block.innerContent.push(null);\n  parent.prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength;\n}\n\nfunction addBlockFromStack(endOffset) {\n  var _stack$pop = stack.pop(),\n      block = _stack$pop.block,\n      leadingHtmlStart = _stack$pop.leadingHtmlStart,\n      prevOffset = _stack$pop.prevOffset,\n      tokenStart = _stack$pop.tokenStart;\n\n  var html = endOffset ? document.substr(prevOffset, endOffset - prevOffset) : document.substr(prevOffset);\n\n  if (html) {\n    block.innerHTML += html;\n    block.innerContent.push(html);\n  }\n\n  if (null !== leadingHtmlStart) {\n    output.push(Freeform(document.substr(leadingHtmlStart, tokenStart - leadingHtmlStart)));\n  }\n\n  output.push(block);\n}\n\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-blocks.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"blocks\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 437);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 119:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"shortcode\"]; }());\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 140:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _toArray; });\n/* harmony import */ var _arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);\n/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35);\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29);\n/* harmony import */ var _nonIterableRest__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39);\n\n\n\n\nfunction _toArray(arr) {\n  return Object(_arrayWithHoles__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(arr) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(arr) || Object(_nonIterableRest__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])();\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 196:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar blockDefault = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (blockDefault);\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 262:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockSerializationDefaultParser\"]; }());\n\n/***/ }),\n\n/***/ 263:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;;/*! showdown v 1.9.1 - 02-11-2019 */\r\n(function(){\r\n/**\n * Created by Tivie on 13-07-2015.\n */\n\nfunction getDefaultOpts (simple) {\n  'use strict';\n\n  var defaultOptions = {\n    omitExtraWLInCodeBlocks: {\n      defaultValue: false,\n      describe: 'Omit the default extra whiteline added to code blocks',\n      type: 'boolean'\n    },\n    noHeaderId: {\n      defaultValue: false,\n      describe: 'Turn on/off generated header id',\n      type: 'boolean'\n    },\n    prefixHeaderId: {\n      defaultValue: false,\n      describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \\'section-\\' prefix',\n      type: 'string'\n    },\n    rawPrefixHeaderId: {\n      defaultValue: false,\n      describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the \" char is used in the prefix)',\n      type: 'boolean'\n    },\n    ghCompatibleHeaderId: {\n      defaultValue: false,\n      describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',\n      type: 'boolean'\n    },\n    rawHeaderId: {\n      defaultValue: false,\n      describe: 'Remove only spaces, \\' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',\n      type: 'boolean'\n    },\n    headerLevelStart: {\n      defaultValue: false,\n      describe: 'The header blocks level start',\n      type: 'integer'\n    },\n    parseImgDimensions: {\n      defaultValue: false,\n      describe: 'Turn on/off image dimension parsing',\n      type: 'boolean'\n    },\n    simplifiedAutoLink: {\n      defaultValue: false,\n      describe: 'Turn on/off GFM autolink style',\n      type: 'boolean'\n    },\n    excludeTrailingPunctuationFromURLs: {\n      defaultValue: false,\n      describe: 'Excludes trailing punctuation from links generated with autoLinking',\n      type: 'boolean'\n    },\n    literalMidWordUnderscores: {\n      defaultValue: false,\n      describe: 'Parse midword underscores as literal underscores',\n      type: 'boolean'\n    },\n    literalMidWordAsterisks: {\n      defaultValue: false,\n      describe: 'Parse midword asterisks as literal asterisks',\n      type: 'boolean'\n    },\n    strikethrough: {\n      defaultValue: false,\n      describe: 'Turn on/off strikethrough support',\n      type: 'boolean'\n    },\n    tables: {\n      defaultValue: false,\n      describe: 'Turn on/off tables support',\n      type: 'boolean'\n    },\n    tablesHeaderId: {\n      defaultValue: false,\n      describe: 'Add an id to table headers',\n      type: 'boolean'\n    },\n    ghCodeBlocks: {\n      defaultValue: true,\n      describe: 'Turn on/off GFM fenced code blocks support',\n      type: 'boolean'\n    },\n    tasklists: {\n      defaultValue: false,\n      describe: 'Turn on/off GFM tasklist support',\n      type: 'boolean'\n    },\n    smoothLivePreview: {\n      defaultValue: false,\n      describe: 'Prevents weird effects in live previews due to incomplete input',\n      type: 'boolean'\n    },\n    smartIndentationFix: {\n      defaultValue: false,\n      description: 'Tries to smartly fix indentation in es6 strings',\n      type: 'boolean'\n    },\n    disableForced4SpacesIndentedSublists: {\n      defaultValue: false,\n      description: 'Disables the requirement of indenting nested sublists by 4 spaces',\n      type: 'boolean'\n    },\n    simpleLineBreaks: {\n      defaultValue: false,\n      description: 'Parses simple line breaks as <br> (GFM Style)',\n      type: 'boolean'\n    },\n    requireSpaceBeforeHeadingText: {\n      defaultValue: false,\n      description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',\n      type: 'boolean'\n    },\n    ghMentions: {\n      defaultValue: false,\n      description: 'Enables github @mentions',\n      type: 'boolean'\n    },\n    ghMentionsLink: {\n      defaultValue: 'https://github.com/{u}',\n      description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',\n      type: 'string'\n    },\n    encodeEmails: {\n      defaultValue: true,\n      description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',\n      type: 'boolean'\n    },\n    openLinksInNewWindow: {\n      defaultValue: false,\n      description: 'Open all links in new windows',\n      type: 'boolean'\n    },\n    backslashEscapesHTMLTags: {\n      defaultValue: false,\n      description: 'Support for HTML Tag escaping. ex: \\<div>foo\\</div>',\n      type: 'boolean'\n    },\n    emoji: {\n      defaultValue: false,\n      description: 'Enable emoji support. Ex: `this is a :smile: emoji`',\n      type: 'boolean'\n    },\n    underline: {\n      defaultValue: false,\n      description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`',\n      type: 'boolean'\n    },\n    completeHTMLDocument: {\n      defaultValue: false,\n      description: 'Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags',\n      type: 'boolean'\n    },\n    metadata: {\n      defaultValue: false,\n      description: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',\n      type: 'boolean'\n    },\n    splitAdjacentBlockquotes: {\n      defaultValue: false,\n      description: 'Split adjacent blockquote blocks',\n      type: 'boolean'\n    }\n  };\n  if (simple === false) {\n    return JSON.parse(JSON.stringify(defaultOptions));\n  }\n  var ret = {};\n  for (var opt in defaultOptions) {\n    if (defaultOptions.hasOwnProperty(opt)) {\n      ret[opt] = defaultOptions[opt].defaultValue;\n    }\n  }\n  return ret;\n}\n\nfunction allOptionsOn () {\n  'use strict';\n  var options = getDefaultOpts(true),\n      ret = {};\n  for (var opt in options) {\n    if (options.hasOwnProperty(opt)) {\n      ret[opt] = true;\n    }\n  }\n  return ret;\n}\n\r\n/**\n * Created by Tivie on 06-01-2015.\n */\n\n// Private properties\nvar showdown = {},\n    parsers = {},\n    extensions = {},\n    globalOptions = getDefaultOpts(true),\n    setFlavor = 'vanilla',\n    flavor = {\n      github: {\n        omitExtraWLInCodeBlocks:              true,\n        simplifiedAutoLink:                   true,\n        excludeTrailingPunctuationFromURLs:   true,\n        literalMidWordUnderscores:            true,\n        strikethrough:                        true,\n        tables:                               true,\n        tablesHeaderId:                       true,\n        ghCodeBlocks:                         true,\n        tasklists:                            true,\n        disableForced4SpacesIndentedSublists: true,\n        simpleLineBreaks:                     true,\n        requireSpaceBeforeHeadingText:        true,\n        ghCompatibleHeaderId:                 true,\n        ghMentions:                           true,\n        backslashEscapesHTMLTags:             true,\n        emoji:                                true,\n        splitAdjacentBlockquotes:             true\n      },\n      original: {\n        noHeaderId:                           true,\n        ghCodeBlocks:                         false\n      },\n      ghost: {\n        omitExtraWLInCodeBlocks:              true,\n        parseImgDimensions:                   true,\n        simplifiedAutoLink:                   true,\n        excludeTrailingPunctuationFromURLs:   true,\n        literalMidWordUnderscores:            true,\n        strikethrough:                        true,\n        tables:                               true,\n        tablesHeaderId:                       true,\n        ghCodeBlocks:                         true,\n        tasklists:                            true,\n        smoothLivePreview:                    true,\n        simpleLineBreaks:                     true,\n        requireSpaceBeforeHeadingText:        true,\n        ghMentions:                           false,\n        encodeEmails:                         true\n      },\n      vanilla: getDefaultOpts(true),\n      allOn: allOptionsOn()\n    };\n\n/**\n * helper namespace\n * @type {{}}\n */\nshowdown.helper = {};\n\n/**\n * TODO LEGACY SUPPORT CODE\n * @type {{}}\n */\nshowdown.extensions = {};\n\n/**\n * Set a global option\n * @static\n * @param {string} key\n * @param {*} value\n * @returns {showdown}\n */\nshowdown.setOption = function (key, value) {\n  'use strict';\n  globalOptions[key] = value;\n  return this;\n};\n\n/**\n * Get a global option\n * @static\n * @param {string} key\n * @returns {*}\n */\nshowdown.getOption = function (key) {\n  'use strict';\n  return globalOptions[key];\n};\n\n/**\n * Get the global options\n * @static\n * @returns {{}}\n */\nshowdown.getOptions = function () {\n  'use strict';\n  return globalOptions;\n};\n\n/**\n * Reset global options to the default values\n * @static\n */\nshowdown.resetOptions = function () {\n  'use strict';\n  globalOptions = getDefaultOpts(true);\n};\n\n/**\n * Set the flavor showdown should use as default\n * @param {string} name\n */\nshowdown.setFlavor = function (name) {\n  'use strict';\n  if (!flavor.hasOwnProperty(name)) {\n    throw Error(name + ' flavor was not found');\n  }\n  showdown.resetOptions();\n  var preset = flavor[name];\n  setFlavor = name;\n  for (var option in preset) {\n    if (preset.hasOwnProperty(option)) {\n      globalOptions[option] = preset[option];\n    }\n  }\n};\n\n/**\n * Get the currently set flavor\n * @returns {string}\n */\nshowdown.getFlavor = function () {\n  'use strict';\n  return setFlavor;\n};\n\n/**\n * Get the options of a specified flavor. Returns undefined if the flavor was not found\n * @param {string} name Name of the flavor\n * @returns {{}|undefined}\n */\nshowdown.getFlavorOptions = function (name) {\n  'use strict';\n  if (flavor.hasOwnProperty(name)) {\n    return flavor[name];\n  }\n};\n\n/**\n * Get the default options\n * @static\n * @param {boolean} [simple=true]\n * @returns {{}}\n */\nshowdown.getDefaultOptions = function (simple) {\n  'use strict';\n  return getDefaultOpts(simple);\n};\n\n/**\n * Get or set a subParser\n *\n * subParser(name)       - Get a registered subParser\n * subParser(name, func) - Register a subParser\n * @static\n * @param {string} name\n * @param {function} [func]\n * @returns {*}\n */\nshowdown.subParser = function (name, func) {\n  'use strict';\n  if (showdown.helper.isString(name)) {\n    if (typeof func !== 'undefined') {\n      parsers[name] = func;\n    } else {\n      if (parsers.hasOwnProperty(name)) {\n        return parsers[name];\n      } else {\n        throw Error('SubParser named ' + name + ' not registered!');\n      }\n    }\n  }\n};\n\n/**\n * Gets or registers an extension\n * @static\n * @param {string} name\n * @param {object|function=} ext\n * @returns {*}\n */\nshowdown.extension = function (name, ext) {\n  'use strict';\n\n  if (!showdown.helper.isString(name)) {\n    throw Error('Extension \\'name\\' must be a string');\n  }\n\n  name = showdown.helper.stdExtName(name);\n\n  // Getter\n  if (showdown.helper.isUndefined(ext)) {\n    if (!extensions.hasOwnProperty(name)) {\n      throw Error('Extension named ' + name + ' is not registered!');\n    }\n    return extensions[name];\n\n    // Setter\n  } else {\n    // Expand extension if it's wrapped in a function\n    if (typeof ext === 'function') {\n      ext = ext();\n    }\n\n    // Ensure extension is an array\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n\n    var validExtension = validate(ext, name);\n\n    if (validExtension.valid) {\n      extensions[name] = ext;\n    } else {\n      throw Error(validExtension.error);\n    }\n  }\n};\n\n/**\n * Gets all extensions registered\n * @returns {{}}\n */\nshowdown.getAllExtensions = function () {\n  'use strict';\n  return extensions;\n};\n\n/**\n * Remove an extension\n * @param {string} name\n */\nshowdown.removeExtension = function (name) {\n  'use strict';\n  delete extensions[name];\n};\n\n/**\n * Removes all extensions\n */\nshowdown.resetExtensions = function () {\n  'use strict';\n  extensions = {};\n};\n\n/**\n * Validate extension\n * @param {array} extension\n * @param {string} name\n * @returns {{valid: boolean, error: string}}\n */\nfunction validate (extension, name) {\n  'use strict';\n\n  var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',\n      ret = {\n        valid: true,\n        error: ''\n      };\n\n  if (!showdown.helper.isArray(extension)) {\n    extension = [extension];\n  }\n\n  for (var i = 0; i < extension.length; ++i) {\n    var baseMsg = errMsg + ' sub-extension ' + i + ': ',\n        ext = extension[i];\n    if (typeof ext !== 'object') {\n      ret.valid = false;\n      ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';\n      return ret;\n    }\n\n    if (!showdown.helper.isString(ext.type)) {\n      ret.valid = false;\n      ret.error = baseMsg + 'property \"type\" must be a string, but ' + typeof ext.type + ' given';\n      return ret;\n    }\n\n    var type = ext.type = ext.type.toLowerCase();\n\n    // normalize extension type\n    if (type === 'language') {\n      type = ext.type = 'lang';\n    }\n\n    if (type === 'html') {\n      type = ext.type = 'output';\n    }\n\n    if (type !== 'lang' && type !== 'output' && type !== 'listener') {\n      ret.valid = false;\n      ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"';\n      return ret;\n    }\n\n    if (type === 'listener') {\n      if (showdown.helper.isUndefined(ext.listeners)) {\n        ret.valid = false;\n        ret.error = baseMsg + '. Extensions of type \"listener\" must have a property called \"listeners\"';\n        return ret;\n      }\n    } else {\n      if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {\n        ret.valid = false;\n        ret.error = baseMsg + type + ' extensions must define either a \"regex\" property or a \"filter\" method';\n        return ret;\n      }\n    }\n\n    if (ext.listeners) {\n      if (typeof ext.listeners !== 'object') {\n        ret.valid = false;\n        ret.error = baseMsg + '\"listeners\" property must be an object but ' + typeof ext.listeners + ' given';\n        return ret;\n      }\n      for (var ln in ext.listeners) {\n        if (ext.listeners.hasOwnProperty(ln)) {\n          if (typeof ext.listeners[ln] !== 'function') {\n            ret.valid = false;\n            ret.error = baseMsg + '\"listeners\" property must be an hash of [event name]: [callback]. listeners.' + ln +\n              ' must be a function but ' + typeof ext.listeners[ln] + ' given';\n            return ret;\n          }\n        }\n      }\n    }\n\n    if (ext.filter) {\n      if (typeof ext.filter !== 'function') {\n        ret.valid = false;\n        ret.error = baseMsg + '\"filter\" must be a function, but ' + typeof ext.filter + ' given';\n        return ret;\n      }\n    } else if (ext.regex) {\n      if (showdown.helper.isString(ext.regex)) {\n        ext.regex = new RegExp(ext.regex, 'g');\n      }\n      if (!(ext.regex instanceof RegExp)) {\n        ret.valid = false;\n        ret.error = baseMsg + '\"regex\" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';\n        return ret;\n      }\n      if (showdown.helper.isUndefined(ext.replace)) {\n        ret.valid = false;\n        ret.error = baseMsg + '\"regex\" extensions must implement a replace string or function';\n        return ret;\n      }\n    }\n  }\n  return ret;\n}\n\n/**\n * Validate extension\n * @param {object} ext\n * @returns {boolean}\n */\nshowdown.validateExtension = function (ext) {\n  'use strict';\n\n  var validateExtension = validate(ext, null);\n  if (!validateExtension.valid) {\n    console.warn(validateExtension.error);\n    return false;\n  }\n  return true;\n};\n\r\n/**\n * showdownjs helper functions\n */\n\nif (!showdown.hasOwnProperty('helper')) {\n  showdown.helper = {};\n}\n\n/**\n * Check if var is string\n * @static\n * @param {string} a\n * @returns {boolean}\n */\nshowdown.helper.isString = function (a) {\n  'use strict';\n  return (typeof a === 'string' || a instanceof String);\n};\n\n/**\n * Check if var is a function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isFunction = function (a) {\n  'use strict';\n  var getType = {};\n  return a && getType.toString.call(a) === '[object Function]';\n};\n\n/**\n * isArray helper function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isArray = function (a) {\n  'use strict';\n  return Array.isArray(a);\n};\n\n/**\n * Check if value is undefined\n * @static\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n */\nshowdown.helper.isUndefined = function (value) {\n  'use strict';\n  return typeof value === 'undefined';\n};\n\n/**\n * ForEach helper function\n * Iterates over Arrays and Objects (own properties only)\n * @static\n * @param {*} obj\n * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object\n */\nshowdown.helper.forEach = function (obj, callback) {\n  'use strict';\n  // check if obj is defined\n  if (showdown.helper.isUndefined(obj)) {\n    throw new Error('obj param is required');\n  }\n\n  if (showdown.helper.isUndefined(callback)) {\n    throw new Error('callback param is required');\n  }\n\n  if (!showdown.helper.isFunction(callback)) {\n    throw new Error('callback param must be a function/closure');\n  }\n\n  if (typeof obj.forEach === 'function') {\n    obj.forEach(callback);\n  } else if (showdown.helper.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      callback(obj[i], i, obj);\n    }\n  } else if (typeof (obj) === 'object') {\n    for (var prop in obj) {\n      if (obj.hasOwnProperty(prop)) {\n        callback(obj[prop], prop, obj);\n      }\n    }\n  } else {\n    throw new Error('obj does not seem to be an array or an iterable object');\n  }\n};\n\n/**\n * Standardidize extension name\n * @static\n * @param {string} s extension name\n * @returns {string}\n */\nshowdown.helper.stdExtName = function (s) {\n  'use strict';\n  return s.replace(/[_?*+\\/\\\\.^-]/g, '').replace(/\\s/g, '').toLowerCase();\n};\n\nfunction escapeCharactersCallback (wholeMatch, m1) {\n  'use strict';\n  var charCodeToEscape = m1.charCodeAt(0);\n  return '¨E' + charCodeToEscape + 'E';\n}\n\n/**\n * Callback used to escape characters when passing through String.replace\n * @static\n * @param {string} wholeMatch\n * @param {string} m1\n * @returns {string}\n */\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\n\n/**\n * Escape characters in a string\n * @static\n * @param {string} text\n * @param {string} charsToEscape\n * @param {boolean} afterBackslash\n * @returns {XML|string|void|*}\n */\nshowdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {\n  'use strict';\n  // First we have to escape the escape characters so that\n  // we can build a character class out of them\n  var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\n\n  if (afterBackslash) {\n    regexString = '\\\\\\\\' + regexString;\n  }\n\n  var regex = new RegExp(regexString, 'g');\n  text = text.replace(regex, escapeCharactersCallback);\n\n  return text;\n};\n\n/**\n * Unescape HTML entities\n * @param txt\n * @returns {string}\n */\nshowdown.helper.unescapeHTMLEntities = function (txt) {\n  'use strict';\n\n  return txt\n    .replace(/&quot;/g, '\"')\n    .replace(/&lt;/g, '<')\n    .replace(/&gt;/g, '>')\n    .replace(/&amp;/g, '&');\n};\n\nvar rgxFindMatchPos = function (str, left, right, flags) {\n  'use strict';\n  var f = flags || '',\n      g = f.indexOf('g') > -1,\n      x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),\n      l = new RegExp(left, f.replace(/g/g, '')),\n      pos = [],\n      t, s, m, start, end;\n\n  do {\n    t = 0;\n    while ((m = x.exec(str))) {\n      if (l.test(m[0])) {\n        if (!(t++)) {\n          s = x.lastIndex;\n          start = s - m[0].length;\n        }\n      } else if (t) {\n        if (!--t) {\n          end = m.index + m[0].length;\n          var obj = {\n            left: {start: start, end: s},\n            match: {start: s, end: m.index},\n            right: {start: m.index, end: end},\n            wholeMatch: {start: start, end: end}\n          };\n          pos.push(obj);\n          if (!g) {\n            return pos;\n          }\n        }\n      }\n    }\n  } while (t && (x.lastIndex = s));\n\n  return pos;\n};\n\n/**\n * matchRecursiveRegExp\n *\n * (c) 2007 Steven Levithan <stevenlevithan.com>\n * MIT License\n *\n * Accepts a string to search, a left and right format delimiter\n * as regex patterns, and optional regex flags. Returns an array\n * of matches, allowing nested instances of left/right delimiters.\n * Use the \"g\" flag to return all matches, otherwise only the\n * first is returned. Be careful to ensure that the left and\n * right format delimiters produce mutually exclusive matches.\n * Backreferences are not supported within the right delimiter\n * due to how it is internally combined with the left delimiter.\n * When matching strings whose format delimiters are unbalanced\n * to the left or right, the output is intentionally as a\n * conventional regex library with recursion support would\n * produce, e.g. \"<<x>\" and \"<x>>\" both produce [\"x\"] when using\n * \"<\" and \">\" as the delimiters (both strings contain a single,\n * balanced instance of \"<x>\").\n *\n * examples:\n * matchRecursiveRegExp(\"test\", \"\\\\(\", \"\\\\)\")\n * returns: []\n * matchRecursiveRegExp(\"<t<<e>><s>>t<>\", \"<\", \">\", \"g\")\n * returns: [\"t<<e>><s>\", \"\"]\n * matchRecursiveRegExp(\"<div id=\\\"x\\\">test</div>\", \"<div\\\\b[^>]*>\", \"</div>\", \"gi\")\n * returns: [\"test\"]\n */\nshowdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {\n  'use strict';\n\n  var matchPos = rgxFindMatchPos (str, left, right, flags),\n      results = [];\n\n  for (var i = 0; i < matchPos.length; ++i) {\n    results.push([\n      str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n      str.slice(matchPos[i].match.start, matchPos[i].match.end),\n      str.slice(matchPos[i].left.start, matchPos[i].left.end),\n      str.slice(matchPos[i].right.start, matchPos[i].right.end)\n    ]);\n  }\n  return results;\n};\n\n/**\n *\n * @param {string} str\n * @param {string|function} replacement\n * @param {string} left\n * @param {string} right\n * @param {string} flags\n * @returns {string}\n */\nshowdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {\n  'use strict';\n\n  if (!showdown.helper.isFunction(replacement)) {\n    var repStr = replacement;\n    replacement = function () {\n      return repStr;\n    };\n  }\n\n  var matchPos = rgxFindMatchPos(str, left, right, flags),\n      finalStr = str,\n      lng = matchPos.length;\n\n  if (lng > 0) {\n    var bits = [];\n    if (matchPos[0].wholeMatch.start !== 0) {\n      bits.push(str.slice(0, matchPos[0].wholeMatch.start));\n    }\n    for (var i = 0; i < lng; ++i) {\n      bits.push(\n        replacement(\n          str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n          str.slice(matchPos[i].match.start, matchPos[i].match.end),\n          str.slice(matchPos[i].left.start, matchPos[i].left.end),\n          str.slice(matchPos[i].right.start, matchPos[i].right.end)\n        )\n      );\n      if (i < lng - 1) {\n        bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));\n      }\n    }\n    if (matchPos[lng - 1].wholeMatch.end < str.length) {\n      bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));\n    }\n    finalStr = bits.join('');\n  }\n  return finalStr;\n};\n\n/**\n * Returns the index within the passed String object of the first occurrence of the specified regex,\n * starting the search at fromIndex. Returns -1 if the value is not found.\n *\n * @param {string} str string to search\n * @param {RegExp} regex Regular expression to search\n * @param {int} [fromIndex = 0] Index to start the search\n * @returns {Number}\n * @throws InvalidArgumentError\n */\nshowdown.helper.regexIndexOf = function (str, regex, fromIndex) {\n  'use strict';\n  if (!showdown.helper.isString(str)) {\n    throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n  }\n  if (regex instanceof RegExp === false) {\n    throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';\n  }\n  var indexOf = str.substring(fromIndex || 0).search(regex);\n  return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;\n};\n\n/**\n * Splits the passed string object at the defined index, and returns an array composed of the two substrings\n * @param {string} str string to split\n * @param {int} index index to split string at\n * @returns {[string,string]}\n * @throws InvalidArgumentError\n */\nshowdown.helper.splitAtIndex = function (str, index) {\n  'use strict';\n  if (!showdown.helper.isString(str)) {\n    throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n  }\n  return [str.substring(0, index), str.substring(index)];\n};\n\n/**\n * Obfuscate an e-mail address through the use of Character Entities,\n * transforming ASCII characters into their equivalent decimal or hex entities.\n *\n * Since it has a random component, subsequent calls to this function produce different results\n *\n * @param {string} mail\n * @returns {string}\n */\nshowdown.helper.encodeEmailAddress = function (mail) {\n  'use strict';\n  var encode = [\n    function (ch) {\n      return '&#' + ch.charCodeAt(0) + ';';\n    },\n    function (ch) {\n      return '&#x' + ch.charCodeAt(0).toString(16) + ';';\n    },\n    function (ch) {\n      return ch;\n    }\n  ];\n\n  mail = mail.replace(/./g, function (ch) {\n    if (ch === '@') {\n      // this *must* be encoded. I insist.\n      ch = encode[Math.floor(Math.random() * 2)](ch);\n    } else {\n      var r = Math.random();\n      // roughly 10% raw, 45% hex, 45% dec\n      ch = (\n        r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)\n      );\n    }\n    return ch;\n  });\n\n  return mail;\n};\n\n/**\n *\n * @param str\n * @param targetLength\n * @param padString\n * @returns {string}\n */\nshowdown.helper.padEnd = function padEnd (str, targetLength, padString) {\n  'use strict';\n  /*jshint bitwise: false*/\n  // eslint-disable-next-line space-infix-ops\n  targetLength = targetLength>>0; //floor if number or convert non-number to 0;\n  /*jshint bitwise: true*/\n  padString = String(padString || ' ');\n  if (str.length > targetLength) {\n    return String(str);\n  } else {\n    targetLength = targetLength - str.length;\n    if (targetLength > padString.length) {\n      padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\n    }\n    return String(str) + padString.slice(0,targetLength);\n  }\n};\n\n/**\n * POLYFILLS\n */\n// use this instead of builtin is undefined for IE8 compatibility\nif (typeof console === 'undefined') {\n  console = {\n    warn: function (msg) {\n      'use strict';\n      alert(msg);\n    },\n    log: function (msg) {\n      'use strict';\n      alert(msg);\n    },\n    error: function (msg) {\n      'use strict';\n      throw msg;\n    }\n  };\n}\n\n/**\n * Common regexes.\n * We declare some common regexes to improve performance\n */\nshowdown.helper.regexes = {\n  asteriskDashAndColon: /([*_:~])/g\n};\n\n/**\n * EMOJIS LIST\n */\nshowdown.helper.emojis = {\n  '+1':'\\ud83d\\udc4d',\n  '-1':'\\ud83d\\udc4e',\n  '100':'\\ud83d\\udcaf',\n  '1234':'\\ud83d\\udd22',\n  '1st_place_medal':'\\ud83e\\udd47',\n  '2nd_place_medal':'\\ud83e\\udd48',\n  '3rd_place_medal':'\\ud83e\\udd49',\n  '8ball':'\\ud83c\\udfb1',\n  'a':'\\ud83c\\udd70\\ufe0f',\n  'ab':'\\ud83c\\udd8e',\n  'abc':'\\ud83d\\udd24',\n  'abcd':'\\ud83d\\udd21',\n  'accept':'\\ud83c\\ude51',\n  'aerial_tramway':'\\ud83d\\udea1',\n  'airplane':'\\u2708\\ufe0f',\n  'alarm_clock':'\\u23f0',\n  'alembic':'\\u2697\\ufe0f',\n  'alien':'\\ud83d\\udc7d',\n  'ambulance':'\\ud83d\\ude91',\n  'amphora':'\\ud83c\\udffa',\n  'anchor':'\\u2693\\ufe0f',\n  'angel':'\\ud83d\\udc7c',\n  'anger':'\\ud83d\\udca2',\n  'angry':'\\ud83d\\ude20',\n  'anguished':'\\ud83d\\ude27',\n  'ant':'\\ud83d\\udc1c',\n  'apple':'\\ud83c\\udf4e',\n  'aquarius':'\\u2652\\ufe0f',\n  'aries':'\\u2648\\ufe0f',\n  'arrow_backward':'\\u25c0\\ufe0f',\n  'arrow_double_down':'\\u23ec',\n  'arrow_double_up':'\\u23eb',\n  'arrow_down':'\\u2b07\\ufe0f',\n  'arrow_down_small':'\\ud83d\\udd3d',\n  'arrow_forward':'\\u25b6\\ufe0f',\n  'arrow_heading_down':'\\u2935\\ufe0f',\n  'arrow_heading_up':'\\u2934\\ufe0f',\n  'arrow_left':'\\u2b05\\ufe0f',\n  'arrow_lower_left':'\\u2199\\ufe0f',\n  'arrow_lower_right':'\\u2198\\ufe0f',\n  'arrow_right':'\\u27a1\\ufe0f',\n  'arrow_right_hook':'\\u21aa\\ufe0f',\n  'arrow_up':'\\u2b06\\ufe0f',\n  'arrow_up_down':'\\u2195\\ufe0f',\n  'arrow_up_small':'\\ud83d\\udd3c',\n  'arrow_upper_left':'\\u2196\\ufe0f',\n  'arrow_upper_right':'\\u2197\\ufe0f',\n  'arrows_clockwise':'\\ud83d\\udd03',\n  'arrows_counterclockwise':'\\ud83d\\udd04',\n  'art':'\\ud83c\\udfa8',\n  'articulated_lorry':'\\ud83d\\ude9b',\n  'artificial_satellite':'\\ud83d\\udef0',\n  'astonished':'\\ud83d\\ude32',\n  'athletic_shoe':'\\ud83d\\udc5f',\n  'atm':'\\ud83c\\udfe7',\n  'atom_symbol':'\\u269b\\ufe0f',\n  'avocado':'\\ud83e\\udd51',\n  'b':'\\ud83c\\udd71\\ufe0f',\n  'baby':'\\ud83d\\udc76',\n  'baby_bottle':'\\ud83c\\udf7c',\n  'baby_chick':'\\ud83d\\udc24',\n  'baby_symbol':'\\ud83d\\udebc',\n  'back':'\\ud83d\\udd19',\n  'bacon':'\\ud83e\\udd53',\n  'badminton':'\\ud83c\\udff8',\n  'baggage_claim':'\\ud83d\\udec4',\n  'baguette_bread':'\\ud83e\\udd56',\n  'balance_scale':'\\u2696\\ufe0f',\n  'balloon':'\\ud83c\\udf88',\n  'ballot_box':'\\ud83d\\uddf3',\n  'ballot_box_with_check':'\\u2611\\ufe0f',\n  'bamboo':'\\ud83c\\udf8d',\n  'banana':'\\ud83c\\udf4c',\n  'bangbang':'\\u203c\\ufe0f',\n  'bank':'\\ud83c\\udfe6',\n  'bar_chart':'\\ud83d\\udcca',\n  'barber':'\\ud83d\\udc88',\n  'baseball':'\\u26be\\ufe0f',\n  'basketball':'\\ud83c\\udfc0',\n  'basketball_man':'\\u26f9\\ufe0f',\n  'basketball_woman':'\\u26f9\\ufe0f&zwj;\\u2640\\ufe0f',\n  'bat':'\\ud83e\\udd87',\n  'bath':'\\ud83d\\udec0',\n  'bathtub':'\\ud83d\\udec1',\n  'battery':'\\ud83d\\udd0b',\n  'beach_umbrella':'\\ud83c\\udfd6',\n  'bear':'\\ud83d\\udc3b',\n  'bed':'\\ud83d\\udecf',\n  'bee':'\\ud83d\\udc1d',\n  'beer':'\\ud83c\\udf7a',\n  'beers':'\\ud83c\\udf7b',\n  'beetle':'\\ud83d\\udc1e',\n  'beginner':'\\ud83d\\udd30',\n  'bell':'\\ud83d\\udd14',\n  'bellhop_bell':'\\ud83d\\udece',\n  'bento':'\\ud83c\\udf71',\n  'biking_man':'\\ud83d\\udeb4',\n  'bike':'\\ud83d\\udeb2',\n  'biking_woman':'\\ud83d\\udeb4&zwj;\\u2640\\ufe0f',\n  'bikini':'\\ud83d\\udc59',\n  'biohazard':'\\u2623\\ufe0f',\n  'bird':'\\ud83d\\udc26',\n  'birthday':'\\ud83c\\udf82',\n  'black_circle':'\\u26ab\\ufe0f',\n  'black_flag':'\\ud83c\\udff4',\n  'black_heart':'\\ud83d\\udda4',\n  'black_joker':'\\ud83c\\udccf',\n  'black_large_square':'\\u2b1b\\ufe0f',\n  'black_medium_small_square':'\\u25fe\\ufe0f',\n  'black_medium_square':'\\u25fc\\ufe0f',\n  'black_nib':'\\u2712\\ufe0f',\n  'black_small_square':'\\u25aa\\ufe0f',\n  'black_square_button':'\\ud83d\\udd32',\n  'blonde_man':'\\ud83d\\udc71',\n  'blonde_woman':'\\ud83d\\udc71&zwj;\\u2640\\ufe0f',\n  'blossom':'\\ud83c\\udf3c',\n  'blowfish':'\\ud83d\\udc21',\n  'blue_book':'\\ud83d\\udcd8',\n  'blue_car':'\\ud83d\\ude99',\n  'blue_heart':'\\ud83d\\udc99',\n  'blush':'\\ud83d\\ude0a',\n  'boar':'\\ud83d\\udc17',\n  'boat':'\\u26f5\\ufe0f',\n  'bomb':'\\ud83d\\udca3',\n  'book':'\\ud83d\\udcd6',\n  'bookmark':'\\ud83d\\udd16',\n  'bookmark_tabs':'\\ud83d\\udcd1',\n  'books':'\\ud83d\\udcda',\n  'boom':'\\ud83d\\udca5',\n  'boot':'\\ud83d\\udc62',\n  'bouquet':'\\ud83d\\udc90',\n  'bowing_man':'\\ud83d\\ude47',\n  'bow_and_arrow':'\\ud83c\\udff9',\n  'bowing_woman':'\\ud83d\\ude47&zwj;\\u2640\\ufe0f',\n  'bowling':'\\ud83c\\udfb3',\n  'boxing_glove':'\\ud83e\\udd4a',\n  'boy':'\\ud83d\\udc66',\n  'bread':'\\ud83c\\udf5e',\n  'bride_with_veil':'\\ud83d\\udc70',\n  'bridge_at_night':'\\ud83c\\udf09',\n  'briefcase':'\\ud83d\\udcbc',\n  'broken_heart':'\\ud83d\\udc94',\n  'bug':'\\ud83d\\udc1b',\n  'building_construction':'\\ud83c\\udfd7',\n  'bulb':'\\ud83d\\udca1',\n  'bullettrain_front':'\\ud83d\\ude85',\n  'bullettrain_side':'\\ud83d\\ude84',\n  'burrito':'\\ud83c\\udf2f',\n  'bus':'\\ud83d\\ude8c',\n  'business_suit_levitating':'\\ud83d\\udd74',\n  'busstop':'\\ud83d\\ude8f',\n  'bust_in_silhouette':'\\ud83d\\udc64',\n  'busts_in_silhouette':'\\ud83d\\udc65',\n  'butterfly':'\\ud83e\\udd8b',\n  'cactus':'\\ud83c\\udf35',\n  'cake':'\\ud83c\\udf70',\n  'calendar':'\\ud83d\\udcc6',\n  'call_me_hand':'\\ud83e\\udd19',\n  'calling':'\\ud83d\\udcf2',\n  'camel':'\\ud83d\\udc2b',\n  'camera':'\\ud83d\\udcf7',\n  'camera_flash':'\\ud83d\\udcf8',\n  'camping':'\\ud83c\\udfd5',\n  'cancer':'\\u264b\\ufe0f',\n  'candle':'\\ud83d\\udd6f',\n  'candy':'\\ud83c\\udf6c',\n  'canoe':'\\ud83d\\udef6',\n  'capital_abcd':'\\ud83d\\udd20',\n  'capricorn':'\\u2651\\ufe0f',\n  'car':'\\ud83d\\ude97',\n  'card_file_box':'\\ud83d\\uddc3',\n  'card_index':'\\ud83d\\udcc7',\n  'card_index_dividers':'\\ud83d\\uddc2',\n  'carousel_horse':'\\ud83c\\udfa0',\n  'carrot':'\\ud83e\\udd55',\n  'cat':'\\ud83d\\udc31',\n  'cat2':'\\ud83d\\udc08',\n  'cd':'\\ud83d\\udcbf',\n  'chains':'\\u26d3',\n  'champagne':'\\ud83c\\udf7e',\n  'chart':'\\ud83d\\udcb9',\n  'chart_with_downwards_trend':'\\ud83d\\udcc9',\n  'chart_with_upwards_trend':'\\ud83d\\udcc8',\n  'checkered_flag':'\\ud83c\\udfc1',\n  'cheese':'\\ud83e\\uddc0',\n  'cherries':'\\ud83c\\udf52',\n  'cherry_blossom':'\\ud83c\\udf38',\n  'chestnut':'\\ud83c\\udf30',\n  'chicken':'\\ud83d\\udc14',\n  'children_crossing':'\\ud83d\\udeb8',\n  'chipmunk':'\\ud83d\\udc3f',\n  'chocolate_bar':'\\ud83c\\udf6b',\n  'christmas_tree':'\\ud83c\\udf84',\n  'church':'\\u26ea\\ufe0f',\n  'cinema':'\\ud83c\\udfa6',\n  'circus_tent':'\\ud83c\\udfaa',\n  'city_sunrise':'\\ud83c\\udf07',\n  'city_sunset':'\\ud83c\\udf06',\n  'cityscape':'\\ud83c\\udfd9',\n  'cl':'\\ud83c\\udd91',\n  'clamp':'\\ud83d\\udddc',\n  'clap':'\\ud83d\\udc4f',\n  'clapper':'\\ud83c\\udfac',\n  'classical_building':'\\ud83c\\udfdb',\n  'clinking_glasses':'\\ud83e\\udd42',\n  'clipboard':'\\ud83d\\udccb',\n  'clock1':'\\ud83d\\udd50',\n  'clock10':'\\ud83d\\udd59',\n  'clock1030':'\\ud83d\\udd65',\n  'clock11':'\\ud83d\\udd5a',\n  'clock1130':'\\ud83d\\udd66',\n  'clock12':'\\ud83d\\udd5b',\n  'clock1230':'\\ud83d\\udd67',\n  'clock130':'\\ud83d\\udd5c',\n  'clock2':'\\ud83d\\udd51',\n  'clock230':'\\ud83d\\udd5d',\n  'clock3':'\\ud83d\\udd52',\n  'clock330':'\\ud83d\\udd5e',\n  'clock4':'\\ud83d\\udd53',\n  'clock430':'\\ud83d\\udd5f',\n  'clock5':'\\ud83d\\udd54',\n  'clock530':'\\ud83d\\udd60',\n  'clock6':'\\ud83d\\udd55',\n  'clock630':'\\ud83d\\udd61',\n  'clock7':'\\ud83d\\udd56',\n  'clock730':'\\ud83d\\udd62',\n  'clock8':'\\ud83d\\udd57',\n  'clock830':'\\ud83d\\udd63',\n  'clock9':'\\ud83d\\udd58',\n  'clock930':'\\ud83d\\udd64',\n  'closed_book':'\\ud83d\\udcd5',\n  'closed_lock_with_key':'\\ud83d\\udd10',\n  'closed_umbrella':'\\ud83c\\udf02',\n  'cloud':'\\u2601\\ufe0f',\n  'cloud_with_lightning':'\\ud83c\\udf29',\n  'cloud_with_lightning_and_rain':'\\u26c8',\n  'cloud_with_rain':'\\ud83c\\udf27',\n  'cloud_with_snow':'\\ud83c\\udf28',\n  'clown_face':'\\ud83e\\udd21',\n  'clubs':'\\u2663\\ufe0f',\n  'cocktail':'\\ud83c\\udf78',\n  'coffee':'\\u2615\\ufe0f',\n  'coffin':'\\u26b0\\ufe0f',\n  'cold_sweat':'\\ud83d\\ude30',\n  'comet':'\\u2604\\ufe0f',\n  'computer':'\\ud83d\\udcbb',\n  'computer_mouse':'\\ud83d\\uddb1',\n  'confetti_ball':'\\ud83c\\udf8a',\n  'confounded':'\\ud83d\\ude16',\n  'confused':'\\ud83d\\ude15',\n  'congratulations':'\\u3297\\ufe0f',\n  'construction':'\\ud83d\\udea7',\n  'construction_worker_man':'\\ud83d\\udc77',\n  'construction_worker_woman':'\\ud83d\\udc77&zwj;\\u2640\\ufe0f',\n  'control_knobs':'\\ud83c\\udf9b',\n  'convenience_store':'\\ud83c\\udfea',\n  'cookie':'\\ud83c\\udf6a',\n  'cool':'\\ud83c\\udd92',\n  'policeman':'\\ud83d\\udc6e',\n  'copyright':'\\u00a9\\ufe0f',\n  'corn':'\\ud83c\\udf3d',\n  'couch_and_lamp':'\\ud83d\\udecb',\n  'couple':'\\ud83d\\udc6b',\n  'couple_with_heart_woman_man':'\\ud83d\\udc91',\n  'couple_with_heart_man_man':'\\ud83d\\udc68&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc68',\n  'couple_with_heart_woman_woman':'\\ud83d\\udc69&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc69',\n  'couplekiss_man_man':'\\ud83d\\udc68&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc8b&zwj;\\ud83d\\udc68',\n  'couplekiss_man_woman':'\\ud83d\\udc8f',\n  'couplekiss_woman_woman':'\\ud83d\\udc69&zwj;\\u2764\\ufe0f&zwj;\\ud83d\\udc8b&zwj;\\ud83d\\udc69',\n  'cow':'\\ud83d\\udc2e',\n  'cow2':'\\ud83d\\udc04',\n  'cowboy_hat_face':'\\ud83e\\udd20',\n  'crab':'\\ud83e\\udd80',\n  'crayon':'\\ud83d\\udd8d',\n  'credit_card':'\\ud83d\\udcb3',\n  'crescent_moon':'\\ud83c\\udf19',\n  'cricket':'\\ud83c\\udfcf',\n  'crocodile':'\\ud83d\\udc0a',\n  'croissant':'\\ud83e\\udd50',\n  'crossed_fingers':'\\ud83e\\udd1e',\n  'crossed_flags':'\\ud83c\\udf8c',\n  'crossed_swords':'\\u2694\\ufe0f',\n  'crown':'\\ud83d\\udc51',\n  'cry':'\\ud83d\\ude22',\n  'crying_cat_face':'\\ud83d\\ude3f',\n  'crystal_ball':'\\ud83d\\udd2e',\n  'cucumber':'\\ud83e\\udd52',\n  'cupid':'\\ud83d\\udc98',\n  'curly_loop':'\\u27b0',\n  'currency_exchange':'\\ud83d\\udcb1',\n  'curry':'\\ud83c\\udf5b',\n  'custard':'\\ud83c\\udf6e',\n  'customs':'\\ud83d\\udec3',\n  'cyclone':'\\ud83c\\udf00',\n  'dagger':'\\ud83d\\udde1',\n  'dancer':'\\ud83d\\udc83',\n  'dancing_women':'\\ud83d\\udc6f',\n  'dancing_men':'\\ud83d\\udc6f&zwj;\\u2642\\ufe0f',\n  'dango':'\\ud83c\\udf61',\n  'dark_sunglasses':'\\ud83d\\udd76',\n  'dart':'\\ud83c\\udfaf',\n  'dash':'\\ud83d\\udca8',\n  'date':'\\ud83d\\udcc5',\n  'deciduous_tree':'\\ud83c\\udf33',\n  'deer':'\\ud83e\\udd8c',\n  'department_store':'\\ud83c\\udfec',\n  'derelict_house':'\\ud83c\\udfda',\n  'desert':'\\ud83c\\udfdc',\n  'desert_island':'\\ud83c\\udfdd',\n  'desktop_computer':'\\ud83d\\udda5',\n  'male_detective':'\\ud83d\\udd75\\ufe0f',\n  'diamond_shape_with_a_dot_inside':'\\ud83d\\udca0',\n  'diamonds':'\\u2666\\ufe0f',\n  'disappointed':'\\ud83d\\ude1e',\n  'disappointed_relieved':'\\ud83d\\ude25',\n  'dizzy':'\\ud83d\\udcab',\n  'dizzy_face':'\\ud83d\\ude35',\n  'do_not_litter':'\\ud83d\\udeaf',\n  'dog':'\\ud83d\\udc36',\n  'dog2':'\\ud83d\\udc15',\n  'dollar':'\\ud83d\\udcb5',\n  'dolls':'\\ud83c\\udf8e',\n  'dolphin':'\\ud83d\\udc2c',\n  'door':'\\ud83d\\udeaa',\n  'doughnut':'\\ud83c\\udf69',\n  'dove':'\\ud83d\\udd4a',\n  'dragon':'\\ud83d\\udc09',\n  'dragon_face':'\\ud83d\\udc32',\n  'dress':'\\ud83d\\udc57',\n  'dromedary_camel':'\\ud83d\\udc2a',\n  'drooling_face':'\\ud83e\\udd24',\n  'droplet':'\\ud83d\\udca7',\n  'drum':'\\ud83e\\udd41',\n  'duck':'\\ud83e\\udd86',\n  'dvd':'\\ud83d\\udcc0',\n  'e-mail':'\\ud83d\\udce7',\n  'eagle':'\\ud83e\\udd85',\n  'ear':'\\ud83d\\udc42',\n  'ear_of_rice':'\\ud83c\\udf3e',\n  'earth_africa':'\\ud83c\\udf0d',\n  'earth_americas':'\\ud83c\\udf0e',\n  'earth_asia':'\\ud83c\\udf0f',\n  'egg':'\\ud83e\\udd5a',\n  'eggplant':'\\ud83c\\udf46',\n  'eight_pointed_black_star':'\\u2734\\ufe0f',\n  'eight_spoked_asterisk':'\\u2733\\ufe0f',\n  'electric_plug':'\\ud83d\\udd0c',\n  'elephant':'\\ud83d\\udc18',\n  'email':'\\u2709\\ufe0f',\n  'end':'\\ud83d\\udd1a',\n  'envelope_with_arrow':'\\ud83d\\udce9',\n  'euro':'\\ud83d\\udcb6',\n  'european_castle':'\\ud83c\\udff0',\n  'european_post_office':'\\ud83c\\udfe4',\n  'evergreen_tree':'\\ud83c\\udf32',\n  'exclamation':'\\u2757\\ufe0f',\n  'expressionless':'\\ud83d\\ude11',\n  'eye':'\\ud83d\\udc41',\n  'eye_speech_bubble':'\\ud83d\\udc41&zwj;\\ud83d\\udde8',\n  'eyeglasses':'\\ud83d\\udc53',\n  'eyes':'\\ud83d\\udc40',\n  'face_with_head_bandage':'\\ud83e\\udd15',\n  'face_with_thermometer':'\\ud83e\\udd12',\n  'fist_oncoming':'\\ud83d\\udc4a',\n  'factory':'\\ud83c\\udfed',\n  'fallen_leaf':'\\ud83c\\udf42',\n  'family_man_woman_boy':'\\ud83d\\udc6a',\n  'family_man_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc66',\n  'family_man_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc67',\n  'family_man_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_man_man_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc66',\n  'family_man_man_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_man_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67',\n  'family_man_man_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_man_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc68&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_man_woman_boy_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_man_woman_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_man_woman_girl_boy':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_man_woman_girl_girl':'\\ud83d\\udc68&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_woman_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc66',\n  'family_woman_boy_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_woman_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_woman_girl_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_woman_girl_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'family_woman_woman_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66',\n  'family_woman_woman_boy_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc66&zwj;\\ud83d\\udc66',\n  'family_woman_woman_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67',\n  'family_woman_woman_girl_boy':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc66',\n  'family_woman_woman_girl_girl':'\\ud83d\\udc69&zwj;\\ud83d\\udc69&zwj;\\ud83d\\udc67&zwj;\\ud83d\\udc67',\n  'fast_forward':'\\u23e9',\n  'fax':'\\ud83d\\udce0',\n  'fearful':'\\ud83d\\ude28',\n  'feet':'\\ud83d\\udc3e',\n  'female_detective':'\\ud83d\\udd75\\ufe0f&zwj;\\u2640\\ufe0f',\n  'ferris_wheel':'\\ud83c\\udfa1',\n  'ferry':'\\u26f4',\n  'field_hockey':'\\ud83c\\udfd1',\n  'file_cabinet':'\\ud83d\\uddc4',\n  'file_folder':'\\ud83d\\udcc1',\n  'film_projector':'\\ud83d\\udcfd',\n  'film_strip':'\\ud83c\\udf9e',\n  'fire':'\\ud83d\\udd25',\n  'fire_engine':'\\ud83d\\ude92',\n  'fireworks':'\\ud83c\\udf86',\n  'first_quarter_moon':'\\ud83c\\udf13',\n  'first_quarter_moon_with_face':'\\ud83c\\udf1b',\n  'fish':'\\ud83d\\udc1f',\n  'fish_cake':'\\ud83c\\udf65',\n  'fishing_pole_and_fish':'\\ud83c\\udfa3',\n  'fist_raised':'\\u270a',\n  'fist_left':'\\ud83e\\udd1b',\n  'fist_right':'\\ud83e\\udd1c',\n  'flags':'\\ud83c\\udf8f',\n  'flashlight':'\\ud83d\\udd26',\n  'fleur_de_lis':'\\u269c\\ufe0f',\n  'flight_arrival':'\\ud83d\\udeec',\n  'flight_departure':'\\ud83d\\udeeb',\n  'floppy_disk':'\\ud83d\\udcbe',\n  'flower_playing_cards':'\\ud83c\\udfb4',\n  'flushed':'\\ud83d\\ude33',\n  'fog':'\\ud83c\\udf2b',\n  'foggy':'\\ud83c\\udf01',\n  'football':'\\ud83c\\udfc8',\n  'footprints':'\\ud83d\\udc63',\n  'fork_and_knife':'\\ud83c\\udf74',\n  'fountain':'\\u26f2\\ufe0f',\n  'fountain_pen':'\\ud83d\\udd8b',\n  'four_leaf_clover':'\\ud83c\\udf40',\n  'fox_face':'\\ud83e\\udd8a',\n  'framed_picture':'\\ud83d\\uddbc',\n  'free':'\\ud83c\\udd93',\n  'fried_egg':'\\ud83c\\udf73',\n  'fried_shrimp':'\\ud83c\\udf64',\n  'fries':'\\ud83c\\udf5f',\n  'frog':'\\ud83d\\udc38',\n  'frowning':'\\ud83d\\ude26',\n  'frowning_face':'\\u2639\\ufe0f',\n  'frowning_man':'\\ud83d\\ude4d&zwj;\\u2642\\ufe0f',\n  'frowning_woman':'\\ud83d\\ude4d',\n  'middle_finger':'\\ud83d\\udd95',\n  'fuelpump':'\\u26fd\\ufe0f',\n  'full_moon':'\\ud83c\\udf15',\n  'full_moon_with_face':'\\ud83c\\udf1d',\n  'funeral_urn':'\\u26b1\\ufe0f',\n  'game_die':'\\ud83c\\udfb2',\n  'gear':'\\u2699\\ufe0f',\n  'gem':'\\ud83d\\udc8e',\n  'gemini':'\\u264a\\ufe0f',\n  'ghost':'\\ud83d\\udc7b',\n  'gift':'\\ud83c\\udf81',\n  'gift_heart':'\\ud83d\\udc9d',\n  'girl':'\\ud83d\\udc67',\n  'globe_with_meridians':'\\ud83c\\udf10',\n  'goal_net':'\\ud83e\\udd45',\n  'goat':'\\ud83d\\udc10',\n  'golf':'\\u26f3\\ufe0f',\n  'golfing_man':'\\ud83c\\udfcc\\ufe0f',\n  'golfing_woman':'\\ud83c\\udfcc\\ufe0f&zwj;\\u2640\\ufe0f',\n  'gorilla':'\\ud83e\\udd8d',\n  'grapes':'\\ud83c\\udf47',\n  'green_apple':'\\ud83c\\udf4f',\n  'green_book':'\\ud83d\\udcd7',\n  'green_heart':'\\ud83d\\udc9a',\n  'green_salad':'\\ud83e\\udd57',\n  'grey_exclamation':'\\u2755',\n  'grey_question':'\\u2754',\n  'grimacing':'\\ud83d\\ude2c',\n  'grin':'\\ud83d\\ude01',\n  'grinning':'\\ud83d\\ude00',\n  'guardsman':'\\ud83d\\udc82',\n  'guardswoman':'\\ud83d\\udc82&zwj;\\u2640\\ufe0f',\n  'guitar':'\\ud83c\\udfb8',\n  'gun':'\\ud83d\\udd2b',\n  'haircut_woman':'\\ud83d\\udc87',\n  'haircut_man':'\\ud83d\\udc87&zwj;\\u2642\\ufe0f',\n  'hamburger':'\\ud83c\\udf54',\n  'hammer':'\\ud83d\\udd28',\n  'hammer_and_pick':'\\u2692',\n  'hammer_and_wrench':'\\ud83d\\udee0',\n  'hamster':'\\ud83d\\udc39',\n  'hand':'\\u270b',\n  'handbag':'\\ud83d\\udc5c',\n  'handshake':'\\ud83e\\udd1d',\n  'hankey':'\\ud83d\\udca9',\n  'hatched_chick':'\\ud83d\\udc25',\n  'hatching_chick':'\\ud83d\\udc23',\n  'headphones':'\\ud83c\\udfa7',\n  'hear_no_evil':'\\ud83d\\ude49',\n  'heart':'\\u2764\\ufe0f',\n  'heart_decoration':'\\ud83d\\udc9f',\n  'heart_eyes':'\\ud83d\\ude0d',\n  'heart_eyes_cat':'\\ud83d\\ude3b',\n  'heartbeat':'\\ud83d\\udc93',\n  'heartpulse':'\\ud83d\\udc97',\n  'hearts':'\\u2665\\ufe0f',\n  'heavy_check_mark':'\\u2714\\ufe0f',\n  'heavy_division_sign':'\\u2797',\n  'heavy_dollar_sign':'\\ud83d\\udcb2',\n  'heavy_heart_exclamation':'\\u2763\\ufe0f',\n  'heavy_minus_sign':'\\u2796',\n  'heavy_multiplication_x':'\\u2716\\ufe0f',\n  'heavy_plus_sign':'\\u2795',\n  'helicopter':'\\ud83d\\ude81',\n  'herb':'\\ud83c\\udf3f',\n  'hibiscus':'\\ud83c\\udf3a',\n  'high_brightness':'\\ud83d\\udd06',\n  'high_heel':'\\ud83d\\udc60',\n  'hocho':'\\ud83d\\udd2a',\n  'hole':'\\ud83d\\udd73',\n  'honey_pot':'\\ud83c\\udf6f',\n  'horse':'\\ud83d\\udc34',\n  'horse_racing':'\\ud83c\\udfc7',\n  'hospital':'\\ud83c\\udfe5',\n  'hot_pepper':'\\ud83c\\udf36',\n  'hotdog':'\\ud83c\\udf2d',\n  'hotel':'\\ud83c\\udfe8',\n  'hotsprings':'\\u2668\\ufe0f',\n  'hourglass':'\\u231b\\ufe0f',\n  'hourglass_flowing_sand':'\\u23f3',\n  'house':'\\ud83c\\udfe0',\n  'house_with_garden':'\\ud83c\\udfe1',\n  'houses':'\\ud83c\\udfd8',\n  'hugs':'\\ud83e\\udd17',\n  'hushed':'\\ud83d\\ude2f',\n  'ice_cream':'\\ud83c\\udf68',\n  'ice_hockey':'\\ud83c\\udfd2',\n  'ice_skate':'\\u26f8',\n  'icecream':'\\ud83c\\udf66',\n  'id':'\\ud83c\\udd94',\n  'ideograph_advantage':'\\ud83c\\ude50',\n  'imp':'\\ud83d\\udc7f',\n  'inbox_tray':'\\ud83d\\udce5',\n  'incoming_envelope':'\\ud83d\\udce8',\n  'tipping_hand_woman':'\\ud83d\\udc81',\n  'information_source':'\\u2139\\ufe0f',\n  'innocent':'\\ud83d\\ude07',\n  'interrobang':'\\u2049\\ufe0f',\n  'iphone':'\\ud83d\\udcf1',\n  'izakaya_lantern':'\\ud83c\\udfee',\n  'jack_o_lantern':'\\ud83c\\udf83',\n  'japan':'\\ud83d\\uddfe',\n  'japanese_castle':'\\ud83c\\udfef',\n  'japanese_goblin':'\\ud83d\\udc7a',\n  'japanese_ogre':'\\ud83d\\udc79',\n  'jeans':'\\ud83d\\udc56',\n  'joy':'\\ud83d\\ude02',\n  'joy_cat':'\\ud83d\\ude39',\n  'joystick':'\\ud83d\\udd79',\n  'kaaba':'\\ud83d\\udd4b',\n  'key':'\\ud83d\\udd11',\n  'keyboard':'\\u2328\\ufe0f',\n  'keycap_ten':'\\ud83d\\udd1f',\n  'kick_scooter':'\\ud83d\\udef4',\n  'kimono':'\\ud83d\\udc58',\n  'kiss':'\\ud83d\\udc8b',\n  'kissing':'\\ud83d\\ude17',\n  'kissing_cat':'\\ud83d\\ude3d',\n  'kissing_closed_eyes':'\\ud83d\\ude1a',\n  'kissing_heart':'\\ud83d\\ude18',\n  'kissing_smiling_eyes':'\\ud83d\\ude19',\n  'kiwi_fruit':'\\ud83e\\udd5d',\n  'koala':'\\ud83d\\udc28',\n  'koko':'\\ud83c\\ude01',\n  'label':'\\ud83c\\udff7',\n  'large_blue_circle':'\\ud83d\\udd35',\n  'large_blue_diamond':'\\ud83d\\udd37',\n  'large_orange_diamond':'\\ud83d\\udd36',\n  'last_quarter_moon':'\\ud83c\\udf17',\n  'last_quarter_moon_with_face':'\\ud83c\\udf1c',\n  'latin_cross':'\\u271d\\ufe0f',\n  'laughing':'\\ud83d\\ude06',\n  'leaves':'\\ud83c\\udf43',\n  'ledger':'\\ud83d\\udcd2',\n  'left_luggage':'\\ud83d\\udec5',\n  'left_right_arrow':'\\u2194\\ufe0f',\n  'leftwards_arrow_with_hook':'\\u21a9\\ufe0f',\n  'lemon':'\\ud83c\\udf4b',\n  'leo':'\\u264c\\ufe0f',\n  'leopard':'\\ud83d\\udc06',\n  'level_slider':'\\ud83c\\udf9a',\n  'libra':'\\u264e\\ufe0f',\n  'light_rail':'\\ud83d\\ude88',\n  'link':'\\ud83d\\udd17',\n  'lion':'\\ud83e\\udd81',\n  'lips':'\\ud83d\\udc44',\n  'lipstick':'\\ud83d\\udc84',\n  'lizard':'\\ud83e\\udd8e',\n  'lock':'\\ud83d\\udd12',\n  'lock_with_ink_pen':'\\ud83d\\udd0f',\n  'lollipop':'\\ud83c\\udf6d',\n  'loop':'\\u27bf',\n  'loud_sound':'\\ud83d\\udd0a',\n  'loudspeaker':'\\ud83d\\udce2',\n  'love_hotel':'\\ud83c\\udfe9',\n  'love_letter':'\\ud83d\\udc8c',\n  'low_brightness':'\\ud83d\\udd05',\n  'lying_face':'\\ud83e\\udd25',\n  'm':'\\u24c2\\ufe0f',\n  'mag':'\\ud83d\\udd0d',\n  'mag_right':'\\ud83d\\udd0e',\n  'mahjong':'\\ud83c\\udc04\\ufe0f',\n  'mailbox':'\\ud83d\\udceb',\n  'mailbox_closed':'\\ud83d\\udcea',\n  'mailbox_with_mail':'\\ud83d\\udcec',\n  'mailbox_with_no_mail':'\\ud83d\\udced',\n  'man':'\\ud83d\\udc68',\n  'man_artist':'\\ud83d\\udc68&zwj;\\ud83c\\udfa8',\n  'man_astronaut':'\\ud83d\\udc68&zwj;\\ud83d\\ude80',\n  'man_cartwheeling':'\\ud83e\\udd38&zwj;\\u2642\\ufe0f',\n  'man_cook':'\\ud83d\\udc68&zwj;\\ud83c\\udf73',\n  'man_dancing':'\\ud83d\\udd7a',\n  'man_facepalming':'\\ud83e\\udd26&zwj;\\u2642\\ufe0f',\n  'man_factory_worker':'\\ud83d\\udc68&zwj;\\ud83c\\udfed',\n  'man_farmer':'\\ud83d\\udc68&zwj;\\ud83c\\udf3e',\n  'man_firefighter':'\\ud83d\\udc68&zwj;\\ud83d\\ude92',\n  'man_health_worker':'\\ud83d\\udc68&zwj;\\u2695\\ufe0f',\n  'man_in_tuxedo':'\\ud83e\\udd35',\n  'man_judge':'\\ud83d\\udc68&zwj;\\u2696\\ufe0f',\n  'man_juggling':'\\ud83e\\udd39&zwj;\\u2642\\ufe0f',\n  'man_mechanic':'\\ud83d\\udc68&zwj;\\ud83d\\udd27',\n  'man_office_worker':'\\ud83d\\udc68&zwj;\\ud83d\\udcbc',\n  'man_pilot':'\\ud83d\\udc68&zwj;\\u2708\\ufe0f',\n  'man_playing_handball':'\\ud83e\\udd3e&zwj;\\u2642\\ufe0f',\n  'man_playing_water_polo':'\\ud83e\\udd3d&zwj;\\u2642\\ufe0f',\n  'man_scientist':'\\ud83d\\udc68&zwj;\\ud83d\\udd2c',\n  'man_shrugging':'\\ud83e\\udd37&zwj;\\u2642\\ufe0f',\n  'man_singer':'\\ud83d\\udc68&zwj;\\ud83c\\udfa4',\n  'man_student':'\\ud83d\\udc68&zwj;\\ud83c\\udf93',\n  'man_teacher':'\\ud83d\\udc68&zwj;\\ud83c\\udfeb',\n  'man_technologist':'\\ud83d\\udc68&zwj;\\ud83d\\udcbb',\n  'man_with_gua_pi_mao':'\\ud83d\\udc72',\n  'man_with_turban':'\\ud83d\\udc73',\n  'tangerine':'\\ud83c\\udf4a',\n  'mans_shoe':'\\ud83d\\udc5e',\n  'mantelpiece_clock':'\\ud83d\\udd70',\n  'maple_leaf':'\\ud83c\\udf41',\n  'martial_arts_uniform':'\\ud83e\\udd4b',\n  'mask':'\\ud83d\\ude37',\n  'massage_woman':'\\ud83d\\udc86',\n  'massage_man':'\\ud83d\\udc86&zwj;\\u2642\\ufe0f',\n  'meat_on_bone':'\\ud83c\\udf56',\n  'medal_military':'\\ud83c\\udf96',\n  'medal_sports':'\\ud83c\\udfc5',\n  'mega':'\\ud83d\\udce3',\n  'melon':'\\ud83c\\udf48',\n  'memo':'\\ud83d\\udcdd',\n  'men_wrestling':'\\ud83e\\udd3c&zwj;\\u2642\\ufe0f',\n  'menorah':'\\ud83d\\udd4e',\n  'mens':'\\ud83d\\udeb9',\n  'metal':'\\ud83e\\udd18',\n  'metro':'\\ud83d\\ude87',\n  'microphone':'\\ud83c\\udfa4',\n  'microscope':'\\ud83d\\udd2c',\n  'milk_glass':'\\ud83e\\udd5b',\n  'milky_way':'\\ud83c\\udf0c',\n  'minibus':'\\ud83d\\ude90',\n  'minidisc':'\\ud83d\\udcbd',\n  'mobile_phone_off':'\\ud83d\\udcf4',\n  'money_mouth_face':'\\ud83e\\udd11',\n  'money_with_wings':'\\ud83d\\udcb8',\n  'moneybag':'\\ud83d\\udcb0',\n  'monkey':'\\ud83d\\udc12',\n  'monkey_face':'\\ud83d\\udc35',\n  'monorail':'\\ud83d\\ude9d',\n  'moon':'\\ud83c\\udf14',\n  'mortar_board':'\\ud83c\\udf93',\n  'mosque':'\\ud83d\\udd4c',\n  'motor_boat':'\\ud83d\\udee5',\n  'motor_scooter':'\\ud83d\\udef5',\n  'motorcycle':'\\ud83c\\udfcd',\n  'motorway':'\\ud83d\\udee3',\n  'mount_fuji':'\\ud83d\\uddfb',\n  'mountain':'\\u26f0',\n  'mountain_biking_man':'\\ud83d\\udeb5',\n  'mountain_biking_woman':'\\ud83d\\udeb5&zwj;\\u2640\\ufe0f',\n  'mountain_cableway':'\\ud83d\\udea0',\n  'mountain_railway':'\\ud83d\\ude9e',\n  'mountain_snow':'\\ud83c\\udfd4',\n  'mouse':'\\ud83d\\udc2d',\n  'mouse2':'\\ud83d\\udc01',\n  'movie_camera':'\\ud83c\\udfa5',\n  'moyai':'\\ud83d\\uddff',\n  'mrs_claus':'\\ud83e\\udd36',\n  'muscle':'\\ud83d\\udcaa',\n  'mushroom':'\\ud83c\\udf44',\n  'musical_keyboard':'\\ud83c\\udfb9',\n  'musical_note':'\\ud83c\\udfb5',\n  'musical_score':'\\ud83c\\udfbc',\n  'mute':'\\ud83d\\udd07',\n  'nail_care':'\\ud83d\\udc85',\n  'name_badge':'\\ud83d\\udcdb',\n  'national_park':'\\ud83c\\udfde',\n  'nauseated_face':'\\ud83e\\udd22',\n  'necktie':'\\ud83d\\udc54',\n  'negative_squared_cross_mark':'\\u274e',\n  'nerd_face':'\\ud83e\\udd13',\n  'neutral_face':'\\ud83d\\ude10',\n  'new':'\\ud83c\\udd95',\n  'new_moon':'\\ud83c\\udf11',\n  'new_moon_with_face':'\\ud83c\\udf1a',\n  'newspaper':'\\ud83d\\udcf0',\n  'newspaper_roll':'\\ud83d\\uddde',\n  'next_track_button':'\\u23ed',\n  'ng':'\\ud83c\\udd96',\n  'no_good_man':'\\ud83d\\ude45&zwj;\\u2642\\ufe0f',\n  'no_good_woman':'\\ud83d\\ude45',\n  'night_with_stars':'\\ud83c\\udf03',\n  'no_bell':'\\ud83d\\udd15',\n  'no_bicycles':'\\ud83d\\udeb3',\n  'no_entry':'\\u26d4\\ufe0f',\n  'no_entry_sign':'\\ud83d\\udeab',\n  'no_mobile_phones':'\\ud83d\\udcf5',\n  'no_mouth':'\\ud83d\\ude36',\n  'no_pedestrians':'\\ud83d\\udeb7',\n  'no_smoking':'\\ud83d\\udead',\n  'non-potable_water':'\\ud83d\\udeb1',\n  'nose':'\\ud83d\\udc43',\n  'notebook':'\\ud83d\\udcd3',\n  'notebook_with_decorative_cover':'\\ud83d\\udcd4',\n  'notes':'\\ud83c\\udfb6',\n  'nut_and_bolt':'\\ud83d\\udd29',\n  'o':'\\u2b55\\ufe0f',\n  'o2':'\\ud83c\\udd7e\\ufe0f',\n  'ocean':'\\ud83c\\udf0a',\n  'octopus':'\\ud83d\\udc19',\n  'oden':'\\ud83c\\udf62',\n  'office':'\\ud83c\\udfe2',\n  'oil_drum':'\\ud83d\\udee2',\n  'ok':'\\ud83c\\udd97',\n  'ok_hand':'\\ud83d\\udc4c',\n  'ok_man':'\\ud83d\\ude46&zwj;\\u2642\\ufe0f',\n  'ok_woman':'\\ud83d\\ude46',\n  'old_key':'\\ud83d\\udddd',\n  'older_man':'\\ud83d\\udc74',\n  'older_woman':'\\ud83d\\udc75',\n  'om':'\\ud83d\\udd49',\n  'on':'\\ud83d\\udd1b',\n  'oncoming_automobile':'\\ud83d\\ude98',\n  'oncoming_bus':'\\ud83d\\ude8d',\n  'oncoming_police_car':'\\ud83d\\ude94',\n  'oncoming_taxi':'\\ud83d\\ude96',\n  'open_file_folder':'\\ud83d\\udcc2',\n  'open_hands':'\\ud83d\\udc50',\n  'open_mouth':'\\ud83d\\ude2e',\n  'open_umbrella':'\\u2602\\ufe0f',\n  'ophiuchus':'\\u26ce',\n  'orange_book':'\\ud83d\\udcd9',\n  'orthodox_cross':'\\u2626\\ufe0f',\n  'outbox_tray':'\\ud83d\\udce4',\n  'owl':'\\ud83e\\udd89',\n  'ox':'\\ud83d\\udc02',\n  'package':'\\ud83d\\udce6',\n  'page_facing_up':'\\ud83d\\udcc4',\n  'page_with_curl':'\\ud83d\\udcc3',\n  'pager':'\\ud83d\\udcdf',\n  'paintbrush':'\\ud83d\\udd8c',\n  'palm_tree':'\\ud83c\\udf34',\n  'pancakes':'\\ud83e\\udd5e',\n  'panda_face':'\\ud83d\\udc3c',\n  'paperclip':'\\ud83d\\udcce',\n  'paperclips':'\\ud83d\\udd87',\n  'parasol_on_ground':'\\u26f1',\n  'parking':'\\ud83c\\udd7f\\ufe0f',\n  'part_alternation_mark':'\\u303d\\ufe0f',\n  'partly_sunny':'\\u26c5\\ufe0f',\n  'passenger_ship':'\\ud83d\\udef3',\n  'passport_control':'\\ud83d\\udec2',\n  'pause_button':'\\u23f8',\n  'peace_symbol':'\\u262e\\ufe0f',\n  'peach':'\\ud83c\\udf51',\n  'peanuts':'\\ud83e\\udd5c',\n  'pear':'\\ud83c\\udf50',\n  'pen':'\\ud83d\\udd8a',\n  'pencil2':'\\u270f\\ufe0f',\n  'penguin':'\\ud83d\\udc27',\n  'pensive':'\\ud83d\\ude14',\n  'performing_arts':'\\ud83c\\udfad',\n  'persevere':'\\ud83d\\ude23',\n  'person_fencing':'\\ud83e\\udd3a',\n  'pouting_woman':'\\ud83d\\ude4e',\n  'phone':'\\u260e\\ufe0f',\n  'pick':'\\u26cf',\n  'pig':'\\ud83d\\udc37',\n  'pig2':'\\ud83d\\udc16',\n  'pig_nose':'\\ud83d\\udc3d',\n  'pill':'\\ud83d\\udc8a',\n  'pineapple':'\\ud83c\\udf4d',\n  'ping_pong':'\\ud83c\\udfd3',\n  'pisces':'\\u2653\\ufe0f',\n  'pizza':'\\ud83c\\udf55',\n  'place_of_worship':'\\ud83d\\uded0',\n  'plate_with_cutlery':'\\ud83c\\udf7d',\n  'play_or_pause_button':'\\u23ef',\n  'point_down':'\\ud83d\\udc47',\n  'point_left':'\\ud83d\\udc48',\n  'point_right':'\\ud83d\\udc49',\n  'point_up':'\\u261d\\ufe0f',\n  'point_up_2':'\\ud83d\\udc46',\n  'police_car':'\\ud83d\\ude93',\n  'policewoman':'\\ud83d\\udc6e&zwj;\\u2640\\ufe0f',\n  'poodle':'\\ud83d\\udc29',\n  'popcorn':'\\ud83c\\udf7f',\n  'post_office':'\\ud83c\\udfe3',\n  'postal_horn':'\\ud83d\\udcef',\n  'postbox':'\\ud83d\\udcee',\n  'potable_water':'\\ud83d\\udeb0',\n  'potato':'\\ud83e\\udd54',\n  'pouch':'\\ud83d\\udc5d',\n  'poultry_leg':'\\ud83c\\udf57',\n  'pound':'\\ud83d\\udcb7',\n  'rage':'\\ud83d\\ude21',\n  'pouting_cat':'\\ud83d\\ude3e',\n  'pouting_man':'\\ud83d\\ude4e&zwj;\\u2642\\ufe0f',\n  'pray':'\\ud83d\\ude4f',\n  'prayer_beads':'\\ud83d\\udcff',\n  'pregnant_woman':'\\ud83e\\udd30',\n  'previous_track_button':'\\u23ee',\n  'prince':'\\ud83e\\udd34',\n  'princess':'\\ud83d\\udc78',\n  'printer':'\\ud83d\\udda8',\n  'purple_heart':'\\ud83d\\udc9c',\n  'purse':'\\ud83d\\udc5b',\n  'pushpin':'\\ud83d\\udccc',\n  'put_litter_in_its_place':'\\ud83d\\udeae',\n  'question':'\\u2753',\n  'rabbit':'\\ud83d\\udc30',\n  'rabbit2':'\\ud83d\\udc07',\n  'racehorse':'\\ud83d\\udc0e',\n  'racing_car':'\\ud83c\\udfce',\n  'radio':'\\ud83d\\udcfb',\n  'radio_button':'\\ud83d\\udd18',\n  'radioactive':'\\u2622\\ufe0f',\n  'railway_car':'\\ud83d\\ude83',\n  'railway_track':'\\ud83d\\udee4',\n  'rainbow':'\\ud83c\\udf08',\n  'rainbow_flag':'\\ud83c\\udff3\\ufe0f&zwj;\\ud83c\\udf08',\n  'raised_back_of_hand':'\\ud83e\\udd1a',\n  'raised_hand_with_fingers_splayed':'\\ud83d\\udd90',\n  'raised_hands':'\\ud83d\\ude4c',\n  'raising_hand_woman':'\\ud83d\\ude4b',\n  'raising_hand_man':'\\ud83d\\ude4b&zwj;\\u2642\\ufe0f',\n  'ram':'\\ud83d\\udc0f',\n  'ramen':'\\ud83c\\udf5c',\n  'rat':'\\ud83d\\udc00',\n  'record_button':'\\u23fa',\n  'recycle':'\\u267b\\ufe0f',\n  'red_circle':'\\ud83d\\udd34',\n  'registered':'\\u00ae\\ufe0f',\n  'relaxed':'\\u263a\\ufe0f',\n  'relieved':'\\ud83d\\ude0c',\n  'reminder_ribbon':'\\ud83c\\udf97',\n  'repeat':'\\ud83d\\udd01',\n  'repeat_one':'\\ud83d\\udd02',\n  'rescue_worker_helmet':'\\u26d1',\n  'restroom':'\\ud83d\\udebb',\n  'revolving_hearts':'\\ud83d\\udc9e',\n  'rewind':'\\u23ea',\n  'rhinoceros':'\\ud83e\\udd8f',\n  'ribbon':'\\ud83c\\udf80',\n  'rice':'\\ud83c\\udf5a',\n  'rice_ball':'\\ud83c\\udf59',\n  'rice_cracker':'\\ud83c\\udf58',\n  'rice_scene':'\\ud83c\\udf91',\n  'right_anger_bubble':'\\ud83d\\uddef',\n  'ring':'\\ud83d\\udc8d',\n  'robot':'\\ud83e\\udd16',\n  'rocket':'\\ud83d\\ude80',\n  'rofl':'\\ud83e\\udd23',\n  'roll_eyes':'\\ud83d\\ude44',\n  'roller_coaster':'\\ud83c\\udfa2',\n  'rooster':'\\ud83d\\udc13',\n  'rose':'\\ud83c\\udf39',\n  'rosette':'\\ud83c\\udff5',\n  'rotating_light':'\\ud83d\\udea8',\n  'round_pushpin':'\\ud83d\\udccd',\n  'rowing_man':'\\ud83d\\udea3',\n  'rowing_woman':'\\ud83d\\udea3&zwj;\\u2640\\ufe0f',\n  'rugby_football':'\\ud83c\\udfc9',\n  'running_man':'\\ud83c\\udfc3',\n  'running_shirt_with_sash':'\\ud83c\\udfbd',\n  'running_woman':'\\ud83c\\udfc3&zwj;\\u2640\\ufe0f',\n  'sa':'\\ud83c\\ude02\\ufe0f',\n  'sagittarius':'\\u2650\\ufe0f',\n  'sake':'\\ud83c\\udf76',\n  'sandal':'\\ud83d\\udc61',\n  'santa':'\\ud83c\\udf85',\n  'satellite':'\\ud83d\\udce1',\n  'saxophone':'\\ud83c\\udfb7',\n  'school':'\\ud83c\\udfeb',\n  'school_satchel':'\\ud83c\\udf92',\n  'scissors':'\\u2702\\ufe0f',\n  'scorpion':'\\ud83e\\udd82',\n  'scorpius':'\\u264f\\ufe0f',\n  'scream':'\\ud83d\\ude31',\n  'scream_cat':'\\ud83d\\ude40',\n  'scroll':'\\ud83d\\udcdc',\n  'seat':'\\ud83d\\udcba',\n  'secret':'\\u3299\\ufe0f',\n  'see_no_evil':'\\ud83d\\ude48',\n  'seedling':'\\ud83c\\udf31',\n  'selfie':'\\ud83e\\udd33',\n  'shallow_pan_of_food':'\\ud83e\\udd58',\n  'shamrock':'\\u2618\\ufe0f',\n  'shark':'\\ud83e\\udd88',\n  'shaved_ice':'\\ud83c\\udf67',\n  'sheep':'\\ud83d\\udc11',\n  'shell':'\\ud83d\\udc1a',\n  'shield':'\\ud83d\\udee1',\n  'shinto_shrine':'\\u26e9',\n  'ship':'\\ud83d\\udea2',\n  'shirt':'\\ud83d\\udc55',\n  'shopping':'\\ud83d\\udecd',\n  'shopping_cart':'\\ud83d\\uded2',\n  'shower':'\\ud83d\\udebf',\n  'shrimp':'\\ud83e\\udd90',\n  'signal_strength':'\\ud83d\\udcf6',\n  'six_pointed_star':'\\ud83d\\udd2f',\n  'ski':'\\ud83c\\udfbf',\n  'skier':'\\u26f7',\n  'skull':'\\ud83d\\udc80',\n  'skull_and_crossbones':'\\u2620\\ufe0f',\n  'sleeping':'\\ud83d\\ude34',\n  'sleeping_bed':'\\ud83d\\udecc',\n  'sleepy':'\\ud83d\\ude2a',\n  'slightly_frowning_face':'\\ud83d\\ude41',\n  'slightly_smiling_face':'\\ud83d\\ude42',\n  'slot_machine':'\\ud83c\\udfb0',\n  'small_airplane':'\\ud83d\\udee9',\n  'small_blue_diamond':'\\ud83d\\udd39',\n  'small_orange_diamond':'\\ud83d\\udd38',\n  'small_red_triangle':'\\ud83d\\udd3a',\n  'small_red_triangle_down':'\\ud83d\\udd3b',\n  'smile':'\\ud83d\\ude04',\n  'smile_cat':'\\ud83d\\ude38',\n  'smiley':'\\ud83d\\ude03',\n  'smiley_cat':'\\ud83d\\ude3a',\n  'smiling_imp':'\\ud83d\\ude08',\n  'smirk':'\\ud83d\\ude0f',\n  'smirk_cat':'\\ud83d\\ude3c',\n  'smoking':'\\ud83d\\udeac',\n  'snail':'\\ud83d\\udc0c',\n  'snake':'\\ud83d\\udc0d',\n  'sneezing_face':'\\ud83e\\udd27',\n  'snowboarder':'\\ud83c\\udfc2',\n  'snowflake':'\\u2744\\ufe0f',\n  'snowman':'\\u26c4\\ufe0f',\n  'snowman_with_snow':'\\u2603\\ufe0f',\n  'sob':'\\ud83d\\ude2d',\n  'soccer':'\\u26bd\\ufe0f',\n  'soon':'\\ud83d\\udd1c',\n  'sos':'\\ud83c\\udd98',\n  'sound':'\\ud83d\\udd09',\n  'space_invader':'\\ud83d\\udc7e',\n  'spades':'\\u2660\\ufe0f',\n  'spaghetti':'\\ud83c\\udf5d',\n  'sparkle':'\\u2747\\ufe0f',\n  'sparkler':'\\ud83c\\udf87',\n  'sparkles':'\\u2728',\n  'sparkling_heart':'\\ud83d\\udc96',\n  'speak_no_evil':'\\ud83d\\ude4a',\n  'speaker':'\\ud83d\\udd08',\n  'speaking_head':'\\ud83d\\udde3',\n  'speech_balloon':'\\ud83d\\udcac',\n  'speedboat':'\\ud83d\\udea4',\n  'spider':'\\ud83d\\udd77',\n  'spider_web':'\\ud83d\\udd78',\n  'spiral_calendar':'\\ud83d\\uddd3',\n  'spiral_notepad':'\\ud83d\\uddd2',\n  'spoon':'\\ud83e\\udd44',\n  'squid':'\\ud83e\\udd91',\n  'stadium':'\\ud83c\\udfdf',\n  'star':'\\u2b50\\ufe0f',\n  'star2':'\\ud83c\\udf1f',\n  'star_and_crescent':'\\u262a\\ufe0f',\n  'star_of_david':'\\u2721\\ufe0f',\n  'stars':'\\ud83c\\udf20',\n  'station':'\\ud83d\\ude89',\n  'statue_of_liberty':'\\ud83d\\uddfd',\n  'steam_locomotive':'\\ud83d\\ude82',\n  'stew':'\\ud83c\\udf72',\n  'stop_button':'\\u23f9',\n  'stop_sign':'\\ud83d\\uded1',\n  'stopwatch':'\\u23f1',\n  'straight_ruler':'\\ud83d\\udccf',\n  'strawberry':'\\ud83c\\udf53',\n  'stuck_out_tongue':'\\ud83d\\ude1b',\n  'stuck_out_tongue_closed_eyes':'\\ud83d\\ude1d',\n  'stuck_out_tongue_winking_eye':'\\ud83d\\ude1c',\n  'studio_microphone':'\\ud83c\\udf99',\n  'stuffed_flatbread':'\\ud83e\\udd59',\n  'sun_behind_large_cloud':'\\ud83c\\udf25',\n  'sun_behind_rain_cloud':'\\ud83c\\udf26',\n  'sun_behind_small_cloud':'\\ud83c\\udf24',\n  'sun_with_face':'\\ud83c\\udf1e',\n  'sunflower':'\\ud83c\\udf3b',\n  'sunglasses':'\\ud83d\\ude0e',\n  'sunny':'\\u2600\\ufe0f',\n  'sunrise':'\\ud83c\\udf05',\n  'sunrise_over_mountains':'\\ud83c\\udf04',\n  'surfing_man':'\\ud83c\\udfc4',\n  'surfing_woman':'\\ud83c\\udfc4&zwj;\\u2640\\ufe0f',\n  'sushi':'\\ud83c\\udf63',\n  'suspension_railway':'\\ud83d\\ude9f',\n  'sweat':'\\ud83d\\ude13',\n  'sweat_drops':'\\ud83d\\udca6',\n  'sweat_smile':'\\ud83d\\ude05',\n  'sweet_potato':'\\ud83c\\udf60',\n  'swimming_man':'\\ud83c\\udfca',\n  'swimming_woman':'\\ud83c\\udfca&zwj;\\u2640\\ufe0f',\n  'symbols':'\\ud83d\\udd23',\n  'synagogue':'\\ud83d\\udd4d',\n  'syringe':'\\ud83d\\udc89',\n  'taco':'\\ud83c\\udf2e',\n  'tada':'\\ud83c\\udf89',\n  'tanabata_tree':'\\ud83c\\udf8b',\n  'taurus':'\\u2649\\ufe0f',\n  'taxi':'\\ud83d\\ude95',\n  'tea':'\\ud83c\\udf75',\n  'telephone_receiver':'\\ud83d\\udcde',\n  'telescope':'\\ud83d\\udd2d',\n  'tennis':'\\ud83c\\udfbe',\n  'tent':'\\u26fa\\ufe0f',\n  'thermometer':'\\ud83c\\udf21',\n  'thinking':'\\ud83e\\udd14',\n  'thought_balloon':'\\ud83d\\udcad',\n  'ticket':'\\ud83c\\udfab',\n  'tickets':'\\ud83c\\udf9f',\n  'tiger':'\\ud83d\\udc2f',\n  'tiger2':'\\ud83d\\udc05',\n  'timer_clock':'\\u23f2',\n  'tipping_hand_man':'\\ud83d\\udc81&zwj;\\u2642\\ufe0f',\n  'tired_face':'\\ud83d\\ude2b',\n  'tm':'\\u2122\\ufe0f',\n  'toilet':'\\ud83d\\udebd',\n  'tokyo_tower':'\\ud83d\\uddfc',\n  'tomato':'\\ud83c\\udf45',\n  'tongue':'\\ud83d\\udc45',\n  'top':'\\ud83d\\udd1d',\n  'tophat':'\\ud83c\\udfa9',\n  'tornado':'\\ud83c\\udf2a',\n  'trackball':'\\ud83d\\uddb2',\n  'tractor':'\\ud83d\\ude9c',\n  'traffic_light':'\\ud83d\\udea5',\n  'train':'\\ud83d\\ude8b',\n  'train2':'\\ud83d\\ude86',\n  'tram':'\\ud83d\\ude8a',\n  'triangular_flag_on_post':'\\ud83d\\udea9',\n  'triangular_ruler':'\\ud83d\\udcd0',\n  'trident':'\\ud83d\\udd31',\n  'triumph':'\\ud83d\\ude24',\n  'trolleybus':'\\ud83d\\ude8e',\n  'trophy':'\\ud83c\\udfc6',\n  'tropical_drink':'\\ud83c\\udf79',\n  'tropical_fish':'\\ud83d\\udc20',\n  'truck':'\\ud83d\\ude9a',\n  'trumpet':'\\ud83c\\udfba',\n  'tulip':'\\ud83c\\udf37',\n  'tumbler_glass':'\\ud83e\\udd43',\n  'turkey':'\\ud83e\\udd83',\n  'turtle':'\\ud83d\\udc22',\n  'tv':'\\ud83d\\udcfa',\n  'twisted_rightwards_arrows':'\\ud83d\\udd00',\n  'two_hearts':'\\ud83d\\udc95',\n  'two_men_holding_hands':'\\ud83d\\udc6c',\n  'two_women_holding_hands':'\\ud83d\\udc6d',\n  'u5272':'\\ud83c\\ude39',\n  'u5408':'\\ud83c\\ude34',\n  'u55b6':'\\ud83c\\ude3a',\n  'u6307':'\\ud83c\\ude2f\\ufe0f',\n  'u6708':'\\ud83c\\ude37\\ufe0f',\n  'u6709':'\\ud83c\\ude36',\n  'u6e80':'\\ud83c\\ude35',\n  'u7121':'\\ud83c\\ude1a\\ufe0f',\n  'u7533':'\\ud83c\\ude38',\n  'u7981':'\\ud83c\\ude32',\n  'u7a7a':'\\ud83c\\ude33',\n  'umbrella':'\\u2614\\ufe0f',\n  'unamused':'\\ud83d\\ude12',\n  'underage':'\\ud83d\\udd1e',\n  'unicorn':'\\ud83e\\udd84',\n  'unlock':'\\ud83d\\udd13',\n  'up':'\\ud83c\\udd99',\n  'upside_down_face':'\\ud83d\\ude43',\n  'v':'\\u270c\\ufe0f',\n  'vertical_traffic_light':'\\ud83d\\udea6',\n  'vhs':'\\ud83d\\udcfc',\n  'vibration_mode':'\\ud83d\\udcf3',\n  'video_camera':'\\ud83d\\udcf9',\n  'video_game':'\\ud83c\\udfae',\n  'violin':'\\ud83c\\udfbb',\n  'virgo':'\\u264d\\ufe0f',\n  'volcano':'\\ud83c\\udf0b',\n  'volleyball':'\\ud83c\\udfd0',\n  'vs':'\\ud83c\\udd9a',\n  'vulcan_salute':'\\ud83d\\udd96',\n  'walking_man':'\\ud83d\\udeb6',\n  'walking_woman':'\\ud83d\\udeb6&zwj;\\u2640\\ufe0f',\n  'waning_crescent_moon':'\\ud83c\\udf18',\n  'waning_gibbous_moon':'\\ud83c\\udf16',\n  'warning':'\\u26a0\\ufe0f',\n  'wastebasket':'\\ud83d\\uddd1',\n  'watch':'\\u231a\\ufe0f',\n  'water_buffalo':'\\ud83d\\udc03',\n  'watermelon':'\\ud83c\\udf49',\n  'wave':'\\ud83d\\udc4b',\n  'wavy_dash':'\\u3030\\ufe0f',\n  'waxing_crescent_moon':'\\ud83c\\udf12',\n  'wc':'\\ud83d\\udebe',\n  'weary':'\\ud83d\\ude29',\n  'wedding':'\\ud83d\\udc92',\n  'weight_lifting_man':'\\ud83c\\udfcb\\ufe0f',\n  'weight_lifting_woman':'\\ud83c\\udfcb\\ufe0f&zwj;\\u2640\\ufe0f',\n  'whale':'\\ud83d\\udc33',\n  'whale2':'\\ud83d\\udc0b',\n  'wheel_of_dharma':'\\u2638\\ufe0f',\n  'wheelchair':'\\u267f\\ufe0f',\n  'white_check_mark':'\\u2705',\n  'white_circle':'\\u26aa\\ufe0f',\n  'white_flag':'\\ud83c\\udff3\\ufe0f',\n  'white_flower':'\\ud83d\\udcae',\n  'white_large_square':'\\u2b1c\\ufe0f',\n  'white_medium_small_square':'\\u25fd\\ufe0f',\n  'white_medium_square':'\\u25fb\\ufe0f',\n  'white_small_square':'\\u25ab\\ufe0f',\n  'white_square_button':'\\ud83d\\udd33',\n  'wilted_flower':'\\ud83e\\udd40',\n  'wind_chime':'\\ud83c\\udf90',\n  'wind_face':'\\ud83c\\udf2c',\n  'wine_glass':'\\ud83c\\udf77',\n  'wink':'\\ud83d\\ude09',\n  'wolf':'\\ud83d\\udc3a',\n  'woman':'\\ud83d\\udc69',\n  'woman_artist':'\\ud83d\\udc69&zwj;\\ud83c\\udfa8',\n  'woman_astronaut':'\\ud83d\\udc69&zwj;\\ud83d\\ude80',\n  'woman_cartwheeling':'\\ud83e\\udd38&zwj;\\u2640\\ufe0f',\n  'woman_cook':'\\ud83d\\udc69&zwj;\\ud83c\\udf73',\n  'woman_facepalming':'\\ud83e\\udd26&zwj;\\u2640\\ufe0f',\n  'woman_factory_worker':'\\ud83d\\udc69&zwj;\\ud83c\\udfed',\n  'woman_farmer':'\\ud83d\\udc69&zwj;\\ud83c\\udf3e',\n  'woman_firefighter':'\\ud83d\\udc69&zwj;\\ud83d\\ude92',\n  'woman_health_worker':'\\ud83d\\udc69&zwj;\\u2695\\ufe0f',\n  'woman_judge':'\\ud83d\\udc69&zwj;\\u2696\\ufe0f',\n  'woman_juggling':'\\ud83e\\udd39&zwj;\\u2640\\ufe0f',\n  'woman_mechanic':'\\ud83d\\udc69&zwj;\\ud83d\\udd27',\n  'woman_office_worker':'\\ud83d\\udc69&zwj;\\ud83d\\udcbc',\n  'woman_pilot':'\\ud83d\\udc69&zwj;\\u2708\\ufe0f',\n  'woman_playing_handball':'\\ud83e\\udd3e&zwj;\\u2640\\ufe0f',\n  'woman_playing_water_polo':'\\ud83e\\udd3d&zwj;\\u2640\\ufe0f',\n  'woman_scientist':'\\ud83d\\udc69&zwj;\\ud83d\\udd2c',\n  'woman_shrugging':'\\ud83e\\udd37&zwj;\\u2640\\ufe0f',\n  'woman_singer':'\\ud83d\\udc69&zwj;\\ud83c\\udfa4',\n  'woman_student':'\\ud83d\\udc69&zwj;\\ud83c\\udf93',\n  'woman_teacher':'\\ud83d\\udc69&zwj;\\ud83c\\udfeb',\n  'woman_technologist':'\\ud83d\\udc69&zwj;\\ud83d\\udcbb',\n  'woman_with_turban':'\\ud83d\\udc73&zwj;\\u2640\\ufe0f',\n  'womans_clothes':'\\ud83d\\udc5a',\n  'womans_hat':'\\ud83d\\udc52',\n  'women_wrestling':'\\ud83e\\udd3c&zwj;\\u2640\\ufe0f',\n  'womens':'\\ud83d\\udeba',\n  'world_map':'\\ud83d\\uddfa',\n  'worried':'\\ud83d\\ude1f',\n  'wrench':'\\ud83d\\udd27',\n  'writing_hand':'\\u270d\\ufe0f',\n  'x':'\\u274c',\n  'yellow_heart':'\\ud83d\\udc9b',\n  'yen':'\\ud83d\\udcb4',\n  'yin_yang':'\\u262f\\ufe0f',\n  'yum':'\\ud83d\\ude0b',\n  'zap':'\\u26a1\\ufe0f',\n  'zipper_mouth_face':'\\ud83e\\udd10',\n  'zzz':'\\ud83d\\udca4',\n\n  /* special emojis :P */\n  'octocat':  '<img alt=\":octocat:\" height=\"20\" width=\"20\" align=\"absmiddle\" src=\"https://assets-cdn.github.com/images/icons/emoji/octocat.png\">',\n  'showdown': '<span style=\"font-family: \\'Anonymous Pro\\', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>'\n};\n\r\n/**\n * Created by Estevao on 31-05-2015.\n */\n\n/**\n * Showdown Converter class\n * @class\n * @param {object} [converterOptions]\n * @returns {Converter}\n */\nshowdown.Converter = function (converterOptions) {\n  'use strict';\n\n  var\n      /**\n       * Options used by this converter\n       * @private\n       * @type {{}}\n       */\n      options = {},\n\n      /**\n       * Language extensions used by this converter\n       * @private\n       * @type {Array}\n       */\n      langExtensions = [],\n\n      /**\n       * Output modifiers extensions used by this converter\n       * @private\n       * @type {Array}\n       */\n      outputModifiers = [],\n\n      /**\n       * Event listeners\n       * @private\n       * @type {{}}\n       */\n      listeners = {},\n\n      /**\n       * The flavor set in this converter\n       */\n      setConvFlavor = setFlavor,\n\n      /**\n       * Metadata of the document\n       * @type {{parsed: {}, raw: string, format: string}}\n       */\n      metadata = {\n        parsed: {},\n        raw: '',\n        format: ''\n      };\n\n  _constructor();\n\n  /**\n   * Converter constructor\n   * @private\n   */\n  function _constructor () {\n    converterOptions = converterOptions || {};\n\n    for (var gOpt in globalOptions) {\n      if (globalOptions.hasOwnProperty(gOpt)) {\n        options[gOpt] = globalOptions[gOpt];\n      }\n    }\n\n    // Merge options\n    if (typeof converterOptions === 'object') {\n      for (var opt in converterOptions) {\n        if (converterOptions.hasOwnProperty(opt)) {\n          options[opt] = converterOptions[opt];\n        }\n      }\n    } else {\n      throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +\n      ' was passed instead.');\n    }\n\n    if (options.extensions) {\n      showdown.helper.forEach(options.extensions, _parseExtension);\n    }\n  }\n\n  /**\n   * Parse extension\n   * @param {*} ext\n   * @param {string} [name='']\n   * @private\n   */\n  function _parseExtension (ext, name) {\n\n    name = name || null;\n    // If it's a string, the extension was previously loaded\n    if (showdown.helper.isString(ext)) {\n      ext = showdown.helper.stdExtName(ext);\n      name = ext;\n\n      // LEGACY_SUPPORT CODE\n      if (showdown.extensions[ext]) {\n        console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +\n          'Please inform the developer that the extension should be updated!');\n        legacyExtensionLoading(showdown.extensions[ext], ext);\n        return;\n        // END LEGACY SUPPORT CODE\n\n      } else if (!showdown.helper.isUndefined(extensions[ext])) {\n        ext = extensions[ext];\n\n      } else {\n        throw Error('Extension \"' + ext + '\" could not be loaded. It was either not found or is not a valid extension.');\n      }\n    }\n\n    if (typeof ext === 'function') {\n      ext = ext();\n    }\n\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n\n    var validExt = validate(ext, name);\n    if (!validExt.valid) {\n      throw Error(validExt.error);\n    }\n\n    for (var i = 0; i < ext.length; ++i) {\n      switch (ext[i].type) {\n\n        case 'lang':\n          langExtensions.push(ext[i]);\n          break;\n\n        case 'output':\n          outputModifiers.push(ext[i]);\n          break;\n      }\n      if (ext[i].hasOwnProperty('listeners')) {\n        for (var ln in ext[i].listeners) {\n          if (ext[i].listeners.hasOwnProperty(ln)) {\n            listen(ln, ext[i].listeners[ln]);\n          }\n        }\n      }\n    }\n\n  }\n\n  /**\n   * LEGACY_SUPPORT\n   * @param {*} ext\n   * @param {string} name\n   */\n  function legacyExtensionLoading (ext, name) {\n    if (typeof ext === 'function') {\n      ext = ext(new showdown.Converter());\n    }\n    if (!showdown.helper.isArray(ext)) {\n      ext = [ext];\n    }\n    var valid = validate(ext, name);\n\n    if (!valid.valid) {\n      throw Error(valid.error);\n    }\n\n    for (var i = 0; i < ext.length; ++i) {\n      switch (ext[i].type) {\n        case 'lang':\n          langExtensions.push(ext[i]);\n          break;\n        case 'output':\n          outputModifiers.push(ext[i]);\n          break;\n        default:// should never reach here\n          throw Error('Extension loader error: Type unrecognized!!!');\n      }\n    }\n  }\n\n  /**\n   * Listen to an event\n   * @param {string} name\n   * @param {function} callback\n   */\n  function listen (name, callback) {\n    if (!showdown.helper.isString(name)) {\n      throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');\n    }\n\n    if (typeof callback !== 'function') {\n      throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');\n    }\n\n    if (!listeners.hasOwnProperty(name)) {\n      listeners[name] = [];\n    }\n    listeners[name].push(callback);\n  }\n\n  function rTrimInputText (text) {\n    var rsp = text.match(/^\\s*/)[0].length,\n        rgx = new RegExp('^\\\\s{0,' + rsp + '}', 'gm');\n    return text.replace(rgx, '');\n  }\n\n  /**\n   * Dispatch an event\n   * @private\n   * @param {string} evtName Event name\n   * @param {string} text Text\n   * @param {{}} options Converter Options\n   * @param {{}} globals\n   * @returns {string}\n   */\n  this._dispatch = function dispatch (evtName, text, options, globals) {\n    if (listeners.hasOwnProperty(evtName)) {\n      for (var ei = 0; ei < listeners[evtName].length; ++ei) {\n        var nText = listeners[evtName][ei](evtName, text, this, options, globals);\n        if (nText && typeof nText !== 'undefined') {\n          text = nText;\n        }\n      }\n    }\n    return text;\n  };\n\n  /**\n   * Listen to an event\n   * @param {string} name\n   * @param {function} callback\n   * @returns {showdown.Converter}\n   */\n  this.listen = function (name, callback) {\n    listen(name, callback);\n    return this;\n  };\n\n  /**\n   * Converts a markdown string into HTML\n   * @param {string} text\n   * @returns {*}\n   */\n  this.makeHtml = function (text) {\n    //check if text is not falsy\n    if (!text) {\n      return text;\n    }\n\n    var globals = {\n      gHtmlBlocks:     [],\n      gHtmlMdBlocks:   [],\n      gHtmlSpans:      [],\n      gUrls:           {},\n      gTitles:         {},\n      gDimensions:     {},\n      gListLevel:      0,\n      hashLinkCounts:  {},\n      langExtensions:  langExtensions,\n      outputModifiers: outputModifiers,\n      converter:       this,\n      ghCodeBlocks:    [],\n      metadata: {\n        parsed: {},\n        raw: '',\n        format: ''\n      }\n    };\n\n    // This lets us use ¨ trema as an escape char to avoid md5 hashes\n    // The choice of character is arbitrary; anything that isn't\n    // magic in Markdown will work.\n    text = text.replace(/¨/g, '¨T');\n\n    // Replace $ with ¨D\n    // RegExp interprets $ as a special character\n    // when it's in a replacement string\n    text = text.replace(/\\$/g, '¨D');\n\n    // Standardize line endings\n    text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\n    text = text.replace(/\\r/g, '\\n'); // Mac to Unix\n\n    // Stardardize line spaces\n    text = text.replace(/\\u00A0/g, '&nbsp;');\n\n    if (options.smartIndentationFix) {\n      text = rTrimInputText(text);\n    }\n\n    // Make sure text begins and ends with a couple of newlines:\n    text = '\\n\\n' + text + '\\n\\n';\n\n    // detab\n    text = showdown.subParser('detab')(text, options, globals);\n\n    /**\n     * Strip any lines consisting only of spaces and tabs.\n     * This makes subsequent regexs easier to write, because we can\n     * match consecutive blank lines with /\\n+/ instead of something\n     * contorted like /[ \\t]*\\n+/\n     */\n    text = text.replace(/^[ \\t]+$/mg, '');\n\n    //run languageExtensions\n    showdown.helper.forEach(langExtensions, function (ext) {\n      text = showdown.subParser('runExtension')(ext, text, options, globals);\n    });\n\n    // run the sub parsers\n    text = showdown.subParser('metadata')(text, options, globals);\n    text = showdown.subParser('hashPreCodeTags')(text, options, globals);\n    text = showdown.subParser('githubCodeBlocks')(text, options, globals);\n    text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n    text = showdown.subParser('hashCodeTags')(text, options, globals);\n    text = showdown.subParser('stripLinkDefinitions')(text, options, globals);\n    text = showdown.subParser('blockGamut')(text, options, globals);\n    text = showdown.subParser('unhashHTMLSpans')(text, options, globals);\n    text = showdown.subParser('unescapeSpecialChars')(text, options, globals);\n\n    // attacklab: Restore dollar signs\n    text = text.replace(/¨D/g, '$$');\n\n    // attacklab: Restore tremas\n    text = text.replace(/¨T/g, '¨');\n\n    // render a complete html document instead of a partial if the option is enabled\n    text = showdown.subParser('completeHTMLDocument')(text, options, globals);\n\n    // Run output modifiers\n    showdown.helper.forEach(outputModifiers, function (ext) {\n      text = showdown.subParser('runExtension')(ext, text, options, globals);\n    });\n\n    // update metadata\n    metadata = globals.metadata;\n    return text;\n  };\n\n  /**\n   * Converts an HTML string into a markdown string\n   * @param src\n   * @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.\n   * @returns {string}\n   */\n  this.makeMarkdown = this.makeMd = function (src, HTMLParser) {\n\n    // replace \\r\\n with \\n\n    src = src.replace(/\\r\\n/g, '\\n');\n    src = src.replace(/\\r/g, '\\n'); // old macs\n\n    // due to an edge case, we need to find this: > <\n    // to prevent removing of non silent white spaces\n    // ex: <em>this is</em> <strong>sparta</strong>\n    src = src.replace(/>[ \\t]+</, '>¨NBSP;<');\n\n    if (!HTMLParser) {\n      if (window && window.document) {\n        HTMLParser = window.document;\n      } else {\n        throw new Error('HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM');\n      }\n    }\n\n    var doc = HTMLParser.createElement('div');\n    doc.innerHTML = src;\n\n    var globals = {\n      preList: substitutePreCodeTags(doc)\n    };\n\n    // remove all newlines and collapse spaces\n    clean(doc);\n\n    // some stuff, like accidental reference links must now be escaped\n    // TODO\n    // doc.innerHTML = doc.innerHTML.replace(/\\[[\\S\\t ]]/);\n\n    var nodes = doc.childNodes,\n        mdDoc = '';\n\n    for (var i = 0; i < nodes.length; i++) {\n      mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);\n    }\n\n    function clean (node) {\n      for (var n = 0; n < node.childNodes.length; ++n) {\n        var child = node.childNodes[n];\n        if (child.nodeType === 3) {\n          if (!/\\S/.test(child.nodeValue)) {\n            node.removeChild(child);\n            --n;\n          } else {\n            child.nodeValue = child.nodeValue.split('\\n').join(' ');\n            child.nodeValue = child.nodeValue.replace(/(\\s)+/g, '$1');\n          }\n        } else if (child.nodeType === 1) {\n          clean(child);\n        }\n      }\n    }\n\n    // find all pre tags and replace contents with placeholder\n    // we need this so that we can remove all indentation from html\n    // to ease up parsing\n    function substitutePreCodeTags (doc) {\n\n      var pres = doc.querySelectorAll('pre'),\n          presPH = [];\n\n      for (var i = 0; i < pres.length; ++i) {\n\n        if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {\n          var content = pres[i].firstChild.innerHTML.trim(),\n              language = pres[i].firstChild.getAttribute('data-language') || '';\n\n          // if data-language attribute is not defined, then we look for class language-*\n          if (language === '') {\n            var classes = pres[i].firstChild.className.split(' ');\n            for (var c = 0; c < classes.length; ++c) {\n              var matches = classes[c].match(/^language-(.+)$/);\n              if (matches !== null) {\n                language = matches[1];\n                break;\n              }\n            }\n          }\n\n          // unescape html entities in content\n          content = showdown.helper.unescapeHTMLEntities(content);\n\n          presPH.push(content);\n          pres[i].outerHTML = '<precode language=\"' + language + '\" precodenum=\"' + i.toString() + '\"></precode>';\n        } else {\n          presPH.push(pres[i].innerHTML);\n          pres[i].innerHTML = '';\n          pres[i].setAttribute('prenum', i.toString());\n        }\n      }\n      return presPH;\n    }\n\n    return mdDoc;\n  };\n\n  /**\n   * Set an option of this Converter instance\n   * @param {string} key\n   * @param {*} value\n   */\n  this.setOption = function (key, value) {\n    options[key] = value;\n  };\n\n  /**\n   * Get the option of this Converter instance\n   * @param {string} key\n   * @returns {*}\n   */\n  this.getOption = function (key) {\n    return options[key];\n  };\n\n  /**\n   * Get the options of this Converter instance\n   * @returns {{}}\n   */\n  this.getOptions = function () {\n    return options;\n  };\n\n  /**\n   * Add extension to THIS converter\n   * @param {{}} extension\n   * @param {string} [name=null]\n   */\n  this.addExtension = function (extension, name) {\n    name = name || null;\n    _parseExtension(extension, name);\n  };\n\n  /**\n   * Use a global registered extension with THIS converter\n   * @param {string} extensionName Name of the previously registered extension\n   */\n  this.useExtension = function (extensionName) {\n    _parseExtension(extensionName);\n  };\n\n  /**\n   * Set the flavor THIS converter should use\n   * @param {string} name\n   */\n  this.setFlavor = function (name) {\n    if (!flavor.hasOwnProperty(name)) {\n      throw Error(name + ' flavor was not found');\n    }\n    var preset = flavor[name];\n    setConvFlavor = name;\n    for (var option in preset) {\n      if (preset.hasOwnProperty(option)) {\n        options[option] = preset[option];\n      }\n    }\n  };\n\n  /**\n   * Get the currently set flavor of this converter\n   * @returns {string}\n   */\n  this.getFlavor = function () {\n    return setConvFlavor;\n  };\n\n  /**\n   * Remove an extension from THIS converter.\n   * Note: This is a costly operation. It's better to initialize a new converter\n   * and specify the extensions you wish to use\n   * @param {Array} extension\n   */\n  this.removeExtension = function (extension) {\n    if (!showdown.helper.isArray(extension)) {\n      extension = [extension];\n    }\n    for (var a = 0; a < extension.length; ++a) {\n      var ext = extension[a];\n      for (var i = 0; i < langExtensions.length; ++i) {\n        if (langExtensions[i] === ext) {\n          langExtensions[i].splice(i, 1);\n        }\n      }\n      for (var ii = 0; ii < outputModifiers.length; ++i) {\n        if (outputModifiers[ii] === ext) {\n          outputModifiers[ii].splice(i, 1);\n        }\n      }\n    }\n  };\n\n  /**\n   * Get all extension of THIS converter\n   * @returns {{language: Array, output: Array}}\n   */\n  this.getAllExtensions = function () {\n    return {\n      language: langExtensions,\n      output: outputModifiers\n    };\n  };\n\n  /**\n   * Get the metadata of the previously parsed document\n   * @param raw\n   * @returns {string|{}}\n   */\n  this.getMetadata = function (raw) {\n    if (raw) {\n      return metadata.raw;\n    } else {\n      return metadata.parsed;\n    }\n  };\n\n  /**\n   * Get the metadata format of the previously parsed document\n   * @returns {string}\n   */\n  this.getMetadataFormat = function () {\n    return metadata.format;\n  };\n\n  /**\n   * Private: set a single key, value metadata pair\n   * @param {string} key\n   * @param {string} value\n   */\n  this._setMetadataPair = function (key, value) {\n    metadata.parsed[key] = value;\n  };\n\n  /**\n   * Private: set metadata format\n   * @param {string} format\n   */\n  this._setMetadataFormat = function (format) {\n    metadata.format = format;\n  };\n\n  /**\n   * Private: set metadata raw text\n   * @param {string} raw\n   */\n  this._setMetadataRaw = function (raw) {\n    metadata.raw = raw;\n  };\n};\n\r\n/**\n * Turn Markdown link shortcuts into XHTML <a> tags.\n */\nshowdown.subParser('anchors', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('anchors.before', text, options, globals);\n\n  var writeAnchorTag = function (wholeMatch, linkText, linkId, url, m5, m6, title) {\n    if (showdown.helper.isUndefined(title)) {\n      title = '';\n    }\n    linkId = linkId.toLowerCase();\n\n    // Special case for explicit empty url\n    if (wholeMatch.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n      url = '';\n    } else if (!url) {\n      if (!linkId) {\n        // lower-case and turn embedded newlines into spaces\n        linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\n      }\n      url = '#' + linkId;\n\n      if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\n        url = globals.gUrls[linkId];\n        if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\n          title = globals.gTitles[linkId];\n        }\n      } else {\n        return wholeMatch;\n      }\n    }\n\n    //url = showdown.helper.escapeCharacters(url, '*_', false); // replaced line to improve performance\n    url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n\n    var result = '<a href=\"' + url + '\"';\n\n    if (title !== '' && title !== null) {\n      title = title.replace(/\"/g, '&quot;');\n      //title = showdown.helper.escapeCharacters(title, '*_', false); // replaced line to improve performance\n      title = title.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n      result += ' title=\"' + title + '\"';\n    }\n\n    // optionLinksInNewWindow only applies\n    // to external links. Hash links (#) open in same page\n    if (options.openLinksInNewWindow && !/^#/.test(url)) {\n      // escaped _\n      result += ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n    }\n\n    result += '>' + linkText + '</a>';\n\n    return result;\n  };\n\n  // First, handle reference-style links: [link text] [id]\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g, writeAnchorTag);\n\n  // Next, inline-style links: [link text](url \"optional title\")\n  // cases with crazy urls like ./image/cat1).png\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n    writeAnchorTag);\n\n  // normal cases\n  text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n    writeAnchorTag);\n\n  // handle reference-style shortcuts: [link text]\n  // These must come last in case you've also got [link test][1]\n  // or [link test](/foo)\n  text = text.replace(/\\[([^\\[\\]]+)]()()()()()/g, writeAnchorTag);\n\n  // Lastly handle GithubMentions if option is enabled\n  if (options.ghMentions) {\n    text = text.replace(/(^|\\s)(\\\\)?(@([a-z\\d]+(?:[a-z\\d.-]+?[a-z\\d]+)*))/gmi, function (wm, st, escape, mentions, username) {\n      if (escape === '\\\\') {\n        return st + mentions;\n      }\n\n      //check if options.ghMentionsLink is a string\n      if (!showdown.helper.isString(options.ghMentionsLink)) {\n        throw new Error('ghMentionsLink option must be a string');\n      }\n      var lnk = options.ghMentionsLink.replace(/\\{u}/g, username),\n          target = '';\n      if (options.openLinksInNewWindow) {\n        target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n      }\n      return st + '<a href=\"' + lnk + '\"' + target + '>' + mentions + '</a>';\n    });\n  }\n\n  text = globals.converter._dispatch('anchors.after', text, options, globals);\n  return text;\n});\n\r\n// url allowed chars [a-z\\d_.~:/?#[]@!$&'()*+,;=-]\n\nvar simpleURLRegex  = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+?\\.[^'\">\\s]+?)()(\\1)?(?=\\s|$)(?![\"<>])/gi,\n    simpleURLRegex2 = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]])?(\\1)?(?=\\s|$)(?![\"<>])/gi,\n    delimUrlRegex   = /()<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>()/gi,\n    simpleMailRegex = /(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gmi,\n    delimMailRegex  = /<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\n\n    replaceLink = function (options) {\n      'use strict';\n      return function (wm, leadingMagicChars, link, m2, m3, trailingPunctuation, trailingMagicChars) {\n        link = link.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n        var lnkTxt = link,\n            append = '',\n            target = '',\n            lmc    = leadingMagicChars || '',\n            tmc    = trailingMagicChars || '';\n        if (/^www\\./i.test(link)) {\n          link = link.replace(/^www\\./i, 'http://www.');\n        }\n        if (options.excludeTrailingPunctuationFromURLs && trailingPunctuation) {\n          append = trailingPunctuation;\n        }\n        if (options.openLinksInNewWindow) {\n          target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n        }\n        return lmc + '<a href=\"' + link + '\"' + target + '>' + lnkTxt + '</a>' + append + tmc;\n      };\n    },\n\n    replaceMail = function (options, globals) {\n      'use strict';\n      return function (wholeMatch, b, mail) {\n        var href = 'mailto:';\n        b = b || '';\n        mail = showdown.subParser('unescapeSpecialChars')(mail, options, globals);\n        if (options.encodeEmails) {\n          href = showdown.helper.encodeEmailAddress(href + mail);\n          mail = showdown.helper.encodeEmailAddress(mail);\n        } else {\n          href = href + mail;\n        }\n        return b + '<a href=\"' + href + '\">' + mail + '</a>';\n      };\n    };\n\nshowdown.subParser('autoLinks', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('autoLinks.before', text, options, globals);\n\n  text = text.replace(delimUrlRegex, replaceLink(options));\n  text = text.replace(delimMailRegex, replaceMail(options, globals));\n\n  text = globals.converter._dispatch('autoLinks.after', text, options, globals);\n\n  return text;\n});\n\nshowdown.subParser('simplifiedAutoLinks', function (text, options, globals) {\n  'use strict';\n\n  if (!options.simplifiedAutoLink) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('simplifiedAutoLinks.before', text, options, globals);\n\n  if (options.excludeTrailingPunctuationFromURLs) {\n    text = text.replace(simpleURLRegex2, replaceLink(options));\n  } else {\n    text = text.replace(simpleURLRegex, replaceLink(options));\n  }\n  text = text.replace(simpleMailRegex, replaceMail(options, globals));\n\n  text = globals.converter._dispatch('simplifiedAutoLinks.after', text, options, globals);\n\n  return text;\n});\n\r\n/**\n * These are all the transformations that form block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('blockGamut', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('blockGamut.before', text, options, globals);\n\n  // we parse blockquotes first so that we can have headings and hrs\n  // inside blockquotes\n  text = showdown.subParser('blockQuotes')(text, options, globals);\n  text = showdown.subParser('headers')(text, options, globals);\n\n  // Do Horizontal Rules:\n  text = showdown.subParser('horizontalRule')(text, options, globals);\n\n  text = showdown.subParser('lists')(text, options, globals);\n  text = showdown.subParser('codeBlocks')(text, options, globals);\n  text = showdown.subParser('tables')(text, options, globals);\n\n  // We already ran _HashHTMLBlocks() before, in Markdown(), but that\n  // was to escape raw HTML in the original Markdown source. This time,\n  // we're escaping the markup we've just created, so that we don't wrap\n  // <p> tags around block-level tags.\n  text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n  text = showdown.subParser('paragraphs')(text, options, globals);\n\n  text = globals.converter._dispatch('blockGamut.after', text, options, globals);\n\n  return text;\n});\n\r\nshowdown.subParser('blockQuotes', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('blockQuotes.before', text, options, globals);\n\n  // add a couple extra lines after the text and endtext mark\n  text = text + '\\n\\n';\n\n  var rgx = /(^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+/gm;\n\n  if (options.splitAdjacentBlockquotes) {\n    rgx = /^ {0,3}>[\\s\\S]*?(?:\\n\\n)/gm;\n  }\n\n  text = text.replace(rgx, function (bq) {\n    // attacklab: hack around Konqueror 3.5.4 bug:\n    // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n    bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, ''); // trim one level of quoting\n\n    // attacklab: clean up hack\n    bq = bq.replace(/¨0/g, '');\n\n    bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\n    bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);\n    bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\n\n    bq = bq.replace(/(^|\\n)/g, '$1  ');\n    // These leading spaces screw with <pre> content, so we need to fix that:\n    bq = bq.replace(/(\\s*<pre>[^\\r]+?<\\/pre>)/gm, function (wholeMatch, m1) {\n      var pre = m1;\n      // attacklab: hack around Konqueror 3.5.4 bug:\n      pre = pre.replace(/^  /mg, '¨0');\n      pre = pre.replace(/¨0/g, '');\n      return pre;\n    });\n\n    return showdown.subParser('hashBlock')('<blockquote>\\n' + bq + '\\n</blockquote>', options, globals);\n  });\n\n  text = globals.converter._dispatch('blockQuotes.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Process Markdown `<pre><code>` blocks.\n */\nshowdown.subParser('codeBlocks', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('codeBlocks.before', text, options, globals);\n\n  // sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n  text += '¨0';\n\n  var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=¨0))/g;\n  text = text.replace(pattern, function (wholeMatch, m1, m2) {\n    var codeblock = m1,\n        nextChar = m2,\n        end = '\\n';\n\n    codeblock = showdown.subParser('outdent')(codeblock, options, globals);\n    codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n    codeblock = showdown.subParser('detab')(codeblock, options, globals);\n    codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n    codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing newlines\n\n    if (options.omitExtraWLInCodeBlocks) {\n      end = '';\n    }\n\n    codeblock = '<pre><code>' + codeblock + end + '</code></pre>';\n\n    return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\n  });\n\n  // strip sentinel\n  text = text.replace(/¨0/, '');\n\n  text = globals.converter._dispatch('codeBlocks.after', text, options, globals);\n  return text;\n});\n\r\n/**\n *\n *   *  Backtick quotes are used for <code></code> spans.\n *\n *   *  You can use multiple backticks as the delimiters if you want to\n *     include literal backticks in the code span. So, this input:\n *\n *         Just type ``foo `bar` baz`` at the prompt.\n *\n *       Will translate to:\n *\n *         <p>Just type <code>foo `bar` baz</code> at the prompt.</p>\n *\n *    There's no arbitrary limit to the number of backticks you\n *    can use as delimters. If you need three consecutive backticks\n *    in your code, use four for delimiters, etc.\n *\n *  *  You can use spaces to get literal backticks at the edges:\n *\n *         ... type `` `bar` `` ...\n *\n *       Turns to:\n *\n *         ... type <code>`bar`</code> ...\n */\nshowdown.subParser('codeSpans', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('codeSpans.before', text, options, globals);\n\n  if (typeof text === 'undefined') {\n    text = '';\n  }\n  text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\n    function (wholeMatch, m1, m2, m3) {\n      var c = m3;\n      c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\n      c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\n      c = showdown.subParser('encodeCode')(c, options, globals);\n      c = m1 + '<code>' + c + '</code>';\n      c = showdown.subParser('hashHTMLSpans')(c, options, globals);\n      return c;\n    }\n  );\n\n  text = globals.converter._dispatch('codeSpans.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Create a full HTML document from the processed markdown\n */\nshowdown.subParser('completeHTMLDocument', function (text, options, globals) {\n  'use strict';\n\n  if (!options.completeHTMLDocument) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);\n\n  var doctype = 'html',\n      doctypeParsed = '<!DOCTYPE HTML>\\n',\n      title = '',\n      charset = '<meta charset=\"utf-8\">\\n',\n      lang = '',\n      metadata = '';\n\n  if (typeof globals.metadata.parsed.doctype !== 'undefined') {\n    doctypeParsed = '<!DOCTYPE ' +  globals.metadata.parsed.doctype + '>\\n';\n    doctype = globals.metadata.parsed.doctype.toString().toLowerCase();\n    if (doctype === 'html' || doctype === 'html5') {\n      charset = '<meta charset=\"utf-8\">';\n    }\n  }\n\n  for (var meta in globals.metadata.parsed) {\n    if (globals.metadata.parsed.hasOwnProperty(meta)) {\n      switch (meta.toLowerCase()) {\n        case 'doctype':\n          break;\n\n        case 'title':\n          title = '<title>' +  globals.metadata.parsed.title + '</title>\\n';\n          break;\n\n        case 'charset':\n          if (doctype === 'html' || doctype === 'html5') {\n            charset = '<meta charset=\"' + globals.metadata.parsed.charset + '\">\\n';\n          } else {\n            charset = '<meta name=\"charset\" content=\"' + globals.metadata.parsed.charset + '\">\\n';\n          }\n          break;\n\n        case 'language':\n        case 'lang':\n          lang = ' lang=\"' + globals.metadata.parsed[meta] + '\"';\n          metadata += '<meta name=\"' + meta + '\" content=\"' + globals.metadata.parsed[meta] + '\">\\n';\n          break;\n\n        default:\n          metadata += '<meta name=\"' + meta + '\" content=\"' + globals.metadata.parsed[meta] + '\">\\n';\n      }\n    }\n  }\n\n  text = doctypeParsed + '<html' + lang + '>\\n<head>\\n' + title + charset + metadata + '</head>\\n<body>\\n' + text.trim() + '\\n</body>\\n</html>';\n\n  text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Convert all tabs to spaces\n */\nshowdown.subParser('detab', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('detab.before', text, options, globals);\n\n  // expand first n-1 tabs\n  text = text.replace(/\\t(?=\\t)/g, '    '); // g_tab_width\n\n  // replace the nth with two sentinels\n  text = text.replace(/\\t/g, '¨A¨B');\n\n  // use the sentinel to anchor our regex so it doesn't explode\n  text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {\n    var leadingText = m1,\n        numSpaces = 4 - leadingText.length % 4;  // g_tab_width\n\n    // there *must* be a better way to do this:\n    for (var i = 0; i < numSpaces; i++) {\n      leadingText += ' ';\n    }\n\n    return leadingText;\n  });\n\n  // clean up sentinels\n  text = text.replace(/¨A/g, '    ');  // g_tab_width\n  text = text.replace(/¨B/g, '');\n\n  text = globals.converter._dispatch('detab.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('ellipsis', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('ellipsis.before', text, options, globals);\n\n  text = text.replace(/\\.\\.\\./g, '…');\n\n  text = globals.converter._dispatch('ellipsis.after', text, options, globals);\n\n  return text;\n});\n\r\n/**\n * Turn emoji codes into emojis\n *\n * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis\n */\nshowdown.subParser('emoji', function (text, options, globals) {\n  'use strict';\n\n  if (!options.emoji) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('emoji.before', text, options, globals);\n\n  var emojiRgx = /:([\\S]+?):/g;\n\n  text = text.replace(emojiRgx, function (wm, emojiCode) {\n    if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {\n      return showdown.helper.emojis[emojiCode];\n    }\n    return wm;\n  });\n\n  text = globals.converter._dispatch('emoji.after', text, options, globals);\n\n  return text;\n});\n\r\n/**\n * Smart processing for ampersands and angle brackets that need to be encoded.\n */\nshowdown.subParser('encodeAmpsAndAngles', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('encodeAmpsAndAngles.before', text, options, globals);\n\n  // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\n  // http://bumppo.net/projects/amputator/\n  text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&amp;');\n\n  // Encode naked <'s\n  text = text.replace(/<(?![a-z\\/?$!])/gi, '&lt;');\n\n  // Encode <\n  text = text.replace(/</g, '&lt;');\n\n  // Encode >\n  text = text.replace(/>/g, '&gt;');\n\n  text = globals.converter._dispatch('encodeAmpsAndAngles.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Returns the string, with after processing the following backslash escape sequences.\n *\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\n *\n *    text = escapeCharacters(text,\"\\\\\",true);\n *    text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\n *\n * ...but we're sidestepping its use of the (slow) RegExp constructor\n * as an optimization for Firefox.  This function gets called a LOT.\n */\nshowdown.subParser('encodeBackslashEscapes', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);\n\n  text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\n  text = text.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Encode/escape certain characters inside Markdown code runs.\n * The point is that in code, these characters are literals,\n * and lose their special Markdown meanings.\n */\nshowdown.subParser('encodeCode', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('encodeCode.before', text, options, globals);\n\n  // Encode all ampersands; HTML entities are not\n  // entities within a Markdown code span.\n  text = text\n    .replace(/&/g, '&amp;')\n  // Do the angle bracket song and dance:\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n  // Now, escape characters that are magic in Markdown:\n    .replace(/([*_{}\\[\\]\\\\=~-])/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('encodeCode.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Within tags -- meaning between < and > -- encode [\\ ` * _ ~ =] so they\n * don't conflict with their use in Markdown for code, italics and strong.\n */\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.before', text, options, globals);\n\n  // Build a regex to find HTML tags.\n  var tags     = /<\\/?[a-z\\d_:-]+(?:[\\s]+[\\s\\S]+?)?>/gi,\n      comments = /<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;\n\n  text = text.replace(tags, function (wholeMatch) {\n    return wholeMatch\n      .replace(/(.)<\\/?code>(?=.)/g, '$1`')\n      .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n  });\n\n  text = text.replace(comments, function (wholeMatch) {\n    return wholeMatch\n      .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n  });\n\n  text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Handle github codeblocks prior to running HashHTML so that\n * HTML contained within the codeblock gets escaped properly\n * Example:\n * ```ruby\n *     def hello_world(x)\n *       puts \"Hello, #{x}\"\n *     end\n * ```\n */\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\n  'use strict';\n\n  // early exit if option is not enabled\n  if (!options.ghCodeBlocks) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);\n\n  text += '¨0';\n\n  text = text.replace(/(?:^|\\n)(?: {0,3})(```+|~~~+)(?: *)([^\\s`~]*)\\n([\\s\\S]*?)\\n(?: {0,3})\\1/g, function (wholeMatch, delim, language, codeblock) {\n    var end = (options.omitExtraWLInCodeBlocks) ? '' : '\\n';\n\n    // First parse the github code block\n    codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n    codeblock = showdown.subParser('detab')(codeblock, options, globals);\n    codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n    codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\n\n    codeblock = '<pre><code' + (language ? ' class=\"' + language + ' language-' + language + '\"' : '') + '>' + codeblock + end + '</code></pre>';\n\n    codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);\n\n    // Since GHCodeblocks can be false positives, we need to\n    // store the primitive text and the parsed text in a global var,\n    // and then return a token\n    return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n  });\n\n  // attacklab: strip sentinel\n  text = text.replace(/¨0/, '');\n\n  return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);\n});\n\r\nshowdown.subParser('hashBlock', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashBlock.before', text, options, globals);\n  text = text.replace(/(^\\n+|\\n+$)/g, '');\n  text = '\\n\\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\n  text = globals.converter._dispatch('hashBlock.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Hash and escape <code> elements that should not be parsed as markdown\n */\nshowdown.subParser('hashCodeTags', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashCodeTags.before', text, options, globals);\n\n  var repFunc = function (wholeMatch, match, left, right) {\n    var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n    return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';\n  };\n\n  // Hash naked <code>\n  text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '<code\\\\b[^>]*>', '</code>', 'gim');\n\n  text = globals.converter._dispatch('hashCodeTags.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('hashElement', function (text, options, globals) {\n  'use strict';\n\n  return function (wholeMatch, m1) {\n    var blockText = m1;\n\n    // Undo double lines\n    blockText = blockText.replace(/\\n\\n/g, '\\n');\n    blockText = blockText.replace(/^\\n/, '');\n\n    // strip trailing blank lines\n    blockText = blockText.replace(/\\n+$/g, '');\n\n    // Replace the element text with a marker (\"¨KxK\" where x is its key)\n    blockText = '\\n\\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\n\n    return blockText;\n  };\n});\n\r\nshowdown.subParser('hashHTMLBlocks', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashHTMLBlocks.before', text, options, globals);\n\n  var blockTags = [\n        'pre',\n        'div',\n        'h1',\n        'h2',\n        'h3',\n        'h4',\n        'h5',\n        'h6',\n        'blockquote',\n        'table',\n        'dl',\n        'ol',\n        'ul',\n        'script',\n        'noscript',\n        'form',\n        'fieldset',\n        'iframe',\n        'math',\n        'style',\n        'section',\n        'header',\n        'footer',\n        'nav',\n        'article',\n        'aside',\n        'address',\n        'audio',\n        'canvas',\n        'figure',\n        'hgroup',\n        'output',\n        'video',\n        'p'\n      ],\n      repFunc = function (wholeMatch, match, left, right) {\n        var txt = wholeMatch;\n        // check if this html element is marked as markdown\n        // if so, it's contents should be parsed as markdown\n        if (left.search(/\\bmarkdown\\b/) !== -1) {\n          txt = left + globals.converter.makeHtml(match) + right;\n        }\n        return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n      };\n\n  if (options.backslashEscapesHTMLTags) {\n    // encode backslash escaped HTML tags\n    text = text.replace(/\\\\<(\\/?[^>]+?)>/g, function (wm, inside) {\n      return '&lt;' + inside + '&gt;';\n    });\n  }\n\n  // hash HTML Blocks\n  for (var i = 0; i < blockTags.length; ++i) {\n\n    var opTagPos,\n        rgx1     = new RegExp('^ {0,3}(<' + blockTags[i] + '\\\\b[^>]*>)', 'im'),\n        patLeft  = '<' + blockTags[i] + '\\\\b[^>]*>',\n        patRight = '</' + blockTags[i] + '>';\n    // 1. Look for the first position of the first opening HTML tag in the text\n    while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {\n\n      // if the HTML tag is \\ escaped, we need to escape it and break\n\n\n      //2. Split the text in that position\n      var subTexts = showdown.helper.splitAtIndex(text, opTagPos),\n          //3. Match recursively\n          newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');\n\n      // prevent an infinite loop\n      if (newSubText1 === subTexts[1]) {\n        break;\n      }\n      text = subTexts[0].concat(newSubText1);\n    }\n  }\n  // HR SPECIAL CASE\n  text = text.replace(/(\\n {0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g,\n    showdown.subParser('hashElement')(text, options, globals));\n\n  // Special case for standalone HTML comments\n  text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {\n    return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n  }, '^ {0,3}<!--', '-->', 'gm');\n\n  // PHP and ASP-style processor instructions (<?...?> and <%...%>)\n  text = text.replace(/(?:\\n\\n)( {0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g,\n    showdown.subParser('hashElement')(text, options, globals));\n\n  text = globals.converter._dispatch('hashHTMLBlocks.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Hash span elements that should not be parsed as markdown\n */\nshowdown.subParser('hashHTMLSpans', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashHTMLSpans.before', text, options, globals);\n\n  function hashHTMLSpan (html) {\n    return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';\n  }\n\n  // Hash Self Closing tags\n  text = text.replace(/<[^>]+?\\/>/gi, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash tags without properties\n  text = text.replace(/<([^>]+?)>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash tags with properties\n  text = text.replace(/<([^>]+?)\\s[^>]+?>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  // Hash self closing tags without />\n  text = text.replace(/<[^>]+?>/gi, function (wm) {\n    return hashHTMLSpan(wm);\n  });\n\n  /*showdown.helper.matchRecursiveRegExp(text, '<code\\\\b[^>]*>', '</code>', 'gi');*/\n\n  text = globals.converter._dispatch('hashHTMLSpans.after', text, options, globals);\n  return text;\n});\n\n/**\n * Unhash HTML spans\n */\nshowdown.subParser('unhashHTMLSpans', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('unhashHTMLSpans.before', text, options, globals);\n\n  for (var i = 0; i < globals.gHtmlSpans.length; ++i) {\n    var repText = globals.gHtmlSpans[i],\n        // limiter to prevent infinite loop (assume 10 as limit for recurse)\n        limit = 0;\n\n    while (/¨C(\\d+)C/.test(repText)) {\n      var num = RegExp.$1;\n      repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);\n      if (limit === 10) {\n        console.error('maximum nesting of 10 spans reached!!!');\n        break;\n      }\n      ++limit;\n    }\n    text = text.replace('¨C' + i + 'C', repText);\n  }\n\n  text = globals.converter._dispatch('unhashHTMLSpans.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Hash and escape <pre><code> elements that should not be parsed as markdown\n */\nshowdown.subParser('hashPreCodeTags', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('hashPreCodeTags.before', text, options, globals);\n\n  var repFunc = function (wholeMatch, match, left, right) {\n    // encode html entities\n    var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n    return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n  };\n\n  // Hash <pre><code>\n  text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}<pre\\\\b[^>]*>\\\\s*<code\\\\b[^>]*>', '^ {0,3}</code>\\\\s*</pre>', 'gim');\n\n  text = globals.converter._dispatch('hashPreCodeTags.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('headers', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('headers.before', text, options, globals);\n\n  var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),\n\n      // Set text-style headers:\n      //\tHeader 1\n      //\t========\n      //\n      //\tHeader 2\n      //\t--------\n      //\n      setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n={2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\n      setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n-{2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm;\n\n  text = text.replace(setextRegexH1, function (wholeMatch, m1) {\n\n    var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n        hLevel = headerLevelStart,\n        hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';\n    return showdown.subParser('hashBlock')(hashBlock, options, globals);\n  });\n\n  text = text.replace(setextRegexH2, function (matchFound, m1) {\n    var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n        hLevel = headerLevelStart + 1,\n        hashBlock = '<h' + hLevel + hID + '>' + spanGamut + '</h' + hLevel + '>';\n    return showdown.subParser('hashBlock')(hashBlock, options, globals);\n  });\n\n  // atx-style headers:\n  //  # Header 1\n  //  ## Header 2\n  //  ## Header 2 with closing hashes ##\n  //  ...\n  //  ###### Header 6\n  //\n  var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \\t]+(.+?)[ \\t]*#*\\n+/gm : /^(#{1,6})[ \\t]*(.+?)[ \\t]*#*\\n+/gm;\n\n  text = text.replace(atxStyle, function (wholeMatch, m1, m2) {\n    var hText = m2;\n    if (options.customizedHeaderId) {\n      hText = m2.replace(/\\s?\\{([^{]+?)}\\s*$/, '');\n    }\n\n    var span = showdown.subParser('spanGamut')(hText, options, globals),\n        hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m2) + '\"',\n        hLevel = headerLevelStart - 1 + m1.length,\n        header = '<h' + hLevel + hID + '>' + span + '</h' + hLevel + '>';\n\n    return showdown.subParser('hashBlock')(header, options, globals);\n  });\n\n  function headerId (m) {\n    var title,\n        prefix;\n\n    // It is separate from other options to allow combining prefix and customized\n    if (options.customizedHeaderId) {\n      var match = m.match(/\\{([^{]+?)}\\s*$/);\n      if (match && match[1]) {\n        m = match[1];\n      }\n    }\n\n    title = m;\n\n    // Prefix id to prevent causing inadvertent pre-existing style matches.\n    if (showdown.helper.isString(options.prefixHeaderId)) {\n      prefix = options.prefixHeaderId;\n    } else if (options.prefixHeaderId === true) {\n      prefix = 'section-';\n    } else {\n      prefix = '';\n    }\n\n    if (!options.rawPrefixHeaderId) {\n      title = prefix + title;\n    }\n\n    if (options.ghCompatibleHeaderId) {\n      title = title\n        .replace(/ /g, '-')\n        // replace previously escaped chars (&, ¨ and $)\n        .replace(/&amp;/g, '')\n        .replace(/¨T/g, '')\n        .replace(/¨D/g, '')\n        // replace rest of the chars (&~$ are repeated as they might have been escaped)\n        // borrowed from github's redcarpet (some they should produce similar results)\n        .replace(/[&+$,\\/:;=?@\"#{}|^¨~\\[\\]`\\\\*)(%.!'<>]/g, '')\n        .toLowerCase();\n    } else if (options.rawHeaderId) {\n      title = title\n        .replace(/ /g, '-')\n        // replace previously escaped chars (&, ¨ and $)\n        .replace(/&amp;/g, '&')\n        .replace(/¨T/g, '¨')\n        .replace(/¨D/g, '$')\n        // replace \" and '\n        .replace(/[\"']/g, '-')\n        .toLowerCase();\n    } else {\n      title = title\n        .replace(/[^\\w]/g, '')\n        .toLowerCase();\n    }\n\n    if (options.rawPrefixHeaderId) {\n      title = prefix + title;\n    }\n\n    if (globals.hashLinkCounts[title]) {\n      title = title + '-' + (globals.hashLinkCounts[title]++);\n    } else {\n      globals.hashLinkCounts[title] = 1;\n    }\n    return title;\n  }\n\n  text = globals.converter._dispatch('headers.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Turn Markdown link shortcuts into XHTML <a> tags.\n */\nshowdown.subParser('horizontalRule', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('horizontalRule.before', text, options, globals);\n\n  var key = showdown.subParser('hashBlock')('<hr />', options, globals);\n  text = text.replace(/^ {0,2}( ?-){3,}[ \\t]*$/gm, key);\n  text = text.replace(/^ {0,2}( ?\\*){3,}[ \\t]*$/gm, key);\n  text = text.replace(/^ {0,2}( ?_){3,}[ \\t]*$/gm, key);\n\n  text = globals.converter._dispatch('horizontalRule.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Turn Markdown image shortcuts into <img> tags.\n */\nshowdown.subParser('images', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('images.before', text, options, globals);\n\n  var inlineRegExp      = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n      crazyRegExp       = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<([^>]*)>(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:(?:([\"'])([^\"]*?)\\6))?[ \\t]?\\)/g,\n      base64RegExp      = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<?(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n      referenceRegExp   = /!\\[([^\\]]*?)] ?(?:\\n *)?\\[([\\s\\S]*?)]()()()()()/g,\n      refShortcutRegExp = /!\\[([^\\[\\]]+)]()()()()()/g;\n\n  function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {\n    url = url.replace(/\\s/g, '');\n    return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);\n  }\n\n  function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {\n\n    var gUrls   = globals.gUrls,\n        gTitles = globals.gTitles,\n        gDims   = globals.gDimensions;\n\n    linkId = linkId.toLowerCase();\n\n    if (!title) {\n      title = '';\n    }\n    // Special case for explicit empty url\n    if (wholeMatch.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n      url = '';\n\n    } else if (url === '' || url === null) {\n      if (linkId === '' || linkId === null) {\n        // lower-case and turn embedded newlines into spaces\n        linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\n      }\n      url = '#' + linkId;\n\n      if (!showdown.helper.isUndefined(gUrls[linkId])) {\n        url = gUrls[linkId];\n        if (!showdown.helper.isUndefined(gTitles[linkId])) {\n          title = gTitles[linkId];\n        }\n        if (!showdown.helper.isUndefined(gDims[linkId])) {\n          width = gDims[linkId].width;\n          height = gDims[linkId].height;\n        }\n      } else {\n        return wholeMatch;\n      }\n    }\n\n    altText = altText\n      .replace(/\"/g, '&quot;')\n    //altText = showdown.helper.escapeCharacters(altText, '*_', false);\n      .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n    //url = showdown.helper.escapeCharacters(url, '*_', false);\n    url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n    var result = '<img src=\"' + url + '\" alt=\"' + altText + '\"';\n\n    if (title && showdown.helper.isString(title)) {\n      title = title\n        .replace(/\"/g, '&quot;')\n      //title = showdown.helper.escapeCharacters(title, '*_', false);\n        .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n      result += ' title=\"' + title + '\"';\n    }\n\n    if (width && height) {\n      width  = (width === '*') ? 'auto' : width;\n      height = (height === '*') ? 'auto' : height;\n\n      result += ' width=\"' + width + '\"';\n      result += ' height=\"' + height + '\"';\n    }\n\n    result += ' />';\n\n    return result;\n  }\n\n  // First, handle reference-style labeled images: ![alt text][id]\n  text = text.replace(referenceRegExp, writeImageTag);\n\n  // Next, handle inline images:  ![alt text](url =<width>x<height> \"optional title\")\n\n  // base64 encoded images\n  text = text.replace(base64RegExp, writeImageTagBase64);\n\n  // cases with crazy urls like ./image/cat1).png\n  text = text.replace(crazyRegExp, writeImageTag);\n\n  // normal cases\n  text = text.replace(inlineRegExp, writeImageTag);\n\n  // handle reference-style shortcuts: ![img text]\n  text = text.replace(refShortcutRegExp, writeImageTag);\n\n  text = globals.converter._dispatch('images.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('italicsAndBold', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);\n\n  // it's faster to have 3 separate regexes for each case than have just one\n  // because of backtracing, in some cases, it could lead to an exponential effect\n  // called \"catastrophic backtrace\". Ominous!\n\n  function parseInside (txt, left, right) {\n    /*\n    if (options.simplifiedAutoLink) {\n      txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n    }\n    */\n    return left + txt + right;\n  }\n\n  // Parse underscores\n  if (options.literalMidWordUnderscores) {\n    text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n      return parseInside (txt, '<strong><em>', '</em></strong>');\n    });\n    text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n      return parseInside (txt, '<strong>', '</strong>');\n    });\n    text = text.replace(/\\b_(\\S[\\s\\S]*?)_\\b/g, function (wm, txt) {\n      return parseInside (txt, '<em>', '</em>');\n    });\n  } else {\n    text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;\n    });\n    text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;\n    });\n    text = text.replace(/_([^\\s_][\\s\\S]*?)_/g, function (wm, m) {\n      // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)\n      return (/\\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;\n    });\n  }\n\n  // Now parse asterisks\n  if (options.literalMidWordAsterisks) {\n    text = text.replace(/([^*]|^)\\B\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<strong><em>', '</em></strong>');\n    });\n    text = text.replace(/([^*]|^)\\B\\*\\*(\\S[\\s\\S]*?)\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<strong>', '</strong>');\n    });\n    text = text.replace(/([^*]|^)\\B\\*(\\S[\\s\\S]*?)\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n      return parseInside (txt, lead + '<em>', '</em>');\n    });\n  } else {\n    text = text.replace(/\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong><em>', '</em></strong>') : wm;\n    });\n    text = text.replace(/\\*\\*(\\S[\\s\\S]*?)\\*\\*/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? parseInside (m, '<strong>', '</strong>') : wm;\n    });\n    text = text.replace(/\\*([^\\s*][\\s\\S]*?)\\*/g, function (wm, m) {\n      // !/^\\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)\n      return (/\\S$/.test(m)) ? parseInside (m, '<em>', '</em>') : wm;\n    });\n  }\n\n\n  text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\n */\nshowdown.subParser('lists', function (text, options, globals) {\n  'use strict';\n\n  /**\n   * Process the contents of a single ordered or unordered list, splitting it\n   * into individual list items.\n   * @param {string} listStr\n   * @param {boolean} trimTrailing\n   * @returns {string}\n   */\n  function processListItems (listStr, trimTrailing) {\n    // The $g_list_level global keeps track of when we're inside a list.\n    // Each time we enter a list, we increment it; when we leave a list,\n    // we decrement. If it's zero, we're not in a list anymore.\n    //\n    // We do this because when we're not inside a list, we want to treat\n    // something like this:\n    //\n    //    I recommend upgrading to version\n    //    8. Oops, now this line is treated\n    //    as a sub-list.\n    //\n    // As a single paragraph, despite the fact that the second line starts\n    // with a digit-period-space sequence.\n    //\n    // Whereas when we're inside a list (or sub-list), that line will be\n    // treated as the start of a sub-list. What a kludge, huh? This is\n    // an aspect of Markdown's syntax that's hard to parse perfectly\n    // without resorting to mind-reading. Perhaps the solution is to\n    // change the syntax rules such that sub-lists must start with a\n    // starting cardinal number; e.g. \"1.\" or \"a.\".\n    globals.gListLevel++;\n\n    // trim trailing blank lines:\n    listStr = listStr.replace(/\\n{2,}$/, '\\n');\n\n    // attacklab: add sentinel to emulate \\z\n    listStr += '¨0';\n\n    var rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0| {0,3}([*+-]|\\d+[.])[ \\t]+))/gm,\n        isParagraphed = (/\\n[ \\t]*\\n(?!¨0)/.test(listStr));\n\n    // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,\n    // which is a syntax breaking change\n    // activating this option reverts to old behavior\n    if (options.disableForced4SpacesIndentedSublists) {\n      rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0|\\2([*+-]|\\d+[.])[ \\t]+))/gm;\n    }\n\n    listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {\n      checked = (checked && checked.trim() !== '');\n\n      var item = showdown.subParser('outdent')(m4, options, globals),\n          bulletStyle = '';\n\n      // Support for github tasklists\n      if (taskbtn && options.tasklists) {\n        bulletStyle = ' class=\"task-list-item\" style=\"list-style-type: none;\"';\n        item = item.replace(/^[ \\t]*\\[(x|X| )?]/m, function () {\n          var otp = '<input type=\"checkbox\" disabled style=\"margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;\"';\n          if (checked) {\n            otp += ' checked';\n          }\n          otp += '>';\n          return otp;\n        });\n      }\n\n      // ISSUE #312\n      // This input: - - - a\n      // causes trouble to the parser, since it interprets it as:\n      // <ul><li><li><li>a</li></li></li></ul>\n      // instead of:\n      // <ul><li>- - a</li></ul>\n      // So, to prevent it, we will put a marker (¨A)in the beginning of the line\n      // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser\n      item = item.replace(/^([-*+]|\\d\\.)[ \\t]+[\\S\\n ]*/g, function (wm2) {\n        return '¨A' + wm2;\n      });\n\n      // m1 - Leading line or\n      // Has a double return (multi paragraph) or\n      // Has sublist\n      if (m1 || (item.search(/\\n{2,}/) > -1)) {\n        item = showdown.subParser('githubCodeBlocks')(item, options, globals);\n        item = showdown.subParser('blockGamut')(item, options, globals);\n      } else {\n        // Recursion for sub-lists:\n        item = showdown.subParser('lists')(item, options, globals);\n        item = item.replace(/\\n$/, ''); // chomp(item)\n        item = showdown.subParser('hashHTMLBlocks')(item, options, globals);\n\n        // Colapse double linebreaks\n        item = item.replace(/\\n\\n+/g, '\\n\\n');\n        if (isParagraphed) {\n          item = showdown.subParser('paragraphs')(item, options, globals);\n        } else {\n          item = showdown.subParser('spanGamut')(item, options, globals);\n        }\n      }\n\n      // now we need to remove the marker (¨A)\n      item = item.replace('¨A', '');\n      // we can finally wrap the line in list item tags\n      item =  '<li' + bulletStyle + '>' + item + '</li>\\n';\n\n      return item;\n    });\n\n    // attacklab: strip sentinel\n    listStr = listStr.replace(/¨0/g, '');\n\n    globals.gListLevel--;\n\n    if (trimTrailing) {\n      listStr = listStr.replace(/\\s+$/, '');\n    }\n\n    return listStr;\n  }\n\n  function styleStartNumber (list, listType) {\n    // check if ol and starts by a number different than 1\n    if (listType === 'ol') {\n      var res = list.match(/^ *(\\d+)\\./);\n      if (res && res[1] !== '1') {\n        return ' start=\"' + res[1] + '\"';\n      }\n    }\n    return '';\n  }\n\n  /**\n   * Check and parse consecutive lists (better fix for issue #142)\n   * @param {string} list\n   * @param {string} listType\n   * @param {boolean} trimTrailing\n   * @returns {string}\n   */\n  function parseConsecutiveLists (list, listType, trimTrailing) {\n    // check if we caught 2 or more consecutive lists by mistake\n    // we use the counterRgx, meaning if listType is UL we look for OL and vice versa\n    var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\\d+\\.[ \\t]/gm : /^ {0,3}\\d+\\.[ \\t]/gm,\n        ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \\t]/gm : /^ {0,3}[*+-][ \\t]/gm,\n        counterRxg = (listType === 'ul') ? olRgx : ulRgx,\n        result = '';\n\n    if (list.search(counterRxg) !== -1) {\n      (function parseCL (txt) {\n        var pos = txt.search(counterRxg),\n            style = styleStartNumber(list, listType);\n        if (pos !== -1) {\n          // slice\n          result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '</' + listType + '>\\n';\n\n          // invert counterType and listType\n          listType = (listType === 'ul') ? 'ol' : 'ul';\n          counterRxg = (listType === 'ul') ? olRgx : ulRgx;\n\n          //recurse\n          parseCL(txt.slice(pos));\n        } else {\n          result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt, !!trimTrailing) + '</' + listType + '>\\n';\n        }\n      })(list);\n    } else {\n      var style = styleStartNumber(list, listType);\n      result = '\\n\\n<' + listType + style + '>\\n' + processListItems(list, !!trimTrailing) + '</' + listType + '>\\n';\n    }\n\n    return result;\n  }\n\n  /** Start of list parsing **/\n  text = globals.converter._dispatch('lists.before', text, options, globals);\n  // add sentinel to hack around khtml/safari bug:\n  // http://bugs.webkit.org/show_bug.cgi?id=11231\n  text += '¨0';\n\n  if (globals.gListLevel) {\n    text = text.replace(/^(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n      function (wholeMatch, list, m2) {\n        var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n        return parseConsecutiveLists(list, listType, true);\n      }\n    );\n  } else {\n    text = text.replace(/(\\n\\n|^\\n?)(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n      function (wholeMatch, m1, list, m3) {\n        var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n        return parseConsecutiveLists(list, listType, false);\n      }\n    );\n  }\n\n  // strip sentinel\n  text = text.replace(/¨0/, '');\n  text = globals.converter._dispatch('lists.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Parse metadata at the top of the document\n */\nshowdown.subParser('metadata', function (text, options, globals) {\n  'use strict';\n\n  if (!options.metadata) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('metadata.before', text, options, globals);\n\n  function parseMetadataContents (content) {\n    // raw is raw so it's not changed in any way\n    globals.metadata.raw = content;\n\n    // escape chars forbidden in html attributes\n    // double quotes\n    content = content\n      // ampersand first\n      .replace(/&/g, '&amp;')\n      // double quotes\n      .replace(/\"/g, '&quot;');\n\n    content = content.replace(/\\n {4}/g, ' ');\n    content.replace(/^([\\S ]+): +([\\s\\S]+?)$/gm, function (wm, key, value) {\n      globals.metadata.parsed[key] = value;\n      return '';\n    });\n  }\n\n  text = text.replace(/^\\s*«««+(\\S*?)\\n([\\s\\S]+?)\\n»»»+\\n/, function (wholematch, format, content) {\n    parseMetadataContents(content);\n    return '¨M';\n  });\n\n  text = text.replace(/^\\s*---+(\\S*?)\\n([\\s\\S]+?)\\n---+\\n/, function (wholematch, format, content) {\n    if (format) {\n      globals.metadata.format = format;\n    }\n    parseMetadataContents(content);\n    return '¨M';\n  });\n\n  text = text.replace(/¨M/g, '');\n\n  text = globals.converter._dispatch('metadata.after', text, options, globals);\n  return text;\n});\n\r\n/**\n * Remove one level of line-leading tabs or spaces\n */\nshowdown.subParser('outdent', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('outdent.before', text, options, globals);\n\n  // attacklab: hack around Konqueror 3.5.4 bug:\n  // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n  text = text.replace(/^(\\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width\n\n  // attacklab: clean up hack\n  text = text.replace(/¨0/g, '');\n\n  text = globals.converter._dispatch('outdent.after', text, options, globals);\n  return text;\n});\n\r\n/**\n *\n */\nshowdown.subParser('paragraphs', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('paragraphs.before', text, options, globals);\n  // Strip leading and trailing lines:\n  text = text.replace(/^\\n+/g, '');\n  text = text.replace(/\\n+$/g, '');\n\n  var grafs = text.split(/\\n{2,}/g),\n      grafsOut = [],\n      end = grafs.length; // Wrap <p> tags\n\n  for (var i = 0; i < end; i++) {\n    var str = grafs[i];\n    // if this is an HTML marker, copy it\n    if (str.search(/¨(K|G)(\\d+)\\1/g) >= 0) {\n      grafsOut.push(str);\n\n    // test for presence of characters to prevent empty lines being parsed\n    // as paragraphs (resulting in undesired extra empty paragraphs)\n    } else if (str.search(/\\S/) >= 0) {\n      str = showdown.subParser('spanGamut')(str, options, globals);\n      str = str.replace(/^([ \\t]*)/g, '<p>');\n      str += '</p>';\n      grafsOut.push(str);\n    }\n  }\n\n  /** Unhashify HTML blocks */\n  end = grafsOut.length;\n  for (i = 0; i < end; i++) {\n    var blockText = '',\n        grafsOutIt = grafsOut[i],\n        codeFlag = false;\n    // if this is a marker for an html block...\n    // use RegExp.test instead of string.search because of QML bug\n    while (/¨(K|G)(\\d+)\\1/.test(grafsOutIt)) {\n      var delim = RegExp.$1,\n          num   = RegExp.$2;\n\n      if (delim === 'K') {\n        blockText = globals.gHtmlBlocks[num];\n      } else {\n        // we need to check if ghBlock is a false positive\n        if (codeFlag) {\n          // use encoded version of all text\n          blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text, options, globals);\n        } else {\n          blockText = globals.ghCodeBlocks[num].codeblock;\n        }\n      }\n      blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\n\n      grafsOutIt = grafsOutIt.replace(/(\\n\\n)?¨(K|G)\\d+\\2(\\n\\n)?/, blockText);\n      // Check if grafsOutIt is a pre->code\n      if (/^<pre\\b[^>]*>\\s*<code\\b[^>]*>/.test(grafsOutIt)) {\n        codeFlag = true;\n      }\n    }\n    grafsOut[i] = grafsOutIt;\n  }\n  text = grafsOut.join('\\n');\n  // Strip leading and trailing lines:\n  text = text.replace(/^\\n+/g, '');\n  text = text.replace(/\\n+$/g, '');\n  return globals.converter._dispatch('paragraphs.after', text, options, globals);\n});\n\r\n/**\n * Run extension\n */\nshowdown.subParser('runExtension', function (ext, text, options, globals) {\n  'use strict';\n\n  if (ext.filter) {\n    text = ext.filter(text, globals.converter, options);\n\n  } else if (ext.regex) {\n    // TODO remove this when old extension loading mechanism is deprecated\n    var re = ext.regex;\n    if (!(re instanceof RegExp)) {\n      re = new RegExp(re, 'g');\n    }\n    text = text.replace(re, ext.replace);\n  }\n\n  return text;\n});\n\r\n/**\n * These are all the transformations that occur *within* block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('spanGamut', function (text, options, globals) {\n  'use strict';\n\n  text = globals.converter._dispatch('spanGamut.before', text, options, globals);\n  text = showdown.subParser('codeSpans')(text, options, globals);\n  text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\n  text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\n\n  // Process anchor and image tags. Images must come first,\n  // because ![foo][f] looks like an anchor.\n  text = showdown.subParser('images')(text, options, globals);\n  text = showdown.subParser('anchors')(text, options, globals);\n\n  // Make links out of things like `<http://example.com/>`\n  // Must come after anchors, because you can use < and >\n  // delimiters in inline links like [this](<url>).\n  text = showdown.subParser('autoLinks')(text, options, globals);\n  text = showdown.subParser('simplifiedAutoLinks')(text, options, globals);\n  text = showdown.subParser('emoji')(text, options, globals);\n  text = showdown.subParser('underline')(text, options, globals);\n  text = showdown.subParser('italicsAndBold')(text, options, globals);\n  text = showdown.subParser('strikethrough')(text, options, globals);\n  text = showdown.subParser('ellipsis')(text, options, globals);\n\n  // we need to hash HTML tags inside spans\n  text = showdown.subParser('hashHTMLSpans')(text, options, globals);\n\n  // now we encode amps and angles\n  text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\n\n  // Do hard breaks\n  if (options.simpleLineBreaks) {\n    // GFM style hard breaks\n    // only add line breaks if the text does not contain a block (special case for lists)\n    if (!/\\n\\n¨K/.test(text)) {\n      text = text.replace(/\\n+/g, '<br />\\n');\n    }\n  } else {\n    // Vanilla hard breaks\n    text = text.replace(/  +\\n/g, '<br />\\n');\n  }\n\n  text = globals.converter._dispatch('spanGamut.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('strikethrough', function (text, options, globals) {\n  'use strict';\n\n  function parseInside (txt) {\n    if (options.simplifiedAutoLink) {\n      txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n    }\n    return '<del>' + txt + '</del>';\n  }\n\n  if (options.strikethrough) {\n    text = globals.converter._dispatch('strikethrough.before', text, options, globals);\n    text = text.replace(/(?:~){2}([\\s\\S]+?)(?:~){2}/g, function (wm, txt) { return parseInside(txt); });\n    text = globals.converter._dispatch('strikethrough.after', text, options, globals);\n  }\n\n  return text;\n});\n\r\n/**\n * Strips link definitions from text, stores the URLs and titles in\n * hash references.\n * Link defs are in the form: ^[id]: url \"optional title\"\n */\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\n  'use strict';\n\n  var regex       = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*<?([^>\\s]+)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n+|(?=¨0))/gm,\n      base64Regex = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*<?(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n\\n|(?=¨0)|(?=\\n\\[))/gm;\n\n  // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n  text += '¨0';\n\n  var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {\n    linkId = linkId.toLowerCase();\n    if (url.match(/^data:.+?\\/.+?;base64,/)) {\n      // remove newlines\n      globals.gUrls[linkId] = url.replace(/\\s/g, '');\n    } else {\n      globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url, options, globals);  // Link IDs are case-insensitive\n    }\n\n    if (blankLines) {\n      // Oops, found blank lines, so it's not a title.\n      // Put back the parenthetical statement we stole.\n      return blankLines + title;\n\n    } else {\n      if (title) {\n        globals.gTitles[linkId] = title.replace(/\"|'/g, '&quot;');\n      }\n      if (options.parseImgDimensions && width && height) {\n        globals.gDimensions[linkId] = {\n          width:  width,\n          height: height\n        };\n      }\n    }\n    // Completely remove the definition from the text\n    return '';\n  };\n\n  // first we try to find base64 link references\n  text = text.replace(base64Regex, replaceFunc);\n\n  text = text.replace(regex, replaceFunc);\n\n  // attacklab: strip sentinel\n  text = text.replace(/¨0/, '');\n\n  return text;\n});\n\r\nshowdown.subParser('tables', function (text, options, globals) {\n  'use strict';\n\n  if (!options.tables) {\n    return text;\n  }\n\n  var tableRgx       = /^ {0,3}\\|?.+\\|.+\\n {0,3}\\|?[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[\\s\\S]+?(?:\\n\\n|¨0)/gm,\n      //singeColTblRgx = /^ {0,3}\\|.+\\|\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n(?: {0,3}\\|.+\\|\\n)+(?:\\n\\n|¨0)/gm;\n      singeColTblRgx = /^ {0,3}\\|.+\\|[ \\t]*\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n( {0,3}\\|.+\\|[ \\t]*\\n)*(?:\\n|¨0)/gm;\n\n  function parseStyles (sLine) {\n    if (/^:[ \\t]*--*$/.test(sLine)) {\n      return ' style=\"text-align:left;\"';\n    } else if (/^--*[ \\t]*:[ \\t]*$/.test(sLine)) {\n      return ' style=\"text-align:right;\"';\n    } else if (/^:[ \\t]*--*[ \\t]*:$/.test(sLine)) {\n      return ' style=\"text-align:center;\"';\n    } else {\n      return '';\n    }\n  }\n\n  function parseHeaders (header, style) {\n    var id = '';\n    header = header.trim();\n    // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility\n    if (options.tablesHeaderId || options.tableHeaderId) {\n      id = ' id=\"' + header.replace(/ /g, '_').toLowerCase() + '\"';\n    }\n    header = showdown.subParser('spanGamut')(header, options, globals);\n\n    return '<th' + id + style + '>' + header + '</th>\\n';\n  }\n\n  function parseCells (cell, style) {\n    var subText = showdown.subParser('spanGamut')(cell, options, globals);\n    return '<td' + style + '>' + subText + '</td>\\n';\n  }\n\n  function buildTable (headers, cells) {\n    var tb = '<table>\\n<thead>\\n<tr>\\n',\n        tblLgn = headers.length;\n\n    for (var i = 0; i < tblLgn; ++i) {\n      tb += headers[i];\n    }\n    tb += '</tr>\\n</thead>\\n<tbody>\\n';\n\n    for (i = 0; i < cells.length; ++i) {\n      tb += '<tr>\\n';\n      for (var ii = 0; ii < tblLgn; ++ii) {\n        tb += cells[i][ii];\n      }\n      tb += '</tr>\\n';\n    }\n    tb += '</tbody>\\n</table>\\n';\n    return tb;\n  }\n\n  function parseTable (rawTable) {\n    var i, tableLines = rawTable.split('\\n');\n\n    for (i = 0; i < tableLines.length; ++i) {\n      // strip wrong first and last column if wrapped tables are used\n      if (/^ {0,3}\\|/.test(tableLines[i])) {\n        tableLines[i] = tableLines[i].replace(/^ {0,3}\\|/, '');\n      }\n      if (/\\|[ \\t]*$/.test(tableLines[i])) {\n        tableLines[i] = tableLines[i].replace(/\\|[ \\t]*$/, '');\n      }\n      // parse code spans first, but we only support one line code spans\n      tableLines[i] = showdown.subParser('codeSpans')(tableLines[i], options, globals);\n    }\n\n    var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),\n        rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),\n        rawCells = [],\n        headers = [],\n        styles = [],\n        cells = [];\n\n    tableLines.shift();\n    tableLines.shift();\n\n    for (i = 0; i < tableLines.length; ++i) {\n      if (tableLines[i].trim() === '') {\n        continue;\n      }\n      rawCells.push(\n        tableLines[i]\n          .split('|')\n          .map(function (s) {\n            return s.trim();\n          })\n      );\n    }\n\n    if (rawHeaders.length < rawStyles.length) {\n      return rawTable;\n    }\n\n    for (i = 0; i < rawStyles.length; ++i) {\n      styles.push(parseStyles(rawStyles[i]));\n    }\n\n    for (i = 0; i < rawHeaders.length; ++i) {\n      if (showdown.helper.isUndefined(styles[i])) {\n        styles[i] = '';\n      }\n      headers.push(parseHeaders(rawHeaders[i], styles[i]));\n    }\n\n    for (i = 0; i < rawCells.length; ++i) {\n      var row = [];\n      for (var ii = 0; ii < headers.length; ++ii) {\n        if (showdown.helper.isUndefined(rawCells[i][ii])) {\n\n        }\n        row.push(parseCells(rawCells[i][ii], styles[ii]));\n      }\n      cells.push(row);\n    }\n\n    return buildTable(headers, cells);\n  }\n\n  text = globals.converter._dispatch('tables.before', text, options, globals);\n\n  // find escaped pipe characters\n  text = text.replace(/\\\\(\\|)/g, showdown.helper.escapeCharactersCallback);\n\n  // parse multi column tables\n  text = text.replace(tableRgx, parseTable);\n\n  // parse one column tables\n  text = text.replace(singeColTblRgx, parseTable);\n\n  text = globals.converter._dispatch('tables.after', text, options, globals);\n\n  return text;\n});\n\r\nshowdown.subParser('underline', function (text, options, globals) {\n  'use strict';\n\n  if (!options.underline) {\n    return text;\n  }\n\n  text = globals.converter._dispatch('underline.before', text, options, globals);\n\n  if (options.literalMidWordUnderscores) {\n    text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n      return '<u>' + txt + '</u>';\n    });\n    text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n      return '<u>' + txt + '</u>';\n    });\n  } else {\n    text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? '<u>' + m + '</u>' : wm;\n    });\n    text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n      return (/\\S$/.test(m)) ? '<u>' + m + '</u>' : wm;\n    });\n  }\n\n  // escape remaining underscores to prevent them being parsed by italic and bold\n  text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);\n\n  text = globals.converter._dispatch('underline.after', text, options, globals);\n\n  return text;\n});\n\r\n/**\n * Swap back in all the special characters we've hidden.\n */\nshowdown.subParser('unescapeSpecialChars', function (text, options, globals) {\n  'use strict';\n  text = globals.converter._dispatch('unescapeSpecialChars.before', text, options, globals);\n\n  text = text.replace(/¨E(\\d+)E/g, function (wholeMatch, m1) {\n    var charCodeToReplace = parseInt(m1);\n    return String.fromCharCode(charCodeToReplace);\n  });\n\n  text = globals.converter._dispatch('unescapeSpecialChars.after', text, options, globals);\n  return text;\n});\n\r\nshowdown.subParser('makeMarkdown.blockquote', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n\n    for (var i = 0; i < childrenLength; ++i) {\n      var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);\n\n      if (innerTxt === '') {\n        continue;\n      }\n      txt += innerTxt;\n    }\n  }\n  // cleanup\n  txt = txt.trim();\n  txt = '> ' + txt.split('\\n').join('\\n> ');\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.codeBlock', function (node, globals) {\n  'use strict';\n\n  var lang = node.getAttribute('language'),\n      num  = node.getAttribute('precodenum');\n  return '```' + lang + '\\n' + globals.preList[num] + '\\n```';\n});\n\r\nshowdown.subParser('makeMarkdown.codeSpan', function (node) {\n  'use strict';\n\n  return '`' + node.innerHTML + '`';\n});\n\r\nshowdown.subParser('makeMarkdown.emphasis', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '*';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '*';\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {\n  'use strict';\n\n  var headerMark = new Array(headerLevel + 1).join('#'),\n      txt = '';\n\n  if (node.hasChildNodes()) {\n    txt = headerMark + ' ';\n    var children = node.childNodes,\n        childrenLength = children.length;\n\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.hr', function () {\n  'use strict';\n\n  return '---';\n});\n\r\nshowdown.subParser('makeMarkdown.image', function (node) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasAttribute('src')) {\n    txt += '![' + node.getAttribute('alt') + '](';\n    txt += '<' + node.getAttribute('src') + '>';\n    if (node.hasAttribute('width') && node.hasAttribute('height')) {\n      txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');\n    }\n\n    if (node.hasAttribute('title')) {\n      txt += ' \"' + node.getAttribute('title') + '\"';\n    }\n    txt += ')';\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.links', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes() && node.hasAttribute('href')) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n    txt = '[';\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '](';\n    txt += '<' + node.getAttribute('href') + '>';\n    if (node.hasAttribute('title')) {\n      txt += ' \"' + node.getAttribute('title') + '\"';\n    }\n    txt += ')';\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.list', function (node, globals, type) {\n  'use strict';\n\n  var txt = '';\n  if (!node.hasChildNodes()) {\n    return '';\n  }\n  var listItems       = node.childNodes,\n      listItemsLenght = listItems.length,\n      listNum = node.getAttribute('start') || 1;\n\n  for (var i = 0; i < listItemsLenght; ++i) {\n    if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {\n      continue;\n    }\n\n    // define the bullet to use in list\n    var bullet = '';\n    if (type === 'ol') {\n      bullet = listNum.toString() + '. ';\n    } else {\n      bullet = '- ';\n    }\n\n    // parse list item\n    txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);\n    ++listNum;\n  }\n\n  // add comment at the end to prevent consecutive lists to be parsed as one\n  txt += '\\n<!-- -->\\n';\n  return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.listItem', function (node, globals) {\n  'use strict';\n\n  var listItemTxt = '';\n\n  var children = node.childNodes,\n      childrenLenght = children.length;\n\n  for (var i = 0; i < childrenLenght; ++i) {\n    listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n  }\n  // if it's only one liner, we need to add a newline at the end\n  if (!/\\n$/.test(listItemTxt)) {\n    listItemTxt += '\\n';\n  } else {\n    // it's multiparagraph, so we need to indent\n    listItemTxt = listItemTxt\n      .split('\\n')\n      .join('\\n    ')\n      .replace(/^ {4}$/gm, '')\n      .replace(/\\n\\n+/g, '\\n\\n');\n  }\n\n  return listItemTxt;\n});\n\r\n\n\nshowdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {\n  'use strict';\n\n  spansOnly = spansOnly || false;\n\n  var txt = '';\n\n  // edge case of text without wrapper paragraph\n  if (node.nodeType === 3) {\n    return showdown.subParser('makeMarkdown.txt')(node, globals);\n  }\n\n  // HTML comment\n  if (node.nodeType === 8) {\n    return '<!--' + node.data + '-->\\n\\n';\n  }\n\n  // process only node elements\n  if (node.nodeType !== 1) {\n    return '';\n  }\n\n  var tagName = node.tagName.toLowerCase();\n\n  switch (tagName) {\n\n    //\n    // BLOCKS\n    //\n    case 'h1':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\\n\\n'; }\n      break;\n    case 'h2':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\\n\\n'; }\n      break;\n    case 'h3':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\\n\\n'; }\n      break;\n    case 'h4':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\\n\\n'; }\n      break;\n    case 'h5':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\\n\\n'; }\n      break;\n    case 'h6':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\\n\\n'; }\n      break;\n\n    case 'p':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'blockquote':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'hr':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'ol':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\\n\\n'; }\n      break;\n\n    case 'ul':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\\n\\n'; }\n      break;\n\n    case 'precode':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'pre':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\\n\\n'; }\n      break;\n\n    case 'table':\n      if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\\n\\n'; }\n      break;\n\n    //\n    // SPANS\n    //\n    case 'code':\n      txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);\n      break;\n\n    case 'em':\n    case 'i':\n      txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);\n      break;\n\n    case 'strong':\n    case 'b':\n      txt = showdown.subParser('makeMarkdown.strong')(node, globals);\n      break;\n\n    case 'del':\n      txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);\n      break;\n\n    case 'a':\n      txt = showdown.subParser('makeMarkdown.links')(node, globals);\n      break;\n\n    case 'img':\n      txt = showdown.subParser('makeMarkdown.image')(node, globals);\n      break;\n\n    default:\n      txt = node.outerHTML + '\\n\\n';\n  }\n\n  // common normalization\n  // TODO eventually\n\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.paragraph', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n  }\n\n  // some text normalization\n  txt = txt.trim();\n\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.pre', function (node, globals) {\n  'use strict';\n\n  var num  = node.getAttribute('prenum');\n  return '<pre>' + globals.preList[num] + '</pre>';\n});\n\r\nshowdown.subParser('makeMarkdown.strikethrough', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '~~';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '~~';\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.strong', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (node.hasChildNodes()) {\n    txt += '**';\n    var children = node.childNodes,\n        childrenLength = children.length;\n    for (var i = 0; i < childrenLength; ++i) {\n      txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n    }\n    txt += '**';\n  }\n  return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.table', function (node, globals) {\n  'use strict';\n\n  var txt = '',\n      tableArray = [[], []],\n      headings   = node.querySelectorAll('thead>tr>th'),\n      rows       = node.querySelectorAll('tbody>tr'),\n      i, ii;\n  for (i = 0; i < headings.length; ++i) {\n    var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),\n        allign = '---';\n\n    if (headings[i].hasAttribute('style')) {\n      var style = headings[i].getAttribute('style').toLowerCase().replace(/\\s/g, '');\n      switch (style) {\n        case 'text-align:left;':\n          allign = ':---';\n          break;\n        case 'text-align:right;':\n          allign = '---:';\n          break;\n        case 'text-align:center;':\n          allign = ':---:';\n          break;\n      }\n    }\n    tableArray[0][i] = headContent.trim();\n    tableArray[1][i] = allign;\n  }\n\n  for (i = 0; i < rows.length; ++i) {\n    var r = tableArray.push([]) - 1,\n        cols = rows[i].getElementsByTagName('td');\n\n    for (ii = 0; ii < headings.length; ++ii) {\n      var cellContent = ' ';\n      if (typeof cols[ii] !== 'undefined') {\n        cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);\n      }\n      tableArray[r].push(cellContent);\n    }\n  }\n\n  var cellSpacesCount = 3;\n  for (i = 0; i < tableArray.length; ++i) {\n    for (ii = 0; ii < tableArray[i].length; ++ii) {\n      var strLen = tableArray[i][ii].length;\n      if (strLen > cellSpacesCount) {\n        cellSpacesCount = strLen;\n      }\n    }\n  }\n\n  for (i = 0; i < tableArray.length; ++i) {\n    for (ii = 0; ii < tableArray[i].length; ++ii) {\n      if (i === 1) {\n        if (tableArray[i][ii].slice(-1) === ':') {\n          tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';\n        } else {\n          tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');\n        }\n      } else {\n        tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);\n      }\n    }\n    txt += '| ' + tableArray[i].join(' | ') + ' |\\n';\n  }\n\n  return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.tableCell', function (node, globals) {\n  'use strict';\n\n  var txt = '';\n  if (!node.hasChildNodes()) {\n    return '';\n  }\n  var children = node.childNodes,\n      childrenLength = children.length;\n\n  for (var i = 0; i < childrenLength; ++i) {\n    txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);\n  }\n  return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.txt', function (node) {\n  'use strict';\n\n  var txt = node.nodeValue;\n\n  // multiple spaces are collapsed\n  txt = txt.replace(/ +/g, ' ');\n\n  // replace the custom ¨NBSP; with a space\n  txt = txt.replace(/¨NBSP;/g, ' ');\n\n  // \", <, > and & should replace escaped html entities\n  txt = showdown.helper.unescapeHTMLEntities(txt);\n\n  // escape markdown magic characters\n  // emphasis, strong and strikethrough - can appear everywhere\n  // we also escape pipe (|) because of tables\n  // and escape ` because of code blocks and spans\n  txt = txt.replace(/([*_~|`])/g, '\\\\$1');\n\n  // escape > because of blockquotes\n  txt = txt.replace(/^(\\s*)>/g, '\\\\$1>');\n\n  // hash character, only troublesome at the beginning of a line because of headers\n  txt = txt.replace(/^#/gm, '\\\\#');\n\n  // horizontal rules\n  txt = txt.replace(/^(\\s*)([-=]{3,})(\\s*)$/, '$1\\\\$2$3');\n\n  // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer\n  txt = txt.replace(/^( {0,3}\\d+)\\./gm, '$1\\\\.');\n\n  // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)\n  txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\\\$2');\n\n  // images and links, ] followed by ( is problematic, so we escape it\n  txt = txt.replace(/]([\\s]*)\\(/g, '\\\\]$1\\\\(');\n\n  // reference URIs must also be escaped\n  txt = txt.replace(/^ {0,3}\\[([\\S \\t]*?)]:/gm, '\\\\[$1]:');\n\n  return txt;\n});\n\r\nvar root = this;\n\n// AMD Loader\nif (true) {\n  !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n    'use strict';\n    return showdown;\n  }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n// CommonJS/nodeJS Loader\n} else {}\n}).call(this);\r\n\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 31:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dom\"]; }());\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 437:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"createBlock\", function() { return /* reexport */ createBlock; });\n__webpack_require__.d(__webpack_exports__, \"cloneBlock\", function() { return /* reexport */ cloneBlock; });\n__webpack_require__.d(__webpack_exports__, \"getPossibleBlockTransformations\", function() { return /* reexport */ getPossibleBlockTransformations; });\n__webpack_require__.d(__webpack_exports__, \"switchToBlockType\", function() { return /* reexport */ switchToBlockType; });\n__webpack_require__.d(__webpack_exports__, \"getBlockTransforms\", function() { return /* reexport */ getBlockTransforms; });\n__webpack_require__.d(__webpack_exports__, \"findTransform\", function() { return /* reexport */ findTransform; });\n__webpack_require__.d(__webpack_exports__, \"getBlockFromExample\", function() { return /* reexport */ factory_getBlockFromExample; });\n__webpack_require__.d(__webpack_exports__, \"parse\", function() { return /* reexport */ parser; });\n__webpack_require__.d(__webpack_exports__, \"getBlockAttributes\", function() { return /* reexport */ getBlockAttributes; });\n__webpack_require__.d(__webpack_exports__, \"parseWithAttributeSchema\", function() { return /* reexport */ parseWithAttributeSchema; });\n__webpack_require__.d(__webpack_exports__, \"pasteHandler\", function() { return /* reexport */ pasteHandler; });\n__webpack_require__.d(__webpack_exports__, \"rawHandler\", function() { return /* reexport */ rawHandler; });\n__webpack_require__.d(__webpack_exports__, \"getPhrasingContentSchema\", function() { return /* reexport */ getPhrasingContentSchema; });\n__webpack_require__.d(__webpack_exports__, \"serialize\", function() { return /* reexport */ serialize; });\n__webpack_require__.d(__webpack_exports__, \"getBlockContent\", function() { return /* reexport */ getBlockContent; });\n__webpack_require__.d(__webpack_exports__, \"getBlockDefaultClassName\", function() { return /* reexport */ getBlockDefaultClassName; });\n__webpack_require__.d(__webpack_exports__, \"getBlockMenuDefaultClassName\", function() { return /* reexport */ getBlockMenuDefaultClassName; });\n__webpack_require__.d(__webpack_exports__, \"getSaveElement\", function() { return /* reexport */ getSaveElement; });\n__webpack_require__.d(__webpack_exports__, \"getSaveContent\", function() { return /* reexport */ getSaveContent; });\n__webpack_require__.d(__webpack_exports__, \"isValidBlockContent\", function() { return /* reexport */ isValidBlockContent; });\n__webpack_require__.d(__webpack_exports__, \"getCategories\", function() { return /* reexport */ categories_getCategories; });\n__webpack_require__.d(__webpack_exports__, \"setCategories\", function() { return /* reexport */ categories_setCategories; });\n__webpack_require__.d(__webpack_exports__, \"updateCategory\", function() { return /* reexport */ categories_updateCategory; });\n__webpack_require__.d(__webpack_exports__, \"registerBlockType\", function() { return /* reexport */ registerBlockType; });\n__webpack_require__.d(__webpack_exports__, \"registerBlockCollection\", function() { return /* reexport */ registerBlockCollection; });\n__webpack_require__.d(__webpack_exports__, \"unregisterBlockType\", function() { return /* reexport */ unregisterBlockType; });\n__webpack_require__.d(__webpack_exports__, \"setFreeformContentHandlerName\", function() { return /* reexport */ setFreeformContentHandlerName; });\n__webpack_require__.d(__webpack_exports__, \"getFreeformContentHandlerName\", function() { return /* reexport */ getFreeformContentHandlerName; });\n__webpack_require__.d(__webpack_exports__, \"setUnregisteredTypeHandlerName\", function() { return /* reexport */ setUnregisteredTypeHandlerName; });\n__webpack_require__.d(__webpack_exports__, \"getUnregisteredTypeHandlerName\", function() { return /* reexport */ getUnregisteredTypeHandlerName; });\n__webpack_require__.d(__webpack_exports__, \"setDefaultBlockName\", function() { return /* reexport */ registration_setDefaultBlockName; });\n__webpack_require__.d(__webpack_exports__, \"getDefaultBlockName\", function() { return /* reexport */ registration_getDefaultBlockName; });\n__webpack_require__.d(__webpack_exports__, \"setGroupingBlockName\", function() { return /* reexport */ registration_setGroupingBlockName; });\n__webpack_require__.d(__webpack_exports__, \"getGroupingBlockName\", function() { return /* reexport */ registration_getGroupingBlockName; });\n__webpack_require__.d(__webpack_exports__, \"getBlockType\", function() { return /* reexport */ registration_getBlockType; });\n__webpack_require__.d(__webpack_exports__, \"getBlockTypes\", function() { return /* reexport */ registration_getBlockTypes; });\n__webpack_require__.d(__webpack_exports__, \"getBlockSupport\", function() { return /* reexport */ registration_getBlockSupport; });\n__webpack_require__.d(__webpack_exports__, \"hasBlockSupport\", function() { return /* reexport */ registration_hasBlockSupport; });\n__webpack_require__.d(__webpack_exports__, \"isReusableBlock\", function() { return /* reexport */ isReusableBlock; });\n__webpack_require__.d(__webpack_exports__, \"getChildBlockNames\", function() { return /* reexport */ registration_getChildBlockNames; });\n__webpack_require__.d(__webpack_exports__, \"hasChildBlocks\", function() { return /* reexport */ registration_hasChildBlocks; });\n__webpack_require__.d(__webpack_exports__, \"hasChildBlocksWithInserterSupport\", function() { return /* reexport */ registration_hasChildBlocksWithInserterSupport; });\n__webpack_require__.d(__webpack_exports__, \"unstable__bootstrapServerSideBlockDefinitions\", function() { return /* reexport */ unstable__bootstrapServerSideBlockDefinitions; });\n__webpack_require__.d(__webpack_exports__, \"registerBlockStyle\", function() { return /* reexport */ registration_registerBlockStyle; });\n__webpack_require__.d(__webpack_exports__, \"unregisterBlockStyle\", function() { return /* reexport */ registration_unregisterBlockStyle; });\n__webpack_require__.d(__webpack_exports__, \"registerBlockVariation\", function() { return /* reexport */ registration_registerBlockVariation; });\n__webpack_require__.d(__webpack_exports__, \"unregisterBlockVariation\", function() { return /* reexport */ registration_unregisterBlockVariation; });\n__webpack_require__.d(__webpack_exports__, \"isUnmodifiedDefaultBlock\", function() { return /* reexport */ isUnmodifiedDefaultBlock; });\n__webpack_require__.d(__webpack_exports__, \"normalizeIconObject\", function() { return /* reexport */ normalizeIconObject; });\n__webpack_require__.d(__webpack_exports__, \"isValidIcon\", function() { return /* reexport */ isValidIcon; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGetBlockLabel\", function() { return /* reexport */ getBlockLabel; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGetAccessibleBlockLabel\", function() { return /* reexport */ getAccessibleBlockLabel; });\n__webpack_require__.d(__webpack_exports__, \"doBlocksMatchTemplate\", function() { return /* reexport */ doBlocksMatchTemplate; });\n__webpack_require__.d(__webpack_exports__, \"synchronizeBlocksWithTemplate\", function() { return /* reexport */ synchronizeBlocksWithTemplate; });\n__webpack_require__.d(__webpack_exports__, \"children\", function() { return /* reexport */ api_children; });\n__webpack_require__.d(__webpack_exports__, \"node\", function() { return /* reexport */ api_node; });\n__webpack_require__.d(__webpack_exports__, \"withBlockContentContext\", function() { return /* reexport */ withBlockContentContext; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/blocks/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getBlockTypes\", function() { return getBlockTypes; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockType\", function() { return getBlockType; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockStyles\", function() { return getBlockStyles; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockVariations\", function() { return getBlockVariations; });\n__webpack_require__.d(selectors_namespaceObject, \"getDefaultBlockVariation\", function() { return getDefaultBlockVariation; });\n__webpack_require__.d(selectors_namespaceObject, \"getCategories\", function() { return getCategories; });\n__webpack_require__.d(selectors_namespaceObject, \"getCollections\", function() { return getCollections; });\n__webpack_require__.d(selectors_namespaceObject, \"getDefaultBlockName\", function() { return getDefaultBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"getFreeformFallbackBlockName\", function() { return getFreeformFallbackBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"getUnregisteredFallbackBlockName\", function() { return getUnregisteredFallbackBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"getGroupingBlockName\", function() { return getGroupingBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"getChildBlockNames\", function() { return selectors_getChildBlockNames; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockSupport\", function() { return selectors_getBlockSupport; });\n__webpack_require__.d(selectors_namespaceObject, \"hasBlockSupport\", function() { return hasBlockSupport; });\n__webpack_require__.d(selectors_namespaceObject, \"isMatchingSearchTerm\", function() { return isMatchingSearchTerm; });\n__webpack_require__.d(selectors_namespaceObject, \"hasChildBlocks\", function() { return selectors_hasChildBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"hasChildBlocksWithInserterSupport\", function() { return selectors_hasChildBlocksWithInserterSupport; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/blocks/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"addBlockTypes\", function() { return addBlockTypes; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlockTypes\", function() { return removeBlockTypes; });\n__webpack_require__.d(actions_namespaceObject, \"addBlockStyles\", function() { return addBlockStyles; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlockStyles\", function() { return removeBlockStyles; });\n__webpack_require__.d(actions_namespaceObject, \"addBlockVariations\", function() { return addBlockVariations; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlockVariations\", function() { return removeBlockVariations; });\n__webpack_require__.d(actions_namespaceObject, \"setDefaultBlockName\", function() { return setDefaultBlockName; });\n__webpack_require__.d(actions_namespaceObject, \"setFreeformFallbackBlockName\", function() { return setFreeformFallbackBlockName; });\n__webpack_require__.d(actions_namespaceObject, \"setUnregisteredFallbackBlockName\", function() { return setUnregisteredFallbackBlockName; });\n__webpack_require__.d(actions_namespaceObject, \"setGroupingBlockName\", function() { return setGroupingBlockName; });\n__webpack_require__.d(actions_namespaceObject, \"setCategories\", function() { return setCategories; });\n__webpack_require__.d(actions_namespaceObject, \"updateCategory\", function() { return updateCategory; });\n__webpack_require__.d(actions_namespaceObject, \"addBlockCollection\", function() { return addBlockCollection; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlockCollection\", function() { return removeBlockCollection; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/store/reducer.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * @typedef {Object} WPBlockCategory\n *\n * @property {string} slug  Unique category slug.\n * @property {string} title Category label, for display in user interface.\n */\n\n/**\n * Default set of categories.\n *\n * @type {WPBlockCategory[]}\n */\n\nvar DEFAULT_CATEGORIES = [{\n  slug: 'text',\n  title: Object(external_this_wp_i18n_[\"__\"])('Text')\n}, {\n  slug: 'media',\n  title: Object(external_this_wp_i18n_[\"__\"])('Media')\n}, {\n  slug: 'design',\n  title: Object(external_this_wp_i18n_[\"__\"])('Design')\n}, {\n  slug: 'widgets',\n  title: Object(external_this_wp_i18n_[\"__\"])('Widgets')\n}, {\n  slug: 'embed',\n  title: Object(external_this_wp_i18n_[\"__\"])('Embeds')\n}, {\n  slug: 'reusable',\n  title: Object(external_this_wp_i18n_[\"__\"])('Reusable blocks')\n}];\n/**\n * Reducer managing the block types\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_blockTypes() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_BLOCK_TYPES':\n      return _objectSpread({}, state, {}, Object(external_this_lodash_[\"keyBy\"])(Object(external_this_lodash_[\"map\"])(action.blockTypes, function (blockType) {\n        return Object(external_this_lodash_[\"omit\"])(blockType, 'styles ');\n      }), 'name'));\n\n    case 'REMOVE_BLOCK_TYPES':\n      return Object(external_this_lodash_[\"omit\"])(state, action.names);\n  }\n\n  return state;\n}\n/**\n * Reducer managing the block style variations.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction blockStyles() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_BLOCK_TYPES':\n      return _objectSpread({}, state, {}, Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"keyBy\"])(action.blockTypes, 'name'), function (blockType) {\n        return Object(external_this_lodash_[\"uniqBy\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(blockType, ['styles'], [])), Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(state, [blockType.name], []))), function (style) {\n          return style.name;\n        });\n      }));\n\n    case 'ADD_BLOCK_STYLES':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockName, Object(external_this_lodash_[\"uniqBy\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(state, [action.blockName], [])), Object(toConsumableArray[\"a\" /* default */])(action.styles)), function (style) {\n        return style.name;\n      })));\n\n    case 'REMOVE_BLOCK_STYLES':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockName, Object(external_this_lodash_[\"filter\"])(Object(external_this_lodash_[\"get\"])(state, [action.blockName], []), function (style) {\n        return action.styleNames.indexOf(style.name) === -1;\n      })));\n  }\n\n  return state;\n}\n/**\n * Reducer managing the block variations.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction blockVariations() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_BLOCK_TYPES':\n      return _objectSpread({}, state, {}, Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"keyBy\"])(action.blockTypes, 'name'), function (blockType) {\n        return Object(external_this_lodash_[\"uniqBy\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(blockType, ['variations'], [])), Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(state, [blockType.name], []))), function (variation) {\n          return variation.name;\n        });\n      }));\n\n    case 'ADD_BLOCK_VARIATIONS':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockName, Object(external_this_lodash_[\"uniqBy\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(state, [action.blockName], [])), Object(toConsumableArray[\"a\" /* default */])(action.variations)), function (variation) {\n        return variation.name;\n      })));\n\n    case 'REMOVE_BLOCK_VARIATIONS':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockName, Object(external_this_lodash_[\"filter\"])(Object(external_this_lodash_[\"get\"])(state, [action.blockName], []), function (variation) {\n        return action.variationNames.indexOf(variation.name) === -1;\n      })));\n  }\n\n  return state;\n}\n/**\n * Higher-order Reducer creating a reducer keeping track of given block name.\n *\n * @param {string} setActionType  Action type.\n *\n * @return {Function} Reducer.\n */\n\nfunction createBlockNameSetterReducer(setActionType) {\n  return function () {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'REMOVE_BLOCK_TYPES':\n        if (action.names.indexOf(state) !== -1) {\n          return null;\n        }\n\n        return state;\n\n      case setActionType:\n        return action.name || null;\n    }\n\n    return state;\n  };\n}\nvar reducer_defaultBlockName = createBlockNameSetterReducer('SET_DEFAULT_BLOCK_NAME');\nvar freeformFallbackBlockName = createBlockNameSetterReducer('SET_FREEFORM_FALLBACK_BLOCK_NAME');\nvar unregisteredFallbackBlockName = createBlockNameSetterReducer('SET_UNREGISTERED_FALLBACK_BLOCK_NAME');\nvar groupingBlockName = createBlockNameSetterReducer('SET_GROUPING_BLOCK_NAME');\n/**\n * Reducer managing the categories\n *\n * @param {WPBlockCategory[]} state  Current state.\n * @param {Object}            action Dispatched action.\n *\n * @return {WPBlockCategory[]} Updated state.\n */\n\nfunction reducer_categories() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_CATEGORIES;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_CATEGORIES':\n      return action.categories || [];\n\n    case 'UPDATE_CATEGORY':\n      {\n        if (!action.category || Object(external_this_lodash_[\"isEmpty\"])(action.category)) {\n          return state;\n        }\n\n        var categoryToChange = Object(external_this_lodash_[\"find\"])(state, ['slug', action.slug]);\n\n        if (categoryToChange) {\n          return Object(external_this_lodash_[\"map\"])(state, function (category) {\n            if (category.slug === action.slug) {\n              return _objectSpread({}, category, {}, action.category);\n            }\n\n            return category;\n          });\n        }\n      }\n  }\n\n  return state;\n}\nfunction collections() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_BLOCK_COLLECTION':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.namespace, {\n        title: action.title,\n        icon: action.icon\n      }));\n\n    case 'REMOVE_BLOCK_COLLECTION':\n      return Object(external_this_lodash_[\"omit\"])(state, action.namespace);\n  }\n\n  return state;\n}\n/* harmony default export */ var reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  blockTypes: reducer_blockTypes,\n  blockStyles: blockStyles,\n  blockVariations: blockVariations,\n  defaultBlockName: reducer_defaultBlockName,\n  freeformFallbackBlockName: freeformFallbackBlockName,\n  unregisteredFallbackBlockName: unregisteredFallbackBlockName,\n  groupingBlockName: groupingBlockName,\n  categories: reducer_categories,\n  collections: collections\n}));\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/store/selectors.js\n\n\n\nfunction selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/** @typedef {import('../api/registration').WPBlockVariation} WPBlockVariation */\n\n/** @typedef {import('../api/registration').WPBlockVariationScope} WPBlockVariationScope */\n\n/** @typedef {import('./reducer').WPBlockCategory} WPBlockCategory */\n\n/**\n * Given a block name or block type object, returns the corresponding\n * normalized block type object.\n *\n * @param {Object}          state      Blocks state.\n * @param {(string|Object)} nameOrType Block name or type object\n *\n * @return {Object} Block type object.\n */\n\nvar getNormalizedBlockType = function getNormalizedBlockType(state, nameOrType) {\n  return 'string' === typeof nameOrType ? getBlockType(state, nameOrType) : nameOrType;\n};\n/**\n * Returns all the available block types.\n *\n * @param {Object} state Data state.\n *\n * @return {Array} Block Types.\n */\n\n\nvar getBlockTypes = Object(rememo[\"a\" /* default */])(function (state) {\n  return Object.values(state.blockTypes).map(function (blockType) {\n    return selectors_objectSpread({}, blockType, {\n      variations: getBlockVariations(state, blockType.name)\n    });\n  });\n}, function (state) {\n  return [state.blockTypes, state.blockVariations];\n});\n/**\n * Returns a block type by name.\n *\n * @param {Object} state Data state.\n * @param {string} name Block type name.\n *\n * @return {Object?} Block Type.\n */\n\nfunction getBlockType(state, name) {\n  return state.blockTypes[name];\n}\n/**\n * Returns block styles by block name.\n *\n * @param {Object} state Data state.\n * @param {string} name  Block type name.\n *\n * @return {Array?} Block Styles.\n */\n\nfunction getBlockStyles(state, name) {\n  return state.blockStyles[name];\n}\n/**\n * Returns block variations by block name.\n *\n * @param {Object}                state     Data state.\n * @param {string}                blockName Block type name.\n * @param {WPBlockVariationScope} [scope]   Block variation scope name.\n *\n * @return {(WPBlockVariation[]|void)} Block variations.\n */\n\nfunction getBlockVariations(state, blockName, scope) {\n  var variations = state.blockVariations[blockName];\n\n  if (!variations || !scope) {\n    return variations;\n  }\n\n  return variations.filter(function (variation) {\n    return !variation.scope || variation.scope.includes(scope);\n  });\n}\n/**\n * Returns the default block variation for the given block type.\n * When there are multiple variations annotated as the default one,\n * the last added item is picked. This simplifies registering overrides.\n * When there is no default variation set, it returns the first item.\n *\n * @param {Object}                state     Data state.\n * @param {string}                blockName Block type name.\n * @param {WPBlockVariationScope} [scope]   Block variation scope name.\n *\n * @return {?WPBlockVariation} The default block variation.\n */\n\nfunction getDefaultBlockVariation(state, blockName, scope) {\n  var variations = getBlockVariations(state, blockName, scope);\n  return Object(external_this_lodash_[\"findLast\"])(variations, 'isDefault') || Object(external_this_lodash_[\"first\"])(variations);\n}\n/**\n * Returns all the available categories.\n *\n * @param {Object} state Data state.\n *\n * @return {WPBlockCategory[]} Categories list.\n */\n\nfunction getCategories(state) {\n  return state.categories;\n}\n/**\n * Returns all the available collections.\n *\n * @param {Object} state Data state.\n *\n * @return {Object} Collections list.\n */\n\nfunction getCollections(state) {\n  return state.collections;\n}\n/**\n * Returns the name of the default block name.\n *\n * @param {Object} state Data state.\n *\n * @return {string?} Default block name.\n */\n\nfunction getDefaultBlockName(state) {\n  return state.defaultBlockName;\n}\n/**\n * Returns the name of the block for handling non-block content.\n *\n * @param {Object} state Data state.\n *\n * @return {string?} Name of the block for handling non-block content.\n */\n\nfunction getFreeformFallbackBlockName(state) {\n  return state.freeformFallbackBlockName;\n}\n/**\n * Returns the name of the block for handling unregistered blocks.\n *\n * @param {Object} state Data state.\n *\n * @return {string?} Name of the block for handling unregistered blocks.\n */\n\nfunction getUnregisteredFallbackBlockName(state) {\n  return state.unregisteredFallbackBlockName;\n}\n/**\n * Returns the name of the block for handling unregistered blocks.\n *\n * @param {Object} state Data state.\n *\n * @return {string?} Name of the block for handling unregistered blocks.\n */\n\nfunction getGroupingBlockName(state) {\n  return state.groupingBlockName;\n}\n/**\n * Returns an array with the child blocks of a given block.\n *\n * @param {Object} state     Data state.\n * @param {string} blockName Block type name.\n *\n * @return {Array} Array of child block names.\n */\n\nvar selectors_getChildBlockNames = Object(rememo[\"a\" /* default */])(function (state, blockName) {\n  return Object(external_this_lodash_[\"map\"])(Object(external_this_lodash_[\"filter\"])(state.blockTypes, function (blockType) {\n    return Object(external_this_lodash_[\"includes\"])(blockType.parent, blockName);\n  }), function (_ref) {\n    var name = _ref.name;\n    return name;\n  });\n}, function (state) {\n  return [state.blockTypes];\n});\n/**\n * Returns the block support value for a feature, if defined.\n *\n * @param  {Object}          state           Data state.\n * @param  {(string|Object)} nameOrType      Block name or type object\n * @param  {string}          feature         Feature to retrieve\n * @param  {*}               defaultSupports Default value to return if not\n *                                           explicitly defined\n *\n * @return {?*} Block support value\n */\n\nvar selectors_getBlockSupport = function getBlockSupport(state, nameOrType, feature, defaultSupports) {\n  var blockType = getNormalizedBlockType(state, nameOrType);\n  return Object(external_this_lodash_[\"get\"])(blockType, ['supports'].concat(Object(toConsumableArray[\"a\" /* default */])(feature.split('.'))), defaultSupports);\n};\n/**\n * Returns true if the block defines support for a feature, or false otherwise.\n *\n * @param  {Object}         state           Data state.\n * @param {(string|Object)} nameOrType      Block name or type object.\n * @param {string}          feature         Feature to test.\n * @param {boolean}         defaultSupports Whether feature is supported by\n *                                          default if not explicitly defined.\n *\n * @return {boolean} Whether block supports feature.\n */\n\nfunction hasBlockSupport(state, nameOrType, feature, defaultSupports) {\n  return !!selectors_getBlockSupport(state, nameOrType, feature, defaultSupports);\n}\n/**\n * Returns true if the block type by the given name or object value matches a\n * search term, or false otherwise.\n *\n * @param {Object}          state      Blocks state.\n * @param {(string|Object)} nameOrType Block name or type object.\n * @param {string}          searchTerm Search term by which to filter.\n *\n * @return {Object[]} Whether block type matches search term.\n */\n\nfunction isMatchingSearchTerm(state, nameOrType, searchTerm) {\n  var blockType = getNormalizedBlockType(state, nameOrType);\n  var getNormalizedSearchTerm = Object(external_this_lodash_[\"flow\"])([// Disregard diacritics.\n  //  Input: \"média\"\n  external_this_lodash_[\"deburr\"], // Lowercase.\n  //  Input: \"MEDIA\"\n  function (term) {\n    return term.toLowerCase();\n  }, // Strip leading and trailing whitespace.\n  //  Input: \" media \"\n  function (term) {\n    return term.trim();\n  }]);\n  var normalizedSearchTerm = getNormalizedSearchTerm(searchTerm);\n  var isSearchMatch = Object(external_this_lodash_[\"flow\"])([getNormalizedSearchTerm, function (normalizedCandidate) {\n    return Object(external_this_lodash_[\"includes\"])(normalizedCandidate, normalizedSearchTerm);\n  }]);\n  return isSearchMatch(blockType.title) || Object(external_this_lodash_[\"some\"])(blockType.keywords, isSearchMatch) || isSearchMatch(blockType.category);\n}\n/**\n * Returns a boolean indicating if a block has child blocks or not.\n *\n * @param {Object} state     Data state.\n * @param {string} blockName Block type name.\n *\n * @return {boolean} True if a block contains child blocks and false otherwise.\n */\n\nvar selectors_hasChildBlocks = function hasChildBlocks(state, blockName) {\n  return selectors_getChildBlockNames(state, blockName).length > 0;\n};\n/**\n * Returns a boolean indicating if a block has at least one child block with inserter support.\n *\n * @param {Object} state     Data state.\n * @param {string} blockName Block type name.\n *\n * @return {boolean} True if a block contains at least one child blocks with inserter support\n *                   and false otherwise.\n */\n\nvar selectors_hasChildBlocksWithInserterSupport = function hasChildBlocksWithInserterSupport(state, blockName) {\n  return Object(external_this_lodash_[\"some\"])(selectors_getChildBlockNames(state, blockName), function (childBlockName) {\n    return hasBlockSupport(state, childBlockName, 'inserter', true);\n  });\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/store/actions.js\n/**\n * External dependencies\n */\n\n/** @typedef {import('../api/registration').WPBlockVariation} WPBlockVariation */\n\n/**\n * Returns an action object used in signalling that block types have been added.\n *\n * @param {Array|Object} blockTypes Block types received.\n *\n * @return {Object} Action object.\n */\n\nfunction addBlockTypes(blockTypes) {\n  return {\n    type: 'ADD_BLOCK_TYPES',\n    blockTypes: Object(external_this_lodash_[\"castArray\"])(blockTypes)\n  };\n}\n/**\n * Returns an action object used to remove a registered block type.\n *\n * @param {string|Array} names Block name.\n *\n * @return {Object} Action object.\n */\n\nfunction removeBlockTypes(names) {\n  return {\n    type: 'REMOVE_BLOCK_TYPES',\n    names: Object(external_this_lodash_[\"castArray\"])(names)\n  };\n}\n/**\n * Returns an action object used in signalling that new block styles have been added.\n *\n * @param {string}       blockName  Block name.\n * @param {Array|Object} styles     Block styles.\n *\n * @return {Object} Action object.\n */\n\nfunction addBlockStyles(blockName, styles) {\n  return {\n    type: 'ADD_BLOCK_STYLES',\n    styles: Object(external_this_lodash_[\"castArray\"])(styles),\n    blockName: blockName\n  };\n}\n/**\n * Returns an action object used in signalling that block styles have been removed.\n *\n * @param {string}       blockName  Block name.\n * @param {Array|string} styleNames Block style names.\n *\n * @return {Object} Action object.\n */\n\nfunction removeBlockStyles(blockName, styleNames) {\n  return {\n    type: 'REMOVE_BLOCK_STYLES',\n    styleNames: Object(external_this_lodash_[\"castArray\"])(styleNames),\n    blockName: blockName\n  };\n}\n/**\n * Returns an action object used in signalling that new block variations have been added.\n *\n * @param {string}                              blockName  Block name.\n * @param {WPBlockVariation|WPBlockVariation[]} variations Block variations.\n *\n * @return {Object} Action object.\n */\n\nfunction addBlockVariations(blockName, variations) {\n  return {\n    type: 'ADD_BLOCK_VARIATIONS',\n    variations: Object(external_this_lodash_[\"castArray\"])(variations),\n    blockName: blockName\n  };\n}\n/**\n * Returns an action object used in signalling that block variations have been removed.\n *\n * @param {string}          blockName      Block name.\n * @param {string|string[]} variationNames Block variation names.\n *\n * @return {Object} Action object.\n */\n\nfunction removeBlockVariations(blockName, variationNames) {\n  return {\n    type: 'REMOVE_BLOCK_VARIATIONS',\n    variationNames: Object(external_this_lodash_[\"castArray\"])(variationNames),\n    blockName: blockName\n  };\n}\n/**\n * Returns an action object used to set the default block name.\n *\n * @param {string} name Block name.\n *\n * @return {Object} Action object.\n */\n\nfunction setDefaultBlockName(name) {\n  return {\n    type: 'SET_DEFAULT_BLOCK_NAME',\n    name: name\n  };\n}\n/**\n * Returns an action object used to set the name of the block used as a fallback\n * for non-block content.\n *\n * @param {string} name Block name.\n *\n * @return {Object} Action object.\n */\n\nfunction setFreeformFallbackBlockName(name) {\n  return {\n    type: 'SET_FREEFORM_FALLBACK_BLOCK_NAME',\n    name: name\n  };\n}\n/**\n * Returns an action object used to set the name of the block used as a fallback\n * for unregistered blocks.\n *\n * @param {string} name Block name.\n *\n * @return {Object} Action object.\n */\n\nfunction setUnregisteredFallbackBlockName(name) {\n  return {\n    type: 'SET_UNREGISTERED_FALLBACK_BLOCK_NAME',\n    name: name\n  };\n}\n/**\n * Returns an action object used to set the name of the block used\n * when grouping other blocks\n * eg: in \"Group/Ungroup\" interactions\n *\n * @param {string} name Block name.\n *\n * @return {Object} Action object.\n */\n\nfunction setGroupingBlockName(name) {\n  return {\n    type: 'SET_GROUPING_BLOCK_NAME',\n    name: name\n  };\n}\n/**\n * Returns an action object used to set block categories.\n *\n * @param {Object[]} categories Block categories.\n *\n * @return {Object} Action object.\n */\n\nfunction setCategories(categories) {\n  return {\n    type: 'SET_CATEGORIES',\n    categories: categories\n  };\n}\n/**\n * Returns an action object used to update a category.\n *\n * @param {string} slug     Block category slug.\n * @param {Object} category Object containing the category properties that should be updated.\n *\n * @return {Object} Action object.\n */\n\nfunction updateCategory(slug, category) {\n  return {\n    type: 'UPDATE_CATEGORY',\n    slug: slug,\n    category: category\n  };\n}\n/**\n * Returns an action object used to add block collections\n *\n * @param {string} namespace       The namespace of the blocks to put in the collection\n * @param {string} title           The title to display in the block inserter\n * @param {Object} icon (optional) The icon to display in the block inserter\n *\n * @return {Object} Action object.\n */\n\nfunction addBlockCollection(namespace, title, icon) {\n  return {\n    type: 'ADD_BLOCK_COLLECTION',\n    namespace: namespace,\n    title: title,\n    icon: icon\n  };\n}\n/**\n * Returns an action object used to remove block collections\n *\n * @param {string} namespace       The namespace of the blocks to put in the collection\n *\n * @return {Object} Action object.\n */\n\nfunction removeBlockCollection(namespace) {\n  return {\n    type: 'REMOVE_BLOCK_COLLECTION',\n    namespace: namespace\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nObject(external_this_wp_data_[\"registerStore\"])('core/blocks', {\n  reducer: reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/node_modules/uuid/dist/esm-browser/rng.js\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n  if (!getRandomValues) {\n    throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n  }\n\n  return getRandomValues(rnds8);\n}\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/node_modules/uuid/dist/esm-browser/bytesToUuid.js\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var bytesToUuid_i = 0; bytesToUuid_i < 256; ++bytesToUuid_i) {\n  byteToHex[bytesToUuid_i] = (bytesToUuid_i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n  return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\n/* harmony default export */ var esm_browser_bytesToUuid = (bytesToUuid);\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/node_modules/uuid/dist/esm-browser/v4.js\n\n\n\nfunction v4(options, buf, offset) {\n  var i = buf && offset || 0;\n\n  if (typeof options == 'string') {\n    buf = options === 'binary' ? new Array(16) : null;\n    options = null;\n  }\n\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    for (var ii = 0; ii < 16; ++ii) {\n      buf[i + ii] = rnds[ii];\n    }\n  }\n\n  return buf || esm_browser_bytesToUuid(rnds);\n}\n\n/* harmony default export */ var esm_browser_v4 = (v4);\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js\nvar block_default = __webpack_require__(196);\n\n// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js\nvar tinycolor = __webpack_require__(56);\nvar tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dom\"]}\nvar external_this_wp_dom_ = __webpack_require__(31);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/utils.js\n\n\nfunction utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Array of icon colors containing a color to be used if the icon color\n * was not explicitly set but the icon background color was.\n *\n * @type {Object}\n */\n\nvar ICON_COLORS = ['#191e23', '#f8f9f9'];\n/**\n * Determines whether the block is a default block\n * and its attributes are equal to the default attributes\n * which means the block is unmodified.\n *\n * @param  {WPBlock} block Block Object\n *\n * @return {boolean}       Whether the block is an unmodified default block\n */\n\nfunction isUnmodifiedDefaultBlock(block) {\n  var defaultBlockName = registration_getDefaultBlockName();\n\n  if (block.name !== defaultBlockName) {\n    return false;\n  } // Cache a created default block if no cache exists or the default block\n  // name changed.\n\n\n  if (!isUnmodifiedDefaultBlock.block || isUnmodifiedDefaultBlock.block.name !== defaultBlockName) {\n    isUnmodifiedDefaultBlock.block = createBlock(defaultBlockName);\n  }\n\n  var newDefaultBlock = isUnmodifiedDefaultBlock.block;\n  var blockType = registration_getBlockType(defaultBlockName);\n  return Object(external_this_lodash_[\"every\"])(blockType.attributes, function (value, key) {\n    return newDefaultBlock.attributes[key] === block.attributes[key];\n  });\n}\n/**\n * Function that checks if the parameter is a valid icon.\n *\n * @param {*} icon  Parameter to be checked.\n *\n * @return {boolean} True if the parameter is a valid icon and false otherwise.\n */\n\nfunction isValidIcon(icon) {\n  return !!icon && (Object(external_this_lodash_[\"isString\"])(icon) || Object(external_this_wp_element_[\"isValidElement\"])(icon) || Object(external_this_lodash_[\"isFunction\"])(icon) || icon instanceof external_this_wp_element_[\"Component\"]);\n}\n/**\n * Function that receives an icon as set by the blocks during the registration\n * and returns a new icon object that is normalized so we can rely on just on possible icon structure\n * in the codebase.\n *\n * @param {WPBlockTypeIconRender} icon Render behavior of a block type icon;\n *                                     one of a Dashicon slug, an element, or a\n *                                     component.\n *\n * @return {WPBlockTypeIconDescriptor} Object describing the icon.\n */\n\nfunction normalizeIconObject(icon) {\n  if (isValidIcon(icon)) {\n    return {\n      src: icon\n    };\n  }\n\n  if (Object(external_this_lodash_[\"has\"])(icon, ['background'])) {\n    var tinyBgColor = tinycolor_default()(icon.background);\n    return utils_objectSpread({}, icon, {\n      foreground: icon.foreground ? icon.foreground : Object(tinycolor[\"mostReadable\"])(tinyBgColor, ICON_COLORS, {\n        includeFallbackColors: true,\n        level: 'AA',\n        size: 'large'\n      }).toHexString(),\n      shadowColor: tinyBgColor.setAlpha(0.3).toRgbString()\n    });\n  }\n\n  return icon;\n}\n/**\n * Normalizes block type passed as param. When string is passed then\n * it converts it to the matching block type object.\n * It passes the original object otherwise.\n *\n * @param {string|Object} blockTypeOrName  Block type or name.\n *\n * @return {?Object} Block type.\n */\n\nfunction normalizeBlockType(blockTypeOrName) {\n  if (Object(external_this_lodash_[\"isString\"])(blockTypeOrName)) {\n    return registration_getBlockType(blockTypeOrName);\n  }\n\n  return blockTypeOrName;\n}\n/**\n * Get the label for the block, usually this is either the block title,\n * or the value of the block's `label` function when that's specified.\n *\n * @param {Object} blockType  The block type.\n * @param {Object} attributes The values of the block's attributes.\n * @param {Object} context    The intended use for the label.\n *\n * @return {string} The block label.\n */\n\nfunction getBlockLabel(blockType, attributes) {\n  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'visual';\n  var getLabel = blockType.__experimentalLabel,\n      title = blockType.title;\n  var label = getLabel && getLabel(attributes, {\n    context: context\n  });\n\n  if (!label) {\n    return title;\n  } // Strip any HTML (i.e. RichText formatting) before returning.\n\n\n  return Object(external_this_wp_dom_[\"__unstableStripHTML\"])(label);\n}\n/**\n * Get a label for the block for use by screenreaders, this is more descriptive\n * than the visual label and includes the block title and the value of the\n * `getLabel` function if it's specified.\n *\n * @param {Object}  blockType              The block type.\n * @param {Object}  attributes             The values of the block's attributes.\n * @param {?number} position               The position of the block in the block list.\n * @param {string}  [direction='vertical'] The direction of the block layout.\n *\n * @return {string} The block label.\n */\n\nfunction getAccessibleBlockLabel(blockType, attributes, position) {\n  var direction = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'vertical';\n  // `title` is already localized, `label` is a user-supplied value.\n  var title = blockType.title;\n  var label = getBlockLabel(blockType, attributes, 'accessibility');\n  var hasPosition = position !== undefined; // getBlockLabel returns the block title as a fallback when there's no label,\n  // if it did return the title, this function needs to avoid adding the\n  // title twice within the accessible label. Use this `hasLabel` boolean to\n  // handle that.\n\n  var hasLabel = label && label !== title;\n\n  if (hasPosition && direction === 'vertical') {\n    if (hasLabel) {\n      return Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: accessibility text. 1: The block title. 2: The block row number. 3: The block label.. */\n      Object(external_this_wp_i18n_[\"__\"])('%1$s Block. Row %2$d. %3$s'), title, position, label);\n    }\n\n    return Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: accessibility text. 1: The block title. 2: The block row number. */\n    Object(external_this_wp_i18n_[\"__\"])('%1$s Block. Row %2$d'), title, position);\n  } else if (hasPosition && direction === 'horizontal') {\n    if (hasLabel) {\n      return Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: accessibility text. 1: The block title. 2: The block column number. 3: The block label.. */\n      Object(external_this_wp_i18n_[\"__\"])('%1$s Block. Column %2$d. %3$s'), title, position, label);\n    }\n\n    return Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: accessibility text. 1: The block title. 2: The block column number. */\n    Object(external_this_wp_i18n_[\"__\"])('%1$s Block. Column %2$d'), title, position);\n  }\n\n  if (hasLabel) {\n    return Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: accessibility text. %1: The block title. %2: The block label. */\n    Object(external_this_wp_i18n_[\"__\"])('%1$s Block. %2$s'), title, label);\n  }\n\n  return Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: accessibility text. %s: The block title. */\n  Object(external_this_wp_i18n_[\"__\"])('%s Block'), title);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/constants.js\n/**\n * Array of valid keys in a block type settings deprecation object.\n *\n * @type {string[]}\n */\nvar DEPRECATED_ENTRY_KEYS = ['attributes', 'supports', 'save', 'migrate', 'isEligible'];\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/registration.js\n\n\nfunction registration_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction registration_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { registration_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { registration_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint no-console: [ 'error', { allow: [ 'error', 'warn' ] } ] */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * An icon type definition. One of a Dashicon slug, an element,\n * or a component.\n *\n * @typedef {(string|WPElement|WPComponent)} WPIcon\n *\n * @see https://developer.wordpress.org/resource/dashicons/\n */\n\n/**\n * Render behavior of a block type icon; one of a Dashicon slug, an element,\n * or a component.\n *\n * @typedef {WPIcon} WPBlockTypeIconRender\n */\n\n/**\n * An object describing a normalized block type icon.\n *\n * @typedef {Object} WPBlockTypeIconDescriptor\n *\n * @property {WPBlockTypeIconRender} src         Render behavior of the icon,\n *                                               one of a Dashicon slug, an\n *                                               element, or a component.\n * @property {string}                background  Optimal background hex string\n *                                               color when displaying icon.\n * @property {string}                foreground  Optimal foreground hex string\n *                                               color when displaying icon.\n * @property {string}                shadowColor Optimal shadow hex string\n *                                               color when displaying icon.\n */\n\n/**\n * Value to use to render the icon for a block type in an editor interface,\n * either a Dashicon slug, an element, a component, or an object describing\n * the icon.\n *\n * @typedef {(WPBlockTypeIconDescriptor|WPBlockTypeIconRender)} WPBlockTypeIcon\n */\n\n/**\n * Named block variation scopes.\n *\n * @typedef {'block'|'inserter'} WPBlockVariationScope\n */\n\n/**\n * An object describing a variation defined for the block type.\n *\n * @typedef {Object} WPBlockVariation\n *\n * @property {string}   name                   The unique and machine-readable name.\n * @property {string}   title                  A human-readable variation title.\n * @property {string}   [description]          A detailed variation description.\n * @property {WPIcon}   [icon]                 An icon helping to visualize the variation.\n * @property {boolean}  [isDefault]            Indicates whether the current variation is\n *                                             the default one. Defaults to `false`.\n * @property {Object}   [attributes]           Values which override block attributes.\n * @property {Array[]}  [innerBlocks]          Initial configuration of nested blocks.\n * @property {Object}   [example]              Example provides structured data for\n *                                             the block preview. You can set to\n *                                             `undefined` to disable the preview shown\n *                                             for the block type.\n * @property {WPBlockVariationScope[]} [scope] The list of scopes where the variation\n *                                             is applicable. When not provided, it\n *                                             assumes all available scopes.\n */\n\n/**\n * Defined behavior of a block type.\n *\n * @typedef {Object} WPBlock\n *\n * @property {string}             name          Block type's namespaced name.\n * @property {string}             title         Human-readable block type label.\n * @property {string}             [description] A detailed block type description.\n * @property {string}             [category]    Block type category classification,\n *                                              used in search interfaces to arrange\n *                                              block types by category.\n * @property {WPBlockTypeIcon}    [icon]        Block type icon.\n * @property {string[]}           [keywords]    Additional keywords to produce block\n *                                              type as result in search interfaces.\n * @property {Object}             [attributes]  Block type attributes.\n * @property {WPComponent}        [save]        Optional component describing\n *                                              serialized markup structure of a\n *                                              block type.\n * @property {WPComponent}        edit          Component rendering an element to\n *                                              manipulate the attributes of a block\n *                                              in the context of an editor.\n * @property {WPBlockVariation[]} [variations]  The list of block variations.\n * @property {Object}             [example]     Example provides structured data for\n *                                              the block preview. When not defined\n *                                              then no preview is shown.\n */\n\n/**\n * Mapping of legacy category slugs to their latest normal values, used to\n * accommodate updates of the default set of block categories.\n *\n * @type {Record<string,string>}\n */\n\nvar LEGACY_CATEGORY_MAPPING = {\n  common: 'text',\n  formatting: 'text',\n  layout: 'design'\n};\nvar serverSideBlockDefinitions = {};\n/**\n * Sets the server side block definition of blocks.\n *\n * @param {Object} definitions Server-side block definitions\n */\n// eslint-disable-next-line camelcase\n\nfunction unstable__bootstrapServerSideBlockDefinitions(definitions) {\n  serverSideBlockDefinitions = registration_objectSpread({}, serverSideBlockDefinitions, {}, definitions);\n}\n/**\n * Registers a new block provided a unique name and an object defining its\n * behavior. Once registered, the block is made available as an option to any\n * editor interface where blocks are implemented.\n *\n * @param {string} name     Block name.\n * @param {Object} settings Block settings.\n *\n * @return {?WPBlock} The block, if it has been successfully registered;\n *                    otherwise `undefined`.\n */\n\nfunction registerBlockType(name, settings) {\n  settings = registration_objectSpread({\n    name: name,\n    icon: block_default[\"a\" /* default */],\n    keywords: [],\n    attributes: {},\n    providesContext: {},\n    usesContext: [],\n    supports: {},\n    styles: [],\n    save: function save() {\n      return null;\n    }\n  }, Object(external_this_lodash_[\"pickBy\"])(Object(external_this_lodash_[\"get\"])(serverSideBlockDefinitions, name, {}), function (value) {\n    return !Object(external_this_lodash_[\"isNil\"])(value);\n  }), {}, settings);\n\n  if (typeof name !== 'string') {\n    console.error('Block names must be strings.');\n    return;\n  }\n\n  if (!/^[a-z][a-z0-9-]*\\/[a-z][a-z0-9-]*$/.test(name)) {\n    console.error('Block names must contain a namespace prefix, include only lowercase alphanumeric characters or dashes, and start with a letter. Example: my-plugin/my-custom-block');\n    return;\n  }\n\n  if (Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockType(name)) {\n    console.error('Block \"' + name + '\" is already registered.');\n    return;\n  }\n\n  var preFilterSettings = registration_objectSpread({}, settings);\n\n  settings = Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.registerBlockType', settings, name);\n\n  if (settings.deprecated) {\n    settings.deprecated = settings.deprecated.map(function (deprecation) {\n      return Object(external_this_lodash_[\"pick\"])( // Only keep valid deprecation keys.\n      Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.registerBlockType', // Merge deprecation keys with pre-filter settings\n      // so that filters that depend on specific keys being\n      // present don't fail.\n      registration_objectSpread({}, Object(external_this_lodash_[\"omit\"])(preFilterSettings, DEPRECATED_ENTRY_KEYS), {}, deprecation), name), DEPRECATED_ENTRY_KEYS);\n    });\n  }\n\n  if (!Object(external_this_lodash_[\"isPlainObject\"])(settings)) {\n    console.error('Block settings must be a valid object.');\n    return;\n  }\n\n  if (!Object(external_this_lodash_[\"isFunction\"])(settings.save)) {\n    console.error('The \"save\" property must be a valid function.');\n    return;\n  }\n\n  if ('edit' in settings && !Object(external_this_lodash_[\"isFunction\"])(settings.edit)) {\n    console.error('The \"edit\" property must be a valid function.');\n    return;\n  } // Canonicalize legacy categories to equivalent fallback.\n\n\n  if (LEGACY_CATEGORY_MAPPING.hasOwnProperty(settings.category)) {\n    settings.category = LEGACY_CATEGORY_MAPPING[settings.category];\n  }\n\n  if ('category' in settings && !Object(external_this_lodash_[\"some\"])(Object(external_this_wp_data_[\"select\"])('core/blocks').getCategories(), {\n    slug: settings.category\n  })) {\n    console.warn('The block \"' + name + '\" is registered with an invalid category \"' + settings.category + '\".');\n    delete settings.category;\n  }\n\n  if (!('title' in settings) || settings.title === '') {\n    console.error('The block \"' + name + '\" must have a title.');\n    return;\n  }\n\n  if (typeof settings.title !== 'string') {\n    console.error('Block titles must be strings.');\n    return;\n  }\n\n  settings.icon = normalizeIconObject(settings.icon);\n\n  if (!isValidIcon(settings.icon.src)) {\n    console.error('The icon passed is invalid. ' + 'The icon should be a string, an element, a function, or an object following the specifications documented in https://developer.wordpress.org/block-editor/developers/block-api/block-registration/#icon-optional');\n    return;\n  }\n\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').addBlockTypes(settings);\n  return settings;\n}\n/**\n * Registers a new block collection to group blocks in the same namespace in the inserter.\n *\n * @param {string} namespace       The namespace to group blocks by in the inserter; corresponds to the block namespace.\n * @param {Object} settings        The block collection settings.\n * @param {string} settings.title  The title to display in the block inserter.\n * @param {Object} [settings.icon] The icon to display in the block inserter.\n */\n\nfunction registerBlockCollection(namespace, _ref) {\n  var title = _ref.title,\n      icon = _ref.icon;\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').addBlockCollection(namespace, title, icon);\n}\n/**\n * Unregisters a block collection\n *\n * @param {string} namespace The namespace to group blocks by in the inserter; corresponds to the block namespace\n *\n */\n\nfunction unregisterBlockCollection(namespace) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').removeBlockCollection(namespace);\n}\n/**\n * Unregisters a block.\n *\n * @param {string} name Block name.\n *\n * @return {?WPBlock} The previous block value, if it has been successfully\n *                    unregistered; otherwise `undefined`.\n */\n\nfunction unregisterBlockType(name) {\n  var oldBlock = Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockType(name);\n\n  if (!oldBlock) {\n    console.error('Block \"' + name + '\" is not registered.');\n    return;\n  }\n\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').removeBlockTypes(name);\n  return oldBlock;\n}\n/**\n * Assigns name of block for handling non-block content.\n *\n * @param {string} blockName Block name.\n */\n\nfunction setFreeformContentHandlerName(blockName) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').setFreeformFallbackBlockName(blockName);\n}\n/**\n * Retrieves name of block handling non-block content, or undefined if no\n * handler has been defined.\n *\n * @return {?string} Block name.\n */\n\nfunction getFreeformContentHandlerName() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getFreeformFallbackBlockName();\n}\n/**\n * Retrieves name of block used for handling grouping interactions.\n *\n * @return {?string} Block name.\n */\n\nfunction registration_getGroupingBlockName() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getGroupingBlockName();\n}\n/**\n * Assigns name of block handling unregistered block types.\n *\n * @param {string} blockName Block name.\n */\n\nfunction setUnregisteredTypeHandlerName(blockName) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').setUnregisteredFallbackBlockName(blockName);\n}\n/**\n * Retrieves name of block handling unregistered block types, or undefined if no\n * handler has been defined.\n *\n * @return {?string} Block name.\n */\n\nfunction getUnregisteredTypeHandlerName() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getUnregisteredFallbackBlockName();\n}\n/**\n * Assigns the default block name.\n *\n * @param {string} name Block name.\n */\n\nfunction registration_setDefaultBlockName(name) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').setDefaultBlockName(name);\n}\n/**\n * Assigns name of block for handling block grouping interactions.\n *\n * @param {string} name Block name.\n */\n\nfunction registration_setGroupingBlockName(name) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').setGroupingBlockName(name);\n}\n/**\n * Retrieves the default block name.\n *\n * @return {?string} Block name.\n */\n\nfunction registration_getDefaultBlockName() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getDefaultBlockName();\n}\n/**\n * Returns a registered block type.\n *\n * @param {string} name Block name.\n *\n * @return {?Object} Block type.\n */\n\nfunction registration_getBlockType(name) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockType(name);\n}\n/**\n * Returns all registered blocks.\n *\n * @return {Array} Block settings.\n */\n\nfunction registration_getBlockTypes() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockTypes();\n}\n/**\n * Returns the block support value for a feature, if defined.\n *\n * @param  {(string|Object)} nameOrType      Block name or type object\n * @param  {string}          feature         Feature to retrieve\n * @param  {*}               defaultSupports Default value to return if not\n *                                           explicitly defined\n *\n * @return {?*} Block support value\n */\n\nfunction registration_getBlockSupport(nameOrType, feature, defaultSupports) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockSupport(nameOrType, feature, defaultSupports);\n}\n/**\n * Returns true if the block defines support for a feature, or false otherwise.\n *\n * @param {(string|Object)} nameOrType      Block name or type object.\n * @param {string}          feature         Feature to test.\n * @param {boolean}         defaultSupports Whether feature is supported by\n *                                          default if not explicitly defined.\n *\n * @return {boolean} Whether block supports feature.\n */\n\nfunction registration_hasBlockSupport(nameOrType, feature, defaultSupports) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').hasBlockSupport(nameOrType, feature, defaultSupports);\n}\n/**\n * Determines whether or not the given block is a reusable block. This is a\n * special block type that is used to point to a global block stored via the\n * API.\n *\n * @param {Object} blockOrType Block or Block Type to test.\n *\n * @return {boolean} Whether the given block is a reusable block.\n */\n\nfunction isReusableBlock(blockOrType) {\n  return blockOrType.name === 'core/block';\n}\n/**\n * Returns an array with the child blocks of a given block.\n *\n * @param {string} blockName Name of block (example: “latest-posts”).\n *\n * @return {Array} Array of child block names.\n */\n\nvar registration_getChildBlockNames = function getChildBlockNames(blockName) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getChildBlockNames(blockName);\n};\n/**\n * Returns a boolean indicating if a block has child blocks or not.\n *\n * @param {string} blockName Name of block (example: “latest-posts”).\n *\n * @return {boolean} True if a block contains child blocks and false otherwise.\n */\n\nvar registration_hasChildBlocks = function hasChildBlocks(blockName) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').hasChildBlocks(blockName);\n};\n/**\n * Returns a boolean indicating if a block has at least one child block with inserter support.\n *\n * @param {string} blockName Block type name.\n *\n * @return {boolean} True if a block contains at least one child blocks with inserter support\n *                   and false otherwise.\n */\n\nvar registration_hasChildBlocksWithInserterSupport = function hasChildBlocksWithInserterSupport(blockName) {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').hasChildBlocksWithInserterSupport(blockName);\n};\n/**\n * Registers a new block style variation for the given block.\n *\n * @param {string} blockName      Name of block (example: “core/latest-posts”).\n * @param {Object} styleVariation Object containing `name` which is the class name applied to the block and `label` which identifies the variation to the user.\n */\n\nvar registration_registerBlockStyle = function registerBlockStyle(blockName, styleVariation) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').addBlockStyles(blockName, styleVariation);\n};\n/**\n * Unregisters a block style variation for the given block.\n *\n * @param {string} blockName          Name of block (example: “core/latest-posts”).\n * @param {string} styleVariationName Name of class applied to the block.\n */\n\nvar registration_unregisterBlockStyle = function unregisterBlockStyle(blockName, styleVariationName) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').removeBlockStyles(blockName, styleVariationName);\n};\n/**\n * Registers a new block variation for the given block type.\n *\n * @param {string}           blockName Name of the block (example: “core/columns”).\n * @param {WPBlockVariation} variation Object describing a block variation.\n */\n\nvar registration_registerBlockVariation = function registerBlockVariation(blockName, variation) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').addBlockVariations(blockName, variation);\n};\n/**\n * Unregisters a block variation defined for the given block type.\n *\n * @param {string} blockName     Name of the block (example: “core/columns”).\n * @param {string} variationName Name of the variation defined for the block.\n */\n\nvar registration_unregisterBlockVariation = function unregisterBlockVariation(blockName, variationName) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').removeBlockVariations(blockName, variationName);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/factory.js\n\n\n\nfunction factory_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction factory_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { factory_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { factory_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns a block object given its type and attributes.\n *\n * @param {string} name        Block name.\n * @param {Object} attributes  Block attributes.\n * @param {?Array} innerBlocks Nested blocks.\n *\n * @return {Object} Block object.\n */\n\nfunction createBlock(name) {\n  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var innerBlocks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  // Get the type definition associated with a registered block.\n  var blockType = registration_getBlockType(name); // Ensure attributes contains only values defined by block type, and merge\n  // default values for missing attributes.\n\n  var sanitizedAttributes = Object(external_this_lodash_[\"reduce\"])(blockType.attributes, function (accumulator, schema, key) {\n    var value = attributes[key];\n\n    if (undefined !== value) {\n      accumulator[key] = value;\n    } else if (schema.hasOwnProperty('default')) {\n      accumulator[key] = schema.default;\n    }\n\n    if (['node', 'children'].indexOf(schema.source) !== -1) {\n      // Ensure value passed is always an array, which we're expecting in\n      // the RichText component to handle the deprecated value.\n      if (typeof accumulator[key] === 'string') {\n        accumulator[key] = [accumulator[key]];\n      } else if (!Array.isArray(accumulator[key])) {\n        accumulator[key] = [];\n      }\n    }\n\n    return accumulator;\n  }, {});\n  var clientId = esm_browser_v4(); // Blocks are stored with a unique ID, the assigned type name, the block\n  // attributes, and their inner blocks.\n\n  return {\n    clientId: clientId,\n    name: name,\n    isValid: true,\n    attributes: sanitizedAttributes,\n    innerBlocks: innerBlocks\n  };\n}\n/**\n * Given a block object, returns a copy of the block object, optionally merging\n * new attributes and/or replacing its inner blocks.\n *\n * @param {Object} block              Block instance.\n * @param {Object} mergeAttributes    Block attributes.\n * @param {?Array} newInnerBlocks     Nested blocks.\n *\n * @return {Object} A cloned block.\n */\n\nfunction cloneBlock(block) {\n  var mergeAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var newInnerBlocks = arguments.length > 2 ? arguments[2] : undefined;\n  var clientId = esm_browser_v4();\n  return factory_objectSpread({}, block, {\n    clientId: clientId,\n    attributes: factory_objectSpread({}, block.attributes, {}, mergeAttributes),\n    innerBlocks: newInnerBlocks || block.innerBlocks.map(function (innerBlock) {\n      return cloneBlock(innerBlock);\n    })\n  });\n}\n/**\n * Returns a boolean indicating whether a transform is possible based on\n * various bits of context.\n *\n * @param {Object} transform The transform object to validate.\n * @param {string} direction Is this a 'from' or 'to' transform.\n * @param {Array} blocks The blocks to transform from.\n *\n * @return {boolean} Is the transform possible?\n */\n\nvar factory_isPossibleTransformForSource = function isPossibleTransformForSource(transform, direction, blocks) {\n  if (Object(external_this_lodash_[\"isEmpty\"])(blocks)) {\n    return false;\n  } // If multiple blocks are selected, only multi block transforms\n  // or wildcard transforms are allowed.\n\n\n  var isMultiBlock = blocks.length > 1;\n  var firstBlockName = Object(external_this_lodash_[\"first\"])(blocks).name;\n  var isValidForMultiBlocks = isWildcardBlockTransform(transform) || !isMultiBlock || transform.isMultiBlock;\n\n  if (!isValidForMultiBlocks) {\n    return false;\n  } // Check non-wildcard transforms to ensure that transform is valid\n  // for a block selection of multiple blocks of different types\n\n\n  if (!isWildcardBlockTransform(transform) && !Object(external_this_lodash_[\"every\"])(blocks, {\n    name: firstBlockName\n  })) {\n    return false;\n  } // Only consider 'block' type transforms as valid.\n\n\n  var isBlockType = transform.type === 'block';\n\n  if (!isBlockType) {\n    return false;\n  } // Check if the transform's block name matches the source block (or is a wildcard)\n  // only if this is a transform 'from'.\n\n\n  var sourceBlock = Object(external_this_lodash_[\"first\"])(blocks);\n  var hasMatchingName = direction !== 'from' || transform.blocks.indexOf(sourceBlock.name) !== -1 || isWildcardBlockTransform(transform);\n\n  if (!hasMatchingName) {\n    return false;\n  } // Don't allow single Grouping blocks to be transformed into\n  // a Grouping block.\n\n\n  if (!isMultiBlock && factory_isContainerGroupBlock(sourceBlock.name) && factory_isContainerGroupBlock(transform.blockName)) {\n    return false;\n  } // If the transform has a `isMatch` function specified, check that it returns true.\n\n\n  if (Object(external_this_lodash_[\"isFunction\"])(transform.isMatch)) {\n    var attributes = transform.isMultiBlock ? blocks.map(function (block) {\n      return block.attributes;\n    }) : sourceBlock.attributes;\n\n    if (!transform.isMatch(attributes)) {\n      return false;\n    }\n  }\n\n  return true;\n};\n/**\n * Returns block types that the 'blocks' can be transformed into, based on\n * 'from' transforms on other blocks.\n *\n * @param {Array}  blocks  The blocks to transform from.\n *\n * @return {Array} Block types that the blocks can be transformed into.\n */\n\n\nvar factory_getBlockTypesForPossibleFromTransforms = function getBlockTypesForPossibleFromTransforms(blocks) {\n  if (Object(external_this_lodash_[\"isEmpty\"])(blocks)) {\n    return [];\n  }\n\n  var allBlockTypes = registration_getBlockTypes(); // filter all blocks to find those with a 'from' transform.\n\n  var blockTypesWithPossibleFromTransforms = Object(external_this_lodash_[\"filter\"])(allBlockTypes, function (blockType) {\n    var fromTransforms = getBlockTransforms('from', blockType.name);\n    return !!findTransform(fromTransforms, function (transform) {\n      return factory_isPossibleTransformForSource(transform, 'from', blocks);\n    });\n  });\n  return blockTypesWithPossibleFromTransforms;\n};\n/**\n * Returns block types that the 'blocks' can be transformed into, based on\n * the source block's own 'to' transforms.\n *\n * @param {Array} blocks The blocks to transform from.\n *\n * @return {Array} Block types that the source can be transformed into.\n */\n\n\nvar factory_getBlockTypesForPossibleToTransforms = function getBlockTypesForPossibleToTransforms(blocks) {\n  if (Object(external_this_lodash_[\"isEmpty\"])(blocks)) {\n    return [];\n  }\n\n  var sourceBlock = Object(external_this_lodash_[\"first\"])(blocks);\n  var blockType = registration_getBlockType(sourceBlock.name);\n  var transformsTo = getBlockTransforms('to', blockType.name); // filter all 'to' transforms to find those that are possible.\n\n  var possibleTransforms = Object(external_this_lodash_[\"filter\"])(transformsTo, function (transform) {\n    return transform && factory_isPossibleTransformForSource(transform, 'to', blocks);\n  }); // Build a list of block names using the possible 'to' transforms.\n\n  var blockNames = Object(external_this_lodash_[\"flatMap\"])(possibleTransforms, function (transformation) {\n    return transformation.blocks;\n  }); // Map block names to block types.\n\n  return blockNames.map(function (name) {\n    return registration_getBlockType(name);\n  });\n};\n/**\n * Determines whether transform is a \"block\" type\n * and if so whether it is a \"wildcard\" transform\n * ie: targets \"any\" block type\n *\n * @param {Object} t the Block transform object\n *\n * @return {boolean} whether transform is a wildcard transform\n */\n\n\nvar isWildcardBlockTransform = function isWildcardBlockTransform(t) {\n  return t && t.type === 'block' && Array.isArray(t.blocks) && t.blocks.includes('*');\n};\n/**\n * Determines whether the given Block is the core Block which\n * acts as a container Block for other Blocks as part of the\n * Grouping mechanics\n *\n * @param  {string} name the name of the Block to test against\n *\n * @return {boolean} whether or not the Block is the container Block type\n */\n\nvar factory_isContainerGroupBlock = function isContainerGroupBlock(name) {\n  return name === registration_getGroupingBlockName();\n};\n/**\n * Returns an array of block types that the set of blocks received as argument\n * can be transformed into.\n *\n * @param {Array} blocks Blocks array.\n *\n * @return {Array} Block types that the blocks argument can be transformed to.\n */\n\nfunction getPossibleBlockTransformations(blocks) {\n  if (Object(external_this_lodash_[\"isEmpty\"])(blocks)) {\n    return [];\n  }\n\n  var blockTypesForFromTransforms = factory_getBlockTypesForPossibleFromTransforms(blocks);\n  var blockTypesForToTransforms = factory_getBlockTypesForPossibleToTransforms(blocks);\n  return Object(external_this_lodash_[\"uniq\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(blockTypesForFromTransforms), Object(toConsumableArray[\"a\" /* default */])(blockTypesForToTransforms)));\n}\n/**\n * Given an array of transforms, returns the highest-priority transform where\n * the predicate function returns a truthy value. A higher-priority transform\n * is one with a lower priority value (i.e. first in priority order). Returns\n * null if the transforms set is empty or the predicate function returns a\n * falsey value for all entries.\n *\n * @param {Object[]} transforms Transforms to search.\n * @param {Function} predicate  Function returning true on matching transform.\n *\n * @return {?Object} Highest-priority transform candidate.\n */\n\nfunction findTransform(transforms, predicate) {\n  // The hooks library already has built-in mechanisms for managing priority\n  // queue, so leverage via locally-defined instance.\n  var hooks = Object(external_this_wp_hooks_[\"createHooks\"])();\n\n  var _loop = function _loop(i) {\n    var candidate = transforms[i];\n\n    if (predicate(candidate)) {\n      hooks.addFilter('transform', 'transform/' + i.toString(), function (result) {\n        return result ? result : candidate;\n      }, candidate.priority);\n    }\n  };\n\n  for (var i = 0; i < transforms.length; i++) {\n    _loop(i);\n  } // Filter name is arbitrarily chosen but consistent with above aggregation.\n\n\n  return hooks.applyFilters('transform', null);\n}\n/**\n * Returns normal block transforms for a given transform direction, optionally\n * for a specific block by name, or an empty array if there are no transforms.\n * If no block name is provided, returns transforms for all blocks. A normal\n * transform object includes `blockName` as a property.\n *\n * @param {string}  direction Transform direction (\"to\", \"from\").\n * @param {string|Object} blockTypeOrName  Block type or name.\n *\n * @return {Array} Block transforms for direction.\n */\n\nfunction getBlockTransforms(direction, blockTypeOrName) {\n  // When retrieving transforms for all block types, recurse into self.\n  if (blockTypeOrName === undefined) {\n    return Object(external_this_lodash_[\"flatMap\"])(registration_getBlockTypes(), function (_ref) {\n      var name = _ref.name;\n      return getBlockTransforms(direction, name);\n    });\n  } // Validate that block type exists and has array of direction.\n\n\n  var blockType = normalizeBlockType(blockTypeOrName);\n\n  var _ref2 = blockType || {},\n      blockName = _ref2.name,\n      transforms = _ref2.transforms;\n\n  if (!transforms || !Array.isArray(transforms[direction])) {\n    return [];\n  } // Map transforms to normal form.\n\n\n  return transforms[direction].map(function (transform) {\n    return factory_objectSpread({}, transform, {\n      blockName: blockName\n    });\n  });\n}\n/**\n * Switch one or more blocks into one or more blocks of the new block type.\n *\n * @param {Array|Object} blocks Blocks array or block object.\n * @param {string}       name   Block name.\n *\n * @return {?Array} Array of blocks or null.\n */\n\nfunction switchToBlockType(blocks, name) {\n  var blocksArray = Object(external_this_lodash_[\"castArray\"])(blocks);\n  var isMultiBlock = blocksArray.length > 1;\n  var firstBlock = blocksArray[0];\n  var sourceName = firstBlock.name; // Find the right transformation by giving priority to the \"to\"\n  // transformation.\n\n  var transformationsFrom = getBlockTransforms('from', name);\n  var transformationsTo = getBlockTransforms('to', sourceName);\n  var transformation = findTransform(transformationsTo, function (t) {\n    return t.type === 'block' && (isWildcardBlockTransform(t) || t.blocks.indexOf(name) !== -1) && (!isMultiBlock || t.isMultiBlock);\n  }) || findTransform(transformationsFrom, function (t) {\n    return t.type === 'block' && (isWildcardBlockTransform(t) || t.blocks.indexOf(sourceName) !== -1) && (!isMultiBlock || t.isMultiBlock);\n  }); // Stop if there is no valid transformation.\n\n  if (!transformation) {\n    return null;\n  }\n\n  var transformationResults;\n\n  if (transformation.isMultiBlock) {\n    if (Object(external_this_lodash_[\"has\"])(transformation, '__experimentalConvert')) {\n      transformationResults = transformation.__experimentalConvert(blocksArray);\n    } else {\n      transformationResults = transformation.transform(blocksArray.map(function (currentBlock) {\n        return currentBlock.attributes;\n      }), blocksArray.map(function (currentBlock) {\n        return currentBlock.innerBlocks;\n      }));\n    }\n  } else if (Object(external_this_lodash_[\"has\"])(transformation, '__experimentalConvert')) {\n    transformationResults = transformation.__experimentalConvert(firstBlock);\n  } else {\n    transformationResults = transformation.transform(firstBlock.attributes, firstBlock.innerBlocks);\n  } // Ensure that the transformation function returned an object or an array\n  // of objects.\n\n\n  if (!Object(external_this_lodash_[\"isObjectLike\"])(transformationResults)) {\n    return null;\n  } // If the transformation function returned a single object, we want to work\n  // with an array instead.\n\n\n  transformationResults = Object(external_this_lodash_[\"castArray\"])(transformationResults); // Ensure that every block object returned by the transformation has a\n  // valid block type.\n\n  if (transformationResults.some(function (result) {\n    return !registration_getBlockType(result.name);\n  })) {\n    return null;\n  }\n\n  var firstSwitchedBlock = Object(external_this_lodash_[\"findIndex\"])(transformationResults, function (result) {\n    return result.name === name;\n  }); // Ensure that at least one block object returned by the transformation has\n  // the expected \"destination\" block type.\n\n  if (firstSwitchedBlock < 0) {\n    return null;\n  }\n\n  return transformationResults.map(function (result, index) {\n    var transformedBlock = factory_objectSpread({}, result, {\n      // The first transformed block whose type matches the \"destination\"\n      // type gets to keep the existing client ID of the first block.\n      clientId: index === firstSwitchedBlock ? firstBlock.clientId : result.clientId\n    });\n    /**\n     * Filters an individual transform result from block transformation.\n     * All of the original blocks are passed, since transformations are\n     * many-to-many, not one-to-one.\n     *\n     * @param {Object}   transformedBlock The transformed block.\n     * @param {Object[]} blocks           Original blocks transformed.\n     */\n\n\n    return Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.switchToBlockType.transformedBlock', transformedBlock, blocks);\n  });\n}\n/**\n * Create a block object from the example API.\n *\n * @param {string} name\n * @param {Object} example\n *\n * @return {Object} block.\n */\n\nvar factory_getBlockFromExample = function getBlockFromExample(name, example) {\n  return createBlock(name, example.attributes, Object(external_this_lodash_[\"map\"])(example.innerBlocks, function (innerBlock) {\n    return getBlockFromExample(innerBlock.name, innerBlock);\n  }));\n};\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// CONCATENATED MODULE: ./node_modules/hpq/es/get-path.js\n/**\n * Given object and string of dot-delimited path segments, returns value at\n * path or undefined if path cannot be resolved.\n *\n * @param  {Object} object Lookup object\n * @param  {string} path   Path to resolve\n * @return {?*}            Resolved value\n */\nfunction getPath(object, path) {\n  var segments = path.split('.');\n  var segment;\n\n  while (segment = segments.shift()) {\n    if (!(segment in object)) {\n      return;\n    }\n\n    object = object[segment];\n  }\n\n  return object;\n}\n// CONCATENATED MODULE: ./node_modules/hpq/es/index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Function returning a DOM document created by `createHTMLDocument`. The same\n * document is returned between invocations.\n *\n * @return {Document} DOM document.\n */\n\nvar getDocument = function () {\n  var doc;\n  return function () {\n    if (!doc) {\n      doc = document.implementation.createHTMLDocument('');\n    }\n\n    return doc;\n  };\n}();\n/**\n * Given a markup string or DOM element, creates an object aligning with the\n * shape of the matchers object, or the value returned by the matcher.\n *\n * @param  {(string|Element)}  source   Source content\n * @param  {(Object|Function)} matchers Matcher function or object of matchers\n * @return {(Object|*)}                 Matched value(s), shaped by object\n */\n\n\nfunction es_parse(source, matchers) {\n  if (!matchers) {\n    return;\n  } // Coerce to element\n\n\n  if ('string' === typeof source) {\n    var doc = getDocument();\n    doc.body.innerHTML = source;\n    source = doc.body;\n  } // Return singular value\n\n\n  if ('function' === typeof matchers) {\n    return matchers(source);\n  } // Bail if we can't handle matchers\n\n\n  if (Object !== matchers.constructor) {\n    return;\n  } // Shape result by matcher object\n\n\n  return Object.keys(matchers).reduce(function (memo, key) {\n    memo[key] = es_parse(source, matchers[key]);\n    return memo;\n  }, {});\n}\n/**\n * Generates a function which matches node of type selector, returning an\n * attribute by property if the attribute exists. If no selector is passed,\n * returns property of the query element.\n *\n * @param  {?string} selector Optional selector\n * @param  {string}  name     Property name\n * @return {*}                Property value\n */\n\nfunction prop(selector, name) {\n  if (1 === arguments.length) {\n    name = selector;\n    selector = undefined;\n  }\n\n  return function (node) {\n    var match = node;\n\n    if (selector) {\n      match = node.querySelector(selector);\n    }\n\n    if (match) {\n      return getPath(match, name);\n    }\n  };\n}\n/**\n * Generates a function which matches node of type selector, returning an\n * attribute by name if the attribute exists. If no selector is passed,\n * returns attribute of the query element.\n *\n * @param  {?string} selector Optional selector\n * @param  {string}  name     Attribute name\n * @return {?string}          Attribute value\n */\n\nfunction attr(selector, name) {\n  if (1 === arguments.length) {\n    name = selector;\n    selector = undefined;\n  }\n\n  return function (node) {\n    var attributes = prop(selector, 'attributes')(node);\n\n    if (attributes && attributes.hasOwnProperty(name)) {\n      return attributes[name].value;\n    }\n  };\n}\n/**\n * Convenience for `prop( selector, 'innerHTML' )`.\n *\n * @see prop()\n *\n * @param  {?string} selector Optional selector\n * @return {string}           Inner HTML\n */\n\nfunction es_html(selector) {\n  return prop(selector, 'innerHTML');\n}\n/**\n * Convenience for `prop( selector, 'textContent' )`.\n *\n * @see prop()\n *\n * @param  {?string} selector Optional selector\n * @return {string}           Text content\n */\n\nfunction es_text(selector) {\n  return prop(selector, 'textContent');\n}\n/**\n * Creates a new matching context by first finding elements matching selector\n * using querySelectorAll before then running another `parse` on `matchers`\n * scoped to the matched elements.\n *\n * @see parse()\n *\n * @param  {string}            selector Selector to match\n * @param  {(Object|Function)} matchers Matcher function or object of matchers\n * @return {Array.<*,Object>}           Array of matched value(s)\n */\n\nfunction query(selector, matchers) {\n  return function (node) {\n    var matches = node.querySelectorAll(selector);\n    return [].map.call(matches, function (match) {\n      return es_parse(match, matchers);\n    });\n  };\n}\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"autop\"]}\nvar external_this_wp_autop_ = __webpack_require__(96);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockSerializationDefaultParser\"]}\nvar external_this_wp_blockSerializationDefaultParser_ = __webpack_require__(262);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toArray.js\nvar toArray = __webpack_require__(140);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// CONCATENATED MODULE: ./node_modules/simple-html-tokenizer/dist/es6/index.js\n/**\n * generated from https://raw.githubusercontent.com/w3c/html/26b5126f96f736f796b9e29718138919dd513744/entities.json\n * do not edit\n */\nvar namedCharRefs = {\n    Aacute: \"Á\", aacute: \"á\", Abreve: \"Ă\", abreve: \"ă\", ac: \"∾\", acd: \"∿\", acE: \"∾̳\", Acirc: \"Â\", acirc: \"â\", acute: \"´\", Acy: \"А\", acy: \"а\", AElig: \"Æ\", aelig: \"æ\", af: \"\\u2061\", Afr: \"𝔄\", afr: \"𝔞\", Agrave: \"À\", agrave: \"à\", alefsym: \"ℵ\", aleph: \"ℵ\", Alpha: \"Α\", alpha: \"α\", Amacr: \"Ā\", amacr: \"ā\", amalg: \"⨿\", amp: \"&\", AMP: \"&\", andand: \"⩕\", And: \"⩓\", and: \"∧\", andd: \"⩜\", andslope: \"⩘\", andv: \"⩚\", ang: \"∠\", ange: \"⦤\", angle: \"∠\", angmsdaa: \"⦨\", angmsdab: \"⦩\", angmsdac: \"⦪\", angmsdad: \"⦫\", angmsdae: \"⦬\", angmsdaf: \"⦭\", angmsdag: \"⦮\", angmsdah: \"⦯\", angmsd: \"∡\", angrt: \"∟\", angrtvb: \"⊾\", angrtvbd: \"⦝\", angsph: \"∢\", angst: \"Å\", angzarr: \"⍼\", Aogon: \"Ą\", aogon: \"ą\", Aopf: \"𝔸\", aopf: \"𝕒\", apacir: \"⩯\", ap: \"≈\", apE: \"⩰\", ape: \"≊\", apid: \"≋\", apos: \"'\", ApplyFunction: \"\\u2061\", approx: \"≈\", approxeq: \"≊\", Aring: \"Å\", aring: \"å\", Ascr: \"𝒜\", ascr: \"𝒶\", Assign: \"≔\", ast: \"*\", asymp: \"≈\", asympeq: \"≍\", Atilde: \"Ã\", atilde: \"ã\", Auml: \"Ä\", auml: \"ä\", awconint: \"∳\", awint: \"⨑\", backcong: \"≌\", backepsilon: \"϶\", backprime: \"‵\", backsim: \"∽\", backsimeq: \"⋍\", Backslash: \"∖\", Barv: \"⫧\", barvee: \"⊽\", barwed: \"⌅\", Barwed: \"⌆\", barwedge: \"⌅\", bbrk: \"⎵\", bbrktbrk: \"⎶\", bcong: \"≌\", Bcy: \"Б\", bcy: \"б\", bdquo: \"„\", becaus: \"∵\", because: \"∵\", Because: \"∵\", bemptyv: \"⦰\", bepsi: \"϶\", bernou: \"ℬ\", Bernoullis: \"ℬ\", Beta: \"Β\", beta: \"β\", beth: \"ℶ\", between: \"≬\", Bfr: \"𝔅\", bfr: \"𝔟\", bigcap: \"⋂\", bigcirc: \"◯\", bigcup: \"⋃\", bigodot: \"⨀\", bigoplus: \"⨁\", bigotimes: \"⨂\", bigsqcup: \"⨆\", bigstar: \"★\", bigtriangledown: \"▽\", bigtriangleup: \"△\", biguplus: \"⨄\", bigvee: \"⋁\", bigwedge: \"⋀\", bkarow: \"⤍\", blacklozenge: \"⧫\", blacksquare: \"▪\", blacktriangle: \"▴\", blacktriangledown: \"▾\", blacktriangleleft: \"◂\", blacktriangleright: \"▸\", blank: \"␣\", blk12: \"▒\", blk14: \"░\", blk34: \"▓\", block: \"█\", bne: \"=⃥\", bnequiv: \"≡⃥\", bNot: \"⫭\", bnot: \"⌐\", Bopf: \"𝔹\", bopf: \"𝕓\", bot: \"⊥\", bottom: \"⊥\", bowtie: \"⋈\", boxbox: \"⧉\", boxdl: \"┐\", boxdL: \"╕\", boxDl: \"╖\", boxDL: \"╗\", boxdr: \"┌\", boxdR: \"╒\", boxDr: \"╓\", boxDR: \"╔\", boxh: \"─\", boxH: \"═\", boxhd: \"┬\", boxHd: \"╤\", boxhD: \"╥\", boxHD: \"╦\", boxhu: \"┴\", boxHu: \"╧\", boxhU: \"╨\", boxHU: \"╩\", boxminus: \"⊟\", boxplus: \"⊞\", boxtimes: \"⊠\", boxul: \"┘\", boxuL: \"╛\", boxUl: \"╜\", boxUL: \"╝\", boxur: \"└\", boxuR: \"╘\", boxUr: \"╙\", boxUR: \"╚\", boxv: \"│\", boxV: \"║\", boxvh: \"┼\", boxvH: \"╪\", boxVh: \"╫\", boxVH: \"╬\", boxvl: \"┤\", boxvL: \"╡\", boxVl: \"╢\", boxVL: \"╣\", boxvr: \"├\", boxvR: \"╞\", boxVr: \"╟\", boxVR: \"╠\", bprime: \"‵\", breve: \"˘\", Breve: \"˘\", brvbar: \"¦\", bscr: \"𝒷\", Bscr: \"ℬ\", bsemi: \"⁏\", bsim: \"∽\", bsime: \"⋍\", bsolb: \"⧅\", bsol: \"\\\\\", bsolhsub: \"⟈\", bull: \"•\", bullet: \"•\", bump: \"≎\", bumpE: \"⪮\", bumpe: \"≏\", Bumpeq: \"≎\", bumpeq: \"≏\", Cacute: \"Ć\", cacute: \"ć\", capand: \"⩄\", capbrcup: \"⩉\", capcap: \"⩋\", cap: \"∩\", Cap: \"⋒\", capcup: \"⩇\", capdot: \"⩀\", CapitalDifferentialD: \"ⅅ\", caps: \"∩︀\", caret: \"⁁\", caron: \"ˇ\", Cayleys: \"ℭ\", ccaps: \"⩍\", Ccaron: \"Č\", ccaron: \"č\", Ccedil: \"Ç\", ccedil: \"ç\", Ccirc: \"Ĉ\", ccirc: \"ĉ\", Cconint: \"∰\", ccups: \"⩌\", ccupssm: \"⩐\", Cdot: \"Ċ\", cdot: \"ċ\", cedil: \"¸\", Cedilla: \"¸\", cemptyv: \"⦲\", cent: \"¢\", centerdot: \"·\", CenterDot: \"·\", cfr: \"𝔠\", Cfr: \"ℭ\", CHcy: \"Ч\", chcy: \"ч\", check: \"✓\", checkmark: \"✓\", Chi: \"Χ\", chi: \"χ\", circ: \"ˆ\", circeq: \"≗\", circlearrowleft: \"↺\", circlearrowright: \"↻\", circledast: \"⊛\", circledcirc: \"⊚\", circleddash: \"⊝\", CircleDot: \"⊙\", circledR: \"®\", circledS: \"Ⓢ\", CircleMinus: \"⊖\", CirclePlus: \"⊕\", CircleTimes: \"⊗\", cir: \"○\", cirE: \"⧃\", cire: \"≗\", cirfnint: \"⨐\", cirmid: \"⫯\", cirscir: \"⧂\", ClockwiseContourIntegral: \"∲\", CloseCurlyDoubleQuote: \"”\", CloseCurlyQuote: \"’\", clubs: \"♣\", clubsuit: \"♣\", colon: \":\", Colon: \"∷\", Colone: \"⩴\", colone: \"≔\", coloneq: \"≔\", comma: \",\", commat: \"@\", comp: \"∁\", compfn: \"∘\", complement: \"∁\", complexes: \"ℂ\", cong: \"≅\", congdot: \"⩭\", Congruent: \"≡\", conint: \"∮\", Conint: \"∯\", ContourIntegral: \"∮\", copf: \"𝕔\", Copf: \"ℂ\", coprod: \"∐\", Coproduct: \"∐\", copy: \"©\", COPY: \"©\", copysr: \"℗\", CounterClockwiseContourIntegral: \"∳\", crarr: \"↵\", cross: \"✗\", Cross: \"⨯\", Cscr: \"𝒞\", cscr: \"𝒸\", csub: \"⫏\", csube: \"⫑\", csup: \"⫐\", csupe: \"⫒\", ctdot: \"⋯\", cudarrl: \"⤸\", cudarrr: \"⤵\", cuepr: \"⋞\", cuesc: \"⋟\", cularr: \"↶\", cularrp: \"⤽\", cupbrcap: \"⩈\", cupcap: \"⩆\", CupCap: \"≍\", cup: \"∪\", Cup: \"⋓\", cupcup: \"⩊\", cupdot: \"⊍\", cupor: \"⩅\", cups: \"∪︀\", curarr: \"↷\", curarrm: \"⤼\", curlyeqprec: \"⋞\", curlyeqsucc: \"⋟\", curlyvee: \"⋎\", curlywedge: \"⋏\", curren: \"¤\", curvearrowleft: \"↶\", curvearrowright: \"↷\", cuvee: \"⋎\", cuwed: \"⋏\", cwconint: \"∲\", cwint: \"∱\", cylcty: \"⌭\", dagger: \"†\", Dagger: \"‡\", daleth: \"ℸ\", darr: \"↓\", Darr: \"↡\", dArr: \"⇓\", dash: \"‐\", Dashv: \"⫤\", dashv: \"⊣\", dbkarow: \"⤏\", dblac: \"˝\", Dcaron: \"Ď\", dcaron: \"ď\", Dcy: \"Д\", dcy: \"д\", ddagger: \"‡\", ddarr: \"⇊\", DD: \"ⅅ\", dd: \"ⅆ\", DDotrahd: \"⤑\", ddotseq: \"⩷\", deg: \"°\", Del: \"∇\", Delta: \"Δ\", delta: \"δ\", demptyv: \"⦱\", dfisht: \"⥿\", Dfr: \"𝔇\", dfr: \"𝔡\", dHar: \"⥥\", dharl: \"⇃\", dharr: \"⇂\", DiacriticalAcute: \"´\", DiacriticalDot: \"˙\", DiacriticalDoubleAcute: \"˝\", DiacriticalGrave: \"`\", DiacriticalTilde: \"˜\", diam: \"⋄\", diamond: \"⋄\", Diamond: \"⋄\", diamondsuit: \"♦\", diams: \"♦\", die: \"¨\", DifferentialD: \"ⅆ\", digamma: \"ϝ\", disin: \"⋲\", div: \"÷\", divide: \"÷\", divideontimes: \"⋇\", divonx: \"⋇\", DJcy: \"Ђ\", djcy: \"ђ\", dlcorn: \"⌞\", dlcrop: \"⌍\", dollar: \"$\", Dopf: \"𝔻\", dopf: \"𝕕\", Dot: \"¨\", dot: \"˙\", DotDot: \"⃜\", doteq: \"≐\", doteqdot: \"≑\", DotEqual: \"≐\", dotminus: \"∸\", dotplus: \"∔\", dotsquare: \"⊡\", doublebarwedge: \"⌆\", DoubleContourIntegral: \"∯\", DoubleDot: \"¨\", DoubleDownArrow: \"⇓\", DoubleLeftArrow: \"⇐\", DoubleLeftRightArrow: \"⇔\", DoubleLeftTee: \"⫤\", DoubleLongLeftArrow: \"⟸\", DoubleLongLeftRightArrow: \"⟺\", DoubleLongRightArrow: \"⟹\", DoubleRightArrow: \"⇒\", DoubleRightTee: \"⊨\", DoubleUpArrow: \"⇑\", DoubleUpDownArrow: \"⇕\", DoubleVerticalBar: \"∥\", DownArrowBar: \"⤓\", downarrow: \"↓\", DownArrow: \"↓\", Downarrow: \"⇓\", DownArrowUpArrow: \"⇵\", DownBreve: \"̑\", downdownarrows: \"⇊\", downharpoonleft: \"⇃\", downharpoonright: \"⇂\", DownLeftRightVector: \"⥐\", DownLeftTeeVector: \"⥞\", DownLeftVectorBar: \"⥖\", DownLeftVector: \"↽\", DownRightTeeVector: \"⥟\", DownRightVectorBar: \"⥗\", DownRightVector: \"⇁\", DownTeeArrow: \"↧\", DownTee: \"⊤\", drbkarow: \"⤐\", drcorn: \"⌟\", drcrop: \"⌌\", Dscr: \"𝒟\", dscr: \"𝒹\", DScy: \"Ѕ\", dscy: \"ѕ\", dsol: \"⧶\", Dstrok: \"Đ\", dstrok: \"đ\", dtdot: \"⋱\", dtri: \"▿\", dtrif: \"▾\", duarr: \"⇵\", duhar: \"⥯\", dwangle: \"⦦\", DZcy: \"Џ\", dzcy: \"џ\", dzigrarr: \"⟿\", Eacute: \"É\", eacute: \"é\", easter: \"⩮\", Ecaron: \"Ě\", ecaron: \"ě\", Ecirc: \"Ê\", ecirc: \"ê\", ecir: \"≖\", ecolon: \"≕\", Ecy: \"Э\", ecy: \"э\", eDDot: \"⩷\", Edot: \"Ė\", edot: \"ė\", eDot: \"≑\", ee: \"ⅇ\", efDot: \"≒\", Efr: \"𝔈\", efr: \"𝔢\", eg: \"⪚\", Egrave: \"È\", egrave: \"è\", egs: \"⪖\", egsdot: \"⪘\", el: \"⪙\", Element: \"∈\", elinters: \"⏧\", ell: \"ℓ\", els: \"⪕\", elsdot: \"⪗\", Emacr: \"Ē\", emacr: \"ē\", empty: \"∅\", emptyset: \"∅\", EmptySmallSquare: \"◻\", emptyv: \"∅\", EmptyVerySmallSquare: \"▫\", emsp13: \" \", emsp14: \" \", emsp: \" \", ENG: \"Ŋ\", eng: \"ŋ\", ensp: \" \", Eogon: \"Ę\", eogon: \"ę\", Eopf: \"𝔼\", eopf: \"𝕖\", epar: \"⋕\", eparsl: \"⧣\", eplus: \"⩱\", epsi: \"ε\", Epsilon: \"Ε\", epsilon: \"ε\", epsiv: \"ϵ\", eqcirc: \"≖\", eqcolon: \"≕\", eqsim: \"≂\", eqslantgtr: \"⪖\", eqslantless: \"⪕\", Equal: \"⩵\", equals: \"=\", EqualTilde: \"≂\", equest: \"≟\", Equilibrium: \"⇌\", equiv: \"≡\", equivDD: \"⩸\", eqvparsl: \"⧥\", erarr: \"⥱\", erDot: \"≓\", escr: \"ℯ\", Escr: \"ℰ\", esdot: \"≐\", Esim: \"⩳\", esim: \"≂\", Eta: \"Η\", eta: \"η\", ETH: \"Ð\", eth: \"ð\", Euml: \"Ë\", euml: \"ë\", euro: \"€\", excl: \"!\", exist: \"∃\", Exists: \"∃\", expectation: \"ℰ\", exponentiale: \"ⅇ\", ExponentialE: \"ⅇ\", fallingdotseq: \"≒\", Fcy: \"Ф\", fcy: \"ф\", female: \"♀\", ffilig: \"ﬃ\", fflig: \"ﬀ\", ffllig: \"ﬄ\", Ffr: \"𝔉\", ffr: \"𝔣\", filig: \"ﬁ\", FilledSmallSquare: \"◼\", FilledVerySmallSquare: \"▪\", fjlig: \"fj\", flat: \"♭\", fllig: \"ﬂ\", fltns: \"▱\", fnof: \"ƒ\", Fopf: \"𝔽\", fopf: \"𝕗\", forall: \"∀\", ForAll: \"∀\", fork: \"⋔\", forkv: \"⫙\", Fouriertrf: \"ℱ\", fpartint: \"⨍\", frac12: \"½\", frac13: \"⅓\", frac14: \"¼\", frac15: \"⅕\", frac16: \"⅙\", frac18: \"⅛\", frac23: \"⅔\", frac25: \"⅖\", frac34: \"¾\", frac35: \"⅗\", frac38: \"⅜\", frac45: \"⅘\", frac56: \"⅚\", frac58: \"⅝\", frac78: \"⅞\", frasl: \"⁄\", frown: \"⌢\", fscr: \"𝒻\", Fscr: \"ℱ\", gacute: \"ǵ\", Gamma: \"Γ\", gamma: \"γ\", Gammad: \"Ϝ\", gammad: \"ϝ\", gap: \"⪆\", Gbreve: \"Ğ\", gbreve: \"ğ\", Gcedil: \"Ģ\", Gcirc: \"Ĝ\", gcirc: \"ĝ\", Gcy: \"Г\", gcy: \"г\", Gdot: \"Ġ\", gdot: \"ġ\", ge: \"≥\", gE: \"≧\", gEl: \"⪌\", gel: \"⋛\", geq: \"≥\", geqq: \"≧\", geqslant: \"⩾\", gescc: \"⪩\", ges: \"⩾\", gesdot: \"⪀\", gesdoto: \"⪂\", gesdotol: \"⪄\", gesl: \"⋛︀\", gesles: \"⪔\", Gfr: \"𝔊\", gfr: \"𝔤\", gg: \"≫\", Gg: \"⋙\", ggg: \"⋙\", gimel: \"ℷ\", GJcy: \"Ѓ\", gjcy: \"ѓ\", gla: \"⪥\", gl: \"≷\", glE: \"⪒\", glj: \"⪤\", gnap: \"⪊\", gnapprox: \"⪊\", gne: \"⪈\", gnE: \"≩\", gneq: \"⪈\", gneqq: \"≩\", gnsim: \"⋧\", Gopf: \"𝔾\", gopf: \"𝕘\", grave: \"`\", GreaterEqual: \"≥\", GreaterEqualLess: \"⋛\", GreaterFullEqual: \"≧\", GreaterGreater: \"⪢\", GreaterLess: \"≷\", GreaterSlantEqual: \"⩾\", GreaterTilde: \"≳\", Gscr: \"𝒢\", gscr: \"ℊ\", gsim: \"≳\", gsime: \"⪎\", gsiml: \"⪐\", gtcc: \"⪧\", gtcir: \"⩺\", gt: \">\", GT: \">\", Gt: \"≫\", gtdot: \"⋗\", gtlPar: \"⦕\", gtquest: \"⩼\", gtrapprox: \"⪆\", gtrarr: \"⥸\", gtrdot: \"⋗\", gtreqless: \"⋛\", gtreqqless: \"⪌\", gtrless: \"≷\", gtrsim: \"≳\", gvertneqq: \"≩︀\", gvnE: \"≩︀\", Hacek: \"ˇ\", hairsp: \" \", half: \"½\", hamilt: \"ℋ\", HARDcy: \"Ъ\", hardcy: \"ъ\", harrcir: \"⥈\", harr: \"↔\", hArr: \"⇔\", harrw: \"↭\", Hat: \"^\", hbar: \"ℏ\", Hcirc: \"Ĥ\", hcirc: \"ĥ\", hearts: \"♥\", heartsuit: \"♥\", hellip: \"…\", hercon: \"⊹\", hfr: \"𝔥\", Hfr: \"ℌ\", HilbertSpace: \"ℋ\", hksearow: \"⤥\", hkswarow: \"⤦\", hoarr: \"⇿\", homtht: \"∻\", hookleftarrow: \"↩\", hookrightarrow: \"↪\", hopf: \"𝕙\", Hopf: \"ℍ\", horbar: \"―\", HorizontalLine: \"─\", hscr: \"𝒽\", Hscr: \"ℋ\", hslash: \"ℏ\", Hstrok: \"Ħ\", hstrok: \"ħ\", HumpDownHump: \"≎\", HumpEqual: \"≏\", hybull: \"⁃\", hyphen: \"‐\", Iacute: \"Í\", iacute: \"í\", ic: \"\\u2063\", Icirc: \"Î\", icirc: \"î\", Icy: \"И\", icy: \"и\", Idot: \"İ\", IEcy: \"Е\", iecy: \"е\", iexcl: \"¡\", iff: \"⇔\", ifr: \"𝔦\", Ifr: \"ℑ\", Igrave: \"Ì\", igrave: \"ì\", ii: \"ⅈ\", iiiint: \"⨌\", iiint: \"∭\", iinfin: \"⧜\", iiota: \"℩\", IJlig: \"Ĳ\", ijlig: \"ĳ\", Imacr: \"Ī\", imacr: \"ī\", image: \"ℑ\", ImaginaryI: \"ⅈ\", imagline: \"ℐ\", imagpart: \"ℑ\", imath: \"ı\", Im: \"ℑ\", imof: \"⊷\", imped: \"Ƶ\", Implies: \"⇒\", incare: \"℅\", in: \"∈\", infin: \"∞\", infintie: \"⧝\", inodot: \"ı\", intcal: \"⊺\", int: \"∫\", Int: \"∬\", integers: \"ℤ\", Integral: \"∫\", intercal: \"⊺\", Intersection: \"⋂\", intlarhk: \"⨗\", intprod: \"⨼\", InvisibleComma: \"\\u2063\", InvisibleTimes: \"\\u2062\", IOcy: \"Ё\", iocy: \"ё\", Iogon: \"Į\", iogon: \"į\", Iopf: \"𝕀\", iopf: \"𝕚\", Iota: \"Ι\", iota: \"ι\", iprod: \"⨼\", iquest: \"¿\", iscr: \"𝒾\", Iscr: \"ℐ\", isin: \"∈\", isindot: \"⋵\", isinE: \"⋹\", isins: \"⋴\", isinsv: \"⋳\", isinv: \"∈\", it: \"\\u2062\", Itilde: \"Ĩ\", itilde: \"ĩ\", Iukcy: \"І\", iukcy: \"і\", Iuml: \"Ï\", iuml: \"ï\", Jcirc: \"Ĵ\", jcirc: \"ĵ\", Jcy: \"Й\", jcy: \"й\", Jfr: \"𝔍\", jfr: \"𝔧\", jmath: \"ȷ\", Jopf: \"𝕁\", jopf: \"𝕛\", Jscr: \"𝒥\", jscr: \"𝒿\", Jsercy: \"Ј\", jsercy: \"ј\", Jukcy: \"Є\", jukcy: \"є\", Kappa: \"Κ\", kappa: \"κ\", kappav: \"ϰ\", Kcedil: \"Ķ\", kcedil: \"ķ\", Kcy: \"К\", kcy: \"к\", Kfr: \"𝔎\", kfr: \"𝔨\", kgreen: \"ĸ\", KHcy: \"Х\", khcy: \"х\", KJcy: \"Ќ\", kjcy: \"ќ\", Kopf: \"𝕂\", kopf: \"𝕜\", Kscr: \"𝒦\", kscr: \"𝓀\", lAarr: \"⇚\", Lacute: \"Ĺ\", lacute: \"ĺ\", laemptyv: \"⦴\", lagran: \"ℒ\", Lambda: \"Λ\", lambda: \"λ\", lang: \"⟨\", Lang: \"⟪\", langd: \"⦑\", langle: \"⟨\", lap: \"⪅\", Laplacetrf: \"ℒ\", laquo: \"«\", larrb: \"⇤\", larrbfs: \"⤟\", larr: \"←\", Larr: \"↞\", lArr: \"⇐\", larrfs: \"⤝\", larrhk: \"↩\", larrlp: \"↫\", larrpl: \"⤹\", larrsim: \"⥳\", larrtl: \"↢\", latail: \"⤙\", lAtail: \"⤛\", lat: \"⪫\", late: \"⪭\", lates: \"⪭︀\", lbarr: \"⤌\", lBarr: \"⤎\", lbbrk: \"❲\", lbrace: \"{\", lbrack: \"[\", lbrke: \"⦋\", lbrksld: \"⦏\", lbrkslu: \"⦍\", Lcaron: \"Ľ\", lcaron: \"ľ\", Lcedil: \"Ļ\", lcedil: \"ļ\", lceil: \"⌈\", lcub: \"{\", Lcy: \"Л\", lcy: \"л\", ldca: \"⤶\", ldquo: \"“\", ldquor: \"„\", ldrdhar: \"⥧\", ldrushar: \"⥋\", ldsh: \"↲\", le: \"≤\", lE: \"≦\", LeftAngleBracket: \"⟨\", LeftArrowBar: \"⇤\", leftarrow: \"←\", LeftArrow: \"←\", Leftarrow: \"⇐\", LeftArrowRightArrow: \"⇆\", leftarrowtail: \"↢\", LeftCeiling: \"⌈\", LeftDoubleBracket: \"⟦\", LeftDownTeeVector: \"⥡\", LeftDownVectorBar: \"⥙\", LeftDownVector: \"⇃\", LeftFloor: \"⌊\", leftharpoondown: \"↽\", leftharpoonup: \"↼\", leftleftarrows: \"⇇\", leftrightarrow: \"↔\", LeftRightArrow: \"↔\", Leftrightarrow: \"⇔\", leftrightarrows: \"⇆\", leftrightharpoons: \"⇋\", leftrightsquigarrow: \"↭\", LeftRightVector: \"⥎\", LeftTeeArrow: \"↤\", LeftTee: \"⊣\", LeftTeeVector: \"⥚\", leftthreetimes: \"⋋\", LeftTriangleBar: \"⧏\", LeftTriangle: \"⊲\", LeftTriangleEqual: \"⊴\", LeftUpDownVector: \"⥑\", LeftUpTeeVector: \"⥠\", LeftUpVectorBar: \"⥘\", LeftUpVector: \"↿\", LeftVectorBar: \"⥒\", LeftVector: \"↼\", lEg: \"⪋\", leg: \"⋚\", leq: \"≤\", leqq: \"≦\", leqslant: \"⩽\", lescc: \"⪨\", les: \"⩽\", lesdot: \"⩿\", lesdoto: \"⪁\", lesdotor: \"⪃\", lesg: \"⋚︀\", lesges: \"⪓\", lessapprox: \"⪅\", lessdot: \"⋖\", lesseqgtr: \"⋚\", lesseqqgtr: \"⪋\", LessEqualGreater: \"⋚\", LessFullEqual: \"≦\", LessGreater: \"≶\", lessgtr: \"≶\", LessLess: \"⪡\", lesssim: \"≲\", LessSlantEqual: \"⩽\", LessTilde: \"≲\", lfisht: \"⥼\", lfloor: \"⌊\", Lfr: \"𝔏\", lfr: \"𝔩\", lg: \"≶\", lgE: \"⪑\", lHar: \"⥢\", lhard: \"↽\", lharu: \"↼\", lharul: \"⥪\", lhblk: \"▄\", LJcy: \"Љ\", ljcy: \"љ\", llarr: \"⇇\", ll: \"≪\", Ll: \"⋘\", llcorner: \"⌞\", Lleftarrow: \"⇚\", llhard: \"⥫\", lltri: \"◺\", Lmidot: \"Ŀ\", lmidot: \"ŀ\", lmoustache: \"⎰\", lmoust: \"⎰\", lnap: \"⪉\", lnapprox: \"⪉\", lne: \"⪇\", lnE: \"≨\", lneq: \"⪇\", lneqq: \"≨\", lnsim: \"⋦\", loang: \"⟬\", loarr: \"⇽\", lobrk: \"⟦\", longleftarrow: \"⟵\", LongLeftArrow: \"⟵\", Longleftarrow: \"⟸\", longleftrightarrow: \"⟷\", LongLeftRightArrow: \"⟷\", Longleftrightarrow: \"⟺\", longmapsto: \"⟼\", longrightarrow: \"⟶\", LongRightArrow: \"⟶\", Longrightarrow: \"⟹\", looparrowleft: \"↫\", looparrowright: \"↬\", lopar: \"⦅\", Lopf: \"𝕃\", lopf: \"𝕝\", loplus: \"⨭\", lotimes: \"⨴\", lowast: \"∗\", lowbar: \"_\", LowerLeftArrow: \"↙\", LowerRightArrow: \"↘\", loz: \"◊\", lozenge: \"◊\", lozf: \"⧫\", lpar: \"(\", lparlt: \"⦓\", lrarr: \"⇆\", lrcorner: \"⌟\", lrhar: \"⇋\", lrhard: \"⥭\", lrm: \"\\u200e\", lrtri: \"⊿\", lsaquo: \"‹\", lscr: \"𝓁\", Lscr: \"ℒ\", lsh: \"↰\", Lsh: \"↰\", lsim: \"≲\", lsime: \"⪍\", lsimg: \"⪏\", lsqb: \"[\", lsquo: \"‘\", lsquor: \"‚\", Lstrok: \"Ł\", lstrok: \"ł\", ltcc: \"⪦\", ltcir: \"⩹\", lt: \"<\", LT: \"<\", Lt: \"≪\", ltdot: \"⋖\", lthree: \"⋋\", ltimes: \"⋉\", ltlarr: \"⥶\", ltquest: \"⩻\", ltri: \"◃\", ltrie: \"⊴\", ltrif: \"◂\", ltrPar: \"⦖\", lurdshar: \"⥊\", luruhar: \"⥦\", lvertneqq: \"≨︀\", lvnE: \"≨︀\", macr: \"¯\", male: \"♂\", malt: \"✠\", maltese: \"✠\", Map: \"⤅\", map: \"↦\", mapsto: \"↦\", mapstodown: \"↧\", mapstoleft: \"↤\", mapstoup: \"↥\", marker: \"▮\", mcomma: \"⨩\", Mcy: \"М\", mcy: \"м\", mdash: \"—\", mDDot: \"∺\", measuredangle: \"∡\", MediumSpace: \" \", Mellintrf: \"ℳ\", Mfr: \"𝔐\", mfr: \"𝔪\", mho: \"℧\", micro: \"µ\", midast: \"*\", midcir: \"⫰\", mid: \"∣\", middot: \"·\", minusb: \"⊟\", minus: \"−\", minusd: \"∸\", minusdu: \"⨪\", MinusPlus: \"∓\", mlcp: \"⫛\", mldr: \"…\", mnplus: \"∓\", models: \"⊧\", Mopf: \"𝕄\", mopf: \"𝕞\", mp: \"∓\", mscr: \"𝓂\", Mscr: \"ℳ\", mstpos: \"∾\", Mu: \"Μ\", mu: \"μ\", multimap: \"⊸\", mumap: \"⊸\", nabla: \"∇\", Nacute: \"Ń\", nacute: \"ń\", nang: \"∠⃒\", nap: \"≉\", napE: \"⩰̸\", napid: \"≋̸\", napos: \"ŉ\", napprox: \"≉\", natural: \"♮\", naturals: \"ℕ\", natur: \"♮\", nbsp: \" \", nbump: \"≎̸\", nbumpe: \"≏̸\", ncap: \"⩃\", Ncaron: \"Ň\", ncaron: \"ň\", Ncedil: \"Ņ\", ncedil: \"ņ\", ncong: \"≇\", ncongdot: \"⩭̸\", ncup: \"⩂\", Ncy: \"Н\", ncy: \"н\", ndash: \"–\", nearhk: \"⤤\", nearr: \"↗\", neArr: \"⇗\", nearrow: \"↗\", ne: \"≠\", nedot: \"≐̸\", NegativeMediumSpace: \"​\", NegativeThickSpace: \"​\", NegativeThinSpace: \"​\", NegativeVeryThinSpace: \"​\", nequiv: \"≢\", nesear: \"⤨\", nesim: \"≂̸\", NestedGreaterGreater: \"≫\", NestedLessLess: \"≪\", NewLine: \"\\u000a\", nexist: \"∄\", nexists: \"∄\", Nfr: \"𝔑\", nfr: \"𝔫\", ngE: \"≧̸\", nge: \"≱\", ngeq: \"≱\", ngeqq: \"≧̸\", ngeqslant: \"⩾̸\", nges: \"⩾̸\", nGg: \"⋙̸\", ngsim: \"≵\", nGt: \"≫⃒\", ngt: \"≯\", ngtr: \"≯\", nGtv: \"≫̸\", nharr: \"↮\", nhArr: \"⇎\", nhpar: \"⫲\", ni: \"∋\", nis: \"⋼\", nisd: \"⋺\", niv: \"∋\", NJcy: \"Њ\", njcy: \"њ\", nlarr: \"↚\", nlArr: \"⇍\", nldr: \"‥\", nlE: \"≦̸\", nle: \"≰\", nleftarrow: \"↚\", nLeftarrow: \"⇍\", nleftrightarrow: \"↮\", nLeftrightarrow: \"⇎\", nleq: \"≰\", nleqq: \"≦̸\", nleqslant: \"⩽̸\", nles: \"⩽̸\", nless: \"≮\", nLl: \"⋘̸\", nlsim: \"≴\", nLt: \"≪⃒\", nlt: \"≮\", nltri: \"⋪\", nltrie: \"⋬\", nLtv: \"≪̸\", nmid: \"∤\", NoBreak: \"\\u2060\", NonBreakingSpace: \" \", nopf: \"𝕟\", Nopf: \"ℕ\", Not: \"⫬\", not: \"¬\", NotCongruent: \"≢\", NotCupCap: \"≭\", NotDoubleVerticalBar: \"∦\", NotElement: \"∉\", NotEqual: \"≠\", NotEqualTilde: \"≂̸\", NotExists: \"∄\", NotGreater: \"≯\", NotGreaterEqual: \"≱\", NotGreaterFullEqual: \"≧̸\", NotGreaterGreater: \"≫̸\", NotGreaterLess: \"≹\", NotGreaterSlantEqual: \"⩾̸\", NotGreaterTilde: \"≵\", NotHumpDownHump: \"≎̸\", NotHumpEqual: \"≏̸\", notin: \"∉\", notindot: \"⋵̸\", notinE: \"⋹̸\", notinva: \"∉\", notinvb: \"⋷\", notinvc: \"⋶\", NotLeftTriangleBar: \"⧏̸\", NotLeftTriangle: \"⋪\", NotLeftTriangleEqual: \"⋬\", NotLess: \"≮\", NotLessEqual: \"≰\", NotLessGreater: \"≸\", NotLessLess: \"≪̸\", NotLessSlantEqual: \"⩽̸\", NotLessTilde: \"≴\", NotNestedGreaterGreater: \"⪢̸\", NotNestedLessLess: \"⪡̸\", notni: \"∌\", notniva: \"∌\", notnivb: \"⋾\", notnivc: \"⋽\", NotPrecedes: \"⊀\", NotPrecedesEqual: \"⪯̸\", NotPrecedesSlantEqual: \"⋠\", NotReverseElement: \"∌\", NotRightTriangleBar: \"⧐̸\", NotRightTriangle: \"⋫\", NotRightTriangleEqual: \"⋭\", NotSquareSubset: \"⊏̸\", NotSquareSubsetEqual: \"⋢\", NotSquareSuperset: \"⊐̸\", NotSquareSupersetEqual: \"⋣\", NotSubset: \"⊂⃒\", NotSubsetEqual: \"⊈\", NotSucceeds: \"⊁\", NotSucceedsEqual: \"⪰̸\", NotSucceedsSlantEqual: \"⋡\", NotSucceedsTilde: \"≿̸\", NotSuperset: \"⊃⃒\", NotSupersetEqual: \"⊉\", NotTilde: \"≁\", NotTildeEqual: \"≄\", NotTildeFullEqual: \"≇\", NotTildeTilde: \"≉\", NotVerticalBar: \"∤\", nparallel: \"∦\", npar: \"∦\", nparsl: \"⫽⃥\", npart: \"∂̸\", npolint: \"⨔\", npr: \"⊀\", nprcue: \"⋠\", nprec: \"⊀\", npreceq: \"⪯̸\", npre: \"⪯̸\", nrarrc: \"⤳̸\", nrarr: \"↛\", nrArr: \"⇏\", nrarrw: \"↝̸\", nrightarrow: \"↛\", nRightarrow: \"⇏\", nrtri: \"⋫\", nrtrie: \"⋭\", nsc: \"⊁\", nsccue: \"⋡\", nsce: \"⪰̸\", Nscr: \"𝒩\", nscr: \"𝓃\", nshortmid: \"∤\", nshortparallel: \"∦\", nsim: \"≁\", nsime: \"≄\", nsimeq: \"≄\", nsmid: \"∤\", nspar: \"∦\", nsqsube: \"⋢\", nsqsupe: \"⋣\", nsub: \"⊄\", nsubE: \"⫅̸\", nsube: \"⊈\", nsubset: \"⊂⃒\", nsubseteq: \"⊈\", nsubseteqq: \"⫅̸\", nsucc: \"⊁\", nsucceq: \"⪰̸\", nsup: \"⊅\", nsupE: \"⫆̸\", nsupe: \"⊉\", nsupset: \"⊃⃒\", nsupseteq: \"⊉\", nsupseteqq: \"⫆̸\", ntgl: \"≹\", Ntilde: \"Ñ\", ntilde: \"ñ\", ntlg: \"≸\", ntriangleleft: \"⋪\", ntrianglelefteq: \"⋬\", ntriangleright: \"⋫\", ntrianglerighteq: \"⋭\", Nu: \"Ν\", nu: \"ν\", num: \"#\", numero: \"№\", numsp: \" \", nvap: \"≍⃒\", nvdash: \"⊬\", nvDash: \"⊭\", nVdash: \"⊮\", nVDash: \"⊯\", nvge: \"≥⃒\", nvgt: \">⃒\", nvHarr: \"⤄\", nvinfin: \"⧞\", nvlArr: \"⤂\", nvle: \"≤⃒\", nvlt: \"<⃒\", nvltrie: \"⊴⃒\", nvrArr: \"⤃\", nvrtrie: \"⊵⃒\", nvsim: \"∼⃒\", nwarhk: \"⤣\", nwarr: \"↖\", nwArr: \"⇖\", nwarrow: \"↖\", nwnear: \"⤧\", Oacute: \"Ó\", oacute: \"ó\", oast: \"⊛\", Ocirc: \"Ô\", ocirc: \"ô\", ocir: \"⊚\", Ocy: \"О\", ocy: \"о\", odash: \"⊝\", Odblac: \"Ő\", odblac: \"ő\", odiv: \"⨸\", odot: \"⊙\", odsold: \"⦼\", OElig: \"Œ\", oelig: \"œ\", ofcir: \"⦿\", Ofr: \"𝔒\", ofr: \"𝔬\", ogon: \"˛\", Ograve: \"Ò\", ograve: \"ò\", ogt: \"⧁\", ohbar: \"⦵\", ohm: \"Ω\", oint: \"∮\", olarr: \"↺\", olcir: \"⦾\", olcross: \"⦻\", oline: \"‾\", olt: \"⧀\", Omacr: \"Ō\", omacr: \"ō\", Omega: \"Ω\", omega: \"ω\", Omicron: \"Ο\", omicron: \"ο\", omid: \"⦶\", ominus: \"⊖\", Oopf: \"𝕆\", oopf: \"𝕠\", opar: \"⦷\", OpenCurlyDoubleQuote: \"“\", OpenCurlyQuote: \"‘\", operp: \"⦹\", oplus: \"⊕\", orarr: \"↻\", Or: \"⩔\", or: \"∨\", ord: \"⩝\", order: \"ℴ\", orderof: \"ℴ\", ordf: \"ª\", ordm: \"º\", origof: \"⊶\", oror: \"⩖\", orslope: \"⩗\", orv: \"⩛\", oS: \"Ⓢ\", Oscr: \"𝒪\", oscr: \"ℴ\", Oslash: \"Ø\", oslash: \"ø\", osol: \"⊘\", Otilde: \"Õ\", otilde: \"õ\", otimesas: \"⨶\", Otimes: \"⨷\", otimes: \"⊗\", Ouml: \"Ö\", ouml: \"ö\", ovbar: \"⌽\", OverBar: \"‾\", OverBrace: \"⏞\", OverBracket: \"⎴\", OverParenthesis: \"⏜\", para: \"¶\", parallel: \"∥\", par: \"∥\", parsim: \"⫳\", parsl: \"⫽\", part: \"∂\", PartialD: \"∂\", Pcy: \"П\", pcy: \"п\", percnt: \"%\", period: \".\", permil: \"‰\", perp: \"⊥\", pertenk: \"‱\", Pfr: \"𝔓\", pfr: \"𝔭\", Phi: \"Φ\", phi: \"φ\", phiv: \"ϕ\", phmmat: \"ℳ\", phone: \"☎\", Pi: \"Π\", pi: \"π\", pitchfork: \"⋔\", piv: \"ϖ\", planck: \"ℏ\", planckh: \"ℎ\", plankv: \"ℏ\", plusacir: \"⨣\", plusb: \"⊞\", pluscir: \"⨢\", plus: \"+\", plusdo: \"∔\", plusdu: \"⨥\", pluse: \"⩲\", PlusMinus: \"±\", plusmn: \"±\", plussim: \"⨦\", plustwo: \"⨧\", pm: \"±\", Poincareplane: \"ℌ\", pointint: \"⨕\", popf: \"𝕡\", Popf: \"ℙ\", pound: \"£\", prap: \"⪷\", Pr: \"⪻\", pr: \"≺\", prcue: \"≼\", precapprox: \"⪷\", prec: \"≺\", preccurlyeq: \"≼\", Precedes: \"≺\", PrecedesEqual: \"⪯\", PrecedesSlantEqual: \"≼\", PrecedesTilde: \"≾\", preceq: \"⪯\", precnapprox: \"⪹\", precneqq: \"⪵\", precnsim: \"⋨\", pre: \"⪯\", prE: \"⪳\", precsim: \"≾\", prime: \"′\", Prime: \"″\", primes: \"ℙ\", prnap: \"⪹\", prnE: \"⪵\", prnsim: \"⋨\", prod: \"∏\", Product: \"∏\", profalar: \"⌮\", profline: \"⌒\", profsurf: \"⌓\", prop: \"∝\", Proportional: \"∝\", Proportion: \"∷\", propto: \"∝\", prsim: \"≾\", prurel: \"⊰\", Pscr: \"𝒫\", pscr: \"𝓅\", Psi: \"Ψ\", psi: \"ψ\", puncsp: \" \", Qfr: \"𝔔\", qfr: \"𝔮\", qint: \"⨌\", qopf: \"𝕢\", Qopf: \"ℚ\", qprime: \"⁗\", Qscr: \"𝒬\", qscr: \"𝓆\", quaternions: \"ℍ\", quatint: \"⨖\", quest: \"?\", questeq: \"≟\", quot: \"\\\"\", QUOT: \"\\\"\", rAarr: \"⇛\", race: \"∽̱\", Racute: \"Ŕ\", racute: \"ŕ\", radic: \"√\", raemptyv: \"⦳\", rang: \"⟩\", Rang: \"⟫\", rangd: \"⦒\", range: \"⦥\", rangle: \"⟩\", raquo: \"»\", rarrap: \"⥵\", rarrb: \"⇥\", rarrbfs: \"⤠\", rarrc: \"⤳\", rarr: \"→\", Rarr: \"↠\", rArr: \"⇒\", rarrfs: \"⤞\", rarrhk: \"↪\", rarrlp: \"↬\", rarrpl: \"⥅\", rarrsim: \"⥴\", Rarrtl: \"⤖\", rarrtl: \"↣\", rarrw: \"↝\", ratail: \"⤚\", rAtail: \"⤜\", ratio: \"∶\", rationals: \"ℚ\", rbarr: \"⤍\", rBarr: \"⤏\", RBarr: \"⤐\", rbbrk: \"❳\", rbrace: \"}\", rbrack: \"]\", rbrke: \"⦌\", rbrksld: \"⦎\", rbrkslu: \"⦐\", Rcaron: \"Ř\", rcaron: \"ř\", Rcedil: \"Ŗ\", rcedil: \"ŗ\", rceil: \"⌉\", rcub: \"}\", Rcy: \"Р\", rcy: \"р\", rdca: \"⤷\", rdldhar: \"⥩\", rdquo: \"”\", rdquor: \"”\", rdsh: \"↳\", real: \"ℜ\", realine: \"ℛ\", realpart: \"ℜ\", reals: \"ℝ\", Re: \"ℜ\", rect: \"▭\", reg: \"®\", REG: \"®\", ReverseElement: \"∋\", ReverseEquilibrium: \"⇋\", ReverseUpEquilibrium: \"⥯\", rfisht: \"⥽\", rfloor: \"⌋\", rfr: \"𝔯\", Rfr: \"ℜ\", rHar: \"⥤\", rhard: \"⇁\", rharu: \"⇀\", rharul: \"⥬\", Rho: \"Ρ\", rho: \"ρ\", rhov: \"ϱ\", RightAngleBracket: \"⟩\", RightArrowBar: \"⇥\", rightarrow: \"→\", RightArrow: \"→\", Rightarrow: \"⇒\", RightArrowLeftArrow: \"⇄\", rightarrowtail: \"↣\", RightCeiling: \"⌉\", RightDoubleBracket: \"⟧\", RightDownTeeVector: \"⥝\", RightDownVectorBar: \"⥕\", RightDownVector: \"⇂\", RightFloor: \"⌋\", rightharpoondown: \"⇁\", rightharpoonup: \"⇀\", rightleftarrows: \"⇄\", rightleftharpoons: \"⇌\", rightrightarrows: \"⇉\", rightsquigarrow: \"↝\", RightTeeArrow: \"↦\", RightTee: \"⊢\", RightTeeVector: \"⥛\", rightthreetimes: \"⋌\", RightTriangleBar: \"⧐\", RightTriangle: \"⊳\", RightTriangleEqual: \"⊵\", RightUpDownVector: \"⥏\", RightUpTeeVector: \"⥜\", RightUpVectorBar: \"⥔\", RightUpVector: \"↾\", RightVectorBar: \"⥓\", RightVector: \"⇀\", ring: \"˚\", risingdotseq: \"≓\", rlarr: \"⇄\", rlhar: \"⇌\", rlm: \"\\u200f\", rmoustache: \"⎱\", rmoust: \"⎱\", rnmid: \"⫮\", roang: \"⟭\", roarr: \"⇾\", robrk: \"⟧\", ropar: \"⦆\", ropf: \"𝕣\", Ropf: \"ℝ\", roplus: \"⨮\", rotimes: \"⨵\", RoundImplies: \"⥰\", rpar: \")\", rpargt: \"⦔\", rppolint: \"⨒\", rrarr: \"⇉\", Rrightarrow: \"⇛\", rsaquo: \"›\", rscr: \"𝓇\", Rscr: \"ℛ\", rsh: \"↱\", Rsh: \"↱\", rsqb: \"]\", rsquo: \"’\", rsquor: \"’\", rthree: \"⋌\", rtimes: \"⋊\", rtri: \"▹\", rtrie: \"⊵\", rtrif: \"▸\", rtriltri: \"⧎\", RuleDelayed: \"⧴\", ruluhar: \"⥨\", rx: \"℞\", Sacute: \"Ś\", sacute: \"ś\", sbquo: \"‚\", scap: \"⪸\", Scaron: \"Š\", scaron: \"š\", Sc: \"⪼\", sc: \"≻\", sccue: \"≽\", sce: \"⪰\", scE: \"⪴\", Scedil: \"Ş\", scedil: \"ş\", Scirc: \"Ŝ\", scirc: \"ŝ\", scnap: \"⪺\", scnE: \"⪶\", scnsim: \"⋩\", scpolint: \"⨓\", scsim: \"≿\", Scy: \"С\", scy: \"с\", sdotb: \"⊡\", sdot: \"⋅\", sdote: \"⩦\", searhk: \"⤥\", searr: \"↘\", seArr: \"⇘\", searrow: \"↘\", sect: \"§\", semi: \";\", seswar: \"⤩\", setminus: \"∖\", setmn: \"∖\", sext: \"✶\", Sfr: \"𝔖\", sfr: \"𝔰\", sfrown: \"⌢\", sharp: \"♯\", SHCHcy: \"Щ\", shchcy: \"щ\", SHcy: \"Ш\", shcy: \"ш\", ShortDownArrow: \"↓\", ShortLeftArrow: \"←\", shortmid: \"∣\", shortparallel: \"∥\", ShortRightArrow: \"→\", ShortUpArrow: \"↑\", shy: \"\\u00ad\", Sigma: \"Σ\", sigma: \"σ\", sigmaf: \"ς\", sigmav: \"ς\", sim: \"∼\", simdot: \"⩪\", sime: \"≃\", simeq: \"≃\", simg: \"⪞\", simgE: \"⪠\", siml: \"⪝\", simlE: \"⪟\", simne: \"≆\", simplus: \"⨤\", simrarr: \"⥲\", slarr: \"←\", SmallCircle: \"∘\", smallsetminus: \"∖\", smashp: \"⨳\", smeparsl: \"⧤\", smid: \"∣\", smile: \"⌣\", smt: \"⪪\", smte: \"⪬\", smtes: \"⪬︀\", SOFTcy: \"Ь\", softcy: \"ь\", solbar: \"⌿\", solb: \"⧄\", sol: \"/\", Sopf: \"𝕊\", sopf: \"𝕤\", spades: \"♠\", spadesuit: \"♠\", spar: \"∥\", sqcap: \"⊓\", sqcaps: \"⊓︀\", sqcup: \"⊔\", sqcups: \"⊔︀\", Sqrt: \"√\", sqsub: \"⊏\", sqsube: \"⊑\", sqsubset: \"⊏\", sqsubseteq: \"⊑\", sqsup: \"⊐\", sqsupe: \"⊒\", sqsupset: \"⊐\", sqsupseteq: \"⊒\", square: \"□\", Square: \"□\", SquareIntersection: \"⊓\", SquareSubset: \"⊏\", SquareSubsetEqual: \"⊑\", SquareSuperset: \"⊐\", SquareSupersetEqual: \"⊒\", SquareUnion: \"⊔\", squarf: \"▪\", squ: \"□\", squf: \"▪\", srarr: \"→\", Sscr: \"𝒮\", sscr: \"𝓈\", ssetmn: \"∖\", ssmile: \"⌣\", sstarf: \"⋆\", Star: \"⋆\", star: \"☆\", starf: \"★\", straightepsilon: \"ϵ\", straightphi: \"ϕ\", strns: \"¯\", sub: \"⊂\", Sub: \"⋐\", subdot: \"⪽\", subE: \"⫅\", sube: \"⊆\", subedot: \"⫃\", submult: \"⫁\", subnE: \"⫋\", subne: \"⊊\", subplus: \"⪿\", subrarr: \"⥹\", subset: \"⊂\", Subset: \"⋐\", subseteq: \"⊆\", subseteqq: \"⫅\", SubsetEqual: \"⊆\", subsetneq: \"⊊\", subsetneqq: \"⫋\", subsim: \"⫇\", subsub: \"⫕\", subsup: \"⫓\", succapprox: \"⪸\", succ: \"≻\", succcurlyeq: \"≽\", Succeeds: \"≻\", SucceedsEqual: \"⪰\", SucceedsSlantEqual: \"≽\", SucceedsTilde: \"≿\", succeq: \"⪰\", succnapprox: \"⪺\", succneqq: \"⪶\", succnsim: \"⋩\", succsim: \"≿\", SuchThat: \"∋\", sum: \"∑\", Sum: \"∑\", sung: \"♪\", sup1: \"¹\", sup2: \"²\", sup3: \"³\", sup: \"⊃\", Sup: \"⋑\", supdot: \"⪾\", supdsub: \"⫘\", supE: \"⫆\", supe: \"⊇\", supedot: \"⫄\", Superset: \"⊃\", SupersetEqual: \"⊇\", suphsol: \"⟉\", suphsub: \"⫗\", suplarr: \"⥻\", supmult: \"⫂\", supnE: \"⫌\", supne: \"⊋\", supplus: \"⫀\", supset: \"⊃\", Supset: \"⋑\", supseteq: \"⊇\", supseteqq: \"⫆\", supsetneq: \"⊋\", supsetneqq: \"⫌\", supsim: \"⫈\", supsub: \"⫔\", supsup: \"⫖\", swarhk: \"⤦\", swarr: \"↙\", swArr: \"⇙\", swarrow: \"↙\", swnwar: \"⤪\", szlig: \"ß\", Tab: \"\\u0009\", target: \"⌖\", Tau: \"Τ\", tau: \"τ\", tbrk: \"⎴\", Tcaron: \"Ť\", tcaron: \"ť\", Tcedil: \"Ţ\", tcedil: \"ţ\", Tcy: \"Т\", tcy: \"т\", tdot: \"⃛\", telrec: \"⌕\", Tfr: \"𝔗\", tfr: \"𝔱\", there4: \"∴\", therefore: \"∴\", Therefore: \"∴\", Theta: \"Θ\", theta: \"θ\", thetasym: \"ϑ\", thetav: \"ϑ\", thickapprox: \"≈\", thicksim: \"∼\", ThickSpace: \"  \", ThinSpace: \" \", thinsp: \" \", thkap: \"≈\", thksim: \"∼\", THORN: \"Þ\", thorn: \"þ\", tilde: \"˜\", Tilde: \"∼\", TildeEqual: \"≃\", TildeFullEqual: \"≅\", TildeTilde: \"≈\", timesbar: \"⨱\", timesb: \"⊠\", times: \"×\", timesd: \"⨰\", tint: \"∭\", toea: \"⤨\", topbot: \"⌶\", topcir: \"⫱\", top: \"⊤\", Topf: \"𝕋\", topf: \"𝕥\", topfork: \"⫚\", tosa: \"⤩\", tprime: \"‴\", trade: \"™\", TRADE: \"™\", triangle: \"▵\", triangledown: \"▿\", triangleleft: \"◃\", trianglelefteq: \"⊴\", triangleq: \"≜\", triangleright: \"▹\", trianglerighteq: \"⊵\", tridot: \"◬\", trie: \"≜\", triminus: \"⨺\", TripleDot: \"⃛\", triplus: \"⨹\", trisb: \"⧍\", tritime: \"⨻\", trpezium: \"⏢\", Tscr: \"𝒯\", tscr: \"𝓉\", TScy: \"Ц\", tscy: \"ц\", TSHcy: \"Ћ\", tshcy: \"ћ\", Tstrok: \"Ŧ\", tstrok: \"ŧ\", twixt: \"≬\", twoheadleftarrow: \"↞\", twoheadrightarrow: \"↠\", Uacute: \"Ú\", uacute: \"ú\", uarr: \"↑\", Uarr: \"↟\", uArr: \"⇑\", Uarrocir: \"⥉\", Ubrcy: \"Ў\", ubrcy: \"ў\", Ubreve: \"Ŭ\", ubreve: \"ŭ\", Ucirc: \"Û\", ucirc: \"û\", Ucy: \"У\", ucy: \"у\", udarr: \"⇅\", Udblac: \"Ű\", udblac: \"ű\", udhar: \"⥮\", ufisht: \"⥾\", Ufr: \"𝔘\", ufr: \"𝔲\", Ugrave: \"Ù\", ugrave: \"ù\", uHar: \"⥣\", uharl: \"↿\", uharr: \"↾\", uhblk: \"▀\", ulcorn: \"⌜\", ulcorner: \"⌜\", ulcrop: \"⌏\", ultri: \"◸\", Umacr: \"Ū\", umacr: \"ū\", uml: \"¨\", UnderBar: \"_\", UnderBrace: \"⏟\", UnderBracket: \"⎵\", UnderParenthesis: \"⏝\", Union: \"⋃\", UnionPlus: \"⊎\", Uogon: \"Ų\", uogon: \"ų\", Uopf: \"𝕌\", uopf: \"𝕦\", UpArrowBar: \"⤒\", uparrow: \"↑\", UpArrow: \"↑\", Uparrow: \"⇑\", UpArrowDownArrow: \"⇅\", updownarrow: \"↕\", UpDownArrow: \"↕\", Updownarrow: \"⇕\", UpEquilibrium: \"⥮\", upharpoonleft: \"↿\", upharpoonright: \"↾\", uplus: \"⊎\", UpperLeftArrow: \"↖\", UpperRightArrow: \"↗\", upsi: \"υ\", Upsi: \"ϒ\", upsih: \"ϒ\", Upsilon: \"Υ\", upsilon: \"υ\", UpTeeArrow: \"↥\", UpTee: \"⊥\", upuparrows: \"⇈\", urcorn: \"⌝\", urcorner: \"⌝\", urcrop: \"⌎\", Uring: \"Ů\", uring: \"ů\", urtri: \"◹\", Uscr: \"𝒰\", uscr: \"𝓊\", utdot: \"⋰\", Utilde: \"Ũ\", utilde: \"ũ\", utri: \"▵\", utrif: \"▴\", uuarr: \"⇈\", Uuml: \"Ü\", uuml: \"ü\", uwangle: \"⦧\", vangrt: \"⦜\", varepsilon: \"ϵ\", varkappa: \"ϰ\", varnothing: \"∅\", varphi: \"ϕ\", varpi: \"ϖ\", varpropto: \"∝\", varr: \"↕\", vArr: \"⇕\", varrho: \"ϱ\", varsigma: \"ς\", varsubsetneq: \"⊊︀\", varsubsetneqq: \"⫋︀\", varsupsetneq: \"⊋︀\", varsupsetneqq: \"⫌︀\", vartheta: \"ϑ\", vartriangleleft: \"⊲\", vartriangleright: \"⊳\", vBar: \"⫨\", Vbar: \"⫫\", vBarv: \"⫩\", Vcy: \"В\", vcy: \"в\", vdash: \"⊢\", vDash: \"⊨\", Vdash: \"⊩\", VDash: \"⊫\", Vdashl: \"⫦\", veebar: \"⊻\", vee: \"∨\", Vee: \"⋁\", veeeq: \"≚\", vellip: \"⋮\", verbar: \"|\", Verbar: \"‖\", vert: \"|\", Vert: \"‖\", VerticalBar: \"∣\", VerticalLine: \"|\", VerticalSeparator: \"❘\", VerticalTilde: \"≀\", VeryThinSpace: \" \", Vfr: \"𝔙\", vfr: \"𝔳\", vltri: \"⊲\", vnsub: \"⊂⃒\", vnsup: \"⊃⃒\", Vopf: \"𝕍\", vopf: \"𝕧\", vprop: \"∝\", vrtri: \"⊳\", Vscr: \"𝒱\", vscr: \"𝓋\", vsubnE: \"⫋︀\", vsubne: \"⊊︀\", vsupnE: \"⫌︀\", vsupne: \"⊋︀\", Vvdash: \"⊪\", vzigzag: \"⦚\", Wcirc: \"Ŵ\", wcirc: \"ŵ\", wedbar: \"⩟\", wedge: \"∧\", Wedge: \"⋀\", wedgeq: \"≙\", weierp: \"℘\", Wfr: \"𝔚\", wfr: \"𝔴\", Wopf: \"𝕎\", wopf: \"𝕨\", wp: \"℘\", wr: \"≀\", wreath: \"≀\", Wscr: \"𝒲\", wscr: \"𝓌\", xcap: \"⋂\", xcirc: \"◯\", xcup: \"⋃\", xdtri: \"▽\", Xfr: \"𝔛\", xfr: \"𝔵\", xharr: \"⟷\", xhArr: \"⟺\", Xi: \"Ξ\", xi: \"ξ\", xlarr: \"⟵\", xlArr: \"⟸\", xmap: \"⟼\", xnis: \"⋻\", xodot: \"⨀\", Xopf: \"𝕏\", xopf: \"𝕩\", xoplus: \"⨁\", xotime: \"⨂\", xrarr: \"⟶\", xrArr: \"⟹\", Xscr: \"𝒳\", xscr: \"𝓍\", xsqcup: \"⨆\", xuplus: \"⨄\", xutri: \"△\", xvee: \"⋁\", xwedge: \"⋀\", Yacute: \"Ý\", yacute: \"ý\", YAcy: \"Я\", yacy: \"я\", Ycirc: \"Ŷ\", ycirc: \"ŷ\", Ycy: \"Ы\", ycy: \"ы\", yen: \"¥\", Yfr: \"𝔜\", yfr: \"𝔶\", YIcy: \"Ї\", yicy: \"ї\", Yopf: \"𝕐\", yopf: \"𝕪\", Yscr: \"𝒴\", yscr: \"𝓎\", YUcy: \"Ю\", yucy: \"ю\", yuml: \"ÿ\", Yuml: \"Ÿ\", Zacute: \"Ź\", zacute: \"ź\", Zcaron: \"Ž\", zcaron: \"ž\", Zcy: \"З\", zcy: \"з\", Zdot: \"Ż\", zdot: \"ż\", zeetrf: \"ℨ\", ZeroWidthSpace: \"​\", Zeta: \"Ζ\", zeta: \"ζ\", zfr: \"𝔷\", Zfr: \"ℨ\", ZHcy: \"Ж\", zhcy: \"ж\", zigrarr: \"⇝\", zopf: \"𝕫\", Zopf: \"ℤ\", Zscr: \"𝒵\", zscr: \"𝓏\", zwj: \"\\u200d\", zwnj: \"\\u200c\"\n};\n\nvar HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;\nvar CHARCODE = /^#([0-9]+)$/;\nvar NAMED = /^([A-Za-z0-9]+)$/;\nvar EntityParser = /** @class */ (function () {\n    function EntityParser(named) {\n        this.named = named;\n    }\n    EntityParser.prototype.parse = function (entity) {\n        if (!entity) {\n            return;\n        }\n        var matches = entity.match(HEXCHARCODE);\n        if (matches) {\n            return String.fromCharCode(parseInt(matches[1], 16));\n        }\n        matches = entity.match(CHARCODE);\n        if (matches) {\n            return String.fromCharCode(parseInt(matches[1], 10));\n        }\n        matches = entity.match(NAMED);\n        if (matches) {\n            return this.named[matches[1]];\n        }\n    };\n    return EntityParser;\n}());\n\nvar WSP = /[\\t\\n\\f ]/;\nvar ALPHA = /[A-Za-z]/;\nvar CRLF = /\\r\\n?/g;\nfunction isSpace(char) {\n    return WSP.test(char);\n}\nfunction isAlpha(char) {\n    return ALPHA.test(char);\n}\nfunction preprocessInput(input) {\n    return input.replace(CRLF, '\\n');\n}\n\nvar EventedTokenizer = /** @class */ (function () {\n    function EventedTokenizer(delegate, entityParser) {\n        this.delegate = delegate;\n        this.entityParser = entityParser;\n        this.state = \"beforeData\" /* beforeData */;\n        this.line = -1;\n        this.column = -1;\n        this.input = '';\n        this.index = -1;\n        this.tagNameBuffer = '';\n        this.states = {\n            beforeData: function () {\n                var char = this.peek();\n                if (char === '<' && !this.isIgnoredEndTag()) {\n                    this.transitionTo(\"tagOpen\" /* tagOpen */);\n                    this.markTagStart();\n                    this.consume();\n                }\n                else {\n                    if (char === '\\n') {\n                        var tag = this.tagNameBuffer.toLowerCase();\n                        if (tag === 'pre' || tag === 'textarea') {\n                            this.consume();\n                        }\n                    }\n                    this.transitionTo(\"data\" /* data */);\n                    this.delegate.beginData();\n                }\n            },\n            data: function () {\n                var char = this.peek();\n                var tag = this.tagNameBuffer;\n                if (char === '<' && !this.isIgnoredEndTag()) {\n                    this.delegate.finishData();\n                    this.transitionTo(\"tagOpen\" /* tagOpen */);\n                    this.markTagStart();\n                    this.consume();\n                }\n                else if (char === '&' && tag !== 'script' && tag !== 'style') {\n                    this.consume();\n                    this.delegate.appendToData(this.consumeCharRef() || '&');\n                }\n                else {\n                    this.consume();\n                    this.delegate.appendToData(char);\n                }\n            },\n            tagOpen: function () {\n                var char = this.consume();\n                if (char === '!') {\n                    this.transitionTo(\"markupDeclarationOpen\" /* markupDeclarationOpen */);\n                }\n                else if (char === '/') {\n                    this.transitionTo(\"endTagOpen\" /* endTagOpen */);\n                }\n                else if (char === '@' || char === ':' || isAlpha(char)) {\n                    this.transitionTo(\"tagName\" /* tagName */);\n                    this.tagNameBuffer = '';\n                    this.delegate.beginStartTag();\n                    this.appendToTagName(char);\n                }\n            },\n            markupDeclarationOpen: function () {\n                var char = this.consume();\n                if (char === '-' && this.peek() === '-') {\n                    this.consume();\n                    this.transitionTo(\"commentStart\" /* commentStart */);\n                    this.delegate.beginComment();\n                }\n            },\n            commentStart: function () {\n                var char = this.consume();\n                if (char === '-') {\n                    this.transitionTo(\"commentStartDash\" /* commentStartDash */);\n                }\n                else if (char === '>') {\n                    this.delegate.finishComment();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.delegate.appendToCommentData(char);\n                    this.transitionTo(\"comment\" /* comment */);\n                }\n            },\n            commentStartDash: function () {\n                var char = this.consume();\n                if (char === '-') {\n                    this.transitionTo(\"commentEnd\" /* commentEnd */);\n                }\n                else if (char === '>') {\n                    this.delegate.finishComment();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.delegate.appendToCommentData('-');\n                    this.transitionTo(\"comment\" /* comment */);\n                }\n            },\n            comment: function () {\n                var char = this.consume();\n                if (char === '-') {\n                    this.transitionTo(\"commentEndDash\" /* commentEndDash */);\n                }\n                else {\n                    this.delegate.appendToCommentData(char);\n                }\n            },\n            commentEndDash: function () {\n                var char = this.consume();\n                if (char === '-') {\n                    this.transitionTo(\"commentEnd\" /* commentEnd */);\n                }\n                else {\n                    this.delegate.appendToCommentData('-' + char);\n                    this.transitionTo(\"comment\" /* comment */);\n                }\n            },\n            commentEnd: function () {\n                var char = this.consume();\n                if (char === '>') {\n                    this.delegate.finishComment();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.delegate.appendToCommentData('--' + char);\n                    this.transitionTo(\"comment\" /* comment */);\n                }\n            },\n            tagName: function () {\n                var char = this.consume();\n                if (isSpace(char)) {\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                }\n                else if (char === '/') {\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                }\n                else if (char === '>') {\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.appendToTagName(char);\n                }\n            },\n            endTagName: function () {\n                var char = this.consume();\n                if (isSpace(char)) {\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                    this.tagNameBuffer = '';\n                }\n                else if (char === '/') {\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                    this.tagNameBuffer = '';\n                }\n                else if (char === '>') {\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                    this.tagNameBuffer = '';\n                }\n                else {\n                    this.appendToTagName(char);\n                }\n            },\n            beforeAttributeName: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.consume();\n                    return;\n                }\n                else if (char === '/') {\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                    this.consume();\n                }\n                else if (char === '>') {\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else if (char === '=') {\n                    this.delegate.reportSyntaxError('attribute name cannot start with equals sign');\n                    this.transitionTo(\"attributeName\" /* attributeName */);\n                    this.delegate.beginAttribute();\n                    this.consume();\n                    this.delegate.appendToAttributeName(char);\n                }\n                else {\n                    this.transitionTo(\"attributeName\" /* attributeName */);\n                    this.delegate.beginAttribute();\n                }\n            },\n            attributeName: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.transitionTo(\"afterAttributeName\" /* afterAttributeName */);\n                    this.consume();\n                }\n                else if (char === '/') {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                }\n                else if (char === '=') {\n                    this.transitionTo(\"beforeAttributeValue\" /* beforeAttributeValue */);\n                    this.consume();\n                }\n                else if (char === '>') {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else if (char === '\"' || char === \"'\" || char === '<') {\n                    this.delegate.reportSyntaxError(char + ' is not a valid character within attribute names');\n                    this.consume();\n                    this.delegate.appendToAttributeName(char);\n                }\n                else {\n                    this.consume();\n                    this.delegate.appendToAttributeName(char);\n                }\n            },\n            afterAttributeName: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.consume();\n                    return;\n                }\n                else if (char === '/') {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                }\n                else if (char === '=') {\n                    this.consume();\n                    this.transitionTo(\"beforeAttributeValue\" /* beforeAttributeValue */);\n                }\n                else if (char === '>') {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.transitionTo(\"attributeName\" /* attributeName */);\n                    this.delegate.beginAttribute();\n                    this.consume();\n                    this.delegate.appendToAttributeName(char);\n                }\n            },\n            beforeAttributeValue: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.consume();\n                }\n                else if (char === '\"') {\n                    this.transitionTo(\"attributeValueDoubleQuoted\" /* attributeValueDoubleQuoted */);\n                    this.delegate.beginAttributeValue(true);\n                    this.consume();\n                }\n                else if (char === \"'\") {\n                    this.transitionTo(\"attributeValueSingleQuoted\" /* attributeValueSingleQuoted */);\n                    this.delegate.beginAttributeValue(true);\n                    this.consume();\n                }\n                else if (char === '>') {\n                    this.delegate.beginAttributeValue(false);\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.transitionTo(\"attributeValueUnquoted\" /* attributeValueUnquoted */);\n                    this.delegate.beginAttributeValue(false);\n                    this.consume();\n                    this.delegate.appendToAttributeValue(char);\n                }\n            },\n            attributeValueDoubleQuoted: function () {\n                var char = this.consume();\n                if (char === '\"') {\n                    this.delegate.finishAttributeValue();\n                    this.transitionTo(\"afterAttributeValueQuoted\" /* afterAttributeValueQuoted */);\n                }\n                else if (char === '&') {\n                    this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n                }\n                else {\n                    this.delegate.appendToAttributeValue(char);\n                }\n            },\n            attributeValueSingleQuoted: function () {\n                var char = this.consume();\n                if (char === \"'\") {\n                    this.delegate.finishAttributeValue();\n                    this.transitionTo(\"afterAttributeValueQuoted\" /* afterAttributeValueQuoted */);\n                }\n                else if (char === '&') {\n                    this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n                }\n                else {\n                    this.delegate.appendToAttributeValue(char);\n                }\n            },\n            attributeValueUnquoted: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                }\n                else if (char === '/') {\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                }\n                else if (char === '&') {\n                    this.consume();\n                    this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n                }\n                else if (char === '>') {\n                    this.delegate.finishAttributeValue();\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.consume();\n                    this.delegate.appendToAttributeValue(char);\n                }\n            },\n            afterAttributeValueQuoted: function () {\n                var char = this.peek();\n                if (isSpace(char)) {\n                    this.consume();\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                }\n                else if (char === '/') {\n                    this.consume();\n                    this.transitionTo(\"selfClosingStartTag\" /* selfClosingStartTag */);\n                }\n                else if (char === '>') {\n                    this.consume();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                }\n            },\n            selfClosingStartTag: function () {\n                var char = this.peek();\n                if (char === '>') {\n                    this.consume();\n                    this.delegate.markTagAsSelfClosing();\n                    this.delegate.finishTag();\n                    this.transitionTo(\"beforeData\" /* beforeData */);\n                }\n                else {\n                    this.transitionTo(\"beforeAttributeName\" /* beforeAttributeName */);\n                }\n            },\n            endTagOpen: function () {\n                var char = this.consume();\n                if (char === '@' || char === ':' || isAlpha(char)) {\n                    this.transitionTo(\"endTagName\" /* endTagName */);\n                    this.tagNameBuffer = '';\n                    this.delegate.beginEndTag();\n                    this.appendToTagName(char);\n                }\n            }\n        };\n        this.reset();\n    }\n    EventedTokenizer.prototype.reset = function () {\n        this.transitionTo(\"beforeData\" /* beforeData */);\n        this.input = '';\n        this.tagNameBuffer = '';\n        this.index = 0;\n        this.line = 1;\n        this.column = 0;\n        this.delegate.reset();\n    };\n    EventedTokenizer.prototype.transitionTo = function (state) {\n        this.state = state;\n    };\n    EventedTokenizer.prototype.tokenize = function (input) {\n        this.reset();\n        this.tokenizePart(input);\n        this.tokenizeEOF();\n    };\n    EventedTokenizer.prototype.tokenizePart = function (input) {\n        this.input += preprocessInput(input);\n        while (this.index < this.input.length) {\n            var handler = this.states[this.state];\n            if (handler !== undefined) {\n                handler.call(this);\n            }\n            else {\n                throw new Error(\"unhandled state \" + this.state);\n            }\n        }\n    };\n    EventedTokenizer.prototype.tokenizeEOF = function () {\n        this.flushData();\n    };\n    EventedTokenizer.prototype.flushData = function () {\n        if (this.state === 'data') {\n            this.delegate.finishData();\n            this.transitionTo(\"beforeData\" /* beforeData */);\n        }\n    };\n    EventedTokenizer.prototype.peek = function () {\n        return this.input.charAt(this.index);\n    };\n    EventedTokenizer.prototype.consume = function () {\n        var char = this.peek();\n        this.index++;\n        if (char === '\\n') {\n            this.line++;\n            this.column = 0;\n        }\n        else {\n            this.column++;\n        }\n        return char;\n    };\n    EventedTokenizer.prototype.consumeCharRef = function () {\n        var endIndex = this.input.indexOf(';', this.index);\n        if (endIndex === -1) {\n            return;\n        }\n        var entity = this.input.slice(this.index, endIndex);\n        var chars = this.entityParser.parse(entity);\n        if (chars) {\n            var count = entity.length;\n            // consume the entity chars\n            while (count) {\n                this.consume();\n                count--;\n            }\n            // consume the `;`\n            this.consume();\n            return chars;\n        }\n    };\n    EventedTokenizer.prototype.markTagStart = function () {\n        this.delegate.tagOpen();\n    };\n    EventedTokenizer.prototype.appendToTagName = function (char) {\n        this.tagNameBuffer += char;\n        this.delegate.appendToTagName(char);\n    };\n    EventedTokenizer.prototype.isIgnoredEndTag = function () {\n        var tag = this.tagNameBuffer;\n        return (tag === 'title' && this.input.substring(this.index, this.index + 8) !== '</title>') ||\n            (tag === 'style' && this.input.substring(this.index, this.index + 8) !== '</style>') ||\n            (tag === 'script' && this.input.substring(this.index, this.index + 9) !== '</script>');\n    };\n    return EventedTokenizer;\n}());\n\nvar Tokenizer = /** @class */ (function () {\n    function Tokenizer(entityParser, options) {\n        if (options === void 0) { options = {}; }\n        this.options = options;\n        this.token = null;\n        this.startLine = 1;\n        this.startColumn = 0;\n        this.tokens = [];\n        this.tokenizer = new EventedTokenizer(this, entityParser);\n        this._currentAttribute = undefined;\n    }\n    Tokenizer.prototype.tokenize = function (input) {\n        this.tokens = [];\n        this.tokenizer.tokenize(input);\n        return this.tokens;\n    };\n    Tokenizer.prototype.tokenizePart = function (input) {\n        this.tokens = [];\n        this.tokenizer.tokenizePart(input);\n        return this.tokens;\n    };\n    Tokenizer.prototype.tokenizeEOF = function () {\n        this.tokens = [];\n        this.tokenizer.tokenizeEOF();\n        return this.tokens[0];\n    };\n    Tokenizer.prototype.reset = function () {\n        this.token = null;\n        this.startLine = 1;\n        this.startColumn = 0;\n    };\n    Tokenizer.prototype.current = function () {\n        var token = this.token;\n        if (token === null) {\n            throw new Error('token was unexpectedly null');\n        }\n        if (arguments.length === 0) {\n            return token;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            if (token.type === arguments[i]) {\n                return token;\n            }\n        }\n        throw new Error(\"token type was unexpectedly \" + token.type);\n    };\n    Tokenizer.prototype.push = function (token) {\n        this.token = token;\n        this.tokens.push(token);\n    };\n    Tokenizer.prototype.currentAttribute = function () {\n        return this._currentAttribute;\n    };\n    Tokenizer.prototype.addLocInfo = function () {\n        if (this.options.loc) {\n            this.current().loc = {\n                start: {\n                    line: this.startLine,\n                    column: this.startColumn\n                },\n                end: {\n                    line: this.tokenizer.line,\n                    column: this.tokenizer.column\n                }\n            };\n        }\n        this.startLine = this.tokenizer.line;\n        this.startColumn = this.tokenizer.column;\n    };\n    // Data\n    Tokenizer.prototype.beginData = function () {\n        this.push({\n            type: \"Chars\" /* Chars */,\n            chars: ''\n        });\n    };\n    Tokenizer.prototype.appendToData = function (char) {\n        this.current(\"Chars\" /* Chars */).chars += char;\n    };\n    Tokenizer.prototype.finishData = function () {\n        this.addLocInfo();\n    };\n    // Comment\n    Tokenizer.prototype.beginComment = function () {\n        this.push({\n            type: \"Comment\" /* Comment */,\n            chars: ''\n        });\n    };\n    Tokenizer.prototype.appendToCommentData = function (char) {\n        this.current(\"Comment\" /* Comment */).chars += char;\n    };\n    Tokenizer.prototype.finishComment = function () {\n        this.addLocInfo();\n    };\n    // Tags - basic\n    Tokenizer.prototype.tagOpen = function () { };\n    Tokenizer.prototype.beginStartTag = function () {\n        this.push({\n            type: \"StartTag\" /* StartTag */,\n            tagName: '',\n            attributes: [],\n            selfClosing: false\n        });\n    };\n    Tokenizer.prototype.beginEndTag = function () {\n        this.push({\n            type: \"EndTag\" /* EndTag */,\n            tagName: ''\n        });\n    };\n    Tokenizer.prototype.finishTag = function () {\n        this.addLocInfo();\n    };\n    Tokenizer.prototype.markTagAsSelfClosing = function () {\n        this.current(\"StartTag\" /* StartTag */).selfClosing = true;\n    };\n    // Tags - name\n    Tokenizer.prototype.appendToTagName = function (char) {\n        this.current(\"StartTag\" /* StartTag */, \"EndTag\" /* EndTag */).tagName += char;\n    };\n    // Tags - attributes\n    Tokenizer.prototype.beginAttribute = function () {\n        this._currentAttribute = ['', '', false];\n    };\n    Tokenizer.prototype.appendToAttributeName = function (char) {\n        this.currentAttribute()[0] += char;\n    };\n    Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n        this.currentAttribute()[2] = isQuoted;\n    };\n    Tokenizer.prototype.appendToAttributeValue = function (char) {\n        this.currentAttribute()[1] += char;\n    };\n    Tokenizer.prototype.finishAttributeValue = function () {\n        this.current(\"StartTag\" /* StartTag */).attributes.push(this._currentAttribute);\n    };\n    Tokenizer.prototype.reportSyntaxError = function (message) {\n        this.current().syntaxError = message;\n    };\n    return Tokenizer;\n}());\n\nfunction tokenize(input, options) {\n    var tokenizer = new Tokenizer(new EntityParser(namedCharRefs), options);\n    return tokenizer.tokenize(input);\n}\n\n\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"htmlEntities\"]}\nvar external_this_wp_htmlEntities_ = __webpack_require__(62);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/validation/logger.js\nfunction createLogger() {\n  /**\n   * Creates a log handler with block validation prefix.\n   *\n   * @param {Function} logger Original logger function.\n   *\n   * @return {Function} Augmented logger function.\n   */\n  function createLogHandler(logger) {\n    var log = function log(message) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return logger.apply(void 0, ['Block validation: ' + message].concat(args));\n    }; // In test environments, pre-process the sprintf message to improve\n    // readability of error messages. We'd prefer to avoid pulling in this\n    // dependency in runtime environments, and it can be dropped by a combo\n    // of Webpack env substitution + UglifyJS dead code elimination.\n\n\n    if (false) {}\n\n    return log;\n  }\n\n  return {\n    // eslint-disable-next-line no-console\n    error: createLogHandler(console.error),\n    // eslint-disable-next-line no-console\n    warning: createLogHandler(console.warn),\n    getItems: function getItems() {\n      return [];\n    }\n  };\n}\nfunction createQueuedLogger() {\n  /**\n   * The list of enqueued log actions to print.\n   *\n   * @type {Array}\n   */\n  var queue = [];\n  var logger = createLogger();\n  return {\n    error: function error() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      queue.push({\n        log: logger.error,\n        args: args\n      });\n    },\n    warning: function warning() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      queue.push({\n        log: logger.warning,\n        args: args\n      });\n    },\n    getItems: function getItems() {\n      return queue;\n    }\n  };\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/block-content-provider/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar _createContext = Object(external_this_wp_element_[\"createContext\"])(function () {}),\n    Consumer = _createContext.Consumer,\n    Provider = _createContext.Provider;\n/**\n * An internal block component used in block content serialization to inject\n * nested block content within the `save` implementation of the ancestor\n * component in which it is nested. The component provides a pre-bound\n * `BlockContent` component via context, which is used by the developer-facing\n * `InnerBlocks.Content` component to render block content.\n *\n * @example\n *\n * ```jsx\n * <BlockContentProvider innerBlocks={ innerBlocks }>\n * \t{ blockSaveElement }\n * </BlockContentProvider>\n * ```\n *\n * @param {Object}    props             Component props.\n * @param {WPElement} props.children    Block save result.\n * @param {Array}     props.innerBlocks Block(s) to serialize.\n *\n * @return {WPComponent} Element with BlockContent injected via context.\n */\n\n\nvar block_content_provider_BlockContentProvider = function BlockContentProvider(_ref) {\n  var children = _ref.children,\n      innerBlocks = _ref.innerBlocks;\n\n  var BlockContent = function BlockContent() {\n    // Value is an array of blocks, so defer to block serializer\n    var html = serialize(innerBlocks, {\n      isInnerBlocks: true\n    }); // Use special-cased raw HTML tag to avoid default escaping\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, html);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(Provider, {\n    value: BlockContent\n  }, children);\n};\n/**\n * A Higher Order Component used to inject BlockContent using context to the\n * wrapped component.\n *\n * @return {WPComponent} Enhanced component with injected BlockContent as prop.\n */\n\n\nvar withBlockContentContext = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (OriginalComponent) {\n  return function (props) {\n    return Object(external_this_wp_element_[\"createElement\"])(Consumer, null, function (context) {\n      return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n        BlockContent: context\n      }));\n    });\n  };\n}, 'withBlockContentContext');\n/* harmony default export */ var block_content_provider = (block_content_provider_BlockContentProvider);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/serializer.js\n\n\n\nfunction serializer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction serializer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { serializer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { serializer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * @typedef {Object} WPBlockSerializationOptions Serialization Options.\n *\n * @property {boolean} isInnerBlocks Whether we are serializing inner blocks.\n */\n\n/**\n * Returns the block's default classname from its name.\n *\n * @param {string} blockName The block name.\n *\n * @return {string} The block's default class.\n */\n\nfunction getBlockDefaultClassName(blockName) {\n  // Generated HTML classes for blocks follow the `wp-block-{name}` nomenclature.\n  // Blocks provided by WordPress drop the prefixes 'core/' or 'core-' (used in 'core-embed/').\n  var className = 'wp-block-' + blockName.replace(/\\//, '-').replace(/^core-/, '');\n  return Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.getBlockDefaultClassName', className, blockName);\n}\n/**\n * Returns the block's default menu item classname from its name.\n *\n * @param {string} blockName The block name.\n *\n * @return {string} The block's default menu item class.\n */\n\nfunction getBlockMenuDefaultClassName(blockName) {\n  // Generated HTML classes for blocks follow the `editor-block-list-item-{name}` nomenclature.\n  // Blocks provided by WordPress drop the prefixes 'core/' or 'core-' (used in 'core-embed/').\n  var className = 'editor-block-list-item-' + blockName.replace(/\\//, '-').replace(/^core-/, '');\n  return Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.getBlockMenuDefaultClassName', className, blockName);\n}\n/**\n * Given a block type containing a save render implementation and attributes, returns the\n * enhanced element to be saved or string when raw HTML expected.\n *\n * @param {string|Object} blockTypeOrName   Block type or name.\n * @param {Object}        attributes        Block attributes.\n * @param {?Array}        innerBlocks       Nested blocks.\n *\n * @return {Object|string} Save element or raw HTML string.\n */\n\nfunction getSaveElement(blockTypeOrName, attributes) {\n  var innerBlocks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  var blockType = normalizeBlockType(blockTypeOrName);\n  var save = blockType.save; // Component classes are unsupported for save since serialization must\n  // occur synchronously. For improved interoperability with higher-order\n  // components which often return component class, emulate basic support.\n\n  if (save.prototype instanceof external_this_wp_element_[\"Component\"]) {\n    var instance = new save({\n      attributes: attributes\n    });\n    save = instance.render.bind(instance);\n  }\n\n  var element = save({\n    attributes: attributes,\n    innerBlocks: innerBlocks\n  });\n\n  if (Object(external_this_lodash_[\"isObject\"])(element) && Object(external_this_wp_hooks_[\"hasFilter\"])('blocks.getSaveContent.extraProps')) {\n    /**\n     * Filters the props applied to the block save result element.\n     *\n     * @param {Object}  props      Props applied to save element.\n     * @param {WPBlock} blockType  Block type definition.\n     * @param {Object}  attributes Block attributes.\n     */\n    var props = Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.getSaveContent.extraProps', serializer_objectSpread({}, element.props), blockType, attributes);\n\n    if (!external_this_wp_isShallowEqual_default()(props, element.props)) {\n      element = Object(external_this_wp_element_[\"cloneElement\"])(element, props);\n    }\n  }\n  /**\n   * Filters the save result of a block during serialization.\n   *\n   * @param {WPElement} element    Block save result.\n   * @param {WPBlock}   blockType  Block type definition.\n   * @param {Object}    attributes Block attributes.\n   */\n\n\n  element = Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.getSaveElement', element, blockType, attributes);\n  return Object(external_this_wp_element_[\"createElement\"])(block_content_provider, {\n    innerBlocks: innerBlocks\n  }, element);\n}\n/**\n * Given a block type containing a save render implementation and attributes, returns the\n * static markup to be saved.\n *\n * @param {string|Object} blockTypeOrName Block type or name.\n * @param {Object}        attributes      Block attributes.\n * @param {?Array}        innerBlocks     Nested blocks.\n *\n * @return {string} Save content.\n */\n\nfunction getSaveContent(blockTypeOrName, attributes, innerBlocks) {\n  var blockType = normalizeBlockType(blockTypeOrName);\n  return Object(external_this_wp_element_[\"renderToString\"])(getSaveElement(blockType, attributes, innerBlocks));\n}\n/**\n * Returns attributes which are to be saved and serialized into the block\n * comment delimiter.\n *\n * When a block exists in memory it contains as its attributes both those\n * parsed the block comment delimiter _and_ those which matched from the\n * contents of the block.\n *\n * This function returns only those attributes which are needed to persist and\n * which cannot be matched from the block content.\n *\n * @param {Object<string,*>} blockType     Block type.\n * @param {Object<string,*>} attributes Attributes from in-memory block data.\n *\n * @return {Object<string,*>} Subset of attributes for comment serialization.\n */\n\nfunction getCommentAttributes(blockType, attributes) {\n  return Object(external_this_lodash_[\"reduce\"])(blockType.attributes, function (accumulator, attributeSchema, key) {\n    var value = attributes[key]; // Ignore undefined values.\n\n    if (undefined === value) {\n      return accumulator;\n    } // Ignore all attributes but the ones with an \"undefined\" source\n    // \"undefined\" source refers to attributes saved in the block comment.\n\n\n    if (attributeSchema.source !== undefined) {\n      return accumulator;\n    } // Ignore default value.\n\n\n    if ('default' in attributeSchema && attributeSchema.default === value) {\n      return accumulator;\n    } // Otherwise, include in comment set.\n\n\n    accumulator[key] = value;\n    return accumulator;\n  }, {});\n}\n/**\n * Given an attributes object, returns a string in the serialized attributes\n * format prepared for post content.\n *\n * @param {Object} attributes Attributes object.\n *\n * @return {string} Serialized attributes.\n */\n\nfunction serializeAttributes(attributes) {\n  return JSON.stringify(attributes) // Don't break HTML comments.\n  .replace(/--/g, \"\\\\u002d\\\\u002d\") // Don't break non-standard-compliant tools.\n  .replace(/</g, \"\\\\u003c\").replace(/>/g, \"\\\\u003e\").replace(/&/g, \"\\\\u0026\") // Bypass server stripslashes behavior which would unescape stringify's\n  // escaping of quotation mark.\n  //\n  // See: https://developer.wordpress.org/reference/functions/wp_kses_stripslashes/\n  .replace(/\\\\\"/g, \"\\\\u0022\");\n}\n/**\n * Given a block object, returns the Block's Inner HTML markup.\n *\n * @param {Object} block Block instance.\n *\n * @return {string} HTML.\n */\n\nfunction getBlockContent(block) {\n  // @todo why not getBlockInnerHtml?\n  // If block was parsed as invalid or encounters an error while generating\n  // save content, use original content instead to avoid content loss. If a\n  // block contains nested content, exempt it from this condition because we\n  // otherwise have no access to its original content and content loss would\n  // still occur.\n  var saveContent = block.originalContent;\n\n  if (block.isValid || block.innerBlocks.length) {\n    try {\n      saveContent = getSaveContent(block.name, block.attributes, block.innerBlocks);\n    } catch (error) {}\n  }\n\n  return saveContent;\n}\n/**\n * Returns the content of a block, including comment delimiters.\n *\n * @param {string} rawBlockName Block name.\n * @param {Object} attributes   Block attributes.\n * @param {string} content      Block save content.\n *\n * @return {string} Comment-delimited block content.\n */\n\nfunction getCommentDelimitedContent(rawBlockName, attributes, content) {\n  var serializedAttributes = !Object(external_this_lodash_[\"isEmpty\"])(attributes) ? serializeAttributes(attributes) + ' ' : ''; // Strip core blocks of their namespace prefix.\n\n  var blockName = Object(external_this_lodash_[\"startsWith\"])(rawBlockName, 'core/') ? rawBlockName.slice(5) : rawBlockName; // @todo make the `wp:` prefix potentially configurable.\n\n  if (!content) {\n    return \"<!-- wp:\".concat(blockName, \" \").concat(serializedAttributes, \"/-->\");\n  }\n\n  return \"<!-- wp:\".concat(blockName, \" \").concat(serializedAttributes, \"-->\\n\") + content + \"\\n<!-- /wp:\".concat(blockName, \" -->\");\n}\n/**\n * Returns the content of a block, including comment delimiters, determining\n * serialized attributes and content form from the current state of the block.\n *\n * @param {Object}                      block   Block instance.\n * @param {WPBlockSerializationOptions} options Serialization options.\n *\n * @return {string} Serialized block.\n */\n\nfunction serializeBlock(block) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$isInnerBlocks = _ref.isInnerBlocks,\n      isInnerBlocks = _ref$isInnerBlocks === void 0 ? false : _ref$isInnerBlocks;\n\n  var blockName = block.name;\n  var saveContent = getBlockContent(block);\n\n  if (blockName === getUnregisteredTypeHandlerName() || !isInnerBlocks && blockName === getFreeformContentHandlerName()) {\n    return saveContent;\n  }\n\n  var blockType = registration_getBlockType(blockName);\n  var saveAttributes = getCommentAttributes(blockType, block.attributes);\n  return getCommentDelimitedContent(blockName, saveAttributes, saveContent);\n}\n/**\n * Takes a block or set of blocks and returns the serialized post content.\n *\n * @param {Array}                       blocks  Block(s) to serialize.\n * @param {WPBlockSerializationOptions} options Serialization options.\n *\n * @return {string} The post content.\n */\n\nfunction serialize(blocks, options) {\n  return Object(external_this_lodash_[\"castArray\"])(blocks).map(function (block) {\n    return serializeBlock(block, options);\n  }).join('\\n\\n');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/validation/index.js\n\n\n\n\n\n\n\nfunction validation_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction validation_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { validation_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { validation_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Globally matches any consecutive whitespace\n *\n * @type {RegExp}\n */\n\nvar REGEXP_WHITESPACE = /[\\t\\n\\r\\v\\f ]+/g;\n/**\n * Matches a string containing only whitespace\n *\n * @type {RegExp}\n */\n\nvar REGEXP_ONLY_WHITESPACE = /^[\\t\\n\\r\\v\\f ]*$/;\n/**\n * Matches a CSS URL type value\n *\n * @type {RegExp}\n */\n\nvar REGEXP_STYLE_URL_TYPE = /^url\\s*\\(['\"\\s]*(.*?)['\"\\s]*\\)$/;\n/**\n * Boolean attributes are attributes whose presence as being assigned is\n * meaningful, even if only empty.\n *\n * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes\n * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n *\n * Object.keys( Array.from( document.querySelectorAll( '#attributes-1 > tbody > tr' ) )\n *     .filter( ( tr ) => tr.lastChild.textContent.indexOf( 'Boolean attribute' ) !== -1 )\n *     .reduce( ( result, tr ) => Object.assign( result, {\n *         [ tr.firstChild.textContent.trim() ]: true\n *     } ), {} ) ).sort();\n *\n * @type {Array}\n */\n\nvar BOOLEAN_ATTRIBUTES = ['allowfullscreen', 'allowpaymentrequest', 'allowusermedia', 'async', 'autofocus', 'autoplay', 'checked', 'controls', 'default', 'defer', 'disabled', 'download', 'formnovalidate', 'hidden', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nomodule', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'selected', 'typemustmatch'];\n/**\n * Enumerated attributes are attributes which must be of a specific value form.\n * Like boolean attributes, these are meaningful if specified, even if not of a\n * valid enumerated value.\n *\n * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#enumerated-attribute\n * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n *\n * Object.keys( Array.from( document.querySelectorAll( '#attributes-1 > tbody > tr' ) )\n *     .filter( ( tr ) => /^(\"(.+?)\";?\\s*)+/.test( tr.lastChild.textContent.trim() ) )\n *     .reduce( ( result, tr ) => Object.assign( result, {\n *         [ tr.firstChild.textContent.trim() ]: true\n *     } ), {} ) ).sort();\n *\n * @type {Array}\n */\n\nvar ENUMERATED_ATTRIBUTES = ['autocapitalize', 'autocomplete', 'charset', 'contenteditable', 'crossorigin', 'decoding', 'dir', 'draggable', 'enctype', 'formenctype', 'formmethod', 'http-equiv', 'inputmode', 'kind', 'method', 'preload', 'scope', 'shape', 'spellcheck', 'translate', 'type', 'wrap'];\n/**\n * Meaningful attributes are those who cannot be safely ignored when omitted in\n * one HTML markup string and not another.\n *\n * @type {Array}\n */\n\nvar MEANINGFUL_ATTRIBUTES = [].concat(BOOLEAN_ATTRIBUTES, ENUMERATED_ATTRIBUTES);\n/**\n * Array of functions which receive a text string on which to apply normalizing\n * behavior for consideration in text token equivalence, carefully ordered from\n * least-to-most expensive operations.\n *\n * @type {Array}\n */\n\nvar TEXT_NORMALIZATIONS = [external_this_lodash_[\"identity\"], getTextWithCollapsedWhitespace];\n/**\n * Regular expression matching a named character reference. In lieu of bundling\n * a full set of references, the pattern covers the minimal necessary to test\n * positively against the full set.\n *\n * \"The ampersand must be followed by one of the names given in the named\n * character references section, using the same case.\"\n *\n * Tested aginst \"12.5 Named character references\":\n *\n * ```\n * const references = Array.from( document.querySelectorAll(\n *     '#named-character-references-table tr[id^=entity-] td:first-child'\n * ) ).map( ( code ) => code.textContent )\n * references.every( ( reference ) => /^[\\da-z]+$/i.test( reference ) )\n * ```\n *\n * @see https://html.spec.whatwg.org/multipage/syntax.html#character-references\n * @see https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references\n *\n * @type {RegExp}\n */\n\nvar REGEXP_NAMED_CHARACTER_REFERENCE = /^[\\da-z]+$/i;\n/**\n * Regular expression matching a decimal character reference.\n *\n * \"The ampersand must be followed by a U+0023 NUMBER SIGN character (#),\n * followed by one or more ASCII digits, representing a base-ten integer\"\n *\n * @see https://html.spec.whatwg.org/multipage/syntax.html#character-references\n *\n * @type {RegExp}\n */\n\nvar REGEXP_DECIMAL_CHARACTER_REFERENCE = /^#\\d+$/;\n/**\n * Regular expression matching a hexadecimal character reference.\n *\n * \"The ampersand must be followed by a U+0023 NUMBER SIGN character (#), which\n * must be followed by either a U+0078 LATIN SMALL LETTER X character (x) or a\n * U+0058 LATIN CAPITAL LETTER X character (X), which must then be followed by\n * one or more ASCII hex digits, representing a hexadecimal integer\"\n *\n * @see https://html.spec.whatwg.org/multipage/syntax.html#character-references\n *\n * @type {RegExp}\n */\n\nvar REGEXP_HEXADECIMAL_CHARACTER_REFERENCE = /^#x[\\da-f]+$/i;\n/**\n * Returns true if the given string is a valid character reference segment, or\n * false otherwise. The text should be stripped of `&` and `;` demarcations.\n *\n * @param {string} text Text to test.\n *\n * @return {boolean} Whether text is valid character reference.\n */\n\nfunction isValidCharacterReference(text) {\n  return REGEXP_NAMED_CHARACTER_REFERENCE.test(text) || REGEXP_DECIMAL_CHARACTER_REFERENCE.test(text) || REGEXP_HEXADECIMAL_CHARACTER_REFERENCE.test(text);\n}\n/**\n * Subsitute EntityParser class for `simple-html-tokenizer` which uses the\n * implementation of `decodeEntities` from `html-entities`, in order to avoid\n * bundling a massive named character reference.\n *\n * @see https://github.com/tildeio/simple-html-tokenizer/tree/master/src/entity-parser.ts\n */\n\nvar validation_DecodeEntityParser = /*#__PURE__*/function () {\n  function DecodeEntityParser() {\n    Object(classCallCheck[\"a\" /* default */])(this, DecodeEntityParser);\n  }\n\n  Object(createClass[\"a\" /* default */])(DecodeEntityParser, [{\n    key: \"parse\",\n\n    /**\n     * Returns a substitute string for an entity string sequence between `&`\n     * and `;`, or undefined if no substitution should occur.\n     *\n     * @param {string} entity Entity fragment discovered in HTML.\n     *\n     * @return {?string} Entity substitute value.\n     */\n    value: function parse(entity) {\n      if (isValidCharacterReference(entity)) {\n        return Object(external_this_wp_htmlEntities_[\"decodeEntities\"])('&' + entity + ';');\n      }\n    }\n  }]);\n\n  return DecodeEntityParser;\n}();\n/**\n * Given a specified string, returns an array of strings split by consecutive\n * whitespace, ignoring leading or trailing whitespace.\n *\n * @param {string} text Original text.\n *\n * @return {string[]} Text pieces split on whitespace.\n */\n\nfunction getTextPiecesSplitOnWhitespace(text) {\n  return text.trim().split(REGEXP_WHITESPACE);\n}\n/**\n * Given a specified string, returns a new trimmed string where all consecutive\n * whitespace is collapsed to a single space.\n *\n * @param {string} text Original text.\n *\n * @return {string} Trimmed text with consecutive whitespace collapsed.\n */\n\nfunction getTextWithCollapsedWhitespace(text) {\n  // This is an overly simplified whitespace comparison. The specification is\n  // more prescriptive of whitespace behavior in inline and block contexts.\n  //\n  // See: https://medium.com/@patrickbrosset/when-does-white-space-matter-in-html-b90e8a7cdd33\n  return getTextPiecesSplitOnWhitespace(text).join(' ');\n}\n/**\n * Returns attribute pairs of the given StartTag token, including only pairs\n * where the value is non-empty or the attribute is a boolean attribute, an\n * enumerated attribute, or a custom data- attribute.\n *\n * @see MEANINGFUL_ATTRIBUTES\n *\n * @param {Object} token StartTag token.\n *\n * @return {Array[]} Attribute pairs.\n */\n\nfunction getMeaningfulAttributePairs(token) {\n  return token.attributes.filter(function (pair) {\n    var _pair = Object(slicedToArray[\"a\" /* default */])(pair, 2),\n        key = _pair[0],\n        value = _pair[1];\n\n    return value || key.indexOf('data-') === 0 || Object(external_this_lodash_[\"includes\"])(MEANINGFUL_ATTRIBUTES, key);\n  });\n}\n/**\n * Returns true if two text tokens (with `chars` property) are equivalent, or\n * false otherwise.\n *\n * @param {Object} actual   Actual token.\n * @param {Object} expected Expected token.\n * @param {Object} logger   Validation logger object.\n *\n * @return {boolean} Whether two text tokens are equivalent.\n */\n\nfunction isEquivalentTextTokens(actual, expected) {\n  var logger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createLogger();\n  // This function is intentionally written as syntactically \"ugly\" as a hot\n  // path optimization. Text is progressively normalized in order from least-\n  // to-most operationally expensive, until the earliest point at which text\n  // can be confidently inferred as being equal.\n  var actualChars = actual.chars;\n  var expectedChars = expected.chars;\n\n  for (var i = 0; i < TEXT_NORMALIZATIONS.length; i++) {\n    var normalize = TEXT_NORMALIZATIONS[i];\n    actualChars = normalize(actualChars);\n    expectedChars = normalize(expectedChars);\n\n    if (actualChars === expectedChars) {\n      return true;\n    }\n  }\n\n  logger.warning('Expected text `%s`, saw `%s`.', expected.chars, actual.chars);\n  return false;\n}\n/**\n * Given a style value, returns a normalized style value for strict equality\n * comparison.\n *\n * @param {string} value Style value.\n *\n * @return {string} Normalized style value.\n */\n\nfunction getNormalizedStyleValue(value) {\n  return value // Normalize URL type to omit whitespace or quotes\n  .replace(REGEXP_STYLE_URL_TYPE, 'url($1)');\n}\n/**\n * Given a style attribute string, returns an object of style properties.\n *\n * @param {string} text Style attribute.\n *\n * @return {Object} Style properties.\n */\n\nfunction getStyleProperties(text) {\n  var pairs = text // Trim ending semicolon (avoid including in split)\n  .replace(/;?\\s*$/, '') // Split on property assignment\n  .split(';') // For each property assignment...\n  .map(function (style) {\n    // ...split further into key-value pairs\n    var _style$split = style.split(':'),\n        _style$split2 = Object(toArray[\"a\" /* default */])(_style$split),\n        key = _style$split2[0],\n        valueParts = _style$split2.slice(1);\n\n    var value = valueParts.join(':');\n    return [key.trim(), getNormalizedStyleValue(value.trim())];\n  });\n  return Object(external_this_lodash_[\"fromPairs\"])(pairs);\n}\n/**\n * Attribute-specific equality handlers\n *\n * @type {Object}\n */\n\nvar isEqualAttributesOfName = validation_objectSpread({\n  class: function _class(actual, expected) {\n    // Class matches if members are the same, even if out of order or\n    // superfluous whitespace between.\n    return !external_this_lodash_[\"xor\"].apply(void 0, Object(toConsumableArray[\"a\" /* default */])([actual, expected].map(getTextPiecesSplitOnWhitespace))).length;\n  },\n  style: function style(actual, expected) {\n    return external_this_lodash_[\"isEqual\"].apply(void 0, Object(toConsumableArray[\"a\" /* default */])([actual, expected].map(getStyleProperties)));\n  }\n}, Object(external_this_lodash_[\"fromPairs\"])(BOOLEAN_ATTRIBUTES.map(function (attribute) {\n  return [attribute, external_this_lodash_[\"stubTrue\"]];\n})));\n/**\n * Given two sets of attribute tuples, returns true if the attribute sets are\n * equivalent.\n *\n * @param {Array[]} actual   Actual attributes tuples.\n * @param {Array[]} expected Expected attributes tuples.\n * @param {Object}  logger   Validation logger object.\n *\n * @return {boolean} Whether attributes are equivalent.\n */\n\nfunction isEqualTagAttributePairs(actual, expected) {\n  var logger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createLogger();\n\n  // Attributes is tokenized as tuples. Their lengths should match. This also\n  // avoids us needing to check both attributes sets, since if A has any keys\n  // which do not exist in B, we know the sets to be different.\n  if (actual.length !== expected.length) {\n    logger.warning('Expected attributes %o, instead saw %o.', expected, actual);\n    return false;\n  } // Attributes are not guaranteed to occur in the same order. For validating\n  // actual attributes, first convert the set of expected attribute values to\n  // an object, for lookup by key.\n\n\n  var expectedAttributes = {};\n\n  for (var i = 0; i < expected.length; i++) {\n    expectedAttributes[expected[i][0].toLowerCase()] = expected[i][1];\n  }\n\n  for (var _i = 0; _i < actual.length; _i++) {\n    var _actual$_i = Object(slicedToArray[\"a\" /* default */])(actual[_i], 2),\n        name = _actual$_i[0],\n        actualValue = _actual$_i[1];\n\n    var nameLower = name.toLowerCase(); // As noted above, if missing member in B, assume different\n\n    if (!expectedAttributes.hasOwnProperty(nameLower)) {\n      logger.warning('Encountered unexpected attribute `%s`.', name);\n      return false;\n    }\n\n    var expectedValue = expectedAttributes[nameLower];\n    var isEqualAttributes = isEqualAttributesOfName[nameLower];\n\n    if (isEqualAttributes) {\n      // Defer custom attribute equality handling\n      if (!isEqualAttributes(actualValue, expectedValue)) {\n        logger.warning('Expected attribute `%s` of value `%s`, saw `%s`.', name, expectedValue, actualValue);\n        return false;\n      }\n    } else if (actualValue !== expectedValue) {\n      // Otherwise strict inequality should bail\n      logger.warning('Expected attribute `%s` of value `%s`, saw `%s`.', name, expectedValue, actualValue);\n      return false;\n    }\n  }\n\n  return true;\n}\n/**\n * Token-type-specific equality handlers\n *\n * @type {Object}\n */\n\nvar isEqualTokensOfType = {\n  StartTag: function StartTag(actual, expected) {\n    var logger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createLogger();\n\n    if (actual.tagName !== expected.tagName && // Optimization: Use short-circuit evaluation to defer case-\n    // insensitive check on the assumption that the majority case will\n    // have exactly equal tag names.\n    actual.tagName.toLowerCase() !== expected.tagName.toLowerCase()) {\n      logger.warning('Expected tag name `%s`, instead saw `%s`.', expected.tagName, actual.tagName);\n      return false;\n    }\n\n    return isEqualTagAttributePairs.apply(void 0, Object(toConsumableArray[\"a\" /* default */])([actual, expected].map(getMeaningfulAttributePairs)).concat([logger]));\n  },\n  Chars: isEquivalentTextTokens,\n  Comment: isEquivalentTextTokens\n};\n/**\n * Given an array of tokens, returns the first token which is not purely\n * whitespace.\n *\n * Mutates the tokens array.\n *\n * @param {Object[]} tokens Set of tokens to search.\n *\n * @return {Object} Next non-whitespace token.\n */\n\nfunction getNextNonWhitespaceToken(tokens) {\n  var token;\n\n  while (token = tokens.shift()) {\n    if (token.type !== 'Chars') {\n      return token;\n    }\n\n    if (!REGEXP_ONLY_WHITESPACE.test(token.chars)) {\n      return token;\n    }\n  }\n}\n/**\n * Tokenize an HTML string, gracefully handling any errors thrown during\n * underlying tokenization.\n *\n * @param {string} html   HTML string to tokenize.\n * @param {Object} logger Validation logger object.\n *\n * @return {Object[]|null} Array of valid tokenized HTML elements, or null on error\n */\n\nfunction getHTMLTokens(html) {\n  var logger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createLogger();\n\n  try {\n    return new Tokenizer(new validation_DecodeEntityParser()).tokenize(html);\n  } catch (e) {\n    logger.warning('Malformed HTML detected: %s', html);\n  }\n\n  return null;\n}\n/**\n * Returns true if the next HTML token closes the current token.\n *\n * @param {Object} currentToken Current token to compare with.\n * @param {Object|undefined} nextToken Next token to compare against.\n *\n * @return {boolean} true if `nextToken` closes `currentToken`, false otherwise\n */\n\n\nfunction isClosedByToken(currentToken, nextToken) {\n  // Ensure this is a self closed token\n  if (!currentToken.selfClosing) {\n    return false;\n  } // Check token names and determine if nextToken is the closing tag for currentToken\n\n\n  if (nextToken && nextToken.tagName === currentToken.tagName && nextToken.type === 'EndTag') {\n    return true;\n  }\n\n  return false;\n}\n/**\n * Returns true if the given HTML strings are effectively equivalent, or\n * false otherwise. Invalid HTML is not considered equivalent, even if the\n * strings directly match.\n *\n * @param {string} actual   Actual HTML string.\n * @param {string} expected Expected HTML string.\n * @param {Object} logger   Validation logger object.\n *\n * @return {boolean} Whether HTML strings are equivalent.\n */\n\nfunction isEquivalentHTML(actual, expected) {\n  var logger = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : createLogger();\n\n  // Short-circuit if markup is identical.\n  if (actual === expected) {\n    return true;\n  } // Tokenize input content and reserialized save content\n\n\n  var _map = [actual, expected].map(function (html) {\n    return getHTMLTokens(html, logger);\n  }),\n      _map2 = Object(slicedToArray[\"a\" /* default */])(_map, 2),\n      actualTokens = _map2[0],\n      expectedTokens = _map2[1]; // If either is malformed then stop comparing - the strings are not equivalent\n\n\n  if (!actualTokens || !expectedTokens) {\n    return false;\n  }\n\n  var actualToken, expectedToken;\n\n  while (actualToken = getNextNonWhitespaceToken(actualTokens)) {\n    expectedToken = getNextNonWhitespaceToken(expectedTokens); // Inequal if exhausted all expected tokens\n\n    if (!expectedToken) {\n      logger.warning('Expected end of content, instead saw %o.', actualToken);\n      return false;\n    } // Inequal if next non-whitespace token of each set are not same type\n\n\n    if (actualToken.type !== expectedToken.type) {\n      logger.warning('Expected token of type `%s` (%o), instead saw `%s` (%o).', expectedToken.type, expectedToken, actualToken.type, actualToken);\n      return false;\n    } // Defer custom token type equality handling, otherwise continue and\n    // assume as equal\n\n\n    var isEqualTokens = isEqualTokensOfType[actualToken.type];\n\n    if (isEqualTokens && !isEqualTokens(actualToken, expectedToken, logger)) {\n      return false;\n    } // Peek at the next tokens (actual and expected) to see if they close\n    // a self-closing tag\n\n\n    if (isClosedByToken(actualToken, expectedTokens[0])) {\n      // Consume the next expected token that closes the current actual\n      // self-closing token\n      getNextNonWhitespaceToken(expectedTokens);\n    } else if (isClosedByToken(expectedToken, actualTokens[0])) {\n      // Consume the next actual token that closes the current expected\n      // self-closing token\n      getNextNonWhitespaceToken(actualTokens);\n    }\n  }\n\n  if (expectedToken = getNextNonWhitespaceToken(expectedTokens)) {\n    // If any non-whitespace tokens remain in expected token set, this\n    // indicates inequality\n    logger.warning('Expected %o, instead saw end of content.', expectedToken);\n    return false;\n  }\n\n  return true;\n}\n/**\n * Returns an object with `isValid` property set to `true` if the parsed block\n * is valid given the input content. A block is considered valid if, when serialized\n * with assumed attributes, the content matches the original value. If block is\n * invalid, this function returns all validations issues as well.\n *\n * @param {string|Object} blockTypeOrName      Block type.\n * @param {Object}        attributes           Parsed block attributes.\n * @param {string}        originalBlockContent Original block content.\n * @param {Object}        logger           \t   Validation logger object.\n *\n * @return {Object} Whether block is valid and contains validation messages.\n */\n\nfunction getBlockContentValidationResult(blockTypeOrName, attributes, originalBlockContent) {\n  var logger = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : createQueuedLogger();\n  var blockType = normalizeBlockType(blockTypeOrName);\n  var generatedBlockContent;\n\n  try {\n    generatedBlockContent = getSaveContent(blockType, attributes);\n  } catch (error) {\n    logger.error('Block validation failed because an error occurred while generating block content:\\n\\n%s', error.toString());\n    return {\n      isValid: false,\n      validationIssues: logger.getItems()\n    };\n  }\n\n  var isValid = isEquivalentHTML(originalBlockContent, generatedBlockContent, logger);\n\n  if (!isValid) {\n    logger.error('Block validation failed for `%s` (%o).\\n\\nContent generated by `save` function:\\n\\n%s\\n\\nContent retrieved from post body:\\n\\n%s', blockType.name, blockType, generatedBlockContent, originalBlockContent);\n  }\n\n  return {\n    isValid: isValid,\n    validationIssues: logger.getItems()\n  };\n}\n/**\n * Returns true if the parsed block is valid given the input content. A block\n * is considered valid if, when serialized with assumed attributes, the content\n * matches the original value.\n *\n * Logs to console in development environments when invalid.\n *\n * @param {string|Object} blockTypeOrName      Block type.\n * @param {Object}        attributes           Parsed block attributes.\n * @param {string}        originalBlockContent Original block content.\n *\n * @return {boolean} Whether block is valid.\n */\n\nfunction isValidBlockContent(blockTypeOrName, attributes, originalBlockContent) {\n  var _getBlockContentValid = getBlockContentValidationResult(blockTypeOrName, attributes, originalBlockContent, createLogger()),\n      isValid = _getBlockContentValid.isValid;\n\n  return isValid;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/matchers.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction matchers_html(selector, multilineTag) {\n  return function (domNode) {\n    var match = domNode;\n\n    if (selector) {\n      match = domNode.querySelector(selector);\n    }\n\n    if (!match) {\n      return '';\n    }\n\n    if (multilineTag) {\n      var value = '';\n      var length = match.children.length;\n\n      for (var index = 0; index < length; index++) {\n        var child = match.children[index];\n\n        if (child.nodeName.toLowerCase() !== multilineTag) {\n          continue;\n        }\n\n        value += child.outerHTML;\n      }\n\n      return value;\n    }\n\n    return match.innerHTML;\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/node.js\n\n\nfunction node_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction node_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { node_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { node_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n/**\n * Browser dependencies\n */\n\nvar _window$Node = window.Node,\n    TEXT_NODE = _window$Node.TEXT_NODE,\n    ELEMENT_NODE = _window$Node.ELEMENT_NODE;\n/**\n * A representation of a single node within a block's rich text value. If\n * representing a text node, the value is simply a string of the node value.\n * As representing an element node, it is an object of:\n *\n * 1. `type` (string): Tag name.\n * 2. `props` (object): Attributes and children array of WPBlockNode.\n *\n * @typedef {string|Object} WPBlockNode\n */\n\n/**\n * Given a single node and a node type (e.g. `'br'`), returns true if the node\n * corresponds to that type, false otherwise.\n *\n * @param {WPBlockNode} node Block node to test\n * @param {string} type      Node to type to test against.\n *\n * @return {boolean} Whether node is of intended type.\n */\n\nfunction isNodeOfType(node, type) {\n  return node && node.type === type;\n}\n/**\n * Given an object implementing the NamedNodeMap interface, returns a plain\n * object equivalent value of name, value key-value pairs.\n *\n * @see https://dom.spec.whatwg.org/#interface-namednodemap\n *\n * @param {NamedNodeMap} nodeMap NamedNodeMap to convert to object.\n *\n * @return {Object} Object equivalent value of NamedNodeMap.\n */\n\n\nfunction getNamedNodeMapAsObject(nodeMap) {\n  var result = {};\n\n  for (var i = 0; i < nodeMap.length; i++) {\n    var _nodeMap$i = nodeMap[i],\n        name = _nodeMap$i.name,\n        value = _nodeMap$i.value;\n    result[name] = value;\n  }\n\n  return result;\n}\n/**\n * Given a DOM Element or Text node, returns an equivalent block node. Throws\n * if passed any node type other than element or text.\n *\n * @throws {TypeError} If non-element/text node is passed.\n *\n * @param {Node} domNode DOM node to convert.\n *\n * @return {WPBlockNode} Block node equivalent to DOM node.\n */\n\nfunction fromDOM(domNode) {\n  if (domNode.nodeType === TEXT_NODE) {\n    return domNode.nodeValue;\n  }\n\n  if (domNode.nodeType !== ELEMENT_NODE) {\n    throw new TypeError('A block node can only be created from a node of type text or ' + 'element.');\n  }\n\n  return {\n    type: domNode.nodeName.toLowerCase(),\n    props: node_objectSpread({}, getNamedNodeMapAsObject(domNode.attributes), {\n      children: children_fromDOM(domNode.childNodes)\n    })\n  };\n}\n/**\n * Given a block node, returns its HTML string representation.\n *\n * @param {WPBlockNode} node Block node to convert to string.\n *\n * @return {string} String HTML representation of block node.\n */\n\nfunction toHTML(node) {\n  return children_toHTML([node]);\n}\n/**\n * Given a selector, returns an hpq matcher generating a WPBlockNode value\n * matching the selector result.\n *\n * @param {string} selector DOM selector.\n *\n * @return {Function} hpq matcher.\n */\n\nfunction node_matcher(selector) {\n  return function (domNode) {\n    var match = domNode;\n\n    if (selector) {\n      match = domNode.querySelector(selector);\n    }\n\n    try {\n      return fromDOM(match);\n    } catch (error) {\n      return null;\n    }\n  };\n}\n/**\n * Object of utility functions used in managing block attribute values of\n * source `node`.\n *\n * @see https://github.com/WordPress/gutenberg/pull/10439\n *\n * @deprecated since 4.0. The `node` source should not be used, and can be\n *             replaced by the `html` source.\n *\n * @private\n */\n\n/* harmony default export */ var api_node = ({\n  isNodeOfType: isNodeOfType,\n  fromDOM: fromDOM,\n  toHTML: toHTML,\n  matcher: node_matcher\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/children.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A representation of a block's rich text value.\n *\n * @typedef {WPBlockNode[]} WPBlockChildren\n */\n\n/**\n * Given block children, returns a serialize-capable WordPress element.\n *\n * @param {WPBlockChildren} children Block children object to convert.\n *\n * @return {WPElement} A serialize-capable element.\n */\n\nfunction getSerializeCapableElement(children) {\n  // The fact that block children are compatible with the element serializer is\n  // merely an implementation detail that currently serves to be true, but\n  // should not be mistaken as being a guarantee on the external API. The\n  // public API only offers guarantees to work with strings (toHTML) and DOM\n  // elements (fromDOM), and should provide utilities to manipulate the value\n  // rather than expect consumers to inspect or construct its shape (concat).\n  return children;\n}\n/**\n * Given block children, returns an array of block nodes.\n *\n * @param {WPBlockChildren} children Block children object to convert.\n *\n * @return {Array<WPBlockNode>} An array of individual block nodes.\n */\n\nfunction getChildrenArray(children) {\n  // The fact that block children are compatible with the element serializer\n  // is merely an implementation detail that currently serves to be true, but\n  // should not be mistaken as being a guarantee on the external API.\n  return children;\n}\n/**\n * Given two or more block nodes, returns a new block node representing a\n * concatenation of its values.\n *\n * @param {...WPBlockChildren} blockNodes Block nodes to concatenate.\n *\n * @return {WPBlockChildren} Concatenated block node.\n */\n\n\nfunction concat() {\n  var result = [];\n\n  for (var i = 0; i < arguments.length; i++) {\n    var blockNode = Object(external_this_lodash_[\"castArray\"])(i < 0 || arguments.length <= i ? undefined : arguments[i]);\n\n    for (var j = 0; j < blockNode.length; j++) {\n      var child = blockNode[j];\n      var canConcatToPreviousString = typeof child === 'string' && typeof result[result.length - 1] === 'string';\n\n      if (canConcatToPreviousString) {\n        result[result.length - 1] += child;\n      } else {\n        result.push(child);\n      }\n    }\n  }\n\n  return result;\n}\n/**\n * Given an iterable set of DOM nodes, returns equivalent block children.\n * Ignores any non-element/text nodes included in set.\n *\n * @param {Iterable.<Node>} domNodes Iterable set of DOM nodes to convert.\n *\n * @return {WPBlockChildren} Block children equivalent to DOM nodes.\n */\n\nfunction children_fromDOM(domNodes) {\n  var result = [];\n\n  for (var i = 0; i < domNodes.length; i++) {\n    try {\n      result.push(fromDOM(domNodes[i]));\n    } catch (error) {// Simply ignore if DOM node could not be converted.\n    }\n  }\n\n  return result;\n}\n/**\n * Given a block node, returns its HTML string representation.\n *\n * @param {WPBlockChildren} children Block node(s) to convert to string.\n *\n * @return {string} String HTML representation of block node.\n */\n\nfunction children_toHTML(children) {\n  var element = getSerializeCapableElement(children);\n  return Object(external_this_wp_element_[\"renderToString\"])(element);\n}\n/**\n * Given a selector, returns an hpq matcher generating a WPBlockChildren value\n * matching the selector result.\n *\n * @param {string} selector DOM selector.\n *\n * @return {Function} hpq matcher.\n */\n\nfunction children_matcher(selector) {\n  return function (domNode) {\n    var match = domNode;\n\n    if (selector) {\n      match = domNode.querySelector(selector);\n    }\n\n    if (match) {\n      return children_fromDOM(match.childNodes);\n    }\n\n    return [];\n  };\n}\n/**\n * Object of utility functions used in managing block attribute values of\n * source `children`.\n *\n * @see https://github.com/WordPress/gutenberg/pull/10439\n *\n * @deprecated since 4.0. The `children` source should not be used, and can be\n *             replaced by the `html` source.\n *\n * @private\n */\n\n/* harmony default export */ var api_children = ({\n  concat: concat,\n  getChildrenArray: getChildrenArray,\n  fromDOM: children_fromDOM,\n  toHTML: children_toHTML,\n  matcher: children_matcher\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/parser.js\n\n\n\n\nfunction parser_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction parser_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { parser_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { parser_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Sources which are guaranteed to return a string value.\n *\n * @type {Set}\n */\n\nvar STRING_SOURCES = new Set(['attribute', 'html', 'text', 'tag']);\n/**\n * Higher-order hpq matcher which enhances an attribute matcher to return true\n * or false depending on whether the original matcher returns undefined. This\n * is useful for boolean attributes (e.g. disabled) whose attribute values may\n * be technically falsey (empty string), though their mere presence should be\n * enough to infer as true.\n *\n * @param {Function} matcher Original hpq matcher.\n *\n * @return {Function} Enhanced hpq matcher.\n */\n\nvar parser_toBooleanAttributeMatcher = function toBooleanAttributeMatcher(matcher) {\n  return Object(external_this_lodash_[\"flow\"])([matcher, // Expected values from `attr( 'disabled' )`:\n  //\n  // <input>\n  // - Value:       `undefined`\n  // - Transformed: `false`\n  //\n  // <input disabled>\n  // - Value:       `''`\n  // - Transformed: `true`\n  //\n  // <input disabled=\"disabled\">\n  // - Value:       `'disabled'`\n  // - Transformed: `true`\n  function (value) {\n    return value !== undefined;\n  }]);\n};\n/**\n * Returns true if value is of the given JSON schema type, or false otherwise.\n *\n * @see http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.25\n *\n * @param {*}      value Value to test.\n * @param {string} type  Type to test.\n *\n * @return {boolean} Whether value is of type.\n */\n\nfunction isOfType(value, type) {\n  switch (type) {\n    case 'string':\n      return typeof value === 'string';\n\n    case 'boolean':\n      return typeof value === 'boolean';\n\n    case 'object':\n      return !!value && value.constructor === Object;\n\n    case 'null':\n      return value === null;\n\n    case 'array':\n      return Array.isArray(value);\n\n    case 'integer':\n    case 'number':\n      return typeof value === 'number';\n  }\n\n  return true;\n}\n/**\n * Returns true if value is of an array of given JSON schema types, or false\n * otherwise.\n *\n * @see http://json-schema.org/latest/json-schema-validation.html#rfc.section.6.25\n *\n * @param {*}        value Value to test.\n * @param {string[]} types Types to test.\n *\n * @return {boolean} Whether value is of types.\n */\n\nfunction isOfTypes(value, types) {\n  return types.some(function (type) {\n    return isOfType(value, type);\n  });\n}\n/**\n * Returns true if value is valid per the given block attribute schema type\n * definition, or false otherwise.\n *\n * @see https://json-schema.org/latest/json-schema-validation.html#rfc.section.6.1.1\n *\n * @param {*}                       value Value to test.\n * @param {?(Array<string>|string)} type  Block attribute schema type.\n *\n * @return {boolean} Whether value is valid.\n */\n\nfunction isValidByType(value, type) {\n  return type === undefined || isOfTypes(value, Object(external_this_lodash_[\"castArray\"])(type));\n}\n/**\n * Returns true if value is valid per the given block attribute schema enum\n * definition, or false otherwise.\n *\n * @see https://json-schema.org/latest/json-schema-validation.html#rfc.section.6.1.2\n *\n * @param {*}      value   Value to test.\n * @param {?Array} enumSet Block attribute schema enum.\n *\n * @return {boolean} Whether value is valid.\n */\n\nfunction isValidByEnum(value, enumSet) {\n  return !Array.isArray(enumSet) || enumSet.includes(value);\n}\n/**\n * Returns true if the given attribute schema describes a value which may be\n * an ambiguous string.\n *\n * Some sources are ambiguously serialized as strings, for which value casting\n * is enabled. This is only possible when a singular type is assigned to the\n * attribute schema, since the string ambiguity makes it impossible to know the\n * correct type of multiple to which to cast.\n *\n * @param {Object} attributeSchema Attribute's schema.\n *\n * @return {boolean} Whether attribute schema defines an ambiguous string\n *                   source.\n */\n\nfunction isAmbiguousStringSource(attributeSchema) {\n  var source = attributeSchema.source,\n      type = attributeSchema.type;\n  var isStringSource = STRING_SOURCES.has(source);\n  var isSingleType = typeof type === 'string';\n  return isStringSource && isSingleType;\n}\n/**\n * Returns an hpq matcher given a source object.\n *\n * @param {Object} sourceConfig Attribute Source object.\n *\n * @return {Function} A hpq Matcher.\n */\n\nfunction matcherFromSource(sourceConfig) {\n  switch (sourceConfig.source) {\n    case 'attribute':\n      var matcher = attr(sourceConfig.selector, sourceConfig.attribute);\n\n      if (sourceConfig.type === 'boolean') {\n        matcher = parser_toBooleanAttributeMatcher(matcher);\n      }\n\n      return matcher;\n\n    case 'html':\n      return matchers_html(sourceConfig.selector, sourceConfig.multiline);\n\n    case 'text':\n      return es_text(sourceConfig.selector);\n\n    case 'children':\n      return children_matcher(sourceConfig.selector);\n\n    case 'node':\n      return node_matcher(sourceConfig.selector);\n\n    case 'query':\n      var subMatchers = Object(external_this_lodash_[\"mapValues\"])(sourceConfig.query, matcherFromSource);\n      return query(sourceConfig.selector, subMatchers);\n\n    case 'tag':\n      return Object(external_this_lodash_[\"flow\"])([prop(sourceConfig.selector, 'nodeName'), function (nodeName) {\n        return nodeName ? nodeName.toLowerCase() : undefined;\n      }]);\n\n    default:\n      // eslint-disable-next-line no-console\n      console.error(\"Unknown source type \\\"\".concat(sourceConfig.source, \"\\\"\"));\n  }\n}\n/**\n * Given a block's raw content and an attribute's schema returns the attribute's\n * value depending on its source.\n *\n * @param {string} innerHTML         Block's raw content.\n * @param {Object} attributeSchema   Attribute's schema.\n *\n * @return {*} Attribute value.\n */\n\nfunction parseWithAttributeSchema(innerHTML, attributeSchema) {\n  return es_parse(innerHTML, matcherFromSource(attributeSchema));\n}\n/**\n * Given an attribute key, an attribute's schema, a block's raw content and the\n * commentAttributes returns the attribute value depending on its source\n * definition of the given attribute key.\n *\n * @param {string} attributeKey      Attribute key.\n * @param {Object} attributeSchema   Attribute's schema.\n * @param {string} innerHTML         Block's raw content.\n * @param {Object} commentAttributes Block's comment attributes.\n *\n * @return {*} Attribute value.\n */\n\nfunction getBlockAttribute(attributeKey, attributeSchema, innerHTML, commentAttributes) {\n  var type = attributeSchema.type,\n      enumSet = attributeSchema.enum;\n  var value;\n\n  switch (attributeSchema.source) {\n    // undefined source means that it's an attribute serialized to the block's \"comment\"\n    case undefined:\n      value = commentAttributes ? commentAttributes[attributeKey] : undefined;\n      break;\n\n    case 'attribute':\n    case 'property':\n    case 'html':\n    case 'text':\n    case 'children':\n    case 'node':\n    case 'query':\n    case 'tag':\n      value = parseWithAttributeSchema(innerHTML, attributeSchema);\n      break;\n  }\n\n  if (!isValidByType(value, type) || !isValidByEnum(value, enumSet)) {\n    // Reject the value if it is not valid. Reverting to the undefined\n    // value ensures the default is respected, if applicable.\n    value = undefined;\n  }\n\n  if (value === undefined) {\n    return attributeSchema.default;\n  }\n\n  return value;\n}\n/**\n * Returns the block attributes of a registered block node given its type.\n *\n * @param {string|Object} blockTypeOrName Block type or name.\n * @param {string}        innerHTML       Raw block content.\n * @param {?Object}       attributes      Known block attributes (from delimiters).\n *\n * @return {Object} All block attributes.\n */\n\nfunction getBlockAttributes(blockTypeOrName, innerHTML) {\n  var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var blockType = normalizeBlockType(blockTypeOrName);\n  var blockAttributes = Object(external_this_lodash_[\"mapValues\"])(blockType.attributes, function (attributeSchema, attributeKey) {\n    return getBlockAttribute(attributeKey, attributeSchema, innerHTML, attributes);\n  });\n  return Object(external_this_wp_hooks_[\"applyFilters\"])('blocks.getBlockAttributes', blockAttributes, blockType, innerHTML, attributes);\n}\n/**\n * Given a block object, returns a new copy of the block with any applicable\n * deprecated migrations applied, or the original block if it was both valid\n * and no eligible migrations exist.\n *\n * @param {WPBlock} block            Original block object.\n * @param {Object}  parsedAttributes Attributes as parsed from the initial\n *                                   block markup.\n *\n * @return {WPBlock} Migrated block object.\n */\n\nfunction getMigratedBlock(block, parsedAttributes) {\n  var blockType = registration_getBlockType(block.name);\n  var deprecatedDefinitions = blockType.deprecated;\n\n  if (!deprecatedDefinitions || !deprecatedDefinitions.length) {\n    return block;\n  }\n\n  var _block = block,\n      originalContent = _block.originalContent,\n      innerBlocks = _block.innerBlocks;\n\n  for (var i = 0; i < deprecatedDefinitions.length; i++) {\n    // A block can opt into a migration even if the block is valid by\n    // defining isEligible on its deprecation. If the block is both valid\n    // and does not opt to migrate, skip.\n    var _deprecatedDefinition = deprecatedDefinitions[i].isEligible,\n        isEligible = _deprecatedDefinition === void 0 ? external_this_lodash_[\"stubFalse\"] : _deprecatedDefinition;\n\n    if (block.isValid && !isEligible(parsedAttributes, innerBlocks)) {\n      continue;\n    } // Block type properties which could impact either serialization or\n    // parsing are not considered in the deprecated block type by default,\n    // and must be explicitly provided.\n\n\n    var deprecatedBlockType = Object.assign(Object(external_this_lodash_[\"omit\"])(blockType, DEPRECATED_ENTRY_KEYS), deprecatedDefinitions[i]);\n    var migratedAttributes = getBlockAttributes(deprecatedBlockType, originalContent, parsedAttributes); // Ignore the deprecation if it produces a block which is not valid.\n\n    var _getBlockContentValid = getBlockContentValidationResult(deprecatedBlockType, migratedAttributes, originalContent),\n        isValid = _getBlockContentValid.isValid,\n        validationIssues = _getBlockContentValid.validationIssues;\n\n    if (!isValid) {\n      block = parser_objectSpread({}, block, {\n        validationIssues: [].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"get\"])(block, 'validationIssues', [])), Object(toConsumableArray[\"a\" /* default */])(validationIssues))\n      });\n      continue;\n    }\n\n    var migratedInnerBlocks = innerBlocks; // A block may provide custom behavior to assign new attributes and/or\n    // inner blocks.\n\n    var migrate = deprecatedBlockType.migrate;\n\n    if (migrate) {\n      var _castArray = Object(external_this_lodash_[\"castArray\"])(migrate(migratedAttributes, innerBlocks));\n\n      var _castArray2 = Object(slicedToArray[\"a\" /* default */])(_castArray, 2);\n\n      var _castArray2$ = _castArray2[0];\n      migratedAttributes = _castArray2$ === void 0 ? parsedAttributes : _castArray2$;\n      var _castArray2$2 = _castArray2[1];\n      migratedInnerBlocks = _castArray2$2 === void 0 ? innerBlocks : _castArray2$2;\n    }\n\n    block = parser_objectSpread({}, block, {\n      attributes: migratedAttributes,\n      innerBlocks: migratedInnerBlocks,\n      isValid: true\n    });\n  }\n\n  return block;\n}\n/**\n * Creates a block with fallback to the unknown type handler.\n *\n * @param {Object} blockNode Parsed block node.\n *\n * @return {?Object} An initialized block object (if possible).\n */\n\nfunction createBlockWithFallback(blockNode) {\n  var originalName = blockNode.blockName;\n  var attributes = blockNode.attrs,\n      _blockNode$innerBlock = blockNode.innerBlocks,\n      innerBlocks = _blockNode$innerBlock === void 0 ? [] : _blockNode$innerBlock,\n      innerHTML = blockNode.innerHTML;\n  var innerContent = blockNode.innerContent;\n  var freeformContentFallbackBlock = getFreeformContentHandlerName();\n  var unregisteredFallbackBlock = getUnregisteredTypeHandlerName() || freeformContentFallbackBlock;\n  attributes = attributes || {}; // Trim content to avoid creation of intermediary freeform segments.\n\n  innerHTML = innerHTML.trim(); // Use type from block content if available. Otherwise, default to the\n  // freeform content fallback.\n\n  var name = originalName || freeformContentFallbackBlock; // Convert 'core/cover-image' block in existing content to 'core/cover'.\n\n  if ('core/cover-image' === name) {\n    name = 'core/cover';\n  } // Convert 'core/text' blocks in existing content to 'core/paragraph'.\n\n\n  if ('core/text' === name || 'core/cover-text' === name) {\n    name = 'core/paragraph';\n  } // Convert derivative blocks such as 'core/social-link-wordpress' to the\n  // canonical form 'core/social-link'.\n\n\n  if (name && name.indexOf('core/social-link-') === 0) {\n    // Capture `social-link-wordpress` into `{\"service\":\"wordpress\"}`\n    attributes.service = name.substring(17);\n    name = 'core/social-link';\n  } // Fallback content may be upgraded from classic editor expecting implicit\n  // automatic paragraphs, so preserve them. Assumes wpautop is idempotent,\n  // meaning there are no negative consequences to repeated autop calls.\n\n\n  if (name === freeformContentFallbackBlock) {\n    innerHTML = Object(external_this_wp_autop_[\"autop\"])(innerHTML).trim();\n  } // Try finding the type for known block name, else fall back again.\n\n\n  var blockType = registration_getBlockType(name);\n\n  if (!blockType) {\n    // Since the constituents of the block node are extracted at the start\n    // of the present function, construct a new object rather than reuse\n    // `blockNode`.\n    var reconstitutedBlockNode = {\n      attrs: attributes,\n      blockName: originalName,\n      innerBlocks: innerBlocks,\n      innerContent: innerContent\n    }; // Preserve undelimited content for use by the unregistered type\n    // handler. A block node's `innerHTML` isn't enough, as that field only\n    // carries the block's own HTML and not its nested blocks'.\n\n    var originalUndelimitedContent = serializeBlockNode(reconstitutedBlockNode, {\n      isCommentDelimited: false\n    }); // Preserve full block content for use by the unregistered type\n    // handler, block boundaries included.\n\n    var originalContent = serializeBlockNode(reconstitutedBlockNode, {\n      isCommentDelimited: true\n    }); // If detected as a block which is not registered, preserve comment\n    // delimiters in content of unregistered type handler.\n\n    if (name) {\n      innerHTML = originalContent;\n    }\n\n    name = unregisteredFallbackBlock;\n    attributes = {\n      originalName: originalName,\n      originalContent: originalContent,\n      originalUndelimitedContent: originalUndelimitedContent\n    };\n    blockType = registration_getBlockType(name);\n  } // Coerce inner blocks from parsed form to canonical form.\n\n\n  innerBlocks = innerBlocks.map(createBlockWithFallback); // Remove `undefined` innerBlocks.\n  //\n  // This is a temporary fix to prevent unrecoverable TypeErrors when handling unexpectedly\n  // empty freeform block nodes. See https://github.com/WordPress/gutenberg/pull/17164.\n\n  innerBlocks = innerBlocks.filter(function (innerBlock) {\n    return innerBlock;\n  });\n  var isFallbackBlock = name === freeformContentFallbackBlock || name === unregisteredFallbackBlock; // Include in set only if type was determined.\n\n  if (!blockType || !innerHTML && isFallbackBlock) {\n    return;\n  }\n\n  var block = createBlock(name, getBlockAttributes(blockType, innerHTML, attributes), innerBlocks); // Block validation assumes an idempotent operation from source block to serialized block\n  // provided there are no changes in attributes. The validation procedure thus compares the\n  // provided source value with the serialized output before there are any modifications to\n  // the block. When both match, the block is marked as valid.\n\n  if (!isFallbackBlock) {\n    var _getBlockContentValid2 = getBlockContentValidationResult(blockType, block.attributes, innerHTML),\n        isValid = _getBlockContentValid2.isValid,\n        validationIssues = _getBlockContentValid2.validationIssues;\n\n    block.isValid = isValid;\n    block.validationIssues = validationIssues;\n  } // Preserve original content for future use in case the block is parsed\n  // as invalid, or future serialization attempt results in an error.\n\n\n  block.originalContent = block.originalContent || innerHTML;\n  block = getMigratedBlock(block, attributes);\n\n  if (block.validationIssues && block.validationIssues.length > 0) {\n    if (block.isValid) {\n      // eslint-disable-next-line no-console\n      console.info('Block successfully updated for `%s` (%o).\\n\\nNew content generated by `save` function:\\n\\n%s\\n\\nContent retrieved from post body:\\n\\n%s', blockType.name, blockType, getSaveContent(blockType, block.attributes), block.originalContent);\n    } else {\n      block.validationIssues.forEach(function (_ref) {\n        var log = _ref.log,\n            args = _ref.args;\n        return log.apply(void 0, Object(toConsumableArray[\"a\" /* default */])(args));\n      });\n    }\n  }\n\n  return block;\n}\n/**\n * Serializes a block node into the native HTML-comment-powered block format.\n * CAVEAT: This function is intended for reserializing blocks as parsed by\n * valid parsers and skips any validation steps. This is NOT a generic\n * serialization function for in-memory blocks. For most purposes, see the\n * following functions available in the `@wordpress/blocks` package:\n *\n * @see serializeBlock\n * @see serialize\n *\n * For more on the format of block nodes as returned by valid parsers:\n *\n * @see `@wordpress/block-serialization-default-parser` package\n * @see `@wordpress/block-serialization-spec-parser` package\n *\n * @param {Object}   blockNode                  A block node as returned by a valid parser.\n * @param {?Object}  options                    Serialization options.\n * @param {?boolean} options.isCommentDelimited Whether to output HTML comments around blocks.\n *\n * @return {string} An HTML string representing a block.\n */\n\nfunction serializeBlockNode(blockNode) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _options$isCommentDel = options.isCommentDelimited,\n      isCommentDelimited = _options$isCommentDel === void 0 ? true : _options$isCommentDel;\n  var blockName = blockNode.blockName,\n      _blockNode$attrs = blockNode.attrs,\n      attrs = _blockNode$attrs === void 0 ? {} : _blockNode$attrs,\n      _blockNode$innerBlock2 = blockNode.innerBlocks,\n      innerBlocks = _blockNode$innerBlock2 === void 0 ? [] : _blockNode$innerBlock2,\n      _blockNode$innerConte = blockNode.innerContent,\n      innerContent = _blockNode$innerConte === void 0 ? [] : _blockNode$innerConte;\n  var childIndex = 0;\n  var content = innerContent.map(function (item) {\n    return (// `null` denotes a nested block, otherwise we have an HTML fragment\n      item !== null ? item : serializeBlockNode(innerBlocks[childIndex++], options)\n    );\n  }).join('\\n').replace(/\\n+/g, '\\n').trim();\n  return isCommentDelimited ? getCommentDelimitedContent(blockName, attrs, content) : content;\n}\n/**\n * Creates a parse implementation for the post content which returns a list of blocks.\n *\n * @param {Function} parseImplementation Parse implementation.\n *\n * @return {Function} An implementation which parses the post content.\n */\n\nvar createParse = function createParse(parseImplementation) {\n  return function (content) {\n    return parseImplementation(content).reduce(function (accumulator, blockNode) {\n      var block = createBlockWithFallback(blockNode);\n\n      if (block) {\n        accumulator.push(block);\n      }\n\n      return accumulator;\n    }, []);\n  };\n};\n/**\n * Parses the post content with a PegJS grammar and returns a list of blocks.\n *\n * @param {string} content The post content.\n *\n * @return {Array} Block list.\n */\n\n\nvar parseWithGrammar = createParse(external_this_wp_blockSerializationDefaultParser_[\"parse\"]);\n/* harmony default export */ var parser = (parseWithGrammar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/phrasing-content.js\n\n\nfunction phrasing_content_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction phrasing_content_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { phrasing_content_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { phrasing_content_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * All phrasing content elements.\n *\n * @see https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#phrasing-content-0\n */\n\n/**\n * All text-level semantic elements.\n *\n * @see https://html.spec.whatwg.org/multipage/text-level-semantics.html\n */\n\nvar textContentSchema = {\n  strong: {},\n  em: {},\n  s: {},\n  del: {},\n  ins: {},\n  a: {\n    attributes: ['href', 'target', 'rel']\n  },\n  code: {},\n  abbr: {\n    attributes: ['title']\n  },\n  sub: {},\n  sup: {},\n  br: {},\n  small: {},\n  // To do: fix blockquote.\n  // cite: {},\n  q: {\n    attributes: ['cite']\n  },\n  dfn: {\n    attributes: ['title']\n  },\n  data: {\n    attributes: ['value']\n  },\n  time: {\n    attributes: ['datetime']\n  },\n  var: {},\n  samp: {},\n  kbd: {},\n  i: {},\n  b: {},\n  u: {},\n  mark: {},\n  ruby: {},\n  rt: {},\n  rp: {},\n  bdi: {\n    attributes: ['dir']\n  },\n  bdo: {\n    attributes: ['dir']\n  },\n  wbr: {},\n  '#text': {}\n}; // Recursion is needed.\n// Possible: strong > em > strong.\n// Impossible: strong > strong.\n\nObject(external_this_lodash_[\"without\"])(Object.keys(textContentSchema), '#text', 'br').forEach(function (tag) {\n  textContentSchema[tag].children = Object(external_this_lodash_[\"omit\"])(textContentSchema, tag);\n});\n/**\n * Embedded content elements.\n *\n * @see https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#embedded-content-0\n */\n\nvar embeddedContentSchema = {\n  audio: {\n    attributes: ['src', 'preload', 'autoplay', 'mediagroup', 'loop', 'muted']\n  },\n  canvas: {\n    attributes: ['width', 'height']\n  },\n  embed: {\n    attributes: ['src', 'type', 'width', 'height']\n  },\n  img: {\n    attributes: ['alt', 'src', 'srcset', 'usemap', 'ismap', 'width', 'height']\n  },\n  object: {\n    attributes: ['data', 'type', 'name', 'usemap', 'form', 'width', 'height']\n  },\n  video: {\n    attributes: ['src', 'poster', 'preload', 'autoplay', 'mediagroup', 'loop', 'muted', 'controls', 'width', 'height']\n  }\n};\n/**\n * Phrasing content elements.\n *\n * @see https://www.w3.org/TR/2011/WD-html5-20110525/content-models.html#phrasing-content-0\n */\n\nvar phrasing_content_phrasingContentSchema = phrasing_content_objectSpread({}, textContentSchema, {}, embeddedContentSchema);\n/**\n * Get schema of possible paths for phrasing content.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content\n *\n * @param {string} context Set to \"paste\" to exclude invisible elements and\n *                         sensitive data.\n *\n * @return {Object} Schema.\n */\n\n\nfunction getPhrasingContentSchema(context) {\n  if (context !== 'paste') {\n    return phrasing_content_phrasingContentSchema;\n  }\n\n  return Object(external_this_lodash_[\"omit\"])(phrasing_content_objectSpread({}, phrasing_content_phrasingContentSchema, {\n    // We shouldn't paste potentially sensitive information which is not\n    // visible to the user when pasted, so strip the attributes.\n    ins: {\n      children: phrasing_content_phrasingContentSchema.ins.children\n    },\n    del: {\n      children: phrasing_content_phrasingContentSchema.del.children\n    }\n  }), ['u', // Used to mark misspelling. Shouldn't be pasted.\n  'abbr', // Invisible.\n  'data', // Invisible.\n  'time', // Invisible.\n  'wbr', // Invisible.\n  'bdi', // Invisible.\n  'bdo' // Invisible.\n  ]);\n}\n/**\n * Find out whether or not the given node is phrasing content.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content\n *\n * @param {Element} node The node to test.\n *\n * @return {boolean} True if phrasing content, false if not.\n */\n\nfunction isPhrasingContent(node) {\n  var tag = node.nodeName.toLowerCase();\n  return getPhrasingContentSchema().hasOwnProperty(tag) || tag === 'span';\n}\nfunction isTextContent(node) {\n  var tag = node.nodeName.toLowerCase();\n  return textContentSchema.hasOwnProperty(tag) || tag === 'span';\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/utils.js\n\n\n\nfunction raw_handling_utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction raw_handling_utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { raw_handling_utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { raw_handling_utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Browser dependencies\n */\n\nvar utils_window$Node = window.Node,\n    utils_ELEMENT_NODE = utils_window$Node.ELEMENT_NODE,\n    utils_TEXT_NODE = utils_window$Node.TEXT_NODE;\n/**\n * Given raw transforms from blocks, merges all schemas into one.\n *\n * @param {Array}  transforms            Block transforms, of the `raw` type.\n * @param {Object} phrasingContentSchema The phrasing content schema.\n * @param {Object} isPaste               Whether the context is pasting or not.\n *\n * @return {Object} A complete block content schema.\n */\n\nfunction getBlockContentSchema(transforms, phrasingContentSchema, isPaste) {\n  var schemas = transforms.map(function (_ref) {\n    var isMatch = _ref.isMatch,\n        blockName = _ref.blockName,\n        schema = _ref.schema;\n    var hasAnchorSupport = registration_hasBlockSupport(blockName, 'anchor');\n    schema = Object(external_this_lodash_[\"isFunction\"])(schema) ? schema({\n      phrasingContentSchema: phrasingContentSchema,\n      isPaste: isPaste\n    }) : schema; // If the block does not has anchor support and the transform does not\n    // provides an isMatch we can return the schema right away.\n\n    if (!hasAnchorSupport && !isMatch) {\n      return schema;\n    }\n\n    return Object(external_this_lodash_[\"mapValues\"])(schema, function (value) {\n      var attributes = value.attributes || []; // If the block supports the \"anchor\" functionality, it needs to keep its ID attribute.\n\n      if (hasAnchorSupport) {\n        attributes = [].concat(Object(toConsumableArray[\"a\" /* default */])(attributes), ['id']);\n      }\n\n      return raw_handling_utils_objectSpread({}, value, {\n        attributes: attributes,\n        isMatch: isMatch ? isMatch : undefined\n      });\n    });\n  });\n  return external_this_lodash_[\"mergeWith\"].apply(void 0, [{}].concat(Object(toConsumableArray[\"a\" /* default */])(schemas), [function (objValue, srcValue, key) {\n    switch (key) {\n      case 'children':\n        {\n          if (objValue === '*' || srcValue === '*') {\n            return '*';\n          }\n\n          return raw_handling_utils_objectSpread({}, objValue, {}, srcValue);\n        }\n\n      case 'attributes':\n      case 'require':\n        {\n          return [].concat(Object(toConsumableArray[\"a\" /* default */])(objValue || []), Object(toConsumableArray[\"a\" /* default */])(srcValue || []));\n        }\n\n      case 'isMatch':\n        {\n          // If one of the values being merge is undefined (matches everything),\n          // the result of the merge will be undefined.\n          if (!objValue || !srcValue) {\n            return undefined;\n          } // When merging two isMatch functions, the result is a new function\n          // that returns if one of the source functions returns true.\n\n\n          return function () {\n            return objValue.apply(void 0, arguments) || srcValue.apply(void 0, arguments);\n          };\n        }\n    }\n  }]));\n}\n/**\n * Recursively checks if an element is empty. An element is not empty if it\n * contains text or contains elements with attributes such as images.\n *\n * @param {Element} element The element to check.\n *\n * @return {boolean} Wether or not the element is empty.\n */\n\nfunction isEmpty(element) {\n  if (!element.hasChildNodes()) {\n    return true;\n  }\n\n  return Array.from(element.childNodes).every(function (node) {\n    if (node.nodeType === utils_TEXT_NODE) {\n      return !node.nodeValue.trim();\n    }\n\n    if (node.nodeType === utils_ELEMENT_NODE) {\n      if (node.nodeName === 'BR') {\n        return true;\n      } else if (node.hasAttributes()) {\n        return false;\n      }\n\n      return isEmpty(node);\n    }\n\n    return true;\n  });\n}\n/**\n * Checks wether HTML can be considered plain text. That is, it does not contain\n * any elements that are not line breaks.\n *\n * @param {string} HTML The HTML to check.\n *\n * @return {boolean} Wether the HTML can be considered plain text.\n */\n\nfunction isPlain(HTML) {\n  return !/<(?!br[ />])/i.test(HTML);\n}\n/**\n * Given node filters, deeply filters and mutates a NodeList.\n *\n * @param {NodeList} nodeList The nodeList to filter.\n * @param {Array}    filters  An array of functions that can mutate with the provided node.\n * @param {Document} doc      The document of the nodeList.\n * @param {Object}   schema   The schema to use.\n */\n\nfunction deepFilterNodeList(nodeList, filters, doc, schema) {\n  Array.from(nodeList).forEach(function (node) {\n    deepFilterNodeList(node.childNodes, filters, doc, schema);\n    filters.forEach(function (item) {\n      // Make sure the node is still attached to the document.\n      if (!doc.contains(node)) {\n        return;\n      }\n\n      item(node, doc, schema);\n    });\n  });\n}\n/**\n * Given node filters, deeply filters HTML tags.\n * Filters from the deepest nodes to the top.\n *\n * @param {string} HTML    The HTML to filter.\n * @param {Array}  filters An array of functions that can mutate with the provided node.\n * @param {Object} schema  The schema to use.\n *\n * @return {string} The filtered HTML.\n */\n\nfunction deepFilterHTML(HTML) {\n  var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var schema = arguments.length > 2 ? arguments[2] : undefined;\n  var doc = document.implementation.createHTMLDocument('');\n  doc.body.innerHTML = HTML;\n  deepFilterNodeList(doc.body.childNodes, filters, doc, schema);\n  return doc.body.innerHTML;\n}\n/**\n * Given a schema, unwraps or removes nodes, attributes and classes on a node\n * list.\n *\n * @param {NodeList} nodeList The nodeList to filter.\n * @param {Document} doc      The document of the nodeList.\n * @param {Object}   schema   An array of functions that can mutate with the provided node.\n * @param {Object}   inline   Whether to clean for inline mode.\n */\n\nfunction cleanNodeList(nodeList, doc, schema, inline) {\n  Array.from(nodeList).forEach(function (node) {\n    var tag = node.nodeName.toLowerCase(); // It's a valid child, if the tag exists in the schema without an isMatch\n    // function, or with an isMatch function that matches the node.\n\n    if (schema.hasOwnProperty(tag) && (!schema[tag].isMatch || schema[tag].isMatch(node))) {\n      if (node.nodeType === utils_ELEMENT_NODE) {\n        var _schema$tag = schema[tag],\n            _schema$tag$attribute = _schema$tag.attributes,\n            attributes = _schema$tag$attribute === void 0 ? [] : _schema$tag$attribute,\n            _schema$tag$classes = _schema$tag.classes,\n            classes = _schema$tag$classes === void 0 ? [] : _schema$tag$classes,\n            children = _schema$tag.children,\n            _schema$tag$require = _schema$tag.require,\n            require = _schema$tag$require === void 0 ? [] : _schema$tag$require,\n            allowEmpty = _schema$tag.allowEmpty; // If the node is empty and it's supposed to have children,\n        // remove the node.\n\n\n        if (children && !allowEmpty && isEmpty(node)) {\n          Object(external_this_wp_dom_[\"remove\"])(node);\n          return;\n        }\n\n        if (node.hasAttributes()) {\n          // Strip invalid attributes.\n          Array.from(node.attributes).forEach(function (_ref2) {\n            var name = _ref2.name;\n\n            if (name !== 'class' && !Object(external_this_lodash_[\"includes\"])(attributes, name)) {\n              node.removeAttribute(name);\n            }\n          }); // Strip invalid classes.\n          // In jsdom-jscore, 'node.classList' can be undefined.\n          // TODO: Explore patching this in jsdom-jscore.\n\n          if (node.classList && node.classList.length) {\n            var mattchers = classes.map(function (item) {\n              if (typeof item === 'string') {\n                return function (className) {\n                  return className === item;\n                };\n              } else if (item instanceof RegExp) {\n                return function (className) {\n                  return item.test(className);\n                };\n              }\n\n              return external_this_lodash_[\"noop\"];\n            });\n            Array.from(node.classList).forEach(function (name) {\n              if (!mattchers.some(function (isMatch) {\n                return isMatch(name);\n              })) {\n                node.classList.remove(name);\n              }\n            });\n\n            if (!node.classList.length) {\n              node.removeAttribute('class');\n            }\n          }\n        }\n\n        if (node.hasChildNodes()) {\n          // Do not filter any content.\n          if (children === '*') {\n            return;\n          } // Continue if the node is supposed to have children.\n\n\n          if (children) {\n            // If a parent requires certain children, but it does\n            // not have them, drop the parent and continue.\n            if (require.length && !node.querySelector(require.join(','))) {\n              cleanNodeList(node.childNodes, doc, schema, inline);\n              Object(external_this_wp_dom_[\"unwrap\"])(node); // If the node is at the top, phrasing content, and\n              // contains children that are block content, unwrap\n              // the node because it is invalid.\n            } else if (node.parentNode.nodeName === 'BODY' && isPhrasingContent(node)) {\n              cleanNodeList(node.childNodes, doc, schema, inline);\n\n              if (Array.from(node.childNodes).some(function (child) {\n                return !isPhrasingContent(child);\n              })) {\n                Object(external_this_wp_dom_[\"unwrap\"])(node);\n              }\n            } else {\n              cleanNodeList(node.childNodes, doc, children, inline);\n            } // Remove children if the node is not supposed to have any.\n\n          } else {\n            while (node.firstChild) {\n              Object(external_this_wp_dom_[\"remove\"])(node.firstChild);\n            }\n          }\n        }\n      } // Invalid child. Continue with schema at the same place and unwrap.\n\n    } else {\n      cleanNodeList(node.childNodes, doc, schema, inline); // For inline mode, insert a line break when unwrapping nodes that\n      // are not phrasing content.\n\n      if (inline && !isPhrasingContent(node) && node.nextElementSibling) {\n        Object(external_this_wp_dom_[\"insertAfter\"])(doc.createElement('br'), node);\n      }\n\n      Object(external_this_wp_dom_[\"unwrap\"])(node);\n    }\n  });\n}\n/**\n * Given a schema, unwraps or removes nodes, attributes and classes on HTML.\n *\n * @param {string} HTML   The HTML to clean up.\n * @param {Object} schema Schema for the HTML.\n * @param {Object} inline Whether to clean for inline mode.\n *\n * @return {string} The cleaned up HTML.\n */\n\n\nfunction removeInvalidHTML(HTML, schema, inline) {\n  var doc = document.implementation.createHTMLDocument('');\n  doc.body.innerHTML = HTML;\n  cleanNodeList(doc.body.childNodes, doc, schema, inline);\n  return doc.body.innerHTML;\n}\n/**\n * Gets a sibling within text-level context.\n *\n * @param {Element} node  The subject node.\n * @param {string}  which \"next\" or \"previous\".\n */\n\nfunction getSibling(node, which) {\n  var sibling = node[\"\".concat(which, \"Sibling\")];\n\n  if (sibling && isPhrasingContent(sibling)) {\n    return sibling;\n  }\n\n  var parentNode = node.parentNode;\n\n  if (!parentNode || !isPhrasingContent(parentNode)) {\n    return;\n  }\n\n  return getSibling(parentNode, which);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/normalise-blocks.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Browser dependencies\n */\n\nvar normalise_blocks_window$Node = window.Node,\n    normalise_blocks_ELEMENT_NODE = normalise_blocks_window$Node.ELEMENT_NODE,\n    normalise_blocks_TEXT_NODE = normalise_blocks_window$Node.TEXT_NODE;\nfunction normaliseBlocks(HTML) {\n  var decuDoc = document.implementation.createHTMLDocument('');\n  var accuDoc = document.implementation.createHTMLDocument('');\n  var decu = decuDoc.body;\n  var accu = accuDoc.body;\n  decu.innerHTML = HTML;\n\n  while (decu.firstChild) {\n    var node = decu.firstChild; // Text nodes: wrap in a paragraph, or append to previous.\n\n    if (node.nodeType === normalise_blocks_TEXT_NODE) {\n      if (!node.nodeValue.trim()) {\n        decu.removeChild(node);\n      } else {\n        if (!accu.lastChild || accu.lastChild.nodeName !== 'P') {\n          accu.appendChild(accuDoc.createElement('P'));\n        }\n\n        accu.lastChild.appendChild(node);\n      } // Element nodes.\n\n    } else if (node.nodeType === normalise_blocks_ELEMENT_NODE) {\n      // BR nodes: create a new paragraph on double, or append to previous.\n      if (node.nodeName === 'BR') {\n        if (node.nextSibling && node.nextSibling.nodeName === 'BR') {\n          accu.appendChild(accuDoc.createElement('P'));\n          decu.removeChild(node.nextSibling);\n        } // Don't append to an empty paragraph.\n\n\n        if (accu.lastChild && accu.lastChild.nodeName === 'P' && accu.lastChild.hasChildNodes()) {\n          accu.lastChild.appendChild(node);\n        } else {\n          decu.removeChild(node);\n        }\n      } else if (node.nodeName === 'P') {\n        // Only append non-empty paragraph nodes.\n        if (isEmpty(node)) {\n          decu.removeChild(node);\n        } else {\n          accu.appendChild(node);\n        }\n      } else if (isPhrasingContent(node)) {\n        if (!accu.lastChild || accu.lastChild.nodeName !== 'P') {\n          accu.appendChild(accuDoc.createElement('P'));\n        }\n\n        accu.lastChild.appendChild(node);\n      } else {\n        accu.appendChild(node);\n      }\n    } else {\n      decu.removeChild(node);\n    }\n  }\n\n  return accu.innerHTML;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/special-comment-converter.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Browser dependencies\n */\n\nvar COMMENT_NODE = window.Node.COMMENT_NODE;\n/**\n * Looks for `<!--nextpage-->` and `<!--more-->` comments, as well as the\n * `<!--more Some text-->` variant and its `<!--noteaser-->` companion,\n * and replaces them with a custom element representing a future block.\n *\n * The custom element is a way to bypass the rest of the `raw-handling`\n * transforms, which would eliminate other kinds of node with which to carry\n * `<!--more-->`'s data: nodes with `data` attributes, empty paragraphs, etc.\n *\n * The custom element is then expected to be recognized by any registered\n * block's `raw` transform.\n *\n * @param {Node}     node The node to be processed.\n * @param {Document} doc  The document of the node.\n * @return {void}\n */\n\nfunction specialCommentConverter(node, doc) {\n  if (node.nodeType !== COMMENT_NODE) {\n    return;\n  }\n\n  if (node.nodeValue === 'nextpage') {\n    Object(external_this_wp_dom_[\"replace\"])(node, createNextpage(doc));\n    return;\n  }\n\n  if (node.nodeValue.indexOf('more') === 0) {\n    // Grab any custom text in the comment.\n    var customText = node.nodeValue.slice(4).trim();\n    /*\n     * When a `<!--more-->` comment is found, we need to look for any\n     * `<!--noteaser-->` sibling, but it may not be a direct sibling\n     * (whitespace typically lies in between)\n     */\n\n    var sibling = node;\n    var noTeaser = false;\n\n    while (sibling = sibling.nextSibling) {\n      if (sibling.nodeType === COMMENT_NODE && sibling.nodeValue === 'noteaser') {\n        noTeaser = true;\n        Object(external_this_wp_dom_[\"remove\"])(sibling);\n        break;\n      }\n    }\n\n    Object(external_this_wp_dom_[\"replace\"])(node, createMore(customText, noTeaser, doc));\n  }\n}\n\nfunction createMore(customText, noTeaser, doc) {\n  var node = doc.createElement('wp-block');\n  node.dataset.block = 'core/more';\n\n  if (customText) {\n    node.dataset.customText = customText;\n  }\n\n  if (noTeaser) {\n    // \"Boolean\" data attribute\n    node.dataset.noTeaser = '';\n  }\n\n  return node;\n}\n\nfunction createNextpage(doc) {\n  var node = doc.createElement('wp-block');\n  node.dataset.block = 'core/nextpage';\n  return node;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/comment-remover.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Browser dependencies\n */\n\nvar comment_remover_COMMENT_NODE = window.Node.COMMENT_NODE;\n/**\n * Looks for comments, and removes them.\n *\n * @param {Node} node The node to be processed.\n * @return {void}\n */\n\nfunction commentRemover(node) {\n  if (node.nodeType === comment_remover_COMMENT_NODE) {\n    Object(external_this_wp_dom_[\"remove\"])(node);\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/is-inline-content.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Checks if the given node should be considered inline content, optionally\n * depending on a context tag.\n *\n * @param {Node}   node       Node name.\n * @param {string} contextTag Tag name.\n *\n * @return {boolean} True if the node is inline content, false if nohe.\n */\n\nfunction isInline(node, contextTag) {\n  if (isTextContent(node)) {\n    return true;\n  }\n\n  if (!contextTag) {\n    return false;\n  }\n\n  var tag = node.nodeName.toLowerCase();\n  var inlineWhitelistTagGroups = [['ul', 'li', 'ol'], ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']];\n  return inlineWhitelistTagGroups.some(function (tagGroup) {\n    return Object(external_this_lodash_[\"difference\"])([tag, contextTag], tagGroup).length === 0;\n  });\n}\n\nfunction deepCheck(nodes, contextTag) {\n  return nodes.every(function (node) {\n    return isInline(node, contextTag) && deepCheck(Array.from(node.children), contextTag);\n  });\n}\n\nfunction isDoubleBR(node) {\n  return node.nodeName === 'BR' && node.previousSibling && node.previousSibling.nodeName === 'BR';\n}\n\nfunction isInlineContent(HTML, contextTag) {\n  var doc = document.implementation.createHTMLDocument('');\n  doc.body.innerHTML = HTML;\n  var nodes = Array.from(doc.body.children);\n  return !nodes.some(isDoubleBR) && deepCheck(nodes, contextTag);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/phrasing-content-reducer.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction phrasingContentReducer(node, doc) {\n  // In jsdom-jscore, 'node.style' can be null.\n  // TODO: Explore fixing this by patching jsdom-jscore.\n  if (node.nodeName === 'SPAN' && node.style) {\n    var _node$style = node.style,\n        fontWeight = _node$style.fontWeight,\n        fontStyle = _node$style.fontStyle,\n        textDecorationLine = _node$style.textDecorationLine,\n        textDecoration = _node$style.textDecoration,\n        verticalAlign = _node$style.verticalAlign;\n\n    if (fontWeight === 'bold' || fontWeight === '700') {\n      Object(external_this_wp_dom_[\"wrap\"])(doc.createElement('strong'), node);\n    }\n\n    if (fontStyle === 'italic') {\n      Object(external_this_wp_dom_[\"wrap\"])(doc.createElement('em'), node);\n    } // Some DOM implementations (Safari, JSDom) don't support\n    // style.textDecorationLine, so we check style.textDecoration as a\n    // fallback.\n\n\n    if (textDecorationLine === 'line-through' || Object(external_this_lodash_[\"includes\"])(textDecoration, 'line-through')) {\n      Object(external_this_wp_dom_[\"wrap\"])(doc.createElement('s'), node);\n    }\n\n    if (verticalAlign === 'super') {\n      Object(external_this_wp_dom_[\"wrap\"])(doc.createElement('sup'), node);\n    } else if (verticalAlign === 'sub') {\n      Object(external_this_wp_dom_[\"wrap\"])(doc.createElement('sub'), node);\n    }\n  } else if (node.nodeName === 'B') {\n    node = Object(external_this_wp_dom_[\"replaceTag\"])(node, 'strong');\n  } else if (node.nodeName === 'I') {\n    node = Object(external_this_wp_dom_[\"replaceTag\"])(node, 'em');\n  } else if (node.nodeName === 'A') {\n    // In jsdom-jscore, 'node.target' can be null.\n    // TODO: Explore fixing this by patching jsdom-jscore.\n    if (node.target && node.target.toLowerCase() === '_blank') {\n      node.rel = 'noreferrer noopener';\n    } else {\n      node.removeAttribute('target');\n      node.removeAttribute('rel');\n    }\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/head-remover.js\nfunction headRemover(node) {\n  if (node.nodeName !== 'SCRIPT' && node.nodeName !== 'NOSCRIPT' && node.nodeName !== 'TEMPLATE' && node.nodeName !== 'STYLE') {\n    return;\n  }\n\n  node.parentNode.removeChild(node);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/ms-list-converter.js\n/**\n * Browser dependencies\n */\nvar _window = window,\n    ms_list_converter_parseInt = _window.parseInt;\n\nfunction isList(node) {\n  return node.nodeName === 'OL' || node.nodeName === 'UL';\n}\n\nfunction msListConverter(node, doc) {\n  if (node.nodeName !== 'P') {\n    return;\n  }\n\n  var style = node.getAttribute('style');\n\n  if (!style) {\n    return;\n  } // Quick check.\n\n\n  if (style.indexOf('mso-list') === -1) {\n    return;\n  }\n\n  var matches = /mso-list\\s*:[^;]+level([0-9]+)/i.exec(style);\n\n  if (!matches) {\n    return;\n  }\n\n  var level = ms_list_converter_parseInt(matches[1], 10) - 1 || 0;\n  var prevNode = node.previousElementSibling; // Add new list if no previous.\n\n  if (!prevNode || !isList(prevNode)) {\n    // See https://html.spec.whatwg.org/multipage/grouping-content.html#attr-ol-type.\n    var type = node.textContent.trim().slice(0, 1);\n    var isNumeric = /[1iIaA]/.test(type);\n    var newListNode = doc.createElement(isNumeric ? 'ol' : 'ul');\n\n    if (isNumeric) {\n      newListNode.setAttribute('type', type);\n    }\n\n    node.parentNode.insertBefore(newListNode, node);\n  }\n\n  var listNode = node.previousElementSibling;\n  var listType = listNode.nodeName;\n  var listItem = doc.createElement('li');\n  var receivingNode = listNode; // Remove the first span with list info.\n\n  node.removeChild(node.firstElementChild); // Add content.\n\n  while (node.firstChild) {\n    listItem.appendChild(node.firstChild);\n  } // Change pointer depending on indentation level.\n\n\n  while (level--) {\n    receivingNode = receivingNode.lastElementChild || receivingNode; // If it's a list, move pointer to the last item.\n\n    if (isList(receivingNode)) {\n      receivingNode = receivingNode.lastElementChild || receivingNode;\n    }\n  } // Make sure we append to a list.\n\n\n  if (!isList(receivingNode)) {\n    receivingNode = receivingNode.appendChild(doc.createElement(listType));\n  } // Append the list item to the list.\n\n\n  receivingNode.appendChild(listItem); // Remove the wrapper paragraph.\n\n  node.parentNode.removeChild(node);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/list-reducer.js\n/**\n * WordPress dependencies\n */\n\n\nfunction list_reducer_isList(node) {\n  return node.nodeName === 'OL' || node.nodeName === 'UL';\n}\n\nfunction shallowTextContent(element) {\n  return Array.from(element.childNodes).map(function (_ref) {\n    var _ref$nodeValue = _ref.nodeValue,\n        nodeValue = _ref$nodeValue === void 0 ? '' : _ref$nodeValue;\n    return nodeValue;\n  }).join('');\n}\n\nfunction listReducer(node) {\n  if (!list_reducer_isList(node)) {\n    return;\n  }\n\n  var list = node;\n  var prevElement = node.previousElementSibling; // Merge with previous list if:\n  // * There is a previous list of the same type.\n  // * There is only one list item.\n\n  if (prevElement && prevElement.nodeName === node.nodeName && list.children.length === 1) {\n    // Move all child nodes, including any text nodes, if any.\n    while (list.firstChild) {\n      prevElement.appendChild(list.firstChild);\n    }\n\n    list.parentNode.removeChild(list);\n  }\n\n  var parentElement = node.parentNode; // Nested list with empty parent item.\n\n  if (parentElement && parentElement.nodeName === 'LI' && parentElement.children.length === 1 && !/\\S/.test(shallowTextContent(parentElement))) {\n    var parentListItem = parentElement;\n    var prevListItem = parentListItem.previousElementSibling;\n    var parentList = parentListItem.parentNode;\n\n    if (prevListItem) {\n      prevListItem.appendChild(list);\n      parentList.removeChild(parentListItem);\n    } else {\n      parentList.parentNode.insertBefore(list, parentList);\n      parentList.parentNode.removeChild(parentList);\n    }\n  } // Invalid: OL/UL > OL/UL.\n\n\n  if (parentElement && list_reducer_isList(parentElement)) {\n    var _prevListItem = node.previousElementSibling;\n\n    if (_prevListItem) {\n      _prevListItem.appendChild(node);\n    } else {\n      Object(external_this_wp_dom_[\"unwrap\"])(node);\n    }\n  }\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blob\"]}\nvar external_this_wp_blob_ = __webpack_require__(44);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/image-corrector.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Browser dependencies\n */\n\nvar image_corrector_window = window,\n    atob = image_corrector_window.atob,\n    File = image_corrector_window.File;\nfunction imageCorrector(node) {\n  if (node.nodeName !== 'IMG') {\n    return;\n  }\n\n  if (node.src.indexOf('file:') === 0) {\n    node.src = '';\n  } // This piece cannot be tested outside a browser env.\n\n\n  if (node.src.indexOf('data:') === 0) {\n    var _node$src$split = node.src.split(','),\n        _node$src$split2 = Object(slicedToArray[\"a\" /* default */])(_node$src$split, 2),\n        properties = _node$src$split2[0],\n        data = _node$src$split2[1];\n\n    var _properties$slice$spl = properties.slice(5).split(';'),\n        _properties$slice$spl2 = Object(slicedToArray[\"a\" /* default */])(_properties$slice$spl, 1),\n        type = _properties$slice$spl2[0];\n\n    if (!data || !type) {\n      node.src = '';\n      return;\n    }\n\n    var decoded; // Can throw DOMException!\n\n    try {\n      decoded = atob(data);\n    } catch (e) {\n      node.src = '';\n      return;\n    }\n\n    var uint8Array = new Uint8Array(decoded.length);\n\n    for (var i = 0; i < uint8Array.length; i++) {\n      uint8Array[i] = decoded.charCodeAt(i);\n    }\n\n    var name = type.replace('/', '.');\n    var file = new File([uint8Array], name, {\n      type: type\n    });\n    node.src = Object(external_this_wp_blob_[\"createBlobURL\"])(file);\n  } // Remove trackers and hardly visible images.\n\n\n  if (node.height === 1 || node.width === 1) {\n    node.parentNode.removeChild(node);\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/blockquote-normaliser.js\n/**\n * Internal dependencies\n */\n\nfunction blockquoteNormaliser(node) {\n  if (node.nodeName !== 'BLOCKQUOTE') {\n    return;\n  }\n\n  node.innerHTML = normaliseBlocks(node.innerHTML);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/figure-content-reducer.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Whether or not the given node is figure content.\n *\n * @param {Node}   node   The node to check.\n * @param {Object} schema The schema to use.\n *\n * @return {boolean} True if figure content, false if not.\n */\n\nfunction isFigureContent(node, schema) {\n  var tag = node.nodeName.toLowerCase(); // We are looking for tags that can be a child of the figure tag, excluding\n  // `figcaption` and any phrasing content.\n\n  if (tag === 'figcaption' || isTextContent(node)) {\n    return false;\n  }\n\n  return Object(external_this_lodash_[\"has\"])(schema, ['figure', 'children', tag]);\n}\n/**\n * Whether or not the given node can have an anchor.\n *\n * @param {Node}   node   The node to check.\n * @param {Object} schema The schema to use.\n *\n * @return {boolean} True if it can, false if not.\n */\n\n\nfunction canHaveAnchor(node, schema) {\n  var tag = node.nodeName.toLowerCase();\n  return Object(external_this_lodash_[\"has\"])(schema, ['figure', 'children', 'a', 'children', tag]);\n}\n/**\n * Wraps the given element in a figure element.\n *\n * @param {Element} element       The element to wrap.\n * @param {Element} beforeElement The element before which to place the figure.\n */\n\n\nfunction wrapFigureContent(element) {\n  var beforeElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : element;\n  var figure = element.ownerDocument.createElement('figure');\n  beforeElement.parentNode.insertBefore(figure, beforeElement);\n  figure.appendChild(element);\n}\n/**\n * This filter takes figure content out of paragraphs, wraps it in a figure\n * element, and moves any anchors with it if needed.\n *\n * @param {Node}     node   The node to filter.\n * @param {Document} doc    The document of the node.\n * @param {Object}   schema The schema to use.\n *\n * @return {void}\n */\n\n\nfunction figureContentReducer(node, doc, schema) {\n  if (!isFigureContent(node, schema)) {\n    return;\n  }\n\n  var nodeToInsert = node;\n  var parentNode = node.parentNode; // If the figure content can have an anchor and its parent is an anchor with\n  // only the figure content, take the anchor out instead of just the content.\n\n  if (canHaveAnchor(node, schema) && parentNode.nodeName === 'A' && parentNode.childNodes.length === 1) {\n    nodeToInsert = node.parentNode;\n  }\n\n  var wrapper = nodeToInsert.closest('p,div'); // If wrapped in a paragraph or div, only extract if it's aligned or if\n  // there is no text content.\n  // Otherwise, if directly at the root, wrap in a figure element.\n\n  if (wrapper) {\n    // In jsdom-jscore, 'node.classList' can be undefined.\n    // In this case, default to extract as it offers a better UI experience on mobile.\n    if (!node.classList) {\n      wrapFigureContent(nodeToInsert, wrapper);\n    } else if (node.classList.contains('alignright') || node.classList.contains('alignleft') || node.classList.contains('aligncenter') || !wrapper.textContent.trim()) {\n      wrapFigureContent(nodeToInsert, wrapper);\n    }\n  } else if (nodeToInsert.parentNode.nodeName === 'BODY') {\n    wrapFigureContent(nodeToInsert);\n  }\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"shortcode\"]}\nvar external_this_wp_shortcode_ = __webpack_require__(119);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/shortcode-converter.js\n\n\n\nfunction shortcode_converter_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction shortcode_converter_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { shortcode_converter_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { shortcode_converter_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction segmentHTMLToShortcodeBlock(HTML) {\n  var lastIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var excludedBlockNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  // Get all matches.\n  var transformsFrom = getBlockTransforms('from');\n  var transformation = findTransform(transformsFrom, function (transform) {\n    return excludedBlockNames.indexOf(transform.blockName) === -1 && transform.type === 'shortcode' && Object(external_this_lodash_[\"some\"])(Object(external_this_lodash_[\"castArray\"])(transform.tag), function (tag) {\n      return Object(external_this_wp_shortcode_[\"regexp\"])(tag).test(HTML);\n    });\n  });\n\n  if (!transformation) {\n    return [HTML];\n  }\n\n  var transformTags = Object(external_this_lodash_[\"castArray\"])(transformation.tag);\n  var transformTag = Object(external_this_lodash_[\"find\"])(transformTags, function (tag) {\n    return Object(external_this_wp_shortcode_[\"regexp\"])(tag).test(HTML);\n  });\n  var match;\n  var previousIndex = lastIndex;\n\n  if (match = Object(external_this_wp_shortcode_[\"next\"])(transformTag, HTML, lastIndex)) {\n    lastIndex = match.index + match.content.length;\n    var beforeHTML = HTML.substr(0, match.index);\n    var afterHTML = HTML.substr(lastIndex); // If the shortcode content does not contain HTML and the shortcode is\n    // not on a new line (or in paragraph from Markdown converter),\n    // consider the shortcode as inline text, and thus skip conversion for\n    // this segment.\n\n    if (!Object(external_this_lodash_[\"includes\"])(match.shortcode.content || '', '<') && !(/(\\n|<p>)\\s*$/.test(beforeHTML) && /^\\s*(\\n|<\\/p>)/.test(afterHTML))) {\n      return segmentHTMLToShortcodeBlock(HTML, lastIndex);\n    } // If a transformation's `isMatch` predicate fails for the inbound\n    // shortcode, try again by excluding the current block type.\n    //\n    // This is the only call to `segmentHTMLToShortcodeBlock` that should\n    // ever carry over `excludedBlockNames`. Other calls in the module\n    // should skip that argument as a way to reset the exclusion state, so\n    // that one `isMatch` fail in an HTML fragment doesn't prevent any\n    // valid matches in subsequent fragments.\n\n\n    if (transformation.isMatch && !transformation.isMatch(match.shortcode.attrs)) {\n      return segmentHTMLToShortcodeBlock(HTML, previousIndex, [].concat(Object(toConsumableArray[\"a\" /* default */])(excludedBlockNames), [transformation.blockName]));\n    }\n\n    var attributes = Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"pickBy\"])(transformation.attributes, function (schema) {\n      return schema.shortcode;\n    }), // Passing all of `match` as second argument is intentionally broad\n    // but shouldn't be too relied upon.\n    //\n    // See: https://github.com/WordPress/gutenberg/pull/3610#discussion_r152546926\n    function (schema) {\n      return schema.shortcode(match.shortcode.attrs, match);\n    });\n    var block = createBlock(transformation.blockName, getBlockAttributes(shortcode_converter_objectSpread({}, registration_getBlockType(transformation.blockName), {\n      attributes: transformation.attributes\n    }), match.shortcode.content, attributes));\n    return [beforeHTML, block].concat(Object(toConsumableArray[\"a\" /* default */])(segmentHTMLToShortcodeBlock(HTML.substr(lastIndex))));\n  }\n\n  return [HTML];\n}\n\n/* harmony default export */ var shortcode_converter = (segmentHTMLToShortcodeBlock);\n\n// EXTERNAL MODULE: ./node_modules/showdown/dist/showdown.js\nvar showdown = __webpack_require__(263);\nvar showdown_default = /*#__PURE__*/__webpack_require__.n(showdown);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/markdown-converter.js\n/**\n * External dependencies\n */\n // Reuse the same showdown converter.\n\nvar converter = new showdown_default.a.Converter({\n  noHeaderId: true,\n  tables: true,\n  literalMidWordUnderscores: true,\n  omitExtraWLInCodeBlocks: true,\n  simpleLineBreaks: true,\n  strikethrough: true\n});\n/**\n * Corrects the Slack Markdown variant of the code block.\n * If uncorrected, it will be converted to inline code.\n *\n * @see https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages-#code-blocks\n *\n * @param {string} text The potential Markdown text to correct.\n *\n * @return {string} The corrected Markdown.\n */\n\nfunction slackMarkdownVariantCorrector(text) {\n  return text.replace(/((?:^|\\n)```)([^\\n`]+)(```(?:$|\\n))/, function (match, p1, p2, p3) {\n    return \"\".concat(p1, \"\\n\").concat(p2, \"\\n\").concat(p3);\n  });\n}\n/**\n * Converts a piece of text into HTML based on any Markdown present.\n * Also decodes any encoded HTML.\n *\n * @param {string} text The plain text to convert.\n *\n * @return {string} HTML.\n */\n\n\nfunction markdownConverter(text) {\n  return converter.makeHtml(slackMarkdownVariantCorrector(text));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/iframe-remover.js\n/**\n * Removes iframes.\n *\n * @param {Node} node The node to check.\n *\n * @return {void}\n */\nfunction iframeRemover(node) {\n  if (node.nodeName === 'IFRAME') {\n    var text = node.ownerDocument.createTextNode(node.src);\n    node.parentNode.replaceChild(text, node);\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/google-docs-uid-remover.js\n/**\n * WordPress dependencies\n */\n\nfunction googleDocsUIdRemover(node) {\n  if (!node.id || node.id.indexOf('docs-internal-guid-') !== 0) {\n    return;\n  }\n\n  Object(external_this_wp_dom_[\"unwrap\"])(node);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/html-formatting-remover.js\n/**\n * Internal dependencies\n */\n\n\nfunction isFormattingSpace(character) {\n  return character === ' ' || character === '\\r' || character === '\\n' || character === '\\t';\n}\n/**\n * Removes spacing that formats HTML.\n *\n * @see https://www.w3.org/TR/css-text-3/#white-space-processing\n *\n * @param {Node} node The node to be processed.\n * @return {void}\n */\n\n\nfunction htmlFormattingRemover(node) {\n  if (node.nodeType !== node.TEXT_NODE) {\n    return;\n  } // Ignore pre content. Note that this does not use Element#closest due to\n  // a combination of (a) node may not be Element and (b) node.parentElement\n  // does not have full support in all browsers (Internet Exporer).\n  //\n  // See: https://developer.mozilla.org/en-US/docs/Web/API/Node/parentElement#Browser_compatibility\n\n  /** @type {Node?} */\n\n\n  var parent = node;\n\n  while (parent = parent.parentNode) {\n    if (parent.nodeType === window.Node.ELEMENT_NODE && parent.nodeName === 'PRE') {\n      return;\n    }\n  } // First, replace any sequence of HTML formatting space with a single space.\n\n\n  var newData = node.data.replace(/[ \\r\\n\\t]+/g, ' '); // Remove the leading space if the text element is at the start of a block,\n  // is preceded by a line break element, or has a space in the previous\n  // node.\n\n  if (newData[0] === ' ') {\n    var previousSibling = getSibling(node, 'previous');\n\n    if (!previousSibling || previousSibling.nodeName === 'BR' || previousSibling.textContent.slice(-1) === ' ') {\n      newData = newData.slice(1);\n    }\n  } // Remove the trailing space if the text element is at the end of a block,\n  // is succeded by a line break element, or has a space in the next text\n  // node.\n\n\n  if (newData[newData.length - 1] === ' ') {\n    var nextSibling = getSibling(node, 'next');\n\n    if (!nextSibling || nextSibling.nodeName === 'BR' || nextSibling.nodeType === nextSibling.TEXT_NODE && isFormattingSpace(nextSibling.textContent[0])) {\n      newData = newData.slice(0, -1);\n    }\n  } // If there's no data left, remove the node, so `previousSibling` stays\n  // accurate. Otherwise, update the node data.\n\n\n  if (!newData) {\n    node.parentNode.removeChild(node);\n  } else {\n    node.data = newData;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/br-remover.js\n/**\n * Internal dependencies\n */\n\n/**\n * Removes trailing br elements from text-level content.\n *\n * @param {Element} node Node to check.\n */\n\nfunction brRemover(node) {\n  if (node.nodeName !== 'BR') {\n    return;\n  }\n\n  if (getSibling(node, 'next')) {\n    return;\n  }\n\n  node.parentNode.removeChild(node);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/empty-paragraph-remover.js\n/**\n * Removes empty paragraph elements.\n *\n * @param {Element} node Node to check.\n */\nfunction emptyParagraphRemover(node) {\n  if (node.nodeName !== 'P') {\n    return;\n  }\n\n  if (node.hasChildNodes()) {\n    return;\n  }\n\n  node.parentNode.removeChild(node);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/paste-handler.js\n\n\nfunction paste_handler_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction paste_handler_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { paste_handler_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { paste_handler_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Browser dependencies\n */\n\nvar paste_handler_window = window,\n    paste_handler_console = paste_handler_window.console;\n/**\n * Filters HTML to only contain phrasing content.\n *\n * @param {string} HTML The HTML to filter.\n *\n * @return {string} HTML only containing phrasing content.\n */\n\nfunction filterInlineHTML(HTML) {\n  HTML = deepFilterHTML(HTML, [googleDocsUIdRemover, phrasingContentReducer, commentRemover]);\n  HTML = removeInvalidHTML(HTML, getPhrasingContentSchema('paste'), {\n    inline: true\n  });\n  HTML = deepFilterHTML(HTML, [htmlFormattingRemover, brRemover]); // Allows us to ask for this information when we get a report.\n\n  paste_handler_console.log('Processed inline HTML:\\n\\n', HTML);\n  return HTML;\n}\n\nfunction getRawTransformations() {\n  return Object(external_this_lodash_[\"filter\"])(getBlockTransforms('from'), {\n    type: 'raw'\n  }).map(function (transform) {\n    return transform.isMatch ? transform : paste_handler_objectSpread({}, transform, {\n      isMatch: function isMatch(node) {\n        return transform.selector && node.matches(transform.selector);\n      }\n    });\n  });\n}\n/**\n * Converts HTML directly to blocks. Looks for a matching transform for each\n * top-level tag. The HTML should be filtered to not have any text between\n * top-level tags and formatted in a way that blocks can handle the HTML.\n *\n * @param  {Object} $1               Named parameters.\n * @param  {string} $1.html          HTML to convert.\n * @param  {Array}  $1.rawTransforms Transforms that can be used.\n *\n * @return {Array} An array of blocks.\n */\n\n\nfunction htmlToBlocks(_ref) {\n  var html = _ref.html,\n      rawTransforms = _ref.rawTransforms;\n  var doc = document.implementation.createHTMLDocument('');\n  doc.body.innerHTML = html;\n  return Array.from(doc.body.children).map(function (node) {\n    var rawTransform = findTransform(rawTransforms, function (_ref2) {\n      var isMatch = _ref2.isMatch;\n      return isMatch(node);\n    });\n\n    if (!rawTransform) {\n      return createBlock( // Should not be hardcoded.\n      'core/html', getBlockAttributes('core/html', node.outerHTML));\n    }\n\n    var transform = rawTransform.transform,\n        blockName = rawTransform.blockName;\n\n    if (transform) {\n      return transform(node);\n    }\n\n    return createBlock(blockName, getBlockAttributes(blockName, node.outerHTML));\n  });\n}\n/**\n * Converts an HTML string to known blocks. Strips everything else.\n *\n * @param {Object}  options\n * @param {string}  [options.HTML]      The HTML to convert.\n * @param {string}  [options.plainText] Plain text version.\n * @param {string}  [options.mode]      Handle content as blocks or inline content.\n *                                      * 'AUTO': Decide based on the content passed.\n *                                      * 'INLINE': Always handle as inline content, and return string.\n *                                      * 'BLOCKS': Always handle as blocks, and return array of blocks.\n * @param {Array}   [options.tagName]   The tag into which content will be inserted.\n *\n * @return {Array|string} A list of blocks or a string, depending on `handlerMode`.\n */\n\n\nfunction pasteHandler(_ref3) {\n  var _ref3$HTML = _ref3.HTML,\n      HTML = _ref3$HTML === void 0 ? '' : _ref3$HTML,\n      _ref3$plainText = _ref3.plainText,\n      plainText = _ref3$plainText === void 0 ? '' : _ref3$plainText,\n      _ref3$mode = _ref3.mode,\n      mode = _ref3$mode === void 0 ? 'AUTO' : _ref3$mode,\n      tagName = _ref3.tagName;\n  // First of all, strip any meta tags.\n  HTML = HTML.replace(/<meta[^>]+>/g, ''); // Strip Windows markers.\n\n  HTML = HTML.replace(/^\\s*<html[^>]*>\\s*<body[^>]*>(?:\\s*<!--\\s*StartFragment\\s*-->)?/i, '');\n  HTML = HTML.replace(/(?:<!--\\s*EndFragment\\s*-->\\s*)?<\\/body>\\s*<\\/html>\\s*$/i, ''); // If we detect block delimiters in HTML, parse entirely as blocks.\n\n  if (mode !== 'INLINE') {\n    // Check plain text if there is no HTML.\n    var content = HTML ? HTML : plainText;\n\n    if (content.indexOf('<!-- wp:') !== -1) {\n      return parseWithGrammar(content);\n    }\n  } // Normalize unicode to use composed characters.\n  // This is unsupported in IE 11 but it's a nice-to-have feature, not mandatory.\n  // Not normalizing the content will only affect older browsers and won't\n  // entirely break the app.\n  // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\n  // See: https://core.trac.wordpress.org/ticket/30130\n  // See: https://github.com/WordPress/gutenberg/pull/6983#pullrequestreview-125151075\n\n\n  if (String.prototype.normalize) {\n    HTML = HTML.normalize();\n  } // Parse Markdown (and encoded HTML) if:\n  // * There is a plain text version.\n  // * There is no HTML version, or it has no formatting.\n\n\n  if (plainText && (!HTML || isPlain(HTML))) {\n    HTML = markdownConverter(plainText); // Switch to inline mode if:\n    // * The current mode is AUTO.\n    // * The original plain text had no line breaks.\n    // * The original plain text was not an HTML paragraph.\n    // * The converted text is just a paragraph.\n\n    if (mode === 'AUTO' && plainText.indexOf('\\n') === -1 && plainText.indexOf('<p>') !== 0 && HTML.indexOf('<p>') === 0) {\n      mode = 'INLINE';\n    }\n  }\n\n  if (mode === 'INLINE') {\n    return filterInlineHTML(HTML);\n  } // An array of HTML strings and block objects. The blocks replace matched\n  // shortcodes.\n\n\n  var pieces = shortcode_converter(HTML); // The call to shortcodeConverter will always return more than one element\n  // if shortcodes are matched. The reason is when shortcodes are matched\n  // empty HTML strings are included.\n\n  var hasShortcodes = pieces.length > 1;\n\n  if (mode === 'AUTO' && !hasShortcodes && isInlineContent(HTML, tagName)) {\n    return filterInlineHTML(HTML);\n  }\n\n  var rawTransforms = getRawTransformations();\n  var phrasingContentSchema = getPhrasingContentSchema('paste');\n  var blockContentSchema = getBlockContentSchema(rawTransforms, phrasingContentSchema, true);\n  var blocks = Object(external_this_lodash_[\"compact\"])(Object(external_this_lodash_[\"flatMap\"])(pieces, function (piece) {\n    // Already a block from shortcode.\n    if (typeof piece !== 'string') {\n      return piece;\n    }\n\n    var filters = [googleDocsUIdRemover, msListConverter, headRemover, listReducer, imageCorrector, phrasingContentReducer, specialCommentConverter, commentRemover, iframeRemover, figureContentReducer, blockquoteNormaliser];\n\n    var schema = paste_handler_objectSpread({}, blockContentSchema, {}, phrasingContentSchema);\n\n    piece = deepFilterHTML(piece, filters, blockContentSchema);\n    piece = removeInvalidHTML(piece, schema);\n    piece = normaliseBlocks(piece);\n    piece = deepFilterHTML(piece, [htmlFormattingRemover, brRemover, emptyParagraphRemover], blockContentSchema); // Allows us to ask for this information when we get a report.\n\n    paste_handler_console.log('Processed HTML piece:\\n\\n', piece);\n    return htmlToBlocks({\n      html: piece,\n      rawTransforms: rawTransforms\n    });\n  })); // If we're allowed to return inline content, and there is only one inlineable block,\n  // and the original plain text content does not have any line breaks, then\n  // treat it as inline paste.\n\n  if (mode === 'AUTO' && blocks.length === 1 && registration_hasBlockSupport(blocks[0].name, '__unstablePasteTextInline', false)) {\n    var trimmedPlainText = plainText.trim();\n\n    if (trimmedPlainText !== '' && trimmedPlainText.indexOf('\\n') === -1) {\n      return removeInvalidHTML(getBlockContent(blocks[0]), phrasingContentSchema);\n    }\n  }\n\n  return blocks;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/raw-handling/index.js\n\n\nfunction raw_handling_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction raw_handling_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { raw_handling_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { raw_handling_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction raw_handling_getRawTransformations() {\n  return Object(external_this_lodash_[\"filter\"])(getBlockTransforms('from'), {\n    type: 'raw'\n  }).map(function (transform) {\n    return transform.isMatch ? transform : raw_handling_objectSpread({}, transform, {\n      isMatch: function isMatch(node) {\n        return transform.selector && node.matches(transform.selector);\n      }\n    });\n  });\n}\n/**\n * Converts HTML directly to blocks. Looks for a matching transform for each\n * top-level tag. The HTML should be filtered to not have any text between\n * top-level tags and formatted in a way that blocks can handle the HTML.\n *\n * @param  {Object} $1               Named parameters.\n * @param  {string} $1.html          HTML to convert.\n * @param  {Array}  $1.rawTransforms Transforms that can be used.\n *\n * @return {Array} An array of blocks.\n */\n\n\nfunction raw_handling_htmlToBlocks(_ref) {\n  var html = _ref.html,\n      rawTransforms = _ref.rawTransforms;\n  var doc = document.implementation.createHTMLDocument('');\n  doc.body.innerHTML = html;\n  return Array.from(doc.body.children).map(function (node) {\n    var rawTransform = findTransform(rawTransforms, function (_ref2) {\n      var isMatch = _ref2.isMatch;\n      return isMatch(node);\n    });\n\n    if (!rawTransform) {\n      return createBlock( // Should not be hardcoded.\n      'core/html', getBlockAttributes('core/html', node.outerHTML));\n    }\n\n    var transform = rawTransform.transform,\n        blockName = rawTransform.blockName;\n\n    if (transform) {\n      return transform(node);\n    }\n\n    return createBlock(blockName, getBlockAttributes(blockName, node.outerHTML));\n  });\n}\n/**\n * Converts an HTML string to known blocks.\n *\n * @param {Object} $1\n * @param {string} $1.HTML The HTML to convert.\n *\n * @return {Array} A list of blocks.\n */\n\n\nfunction rawHandler(_ref3) {\n  var _ref3$HTML = _ref3.HTML,\n      HTML = _ref3$HTML === void 0 ? '' : _ref3$HTML;\n\n  // If we detect block delimiters, parse entirely as blocks.\n  if (HTML.indexOf('<!-- wp:') !== -1) {\n    return parseWithGrammar(HTML);\n  } // An array of HTML strings and block objects. The blocks replace matched\n  // shortcodes.\n\n\n  var pieces = shortcode_converter(HTML);\n  var rawTransforms = raw_handling_getRawTransformations();\n  var phrasingContentSchema = getPhrasingContentSchema();\n  var blockContentSchema = getBlockContentSchema(rawTransforms, phrasingContentSchema);\n  return Object(external_this_lodash_[\"compact\"])(Object(external_this_lodash_[\"flatMap\"])(pieces, function (piece) {\n    // Already a block from shortcode.\n    if (typeof piece !== 'string') {\n      return piece;\n    } // These filters are essential for some blocks to be able to transform\n    // from raw HTML. These filters move around some content or add\n    // additional tags, they do not remove any content.\n\n\n    var filters = [// Needed to adjust invalid lists.\n    listReducer, // Needed to create more and nextpage blocks.\n    specialCommentConverter, // Needed to create media blocks.\n    figureContentReducer, // Needed to create the quote block, which cannot handle text\n    // without wrapper paragraphs.\n    blockquoteNormaliser];\n    piece = deepFilterHTML(piece, filters, blockContentSchema);\n    piece = normaliseBlocks(piece);\n    return raw_handling_htmlToBlocks({\n      html: piece,\n      rawTransforms: rawTransforms\n    });\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/categories.js\n/**\n * WordPress dependencies\n */\n\n/** @typedef {import('../store/reducer').WPBlockCategory} WPBlockCategory */\n\n/**\n * Returns all the block categories.\n *\n * @return {WPBlockCategory[]} Block categories.\n */\n\nfunction categories_getCategories() {\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getCategories();\n}\n/**\n * Sets the block categories.\n *\n * @param {WPBlockCategory[]} categories Block categories.\n */\n\nfunction categories_setCategories(categories) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').setCategories(categories);\n}\n/**\n * Updates a category.\n *\n * @param {string}          slug     Block category slug.\n * @param {WPBlockCategory} category Object containing the category properties\n *                                   that should be updated.\n */\n\nfunction categories_updateCategory(slug, category) {\n  Object(external_this_wp_data_[\"dispatch\"])('core/blocks').updateCategory(slug, category);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/templates.js\n\n\n\nfunction templates_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction templates_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { templates_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { templates_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Checks whether a list of blocks matches a template by comparing the block names.\n *\n * @param {Array} blocks    Block list.\n * @param {Array} template  Block template.\n *\n * @return {boolean}        Whether the list of blocks matches a templates\n */\n\nfunction doBlocksMatchTemplate() {\n  var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var template = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  return blocks.length === template.length && Object(external_this_lodash_[\"every\"])(template, function (_ref, index) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 3),\n        name = _ref2[0],\n        innerBlocksTemplate = _ref2[2];\n\n    var block = blocks[index];\n    return name === block.name && doBlocksMatchTemplate(block.innerBlocks, innerBlocksTemplate);\n  });\n}\n/**\n * Synchronize a block list with a block template.\n *\n * Synchronizing a block list with a block template means that we loop over the blocks\n * keep the block as is if it matches the block at the same position in the template\n * (If it has the same name) and if doesn't match, we create a new block based on the template.\n * Extra blocks not present in the template are removed.\n *\n * @param {Array} blocks    Block list.\n * @param {Array} template  Block template.\n *\n * @return {Array}          Updated Block list.\n */\n\nfunction synchronizeBlocksWithTemplate() {\n  var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var template = arguments.length > 1 ? arguments[1] : undefined;\n\n  // If no template is provided, return blocks unmodified.\n  if (!template) {\n    return blocks;\n  }\n\n  return Object(external_this_lodash_[\"map\"])(template, function (_ref3, index) {\n    var _ref4 = Object(slicedToArray[\"a\" /* default */])(_ref3, 3),\n        name = _ref4[0],\n        attributes = _ref4[1],\n        innerBlocksTemplate = _ref4[2];\n\n    var block = blocks[index];\n\n    if (block && block.name === name) {\n      var innerBlocks = synchronizeBlocksWithTemplate(block.innerBlocks, innerBlocksTemplate);\n      return templates_objectSpread({}, block, {\n        innerBlocks: innerBlocks\n      });\n    } // To support old templates that were using the \"children\" format\n    // for the attributes using \"html\" strings now, we normalize the template attributes\n    // before creating the blocks.\n\n\n    var blockType = registration_getBlockType(name);\n\n    var isHTMLAttribute = function isHTMLAttribute(attributeDefinition) {\n      return Object(external_this_lodash_[\"get\"])(attributeDefinition, ['source']) === 'html';\n    };\n\n    var isQueryAttribute = function isQueryAttribute(attributeDefinition) {\n      return Object(external_this_lodash_[\"get\"])(attributeDefinition, ['source']) === 'query';\n    };\n\n    var normalizeAttributes = function normalizeAttributes(schema, values) {\n      return Object(external_this_lodash_[\"mapValues\"])(values, function (value, key) {\n        return normalizeAttribute(schema[key], value);\n      });\n    };\n\n    var normalizeAttribute = function normalizeAttribute(definition, value) {\n      if (isHTMLAttribute(definition) && Object(external_this_lodash_[\"isArray\"])(value)) {\n        // Introduce a deprecated call at this point\n        // When we're confident that \"children\" format should be removed from the templates.\n        return Object(external_this_wp_element_[\"renderToString\"])(value);\n      }\n\n      if (isQueryAttribute(definition) && value) {\n        return value.map(function (subValues) {\n          return normalizeAttributes(definition.query, subValues);\n        });\n      }\n\n      return value;\n    };\n\n    var normalizedAttributes = normalizeAttributes(Object(external_this_lodash_[\"get\"])(blockType, ['attributes'], {}), attributes);\n    return createBlock(name, normalizedAttributes, synchronizeBlocksWithTemplate([], innerBlocksTemplate));\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/api/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/blocks/build-module/index.js\n// A \"block\" is the abstract term used to describe units of markup that,\n// when composed together, form the content or layout of a page.\n// The API for blocks is exposed via `wp.blocks`.\n//\n// Supported blocks are registered by calling `registerBlockType`. Once registered,\n// the block is made available as an option to the editor interface.\n//\n// Blocks are inferred from the HTML source of a post through a parsing mechanism\n// and then stored as objects in state, from which it is then rendered for editing.\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/***/ }),\n\n/***/ 44:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blob\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ }),\n\n/***/ 56:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n    trimRight = /\\s+$/,\n    tinyCounter = 0,\n    mathRound = Math.round,\n    mathMin = Math.min,\n    mathMax = Math.max,\n    mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n    color = (color) ? color : '';\n    opts = opts || { };\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n       return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n        return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color,\n    this._r = rgb.r,\n    this._g = rgb.g,\n    this._b = rgb.b,\n    this._a = rgb.a,\n    this._roundA = mathRound(100*this._a) / 100,\n    this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) { this._r = mathRound(this._r); }\n    if (this._g < 1) { this._g = mathRound(this._g); }\n    if (this._b < 1) { this._b = mathRound(this._b); }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n    isDark: function() {\n        return this.getBrightness() < 128;\n    },\n    isLight: function() {\n        return !this.isDark();\n    },\n    isValid: function() {\n        return this._ok;\n    },\n    getOriginalInput: function() {\n      return this._originalInput;\n    },\n    getFormat: function() {\n        return this._format;\n    },\n    getAlpha: function() {\n        return this._a;\n    },\n    getBrightness: function() {\n        //http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function() {\n        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var RsRGB, GsRGB, BsRGB, R, G, B;\n        RsRGB = rgb.r/255;\n        GsRGB = rgb.g/255;\n        BsRGB = rgb.b/255;\n\n        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n    },\n    setAlpha: function(value) {\n        this._a = boundAlpha(value);\n        this._roundA = mathRound(100*this._a) / 100;\n        return this;\n    },\n    toHsv: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n    },\n    toHsvString: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n        return (this._a == 1) ?\n          \"hsv(\"  + h + \", \" + s + \"%, \" + v + \"%)\" :\n          \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n    },\n    toHsl: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n    },\n    toHslString: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n        return (this._a == 1) ?\n          \"hsl(\"  + h + \", \" + s + \"%, \" + l + \"%)\" :\n          \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n    },\n    toHex: function(allow3Char) {\n        return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function(allow3Char) {\n        return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function(allow4Char) {\n        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function(allow4Char) {\n        return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function() {\n        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n    },\n    toRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n          \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function() {\n        return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n    },\n    toPercentageRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n          \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function() {\n        if (this._a === 0) {\n            return \"transparent\";\n        }\n\n        if (this._a < 1) {\n            return false;\n        }\n\n        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function(secondColor) {\n        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n        var secondHex8String = hex8String;\n        var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n        if (secondColor) {\n            var s = tinycolor(secondColor);\n            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n        }\n\n        return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n    },\n    toString: function(format) {\n        var formatSet = !!format;\n        format = format || this._format;\n\n        var formattedString = false;\n        var hasAlpha = this._a < 1 && this._a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === \"name\" && this._a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"prgb\") {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n        if (format === \"name\") {\n            formattedString = this.toName();\n        }\n        if (format === \"hsl\") {\n            formattedString = this.toHslString();\n        }\n        if (format === \"hsv\") {\n            formattedString = this.toHsvString();\n        }\n\n        return formattedString || this.toHexString();\n    },\n    clone: function() {\n        return tinycolor(this.toString());\n    },\n\n    _applyModification: function(fn, args) {\n        var color = fn.apply(null, [this].concat([].slice.call(args)));\n        this._r = color._r;\n        this._g = color._g;\n        this._b = color._b;\n        this.setAlpha(color._a);\n        return this;\n    },\n    lighten: function() {\n        return this._applyModification(lighten, arguments);\n    },\n    brighten: function() {\n        return this._applyModification(brighten, arguments);\n    },\n    darken: function() {\n        return this._applyModification(darken, arguments);\n    },\n    desaturate: function() {\n        return this._applyModification(desaturate, arguments);\n    },\n    saturate: function() {\n        return this._applyModification(saturate, arguments);\n    },\n    greyscale: function() {\n        return this._applyModification(greyscale, arguments);\n    },\n    spin: function() {\n        return this._applyModification(spin, arguments);\n    },\n\n    _applyCombination: function(fn, args) {\n        return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function() {\n        return this._applyCombination(analogous, arguments);\n    },\n    complement: function() {\n        return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function() {\n        return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function() {\n        return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function() {\n        return this._applyCombination(triad, arguments);\n    },\n    tetrad: function() {\n        return this._applyCombination(tetrad, arguments);\n    }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n    if (typeof color == \"object\") {\n        var newColor = {};\n        for (var i in color) {\n            if (color.hasOwnProperty(i)) {\n                if (i === \"a\") {\n                    newColor[i] = color[i];\n                }\n                else {\n                    newColor[i] = convertToPercentage(color[i]);\n                }\n            }\n        }\n        color = newColor;\n    }\n\n    return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n//     \"red\"\n//     \"#f00\" or \"f00\"\n//     \"#ff0000\" or \"ff0000\"\n//     \"#ff000000\" or \"ff000000\"\n//     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n//     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n//     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n//     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n//     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n//     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n//     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n        color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = \"hsv\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = \"hsl\";\n        }\n\n        if (color.hasOwnProperty(\"a\")) {\n            a = color.a;\n        }\n    }\n\n    a = boundAlpha(a);\n\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: mathMin(255, mathMax(rgb.r, 0)),\n        g: mathMin(255, mathMax(rgb.g, 0)),\n        b: mathMin(255, mathMax(rgb.b, 0)),\n        a: a\n    };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255\n    };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, l = (max + min) / 2;\n\n    if(max == min) {\n        h = s = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n\n        h /= 6;\n    }\n\n    return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n    var r, g, b;\n\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n        if(t < 0) t += 1;\n        if(t > 1) t -= 1;\n        if(t < 1/6) return p + (q - p) * 6 * t;\n        if(t < 1/2) return q;\n        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    }\n\n    if(s === 0) {\n        r = g = b = l; // achromatic\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1/3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1/3);\n    }\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if(max == min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) { return false; }\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n    return tinycolor.fromRatio({\n        r: mathRandom(),\n        g: mathRandom(),\n        b: mathRandom()\n    });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n    return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n    return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n}\n\nfunction triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n    ];\n}\n\nfunction analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n        hsl.h = (hsl.h + part) % 360;\n        ret.push(tinycolor(hsl));\n    }\n    return ret;\n}\n\nfunction monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h, s = hsv.s, v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n        ret.push(tinycolor({ h: h, s: s, v: v}));\n        v = (v + modification) % 1;\n    }\n\n    return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n    amount = (amount === 0) ? 0 : (amount || 50);\n\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n\n    var p = amount / 100;\n\n    var rgba = {\n        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n        a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n    };\n\n    return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n//    tinycolor.isReadable(\"#000\", \"#111\") => false\n//    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n\n    out = false;\n\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n        case \"AAsmall\":\n        case \"AAAlarge\":\n            out = readability >= 4.5;\n            break;\n        case \"AAlarge\":\n            out = readability >= 3;\n            break;\n        case \"AAAsmall\":\n            out = readability >= 7;\n            break;\n    }\n    return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size ;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors ;\n    level = args.level;\n    size = args.size;\n\n    for (var i= 0; i < colorList.length ; i++) {\n        readability = tinycolor.readability(baseColor, colorList[i]);\n        if (readability > bestScore) {\n            bestScore = readability;\n            bestColor = tinycolor(colorList[i]);\n        }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n        return bestColor;\n    }\n    else {\n        args.includeFallbackColors=false;\n        return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n    }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n    var flipped = { };\n    for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n            flipped[o[i]] = i;\n        }\n    }\n    return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n\n    return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n    if (isOnePointZero(n)) { n = \"100%\"; }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n        n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if ((Math.abs(n - max) < 0.000001)) {\n        return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n    if (n <= 1) {\n        n = (n * 100) + \"%\";\n    }\n\n    return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n    return {\n        CSS_UNIT: new RegExp(CSS_UNIT),\n        rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n        rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n        hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n        hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n        hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n        hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color == 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsl.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    if ((match = matchers.hsla.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsv.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    if ((match = matchers.hsva.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n\n    return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n        level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n        size = \"small\";\n    }\n    return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n    module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 62:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"htmlEntities\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 96:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"autop\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-components.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"components\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 254);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n/* 3 */,\n/* 4 */,\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n/* 7 */,\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n/* 10 */,\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n/* 14 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n/* 15 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n/* 17 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n/* 19 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n/* 20 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n/* 22 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n/* 25 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return _objectSpread2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return _createForOfIteratorHelperLoose; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n  var it;\n\n  if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n      return function () {\n        if (i >= o.length) return {\n          done: true\n        };\n        return {\n          done: false,\n          value: o[i++]\n        };\n      };\n    }\n\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  it = o[Symbol.iterator]();\n  return it.next.bind(it);\n}\n\n\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n/* 27 */,\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = __webpack_require__(132)();\n}\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n/* 30 */,\n/* 31 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dom\"]; }());\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n/* 33 */,\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Button */\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37);\n/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _tooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(76);\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(78);\n\n\n\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar disabledEventsOnDisabledButton = ['onMouseDown', 'onClick'];\nfunction Button(props, ref) {\n  var href = props.href,\n      target = props.target,\n      isPrimary = props.isPrimary,\n      isSmall = props.isSmall,\n      isTertiary = props.isTertiary,\n      isPressed = props.isPressed,\n      isBusy = props.isBusy,\n      isDefault = props.isDefault,\n      isSecondary = props.isSecondary,\n      isLink = props.isLink,\n      isDestructive = props.isDestructive,\n      className = props.className,\n      disabled = props.disabled,\n      icon = props.icon,\n      iconSize = props.iconSize,\n      showTooltip = props.showTooltip,\n      tooltipPosition = props.tooltipPosition,\n      shortcut = props.shortcut,\n      label = props.label,\n      children = props.children,\n      isFocusable = props.__experimentalIsFocusable,\n      additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(props, [\"href\", \"target\", \"isPrimary\", \"isSmall\", \"isTertiary\", \"isPressed\", \"isBusy\", \"isDefault\", \"isSecondary\", \"isLink\", \"isDestructive\", \"className\", \"disabled\", \"icon\", \"iconSize\", \"showTooltip\", \"tooltipPosition\", \"shortcut\", \"label\", \"children\", \"__experimentalIsFocusable\"]);\n\n  if (isDefault) {\n    _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_5___default()('Button isDefault prop', {\n      alternative: 'isSecondary'\n    });\n  }\n\n  var classes = classnames__WEBPACK_IMPORTED_MODULE_3___default()('components-button', className, {\n    'is-secondary': isDefault || isSecondary,\n    'is-primary': isPrimary,\n    'is-small': isSmall,\n    'is-tertiary': isTertiary,\n    'is-pressed': isPressed,\n    'is-busy': isBusy,\n    'is-link': isLink,\n    'is-destructive': isDestructive,\n    'has-text': !!icon && !!children,\n    'has-icon': !!icon\n  });\n  var trulyDisabled = disabled && !isFocusable;\n  var Tag = href !== undefined && !trulyDisabled ? 'a' : 'button';\n  var tagProps = Tag === 'a' ? {\n    href: href,\n    target: target\n  } : {\n    type: 'button',\n    disabled: trulyDisabled,\n    'aria-pressed': isPressed\n  };\n\n  if (disabled && isFocusable) {\n    // In this case, the button will be disabled, but still focusable and\n    // perceivable by screen reader users.\n    tagProps['aria-disabled'] = true;\n\n    var _iterator = _createForOfIteratorHelper(disabledEventsOnDisabledButton),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var disabledEvent = _step.value;\n\n        additionalProps[disabledEvent] = function (event) {\n          event.stopPropagation();\n          event.preventDefault();\n        };\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  } // Should show the tooltip if...\n\n\n  var shouldShowTooltip = !trulyDisabled && ( // an explicit tooltip is passed or...\n  showTooltip && label || // there's a shortcut or...\n  shortcut || // there's a label and...\n  !!label && ( // the children are empty and...\n  !children || Object(lodash__WEBPACK_IMPORTED_MODULE_4__[\"isArray\"])(children) && !children.length) && // the tooltip is not explicitly disabled.\n  false !== showTooltip);\n  var element = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(Tag, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({}, tagProps, additionalProps, {\n    className: classes,\n    \"aria-label\": additionalProps['aria-label'] || label,\n    ref: ref\n  }), icon && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(_icon__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"], {\n    icon: icon,\n    size: iconSize\n  }), children);\n\n  if (!shouldShowTooltip) {\n    return element;\n  }\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(_tooltip__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"], {\n    text: label,\n    shortcut: shortcut,\n    position: tooltipPosition\n  }, element);\n}\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"])(Button));\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n/* 36 */,\n/* 37 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n/* 41 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n/* 42 */,\n/* 43 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"moment\"]; }());\n\n/***/ }),\n/* 44 */,\n/* 45 */,\n/* 46 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n/* 47 */,\n/* 48 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"a11y\"]; }());\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined;\n\nvar $TypeError = TypeError;\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () { throw new $TypeError(); };\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = __webpack_require__(201)();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%ArrayPrototype%': Array.prototype,\n\t'%ArrayProto_entries%': Array.prototype.entries,\n\t'%ArrayProto_forEach%': Array.prototype.forEach,\n\t'%ArrayProto_keys%': Array.prototype.keys,\n\t'%ArrayProto_values%': Array.prototype.values,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': asyncFunction,\n\t'%AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'%AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'%AsyncGeneratorFunction%': asyncGenFunction,\n\t'%AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'%AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%Boolean%': Boolean,\n\t'%BooleanPrototype%': Boolean.prototype,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'%Date%': Date,\n\t'%DatePrototype%': Date.prototype,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%ErrorPrototype%': Error.prototype,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%EvalErrorPrototype%': EvalError.prototype,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'%Function%': Function,\n\t'%FunctionPrototype%': Function.prototype,\n\t'%Generator%': generator ? getProto(generator()) : undefined,\n\t'%GeneratorFunction%': generatorFunction,\n\t'%GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%JSONParse%': typeof JSON === 'object' ? JSON.parse : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%NumberPrototype%': Number.prototype,\n\t'%Object%': Object,\n\t'%ObjectPrototype%': Object.prototype,\n\t'%ObjProto_toString%': Object.prototype.toString,\n\t'%ObjProto_valueOf%': Object.prototype.valueOf,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'%PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'%Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'%Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'%Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%RangeErrorPrototype%': RangeError.prototype,\n\t'%ReferenceError%': ReferenceError,\n\t'%ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%RegExpPrototype%': RegExp.prototype,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%StringPrototype%': String.prototype,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'%SyntaxError%': SyntaxError,\n\t'%SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'%TypeError%': $TypeError,\n\t'%TypeErrorPrototype%': $TypeError.prototype,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'%URIError%': URIError,\n\t'%URIErrorPrototype%': URIError.prototype,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'%WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nvar bind = __webpack_require__(113);\nvar $replace = bind.call(Function.call, String.prototype.replace);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : (number || match);\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tif (!(name in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[name] === 'undefined' && !allowMissing) {\n\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\n\treturn INTRINSICS[name];\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\n\tvar value = getBaseIntrinsic('%' + (parts.length > 0 ? parts[0] : '') + '%', allowMissing);\n\tfor (var i = 1; i < parts.length; i += 1) {\n\t\tif (value != null) {\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, parts[i]);\n\t\t\t\tif (!allowMissing && !(parts[i] in value)) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\tvalue = desc ? (desc.get || desc.value) : value[parts[i]];\n\t\t\t} else {\n\t\t\t\tvalue = value[parts[i]];\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n\n/***/ }),\n/* 50 */,\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ createHook; });\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/SystemContext.js\nvar SystemContext = __webpack_require__(102);\n\n// CONCATENATED MODULE: ./node_modules/reakit-system/es/useToken.js\n\n\n\n/**\n * React custom hook that returns the value of any token defined in the\n * SystemContext. It's mainly used internally in [`useOptions`](#useoptions)\n * and [`useProps`](#useprops).\n *\n * @example\n * import { SystemProvider, useToken } from \"reakit-system\";\n *\n * const system = {\n *   token: \"value\",\n * };\n *\n * function Component(props) {\n *   const token = useToken(\"token\", \"default value\");\n *   return <div {...props}>{token}</div>;\n * }\n *\n * function App() {\n *   return (\n *     <SystemProvider unstable_system={system}>\n *       <Component />\n *     </SystemProvider>\n *   );\n * }\n */\n\nfunction useToken(token, defaultValue) {\n  Object(external_this_React_[\"useDebugValue\"])(token);\n  var context = Object(external_this_React_[\"useContext\"])(SystemContext[\"a\" /* SystemContext */]);\n  return context[token] != null ? context[token] : defaultValue;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-system/es/useProps.js\n\n\n\n\n/**\n * React custom hook that returns the props returned by a given\n * `use${name}Props` in the SystemContext.\n *\n * @example\n * import { SystemProvider, useProps } from \"reakit-system\";\n *\n * const system = {\n *   useAProps(options, htmlProps) {\n *     return {\n *       ...htmlProps,\n *       href: options.url,\n *     };\n *   },\n * };\n *\n * function A({ url, ...htmlProps }) {\n *   const props = useProps(\"A\", { url }, htmlProps);\n *   return <a {...props} />;\n * }\n *\n * function App() {\n *   return (\n *     <SystemProvider unstable_system={system}>\n *       <A url=\"url\">It will convert url into href in useAProps</A>\n *     </SystemProvider>\n *   );\n * }\n */\n\nfunction useProps(name, options, htmlProps) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  if (htmlProps === void 0) {\n    htmlProps = {};\n  }\n\n  var hookName = \"use\" + name + \"Props\";\n  Object(external_this_React_[\"useDebugValue\"])(hookName);\n  var useHook = useToken(hookName);\n\n  if (useHook) {\n    return useHook(options, htmlProps);\n  }\n\n  return htmlProps;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js\nvar _rollupPluginBabelHelpers_0c84a174 = __webpack_require__(69);\n\n// CONCATENATED MODULE: ./node_modules/reakit-system/es/useOptions.js\n\n\n\n\n\n/**\n * React custom hook that returns the options returned by a given\n * `use${name}Options` in the SystemContext.\n *\n * @example\n * import React from \"react\";\n * import { SystemProvider, useOptions } from \"reakit-system\";\n *\n * const system = {\n *   useAOptions(options, htmlProps) {\n *     return {\n *       ...options,\n *       url: htmlProps.href,\n *     };\n *   },\n * };\n *\n * function A({ url, ...htmlProps }) {\n *   const options = useOptions(\"A\", { url }, htmlProps);\n *   return <a href={options.url} {...htmlProps} />;\n * }\n *\n * function App() {\n *   return (\n *     <SystemProvider unstable_system={system}>\n *       <A href=\"url\">\n *         It will convert href into url in useAOptions and then url into href in A\n *       </A>\n *     </SystemProvider>\n *   );\n * }\n */\n\nfunction useOptions(name, options, htmlProps) {\n  if (options === void 0) {\n    options = {};\n  }\n\n  if (htmlProps === void 0) {\n    htmlProps = {};\n  }\n\n  var hookName = \"use\" + name + \"Options\";\n  Object(external_this_React_[\"useDebugValue\"])(hookName);\n  var useHook = useToken(hookName);\n\n  if (useHook) {\n    return Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])({}, options), useHook(options, htmlProps));\n  }\n\n  return options;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js\nvar shallowEqual = __webpack_require__(58);\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/toArray.js\n/**\n * Transforms `arg` into an array if it's not already.\n *\n * @example\n * import { toArray } from \"reakit-utils\";\n *\n * toArray(\"a\"); // [\"a\"]\n * toArray([\"a\"]); // [\"a\"]\n */\nfunction toArray(arg) {\n  if (Array.isArray(arg)) {\n    return arg;\n  }\n\n  return typeof arg !== \"undefined\" ? [arg] : [];\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-system/es/createHook.js\n\n\n\n\n\n\n\n\n\n/**\n * Creates a React custom hook that will return component props.\n *\n * @example\n * import { createHook } from \"reakit-system\";\n *\n * const useA = createHook({\n *   name: \"A\",\n *   keys: [\"url\"], // custom props/options keys\n *   useProps(options, htmlProps) {\n *     return {\n *       ...htmlProps,\n *       href: options.url,\n *     };\n *   },\n * });\n *\n * function A({ url, ...htmlProps }) {\n *   const props = useA({ url }, htmlProps);\n *   return <a {...props} />;\n * }\n *\n * @param options\n */\nfunction createHook(options) {\n  var _options$useState, _composedHooks$;\n\n  var composedHooks = toArray(options.compose);\n\n  var __useOptions = function __useOptions(hookOptions, htmlProps) {\n    // Call the current hook's useOptions first\n    if (options.useOptions) {\n      hookOptions = options.useOptions(hookOptions, htmlProps);\n    } // If there's name, call useOptions from the system context\n\n\n    if (options.name) {\n      hookOptions = useOptions(options.name, hookOptions, htmlProps);\n    } // Run composed hooks useOptions\n\n\n    if (options.compose) {\n      for (var _iterator = Object(_rollupPluginBabelHelpers_0c84a174[\"c\" /* b */])(composedHooks), _step; !(_step = _iterator()).done;) {\n        var hook = _step.value;\n        hookOptions = hook.__useOptions(hookOptions, htmlProps);\n      }\n    }\n\n    return hookOptions;\n  };\n\n  var useHook = function useHook(hookOptions, htmlProps, unstable_ignoreUseOptions) {\n    if (hookOptions === void 0) {\n      hookOptions = {};\n    }\n\n    if (htmlProps === void 0) {\n      htmlProps = {};\n    }\n\n    if (unstable_ignoreUseOptions === void 0) {\n      unstable_ignoreUseOptions = false;\n    }\n\n    // This won't execute when useHook was called from within another useHook\n    if (!unstable_ignoreUseOptions) {\n      hookOptions = __useOptions(hookOptions, htmlProps);\n    } // Call the current hook's useProps\n\n\n    if (options.useProps) {\n      htmlProps = options.useProps(hookOptions, htmlProps);\n    } // If there's name, call useProps from the system context\n\n\n    if (options.name) {\n      htmlProps = useProps(options.name, hookOptions, htmlProps);\n    }\n\n    if (options.compose) {\n      if (options.useComposeOptions) {\n        hookOptions = options.useComposeOptions(hookOptions, htmlProps);\n      }\n\n      if (options.useComposeProps) {\n        htmlProps = options.useComposeProps(hookOptions, htmlProps);\n      } else {\n        for (var _iterator2 = Object(_rollupPluginBabelHelpers_0c84a174[\"c\" /* b */])(composedHooks), _step2; !(_step2 = _iterator2()).done;) {\n          var hook = _step2.value;\n          htmlProps = hook(hookOptions, htmlProps, true);\n        }\n      }\n    } // Remove undefined values from htmlProps\n\n\n    var finalHTMLProps = {};\n    var definedHTMLProps = htmlProps || {};\n\n    for (var prop in definedHTMLProps) {\n      if (definedHTMLProps[prop] !== undefined) {\n        finalHTMLProps[prop] = definedHTMLProps[prop];\n      }\n    }\n\n    return finalHTMLProps;\n  };\n\n  useHook.__useOptions = __useOptions;\n  var composedKeys = composedHooks.reduce(function (keys, hook) {\n    keys.push.apply(keys, hook.__keys || []);\n    return keys;\n  }, []); // It's used by createComponent to split option props (keys) and html props\n\n  useHook.__keys = [].concat(composedKeys, ((_options$useState = options.useState) === null || _options$useState === void 0 ? void 0 : _options$useState.__keys) || [], options.keys || []);\n  useHook.unstable_propsAreEqual = options.propsAreEqual || ((_composedHooks$ = composedHooks[0]) === null || _composedHooks$ === void 0 ? void 0 : _composedHooks$.unstable_propsAreEqual) || shallowEqual[\"a\" /* shallowEqual */];\n\n  if (false) {}\n\n  return useHook;\n}\n\n\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ createComponent; });\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/_rollupPluginBabelHelpers-0c84a174.js\nvar _rollupPluginBabelHelpers_0c84a174 = __webpack_require__(69);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js\nvar useCreateElement = __webpack_require__(90);\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/splitProps.js\n/**\n * Splits an object (`props`) into a tuple where the first item is an object\n * with the passed `keys`, and the second item is an object with these keys\n * omitted.\n *\n * @example\n * import { splitProps } from \"reakit-utils\";\n *\n * splitProps({ a: \"a\", b: \"b\" }, [\"a\"]); // [{ a: \"a\" }, { b: \"b\" }]\n */\nfunction splitProps(props, keys) {\n  var propsKeys = Object.keys(props);\n  var picked = {};\n  var omitted = {};\n\n  for (var _i = 0, _propsKeys = propsKeys; _i < _propsKeys.length; _i++) {\n    var key = _propsKeys[_i];\n\n    if (keys.indexOf(key) >= 0) {\n      picked[key] = props[key];\n    } else {\n      omitted[key] = props[key];\n    }\n  }\n\n  return [picked, omitted];\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/shallowEqual.js\nvar shallowEqual = __webpack_require__(58);\n\n// CONCATENATED MODULE: ./node_modules/reakit-system/es/createComponent.js\n\n\n\n\n\n\n\nfunction forwardRef(component) {\n  return /*#__PURE__*/Object(external_this_React_[\"forwardRef\"])(component);\n}\n\nfunction memo(component, propsAreEqual) {\n  return /*#__PURE__*/Object(external_this_React_[\"memo\"])(component, propsAreEqual);\n}\n\n/**\n * Creates a React component.\n *\n * @example\n * import { createComponent } from \"reakit-system\";\n *\n * const A = createComponent({ as: \"a\" });\n *\n * @param options\n */\nfunction createComponent(_ref) {\n  var type = _ref.as,\n      useHook = _ref.useHook,\n      shouldMemo = _ref.memo,\n      _ref$propsAreEqual = _ref.propsAreEqual,\n      propsAreEqual = _ref$propsAreEqual === void 0 ? useHook === null || useHook === void 0 ? void 0 : useHook.unstable_propsAreEqual : _ref$propsAreEqual,\n      _ref$keys = _ref.keys,\n      keys = _ref$keys === void 0 ? (useHook === null || useHook === void 0 ? void 0 : useHook.__keys) || [] : _ref$keys,\n      _ref$useCreateElement = _ref.useCreateElement,\n      useCreateElement$1 = _ref$useCreateElement === void 0 ? useCreateElement[\"a\" /* useCreateElement */] : _ref$useCreateElement;\n\n  var Comp = function Comp(_ref2, ref) {\n    var _ref2$as = _ref2.as,\n        as = _ref2$as === void 0 ? type : _ref2$as,\n        props = Object(_rollupPluginBabelHelpers_0c84a174[\"b\" /* a */])(_ref2, [\"as\"]);\n\n    if (useHook) {\n      var _as$render;\n\n      var _splitProps = splitProps(props, keys),\n          _options = _splitProps[0],\n          htmlProps = _splitProps[1];\n\n      var _useHook = useHook(_options, Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])({\n        ref: ref\n      }, htmlProps)),\n          wrapElement = _useHook.wrapElement,\n          elementProps = Object(_rollupPluginBabelHelpers_0c84a174[\"b\" /* a */])(_useHook, [\"wrapElement\"]); // @ts-ignore\n\n\n      var asKeys = ((_as$render = as.render) === null || _as$render === void 0 ? void 0 : _as$render.__keys) || as.__keys;\n      var asOptions = asKeys && splitProps(props, asKeys)[0];\n      var allProps = asOptions ? Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])(Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])({}, elementProps), asOptions) : elementProps;\n\n      var _element = useCreateElement$1(as, allProps);\n\n      if (wrapElement) {\n        return wrapElement(_element);\n      }\n\n      return _element;\n    }\n\n    return useCreateElement$1(as, Object(_rollupPluginBabelHelpers_0c84a174[\"a\" /* _ */])({\n      ref: ref\n    }, props));\n  };\n\n  if (false) {}\n\n  Comp = forwardRef(Comp);\n\n  if (shouldMemo) {\n    Comp = memo(Comp, propsAreEqual);\n  }\n\n  Comp.__keys = keys;\n  Comp.unstable_propsAreEqual = propsAreEqual || shallowEqual[\"a\" /* shallowEqual */];\n  return Comp;\n}\n\n\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return findFirstEnabledItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return flatten; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return groupItems; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return findEnabledItemById; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return getCurrentId; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return reverse; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return useCompositeState; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60);\n/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64);\n/* harmony import */ var reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65);\n/* harmony import */ var _Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70);\n\n\n\n\n\n\n\nfunction reverse(array) {\n  return array.slice().reverse();\n}\n\nfunction isElementPreceding(element1, element2) {\n  return Boolean(element2.compareDocumentPosition(element1) & Node.DOCUMENT_POSITION_PRECEDING);\n}\n\nfunction findDOMIndex(items, item) {\n  return items.findIndex(function (currentItem) {\n    if (!currentItem.ref.current || !item.ref.current) {\n      return false;\n    }\n\n    return isElementPreceding(item.ref.current, currentItem.ref.current);\n  });\n}\n\nfunction findFirstEnabledItem(items, excludeId) {\n  if (excludeId) {\n    return items.find(function (item) {\n      return !item.disabled && item.id !== excludeId;\n    });\n  }\n\n  return items.find(function (item) {\n    return !item.disabled;\n  });\n}\n\nfunction findEnabledItemById(items, id) {\n  if (!id) return undefined;\n  return items === null || items === void 0 ? void 0 : items.find(function (item) {\n    return item.id === id && !item.disabled;\n  });\n}\n\nfunction groupItems(items) {\n  var groups = [[]];\n\n  var _loop = function _loop() {\n    var item = _step.value;\n    var group = groups.find(function (g) {\n      return !g[0] || g[0].groupId === item.groupId;\n    });\n\n    if (group) {\n      group.push(item);\n    } else {\n      groups.push([item]);\n    }\n  };\n\n  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(items), _step; !(_step = _iterator()).done;) {\n    _loop();\n  }\n\n  return groups;\n}\n\nfunction getMaxLength(rows) {\n  var maxLength = 0;\n\n  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(rows), _step; !(_step = _iterator()).done;) {\n    var length = _step.value.length;\n\n    if (length > maxLength) {\n      maxLength = length;\n    }\n  }\n\n  return maxLength;\n}\n\n/**\n * Turns [row1, row1, row2, row2] into [row1, row2, row1, row2]\n */\n\nfunction verticalizeItems(items) {\n  var groups = groupItems(items);\n  var maxLength = getMaxLength(groups);\n  var verticalized = [];\n\n  for (var i = 0; i < maxLength; i += 1) {\n    for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(groups), _step; !(_step = _iterator()).done;) {\n      var group = _step.value;\n\n      if (group[i]) {\n        verticalized.push(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, group[i]), {}, {\n          // If there's no groupId, it means that it's not a grid composite,\n          // but a single row instead. So, instead of verticalizing it, that\n          // is, assigning a different groupId based on the column index, we\n          // keep it undefined so they will be part of the same group.\n          // It's useful when using up/down on one-dimensional composites.\n          groupId: group[i].groupId ? \"\" + i : undefined\n        }));\n      }\n    }\n  }\n\n  return verticalized;\n}\n\nfunction flatten(grid) {\n  var flattened = [];\n\n  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(grid), _step; !(_step = _iterator()).done;) {\n    var row = _step.value;\n    flattened.push.apply(flattened, row);\n  }\n\n  return flattened;\n}\n\n/**\n * Turns [[row1, row1], [row2]] into [[row1, row1], [row2, row2]]\n */\n\nfunction fillGroups(groups) {\n  var maxLength = getMaxLength(groups);\n\n  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(groups), _step; !(_step = _iterator()).done;) {\n    var group = _step.value;\n\n    if (group.length < maxLength) {\n      for (var i = 0; i < maxLength; i += 1) {\n        if (!group[i]) {\n          group[i] = {\n            id: \"__EMPTY_ITEM__\",\n            disabled: true,\n            ref: {\n              current: null\n            },\n            groupId: group[i - 1].groupId\n          };\n        }\n      }\n    }\n  }\n\n  return groups;\n}\n\nfunction getCurrentId(options, passedId) {\n  var _findFirstEnabledItem;\n\n  if (passedId || passedId === null) {\n    return passedId;\n  }\n\n  if (options.currentId || options.currentId === null) {\n    return options.currentId;\n  }\n\n  return (_findFirstEnabledItem = findFirstEnabledItem(options.items || [])) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id;\n}\n\nvar nullItem = {\n  id: null,\n  ref: {\n    current: null\n  }\n};\nfunction placeItemsAfter(items, id, shouldInsertNullItem) {\n  var index = items.findIndex(function (item) {\n    return item.id === id;\n  });\n  return [].concat(items.slice(index + 1), shouldInsertNullItem ? [nullItem] : [], items.slice(0, index));\n}\n\nfunction getItemsInGroup(items, groupId) {\n  return items.filter(function (item) {\n    return item.groupId === groupId;\n  });\n}\n\nvar map = {\n  horizontal: \"vertical\",\n  vertical: \"horizontal\"\n};\nfunction getOppositeOrientation(orientation) {\n  return orientation && map[orientation];\n}\n\nfunction addItemAtIndex(array, item, index) {\n  if (!(index in array)) {\n    return [].concat(array, [item]);\n  }\n\n  return [].concat(array.slice(0, index), [item], array.slice(index));\n}\n\nfunction sortBasedOnDOMPosition(items) {\n  var copy = items.slice();\n  var isOrderDifferent = false;\n  copy.sort(function (a, b) {\n    var elementA = a.ref.current;\n    var elementB = b.ref.current;\n\n    if (elementA && elementB && isElementPreceding(elementA, elementB)) {\n      isOrderDifferent = true;\n      return -1;\n    }\n\n    return 0;\n  });\n\n  if (isOrderDifferent) {\n    return copy;\n  }\n\n  return items;\n}\n\nfunction reducer(state, action) {\n  var virtual = state.unstable_virtual,\n      rtl = state.rtl,\n      orientation = state.orientation,\n      items = state.items,\n      groups = state.groups,\n      currentId = state.currentId,\n      loop = state.loop,\n      wrap = state.wrap,\n      pastIds = state.pastIds,\n      moves = state.unstable_moves,\n      initialVirtual = state.initialVirtual,\n      initialRTL = state.initialRTL,\n      initialOrientation = state.initialOrientation,\n      initialCurrentId = state.initialCurrentId,\n      initialLoop = state.initialLoop,\n      initialWrap = state.initialWrap,\n      hasSetCurrentId = state.hasSetCurrentId;\n\n  switch (action.type) {\n    case \"registerGroup\":\n      {\n        var _group = action.group; // If there are no groups yet, just add it as the first one\n\n        if (groups.length === 0) {\n          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n            groups: [_group]\n          });\n        } // Finds the group index based on DOM position\n\n\n        var index = findDOMIndex(groups, _group);\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          groups: addItemAtIndex(groups, _group, index)\n        });\n      }\n\n    case \"unregisterGroup\":\n      {\n        var _id = action.id;\n        var nextGroups = groups.filter(function (group) {\n          return group.id !== _id;\n        }); // The group isn't registered, so do nothing\n\n        if (nextGroups.length === groups.length) {\n          return state;\n        }\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          groups: nextGroups\n        });\n      }\n\n    case \"registerItem\":\n      {\n        var _item = action.item; // Finds the item group based on the DOM hierarchy\n\n        var _group2 = groups.find(function (r) {\n          var _r$ref$current;\n\n          return (_r$ref$current = r.ref.current) === null || _r$ref$current === void 0 ? void 0 : _r$ref$current.contains(_item.ref.current);\n        }); // Group will be null if it's a one-dimensional composite\n\n\n        var nextItem = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n          groupId: _group2 === null || _group2 === void 0 ? void 0 : _group2.id\n        }, _item);\n\n        var _index = findDOMIndex(items, nextItem);\n\n        var nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          items: addItemAtIndex(items, nextItem, _index)\n        });\n\n        if (!hasSetCurrentId && !moves && initialCurrentId === undefined) {\n          var _findFirstEnabledItem;\n\n          // Sets currentId to the first enabled item. This runs whenever an item\n          // is registered because the first enabled item may be registered\n          // asynchronously.\n          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, nextState), {}, {\n            currentId: (_findFirstEnabledItem = findFirstEnabledItem(nextState.items)) === null || _findFirstEnabledItem === void 0 ? void 0 : _findFirstEnabledItem.id\n          });\n        }\n\n        return nextState;\n      }\n\n    case \"unregisterItem\":\n      {\n        var _id2 = action.id;\n        var nextItems = items.filter(function (item) {\n          return item.id !== _id2;\n        }); // The item isn't registered, so do nothing\n\n        if (nextItems.length === items.length) {\n          return state;\n        } // Filters out the item that is being removed from the pastIds list\n\n\n        var nextPastIds = pastIds.filter(function (pastId) {\n          return pastId !== _id2;\n        });\n\n        var _nextState = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          pastIds: nextPastIds,\n          items: nextItems\n        }); // If the current item is the item that is being removed, focus pastId\n\n\n        if (currentId && currentId === _id2) {\n          var nextId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState), {}, {\n            currentId: nextPastIds[0]\n          }));\n          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState), {}, {\n            currentId: nextId\n          });\n        }\n\n        return _nextState;\n      }\n\n    case \"move\":\n      {\n        var _id3 = action.id; // move() does nothing\n\n        if (_id3 === undefined) {\n          return state;\n        } // Removes the current item and the item that is receiving focus from the\n        // pastIds list\n\n\n        var filteredPastIds = pastIds.filter(function (pastId) {\n          return pastId !== currentId && pastId !== _id3;\n        }); // If there's a currentId, add it to the pastIds list so it can be focused\n        // if the new item gets removed or disabled\n\n        var _nextPastIds = currentId ? [currentId].concat(filteredPastIds) : filteredPastIds;\n\n        var _nextState2 = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          pastIds: _nextPastIds\n        }); // move(null) will focus the composite element itself, not an item\n\n\n        if (_id3 === null) {\n          return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState2), {}, {\n            unstable_moves: moves + 1,\n            currentId: getCurrentId(_nextState2, _id3)\n          });\n        }\n\n        var _item2 = findEnabledItemById(items, _id3);\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState2), {}, {\n          unstable_moves: _item2 ? moves + 1 : moves,\n          currentId: getCurrentId(_nextState2, _item2 === null || _item2 === void 0 ? void 0 : _item2.id)\n        });\n      }\n\n    case \"next\":\n      {\n        // If there's no item focused, we just move the first one\n        if (currentId == null) {\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"first\"\n          }));\n        } // RTL doesn't make sense on vertical navigation\n\n\n        var isHorizontal = orientation !== \"vertical\";\n        var isRTL = rtl && isHorizontal;\n        var allItems = isRTL ? reverse(items) : items;\n        var currentItem = allItems.find(function (item) {\n          return item.id === currentId;\n        }); // If there's no item focused, we just move the first one\n\n        if (!currentItem) {\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"first\"\n          }));\n        }\n\n        var isGrid = !!currentItem.groupId;\n        var currentIndex = allItems.indexOf(currentItem);\n\n        var _nextItems = allItems.slice(currentIndex + 1);\n\n        var nextItemsInGroup = getItemsInGroup(_nextItems, currentItem.groupId); // Home, End\n\n        if (action.allTheWay) {\n          // We reverse so we can get the last enabled item in the group. If it's\n          // RTL, nextItems and nextItemsInGroup are already reversed and don't\n          // have the items before the current one anymore. So we have to get\n          // items in group again with allItems.\n          var _nextItem2 = findFirstEnabledItem(isRTL ? getItemsInGroup(allItems, currentItem.groupId) : reverse(nextItemsInGroup));\n\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"move\",\n            id: _nextItem2 === null || _nextItem2 === void 0 ? void 0 : _nextItem2.id\n          }));\n        }\n\n        var oppositeOrientation = getOppositeOrientation( // If it's a grid and orientation is not set, it's a next/previous\n        // call, which is inherently horizontal. up/down will call next with\n        // orientation set to vertical by default (see below on up/down cases).\n        isGrid ? orientation || \"horizontal\" : orientation);\n        var canLoop = loop && loop !== oppositeOrientation;\n        var canWrap = isGrid && wrap && wrap !== oppositeOrientation;\n        var hasNullItem = // `previous` and `up` will set action.hasNullItem, but when calling\n        // next directly, hasNullItem will only be true if it's not a grid and\n        // loop is set to true, which means that pressing right or down keys on\n        // grids will never focus the composite element. On one-dimensional\n        // composites that don't loop, pressing right or down keys also doesn't\n        // focus the composite element.\n        action.hasNullItem || !isGrid && canLoop && initialCurrentId === null;\n\n        if (canLoop) {\n          var loopItems = canWrap && !hasNullItem ? allItems : getItemsInGroup(allItems, currentItem.groupId); // Turns [0, 1, current, 3, 4] into [3, 4, 0, 1]\n\n          var sortedItems = placeItemsAfter(loopItems, currentId, hasNullItem);\n\n          var _nextItem3 = findFirstEnabledItem(sortedItems, currentId);\n\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"move\",\n            id: _nextItem3 === null || _nextItem3 === void 0 ? void 0 : _nextItem3.id\n          }));\n        }\n\n        if (canWrap) {\n          var _nextItem4 = findFirstEnabledItem( // We can use nextItems, which contains all the next items, including\n          // items from other groups, to wrap between groups. However, if there\n          // is a null item (the composite element), we'll only use the next\n          // items in the group. So moving next from the last item will focus\n          // the composite element (null). On grid composites, horizontal\n          // navigation never focuses the composite element, only vertical.\n          hasNullItem ? nextItemsInGroup : _nextItems, currentId);\n\n          var _nextId = hasNullItem ? (_nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id) || null : _nextItem4 === null || _nextItem4 === void 0 ? void 0 : _nextItem4.id;\n\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"move\",\n            id: _nextId\n          }));\n        }\n\n        var _nextItem = findFirstEnabledItem(nextItemsInGroup, currentId);\n\n        if (!_nextItem && hasNullItem) {\n          return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n            type: \"move\",\n            id: null\n          }));\n        }\n\n        return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"move\",\n          id: _nextItem === null || _nextItem === void 0 ? void 0 : _nextItem.id\n        }));\n      }\n\n    case \"previous\":\n      {\n        // If currentId is initially set to null, the composite element will be\n        // focusable while navigating with arrow keys. But, if it's a grid, we\n        // don't want to focus the composite element with horizontal navigation.\n        var _isGrid = !!groups.length;\n\n        var _hasNullItem = !_isGrid && initialCurrentId === null;\n\n        var _nextState3 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          items: reverse(items)\n        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"next\",\n          hasNullItem: _hasNullItem\n        }));\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState3), {}, {\n          items: items\n        });\n      }\n\n    case \"down\":\n      {\n        // First, we make sure groups have the same number of items by filling it\n        // with disabled fake items. Then, we reorganize the items list so\n        // [1-1, 1-2, 2-1, 2-2] becomes [1-1, 2-1, 1-2, 2-2].\n        var verticalItems = verticalizeItems(flatten(fillGroups(groupItems(items))));\n\n        var _canLoop = loop && loop !== \"horizontal\"; // Pressing down arrow key will only focus the composite element if loop\n        // is true or vertical.\n\n\n        var _hasNullItem2 = _canLoop && initialCurrentId === null;\n\n        var _nextState4 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          orientation: \"vertical\",\n          items: verticalItems\n        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"next\",\n          hasNullItem: _hasNullItem2\n        }));\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState4), {}, {\n          orientation: orientation,\n          items: items\n        });\n      }\n\n    case \"up\":\n      {\n        var _verticalItems = verticalizeItems(reverse(flatten(fillGroups(groupItems(items))))); // If currentId is initially set to null, we'll always focus the\n        // composite element when the up arrow key is pressed in the first row.\n\n\n        var _hasNullItem3 = initialCurrentId === null;\n\n        var _nextState5 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          orientation: \"vertical\",\n          items: _verticalItems\n        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"next\",\n          hasNullItem: _hasNullItem3\n        }));\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState5), {}, {\n          orientation: orientation,\n          items: items\n        });\n      }\n\n    case \"first\":\n      {\n        var firstItem = findFirstEnabledItem(items);\n        return reducer(state, Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"move\",\n          id: firstItem === null || firstItem === void 0 ? void 0 : firstItem.id\n        }));\n      }\n\n    case \"last\":\n      {\n        var _nextState6 = reducer(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          items: reverse(items)\n        }), Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, action), {}, {\n          type: \"first\"\n        }));\n\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, _nextState6), {}, {\n          items: items\n        });\n      }\n\n    case \"sort\":\n      {\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          items: sortBasedOnDOMPosition(items),\n          groups: sortBasedOnDOMPosition(groups)\n        });\n      }\n\n    case \"setVirtual\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        unstable_virtual: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.virtual, virtual)\n      });\n\n    case \"setRTL\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        rtl: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.rtl, rtl)\n      });\n\n    case \"setOrientation\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        orientation: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.orientation, orientation)\n      });\n\n    case \"setCurrentId\":\n      {\n        var nextCurrentId = getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          currentId: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.currentId, currentId)\n        }));\n        return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          currentId: nextCurrentId,\n          hasSetCurrentId: true\n        });\n      }\n\n    case \"setLoop\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        loop: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.loop, loop)\n      });\n\n    case \"setWrap\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        wrap: Object(reakit_utils_applyState__WEBPACK_IMPORTED_MODULE_4__[/* applyState */ \"a\"])(action.wrap, wrap)\n      });\n\n    case \"reset\":\n      return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n        unstable_virtual: initialVirtual,\n        rtl: initialRTL,\n        orientation: initialOrientation,\n        currentId: getCurrentId(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, state), {}, {\n          currentId: initialCurrentId\n        })),\n        loop: initialLoop,\n        wrap: initialWrap,\n        unstable_moves: 0,\n        pastIds: []\n      });\n\n    default:\n      throw new Error();\n  }\n}\n\nfunction useAction(fn) {\n  return Object(react__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"])(fn, []);\n}\n\nfunction useIsUnmountedRef() {\n  var isUnmountedRef = Object(react__WEBPACK_IMPORTED_MODULE_1__[\"useRef\"])(false);\n  Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_2__[/* useIsomorphicEffect */ \"a\"])(function () {\n    return function () {\n      isUnmountedRef.current = true;\n    };\n  }, []);\n  return isUnmountedRef;\n}\n\nfunction useCompositeState(initialState) {\n  if (initialState === void 0) {\n    initialState = {};\n  }\n\n  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_3__[/* useSealedState */ \"a\"])(initialState),\n      _useSealedState$unsta = _useSealedState.unstable_virtual,\n      virtual = _useSealedState$unsta === void 0 ? false : _useSealedState$unsta,\n      _useSealedState$rtl = _useSealedState.rtl,\n      rtl = _useSealedState$rtl === void 0 ? false : _useSealedState$rtl,\n      orientation = _useSealedState.orientation,\n      currentId = _useSealedState.currentId,\n      _useSealedState$loop = _useSealedState.loop,\n      loop = _useSealedState$loop === void 0 ? false : _useSealedState$loop,\n      _useSealedState$wrap = _useSealedState.wrap,\n      wrap = _useSealedState$wrap === void 0 ? false : _useSealedState$wrap,\n      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_useSealedState, [\"unstable_virtual\", \"rtl\", \"orientation\", \"currentId\", \"loop\", \"wrap\"]);\n\n  var _React$useReducer = Object(react__WEBPACK_IMPORTED_MODULE_1__[\"useReducer\"])(reducer, {\n    unstable_virtual: virtual,\n    rtl: rtl,\n    orientation: orientation,\n    items: [],\n    groups: [],\n    currentId: currentId,\n    loop: loop,\n    wrap: wrap,\n    unstable_moves: 0,\n    pastIds: [],\n    initialVirtual: virtual,\n    initialRTL: rtl,\n    initialOrientation: orientation,\n    initialCurrentId: currentId,\n    initialLoop: loop,\n    initialWrap: wrap\n  }),\n      _React$useReducer$ = _React$useReducer[0],\n      pastIds = _React$useReducer$.pastIds,\n      initialVirtual = _React$useReducer$.initialVirtual,\n      initialRTL = _React$useReducer$.initialRTL,\n      initialOrientation = _React$useReducer$.initialOrientation,\n      initialCurrentId = _React$useReducer$.initialCurrentId,\n      initialLoop = _React$useReducer$.initialLoop,\n      initialWrap = _React$useReducer$.initialWrap,\n      hasSetCurrentId = _React$useReducer$.hasSetCurrentId,\n      state = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_React$useReducer$, [\"pastIds\", \"initialVirtual\", \"initialRTL\", \"initialOrientation\", \"initialCurrentId\", \"initialLoop\", \"initialWrap\", \"hasSetCurrentId\"]),\n      dispatch = _React$useReducer[1];\n\n  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_1__[\"useState\"])(false),\n      hasActiveWidget = _React$useState[0],\n      setHasActiveWidget = _React$useState[1];\n\n  var idState = Object(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ \"a\"])(sealed); // register/unregister may be called when this component is unmounted. We\n  // store the unmounted state here so we don't update the state if it's true.\n  // This only happens in a very specific situation.\n  // See https://github.com/reakit/reakit/issues/650\n\n  var isUnmountedRef = useIsUnmountedRef();\n  return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, idState), state), {}, {\n    unstable_hasActiveWidget: hasActiveWidget,\n    unstable_setHasActiveWidget: setHasActiveWidget,\n    registerItem: useAction(function (item) {\n      if (isUnmountedRef.current) return;\n      dispatch({\n        type: \"registerItem\",\n        item: item\n      });\n    }),\n    unregisterItem: useAction(function (id) {\n      if (isUnmountedRef.current) return;\n      dispatch({\n        type: \"unregisterItem\",\n        id: id\n      });\n    }),\n    registerGroup: useAction(function (group) {\n      if (isUnmountedRef.current) return;\n      dispatch({\n        type: \"registerGroup\",\n        group: group\n      });\n    }),\n    unregisterGroup: useAction(function (id) {\n      if (isUnmountedRef.current) return;\n      dispatch({\n        type: \"unregisterGroup\",\n        id: id\n      });\n    }),\n    move: useAction(function (id) {\n      return dispatch({\n        type: \"move\",\n        id: id\n      });\n    }),\n    next: useAction(function (allTheWay) {\n      return dispatch({\n        type: \"next\",\n        allTheWay: allTheWay\n      });\n    }),\n    previous: useAction(function (allTheWay) {\n      return dispatch({\n        type: \"previous\",\n        allTheWay: allTheWay\n      });\n    }),\n    up: useAction(function (allTheWay) {\n      return dispatch({\n        type: \"up\",\n        allTheWay: allTheWay\n      });\n    }),\n    down: useAction(function (allTheWay) {\n      return dispatch({\n        type: \"down\",\n        allTheWay: allTheWay\n      });\n    }),\n    first: useAction(function () {\n      return dispatch({\n        type: \"first\"\n      });\n    }),\n    last: useAction(function () {\n      return dispatch({\n        type: \"last\"\n      });\n    }),\n    unstable_sort: useAction(function () {\n      return dispatch({\n        type: \"sort\"\n      });\n    }),\n    unstable_setVirtual: useAction(function (value) {\n      return dispatch({\n        type: \"setVirtual\",\n        virtual: value\n      });\n    }),\n    setRTL: useAction(function (value) {\n      return dispatch({\n        type: \"setRTL\",\n        rtl: value\n      });\n    }),\n    setOrientation: useAction(function (value) {\n      return dispatch({\n        type: \"setOrientation\",\n        orientation: value\n      });\n    }),\n    setCurrentId: useAction(function (value) {\n      return dispatch({\n        type: \"setCurrentId\",\n        currentId: value\n      });\n    }),\n    setLoop: useAction(function (value) {\n      return dispatch({\n        type: \"setLoop\",\n        loop: value\n      });\n    }),\n    setWrap: useAction(function (value) {\n      return dispatch({\n        type: \"setWrap\",\n        wrap: value\n      });\n    }),\n    reset: useAction(function () {\n      return dispatch({\n        type: \"reset\"\n      });\n    })\n  });\n}\nvar keys = [].concat(_Id_IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ \"a\"].__keys, [\"unstable_virtual\", \"rtl\", \"orientation\", \"items\", \"groups\", \"currentId\", \"loop\", \"wrap\", \"unstable_moves\", \"unstable_hasActiveWidget\", \"registerItem\", \"unregisterItem\", \"registerGroup\", \"unregisterGroup\", \"move\", \"next\", \"previous\", \"up\", \"down\", \"first\", \"last\", \"unstable_sort\", \"unstable_setVirtual\", \"setRTL\", \"setOrientation\", \"setCurrentId\", \"setLoop\", \"setWrap\", \"reset\", \"unstable_setHasActiveWidget\"]);\nuseCompositeState.__keys = keys;\n\n\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useLiveRef; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);\n\n\n\n/**\n * A `React.Ref` that keeps track of the passed `value`.\n */\n\nfunction useLiveRef(value) {\n  var ref = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(value);\n  Object(_useIsomorphicEffect_js__WEBPACK_IMPORTED_MODULE_1__[/* useIsomorphicEffect */ \"a\"])(function () {\n    ref.current = value;\n  });\n  return ref;\n}\n\n\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;// TinyColor v1.4.1\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n    trimRight = /\\s+$/,\n    tinyCounter = 0,\n    mathRound = Math.round,\n    mathMin = Math.min,\n    mathMax = Math.max,\n    mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n    color = (color) ? color : '';\n    opts = opts || { };\n\n    // If input is already a tinycolor, return itself\n    if (color instanceof tinycolor) {\n       return color;\n    }\n    // If we are called as a function, call using new instead\n    if (!(this instanceof tinycolor)) {\n        return new tinycolor(color, opts);\n    }\n\n    var rgb = inputToRGB(color);\n    this._originalInput = color,\n    this._r = rgb.r,\n    this._g = rgb.g,\n    this._b = rgb.b,\n    this._a = rgb.a,\n    this._roundA = mathRound(100*this._a) / 100,\n    this._format = opts.format || rgb.format;\n    this._gradientType = opts.gradientType;\n\n    // Don't let the range of [0,255] come back in [0,1].\n    // Potentially lose a little bit of precision here, but will fix issues where\n    // .5 gets interpreted as half of the total, instead of half of 1\n    // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n    if (this._r < 1) { this._r = mathRound(this._r); }\n    if (this._g < 1) { this._g = mathRound(this._g); }\n    if (this._b < 1) { this._b = mathRound(this._b); }\n\n    this._ok = rgb.ok;\n    this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n    isDark: function() {\n        return this.getBrightness() < 128;\n    },\n    isLight: function() {\n        return !this.isDark();\n    },\n    isValid: function() {\n        return this._ok;\n    },\n    getOriginalInput: function() {\n      return this._originalInput;\n    },\n    getFormat: function() {\n        return this._format;\n    },\n    getAlpha: function() {\n        return this._a;\n    },\n    getBrightness: function() {\n        //http://www.w3.org/TR/AERT#color-contrast\n        var rgb = this.toRgb();\n        return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n    },\n    getLuminance: function() {\n        //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n        var rgb = this.toRgb();\n        var RsRGB, GsRGB, BsRGB, R, G, B;\n        RsRGB = rgb.r/255;\n        GsRGB = rgb.g/255;\n        BsRGB = rgb.b/255;\n\n        if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n        if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n        if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n        return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n    },\n    setAlpha: function(value) {\n        this._a = boundAlpha(value);\n        this._roundA = mathRound(100*this._a) / 100;\n        return this;\n    },\n    toHsv: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n    },\n    toHsvString: function() {\n        var hsv = rgbToHsv(this._r, this._g, this._b);\n        var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n        return (this._a == 1) ?\n          \"hsv(\"  + h + \", \" + s + \"%, \" + v + \"%)\" :\n          \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n    },\n    toHsl: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n    },\n    toHslString: function() {\n        var hsl = rgbToHsl(this._r, this._g, this._b);\n        var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n        return (this._a == 1) ?\n          \"hsl(\"  + h + \", \" + s + \"%, \" + l + \"%)\" :\n          \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n    },\n    toHex: function(allow3Char) {\n        return rgbToHex(this._r, this._g, this._b, allow3Char);\n    },\n    toHexString: function(allow3Char) {\n        return '#' + this.toHex(allow3Char);\n    },\n    toHex8: function(allow4Char) {\n        return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n    },\n    toHex8String: function(allow4Char) {\n        return '#' + this.toHex8(allow4Char);\n    },\n    toRgb: function() {\n        return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n    },\n    toRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n          \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n    },\n    toPercentageRgb: function() {\n        return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n    },\n    toPercentageRgbString: function() {\n        return (this._a == 1) ?\n          \"rgb(\"  + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n          \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n    },\n    toName: function() {\n        if (this._a === 0) {\n            return \"transparent\";\n        }\n\n        if (this._a < 1) {\n            return false;\n        }\n\n        return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n    },\n    toFilter: function(secondColor) {\n        var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n        var secondHex8String = hex8String;\n        var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n        if (secondColor) {\n            var s = tinycolor(secondColor);\n            secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n        }\n\n        return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n    },\n    toString: function(format) {\n        var formatSet = !!format;\n        format = format || this._format;\n\n        var formattedString = false;\n        var hasAlpha = this._a < 1 && this._a >= 0;\n        var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n        if (needsAlphaFormat) {\n            // Special case for \"transparent\", all other non-alpha formats\n            // will return rgba when there is transparency.\n            if (format === \"name\" && this._a === 0) {\n                return this.toName();\n            }\n            return this.toRgbString();\n        }\n        if (format === \"rgb\") {\n            formattedString = this.toRgbString();\n        }\n        if (format === \"prgb\") {\n            formattedString = this.toPercentageRgbString();\n        }\n        if (format === \"hex\" || format === \"hex6\") {\n            formattedString = this.toHexString();\n        }\n        if (format === \"hex3\") {\n            formattedString = this.toHexString(true);\n        }\n        if (format === \"hex4\") {\n            formattedString = this.toHex8String(true);\n        }\n        if (format === \"hex8\") {\n            formattedString = this.toHex8String();\n        }\n        if (format === \"name\") {\n            formattedString = this.toName();\n        }\n        if (format === \"hsl\") {\n            formattedString = this.toHslString();\n        }\n        if (format === \"hsv\") {\n            formattedString = this.toHsvString();\n        }\n\n        return formattedString || this.toHexString();\n    },\n    clone: function() {\n        return tinycolor(this.toString());\n    },\n\n    _applyModification: function(fn, args) {\n        var color = fn.apply(null, [this].concat([].slice.call(args)));\n        this._r = color._r;\n        this._g = color._g;\n        this._b = color._b;\n        this.setAlpha(color._a);\n        return this;\n    },\n    lighten: function() {\n        return this._applyModification(lighten, arguments);\n    },\n    brighten: function() {\n        return this._applyModification(brighten, arguments);\n    },\n    darken: function() {\n        return this._applyModification(darken, arguments);\n    },\n    desaturate: function() {\n        return this._applyModification(desaturate, arguments);\n    },\n    saturate: function() {\n        return this._applyModification(saturate, arguments);\n    },\n    greyscale: function() {\n        return this._applyModification(greyscale, arguments);\n    },\n    spin: function() {\n        return this._applyModification(spin, arguments);\n    },\n\n    _applyCombination: function(fn, args) {\n        return fn.apply(null, [this].concat([].slice.call(args)));\n    },\n    analogous: function() {\n        return this._applyCombination(analogous, arguments);\n    },\n    complement: function() {\n        return this._applyCombination(complement, arguments);\n    },\n    monochromatic: function() {\n        return this._applyCombination(monochromatic, arguments);\n    },\n    splitcomplement: function() {\n        return this._applyCombination(splitcomplement, arguments);\n    },\n    triad: function() {\n        return this._applyCombination(triad, arguments);\n    },\n    tetrad: function() {\n        return this._applyCombination(tetrad, arguments);\n    }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n    if (typeof color == \"object\") {\n        var newColor = {};\n        for (var i in color) {\n            if (color.hasOwnProperty(i)) {\n                if (i === \"a\") {\n                    newColor[i] = color[i];\n                }\n                else {\n                    newColor[i] = convertToPercentage(color[i]);\n                }\n            }\n        }\n        color = newColor;\n    }\n\n    return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n//     \"red\"\n//     \"#f00\" or \"f00\"\n//     \"#ff0000\" or \"ff0000\"\n//     \"#ff000000\" or \"ff000000\"\n//     \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n//     \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n//     \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n//     \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n//     \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n//     \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n//     \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n    var rgb = { r: 0, g: 0, b: 0 };\n    var a = 1;\n    var s = null;\n    var v = null;\n    var l = null;\n    var ok = false;\n    var format = false;\n\n    if (typeof color == \"string\") {\n        color = stringInputToObject(color);\n    }\n\n    if (typeof color == \"object\") {\n        if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n            rgb = rgbToRgb(color.r, color.g, color.b);\n            ok = true;\n            format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n            s = convertToPercentage(color.s);\n            v = convertToPercentage(color.v);\n            rgb = hsvToRgb(color.h, s, v);\n            ok = true;\n            format = \"hsv\";\n        }\n        else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n            s = convertToPercentage(color.s);\n            l = convertToPercentage(color.l);\n            rgb = hslToRgb(color.h, s, l);\n            ok = true;\n            format = \"hsl\";\n        }\n\n        if (color.hasOwnProperty(\"a\")) {\n            a = color.a;\n        }\n    }\n\n    a = boundAlpha(a);\n\n    return {\n        ok: ok,\n        format: color.format || format,\n        r: mathMin(255, mathMax(rgb.r, 0)),\n        g: mathMin(255, mathMax(rgb.g, 0)),\n        b: mathMin(255, mathMax(rgb.b, 0)),\n        a: a\n    };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// <http://www.w3.org/TR/css3-color/>\n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n    return {\n        r: bound01(r, 255) * 255,\n        g: bound01(g, 255) * 255,\n        b: bound01(b, 255) * 255\n    };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, l = (max + min) / 2;\n\n    if(max == min) {\n        h = s = 0; // achromatic\n    }\n    else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n\n        h /= 6;\n    }\n\n    return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n    var r, g, b;\n\n    h = bound01(h, 360);\n    s = bound01(s, 100);\n    l = bound01(l, 100);\n\n    function hue2rgb(p, q, t) {\n        if(t < 0) t += 1;\n        if(t > 1) t -= 1;\n        if(t < 1/6) return p + (q - p) * 6 * t;\n        if(t < 1/2) return q;\n        if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n        return p;\n    }\n\n    if(s === 0) {\n        r = g = b = l; // achromatic\n    }\n    else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1/3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1/3);\n    }\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n    r = bound01(r, 255);\n    g = bound01(g, 255);\n    b = bound01(b, 255);\n\n    var max = mathMax(r, g, b), min = mathMin(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    s = max === 0 ? 0 : d / max;\n\n    if(max == min) {\n        h = 0; // achromatic\n    }\n    else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n    h = bound01(h, 360) * 6;\n    s = bound01(s, 100);\n    v = bound01(v, 100);\n\n    var i = Math.floor(h),\n        f = h - i,\n        p = v * (1 - s),\n        q = v * (1 - f * s),\n        t = v * (1 - (1 - f) * s),\n        mod = i % 6,\n        r = [v, q, p, p, t, v][mod],\n        g = [t, v, v, q, p, p][mod],\n        b = [p, p, t, v, v, q][mod];\n\n    return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    // Return a 3 character hex if possible\n    if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n    var hex = [\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16)),\n        pad2(convertDecimalToHex(a))\n    ];\n\n    // Return a 4 character hex if possible\n    if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n        return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n    }\n\n    return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n    var hex = [\n        pad2(convertDecimalToHex(a)),\n        pad2(mathRound(r).toString(16)),\n        pad2(mathRound(g).toString(16)),\n        pad2(mathRound(b).toString(16))\n    ];\n\n    return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n    if (!color1 || !color2) { return false; }\n    return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n    return tinycolor.fromRatio({\n        r: mathRandom(),\n        g: mathRandom(),\n        b: mathRandom()\n    });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>\n\nfunction desaturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s -= amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.s += amount / 100;\n    hsl.s = clamp01(hsl.s);\n    return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n    return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l += amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var rgb = tinycolor(color).toRgb();\n    rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n    rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n    rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n    return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n    amount = (amount === 0) ? 0 : (amount || 10);\n    var hsl = tinycolor(color).toHsl();\n    hsl.l -= amount / 100;\n    hsl.l = clamp01(hsl.l);\n    return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n    var hsl = tinycolor(color).toHsl();\n    var hue = (hsl.h + amount) % 360;\n    hsl.h = hue < 0 ? 360 + hue : hue;\n    return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>\n\nfunction complement(color) {\n    var hsl = tinycolor(color).toHsl();\n    hsl.h = (hsl.h + 180) % 360;\n    return tinycolor(hsl);\n}\n\nfunction triad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction tetrad(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n        tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n    ];\n}\n\nfunction splitcomplement(color) {\n    var hsl = tinycolor(color).toHsl();\n    var h = hsl.h;\n    return [\n        tinycolor(color),\n        tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n        tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n    ];\n}\n\nfunction analogous(color, results, slices) {\n    results = results || 6;\n    slices = slices || 30;\n\n    var hsl = tinycolor(color).toHsl();\n    var part = 360 / slices;\n    var ret = [tinycolor(color)];\n\n    for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n        hsl.h = (hsl.h + part) % 360;\n        ret.push(tinycolor(hsl));\n    }\n    return ret;\n}\n\nfunction monochromatic(color, results) {\n    results = results || 6;\n    var hsv = tinycolor(color).toHsv();\n    var h = hsv.h, s = hsv.s, v = hsv.v;\n    var ret = [];\n    var modification = 1 / results;\n\n    while (results--) {\n        ret.push(tinycolor({ h: h, s: s, v: v}));\n        v = (v + modification) % 1;\n    }\n\n    return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n    amount = (amount === 0) ? 0 : (amount || 50);\n\n    var rgb1 = tinycolor(color1).toRgb();\n    var rgb2 = tinycolor(color2).toRgb();\n\n    var p = amount / 100;\n\n    var rgba = {\n        r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n        g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n        b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n        a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n    };\n\n    return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// <http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef (WCAG Version 2)\n\n// `contrast`\n// Analyze the 2 colors and returns the color contrast defined by (WCAG Version 2)\ntinycolor.readability = function(color1, color2) {\n    var c1 = tinycolor(color1);\n    var c2 = tinycolor(color2);\n    return (Math.max(c1.getLuminance(),c2.getLuminance())+0.05) / (Math.min(c1.getLuminance(),c2.getLuminance())+0.05);\n};\n\n// `isReadable`\n// Ensure that foreground and background color combinations meet WCAG2 guidelines.\n// The third argument is an optional Object.\n//      the 'level' property states 'AA' or 'AAA' - if missing or invalid, it defaults to 'AA';\n//      the 'size' property states 'large' or 'small' - if missing or invalid, it defaults to 'small'.\n// If the entire object is absent, isReadable defaults to {level:\"AA\",size:\"small\"}.\n\n// *Example*\n//    tinycolor.isReadable(\"#000\", \"#111\") => false\n//    tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n    var readability = tinycolor.readability(color1, color2);\n    var wcag2Parms, out;\n\n    out = false;\n\n    wcag2Parms = validateWCAG2Parms(wcag2);\n    switch (wcag2Parms.level + wcag2Parms.size) {\n        case \"AAsmall\":\n        case \"AAAlarge\":\n            out = readability >= 4.5;\n            break;\n        case \"AAlarge\":\n            out = readability >= 3;\n            break;\n        case \"AAAsmall\":\n            out = readability >= 7;\n            break;\n    }\n    return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n//    tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString();  // \"#ffffff\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n//    tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n    var bestColor = null;\n    var bestScore = 0;\n    var readability;\n    var includeFallbackColors, level, size ;\n    args = args || {};\n    includeFallbackColors = args.includeFallbackColors ;\n    level = args.level;\n    size = args.size;\n\n    for (var i= 0; i < colorList.length ; i++) {\n        readability = tinycolor.readability(baseColor, colorList[i]);\n        if (readability > bestScore) {\n            bestScore = readability;\n            bestColor = tinycolor(colorList[i]);\n        }\n    }\n\n    if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n        return bestColor;\n    }\n    else {\n        args.includeFallbackColors=false;\n        return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n    }\n};\n\n\n// Big List of Colors\n// ------------------\n// <http://www.w3.org/TR/css3-color/#svg-color>\nvar names = tinycolor.names = {\n    aliceblue: \"f0f8ff\",\n    antiquewhite: \"faebd7\",\n    aqua: \"0ff\",\n    aquamarine: \"7fffd4\",\n    azure: \"f0ffff\",\n    beige: \"f5f5dc\",\n    bisque: \"ffe4c4\",\n    black: \"000\",\n    blanchedalmond: \"ffebcd\",\n    blue: \"00f\",\n    blueviolet: \"8a2be2\",\n    brown: \"a52a2a\",\n    burlywood: \"deb887\",\n    burntsienna: \"ea7e5d\",\n    cadetblue: \"5f9ea0\",\n    chartreuse: \"7fff00\",\n    chocolate: \"d2691e\",\n    coral: \"ff7f50\",\n    cornflowerblue: \"6495ed\",\n    cornsilk: \"fff8dc\",\n    crimson: \"dc143c\",\n    cyan: \"0ff\",\n    darkblue: \"00008b\",\n    darkcyan: \"008b8b\",\n    darkgoldenrod: \"b8860b\",\n    darkgray: \"a9a9a9\",\n    darkgreen: \"006400\",\n    darkgrey: \"a9a9a9\",\n    darkkhaki: \"bdb76b\",\n    darkmagenta: \"8b008b\",\n    darkolivegreen: \"556b2f\",\n    darkorange: \"ff8c00\",\n    darkorchid: \"9932cc\",\n    darkred: \"8b0000\",\n    darksalmon: \"e9967a\",\n    darkseagreen: \"8fbc8f\",\n    darkslateblue: \"483d8b\",\n    darkslategray: \"2f4f4f\",\n    darkslategrey: \"2f4f4f\",\n    darkturquoise: \"00ced1\",\n    darkviolet: \"9400d3\",\n    deeppink: \"ff1493\",\n    deepskyblue: \"00bfff\",\n    dimgray: \"696969\",\n    dimgrey: \"696969\",\n    dodgerblue: \"1e90ff\",\n    firebrick: \"b22222\",\n    floralwhite: \"fffaf0\",\n    forestgreen: \"228b22\",\n    fuchsia: \"f0f\",\n    gainsboro: \"dcdcdc\",\n    ghostwhite: \"f8f8ff\",\n    gold: \"ffd700\",\n    goldenrod: \"daa520\",\n    gray: \"808080\",\n    green: \"008000\",\n    greenyellow: \"adff2f\",\n    grey: \"808080\",\n    honeydew: \"f0fff0\",\n    hotpink: \"ff69b4\",\n    indianred: \"cd5c5c\",\n    indigo: \"4b0082\",\n    ivory: \"fffff0\",\n    khaki: \"f0e68c\",\n    lavender: \"e6e6fa\",\n    lavenderblush: \"fff0f5\",\n    lawngreen: \"7cfc00\",\n    lemonchiffon: \"fffacd\",\n    lightblue: \"add8e6\",\n    lightcoral: \"f08080\",\n    lightcyan: \"e0ffff\",\n    lightgoldenrodyellow: \"fafad2\",\n    lightgray: \"d3d3d3\",\n    lightgreen: \"90ee90\",\n    lightgrey: \"d3d3d3\",\n    lightpink: \"ffb6c1\",\n    lightsalmon: \"ffa07a\",\n    lightseagreen: \"20b2aa\",\n    lightskyblue: \"87cefa\",\n    lightslategray: \"789\",\n    lightslategrey: \"789\",\n    lightsteelblue: \"b0c4de\",\n    lightyellow: \"ffffe0\",\n    lime: \"0f0\",\n    limegreen: \"32cd32\",\n    linen: \"faf0e6\",\n    magenta: \"f0f\",\n    maroon: \"800000\",\n    mediumaquamarine: \"66cdaa\",\n    mediumblue: \"0000cd\",\n    mediumorchid: \"ba55d3\",\n    mediumpurple: \"9370db\",\n    mediumseagreen: \"3cb371\",\n    mediumslateblue: \"7b68ee\",\n    mediumspringgreen: \"00fa9a\",\n    mediumturquoise: \"48d1cc\",\n    mediumvioletred: \"c71585\",\n    midnightblue: \"191970\",\n    mintcream: \"f5fffa\",\n    mistyrose: \"ffe4e1\",\n    moccasin: \"ffe4b5\",\n    navajowhite: \"ffdead\",\n    navy: \"000080\",\n    oldlace: \"fdf5e6\",\n    olive: \"808000\",\n    olivedrab: \"6b8e23\",\n    orange: \"ffa500\",\n    orangered: \"ff4500\",\n    orchid: \"da70d6\",\n    palegoldenrod: \"eee8aa\",\n    palegreen: \"98fb98\",\n    paleturquoise: \"afeeee\",\n    palevioletred: \"db7093\",\n    papayawhip: \"ffefd5\",\n    peachpuff: \"ffdab9\",\n    peru: \"cd853f\",\n    pink: \"ffc0cb\",\n    plum: \"dda0dd\",\n    powderblue: \"b0e0e6\",\n    purple: \"800080\",\n    rebeccapurple: \"663399\",\n    red: \"f00\",\n    rosybrown: \"bc8f8f\",\n    royalblue: \"4169e1\",\n    saddlebrown: \"8b4513\",\n    salmon: \"fa8072\",\n    sandybrown: \"f4a460\",\n    seagreen: \"2e8b57\",\n    seashell: \"fff5ee\",\n    sienna: \"a0522d\",\n    silver: \"c0c0c0\",\n    skyblue: \"87ceeb\",\n    slateblue: \"6a5acd\",\n    slategray: \"708090\",\n    slategrey: \"708090\",\n    snow: \"fffafa\",\n    springgreen: \"00ff7f\",\n    steelblue: \"4682b4\",\n    tan: \"d2b48c\",\n    teal: \"008080\",\n    thistle: \"d8bfd8\",\n    tomato: \"ff6347\",\n    turquoise: \"40e0d0\",\n    violet: \"ee82ee\",\n    wheat: \"f5deb3\",\n    white: \"fff\",\n    whitesmoke: \"f5f5f5\",\n    yellow: \"ff0\",\n    yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n    var flipped = { };\n    for (var i in o) {\n        if (o.hasOwnProperty(i)) {\n            flipped[o[i]] = i;\n        }\n    }\n    return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n    a = parseFloat(a);\n\n    if (isNaN(a) || a < 0 || a > 1) {\n        a = 1;\n    }\n\n    return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n    if (isOnePointZero(n)) { n = \"100%\"; }\n\n    var processPercent = isPercentage(n);\n    n = mathMin(max, mathMax(0, parseFloat(n)));\n\n    // Automatically convert percentage into number\n    if (processPercent) {\n        n = parseInt(n * max, 10) / 100;\n    }\n\n    // Handle floating point rounding errors\n    if ((Math.abs(n - max) < 0.000001)) {\n        return 1;\n    }\n\n    // Convert into [0, 1] range if it isn't already\n    return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n    return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n    return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nfunction isOnePointZero(n) {\n    return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n    return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n    return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n    if (n <= 1) {\n        n = (n * 100) + \"%\";\n    }\n\n    return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n    return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n    return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n    // <http://www.w3.org/TR/css3-values/#integers>\n    var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n    // <http://www.w3.org/TR/css3-values/#number-value>\n    var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n    // Allow positive/negative integer/number.  Don't capture the either/or, just the entire outcome.\n    var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n    // Actual matching.\n    // Parentheses and commas are optional, but not required.\n    // Whitespace can take the place of commas or opening paren\n    var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n    var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n    return {\n        CSS_UNIT: new RegExp(CSS_UNIT),\n        rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n        rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n        hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n        hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n        hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n        hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n        hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n        hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n        hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n    };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n    return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing.  Take in a number of formats, and output an object\n// based on detected format.  Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n    color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n    var named = false;\n    if (names[color]) {\n        color = names[color];\n        named = true;\n    }\n    else if (color == 'transparent') {\n        return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n    }\n\n    // Try to match string input using regular expressions.\n    // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n    // Just return an object and let the conversion functions handle that.\n    // This way the result will be the same whether the tinycolor is initialized with string or object.\n    var match;\n    if ((match = matchers.rgb.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3] };\n    }\n    if ((match = matchers.rgba.exec(color))) {\n        return { r: match[1], g: match[2], b: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsl.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3] };\n    }\n    if ((match = matchers.hsla.exec(color))) {\n        return { h: match[1], s: match[2], l: match[3], a: match[4] };\n    }\n    if ((match = matchers.hsv.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3] };\n    }\n    if ((match = matchers.hsva.exec(color))) {\n        return { h: match[1], s: match[2], v: match[3], a: match[4] };\n    }\n    if ((match = matchers.hex8.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            a: convertHexToDecimal(match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex6.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1]),\n            g: parseIntFromHex(match[2]),\n            b: parseIntFromHex(match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n    if ((match = matchers.hex4.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            a: convertHexToDecimal(match[4] + '' + match[4]),\n            format: named ? \"name\" : \"hex8\"\n        };\n    }\n    if ((match = matchers.hex3.exec(color))) {\n        return {\n            r: parseIntFromHex(match[1] + '' + match[1]),\n            g: parseIntFromHex(match[2] + '' + match[2]),\n            b: parseIntFromHex(match[3] + '' + match[3]),\n            format: named ? \"name\" : \"hex\"\n        };\n    }\n\n    return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n    // return valid WCAG2 parms for isReadable.\n    // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n    var level, size;\n    parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n    level = (parms.level || \"AA\").toUpperCase();\n    size = (parms.size || \"small\").toLowerCase();\n    if (level !== \"AA\" && level !== \"AAA\") {\n        level = \"AA\";\n    }\n    if (size !== \"small\" && size !== \"large\") {\n        size = \"small\";\n    }\n    return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif ( true && module.exports) {\n    module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (true) {\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {return tinycolor;}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n}\n// Browser: Expose to window\nelse {}\n\n})(Math);\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getDocument; });\n/**\n * Returns `element.ownerDocument || window.document`.\n */\nfunction getDocument(element) {\n  return element ? element.ownerDocument || element : window.document;\n}\n\n\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return shallowEqual; });\n/**\n * Compares two objects.\n *\n * @example\n * import { shallowEqual } from \"reakit-utils\";\n *\n * shallowEqual({ a: \"a\" }, {}); // false\n * shallowEqual({ a: \"a\" }, { b: \"b\" }); // false\n * shallowEqual({ a: \"a\" }, { a: \"a\" }); // true\n * shallowEqual({ a: \"a\" }, { a: \"a\", b: \"b\" }); // false\n */\nfunction shallowEqual(objA, objB) {\n  if (objA === objB) return true;\n  if (!objA) return false;\n  if (!objB) return false;\n  if (typeof objA !== \"object\") return false;\n  if (typeof objB !== \"object\") return false;\n  var aKeys = Object.keys(objA);\n  var bKeys = Object.keys(objB);\n  var length = aKeys.length;\n  if (bKeys.length !== length) return false;\n\n  for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n    var key = _aKeys[_i];\n\n    if (objA[key] !== objB[key]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isSelfTarget; });\n/**\n * Returns `true` if `event.target` and `event.currentTarget` are the same.\n */\nfunction isSelfTarget(event) {\n  return event.target === event.currentTarget;\n}\n\n\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useIsomorphicEffect; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/**\n * `React.useLayoutEffect` that fallbacks to `React.useEffect` on server side\n * rendering.\n */\n\nvar useIsomorphicEffect = typeof window === \"undefined\" ? react__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"] : react__WEBPACK_IMPORTED_MODULE_0__[\"useLayoutEffect\"];\n\n\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return getActiveElement; });\n/* harmony import */ var _getDocument_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);\n\n\n/**\n * Returns `element.ownerDocument.activeElement`.\n */\n\nfunction getActiveElement(element) {\n  return Object(_getDocument_js__WEBPACK_IMPORTED_MODULE_0__[/* getDocument */ \"a\"])(element).activeElement;\n}\n\n\n\n\n/***/ }),\n/* 62 */,\n/* 63 */,\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useSealedState; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/**\n * React custom hook that returns the very first value passed to `initialState`,\n * even if it changes between re-renders.\n */\nfunction useSealedState(initialState) {\n  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(initialState),\n      sealed = _React$useState[0];\n\n  return sealed;\n}\n\n\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return applyState; });\nfunction isUpdater(argument) {\n  return typeof argument === \"function\";\n}\n/**\n * Receives a `setState` argument and calls it with `currentValue` if it's a\n * function. Otherwise return the argument as the new value.\n *\n * @example\n * import { applyState } from \"reakit-utils\";\n *\n * applyState((value) => value + 1, 1); // 2\n * applyState(2, 1); // 2\n */\n\n\nfunction applyState(argument, currentValue) {\n  if (isUpdater(argument)) {\n    return argument(currentValue);\n  }\n\n  return argument;\n}\n\n\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar DISPLAY_FORMAT = exports.DISPLAY_FORMAT = 'L';\nvar ISO_FORMAT = exports.ISO_FORMAT = 'YYYY-MM-DD';\nvar ISO_MONTH_FORMAT = exports.ISO_MONTH_FORMAT = 'YYYY-MM';\n\nvar START_DATE = exports.START_DATE = 'startDate';\nvar END_DATE = exports.END_DATE = 'endDate';\n\nvar HORIZONTAL_ORIENTATION = exports.HORIZONTAL_ORIENTATION = 'horizontal';\nvar VERTICAL_ORIENTATION = exports.VERTICAL_ORIENTATION = 'vertical';\nvar VERTICAL_SCROLLABLE = exports.VERTICAL_SCROLLABLE = 'verticalScrollable';\n\nvar ICON_BEFORE_POSITION = exports.ICON_BEFORE_POSITION = 'before';\nvar ICON_AFTER_POSITION = exports.ICON_AFTER_POSITION = 'after';\n\nvar INFO_POSITION_TOP = exports.INFO_POSITION_TOP = 'top';\nvar INFO_POSITION_BOTTOM = exports.INFO_POSITION_BOTTOM = 'bottom';\nvar INFO_POSITION_BEFORE = exports.INFO_POSITION_BEFORE = 'before';\nvar INFO_POSITION_AFTER = exports.INFO_POSITION_AFTER = 'after';\n\nvar ANCHOR_LEFT = exports.ANCHOR_LEFT = 'left';\nvar ANCHOR_RIGHT = exports.ANCHOR_RIGHT = 'right';\n\nvar OPEN_DOWN = exports.OPEN_DOWN = 'down';\nvar OPEN_UP = exports.OPEN_UP = 'up';\n\nvar DAY_SIZE = exports.DAY_SIZE = 39;\nvar BLOCKED_MODIFIER = exports.BLOCKED_MODIFIER = 'blocked';\nvar WEEKDAYS = exports.WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];\n\nvar FANG_WIDTH_PX = exports.FANG_WIDTH_PX = 20;\nvar FANG_HEIGHT_PX = exports.FANG_HEIGHT_PX = 10;\nvar DEFAULT_VERTICAL_SPACING = exports.DEFAULT_VERTICAL_SPACING = 22;\n\nvar MODIFIER_KEY_NAMES = exports.MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);\n\n/***/ }),\n/* 67 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useForkRef; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// https://github.com/mui-org/material-ui/blob/2bcc874cf07b81202968f769cb9c2398c7c11311/packages/material-ui/src/utils/useForkRef.js\n\nfunction setRef(ref, value) {\n  if (value === void 0) {\n    value = null;\n  }\n\n  if (!ref) return;\n\n  if (typeof ref === \"function\") {\n    ref(value);\n  } else {\n    ref.current = value;\n  }\n}\n/**\n * Merges up to two React Refs into a single memoized function React Ref so you\n * can pass it to an element.\n *\n * @example\n * import React from \"react\";\n * import { useForkRef } from \"reakit-utils\";\n *\n * const Component = React.forwardRef((props, ref) => {\n *   const internalRef = React.useRef();\n *   return <div {...props} ref={useForkRef(internalRef, ref)} />;\n * });\n */\n\n\nfunction useForkRef(refA, refB) {\n  return Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useMemo\"])(function () {\n    if (refA == null && refB == null) {\n      return null;\n    }\n\n    return function (value) {\n      setRef(refA, value);\n      setRef(refB, value);\n    };\n  }, [refA, refB]);\n}\n\n\n\n\n/***/ }),\n/* 68 */,\n/* 69 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectSpread2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return _objectWithoutPropertiesLoose; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return _createForOfIteratorHelperLoose; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n  var it;\n\n  if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n    if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n      if (it) o = it;\n      var i = 0;\n      return function () {\n        if (i >= o.length) return {\n          done: true\n        };\n        return {\n          done: false,\n          value: o[i++]\n        };\n      };\n    }\n\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  it = o[Symbol.iterator]();\n  return it.next.bind(it);\n}\n\n\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return unstable_useIdState; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64);\n/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);\n\n\n\n\nfunction unstable_useIdState(initialState) {\n  if (initialState === void 0) {\n    initialState = {};\n  }\n\n  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_1__[/* useSealedState */ \"a\"])(initialState),\n      initialBaseId = _useSealedState.baseId;\n\n  var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_2__[/* unstable_IdContext */ \"a\"]);\n  var idCountRef = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(0);\n\n  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useState\"])(function () {\n    return initialBaseId || generateId();\n  }),\n      baseId = _React$useState[0],\n      setBaseId = _React$useState[1];\n\n  return {\n    baseId: baseId,\n    unstable_setBaseId: setBaseId,\n    unstable_idCountRef: idCountRef\n  };\n}\nvar keys = [\"baseId\", \"unstable_setBaseId\", \"unstable_idCountRef\"];\nunstable_useIdState.__keys = keys;\n\n\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Box */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useBox; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);\n/* harmony import */ var reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58);\n\n\n\n\n\nvar useBox = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ \"a\"])({\n  name: \"Box\",\n  keys: [\"unstable_system\"],\n  propsAreEqual: function propsAreEqual(prev, next) {\n    var prevSystem = prev.unstable_system,\n        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(prev, [\"unstable_system\"]);\n\n    var nextSystem = next.unstable_system,\n        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(next, [\"unstable_system\"]);\n\n    if (prevSystem !== nextSystem && !Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ \"a\"])(prevSystem, nextSystem)) {\n      return false;\n    }\n\n    return Object(reakit_utils_shallowEqual__WEBPACK_IMPORTED_MODULE_3__[/* shallowEqual */ \"a\"])(prevProps, nextProps);\n  }\n});\nvar Box = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ \"a\"])({\n  as: \"div\",\n  useHook: useBox\n});\n\n\n\n\n/***/ }),\n/* 72 */,\n/* 73 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return unstable_IdContext; });\n/* unused harmony export unstable_IdProvider */\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar defaultPrefix = \"id\";\nfunction generateRandomString(prefix) {\n  if (prefix === void 0) {\n    prefix = defaultPrefix;\n  }\n\n  return \"\" + (prefix ? prefix + \"-\" : \"\") + Math.random().toString(32).substr(2, 6);\n}\n\nvar unstable_IdContext = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])(generateRandomString);\nfunction unstable_IdProvider(_ref) {\n  var children = _ref.children,\n      _ref$prefix = _ref.prefix,\n      prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;\n  var count = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useRef\"])(0);\n  var generateId = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useCallback\"])(function (localPrefix) {\n    if (localPrefix === void 0) {\n      localPrefix = prefix;\n    }\n\n    return \"\" + (localPrefix ? localPrefix + \"-\" : \"\") + ++count.current;\n  }, [prefix]);\n  return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(unstable_IdContext.Provider, {\n    value: generateId\n  }, children);\n}\n\n\n\n\n/***/ }),\n/* 74 */,\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports =  true ? __webpack_require__(352) : undefined;\n\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _popover__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(107);\n/* harmony import */ var _shortcut__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(160);\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Time over children to wait before showing tooltip\n *\n * @type {number}\n */\n\nvar TOOLTIP_DELAY = 700;\n\nvar Tooltip = /*#__PURE__*/function (_Component) {\n  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(Tooltip, _Component);\n\n  var _super = _createSuper(Tooltip);\n\n  function Tooltip() {\n    var _this;\n\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(this, Tooltip);\n\n    _this = _super.apply(this, arguments);\n    _this.delayedSetIsOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__[\"debounce\"])(function (isOver) {\n      return _this.setState({\n        isOver: isOver\n      });\n    }, TOOLTIP_DELAY);\n    /**\n     * Prebound `isInMouseDown` handler, created as a constant reference to\n     * assure ability to remove in component unmount.\n     *\n     * @type {Function}\n     */\n\n    _this.cancelIsMouseDown = _this.createSetIsMouseDown(false);\n    /**\n     * Whether a the mouse is currently pressed, used in determining whether\n     * to handle a focus event as displaying the tooltip immediately.\n     *\n     * @type {boolean}\n     */\n\n    _this.isInMouseDown = false;\n    _this.state = {\n      isOver: false\n    };\n    return _this;\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(Tooltip, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.delayedSetIsOver.cancel();\n      document.removeEventListener('mouseup', this.cancelIsMouseDown);\n    }\n  }, {\n    key: \"emitToChild\",\n    value: function emitToChild(eventName, event) {\n      var children = this.props.children;\n\n      if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Children\"].count(children) !== 1) {\n        return;\n      }\n\n      var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Children\"].only(children);\n\n      if (typeof child.props[eventName] === 'function') {\n        child.props[eventName](event);\n      }\n    }\n  }, {\n    key: \"createToggleIsOver\",\n    value: function createToggleIsOver(eventName, isDelayed) {\n      var _this2 = this;\n\n      return function (event) {\n        // Preserve original child callback behavior\n        _this2.emitToChild(eventName, event); // Mouse events behave unreliably in React for disabled elements,\n        // firing on mouseenter but not mouseleave.  Further, the default\n        // behavior for disabled elements in some browsers is to ignore\n        // mouse events. Don't bother trying to to handle them.\n        //\n        // See: https://github.com/facebook/react/issues/4251\n\n\n        if (event.currentTarget.disabled) {\n          return;\n        } // A focus event will occur as a result of a mouse click, but it\n        // should be disambiguated between interacting with the button and\n        // using an explicit focus shift as a cue to display the tooltip.\n\n\n        if ('focus' === event.type && _this2.isInMouseDown) {\n          return;\n        } // Needed in case unsetting is over while delayed set pending, i.e.\n        // quickly blur/mouseleave before delayedSetIsOver is called\n\n\n        _this2.delayedSetIsOver.cancel();\n\n        var isOver = Object(lodash__WEBPACK_IMPORTED_MODULE_6__[\"includes\"])(['focus', 'mouseenter'], event.type);\n\n        if (isOver === _this2.state.isOver) {\n          return;\n        }\n\n        if (isDelayed) {\n          _this2.delayedSetIsOver(isOver);\n        } else {\n          _this2.setState({\n            isOver: isOver\n          });\n        }\n      };\n    }\n    /**\n     * Creates an event callback to handle assignment of the `isInMouseDown`\n     * instance property in response to a `mousedown` or `mouseup` event.\n     *\n     * @param {boolean} isMouseDown Whether handler is to be created for the\n     *                              `mousedown` event, as opposed to `mouseup`.\n     *\n     * @return {Function} Event callback handler.\n     */\n\n  }, {\n    key: \"createSetIsMouseDown\",\n    value: function createSetIsMouseDown(isMouseDown) {\n      var _this3 = this;\n\n      return function (event) {\n        // Preserve original child callback behavior\n        _this3.emitToChild(isMouseDown ? 'onMouseDown' : 'onMouseUp', event); // On mouse down, the next `mouseup` should revert the value of the\n        // instance property and remove its own event handler. The bind is\n        // made on the document since the `mouseup` might not occur within\n        // the bounds of the element.\n\n\n        document[isMouseDown ? 'addEventListener' : 'removeEventListener']('mouseup', _this3.cancelIsMouseDown);\n        _this3.isInMouseDown = isMouseDown;\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          position = _this$props.position,\n          text = _this$props.text,\n          shortcut = _this$props.shortcut;\n\n      if (_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Children\"].count(children) !== 1) {\n        if (false) {}\n\n        return children;\n      }\n\n      var child = _wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Children\"].only(children);\n      var isOver = this.state.isOver;\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"cloneElement\"])(child, {\n        onMouseEnter: this.createToggleIsOver('onMouseEnter', true),\n        onMouseLeave: this.createToggleIsOver('onMouseLeave'),\n        onClick: this.createToggleIsOver('onClick'),\n        onFocus: this.createToggleIsOver('onFocus'),\n        onBlur: this.createToggleIsOver('onBlur'),\n        onMouseDown: this.createSetIsMouseDown(true),\n        children: Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"concatChildren\"])(child.props.children, isOver && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"])(_popover__WEBPACK_IMPORTED_MODULE_7__[/* default */ \"a\"], {\n          focusOnMount: false,\n          position: position,\n          className: \"components-tooltip\",\n          \"aria-hidden\": \"true\",\n          animate: false,\n          noArrow: true\n        }, text, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"createElement\"])(_shortcut__WEBPACK_IMPORTED_MODULE_8__[/* default */ \"a\"], {\n          className: \"components-tooltip__shortcut\",\n          shortcut: shortcut\n        })))\n      });\n    }\n  }]);\n\n  return Tooltip;\n}(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Component\"]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Tooltip);\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * WordPress dependencies\n */\n\nvar ToolbarContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])();\n/* harmony default export */ __webpack_exports__[\"a\"] = (ToolbarContext);\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _dashicon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(142);\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction Icon(_ref) {\n  var _ref$icon = _ref.icon,\n      icon = _ref$icon === void 0 ? null : _ref$icon,\n      size = _ref.size,\n      additionalProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  // Dashicons should be 20x20 by default.\n  var dashiconSize = size || 20;\n\n  if ('string' === typeof icon) {\n    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"])(_dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])({\n      icon: icon,\n      size: dashiconSize\n    }, additionalProps));\n  }\n\n  if (icon && _dashicon__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"] === icon.type) {\n    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"])(icon, _objectSpread({\n      size: dashiconSize\n    }, additionalProps));\n  } // Icons should be 24x24 by default.\n\n\n  var iconSize = size || 24;\n\n  if ('function' === typeof icon) {\n    if (icon.prototype instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"Component\"]) {\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"])(icon, _objectSpread({\n        size: iconSize\n      }, additionalProps));\n    }\n\n    return icon(_objectSpread({\n      size: iconSize\n    }, additionalProps));\n  }\n\n  if (icon && (icon.type === 'svg' || icon.type === _wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__[\"SVG\"])) {\n    var appliedProps = _objectSpread({\n      width: iconSize,\n      height: iconSize\n    }, icon.props, {}, additionalProps);\n\n    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_4__[\"SVG\"], appliedProps);\n  }\n\n  if (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"isValidElement\"])(icon)) {\n    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"cloneElement\"])(icon, _objectSpread({\n      size: iconSize\n    }, additionalProps));\n  }\n\n  return icon;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n/* 79 */,\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES5Type = __webpack_require__(313);\n\n// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values\n\nmodule.exports = function Type(x) {\n\tif (typeof x === 'symbol') {\n\t\treturn 'Symbol';\n\t}\n\treturn ES5Type(x);\n};\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(113);\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar defineProperties = __webpack_require__(93);\n\nvar implementation = __webpack_require__(220);\nvar getPolyfill = __webpack_require__(221);\nvar shim = __webpack_require__(349);\n\nvar polyfill = getPolyfill();\n\ndefineProperties(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return hasFocusWithin; });\n/* harmony import */ var _getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61);\n\n\n\n/**\n * Checks if `element` has focus.\n *\n * @example\n * import { hasFocusWithin } from \"reakit-utils\";\n *\n * hasFocusWithin(document.getElementById(\"id\"));\n */\n\nfunction hasFocusWithin(element) {\n  var activeElement = Object(_getActiveElement_js__WEBPACK_IMPORTED_MODULE_0__[/* getActiveElement */ \"a\"])(element);\n  if (!activeElement) return false;\n  if (element.contains(activeElement)) return true;\n  var activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n  if (!activeDescendant) return false;\n  return activeDescendant === element.id || !!element.querySelector(\"#\" + activeDescendant);\n}\n\n\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isButton; });\nvar buttonInputTypes = [\"button\", \"color\", \"file\", \"image\", \"reset\", \"submit\"];\n/**\n * Checks whether `element` is a native HTML button element or not.\n *\n * @example\n * import { isButton } from \"reakit-utils\";\n *\n * isButton(document.querySelector(\"button\")); // true\n * isButton(document.querySelector(\"input[type='button']\")); // true\n * isButton(document.querySelector(\"div\")); // false\n * isButton(document.querySelector(\"input[type='text']\")); // false\n *\n * @returns {boolean}\n */\n\nfunction isButton(element) {\n  if (element.tagName === \"BUTTON\") return true;\n\n  if (element.tagName === \"INPUT\") {\n    var input = element;\n    return buttonInputTypes.indexOf(input.type) !== -1;\n  }\n\n  return false;\n}\n\n\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ ensureFocus; });\n__webpack_require__.d(__webpack_exports__, \"b\", function() { return /* binding */ getClosestFocusable; });\n\n// UNUSED EXPORTS: getAllFocusableIn, getAllTabbableIn, getFirstFocusableIn, getFirstTabbableIn, getLastTabbableIn, getNextTabbableIn, getPreviousTabbableIn, isFocusable, isTabbable\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/matches.js\n/**\n * Ponyfill for `Element.prototype.matches`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/matches\n */\nfunction matches(element, selectors) {\n  if (\"matches\" in element) return element.matches(selectors);\n  if (\"msMatchesSelector\" in element) return element.msMatchesSelector(selectors);\n  return element.webkitMatchesSelector(selectors);\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/closest.js\n\n\n/**\n * Ponyfill for `Element.prototype.closest`\n *\n * @example\n * import { closest } from \"reakit-utils\";\n *\n * closest(document.getElementById(\"id\"), \"div\");\n * // same as\n * document.getElementById(\"id\").closest(\"div\");\n */\nfunction closest(element, selectors) {\n  if (\"closest\" in element) return element.closest(selectors);\n\n  do {\n    if (matches(element, selectors)) return element;\n    element = element.parentElement || element.parentNode;\n  } while (element !== null && element.nodeType === 1);\n\n  return null;\n}\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js\nvar getActiveElement = __webpack_require__(61);\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/tabbable.js\n\n\n\n\n\n/** @module tabbable */\nvar selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), \" + \"textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], \" + \"iframe, object, embed, area[href], audio[controls], video[controls], \" + \"[contenteditable]:not([contenteditable='false'])\";\n\nfunction isVisible(element) {\n  return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nfunction hasNegativeTabIndex(element) {\n  var tabIndex = parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n  return tabIndex < 0;\n}\n/**\n * Checks whether `element` is focusable or not.\n *\n * @memberof tabbable\n *\n * @example\n * import { isFocusable } from \"reakit-utils\";\n *\n * isFocusable(document.querySelector(\"input\")); // true\n * isFocusable(document.querySelector(\"input[tabindex='-1']\")); // true\n * isFocusable(document.querySelector(\"input[hidden]\")); // false\n * isFocusable(document.querySelector(\"input:disabled\")); // false\n */\n\n\nfunction isFocusable(element) {\n  return matches(element, selector) && isVisible(element);\n}\n/**\n * Checks whether `element` is tabbable or not.\n *\n * @memberof tabbable\n *\n * @example\n * import { isTabbable } from \"reakit-utils\";\n *\n * isTabbable(document.querySelector(\"input\")); // true\n * isTabbable(document.querySelector(\"input[tabindex='-1']\")); // false\n * isTabbable(document.querySelector(\"input[hidden]\")); // false\n * isTabbable(document.querySelector(\"input:disabled\")); // false\n */\n\nfunction isTabbable(element) {\n  return isFocusable(element) && !hasNegativeTabIndex(element);\n}\n/**\n * Returns all the focusable elements in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element[]}\n */\n\nfunction getAllFocusableIn(container) {\n  var allFocusable = Array.from(container.querySelectorAll(selector));\n  allFocusable.unshift(container);\n  return allFocusable.filter(isFocusable);\n}\n/**\n * Returns the first focusable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element|null}\n */\n\nfunction getFirstFocusableIn(container) {\n  var allFocusable = getAllFocusableIn(container);\n  return allFocusable.length ? allFocusable[0] : null;\n}\n/**\n * Returns all the tabbable elements in `container`, including the container\n * itself.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return focusable elements if there are no tabbable ones.\n *\n * @returns {Element[]}\n */\n\nfunction getAllTabbableIn(container, fallbackToFocusable) {\n  var allFocusable = Array.from(container.querySelectorAll(selector));\n  var allTabbable = allFocusable.filter(isTabbable);\n\n  if (isTabbable(container)) {\n    allTabbable.unshift(container);\n  }\n\n  if (!allTabbable.length && fallbackToFocusable) {\n    return allFocusable;\n  }\n\n  return allTabbable;\n}\n/**\n * Returns the first tabbable element in `container`, including the container\n * itself if it's tabbable.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the first focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getFirstTabbableIn(container, fallbackToFocusable) {\n  var _getAllTabbableIn = getAllTabbableIn(container, fallbackToFocusable),\n      first = _getAllTabbableIn[0];\n\n  return first || null;\n}\n/**\n * Returns the last tabbable element in `container`, including the container\n * itself if it's tabbable.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the last focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getLastTabbableIn(container, fallbackToFocusable) {\n  var allTabbable = getAllTabbableIn(container, fallbackToFocusable);\n  return allTabbable[allTabbable.length - 1] || null;\n}\n/**\n * Returns the next tabbable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the next focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getNextTabbableIn(container, fallbackToFocusable) {\n  var activeElement = Object(getActiveElement[\"a\" /* getActiveElement */])(container);\n  var allFocusable = getAllFocusableIn(container);\n  var index = allFocusable.indexOf(activeElement);\n  var slice = allFocusable.slice(index + 1);\n  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\n/**\n * Returns the previous tabbable element in `container`.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n * @param fallbackToFocusable If `true`, it'll return the previous focusable element if there are no tabbable ones.\n *\n * @returns {Element|null}\n */\n\nfunction getPreviousTabbableIn(container, fallbackToFocusable) {\n  var activeElement = Object(getActiveElement[\"a\" /* getActiveElement */])(container);\n  var allFocusable = getAllFocusableIn(container).reverse();\n  var index = allFocusable.indexOf(activeElement);\n  var slice = allFocusable.slice(index + 1);\n  return slice.find(isTabbable) || allFocusable.find(isTabbable) || (fallbackToFocusable ? slice[0] : null);\n}\n/**\n * Returns the closest focusable element.\n *\n * @memberof tabbable\n *\n * @param {Element} container\n *\n * @returns {Element|null}\n */\n\nfunction getClosestFocusable(element) {\n  while (element && !isFocusable(element)) {\n    element = closest(element, selector);\n  }\n\n  return element;\n}\n\nfunction defaultIsActive(element) {\n  return Object(getActiveElement[\"a\" /* getActiveElement */])(element) === element;\n}\n\n/**\n * Ensures `element` will receive focus if it's not already.\n *\n * @memberof tabbable\n *\n * @example\n * import { ensureFocus } from \"reakit-utils\";\n *\n * ensureFocus(document.activeElement); // does nothing\n *\n * const element = document.querySelector(\"input\");\n *\n * ensureFocus(element); // focuses element\n * ensureFocus(element, { preventScroll: true }); // focuses element preventing scroll jump\n *\n * function isActive(el) {\n *   return el.dataset.active === \"true\";\n * }\n *\n * ensureFocus(document.querySelector(\"[data-active='true']\"), { isActive }); // does nothing\n *\n * @returns {number} `requestAnimationFrame` call ID so it can be passed to `cancelAnimationFrame` if needed.\n */\nfunction ensureFocus(element, _temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      _ref$isActive = _ref.isActive,\n      isActive = _ref$isActive === void 0 ? defaultIsActive : _ref$isActive,\n      preventScroll = _ref.preventScroll;\n\n  if (isActive(element)) return -1;\n  element.focus({\n    preventScroll: preventScroll\n  });\n  if (isActive(element)) return -1;\n  return requestAnimationFrame(function () {\n    element.focus({\n      preventScroll: preventScroll\n    });\n  });\n}\n\n\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ isPortalEvent; });\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/contains.js\n/**\n * Similar to `Element.prototype.contains`.\n */\nfunction contains(parent, child) {\n  return parent === child || parent.contains(child);\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isPortalEvent.js\n\n\n/**\n * Returns `true` if `event` has been fired within a React Portal element.\n */\n\nfunction isPortalEvent(event) {\n  return !contains(event.currentTarget, event.target);\n}\n\n\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Tabbable */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useTabbable; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);\n/* harmony import */ var _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67);\n/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(84);\n/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94);\n/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(54);\n/* harmony import */ var reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60);\n/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(83);\n/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(86);\n/* harmony import */ var reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61);\n/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(85);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isUA(string) {\n  if (typeof window === \"undefined\") return false;\n  return window.navigator.userAgent.indexOf(string) !== -1;\n}\n\nvar isSafariOrFirefoxOnMac = isUA(\"Mac\") && !isUA(\"Chrome\") && (isUA(\"Safari\") || isUA(\"Firefox\"));\n\nfunction focusIfNeeded(element) {\n  if (!Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_10__[/* hasFocusWithin */ \"a\"])(element)) {\n    element.focus();\n  }\n} // Safari and Firefox on MacOS don't focus on buttons on mouse down like other\n// browsers/platforms. Instead, they focus on the closest focusable ancestor\n// element, which is ultimately the body element. So we make sure to give focus\n// to the tabbable element on mouse down so it works consistently across\n// browsers.\n// istanbul ignore next\n\n\nfunction useFocusOnMouseDown() {\n  if (!isSafariOrFirefoxOnMac) return undefined;\n\n  var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"])(null),\n      tabbable = _React$useState[0],\n      scheduleFocus = _React$useState[1];\n\n  Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useEffect\"])(function () {\n    if (!tabbable) return;\n    focusIfNeeded(tabbable);\n    scheduleFocus(null);\n  }, [tabbable]);\n  var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"])(function (event) {\n    var element = event.currentTarget;\n    if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_11__[/* isPortalEvent */ \"a\"])(event)) return;\n    if (!Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_6__[/* isButton */ \"a\"])(element)) return;\n    var activeElement = Object(reakit_utils_getActiveElement__WEBPACK_IMPORTED_MODULE_12__[/* getActiveElement */ \"a\"])(element);\n    if (!activeElement) return;\n    var activeElementIsBody = activeElement.tagName === \"BODY\";\n    var focusableAncestor = Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_13__[/* getClosestFocusable */ \"b\"])(element.parentElement);\n\n    if (activeElement === focusableAncestor || activeElementIsBody && !focusableAncestor) {\n      // When the active element is the focusable ancestor, it'll not emit\n      // focus/blur events. After all, it's already focused. So we can't\n      // listen to those events to focus this tabbable element.\n      // When the active element is body and there's no focusable ancestor,\n      // we also don't have any other event to listen to since body never\n      // emits focus/blur events on itself.\n      // In both of these cases, we have to schedule focus on this tabbable\n      // element.\n      scheduleFocus(element);\n    } else if (focusableAncestor) {\n      // Clicking (mouse down) on the tabbable element on Safari and Firefox\n      // on MacOS will fire focus on the focusable ancestor element if\n      // there's any and if it's not the current active element. So we wait\n      // for this event to happen before moving focus to this element.\n      // Instead of moving focus right away, we have to schedule it,\n      // otherwise it's gonna prevent drag events from happening.\n      var onFocus = function onFocus() {\n        return scheduleFocus(element);\n      };\n\n      focusableAncestor.addEventListener(\"focusin\", onFocus, {\n        once: true\n      });\n    } else {\n      // Finally, if there's no focsuable ancestor and there's another\n      // element with focus, we wait for that element to get blurred before\n      // focusing this one.\n      var onBlur = function onBlur() {\n        return focusIfNeeded(element);\n      };\n\n      activeElement.addEventListener(\"blur\", onBlur, {\n        once: true\n      });\n    }\n  }, []);\n  return onMouseDown;\n}\n\nfunction isNativeTabbable(element) {\n  return element.tagName === \"BUTTON\" || element.tagName === \"INPUT\" || element.tagName === \"SELECT\" || element.tagName === \"TEXTAREA\" || element.tagName === \"A\" || element.tagName === \"AUDIO\" || element.tagName === \"VIDEO\";\n}\n\nvar useTabbable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ \"a\"])({\n  name: \"Tabbable\",\n  compose: _Box_Box_js__WEBPACK_IMPORTED_MODULE_3__[/* useBox */ \"a\"],\n  keys: [\"disabled\", \"focusable\"],\n  useOptions: function useOptions(options, _ref) {\n    var disabled = _ref.disabled;\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      disabled: disabled\n    }, options);\n  },\n  useProps: function useProps(options, _ref2) {\n    var htmlRef = _ref2.ref,\n        htmlTabIndex = _ref2.tabIndex,\n        htmlOnClick = _ref2.onClick,\n        htmlOnMouseDown = _ref2.onMouseDown,\n        htmlStyle = _ref2.style,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_ref2, [\"ref\", \"tabIndex\", \"onClick\", \"onMouseDown\", \"style\"]);\n\n    var ref = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useRef\"])(null);\n    var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ \"a\"])(htmlOnClick);\n    var onMouseDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_8__[/* useLiveRef */ \"a\"])(htmlOnMouseDown);\n    var trulyDisabled = options.disabled && !options.focusable;\n\n    var _React$useState2 = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useState\"])(true),\n        nativeTabbable = _React$useState2[0],\n        setNativeTabbable = _React$useState2[1];\n\n    var tabIndex = nativeTabbable ? htmlTabIndex : htmlTabIndex || 0;\n    var style = options.disabled ? Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      pointerEvents: \"none\"\n    }, htmlStyle) : htmlStyle;\n    var focusOnMouseDown = useFocusOnMouseDown();\n    Object(reakit_utils_useIsomorphicEffect__WEBPACK_IMPORTED_MODULE_9__[/* useIsomorphicEffect */ \"a\"])(function () {\n      var tabbable = ref.current;\n\n      if (!tabbable) {\n         false ? undefined : void 0;\n        return;\n      }\n\n      if (!isNativeTabbable(tabbable)) {\n        setNativeTabbable(false);\n      }\n    }, []);\n    var onClick = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"])(function (event) {\n      var _onClickRef$current;\n\n      if (options.disabled) {\n        event.stopPropagation();\n        event.preventDefault();\n        return;\n      }\n\n      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n    }, [options.disabled]);\n    var onMouseDown = Object(react__WEBPACK_IMPORTED_MODULE_4__[\"useCallback\"])(function (event) {\n      var _onMouseDownRef$curre;\n\n      if (options.disabled) {\n        event.stopPropagation();\n        event.preventDefault();\n        return;\n      }\n\n      (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);\n      if (event.defaultPrevented) return;\n      focusOnMouseDown === null || focusOnMouseDown === void 0 ? void 0 : focusOnMouseDown(event);\n    }, [options.disabled, focusOnMouseDown]);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_5__[/* useForkRef */ \"a\"])(ref, htmlRef),\n      style: style,\n      tabIndex: !trulyDisabled ? tabIndex : undefined,\n      disabled: trulyDisabled && nativeTabbable ? true : undefined,\n      \"aria-disabled\": options.disabled ? true : undefined,\n      onClick: onClick,\n      onMouseDown: onMouseDown\n    }, htmlProps);\n  }\n});\nvar Tabbable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ \"a\"])({\n  as: \"div\",\n  useHook: useTabbable\n});\n\n\n\n\n/***/ }),\n/* 88 */,\n/* 89 */,\n/* 90 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useCreateElement; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _SystemContext_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(102);\n/* harmony import */ var _rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69);\n\n\n\n\nfunction isRenderProp(children) {\n  return typeof children === \"function\";\n}\n\n/**\n * Custom hook that will call `children` if it's a function. If\n * `useCreateElement` has been passed to the context, it'll be used instead.\n *\n * @example\n * import React from \"react\";\n * import { SystemProvider, useCreateElement } from \"reakit-system\";\n *\n * const system = {\n *   useCreateElement(type, props, children = props.children) {\n *     // very similar to what `useCreateElement` does already\n *     if (typeof children === \"function\") {\n *       const { children: _, ...rest } = props;\n *       return children(rest);\n *     }\n *     return React.createElement(type, props, children);\n *   },\n * };\n *\n * function Component(props) {\n *   return useCreateElement(\"div\", props);\n * }\n *\n * function App() {\n *   return (\n *     <SystemProvider unstable_system={system}>\n *       <Component url=\"url\">{({ url }) => <a href={url}>link</a>}</Component>\n *     </SystemProvider>\n *   );\n * }\n */\n\nvar useCreateElement = function useCreateElement(type, props, children) {\n  if (children === void 0) {\n    children = props.children;\n  }\n\n  var context = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"useContext\"])(_SystemContext_js__WEBPACK_IMPORTED_MODULE_1__[/* SystemContext */ \"a\"]);\n\n  if (context.useCreateElement) {\n    return context.useCreateElement(type, props, children);\n  }\n\n  if (typeof type === \"string\" && isRenderProp(children)) {\n    var _ = props.children,\n        rest = Object(_rollupPluginBabelHelpers_0c84a174_js__WEBPACK_IMPORTED_MODULE_2__[/* a */ \"b\"])(props, [\"children\"]);\n\n    return children(rest);\n  }\n\n  return /*#__PURE__*/Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(type, props, children);\n};\n\n\n\n\n/***/ }),\n/* 91 */,\n/* 92 */,\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keys = __webpack_require__(175);\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// UNUSED EXPORTS: warning, useWarning\n\n// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js\nvar warning = __webpack_require__(149);\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/isObject.js\n/**\n * Checks whether `arg` is an object or not.\n *\n * @returns {boolean}\n */\nfunction isObject(arg) {\n  return typeof arg === \"object\" && arg != null;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-warning/es/useWarning.js\n\n\n\n\n\nfunction isRefObject(ref) {\n  return isObject(ref) && \"current\" in ref;\n}\n/**\n * Logs `messages` to the console using `console.warn` based on a `condition`.\n * This should be used inside components.\n */\n\n\nfunction useWarning(condition) {\n  for (var _len = arguments.length, messages = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    messages[_key - 1] = arguments[_key];\n  }\n\n  if (false) {}\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-warning/es/index.js\n\n\n\n\n\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return createOnKeyDown; });\n/**\n * Returns an `onKeyDown` handler to be passed to a component.\n *\n * @param options\n */\nfunction createOnKeyDown(_temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      keyMap = _ref.keyMap,\n      onKey = _ref.onKey,\n      stopPropagation = _ref.stopPropagation,\n      onKeyDown = _ref.onKeyDown,\n      _ref$shouldKeyDown = _ref.shouldKeyDown,\n      shouldKeyDown = _ref$shouldKeyDown === void 0 ? function () {\n    return true;\n  } : _ref$shouldKeyDown,\n      _ref$preventDefault = _ref.preventDefault,\n      preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault;\n\n  return function (event) {\n    if (!keyMap) return;\n    var finalKeyMap = typeof keyMap === \"function\" ? keyMap(event) : keyMap;\n    var shouldPreventDefault = typeof preventDefault === \"function\" ? preventDefault(event) : preventDefault;\n    var shouldStopPropagation = typeof stopPropagation === \"function\" ? stopPropagation(event) : stopPropagation;\n\n    if (event.key in finalKeyMap) {\n      var action = finalKeyMap[event.key];\n\n      if (typeof action === \"function\" && shouldKeyDown(event)) {\n        if (shouldPreventDefault) event.preventDefault();\n        if (shouldStopPropagation) event.stopPropagation();\n        if (onKey) onKey(event);\n        action(event); // Prevent onKeyDown from being called twice for the same keys\n\n        return;\n      }\n    }\n\n    if (onKeyDown && \"current\" in onKeyDown) {\n      var _onKeyDown$current;\n\n      (_onKeyDown$current = onKeyDown.current) === null || _onKeyDown$current === void 0 ? void 0 : _onKeyDown$current.call(onKeyDown, event);\n    } else {\n      onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);\n    }\n  };\n}\n\n\n\n\n/***/ }),\n/* 96 */,\n/* 97 */\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"warning\"]; }());\n\n/***/ }),\n/* 98 */,\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar calendarLabel = 'Calendar';\nvar closeDatePicker = 'Close';\nvar focusStartDate = 'Interact with the calendar and add the check-in date for your trip.';\nvar clearDate = 'Clear Date';\nvar clearDates = 'Clear Dates';\nvar jumpToPrevMonth = 'Move backward to switch to the previous month.';\nvar jumpToNextMonth = 'Move forward to switch to the next month.';\nvar keyboardShortcuts = 'Keyboard Shortcuts';\nvar showKeyboardShortcutsPanel = 'Open the keyboard shortcuts panel.';\nvar hideKeyboardShortcutsPanel = 'Close the shortcuts panel.';\nvar openThisPanel = 'Open this panel.';\nvar enterKey = 'Enter key';\nvar leftArrowRightArrow = 'Right and left arrow keys';\nvar upArrowDownArrow = 'up and down arrow keys';\nvar pageUpPageDown = 'page up and page down keys';\nvar homeEnd = 'Home and end keys';\nvar escape = 'Escape key';\nvar questionMark = 'Question mark';\nvar selectFocusedDate = 'Select the date in focus.';\nvar moveFocusByOneDay = 'Move backward (left) and forward (right) by one day.';\nvar moveFocusByOneWeek = 'Move backward (up) and forward (down) by one week.';\nvar moveFocusByOneMonth = 'Switch months.';\nvar moveFocustoStartAndEndOfWeek = 'Go to the first or last day of a week.';\nvar returnFocusToInput = 'Return to the date input field.';\nvar keyboardNavigationInstructions = 'Press the down arrow key to interact with the calendar and\\n  select a date. Press the question mark key to get the keyboard shortcuts for changing dates.';\n\nvar chooseAvailableStartDate = function chooseAvailableStartDate(_ref) {\n  var date = _ref.date;\n  return 'Choose ' + String(date) + ' as your check-in date. It\\u2019s available.';\n};\nvar chooseAvailableEndDate = function chooseAvailableEndDate(_ref2) {\n  var date = _ref2.date;\n  return 'Choose ' + String(date) + ' as your check-out date. It\\u2019s available.';\n};\nvar chooseAvailableDate = function chooseAvailableDate(_ref3) {\n  var date = _ref3.date;\n  return date;\n};\nvar dateIsUnavailable = function dateIsUnavailable(_ref4) {\n  var date = _ref4.date;\n  return 'Not available. ' + String(date);\n};\nvar dateIsSelected = function dateIsSelected(_ref5) {\n  var date = _ref5.date;\n  return 'Selected. ' + String(date);\n};\n\nexports['default'] = {\n  calendarLabel: calendarLabel,\n  closeDatePicker: closeDatePicker,\n  focusStartDate: focusStartDate,\n  clearDate: clearDate,\n  clearDates: clearDates,\n  jumpToPrevMonth: jumpToPrevMonth,\n  jumpToNextMonth: jumpToNextMonth,\n  keyboardShortcuts: keyboardShortcuts,\n  showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n  hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n  openThisPanel: openThisPanel,\n  enterKey: enterKey,\n  leftArrowRightArrow: leftArrowRightArrow,\n  upArrowDownArrow: upArrowDownArrow,\n  pageUpPageDown: pageUpPageDown,\n  homeEnd: homeEnd,\n  escape: escape,\n  questionMark: questionMark,\n  selectFocusedDate: selectFocusedDate,\n  moveFocusByOneDay: moveFocusByOneDay,\n  moveFocusByOneWeek: moveFocusByOneWeek,\n  moveFocusByOneMonth: moveFocusByOneMonth,\n  moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n  returnFocusToInput: returnFocusToInput,\n  keyboardNavigationInstructions: keyboardNavigationInstructions,\n\n  chooseAvailableStartDate: chooseAvailableStartDate,\n  chooseAvailableEndDate: chooseAvailableEndDate,\n  dateIsUnavailable: dateIsUnavailable,\n  dateIsSelected: dateIsSelected\n};\nvar DateRangePickerPhrases = exports.DateRangePickerPhrases = {\n  calendarLabel: calendarLabel,\n  closeDatePicker: closeDatePicker,\n  clearDates: clearDates,\n  focusStartDate: focusStartDate,\n  jumpToPrevMonth: jumpToPrevMonth,\n  jumpToNextMonth: jumpToNextMonth,\n  keyboardShortcuts: keyboardShortcuts,\n  showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n  hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n  openThisPanel: openThisPanel,\n  enterKey: enterKey,\n  leftArrowRightArrow: leftArrowRightArrow,\n  upArrowDownArrow: upArrowDownArrow,\n  pageUpPageDown: pageUpPageDown,\n  homeEnd: homeEnd,\n  escape: escape,\n  questionMark: questionMark,\n  selectFocusedDate: selectFocusedDate,\n  moveFocusByOneDay: moveFocusByOneDay,\n  moveFocusByOneWeek: moveFocusByOneWeek,\n  moveFocusByOneMonth: moveFocusByOneMonth,\n  moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n  returnFocusToInput: returnFocusToInput,\n  keyboardNavigationInstructions: keyboardNavigationInstructions,\n  chooseAvailableStartDate: chooseAvailableStartDate,\n  chooseAvailableEndDate: chooseAvailableEndDate,\n  dateIsUnavailable: dateIsUnavailable,\n  dateIsSelected: dateIsSelected\n};\n\nvar DateRangePickerInputPhrases = exports.DateRangePickerInputPhrases = {\n  focusStartDate: focusStartDate,\n  clearDates: clearDates,\n  keyboardNavigationInstructions: keyboardNavigationInstructions\n};\n\nvar SingleDatePickerPhrases = exports.SingleDatePickerPhrases = {\n  calendarLabel: calendarLabel,\n  closeDatePicker: closeDatePicker,\n  clearDate: clearDate,\n  jumpToPrevMonth: jumpToPrevMonth,\n  jumpToNextMonth: jumpToNextMonth,\n  keyboardShortcuts: keyboardShortcuts,\n  showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n  hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n  openThisPanel: openThisPanel,\n  enterKey: enterKey,\n  leftArrowRightArrow: leftArrowRightArrow,\n  upArrowDownArrow: upArrowDownArrow,\n  pageUpPageDown: pageUpPageDown,\n  homeEnd: homeEnd,\n  escape: escape,\n  questionMark: questionMark,\n  selectFocusedDate: selectFocusedDate,\n  moveFocusByOneDay: moveFocusByOneDay,\n  moveFocusByOneWeek: moveFocusByOneWeek,\n  moveFocusByOneMonth: moveFocusByOneMonth,\n  moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n  returnFocusToInput: returnFocusToInput,\n  keyboardNavigationInstructions: keyboardNavigationInstructions,\n  chooseAvailableDate: chooseAvailableDate,\n  dateIsUnavailable: dateIsUnavailable,\n  dateIsSelected: dateIsSelected\n};\n\nvar SingleDatePickerInputPhrases = exports.SingleDatePickerInputPhrases = {\n  clearDate: clearDate,\n  keyboardNavigationInstructions: keyboardNavigationInstructions\n};\n\nvar DayPickerPhrases = exports.DayPickerPhrases = {\n  calendarLabel: calendarLabel,\n  jumpToPrevMonth: jumpToPrevMonth,\n  jumpToNextMonth: jumpToNextMonth,\n  keyboardShortcuts: keyboardShortcuts,\n  showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n  hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n  openThisPanel: openThisPanel,\n  enterKey: enterKey,\n  leftArrowRightArrow: leftArrowRightArrow,\n  upArrowDownArrow: upArrowDownArrow,\n  pageUpPageDown: pageUpPageDown,\n  homeEnd: homeEnd,\n  escape: escape,\n  questionMark: questionMark,\n  selectFocusedDate: selectFocusedDate,\n  moveFocusByOneDay: moveFocusByOneDay,\n  moveFocusByOneWeek: moveFocusByOneWeek,\n  moveFocusByOneMonth: moveFocusByOneMonth,\n  moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n  returnFocusToInput: returnFocusToInput,\n  chooseAvailableStartDate: chooseAvailableStartDate,\n  chooseAvailableEndDate: chooseAvailableEndDate,\n  chooseAvailableDate: chooseAvailableDate,\n  dateIsUnavailable: dateIsUnavailable,\n  dateIsSelected: dateIsSelected\n};\n\nvar DayPickerKeyboardShortcutsPhrases = exports.DayPickerKeyboardShortcutsPhrases = {\n  keyboardShortcuts: keyboardShortcuts,\n  showKeyboardShortcutsPanel: showKeyboardShortcutsPanel,\n  hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n  openThisPanel: openThisPanel,\n  enterKey: enterKey,\n  leftArrowRightArrow: leftArrowRightArrow,\n  upArrowDownArrow: upArrowDownArrow,\n  pageUpPageDown: pageUpPageDown,\n  homeEnd: homeEnd,\n  escape: escape,\n  questionMark: questionMark,\n  selectFocusedDate: selectFocusedDate,\n  moveFocusByOneDay: moveFocusByOneDay,\n  moveFocusByOneWeek: moveFocusByOneWeek,\n  moveFocusByOneMonth: moveFocusByOneMonth,\n  moveFocustoStartAndEndOfWeek: moveFocustoStartAndEndOfWeek,\n  returnFocusToInput: returnFocusToInput\n};\n\nvar DayPickerNavigationPhrases = exports.DayPickerNavigationPhrases = {\n  jumpToPrevMonth: jumpToPrevMonth,\n  jumpToNextMonth: jumpToNextMonth\n};\n\nvar CalendarDayPhrases = exports.CalendarDayPhrases = {\n  chooseAvailableDate: chooseAvailableDate,\n  dateIsUnavailable: dateIsUnavailable,\n  dateIsSelected: dateIsSelected\n};\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getPhrasePropTypes;\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction getPhrasePropTypes(defaultPhrases) {\n  return Object.keys(defaultPhrases).reduce(function (phrases, key) {\n    return (0, _object2['default'])({}, phrases, _defineProperty({}, key, _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].func, _propTypes2['default'].node])));\n  }, {});\n}\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.withStylesPropTypes = exports.css = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.withStyles = withStyles;\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _hoistNonReactStatics = __webpack_require__(366);\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _constants = __webpack_require__(369);\n\nvar _brcast = __webpack_require__(370);\n\nvar _brcast2 = _interopRequireDefault(_brcast);\n\nvar _ThemedStyleSheet = __webpack_require__(218);\n\nvar _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* eslint react/forbid-foreign-prop-types: off */\n\n// Add some named exports to assist in upgrading and for convenience\nvar css = exports.css = _ThemedStyleSheet2['default'].resolveLTR;\nvar withStylesPropTypes = exports.withStylesPropTypes = {\n  styles: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types\n  theme: _propTypes2['default'].object.isRequired, // eslint-disable-line react/forbid-prop-types\n  css: _propTypes2['default'].func.isRequired\n};\n\nvar EMPTY_STYLES = {};\nvar EMPTY_STYLES_FN = function EMPTY_STYLES_FN() {\n  return EMPTY_STYLES;\n};\n\nvar START_MARK = 'react-with-styles.createStyles.start';\nvar END_MARK = 'react-with-styles.createStyles.end';\n\nfunction baseClass(pureComponent) {\n  if (pureComponent) {\n    if (!_react2['default'].PureComponent) {\n      throw new ReferenceError('withStyles() pureComponent option requires React 15.3.0 or later');\n    }\n\n    return _react2['default'].PureComponent;\n  }\n\n  return _react2['default'].Component;\n}\n\nvar contextTypes = _defineProperty({}, _constants.CHANNEL, _brcast2['default']);\n\nvar defaultDirection = _constants.DIRECTIONS.LTR;\n\nfunction withStyles(styleFn) {\n  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n      _ref$stylesPropName = _ref.stylesPropName,\n      stylesPropName = _ref$stylesPropName === undefined ? 'styles' : _ref$stylesPropName,\n      _ref$themePropName = _ref.themePropName,\n      themePropName = _ref$themePropName === undefined ? 'theme' : _ref$themePropName,\n      _ref$cssPropName = _ref.cssPropName,\n      cssPropName = _ref$cssPropName === undefined ? 'css' : _ref$cssPropName,\n      _ref$flushBefore = _ref.flushBefore,\n      flushBefore = _ref$flushBefore === undefined ? false : _ref$flushBefore,\n      _ref$pureComponent = _ref.pureComponent,\n      pureComponent = _ref$pureComponent === undefined ? false : _ref$pureComponent;\n\n  var styleDefLTR = void 0;\n  var styleDefRTL = void 0;\n  var currentThemeLTR = void 0;\n  var currentThemeRTL = void 0;\n  var BaseClass = baseClass(pureComponent);\n\n  function getResolveMethod(direction) {\n    return direction === _constants.DIRECTIONS.LTR ? _ThemedStyleSheet2['default'].resolveLTR : _ThemedStyleSheet2['default'].resolveRTL;\n  }\n\n  function getCurrentTheme(direction) {\n    return direction === _constants.DIRECTIONS.LTR ? currentThemeLTR : currentThemeRTL;\n  }\n\n  function getStyleDef(direction, wrappedComponentName) {\n    var currentTheme = getCurrentTheme(direction);\n    var styleDef = direction === _constants.DIRECTIONS.LTR ? styleDefLTR : styleDefRTL;\n\n    var registeredTheme = _ThemedStyleSheet2['default'].get();\n\n    // Return the existing styles if they've already been defined\n    // and if the theme used to create them corresponds to the theme\n    // registered with ThemedStyleSheet\n    if (styleDef && currentTheme === registeredTheme) {\n      return styleDef;\n    }\n\n    if (false) {}\n\n    var isRTL = direction === _constants.DIRECTIONS.RTL;\n\n    if (isRTL) {\n      styleDefRTL = styleFn ? _ThemedStyleSheet2['default'].createRTL(styleFn) : EMPTY_STYLES_FN;\n\n      currentThemeRTL = registeredTheme;\n      styleDef = styleDefRTL;\n    } else {\n      styleDefLTR = styleFn ? _ThemedStyleSheet2['default'].createLTR(styleFn) : EMPTY_STYLES_FN;\n\n      currentThemeLTR = registeredTheme;\n      styleDef = styleDefLTR;\n    }\n\n    if (false) { var measureName; }\n\n    return styleDef;\n  }\n\n  function getState(direction, wrappedComponentName) {\n    return {\n      resolveMethod: getResolveMethod(direction),\n      styleDef: getStyleDef(direction, wrappedComponentName)\n    };\n  }\n\n  return function () {\n    function withStylesHOC(WrappedComponent) {\n      var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n      // NOTE: Use a class here so components are ref-able if need be:\n      // eslint-disable-next-line react/prefer-stateless-function\n\n      var WithStyles = function (_BaseClass) {\n        _inherits(WithStyles, _BaseClass);\n\n        function WithStyles(props, context) {\n          _classCallCheck(this, WithStyles);\n\n          var _this = _possibleConstructorReturn(this, (WithStyles.__proto__ || Object.getPrototypeOf(WithStyles)).call(this, props, context));\n\n          var direction = _this.context[_constants.CHANNEL] ? _this.context[_constants.CHANNEL].getState() : defaultDirection;\n\n          _this.state = getState(direction, wrappedComponentName);\n          return _this;\n        }\n\n        _createClass(WithStyles, [{\n          key: 'componentDidMount',\n          value: function () {\n            function componentDidMount() {\n              var _this2 = this;\n\n              if (this.context[_constants.CHANNEL]) {\n                // subscribe to future direction changes\n                this.channelUnsubscribe = this.context[_constants.CHANNEL].subscribe(function (direction) {\n                  _this2.setState(getState(direction, wrappedComponentName));\n                });\n              }\n            }\n\n            return componentDidMount;\n          }()\n        }, {\n          key: 'componentWillUnmount',\n          value: function () {\n            function componentWillUnmount() {\n              if (this.channelUnsubscribe) {\n                this.channelUnsubscribe();\n              }\n            }\n\n            return componentWillUnmount;\n          }()\n        }, {\n          key: 'render',\n          value: function () {\n            function render() {\n              var _ref2;\n\n              // As some components will depend on previous styles in\n              // the component tree, we provide the option of flushing the\n              // buffered styles (i.e. to a style tag) **before** the rendering\n              // cycle begins.\n              //\n              // The interfaces provide the optional \"flush\" method which\n              // is run in turn by ThemedStyleSheet.flush.\n              if (flushBefore) {\n                _ThemedStyleSheet2['default'].flush();\n              }\n\n              var _state = this.state,\n                  resolveMethod = _state.resolveMethod,\n                  styleDef = _state.styleDef;\n\n\n              return _react2['default'].createElement(WrappedComponent, _extends({}, this.props, (_ref2 = {}, _defineProperty(_ref2, themePropName, _ThemedStyleSheet2['default'].get()), _defineProperty(_ref2, stylesPropName, styleDef()), _defineProperty(_ref2, cssPropName, resolveMethod), _ref2)));\n            }\n\n            return render;\n          }()\n        }]);\n\n        return WithStyles;\n      }(BaseClass);\n\n      WithStyles.WrappedComponent = WrappedComponent;\n      WithStyles.displayName = 'withStyles(' + String(wrappedComponentName) + ')';\n      WithStyles.contextTypes = contextTypes;\n      if (WrappedComponent.propTypes) {\n        WithStyles.propTypes = (0, _object2['default'])({}, WrappedComponent.propTypes);\n        delete WithStyles.propTypes[stylesPropName];\n        delete WithStyles.propTypes[themePropName];\n        delete WithStyles.propTypes[cssPropName];\n      }\n      if (WrappedComponent.defaultProps) {\n        WithStyles.defaultProps = (0, _object2['default'])({}, WrappedComponent.defaultProps);\n      }\n\n      return (0, _hoistNonReactStatics2['default'])(WithStyles, WrappedComponent);\n    }\n\n    return withStylesHOC;\n  }();\n}\n\n/***/ }),\n/* 102 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SystemContext; });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar SystemContext = Object(react__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({});\n\n\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export unstable_Id */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return unstable_useId; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _IdProvider_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(73);\n/* harmony import */ var _IdState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70);\n\n\n\n\n\n\n\n\nvar unstable_useId = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ \"a\"])({\n  useState: _IdState_js__WEBPACK_IMPORTED_MODULE_5__[/* unstable_useIdState */ \"a\"],\n  keys: [\"id\"],\n  useOptions: function useOptions(options, htmlProps) {\n    var generateId = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useContext\"])(_IdProvider_js__WEBPACK_IMPORTED_MODULE_4__[/* unstable_IdContext */ \"a\"]);\n\n    var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"])(function () {\n      // This comes from useIdState\n      if (options.unstable_idCountRef) {\n        options.unstable_idCountRef.current += 1;\n        return \"-\" + options.unstable_idCountRef.current;\n      } // If there's no useIdState, we check if `baseId` was passed (as a prop,\n      // not from useIdState).\n\n\n      if (options.baseId) {\n        return \"-\" + generateId(\"\");\n      }\n\n      return \"\";\n    }),\n        suffix = _React$useState[0]; // `baseId` will be the prop passed directly as a prop or via useIdState.\n    // If there's neither, then it'll fallback to Context's generateId.\n    // This generateId can result in a sequential ID (if there's a Provider)\n    // or a random string (without Provider).\n\n\n    var baseId = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useMemo\"])(function () {\n      return options.baseId || generateId();\n    }, [options.baseId, generateId]);\n    var id = htmlProps.id || options.id || \"\" + baseId + suffix;\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, options), {}, {\n      id: id\n    });\n  },\n  useProps: function useProps(options, htmlProps) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      id: options.id\n    }, htmlProps);\n  }\n});\nvar unstable_Id = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ \"a\"])({\n  as: \"div\",\n  useHook: unstable_useId\n});\n\n\n\n\n/***/ }),\n/* 104 */,\n/* 105 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(9);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Input types which are classified as button types, for use in considering\n * whether element is a (focus-normalized) button.\n *\n * @type {string[]}\n */\n\nvar INPUT_BUTTON_TYPES = ['button', 'submit'];\n/**\n * Returns true if the given element is a button element subject to focus\n * normalization, or false otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element is a button.\n */\n\nfunction isFocusNormalizedButton(element) {\n  switch (element.nodeName) {\n    case 'A':\n    case 'BUTTON':\n      return true;\n\n    case 'INPUT':\n      return Object(lodash__WEBPACK_IMPORTED_MODULE_8__[\"includes\"])(INPUT_BUTTON_TYPES, element.type);\n  }\n\n  return false;\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_9__[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return /*#__PURE__*/function (_Component) {\n    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(_class, _Component);\n\n    var _super = _createSuper(_class);\n\n    function _class() {\n      var _this;\n\n      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(this, _class);\n\n      _this = _super.apply(this, arguments);\n      _this.bindNode = _this.bindNode.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(_this));\n      _this.cancelBlurCheck = _this.cancelBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(_this));\n      _this.queueBlurCheck = _this.queueBlurCheck.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(_this));\n      _this.normalizeButtonFocus = _this.normalizeButtonFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(_this));\n      return _this;\n    }\n\n    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(_class, [{\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.cancelBlurCheck();\n      }\n    }, {\n      key: \"bindNode\",\n      value: function bindNode(node) {\n        if (node) {\n          this.node = node;\n        } else {\n          delete this.node;\n          this.cancelBlurCheck();\n        }\n      }\n    }, {\n      key: \"queueBlurCheck\",\n      value: function queueBlurCheck(event) {\n        var _this2 = this;\n\n        // React does not allow using an event reference asynchronously\n        // due to recycling behavior, except when explicitly persisted.\n        event.persist(); // Skip blur check if clicking button. See `normalizeButtonFocus`.\n\n        if (this.preventBlurCheck) {\n          return;\n        }\n\n        this.blurCheckTimeout = setTimeout(function () {\n          // If document is not focused then focus should remain\n          // inside the wrapped component and therefore we cancel\n          // this blur event thereby leaving focus in place.\n          // https://developer.mozilla.org/en-US/docs/Web/API/Document/hasFocus.\n          if (!document.hasFocus()) {\n            event.preventDefault();\n            return;\n          }\n\n          if ('function' === typeof _this2.node.handleFocusOutside) {\n            _this2.node.handleFocusOutside(event);\n          }\n        }, 0);\n      }\n    }, {\n      key: \"cancelBlurCheck\",\n      value: function cancelBlurCheck() {\n        clearTimeout(this.blurCheckTimeout);\n      }\n      /**\n       * Handles a mousedown or mouseup event to respectively assign and\n       * unassign a flag for preventing blur check on button elements. Some\n       * browsers, namely Firefox and Safari, do not emit a focus event on\n       * button elements when clicked, while others do. The logic here\n       * intends to normalize this as treating click on buttons as focus.\n       *\n       * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n       *\n       * @param {MouseEvent} event Event for mousedown or mouseup.\n       */\n\n    }, {\n      key: \"normalizeButtonFocus\",\n      value: function normalizeButtonFocus(event) {\n        var type = event.type,\n            target = event.target;\n        var isInteractionEnd = Object(lodash__WEBPACK_IMPORTED_MODULE_8__[\"includes\"])(['mouseup', 'touchend'], type);\n\n        if (isInteractionEnd) {\n          this.preventBlurCheck = false;\n        } else if (isFocusNormalizedButton(target)) {\n          this.preventBlurCheck = true;\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        // Disable reason: See `normalizeButtonFocus` for browser-specific\n        // focus event normalization.\n\n        /* eslint-disable jsx-a11y/no-static-element-interactions */\n        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(\"div\", {\n          onFocus: this.cancelBlurCheck,\n          onMouseDown: this.normalizeButtonFocus,\n          onMouseUp: this.normalizeButtonFocus,\n          onTouchStart: this.normalizeButtonFocus,\n          onTouchEnd: this.normalizeButtonFocus,\n          onBlur: this.queueBlurCheck\n        }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(WrappedComponent, Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n          ref: this.bindNode\n        }, this.props)));\n        /* eslint-enable jsx-a11y/no-static-element-interactions */\n      }\n    }]);\n\n    return _class;\n  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"Component\"]);\n}, 'withFocusOutside'));\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export Clickable */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useClickable; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84);\n/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94);\n/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(54);\n/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59);\n/* harmony import */ var _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(87);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isNativeClick(event) {\n  var element = event.currentTarget;\n  if (!event.isTrusted) return false; // istanbul ignore next: can't test trusted events yet\n\n  return Object(reakit_utils_isButton__WEBPACK_IMPORTED_MODULE_4__[/* isButton */ \"a\"])(element) || element.tagName === \"INPUT\" || element.tagName === \"TEXTAREA\" || element.tagName === \"A\" || element.tagName === \"SELECT\";\n}\n\nvar useClickable = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ \"a\"])({\n  name: \"Clickable\",\n  compose: _Tabbable_Tabbable_js__WEBPACK_IMPORTED_MODULE_8__[/* useTabbable */ \"a\"],\n  keys: [\"unstable_clickOnEnter\", \"unstable_clickOnSpace\"],\n  useOptions: function useOptions(_ref) {\n    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,\n        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? true : _ref$unstable_clickOn,\n        _ref$unstable_clickOn2 = _ref.unstable_clickOnSpace,\n        unstable_clickOnSpace = _ref$unstable_clickOn2 === void 0 ? true : _ref$unstable_clickOn2,\n        options = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_ref, [\"unstable_clickOnEnter\", \"unstable_clickOnSpace\"]);\n\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      unstable_clickOnEnter: unstable_clickOnEnter,\n      unstable_clickOnSpace: unstable_clickOnSpace\n    }, options);\n  },\n  useProps: function useProps(options, _ref2) {\n    var htmlOnKeyDown = _ref2.onKeyDown,\n        htmlOnKeyUp = _ref2.onKeyUp,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_ref2, [\"onKeyDown\", \"onKeyUp\"]);\n\n    var _React$useState = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useState\"])(false),\n        active = _React$useState[0],\n        setActive = _React$useState[1];\n\n    var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnKeyDown);\n    var onKeyUpRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnKeyUp);\n    var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onKeyDownRef$current;\n\n      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n      if (event.defaultPrevented) return;\n      if (options.disabled) return;\n      if (event.metaKey) return;\n      if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ \"a\"])(event)) return;\n      var isEnter = options.unstable_clickOnEnter && event.key === \"Enter\";\n      var isSpace = options.unstable_clickOnSpace && event.key === \" \";\n\n      if (isEnter || isSpace) {\n        if (isNativeClick(event)) return;\n        event.preventDefault();\n\n        if (isEnter) {\n          event.currentTarget.click();\n        } else if (isSpace) {\n          setActive(true);\n        }\n      }\n    }, [options.disabled, options.unstable_clickOnEnter, options.unstable_clickOnSpace]);\n    var onKeyUp = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onKeyUpRef$current;\n\n      (_onKeyUpRef$current = onKeyUpRef.current) === null || _onKeyUpRef$current === void 0 ? void 0 : _onKeyUpRef$current.call(onKeyUpRef, event);\n      if (event.defaultPrevented) return;\n      if (options.disabled) return;\n      if (event.metaKey) return;\n      var isSpace = options.unstable_clickOnSpace && event.key === \" \";\n\n      if (active && isSpace) {\n        setActive(false);\n        event.currentTarget.click();\n      }\n    }, [options.disabled, options.unstable_clickOnSpace, active]);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      \"data-active\": active || undefined,\n      onKeyDown: onKeyDown,\n      onKeyUp: onKeyUp\n    }, htmlProps);\n  }\n});\nvar Clickable = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ \"a\"])({\n  as: \"button\",\n  memo: true,\n  useHook: useClickable\n});\n\n\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dom\"]}\nvar external_this_wp_dom_ = __webpack_require__(31);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/utils.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Module constants\n */\n\nvar HEIGHT_OFFSET = 10; // used by the arrow and a bit of empty space\n\n/**\n * Utility used to compute the popover position over the xAxis\n *\n * @param {Object}  anchorRect      Anchor Rect.\n * @param {Object}  contentSize     Content Size.\n * @param {string}  xAxis           Desired xAxis.\n * @param {string}  corner          Desired corner.\n * @param {boolean} sticky          Whether or not to stick the popover to the\n *                                  scroll container edge when part of the anchor\n *                                  leaves view.\n * @param {string}  chosenYAxis     yAxis to be used.\n * @param {Element} boundaryElement Boundary element.\n *\n * @return {Object} Popover xAxis position and constraints.\n */\n\nfunction computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, chosenYAxis, boundaryElement) {\n  var width = contentSize.width;\n  var isRTL = document.documentElement.dir === 'rtl'; // Correct xAxis for RTL support\n\n  if (xAxis === 'left' && isRTL) {\n    xAxis = 'right';\n  } else if (xAxis === 'right' && isRTL) {\n    xAxis = 'left';\n  }\n\n  if (corner === 'left' && isRTL) {\n    corner = 'right';\n  } else if (corner === 'right' && isRTL) {\n    corner = 'left';\n  } // x axis alignment choices\n\n\n  var anchorMidPoint = Math.round(anchorRect.left + anchorRect.width / 2);\n  var centerAlignment = {\n    popoverLeft: anchorMidPoint,\n    contentWidth: (anchorMidPoint - width / 2 > 0 ? width / 2 : anchorMidPoint) + (anchorMidPoint + width / 2 > window.innerWidth ? window.innerWidth - anchorMidPoint : width / 2)\n  };\n  var leftAlignmentX = anchorRect.left;\n\n  if (corner === 'right') {\n    leftAlignmentX = anchorRect.right;\n  } else if (chosenYAxis !== 'middle') {\n    leftAlignmentX = anchorMidPoint;\n  }\n\n  var rightAlignmentX = anchorRect.right;\n\n  if (corner === 'left') {\n    rightAlignmentX = anchorRect.left;\n  } else if (chosenYAxis !== 'middle') {\n    rightAlignmentX = anchorMidPoint;\n  }\n\n  var leftAlignment = {\n    popoverLeft: leftAlignmentX,\n    contentWidth: leftAlignmentX - width > 0 ? width : leftAlignmentX\n  };\n  var rightAlignment = {\n    popoverLeft: rightAlignmentX,\n    contentWidth: rightAlignmentX + width > window.innerWidth ? window.innerWidth - rightAlignmentX : width\n  }; // Choosing the x axis\n\n  var chosenXAxis = xAxis;\n  var contentWidth = null;\n\n  if (!sticky) {\n    if (xAxis === 'center' && centerAlignment.contentWidth === width) {\n      chosenXAxis = 'center';\n    } else if (xAxis === 'left' && leftAlignment.contentWidth === width) {\n      chosenXAxis = 'left';\n    } else if (xAxis === 'right' && rightAlignment.contentWidth === width) {\n      chosenXAxis = 'right';\n    } else {\n      chosenXAxis = leftAlignment.contentWidth > rightAlignment.contentWidth ? 'left' : 'right';\n      var chosenWidth = chosenXAxis === 'left' ? leftAlignment.contentWidth : rightAlignment.contentWidth;\n      contentWidth = chosenWidth !== width ? chosenWidth : null;\n    }\n  }\n\n  var popoverLeft;\n\n  if (chosenXAxis === 'center') {\n    popoverLeft = centerAlignment.popoverLeft;\n  } else if (chosenXAxis === 'left') {\n    popoverLeft = leftAlignment.popoverLeft;\n  } else {\n    popoverLeft = rightAlignment.popoverLeft;\n  }\n\n  if (boundaryElement) {\n    var boundaryRect = boundaryElement.getBoundingClientRect();\n    popoverLeft = Math.min(popoverLeft, boundaryRect.right - width);\n  }\n\n  return {\n    xAxis: chosenXAxis,\n    popoverLeft: popoverLeft,\n    contentWidth: contentWidth\n  };\n}\n/**\n * Utility used to compute the popover position over the yAxis\n *\n * @param {Object}  anchorRect        Anchor Rect.\n * @param {Object}  contentSize       Content Size.\n * @param {string}  yAxis             Desired yAxis.\n * @param {string}  corner            Desired corner.\n * @param {boolean} sticky            Whether or not to stick the popover to the\n *                                    scroll container edge when part of the\n *                                    anchor leaves view.\n * @param {Element} anchorRef         The anchor element.\n * @param {Element} relativeOffsetTop If applicable, top offset of the relative\n *                                    positioned parent container.\n *\n * @return {Object} Popover xAxis position and constraints.\n */\n\nfunction computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop) {\n  var height = contentSize.height;\n\n  if (sticky) {\n    var scrollContainerEl = Object(external_this_wp_dom_[\"getScrollContainer\"])(anchorRef) || document.body;\n    var scrollRect = scrollContainerEl.getBoundingClientRect();\n    var stickyPosition = scrollRect.top + height - relativeOffsetTop;\n\n    if (anchorRect.top <= stickyPosition) {\n      return {\n        yAxis: yAxis,\n        popoverTop: Math.min(anchorRect.bottom, stickyPosition)\n      };\n    }\n  } // y axis alignment choices\n\n\n  var anchorMidPoint = anchorRect.top + anchorRect.height / 2;\n\n  if (corner === 'bottom') {\n    anchorMidPoint = anchorRect.bottom;\n  } else if (corner === 'top') {\n    anchorMidPoint = anchorRect.top;\n  }\n\n  var middleAlignment = {\n    popoverTop: anchorMidPoint,\n    contentHeight: (anchorMidPoint - height / 2 > 0 ? height / 2 : anchorMidPoint) + (anchorMidPoint + height / 2 > window.innerHeight ? window.innerHeight - anchorMidPoint : height / 2)\n  };\n  var topAlignment = {\n    popoverTop: anchorRect.top,\n    contentHeight: anchorRect.top - HEIGHT_OFFSET - height > 0 ? height : anchorRect.top - HEIGHT_OFFSET\n  };\n  var bottomAlignment = {\n    popoverTop: anchorRect.bottom,\n    contentHeight: anchorRect.bottom + HEIGHT_OFFSET + height > window.innerHeight ? window.innerHeight - HEIGHT_OFFSET - anchorRect.bottom : height\n  }; // Choosing the y axis\n\n  var chosenYAxis = yAxis;\n  var contentHeight = null;\n\n  if (!sticky) {\n    if (yAxis === 'middle' && middleAlignment.contentHeight === height) {\n      chosenYAxis = 'middle';\n    } else if (yAxis === 'top' && topAlignment.contentHeight === height) {\n      chosenYAxis = 'top';\n    } else if (yAxis === 'bottom' && bottomAlignment.contentHeight === height) {\n      chosenYAxis = 'bottom';\n    } else {\n      chosenYAxis = topAlignment.contentHeight > bottomAlignment.contentHeight ? 'top' : 'bottom';\n      var chosenHeight = chosenYAxis === 'top' ? topAlignment.contentHeight : bottomAlignment.contentHeight;\n      contentHeight = chosenHeight !== height ? chosenHeight : null;\n    }\n  }\n\n  var popoverTop;\n\n  if (chosenYAxis === 'middle') {\n    popoverTop = middleAlignment.popoverTop;\n  } else if (chosenYAxis === 'top') {\n    popoverTop = topAlignment.popoverTop;\n  } else {\n    popoverTop = bottomAlignment.popoverTop;\n  }\n\n  return {\n    yAxis: chosenYAxis,\n    popoverTop: popoverTop,\n    contentHeight: contentHeight\n  };\n}\n/**\n * Utility used to compute the popover position and the content max width/height\n * for a popover given its anchor rect and its content size.\n *\n * @param {Object}  anchorRect        Anchor Rect.\n * @param {Object}  contentSize       Content Size.\n * @param {string}  position          Position.\n * @param {boolean} sticky            Whether or not to stick the popover to the\n *                                    scroll container edge when part of the\n *                                    anchor leaves view.\n * @param {Element} anchorRef         The anchor element.\n * @param {number}  relativeOffsetTop If applicable, top offset of the relative\n *                                    positioned parent container.\n * @param {Element} boundaryElement   Boundary element.\n *\n * @return {Object} Popover position and constraints.\n */\n\nfunction computePopoverPosition(anchorRect, contentSize) {\n  var position = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'top';\n  var sticky = arguments.length > 3 ? arguments[3] : undefined;\n  var anchorRef = arguments.length > 4 ? arguments[4] : undefined;\n  var relativeOffsetTop = arguments.length > 5 ? arguments[5] : undefined;\n  var boundaryElement = arguments.length > 6 ? arguments[6] : undefined;\n\n  var _position$split = position.split(' '),\n      _position$split2 = Object(slicedToArray[\"a\" /* default */])(_position$split, 3),\n      yAxis = _position$split2[0],\n      _position$split2$ = _position$split2[1],\n      xAxis = _position$split2$ === void 0 ? 'center' : _position$split2$,\n      corner = _position$split2[2];\n\n  var yAxisPosition = computePopoverYAxisPosition(anchorRect, contentSize, yAxis, corner, sticky, anchorRef, relativeOffsetTop);\n  var xAxisPosition = computePopoverXAxisPosition(anchorRect, contentSize, xAxis, corner, sticky, yAxisPosition.yAxis, boundaryElement);\n  return _objectSpread({}, xAxisPosition, {}, yAxisPosition);\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js\nvar with_focus_return = __webpack_require__(124);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js\nvar with_constrained_tabbing = __webpack_require__(123);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js\nvar with_focus_outside = __webpack_require__(105);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/detect-outside.js\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar detect_outside_PopoverDetectOutside = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PopoverDetectOutside, _Component);\n\n  var _super = _createSuper(PopoverDetectOutside);\n\n  function PopoverDetectOutside() {\n    Object(classCallCheck[\"a\" /* default */])(this, PopoverDetectOutside);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(createClass[\"a\" /* default */])(PopoverDetectOutside, [{\n    key: \"handleFocusOutside\",\n    value: function handleFocusOutside(event) {\n      this.props.onFocusOutside(event);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n\n  return PopoverDetectOutside;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var detect_outside = (Object(with_focus_outside[\"a\" /* default */])(detect_outside_PopoverDetectOutside));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js\nvar build_module_button = __webpack_require__(34);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js\nvar scroll_lock = __webpack_require__(155);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js\nvar isolated_event_container = __webpack_require__(125);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js\nvar use_slot = __webpack_require__(153);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 6 modules\nvar slot_fill = __webpack_require__(116);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js\nvar build_module_animate = __webpack_require__(154);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\nvar FocusManaged = Object(with_constrained_tabbing[\"a\" /* default */])(Object(with_focus_return[\"a\" /* default */])(function (_ref) {\n  var children = _ref.children;\n  return children;\n}));\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\n\nvar SLOT_NAME = 'Popover';\n\nfunction computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {\n  var anchorRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var shouldAnchorIncludePadding = arguments.length > 4 ? arguments[4] : undefined;\n\n  if (anchorRect) {\n    return anchorRect;\n  }\n\n  if (getAnchorRect) {\n    if (!anchorRefFallback.current) {\n      return;\n    }\n\n    return getAnchorRect(anchorRefFallback.current);\n  }\n\n  if (anchorRef !== false) {\n    if (!anchorRef || !window.Range || !window.Element || !window.DOMRect) {\n      return;\n    }\n\n    if (anchorRef instanceof window.Range) {\n      return Object(external_this_wp_dom_[\"getRectangleFromRange\"])(anchorRef);\n    }\n\n    if (anchorRef instanceof window.Element) {\n      var _rect2 = anchorRef.getBoundingClientRect();\n\n      if (shouldAnchorIncludePadding) {\n        return _rect2;\n      }\n\n      return withoutPadding(_rect2, anchorRef);\n    }\n\n    var top = anchorRef.top,\n        bottom = anchorRef.bottom;\n    var topRect = top.getBoundingClientRect();\n    var bottomRect = bottom.getBoundingClientRect();\n\n    var _rect = new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top);\n\n    if (shouldAnchorIncludePadding) {\n      return _rect;\n    }\n\n    return withoutPadding(_rect, anchorRef);\n  }\n\n  if (!anchorRefFallback.current) {\n    return;\n  }\n\n  var parentNode = anchorRefFallback.current.parentNode;\n  var rect = parentNode.getBoundingClientRect();\n\n  if (shouldAnchorIncludePadding) {\n    return rect;\n  }\n\n  return withoutPadding(rect, parentNode);\n}\n\nfunction withoutPadding(rect, element) {\n  var _window$getComputedSt = window.getComputedStyle(element),\n      paddingTop = _window$getComputedSt.paddingTop,\n      paddingBottom = _window$getComputedSt.paddingBottom,\n      paddingLeft = _window$getComputedSt.paddingLeft,\n      paddingRight = _window$getComputedSt.paddingRight;\n\n  var top = paddingTop ? parseInt(paddingTop, 10) : 0;\n  var bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0;\n  var left = paddingLeft ? parseInt(paddingLeft, 10) : 0;\n  var right = paddingRight ? parseInt(paddingRight, 10) : 0;\n  return {\n    x: rect.left + left,\n    y: rect.top + top,\n    width: rect.width - left - right,\n    height: rect.height - top - bottom,\n    left: rect.left + left,\n    right: rect.right - right,\n    top: rect.top + top,\n    bottom: rect.bottom - bottom\n  };\n}\n/**\n * Hook used to focus the first tabbable element on mount.\n *\n * @param {boolean|string} focusOnMount Focus on mount mode.\n * @param {Object}         contentRef   Reference to the popover content element.\n */\n\n\nfunction useFocusContentOnMount(focusOnMount, contentRef) {\n  // Focus handling\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    /*\n     * Without the setTimeout, the dom node is not being focused. Related:\n     * https://stackoverflow.com/questions/35522220/react-ref-with-focus-doesnt-work-without-settimeout-my-example\n     *\n     * TODO: Treat the cause, not the symptom.\n     */\n    var focusTimeout = setTimeout(function () {\n      if (!focusOnMount || !contentRef.current) {\n        return;\n      }\n\n      if (focusOnMount === 'firstElement') {\n        // Find first tabbable node within content and shift focus, falling\n        // back to the popover panel itself.\n        var firstTabbable = external_this_wp_dom_[\"focus\"].tabbable.find(contentRef.current)[0];\n\n        if (firstTabbable) {\n          firstTabbable.focus();\n        } else {\n          contentRef.current.focus();\n        }\n\n        return;\n      }\n\n      if (focusOnMount === 'container') {\n        // Focus the popover panel itself so items in the popover are easily\n        // accessed via keyboard navigation.\n        contentRef.current.focus();\n      }\n    }, 0);\n    return function () {\n      return clearTimeout(focusTimeout);\n    };\n  }, []);\n}\n/**\n * Sets or removes an element attribute.\n *\n * @param {Element} element The element to modify.\n * @param {string}  name    The attribute name to set or remove.\n * @param {?string} value   The value to set. A falsy value will remove the\n *                          attribute.\n */\n\n\nfunction setAttribute(element, name, value) {\n  if (!value) {\n    if (element.hasAttribute(name)) {\n      element.removeAttribute(name);\n    }\n  } else if (element.getAttribute(name) !== value) {\n    element.setAttribute(name, value);\n  }\n}\n/**\n * Sets or removes an element style property.\n *\n * @param {Element} element  The element to modify.\n * @param {string}  property The property to set or remove.\n * @param {?string} value    The value to set. A falsy value will remove the\n *                           property.\n */\n\n\nfunction setStyle(element, property) {\n  var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n  if (element.style[property] !== value) {\n    element.style[property] = value;\n  }\n}\n/**\n * Sets or removes an element class.\n *\n * @param {Element} element The element to modify.\n * @param {string}  name    The class to set or remove.\n * @param {boolean} toggle  True to set the class, false to remove.\n */\n\n\nfunction setClass(element, name, toggle) {\n  if (toggle) {\n    if (!element.classList.contains(name)) {\n      element.classList.add(name);\n    }\n  } else if (element.classList.contains(name)) {\n    element.classList.remove(name);\n  }\n}\n\nvar popover_Popover = function Popover(_ref2) {\n  var headerTitle = _ref2.headerTitle,\n      onClose = _ref2.onClose,\n      onKeyDown = _ref2.onKeyDown,\n      children = _ref2.children,\n      className = _ref2.className,\n      _ref2$noArrow = _ref2.noArrow,\n      noArrow = _ref2$noArrow === void 0 ? true : _ref2$noArrow,\n      isAlternate = _ref2.isAlternate,\n      _ref2$position = _ref2.position,\n      position = _ref2$position === void 0 ? 'bottom right' : _ref2$position,\n      range = _ref2.range,\n      _ref2$focusOnMount = _ref2.focusOnMount,\n      focusOnMount = _ref2$focusOnMount === void 0 ? 'firstElement' : _ref2$focusOnMount,\n      anchorRef = _ref2.anchorRef,\n      shouldAnchorIncludePadding = _ref2.shouldAnchorIncludePadding,\n      anchorRect = _ref2.anchorRect,\n      getAnchorRect = _ref2.getAnchorRect,\n      expandOnMobile = _ref2.expandOnMobile,\n      _ref2$animate = _ref2.animate,\n      animate = _ref2$animate === void 0 ? true : _ref2$animate,\n      onClickOutside = _ref2.onClickOutside,\n      onFocusOutside = _ref2.onFocusOutside,\n      __unstableSticky = _ref2.__unstableSticky,\n      _ref2$__unstableSlotN = _ref2.__unstableSlotName,\n      __unstableSlotName = _ref2$__unstableSlotN === void 0 ? SLOT_NAME : _ref2$__unstableSlotN,\n      __unstableObserveElement = _ref2.__unstableObserveElement,\n      __unstableBoundaryParent = _ref2.__unstableBoundaryParent,\n      contentProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"headerTitle\", \"onClose\", \"onKeyDown\", \"children\", \"className\", \"noArrow\", \"isAlternate\", \"position\", \"range\", \"focusOnMount\", \"anchorRef\", \"shouldAnchorIncludePadding\", \"anchorRect\", \"getAnchorRect\", \"expandOnMobile\", \"animate\", \"onClickOutside\", \"onFocusOutside\", \"__unstableSticky\", \"__unstableSlotName\", \"__unstableObserveElement\", \"__unstableBoundaryParent\"]);\n\n  var anchorRefFallback = Object(external_this_wp_element_[\"useRef\"])(null);\n  var contentRef = Object(external_this_wp_element_[\"useRef\"])(null);\n  var containerRef = Object(external_this_wp_element_[\"useRef\"])();\n  var isMobileViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium', '<');\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      animateOrigin = _useState2[0],\n      setAnimateOrigin = _useState2[1];\n\n  var slot = Object(use_slot[\"a\" /* default */])(__unstableSlotName);\n  var isExpanded = expandOnMobile && isMobileViewport;\n\n  var _useResizeObserver = Object(external_this_wp_compose_[\"useResizeObserver\"])(),\n      _useResizeObserver2 = Object(slicedToArray[\"a\" /* default */])(_useResizeObserver, 2),\n      containerResizeListener = _useResizeObserver2[0],\n      contentSize = _useResizeObserver2[1];\n\n  noArrow = isExpanded || noArrow;\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (isExpanded) {\n      setClass(containerRef.current, 'is-without-arrow', noArrow);\n      setClass(containerRef.current, 'is-alternate', isAlternate);\n      setAttribute(containerRef.current, 'data-x-axis');\n      setAttribute(containerRef.current, 'data-y-axis');\n      setStyle(containerRef.current, 'top');\n      setStyle(containerRef.current, 'left');\n      setStyle(contentRef.current, 'maxHeight');\n      setStyle(contentRef.current, 'maxWidth');\n      return;\n    }\n\n    var refresh = function refresh() {\n      if (!containerRef.current || !contentRef.current) {\n        return;\n      }\n\n      var anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding);\n\n      if (!anchor) {\n        return;\n      }\n\n      var _containerRef$current = containerRef.current,\n          offsetParent = _containerRef$current.offsetParent,\n          ownerDocument = _containerRef$current.ownerDocument;\n      var relativeOffsetTop = 0; // If there is a positioned ancestor element that is not the body,\n      // subtract the position from the anchor rect. If the position of\n      // the popover is fixed, the offset parent is null or the body\n      // element, in which case the position is relative to the viewport.\n      // See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n\n      if (offsetParent && offsetParent !== ownerDocument.body) {\n        var offsetParentRect = offsetParent.getBoundingClientRect();\n        relativeOffsetTop = offsetParentRect.top;\n        anchor = new window.DOMRect(anchor.left - offsetParentRect.left, anchor.top - offsetParentRect.top, anchor.width, anchor.height);\n      }\n\n      var boundaryElement;\n\n      if (__unstableBoundaryParent) {\n        var _containerRef$current2;\n\n        boundaryElement = (_containerRef$current2 = containerRef.current.closest('.popover-slot')) === null || _containerRef$current2 === void 0 ? void 0 : _containerRef$current2.parentNode;\n      }\n\n      var usedContentSize = !contentSize.height ? contentRef.current.getBoundingClientRect() : contentSize;\n\n      var _computePopoverPositi = computePopoverPosition(anchor, usedContentSize, position, __unstableSticky, containerRef.current, relativeOffsetTop, boundaryElement),\n          popoverTop = _computePopoverPositi.popoverTop,\n          popoverLeft = _computePopoverPositi.popoverLeft,\n          xAxis = _computePopoverPositi.xAxis,\n          yAxis = _computePopoverPositi.yAxis,\n          contentHeight = _computePopoverPositi.contentHeight,\n          contentWidth = _computePopoverPositi.contentWidth;\n\n      if (typeof popoverTop === 'number' && typeof popoverLeft === 'number') {\n        setStyle(containerRef.current, 'top', popoverTop + 'px');\n        setStyle(containerRef.current, 'left', popoverLeft + 'px');\n      }\n\n      setClass(containerRef.current, 'is-without-arrow', noArrow || xAxis === 'center' && yAxis === 'middle');\n      setClass(containerRef.current, 'is-alternate', isAlternate);\n      setAttribute(containerRef.current, 'data-x-axis', xAxis);\n      setAttribute(containerRef.current, 'data-y-axis', yAxis);\n      setStyle(contentRef.current, 'maxHeight', typeof contentHeight === 'number' ? contentHeight + 'px' : '');\n      setStyle(contentRef.current, 'maxWidth', typeof contentWidth === 'number' ? contentWidth + 'px' : ''); // Compute the animation position\n\n      var yAxisMapping = {\n        top: 'bottom',\n        bottom: 'top'\n      };\n      var xAxisMapping = {\n        left: 'right',\n        right: 'left'\n      };\n      var animateYAxis = yAxisMapping[yAxis] || 'middle';\n      var animateXAxis = xAxisMapping[xAxis] || 'center';\n      setAnimateOrigin(animateXAxis + ' ' + animateYAxis);\n    };\n\n    refresh();\n    /*\n     * There are sometimes we need to reposition or resize the popover that\n     * are not handled by the resize/scroll window events (i.e. CSS changes\n     * in the layout that changes the position of the anchor).\n     *\n     * For these situations, we refresh the popover every 0.5s\n     */\n\n    var intervalHandle = window.setInterval(refresh, 500);\n    var rafId;\n\n    var refreshOnAnimationFrame = function refreshOnAnimationFrame() {\n      window.cancelAnimationFrame(rafId);\n      rafId = window.requestAnimationFrame(refresh);\n    }; // Sometimes a click trigger a layout change that affects the popover\n    // position. This is an opportunity to immediately refresh rather than\n    // at the interval.\n\n\n    window.addEventListener('click', refreshOnAnimationFrame);\n    window.addEventListener('resize', refresh);\n    window.addEventListener('scroll', refresh, true);\n    var observer;\n\n    if (__unstableObserveElement) {\n      observer = new window.MutationObserver(refresh);\n      observer.observe(__unstableObserveElement, {\n        attributes: true\n      });\n    }\n\n    return function () {\n      window.clearInterval(intervalHandle);\n      window.removeEventListener('resize', refresh);\n      window.removeEventListener('scroll', refresh, true);\n      window.removeEventListener('click', refreshOnAnimationFrame);\n      window.cancelAnimationFrame(rafId);\n\n      if (observer) {\n        observer.disconnect();\n      }\n    };\n  }, [isExpanded, anchorRect, getAnchorRect, anchorRef, shouldAnchorIncludePadding, position, contentSize, __unstableSticky, __unstableObserveElement, __unstableBoundaryParent]);\n  useFocusContentOnMount(focusOnMount, contentRef); // Event handlers\n\n  var maybeClose = function maybeClose(event) {\n    // Close on escape\n    if (event.keyCode === external_this_wp_keycodes_[\"ESCAPE\"] && onClose) {\n      event.stopPropagation();\n      onClose();\n    } // Preserve original content prop behavior\n\n\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n  };\n  /**\n   * Shims an onFocusOutside callback to be compatible with a deprecated\n   * onClickOutside prop function, if provided.\n   *\n   * @param {FocusEvent} event Focus event from onFocusOutside.\n   */\n\n\n  function handleOnFocusOutside(event) {\n    // Defer to given `onFocusOutside` if specified. Call `onClose` only if\n    // both `onFocusOutside` and `onClickOutside` are unspecified. Doing so\n    // assures backwards-compatibility for prior `onClickOutside` default.\n    if (onFocusOutside) {\n      onFocusOutside(event);\n      return;\n    } else if (!onClickOutside) {\n      if (onClose) {\n        onClose();\n      }\n\n      return;\n    } // Simulate MouseEvent using FocusEvent#relatedTarget as emulated click\n    // target. MouseEvent constructor is unsupported in Internet Explorer.\n\n\n    var clickEvent;\n\n    try {\n      clickEvent = new window.MouseEvent('click');\n    } catch (error) {\n      clickEvent = document.createEvent('MouseEvent');\n      clickEvent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n    }\n\n    Object.defineProperty(clickEvent, 'target', {\n      get: function get() {\n        return event.relatedTarget;\n      }\n    });\n    external_this_wp_deprecated_default()('Popover onClickOutside prop', {\n      alternative: 'onFocusOutside'\n    });\n    onClickOutside(clickEvent);\n  } // Disable reason: We care to capture the _bubbled_ events from inputs\n  // within popover as inferring close intent.\n\n\n  var content = Object(external_this_wp_element_[\"createElement\"])(detect_outside, {\n    onFocusOutside: handleOnFocusOutside\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_animate[\"a\" /* default */], {\n    type: animate && animateOrigin ? 'appear' : null,\n    options: {\n      origin: animateOrigin\n    }\n  }, function (_ref3) {\n    var animateClassName = _ref3.className;\n    return Object(external_this_wp_element_[\"createElement\"])(isolated_event_container[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n      className: classnames_default()('components-popover', className, animateClassName, {\n        'is-expanded': isExpanded,\n        'is-without-arrow': noArrow,\n        'is-alternate': isAlternate\n      })\n    }, contentProps, {\n      onKeyDown: maybeClose,\n      ref: containerRef\n    }), isExpanded && Object(external_this_wp_element_[\"createElement\"])(scroll_lock[\"a\" /* default */], null), isExpanded && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"components-popover__header\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"components-popover__header-title\"\n    }, headerTitle), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n      className: \"components-popover__close\",\n      icon: library_close[\"a\" /* default */],\n      onClick: onClose\n    })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      ref: contentRef,\n      className: \"components-popover__content\",\n      tabIndex: \"-1\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      style: {\n        position: 'relative'\n      }\n    }, containerResizeListener, children)));\n  })); // Apply focus to element as long as focusOnMount is truthy; false is\n  // the only \"disabled\" value.\n\n  if (focusOnMount) {\n    content = Object(external_this_wp_element_[\"createElement\"])(FocusManaged, null, content);\n  }\n\n  if (slot.ref) {\n    content = Object(external_this_wp_element_[\"createElement\"])(slot_fill[\"a\" /* Fill */], {\n      name: __unstableSlotName\n    }, content);\n  }\n\n  if (anchorRef || anchorRect) {\n    return content;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    ref: anchorRefFallback\n  }, content);\n};\n\nvar PopoverContainer = popover_Popover;\n\nPopoverContainer.Slot = function (_ref4) {\n  var _ref4$name = _ref4.name,\n      name = _ref4$name === void 0 ? SLOT_NAME : _ref4$name;\n  return Object(external_this_wp_element_[\"createElement\"])(slot_fill[\"b\" /* Slot */], {\n    bubblesVirtually: true,\n    name: name,\n    className: \"popover-slot\"\n  });\n};\n\n/* harmony default export */ var popover = __webpack_exports__[\"a\"] = (PopoverContainer);\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar _extends = _interopDefault(__webpack_require__(164));\nvar _objectWithoutPropertiesLoose = _interopDefault(__webpack_require__(165));\nvar React = __webpack_require__(16);\nvar React__default = _interopDefault(React);\nvar _inheritsLoose = _interopDefault(__webpack_require__(139));\nvar _assertThisInitialized = _interopDefault(__webpack_require__(166));\n\nvar is = {\n  arr: Array.isArray,\n  obj: function obj(a) {\n    return Object.prototype.toString.call(a) === '[object Object]';\n  },\n  fun: function fun(a) {\n    return typeof a === 'function';\n  },\n  str: function str(a) {\n    return typeof a === 'string';\n  },\n  num: function num(a) {\n    return typeof a === 'number';\n  },\n  und: function und(a) {\n    return a === void 0;\n  },\n  nul: function nul(a) {\n    return a === null;\n  },\n  set: function set(a) {\n    return a instanceof Set;\n  },\n  map: function map(a) {\n    return a instanceof Map;\n  },\n  equ: function equ(a, b) {\n    if (typeof a !== typeof b) return false;\n    if (is.str(a) || is.num(a)) return a === b;\n    if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;\n    var i;\n\n    for (i in a) {\n      if (!(i in b)) return false;\n    }\n\n    for (i in b) {\n      if (a[i] !== b[i]) return false;\n    }\n\n    return is.und(i) ? a === b : true;\n  }\n};\nfunction merge(target, lowercase) {\n  if (lowercase === void 0) {\n    lowercase = true;\n  }\n\n  return function (object) {\n    return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) {\n      var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;\n      acc[key] = target(key);\n      return acc;\n    }, target);\n  };\n}\nfunction useForceUpdate() {\n  var _useState = React.useState(false),\n      f = _useState[1];\n\n  var forceUpdate = React.useCallback(function () {\n    return f(function (v) {\n      return !v;\n    });\n  }, []);\n  return forceUpdate;\n}\nfunction withDefault(value, defaultValue) {\n  return is.und(value) || is.nul(value) ? defaultValue : value;\n}\nfunction toArray(a) {\n  return !is.und(a) ? is.arr(a) ? a : [a] : [];\n}\nfunction callProp(obj) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return is.fun(obj) ? obj.apply(void 0, args) : obj;\n}\n\nfunction getForwardProps(props) {\n  var to = props.to,\n      from = props.from,\n      config = props.config,\n      onStart = props.onStart,\n      onRest = props.onRest,\n      onFrame = props.onFrame,\n      children = props.children,\n      reset = props.reset,\n      reverse = props.reverse,\n      force = props.force,\n      immediate = props.immediate,\n      delay = props.delay,\n      attach = props.attach,\n      destroyed = props.destroyed,\n      interpolateTo = props.interpolateTo,\n      ref = props.ref,\n      lazy = props.lazy,\n      forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"ref\", \"lazy\"]);\n\n  return forward;\n}\n\nfunction interpolateTo(props) {\n  var forward = getForwardProps(props);\n  if (is.und(forward)) return _extends({\n    to: forward\n  }, props);\n  var rest = Object.keys(props).reduce(function (a, k) {\n    var _extends2;\n\n    return !is.und(forward[k]) ? a : _extends({}, a, (_extends2 = {}, _extends2[k] = props[k], _extends2));\n  }, {});\n  return _extends({\n    to: forward\n  }, rest);\n}\nfunction handleRef(ref, forward) {\n  if (forward) {\n    // If it's a function, assume it's a ref callback\n    if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {\n      forward.current = ref;\n    }\n  }\n\n  return ref;\n}\n\nvar Animated =\n/*#__PURE__*/\nfunction () {\n  function Animated() {\n    this.payload = void 0;\n    this.children = [];\n  }\n\n  var _proto = Animated.prototype;\n\n  _proto.getAnimatedValue = function getAnimatedValue() {\n    return this.getValue();\n  };\n\n  _proto.getPayload = function getPayload() {\n    return this.payload || this;\n  };\n\n  _proto.attach = function attach() {};\n\n  _proto.detach = function detach() {};\n\n  _proto.getChildren = function getChildren() {\n    return this.children;\n  };\n\n  _proto.addChild = function addChild(child) {\n    if (this.children.length === 0) this.attach();\n    this.children.push(child);\n  };\n\n  _proto.removeChild = function removeChild(child) {\n    var index = this.children.indexOf(child);\n    this.children.splice(index, 1);\n    if (this.children.length === 0) this.detach();\n  };\n\n  return Animated;\n}();\nvar AnimatedArray =\n/*#__PURE__*/\nfunction (_Animated) {\n  _inheritsLoose(AnimatedArray, _Animated);\n\n  function AnimatedArray() {\n    var _this;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _Animated.call.apply(_Animated, [this].concat(args)) || this;\n    _this.payload = [];\n\n    _this.attach = function () {\n      return _this.payload.forEach(function (p) {\n        return p instanceof Animated && p.addChild(_assertThisInitialized(_this));\n      });\n    };\n\n    _this.detach = function () {\n      return _this.payload.forEach(function (p) {\n        return p instanceof Animated && p.removeChild(_assertThisInitialized(_this));\n      });\n    };\n\n    return _this;\n  }\n\n  return AnimatedArray;\n}(Animated);\nvar AnimatedObject =\n/*#__PURE__*/\nfunction (_Animated2) {\n  _inheritsLoose(AnimatedObject, _Animated2);\n\n  function AnimatedObject() {\n    var _this2;\n\n    for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      args[_key3] = arguments[_key3];\n    }\n\n    _this2 = _Animated2.call.apply(_Animated2, [this].concat(args)) || this;\n    _this2.payload = {};\n\n    _this2.attach = function () {\n      return Object.values(_this2.payload).forEach(function (s) {\n        return s instanceof Animated && s.addChild(_assertThisInitialized(_this2));\n      });\n    };\n\n    _this2.detach = function () {\n      return Object.values(_this2.payload).forEach(function (s) {\n        return s instanceof Animated && s.removeChild(_assertThisInitialized(_this2));\n      });\n    };\n\n    return _this2;\n  }\n\n  var _proto2 = AnimatedObject.prototype;\n\n  _proto2.getValue = function getValue(animated) {\n    if (animated === void 0) {\n      animated = false;\n    }\n\n    var payload = {};\n\n    for (var _key4 in this.payload) {\n      var value = this.payload[_key4];\n      if (animated && !(value instanceof Animated)) continue;\n      payload[_key4] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n    }\n\n    return payload;\n  };\n\n  _proto2.getAnimatedValue = function getAnimatedValue() {\n    return this.getValue(true);\n  };\n\n  return AnimatedObject;\n}(Animated);\n\nvar applyAnimatedValues;\nfunction injectApplyAnimatedValues(fn, transform) {\n  applyAnimatedValues = {\n    fn: fn,\n    transform: transform\n  };\n}\nvar colorNames;\nfunction injectColorNames(names) {\n  colorNames = names;\n}\nvar requestFrame = function requestFrame(cb) {\n  return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;\n};\nvar cancelFrame = function cancelFrame(id) {\n  typeof window !== 'undefined' && window.cancelAnimationFrame(id);\n};\nfunction injectFrame(raf, caf) {\n  requestFrame = raf;\n  cancelFrame = caf;\n}\nvar interpolation;\nfunction injectStringInterpolator(fn) {\n  interpolation = fn;\n}\nvar now = function now() {\n  return Date.now();\n};\nfunction injectNow(nowFn) {\n  now = nowFn;\n}\nvar defaultElement;\nfunction injectDefaultElement(el) {\n  defaultElement = el;\n}\nvar animatedApi = function animatedApi(node) {\n  return node.current;\n};\nfunction injectAnimatedApi(fn) {\n  animatedApi = fn;\n}\nvar createAnimatedStyle;\nfunction injectCreateAnimatedStyle(factory) {\n  createAnimatedStyle = factory;\n}\nvar manualFrameloop;\nfunction injectManualFrameloop(callback) {\n  manualFrameloop = callback;\n}\n\nvar Globals = /*#__PURE__*/Object.freeze({\n  get applyAnimatedValues () { return applyAnimatedValues; },\n  injectApplyAnimatedValues: injectApplyAnimatedValues,\n  get colorNames () { return colorNames; },\n  injectColorNames: injectColorNames,\n  get requestFrame () { return requestFrame; },\n  get cancelFrame () { return cancelFrame; },\n  injectFrame: injectFrame,\n  get interpolation () { return interpolation; },\n  injectStringInterpolator: injectStringInterpolator,\n  get now () { return now; },\n  injectNow: injectNow,\n  get defaultElement () { return defaultElement; },\n  injectDefaultElement: injectDefaultElement,\n  get animatedApi () { return animatedApi; },\n  injectAnimatedApi: injectAnimatedApi,\n  get createAnimatedStyle () { return createAnimatedStyle; },\n  injectCreateAnimatedStyle: injectCreateAnimatedStyle,\n  get manualFrameloop () { return manualFrameloop; },\n  injectManualFrameloop: injectManualFrameloop\n});\n\n/**\n * Wraps the `style` property with `AnimatedStyle`.\n */\n\nvar AnimatedProps =\n/*#__PURE__*/\nfunction (_AnimatedObject) {\n  _inheritsLoose(AnimatedProps, _AnimatedObject);\n\n  function AnimatedProps(props, callback) {\n    var _this;\n\n    _this = _AnimatedObject.call(this) || this;\n    _this.update = void 0;\n    _this.payload = !props.style ? props : _extends({}, props, {\n      style: createAnimatedStyle(props.style)\n    });\n    _this.update = callback;\n\n    _this.attach();\n\n    return _this;\n  }\n\n  return AnimatedProps;\n}(AnimatedObject);\n\nvar isFunctionComponent = function isFunctionComponent(val) {\n  return is.fun(val) && !(val.prototype instanceof React__default.Component);\n};\n\nvar createAnimatedComponent = function createAnimatedComponent(Component) {\n  var AnimatedComponent = React.forwardRef(function (props, ref) {\n    var forceUpdate = useForceUpdate();\n    var mounted = React.useRef(true);\n    var propsAnimated = React.useRef(null);\n    var node = React.useRef(null);\n    var attachProps = React.useCallback(function (props) {\n      var oldPropsAnimated = propsAnimated.current;\n\n      var callback = function callback() {\n        var didUpdate = false;\n\n        if (node.current) {\n          didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());\n        }\n\n        if (!node.current || didUpdate === false) {\n          // If no referenced node has been found, or the update target didn't have a\n          // native-responder, then forceUpdate the animation ...\n          forceUpdate();\n        }\n      };\n\n      propsAnimated.current = new AnimatedProps(props, callback);\n      oldPropsAnimated && oldPropsAnimated.detach();\n    }, []);\n    React.useEffect(function () {\n      return function () {\n        mounted.current = false;\n        propsAnimated.current && propsAnimated.current.detach();\n      };\n    }, []);\n    React.useImperativeHandle(ref, function () {\n      return animatedApi(node, mounted, forceUpdate);\n    });\n    attachProps(props);\n\n    var _getValue = propsAnimated.current.getValue(),\n        scrollTop = _getValue.scrollTop,\n        scrollLeft = _getValue.scrollLeft,\n        animatedProps = _objectWithoutPropertiesLoose(_getValue, [\"scrollTop\", \"scrollLeft\"]); // Functions cannot have refs, see:\n    // See: https://github.com/react-spring/react-spring/issues/569\n\n\n    var refFn = isFunctionComponent(Component) ? undefined : function (childRef) {\n      return node.current = handleRef(childRef, ref);\n    };\n    return React__default.createElement(Component, _extends({}, animatedProps, {\n      ref: refFn\n    }));\n  });\n  return AnimatedComponent;\n};\n\nvar active = false;\nvar controllers = new Set();\n\nvar update = function update() {\n  if (!active) return false;\n  var time = now();\n\n  for (var _iterator = controllers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var controller = _ref;\n    var isActive = false;\n\n    for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n      var config = controller.configs[configIdx];\n      var endOfAnimation = void 0,\n          lastTime = void 0;\n\n      for (var valIdx = 0; valIdx < config.animatedValues.length; valIdx++) {\n        var animation = config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n        if (animation.done) continue;\n        var from = config.fromValues[valIdx];\n        var to = config.toValues[valIdx];\n        var position = animation.lastPosition;\n        var isAnimated = to instanceof Animated;\n        var velocity = Array.isArray(config.initialVelocity) ? config.initialVelocity[valIdx] : config.initialVelocity;\n        if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n        if (config.immediate) {\n          animation.setValue(to);\n          animation.done = true;\n          continue;\n        } // Break animation when string values are involved\n\n\n        if (typeof from === 'string' || typeof to === 'string') {\n          animation.setValue(to);\n          animation.done = true;\n          continue;\n        }\n\n        if (config.duration !== void 0) {\n          /** Duration easing */\n          position = from + config.easing((time - animation.startTime) / config.duration) * (to - from);\n          endOfAnimation = time >= animation.startTime + config.duration;\n        } else if (config.decay) {\n          /** Decay easing */\n          position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));\n          endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n          if (endOfAnimation) to = position;\n        } else {\n          /** Spring easing */\n          lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n          velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n          if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n          var numSteps = Math.floor(time - lastTime);\n\n          for (var i = 0; i < numSteps; ++i) {\n            var force = -config.tension * (position - to);\n            var damping = -config.friction * velocity;\n            var acceleration = (force + damping) / config.mass;\n            velocity = velocity + acceleration * 1 / 1000;\n            position = position + velocity * 1 / 1000;\n          } // Conditions for stopping the spring animation\n\n\n          var isOvershooting = config.clamp && config.tension !== 0 ? from < to ? position > to : position < to : false;\n          var isVelocity = Math.abs(velocity) <= config.precision;\n          var isDisplacement = config.tension !== 0 ? Math.abs(to - position) <= config.precision : true;\n          endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n          animation.lastVelocity = velocity;\n          animation.lastTime = time;\n        } // Trails aren't done until their parents conclude\n\n\n        if (isAnimated && !config.toValues[valIdx].done) endOfAnimation = false;\n\n        if (endOfAnimation) {\n          // Ensure that we end up with a round value\n          if (animation.value !== to) position = to;\n          animation.done = true;\n        } else isActive = true;\n\n        animation.setValue(position);\n        animation.lastPosition = position;\n      } // Keep track of updated values only when necessary\n\n\n      if (controller.props.onFrame) controller.values[config.name] = config.interpolation.getValue();\n    } // Update callbacks in the end of the frame\n\n\n    if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame\n\n    if (!isActive) {\n      controllers.delete(controller);\n      controller.stop(true);\n    }\n  } // Loop over as long as there are controllers ...\n\n\n  if (controllers.size) {\n    if (manualFrameloop) manualFrameloop();else requestFrame(update);\n  } else {\n    active = false;\n  }\n\n  return active;\n};\n\nvar start = function start(controller) {\n  if (!controllers.has(controller)) controllers.add(controller);\n\n  if (!active) {\n    active = true;\n    if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);\n  }\n};\n\nvar stop = function stop(controller) {\n  if (controllers.has(controller)) controllers.delete(controller);\n};\n\nfunction createInterpolator(range, output, extrapolate) {\n  if (typeof range === 'function') {\n    return range;\n  }\n\n  if (Array.isArray(range)) {\n    return createInterpolator({\n      range: range,\n      output: output,\n      extrapolate: extrapolate\n    });\n  }\n\n  if (interpolation && typeof range.output[0] === 'string') {\n    return interpolation(range);\n  }\n\n  var config = range;\n  var outputRange = config.output;\n  var inputRange = config.range || [0, 1];\n  var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n  var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n  var easing = config.easing || function (t) {\n    return t;\n  };\n\n  return function (input) {\n    var range = findRange(input, inputRange);\n    return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n  };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n  var result = map ? map(input) : input; // Extrapolate\n\n  if (result < inputMin) {\n    if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n  }\n\n  if (result > inputMax) {\n    if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n  }\n\n  if (outputMin === outputMax) return outputMin;\n  if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n  if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n  result = easing(result); // Output Range\n\n  if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n  return result;\n}\n\nfunction findRange(input, inputRange) {\n  for (var i = 1; i < inputRange.length - 1; ++i) {\n    if (inputRange[i] >= input) break;\n  }\n\n  return i - 1;\n}\n\nvar AnimatedInterpolation =\n/*#__PURE__*/\nfunction (_AnimatedArray) {\n  _inheritsLoose(AnimatedInterpolation, _AnimatedArray);\n\n  function AnimatedInterpolation(parents, range, output, extrapolate) {\n    var _this;\n\n    _this = _AnimatedArray.call(this) || this;\n    _this.calc = void 0;\n    _this.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];\n    _this.calc = createInterpolator(range, output, extrapolate);\n    return _this;\n  }\n\n  var _proto = AnimatedInterpolation.prototype;\n\n  _proto.getValue = function getValue() {\n    return this.calc.apply(this, this.payload.map(function (value) {\n      return value.getValue();\n    }));\n  };\n\n  _proto.updateConfig = function updateConfig(range, output, extrapolate) {\n    this.calc = createInterpolator(range, output, extrapolate);\n  };\n\n  _proto.interpolate = function interpolate(range, output, extrapolate) {\n    return new AnimatedInterpolation(this, range, output, extrapolate);\n  };\n\n  return AnimatedInterpolation;\n}(AnimatedArray);\n\nvar interpolate$1 = function interpolate(parents, range, output) {\n  return parents && new AnimatedInterpolation(parents, range, output);\n};\n\nvar config = {\n  default: {\n    tension: 170,\n    friction: 26\n  },\n  gentle: {\n    tension: 120,\n    friction: 14\n  },\n  wobbly: {\n    tension: 180,\n    friction: 12\n  },\n  stiff: {\n    tension: 210,\n    friction: 20\n  },\n  slow: {\n    tension: 280,\n    friction: 60\n  },\n  molasses: {\n    tension: 280,\n    friction: 120\n  }\n};\n\n/** API\n *  useChain(references, timeSteps, timeFrame)\n */\n\nfunction useChain(refs, timeSteps, timeFrame) {\n  if (timeFrame === void 0) {\n    timeFrame = 1000;\n  }\n\n  var previous = React.useRef();\n  React.useEffect(function () {\n    if (is.equ(refs, previous.current)) refs.forEach(function (_ref) {\n      var current = _ref.current;\n      return current && current.start();\n    });else if (timeSteps) {\n      refs.forEach(function (_ref2, index) {\n        var current = _ref2.current;\n\n        if (current) {\n          var ctrls = current.controllers;\n\n          if (ctrls.length) {\n            var t = timeFrame * timeSteps[index];\n            ctrls.forEach(function (ctrl) {\n              ctrl.queue = ctrl.queue.map(function (e) {\n                return _extends({}, e, {\n                  delay: e.delay + t\n                });\n              });\n              ctrl.start();\n            });\n          }\n        }\n      });\n    } else refs.reduce(function (q, _ref3, rI) {\n      var current = _ref3.current;\n      return q = q.then(function () {\n        return current.start();\n      });\n    }, Promise.resolve());\n    previous.current = refs;\n  });\n}\n\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n *               new Animated.Value(0)\n *     .interpolate()        .interpolate()    new Animated.Value(1)\n *         opacity               translateY      scale\n *          style                         transform\n *         View#234                         style\n *                                         View#123\n *\n * A) Top Down phase\n * When an AnimatedValue is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\nfunction addAnimatedStyles(node, styles) {\n  if ('update' in node) {\n    styles.add(node);\n  } else {\n    node.getChildren().forEach(function (child) {\n      return addAnimatedStyles(child, styles);\n    });\n  }\n}\n\nvar AnimatedValue =\n/*#__PURE__*/\nfunction (_Animated) {\n  _inheritsLoose(AnimatedValue, _Animated);\n\n  function AnimatedValue(_value) {\n    var _this;\n\n    _this = _Animated.call(this) || this;\n    _this.animatedStyles = new Set();\n    _this.value = void 0;\n    _this.startPosition = void 0;\n    _this.lastPosition = void 0;\n    _this.lastVelocity = void 0;\n    _this.startTime = void 0;\n    _this.lastTime = void 0;\n    _this.done = false;\n\n    _this.setValue = function (value, flush) {\n      if (flush === void 0) {\n        flush = true;\n      }\n\n      _this.value = value;\n      if (flush) _this.flush();\n    };\n\n    _this.value = _value;\n    _this.startPosition = _value;\n    _this.lastPosition = _value;\n    return _this;\n  }\n\n  var _proto = AnimatedValue.prototype;\n\n  _proto.flush = function flush() {\n    if (this.animatedStyles.size === 0) {\n      addAnimatedStyles(this, this.animatedStyles);\n    }\n\n    this.animatedStyles.forEach(function (animatedStyle) {\n      return animatedStyle.update();\n    });\n  };\n\n  _proto.clearStyles = function clearStyles() {\n    this.animatedStyles.clear();\n  };\n\n  _proto.getValue = function getValue() {\n    return this.value;\n  };\n\n  _proto.interpolate = function interpolate(range, output, extrapolate) {\n    return new AnimatedInterpolation(this, range, output, extrapolate);\n  };\n\n  return AnimatedValue;\n}(Animated);\n\nvar AnimatedValueArray =\n/*#__PURE__*/\nfunction (_AnimatedArray) {\n  _inheritsLoose(AnimatedValueArray, _AnimatedArray);\n\n  function AnimatedValueArray(values) {\n    var _this;\n\n    _this = _AnimatedArray.call(this) || this;\n    _this.payload = values.map(function (n) {\n      return new AnimatedValue(n);\n    });\n    return _this;\n  }\n\n  var _proto = AnimatedValueArray.prototype;\n\n  _proto.setValue = function setValue(value, flush) {\n    var _this2 = this;\n\n    if (flush === void 0) {\n      flush = true;\n    }\n\n    if (Array.isArray(value)) {\n      if (value.length === this.payload.length) {\n        value.forEach(function (v, i) {\n          return _this2.payload[i].setValue(v, flush);\n        });\n      }\n    } else {\n      this.payload.forEach(function (p) {\n        return p.setValue(value, flush);\n      });\n    }\n  };\n\n  _proto.getValue = function getValue() {\n    return this.payload.map(function (v) {\n      return v.getValue();\n    });\n  };\n\n  _proto.interpolate = function interpolate(range, output) {\n    return new AnimatedInterpolation(this, range, output);\n  };\n\n  return AnimatedValueArray;\n}(AnimatedArray);\n\nvar G = 0;\n\nvar Controller =\n/*#__PURE__*/\nfunction () {\n  function Controller() {\n    var _this = this;\n\n    this.id = void 0;\n    this.idle = true;\n    this.hasChanged = false;\n    this.guid = 0;\n    this.local = 0;\n    this.props = {};\n    this.merged = {};\n    this.animations = {};\n    this.interpolations = {};\n    this.values = {};\n    this.configs = [];\n    this.listeners = [];\n    this.queue = [];\n    this.localQueue = void 0;\n\n    this.getValues = function () {\n      return _this.interpolations;\n    };\n\n    this.id = G++;\n  }\n  /** update(props)\n   *  This function filters input props and creates an array of tasks which are executed in .start()\n   *  Each task is allowed to carry a delay, which means it can execute asnychroneously */\n\n\n  var _proto = Controller.prototype;\n\n  _proto.update = function update$$1(args) {\n    //this._id = n + this.id\n    if (!args) return this; // Extract delay and the to-prop from props\n\n    var _ref = interpolateTo(args),\n        _ref$delay = _ref.delay,\n        delay = _ref$delay === void 0 ? 0 : _ref$delay,\n        to = _ref.to,\n        props = _objectWithoutPropertiesLoose(_ref, [\"delay\", \"to\"]);\n\n    if (is.arr(to) || is.fun(to)) {\n      // If config is either a function or an array queue it up as is\n      this.queue.push(_extends({}, props, {\n        delay: delay,\n        to: to\n      }));\n    } else if (to) {\n      // Otherwise go through each key since it could be delayed individually\n      var ops = {};\n      Object.entries(to).forEach(function (_ref2) {\n        var _to;\n\n        var k = _ref2[0],\n            v = _ref2[1];\n\n        // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props\n        var entry = _extends({\n          to: (_to = {}, _to[k] = v, _to),\n          delay: callProp(delay, k)\n        }, props);\n\n        var previous = ops[entry.delay] && ops[entry.delay].to;\n        ops[entry.delay] = _extends({}, ops[entry.delay], entry, {\n          to: _extends({}, previous, entry.to)\n        });\n      });\n      this.queue = Object.values(ops);\n    } // Sort queue, so that async calls go last\n\n\n    this.queue = this.queue.sort(function (a, b) {\n      return a.delay - b.delay;\n    }); // Diff the reduced props immediately (they'll contain the from-prop and some config)\n\n    this.diff(props);\n    return this;\n  }\n  /** start(onEnd)\n   *  This function either executes a queue, if present, or starts the frameloop, which animates */\n  ;\n\n  _proto.start = function start$$1(onEnd) {\n    var _this2 = this;\n\n    // If a queue is present we must excecute it\n    if (this.queue.length) {\n      this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values\n\n      if (this.localQueue) {\n        this.localQueue.forEach(function (_ref3) {\n          var _ref3$from = _ref3.from,\n              from = _ref3$from === void 0 ? {} : _ref3$from,\n              _ref3$to = _ref3.to,\n              to = _ref3$to === void 0 ? {} : _ref3$to;\n          if (is.obj(from)) _this2.merged = _extends({}, from, _this2.merged);\n          if (is.obj(to)) _this2.merged = _extends({}, _this2.merged, to);\n        });\n      } // The guid helps us tracking frames, a new queue over an old one means an override\n      // We discard async calls in that caseÍ\n\n\n      var local = this.local = ++this.guid;\n      var queue = this.localQueue = this.queue;\n      this.queue = []; // Go through each entry and execute it\n\n      queue.forEach(function (_ref4, index) {\n        var delay = _ref4.delay,\n            props = _objectWithoutPropertiesLoose(_ref4, [\"delay\"]);\n\n        var cb = function cb(finished) {\n          if (index === queue.length - 1 && local === _this2.guid && finished) {\n            _this2.idle = true;\n            if (_this2.props.onRest) _this2.props.onRest(_this2.merged);\n          }\n\n          if (onEnd) onEnd();\n        }; // Entries can be delayed, ansyc or immediate\n\n\n        var async = is.arr(props.to) || is.fun(props.to);\n\n        if (delay) {\n          setTimeout(function () {\n            if (local === _this2.guid) {\n              if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);\n            }\n          }, delay);\n        } else if (async) _this2.runAsync(props, cb);else _this2.diff(props).start(cb);\n      });\n    } // Otherwise we kick of the frameloop\n    else {\n        if (is.fun(onEnd)) this.listeners.push(onEnd);\n        if (this.props.onStart) this.props.onStart();\n\n        start(this);\n      }\n\n    return this;\n  };\n\n  _proto.stop = function stop$$1(finished) {\n    this.listeners.forEach(function (onEnd) {\n      return onEnd(finished);\n    });\n    this.listeners = [];\n    return this;\n  }\n  /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */\n  ;\n\n  _proto.pause = function pause(finished) {\n    this.stop(true);\n    if (finished) stop(this);\n    return this;\n  };\n\n  _proto.runAsync = function runAsync(_ref5, onEnd) {\n    var _this3 = this;\n\n    var delay = _ref5.delay,\n        props = _objectWithoutPropertiesLoose(_ref5, [\"delay\"]);\n\n    var local = this.local; // If \"to\" is either a function or an array it will be processed async, therefor \"to\" should be empty right now\n    // If the view relies on certain values \"from\" has to be present\n\n    var queue = Promise.resolve(undefined);\n\n    if (is.arr(props.to)) {\n      var _loop = function _loop(i) {\n        var index = i;\n\n        var fresh = _extends({}, props, interpolateTo(props.to[index]));\n\n        if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n        queue = queue.then(function () {\n          //this.stop()\n          if (local === _this3.guid) return new Promise(function (r) {\n            return _this3.diff(fresh).start(r);\n          });\n        });\n      };\n\n      for (var i = 0; i < props.to.length; i++) {\n        _loop(i);\n      }\n    } else if (is.fun(props.to)) {\n      var index = 0;\n      var last;\n      queue = queue.then(function () {\n        return props.to( // next(props)\n        function (p) {\n          var fresh = _extends({}, props, interpolateTo(p));\n\n          if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n          index++; //this.stop()\n\n          if (local === _this3.guid) return last = new Promise(function (r) {\n            return _this3.diff(fresh).start(r);\n          });\n          return;\n        }, // cancel()\n        function (finished) {\n          if (finished === void 0) {\n            finished = true;\n          }\n\n          return _this3.stop(finished);\n        }).then(function () {\n          return last;\n        });\n      });\n    }\n\n    queue.then(onEnd);\n  };\n\n  _proto.diff = function diff(props) {\n    var _this4 = this;\n\n    this.props = _extends({}, this.props, props);\n    var _this$props = this.props,\n        _this$props$from = _this$props.from,\n        from = _this$props$from === void 0 ? {} : _this$props$from,\n        _this$props$to = _this$props.to,\n        to = _this$props$to === void 0 ? {} : _this$props$to,\n        _this$props$config = _this$props.config,\n        config = _this$props$config === void 0 ? {} : _this$props$config,\n        reverse = _this$props.reverse,\n        attach = _this$props.attach,\n        reset = _this$props.reset,\n        immediate = _this$props.immediate; // Reverse values when requested\n\n    if (reverse) {\n      var _ref6 = [to, from];\n      from = _ref6[0];\n      to = _ref6[1];\n    } // This will collect all props that were ever set, reset merged props when necessary\n\n\n    this.merged = _extends({}, from, this.merged, to);\n    this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n    var target = attach && attach(this); // Reduces input { name: value } pairs into animated values\n\n    this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) {\n      var name = _ref7[0],\n          value = _ref7[1];\n      // Issue cached entries, except on reset\n      var entry = acc[name] || {}; // Figure out what the value is supposed to be\n\n      var isNumber = is.num(value);\n      var isString = is.str(value) && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n      var isArray = is.arr(value);\n      var isInterpolation = !isNumber && !isArray && !isString;\n      var fromValue = !is.und(from[name]) ? from[name] : value;\n      var toValue = isNumber || isArray ? value : isString ? value : 1;\n      var toConfig = callProp(config, name);\n      if (target) toValue = target.animations[name].parent;\n      var parent = entry.parent,\n          interpolation$$1 = entry.interpolation,\n          toValues = toArray(target ? toValue.getPayload() : toValue),\n          animatedValues;\n      var newValue = value;\n      if (isInterpolation) newValue = interpolation({\n        range: [0, 1],\n        output: [value, value]\n      })(1);\n      var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags\n\n      var isFirst = is.und(parent);\n      var isActive = !isFirst && entry.animatedValues.some(function (v) {\n        return !v.done;\n      });\n      var currentValueDiffersFromGoal = !is.equ(newValue, currentValue);\n      var hasNewGoal = !is.equ(newValue, entry.previous);\n      var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)\n      // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)\n\n      if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {\n        var _extends2;\n\n        // Convert regular values into animated values, ALWAYS re-use if possible\n        if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {\n          var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n          prev = prev !== void 0 && !reset ? prev : fromValue;\n\n          if (entry.parent) {\n            parent = entry.parent;\n            parent.setValue(0, false);\n          } else parent = new AnimatedValue(0);\n\n          var range = {\n            output: [prev, value]\n          };\n\n          if (entry.interpolation) {\n            interpolation$$1 = entry.interpolation;\n            entry.interpolation.updateConfig(range);\n          } else interpolation$$1 = parent.interpolate(range);\n        }\n        toValues = toArray(target ? toValue.getPayload() : toValue);\n        animatedValues = toArray(parent.getPayload());\n        if (reset && !isInterpolation) parent.setValue(fromValue, false);\n        _this4.hasChanged = true; // Reset animated values\n\n        animatedValues.forEach(function (value) {\n          value.startPosition = value.value;\n          value.lastPosition = value.value;\n          value.lastVelocity = isActive ? value.lastVelocity : undefined;\n          value.lastTime = isActive ? value.lastTime : undefined;\n          value.startTime = now();\n          value.done = false;\n          value.animatedStyles.clear();\n        }); // Set immediate values\n\n        if (callProp(immediate, name)) {\n          parent.setValue(isInterpolation ? toValue : value, false);\n        }\n\n        return _extends({}, acc, (_extends2 = {}, _extends2[name] = _extends({}, entry, {\n          name: name,\n          parent: parent,\n          interpolation: interpolation$$1,\n          animatedValues: animatedValues,\n          toValues: toValues,\n          previous: newValue,\n          config: toConfig,\n          fromValues: toArray(parent.getValue()),\n          immediate: callProp(immediate, name),\n          initialVelocity: withDefault(toConfig.velocity, 0),\n          clamp: withDefault(toConfig.clamp, false),\n          precision: withDefault(toConfig.precision, 0.01),\n          tension: withDefault(toConfig.tension, 170),\n          friction: withDefault(toConfig.friction, 26),\n          mass: withDefault(toConfig.mass, 1),\n          duration: toConfig.duration,\n          easing: withDefault(toConfig.easing, function (t) {\n            return t;\n          }),\n          decay: toConfig.decay\n        }), _extends2));\n      } else {\n        if (!currentValueDiffersFromGoal) {\n          var _extends3;\n\n          // So ... the current target value (newValue) appears to be different from the previous value,\n          // which normally constitutes an update, but the actual value (currentValue) matches the target!\n          // In order to resolve this without causing an animation update we silently flag the animation as done,\n          // which it technically is. Interpolations also needs a config update with their target set to 1.\n          if (isInterpolation) {\n            parent.setValue(1, false);\n            interpolation$$1.updateConfig({\n              output: [newValue, newValue]\n            });\n          }\n\n          parent.done = true;\n          _this4.hasChanged = true;\n          return _extends({}, acc, (_extends3 = {}, _extends3[name] = _extends({}, acc[name], {\n            previous: newValue\n          }), _extends3));\n        }\n\n        return acc;\n      }\n    }, this.animations);\n\n    if (this.hasChanged) {\n      // Make animations available to frameloop\n      this.configs = Object.values(this.animations);\n      this.values = {};\n      this.interpolations = {};\n\n      for (var key in this.animations) {\n        this.interpolations[key] = this.animations[key].interpolation;\n        this.values[key] = this.animations[key].interpolation.getValue();\n      }\n    }\n\n    return this;\n  };\n\n  _proto.destroy = function destroy() {\n    this.stop();\n    this.props = {};\n    this.merged = {};\n    this.animations = {};\n    this.interpolations = {};\n    this.values = {};\n    this.configs = [];\n    this.local = 0;\n  };\n\n  return Controller;\n}();\n\n/** API\n * const props = useSprings(number, [{ ... }, { ... }, ...])\n * const [props, set] = useSprings(number, (i, controller) => ({ ... }))\n */\n\nvar useSprings = function useSprings(length, props) {\n  var mounted = React.useRef(false);\n  var ctrl = React.useRef();\n  var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations\n\n  var _useMemo = React.useMemo(function () {\n    // Remove old controllers\n    if (ctrl.current) {\n      ctrl.current.map(function (c) {\n        return c.destroy();\n      });\n      ctrl.current = undefined;\n    }\n\n    var ref;\n    return [new Array(length).fill().map(function (_, i) {\n      var ctrl = new Controller();\n      var newProps = isFn ? callProp(props, i, ctrl) : props[i];\n      if (i === 0) ref = newProps.ref;\n      ctrl.update(newProps);\n      if (!ref) ctrl.start();\n      return ctrl;\n    }), ref];\n  }, [length]),\n      controllers = _useMemo[0],\n      ref = _useMemo[1];\n\n  ctrl.current = controllers; // The hooks reference api gets defined here ...\n\n  var api = React.useImperativeHandle(ref, function () {\n    return {\n      start: function start() {\n        return Promise.all(ctrl.current.map(function (c) {\n          return new Promise(function (r) {\n            return c.start(r);\n          });\n        }));\n      },\n      stop: function stop(finished) {\n        return ctrl.current.forEach(function (c) {\n          return c.stop(finished);\n        });\n      },\n\n      get controllers() {\n        return ctrl.current;\n      }\n\n    };\n  }); // This function updates the controllers\n\n  var updateCtrl = React.useMemo(function () {\n    return function (updateProps) {\n      return ctrl.current.map(function (c, i) {\n        c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);\n        if (!ref) c.start();\n      });\n    };\n  }, [length]); // Update controller if props aren't functional\n\n  React.useEffect(function () {\n    if (mounted.current) {\n      if (!isFn) updateCtrl(props);\n    } else if (!ref) ctrl.current.forEach(function (c) {\n      return c.start();\n    });\n  }); // Update mounted flag and destroy controller on unmount\n\n  React.useEffect(function () {\n    return mounted.current = true, function () {\n      return ctrl.current.forEach(function (c) {\n        return c.destroy();\n      });\n    };\n  }, []); // Return animated props, or, anim-props + the update-setter above\n\n  var propValues = ctrl.current.map(function (c) {\n    return c.getValues();\n  });\n  return isFn ? [propValues, updateCtrl, function (finished) {\n    return ctrl.current.forEach(function (c) {\n      return c.pause(finished);\n    });\n  }] : propValues;\n};\n\n/** API\n * const props = useSpring({ ... })\n * const [props, set] = useSpring(() => ({ ... }))\n */\n\nvar useSpring = function useSpring(props) {\n  var isFn = is.fun(props);\n\n  var _useSprings = useSprings(1, isFn ? props : [props]),\n      result = _useSprings[0],\n      set = _useSprings[1],\n      pause = _useSprings[2];\n\n  return isFn ? [result[0], set, pause] : result;\n};\n\n/** API\n * const trails = useTrail(number, { ... })\n * const [trails, set] = useTrail(number, () => ({ ... }))\n */\n\nvar useTrail = function useTrail(length, props) {\n  var mounted = React.useRef(false);\n  var isFn = is.fun(props);\n  var updateProps = callProp(props);\n  var instances = React.useRef();\n\n  var _useSprings = useSprings(length, function (i, ctrl) {\n    if (i === 0) instances.current = [];\n    instances.current.push(ctrl);\n    return _extends({}, updateProps, {\n      config: callProp(updateProps.config, i),\n      attach: i > 0 && function () {\n        return instances.current[i - 1];\n      }\n    });\n  }),\n      result = _useSprings[0],\n      set = _useSprings[1],\n      pause = _useSprings[2]; // Set up function to update controller\n\n\n  var updateCtrl = React.useMemo(function () {\n    return function (props) {\n      return set(function (i, ctrl) {\n        var last = props.reverse ? i === 0 : length - 1 === i;\n        var attachIdx = props.reverse ? i + 1 : i - 1;\n        var attachController = instances.current[attachIdx];\n        return _extends({}, props, {\n          config: callProp(props.config || updateProps.config, i),\n          attach: attachController && function () {\n            return attachController;\n          }\n        });\n      });\n    };\n  }, [length, updateProps.reverse]); // Update controller if props aren't functional\n\n  React.useEffect(function () {\n    return void (mounted.current && !isFn && updateCtrl(props));\n  }); // Update mounted flag and destroy controller on unmount\n\n  React.useEffect(function () {\n    return void (mounted.current = true);\n  }, []);\n  return isFn ? [result, updateCtrl, pause] : result;\n};\n\n/** API\n * const transitions = useTransition(items, itemKeys, { ... })\n * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))\n */\n\nvar guid = 0;\nvar ENTER = 'enter';\nvar LEAVE = 'leave';\nvar UPDATE = 'update';\n\nvar mapKeys = function mapKeys(items, keys) {\n  return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);\n};\n\nvar get = function get(props) {\n  var items = props.items,\n      _props$keys = props.keys,\n      keys = _props$keys === void 0 ? function (item) {\n    return item;\n  } : _props$keys,\n      rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n  items = toArray(items !== void 0 ? items : null);\n  return _extends({\n    items: items,\n    keys: mapKeys(items, keys)\n  }, rest);\n};\n\nfunction useTransition(input, keyTransform, config) {\n  var props = _extends({\n    items: input,\n    keys: keyTransform || function (i) {\n      return i;\n    }\n  }, config);\n\n  var _get = get(props),\n      _get$lazy = _get.lazy,\n      lazy = _get$lazy === void 0 ? false : _get$lazy,\n      _get$unique = _get.unique,\n      _get$reset = _get.reset,\n      reset = _get$reset === void 0 ? false : _get$reset,\n      enter = _get.enter,\n      leave = _get.leave,\n      update = _get.update,\n      onDestroyed = _get.onDestroyed,\n      keys = _get.keys,\n      items = _get.items,\n      onFrame = _get.onFrame,\n      _onRest = _get.onRest,\n      onStart = _get.onStart,\n      ref = _get.ref,\n      extra = _objectWithoutPropertiesLoose(_get, [\"lazy\", \"unique\", \"reset\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"ref\"]);\n\n  var forceUpdate = useForceUpdate();\n  var mounted = React.useRef(false);\n  var state = React.useRef({\n    mounted: false,\n    first: true,\n    deleted: [],\n    current: {},\n    transitions: [],\n    prevProps: {},\n    paused: !!props.ref,\n    instances: !mounted.current && new Map(),\n    forceUpdate: forceUpdate\n  });\n  React.useImperativeHandle(props.ref, function () {\n    return {\n      start: function start() {\n        return Promise.all(Array.from(state.current.instances).map(function (_ref) {\n          var c = _ref[1];\n          return new Promise(function (r) {\n            return c.start(r);\n          });\n        }));\n      },\n      stop: function stop(finished) {\n        return Array.from(state.current.instances).forEach(function (_ref2) {\n          var c = _ref2[1];\n          return c.stop(finished);\n        });\n      },\n\n      get controllers() {\n        return Array.from(state.current.instances).map(function (_ref3) {\n          var c = _ref3[1];\n          return c;\n        });\n      }\n\n    };\n  }); // Update state\n\n  state.current = diffItems(state.current, props);\n\n  if (state.current.changed) {\n    // Update state\n    state.current.transitions.forEach(function (transition) {\n      var slot = transition.slot,\n          from = transition.from,\n          to = transition.to,\n          config = transition.config,\n          trail = transition.trail,\n          key = transition.key,\n          item = transition.item;\n      if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object\n\n      var ctrl = state.current.instances.get(key);\n\n      var newProps = _extends({}, extra, {\n        to: to,\n        from: from,\n        config: config,\n        ref: ref,\n        onRest: function onRest(values) {\n          if (state.current.mounted) {\n            if (transition.destroyed) {\n              // If no ref is given delete destroyed items immediately\n              if (!ref && !lazy) cleanUp(state, key);\n              if (onDestroyed) onDestroyed(item);\n            } // A transition comes to rest once all its springs conclude\n\n\n            var curInstances = Array.from(state.current.instances);\n            var active = curInstances.some(function (_ref4) {\n              var c = _ref4[1];\n              return !c.idle;\n            });\n            if (!active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);\n            if (_onRest) _onRest(item, slot, values);\n          }\n        },\n        onStart: onStart && function () {\n          return onStart(item, slot);\n        },\n        onFrame: onFrame && function (values) {\n          return onFrame(item, slot, values);\n        },\n        delay: trail,\n        reset: reset && slot === ENTER // Update controller\n\n      });\n\n      ctrl.update(newProps);\n      if (!state.current.paused) ctrl.start();\n    });\n  }\n\n  React.useEffect(function () {\n    state.current.mounted = mounted.current = true;\n    return function () {\n      state.current.mounted = mounted.current = false;\n      Array.from(state.current.instances).map(function (_ref5) {\n        var c = _ref5[1];\n        return c.destroy();\n      });\n      state.current.instances.clear();\n    };\n  }, []);\n  return state.current.transitions.map(function (_ref6) {\n    var item = _ref6.item,\n        slot = _ref6.slot,\n        key = _ref6.key;\n    return {\n      item: item,\n      key: key,\n      state: slot,\n      props: state.current.instances.get(key).getValues()\n    };\n  });\n}\n\nfunction cleanUp(state, filterKey) {\n  var deleted = state.current.deleted;\n\n  var _loop = function _loop() {\n    if (_isArray) {\n      if (_i >= _iterator.length) return \"break\";\n      _ref8 = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) return \"break\";\n      _ref8 = _i.value;\n    }\n\n    var _ref7 = _ref8;\n    var key = _ref7.key;\n\n    var filter = function filter(t) {\n      return t.key !== key;\n    };\n\n    if (is.und(filterKey) || filterKey === key) {\n      state.current.instances.delete(key);\n      state.current.transitions = state.current.transitions.filter(filter);\n      state.current.deleted = state.current.deleted.filter(filter);\n    }\n  };\n\n  for (var _iterator = deleted, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n    var _ref8;\n\n    var _ret = _loop();\n\n    if (_ret === \"break\") break;\n  }\n\n  state.current.forceUpdate();\n}\n\nfunction diffItems(_ref9, props) {\n  var first = _ref9.first,\n      prevProps = _ref9.prevProps,\n      state = _objectWithoutPropertiesLoose(_ref9, [\"first\", \"prevProps\"]);\n\n  var _get2 = get(props),\n      items = _get2.items,\n      keys = _get2.keys,\n      initial = _get2.initial,\n      from = _get2.from,\n      enter = _get2.enter,\n      leave = _get2.leave,\n      update = _get2.update,\n      _get2$trail = _get2.trail,\n      trail = _get2$trail === void 0 ? 0 : _get2$trail,\n      unique = _get2.unique,\n      config = _get2.config,\n      _get2$order = _get2.order,\n      order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;\n\n  var _get3 = get(prevProps),\n      _keys = _get3.keys,\n      _items = _get3.items;\n\n  var current = _extends({}, state.current);\n\n  var deleted = [].concat(state.deleted); // Compare next keys with current keys\n\n  var currentKeys = Object.keys(current);\n  var currentSet = new Set(currentKeys);\n  var nextSet = new Set(keys);\n  var added = keys.filter(function (item) {\n    return !currentSet.has(item);\n  });\n  var removed = state.transitions.filter(function (item) {\n    return !item.destroyed && !nextSet.has(item.originalKey);\n  }).map(function (i) {\n    return i.originalKey;\n  });\n  var updated = keys.filter(function (item) {\n    return currentSet.has(item);\n  });\n  var delay = -trail;\n\n  while (order.length) {\n    var changeType = order.shift();\n\n    switch (changeType) {\n      case ENTER:\n        {\n          added.forEach(function (key, index) {\n            // In unique mode, remove fading out transitions if their key comes in again\n            if (unique && deleted.find(function (d) {\n              return d.originalKey === key;\n            })) deleted = deleted.filter(function (t) {\n              return t.originalKey !== key;\n            });\n            var keyIndex = keys.indexOf(key);\n            var item = items[keyIndex];\n            var slot = first && initial !== void 0 ? 'initial' : ENTER;\n            current[key] = {\n              slot: slot,\n              originalKey: key,\n              key: unique ? String(key) : guid++,\n              item: item,\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n              to: callProp(enter, item)\n            };\n          });\n          break;\n        }\n\n      case LEAVE:\n        {\n          removed.forEach(function (key) {\n            var keyIndex = _keys.indexOf(key);\n\n            var item = _items[keyIndex];\n            var slot = LEAVE;\n            deleted.unshift(_extends({}, current[key], {\n              slot: slot,\n              destroyed: true,\n              left: _keys[Math.max(0, keyIndex - 1)],\n              right: _keys[Math.min(_keys.length, keyIndex + 1)],\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              to: callProp(leave, item)\n            }));\n            delete current[key];\n          });\n          break;\n        }\n\n      case UPDATE:\n        {\n          updated.forEach(function (key) {\n            var keyIndex = keys.indexOf(key);\n            var item = items[keyIndex];\n            var slot = UPDATE;\n            current[key] = _extends({}, current[key], {\n              item: item,\n              slot: slot,\n              trail: delay = delay + trail,\n              config: callProp(config, item, slot),\n              to: callProp(update, item)\n            });\n          });\n          break;\n        }\n    }\n  }\n\n  var out = keys.map(function (key) {\n    return current[key];\n  }); // This tries to restore order for deleted items by finding their last known siblings\n  // only using the left sibling to keep order placement consistent for all deleted items\n\n  deleted.forEach(function (_ref10) {\n    var left = _ref10.left,\n        right = _ref10.right,\n        item = _objectWithoutPropertiesLoose(_ref10, [\"left\", \"right\"]);\n\n    var pos; // Was it the element on the left, if yes, move there ...\n\n    if ((pos = out.findIndex(function (t) {\n      return t.originalKey === left;\n    })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n    pos = Math.max(0, pos);\n    out = [].concat(out.slice(0, pos), [item], out.slice(pos));\n  });\n  return _extends({}, state, {\n    changed: added.length || removed.length || updated.length,\n    first: first && added.length === 0,\n    transitions: out,\n    current: current,\n    deleted: deleted,\n    prevProps: props\n  });\n}\n\nvar AnimatedStyle =\n/*#__PURE__*/\nfunction (_AnimatedObject) {\n  _inheritsLoose(AnimatedStyle, _AnimatedObject);\n\n  function AnimatedStyle(style) {\n    var _this;\n\n    if (style === void 0) {\n      style = {};\n    }\n\n    _this = _AnimatedObject.call(this) || this;\n\n    if (style.transform && !(style.transform instanceof Animated)) {\n      style = applyAnimatedValues.transform(style);\n    }\n\n    _this.payload = style;\n    return _this;\n  }\n\n  return AnimatedStyle;\n}(AnimatedObject);\n\n// http://www.w3.org/TR/css3-color/#svg-color\nvar colors = {\n  transparent: 0x00000000,\n  aliceblue: 0xf0f8ffff,\n  antiquewhite: 0xfaebd7ff,\n  aqua: 0x00ffffff,\n  aquamarine: 0x7fffd4ff,\n  azure: 0xf0ffffff,\n  beige: 0xf5f5dcff,\n  bisque: 0xffe4c4ff,\n  black: 0x000000ff,\n  blanchedalmond: 0xffebcdff,\n  blue: 0x0000ffff,\n  blueviolet: 0x8a2be2ff,\n  brown: 0xa52a2aff,\n  burlywood: 0xdeb887ff,\n  burntsienna: 0xea7e5dff,\n  cadetblue: 0x5f9ea0ff,\n  chartreuse: 0x7fff00ff,\n  chocolate: 0xd2691eff,\n  coral: 0xff7f50ff,\n  cornflowerblue: 0x6495edff,\n  cornsilk: 0xfff8dcff,\n  crimson: 0xdc143cff,\n  cyan: 0x00ffffff,\n  darkblue: 0x00008bff,\n  darkcyan: 0x008b8bff,\n  darkgoldenrod: 0xb8860bff,\n  darkgray: 0xa9a9a9ff,\n  darkgreen: 0x006400ff,\n  darkgrey: 0xa9a9a9ff,\n  darkkhaki: 0xbdb76bff,\n  darkmagenta: 0x8b008bff,\n  darkolivegreen: 0x556b2fff,\n  darkorange: 0xff8c00ff,\n  darkorchid: 0x9932ccff,\n  darkred: 0x8b0000ff,\n  darksalmon: 0xe9967aff,\n  darkseagreen: 0x8fbc8fff,\n  darkslateblue: 0x483d8bff,\n  darkslategray: 0x2f4f4fff,\n  darkslategrey: 0x2f4f4fff,\n  darkturquoise: 0x00ced1ff,\n  darkviolet: 0x9400d3ff,\n  deeppink: 0xff1493ff,\n  deepskyblue: 0x00bfffff,\n  dimgray: 0x696969ff,\n  dimgrey: 0x696969ff,\n  dodgerblue: 0x1e90ffff,\n  firebrick: 0xb22222ff,\n  floralwhite: 0xfffaf0ff,\n  forestgreen: 0x228b22ff,\n  fuchsia: 0xff00ffff,\n  gainsboro: 0xdcdcdcff,\n  ghostwhite: 0xf8f8ffff,\n  gold: 0xffd700ff,\n  goldenrod: 0xdaa520ff,\n  gray: 0x808080ff,\n  green: 0x008000ff,\n  greenyellow: 0xadff2fff,\n  grey: 0x808080ff,\n  honeydew: 0xf0fff0ff,\n  hotpink: 0xff69b4ff,\n  indianred: 0xcd5c5cff,\n  indigo: 0x4b0082ff,\n  ivory: 0xfffff0ff,\n  khaki: 0xf0e68cff,\n  lavender: 0xe6e6faff,\n  lavenderblush: 0xfff0f5ff,\n  lawngreen: 0x7cfc00ff,\n  lemonchiffon: 0xfffacdff,\n  lightblue: 0xadd8e6ff,\n  lightcoral: 0xf08080ff,\n  lightcyan: 0xe0ffffff,\n  lightgoldenrodyellow: 0xfafad2ff,\n  lightgray: 0xd3d3d3ff,\n  lightgreen: 0x90ee90ff,\n  lightgrey: 0xd3d3d3ff,\n  lightpink: 0xffb6c1ff,\n  lightsalmon: 0xffa07aff,\n  lightseagreen: 0x20b2aaff,\n  lightskyblue: 0x87cefaff,\n  lightslategray: 0x778899ff,\n  lightslategrey: 0x778899ff,\n  lightsteelblue: 0xb0c4deff,\n  lightyellow: 0xffffe0ff,\n  lime: 0x00ff00ff,\n  limegreen: 0x32cd32ff,\n  linen: 0xfaf0e6ff,\n  magenta: 0xff00ffff,\n  maroon: 0x800000ff,\n  mediumaquamarine: 0x66cdaaff,\n  mediumblue: 0x0000cdff,\n  mediumorchid: 0xba55d3ff,\n  mediumpurple: 0x9370dbff,\n  mediumseagreen: 0x3cb371ff,\n  mediumslateblue: 0x7b68eeff,\n  mediumspringgreen: 0x00fa9aff,\n  mediumturquoise: 0x48d1ccff,\n  mediumvioletred: 0xc71585ff,\n  midnightblue: 0x191970ff,\n  mintcream: 0xf5fffaff,\n  mistyrose: 0xffe4e1ff,\n  moccasin: 0xffe4b5ff,\n  navajowhite: 0xffdeadff,\n  navy: 0x000080ff,\n  oldlace: 0xfdf5e6ff,\n  olive: 0x808000ff,\n  olivedrab: 0x6b8e23ff,\n  orange: 0xffa500ff,\n  orangered: 0xff4500ff,\n  orchid: 0xda70d6ff,\n  palegoldenrod: 0xeee8aaff,\n  palegreen: 0x98fb98ff,\n  paleturquoise: 0xafeeeeff,\n  palevioletred: 0xdb7093ff,\n  papayawhip: 0xffefd5ff,\n  peachpuff: 0xffdab9ff,\n  peru: 0xcd853fff,\n  pink: 0xffc0cbff,\n  plum: 0xdda0ddff,\n  powderblue: 0xb0e0e6ff,\n  purple: 0x800080ff,\n  rebeccapurple: 0x663399ff,\n  red: 0xff0000ff,\n  rosybrown: 0xbc8f8fff,\n  royalblue: 0x4169e1ff,\n  saddlebrown: 0x8b4513ff,\n  salmon: 0xfa8072ff,\n  sandybrown: 0xf4a460ff,\n  seagreen: 0x2e8b57ff,\n  seashell: 0xfff5eeff,\n  sienna: 0xa0522dff,\n  silver: 0xc0c0c0ff,\n  skyblue: 0x87ceebff,\n  slateblue: 0x6a5acdff,\n  slategray: 0x708090ff,\n  slategrey: 0x708090ff,\n  snow: 0xfffafaff,\n  springgreen: 0x00ff7fff,\n  steelblue: 0x4682b4ff,\n  tan: 0xd2b48cff,\n  teal: 0x008080ff,\n  thistle: 0xd8bfd8ff,\n  tomato: 0xff6347ff,\n  turquoise: 0x40e0d0ff,\n  violet: 0xee82eeff,\n  wheat: 0xf5deb3ff,\n  white: 0xffffffff,\n  whitesmoke: 0xf5f5f5ff,\n  yellow: 0xffff00ff,\n  yellowgreen: 0x9acd32ff\n};\n\n// const INTEGER = '[-+]?\\\\d+';\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n  for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n    parts[_key] = arguments[_key];\n  }\n\n  return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n  contributors may be used to endorse or promote products derived from\n  this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\nfunction normalizeColor(color) {\n  var match;\n\n  if (typeof color === 'number') {\n    return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n  } // Ordered based on occurrences on Facebook codebase\n\n\n  if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n  if (colors.hasOwnProperty(color)) return colors[color];\n\n  if (match = rgb.exec(color)) {\n    return (parse255(match[1]) << 24 | // r\n    parse255(match[2]) << 16 | // g\n    parse255(match[3]) << 8 | // b\n    0x000000ff) >>> // a\n    0;\n  }\n\n  if (match = rgba.exec(color)) {\n    return (parse255(match[1]) << 24 | // r\n    parse255(match[2]) << 16 | // g\n    parse255(match[3]) << 8 | // b\n    parse1(match[4])) >>> // a\n    0;\n  }\n\n  if (match = hex3.exec(color)) {\n    return parseInt(match[1] + match[1] + // r\n    match[2] + match[2] + // g\n    match[3] + match[3] + // b\n    'ff', // a\n    16) >>> 0;\n  } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n  if (match = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n  if (match = hex4.exec(color)) {\n    return parseInt(match[1] + match[1] + // r\n    match[2] + match[2] + // g\n    match[3] + match[3] + // b\n    match[4] + match[4], // a\n    16) >>> 0;\n  }\n\n  if (match = hsl.exec(color)) {\n    return (hslToRgb(parse360(match[1]), // h\n    parsePercentage(match[2]), // s\n    parsePercentage(match[3]) // l\n    ) | 0x000000ff) >>> // a\n    0;\n  }\n\n  if (match = hsla.exec(color)) {\n    return (hslToRgb(parse360(match[1]), // h\n    parsePercentage(match[2]), // s\n    parsePercentage(match[3]) // l\n    ) | parse1(match[4])) >>> // a\n    0;\n  }\n\n  return null;\n}\n\nfunction hue2rgb(p, q, t) {\n  if (t < 0) t += 1;\n  if (t > 1) t -= 1;\n  if (t < 1 / 6) return p + (q - p) * 6 * t;\n  if (t < 1 / 2) return q;\n  if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n  return p;\n}\n\nfunction hslToRgb(h, s, l) {\n  var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n  var p = 2 * l - q;\n  var r = hue2rgb(p, q, h + 1 / 3);\n  var g = hue2rgb(p, q, h);\n  var b = hue2rgb(p, q, h - 1 / 3);\n  return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n}\n\nfunction parse255(str) {\n  var int = parseInt(str, 10);\n  if (int < 0) return 0;\n  if (int > 255) return 255;\n  return int;\n}\n\nfunction parse360(str) {\n  var int = parseFloat(str);\n  return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n  var num = parseFloat(str);\n  if (num < 0) return 0;\n  if (num > 1) return 255;\n  return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n  // parseFloat conveniently ignores the final %\n  var int = parseFloat(str);\n  if (int < 0) return 0;\n  if (int > 100) return 1;\n  return int / 100;\n}\n\nfunction colorToRgba(input) {\n  var int32Color = normalizeColor(input);\n  if (int32Color === null) return input;\n  int32Color = int32Color || 0;\n  var r = (int32Color & 0xff000000) >>> 24;\n  var g = (int32Color & 0x00ff0000) >>> 16;\n  var b = (int32Color & 0x0000ff00) >>> 8;\n  var a = (int32Color & 0x000000ff) / 255;\n  return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nvar stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nvar colorNamesRegex = new RegExp(\"(\" + Object.keys(colors).join('|') + \")\", 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape.  Supports\n * things like:\n *\n *   rgba(123, 42, 99, 0.36)           // colors\n *   -45deg                            // values with units\n *   0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nvar createStringInterpolator = function createStringInterpolator(config) {\n  // Replace colors with rgba\n  var outputRange = config.output.map(function (rangeValue) {\n    return rangeValue.replace(colorRegex, colorToRgba);\n  }).map(function (rangeValue) {\n    return rangeValue.replace(colorNamesRegex, colorToRgba);\n  });\n  var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n    return [];\n  });\n  outputRange.forEach(function (value) {\n    value.match(stringShapeRegex).forEach(function (number, i) {\n      return outputRanges[i].push(+number);\n    });\n  });\n  var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) {\n    return createInterpolator(_extends({}, config, {\n      output: outputRanges[i]\n    }));\n  });\n  return function (input) {\n    var i = 0;\n    return outputRange[0] // 'rgba(0, 100, 200, 0)'\n    // ->\n    // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n    .replace(stringShapeRegex, function () {\n      return interpolations[i++](input);\n    }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n    // round the opacity (4th column).\n    .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (_, p1, p2, p3, p4) {\n      return \"rgba(\" + Math.round(p1) + \", \" + Math.round(p2) + \", \" + Math.round(p3) + \", \" + p4 + \")\";\n    });\n  };\n};\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  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\nvar prefixKey = function prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nvar prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {\n  prefixes.forEach(function (prefix) {\n    return acc[prefixKey(prefix, prop)] = acc[prop];\n  });\n  return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  if (value == null || typeof value === 'boolean' || value === '') return '';\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n  return ('' + value).trim();\n}\n\nvar attributeCache = {};\ninjectCreateAnimatedStyle(function (style) {\n  return new AnimatedStyle(style);\n});\ninjectDefaultElement('div');\ninjectStringInterpolator(createStringInterpolator);\ninjectColorNames(colors);\ninjectApplyAnimatedValues(function (instance, props) {\n  if (instance.nodeType && instance.setAttribute !== undefined) {\n    var style = props.style,\n        children = props.children,\n        scrollTop = props.scrollTop,\n        scrollLeft = props.scrollLeft,\n        attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n    var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n    if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n    if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n    if (children !== void 0) instance.textContent = children; // Set styles ...\n\n    for (var styleName in style) {\n      if (!style.hasOwnProperty(styleName)) continue;\n      var isCustomProperty = styleName.indexOf('--') === 0;\n      var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n      if (styleName === 'float') styleName = 'cssFloat';\n      if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n    } // Set attributes ...\n\n\n    for (var name in attributes) {\n      // Attributes are written in dash case\n      var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {\n        return '-' + n.toLowerCase();\n      }));\n      if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n    }\n\n    return;\n  } else return false;\n}, function (style) {\n  return style;\n});\n\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n// Extend animated with all the available THREE elements\nvar apply = merge(createAnimatedComponent, false);\nvar extendedAnimated = apply(domElements);\n\nexports.apply = apply;\nexports.config = config;\nexports.update = update;\nexports.animated = extendedAnimated;\nexports.a = extendedAnimated;\nexports.interpolate = interpolate$1;\nexports.Globals = Globals;\nexports.useSpring = useSpring;\nexports.useTrail = useTrail;\nexports.useTransition = useTransition;\nexports.useChain = useChain;\nexports.useSprings = useSprings;\n\n\n/***/ }),\n/* 109 */,\n/* 110 */,\n/* 111 */\n/***/ (function(module, exports) {\n\n//\n// Main\n//\n\nfunction memoize (fn, options) {\n  var cache = options && options.cache\n    ? options.cache\n    : cacheDefault\n\n  var serializer = options && options.serializer\n    ? options.serializer\n    : serializerDefault\n\n  var strategy = options && options.strategy\n    ? options.strategy\n    : strategyDefault\n\n  return strategy(fn, {\n    cache: cache,\n    serializer: serializer\n  })\n}\n\n//\n// Strategy\n//\n\nfunction isPrimitive (value) {\n  return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n  var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n  var computedValue = cache.get(cacheKey)\n  if (typeof computedValue === 'undefined') {\n    computedValue = fn.call(this, arg)\n    cache.set(cacheKey, computedValue)\n  }\n\n  return computedValue\n}\n\nfunction variadic (fn, cache, serializer) {\n  var args = Array.prototype.slice.call(arguments, 3)\n  var cacheKey = serializer(args)\n\n  var computedValue = cache.get(cacheKey)\n  if (typeof computedValue === 'undefined') {\n    computedValue = fn.apply(this, args)\n    cache.set(cacheKey, computedValue)\n  }\n\n  return computedValue\n}\n\nfunction assemble (fn, context, strategy, cache, serialize) {\n  return strategy.bind(\n    context,\n    fn,\n    cache,\n    serialize\n  )\n}\n\nfunction strategyDefault (fn, options) {\n  var strategy = fn.length === 1 ? monadic : variadic\n\n  return assemble(\n    fn,\n    this,\n    strategy,\n    options.cache.create(),\n    options.serializer\n  )\n}\n\nfunction strategyVariadic (fn, options) {\n  var strategy = variadic\n\n  return assemble(\n    fn,\n    this,\n    strategy,\n    options.cache.create(),\n    options.serializer\n  )\n}\n\nfunction strategyMonadic (fn, options) {\n  var strategy = monadic\n\n  return assemble(\n    fn,\n    this,\n    strategy,\n    options.cache.create(),\n    options.serializer\n  )\n}\n\n//\n// Serializer\n//\n\nfunction serializerDefault () {\n  return JSON.stringify(arguments)\n}\n\n//\n// Cache\n//\n\nfunction ObjectWithoutPrototypeCache () {\n  this.cache = Object.create(null)\n}\n\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n  return (key in this.cache)\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n  return this.cache[key]\n}\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n  this.cache[key] = value\n}\n\nvar cacheDefault = {\n  create: function create () {\n    return new ObjectWithoutPrototypeCache()\n  }\n}\n\n//\n// API\n//\n\nmodule.exports = memoize\nmodule.exports.strategies = {\n  variadic: strategyVariadic,\n  monadic: strategyMonadic\n}\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(308);\n\nmodule.exports = Function.prototype.bind || implementation;\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isTextField; });\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input, or that it is contenteditable.\n */\nfunction isTextField(element) {\n  try {\n    var isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n    var isTextArea = element.tagName === \"TEXTAREA\";\n    var isContentEditable = element.contentEditable === \"true\";\n    return isTextInput || isTextArea || isContentEditable || false;\n  } catch (error) {\n    // Safari throws an exception when trying to get `selectionStart`\n    // on non-text <input> elements (which, understandably, don't\n    // have the text selection API). We catch this via a try/catch\n    // block, as opposed to a more explicit check of the element's\n    // input types, because of Safari's non-standard behavior. This\n    // also means we don't have to worry about the list of input\n    // types that support `selectionStart` changing as the HTML spec\n    // evolves over time.\n    return false;\n  }\n}\n\n\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return setTextFieldValue; });\nfunction setTextFieldValue(element, value) {\n  element.value = value;\n}\n\n\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"b\", function() { return /* binding */ slot_fill_Slot; });\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ slot_fill_Fill; });\n__webpack_require__.d(__webpack_exports__, \"c\", function() { return /* binding */ createSlotFill; });\n\n// UNUSED EXPORTS: useSlot, Provider\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/superPropBase.js\n\nfunction _superPropBase(object, property) {\n  while (!Object.prototype.hasOwnProperty.call(object, property)) {\n    object = Object(getPrototypeOf[\"a\" /* default */])(object);\n    if (object === null) break;\n  }\n\n  return object;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/get.js\n\nfunction get_get(target, property, receiver) {\n  if (typeof Reflect !== \"undefined\" && Reflect.get) {\n    get_get = Reflect.get;\n  } else {\n    get_get = function _get(target, property, receiver) {\n      var base = _superPropBase(target, property);\n      if (!base) return;\n      var desc = Object.getOwnPropertyDescriptor(base, property);\n\n      if (desc.get) {\n        return desc.get.call(receiver);\n      }\n\n      return desc.value;\n    };\n  }\n\n  return get_get(target, property, receiver || target);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + 1 modules\nvar context = __webpack_require__(118);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/slot.js\n\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar slot_SlotComponent = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(SlotComponent, _Component);\n\n  var _super = _createSuper(SlotComponent);\n\n  function SlotComponent() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, SlotComponent);\n\n    _this = _super.apply(this, arguments);\n    _this.isUnmounted = false;\n    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(SlotComponent, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var registerSlot = this.props.registerSlot;\n      registerSlot(this.props.name, this);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var unregisterSlot = this.props.unregisterSlot;\n      this.isUnmounted = true;\n      unregisterSlot(this.props.name, this);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          name = _this$props.name,\n          unregisterSlot = _this$props.unregisterSlot,\n          registerSlot = _this$props.registerSlot;\n\n      if (prevProps.name !== name) {\n        unregisterSlot(prevProps.name);\n        registerSlot(name, this);\n      }\n    }\n  }, {\n    key: \"bindNode\",\n    value: function bindNode(node) {\n      this.node = node;\n    }\n  }, {\n    key: \"forceUpdate\",\n    value: function forceUpdate() {\n      if (this.isUnmounted) {\n        return;\n      }\n\n      get_get(Object(getPrototypeOf[\"a\" /* default */])(SlotComponent.prototype), \"forceUpdate\", this).call(this);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          name = _this$props2.name,\n          _this$props2$fillProp = _this$props2.fillProps,\n          fillProps = _this$props2$fillProp === void 0 ? {} : _this$props2$fillProp,\n          getFills = _this$props2.getFills;\n      var fills = Object(external_this_lodash_[\"map\"])(getFills(name, this), function (fill) {\n        var fillKey = fill.occurrence;\n        var fillChildren = Object(external_this_lodash_[\"isFunction\"])(fill.children) ? fill.children(fillProps) : fill.children;\n        return external_this_wp_element_[\"Children\"].map(fillChildren, function (child, childIndex) {\n          if (!child || Object(external_this_lodash_[\"isString\"])(child)) {\n            return child;\n          }\n\n          var childKey = \"\".concat(fillKey, \"---\").concat(child.key || childIndex);\n          return Object(external_this_wp_element_[\"cloneElement\"])(child, {\n            key: childKey\n          });\n        });\n      }).filter( // In some cases fills are rendered only when some conditions apply.\n      // This ensures that we only use non-empty fills when rendering, i.e.,\n      // it allows us to render wrappers only when the fills are actually present.\n      Object(external_this_lodash_[\"negate\"])(external_this_wp_element_[\"isEmptyElement\"]));\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_lodash_[\"isFunction\"])(children) ? children(fills) : fills);\n    }\n  }]);\n\n  return SlotComponent;\n}(external_this_wp_element_[\"Component\"]);\n\nvar slot_Slot = function Slot(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(context[\"a\" /* Consumer */], null, function (_ref) {\n    var registerSlot = _ref.registerSlot,\n        unregisterSlot = _ref.unregisterSlot,\n        getFills = _ref.getFills;\n    return Object(external_this_wp_element_[\"createElement\"])(slot_SlotComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n      registerSlot: registerSlot,\n      unregisterSlot: unregisterSlot,\n      getFills: getFills\n    }));\n  });\n};\n\n/* harmony default export */ var slot_fill_slot = (slot_Slot);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/fill.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar occurrences = 0;\n\nfunction fill_FillComponent(_ref) {\n  var name = _ref.name,\n      children = _ref.children,\n      registerFill = _ref.registerFill,\n      unregisterFill = _ref.unregisterFill;\n  var slot = Object(context[\"c\" /* useSlot */])(name);\n  var ref = Object(external_this_wp_element_[\"useRef\"])({\n    name: name,\n    children: children\n  });\n\n  if (!ref.current.occurrence) {\n    ref.current.occurrence = ++occurrences;\n  }\n\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    registerFill(name, ref.current);\n    return function () {\n      return unregisterFill(name, ref.current);\n    };\n  }, []);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    ref.current.children = children;\n\n    if (slot) {\n      slot.forceUpdate();\n    }\n  }, [children]);\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (name === ref.current.name) {\n      // ignore initial effect\n      return;\n    }\n\n    unregisterFill(ref.current.name, ref.current);\n    ref.current.name = name;\n    registerFill(name, ref.current);\n  }, [name]);\n\n  if (!slot || !slot.node) {\n    return null;\n  } // If a function is passed as a child, provide it with the fillProps.\n\n\n  if (Object(external_this_lodash_[\"isFunction\"])(children)) {\n    children = children(slot.props.fillProps);\n  }\n\n  return Object(external_this_wp_element_[\"createPortal\"])(children, slot.node);\n}\n\nvar fill_Fill = function Fill(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(context[\"a\" /* Consumer */], null, function (_ref2) {\n    var registerFill = _ref2.registerFill,\n        unregisterFill = _ref2.unregisterFill;\n    return Object(external_this_wp_element_[\"createElement\"])(fill_FillComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n      registerFill: registerFill,\n      unregisterFill: unregisterFill\n    }));\n  });\n};\n\n/* harmony default export */ var slot_fill_fill = (fill_Fill);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js\nvar slot_fill_context = __webpack_require__(128);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction bubbles_virtually_slot_Slot(_ref) {\n  var name = _ref.name,\n      _ref$fillProps = _ref.fillProps,\n      fillProps = _ref$fillProps === void 0 ? {} : _ref$fillProps,\n      _ref$as = _ref.as,\n      Component = _ref$as === void 0 ? 'div' : _ref$as,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"name\", \"fillProps\", \"as\"]);\n\n  var registry = Object(external_this_wp_element_[\"useContext\"])(slot_fill_context[\"a\" /* default */]);\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    registry.registerSlot(name, ref, fillProps);\n    return function () {\n      registry.unregisterSlot(name, ref);\n    }; // We are not including fillProps in the deps because we don't want to\n    // unregister and register the slot whenever fillProps change, which would\n    // cause the fill to be re-mounted. We are only considering the initial value\n    // of fillProps.\n  }, [registry.registerSlot, registry.unregisterSlot, name]); // fillProps may be an update that interacts with the layout, so we\n  // useLayoutEffect\n\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    registry.updateSlot(name, fillProps);\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(Component, Object(esm_extends[\"a\" /* default */])({\n    ref: ref\n  }, props));\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js\nvar use_slot = __webpack_require__(153);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/fill.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction useForceUpdate() {\n  var _useState = Object(external_this_wp_element_[\"useState\"])({}),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      setState = _useState2[1];\n\n  return function () {\n    return setState({});\n  };\n}\n\nfunction bubbles_virtually_fill_Fill(_ref) {\n  var name = _ref.name,\n      children = _ref.children;\n  var slot = Object(use_slot[\"a\" /* default */])(name);\n  var ref = Object(external_this_wp_element_[\"useRef\"])({\n    rerender: useForceUpdate()\n  });\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // We register fills so we can keep track of their existance.\n    // Some Slot implementations need to know if there're already fills\n    // registered so they can choose to render themselves or not.\n    slot.registerFill(ref);\n    return function () {\n      slot.unregisterFill(ref);\n    };\n  }, [slot.registerFill, slot.unregisterFill]);\n\n  if (!slot.ref || !slot.ref.current) {\n    return null;\n  }\n\n  if (typeof children === 'function') {\n    children = children(slot.fillProps);\n  }\n\n  return Object(external_this_wp_element_[\"createPortal\"])(children, slot.ref.current);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction slot_fill_Slot(_ref) {\n  var bubblesVirtually = _ref.bubblesVirtually,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"bubblesVirtually\"]);\n\n  if (bubblesVirtually) {\n    return Object(external_this_wp_element_[\"createElement\"])(bubbles_virtually_slot_Slot, props);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(slot_fill_slot, props);\n}\nfunction slot_fill_Fill(props) {\n  // We're adding both Fills here so they can register themselves before\n  // their respective slot has been registered. Only the Fill that has a slot\n  // will render. The other one will return null.\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(slot_fill_fill, props), Object(external_this_wp_element_[\"createElement\"])(bubbles_virtually_fill_Fill, props));\n}\nfunction createSlotFill(name) {\n  var FillComponent = function FillComponent(props) {\n    return Object(external_this_wp_element_[\"createElement\"])(slot_fill_Fill, Object(esm_extends[\"a\" /* default */])({\n      name: name\n    }, props));\n  };\n\n  FillComponent.displayName = name + 'Fill';\n\n  var SlotComponent = function SlotComponent(props) {\n    return Object(external_this_wp_element_[\"createElement\"])(slot_fill_Slot, Object(esm_extends[\"a\" /* default */])({\n      name: name\n    }, props));\n  };\n\n  SlotComponent.displayName = name + 'Slot';\n  return {\n    Fill: FillComponent,\n    Slot: SlotComponent\n  };\n}\n\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(172);\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"c\", function() { return /* binding */ context_useSlot; });\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ Consumer; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-context.js\nvar slot_fill_context = __webpack_require__(128);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js\n\n\n\n\n\n\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return Object(esm_typeof[\"a\" /* default */])(key) === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (Object(esm_typeof[\"a\" /* default */])(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (Object(esm_typeof[\"a\" /* default */])(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction useSlotRegistry() {\n  var _useState = Object(external_this_wp_element_[\"useState\"])({}),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      slots = _useState2[0],\n      setSlots = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])({}),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      fills = _useState4[0],\n      setFills = _useState4[1];\n\n  var registerSlot = Object(external_this_wp_element_[\"useCallback\"])(function (name, ref, fillProps) {\n    setSlots(function (prevSlots) {\n      var slot = prevSlots[name] || {};\n      return _objectSpread({}, prevSlots, Object(defineProperty[\"a\" /* default */])({}, name, _objectSpread({}, slot, {\n        ref: ref || slot.ref,\n        fillProps: fillProps || slot.fillProps || {}\n      })));\n    });\n  }, []);\n  var unregisterSlot = Object(external_this_wp_element_[\"useCallback\"])(function (name, ref) {\n    setSlots(function (prevSlots) {\n      var slot = prevSlots[name],\n          nextSlots = Object(objectWithoutProperties[\"a\" /* default */])(prevSlots, [name].map(_toPropertyKey)); // Make sure we're not unregistering a slot registered by another element\n      // See https://github.com/WordPress/gutenberg/pull/19242#issuecomment-590295412\n\n\n      if ((slot === null || slot === void 0 ? void 0 : slot.ref) === ref) {\n        return nextSlots;\n      }\n\n      return prevSlots;\n    });\n  }, []);\n  var updateSlot = Object(external_this_wp_element_[\"useCallback\"])(function (name, fillProps) {\n    var slot = slots[name];\n\n    if (!slot) {\n      return;\n    }\n\n    if (!external_this_wp_isShallowEqual_default()(slot.fillProps, fillProps)) {\n      slot.fillProps = fillProps;\n      var slotFills = fills[name];\n\n      if (slotFills) {\n        // Force update fills\n        slotFills.map(function (fill) {\n          return fill.current.rerender();\n        });\n      }\n    }\n  }, [slots, fills]);\n  var registerFill = Object(external_this_wp_element_[\"useCallback\"])(function (name, ref) {\n    setFills(function (prevFills) {\n      return _objectSpread({}, prevFills, Object(defineProperty[\"a\" /* default */])({}, name, [].concat(Object(toConsumableArray[\"a\" /* default */])(prevFills[name] || []), [ref])));\n    });\n  }, []);\n  var unregisterFill = Object(external_this_wp_element_[\"useCallback\"])(function (name, ref) {\n    setFills(function (prevFills) {\n      if (prevFills[name]) {\n        return _objectSpread({}, prevFills, Object(defineProperty[\"a\" /* default */])({}, name, prevFills[name].filter(function (fillRef) {\n          return fillRef !== ref;\n        })));\n      }\n\n      return prevFills;\n    });\n  }, []); // Memoizing the return value so it can be directly passed to Provider value\n\n  var registry = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return {\n      slots: slots,\n      fills: fills,\n      registerSlot: registerSlot,\n      updateSlot: updateSlot,\n      unregisterSlot: unregisterSlot,\n      registerFill: registerFill,\n      unregisterFill: unregisterFill\n    };\n  }, [slots, fills, registerSlot, updateSlot, unregisterSlot, registerFill, unregisterFill]);\n  return registry;\n}\n\nfunction slot_fill_provider_SlotFillProvider(_ref) {\n  var children = _ref.children;\n  var registry = useSlotRegistry();\n  return Object(external_this_wp_element_[\"createElement\"])(slot_fill_context[\"a\" /* default */].Provider, {\n    value: registry\n  }, children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js\n\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar SlotFillContext = Object(external_this_wp_element_[\"createContext\"])({\n  registerSlot: function registerSlot() {},\n  unregisterSlot: function unregisterSlot() {},\n  registerFill: function registerFill() {},\n  unregisterFill: function unregisterFill() {},\n  getSlot: function getSlot() {},\n  getFills: function getFills() {},\n  subscribe: function subscribe() {}\n});\nvar Provider = SlotFillContext.Provider,\n    Consumer = SlotFillContext.Consumer;\n\nvar context_SlotFillProvider = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(SlotFillProvider, _Component);\n\n  var _super = _createSuper(SlotFillProvider);\n\n  function SlotFillProvider() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, SlotFillProvider);\n\n    _this = _super.apply(this, arguments);\n    _this.registerSlot = _this.registerSlot.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.registerFill = _this.registerFill.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.unregisterSlot = _this.unregisterSlot.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.unregisterFill = _this.unregisterFill.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getSlot = _this.getSlot.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getFills = _this.getFills.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.hasFills = _this.hasFills.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.subscribe = _this.subscribe.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.slots = {};\n    _this.fills = {};\n    _this.listeners = [];\n    _this.contextValue = {\n      registerSlot: _this.registerSlot,\n      unregisterSlot: _this.unregisterSlot,\n      registerFill: _this.registerFill,\n      unregisterFill: _this.unregisterFill,\n      getSlot: _this.getSlot,\n      getFills: _this.getFills,\n      hasFills: _this.hasFills,\n      subscribe: _this.subscribe\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(SlotFillProvider, [{\n    key: \"registerSlot\",\n    value: function registerSlot(name, slot) {\n      var previousSlot = this.slots[name];\n      this.slots[name] = slot;\n      this.triggerListeners(); // Sometimes the fills are registered after the initial render of slot\n      // But before the registerSlot call, we need to rerender the slot\n\n      this.forceUpdateSlot(name); // If a new instance of a slot is being mounted while another with the\n      // same name exists, force its update _after_ the new slot has been\n      // assigned into the instance, such that its own rendering of children\n      // will be empty (the new Slot will subsume all fills for this name).\n\n      if (previousSlot) {\n        previousSlot.forceUpdate();\n      }\n    }\n  }, {\n    key: \"registerFill\",\n    value: function registerFill(name, instance) {\n      this.fills[name] = [].concat(Object(toConsumableArray[\"a\" /* default */])(this.fills[name] || []), [instance]);\n      this.forceUpdateSlot(name);\n    }\n  }, {\n    key: \"unregisterSlot\",\n    value: function unregisterSlot(name, instance) {\n      // If a previous instance of a Slot by this name unmounts, do nothing,\n      // as the slot and its fills should only be removed for the current\n      // known instance.\n      if (this.slots[name] !== instance) {\n        return;\n      }\n\n      delete this.slots[name];\n      this.triggerListeners();\n    }\n  }, {\n    key: \"unregisterFill\",\n    value: function unregisterFill(name, instance) {\n      this.fills[name] = Object(external_this_lodash_[\"without\"])(this.fills[name], instance);\n      this.resetFillOccurrence(name);\n      this.forceUpdateSlot(name);\n    }\n  }, {\n    key: \"getSlot\",\n    value: function getSlot(name) {\n      return this.slots[name];\n    }\n  }, {\n    key: \"getFills\",\n    value: function getFills(name, slotInstance) {\n      // Fills should only be returned for the current instance of the slot\n      // in which they occupy.\n      if (this.slots[name] !== slotInstance) {\n        return [];\n      }\n\n      return Object(external_this_lodash_[\"sortBy\"])(this.fills[name], 'occurrence');\n    }\n  }, {\n    key: \"hasFills\",\n    value: function hasFills(name) {\n      return this.fills[name] && !!this.fills[name].length;\n    }\n  }, {\n    key: \"resetFillOccurrence\",\n    value: function resetFillOccurrence(name) {\n      Object(external_this_lodash_[\"forEach\"])(this.fills[name], function (instance) {\n        instance.occurrence = undefined;\n      });\n    }\n  }, {\n    key: \"forceUpdateSlot\",\n    value: function forceUpdateSlot(name) {\n      var slot = this.getSlot(name);\n\n      if (slot) {\n        slot.forceUpdate();\n      }\n    }\n  }, {\n    key: \"triggerListeners\",\n    value: function triggerListeners() {\n      this.listeners.forEach(function (listener) {\n        return listener();\n      });\n    }\n  }, {\n    key: \"subscribe\",\n    value: function subscribe(listener) {\n      var _this2 = this;\n\n      this.listeners.push(listener);\n      return function () {\n        _this2.listeners = Object(external_this_lodash_[\"without\"])(_this2.listeners, listener);\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(Provider, {\n        value: this.contextValue\n      }, Object(external_this_wp_element_[\"createElement\"])(slot_fill_provider_SlotFillProvider, null, this.props.children));\n    }\n  }]);\n\n  return SlotFillProvider;\n}(external_this_wp_element_[\"Component\"]);\n/**\n * React hook returning the active slot given a name.\n *\n * @param {string} name Slot name.\n * @return {Object} Slot object.\n */\n\n\nvar context_useSlot = function useSlot(name) {\n  var _useContext = Object(external_this_wp_element_[\"useContext\"])(SlotFillContext),\n      getSlot = _useContext.getSlot,\n      subscribe = _useContext.subscribe;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(getSlot(name)),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      slot = _useState2[0],\n      setSlot = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    setSlot(getSlot(name));\n    var unsubscribe = subscribe(function () {\n      setSlot(getSlot(name));\n    });\n    return unsubscribe;\n  }, [name]);\n  return slot;\n};\n/* harmony default export */ var context = __webpack_exports__[\"b\"] = (context_SlotFillProvider);\n\n\n\n/***/ }),\n/* 119 */,\n/* 120 */,\n/* 121 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-ispropertykey\n\nmodule.exports = function IsPropertyKey(argument) {\n\treturn typeof argument === 'string' || typeof argument === 'symbol';\n};\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(9);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21);\n/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31);\n/* harmony import */ var _wordpress_dom__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_wordpress_dom__WEBPACK_IMPORTED_MODULE_9__);\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar withConstrainedTabbing = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_7__[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return /*#__PURE__*/function (_Component) {\n    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(_class, _Component);\n\n    var _super = _createSuper(_class);\n\n    function _class() {\n      var _this;\n\n      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(this, _class);\n\n      _this = _super.apply(this, arguments);\n      _this.focusContainRef = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createRef\"])();\n      _this.handleTabBehaviour = _this.handleTabBehaviour.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(_this));\n      return _this;\n    }\n\n    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_class, [{\n      key: \"handleTabBehaviour\",\n      value: function handleTabBehaviour(event) {\n        if (event.keyCode !== _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_8__[\"TAB\"]) {\n          return;\n        }\n\n        var tabbables = _wordpress_dom__WEBPACK_IMPORTED_MODULE_9__[\"focus\"].tabbable.find(this.focusContainRef.current);\n\n        if (!tabbables.length) {\n          return;\n        }\n\n        var firstTabbable = tabbables[0];\n        var lastTabbable = tabbables[tabbables.length - 1];\n\n        if (event.shiftKey && event.target === firstTabbable) {\n          event.preventDefault();\n          lastTabbable.focus();\n        } else if (!event.shiftKey && event.target === lastTabbable) {\n          event.preventDefault();\n          firstTabbable.focus();\n          /*\n           * When pressing Tab and none of the tabbables has focus, the keydown\n           * event happens on the wrapper div: move focus on the first tabbable.\n           */\n        } else if (!tabbables.includes(event.target)) {\n          event.preventDefault();\n          firstTabbable.focus();\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        // Disable reason: this component is non-interactive, but must capture\n        // events from the wrapped component to determine when the Tab key is used.\n\n        /* eslint-disable jsx-a11y/no-static-element-interactions */\n        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(\"div\", {\n          onKeyDown: this.handleTabBehaviour,\n          ref: this.focusContainRef,\n          tabIndex: \"-1\"\n        }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(WrappedComponent, this.props));\n        /* eslint-enable jsx-a11y/no-static-element-interactions */\n      }\n    }]);\n\n    return _class;\n  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"Component\"]);\n}, 'withConstrainedTabbing');\n/* harmony default export */ __webpack_exports__[\"a\"] = (withConstrainedTabbing);\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(9);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(187);\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns true if the given object is component-like. An object is component-\n * like if it is an instance of wp.element.Component, or is a function.\n *\n * @param {*} object Object to test.\n *\n * @return {boolean} Whether object is component-like.\n */\n\nfunction isComponentLike(object) {\n  return object instanceof _wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"Component\"] || typeof object === 'function';\n}\n/**\n * Higher Order Component used to be used to wrap disposable elements like\n * sidebars, modals, dropdowns. When mounting the wrapped component, we track a\n * reference to the current active element so we know where to restore focus\n * when the component is unmounted.\n *\n * @param {(WPComponent|Object)} options The component to be enhanced with\n *                                      focus return behavior, or an object\n *                                      describing the component and the\n *                                      focus return characteristics.\n *\n * @return {WPComponent} Component with the focus restauration behaviour.\n */\n\n\nfunction withFocusReturn(options) {\n  // Normalize as overloaded form `withFocusReturn( options )( Component )`\n  // or as `withFocusReturn( Component )`.\n  if (isComponentLike(options)) {\n    var WrappedComponent = options;\n    return withFocusReturn({})(WrappedComponent);\n  }\n\n  var _options$onFocusRetur = options.onFocusReturn,\n      onFocusReturn = _options$onFocusRetur === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_7__[\"stubTrue\"] : _options$onFocusRetur;\n  return function (WrappedComponent) {\n    var FocusReturn = /*#__PURE__*/function (_Component) {\n      Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(FocusReturn, _Component);\n\n      var _super = _createSuper(FocusReturn);\n\n      function FocusReturn() {\n        var _this;\n\n        Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(this, FocusReturn);\n\n        _this = _super.apply(this, arguments);\n        _this.ownFocusedElements = new Set();\n        _this.activeElementOnMount = document.activeElement;\n\n        _this.setIsFocusedFalse = function () {\n          return _this.isFocused = false;\n        };\n\n        _this.setIsFocusedTrue = function (event) {\n          _this.ownFocusedElements.add(event.target);\n\n          _this.isFocused = true;\n        };\n\n        return _this;\n      }\n\n      Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(FocusReturn, [{\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          var activeElementOnMount = this.activeElementOnMount,\n              isFocused = this.isFocused,\n              ownFocusedElements = this.ownFocusedElements;\n\n          if (!isFocused) {\n            return;\n          } // Defer to the component's own explicit focus return behavior,\n          // if specified. The function should return `false` to prevent\n          // the default behavior otherwise occurring here. This allows\n          // for support that the `onFocusReturn` decides to allow the\n          // default behavior to occur under some conditions.\n\n\n          if (onFocusReturn() === false) {\n            return;\n          }\n\n          var stack = [].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(lodash__WEBPACK_IMPORTED_MODULE_7__[\"without\"].apply(void 0, [this.props.focus.focusHistory].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(ownFocusedElements)))), [activeElementOnMount]);\n          var candidate;\n\n          while (candidate = stack.pop()) {\n            if (document.body.contains(candidate)) {\n              candidate.focus();\n              return;\n            }\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(\"div\", {\n            onFocus: this.setIsFocusedTrue,\n            onBlur: this.setIsFocusedFalse\n          }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(WrappedComponent, this.props.childProps));\n        }\n      }]);\n\n      return FocusReturn;\n    }(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"Component\"]);\n\n    return function (props) {\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(_context__WEBPACK_IMPORTED_MODULE_9__[/* Consumer */ \"a\"], null, function (context) {\n        return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__[\"createElement\"])(FocusReturn, {\n          childProps: props,\n          focus: context\n        });\n      });\n    };\n  };\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_8__[\"createHigherOrderComponent\"])(withFocusReturn, 'withFocusReturn'));\n\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction stopPropagation(event) {\n  event.stopPropagation();\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"forwardRef\"])(function (_ref, ref) {\n  var children = _ref.children,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"children\"]);\n\n  // Disable reason: this stops certain events from propagating outside of the component.\n  //   - onMouseDown is disabled as this can cause interactions with other DOM elements\n\n  /* eslint-disable jsx-a11y/no-static-element-interactions */\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"createElement\"])(\"div\", Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({}, props, {\n    ref: ref,\n    onMouseDown: stopPropagation\n  }), children);\n  /* eslint-enable jsx-a11y/no-static-element-interactions */\n}));\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CompositeItem; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return useCompositeItem; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(51);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67);\n/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94);\n/* harmony import */ var reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(54);\n/* harmony import */ var reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(59);\n/* harmony import */ var reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83);\n/* harmony import */ var reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(86);\n/* harmony import */ var reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(85);\n/* harmony import */ var _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(106);\n/* harmony import */ var reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(95);\n/* harmony import */ var reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(57);\n/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(53);\n/* harmony import */ var _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(103);\n/* harmony import */ var reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(114);\n/* harmony import */ var _setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(115);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getWidget(itemElement) {\n  return itemElement.querySelector(\"[data-composite-item-widget]\");\n}\n\nfunction useItem(options) {\n  return Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useMemo\"])(function () {\n    var _options$items;\n\n    return (_options$items = options.items) === null || _options$items === void 0 ? void 0 : _options$items.find(function (item) {\n      return options.id && item.id === options.id;\n    });\n  }, [options.items, options.id]);\n}\n\nfunction targetIsAnotherItem(event, items) {\n  if (Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ \"a\"])(event)) return false;\n\n  for (var _iterator = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* b */ \"c\"])(items), _step; !(_step = _iterator()).done;) {\n    var item = _step.value;\n\n    if (item.ref.current === event.target) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nvar useCompositeItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_2__[/* createHook */ \"a\"])({\n  name: \"CompositeItem\",\n  compose: [_Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ \"a\"], _Id_Id_js__WEBPACK_IMPORTED_MODULE_15__[/* unstable_useId */ \"a\"]],\n  useState: _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* u */ \"g\"],\n  propsAreEqual: function propsAreEqual(prev, next) {\n    if (!next.id || prev.id !== next.id) {\n      return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ \"a\"].unstable_propsAreEqual(prev, next);\n    }\n\n    var prevCurrentId = prev.currentId,\n        prevMoves = prev.unstable_moves,\n        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(prev, [\"currentId\", \"unstable_moves\"]);\n\n    var nextCurrentId = next.currentId,\n        nextMoves = next.unstable_moves,\n        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(next, [\"currentId\", \"unstable_moves\"]);\n\n    if (nextCurrentId !== prevCurrentId) {\n      if (next.id === nextCurrentId || next.id === prevCurrentId) {\n        return false;\n      }\n    } else if (prevMoves !== nextMoves) {\n      return false;\n    }\n\n    return _Clickable_Clickable_js__WEBPACK_IMPORTED_MODULE_11__[/* useClickable */ \"a\"].unstable_propsAreEqual(prevProps, nextProps);\n  },\n  useOptions: function useOptions(options) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({}, options), {}, {\n      id: options.id,\n      currentId: Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_14__[/* g */ \"e\"])(options),\n      unstable_clickOnSpace: options.unstable_hasActiveWidget ? false : options.unstable_clickOnSpace\n    });\n  },\n  useProps: function useProps(options, _ref) {\n    var _options$items2;\n\n    var htmlRef = _ref.ref,\n        _ref$tabIndex = _ref.tabIndex,\n        htmlTabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n        htmlOnFocus = _ref.onFocus,\n        htmlOnBlur = _ref.onBlur,\n        htmlOnKeyDown = _ref.onKeyDown,\n        htmlOnClick = _ref.onClick,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_ref, [\"ref\", \"tabIndex\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onClick\"]);\n\n    var ref = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"])(null);\n    var id = options.id;\n    var trulyDisabled = options.disabled && !options.focusable;\n    var isCurrentItem = options.currentId === id;\n    var isCurrentItemRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(isCurrentItem);\n    var hasFocusedComposite = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useRef\"])(false);\n    var item = useItem(options);\n    var onFocusRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnFocus);\n    var onBlurRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnBlur);\n    var onKeyDownRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnKeyDown);\n    var onClickRef = Object(reakit_utils_useLiveRef__WEBPACK_IMPORTED_MODULE_6__[/* useLiveRef */ \"a\"])(htmlOnClick);\n    var shouldTabIndex = !options.unstable_virtual && !options.unstable_hasActiveWidget && isCurrentItem || // We don't want to set tabIndex=\"-1\" when using CompositeItem as a\n    // standalone component, without state props.\n    !((_options$items2 = options.items) === null || _options$items2 === void 0 ? void 0 : _options$items2.length);\n    Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"])(function () {\n      var _options$registerItem;\n\n      if (!id) return undefined;\n      (_options$registerItem = options.registerItem) === null || _options$registerItem === void 0 ? void 0 : _options$registerItem.call(options, {\n        id: id,\n        ref: ref,\n        disabled: !!trulyDisabled\n      });\n      return function () {\n        var _options$unregisterIt;\n\n        (_options$unregisterIt = options.unregisterItem) === null || _options$unregisterIt === void 0 ? void 0 : _options$unregisterIt.call(options, id);\n      };\n    }, [id, trulyDisabled, options.registerItem, options.unregisterItem]);\n    Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useEffect\"])(function () {\n      var element = ref.current;\n\n      if (!element) {\n         false ? undefined : void 0;\n        return;\n      } // `moves` will be incremented whenever next, previous, up, down, first,\n      // last or move have been called. This means that the composite item will\n      // be focused whenever some of these functions are called. We're using\n      // isCurrentItemRef instead of isCurrentItem because we don't want to\n      // focus the item if isCurrentItem changes (and options.moves doesn't).\n\n\n      if (options.unstable_moves && isCurrentItemRef.current) {\n        element.focus();\n      }\n    }, [options.unstable_moves]);\n    var onFocus = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onFocusRef$current, _options$setCurrentId;\n\n      (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);\n      if (event.defaultPrevented) return;\n      if (Object(reakit_utils_isPortalEvent__WEBPACK_IMPORTED_MODULE_9__[/* isPortalEvent */ \"a\"])(event)) return;\n      if (!id) return;\n      if (targetIsAnotherItem(event, options.items)) return;\n      (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, id); // When using aria-activedescendant, we want to make sure that the\n      // composite container receives focus, not the composite item.\n      // But we don't want to do this if the target is another focusable\n      // element inside the composite item, such as CompositeItemWidget.\n\n      if (options.unstable_virtual && options.baseId && Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ \"a\"])(event)) {\n        var target = event.target;\n        var composite = Object(reakit_utils_getDocument__WEBPACK_IMPORTED_MODULE_13__[/* getDocument */ \"a\"])(target).getElementById(options.baseId);\n\n        if (composite) {\n          hasFocusedComposite.current = true;\n          Object(reakit_utils_tabbable__WEBPACK_IMPORTED_MODULE_10__[/* ensureFocus */ \"a\"])(composite);\n        }\n      }\n    }, [id, options.items, options.setCurrentId, options.unstable_virtual, options.baseId]);\n    var onBlur = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onBlurRef$current;\n\n      if (options.unstable_virtual) {\n        if (hasFocusedComposite.current) {\n          // When hasFocusedComposite is true, composite has been focused\n          // right after focusing this item. This is an intermediate blur\n          // event, so we ignore it.\n          hasFocusedComposite.current = false;\n          event.preventDefault();\n          event.stopPropagation();\n          return;\n        }\n      }\n\n      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);\n    }, [options.unstable_virtual]);\n    var onCharacterKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onKeyDownRef$current;\n\n      (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n      if (!Object(reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ \"a\"])(event)) return;\n\n      if (event.key.length === 1 && event.key !== \" \") {\n        var widget = getWidget(event.currentTarget);\n\n        if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ \"a\"])(widget)) {\n          widget.focus();\n          var key = event.key; // Using RAF here because otherwise the key will be added twice\n          // to the input when using roving tabindex\n\n          window.requestAnimationFrame(function () {\n            Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ \"a\"])(widget, key);\n          });\n        }\n      }\n    }, []);\n    var onKeyDown = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useMemo\"])(function () {\n      return Object(reakit_utils_createOnKeyDown__WEBPACK_IMPORTED_MODULE_12__[/* createOnKeyDown */ \"a\"])({\n        onKeyDown: onCharacterKeyDown,\n        stopPropagation: true,\n        // We don't want to listen to focusable elements inside the composite\n        // item, such as a CompositeItemWidget.\n        shouldKeyDown: reakit_utils_isSelfTarget__WEBPACK_IMPORTED_MODULE_7__[/* isSelfTarget */ \"a\"],\n        keyMap: function keyMap() {\n          // `options.orientation` can also be undefined, which means that\n          // both `isVertical` and `isHorizontal` will be `true`.\n          var isVertical = options.orientation !== \"horizontal\";\n          var isHorizontal = options.orientation !== \"vertical\";\n          var isGrid = !!(item === null || item === void 0 ? void 0 : item.groupId);\n\n          var Delete = function Delete(event) {\n            var widget = getWidget(event.currentTarget);\n\n            if (widget && Object(reakit_utils_isTextField__WEBPACK_IMPORTED_MODULE_16__[/* isTextField */ \"a\"])(widget)) {\n              Object(_setTextFieldValue_78ab5d56_js__WEBPACK_IMPORTED_MODULE_17__[/* s */ \"a\"])(widget, \"\");\n            }\n          };\n\n          var up = options.up && function () {\n            return options.up();\n          };\n\n          var next = options.next && function () {\n            return options.next();\n          };\n\n          var down = options.down && function () {\n            return options.down();\n          };\n\n          var previous = options.previous && function () {\n            return options.previous();\n          };\n\n          return {\n            Delete: Delete,\n            Backspace: Delete,\n            ArrowUp: (isGrid || isVertical) && up,\n            ArrowRight: (isGrid || isHorizontal) && next,\n            ArrowDown: (isGrid || isVertical) && down,\n            ArrowLeft: (isGrid || isHorizontal) && previous,\n            Home: function Home(event) {\n              if (!isGrid || event.ctrlKey) {\n                var _options$first;\n\n                (_options$first = options.first) === null || _options$first === void 0 ? void 0 : _options$first.call(options);\n              } else {\n                var _options$previous;\n\n                (_options$previous = options.previous) === null || _options$previous === void 0 ? void 0 : _options$previous.call(options, true);\n              }\n            },\n            End: function End(event) {\n              if (!isGrid || event.ctrlKey) {\n                var _options$last;\n\n                (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);\n              } else {\n                var _options$next;\n\n                (_options$next = options.next) === null || _options$next === void 0 ? void 0 : _options$next.call(options, true);\n              }\n            },\n            PageUp: function PageUp() {\n              if (isGrid) {\n                var _options$up;\n\n                (_options$up = options.up) === null || _options$up === void 0 ? void 0 : _options$up.call(options, true);\n              } else {\n                var _options$first2;\n\n                (_options$first2 = options.first) === null || _options$first2 === void 0 ? void 0 : _options$first2.call(options);\n              }\n            },\n            PageDown: function PageDown() {\n              if (isGrid) {\n                var _options$down;\n\n                (_options$down = options.down) === null || _options$down === void 0 ? void 0 : _options$down.call(options, true);\n              } else {\n                var _options$last2;\n\n                (_options$last2 = options.last) === null || _options$last2 === void 0 ? void 0 : _options$last2.call(options);\n              }\n            }\n          };\n        }\n      });\n    }, [onCharacterKeyDown, options.orientation, item, options.up, options.next, options.down, options.previous, options.first, options.last]);\n    var onClick = Object(react__WEBPACK_IMPORTED_MODULE_3__[\"useCallback\"])(function (event) {\n      var _onClickRef$current;\n\n      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n      if (event.defaultPrevented) return;\n      var element = event.currentTarget;\n      var widget = getWidget(element);\n\n      if (widget && !Object(reakit_utils_hasFocusWithin__WEBPACK_IMPORTED_MODULE_8__[/* hasFocusWithin */ \"a\"])(widget)) {\n        // If there's a widget inside the composite item, we make sure it's\n        // focused when pressing enter, space or clicking on the composite item.\n        widget.focus();\n      }\n    }, []);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n      ref: Object(reakit_utils_useForkRef__WEBPACK_IMPORTED_MODULE_4__[/* useForkRef */ \"a\"])(ref, htmlRef),\n      id: id,\n      tabIndex: shouldTabIndex ? htmlTabIndex : -1,\n      \"aria-selected\": options.unstable_virtual && isCurrentItem ? true : undefined,\n      onFocus: onFocus,\n      onBlur: onBlur,\n      onKeyDown: onKeyDown,\n      onClick: onClick\n    }, htmlProps);\n  }\n});\nvar CompositeItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_1__[/* createComponent */ \"a\"])({\n  as: \"button\",\n  memo: true,\n  useHook: useCompositeItem\n});\n\n\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(465);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _toolbar_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77);\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ToolbarItem(_ref, ref) {\n  var children = _ref.children,\n      Component = _ref.as,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(_ref, [\"children\", \"as\"]);\n\n  var accessibleToolbarState = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"useContext\"])(_toolbar_context__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"]);\n\n  if (typeof children !== 'function' && !Component) {\n    typeof process !== \"undefined\" && process.env && \"production\" !== \"production\" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component.') : void 0;\n    return null;\n  }\n\n  var allProps = _objectSpread({}, props, {\n    ref: ref,\n    'data-experimental-toolbar-item': true\n  });\n\n  if (!accessibleToolbarState) {\n    if (Component) {\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"])(Component, allProps, children);\n    }\n\n    return children(allProps);\n  }\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"createElement\"])(reakit_Toolbar__WEBPACK_IMPORTED_MODULE_4__[/* ToolbarItem */ \"a\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({}, accessibleToolbarState, allProps, {\n    as: Component\n  }), children);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__[\"forwardRef\"])(ToolbarItem));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)))\n\n/***/ }),\n/* 128 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * WordPress dependencies\n */\n\n\nvar SlotFillContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createContext\"])({\n  slots: {},\n  fills: {},\n  registerSlot: function registerSlot() {\n    typeof process !== \"undefined\" && process.env && \"production\" !== \"production\" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_1___default()('Components must be wrapped within `SlotFillProvider`. ' + 'See https://developer.wordpress.org/block-editor/components/slot-fill/') : void 0;\n  },\n  updateSlot: function updateSlot() {},\n  unregisterSlot: function unregisterSlot() {},\n  registerFill: function registerFill() {},\n  unregisterFill: function unregisterFill() {}\n});\n/* harmony default export */ __webpack_exports__[\"a\"] = (SlotFillContext);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)))\n\n/***/ }),\n/* 129 */,\n/* 130 */,\n/* 131 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(133);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar callBind = __webpack_require__(176);\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.')) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar moment = __webpack_require__(43);\nvar momentValidationWrapper = __webpack_require__(350);\nvar core = __webpack_require__(351);\n\nmodule.exports = {\n\n  momentObj : core.createMomentChecker(\n    'object',\n    function(obj) {\n      return typeof obj === 'object';\n    },\n    function isValid(value) {\n      return momentValidationWrapper.isValidMoment(value);\n    },\n    'Moment'\n  ),\n\n  momentString : core.createMomentChecker(\n    'string',\n    function(str) {\n      return typeof str === 'string';\n    },\n    function isValid(value) {\n      return momentValidationWrapper.isValidMoment(moment(value));\n    },\n    'Moment'\n  ),\n\n  momentDurationObj : core.createMomentChecker(\n    'object',\n    function(obj) {\n      return typeof obj === 'object';\n    },\n    function isValid(value) {\n      return moment.isDuration(value);\n    },\n    'Duration'\n  ),\n\n};\n\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.HORIZONTAL_ORIENTATION, _constants.VERTICAL_ORIENTATION, _constants.VERTICAL_SCROLLABLE]);\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowCompare\n */\n\n\n\nvar shallowEqual = __webpack_require__(365);\n\n/**\n * Does a shallow comparison for props and state.\n * See ReactComponentWithPureRenderMixin\n * See also https://facebook.github.io/react/docs/shallow-compare.html\n */\nfunction shallowCompare(instance, nextProps, nextState) {\n  return (\n    !shallowEqual(instance.props, nextProps) ||\n    !shallowEqual(instance.state, nextState)\n  );\n}\n\nmodule.exports = shallowCompare;\n\n\n/***/ }),\n/* 138 */,\n/* 139 */\n/***/ (function(module, exports) {\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;\n\n/***/ }),\n/* 140 */,\n/* 141 */,\n/* 142 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Dashicon; });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/* !!!\nIF YOU ARE EDITING dashicon/index.jsx\nTHEN YOU ARE EDITING A FILE THAT GETS OUTPUT FROM THE DASHICONS REPO!\nDO NOT EDIT THAT FILE! EDIT index-header.jsx and index-footer.jsx instead\nOR if you're looking to change now SVGs get output, you'll need to edit strings in the Gruntfile :)\n!!! */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar Dashicon = /*#__PURE__*/function (_Component) {\n  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(Dashicon, _Component);\n\n  var _super = _createSuper(Dashicon);\n\n  function Dashicon() {\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(this, Dashicon);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(Dashicon, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          icon = _this$props.icon,\n          _this$props$size = _this$props.size,\n          size = _this$props$size === void 0 ? 20 : _this$props$size,\n          className = _this$props.className,\n          extraProps = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_this$props, [\"icon\", \"size\", \"className\"]);\n\n      var path;\n\n      switch (icon) {\n        case 'admin-appearance':\n          path = 'M14.48 11.06L7.41 3.99l1.5-1.5c.5-.56 2.3-.47 3.51.32 1.21.8 1.43 1.28 2.91 2.1 1.18.64 2.45 1.26 4.45.85zm-.71.71L6.7 4.7 4.93 6.47c-.39.39-.39 1.02 0 1.41l1.06 1.06c.39.39.39 1.03 0 1.42-.6.6-1.43 1.11-2.21 1.69-.35.26-.7.53-1.01.84C1.43 14.23.4 16.08 1.4 17.07c.99 1 2.84-.03 4.18-1.36.31-.31.58-.66.85-1.02.57-.78 1.08-1.61 1.69-2.21.39-.39 1.02-.39 1.41 0l1.06 1.06c.39.39 1.02.39 1.41 0z';\n          break;\n\n        case 'admin-collapse':\n          path = 'M10 2.16c4.33 0 7.84 3.51 7.84 7.84s-3.51 7.84-7.84 7.84S2.16 14.33 2.16 10 5.71 2.16 10 2.16zm2 11.72V6.12L6.18 9.97z';\n          break;\n\n        case 'admin-comments':\n          path = 'M5 2h9c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2h-2l-5 5v-5H5c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2z';\n          break;\n\n        case 'admin-customizer':\n          path = 'M18.33 3.57s.27-.8-.31-1.36c-.53-.52-1.22-.24-1.22-.24-.61.3-5.76 3.47-7.67 5.57-.86.96-2.06 3.79-1.09 4.82.92.98 3.96-.17 4.79-1 2.06-2.06 5.21-7.17 5.5-7.79zM1.4 17.65c2.37-1.56 1.46-3.41 3.23-4.64.93-.65 2.22-.62 3.08.29.63.67.8 2.57-.16 3.46-1.57 1.45-4 1.55-6.15.89z';\n          break;\n\n        case 'admin-generic':\n          path = 'M18 12h-2.18c-.17.7-.44 1.35-.81 1.93l1.54 1.54-2.1 2.1-1.54-1.54c-.58.36-1.23.63-1.91.79V19H8v-2.18c-.68-.16-1.33-.43-1.91-.79l-1.54 1.54-2.12-2.12 1.54-1.54c-.36-.58-.63-1.23-.79-1.91H1V9.03h2.17c.16-.7.44-1.35.8-1.94L2.43 5.55l2.1-2.1 1.54 1.54c.58-.37 1.24-.64 1.93-.81V2h3v2.18c.68.16 1.33.43 1.91.79l1.54-1.54 2.12 2.12-1.54 1.54c.36.59.64 1.24.8 1.94H18V12zm-8.5 1.5c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z';\n          break;\n\n        case 'admin-home':\n          path = 'M16 8.5l1.53 1.53-1.06 1.06L10 4.62l-6.47 6.47-1.06-1.06L10 2.5l4 4v-2h2v4zm-6-2.46l6 5.99V18H4v-5.97zM12 17v-5H8v5h4z';\n          break;\n\n        case 'admin-links':\n          path = 'M17.74 2.76c1.68 1.69 1.68 4.41 0 6.1l-1.53 1.52c-1.12 1.12-2.7 1.47-4.14 1.09l2.62-2.61.76-.77.76-.76c.84-.84.84-2.2 0-3.04-.84-.85-2.2-.85-3.04 0l-.77.76-3.38 3.38c-.37-1.44-.02-3.02 1.1-4.14l1.52-1.53c1.69-1.68 4.42-1.68 6.1 0zM8.59 13.43l5.34-5.34c.42-.42.42-1.1 0-1.52-.44-.43-1.13-.39-1.53 0l-5.33 5.34c-.42.42-.42 1.1 0 1.52.44.43 1.13.39 1.52 0zm-.76 2.29l4.14-4.15c.38 1.44.03 3.02-1.09 4.14l-1.52 1.53c-1.69 1.68-4.41 1.68-6.1 0-1.68-1.68-1.68-4.42 0-6.1l1.53-1.52c1.12-1.12 2.7-1.47 4.14-1.1l-4.14 4.15c-.85.84-.85 2.2 0 3.05.84.84 2.2.84 3.04 0z';\n          break;\n\n        case 'admin-media':\n          path = 'M13 11V4c0-.55-.45-1-1-1h-1.67L9 1H5L3.67 3H2c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h10c.55 0 1-.45 1-1zM7 4.5c1.38 0 2.5 1.12 2.5 2.5S8.38 9.5 7 9.5 4.5 8.38 4.5 7 5.62 4.5 7 4.5zM14 6h5v10.5c0 1.38-1.12 2.5-2.5 2.5S14 17.88 14 16.5s1.12-2.5 2.5-2.5c.17 0 .34.02.5.05V9h-3V6zm-4 8.05V13h2v3.5c0 1.38-1.12 2.5-2.5 2.5S7 17.88 7 16.5 8.12 14 9.5 14c.17 0 .34.02.5.05z';\n          break;\n\n        case 'admin-multisite':\n          path = 'M14.27 6.87L10 3.14 5.73 6.87 5 6.14l5-4.38 5 4.38zM14 8.42l-4.05 3.43L6 8.38v-.74l4-3.5 4 3.5v.78zM11 9.7V8H9v1.7h2zm-1.73 4.03L5 10 .73 13.73 0 13l5-4.38L10 13zm10 0L15 10l-4.27 3.73L10 13l5-4.38L20 13zM5 11l4 3.5V18H1v-3.5zm10 0l4 3.5V18h-8v-3.5zm-9 6v-2H4v2h2zm10 0v-2h-2v2h2z';\n          break;\n\n        case 'admin-network':\n          path = 'M16.95 2.58c1.96 1.95 1.96 5.12 0 7.07-1.51 1.51-3.75 1.84-5.59 1.01l-1.87 3.31-2.99.31L5 18H2l-1-2 7.95-7.69c-.92-1.87-.62-4.18.93-5.73 1.95-1.96 5.12-1.96 7.07 0zm-2.51 3.79c.74 0 1.33-.6 1.33-1.34 0-.73-.59-1.33-1.33-1.33-.73 0-1.33.6-1.33 1.33 0 .74.6 1.34 1.33 1.34z';\n          break;\n\n        case 'admin-page':\n          path = 'M6 15V2h10v13H6zm-1 1h8v2H3V5h2v11z';\n          break;\n\n        case 'admin-plugins':\n          path = 'M13.11 4.36L9.87 7.6 8 5.73l3.24-3.24c.35-.34 1.05-.2 1.56.32.52.51.66 1.21.31 1.55zm-8 1.77l.91-1.12 9.01 9.01-1.19.84c-.71.71-2.63 1.16-3.82 1.16H6.14L4.9 17.26c-.59.59-1.54.59-2.12 0-.59-.58-.59-1.53 0-2.12l1.24-1.24v-3.88c0-1.13.4-3.19 1.09-3.89zm7.26 3.97l3.24-3.24c.34-.35 1.04-.21 1.55.31.52.51.66 1.21.31 1.55l-3.24 3.25z';\n          break;\n\n        case 'admin-post':\n          path = 'M10.44 3.02l1.82-1.82 6.36 6.35-1.83 1.82c-1.05-.68-2.48-.57-3.41.36l-.75.75c-.92.93-1.04 2.35-.35 3.41l-1.83 1.82-2.41-2.41-2.8 2.79c-.42.42-3.38 2.71-3.8 2.29s1.86-3.39 2.28-3.81l2.79-2.79L4.1 9.36l1.83-1.82c1.05.69 2.48.57 3.4-.36l.75-.75c.93-.92 1.05-2.35.36-3.41z';\n          break;\n\n        case 'admin-settings':\n          path = 'M18 16V4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h13c.55 0 1-.45 1-1zM8 11h1c.55 0 1 .45 1 1s-.45 1-1 1H8v1.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V13H6c-.55 0-1-.45-1-1s.45-1 1-1h1V5.5c0-.28.22-.5.5-.5s.5.22.5.5V11zm5-2h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V5.5c0-.28.22-.5.5-.5s.5.22.5.5V7h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5V9z';\n          break;\n\n        case 'admin-site-alt':\n          path = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z';\n          break;\n\n        case 'admin-site-alt2':\n          path = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm2.92 12.34c0 .35.14.63.36.66.22.03.47-.22.58-.6l.2.08c.718.384 1.07 1.22.84 2-.15.69-.743 1.198-1.45 1.24-.49-1.21-2.11.06-3.56-.22-.612-.154-1.11-.6-1.33-1.19 1.19-.11 2.85-1.73 4.36-1.97zM8 11.27c.918 0 1.695-.68 1.82-1.59.44.54.41 1.324-.07 1.83-.255.223-.594.325-.93.28-.335-.047-.635-.236-.82-.52zm3-.76c.41.39 3-.06 3.52 1.09-.95-.2-2.95.61-3.47-1.08l-.05-.01zM9.73 5.45v.27c-.65-.77-1.33-1.07-1.61-.57-.28.5 1 1.11.76 1.88-.24.77-1.27.56-1.88 1.61-.61 1.05-.49 2.42 1.24 3.67-1.192-.132-2.19-.962-2.54-2.11-.4-1.2-.09-2.26-.78-2.46C4 7.46 3 8.71 3 9.8c-1.26-1.26.05-2.86-1.2-4.18C3.5 1.998 7.644.223 11.44 1.49c-1.1 1.02-1.722 2.458-1.71 3.96z';\n          break;\n\n        case 'admin-site-alt3':\n          path = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zM1.11 9.68h2.51c.04.91.167 1.814.38 2.7H1.84c-.403-.85-.65-1.764-.73-2.7zm8.57-5.4V1.19c.964.366 1.756 1.08 2.22 2 .205.347.386.708.54 1.08l-2.76.01zm3.22 1.35c.232.883.37 1.788.41 2.7H9.68v-2.7h3.22zM8.32 1.19v3.09H5.56c.154-.372.335-.733.54-1.08.462-.924 1.255-1.64 2.22-2.01zm0 4.44v2.7H4.7c.04-.912.178-1.817.41-2.7h3.21zm-4.7 2.69H1.11c.08-.936.327-1.85.73-2.7H4c-.213.886-.34 1.79-.38 2.7zM4.7 9.68h3.62v2.7H5.11c-.232-.883-.37-1.788-.41-2.7zm3.63 4v3.09c-.964-.366-1.756-1.08-2.22-2-.205-.347-.386-.708-.54-1.08l2.76-.01zm1.35 3.09v-3.04h2.76c-.154.372-.335.733-.54 1.08-.464.92-1.256 1.634-2.22 2v-.04zm0-4.44v-2.7h3.62c-.04.912-.178 1.817-.41 2.7H9.68zm4.71-2.7h2.51c-.08.936-.327 1.85-.73 2.7H14c.21-.87.337-1.757.38-2.65l.01-.05zm0-1.35c-.046-.894-.176-1.78-.39-2.65h2.16c.403.85.65 1.764.73 2.7l-2.5-.05zm1-4H13.6c-.324-.91-.793-1.76-1.39-2.52 1.244.56 2.325 1.426 3.14 2.52h.04zm-9.6-2.52c-.597.76-1.066 1.61-1.39 2.52H2.65c.815-1.094 1.896-1.96 3.14-2.52zm-3.15 12H4.4c.324.91.793 1.76 1.39 2.52-1.248-.567-2.33-1.445-3.14-2.55l-.01.03zm9.56 2.52c.597-.76 1.066-1.61 1.39-2.52h1.76c-.82 1.08-1.9 1.933-3.14 2.48l-.01.04z';\n          break;\n\n        case 'admin-site':\n          path = 'M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm3.46 11.95c0 1.47-.8 3.3-4.06 4.7.3-4.17-2.52-3.69-3.2-5 .126-1.1.804-2.063 1.8-2.55-1.552-.266-3-.96-4.18-2 .05.47.28.904.64 1.21-.782-.295-1.458-.817-1.94-1.5.977-3.225 3.883-5.482 7.25-5.63-.84 1.38-1.5 4.13 0 5.57C7.23 7 6.26 5 5.41 5.79c-1.13 1.06.33 2.51 3.42 3.08 3.29.59 3.66 1.58 3.63 3.08zm1.34-4c-.32-1.11.62-2.23 1.69-3.14 1.356 1.955 1.67 4.45.84 6.68-.77-1.89-2.17-2.32-2.53-3.57v.03z';\n          break;\n\n        case 'admin-tools':\n          path = 'M16.68 9.77c-1.34 1.34-3.3 1.67-4.95.99l-5.41 6.52c-.99.99-2.59.99-3.58 0s-.99-2.59 0-3.57l6.52-5.42c-.68-1.65-.35-3.61.99-4.95 1.28-1.28 3.12-1.62 4.72-1.06l-2.89 2.89 2.82 2.82 2.86-2.87c.53 1.58.18 3.39-1.08 4.65zM3.81 16.21c.4.39 1.04.39 1.43 0 .4-.4.4-1.04 0-1.43-.39-.4-1.03-.4-1.43 0-.39.39-.39 1.03 0 1.43z';\n          break;\n\n        case 'admin-users':\n          path = 'M10 9.25c-2.27 0-2.73-3.44-2.73-3.44C7 4.02 7.82 2 9.97 2c2.16 0 2.98 2.02 2.71 3.81 0 0-.41 3.44-2.68 3.44zm0 2.57L12.72 10c2.39 0 4.52 2.33 4.52 4.53v2.49s-3.65 1.13-7.24 1.13c-3.65 0-7.24-1.13-7.24-1.13v-2.49c0-2.25 1.94-4.48 4.47-4.48z';\n          break;\n\n        case 'album':\n          path = 'M0 18h10v-.26c1.52.4 3.17.35 4.76-.24 4.14-1.52 6.27-6.12 4.75-10.26-1.43-3.89-5.58-6-9.51-4.98V2H0v16zM9 3v14H1V3h8zm5.45 8.22c-.68 1.35-2.32 1.9-3.67 1.23-.31-.15-.57-.35-.78-.59V8.13c.8-.86 2.11-1.13 3.22-.58 1.35.68 1.9 2.32 1.23 3.67zm-2.75-.82c.22.16.53.12.7-.1.16-.22.12-.53-.1-.7s-.53-.12-.7.1c-.16.21-.12.53.1.7zm3.01 3.67c-1.17.78-2.56.99-3.83.69-.27-.06-.44-.34-.37-.61s.34-.43.62-.36l.17.04c.96.17 1.98-.01 2.86-.59.47-.32.86-.72 1.14-1.18.15-.23.45-.3.69-.16.23.15.3.46.16.69-.36.57-.84 1.08-1.44 1.48zm1.05 1.57c-1.48.99-3.21 1.32-4.84 1.06-.28-.05-.47-.32-.41-.6.05-.27.32-.45.61-.39l.22.04c1.31.15 2.68-.14 3.87-.94.71-.47 1.27-1.07 1.7-1.74.14-.24.45-.31.68-.16.24.14.31.45.16.69-.49.79-1.16 1.49-1.99 2.04z';\n          break;\n\n        case 'align-center':\n          path = 'M3 5h14V3H3v2zm12 8V7H5v6h10zM3 17h14v-2H3v2z';\n          break;\n\n        case 'align-full-width':\n          path = 'M17 13V3H3v10h14zM5 17h10v-2H5v2z';\n          break;\n\n        case 'align-left':\n          path = 'M3 5h14V3H3v2zm9 8V7H3v6h9zm2-4h3V7h-3v2zm0 4h3v-2h-3v2zM3 17h14v-2H3v2z';\n          break;\n\n        case 'align-none':\n          path = 'M3 5h14V3H3v2zm10 8V7H3v6h10zM3 17h14v-2H3v2z';\n          break;\n\n        case 'align-pull-left':\n          path = 'M9 16V4H3v12h6zm2-7h6V7h-6v2zm0 4h6v-2h-6v2z';\n          break;\n\n        case 'align-pull-right':\n          path = 'M17 16V4h-6v12h6zM9 7H3v2h6V7zm0 4H3v2h6v-2z';\n          break;\n\n        case 'align-right':\n          path = 'M3 5h14V3H3v2zm0 4h3V7H3v2zm14 4V7H8v6h9zM3 13h3v-2H3v2zm0 4h14v-2H3v2z';\n          break;\n\n        case 'align-wide':\n          path = 'M5 5h10V3H5v2zm12 8V7H3v6h14zM5 17h10v-2H5v2z';\n          break;\n\n        case 'analytics':\n          path = 'M18 18V2H2v16h16zM16 5H4V4h12v1zM7 7v3h3c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3zm1 2V7c1.1 0 2 .9 2 2H8zm8-1h-4V7h4v1zm0 3h-4V9h4v2zm0 2h-4v-1h4v1zm0 3H4v-1h12v1z';\n          break;\n\n        case 'archive':\n          path = 'M19 4v2H1V4h18zM2 7h16v10H2V7zm11 3V9H7v1h6z';\n          break;\n\n        case 'arrow-down-alt':\n          path = 'M9 2h2v12l4-4 2 1-7 7-7-7 2-1 4 4V2z';\n          break;\n\n        case 'arrow-down-alt2':\n          path = 'M5 6l5 5 5-5 2 1-7 7-7-7z';\n          break;\n\n        case 'arrow-down':\n          path = 'M15 8l-4.03 6L7 8h8z';\n          break;\n\n        case 'arrow-left-alt':\n          path = 'M18 9v2H6l4 4-1 2-7-7 7-7 1 2-4 4h12z';\n          break;\n\n        case 'arrow-left-alt2':\n          path = 'M14 5l-5 5 5 5-1 2-7-7 7-7z';\n          break;\n\n        case 'arrow-left':\n          path = 'M13 14L7 9.97 13 6v8z';\n          break;\n\n        case 'arrow-right-alt':\n          path = 'M2 11V9h12l-4-4 1-2 7 7-7 7-1-2 4-4H2z';\n          break;\n\n        case 'arrow-right-alt2':\n          path = 'M6 15l5-5-5-5 1-2 7 7-7 7z';\n          break;\n\n        case 'arrow-right':\n          path = 'M8 6l6 4.03L8 14V6z';\n          break;\n\n        case 'arrow-up-alt':\n          path = 'M11 18H9V6l-4 4-2-1 7-7 7 7-2 1-4-4v12z';\n          break;\n\n        case 'arrow-up-alt2':\n          path = 'M15 14l-5-5-5 5-2-1 7-7 7 7z';\n          break;\n\n        case 'arrow-up':\n          path = 'M7 13l4.03-6L15 13H7z';\n          break;\n\n        case 'art':\n          path = 'M8.55 3.06c1.01.34-1.95 2.01-.1 3.13 1.04.63 3.31-2.22 4.45-2.86.97-.54 2.67-.65 3.53 1.23 1.09 2.38.14 8.57-3.79 11.06-3.97 2.5-8.97 1.23-10.7-2.66-2.01-4.53 3.12-11.09 6.61-9.9zm1.21 6.45c.73 1.64 4.7-.5 3.79-2.8-.59-1.49-4.48 1.25-3.79 2.8z';\n          break;\n\n        case 'awards':\n          path = 'M4.46 5.16L5 7.46l-.54 2.29 2.01 1.24L7.7 13l2.3-.54 2.3.54 1.23-2.01 2.01-1.24L15 7.46l.54-2.3-2-1.24-1.24-2.01-2.3.55-2.29-.54-1.25 2zm5.55 6.34C7.79 11.5 6 9.71 6 7.49c0-2.2 1.79-3.99 4.01-3.99 2.2 0 3.99 1.79 3.99 3.99 0 2.22-1.79 4.01-3.99 4.01zm-.02-1C8.33 10.5 7 9.16 7 7.5c0-1.65 1.33-3 2.99-3S13 5.85 13 7.5c0 1.66-1.35 3-3.01 3zm3.84 1.1l-1.28 2.24-2.08-.47L13 19.2l1.4-2.2h2.5zm-7.7.07l1.25 2.25 2.13-.51L7 19.2 5.6 17H3.1z';\n          break;\n\n        case 'backup':\n          path = 'M13.65 2.88c3.93 2.01 5.48 6.84 3.47 10.77s-6.83 5.48-10.77 3.47c-1.87-.96-3.2-2.56-3.86-4.4l1.64-1.03c.45 1.57 1.52 2.95 3.08 3.76 3.01 1.54 6.69.35 8.23-2.66 1.55-3.01.36-6.69-2.65-8.24C9.78 3.01 6.1 4.2 4.56 7.21l1.88.97-4.95 3.08-.39-5.82 1.78.91C4.9 2.4 9.75.89 13.65 2.88zm-4.36 7.83C9.11 10.53 9 10.28 9 10c0-.07.03-.12.04-.19h-.01L10 5l.97 4.81L14 13l-4.5-2.12.02-.02c-.08-.04-.16-.09-.23-.15z';\n          break;\n\n        case 'block-default':\n          path = 'M15 6V4h-3v2H8V4H5v2H4c-.6 0-1 .4-1 1v8h14V7c0-.6-.4-1-1-1h-1z';\n          break;\n\n        case 'book-alt':\n          path = 'M5 17h13v2H5c-1.66 0-3-1.34-3-3V4c0-1.66 1.34-3 3-3h13v14H5c-.55 0-1 .45-1 1s.45 1 1 1zm2-3.5v-11c0-.28-.22-.5-.5-.5s-.5.22-.5.5v11c0 .28.22.5.5.5s.5-.22.5-.5z';\n          break;\n\n        case 'book':\n          path = 'M16 3h2v16H5c-1.66 0-3-1.34-3-3V4c0-1.66 1.34-3 3-3h9v14H5c-.55 0-1 .45-1 1s.45 1 1 1h11V3z';\n          break;\n\n        case 'buddicons-activity':\n          path = 'M8 1v7h2V6c0-1.52 1.45-3 3-3v.86c.55-.52 1.26-.86 2-.86v3h1c1.1 0 2 .9 2 2s-.9 2-2 2h-1v6c0 .55-.45 1-1 1s-1-.45-1-1v-2.18c-.31.11-.65.18-1 .18v2c0 .55-.45 1-1 1s-1-.45-1-1v-2H8v2c0 .55-.45 1-1 1s-1-.45-1-1v-2c-.35 0-.69-.07-1-.18V16c0 .55-.45 1-1 1s-1-.45-1-1v-4H2v-1c0-1.66 1.34-3 3-3h2V1h1zm5 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z';\n          break;\n\n        case 'buddicons-bbpress-logo':\n          path = 'M8.5 12.6c.3-1.3 0-2.3-1.1-2.3-.8 0-1.6.6-1.8 1.5l-.3 1.7c-.3 1 .3 1.5 1 1.5 1.2 0 1.9-1.1 2.2-2.4zm-4-6.4C3.7 7.3 3.3 8.6 3.3 10c0 1 .2 1.9.6 2.8l1-4.6c.3-1.7.4-2-.4-2zm9.3 6.4c.3-1.3 0-2.3-1.1-2.3-.8 0-1.6.6-1.8 1.5l-.4 1.7c-.2 1.1.4 1.6 1.1 1.6 1.1-.1 1.9-1.2 2.2-2.5zM10 3.3c-2 0-3.9.9-5.1 2.3.6-.1 1.4-.2 1.8-.3.2 0 .2.1.2.2 0 .2-1 4.8-1 4.8.5-.3 1.2-.7 1.8-.7.9 0 1.5.4 1.9.9l.5-2.4c.4-1.6.4-1.9-.4-1.9-.4 0-.4-.5 0-.6.6-.1 1.8-.2 2.3-.3.2 0 .2.1.2.2l-1 4.8c.5-.4 1.2-.7 1.9-.7 1.7 0 2.5 1.3 2.1 3-.3 1.7-2 3-3.8 3-1.3 0-2.1-.7-2.3-1.4-.7.8-1.7 1.3-2.8 1.4 1.1.7 2.4 1.1 3.7 1.1 3.7 0 6.7-3 6.7-6.7s-3-6.7-6.7-6.7zM10 2c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 15.5c-2.1 0-4-.8-5.3-2.2-.3-.4-.7-.8-1-1.2-.7-1.2-1.2-2.6-1.2-4.1 0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5-3.4 7.5-7.5 7.5z';\n          break;\n\n        case 'buddicons-buddypress-logo':\n          path = 'M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10 4.48 0 10 0zm0 .5C4.75.5.5 4.75.5 10s4.25 9.5 9.5 9.5 9.5-4.25 9.5-9.5S15.25.5 10 .5zm0 1c4.7 0 8.5 3.8 8.5 8.5s-3.8 8.5-8.5 8.5-8.5-3.8-8.5-8.5S5.3 1.5 10 1.5zm1.8 1.71c-.57 0-1.1.17-1.55.45 1.56.37 2.73 1.77 2.73 3.45 0 .69-.21 1.33-.55 1.87 1.31-.29 2.29-1.45 2.29-2.85 0-1.61-1.31-2.92-2.92-2.92zm-2.38 1c-1.61 0-2.92 1.31-2.92 2.93 0 1.61 1.31 2.92 2.92 2.92 1.62 0 2.93-1.31 2.93-2.92 0-1.62-1.31-2.93-2.93-2.93zm4.25 5.01l-.51.59c2.34.69 2.45 3.61 2.45 3.61h1.28c0-4.71-3.22-4.2-3.22-4.2zm-2.1.8l-2.12 2.09-2.12-2.09C3.12 10.24 3.89 15 3.89 15h11.08c.47-4.98-3.4-4.98-3.4-4.98z';\n          break;\n\n        case 'buddicons-community':\n          path = 'M9 3c0-.67-.47-1.43-1-2-.5.5-1 1.38-1 2 0 .48.45 1 1 1s1-.47 1-1zm4 0c0-.67-.47-1.43-1-2-.5.5-1 1.38-1 2 0 .48.45 1 1 1s1-.47 1-1zM9 9V5.5c0-.55-.45-1-1-1-.57 0-1 .49-1 1V9c0 .55.45 1 1 1 .57 0 1-.49 1-1zm4 0V5.5c0-.55-.45-1-1-1-.57 0-1 .49-1 1V9c0 .55.45 1 1 1 .57 0 1-.49 1-1zm4 1c0-1.48-1.41-2.77-3.5-3.46V9c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V6.01c-.17 0-.33-.01-.5-.01s-.33.01-.5.01V9c0 .83-.67 1.5-1.5 1.5S6.5 9.83 6.5 9V6.54C4.41 7.23 3 8.52 3 10c0 1.41.95 2.65 3.21 3.37 1.11.35 2.39 1.12 3.79 1.12s2.69-.78 3.79-1.13C16.04 12.65 17 11.41 17 10zm-7 5.43c1.43 0 2.74-.79 3.88-1.11 1.9-.53 2.49-1.34 3.12-2.32v3c0 2.21-3.13 4-7 4s-7-1.79-7-4v-3c.64.99 1.32 1.8 3.15 2.33 1.13.33 2.44 1.1 3.85 1.1z';\n          break;\n\n        case 'buddicons-forums':\n          path = 'M13.5 7h-7C5.67 7 5 6.33 5 5.5S5.67 4 6.5 4h1.59C8.04 3.84 8 3.68 8 3.5 8 2.67 8.67 2 9.5 2h1c.83 0 1.5.67 1.5 1.5 0 .18-.04.34-.09.5h1.59c.83 0 1.5.67 1.5 1.5S14.33 7 13.5 7zM4 8h12c.55 0 1 .45 1 1s-.45 1-1 1H4c-.55 0-1-.45-1-1s.45-1 1-1zm1 3h10c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1s.45-1 1-1zm2 3h6c.55 0 1 .45 1 1s-.45 1-1 1h-1.09c.05.16.09.32.09.5 0 .83-.67 1.5-1.5 1.5h-1c-.83 0-1.5-.67-1.5-1.5 0-.18.04-.34.09-.5H7c-.55 0-1-.45-1-1s.45-1 1-1z';\n          break;\n\n        case 'buddicons-friends':\n          path = 'M8.75 5.77C8.75 4.39 7 2 7 2S5.25 4.39 5.25 5.77 5.9 7.5 7 7.5s1.75-.35 1.75-1.73zm6 0C14.75 4.39 13 2 13 2s-1.75 2.39-1.75 3.77S11.9 7.5 13 7.5s1.75-.35 1.75-1.73zM9 17V9c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm6 0V9c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm-9-6l2-1v2l-2 1v-2zm6 0l2-1v2l-2 1v-2zm-6 3l2-1v2l-2 1v-2zm6 0l2-1v2l-2 1v-2z';\n          break;\n\n        case 'buddicons-groups':\n          path = 'M15.45 6.25c1.83.94 1.98 3.18.7 4.98-.8 1.12-2.33 1.88-3.46 1.78L10.05 18H9l-2.65-4.99c-1.13.16-2.73-.63-3.55-1.79-1.28-1.8-1.13-4.04.71-4.97.48-.24.96-.33 1.43-.31-.01.4.01.8.07 1.21.26 1.69 1.41 3.53 2.86 4.37-.19.55-.49.99-.88 1.25L9 16.58v-5.66C7.64 10.55 6.26 8.76 6 7c-.4-2.65 1-5 3.5-5s3.9 2.35 3.5 5c-.26 1.76-1.64 3.55-3 3.92v5.77l2.07-3.84c-.44-.23-.77-.71-.99-1.3 1.48-.83 2.65-2.69 2.91-4.4.06-.41.08-.82.07-1.22.46-.01.92.08 1.39.32z';\n          break;\n\n        case 'buddicons-pm':\n          path = 'M10 2c3 0 8 5 8 5v11H2V7s5-5 8-5zm7 14.72l-3.73-2.92L17 11l-.43-.37-2.26 1.3.24-4.31-8.77-.52-.46 4.54-1.99-.95L3 11l3.73 2.8-3.44 2.85.4.43L10 13l6.53 4.15z';\n          break;\n\n        case 'buddicons-replies':\n          path = 'M17.54 10.29c1.17 1.17 1.17 3.08 0 4.25-1.18 1.17-3.08 1.17-4.25 0l-.34-.52c0 3.66-2 4.38-2.95 4.98-.82-.6-2.95-1.28-2.95-4.98l-.34.52c-1.17 1.17-3.07 1.17-4.25 0-1.17-1.17-1.17-3.08 0-4.25 0 0 1.02-.67 2.1-1.3C3.71 7.84 3.2 6.42 3.2 4.88c0-.34.03-.67.08-1C3.53 5.66 4.47 7.22 5.8 8.3c.67-.35 1.85-.83 2.37-.92H8c-1.1 0-2-.9-2-2s.9-2 2-2v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.5h2v-.5c0-.28.22-.5.5-.5s.5.22.5.5v.5c1.1 0 2 .9 2 2s-.9 2-2 2h-.17c.51.09 1.78.61 2.38.92 1.33-1.08 2.27-2.64 2.52-4.42.05.33.08.66.08 1 0 1.54-.51 2.96-1.36 4.11 1.08.63 2.09 1.3 2.09 1.3zM8.5 6.38c.5 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-2.3 5.73c-.12.11-.19.26-.19.43.02.25.23.46.49.46h1c.26 0 .47-.21.49-.46 0-.15-.07-.29-.19-.43-.08-.06-.18-.11-.3-.11h-1c-.12 0-.22.05-.3.11zM12 12.5c0-.12-.06-.28-.19-.38-.09-.07-.19-.12-.31-.12h-3c-.12 0-.22.05-.31.12-.11.1-.19.25-.19.38 0 .28.22.5.5.5h3c.28 0 .5-.22.5-.5zM8.5 15h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm1 2h1c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5s.22.5.5.5z';\n          break;\n\n        case 'buddicons-topics':\n          path = 'M10.44 1.66c-.59-.58-1.54-.58-2.12 0L2.66 7.32c-.58.58-.58 1.53 0 2.12.6.6 1.56.56 2.12 0l5.66-5.66c.58-.58.59-1.53 0-2.12zm2.83 2.83c-.59-.59-1.54-.59-2.12 0l-5.66 5.66c-.59.58-.59 1.53 0 2.12.6.6 1.56.55 2.12 0l5.66-5.66c.58-.58.58-1.53 0-2.12zm1.06 6.72l4.18 4.18c.59.58.59 1.53 0 2.12s-1.54.59-2.12 0l-4.18-4.18-1.77 1.77c-.59.58-1.54.58-2.12 0-.59-.59-.59-1.54 0-2.13l5.66-5.65c.58-.59 1.53-.59 2.12 0 .58.58.58 1.53 0 2.12zM5 15c0-1.59-1.66-4-1.66-4S2 13.78 2 15s.6 2 1.34 2h.32C4.4 17 5 16.59 5 15z';\n          break;\n\n        case 'buddicons-tracking':\n          path = 'M10.98 6.78L15.5 15c-1 2-3.5 3-5.5 3s-4.5-1-5.5-3L9 6.82c-.75-1.23-2.28-1.98-4.29-2.03l2.46-2.92c1.68 1.19 2.46 2.32 2.97 3.31.56-.87 1.2-1.68 2.7-2.12l1.83 2.86c-1.42-.34-2.64.08-3.69.86zM8.17 10.4l-.93 1.69c.49.11 1 .16 1.54.16 1.35 0 2.58-.36 3.55-.95l-1.01-1.82c-.87.53-1.96.86-3.15.92zm.86 5.38c1.99 0 3.73-.74 4.74-1.86l-.98-1.76c-1 1.12-2.74 1.87-4.74 1.87-.62 0-1.21-.08-1.76-.21l-.63 1.15c.94.5 2.1.81 3.37.81z';\n          break;\n\n        case 'building':\n          path = 'M3 20h14V0H3v20zM7 3H5V1h2v2zm4 0H9V1h2v2zm4 0h-2V1h2v2zM7 6H5V4h2v2zm4 0H9V4h2v2zm4 0h-2V4h2v2zM7 9H5V7h2v2zm4 0H9V7h2v2zm4 0h-2V7h2v2zm-8 3H5v-2h2v2zm4 0H9v-2h2v2zm4 0h-2v-2h2v2zm-4 7H5v-6h6v6zm4-4h-2v-2h2v2zm0 3h-2v-2h2v2z';\n          break;\n\n        case 'businessman':\n          path = 'M7.3 6l-.03-.19c-.04-.37-.05-.73-.03-1.08.02-.36.1-.71.25-1.04.14-.32.31-.61.52-.86s.49-.46.83-.6c.34-.15.72-.23 1.13-.23.69 0 1.26.2 1.71.59s.76.87.91 1.44.18 1.16.09 1.78l-.03.19c-.01.09-.05.25-.11.48-.05.24-.12.47-.2.69-.08.21-.19.45-.34.72-.14.27-.3.49-.47.69-.18.19-.4.34-.67.48-.27.13-.55.19-.86.19s-.59-.06-.87-.19c-.26-.13-.49-.29-.67-.5-.18-.2-.34-.42-.49-.66-.15-.25-.26-.49-.34-.73-.09-.25-.16-.47-.21-.67-.06-.21-.1-.37-.12-.5zm9.2 6.24c.41.7.5 1.41.5 2.14v2.49c0 .03-.12.08-.29.13-.18.04-.42.13-.97.27-.55.12-1.1.24-1.65.34s-1.19.19-1.95.27c-.75.08-1.46.12-2.13.12-.68 0-1.39-.04-2.14-.12-.75-.07-1.4-.17-1.98-.27-.58-.11-1.08-.23-1.56-.34-.49-.11-.8-.21-1.06-.29L3 16.87v-2.49c0-.75.07-1.46.46-2.15s.81-1.25 1.5-1.68C5.66 10.12 7.19 10 8 10l1.67 1.67L9 13v3l1.02 1.08L11 16v-3l-.68-1.33L11.97 10c.77 0 2.2.07 2.9.52.71.45 1.21 1.02 1.63 1.72z';\n          break;\n\n        case 'button':\n          path = 'M17 5H3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm1 7c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V7c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v5z';\n          break;\n\n        case 'calendar-alt':\n          path = 'M15 4h3v15H2V4h3V3c0-.41.15-.76.44-1.06.29-.29.65-.44 1.06-.44s.77.15 1.06.44c.29.3.44.65.44 1.06v1h4V3c0-.41.15-.76.44-1.06.29-.29.65-.44 1.06-.44s.77.15 1.06.44c.29.3.44.65.44 1.06v1zM6 3v2.5c0 .14.05.26.15.36.09.09.21.14.35.14s.26-.05.35-.14c.1-.1.15-.22.15-.36V3c0-.14-.05-.26-.15-.35-.09-.1-.21-.15-.35-.15s-.26.05-.35.15c-.1.09-.15.21-.15.35zm7 0v2.5c0 .14.05.26.14.36.1.09.22.14.36.14s.26-.05.36-.14c.09-.1.14-.22.14-.36V3c0-.14-.05-.26-.14-.35-.1-.1-.22-.15-.36-.15s-.26.05-.36.15c-.09.09-.14.21-.14.35zm4 15V8H3v10h14zM7 9v2H5V9h2zm2 0h2v2H9V9zm4 2V9h2v2h-2zm-6 1v2H5v-2h2zm2 0h2v2H9v-2zm4 2v-2h2v2h-2zm-6 1v2H5v-2h2zm4 2H9v-2h2v2zm4 0h-2v-2h2v2z';\n          break;\n\n        case 'calendar':\n          path = 'M15 4h3v14H2V4h3V3c0-.83.67-1.5 1.5-1.5S8 2.17 8 3v1h4V3c0-.83.67-1.5 1.5-1.5S15 2.17 15 3v1zM6 3v2.5c0 .28.22.5.5.5s.5-.22.5-.5V3c0-.28-.22-.5-.5-.5S6 2.72 6 3zm7 0v2.5c0 .28.22.5.5.5s.5-.22.5-.5V3c0-.28-.22-.5-.5-.5s-.5.22-.5.5zm4 14V8H3v9h14zM7 16V9H5v7h2zm4 0V9H9v7h2zm4 0V9h-2v7h2z';\n          break;\n\n        case 'camera':\n          path = 'M6 5V3H3v2h3zm12 10V4H9L7 6H2v9h16zm-7-8c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3z';\n          break;\n\n        case 'carrot':\n          path = 'M2 18.43c1.51 1.36 11.64-4.67 13.14-7.21.72-1.22-.13-3.01-1.52-4.44C15.2 5.73 16.59 9 17.91 8.31c.6-.32.99-1.31.7-1.92-.52-1.08-2.25-1.08-3.42-1.21.83-.2 2.82-1.05 2.86-2.25.04-.92-1.13-1.97-2.05-1.86-1.21.14-1.65 1.88-2.06 3-.05-.71-.2-2.27-.98-2.95-1.04-.91-2.29-.05-2.32 1.05-.04 1.33 2.82 2.07 1.92 3.67C11.04 4.67 9.25 4.03 8.1 4.7c-.49.31-1.05.91-1.63 1.69.89.94 2.12 2.07 3.09 2.72.2.14.26.42.11.62-.14.21-.42.26-.62.12-.99-.67-2.2-1.78-3.1-2.71-.45.67-.91 1.43-1.34 2.23.85.86 1.93 1.83 2.79 2.41.2.14.25.42.11.62-.14.21-.42.26-.63.12-.85-.58-1.86-1.48-2.71-2.32C2.4 13.69 1.1 17.63 2 18.43z';\n          break;\n\n        case 'cart':\n          path = 'M6 13h9c.55 0 1 .45 1 1s-.45 1-1 1H5c-.55 0-1-.45-1-1V4H2c-.55 0-1-.45-1-1s.45-1 1-1h3c.55 0 1 .45 1 1v2h13l-4 7H6v1zm-.5 3c.83 0 1.5.67 1.5 1.5S6.33 19 5.5 19 4 18.33 4 17.5 4.67 16 5.5 16zm9 0c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z';\n          break;\n\n        case 'category':\n          path = 'M5 7h13v10H2V4h7l2 2H4v9h1V7z';\n          break;\n\n        case 'chart-area':\n          path = 'M18 18l.01-12.28c.59-.35.99-.99.99-1.72 0-1.1-.9-2-2-2s-2 .9-2 2c0 .8.47 1.48 1.14 1.8l-4.13 6.58c-.33-.24-.73-.38-1.16-.38-.84 0-1.55.51-1.85 1.24l-2.14-1.53c.09-.22.14-.46.14-.71 0-1.11-.89-2-2-2-1.1 0-2 .89-2 2 0 .73.4 1.36.98 1.71L1 18h17zM17 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM5 10c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5.85 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z';\n          break;\n\n        case 'chart-bar':\n          path = 'M18 18V2h-4v16h4zm-6 0V7H8v11h4zm-6 0v-8H2v8h4z';\n          break;\n\n        case 'chart-line':\n          path = 'M18 3.5c0 .62-.38 1.16-.92 1.38v13.11H1.99l4.22-6.73c-.13-.23-.21-.48-.21-.76C6 9.67 6.67 9 7.5 9S9 9.67 9 10.5c0 .13-.02.25-.05.37l1.44.63c.27-.3.67-.5 1.11-.5.18 0 .35.04.51.09l3.58-6.41c-.36-.27-.59-.7-.59-1.18 0-.83.67-1.5 1.5-1.5.19 0 .36.04.53.1l.05-.09v.11c.54.22.92.76.92 1.38zm-1.92 13.49V5.85l-3.29 5.89c.13.23.21.48.21.76 0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5l.01-.07-1.63-.72c-.25.18-.55.29-.88.29-.18 0-.35-.04-.51-.1l-3.2 5.09h12.29z';\n          break;\n\n        case 'chart-pie':\n          path = 'M10 10V3c3.87 0 7 3.13 7 7h-7zM9 4v7h7c0 3.87-3.13 7-7 7s-7-3.13-7-7 3.13-7 7-7z';\n          break;\n\n        case 'clipboard':\n          path = 'M11.9.39l1.4 1.4c1.61.19 3.5-.74 4.61.37s.18 3 .37 4.61l1.4 1.4c.39.39.39 1.02 0 1.41l-9.19 9.2c-.4.39-1.03.39-1.42 0L1.29 11c-.39-.39-.39-1.02 0-1.42l9.2-9.19c.39-.39 1.02-.39 1.41 0zm.58 2.25l-.58.58 4.95 4.95.58-.58c-.19-.6-.2-1.22-.15-1.82.02-.31.05-.62.09-.92.12-1 .18-1.63-.17-1.98s-.98-.29-1.98-.17c-.3.04-.61.07-.92.09-.6.05-1.22.04-1.82-.15zm4.02.93c.39.39.39 1.03 0 1.42s-1.03.39-1.42 0-.39-1.03 0-1.42 1.03-.39 1.42 0zm-6.72.36l-.71.7L15.44 11l.7-.71zM8.36 5.34l-.7.71 6.36 6.36.71-.7zM6.95 6.76l-.71.7 6.37 6.37.7-.71zM5.54 8.17l-.71.71 6.36 6.36.71-.71zM4.12 9.58l-.71.71 6.37 6.37.71-.71z';\n          break;\n\n        case 'clock':\n          path = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm0 14c3.31 0 6-2.69 6-6s-2.69-6-6-6-6 2.69-6 6 2.69 6 6 6zm-.71-5.29c.07.05.14.1.23.15l-.02.02L14 13l-3.03-3.19L10 5l-.97 4.81h.01c0 .02-.01.05-.02.09S9 9.97 9 10c0 .28.1.52.29.71z';\n          break;\n\n        case 'cloud-saved':\n          path = 'M14.8 9c.1-.3.2-.6.2-1 0-2.2-1.8-4-4-4-1.5 0-2.9.9-3.5 2.2-.3-.1-.7-.2-1-.2C5.1 6 4 7.1 4 8.5c0 .2 0 .4.1.5-1.8.3-3.1 1.7-3.1 3.5C1 14.4 2.6 16 4.5 16h10c1.9 0 3.5-1.6 3.5-3.5 0-1.8-1.4-3.3-3.2-3.5zm-6.3 5.9l-3.2-3.2 1.4-1.4 1.8 1.8 3.8-3.8 1.4 1.4-5.2 5.2z';\n          break;\n\n        case 'cloud-upload':\n          path = 'M14.8 9c.1-.3.2-.6.2-1 0-2.2-1.8-4-4-4-1.5 0-2.9.9-3.5 2.2-.3-.1-.7-.2-1-.2C5.1 6 4 7.1 4 8.5c0 .2 0 .4.1.5-1.8.3-3.1 1.7-3.1 3.5C1 14.4 2.6 16 4.5 16H8v-3H5l4.5-4.5L14 13h-3v3h3.5c1.9 0 3.5-1.6 3.5-3.5 0-1.8-1.4-3.3-3.2-3.5z';\n          break;\n\n        case 'cloud':\n          path = 'M14.9 9c1.8.2 3.1 1.7 3.1 3.5 0 1.9-1.6 3.5-3.5 3.5h-10C2.6 16 1 14.4 1 12.5 1 10.7 2.3 9.3 4.1 9 4 8.9 4 8.7 4 8.5 4 7.1 5.1 6 6.5 6c.3 0 .7.1.9.2C8.1 4.9 9.4 4 11 4c2.2 0 4 1.8 4 4 0 .4-.1.7-.1 1z';\n          break;\n\n        case 'columns':\n          path = 'M3 15h6V5H3v10zm8 0h6V5h-6v10z';\n          break;\n\n        case 'controls-back':\n          path = 'M2 10l10-6v3.6L18 4v12l-6-3.6V16z';\n          break;\n\n        case 'controls-forward':\n          path = 'M18 10L8 16v-3.6L2 16V4l6 3.6V4z';\n          break;\n\n        case 'controls-pause':\n          path = 'M5 16V4h3v12H5zm7-12h3v12h-3V4z';\n          break;\n\n        case 'controls-play':\n          path = 'M5 4l10 6-10 6V4z';\n          break;\n\n        case 'controls-repeat':\n          path = 'M5 7v3l-2 1.5V5h11V3l4 3.01L14 9V7H5zm10 6v-3l2-1.5V15H6v2l-4-3.01L6 11v2h9z';\n          break;\n\n        case 'controls-skipback':\n          path = 'M11.98 7.63l6-3.6v12l-6-3.6v3.6l-8-4.8v4.8h-2v-12h2v4.8l8-4.8v3.6z';\n          break;\n\n        case 'controls-skipforward':\n          path = 'M8 12.4L2 16V4l6 3.6V4l8 4.8V4h2v12h-2v-4.8L8 16v-3.6z';\n          break;\n\n        case 'controls-volumeoff':\n          path = 'M2 7h4l5-4v14l-5-4H2V7z';\n          break;\n\n        case 'controls-volumeon':\n          path = 'M2 7h4l5-4v14l-5-4H2V7zm12.69-2.46C14.82 4.59 18 5.92 18 10s-3.18 5.41-3.31 5.46c-.06.03-.13.04-.19.04-.2 0-.39-.12-.46-.31-.11-.26.02-.55.27-.65.11-.05 2.69-1.15 2.69-4.54 0-3.41-2.66-4.53-2.69-4.54-.25-.1-.38-.39-.27-.65.1-.25.39-.38.65-.27zM16 10c0 2.57-2.23 3.43-2.32 3.47-.06.02-.12.03-.18.03-.2 0-.39-.12-.47-.32-.1-.26.04-.55.29-.65.07-.02 1.68-.67 1.68-2.53s-1.61-2.51-1.68-2.53c-.25-.1-.38-.39-.29-.65.1-.25.39-.39.65-.29.09.04 2.32.9 2.32 3.47z';\n          break;\n\n        case 'cover-image':\n          path = 'M2.2 1h15.5c.7 0 1.3.6 1.3 1.2v11.5c0 .7-.6 1.2-1.2 1.2H2.2c-.6.1-1.2-.5-1.2-1.1V2.2C1 1.6 1.6 1 2.2 1zM17 13V3H3v10h14zm-4-4s0-5 3-5v7c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1V7c2 0 3 4 3 4s1-4 3-4 3 2 3 2zM4 17h12v2H4z';\n          break;\n\n        case 'dashboard':\n          path = 'M3.76 16h12.48c1.1-1.37 1.76-3.11 1.76-5 0-4.42-3.58-8-8-8s-8 3.58-8 8c0 1.89.66 3.63 1.76 5zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM6 6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm8 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5.37 5.55L12 7v6c0 1.1-.9 2-2 2s-2-.9-2-2c0-.57.24-1.08.63-1.45zM4 10c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm12 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-5 3c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1z';\n          break;\n\n        case 'desktop':\n          path = 'M3 2h14c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1h-5v2h2c.55 0 1 .45 1 1v1H5v-1c0-.55.45-1 1-1h2v-2H3c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm13 9V4H4v7h12zM5 5h9L5 9V5z';\n          break;\n\n        case 'dismiss':\n          path = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z';\n          break;\n\n        case 'download':\n          path = 'M14.01 4v6h2V2H4v8h2.01V4h8zm-2 2v6h3l-5 6-5-6h3V6h4z';\n          break;\n\n        case 'edit':\n          path = 'M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z';\n          break;\n\n        case 'editor-aligncenter':\n          path = 'M14 5V3H6v2h8zm3 4V7H3v2h14zm-3 4v-2H6v2h8zm3 4v-2H3v2h14z';\n          break;\n\n        case 'editor-alignleft':\n          path = 'M12 5V3H3v2h9zm5 4V7H3v2h14zm-5 4v-2H3v2h9zm5 4v-2H3v2h14z';\n          break;\n\n        case 'editor-alignright':\n          path = 'M17 5V3H8v2h9zm0 4V7H3v2h14zm0 4v-2H8v2h9zm0 4v-2H3v2h14z';\n          break;\n\n        case 'editor-bold':\n          path = 'M6 4v13h4.54c1.37 0 2.46-.33 3.26-1 .8-.66 1.2-1.58 1.2-2.77 0-.84-.17-1.51-.51-2.01s-.9-.85-1.67-1.03v-.09c.57-.1 1.02-.4 1.36-.9s.51-1.13.51-1.91c0-1.14-.39-1.98-1.17-2.5C12.75 4.26 11.5 4 9.78 4H6zm2.57 5.15V6.26h1.36c.73 0 1.27.11 1.61.32.34.22.51.58.51 1.07 0 .54-.16.92-.47 1.15s-.82.35-1.51.35h-1.5zm0 2.19h1.6c1.44 0 2.16.53 2.16 1.61 0 .6-.17 1.05-.51 1.34s-.86.43-1.57.43H8.57v-3.38z';\n          break;\n\n        case 'editor-break':\n          path = 'M16 4h2v9H7v3l-5-4 5-4v3h9V4z';\n          break;\n\n        case 'editor-code':\n          path = 'M9 6l-4 4 4 4-1 2-6-6 6-6zm2 8l4-4-4-4 1-2 6 6-6 6z';\n          break;\n\n        case 'editor-contract':\n          path = 'M15.75 6.75L18 3v14l-2.25-3.75L17 12h-4v4l1.25-1.25L18 17H2l3.75-2.25L7 16v-4H3l1.25 1.25L2 17V3l2.25 3.75L3 8h4V4L5.75 5.25 2 3h16l-3.75 2.25L13 4v4h4z';\n          break;\n\n        case 'editor-customchar':\n          path = 'M10 5.4c1.27 0 2.24.36 2.91 1.08.66.71 1 1.76 1 3.13 0 1.28-.23 2.37-.69 3.27-.47.89-1.27 1.52-2.22 2.12v2h6v-2h-3.69c.92-.64 1.62-1.34 2.12-2.34.49-1.01.74-2.13.74-3.35 0-1.78-.55-3.19-1.65-4.22S11.92 3.54 10 3.54s-3.43.53-4.52 1.57c-1.1 1.04-1.65 2.44-1.65 4.2 0 1.21.24 2.31.73 3.33.48 1.01 1.19 1.71 2.1 2.36H3v2h6v-2c-.98-.64-1.8-1.28-2.24-2.17-.45-.89-.67-1.96-.67-3.22 0-1.37.33-2.41 1-3.13C7.75 5.76 8.72 5.4 10 5.4z';\n          break;\n\n        case 'editor-expand':\n          path = 'M7 8h6v4H7zm-5 5v4h4l-1.2-1.2L7 12l-3.8 2.2M14 17h4v-4l-1.2 1.2L13 12l2.2 3.8M14 3l1.3 1.3L13 8l3.8-2.2L18 7V3M6 3H2v4l1.2-1.2L7 8 4.7 4.3';\n          break;\n\n        case 'editor-help':\n          path = 'M17 10c0-3.87-3.14-7-7-7-3.87 0-7 3.13-7 7s3.13 7 7 7c3.86 0 7-3.13 7-7zm-6.3 1.48H9.14v-.43c0-.38.08-.7.24-.98s.46-.57.88-.89c.41-.29.68-.53.81-.71.14-.18.2-.39.2-.62 0-.25-.09-.44-.28-.58-.19-.13-.45-.19-.79-.19-.58 0-1.25.19-2 .57l-.64-1.28c.87-.49 1.8-.74 2.77-.74.81 0 1.45.2 1.92.58.48.39.71.91.71 1.55 0 .43-.09.8-.29 1.11-.19.32-.57.67-1.11 1.06-.38.28-.61.49-.71.63-.1.15-.15.34-.15.57v.35zm-1.47 2.74c-.18-.17-.27-.42-.27-.73 0-.33.08-.58.26-.75s.43-.25.77-.25c.32 0 .57.09.75.26s.27.42.27.74c0 .3-.09.55-.27.72-.18.18-.43.27-.75.27-.33 0-.58-.09-.76-.26z';\n          break;\n\n        case 'editor-indent':\n          path = 'M3 5V3h9v2H3zm10-1V3h4v1h-4zm0 3h2V5l4 3.5-4 3.5v-2h-2V7zM3 8V6h9v2H3zm2 3V9h7v2H5zm-2 3v-2h9v2H3zm10 0v-1h4v1h-4zm-4 3v-2h3v2H9z';\n          break;\n\n        case 'editor-insertmore':\n          path = 'M17 7V3H3v4h14zM6 11V9H3v2h3zm6 0V9H8v2h4zm5 0V9h-3v2h3zm0 6v-4H3v4h14z';\n          break;\n\n        case 'editor-italic':\n          path = 'M14.78 6h-2.13l-2.8 9h2.12l-.62 2H4.6l.62-2h2.14l2.8-9H8.03l.62-2h6.75z';\n          break;\n\n        case 'editor-justify':\n          path = 'M2 3h16v2H2V3zm0 4h16v2H2V7zm0 4h16v2H2v-2zm0 4h16v2H2v-2z';\n          break;\n\n        case 'editor-kitchensink':\n          path = 'M19 2v6H1V2h18zm-1 5V3H2v4h16zM5 4v2H3V4h2zm3 0v2H6V4h2zm3 0v2H9V4h2zm3 0v2h-2V4h2zm3 0v2h-2V4h2zm2 5v9H1V9h18zm-1 8v-7H2v7h16zM5 11v2H3v-2h2zm3 0v2H6v-2h2zm3 0v2H9v-2h2zm6 0v2h-5v-2h5zm-6 3v2H3v-2h8zm3 0v2h-2v-2h2zm3 0v2h-2v-2h2z';\n          break;\n\n        case 'editor-ltr':\n          path = 'M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM14 14l5-4-5-4v8z';\n          break;\n\n        case 'editor-ol-rtl':\n          path = 'M15.025 8.75a1.048 1.048 0 0 1 .45-.1.507.507 0 0 1 .35.11.455.455 0 0 1 .13.36.803.803 0 0 1-.06.3 1.448 1.448 0 0 1-.19.33c-.09.11-.29.32-.58.62l-.99 1v.58h2.76v-.7h-1.72v-.04l.51-.48a7.276 7.276 0 0 0 .7-.71 1.75 1.75 0 0 0 .3-.49 1.254 1.254 0 0 0 .1-.51.968.968 0 0 0-.16-.56 1.007 1.007 0 0 0-.44-.37 1.512 1.512 0 0 0-.65-.14 1.98 1.98 0 0 0-.51.06 1.9 1.9 0 0 0-.42.15 3.67 3.67 0 0 0-.48.35l.45.54a2.505 2.505 0 0 1 .45-.3zM16.695 15.29a1.29 1.29 0 0 0-.74-.3v-.02a1.203 1.203 0 0 0 .65-.37.973.973 0 0 0 .23-.65.81.81 0 0 0-.37-.71 1.72 1.72 0 0 0-1-.26 2.185 2.185 0 0 0-1.33.4l.4.6a1.79 1.79 0 0 1 .46-.23 1.18 1.18 0 0 1 .41-.07c.38 0 .58.15.58.46a.447.447 0 0 1-.22.43 1.543 1.543 0 0 1-.7.12h-.31v.66h.31a1.764 1.764 0 0 1 .75.12.433.433 0 0 1 .23.41.55.55 0 0 1-.2.47 1.084 1.084 0 0 1-.63.15 2.24 2.24 0 0 1-.57-.08 2.671 2.671 0 0 1-.52-.2v.74a2.923 2.923 0 0 0 1.18.22 1.948 1.948 0 0 0 1.22-.33 1.077 1.077 0 0 0 .43-.92.836.836 0 0 0-.26-.64zM15.005 4.17c.06-.05.16-.14.3-.28l-.02.42V7h.84V3h-.69l-1.29 1.03.4.51zM4.02 5h9v1h-9zM4.02 10h9v1h-9zM4.02 15h9v1h-9z';\n          break;\n\n        case 'editor-ol':\n          path = 'M6 7V3h-.69L4.02 4.03l.4.51.46-.37c.06-.05.16-.14.3-.28l-.02.42V7H6zm2-2h9v1H8V5zm-1.23 6.95v-.7H5.05v-.04l.51-.48c.33-.31.57-.54.7-.71.14-.17.24-.33.3-.49.07-.16.1-.33.1-.51 0-.21-.05-.4-.16-.56-.1-.16-.25-.28-.44-.37s-.41-.14-.65-.14c-.19 0-.36.02-.51.06-.15.03-.29.09-.42.15-.12.07-.29.19-.48.35l.45.54c.16-.13.31-.23.45-.3.15-.07.3-.1.45-.1.14 0 .26.03.35.11s.13.2.13.36c0 .1-.02.2-.06.3s-.1.21-.19.33c-.09.11-.29.32-.58.62l-.99 1v.58h2.76zM8 10h9v1H8v-1zm-1.29 3.95c0-.3-.12-.54-.37-.71-.24-.17-.58-.26-1-.26-.52 0-.96.13-1.33.4l.4.6c.17-.11.32-.19.46-.23.14-.05.27-.07.41-.07.38 0 .58.15.58.46 0 .2-.07.35-.22.43s-.38.12-.7.12h-.31v.66h.31c.34 0 .59.04.75.12.15.08.23.22.23.41 0 .22-.07.37-.2.47-.14.1-.35.15-.63.15-.19 0-.38-.03-.57-.08s-.36-.12-.52-.2v.74c.34.15.74.22 1.18.22.53 0 .94-.11 1.22-.33.29-.22.43-.52.43-.92 0-.27-.09-.48-.26-.64s-.42-.26-.74-.3v-.02c.27-.06.49-.19.65-.37.15-.18.23-.39.23-.65zM8 15h9v1H8v-1z';\n          break;\n\n        case 'editor-outdent':\n          path = 'M7 4V3H3v1h4zm10 1V3H8v2h9zM7 7H5V5L1 8.5 5 12v-2h2V7zm10 1V6H8v2h9zm-2 3V9H8v2h7zm2 3v-2H8v2h9zM7 14v-1H3v1h4zm4 3v-2H8v2h3z';\n          break;\n\n        case 'editor-paragraph':\n          path = 'M15 2H7.54c-.83 0-1.59.2-2.28.6-.7.41-1.25.96-1.65 1.65C3.2 4.94 3 5.7 3 6.52s.2 1.58.61 2.27c.4.69.95 1.24 1.65 1.64.69.41 1.45.61 2.28.61h.43V17c0 .27.1.51.29.71.2.19.44.29.71.29.28 0 .51-.1.71-.29.2-.2.3-.44.3-.71V5c0-.27.09-.51.29-.71.2-.19.44-.29.71-.29s.51.1.71.29c.19.2.29.44.29.71v12c0 .27.1.51.3.71.2.19.43.29.71.29.27 0 .51-.1.71-.29.19-.2.29-.44.29-.71V4H15c.27 0 .5-.1.7-.3.2-.19.3-.43.3-.7s-.1-.51-.3-.71C15.5 2.1 15.27 2 15 2z';\n          break;\n\n        case 'editor-paste-text':\n          path = 'M12.38 2L15 5v1H5V5l2.64-3h4.74zM10 5c.55 0 1-.44 1-1 0-.55-.45-1-1-1s-1 .45-1 1c0 .56.45 1 1 1zm5.45-1H17c.55 0 1 .45 1 1v12c0 .56-.45 1-1 1H3c-.55 0-1-.44-1-1V5c0-.55.45-1 1-1h1.55L4 4.63V7h12V4.63zM14 11V9H6v2h3v5h2v-5h3z';\n          break;\n\n        case 'editor-paste-word':\n          path = 'M12.38 2L15 5v1H5V5l2.64-3h4.74zM10 5c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 12V5c0-.55-.45-1-1-1h-1.54l.54.63V7H4V4.62L4.55 4H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-3-8l-2 7h-2l-1-5-1 5H6.92L5 9h2l1 5 1-5h2l1 5 1-5h2z';\n          break;\n\n        case 'editor-quote':\n          path = 'M9.49 13.22c0-.74-.2-1.38-.61-1.9-.62-.78-1.83-.88-2.53-.72-.29-1.65 1.11-3.75 2.92-4.65L7.88 4c-2.73 1.3-5.42 4.28-4.96 8.05C3.21 14.43 4.59 16 6.54 16c.85 0 1.56-.25 2.12-.75s.83-1.18.83-2.03zm8.05 0c0-.74-.2-1.38-.61-1.9-.63-.78-1.83-.88-2.53-.72-.29-1.65 1.11-3.75 2.92-4.65L15.93 4c-2.73 1.3-5.41 4.28-4.95 8.05.29 2.38 1.66 3.95 3.61 3.95.85 0 1.56-.25 2.12-.75s.83-1.18.83-2.03z';\n          break;\n\n        case 'editor-removeformatting':\n          path = 'M14.29 4.59l1.1 1.11c.41.4.61.94.61 1.47v2.12c0 .53-.2 1.07-.61 1.47l-6.63 6.63c-.4.41-.94.61-1.47.61s-1.07-.2-1.47-.61l-1.11-1.1-1.1-1.11c-.41-.4-.61-.94-.61-1.47v-2.12c0-.54.2-1.07.61-1.48l6.63-6.62c.4-.41.94-.61 1.47-.61s1.06.2 1.47.61zm-6.21 9.7l6.42-6.42c.39-.39.39-1.03 0-1.43L12.36 4.3c-.19-.19-.45-.29-.72-.29s-.52.1-.71.29l-6.42 6.42c-.39.4-.39 1.04 0 1.43l2.14 2.14c.38.38 1.04.38 1.43 0z';\n          break;\n\n        case 'editor-rtl':\n          path = 'M5.52 2h7.43c.55 0 1 .45 1 1s-.45 1-1 1h-1v13c0 .55-.45 1-1 1s-1-.45-1-1V5c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55-.45 1-1 1s-1-.45-1-1v-5.96h-.43C3.02 11.04 1 9.02 1 6.52S3.02 2 5.52 2zM19 6l-5 4 5 4V6z';\n          break;\n\n        case 'editor-spellcheck':\n          path = 'M15.84 2.76c.25 0 .49.04.71.11.23.07.44.16.64.25l.35-.81c-.52-.26-1.08-.39-1.69-.39-.58 0-1.09.13-1.52.37-.43.25-.76.61-.99 1.08C13.11 3.83 13 4.38 13 5c0 .99.23 1.75.7 2.28s1.15.79 2.02.79c.6 0 1.13-.09 1.6-.26v-.84c-.26.08-.51.14-.74.19-.24.05-.49.08-.74.08-.59 0-1.04-.19-1.34-.57-.32-.37-.47-.93-.47-1.66 0-.7.16-1.25.48-1.65.33-.4.77-.6 1.33-.6zM6.5 8h1.04L5.3 2H4.24L2 8h1.03l.58-1.66H5.9zM8 2v6h2.17c.67 0 1.19-.15 1.57-.46.38-.3.56-.72.56-1.26 0-.4-.1-.72-.3-.95-.19-.24-.5-.39-.93-.47v-.04c.35-.06.6-.21.78-.44.18-.24.28-.53.28-.88 0-.52-.19-.9-.56-1.14-.36-.24-.96-.36-1.79-.36H8zm.98 2.48V2.82h.85c.44 0 .77.06.97.19.21.12.31.33.31.61 0 .31-.1.53-.29.66-.18.13-.48.2-.89.2h-.95zM5.64 5.5H3.9l.54-1.56c.14-.4.25-.76.32-1.1l.15.52c.07.23.13.4.17.51zm3.34-.23h.99c.44 0 .76.08.98.23.21.15.32.38.32.69 0 .34-.11.59-.32.75s-.52.24-.93.24H8.98V5.27zM4 13l5 5 9-8-1-1-8 6-4-3z';\n          break;\n\n        case 'editor-strikethrough':\n          path = 'M15.82 12.25c.26 0 .5-.02.74-.07.23-.05.48-.12.73-.2v.84c-.46.17-.99.26-1.58.26-.88 0-1.54-.26-2.01-.79-.39-.44-.62-1.04-.68-1.79h-.94c.12.21.18.48.18.79 0 .54-.18.95-.55 1.26-.38.3-.9.45-1.56.45H8v-2.5H6.59l.93 2.5H6.49l-.59-1.67H3.62L3.04 13H2l.93-2.5H2v-1h1.31l.93-2.49H5.3l.92 2.49H8V7h1.77c1 0 1.41.17 1.77.41.37.24.55.62.55 1.13 0 .35-.09.64-.27.87l-.08.09h1.29c.05-.4.15-.77.31-1.1.23-.46.55-.82.98-1.06.43-.25.93-.37 1.51-.37.61 0 1.17.12 1.69.38l-.35.81c-.2-.1-.42-.18-.64-.25s-.46-.11-.71-.11c-.55 0-.99.2-1.31.59-.23.29-.38.66-.44 1.11H17v1h-2.95c.06.5.2.9.44 1.19.3.37.75.56 1.33.56zM4.44 8.96l-.18.54H5.3l-.22-.61c-.04-.11-.09-.28-.17-.51-.07-.24-.12-.41-.14-.51-.08.33-.18.69-.33 1.09zm4.53-1.09V9.5h1.19c.28-.02.49-.09.64-.18.19-.13.28-.35.28-.66 0-.28-.1-.48-.3-.61-.2-.12-.53-.18-.97-.18h-.84zm-3.33 2.64v-.01H3.91v.01h1.73zm5.28.01l-.03-.02H8.97v1.68h1.04c.4 0 .71-.08.92-.23.21-.16.31-.4.31-.74 0-.31-.11-.54-.32-.69z';\n          break;\n\n        case 'editor-table':\n          path = 'M18 17V3H2v14h16zM16 7H4V5h12v2zm-7 4H4V9h5v2zm7 0h-5V9h5v2zm-7 4H4v-2h5v2zm7 0h-5v-2h5v2z';\n          break;\n\n        case 'editor-textcolor':\n          path = 'M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z';\n          break;\n\n        case 'editor-ul':\n          path = 'M5.5 7C4.67 7 4 6.33 4 5.5 4 4.68 4.67 4 5.5 4 6.32 4 7 4.68 7 5.5 7 6.33 6.32 7 5.5 7zM8 5h9v1H8V5zm-2.5 7c-.83 0-1.5-.67-1.5-1.5C4 9.68 4.67 9 5.5 9c.82 0 1.5.68 1.5 1.5 0 .83-.68 1.5-1.5 1.5zM8 10h9v1H8v-1zm-2.5 7c-.83 0-1.5-.67-1.5-1.5 0-.82.67-1.5 1.5-1.5.82 0 1.5.68 1.5 1.5 0 .83-.68 1.5-1.5 1.5zM8 15h9v1H8v-1z';\n          break;\n\n        case 'editor-underline':\n          path = 'M14 5h-2v5.71c0 1.99-1.12 2.98-2.45 2.98-1.32 0-2.55-1-2.55-2.96V5H5v5.87c0 1.91 1 4.54 4.48 4.54 3.49 0 4.52-2.58 4.52-4.5V5zm0 13v-2H5v2h9z';\n          break;\n\n        case 'editor-unlink':\n          path = 'M17.74 2.26c1.68 1.69 1.68 4.41 0 6.1l-1.53 1.52c-.32.33-.69.58-1.08.77L13 10l1.69-1.64.76-.77.76-.76c.84-.84.84-2.2 0-3.04-.84-.85-2.2-.85-3.04 0l-.77.76-.76.76L10 7l-.65-2.14c.19-.38.44-.75.77-1.07l1.52-1.53c1.69-1.68 4.42-1.68 6.1 0zM2 4l8 6-6-8zm4-2l4 8-2-8H6zM2 6l8 4-8-2V6zm7.36 7.69L10 13l.74 2.35-1.38 1.39c-1.69 1.68-4.41 1.68-6.1 0-1.68-1.68-1.68-4.42 0-6.1l1.39-1.38L7 10l-.69.64-1.52 1.53c-.85.84-.85 2.2 0 3.04.84.85 2.2.85 3.04 0zM18 16l-8-6 6 8zm-4 2l-4-8 2 8h2zm4-4l-8-4 8 2v2z';\n          break;\n\n        case 'editor-video':\n          path = 'M16 2h-3v1H7V2H4v15h3v-1h6v1h3V2zM6 3v1H5V3h1zm9 0v1h-1V3h1zm-2 1v5H7V4h6zM6 5v1H5V5h1zm9 0v1h-1V5h1zM6 7v1H5V7h1zm9 0v1h-1V7h1zM6 9v1H5V9h1zm9 0v1h-1V9h1zm-2 1v5H7v-5h6zm-7 1v1H5v-1h1zm9 0v1h-1v-1h1zm-9 2v1H5v-1h1zm9 0v1h-1v-1h1zm-9 2v1H5v-1h1zm9 0v1h-1v-1h1z';\n          break;\n\n        case 'ellipsis':\n          path = 'M5 10c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm12-2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-7 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z';\n          break;\n\n        case 'email-alt':\n          path = 'M19 14.5v-9c0-.83-.67-1.5-1.5-1.5H3.49c-.83 0-1.5.67-1.5 1.5v9c0 .83.67 1.5 1.5 1.5H17.5c.83 0 1.5-.67 1.5-1.5zm-1.31-9.11c.33.33.15.67-.03.84L13.6 9.95l3.9 4.06c.12.14.2.36.06.51-.13.16-.43.15-.56.05l-4.37-3.73-2.14 1.95-2.13-1.95-4.37 3.73c-.13.1-.43.11-.56-.05-.14-.15-.06-.37.06-.51l3.9-4.06-4.06-3.72c-.18-.17-.36-.51-.03-.84s.67-.17.95.07l6.24 5.04 6.25-5.04c.28-.24.62-.4.95-.07z';\n          break;\n\n        case 'email-alt2':\n          path = 'M18.01 11.18V2.51c0-1.19-.9-1.81-2-1.37L4 5.91c-1.1.44-2 1.77-2 2.97v8.66c0 1.2.9 1.81 2 1.37l12.01-4.77c1.1-.44 2-1.76 2-2.96zm-1.43-7.46l-6.04 9.33-6.65-4.6c-.1-.07-.36-.32-.17-.64.21-.36.65-.21.65-.21l6.3 2.32s4.83-6.34 5.11-6.7c.13-.17.43-.34.73-.13.29.2.16.49.07.63z';\n          break;\n\n        case 'email':\n          path = 'M3.87 4h13.25C18.37 4 19 4.59 19 5.79v8.42c0 1.19-.63 1.79-1.88 1.79H3.87c-1.25 0-1.88-.6-1.88-1.79V5.79c0-1.2.63-1.79 1.88-1.79zm6.62 8.6l6.74-5.53c.24-.2.43-.66.13-1.07-.29-.41-.82-.42-1.17-.17l-5.7 3.86L4.8 5.83c-.35-.25-.88-.24-1.17.17-.3.41-.11.87.13 1.07z';\n          break;\n\n        case 'embed-audio':\n          path = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 3H7v4c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.4 0 .7.1 1 .3V5h4v2zm4 3.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n          break;\n\n        case 'embed-generic':\n          path = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3 6.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n          break;\n\n        case 'embed-photo':\n          path = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 8H3V6h7v6zm4-1.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3zm-6-4V8.5L7.2 10 6 9.2 4 11h5zM4.6 8.6c.6 0 1-.4 1-1s-.4-1-1-1-1 .4-1 1 .4 1 1 1z';\n          break;\n\n        case 'embed-post':\n          path = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.6 9l-.4.3c-.4.4-.5 1.1-.2 1.6l-.8.8-1.1-1.1-1.3 1.3c-.2.2-1.6 1.3-1.8 1.1-.2-.2.9-1.6 1.1-1.8l1.3-1.3-1.1-1.1.8-.8c.5.3 1.2.3 1.6-.2l.3-.3c.5-.5.5-1.2.2-1.7L8 5l3 2.9-.8.8c-.5-.2-1.2-.2-1.6.3zm5.4 1.5L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n          break;\n\n        case 'embed-video':\n          path = 'M17 4H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-7 6.5L8 9.1V11H3V6h5v1.8l2-1.3v4zm4 0L12.5 12l1.5 1.5V15l-3-3 3-3v1.5zm1 4.5v-1.5l1.5-1.5-1.5-1.5V9l3 3-3 3z';\n          break;\n\n        case 'excerpt-view':\n          path = 'M19 18V2c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h16c.55 0 1-.45 1-1zM4 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v6H6V3h11zM4 11c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v6H6v-6h11z';\n          break;\n\n        case 'exit':\n          path = 'M13 3v2h2v10h-2v2h4V3h-4zm0 8V9H5.4l4.3-4.3-1.4-1.4L1.6 10l6.7 6.7 1.4-1.4L5.4 11H13z';\n          break;\n\n        case 'external':\n          path = 'M9 3h8v8l-2-1V6.92l-5.6 5.59-1.41-1.41L14.08 5H10zm3 12v-3l2-2v7H3V6h8L9 8H5v7h7z';\n          break;\n\n        case 'facebook-alt':\n          path = 'M8.46 18h2.93v-7.3h2.45l.37-2.84h-2.82V6.04c0-.82.23-1.38 1.41-1.38h1.51V2.11c-.26-.03-1.15-.11-2.19-.11-2.18 0-3.66 1.33-3.66 3.76v2.1H6v2.84h2.46V18z';\n          break;\n\n        case 'facebook':\n          path = 'M2.89 2h14.23c.49 0 .88.39.88.88v14.24c0 .48-.39.88-.88.88h-4.08v-6.2h2.08l.31-2.41h-2.39V7.85c0-.7.2-1.18 1.2-1.18h1.28V4.51c-.22-.03-.98-.09-1.86-.09-1.85 0-3.11 1.12-3.11 3.19v1.78H8.46v2.41h2.09V18H2.89c-.49 0-.89-.4-.89-.88V2.88c0-.49.4-.88.89-.88z';\n          break;\n\n        case 'feedback':\n          path = 'M2 2h16c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm15 14V7H3v9h14zM4 8v1h3V8H4zm4 0v3h8V8H8zm-4 4v1h3v-1H4zm4 0v3h8v-3H8z';\n          break;\n\n        case 'filter':\n          path = 'M3 4.5v-2s3.34-1 7-1 7 1 7 1v2l-5 7.03v6.97s-1.22-.09-2.25-.59S8 16.5 8 16.5v-4.97z';\n          break;\n\n        case 'flag':\n          path = 'M5 18V3H3v15h2zm1-6V4c3-1 7 1 11 0v8c-3 1.27-8-1-11 0z';\n          break;\n\n        case 'format-aside':\n          path = 'M1 1h18v12l-6 6H1V1zm3 3v1h12V4H4zm0 4v1h12V8H4zm6 5v-1H4v1h6zm2 4l5-5h-5v5z';\n          break;\n\n        case 'format-audio':\n          path = 'M6.99 3.08l11.02-2c.55-.08.99.45.99 1V14.5c0 1.94-1.57 3.5-3.5 3.5S12 16.44 12 14.5c0-1.93 1.57-3.5 3.5-3.5.54 0 1.04.14 1.5.35V5.08l-9 2V16c-.24 1.7-1.74 3-3.5 3C2.57 19 1 17.44 1 15.5 1 13.57 2.57 12 4.5 12c.54 0 1.04.14 1.5.35V4.08c0-.55.44-.91.99-1z';\n          break;\n\n        case 'format-chat':\n          path = 'M11 6h-.82C9.07 6 8 7.2 8 8.16V10l-3 3v-3H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v3zm0 1h6c1.1 0 2 .9 2 2v5c0 1.1-.9 2-2 2h-2v3l-3-3h-1c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2z';\n          break;\n\n        case 'format-gallery':\n          path = 'M16 4h1.96c.57 0 1.04.47 1.04 1.04v12.92c0 .57-.47 1.04-1.04 1.04H5.04C4.47 19 4 18.53 4 17.96V16H2.04C1.47 16 1 15.53 1 14.96V2.04C1 1.47 1.47 1 2.04 1h12.92c.57 0 1.04.47 1.04 1.04V4zM3 14h11V3H3v11zm5-8.5C8 4.67 7.33 4 6.5 4S5 4.67 5 5.5 5.67 7 6.5 7 8 6.33 8 5.5zm2 4.5s1-5 3-5v8H4V7c2 0 2 3 2 3s.33-2 2-2 2 2 2 2zm7 7V6h-1v8.96c0 .57-.47 1.04-1.04 1.04H6v1h11z';\n          break;\n\n        case 'format-image':\n          path = 'M2.25 1h15.5c.69 0 1.25.56 1.25 1.25v15.5c0 .69-.56 1.25-1.25 1.25H2.25C1.56 19 1 18.44 1 17.75V2.25C1 1.56 1.56 1 2.25 1zM17 17V3H3v14h14zM10 6c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm3 5s0-6 3-6v10c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V8c2 0 3 4 3 4s1-3 3-3 3 2 3 2z';\n          break;\n\n        case 'format-quote':\n          path = 'M8.54 12.74c0-.87-.24-1.61-.72-2.22-.73-.92-2.14-1.03-2.96-.85-.34-1.93 1.3-4.39 3.42-5.45L6.65 1.94C3.45 3.46.31 6.96.85 11.37 1.19 14.16 2.8 16 5.08 16c1 0 1.83-.29 2.48-.88.66-.59.98-1.38.98-2.38zm9.43 0c0-.87-.24-1.61-.72-2.22-.73-.92-2.14-1.03-2.96-.85-.34-1.93 1.3-4.39 3.42-5.45l-1.63-2.28c-3.2 1.52-6.34 5.02-5.8 9.43.34 2.79 1.95 4.63 4.23 4.63 1 0 1.83-.29 2.48-.88.66-.59.98-1.38.98-2.38z';\n          break;\n\n        case 'format-status':\n          path = 'M10 1c7 0 9 2.91 9 6.5S17 14 10 14s-9-2.91-9-6.5S3 1 10 1zM5.5 9C6.33 9 7 8.33 7 7.5S6.33 6 5.5 6 4 6.67 4 7.5 4.67 9 5.5 9zM10 9c.83 0 1.5-.67 1.5-1.5S10.83 6 10 6s-1.5.67-1.5 1.5S9.17 9 10 9zm4.5 0c.83 0 1.5-.67 1.5-1.5S15.33 6 14.5 6 13 6.67 13 7.5 13.67 9 14.5 9zM6 14.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm-3 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z';\n          break;\n\n        case 'format-video':\n          path = 'M2 1h16c.55 0 1 .45 1 1v16l-18-.02V2c0-.55.45-1 1-1zm4 1L4 5h1l2-3H6zm4 0H9L7 5h1zm3 0h-1l-2 3h1zm3 0h-1l-2 3h1zm1 14V6H3v10h14zM8 7l6 4-6 4V7z';\n          break;\n\n        case 'forms':\n          path = 'M2 2h7v7H2V2zm9 0v7h7V2h-7zM5.5 4.5L7 3H4zM12 8V3h5v5h-5zM4.5 5.5L3 4v3zM8 4L6.5 5.5 8 7V4zM5.5 6.5L4 8h3zM9 18v-7H2v7h7zm9 0h-7v-7h7v7zM8 12v5H3v-5h5zm6.5 1.5L16 12h-3zM12 16l1.5-1.5L12 13v3zm3.5-1.5L17 16v-3zm-1 1L13 17h3z';\n          break;\n\n        case 'googleplus':\n          path = 'M6.73 10h5.4c.05.29.09.57.09.95 0 3.27-2.19 5.6-5.49 5.6-3.17 0-5.73-2.57-5.73-5.73 0-3.17 2.56-5.73 5.73-5.73 1.54 0 2.84.57 3.83 1.5l-1.55 1.5c-.43-.41-1.17-.89-2.28-.89-1.96 0-3.55 1.62-3.55 3.62 0 1.99 1.59 3.61 3.55 3.61 2.26 0 3.11-1.62 3.24-2.47H6.73V10zM19 10v1.64h-1.64v1.63h-1.63v-1.63h-1.64V10h1.64V8.36h1.63V10H19z';\n          break;\n\n        case 'grid-view':\n          path = 'M2 1h16c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1zm7.01 7.99v-6H3v6h6.01zm8 0v-6h-6v6h6zm-8 8.01v-6H3v6h6.01zm8 0v-6h-6v6h6z';\n          break;\n\n        case 'groups':\n          path = 'M8.03 4.46c-.29 1.28.55 3.46 1.97 3.46 1.41 0 2.25-2.18 1.96-3.46-.22-.98-1.08-1.63-1.96-1.63-.89 0-1.74.65-1.97 1.63zm-4.13.9c-.25 1.08.47 2.93 1.67 2.93s1.92-1.85 1.67-2.93c-.19-.83-.92-1.39-1.67-1.39s-1.48.56-1.67 1.39zm8.86 0c-.25 1.08.47 2.93 1.66 2.93 1.2 0 1.92-1.85 1.67-2.93-.19-.83-.92-1.39-1.67-1.39-.74 0-1.47.56-1.66 1.39zm-.59 11.43l1.25-4.3C14.2 10 12.71 8.47 10 8.47c-2.72 0-4.21 1.53-3.44 4.02l1.26 4.3C8.05 17.51 9 18 10 18c.98 0 1.94-.49 2.17-1.21zm-6.1-7.63c-.49.67-.96 1.83-.42 3.59l1.12 3.79c-.34.2-.77.31-1.2.31-.85 0-1.65-.41-1.85-1.03l-1.07-3.65c-.65-2.11.61-3.4 2.92-3.4.27 0 .54.02.79.06-.1.1-.2.22-.29.33zm8.35-.39c2.31 0 3.58 1.29 2.92 3.4l-1.07 3.65c-.2.62-1 1.03-1.85 1.03-.43 0-.86-.11-1.2-.31l1.11-3.77c.55-1.78.08-2.94-.42-3.61-.08-.11-.18-.23-.28-.33.25-.04.51-.06.79-.06z';\n          break;\n\n        case 'hammer':\n          path = 'M17.7 6.32l1.41 1.42-3.47 3.41-1.42-1.42.84-.82c-.32-.76-.81-1.57-1.51-2.31l-4.61 6.59-5.26 4.7c-.39.39-1.02.39-1.42 0l-1.2-1.21c-.39-.39-.39-1.02 0-1.41l10.97-9.92c-1.37-.86-3.21-1.46-5.67-1.48 2.7-.82 4.95-.93 6.58-.3 1.7.66 2.82 2.2 3.91 3.58z';\n          break;\n\n        case 'heading':\n          path = 'M12.5 4v5.2h-5V4H5v13h2.5v-5.2h5V17H15V4';\n          break;\n\n        case 'heart':\n          path = 'M10 17.12c3.33-1.4 5.74-3.79 7.04-6.21 1.28-2.41 1.46-4.81.32-6.25-1.03-1.29-2.37-1.78-3.73-1.74s-2.68.63-3.63 1.46c-.95-.83-2.27-1.42-3.63-1.46s-2.7.45-3.73 1.74c-1.14 1.44-.96 3.84.34 6.25 1.28 2.42 3.69 4.81 7.02 6.21z';\n          break;\n\n        case 'hidden':\n          path = 'M17.2 3.3l.16.17c.39.39.39 1.02 0 1.41L4.55 17.7c-.39.39-1.03.39-1.41 0l-.17-.17c-.39-.39-.39-1.02 0-1.41l1.59-1.6c-1.57-1-2.76-2.3-3.56-3.93.81-1.65 2.03-2.98 3.64-3.99S8.04 5.09 10 5.09c1.2 0 2.33.21 3.4.6l2.38-2.39c.39-.39 1.03-.39 1.42 0zm-7.09 4.01c-.23.25-.34.54-.34.88 0 .31.12.58.31.81l1.8-1.79c-.13-.12-.28-.21-.45-.26-.11-.01-.28-.03-.49-.04-.33.03-.6.16-.83.4zM2.4 10.59c.69 1.23 1.71 2.25 3.05 3.05l1.28-1.28c-.51-.69-.77-1.47-.77-2.36 0-1.06.36-1.98 1.09-2.76-1.04.27-1.96.7-2.76 1.26-.8.58-1.43 1.27-1.89 2.09zm13.22-2.13l.96-.96c1.02.86 1.83 1.89 2.42 3.09-.81 1.65-2.03 2.98-3.64 3.99s-3.4 1.51-5.36 1.51c-.63 0-1.24-.07-1.83-.18l1.07-1.07c.25.02.5.05.76.05 1.63 0 3.13-.4 4.5-1.21s2.4-1.84 3.1-3.09c-.46-.82-1.09-1.51-1.89-2.09-.03-.01-.06-.03-.09-.04zm-5.58 5.58l4-4c-.01 1.1-.41 2.04-1.18 2.81-.78.78-1.72 1.18-2.82 1.19z';\n          break;\n\n        case 'html':\n          path = 'M4 16v-2H2v2H1v-5h1v2h2v-2h1v5H4zM7 16v-4H5.6v-1h3.7v1H8v4H7zM10 16v-5h1l1.4 3.4h.1L14 11h1v5h-1v-3.1h-.1l-1.1 2.5h-.6l-1.1-2.5H11V16h-1zM19 16h-3v-5h1v4h2v1zM9.4 4.2L7.1 6.5l2.3 2.3-.6 1.2-3.5-3.5L8.8 3l.6 1.2zm1.2 4.6l2.3-2.3-2.3-2.3.6-1.2 3.5 3.5-3.5 3.5-.6-1.2z';\n          break;\n\n        case 'id-alt':\n          path = 'M18 18H2V2h16v16zM8.05 7.53c.13-.07.24-.15.33-.24.09-.1.17-.21.24-.34.07-.14.13-.26.17-.37s.07-.22.1-.34L8.95 6c0-.04.01-.07.01-.09.05-.32.03-.61-.04-.9-.08-.28-.23-.52-.46-.72C8.23 4.1 7.95 4 7.6 4c-.2 0-.39.04-.56.11-.17.08-.31.18-.41.3-.11.13-.2.27-.27.44-.07.16-.11.33-.12.51s0 .36.01.55l.02.09c.01.06.03.15.06.25s.06.21.1.33.1.25.17.37c.08.12.16.23.25.33s.2.19.34.25c.13.06.28.09.43.09s.3-.03.43-.09zM16 5V4h-5v1h5zm0 2V6h-5v1h5zM7.62 8.83l-1.38-.88c-.41 0-.79.11-1.14.32-.35.22-.62.5-.81.85-.19.34-.29.7-.29 1.07v1.25l.2.05c.13.04.31.09.55.14.24.06.51.12.8.17.29.06.62.1 1 .14.37.04.73.06 1.07.06s.69-.02 1.07-.06.7-.09.98-.14c.27-.05.54-.1.82-.17.27-.06.45-.11.54-.13.09-.03.16-.05.21-.06v-1.25c0-.36-.1-.72-.31-1.07s-.49-.64-.84-.86-.72-.33-1.11-.33zM16 9V8h-3v1h3zm0 2v-1h-3v1h3zm0 3v-1H4v1h12zm0 2v-1H4v1h12z';\n          break;\n\n        case 'id':\n          path = 'M18 16H2V4h16v12zM7.05 8.53c.13-.07.24-.15.33-.24.09-.1.17-.21.24-.34.07-.14.13-.26.17-.37s.07-.22.1-.34L7.95 7c0-.04.01-.07.01-.09.05-.32.03-.61-.04-.9-.08-.28-.23-.52-.46-.72C7.23 5.1 6.95 5 6.6 5c-.2 0-.39.04-.56.11-.17.08-.31.18-.41.3-.11.13-.2.27-.27.44-.07.16-.11.33-.12.51s0 .36.01.55l.02.09c.01.06.03.15.06.25s.06.21.1.33.1.25.17.37c.08.12.16.23.25.33s.2.19.34.25c.13.06.28.09.43.09s.3-.03.43-.09zM17 9V5h-5v4h5zm-10.38.83l-1.38-.88c-.41 0-.79.11-1.14.32-.35.22-.62.5-.81.85-.19.34-.29.7-.29 1.07v1.25l.2.05c.13.04.31.09.55.14.24.06.51.12.8.17.29.06.62.1 1 .14.37.04.73.06 1.07.06s.69-.02 1.07-.06.7-.09.98-.14c.27-.05.54-.1.82-.17.27-.06.45-.11.54-.13.09-.03.16-.05.21-.06v-1.25c0-.36-.1-.72-.31-1.07s-.49-.64-.84-.86-.72-.33-1.11-.33zM17 11v-1h-5v1h5zm0 2v-1h-5v1h5zm0 2v-1H3v1h14z';\n          break;\n\n        case 'image-crop':\n          path = 'M19 12v3h-4v4h-3v-4H4V7H0V4h4V0h3v4h7l3-3 1 1-3 3v7h4zm-8-5H7v4zm-3 5h4V8z';\n          break;\n\n        case 'image-filter':\n          path = 'M14 5.87c0-2.2-1.79-4-4-4s-4 1.8-4 4c0 2.21 1.79 4 4 4s4-1.79 4-4zM3.24 10.66c-1.92 1.1-2.57 3.55-1.47 5.46 1.11 1.92 3.55 2.57 5.47 1.47 1.91-1.11 2.57-3.55 1.46-5.47-1.1-1.91-3.55-2.56-5.46-1.46zm9.52 6.93c1.92 1.1 4.36.45 5.47-1.46 1.1-1.92.45-4.36-1.47-5.47-1.91-1.1-4.36-.45-5.46 1.46-1.11 1.92-.45 4.36 1.46 5.47z';\n          break;\n\n        case 'image-flip-horizontal':\n          path = 'M19 3v14h-8v3H9v-3H1V3h8V0h2v3h8zm-8.5 14V3h-1v14h1zM7 6.5L3 10l4 3.5v-7zM17 10l-4-3.5v7z';\n          break;\n\n        case 'image-flip-vertical':\n          path = 'M20 9v2h-3v8H3v-8H0V9h3V1h14v8h3zM6.5 7h7L10 3zM17 9.5H3v1h14v-1zM13.5 13h-7l3.5 4z';\n          break;\n\n        case 'image-rotate-left':\n          path = 'M7 5H5.05c0-1.74.85-2.9 2.95-2.9V0C4.85 0 2.96 2.11 2.96 5H1.18L3.8 8.39zm13-4v14h-5v5H1V10h9V1h10zm-2 2h-6v7h3v3h3V3zm-5 9H3v6h10v-6z';\n          break;\n\n        case 'image-rotate-right':\n          path = 'M15.95 5H14l3.2 3.39L19.82 5h-1.78c0-2.89-1.89-5-5.04-5v2.1c2.1 0 2.95 1.16 2.95 2.9zM1 1h10v9h9v10H6v-5H1V1zm2 2v10h3v-3h3V3H3zm5 9v6h10v-6H8z';\n          break;\n\n        case 'image-rotate':\n          path = 'M10.25 1.02c5.1 0 8.75 4.04 8.75 9s-3.65 9-8.75 9c-3.2 0-6.02-1.59-7.68-3.99l2.59-1.52c1.1 1.5 2.86 2.51 4.84 2.51 3.3 0 6-2.79 6-6s-2.7-6-6-6c-1.97 0-3.72 1-4.82 2.49L7 8.02l-6 2v-7L2.89 4.6c1.69-2.17 4.36-3.58 7.36-3.58z';\n          break;\n\n        case 'images-alt':\n          path = 'M4 15v-3H2V2h12v3h2v3h2v10H6v-3H4zm7-12c-1.1 0-2 .9-2 2h4c0-1.1-.89-2-2-2zm-7 8V6H3v5h1zm7-3h4c0-1.1-.89-2-2-2-1.1 0-2 .9-2 2zm-5 6V9H5v5h1zm9-1c1.1 0 2-.89 2-2 0-1.1-.9-2-2-2s-2 .9-2 2c0 1.11.9 2 2 2zm2 4v-2c-5 0-5-3-10-3v5h10z';\n          break;\n\n        case 'images-alt2':\n          path = 'M5 3h14v11h-2v2h-2v2H1V7h2V5h2V3zm13 10V4H6v9h12zm-3-4c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm1 6v-1H5V6H4v9h12zM7 6l10 6H7V6zm7 11v-1H3V8H2v9h12z';\n          break;\n\n        case 'index-card':\n          path = 'M1 3.17V18h18V4H8v-.83c0-.32-.12-.6-.35-.83S7.14 2 6.82 2H2.18c-.33 0-.6.11-.83.34-.24.23-.35.51-.35.83zM10 6v2H3V6h7zm7 0v10h-5V6h5zm-7 4v2H3v-2h7zm0 4v2H3v-2h7z';\n          break;\n\n        case 'info-outline':\n          path = 'M9 15h2V9H9v6zm1-10c-.5 0-1 .5-1 1s.5 1 1 1 1-.5 1-1-.5-1-1-1zm0-4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z';\n          break;\n\n        case 'info':\n          path = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1 4c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 9V9H9v6h2z';\n          break;\n\n        case 'insert-after':\n          path = 'M9 12h2v-2h2V8h-2V6H9v2H7v2h2v2zm1 4c3.9 0 7-3.1 7-7s-3.1-7-7-7-7 3.1-7 7 3.1 7 7 7zm0-12c2.8 0 5 2.2 5 5s-2.2 5-5 5-5-2.2-5-5 2.2-5 5-5zM3 19h14v-2H3v2z';\n          break;\n\n        case 'insert-before':\n          path = 'M11 8H9v2H7v2h2v2h2v-2h2v-2h-2V8zm-1-4c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7zm0 12c-2.8 0-5-2.2-5-5s2.2-5 5-5 5 2.2 5 5-2.2 5-5 5zM3 1v2h14V1H3z';\n          break;\n\n        case 'insert':\n          path = 'M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z';\n          break;\n\n        case 'instagram':\n          path = 'M12.67 10A2.67 2.67 0 1 0 10 12.67 2.68 2.68 0 0 0 12.67 10zm1.43 0A4.1 4.1 0 1 1 10 5.9a4.09 4.09 0 0 1 4.1 4.1zm1.13-4.27a1 1 0 1 1-1-1 1 1 0 0 1 1 1zM10 3.44c-1.17 0-3.67-.1-4.72.32a2.67 2.67 0 0 0-1.52 1.52c-.42 1-.32 3.55-.32 4.72s-.1 3.67.32 4.72a2.74 2.74 0 0 0 1.52 1.52c1 .42 3.55.32 4.72.32s3.67.1 4.72-.32a2.83 2.83 0 0 0 1.52-1.52c.42-1.05.32-3.55.32-4.72s.1-3.67-.32-4.72a2.74 2.74 0 0 0-1.52-1.52c-1.05-.42-3.55-.32-4.72-.32zM18 10c0 1.1 0 2.2-.05 3.3a4.84 4.84 0 0 1-1.29 3.36A4.8 4.8 0 0 1 13.3 18H6.7a4.84 4.84 0 0 1-3.36-1.29 4.84 4.84 0 0 1-1.29-3.41C2 12.2 2 11.1 2 10V6.7a4.84 4.84 0 0 1 1.34-3.36A4.8 4.8 0 0 1 6.7 2.05C7.8 2 8.9 2 10 2h3.3a4.84 4.84 0 0 1 3.36 1.29A4.8 4.8 0 0 1 18 6.7V10z';\n          break;\n\n        case 'keyboard-hide':\n          path = 'M18,0 L2,0 C0.9,0 0.01,0.9 0.01,2 L0,12 C0,13.1 0.9,14 2,14 L18,14 C19.1,14 20,13.1 20,12 L20,2 C20,0.9 19.1,0 18,0 Z M18,12 L2,12 L2,2 L18,2 L18,12 Z M9,3 L11,3 L11,5 L9,5 L9,3 Z M9,6 L11,6 L11,8 L9,8 L9,6 Z M6,3 L8,3 L8,5 L6,5 L6,3 Z M6,6 L8,6 L8,8 L6,8 L6,6 Z M3,6 L5,6 L5,8 L3,8 L3,6 Z M3,3 L5,3 L5,5 L3,5 L3,3 Z M6,9 L14,9 L14,11 L6,11 L6,9 Z M12,6 L14,6 L14,8 L12,8 L12,6 Z M12,3 L14,3 L14,5 L12,5 L12,3 Z M15,6 L17,6 L17,8 L15,8 L15,6 Z M15,3 L17,3 L17,5 L15,5 L15,3 Z M10,20 L14,16 L6,16 L10,20 Z';\n          break;\n\n        case 'laptop':\n          path = 'M3 3h14c.6 0 1 .4 1 1v10c0 .6-.4 1-1 1H3c-.6 0-1-.4-1-1V4c0-.6.4-1 1-1zm13 2H4v8h12V5zm-3 1H5v4zm6 11v-1H1v1c0 .6.5 1 1.1 1h15.8c.6 0 1.1-.4 1.1-1z';\n          break;\n\n        case 'layout':\n          path = 'M2 2h5v11H2V2zm6 0h5v5H8V2zm6 0h4v16h-4V2zM8 8h5v5H8V8zm-6 6h11v4H2v-4z';\n          break;\n\n        case 'leftright':\n          path = 'M3 10.03L9 6v8zM11 6l6 4.03L11 14V6z';\n          break;\n\n        case 'lightbulb':\n          path = 'M10 1c3.11 0 5.63 2.52 5.63 5.62 0 1.84-2.03 4.58-2.03 4.58-.33.44-.6 1.25-.6 1.8v1c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1v-1c0-.55-.27-1.36-.6-1.8 0 0-2.02-2.74-2.02-4.58C4.38 3.52 6.89 1 10 1zM7 16.87V16h6v.87c0 .62-.13 1.13-.75 1.13H12c0 .62-.4 1-1.02 1h-2c-.61 0-.98-.38-.98-1h-.25c-.62 0-.75-.51-.75-1.13z';\n          break;\n\n        case 'list-view':\n          path = 'M2 19h16c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1zM4 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6V3h11zM4 7c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6V7h11zM4 11c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6v-2h11zM4 15c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm13 0v2H6v-2h11z';\n          break;\n\n        case 'location-alt':\n          path = 'M13 13.14l1.17-5.94c.79-.43 1.33-1.25 1.33-2.2 0-1.38-1.12-2.5-2.5-2.5S10.5 3.62 10.5 5c0 .95.54 1.77 1.33 2.2zm0-9.64c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5zm1.72 4.8L18 6.97v9L13.12 18 7 15.97l-5 2v-9l5-2 4.27 1.41 1.73 7.3z';\n          break;\n\n        case 'location':\n          path = 'M10 2C6.69 2 4 4.69 4 8c0 2.02 1.17 3.71 2.53 4.89.43.37 1.18.96 1.85 1.83.74.97 1.41 2.01 1.62 2.71.21-.7.88-1.74 1.62-2.71.67-.87 1.42-1.46 1.85-1.83C14.83 11.71 16 10.02 16 8c0-3.31-2.69-6-6-6zm0 2.56c1.9 0 3.44 1.54 3.44 3.44S11.9 11.44 10 11.44 6.56 9.9 6.56 8 8.1 4.56 10 4.56z';\n          break;\n\n        case 'lock':\n          path = 'M14 9h1c.55 0 1 .45 1 1v7c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1v-7c0-.55.45-1 1-1h1V6c0-2.21 1.79-4 4-4s4 1.79 4 4v3zm-2 0V6c0-1.1-.9-2-2-2s-2 .9-2 2v3h4zm-1 7l-.36-2.15c.51-.24.86-.75.86-1.35 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .6.35 1.11.86 1.35L9 16h2z';\n          break;\n\n        case 'marker':\n          path = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm0 13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5z';\n          break;\n\n        case 'media-archive':\n          path = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zM8 3.5v2l1.8-1zM11 5L9.2 6 11 7V5zM8 6.5v2l1.8-1zM11 8L9.2 9l1.8 1V8zM8 9.5v2l1.8-1zm3 1.5l-1.8 1 1.8 1v-2zm-1.5 6c.83 0 1.62-.72 1.5-1.63-.05-.38-.49-1.61-.49-1.61l-1.99-1.1s-.45 1.95-.52 2.71c-.07.77.67 1.63 1.5 1.63zm0-2.39c.42 0 .76.34.76.76 0 .43-.34.77-.76.77s-.76-.34-.76-.77c0-.42.34-.76.76-.76z';\n          break;\n\n        case 'media-audio':\n          path = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm1 7.26V8.09c0-.11-.04-.21-.12-.29-.07-.08-.16-.11-.27-.1 0 0-3.97.71-4.25.78C8.07 8.54 8 8.8 8 9v3.37c-.2-.09-.42-.07-.6-.07-.38 0-.7.13-.96.39-.26.27-.4.58-.4.96 0 .37.14.69.4.95.26.27.58.4.96.4.34 0 .7-.04.96-.26.26-.23.64-.65.64-1.12V10.3l3-.6V12c-.67-.2-1.17.04-1.44.31-.26.26-.39.58-.39.95 0 .38.13.69.39.96.27.26.71.39 1.08.39.38 0 .7-.13.96-.39.26-.27.4-.58.4-.96z';\n          break;\n\n        case 'media-code':\n          path = 'M12 2l4 4v12H4V2h8zM9 13l-2-2 2-2-1-1-3 3 3 3zm3 1l3-3-3-3-1 1 2 2-2 2z';\n          break;\n\n        case 'media-default':\n          path = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3z';\n          break;\n\n        case 'media-document':\n          path = 'M12 2l4 4v12H4V2h8zM5 3v1h6V3H5zm7 3h3l-3-3v3zM5 5v1h6V5H5zm10 3V7H5v1h10zM5 9v1h4V9H5zm10 3V9h-5v3h5zM5 11v1h4v-1H5zm10 3v-1H5v1h10zm-3 2v-1H5v1h7z';\n          break;\n\n        case 'media-interactive':\n          path = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm2 8V8H6v6h3l-1 2h1l1-2 1 2h1l-1-2h3zm-6-3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-2v2h-3V9h3zm0 3v1H7v-1h6z';\n          break;\n\n        case 'media-spreadsheet':\n          path = 'M12 2l4 4v12H4V2h8zm-1 4V3H5v3h6zM8 8V7H5v1h3zm3 0V7H9v1h2zm4 0V7h-3v1h3zm-7 2V9H5v1h3zm3 0V9H9v1h2zm4 0V9h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2zm4 0v-1h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2zm4 0v-1h-3v1h3zm-7 2v-1H5v1h3zm3 0v-1H9v1h2z';\n          break;\n\n        case 'media-text':\n          path = 'M12 2l4 4v12H4V2h8zM5 3v1h6V3H5zm7 3h3l-3-3v3zM5 5v1h6V5H5zm10 3V7H5v1h10zm0 2V9H5v1h10zm0 2v-1H5v1h10zm-4 2v-1H5v1h6z';\n          break;\n\n        case 'media-video':\n          path = 'M12 2l4 4v12H4V2h8zm0 4h3l-3-3v3zm-1 8v-3c0-.27-.1-.51-.29-.71-.2-.19-.44-.29-.71-.29H7c-.27 0-.51.1-.71.29-.19.2-.29.44-.29.71v3c0 .27.1.51.29.71.2.19.44.29.71.29h3c.27 0 .51-.1.71-.29.19-.2.29-.44.29-.71zm3 1v-5l-2 2v1z';\n          break;\n\n        case 'megaphone':\n          path = 'M18.15 5.94c.46 1.62.38 3.22-.02 4.48-.42 1.28-1.26 2.18-2.3 2.48-.16.06-.26.06-.4.06-.06.02-.12.02-.18.02-.06.02-.14.02-.22.02h-6.8l2.22 5.5c.02.14-.06.26-.14.34-.08.1-.24.16-.34.16H6.95c-.1 0-.26-.06-.34-.16-.08-.08-.16-.2-.14-.34l-1-5.5H4.25l-.02-.02c-.5.06-1.08-.18-1.54-.62s-.88-1.08-1.06-1.88c-.24-.8-.2-1.56-.02-2.2.18-.62.58-1.08 1.06-1.3l.02-.02 9-5.4c.1-.06.18-.1.24-.16.06-.04.14-.08.24-.12.16-.08.28-.12.5-.18 1.04-.3 2.24.1 3.22.98s1.84 2.24 2.26 3.86zm-2.58 5.98h-.02c.4-.1.74-.34 1.04-.7.58-.7.86-1.76.86-3.04 0-.64-.1-1.3-.28-1.98-.34-1.36-1.02-2.5-1.78-3.24s-1.68-1.1-2.46-.88c-.82.22-1.4.96-1.7 2-.32 1.04-.28 2.36.06 3.72.38 1.36 1 2.5 1.8 3.24.78.74 1.62 1.1 2.48.88zm-2.54-7.08c.22-.04.42-.02.62.04.38.16.76.48 1.02 1s.42 1.2.42 1.78c0 .3-.04.56-.12.8-.18.48-.44.84-.86.94-.34.1-.8-.06-1.14-.4s-.64-.86-.78-1.5c-.18-.62-.12-1.24.02-1.72s.48-.84.82-.94z';\n          break;\n\n        case 'menu-alt':\n          path = 'M3 4h14v2H3V4zm0 5h14v2H3V9zm0 5h14v2H3v-2z';\n          break;\n\n        case 'menu':\n          path = 'M17 7V5H3v2h14zm0 4V9H3v2h14zm0 4v-2H3v2h14z';\n          break;\n\n        case 'microphone':\n          path = 'M12 9V3c0-1.1-.89-2-2-2-1.12 0-2 .94-2 2v6c0 1.1.9 2 2 2 1.13 0 2-.94 2-2zm4 0c0 2.97-2.16 5.43-5 5.91V17h2c.56 0 1 .45 1 1s-.44 1-1 1H7c-.55 0-1-.45-1-1s.45-1 1-1h2v-2.09C6.17 14.43 4 11.97 4 9c0-.55.45-1 1-1 .56 0 1 .45 1 1 0 2.21 1.8 4 4 4 2.21 0 4-1.79 4-4 0-.55.45-1 1-1 .56 0 1 .45 1 1z';\n          break;\n\n        case 'migrate':\n          path = 'M4 6h6V4H2v12.01h8V14H4V6zm2 2h6V5l6 5-6 5v-3H6V8z';\n          break;\n\n        case 'minus':\n          path = 'M4 9h12v2H4V9z';\n          break;\n\n        case 'money':\n          path = 'M0 3h20v12h-.75c0-1.79-1.46-3.25-3.25-3.25-1.31 0-2.42.79-2.94 1.91-.25-.1-.52-.16-.81-.16-.98 0-1.8.63-2.11 1.5H0V3zm8.37 3.11c-.06.15-.1.31-.11.47s-.01.33.01.5l.02.08c.01.06.02.14.05.23.02.1.06.2.1.31.03.11.09.22.15.33.07.12.15.22.23.31s.18.17.31.23c.12.06.25.09.4.09.14 0 .27-.03.39-.09s.22-.14.3-.22c.09-.09.16-.2.22-.32.07-.12.12-.23.16-.33s.07-.2.09-.31c.03-.11.04-.18.05-.22s.01-.07.01-.09c.05-.29.03-.56-.04-.82s-.21-.48-.41-.66c-.21-.18-.47-.27-.79-.27-.19 0-.36.03-.52.1-.15.07-.28.16-.38.28-.09.11-.17.25-.24.4zm4.48 6.04v-1.14c0-.33-.1-.66-.29-.98s-.45-.59-.77-.79c-.32-.21-.66-.31-1.02-.31l-1.24.84-1.28-.82c-.37 0-.72.1-1.04.3-.31.2-.56.46-.74.77-.18.32-.27.65-.27.99v1.14l.18.05c.12.04.29.08.51.14.23.05.47.1.74.15.26.05.57.09.91.13.34.03.67.05.99.05.3 0 .63-.02.98-.05.34-.04.64-.08.89-.13.25-.04.5-.1.76-.16l.5-.12c.08-.02.14-.04.19-.06zm3.15.1c1.52 0 2.75 1.23 2.75 2.75s-1.23 2.75-2.75 2.75c-.73 0-1.38-.3-1.87-.77.23-.35.37-.78.37-1.23 0-.77-.39-1.46-.99-1.86.43-.96 1.37-1.64 2.49-1.64zm-5.5 3.5c0-.96.79-1.75 1.75-1.75s1.75.79 1.75 1.75-.79 1.75-1.75 1.75-1.75-.79-1.75-1.75z';\n          break;\n\n        case 'move':\n          path = 'M19 10l-4 4v-3h-4v4h3l-4 4-4-4h3v-4H5v3l-4-4 4-4v3h4V5H6l4-4 4 4h-3v4h4V6z';\n          break;\n\n        case 'nametag':\n          path = 'M12 5V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1zm-2-3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm8 13V7c0-1.1-.9-2-2-2h-3v.33C13 6.25 12.25 7 11.33 7H8.67C7.75 7 7 6.25 7 5.33V5H4c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-1-6v6H3V9h14zm-8 2c0-.55-.22-1-.5-1s-.5.45-.5 1 .22 1 .5 1 .5-.45.5-1zm3 0c0-.55-.22-1-.5-1s-.5.45-.5 1 .22 1 .5 1 .5-.45.5-1zm-5.96 1.21c.92.48 2.34.79 3.96.79s3.04-.31 3.96-.79c-.21 1-1.89 1.79-3.96 1.79s-3.75-.79-3.96-1.79z';\n          break;\n\n        case 'networking':\n          path = 'M18 13h1c.55 0 1 .45 1 1.01v2.98c0 .56-.45 1.01-1 1.01h-4c-.55 0-1-.45-1-1.01v-2.98c0-.56.45-1.01 1-1.01h1v-2h-5v2h1c.55 0 1 .45 1 1.01v2.98c0 .56-.45 1.01-1 1.01H8c-.55 0-1-.45-1-1.01v-2.98c0-.56.45-1.01 1-1.01h1v-2H4v2h1c.55 0 1 .45 1 1.01v2.98C6 17.55 5.55 18 5 18H1c-.55 0-1-.45-1-1.01v-2.98C0 13.45.45 13 1 13h1v-2c0-1.1.9-2 2-2h5V7H8c-.55 0-1-.45-1-1.01V3.01C7 2.45 7.45 2 8 2h4c.55 0 1 .45 1 1.01v2.98C13 6.55 12.55 7 12 7h-1v2h5c1.1 0 2 .9 2 2v2z';\n          break;\n\n        case 'no-alt':\n          path = 'M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z';\n          break;\n\n        case 'no':\n          path = 'M12.12 10l3.53 3.53-2.12 2.12L10 12.12l-3.54 3.54-2.12-2.12L7.88 10 4.34 6.46l2.12-2.12L10 7.88l3.54-3.53 2.12 2.12z';\n          break;\n\n        case 'palmtree':\n          path = 'M8.58 2.39c.32 0 .59.05.81.14 1.25.55 1.69 2.24 1.7 3.97.59-.82 2.15-2.29 3.41-2.29s2.94.73 3.53 3.55c-1.13-.65-2.42-.94-3.65-.94-1.26 0-2.45.32-3.29.89.4-.11.86-.16 1.33-.16 1.39 0 2.9.45 3.4 1.31.68 1.16.47 3.38-.76 4.14-.14-2.1-1.69-4.12-3.47-4.12-.44 0-.88.12-1.33.38C8 10.62 7 14.56 7 19H2c0-5.53 4.21-9.65 7.68-10.79-.56-.09-1.17-.15-1.82-.15C6.1 8.06 4.05 8.5 2 10c.76-2.96 2.78-4.1 4.69-4.1 1.25 0 2.45.5 3.2 1.29-.66-2.24-2.49-2.86-4.08-2.86-.8 0-1.55.16-2.05.35.91-1.29 3.31-2.29 4.82-2.29zM13 11.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5.67 1.5 1.5 1.5 1.5-.67 1.5-1.5z';\n          break;\n\n        case 'paperclip':\n          path = 'M17.05 2.7c1.93 1.94 1.93 5.13 0 7.07L10 16.84c-1.88 1.89-4.91 1.93-6.86.15-.06-.05-.13-.09-.19-.15-1.93-1.94-1.93-5.12 0-7.07l4.94-4.95c.91-.92 2.28-1.1 3.39-.58.3.15.59.33.83.58 1.17 1.17 1.17 3.07 0 4.24l-4.93 4.95c-.39.39-1.02.39-1.41 0s-.39-1.02 0-1.41l4.93-4.95c.39-.39.39-1.02 0-1.41-.38-.39-1.02-.39-1.4 0l-4.94 4.95c-.91.92-1.1 2.29-.57 3.4.14.3.32.59.57.84s.54.43.84.57c1.11.53 2.47.35 3.39-.57l7.05-7.07c1.16-1.17 1.16-3.08 0-4.25-.56-.55-1.28-.83-2-.86-.08.01-.16.01-.24 0-.22-.03-.43-.11-.6-.27-.39-.4-.38-1.05.02-1.45.16-.16.36-.24.56-.28.14-.02.27-.01.4.02 1.19.06 2.36.52 3.27 1.43z';\n          break;\n\n        case 'performance':\n          path = 'M3.76 17.01h12.48C17.34 15.63 18 13.9 18 12c0-4.41-3.58-8-8-8s-8 3.59-8 8c0 1.9.66 3.63 1.76 5.01zM9 6c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zM4 8c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm4.52 3.4c.84-.83 6.51-3.5 6.51-3.5s-2.66 5.68-3.49 6.51c-.84.84-2.18.84-3.02 0-.83-.83-.83-2.18 0-3.01zM3 13c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm6 0c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1zm6 0c0-.55.45-1 1-1s1 .45 1 1c0 .56-.45 1-1 1s-1-.44-1-1z';\n          break;\n\n        case 'phone':\n          path = 'M12.06 6l-.21-.2c-.52-.54-.43-.79.08-1.3l2.72-2.75c.81-.82.96-1.21 1.73-.48l.21.2zm.53.45l4.4-4.4c.7.94 2.34 3.47 1.53 5.34-.73 1.67-1.09 1.75-2 3-1.85 2.11-4.18 4.37-6 6.07-1.26.91-1.31 1.33-3 2-1.8.71-4.4-.89-5.38-1.56l4.4-4.4 1.18 1.62c.34.46 1.2-.06 1.8-.66 1.04-1.05 3.18-3.18 4-4.07.59-.59 1.12-1.45.66-1.8zM1.57 16.5l-.21-.21c-.68-.74-.29-.9.52-1.7l2.74-2.72c.51-.49.75-.6 1.27-.11l.2.21z';\n          break;\n\n        case 'playlist-audio':\n          path = 'M17 3V1H2v2h15zm0 4V5H2v2h15zm-7 4V9H2v2h8zm7.45-1.96l-6 1.12c-.16.02-.19.03-.29.13-.11.09-.16.22-.16.37v4.59c-.29-.13-.66-.14-.93-.14-.54 0-1 .19-1.38.57s-.56.84-.56 1.38c0 .53.18.99.56 1.37s.84.57 1.38.57c.49 0 .92-.16 1.29-.48s.59-.71.65-1.19v-4.95L17 11.27v3.48c-.29-.13-.56-.19-.83-.19-.54 0-1.11.19-1.49.57-.38.37-.57.83-.57 1.37s.19.99.57 1.37.84.57 1.38.57c.53 0 .99-.19 1.37-.57s.57-.83.57-1.37V9.6c0-.16-.05-.3-.16-.41-.11-.12-.24-.17-.39-.15zM8 15v-2H2v2h6zm-2 4v-2H2v2h4z';\n          break;\n\n        case 'playlist-video':\n          path = 'M17 3V1H2v2h15zm0 4V5H2v2h15zM6 11V9H2v2h4zm2-2h9c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H8c-.55 0-1-.45-1-1v-8c0-.55.45-1 1-1zm3 7l3.33-2L11 12v4zm-5-1v-2H2v2h4zm0 4v-2H2v2h4z';\n          break;\n\n        case 'plus-alt':\n          path = 'M15.8 4.2c3.2 3.21 3.2 8.39 0 11.6-3.21 3.2-8.39 3.2-11.6 0C1 12.59 1 7.41 4.2 4.2 7.41 1 12.59 1 15.8 4.2zm-4.3 11.3v-4h4v-3h-4v-4h-3v4h-4v3h4v4h3z';\n          break;\n\n        case 'plus-light':\n          path = 'M17 9v2h-6v6H9v-6H3V9h6V3h2v6h6z';\n          break;\n\n        case 'plus':\n          path = 'M17 7v3h-5v5H9v-5H4V7h5V2h3v5h5z';\n          break;\n\n        case 'portfolio':\n          path = 'M4 5H.78c-.37 0-.74.32-.69.84l1.56 9.99S3.5 8.47 3.86 6.7c.11-.53.61-.7.98-.7H10s-.7-2.08-.77-2.31C9.11 3.25 8.89 3 8.45 3H5.14c-.36 0-.7.23-.8.64C4.25 4.04 4 5 4 5zm4.88 0h-4s.42-1 .87-1h2.13c.48 0 1 1 1 1zM2.67 16.25c-.31.47-.76.75-1.26.75h15.73c.54 0 .92-.31 1.03-.83.44-2.19 1.68-8.44 1.68-8.44.07-.5-.3-.73-.62-.73H16V5.53c0-.16-.26-.53-.66-.53h-3.76c-.52 0-.87.58-.87.58L10 7H5.59c-.32 0-.63.19-.69.5 0 0-1.59 6.7-1.72 7.33-.07.37-.22.99-.51 1.42zM15.38 7H11s.58-1 1.13-1h2.29c.71 0 .96 1 .96 1z';\n          break;\n\n        case 'post-status':\n          path = 'M14 6c0 1.86-1.28 3.41-3 3.86V16c0 1-2 2-2 2V9.86c-1.72-.45-3-2-3-3.86 0-2.21 1.79-4 4-4s4 1.79 4 4zM8 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z';\n          break;\n\n        case 'pressthis':\n          path = 'M14.76 1C16.55 1 18 2.46 18 4.25c0 1.78-1.45 3.24-3.24 3.24-.23 0-.47-.03-.7-.08L13 8.47V19H2V4h9.54c.13-2 1.52-3 3.22-3zm0 5.49C16 6.49 17 5.48 17 4.25 17 3.01 16 2 14.76 2s-2.24 1.01-2.24 2.25c0 .37.1.72.27 1.03L9.57 8.5c-.28.28-1.77 2.22-1.5 2.49.02.03.06.04.1.04.49 0 2.14-1.28 2.39-1.53l3.24-3.24c.29.14.61.23.96.23z';\n          break;\n\n        case 'products':\n          path = 'M17 8h1v11H2V8h1V6c0-2.76 2.24-5 5-5 .71 0 1.39.15 2 .42.61-.27 1.29-.42 2-.42 2.76 0 5 2.24 5 5v2zM5 6v2h2V6c0-1.13.39-2.16 1.02-3H8C6.35 3 5 4.35 5 6zm10 2V6c0-1.65-1.35-3-3-3h-.02c.63.84 1.02 1.87 1.02 3v2h2zm-5-4.22C9.39 4.33 9 5.12 9 6v2h2V6c0-.88-.39-1.67-1-2.22z';\n          break;\n\n        case 'randomize':\n          path = 'M18 6.01L14 9V7h-4l-5 8H2v-2h2l5-8h5V3zM2 5h3l1.15 2.17-1.12 1.8L4 7H2V5zm16 9.01L14 17v-2H9l-1.15-2.17 1.12-1.8L10 13h4v-2z';\n          break;\n\n        case 'redo':\n          path = 'M8 5h5V2l6 4-6 4V7H8c-2.2 0-4 1.8-4 4s1.8 4 4 4h5v2H8c-3.3 0-6-2.7-6-6s2.7-6 6-6z';\n          break;\n\n        case 'rest-api':\n          path = 'M3 4h2v12H3z';\n          break;\n\n        case 'rss':\n          path = 'M14.92 18H18C18 9.32 10.82 2.25 2 2.25v3.02c7.12 0 12.92 5.71 12.92 12.73zm-5.44 0h3.08C12.56 12.27 7.82 7.6 2 7.6v3.02c2 0 3.87.77 5.29 2.16C8.7 14.17 9.48 16.03 9.48 18zm-5.35-.02c1.17 0 2.13-.93 2.13-2.09 0-1.15-.96-2.09-2.13-2.09-1.18 0-2.13.94-2.13 2.09 0 1.16.95 2.09 2.13 2.09z';\n          break;\n\n        case 'saved':\n          path = 'M15.3 5.3l-6.8 6.8-2.8-2.8-1.4 1.4 4.2 4.2 8.2-8.2';\n          break;\n\n        case 'schedule':\n          path = 'M2 2h16v4H2V2zm0 10V8h4v4H2zm6-2V8h4v2H8zm6 3V8h4v5h-4zm-6 5v-6h4v6H8zm-6 0v-4h4v4H2zm12 0v-3h4v3h-4z';\n          break;\n\n        case 'screenoptions':\n          path = 'M9 9V3H3v6h6zm8 0V3h-6v6h6zm-8 8v-6H3v6h6zm8 0v-6h-6v6h6z';\n          break;\n\n        case 'search':\n          path = 'M12.14 4.18c1.87 1.87 2.11 4.75.72 6.89.12.1.22.21.36.31.2.16.47.36.81.59.34.24.56.39.66.47.42.31.73.57.94.78.32.32.6.65.84 1 .25.35.44.69.59 1.04.14.35.21.68.18 1-.02.32-.14.59-.36.81s-.49.34-.81.36c-.31.02-.65-.04-.99-.19-.35-.14-.7-.34-1.04-.59-.35-.24-.68-.52-1-.84-.21-.21-.47-.52-.77-.93-.1-.13-.25-.35-.47-.66-.22-.32-.4-.57-.56-.78-.16-.2-.29-.35-.44-.5-2.07 1.09-4.69.76-6.44-.98-2.14-2.15-2.14-5.64 0-7.78 2.15-2.15 5.63-2.15 7.78 0zm-1.41 6.36c1.36-1.37 1.36-3.58 0-4.95-1.37-1.37-3.59-1.37-4.95 0-1.37 1.37-1.37 3.58 0 4.95 1.36 1.37 3.58 1.37 4.95 0z';\n          break;\n\n        case 'share-alt':\n          path = 'M16.22 5.8c.47.69.29 1.62-.4 2.08-.69.47-1.62.29-2.08-.4-.16-.24-.35-.46-.55-.67-.21-.2-.43-.39-.67-.55s-.5-.3-.77-.41c-.27-.12-.55-.21-.84-.26-.59-.13-1.23-.13-1.82-.01-.29.06-.57.15-.84.27-.27.11-.53.25-.77.41s-.46.35-.66.55c-.21.21-.4.43-.56.67s-.3.5-.41.76c-.01.02-.01.03-.01.04-.1.24-.17.48-.23.72H1V6h2.66c.04-.07.07-.13.12-.2.27-.4.57-.77.91-1.11s.72-.65 1.11-.91c.4-.27.83-.51 1.28-.7s.93-.34 1.41-.43c.99-.21 2.03-.21 3.02 0 .48.09.96.24 1.41.43s.88.43 1.28.7c.39.26.77.57 1.11.91s.64.71.91 1.11zM12.5 10c0-1.38-1.12-2.5-2.5-2.5S7.5 8.62 7.5 10s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5zm-8.72 4.2c-.47-.69-.29-1.62.4-2.09.69-.46 1.62-.28 2.08.41.16.24.35.46.55.67.21.2.43.39.67.55s.5.3.77.41c.27.12.55.2.84.26.59.13 1.23.12 1.82 0 .29-.06.57-.14.84-.26.27-.11.53-.25.77-.41s.46-.35.66-.55c.21-.21.4-.44.56-.67.16-.25.3-.5.41-.76.01-.02.01-.03.01-.04.1-.24.17-.48.23-.72H19v3h-2.66c-.04.06-.07.13-.12.2-.27.4-.57.77-.91 1.11s-.72.65-1.11.91c-.4.27-.83.51-1.28.7s-.93.33-1.41.43c-.99.21-2.03.21-3.02 0-.48-.1-.96-.24-1.41-.43s-.88-.43-1.28-.7c-.39-.26-.77-.57-1.11-.91s-.64-.71-.91-1.11z';\n          break;\n\n        case 'share-alt2':\n          path = 'M18 8l-5 4V9.01c-2.58.06-4.88.45-7 2.99.29-3.57 2.66-5.66 7-5.94V3zM4 14h11v-2l2-1.6V16H2V5h9.43c-1.83.32-3.31 1-4.41 2H4v7z';\n          break;\n\n        case 'share':\n          path = 'M14.5 12c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3c0-.24.03-.46.09-.69l-4.38-2.3c-.55.61-1.33.99-2.21.99-1.66 0-3-1.34-3-3s1.34-3 3-3c.88 0 1.66.39 2.21.99l4.38-2.3c-.06-.23-.09-.45-.09-.69 0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3c-.88 0-1.66-.39-2.21-.99l-4.38 2.3c.06.23.09.45.09.69s-.03.46-.09.69l4.38 2.3c.55-.61 1.33-.99 2.21-.99z';\n          break;\n\n        case 'shield-alt':\n          path = 'M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2z';\n          break;\n\n        case 'shield':\n          path = 'M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z';\n          break;\n\n        case 'shortcode':\n          path = 'M6 14H4V6h2V4H2v12h4M7.1 17h2.1l3.7-14h-2.1M14 4v2h2v8h-2v2h4V4';\n          break;\n\n        case 'slides':\n          path = 'M5 14V6h10v8H5zm-3-1V7h2v6H2zm4-6v6h8V7H6zm10 0h2v6h-2V7zm-3 2V8H7v1h6zm0 3v-2H7v2h6z';\n          break;\n\n        case 'smartphone':\n          path = 'M6 2h8c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H6c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm7 12V4H7v10h6zM8 5h4l-4 5V5z';\n          break;\n\n        case 'smiley':\n          path = 'M7 5.2c1.1 0 2 .89 2 2 0 .37-.11.71-.28 1C8.72 8.2 8 8 7 8s-1.72.2-1.72.2c-.17-.29-.28-.63-.28-1 0-1.11.9-2 2-2zm6 0c1.11 0 2 .89 2 2 0 .37-.11.71-.28 1 0 0-.72-.2-1.72-.2s-1.72.2-1.72.2c-.17-.29-.28-.63-.28-1 0-1.11.89-2 2-2zm-3 13.7c3.72 0 7.03-2.36 8.23-5.88l-1.32-.46C15.9 15.52 13.12 17.5 10 17.5s-5.9-1.98-6.91-4.94l-1.32.46c1.2 3.52 4.51 5.88 8.23 5.88z';\n          break;\n\n        case 'sort':\n          path = 'M11 7H1l5 7zm-2 7h10l-5-7z';\n          break;\n\n        case 'sos':\n          path = 'M18 10c0-4.42-3.58-8-8-8s-8 3.58-8 8 3.58 8 8 8 8-3.58 8-8zM7.23 3.57L8.72 7.3c-.62.29-1.13.8-1.42 1.42L3.57 7.23c.71-1.64 2.02-2.95 3.66-3.66zm9.2 3.66L12.7 8.72c-.29-.62-.8-1.13-1.42-1.42l1.49-3.73c1.64.71 2.95 2.02 3.66 3.66zM10 12c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm-6.43.77l3.73-1.49c.29.62.8 1.13 1.42 1.42l-1.49 3.73c-1.64-.71-2.95-2.02-3.66-3.66zm9.2 3.66l-1.49-3.73c.62-.29 1.13-.8 1.42-1.42l3.73 1.49c-.71 1.64-2.02 2.95-3.66 3.66z';\n          break;\n\n        case 'star-empty':\n          path = 'M10 1L7 7l-6 .75 4.13 4.62L4 19l6-3 6 3-1.12-6.63L19 7.75 13 7zm0 2.24l2.34 4.69 4.65.58-3.18 3.56.87 5.15L10 14.88l-4.68 2.34.87-5.15-3.18-3.56 4.65-.58z';\n          break;\n\n        case 'star-filled':\n          path = 'M10 1l3 6 6 .75-4.12 4.62L16 19l-6-3-6 3 1.13-6.63L1 7.75 7 7z';\n          break;\n\n        case 'star-half':\n          path = 'M10 1L7 7l-6 .75 4.13 4.62L4 19l6-3 6 3-1.12-6.63L19 7.75 13 7zm0 2.24l2.34 4.69 4.65.58-3.18 3.56.87 5.15L10 14.88V3.24z';\n          break;\n\n        case 'sticky':\n          path = 'M5 3.61V1.04l8.99-.01-.01 2.58c-1.22.26-2.16 1.35-2.16 2.67v.5c.01 1.31.93 2.4 2.17 2.66l-.01 2.58h-3.41l-.01 2.57c0 .6-.47 4.41-1.06 4.41-.6 0-1.08-3.81-1.08-4.41v-2.56L5 12.02l.01-2.58c1.23-.25 2.15-1.35 2.15-2.66v-.5c0-1.31-.92-2.41-2.16-2.67z';\n          break;\n\n        case 'store':\n          path = 'M1 10c.41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.51.43.54 0 1.08-.14 1.49-.43.62-.46 1-1.17 1-2 0 .83.37 1.54 1 2 .41.29.96.43 1.5.43.55 0 1.09-.14 1.5-.43.63-.46 1-1.17 1-2V7l-3-7H4L0 7v1c0 .83.37 1.54 1 2zm2 8.99h5v-5h4v5h5v-7c-.37-.05-.72-.22-1-.43-.63-.45-1-.73-1-1.56 0 .83-.38 1.11-1 1.56-.41.3-.95.43-1.49.44-.55 0-1.1-.14-1.51-.44-.63-.45-1-.73-1-1.56 0 .83-.38 1.11-1 1.56-.41.3-.95.43-1.5.44-.54 0-1.09-.14-1.5-.44-.63-.45-1-.73-1-1.57 0 .84-.38 1.12-1 1.57-.29.21-.63.38-1 .44v6.99z';\n          break;\n\n        case 'table-col-after':\n          path = 'M14.08 12.864V9.216h3.648V7.424H14.08V3.776h-1.728v3.648H8.64v1.792h3.712v3.648zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm0 5.12H1.28v3.84H6.4V6.4zm0 5.12H1.28v3.84H6.4v-3.84zM19.2 1.28H7.68v14.08H19.2V1.28z';\n          break;\n\n        case 'table-col-before':\n          path = 'M6.4 3.776v3.648H2.752v1.792H6.4v3.648h1.728V9.216h3.712V7.424H8.128V3.776zM0 17.92V0h20.48v17.92H0zM12.8 1.28H1.28v14.08H12.8V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.12h-5.12v3.84h5.12V6.4zm0 5.12h-5.12v3.84h5.12v-3.84z';\n          break;\n\n        case 'table-col-delete':\n          path = 'M6.4 9.98L7.68 8.7v-.256L6.4 7.164V9.98zm6.4-1.532l1.28-1.28V9.92L12.8 8.64v-.192zm7.68 9.472V0H0v17.92h20.48zm-1.28-2.56h-5.12v-1.024l-.256.256-1.024-1.024v1.792H7.68v-1.792l-1.024 1.024-.256-.256v1.024H1.28V1.28H6.4v2.368l.704-.704.576.576V1.216h5.12V3.52l.96-.96.32.32V1.216h5.12V15.36zm-5.76-2.112l-3.136-3.136-3.264 3.264-1.536-1.536 3.264-3.264L5.632 5.44l1.536-1.536 3.136 3.136 3.2-3.2 1.536 1.536-3.2 3.2 3.136 3.136-1.536 1.536z';\n          break;\n\n        case 'table-row-after':\n          path = 'M13.824 10.176h-2.88v-2.88H9.536v2.88h-2.88v1.344h2.88v2.88h1.408v-2.88h2.88zM0 17.92V0h20.48v17.92H0zM6.4 1.28H1.28v3.84H6.4V1.28zm6.4 0H7.68v3.84h5.12V1.28zm6.4 0h-5.12v3.84h5.12V1.28zm0 5.056H1.28v9.024H19.2V6.336z';\n          break;\n\n        case 'table-row-before':\n          path = 'M6.656 6.464h2.88v2.88h1.408v-2.88h2.88V5.12h-2.88V2.24H9.536v2.88h-2.88zM0 17.92V0h20.48v17.92H0zm7.68-2.56h5.12v-3.84H7.68v3.84zm-6.4 0H6.4v-3.84H1.28v3.84zM19.2 1.28H1.28v9.024H19.2V1.28zm0 10.24h-5.12v3.84h5.12v-3.84z';\n          break;\n\n        case 'table-row-delete':\n          path = 'M17.728 11.456L14.592 8.32l3.2-3.2-1.536-1.536-3.2 3.2L9.92 3.648 8.384 5.12l3.2 3.2-3.264 3.264 1.536 1.536 3.264-3.264 3.136 3.136 1.472-1.536zM0 17.92V0h20.48v17.92H0zm19.2-6.4h-.448l-1.28-1.28H19.2V6.4h-1.792l1.28-1.28h.512V1.28H1.28v3.84h6.208l1.28 1.28H1.28v3.84h7.424l-1.28 1.28H1.28v3.84H19.2v-3.84z';\n          break;\n\n        case 'tablet':\n          path = 'M4 2h12c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1H4c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1zm11 14V4H5v12h10zM6 5h6l-6 5V5z';\n          break;\n\n        case 'tag':\n          path = 'M11 2h7v7L8 19l-7-7zm3 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z';\n          break;\n\n        case 'tagcloud':\n          path = 'M11 3v4H1V3h10zm8 0v4h-7V3h7zM7 8v3H1V8h6zm12 0v3H8V8h11zM9 12v2H1v-2h8zm10 0v2h-9v-2h9zM6 15v1H1v-1h5zm5 0v1H7v-1h4zm3 0v1h-2v-1h2zm5 0v1h-4v-1h4z';\n          break;\n\n        case 'testimonial':\n          path = 'M4 3h12c.55 0 1.02.2 1.41.59S18 4.45 18 5v7c0 .55-.2 1.02-.59 1.41S16.55 14 16 14h-1l-5 5v-5H4c-.55 0-1.02-.2-1.41-.59S2 12.55 2 12V5c0-.55.2-1.02.59-1.41S3.45 3 4 3zm11 2H4v1h11V5zm1 3H4v1h12V8zm-3 3H4v1h9v-1z';\n          break;\n\n        case 'text':\n          path = 'M18 3v2H2V3h16zm-6 4v2H2V7h10zm6 0v2h-4V7h4zM8 11v2H2v-2h6zm10 0v2h-8v-2h8zm-4 4v2H2v-2h12z';\n          break;\n\n        case 'thumbs-down':\n          path = 'M7.28 18c-.15.02-.26-.02-.41-.07-.56-.19-.83-.79-.66-1.35.17-.55 1-3.04 1-3.58 0-.53-.75-1-1.35-1h-3c-.6 0-1-.4-1-1s2-7 2-7c.17-.39.55-1 1-1H14v9h-2.14c-.41.41-3.3 4.71-3.58 5.27-.21.41-.6.68-1 .73zM18 12h-2V3h2v9z';\n          break;\n\n        case 'thumbs-up':\n          path = 'M12.72 2c.15-.02.26.02.41.07.56.19.83.79.66 1.35-.17.55-1 3.04-1 3.58 0 .53.75 1 1.35 1h3c.6 0 1 .4 1 1s-2 7-2 7c-.17.39-.55 1-1 1H6V8h2.14c.41-.41 3.3-4.71 3.58-5.27.21-.41.6-.68 1-.73zM2 8h2v9H2V8z';\n          break;\n\n        case 'tickets-alt':\n          path = 'M20 6.38L18.99 9.2v-.01c-.52-.19-1.03-.16-1.53.08s-.85.62-1.04 1.14-.16 1.03.07 1.53c.24.5.62.84 1.15 1.03v.01l-1.01 2.82-15.06-5.38.99-2.79c.52.19 1.03.16 1.53-.08.5-.23.84-.61 1.03-1.13s.16-1.03-.08-1.53c-.23-.49-.61-.83-1.13-1.02L4.93 1zm-4.97 5.69l1.37-3.76c.12-.31.1-.65-.04-.95s-.39-.53-.7-.65L8.14 3.98c-.64-.23-1.37.12-1.6.74L5.17 8.48c-.24.65.1 1.37.74 1.6l7.52 2.74c.14.05.28.08.43.08.52 0 1-.33 1.17-.83zM7.97 4.45l7.51 2.73c.19.07.34.21.43.39.08.18.09.38.02.57l-1.37 3.76c-.13.38-.58.59-.96.45L6.09 9.61c-.39-.14-.59-.57-.45-.96l1.37-3.76c.1-.29.39-.49.7-.49.09 0 .17.02.26.05zm6.82 12.14c.35.27.75.41 1.2.41H16v3H0v-2.96c.55 0 1.03-.2 1.41-.59.39-.38.59-.86.59-1.41s-.2-1.02-.59-1.41-.86-.59-1.41-.59V10h1.05l-.28.8 2.87 1.02c-.51.16-.89.62-.89 1.18v4c0 .69.56 1.25 1.25 1.25h8c.69 0 1.25-.56 1.25-1.25v-1.75l.83.3c.12.43.36.78.71 1.04zM3.25 17v-4c0-.41.34-.75.75-.75h.83l7.92 2.83V17c0 .41-.34.75-.75.75H4c-.41 0-.75-.34-.75-.75z';\n          break;\n\n        case 'tickets':\n          path = 'M20 5.38L18.99 8.2v-.01c-1.04-.37-2.19.18-2.57 1.22-.37 1.04.17 2.19 1.22 2.56v.01l-1.01 2.82L1.57 9.42l.99-2.79c1.04.38 2.19-.17 2.56-1.21s-.17-2.18-1.21-2.55L4.93 0zm-5.45 3.37c.74-2.08-.34-4.37-2.42-5.12-2.08-.74-4.37.35-5.11 2.42-.74 2.08.34 4.38 2.42 5.12 2.07.74 4.37-.35 5.11-2.42zm-2.56-4.74c.89.32 1.57.94 1.97 1.71-.01-.01-.02-.01-.04-.02-.33-.12-.67.09-.78.4-.1.28-.03.57.05.91.04.27.09.62-.06 1.04-.1.29-.33.58-.65 1l-.74 1.01.08-4.08.4.11c.19.04.26-.24.08-.29 0 0-.57-.15-.92-.28-.34-.12-.88-.36-.88-.36-.18-.08-.3.19-.12.27 0 0 .16.08.34.16l.01 1.63L9.2 9.18l.08-4.11c.2.06.4.11.4.11.19.04.26-.23.07-.29 0 0-.56-.15-.91-.28-.07-.02-.14-.05-.22-.08.93-.7 2.19-.94 3.37-.52zM7.4 6.19c.17-.49.44-.92.78-1.27l.04 5c-.94-.95-1.3-2.39-.82-3.73zm4.04 4.75l2.1-2.63c.37-.41.57-.77.69-1.12.05-.12.08-.24.11-.35.09.57.04 1.18-.17 1.77-.45 1.25-1.51 2.1-2.73 2.33zm-.7-3.22l.02 3.22c0 .02 0 .04.01.06-.4 0-.8-.07-1.2-.21-.33-.12-.63-.28-.9-.48zm1.24 6.08l2.1.75c.24.84 1 1.45 1.91 1.45H16v3H0v-2.96c1.1 0 2-.89 2-2 0-1.1-.9-2-2-2V9h1.05l-.28.8 4.28 1.52C4.4 12.03 4 12.97 4 14c0 2.21 1.79 4 4 4s4-1.79 4-4c0-.07-.02-.13-.02-.2zm-6.53-2.33l1.48.53c-.14.04-.15.27.03.28 0 0 .18.02.37.03l.56 1.54-.78 2.36-1.31-3.9c.21-.01.41-.03.41-.03.19-.02.17-.31-.02-.3 0 0-.59.05-.96.05-.07 0-.15 0-.23-.01.13-.2.28-.38.45-.55zM4.4 14c0-.52.12-1.02.32-1.46l1.71 4.7C5.23 16.65 4.4 15.42 4.4 14zm4.19-1.41l1.72.62c.07.17.12.37.12.61 0 .31-.12.66-.28 1.16l-.35 1.2zM11.6 14c0 1.33-.72 2.49-1.79 3.11l1.1-3.18c.06-.17.1-.31.14-.46l.52.19c.02.11.03.22.03.34zm-4.62 3.45l1.08-3.14 1.11 3.03c.01.02.01.04.02.05-.37.13-.77.21-1.19.21-.35 0-.69-.06-1.02-.15z';\n          break;\n\n        case 'tide':\n          path = 'M17 7.2V3H3v7.1c2.6-.5 4.5-1.5 6.4-2.6.2-.2.4-.3.6-.5v3c-1.9 1.1-4 2.2-7 2.8V17h14V9.9c-2.6.5-4.4 1.5-6.2 2.6-.3.1-.5.3-.8.4V10c2-1.1 4-2.2 7-2.8z';\n          break;\n\n        case 'translation':\n          path = 'M11 7H9.49c-.63 0-1.25.3-1.59.7L7 5H4.13l-2.39 7h1.69l.74-2H7v4H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h7c1.1 0 2 .9 2 2v2zM6.51 9H4.49l1-2.93zM10 8h7c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2h-7c-1.1 0-2-.9-2-2v-7c0-1.1.9-2 2-2zm7.25 5v-1.08h-3.17V9.75h-1.16v2.17H9.75V13h1.28c.11.85.56 1.85 1.28 2.62-.87.36-1.89.62-2.31.62-.01.02.22.97.2 1.46.84 0 2.21-.5 3.28-1.15 1.09.65 2.48 1.15 3.34 1.15-.02-.49.2-1.44.2-1.46-.43 0-1.49-.27-2.38-.63.7-.77 1.14-1.77 1.25-2.61h1.36zm-3.81 1.93c-.5-.46-.85-1.13-1.01-1.93h2.09c-.17.8-.51 1.47-1 1.93l-.04.03s-.03-.02-.04-.03z';\n          break;\n\n        case 'trash':\n          path = 'M12 4h3c.6 0 1 .4 1 1v1H3V5c0-.6.5-1 1-1h3c.2-1.1 1.3-2 2.5-2s2.3.9 2.5 2zM8 4h3c-.2-.6-.9-1-1.5-1S8.2 3.4 8 4zM4 7h11l-.9 10.1c0 .5-.5.9-1 .9H5.9c-.5 0-.9-.4-1-.9L4 7z';\n          break;\n\n        case 'twitter':\n          path = 'M18.94 4.46c-.49.73-1.11 1.38-1.83 1.9.01.15.01.31.01.47 0 4.85-3.69 10.44-10.43 10.44-2.07 0-4-.61-5.63-1.65.29.03.58.05.88.05 1.72 0 3.3-.59 4.55-1.57-1.6-.03-2.95-1.09-3.42-2.55.22.04.45.07.69.07.33 0 .66-.05.96-.13-1.67-.34-2.94-1.82-2.94-3.6v-.04c.5.27 1.06.44 1.66.46-.98-.66-1.63-1.78-1.63-3.06 0-.67.18-1.3.5-1.84 1.81 2.22 4.51 3.68 7.56 3.83-.06-.27-.1-.55-.1-.84 0-2.02 1.65-3.66 3.67-3.66 1.06 0 2.01.44 2.68 1.16.83-.17 1.62-.47 2.33-.89-.28.85-.86 1.57-1.62 2.02.75-.08 1.45-.28 2.11-.57z';\n          break;\n\n        case 'undo':\n          path = 'M12 5H7V2L1 6l6 4V7h5c2.2 0 4 1.8 4 4s-1.8 4-4 4H7v2h5c3.3 0 6-2.7 6-6s-2.7-6-6-6z';\n          break;\n\n        case 'universal-access-alt':\n          path = 'M19 10c0-4.97-4.03-9-9-9s-9 4.03-9 9 4.03 9 9 9 9-4.03 9-9zm-9-7.4c.83 0 1.5.67 1.5 1.5s-.67 1.51-1.5 1.51c-.82 0-1.5-.68-1.5-1.51s.68-1.5 1.5-1.5zM3.4 7.36c0-.65 6.6-.76 6.6-.76s6.6.11 6.6.76-4.47 1.4-4.47 1.4 1.69 8.14 1.06 8.38c-.62.24-3.19-5.19-3.19-5.19s-2.56 5.43-3.18 5.19c-.63-.24 1.06-8.38 1.06-8.38S3.4 8.01 3.4 7.36z';\n          break;\n\n        case 'universal-access':\n          path = 'M10 2.6c.83 0 1.5.67 1.5 1.5s-.67 1.51-1.5 1.51c-.82 0-1.5-.68-1.5-1.51s.68-1.5 1.5-1.5zM3.4 7.36c0-.65 6.6-.76 6.6-.76s6.6.11 6.6.76-4.47 1.4-4.47 1.4 1.69 8.14 1.06 8.38c-.62.24-3.19-5.19-3.19-5.19s-2.56 5.43-3.18 5.19c-.63-.24 1.06-8.38 1.06-8.38S3.4 8.01 3.4 7.36z';\n          break;\n\n        case 'unlock':\n          path = 'M12 9V6c0-1.1-.9-2-2-2s-2 .9-2 2H6c0-2.21 1.79-4 4-4s4 1.79 4 4v3h1c.55 0 1 .45 1 1v7c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1v-7c0-.55.45-1 1-1h7zm-1 7l-.36-2.15c.51-.24.86-.75.86-1.35 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .6.35 1.11.86 1.35L9 16h2z';\n          break;\n\n        case 'update':\n          path = 'M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z';\n          break;\n\n        case 'upload':\n          path = 'M8 14V8H5l5-6 5 6h-3v6H8zm-2 2v-6H4v8h12.01v-8H14v6H6z';\n          break;\n\n        case 'vault':\n          path = 'M18 17V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-1 0H3V3h14v14zM4.75 4h10.5c.41 0 .75.34.75.75V6h-1v3h1v2h-1v3h1v1.25c0 .41-.34.75-.75.75H4.75c-.41 0-.75-.34-.75-.75V4.75c0-.41.34-.75.75-.75zM13 10c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zM9 7l.77 1.15C10.49 8.46 11 9.17 11 10c0 1.1-.9 2-2 2s-2-.9-2-2c0-.83.51-1.54 1.23-1.85z';\n          break;\n\n        case 'video-alt':\n          path = 'M8 5c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1 0 .57.49 1 1 1h5c.55 0 1-.45 1-1zm6 5l4-4v10l-4-4v-2zm-1 4V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8c.55 0 1-.45 1-1z';\n          break;\n\n        case 'video-alt2':\n          path = 'M12 13V7c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2zm1-2.5l6 4.5V5l-6 4.5v1z';\n          break;\n\n        case 'video-alt3':\n          path = 'M19 15V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h13c1.1 0 2-.9 2-2zM8 14V6l6 4z';\n          break;\n\n        case 'visibility':\n          path = 'M19.7 9.4C17.7 6 14 3.9 10 3.9S2.3 6 .3 9.4L0 10l.3.6c2 3.4 5.7 5.5 9.7 5.5s7.7-2.1 9.7-5.5l.3-.6-.3-.6zM10 14.1c-3.1 0-6-1.6-7.7-4.1C3.6 8 5.7 6.6 8 6.1c-.9.6-1.5 1.7-1.5 2.9 0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5c0-1.2-.6-2.3-1.5-2.9 2.3.5 4.4 1.9 5.7 3.9-1.7 2.5-4.6 4.1-7.7 4.1z';\n          break;\n\n        case 'warning':\n          path = 'M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1.13 9.38l.35-6.46H8.52l.35 6.46h2.26zm-.09 3.36c.24-.23.37-.55.37-.96 0-.42-.12-.74-.36-.97s-.59-.35-1.06-.35-.82.12-1.07.35-.37.55-.37.97c0 .41.13.73.38.96.26.23.61.34 1.06.34s.8-.11 1.05-.34z';\n          break;\n\n        case 'welcome-add-page':\n          path = 'M17 7V4h-2V2h-3v1H3v15h11V9h1V7h2zm-1-2v1h-2v2h-1V6h-2V5h2V3h1v2h2z';\n          break;\n\n        case 'welcome-comments':\n          path = 'M5 2h10c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-2l-5 5v-5H5c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2zm8.5 8.5L11 8l2.5-2.5-1-1L10 7 7.5 4.5l-1 1L9 8l-2.5 2.5 1 1L10 9l2.5 2.5z';\n          break;\n\n        case 'welcome-learn-more':\n          path = 'M10 10L2.54 7.02 3 18H1l.48-11.41L0 6l10-4 10 4zm0-5c-.55 0-1 .22-1 .5s.45.5 1 .5 1-.22 1-.5-.45-.5-1-.5zm0 6l5.57-2.23c.71.94 1.2 2.07 1.36 3.3-.3-.04-.61-.07-.93-.07-2.55 0-4.78 1.37-6 3.41C8.78 13.37 6.55 12 4 12c-.32 0-.63.03-.93.07.16-1.23.65-2.36 1.36-3.3z';\n          break;\n\n        case 'welcome-view-site':\n          path = 'M18 14V4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1zm-8-8c2.3 0 4.4 1.14 6 3-1.6 1.86-3.7 3-6 3s-4.4-1.14-6-3c1.6-1.86 3.7-3 6-3zm2 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm2 8h3v1H3v-1h3v-1h8v1z';\n          break;\n\n        case 'welcome-widgets-menus':\n          path = 'M19 16V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h15c.55 0 1-.45 1-1zM4 4h13v4H4V4zm1 1v2h3V5H5zm4 0v2h3V5H9zm4 0v2h3V5h-3zm-8.5 5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 10h4v1H6v-1zm6 0h5v5h-5v-5zm-7.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 12h4v1H6v-1zm7 0v2h3v-2h-3zm-8.5 2c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zM6 14h4v1H6v-1z';\n          break;\n\n        case 'welcome-write-blog':\n          path = 'M16.89 1.2l1.41 1.41c.39.39.39 1.02 0 1.41L14 8.33V18H3V3h10.67l1.8-1.8c.4-.39 1.03-.4 1.42 0zm-5.66 8.48l5.37-5.36-1.42-1.42-5.36 5.37-.71 2.12z';\n          break;\n\n        case 'wordpress-alt':\n          path = 'M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z';\n          break;\n\n        case 'wordpress':\n          path = 'M20 10c0-5.52-4.48-10-10-10S0 4.48 0 10s4.48 10 10 10 10-4.48 10-10zM10 1.01c4.97 0 8.99 4.02 8.99 8.99s-4.02 8.99-8.99 8.99S1.01 14.97 1.01 10 5.03 1.01 10 1.01zM8.01 14.82L4.96 6.61c.49-.03 1.05-.08 1.05-.08.43-.05.38-1.01-.06-.99 0 0-1.29.1-2.13.1-.15 0-.33 0-.52-.01 1.44-2.17 3.9-3.6 6.7-3.6 2.09 0 3.99.79 5.41 2.09-.6-.08-1.45.35-1.45 1.42 0 .66.38 1.22.79 1.88.31.54.5 1.22.5 2.21 0 1.34-1.27 4.48-1.27 4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08 0 0-1.3.11-2.14.11-.78 0-2.11-.11-2.11-.11-.43-.02-.48 1.06-.05 1.08l.84.08 1.12 3.04zm6.02 2.15L16.64 10s.67-1.69.39-3.81c.63 1.14.94 2.42.94 3.81 0 2.96-1.56 5.58-3.94 6.97zM2.68 6.77L6.5 17.25c-2.67-1.3-4.47-4.08-4.47-7.25 0-1.16.2-2.23.65-3.23zm7.45 4.53l2.29 6.25c-.75.27-1.57.42-2.42.42-.72 0-1.41-.11-2.06-.3z';\n          break;\n\n        case 'yes-alt':\n          path = 'M10 2c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-.615 12.66h-1.34l-3.24-4.54 1.34-1.25 2.57 2.4 5.14-5.93 1.34.94-5.81 8.38z';\n          break;\n\n        case 'yes':\n          path = 'M14.83 4.89l1.34.94-5.81 8.38H9.02L5.78 9.67l1.34-1.25 2.57 2.4z';\n          break;\n      }\n\n      if (!path) {\n        return null;\n      }\n\n      var iconClass = ['dashicon', 'dashicons-' + icon, className].filter(Boolean).join(' ');\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__[\"SVG\"], Object(_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n        \"aria-hidden\": true,\n        role: \"img\",\n        focusable: \"false\",\n        className: iconClass,\n        xmlns: \"http://www.w3.org/2000/svg\",\n        width: size,\n        height: size,\n        viewBox: \"0 0 20 20\"\n      }, extraProps), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_8__[\"Path\"], {\n        d: path\n      }));\n    }\n  }]);\n\n  return Dashicon;\n}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"Component\"]);\n\n\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar e=__webpack_require__(16),n={display:\"block\",opacity:0,position:\"absolute\",top:0,left:0,height:\"100%\",width:\"100%\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:-1},t=function(t){var r=t.onResize,u=e.useRef();return function(n,t){var r=function(){return n.current&&n.current.contentDocument&&n.current.contentDocument.defaultView};function u(){t();var e=r();e&&e.addEventListener(\"resize\",t)}e.useEffect((function(){return r()?u():n.current&&n.current.addEventListener&&n.current.addEventListener(\"load\",u),function(){var e=r();e&&\"function\"==typeof e.removeEventListener&&e.removeEventListener(\"resize\",t)}}),[])}(u,(function(){return r(u)})),e.createElement(\"iframe\",{style:n,src:\"about:blank\",ref:u,\"aria-hidden\":!0,tabIndex:-1,frameBorder:0})},r=function(e){return{width:null!=e?e.offsetWidth:null,height:null!=e?e.offsetHeight:null}};module.exports=function(n){void 0===n&&(n=r);var u=e.useState(n(null)),o=u[0],i=u[1],c=e.useCallback((function(e){return i(n(e.current))}),[n]);return[e.useMemo((function(){return e.createElement(t,{onResize:c})}),[c]),o]};\n\n\n/***/ }),\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (close);\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (check);\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export warning */\n\n\n/**\n * Logs `messages` to the console using `console.warn` based on a `condition`.\n *\n * @example\n * import { warning } from \"reakit-warning\";\n *\n * warning(true, \"a\", \"b\"); // console.warn(\"a\", \"\\n\", \"b\")\n * warning(false, \"a\", \"b\"); // does nothing\n */\n\nfunction warning(condition) {\n  if (false) { var warns, _len, messages, _key, _console; }\n}\n\n\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf(_constants.WEEKDAYS);\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nexports['default'] = (0, _airbnbPropTypes.and)([_propTypes2['default'].instanceOf(Set), function () {\n  function modifiers(props, propName) {\n    for (var _len = arguments.length, rest = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      rest[_key - 2] = arguments[_key];\n    }\n\n    var propValue = props[propName];\n\n    var firstError = void 0;\n    [].concat(_toConsumableArray(propValue)).some(function (v, i) {\n      var _PropTypes$string;\n\n      var fakePropName = String(propName) + ': index ' + String(i);\n      firstError = (_PropTypes$string = _propTypes2['default'].string).isRequired.apply(_PropTypes$string, [_defineProperty({}, fakePropName, v), fakePropName].concat(rest));\n      return firstError != null;\n    });\n    return firstError == null ? null : firstError;\n  }\n\n  return modifiers;\n}()], 'Modifiers (Set of Strings)');\n\n/***/ }),\n/* 152 */,\n/* 153 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useSlot; });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _slot_fill_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(128);\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction useSlot(name) {\n  var registry = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useContext\"])(_slot_fill_context__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]);\n  var slot = registry.slots[name] || {};\n  var slotFills = registry.fills[name];\n  var fills = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useMemo\"])(function () {\n    return slotFills || [];\n  }, [slotFills]);\n  var updateSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"])(function (fillProps) {\n    registry.updateSlot(name, fillProps);\n  }, [name, registry.updateSlot]);\n  var unregisterSlot = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"])(function (slotRef) {\n    registry.unregisterSlot(name, slotRef);\n  }, [name, registry.unregisterSlot]);\n  var registerFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"])(function (fillRef) {\n    registry.registerFill(name, fillRef);\n  }, [name, registry.registerFill]);\n  var unregisterFill = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__[\"useCallback\"])(function (fillRef) {\n    registry.unregisterFill(name, fillRef);\n  }, [name, registry.unregisterFill]);\n  return _objectSpread({}, slot, {\n    updateSlot: updateSlot,\n    unregisterSlot: unregisterSlot,\n    fills: fills,\n    registerFill: registerFill,\n    unregisterFill: unregisterFill\n  });\n}\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n/**\n * External dependencies\n */\n\n\nfunction Animate(_ref) {\n  var type = _ref.type,\n      _ref$options = _ref.options,\n      options = _ref$options === void 0 ? {} : _ref$options,\n      children = _ref.children;\n\n  if (type === 'appear') {\n    var _classnames;\n\n    var _options$origin = options.origin,\n        origin = _options$origin === void 0 ? 'top' : _options$origin;\n\n    var _origin$split = origin.split(' '),\n        _origin$split2 = Object(_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_origin$split, 2),\n        yAxis = _origin$split2[0],\n        _origin$split2$ = _origin$split2[1],\n        xAxis = _origin$split2$ === void 0 ? 'center' : _origin$split2$;\n\n    return children({\n      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__appear', (_classnames = {}, Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(_classnames, 'is-from-' + xAxis, xAxis !== 'center'), Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(_classnames, 'is-from-' + yAxis, yAxis !== 'middle'), _classnames))\n    });\n  }\n\n  if (type === 'slide-in') {\n    var _options$origin2 = options.origin,\n        _origin = _options$origin2 === void 0 ? 'left' : _options$origin2;\n\n    return children({\n      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__slide-in', 'is-from-' + _origin)\n    });\n  }\n\n  if (type === 'loading') {\n    return children({\n      className: classnames__WEBPACK_IMPORTED_MODULE_2___default()('components-animate__loading')\n    });\n  }\n\n  return children({});\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Animate);\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export createScrollLockComponent */\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Creates a ScrollLock component bound to the specified document.\n *\n * This function creates a ScrollLock component for the specified document\n * and is exposed so we can create an isolated component for unit testing.\n *\n * @param {Object} args Keyword args.\n * @param {HTMLDocument} args.htmlDocument The document to lock the scroll for.\n * @param {string} args.className The name of the class used to lock scrolling.\n * @return {WPComponent} The bound ScrollLock component.\n */\n\nfunction createScrollLockComponent() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      _ref$htmlDocument = _ref.htmlDocument,\n      htmlDocument = _ref$htmlDocument === void 0 ? document : _ref$htmlDocument,\n      _ref$className = _ref.className,\n      className = _ref$className === void 0 ? 'lockscroll' : _ref$className;\n\n  var lockCounter = 0;\n  /*\n   * Setting `overflow: hidden` on html and body elements resets body scroll in iOS.\n   * Save scroll top so we can restore it after locking scroll.\n   *\n   * NOTE: It would be cleaner and possibly safer to find a localized solution such\n   * as preventing default on certain touchmove events.\n   */\n\n  var previousScrollTop = 0;\n  /**\n   * Locks and unlocks scroll depending on the boolean argument.\n   *\n   * @param {boolean} locked Whether or not scroll should be locked.\n   */\n\n  function setLocked(locked) {\n    var scrollingElement = htmlDocument.scrollingElement || htmlDocument.body;\n\n    if (locked) {\n      previousScrollTop = scrollingElement.scrollTop;\n    }\n\n    var methodName = locked ? 'add' : 'remove';\n    scrollingElement.classList[methodName](className); // Adding the class to the document element seems to be necessary in iOS.\n\n    htmlDocument.documentElement.classList[methodName](className);\n\n    if (!locked) {\n      scrollingElement.scrollTop = previousScrollTop;\n    }\n  }\n  /**\n   * Requests scroll lock.\n   *\n   * This function tracks requests for scroll lock. It locks scroll on the first\n   * request and counts each request so `releaseLock` can unlock scroll when\n   * all requests have been released.\n   */\n\n\n  function requestLock() {\n    if (lockCounter === 0) {\n      setLocked(true);\n    }\n\n    ++lockCounter;\n  }\n  /**\n   * Releases a request for scroll lock.\n   *\n   * This function tracks released requests for scroll lock. When all requests\n   * have been released, it unlocks scroll.\n   */\n\n\n  function releaseLock() {\n    if (lockCounter === 1) {\n      setLocked(false);\n    }\n\n    --lockCounter;\n  }\n\n  return /*#__PURE__*/function (_Component) {\n    Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(ScrollLock, _Component);\n\n    var _super = _createSuper(ScrollLock);\n\n    function ScrollLock() {\n      Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(this, ScrollLock);\n\n      return _super.apply(this, arguments);\n    }\n\n    Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(ScrollLock, [{\n      key: \"componentDidMount\",\n\n      /**\n       * Requests scroll lock on mount.\n       */\n      value: function componentDidMount() {\n        requestLock();\n      }\n      /**\n       * Releases scroll lock before unmount.\n       */\n\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        releaseLock();\n      }\n      /**\n       * Render nothing as this component is merely a way to declare scroll lock.\n       *\n       * @return {null} Render nothing by returning `null`.\n       */\n\n    }, {\n      key: \"render\",\n      value: function render() {\n        return null;\n      }\n    }]);\n\n    return ScrollLock;\n  }(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__[\"Component\"]);\n}\n/* harmony default export */ __webpack_exports__[\"a\"] = (createScrollLockComponent());\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);\n/* harmony import */ var _wordpress_a11y__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1);\n/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(34);\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar NOTICE_TIMEOUT = 10000;\n/** @typedef {import('@wordpress/element').WPElement} WPElement */\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param {string|WPElement}     [message]  Message to announce.\n * @param {'polite'|'assertive'} politeness Politeness to announce.\n */\n\nfunction useSpokenMessage(message, politeness) {\n  var spokenMessage = typeof message === 'string' ? message : Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"renderToString\"])(message);\n  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(function () {\n    if (spokenMessage) {\n      Object(_wordpress_a11y__WEBPACK_IMPORTED_MODULE_3__[\"speak\"])(spokenMessage, politeness);\n    }\n  }, [spokenMessage, politeness]);\n}\n\nfunction Snackbar(_ref, ref) {\n  var className = _ref.className,\n      children = _ref.children,\n      _ref$spokenMessage = _ref.spokenMessage,\n      spokenMessage = _ref$spokenMessage === void 0 ? children : _ref$spokenMessage,\n      _ref$politeness = _ref.politeness,\n      politeness = _ref$politeness === void 0 ? 'polite' : _ref$politeness,\n      _ref$actions = _ref.actions,\n      actions = _ref$actions === void 0 ? [] : _ref$actions,\n      _ref$onRemove = _ref.onRemove,\n      onRemove = _ref$onRemove === void 0 ? lodash__WEBPACK_IMPORTED_MODULE_1__[\"noop\"] : _ref$onRemove;\n  useSpokenMessage(spokenMessage, politeness);\n  Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"useEffect\"])(function () {\n    var timeoutHandle = setTimeout(function () {\n      onRemove();\n    }, NOTICE_TIMEOUT);\n    return function () {\n      return clearTimeout(timeoutHandle);\n    };\n  }, []);\n  var classes = classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, 'components-snackbar');\n\n  if (actions && actions.length > 1) {\n    // we need to inform developers that snackbar only accepts 1 action\n    typeof process !== \"undefined\" && process.env && \"production\" !== \"production\" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('Snackbar can only have 1 action, use Notice if your message require many messages') : void 0; // return first element only while keeping it inside an array\n\n    actions = [actions[0]];\n  }\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", {\n    ref: ref,\n    className: classes,\n    onClick: onRemove,\n    tabIndex: \"0\",\n    role: \"button\",\n    onKeyPress: onRemove,\n    \"aria-label\": Object(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_4__[\"__\"])('Dismiss this notice')\n  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", {\n    className: \"components-snackbar__content\"\n  }, children, actions.map(function (_ref2, index) {\n    var label = _ref2.label,\n        _onClick = _ref2.onClick,\n        url = _ref2.url;\n    return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(___WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"], {\n      key: index,\n      href: url,\n      isTertiary: true,\n      onClick: function onClick(event) {\n        event.stopPropagation();\n\n        if (_onClick) {\n          _onClick(event);\n        }\n      },\n      className: \"components-snackbar__action\"\n    }, label);\n  })));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"forwardRef\"])(Snackbar));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)))\n\n/***/ }),\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * External dependencies\n */\n\n\nfunction Shortcut(_ref) {\n  var shortcut = _ref.shortcut,\n      className = _ref.className;\n\n  if (!shortcut) {\n    return null;\n  }\n\n  var displayText;\n  var ariaLabel;\n\n  if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__[\"isString\"])(shortcut)) {\n    displayText = shortcut;\n  }\n\n  if (Object(lodash__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"])(shortcut)) {\n    displayText = shortcut.display;\n    ariaLabel = shortcut.ariaLabel;\n  }\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"span\", {\n    className: className,\n    \"aria-label\": ariaLabel\n  }, displayText);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Shortcut);\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return useToolbarState; });\n/* harmony import */ var _rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64);\n/* harmony import */ var _CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53);\n\n\n\n\n\n\n\n\n\nfunction useToolbarState(initialState) {\n  if (initialState === void 0) {\n    initialState = {};\n  }\n\n  var _useSealedState = Object(reakit_utils_useSealedState__WEBPACK_IMPORTED_MODULE_2__[/* useSealedState */ \"a\"])(initialState),\n      _useSealedState$orien = _useSealedState.orientation,\n      orientation = _useSealedState$orien === void 0 ? \"horizontal\" : _useSealedState$orien,\n      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* _ */ \"a\"])(_useSealedState, [\"orientation\"]);\n\n  return Object(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ \"g\"])(Object(_rollupPluginBabelHelpers_1f0bf8c2_js__WEBPACK_IMPORTED_MODULE_0__[/* a */ \"b\"])({\n    orientation: orientation\n  }, sealed));\n}\nvar keys = [].concat(_CompositeState_3a25dcee_js__WEBPACK_IMPORTED_MODULE_3__[/* u */ \"g\"].__keys);\nuseToolbarState.__keys = keys;\n\n\n\n\n/***/ }),\n/* 162 */,\n/* 163 */,\n/* 164 */\n/***/ (function(module, exports) {\n\nfunction _extends() {\n  module.exports = _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports) {\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports) {\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nmodule.exports = _assertThisInitialized;\n\n/***/ }),\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar util = __webpack_require__(173);\n\nfunction scrollIntoView(elem, container, config) {\n  config = config || {};\n  // document 归一化到 window\n  if (container.nodeType === 9) {\n    container = util.getWindow(container);\n  }\n\n  var allowHorizontalScroll = config.allowHorizontalScroll;\n  var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n  var alignWithTop = config.alignWithTop;\n  var alignWithLeft = config.alignWithLeft;\n  var offsetTop = config.offsetTop || 0;\n  var offsetLeft = config.offsetLeft || 0;\n  var offsetBottom = config.offsetBottom || 0;\n  var offsetRight = config.offsetRight || 0;\n\n  allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n\n  var isWin = util.isWindow(container);\n  var elemOffset = util.offset(elem);\n  var eh = util.outerHeight(elem);\n  var ew = util.outerWidth(elem);\n  var containerOffset = undefined;\n  var ch = undefined;\n  var cw = undefined;\n  var containerScroll = undefined;\n  var diffTop = undefined;\n  var diffBottom = undefined;\n  var win = undefined;\n  var winScroll = undefined;\n  var ww = undefined;\n  var wh = undefined;\n\n  if (isWin) {\n    win = container;\n    wh = util.height(win);\n    ww = util.width(win);\n    winScroll = {\n      left: util.scrollLeft(win),\n      top: util.scrollTop(win)\n    };\n    // elem 相对 container 可视视窗的距离\n    diffTop = {\n      left: elemOffset.left - winScroll.left - offsetLeft,\n      top: elemOffset.top - winScroll.top - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n      top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n    };\n    containerScroll = winScroll;\n  } else {\n    containerOffset = util.offset(container);\n    ch = container.clientHeight;\n    cw = container.clientWidth;\n    containerScroll = {\n      left: container.scrollLeft,\n      top: container.scrollTop\n    };\n    // elem 相对 container 可视视窗的距离\n    // 注意边框, offset 是边框到根节点\n    diffTop = {\n      left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n      top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n    };\n    diffBottom = {\n      left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n      top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n    };\n  }\n\n  if (diffTop.top < 0 || diffBottom.top > 0) {\n    // 强制向上\n    if (alignWithTop === true) {\n      util.scrollTop(container, containerScroll.top + diffTop.top);\n    } else if (alignWithTop === false) {\n      util.scrollTop(container, containerScroll.top + diffBottom.top);\n    } else {\n      // 自动调整\n      if (diffTop.top < 0) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  } else {\n    if (!onlyScrollIfNeeded) {\n      alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n      if (alignWithTop) {\n        util.scrollTop(container, containerScroll.top + diffTop.top);\n      } else {\n        util.scrollTop(container, containerScroll.top + diffBottom.top);\n      }\n    }\n  }\n\n  if (allowHorizontalScroll) {\n    if (diffTop.left < 0 || diffBottom.left > 0) {\n      // 强制向上\n      if (alignWithLeft === true) {\n        util.scrollLeft(container, containerScroll.left + diffTop.left);\n      } else if (alignWithLeft === false) {\n        util.scrollLeft(container, containerScroll.left + diffBottom.left);\n      } else {\n        // 自动调整\n        if (diffTop.left < 0) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    } else {\n      if (!onlyScrollIfNeeded) {\n        alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n        if (alignWithLeft) {\n          util.scrollLeft(container, containerScroll.left + diffTop.left);\n        } else {\n          util.scrollLeft(container, containerScroll.left + diffBottom.left);\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = scrollIntoView;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n  var box = undefined;\n  var x = undefined;\n  var y = undefined;\n  var doc = elem.ownerDocument;\n  var body = doc.body;\n  var docElem = doc && doc.documentElement;\n  // 根据 GBS 最新数据，A-Grade Browsers 都已支持 getBoundingClientRect 方法，不用再考虑传统的实现方式\n  box = elem.getBoundingClientRect();\n\n  // 注：jQuery 还考虑减去 docElem.clientLeft/clientTop\n  // 但测试发现，这样反而会导致当 html 和 body 有边距/边框样式时，获取的值不正确\n  // 此外，ie6 会忽略 html 的 margin 值，幸运地是没有谁会去设置 html 的 margin\n\n  x = box.left;\n  y = box.top;\n\n  // In IE, most of the time, 2 extra pixels are added to the top and left\n  // due to the implicit 2-pixel inset border.  In IE6/7 quirks mode and\n  // IE6 standards mode, this border can be overridden by setting the\n  // document element's border to zero -- thus, we cannot rely on the\n  // offset always being 2 pixels.\n\n  // In quirks mode, the offset can be determined by querying the body's\n  // clientLeft/clientTop, but in standards mode, it is found by querying\n  // the document element's clientLeft/clientTop.  Since we already called\n  // getClientBoundingRect we have already forced a reflow, so it is not\n  // too expensive just to query them all.\n\n  // ie 下应该减去窗口的边框吧，毕竟默认 absolute 都是相对窗口定位的\n  // 窗口边框标准是设 documentElement ,quirks 时设置 body\n  // 最好禁止在 body 和 html 上边框 ，但 ie < 9 html 默认有 2px ，减去\n  // 但是非 ie 不可能设置窗口边框，body html 也不是窗口 ,ie 可以通过 html,body 设置\n  // 标准 ie 下 docElem.clientTop 就是 border-top\n  // ie7 html 即窗口边框改变不了。永远为 2\n  // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框，即使设了 border-top 也为 0\n\n  x -= docElem.clientLeft || body.clientLeft || 0;\n  y -= docElem.clientTop || body.clientTop || 0;\n\n  return {\n    left: x,\n    top: y\n  };\n}\n\nfunction getScroll(w, top) {\n  var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];\n  var method = 'scroll' + (top ? 'Top' : 'Left');\n  if (typeof ret !== 'number') {\n    var d = w.document;\n    // ie6,7,8 standard mode\n    ret = d.documentElement[method];\n    if (typeof ret !== 'number') {\n      // quirks mode\n      ret = d.body[method];\n    }\n  }\n  return ret;\n}\n\nfunction getScrollLeft(w) {\n  return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n  return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n  var pos = getClientPosition(el);\n  var doc = el.ownerDocument;\n  var w = doc.defaultView || doc.parentWindow;\n  pos.left += getScrollLeft(w);\n  pos.top += getScrollTop(w);\n  return pos;\n}\nfunction _getComputedStyle(elem, name, computedStyle_) {\n  var val = '';\n  var d = elem.ownerDocument;\n  var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);\n\n  // https://github.com/kissyteam/kissy/issues/61\n  if (computedStyle) {\n    val = computedStyle.getPropertyValue(name) || computedStyle[name];\n  }\n\n  return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n  // currentStyle maybe null\n  // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n  var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];\n\n  // 当 width/height 设置为百分比时，通过 pixelLeft 方式转换的 width/height 值\n  // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n  // 在 ie 下不对，需要直接用 offset 方式\n  // borderWidth 等值也有问题，但考虑到 borderWidth 设为百分比的概率很小，这里就不考虑了\n\n  // From the awesome hack by Dean Edwards\n  // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n  // If we're not dealing with a regular pixel number\n  // but a number that has a weird ending, we need to convert it to pixels\n  // exclude left right for relativity\n  if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n    // Remember the original values\n    var style = elem.style;\n    var left = style[LEFT];\n    var rsLeft = elem[RUNTIME_STYLE][LEFT];\n\n    // prevent flashing of content\n    elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];\n\n    // Put in the new values to get a computed value out\n    style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n    ret = style.pixelLeft + PX;\n\n    // Revert the changed values\n    style[LEFT] = left;\n\n    elem[RUNTIME_STYLE][LEFT] = rsLeft;\n  }\n  return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX = undefined;\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n  for (var i = 0; i < arr.length; i++) {\n    fn(arr[i]);\n  }\n}\n\nfunction isBorderBoxFn(elem) {\n  return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n  var old = {};\n  var style = elem.style;\n  var name = undefined;\n\n  // Remember the old values, and insert the new ones\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      old[name] = style[name];\n      style[name] = options[name];\n    }\n  }\n\n  callback.call(elem);\n\n  // Revert the old values\n  for (name in options) {\n    if (options.hasOwnProperty(name)) {\n      style[name] = old[name];\n    }\n  }\n}\n\nfunction getPBMWidth(elem, props, which) {\n  var value = 0;\n  var prop = undefined;\n  var j = undefined;\n  var i = undefined;\n  for (j = 0; j < props.length; j++) {\n    prop = props[j];\n    if (prop) {\n      for (i = 0; i < which.length; i++) {\n        var cssProp = undefined;\n        if (prop === 'border') {\n          cssProp = prop + which[i] + 'Width';\n        } else {\n          cssProp = prop + which[i];\n        }\n        value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n      }\n    }\n  }\n  return value;\n}\n\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\nfunction isWindow(obj) {\n  // must use == for ie8\n  /* eslint eqeqeq:0 */\n  return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\n\neach(['Width', 'Height'], function (name) {\n  domUtils['doc' + name] = function (refWin) {\n    var d = refWin.document;\n    return Math.max(\n    // firefox chrome documentElement.scrollHeight< body.scrollHeight\n    // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n    d.documentElement['scroll' + name],\n    // quirks : documentElement.scrollHeight 最大等于可视窗口多一点？\n    d.body['scroll' + name], domUtils['viewport' + name](d));\n  };\n\n  domUtils['viewport' + name] = function (win) {\n    // pc browser includes scrollbar in window.innerWidth\n    var prop = 'client' + name;\n    var doc = win.document;\n    var body = doc.body;\n    var documentElement = doc.documentElement;\n    var documentElementProp = documentElement[prop];\n    // 标准模式取 documentElement\n    // backcompat 取 body\n    return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n  };\n});\n\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra]  'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\nfunction getWH(elem, name, extra) {\n  if (isWindow(elem)) {\n    return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n  } else if (elem.nodeType === 9) {\n    return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n  }\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n  var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n  var computedStyle = getComputedStyleX(elem);\n  var isBorderBox = isBorderBoxFn(elem, computedStyle);\n  var cssBoxValue = 0;\n  if (borderBoxValue == null || borderBoxValue <= 0) {\n    borderBoxValue = undefined;\n    // Fall back to computed then un computed css if necessary\n    cssBoxValue = getComputedStyleX(elem, name);\n    if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n      cssBoxValue = elem.style[name] || 0;\n    }\n    // Normalize '', auto, and prepare for extra\n    cssBoxValue = parseFloat(cssBoxValue) || 0;\n  }\n  if (extra === undefined) {\n    extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n  }\n  var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n  var val = borderBoxValue || cssBoxValue;\n  if (extra === CONTENT_INDEX) {\n    if (borderBoxValueOrIsBorderBox) {\n      return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);\n    }\n    return cssBoxValue;\n  }\n  if (borderBoxValueOrIsBorderBox) {\n    var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);\n    return val + (extra === BORDER_INDEX ? 0 : padding);\n  }\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\n}\n\nvar cssShow = {\n  position: 'absolute',\n  visibility: 'hidden',\n  display: 'block'\n};\n\n// fix #119 : https://github.com/kissyteam/kissy/issues/119\nfunction getWHIgnoreDisplay(elem) {\n  var val = undefined;\n  var args = arguments;\n  // in case elem is window\n  // elem.offsetWidth === undefined\n  if (elem.offsetWidth !== 0) {\n    val = getWH.apply(undefined, args);\n  } else {\n    swap(elem, cssShow, function () {\n      val = getWH.apply(undefined, args);\n    });\n  }\n  return val;\n}\n\nfunction css(el, name, v) {\n  var value = v;\n  if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n    for (var i in name) {\n      if (name.hasOwnProperty(i)) {\n        css(el, i, name[i]);\n      }\n    }\n    return undefined;\n  }\n  if (typeof value !== 'undefined') {\n    if (typeof value === 'number') {\n      value += 'px';\n    }\n    el.style[name] = value;\n    return undefined;\n  }\n  return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n  var first = name.charAt(0).toUpperCase() + name.slice(1);\n  domUtils['outer' + first] = function (el, includeMargin) {\n    return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n  };\n  var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n  domUtils[name] = function (elem, val) {\n    if (val !== undefined) {\n      if (elem) {\n        var computedStyle = getComputedStyleX(elem);\n        var isBorderBox = isBorderBoxFn(elem);\n        if (isBorderBox) {\n          val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);\n        }\n        return css(elem, name, val);\n      }\n      return undefined;\n    }\n    return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n  };\n});\n\n// 设置 elem 相对 elem.ownerDocument 的坐标\nfunction setOffset(elem, offset) {\n  // set position first, in-case top/left are set even on static elem\n  if (css(elem, 'position') === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  var old = getOffset(elem);\n  var ret = {};\n  var current = undefined;\n  var key = undefined;\n\n  for (key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      current = parseFloat(css(elem, key)) || 0;\n      ret[key] = current + offset[key] - old[key];\n    }\n  }\n  css(elem, ret);\n}\n\nmodule.exports = _extends({\n  getWindow: function getWindow(node) {\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  offset: function offset(el, value) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value);\n    } else {\n      return getOffset(el);\n    }\n  },\n\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var ret = {};\n    for (var i in obj) {\n      if (obj.hasOwnProperty(i)) {\n        ret[i] = obj[i];\n      }\n    }\n    var overflow = obj.overflow;\n    if (overflow) {\n      for (var i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ret.overflow[i] = obj.overflow[i];\n        }\n      }\n    }\n    return ret;\n  },\n  scrollLeft: function scrollLeft(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollLeft(w);\n      }\n      window.scrollTo(v, getScrollTop(w));\n    } else {\n      if (v === undefined) {\n        return w.scrollLeft;\n      }\n      w.scrollLeft = v;\n    }\n  },\n  scrollTop: function scrollTop(w, v) {\n    if (isWindow(w)) {\n      if (v === undefined) {\n        return getScrollTop(w);\n      }\n      window.scrollTo(getScrollLeft(w), v);\n    } else {\n      if (v === undefined) {\n        return w.scrollTop;\n      }\n      w.scrollTop = v;\n    }\n  },\n\n  viewportWidth: 0,\n  viewportHeight: 0\n}, domUtils);\n\n/***/ }),\n/* 174 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (link);\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar slice = Array.prototype.slice;\nvar isArgs = __webpack_require__(200);\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : __webpack_require__(307);\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar bind = __webpack_require__(113);\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nmodule.exports = function callBind() {\n\treturn $reflectApply(bind, $call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar inspect = __webpack_require__(311);\n\nvar IsPropertyKey = __webpack_require__(122);\nvar Type = __webpack_require__(80);\n\n/**\n * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p\n * 1. Assert: Type(O) is Object.\n * 2. Assert: IsPropertyKey(P) is true.\n * 3. Return O.[[Get]](P, O).\n */\n\nmodule.exports = function Get(O, P) {\n\t// 7.3.1.1\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\t// 7.3.1.2\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P));\n\t}\n\t// 7.3.1.3\n\treturn O[P];\n};\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Array = GetIntrinsic('%Array%');\n\n// eslint-disable-next-line global-require\nvar toStr = !$Array.isArray && __webpack_require__(134)('Object.prototype.toString');\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isarray\n\nmodule.exports = $Array.isArray || function IsArray(argument) {\n\treturn toStr(argument) === '[object Array]';\n};\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = __webpack_require__(81);\n\nvar predicates = {\n\t// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\t'Property Descriptor': function isPropertyDescriptor(Type, Desc) {\n\t\tif (Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t}\n};\n\nmodule.exports = function assertRecord(Type, recordType, argumentName, value) {\n\tvar predicate = predicates[recordType];\n\tif (typeof predicate !== 'function') {\n\t\tthrow new $SyntaxError('unknown record type: ' + recordType);\n\t}\n\tif (!predicate(Type, value)) {\n\t\tthrow new $TypeError(argumentName + ' must be a ' + recordType);\n\t}\n};\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = __webpack_require__(338)();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn  false && false;\n\t};\n}\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (typeof value === 'function' && !value.prototype) { return true; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* globals\n\tSet,\n\tMap,\n\tWeakSet,\n\tWeakMap,\n\n\tPromise,\n\n\tSymbol,\n\tProxy,\n\n\tAtomics,\n\tSharedArrayBuffer,\n\n\tArrayBuffer,\n\tDataView,\n\tUint8Array,\n\tFloat32Array,\n\tFloat64Array,\n\tInt8Array,\n\tInt16Array,\n\tInt32Array,\n\tUint8ClampedArray,\n\tUint16Array,\n\tUint32Array,\n*/\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor\n\t? (function () { return Object.getOwnPropertyDescriptor(arguments, 'callee').get; }())\n\t: function () { throw new TypeError(); };\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar generator; // = function * () {};\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'$ %Array%': Array,\n\t'$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n\t'$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'$ %ArrayPrototype%': Array.prototype,\n\t'$ %ArrayProto_entries%': Array.prototype.entries,\n\t'$ %ArrayProto_forEach%': Array.prototype.forEach,\n\t'$ %ArrayProto_keys%': Array.prototype.keys,\n\t'$ %ArrayProto_values%': Array.prototype.values,\n\t'$ %AsyncFromSyncIteratorPrototype%': undefined,\n\t'$ %AsyncFunction%': asyncFunction,\n\t'$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n\t'$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n\t'$ %AsyncGeneratorFunction%': asyncGenFunction,\n\t'$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n\t'$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n\t'$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'$ %Boolean%': Boolean,\n\t'$ %BooleanPrototype%': Boolean.prototype,\n\t'$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n\t'$ %Date%': Date,\n\t'$ %DatePrototype%': Date.prototype,\n\t'$ %decodeURI%': decodeURI,\n\t'$ %decodeURIComponent%': decodeURIComponent,\n\t'$ %encodeURI%': encodeURI,\n\t'$ %encodeURIComponent%': encodeURIComponent,\n\t'$ %Error%': Error,\n\t'$ %ErrorPrototype%': Error.prototype,\n\t'$ %eval%': eval, // eslint-disable-line no-eval\n\t'$ %EvalError%': EvalError,\n\t'$ %EvalErrorPrototype%': EvalError.prototype,\n\t'$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n\t'$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n\t'$ %Function%': Function,\n\t'$ %FunctionPrototype%': Function.prototype,\n\t'$ %Generator%': generator ? getProto(generator()) : undefined,\n\t'$ %GeneratorFunction%': generatorFunction,\n\t'$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n\t'$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n\t'$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n\t'$ %isFinite%': isFinite,\n\t'$ %isNaN%': isNaN,\n\t'$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'$ %JSON%': JSON,\n\t'$ %JSONParse%': JSON.parse,\n\t'$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n\t'$ %Math%': Math,\n\t'$ %Number%': Number,\n\t'$ %NumberPrototype%': Number.prototype,\n\t'$ %Object%': Object,\n\t'$ %ObjectPrototype%': Object.prototype,\n\t'$ %ObjProto_toString%': Object.prototype.toString,\n\t'$ %ObjProto_valueOf%': Object.prototype.valueOf,\n\t'$ %parseFloat%': parseFloat,\n\t'$ %parseInt%': parseInt,\n\t'$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n\t'$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n\t'$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n\t'$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n\t'$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n\t'$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'$ %RangeError%': RangeError,\n\t'$ %RangeErrorPrototype%': RangeError.prototype,\n\t'$ %ReferenceError%': ReferenceError,\n\t'$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n\t'$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'$ %RegExp%': RegExp,\n\t'$ %RegExpPrototype%': RegExp.prototype,\n\t'$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n\t'$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n\t'$ %String%': String,\n\t'$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'$ %StringPrototype%': String.prototype,\n\t'$ %Symbol%': hasSymbols ? Symbol : undefined,\n\t'$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n\t'$ %SyntaxError%': SyntaxError,\n\t'$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n\t'$ %ThrowTypeError%': ThrowTypeError,\n\t'$ %TypedArray%': TypedArray,\n\t'$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n\t'$ %TypeError%': TypeError,\n\t'$ %TypeErrorPrototype%': TypeError.prototype,\n\t'$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n\t'$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n\t'$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n\t'$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n\t'$ %URIError%': URIError,\n\t'$ %URIErrorPrototype%': URIError.prototype,\n\t'$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n\t'$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\t'$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar key = '$ ' + name;\n\tif (!(key in INTRINSICS)) {\n\t\tthrow new SyntaxError('intrinsic ' + name + ' does not exist!');\n\t}\n\n\t// istanbul ignore if // hopefully this is impossible to test :-)\n\tif (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n\t\tthrow new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t}\n\treturn INTRINSICS[key];\n};\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isSameDay;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isSameDay(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n  // Compare least significant, most likely to change units first\n  // Moment's isSame clones moment inputs and is a tad slow\n  return a.date() === b.date() && a.month() === b.month() && a.year() === b.year();\n}\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = toISOMonthString;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toMomentObject = __webpack_require__(235);\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toISOMonthString(date, currentFormat) {\n  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);\n  if (!dateObj) return null;\n\n  return dateObj.format(_constants.ISO_MONTH_FORMAT);\n}\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Consumer; });\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);\n/* harmony import */ var _babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);\n/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);\n/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__[/* default */ \"a\"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__[/* default */ \"a\"])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar _createContext = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createContext\"])({\n  focusHistory: []\n}),\n    Provider = _createContext.Provider,\n    Consumer = _createContext.Consumer;\n\nProvider.displayName = 'FocusReturnProvider';\nConsumer.displayName = 'FocusReturnConsumer';\n/**\n * The maximum history length to capture for the focus stack. When exceeded,\n * items should be shifted from the stack for each consecutive push.\n *\n * @type {number}\n */\n\nvar MAX_STACK_LENGTH = 100;\n\nvar FocusReturnProvider = /*#__PURE__*/function (_Component) {\n  Object(_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(FocusReturnProvider, _Component);\n\n  var _super = _createSuper(FocusReturnProvider);\n\n  function FocusReturnProvider() {\n    var _this;\n\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(this, FocusReturnProvider);\n\n    _this = _super.apply(this, arguments);\n    _this.onFocus = _this.onFocus.bind(Object(_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_3__[/* default */ \"a\"])(_this));\n    _this.state = {\n      focusHistory: []\n    };\n    return _this;\n  }\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(FocusReturnProvider, [{\n    key: \"onFocus\",\n    value: function onFocus(event) {\n      var focusHistory = this.state.focusHistory; // Push the focused element to the history stack, keeping only unique\n      // members but preferring the _last_ occurrence of any duplicates.\n      // Lodash's `uniq` behavior favors the first occurrence, so the array\n      // is temporarily reversed prior to it being called upon. Uniqueness\n      // helps avoid situations where, such as in a constrained tabbing area,\n      // the user changes focus enough within a transient element that the\n      // stack may otherwise only consist of members pending destruction, at\n      // which point focus might have been lost.\n\n      var nextFocusHistory = Object(lodash__WEBPACK_IMPORTED_MODULE_8__[\"uniq\"])([].concat(Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(focusHistory), [event.target]).slice(-1 * MAX_STACK_LENGTH).reverse()).reverse();\n      this.setState({\n        focusHistory: nextFocusHistory\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          className = _this$props.className;\n      return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(Provider, {\n        value: this.state\n      }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"createElement\"])(\"div\", {\n        onFocus: this.onFocus,\n        className: className\n      }, children));\n    }\n  }]);\n\n  return FocusReturnProvider;\n}(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__[\"Component\"]);\n\n/* harmony default export */ __webpack_exports__[\"b\"] = (FocusReturnProvider);\n\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n  module.exports = __webpack_require__(300);\n} else {}\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports) {\n\n// Copyright (c) 2014 Rafael Caricio. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nvar GradientParser = {};\n\nGradientParser.parse = (function() {\n\n  var tokens = {\n    linearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(linear\\-gradient)/i,\n    repeatingLinearGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-linear\\-gradient)/i,\n    radialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(radial\\-gradient)/i,\n    repeatingRadialGradient: /^(\\-(webkit|o|ms|moz)\\-)?(repeating\\-radial\\-gradient)/i,\n    sideOrCorner: /^to (left (top|bottom)|right (top|bottom)|left|right|top|bottom)/i,\n    extentKeywords: /^(closest\\-side|closest\\-corner|farthest\\-side|farthest\\-corner|contain|cover)/,\n    positionKeywords: /^(left|center|right|top|bottom)/i,\n    pixelValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))px/,\n    percentageValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))\\%/,\n    emValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))em/,\n    angleValue: /^(-?(([0-9]*\\.[0-9]+)|([0-9]+\\.?)))deg/,\n    startCall: /^\\(/,\n    endCall: /^\\)/,\n    comma: /^,/,\n    hexColor: /^\\#([0-9a-fA-F]+)/,\n    literalColor: /^([a-zA-Z]+)/,\n    rgbColor: /^rgb/i,\n    rgbaColor: /^rgba/i,\n    number: /^(([0-9]*\\.[0-9]+)|([0-9]+\\.?))/\n  };\n\n  var input = '';\n\n  function error(msg) {\n    var err = new Error(input + ': ' + msg);\n    err.source = input;\n    throw err;\n  }\n\n  function getAST() {\n    var ast = matchListDefinitions();\n\n    if (input.length > 0) {\n      error('Invalid input not EOF');\n    }\n\n    return ast;\n  }\n\n  function matchListDefinitions() {\n    return matchListing(matchDefinition);\n  }\n\n  function matchDefinition() {\n    return matchGradient(\n            'linear-gradient',\n            tokens.linearGradient,\n            matchLinearOrientation) ||\n\n          matchGradient(\n            'repeating-linear-gradient',\n            tokens.repeatingLinearGradient,\n            matchLinearOrientation) ||\n\n          matchGradient(\n            'radial-gradient',\n            tokens.radialGradient,\n            matchListRadialOrientations) ||\n\n          matchGradient(\n            'repeating-radial-gradient',\n            tokens.repeatingRadialGradient,\n            matchListRadialOrientations);\n  }\n\n  function matchGradient(gradientType, pattern, orientationMatcher) {\n    return matchCall(pattern, function(captures) {\n\n      var orientation = orientationMatcher();\n      if (orientation) {\n        if (!scan(tokens.comma)) {\n          error('Missing comma before color stops');\n        }\n      }\n\n      return {\n        type: gradientType,\n        orientation: orientation,\n        colorStops: matchListing(matchColorStop)\n      };\n    });\n  }\n\n  function matchCall(pattern, callback) {\n    var captures = scan(pattern);\n\n    if (captures) {\n      if (!scan(tokens.startCall)) {\n        error('Missing (');\n      }\n\n      result = callback(captures);\n\n      if (!scan(tokens.endCall)) {\n        error('Missing )');\n      }\n\n      return result;\n    }\n  }\n\n  function matchLinearOrientation() {\n    return matchSideOrCorner() ||\n      matchAngle();\n  }\n\n  function matchSideOrCorner() {\n    return match('directional', tokens.sideOrCorner, 1);\n  }\n\n  function matchAngle() {\n    return match('angular', tokens.angleValue, 1);\n  }\n\n  function matchListRadialOrientations() {\n    var radialOrientations,\n        radialOrientation = matchRadialOrientation(),\n        lookaheadCache;\n\n    if (radialOrientation) {\n      radialOrientations = [];\n      radialOrientations.push(radialOrientation);\n\n      lookaheadCache = input;\n      if (scan(tokens.comma)) {\n        radialOrientation = matchRadialOrientation();\n        if (radialOrientation) {\n          radialOrientations.push(radialOrientation);\n        } else {\n          input = lookaheadCache;\n        }\n      }\n    }\n\n    return radialOrientations;\n  }\n\n  function matchRadialOrientation() {\n    var radialType = matchCircle() ||\n      matchEllipse();\n\n    if (radialType) {\n      radialType.at = matchAtPosition();\n    } else {\n      var defaultPosition = matchPositioning();\n      if (defaultPosition) {\n        radialType = {\n          type: 'default-radial',\n          at: defaultPosition\n        };\n      }\n    }\n\n    return radialType;\n  }\n\n  function matchCircle() {\n    var circle = match('shape', /^(circle)/i, 0);\n\n    if (circle) {\n      circle.style = matchLength() || matchExtentKeyword();\n    }\n\n    return circle;\n  }\n\n  function matchEllipse() {\n    var ellipse = match('shape', /^(ellipse)/i, 0);\n\n    if (ellipse) {\n      ellipse.style =  matchDistance() || matchExtentKeyword();\n    }\n\n    return ellipse;\n  }\n\n  function matchExtentKeyword() {\n    return match('extent-keyword', tokens.extentKeywords, 1);\n  }\n\n  function matchAtPosition() {\n    if (match('position', /^at/, 0)) {\n      var positioning = matchPositioning();\n\n      if (!positioning) {\n        error('Missing positioning value');\n      }\n\n      return positioning;\n    }\n  }\n\n  function matchPositioning() {\n    var location = matchCoordinates();\n\n    if (location.x || location.y) {\n      return {\n        type: 'position',\n        value: location\n      };\n    }\n  }\n\n  function matchCoordinates() {\n    return {\n      x: matchDistance(),\n      y: matchDistance()\n    };\n  }\n\n  function matchListing(matcher) {\n    var captures = matcher(),\n      result = [];\n\n    if (captures) {\n      result.push(captures);\n      while (scan(tokens.comma)) {\n        captures = matcher();\n        if (captures) {\n          result.push(captures);\n        } else {\n          error('One extra comma');\n        }\n      }\n    }\n\n    return result;\n  }\n\n  function matchColorStop() {\n    var color = matchColor();\n\n    if (!color) {\n      error('Expected color definition');\n    }\n\n    color.length = matchDistance();\n    return color;\n  }\n\n  function matchColor() {\n    return matchHexColor() ||\n      matchRGBAColor() ||\n      matchRGBColor() ||\n      matchLiteralColor();\n  }\n\n  function matchLiteralColor() {\n    return match('literal', tokens.literalColor, 0);\n  }\n\n  function matchHexColor() {\n    return match('hex', tokens.hexColor, 1);\n  }\n\n  function matchRGBColor() {\n    return matchCall(tokens.rgbColor, function() {\n      return  {\n        type: 'rgb',\n        value: matchListing(matchNumber)\n      };\n    });\n  }\n\n  function matchRGBAColor() {\n    return matchCall(tokens.rgbaColor, function() {\n      return  {\n        type: 'rgba',\n        value: matchListing(matchNumber)\n      };\n    });\n  }\n\n  function matchNumber() {\n    return scan(tokens.number)[1];\n  }\n\n  function matchDistance() {\n    return match('%', tokens.percentageValue, 1) ||\n      matchPositionKeyword() ||\n      matchLength();\n  }\n\n  function matchPositionKeyword() {\n    return match('position-keyword', tokens.positionKeywords, 1);\n  }\n\n  function matchLength() {\n    return match('px', tokens.pixelValue, 1) ||\n      match('em', tokens.emValue, 1);\n  }\n\n  function match(type, pattern, captureIndex) {\n    var captures = scan(pattern);\n    if (captures) {\n      return {\n        type: type,\n        value: captures[captureIndex]\n      };\n    }\n  }\n\n  function scan(regexp) {\n    var captures,\n        blankCaptures;\n\n    blankCaptures = /^[\\n\\r\\t\\s]+/.exec(input);\n    if (blankCaptures) {\n        consume(blankCaptures[0].length);\n    }\n\n    captures = regexp.exec(input);\n    if (captures) {\n        consume(captures[0].length);\n    }\n\n    return captures;\n  }\n\n  function consume(size) {\n    input = input.substr(size);\n  }\n\n  return function(code) {\n    input = code.toString();\n    return getAST();\n  };\n})();\n\nexports.parse = (GradientParser || {}).parse;\n\n\n/***/ }),\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar upload = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (upload);\n\n\n/***/ }),\n/* 199 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar linkOff = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (linkOff);\n\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = __webpack_require__(309);\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(121)))\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ArraySpeciesCreate = __webpack_require__(310);\nvar FlattenIntoArray = __webpack_require__(320);\nvar Get = __webpack_require__(177);\nvar ToInteger = __webpack_require__(214);\nvar ToLength = __webpack_require__(213);\nvar ToObject = __webpack_require__(340);\n\nmodule.exports = function flat() {\n\tvar O = ToObject(this);\n\tvar sourceLen = ToLength(Get(O, 'length'));\n\n\tvar depthNum = 1;\n\tif (arguments.length > 0 && typeof arguments[0] !== 'undefined') {\n\t\tdepthNum = ToInteger(arguments[0]);\n\t}\n\n\tvar A = ArraySpeciesCreate(O, 0);\n\tFlattenIntoArray(A, O, sourceLen, 0, depthNum);\n\treturn A;\n};\n\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nvar callBound = __webpack_require__(134);\n\nvar $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');\n\n// eslint-disable-next-line max-params\nmodule.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) {\n\tif (!$defineProperty) {\n\t\tif (!IsDataDescriptor(desc)) {\n\t\t\t// ES3 does not support getters/setters\n\t\t\treturn false;\n\t\t}\n\t\tif (!desc['[[Configurable]]'] || !desc['[[Writable]]']) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// fallback for ES3\n\t\tif (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) {\n\t\t\t// a non-enumerable existing property\n\t\t\treturn false;\n\t\t}\n\n\t\t// property does not exist at all, or exists but is enumerable\n\t\tvar V = desc['[[Value]]'];\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tO[P] = V; // will use [[Define]]\n\t\treturn SameValue(O[P], V);\n\t}\n\t$defineProperty(O, P, FromPropertyDescriptor(desc));\n\treturn true;\n};\n\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar assertRecord = __webpack_require__(179);\n\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor\n\nmodule.exports = function FromPropertyDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn Desc;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tvar obj = {};\n\tif ('[[Value]]' in Desc) {\n\t\tobj.value = Desc['[[Value]]'];\n\t}\n\tif ('[[Writable]]' in Desc) {\n\t\tobj.writable = Desc['[[Writable]]'];\n\t}\n\tif ('[[Get]]' in Desc) {\n\t\tobj.get = Desc['[[Get]]'];\n\t}\n\tif ('[[Set]]' in Desc) {\n\t\tobj.set = Desc['[[Set]]'];\n\t}\n\tif ('[[Enumerable]]' in Desc) {\n\t\tobj.enumerable = Desc['[[Enumerable]]'];\n\t}\n\tif ('[[Configurable]]' in Desc) {\n\t\tobj.configurable = Desc['[[Configurable]]'];\n\t}\n\treturn obj;\n};\n\n\n/***/ }),\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = __webpack_require__(81);\n\nvar assertRecord = __webpack_require__(179);\n\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor\n\nmodule.exports = function IsDataDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $isNaN = __webpack_require__(180);\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.12\n\nmodule.exports = function SameValue(x, y) {\n\tif (x === y) { // 0 === -0, but they are not identical.\n\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\treturn true;\n\t}\n\treturn $isNaN(x) && $isNaN(y);\n};\n\n\n/***/ }),\n/* 207 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = __webpack_require__(81);\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Type = __webpack_require__(80);\nvar ToBoolean = __webpack_require__(208);\nvar IsCallable = __webpack_require__(318);\n\n// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\nmodule.exports = function ToPropertyDescriptor(Obj) {\n\tif (Type(Obj) !== 'Object') {\n\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t}\n\n\tvar desc = {};\n\tif (has(Obj, 'enumerable')) {\n\t\tdesc['[[Enumerable]]'] = ToBoolean(Obj.enumerable);\n\t}\n\tif (has(Obj, 'configurable')) {\n\t\tdesc['[[Configurable]]'] = ToBoolean(Obj.configurable);\n\t}\n\tif (has(Obj, 'value')) {\n\t\tdesc['[[Value]]'] = Obj.value;\n\t}\n\tif (has(Obj, 'writable')) {\n\t\tdesc['[[Writable]]'] = ToBoolean(Obj.writable);\n\t}\n\tif (has(Obj, 'get')) {\n\t\tvar getter = Obj.get;\n\t\tif (typeof getter !== 'undefined' && !IsCallable(getter)) {\n\t\t\tthrow new TypeError('getter must be a function');\n\t\t}\n\t\tdesc['[[Get]]'] = getter;\n\t}\n\tif (has(Obj, 'set')) {\n\t\tvar setter = Obj.set;\n\t\tif (typeof setter !== 'undefined' && !IsCallable(setter)) {\n\t\t\tthrow new $TypeError('setter must be a function');\n\t\t}\n\t\tdesc['[[Set]]'] = setter;\n\t}\n\n\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t}\n\treturn desc;\n};\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.2\n\nmodule.exports = function ToBoolean(value) { return !!value; };\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t} catch (_) {\n\t\treflectApply = null;\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (typeof value === 'function' && !value.prototype) { return true; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\treturn strClass === fnClass || strClass === genClass;\n\t};\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Math = GetIntrinsic('%Math%');\nvar $Number = GetIntrinsic('%Number%');\n\nmodule.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1;\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar MAX_SAFE_INTEGER = __webpack_require__(211);\n\nvar ToInteger = __webpack_require__(214);\n\nmodule.exports = function ToLength(argument) {\n\tvar len = ToInteger(argument);\n\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\treturn len;\n};\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES5ToInteger = __webpack_require__(330);\n\nvar ToNumber = __webpack_require__(333);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-tointeger\n\nmodule.exports = function ToInteger(value) {\n\tvar number = ToNumber(value);\n\treturn ES5ToInteger(number);\n};\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint complexity: [2, 17], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(202);\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.flat || implementation;\n};\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar styleInterface = void 0;\nvar styleTheme = void 0;\n\nvar START_MARK = 'react-with-styles.resolve.start';\nvar END_MARK = 'react-with-styles.resolve.end';\nvar MEASURE_MARK = '\\uD83D\\uDC69\\u200D\\uD83C\\uDFA8 [resolve]';\n\nfunction registerTheme(theme) {\n  styleTheme = theme;\n}\n\nfunction registerInterface(interfaceToRegister) {\n  styleInterface = interfaceToRegister;\n}\n\nfunction create(makeFromTheme, createWithDirection) {\n  var styles = createWithDirection(makeFromTheme(styleTheme));\n  return function () {\n    return styles;\n  };\n}\n\nfunction createLTR(makeFromTheme) {\n  return create(makeFromTheme, styleInterface.createLTR || styleInterface.create);\n}\n\nfunction createRTL(makeFromTheme) {\n  return create(makeFromTheme, styleInterface.createRTL || styleInterface.create);\n}\n\nfunction get() {\n  return styleTheme;\n}\n\nfunction resolve() {\n  if (false) {}\n\n  for (var _len = arguments.length, styles = Array(_len), _key = 0; _key < _len; _key++) {\n    styles[_key] = arguments[_key];\n  }\n\n  var result = styleInterface.resolve(styles);\n\n  if (false) {}\n\n  return result;\n}\n\nfunction resolveLTR() {\n  for (var _len2 = arguments.length, styles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    styles[_key2] = arguments[_key2];\n  }\n\n  if (styleInterface.resolveLTR) {\n    return styleInterface.resolveLTR(styles);\n  }\n\n  return resolve(styles);\n}\n\nfunction resolveRTL() {\n  for (var _len3 = arguments.length, styles = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    styles[_key3] = arguments[_key3];\n  }\n\n  if (styleInterface.resolveRTL) {\n    return styleInterface.resolveRTL(styles);\n  }\n\n  return resolve(styles);\n}\n\nfunction flush() {\n  if (styleInterface.flush) {\n    styleInterface.flush();\n  }\n}\n\nexports['default'] = {\n  registerTheme: registerTheme,\n  registerInterface: registerInterface,\n  create: createLTR,\n  createLTR: createLTR,\n  createRTL: createRTL,\n  get: get,\n  resolve: resolveLTR,\n  resolveLTR: resolveLTR,\n  resolveRTL: resolveRTL,\n  flush: flush\n};\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar core = {\n  white: '#fff',\n  gray: '#484848',\n  grayLight: '#82888a',\n  grayLighter: '#cacccd',\n  grayLightest: '#f2f2f2',\n\n  borderMedium: '#c4c4c4',\n  border: '#dbdbdb',\n  borderLight: '#e4e7e7',\n  borderLighter: '#eceeee',\n  borderBright: '#f4f5f5',\n\n  primary: '#00a699',\n  primaryShade_1: '#33dacd',\n  primaryShade_2: '#66e2da',\n  primaryShade_3: '#80e8e0',\n  primaryShade_4: '#b2f1ec',\n  primary_dark: '#008489',\n\n  secondary: '#007a87',\n\n  yellow: '#ffe8bc',\n  yellow_dark: '#ffce71'\n};\n\nexports['default'] = {\n  reactDates: {\n    zIndex: 0,\n    border: {\n      input: {\n        border: 0,\n        borderTop: 0,\n        borderRight: 0,\n        borderBottom: '2px solid transparent',\n        borderLeft: 0,\n        outlineFocused: 0,\n        borderFocused: 0,\n        borderTopFocused: 0,\n        borderLeftFocused: 0,\n        borderBottomFocused: '2px solid ' + String(core.primary_dark),\n        borderRightFocused: 0,\n        borderRadius: 0\n      },\n      pickerInput: {\n        borderWidth: 1,\n        borderStyle: 'solid',\n        borderRadius: 2\n      }\n    },\n\n    color: {\n      core: core,\n\n      disabled: core.grayLightest,\n\n      background: core.white,\n      backgroundDark: '#f2f2f2',\n      backgroundFocused: core.white,\n      border: 'rgb(219, 219, 219)',\n      text: core.gray,\n      textDisabled: core.border,\n      textFocused: '#007a87',\n      placeholderText: '#757575',\n\n      outside: {\n        backgroundColor: core.white,\n        backgroundColor_active: core.white,\n        backgroundColor_hover: core.white,\n        color: core.gray,\n        color_active: core.gray,\n        color_hover: core.gray\n      },\n\n      highlighted: {\n        backgroundColor: core.yellow,\n        backgroundColor_active: core.yellow_dark,\n        backgroundColor_hover: core.yellow_dark,\n        color: core.gray,\n        color_active: core.gray,\n        color_hover: core.gray\n      },\n\n      minimumNights: {\n        backgroundColor: core.white,\n        backgroundColor_active: core.white,\n        backgroundColor_hover: core.white,\n        borderColor: core.borderLighter,\n        color: core.grayLighter,\n        color_active: core.grayLighter,\n        color_hover: core.grayLighter\n      },\n\n      hoveredSpan: {\n        backgroundColor: core.primaryShade_4,\n        backgroundColor_active: core.primaryShade_3,\n        backgroundColor_hover: core.primaryShade_4,\n        borderColor: core.primaryShade_3,\n        borderColor_active: core.primaryShade_3,\n        borderColor_hover: core.primaryShade_3,\n        color: core.secondary,\n        color_active: core.secondary,\n        color_hover: core.secondary\n      },\n\n      selectedSpan: {\n        backgroundColor: core.primaryShade_2,\n        backgroundColor_active: core.primaryShade_1,\n        backgroundColor_hover: core.primaryShade_1,\n        borderColor: core.primaryShade_1,\n        borderColor_active: core.primary,\n        borderColor_hover: core.primary,\n        color: core.white,\n        color_active: core.white,\n        color_hover: core.white\n      },\n\n      selected: {\n        backgroundColor: core.primary,\n        backgroundColor_active: core.primary,\n        backgroundColor_hover: core.primary,\n        borderColor: core.primary,\n        borderColor_active: core.primary,\n        borderColor_hover: core.primary,\n        color: core.white,\n        color_active: core.white,\n        color_hover: core.white\n      },\n\n      blocked_calendar: {\n        backgroundColor: core.grayLighter,\n        backgroundColor_active: core.grayLighter,\n        backgroundColor_hover: core.grayLighter,\n        borderColor: core.grayLighter,\n        borderColor_active: core.grayLighter,\n        borderColor_hover: core.grayLighter,\n        color: core.grayLight,\n        color_active: core.grayLight,\n        color_hover: core.grayLight\n      },\n\n      blocked_out_of_range: {\n        backgroundColor: core.white,\n        backgroundColor_active: core.white,\n        backgroundColor_hover: core.white,\n        borderColor: core.borderLight,\n        borderColor_active: core.borderLight,\n        borderColor_hover: core.borderLight,\n        color: core.grayLighter,\n        color_active: core.grayLighter,\n        color_hover: core.grayLighter\n      }\n    },\n\n    spacing: {\n      dayPickerHorizontalPadding: 9,\n      captionPaddingTop: 22,\n      captionPaddingBottom: 37,\n      inputPadding: 0,\n      displayTextPaddingVertical: undefined,\n      displayTextPaddingTop: 11,\n      displayTextPaddingBottom: 9,\n      displayTextPaddingHorizontal: undefined,\n      displayTextPaddingLeft: 11,\n      displayTextPaddingRight: 11,\n      displayTextPaddingVertical_small: undefined,\n      displayTextPaddingTop_small: 7,\n      displayTextPaddingBottom_small: 5,\n      displayTextPaddingHorizontal_small: undefined,\n      displayTextPaddingLeft_small: 7,\n      displayTextPaddingRight_small: 7\n    },\n\n    sizing: {\n      inputWidth: 130,\n      inputWidth_small: 97,\n      arrowWidth: 24\n    },\n\n    noScrollBarOnVerticalScrollable: false,\n\n    font: {\n      size: 14,\n      captionSize: 18,\n      input: {\n        size: 19,\n        lineHeight: '24px',\n        size_small: 15,\n        lineHeight_small: '18px',\n        letterSpacing_small: '0.2px',\n        styleDisabled: 'italic'\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 220 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = __webpack_require__(175);\nvar bind = __webpack_require__(113);\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = __webpack_require__(216)();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms, value, key;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tsyms = getSymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tkey = syms[i];\n\t\t\t\tif (propIsEnumerable(source, key)) {\n\t\t\t\t\tpush(props, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tkey = props[i];\n\t\t\tvalue = source[key];\n\t\t\tif (propIsEnumerable(source, key)) {\n\t\t\t\tobjTarget[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn objTarget;\n};\n\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(220);\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t// v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t// note: this does not detect the bug unless there's 20 characters\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n\n\n/***/ }),\n/* 222 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\n\nvar implementation = __webpack_require__(223);\nvar getPolyfill = __webpack_require__(231);\nvar shim = __webpack_require__(362);\n\nvar polyfill = getPolyfill();\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES = __webpack_require__(353);\nvar has = __webpack_require__(81);\nvar bind = __webpack_require__(113);\nvar isEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function values(O) {\n\tvar obj = ES.RequireObjectCoercible(O);\n\tvar vals = [];\n\tfor (var key in obj) {\n\t\tif (has(obj, key) && isEnumerable(obj, key)) {\n\t\t\tvals.push(obj[key]);\n\t\t}\n\t}\n\treturn vals;\n};\n\n\n/***/ }),\n/* 224 */\n/***/ (function(module, exports) {\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(183);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = __webpack_require__(81);\n\nvar predicates = {\n  // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n  'Property Descriptor': function isPropertyDescriptor(ES, Desc) {\n    if (ES.Type(Desc) !== 'Object') {\n      return false;\n    }\n    var allowed = {\n      '[[Configurable]]': true,\n      '[[Enumerable]]': true,\n      '[[Get]]': true,\n      '[[Set]]': true,\n      '[[Value]]': true,\n      '[[Writable]]': true\n    };\n\n    for (var key in Desc) { // eslint-disable-line\n      if (has(Desc, key) && !allowed[key]) {\n        return false;\n      }\n    }\n\n    var isData = has(Desc, '[[Value]]');\n    var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n    if (isData && IsAccessor) {\n      throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n    }\n    return true;\n  }\n};\n\nmodule.exports = function assertRecord(ES, recordType, argumentName, value) {\n  var predicate = predicates[recordType];\n  if (typeof predicate !== 'function') {\n    throw new $SyntaxError('unknown record type: ' + recordType);\n  }\n  if (!predicate(ES, value)) {\n    throw new $TypeError(argumentName + ' must be a ' + recordType);\n  }\n  console.log(predicate(ES, value), value);\n};\n\n\n/***/ }),\n/* 226 */\n/***/ (function(module, exports) {\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports) {\n\nvar $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n\n\n/***/ }),\n/* 228 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar bind = __webpack_require__(113);\nvar has = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\nvar $assign = Object.assign;\n\nmodule.exports = function assign(target, source) {\n\tif ($assign) {\n\t\treturn $assign(target, source);\n\t}\n\n\tfor (var key in source) {\n\t\tif (has(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports) {\n\nmodule.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n\n\n/***/ }),\n/* 230 */\n/***/ (function(module, exports) {\n\nmodule.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(223);\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.values === 'function' ? Object.values : implementation;\n};\n\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isTouchDevice;\nfunction isTouchDevice() {\n  return !!(typeof window !== 'undefined' && ('ontouchstart' in window || window.DocumentTouch && typeof document !== 'undefined' && document instanceof window.DocumentTouch)) || !!(typeof navigator !== 'undefined' && (navigator.maxTouchPoints || navigator.msMaxTouchPoints));\n}\nmodule.exports = exports['default'];\n\n/***/ }),\n/* 233 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isAfterDay;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isBeforeDay = __webpack_require__(234);\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _isSameDay = __webpack_require__(184);\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isAfterDay(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n  return !(0, _isBeforeDay2['default'])(a, b) && !(0, _isSameDay2['default'])(a, b);\n}\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isBeforeDay;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isBeforeDay(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n\n  var aYear = a.year();\n  var aMonth = a.month();\n\n  var bYear = b.year();\n  var bMonth = b.month();\n\n  var isSameYear = aYear === bYear;\n  var isSameMonth = aMonth === bMonth;\n\n  if (isSameYear && isSameMonth) return a.date() < b.date();\n  if (isSameYear) return aMonth < bMonth;\n  return aYear < bYear;\n}\n\n/***/ }),\n/* 235 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = toMomentObject;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toMomentObject(dateString, customFormat) {\n  var dateFormats = customFormat ? [customFormat, _constants.DISPLAY_FORMAT, _constants.ISO_FORMAT] : [_constants.DISPLAY_FORMAT, _constants.ISO_FORMAT];\n\n  var date = (0, _moment2['default'])(dateString, dateFormats, true);\n  return date.isValid() ? date.hour(12) : null;\n}\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isDayVisible;\n\nvar _isBeforeDay = __webpack_require__(234);\n\nvar _isBeforeDay2 = _interopRequireDefault(_isBeforeDay);\n\nvar _isAfterDay = __webpack_require__(233);\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isDayVisible(day, month, numberOfMonths, enableOutsideDays) {\n  var firstDayOfFirstMonth = month.clone().startOf('month');\n  if (enableOutsideDays) firstDayOfFirstMonth = firstDayOfFirstMonth.startOf('week');\n  if ((0, _isBeforeDay2['default'])(day, firstDayOfFirstMonth)) return false;\n\n  var lastDayOfLastMonth = month.clone().add(numberOfMonths - 1, 'months').endOf('month');\n  if (enableOutsideDays) lastDayOfLastMonth = lastDayOfLastMonth.endOf('week');\n  return !(0, _isAfterDay2['default'])(day, lastDayOfLastMonth);\n}\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = toISODateString;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toMomentObject = __webpack_require__(235);\n\nvar _toMomentObject2 = _interopRequireDefault(_toMomentObject);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction toISODateString(date, currentFormat) {\n  var dateObj = _moment2['default'].isMoment(date) ? date : (0, _toMomentObject2['default'])(date, currentFormat);\n  if (!dateObj) return null;\n\n  return dateObj.format(_constants.ISO_FORMAT);\n}\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].oneOf([_constants.INFO_POSITION_TOP, _constants.INFO_POSITION_BOTTOM, _constants.INFO_POSITION_BEFORE, _constants.INFO_POSITION_AFTER]);\n\n/***/ }),\n/* 239 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar freeGlobal = __webpack_require__(374);\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(239);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n/***/ }),\n/* 241 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addEventListener\", function() { return addEventListener; });\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n// Adapted from Modernizr\n// https://github.com/Modernizr/Modernizr/blob/acb3f0d9/feature-detects/dom/passiveeventlisteners.js#L26-L37\nfunction testPassiveEventListeners() {\n  if (!CAN_USE_DOM) {\n    return false;\n  }\n\n  if (!window.addEventListener || !window.removeEventListener || !Object.defineProperty) {\n    return false;\n  }\n\n  var supportsPassiveOption = false;\n  try {\n    var opts = Object.defineProperty({}, 'passive', {\n      // eslint-disable-next-line getter-return\n      get: function () {\n        function get() {\n          supportsPassiveOption = true;\n        }\n\n        return get;\n      }()\n    });\n    var noop = function noop() {};\n    window.addEventListener('testPassiveEventSupport', noop, opts);\n    window.removeEventListener('testPassiveEventSupport', noop, opts);\n  } catch (e) {\n    // do nothing\n  }\n\n  return supportsPassiveOption;\n}\n\nvar memoized = void 0;\n\nfunction canUsePassiveEventListeners() {\n  if (memoized === undefined) {\n    memoized = testPassiveEventListeners();\n  }\n  return memoized;\n}\n\nfunction normalizeEventOptions(eventOptions) {\n  if (!eventOptions) {\n    return undefined;\n  }\n\n  if (!canUsePassiveEventListeners()) {\n    // If the browser does not support the passive option, then it is expecting\n    // a boolean for the options argument to specify whether it should use\n    // capture or not. In more modern browsers, this is passed via the `capture`\n    // option, so let's just hoist that value up.\n    return !!eventOptions.capture;\n  }\n\n  return eventOptions;\n}\n\n/* eslint-disable no-bitwise */\n\n/**\n * Generate a unique key for any set of event options\n */\nfunction eventOptionsKey(normalizedEventOptions) {\n  if (!normalizedEventOptions) {\n    return 0;\n  }\n\n  // If the browser does not support passive event listeners, the normalized\n  // event options will be a boolean.\n  if (normalizedEventOptions === true) {\n    return 100;\n  }\n\n  // At this point, the browser supports passive event listeners, so we expect\n  // the event options to be an object with possible properties of capture,\n  // passive, and once.\n  //\n  // We want to consistently return the same value, regardless of the order of\n  // these properties, so let's use binary maths to assign each property to a\n  // bit, and then add those together (with an offset to account for the\n  // booleans at the beginning of this function).\n  var capture = normalizedEventOptions.capture << 0;\n  var passive = normalizedEventOptions.passive << 1;\n  var once = normalizedEventOptions.once << 2;\n  return capture + passive + once;\n}\n\nfunction ensureCanMutateNextEventHandlers(eventHandlers) {\n  if (eventHandlers.handlers === eventHandlers.nextHandlers) {\n    // eslint-disable-next-line no-param-reassign\n    eventHandlers.nextHandlers = eventHandlers.handlers.slice();\n  }\n}\n\nfunction TargetEventHandlers(target) {\n  this.target = target;\n  this.events = {};\n}\n\nTargetEventHandlers.prototype.getEventHandlers = function () {\n  function getEventHandlers(eventName, options) {\n    var key = String(eventName) + ' ' + String(eventOptionsKey(options));\n\n    if (!this.events[key]) {\n      this.events[key] = {\n        handlers: [],\n        handleEvent: undefined\n      };\n      this.events[key].nextHandlers = this.events[key].handlers;\n    }\n\n    return this.events[key];\n  }\n\n  return getEventHandlers;\n}();\n\nTargetEventHandlers.prototype.handleEvent = function () {\n  function handleEvent(eventName, options, event) {\n    var eventHandlers = this.getEventHandlers(eventName, options);\n    eventHandlers.handlers = eventHandlers.nextHandlers;\n    eventHandlers.handlers.forEach(function (handler) {\n      if (handler) {\n        // We need to check for presence here because a handler function may\n        // cause later handlers to get removed. This can happen if you for\n        // instance have a waypoint that unmounts another waypoint as part of an\n        // onEnter/onLeave handler.\n        handler(event);\n      }\n    });\n  }\n\n  return handleEvent;\n}();\n\nTargetEventHandlers.prototype.add = function () {\n  function add(eventName, listener, options) {\n    var _this = this;\n\n    // options has already been normalized at this point.\n    var eventHandlers = this.getEventHandlers(eventName, options);\n\n    ensureCanMutateNextEventHandlers(eventHandlers);\n\n    if (eventHandlers.nextHandlers.length === 0) {\n      eventHandlers.handleEvent = this.handleEvent.bind(this, eventName, options);\n\n      this.target.addEventListener(eventName, eventHandlers.handleEvent, options);\n    }\n\n    eventHandlers.nextHandlers.push(listener);\n\n    var isSubscribed = true;\n    var unsubscribe = function () {\n      function unsubscribe() {\n        if (!isSubscribed) {\n          return;\n        }\n\n        isSubscribed = false;\n\n        ensureCanMutateNextEventHandlers(eventHandlers);\n        var index = eventHandlers.nextHandlers.indexOf(listener);\n        eventHandlers.nextHandlers.splice(index, 1);\n\n        if (eventHandlers.nextHandlers.length === 0) {\n          // All event handlers have been removed, so we want to remove the event\n          // listener from the target node.\n\n          if (_this.target) {\n            // There can be a race condition where the target may no longer exist\n            // when this function is called, e.g. when a React component is\n            // unmounting. Guarding against this prevents the following error:\n            //\n            //   Cannot read property 'removeEventListener' of undefined\n            _this.target.removeEventListener(eventName, eventHandlers.handleEvent, options);\n          }\n\n          eventHandlers.handleEvent = undefined;\n        }\n      }\n\n      return unsubscribe;\n    }();\n    return unsubscribe;\n  }\n\n  return add;\n}();\n\nvar EVENT_HANDLERS_KEY = '__consolidated_events_handlers__';\n\n// eslint-disable-next-line import/prefer-default-export\nfunction addEventListener(target, eventName, listener, options) {\n  if (!target[EVENT_HANDLERS_KEY]) {\n    // eslint-disable-next-line no-param-reassign\n    target[EVENT_HANDLERS_KEY] = new TargetEventHandlers(target);\n  }\n  var normalizedEventOptions = normalizeEventOptions(options);\n  return target[EVENT_HANDLERS_KEY].add(eventName, listener, normalizedEventOptions);\n}\n\n\n\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function contains(other) {\n\tif (arguments.length < 1) {\n\t\tthrow new TypeError('1 argument is required');\n\t}\n\tif (typeof other !== 'object') {\n\t\tthrow new TypeError('Argument 1 (”other“) to Node.contains must be an instance of Node');\n\t}\n\n\tvar node = other;\n\tdo {\n\t\tif (this === node) {\n\t\t\treturn true;\n\t\t}\n\t\tif (node) {\n\t\t\tnode = node.parentNode;\n\t\t}\n\t} while (node);\n\n\treturn false;\n};\n\n\n/***/ }),\n/* 243 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar implementation = __webpack_require__(242);\n\nmodule.exports = function getPolyfill() {\n\tif (typeof document !== 'undefined') {\n\t\tif (document.contains) {\n\t\t\treturn document.contains;\n\t\t}\n\t\tif (document.body && document.body.contains) {\n\t\t\ttry {\n\t\t\t\tif (typeof document.body.contains.call(document, '') === 'boolean') {\n\t\t\t\t\treturn document.body.contains;\n\t\t\t\t}\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t}\n\treturn implementation;\n};\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PureCalendarDay = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = __webpack_require__(137);\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = __webpack_require__(135);\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _getCalendarDaySettings = __webpack_require__(245);\n\nvar _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);\n\nvar _ModifiersShape = __webpack_require__(151);\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  day: _reactMomentProptypes2['default'].momentObj,\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  isOutsideDay: _propTypes2['default'].bool,\n  modifiers: _ModifiersShape2['default'],\n  isFocused: _propTypes2['default'].bool,\n  tabIndex: _propTypes2['default'].oneOf([0, -1]),\n  onDayClick: _propTypes2['default'].func,\n  onDayMouseEnter: _propTypes2['default'].func,\n  onDayMouseLeave: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  ariaLabelFormat: _propTypes2['default'].string,\n\n  // internationalization\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))\n}));\n\nvar defaultProps = {\n  day: (0, _moment2['default'])(),\n  daySize: _constants.DAY_SIZE,\n  isOutsideDay: false,\n  modifiers: new Set(),\n  isFocused: false,\n  tabIndex: -1,\n  onDayClick: function () {\n    function onDayClick() {}\n\n    return onDayClick;\n  }(),\n  onDayMouseEnter: function () {\n    function onDayMouseEnter() {}\n\n    return onDayMouseEnter;\n  }(),\n  onDayMouseLeave: function () {\n    function onDayMouseLeave() {}\n\n    return onDayMouseLeave;\n  }(),\n\n  renderDayContents: null,\n  ariaLabelFormat: 'dddd, LL',\n\n  // internationalization\n  phrases: _defaultPhrases.CalendarDayPhrases\n};\n\nvar CalendarDay = function (_React$Component) {\n  _inherits(CalendarDay, _React$Component);\n\n  function CalendarDay() {\n    var _ref;\n\n    _classCallCheck(this, CalendarDay);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var _this = _possibleConstructorReturn(this, (_ref = CalendarDay.__proto__ || Object.getPrototypeOf(CalendarDay)).call.apply(_ref, [this].concat(args)));\n\n    _this.setButtonRef = _this.setButtonRef.bind(_this);\n    return _this;\n  }\n\n  _createClass(CalendarDay, [{\n    key: 'shouldComponentUpdate',\n    value: function () {\n      function shouldComponentUpdate(nextProps, nextState) {\n        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n      }\n\n      return shouldComponentUpdate;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate(prevProps) {\n        var _props = this.props,\n            isFocused = _props.isFocused,\n            tabIndex = _props.tabIndex;\n\n        if (tabIndex === 0) {\n          if (isFocused || tabIndex !== prevProps.tabIndex) {\n            this.buttonRef.focus();\n          }\n        }\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'onDayClick',\n    value: function () {\n      function onDayClick(day, e) {\n        var onDayClick = this.props.onDayClick;\n\n        onDayClick(day, e);\n      }\n\n      return onDayClick;\n    }()\n  }, {\n    key: 'onDayMouseEnter',\n    value: function () {\n      function onDayMouseEnter(day, e) {\n        var onDayMouseEnter = this.props.onDayMouseEnter;\n\n        onDayMouseEnter(day, e);\n      }\n\n      return onDayMouseEnter;\n    }()\n  }, {\n    key: 'onDayMouseLeave',\n    value: function () {\n      function onDayMouseLeave(day, e) {\n        var onDayMouseLeave = this.props.onDayMouseLeave;\n\n        onDayMouseLeave(day, e);\n      }\n\n      return onDayMouseLeave;\n    }()\n  }, {\n    key: 'onKeyDown',\n    value: function () {\n      function onKeyDown(day, e) {\n        var onDayClick = this.props.onDayClick;\n        var key = e.key;\n\n        if (key === 'Enter' || key === ' ') {\n          onDayClick(day, e);\n        }\n      }\n\n      return onKeyDown;\n    }()\n  }, {\n    key: 'setButtonRef',\n    value: function () {\n      function setButtonRef(ref) {\n        this.buttonRef = ref;\n      }\n\n      return setButtonRef;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _this2 = this;\n\n        var _props2 = this.props,\n            day = _props2.day,\n            ariaLabelFormat = _props2.ariaLabelFormat,\n            daySize = _props2.daySize,\n            isOutsideDay = _props2.isOutsideDay,\n            modifiers = _props2.modifiers,\n            renderDayContents = _props2.renderDayContents,\n            tabIndex = _props2.tabIndex,\n            styles = _props2.styles,\n            phrases = _props2.phrases;\n\n\n        if (!day) return _react2['default'].createElement('td', null);\n\n        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),\n            daySizeStyles = _getCalendarDaySettin.daySizeStyles,\n            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,\n            selected = _getCalendarDaySettin.selected,\n            hoveredSpan = _getCalendarDaySettin.hoveredSpan,\n            isOutsideRange = _getCalendarDaySettin.isOutsideRange,\n            ariaLabel = _getCalendarDaySettin.ariaLabel;\n\n        return _react2['default'].createElement(\n          'td',\n          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, styles.CalendarDay__default, isOutsideDay && styles.CalendarDay__outside, modifiers.has('today') && styles.CalendarDay__today, modifiers.has('first-day-of-week') && styles.CalendarDay__firstDayOfWeek, modifiers.has('last-day-of-week') && styles.CalendarDay__lastDayOfWeek, modifiers.has('hovered-offset') && styles.CalendarDay__hovered_offset, modifiers.has('highlighted-calendar') && styles.CalendarDay__highlighted_calendar, modifiers.has('blocked-minimum-nights') && styles.CalendarDay__blocked_minimum_nights, modifiers.has('blocked-calendar') && styles.CalendarDay__blocked_calendar, hoveredSpan && styles.CalendarDay__hovered_span, modifiers.has('selected-span') && styles.CalendarDay__selected_span, modifiers.has('last-in-range') && styles.CalendarDay__last_in_range, modifiers.has('selected-start') && styles.CalendarDay__selected_start, modifiers.has('selected-end') && styles.CalendarDay__selected_end, selected && styles.CalendarDay__selected, isOutsideRange && styles.CalendarDay__blocked_out_of_range, daySizeStyles), {\n            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role\n            , ref: this.setButtonRef,\n            'aria-label': ariaLabel,\n            onMouseEnter: function () {\n              function onMouseEnter(e) {\n                _this2.onDayMouseEnter(day, e);\n              }\n\n              return onMouseEnter;\n            }(),\n            onMouseLeave: function () {\n              function onMouseLeave(e) {\n                _this2.onDayMouseLeave(day, e);\n              }\n\n              return onMouseLeave;\n            }(),\n            onMouseUp: function () {\n              function onMouseUp(e) {\n                e.currentTarget.blur();\n              }\n\n              return onMouseUp;\n            }(),\n            onClick: function () {\n              function onClick(e) {\n                _this2.onDayClick(day, e);\n              }\n\n              return onClick;\n            }(),\n            onKeyDown: function () {\n              function onKeyDown(e) {\n                _this2.onKeyDown(day, e);\n              }\n\n              return onKeyDown;\n            }(),\n            tabIndex: tabIndex\n          }),\n          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return CalendarDay;\n}(_react2['default'].Component);\n\nCalendarDay.propTypes = propTypes;\nCalendarDay.defaultProps = defaultProps;\n\nexports.PureCalendarDay = CalendarDay;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n  var _ref2$reactDates = _ref2.reactDates,\n      color = _ref2$reactDates.color,\n      font = _ref2$reactDates.font;\n  return {\n    CalendarDay: {\n      boxSizing: 'border-box',\n      cursor: 'pointer',\n      fontSize: font.size,\n      textAlign: 'center',\n\n      ':active': {\n        outline: 0\n      }\n    },\n\n    CalendarDay__defaultCursor: {\n      cursor: 'default'\n    },\n\n    CalendarDay__default: {\n      border: '1px solid ' + String(color.core.borderLight),\n      color: color.text,\n      background: color.background,\n\n      ':hover': {\n        background: color.core.borderLight,\n        border: '1px double ' + String(color.core.borderLight),\n        color: 'inherit'\n      }\n    },\n\n    CalendarDay__hovered_offset: {\n      background: color.core.borderBright,\n      border: '1px double ' + String(color.core.borderLight),\n      color: 'inherit'\n    },\n\n    CalendarDay__outside: {\n      border: 0,\n      background: color.outside.backgroundColor,\n      color: color.outside.color,\n\n      ':hover': {\n        border: 0\n      }\n    },\n\n    CalendarDay__blocked_minimum_nights: {\n      background: color.minimumNights.backgroundColor,\n      border: '1px solid ' + String(color.minimumNights.borderColor),\n      color: color.minimumNights.color,\n\n      ':hover': {\n        background: color.minimumNights.backgroundColor_hover,\n        color: color.minimumNights.color_active\n      },\n\n      ':active': {\n        background: color.minimumNights.backgroundColor_active,\n        color: color.minimumNights.color_active\n      }\n    },\n\n    CalendarDay__highlighted_calendar: {\n      background: color.highlighted.backgroundColor,\n      color: color.highlighted.color,\n\n      ':hover': {\n        background: color.highlighted.backgroundColor_hover,\n        color: color.highlighted.color_active\n      },\n\n      ':active': {\n        background: color.highlighted.backgroundColor_active,\n        color: color.highlighted.color_active\n      }\n    },\n\n    CalendarDay__selected_span: {\n      background: color.selectedSpan.backgroundColor,\n      border: '1px solid ' + String(color.selectedSpan.borderColor),\n      color: color.selectedSpan.color,\n\n      ':hover': {\n        background: color.selectedSpan.backgroundColor_hover,\n        border: '1px solid ' + String(color.selectedSpan.borderColor),\n        color: color.selectedSpan.color_active\n      },\n\n      ':active': {\n        background: color.selectedSpan.backgroundColor_active,\n        border: '1px solid ' + String(color.selectedSpan.borderColor),\n        color: color.selectedSpan.color_active\n      }\n    },\n\n    CalendarDay__last_in_range: {\n      borderRight: color.core.primary\n    },\n\n    CalendarDay__selected: {\n      background: color.selected.backgroundColor,\n      border: '1px solid ' + String(color.selected.borderColor),\n      color: color.selected.color,\n\n      ':hover': {\n        background: color.selected.backgroundColor_hover,\n        border: '1px solid ' + String(color.selected.borderColor),\n        color: color.selected.color_active\n      },\n\n      ':active': {\n        background: color.selected.backgroundColor_active,\n        border: '1px solid ' + String(color.selected.borderColor),\n        color: color.selected.color_active\n      }\n    },\n\n    CalendarDay__hovered_span: {\n      background: color.hoveredSpan.backgroundColor,\n      border: '1px solid ' + String(color.hoveredSpan.borderColor),\n      color: color.hoveredSpan.color,\n\n      ':hover': {\n        background: color.hoveredSpan.backgroundColor_hover,\n        border: '1px solid ' + String(color.hoveredSpan.borderColor),\n        color: color.hoveredSpan.color_active\n      },\n\n      ':active': {\n        background: color.hoveredSpan.backgroundColor_active,\n        border: '1px solid ' + String(color.hoveredSpan.borderColor),\n        color: color.hoveredSpan.color_active\n      }\n    },\n\n    CalendarDay__blocked_calendar: {\n      background: color.blocked_calendar.backgroundColor,\n      border: '1px solid ' + String(color.blocked_calendar.borderColor),\n      color: color.blocked_calendar.color,\n\n      ':hover': {\n        background: color.blocked_calendar.backgroundColor_hover,\n        border: '1px solid ' + String(color.blocked_calendar.borderColor),\n        color: color.blocked_calendar.color_active\n      },\n\n      ':active': {\n        background: color.blocked_calendar.backgroundColor_active,\n        border: '1px solid ' + String(color.blocked_calendar.borderColor),\n        color: color.blocked_calendar.color_active\n      }\n    },\n\n    CalendarDay__blocked_out_of_range: {\n      background: color.blocked_out_of_range.backgroundColor,\n      border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n      color: color.blocked_out_of_range.color,\n\n      ':hover': {\n        background: color.blocked_out_of_range.backgroundColor_hover,\n        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n        color: color.blocked_out_of_range.color_active\n      },\n\n      ':active': {\n        background: color.blocked_out_of_range.backgroundColor_active,\n        border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n        color: color.blocked_out_of_range.color_active\n      }\n    },\n\n    CalendarDay__selected_start: {},\n    CalendarDay__selected_end: {},\n    CalendarDay__today: {},\n    CalendarDay__firstDayOfWeek: {},\n    CalendarDay__lastDayOfWeek: {}\n  };\n})(CalendarDay);\n\n/***/ }),\n/* 245 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getCalendarDaySettings;\n\nvar _getPhrase = __webpack_require__(388);\n\nvar _getPhrase2 = _interopRequireDefault(_getPhrase);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getCalendarDaySettings(day, ariaLabelFormat, daySize, modifiers, phrases) {\n  var chooseAvailableDate = phrases.chooseAvailableDate,\n      dateIsUnavailable = phrases.dateIsUnavailable,\n      dateIsSelected = phrases.dateIsSelected;\n\n\n  var daySizeStyles = {\n    width: daySize,\n    height: daySize - 1\n  };\n\n  var useDefaultCursor = modifiers.has('blocked-minimum-nights') || modifiers.has('blocked-calendar') || modifiers.has('blocked-out-of-range');\n\n  var selected = modifiers.has('selected') || modifiers.has('selected-start') || modifiers.has('selected-end');\n\n  var hoveredSpan = !selected && (modifiers.has('hovered-span') || modifiers.has('after-hovered-start'));\n\n  var isOutsideRange = modifiers.has('blocked-out-of-range');\n\n  var formattedDate = { date: day.format(ariaLabelFormat) };\n\n  var ariaLabel = (0, _getPhrase2['default'])(chooseAvailableDate, formattedDate);\n  if (modifiers.has(_constants.BLOCKED_MODIFIER)) {\n    ariaLabel = (0, _getPhrase2['default'])(dateIsUnavailable, formattedDate);\n  } else if (selected) {\n    ariaLabel = (0, _getPhrase2['default'])(dateIsSelected, formattedDate);\n  }\n\n  return {\n    daySizeStyles: daySizeStyles,\n    useDefaultCursor: useDefaultCursor,\n    selected: selected,\n    hoveredSpan: hoveredSpan,\n    isOutsideRange: isOutsideRange,\n    ariaLabel: ariaLabel\n  };\n}\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = calculateDimension;\nfunction calculateDimension(el, axis) {\n  var borderBox = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  var withMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n  if (!el) {\n    return 0;\n  }\n\n  var axisStart = axis === 'width' ? 'Left' : 'Top';\n  var axisEnd = axis === 'width' ? 'Right' : 'Bottom';\n\n  // Only read styles if we need to\n  var style = !borderBox || withMargin ? window.getComputedStyle(el) : null;\n\n  // Offset includes border and padding\n  var offsetWidth = el.offsetWidth,\n      offsetHeight = el.offsetHeight;\n\n  var size = axis === 'width' ? offsetWidth : offsetHeight;\n\n  // Get the inner size\n  if (!borderBox) {\n    size -= parseFloat(style['padding' + axisStart]) + parseFloat(style['padding' + axisEnd]) + parseFloat(style['border' + axisStart + 'Width']) + parseFloat(style['border' + axisEnd + 'Width']);\n  }\n\n  // Apply margin\n  if (withMargin) {\n    size += parseFloat(style['margin' + axisStart]) + parseFloat(style['margin' + axisEnd]);\n  }\n\n  return size;\n}\n\n/***/ }),\n/* 247 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getCalendarMonthWidth;\nfunction getCalendarMonthWidth(daySize, calendarMonthPadding) {\n  return 7 * daySize + 2 * calendarMonthPadding + 1;\n}\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isSameMonth;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isSameMonth(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n  // Compare least significant, most likely to change units first\n  // Moment's isSame clones moment inputs and is a tad slow\n  return a.month() === b.month() && a.year() === b.year();\n}\n\n/***/ }),\n/* 249 */,\n/* 250 */,\n/* 251 */,\n/* 252 */,\n/* 253 */,\n/* 254 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"SVG\", function() { return /* reexport */ external_this_wp_primitives_[\"SVG\"]; });\n__webpack_require__.d(__webpack_exports__, \"Path\", function() { return /* reexport */ external_this_wp_primitives_[\"Path\"]; });\n__webpack_require__.d(__webpack_exports__, \"Circle\", function() { return /* reexport */ external_this_wp_primitives_[\"Circle\"]; });\n__webpack_require__.d(__webpack_exports__, \"Polygon\", function() { return /* reexport */ external_this_wp_primitives_[\"Polygon\"]; });\n__webpack_require__.d(__webpack_exports__, \"Rect\", function() { return /* reexport */ external_this_wp_primitives_[\"Rect\"]; });\n__webpack_require__.d(__webpack_exports__, \"G\", function() { return /* reexport */ external_this_wp_primitives_[\"G\"]; });\n__webpack_require__.d(__webpack_exports__, \"HorizontalRule\", function() { return /* reexport */ external_this_wp_primitives_[\"HorizontalRule\"]; });\n__webpack_require__.d(__webpack_exports__, \"BlockQuotation\", function() { return /* reexport */ external_this_wp_primitives_[\"BlockQuotation\"]; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalAlignmentMatrixControl\", function() { return /* reexport */ AlignmentMatrixControl; });\n__webpack_require__.d(__webpack_exports__, \"Animate\", function() { return /* reexport */ animate[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"AnglePickerControl\", function() { return /* reexport */ AnglePickerControl; });\n__webpack_require__.d(__webpack_exports__, \"Autocomplete\", function() { return /* reexport */ autocomplete; });\n__webpack_require__.d(__webpack_exports__, \"BaseControl\", function() { return /* reexport */ base_control; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalBoxControl\", function() { return /* reexport */ BoxControl; });\n__webpack_require__.d(__webpack_exports__, \"Button\", function() { return /* reexport */ build_module_button[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"ButtonGroup\", function() { return /* reexport */ button_group; });\n__webpack_require__.d(__webpack_exports__, \"Card\", function() { return /* reexport */ card; });\n__webpack_require__.d(__webpack_exports__, \"CardBody\", function() { return /* reexport */ card_body; });\n__webpack_require__.d(__webpack_exports__, \"CardDivider\", function() { return /* reexport */ divider; });\n__webpack_require__.d(__webpack_exports__, \"CardFooter\", function() { return /* reexport */ footer; });\n__webpack_require__.d(__webpack_exports__, \"CardHeader\", function() { return /* reexport */ card_header; });\n__webpack_require__.d(__webpack_exports__, \"CardMedia\", function() { return /* reexport */ media; });\n__webpack_require__.d(__webpack_exports__, \"CheckboxControl\", function() { return /* reexport */ CheckboxControl; });\n__webpack_require__.d(__webpack_exports__, \"ClipboardButton\", function() { return /* reexport */ ClipboardButton; });\n__webpack_require__.d(__webpack_exports__, \"ColorIndicator\", function() { return /* reexport */ color_indicator; });\n__webpack_require__.d(__webpack_exports__, \"ColorPalette\", function() { return /* reexport */ ColorPalette; });\n__webpack_require__.d(__webpack_exports__, \"ColorPicker\", function() { return /* reexport */ color_picker_ColorPicker; });\n__webpack_require__.d(__webpack_exports__, \"CustomSelectControl\", function() { return /* reexport */ CustomSelectControl; });\n__webpack_require__.d(__webpack_exports__, \"Dashicon\", function() { return /* reexport */ dashicon[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"DateTimePicker\", function() { return /* reexport */ date_time_DateTimePicker; });\n__webpack_require__.d(__webpack_exports__, \"DatePicker\", function() { return /* reexport */ date_time_date; });\n__webpack_require__.d(__webpack_exports__, \"TimePicker\", function() { return /* reexport */ time; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalDimensionControl\", function() { return /* reexport */ dimension_control; });\n__webpack_require__.d(__webpack_exports__, \"Disabled\", function() { return /* reexport */ build_module_disabled; });\n__webpack_require__.d(__webpack_exports__, \"Draggable\", function() { return /* reexport */ draggable; });\n__webpack_require__.d(__webpack_exports__, \"DropZone\", function() { return /* reexport */ drop_zone; });\n__webpack_require__.d(__webpack_exports__, \"__unstableUseDropZone\", function() { return /* reexport */ useDropZone; });\n__webpack_require__.d(__webpack_exports__, \"DropZoneProvider\", function() { return /* reexport */ provider; });\n__webpack_require__.d(__webpack_exports__, \"Dropdown\", function() { return /* reexport */ Dropdown; });\n__webpack_require__.d(__webpack_exports__, \"DropdownMenu\", function() { return /* reexport */ dropdown_menu; });\n__webpack_require__.d(__webpack_exports__, \"ExternalLink\", function() { return /* reexport */ external_link; });\n__webpack_require__.d(__webpack_exports__, \"Flex\", function() { return /* reexport */ flex; });\n__webpack_require__.d(__webpack_exports__, \"FlexBlock\", function() { return /* reexport */ block; });\n__webpack_require__.d(__webpack_exports__, \"FlexItem\", function() { return /* reexport */ flex_item; });\n__webpack_require__.d(__webpack_exports__, \"FocalPointPicker\", function() { return /* reexport */ focal_point_picker; });\n__webpack_require__.d(__webpack_exports__, \"FocusableIframe\", function() { return /* reexport */ focusable_iframe; });\n__webpack_require__.d(__webpack_exports__, \"FontSizePicker\", function() { return /* reexport */ FontSizePicker; });\n__webpack_require__.d(__webpack_exports__, \"FormFileUpload\", function() { return /* reexport */ form_file_upload; });\n__webpack_require__.d(__webpack_exports__, \"FormToggle\", function() { return /* reexport */ form_toggle; });\n__webpack_require__.d(__webpack_exports__, \"FormTokenField\", function() { return /* reexport */ form_token_field; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalGradientPicker\", function() { return /* reexport */ GradientPicker; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalCustomGradientPicker\", function() { return /* reexport */ CustomGradientPicker; });\n__webpack_require__.d(__webpack_exports__, \"Guide\", function() { return /* reexport */ Guide; });\n__webpack_require__.d(__webpack_exports__, \"GuidePage\", function() { return /* reexport */ GuidePage; });\n__webpack_require__.d(__webpack_exports__, \"Icon\", function() { return /* reexport */ components_build_module_icon[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"IconButton\", function() { return /* reexport */ deprecated; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalInputControl\", function() { return /* reexport */ input_control; });\n__webpack_require__.d(__webpack_exports__, \"KeyboardShortcuts\", function() { return /* reexport */ keyboard_shortcuts; });\n__webpack_require__.d(__webpack_exports__, \"MenuGroup\", function() { return /* reexport */ menu_group; });\n__webpack_require__.d(__webpack_exports__, \"MenuItem\", function() { return /* reexport */ menu_item; });\n__webpack_require__.d(__webpack_exports__, \"MenuItemsChoice\", function() { return /* reexport */ MenuItemsChoice; });\n__webpack_require__.d(__webpack_exports__, \"Modal\", function() { return /* reexport */ modal; });\n__webpack_require__.d(__webpack_exports__, \"ScrollLock\", function() { return /* reexport */ scroll_lock[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"NavigableMenu\", function() { return /* reexport */ menu; });\n__webpack_require__.d(__webpack_exports__, \"TabbableContainer\", function() { return /* reexport */ tabbable; });\n__webpack_require__.d(__webpack_exports__, \"Notice\", function() { return /* reexport */ build_module_notice; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalNumberControl\", function() { return /* reexport */ number_control; });\n__webpack_require__.d(__webpack_exports__, \"NoticeList\", function() { return /* reexport */ list; });\n__webpack_require__.d(__webpack_exports__, \"Panel\", function() { return /* reexport */ panel; });\n__webpack_require__.d(__webpack_exports__, \"PanelBody\", function() { return /* reexport */ panel_body; });\n__webpack_require__.d(__webpack_exports__, \"PanelHeader\", function() { return /* reexport */ panel_header; });\n__webpack_require__.d(__webpack_exports__, \"PanelRow\", function() { return /* reexport */ row; });\n__webpack_require__.d(__webpack_exports__, \"Placeholder\", function() { return /* reexport */ placeholder; });\n__webpack_require__.d(__webpack_exports__, \"Popover\", function() { return /* reexport */ popover[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"QueryControls\", function() { return /* reexport */ QueryControls; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalRadio\", function() { return /* reexport */ build_module_radio; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalRadioGroup\", function() { return /* reexport */ radio_group; });\n__webpack_require__.d(__webpack_exports__, \"RadioControl\", function() { return /* reexport */ RadioControl; });\n__webpack_require__.d(__webpack_exports__, \"RangeControl\", function() { return /* reexport */ range_control; });\n__webpack_require__.d(__webpack_exports__, \"ResizableBox\", function() { return /* reexport */ resizable_box; });\n__webpack_require__.d(__webpack_exports__, \"ResponsiveWrapper\", function() { return /* reexport */ responsive_wrapper; });\n__webpack_require__.d(__webpack_exports__, \"SandBox\", function() { return /* reexport */ sandbox; });\n__webpack_require__.d(__webpack_exports__, \"SelectControl\", function() { return /* reexport */ SelectControl; });\n__webpack_require__.d(__webpack_exports__, \"Snackbar\", function() { return /* reexport */ snackbar[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"SnackbarList\", function() { return /* reexport */ snackbar_list; });\n__webpack_require__.d(__webpack_exports__, \"Spinner\", function() { return /* reexport */ Spinner; });\n__webpack_require__.d(__webpack_exports__, \"TabPanel\", function() { return /* reexport */ TabPanel; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalText\", function() { return /* reexport */ build_module_text; });\n__webpack_require__.d(__webpack_exports__, \"TextControl\", function() { return /* reexport */ TextControl; });\n__webpack_require__.d(__webpack_exports__, \"TextareaControl\", function() { return /* reexport */ TextareaControl; });\n__webpack_require__.d(__webpack_exports__, \"TextHighlight\", function() { return /* reexport */ text_highlight; });\n__webpack_require__.d(__webpack_exports__, \"Tip\", function() { return /* reexport */ tip; });\n__webpack_require__.d(__webpack_exports__, \"ToggleControl\", function() { return /* reexport */ ToggleControl; });\n__webpack_require__.d(__webpack_exports__, \"Toolbar\", function() { return /* reexport */ toolbar; });\n__webpack_require__.d(__webpack_exports__, \"ToolbarButton\", function() { return /* reexport */ toolbar_button; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalToolbarContext\", function() { return /* reexport */ toolbar_context[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"ToolbarGroup\", function() { return /* reexport */ toolbar_group; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalToolbarItem\", function() { return /* reexport */ toolbar_item[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"Tooltip\", function() { return /* reexport */ build_module_tooltip[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalTreeGrid\", function() { return /* reexport */ TreeGrid; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalTreeGridRow\", function() { return /* reexport */ tree_grid_row; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalTreeGridCell\", function() { return /* reexport */ tree_grid_cell; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalTreeGridItem\", function() { return /* reexport */ tree_grid_item; });\n__webpack_require__.d(__webpack_exports__, \"TreeSelect\", function() { return /* reexport */ TreeSelect; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUnitControl\", function() { return /* reexport */ unit_control; });\n__webpack_require__.d(__webpack_exports__, \"VisuallyHidden\", function() { return /* reexport */ visually_hidden; });\n__webpack_require__.d(__webpack_exports__, \"IsolatedEventContainer\", function() { return /* reexport */ isolated_event_container[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"createSlotFill\", function() { return /* reexport */ slot_fill[\"c\" /* createSlotFill */]; });\n__webpack_require__.d(__webpack_exports__, \"Slot\", function() { return /* reexport */ slot_fill[\"b\" /* Slot */]; });\n__webpack_require__.d(__webpack_exports__, \"Fill\", function() { return /* reexport */ slot_fill[\"a\" /* Fill */]; });\n__webpack_require__.d(__webpack_exports__, \"SlotFillProvider\", function() { return /* reexport */ slot_fill_context[\"b\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseSlot\", function() { return /* reexport */ use_slot[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"navigateRegions\", function() { return /* reexport */ navigate_regions; });\n__webpack_require__.d(__webpack_exports__, \"withConstrainedTabbing\", function() { return /* reexport */ with_constrained_tabbing[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"withFallbackStyles\", function() { return /* reexport */ with_fallback_styles; });\n__webpack_require__.d(__webpack_exports__, \"withFilters\", function() { return /* reexport */ withFilters; });\n__webpack_require__.d(__webpack_exports__, \"withFocusOutside\", function() { return /* reexport */ with_focus_outside[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"withFocusReturn\", function() { return /* reexport */ with_focus_return[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"FocusReturnProvider\", function() { return /* reexport */ with_focus_return_context[\"b\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"withNotices\", function() { return /* reexport */ with_notices; });\n__webpack_require__.d(__webpack_exports__, \"withSpokenMessages\", function() { return /* reexport */ with_spoken_messages; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/CompositeState-3a25dcee.js\nvar CompositeState_3a25dcee = __webpack_require__(53);\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/_rollupPluginBabelHelpers-1f0bf8c2.js\nvar _rollupPluginBabelHelpers_1f0bf8c2 = __webpack_require__(25);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/createComponent.js + 1 modules\nvar createComponent = __webpack_require__(52);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/createHook.js + 4 modules\nvar createHook = __webpack_require__(51);\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/Box/Box.js\nvar Box = __webpack_require__(71);\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\nvar external_this_React_default = /*#__PURE__*/__webpack_require__.n(external_this_React_);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useForkRef.js\nvar useForkRef = __webpack_require__(67);\n\n// EXTERNAL MODULE: ./node_modules/reakit-warning/es/index.js + 2 modules\nvar es = __webpack_require__(94);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useLiveRef.js\nvar useLiveRef = __webpack_require__(54);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/isSelfTarget.js\nvar isSelfTarget = __webpack_require__(59);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getActiveElement.js\nvar getActiveElement = __webpack_require__(61);\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/Tabbable/Tabbable.js\nvar Tabbable = __webpack_require__(87);\n\n// EXTERNAL MODULE: ./node_modules/reakit-system/es/useCreateElement.js\nvar useCreateElement = __webpack_require__(90);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/createOnKeyDown.js\nvar createOnKeyDown = __webpack_require__(95);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/getDocument.js\nvar getDocument = __webpack_require__(57);\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/createEvent.js\n\n\n/**\n * Creates an `Event` in a way that also works on IE 11.\n *\n * @example\n * import { createEvent } from \"reakit-utils\";\n *\n * const el = document.getElementById(\"id\");\n * el.dispatchEvent(createEvent(el, \"blur\", { bubbles: false }));\n */\n\nfunction createEvent(element, type, eventInit) {\n  var _eventInit, _eventInit2;\n\n  if (eventInit === void 0) {\n    eventInit = {};\n  }\n\n  if (typeof Event === \"function\") {\n    return new Event(type, eventInit);\n  } // IE 11 doesn't support Event constructors\n\n\n  var event = Object(getDocument[\"a\" /* getDocument */])(element).createEvent(\"Event\");\n  event.initEvent(type, (_eventInit = eventInit) === null || _eventInit === void 0 ? void 0 : _eventInit.bubbles, (_eventInit2 = eventInit) === null || _eventInit2 === void 0 ? void 0 : _eventInit2.cancelable);\n  return event;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireEvent.js\n\n\n\n/**\n * Creates and dispatches `Event` in a way that also works on IE 11.\n *\n * @example\n * import { fireEvent } from \"reakit-utils\";\n *\n * fireEvent(document.getElementById(\"id\"), \"blur\", {\n *   bubbles: true,\n *   cancelable: true,\n * });\n */\n\nfunction fireEvent(element, type, eventInit) {\n  return element.dispatchEvent(createEvent(element, type, eventInit));\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/getDefaultView.js\n\n\n/**\n * Returns `element.ownerDocument.defaultView || window`.\n */\n\nfunction getDefaultView(element) {\n  return Object(getDocument[\"a\" /* getDocument */])(element).defaultView || window;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/createKeyboardEvent.js\n\n\n\n/**\n * Creates a `KeyboardEvent` in a way that also works on IE 11.\n *\n * @example\n * import { createKeyboardEvent } from \"reakit-utils\";\n *\n * const el = document.getElementById(\"id\");\n * el.dispatchEvent(createKeyboardEvent(el, \"keydown\", { key: \"ArrowDown\" }));\n */\n\nfunction createKeyboardEvent(element, type, eventInit) {\n  if (eventInit === void 0) {\n    eventInit = {};\n  }\n\n  if (typeof KeyboardEvent === \"function\") {\n    return new KeyboardEvent(type, eventInit);\n  } // IE 11 doesn't support Event constructors\n\n\n  var event = Object(getDocument[\"a\" /* getDocument */])(element).createEvent(\"KeyboardEvent\");\n  event.initKeyboardEvent(type, eventInit.bubbles, eventInit.cancelable, getDefaultView(element), eventInit.key, eventInit.location, eventInit.ctrlKey, eventInit.altKey, eventInit.shiftKey, eventInit.metaKey);\n  return event;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit-utils/es/fireKeyboardEvent.js\n\n\n\n\n/**\n * Creates and dispatches `KeyboardEvent` in a way that also works on IE 11.\n *\n * @example\n * import { fireKeyboardEvent } from \"reakit-utils\";\n *\n * fireKeyboardEvent(document.getElementById(\"id\"), \"keydown\", {\n *   key: \"ArrowDown\",\n *   shiftKey: true,\n * });\n */\n\nfunction fireKeyboardEvent(element, type, eventInit) {\n  return element.dispatchEvent(createKeyboardEvent(element, type, eventInit));\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/Composite.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar isIE11 = typeof window !== \"undefined\" && \"msCrypto\" in window;\nfunction getNextActiveElementOnBlur(event) {\n  // IE 11 doesn't support event.relatedTarget on blur.\n  // document.activeElement points the the next active element.\n  // On modern browsers, document.activeElement points to the current target.\n  if (isIE11) {\n    var activeElement = Object(getActiveElement[\"a\" /* getActiveElement */])(event.target);\n    return activeElement;\n  }\n\n  return event.relatedTarget;\n}\n\nvar validCompositeRoles = [\"combobox\", \"grid\", \"tablist\", \"listbox\", \"menu\", \"menubar\", \"toolbar\", \"radiogroup\", \"tree\", \"treegrid\"];\nvar isIE11$1 = typeof window !== \"undefined\" && \"msCrypto\" in window;\n\nfunction canProxyKeyboardEvent(event) {\n  if (!Object(isSelfTarget[\"a\" /* isSelfTarget */])(event)) return false;\n  if (event.metaKey) return false;\n  if (event.key === \"Tab\") return false;\n  return true;\n}\n\nfunction useKeyboardEventProxy(virtual, currentItem, htmlEventHandler) {\n  var eventHandlerRef = Object(useLiveRef[\"a\" /* useLiveRef */])(htmlEventHandler);\n  return Object(external_this_React_[\"useCallback\"])(function (event) {\n    var _eventHandlerRef$curr;\n\n    if (virtual && canProxyKeyboardEvent(event)) {\n      var currentElement = currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current;\n\n      if (currentElement) {\n        fireKeyboardEvent(currentElement, event.type, event); // The event will be triggered on the composite item and then\n        // propagated up to this composite element again, so we can pretend\n        // that it wasn't called on this component in the first place.\n\n        if (event.currentTarget.contains(currentElement)) {\n          event.stopPropagation();\n          event.preventDefault();\n          return;\n        }\n      }\n    }\n\n    (_eventHandlerRef$curr = eventHandlerRef.current) === null || _eventHandlerRef$curr === void 0 ? void 0 : _eventHandlerRef$curr.call(eventHandlerRef, event);\n  }, [virtual, currentItem]);\n} // istanbul ignore next\n\n\nfunction useActiveElementRef(elementRef) {\n  var activeElementRef = Object(external_this_React_[\"useRef\"])(null);\n  Object(external_this_React_[\"useEffect\"])(function () {\n    var document = Object(getDocument[\"a\" /* getDocument */])(elementRef.current);\n\n    var onFocus = function onFocus(event) {\n      var target = event.target;\n      activeElementRef.current = target;\n    };\n\n    document.addEventListener(\"focus\", onFocus, true);\n    return function () {\n      document.removeEventListener(\"focus\", onFocus, true);\n    };\n  }, []);\n  return activeElementRef;\n}\n\nfunction findFirstEnabledItemInTheLastRow(items) {\n  return Object(CompositeState_3a25dcee[\"a\"])(Object(CompositeState_3a25dcee[\"b\"])(Object(CompositeState_3a25dcee[\"f\" /* r */])(Object(CompositeState_3a25dcee[\"c\"])(items))));\n}\n\nfunction isItem(items, element) {\n  return items === null || items === void 0 ? void 0 : items.some(function (item) {\n    return !!element && item.ref.current === element;\n  });\n}\n\nvar useComposite = Object(createHook[\"a\" /* createHook */])({\n  name: \"Composite\",\n  compose: [Tabbable[\"a\" /* useTabbable */]],\n  useState: CompositeState_3a25dcee[\"g\" /* u */],\n  useOptions: function useOptions(options) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({}, options), {}, {\n      currentId: Object(CompositeState_3a25dcee[\"e\" /* g */])(options)\n    });\n  },\n  useProps: function useProps(options, _ref) {\n    var htmlRef = _ref.ref,\n        htmlOnFocus = _ref.onFocus,\n        htmlOnBlur = _ref.onBlur,\n        htmlOnKeyDown = _ref.onKeyDown,\n        htmlOnKeyUp = _ref.onKeyUp,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(_ref, [\"ref\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"onKeyUp\"]);\n\n    var ref = Object(external_this_React_[\"useRef\"])(null);\n    var currentItem = Object(CompositeState_3a25dcee[\"d\" /* f */])(options.items, options.currentId);\n    var previousItem = Object(external_this_React_[\"useRef\"])(undefined);\n    var onFocusRef = Object(useLiveRef[\"a\" /* useLiveRef */])(htmlOnFocus);\n    var onBlurRef = Object(useLiveRef[\"a\" /* useLiveRef */])(htmlOnBlur); // IE 11 doesn't support event.relatedTarget, so we use the active element\n    // ref instead.\n\n    var activeElementRef = isIE11$1 ? useActiveElementRef(ref) : undefined;\n    Object(external_this_React_[\"useEffect\"])(function () {\n      var element = ref.current;\n\n      if (!element) {\n         false ? undefined : void 0;\n        return;\n      }\n\n      if (options.unstable_moves && !currentItem) {\n        // If composite.move(null) has been called, the composite container\n        // will receive focus.\n        element.focus();\n      }\n    }, [options.unstable_moves, currentItem]);\n    var onKeyDown = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyDown);\n    var onKeyUp = useKeyboardEventProxy(options.unstable_virtual, currentItem, htmlOnKeyUp);\n    var onFocus = Object(external_this_React_[\"useCallback\"])(function (event) {\n      var _onFocusRef$current2;\n\n      if (options.unstable_virtual) {\n        // IE11 doesn't support event.relatedTarget, so we use the active\n        // element ref instead.\n        var previousActiveElement = (activeElementRef === null || activeElementRef === void 0 ? void 0 : activeElementRef.current) || event.relatedTarget;\n        var previousActiveElementWasItem = isItem(options.items, previousActiveElement);\n\n        if (Object(isSelfTarget[\"a\" /* isSelfTarget */])(event) && !previousActiveElementWasItem) {\n          var _onFocusRef$current, _currentItem$ref$curr;\n\n          // This means that the composite element has been focused while the\n          // composite item has not. For example, by clicking on the\n          // composite element without touching any item, or by tabbing into\n          // the composite element. In this case, we want to trigger focus on\n          // the item, just like it would happen with roving tabindex.\n          // When it receives focus, the composite item will put focus back\n          // on the composite element, in which case hasItemWithFocus will be\n          // true.\n          (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);\n          currentItem === null || currentItem === void 0 ? void 0 : (_currentItem$ref$curr = currentItem.ref.current) === null || _currentItem$ref$curr === void 0 ? void 0 : _currentItem$ref$curr.focus();\n          return;\n        }\n\n        if (previousActiveElementWasItem) {\n          // Composite has been focused as a result of an item receiving\n          // focus. The composite item will move focus back to the composite\n          // container. In this case, we don't want to propagate this\n          // additional event nor call the onFocus handler passed to\n          // <Composite onFocus={...} /> (htmlOnFocus). Unless users add DOM\n          // event handlers to the composite element directly, this will be\n          // like this event has never existed.\n          event.stopPropagation();\n          return;\n        }\n      } else if (Object(isSelfTarget[\"a\" /* isSelfTarget */])(event)) {\n        var _options$setCurrentId;\n\n        // When the roving tabindex composite gets intentionally focused (for\n        // example, by clicking directly on it, and not on an item), we make\n        // sure to set the current id to null (which means the composite\n        // itself is focused).\n        (_options$setCurrentId = options.setCurrentId) === null || _options$setCurrentId === void 0 ? void 0 : _options$setCurrentId.call(options, null);\n      }\n\n      (_onFocusRef$current2 = onFocusRef.current) === null || _onFocusRef$current2 === void 0 ? void 0 : _onFocusRef$current2.call(onFocusRef, event);\n    }, [options.unstable_virtual, options.items, currentItem, options.setCurrentId]);\n    var onBlur = Object(external_this_React_[\"useCallback\"])(function (event) {\n      var _onBlurRef$current;\n\n      // When virtual is set to true, we move focus from the composite\n      // container (this component) to the composite item that is being\n      // selected. Then we move focus back to the composite container. This\n      // is so we can provide the same API as the roving tabindex method,\n      // which means people can attach onFocus/onBlur handlers on the\n      // CompositeItem component regardless of whether it's virtual or not.\n      // This sequence of blurring and focusing items and composite may be\n      // confusing, so we ignore intermediate focus and blurs by stopping its\n      // propagation and not calling the passed onBlur handler (htmlOnBlur).\n      if (options.unstable_virtual) {\n        var targetIsItem = isItem(options.items, event.target);\n        var nextActiveElement = getNextActiveElementOnBlur(event);\n        var nextActiveElementIsItem = isItem(options.items, nextActiveElement);\n\n        if (Object(isSelfTarget[\"a\" /* isSelfTarget */])(event) && nextActiveElementIsItem) {\n          var _previousItem$current;\n\n          // This is an intermediate blur event: blurring the composite\n          // container to focus an item (nextActiveElement). We ignore this\n          // event.\n          if ((_previousItem$current = previousItem.current) === null || _previousItem$current === void 0 ? void 0 : _previousItem$current.ref.current) {\n            // If there's a previous active item we fire a blur event on it\n            // so it will work just like if it had DOM focus before (like when\n            // using roving tabindex).\n            fireEvent(previousItem.current.ref.current, \"blur\", event);\n          }\n\n          previousItem.current = currentItem;\n          event.stopPropagation();\n          return;\n        }\n\n        if (!targetIsItem) {\n          // If target is another thing (probably something outside of the\n          // composite container), we don't ignore the event, but we should\n          // reset the previousItem reference.\n          if (currentItem === null || currentItem === void 0 ? void 0 : currentItem.ref.current) {\n            fireEvent(currentItem.ref.current, \"blur\", event);\n          }\n\n          previousItem.current = undefined;\n        } else {\n          previousItem.current = currentItem;\n        }\n      }\n\n      (_onBlurRef$current = onBlurRef.current) === null || _onBlurRef$current === void 0 ? void 0 : _onBlurRef$current.call(onBlurRef, event);\n    }, [options.unstable_virtual, options.items, currentItem]);\n    var onMove = Object(external_this_React_[\"useMemo\"])(function () {\n      return Object(createOnKeyDown[\"a\" /* createOnKeyDown */])({\n        onKeyDown: onKeyDown,\n        stopPropagation: true,\n        shouldKeyDown: function shouldKeyDown(event) {\n          return Object(isSelfTarget[\"a\" /* isSelfTarget */])(event) && options.currentId === null;\n        },\n        keyMap: function keyMap() {\n          var _options$groups;\n\n          var isVertical = options.orientation !== \"horizontal\";\n          var isHorizontal = options.orientation !== \"vertical\";\n          var isGrid = !!((_options$groups = options.groups) === null || _options$groups === void 0 ? void 0 : _options$groups.length);\n\n          var up = function up() {\n            if (isGrid) {\n              var item = findFirstEnabledItemInTheLastRow(options.items);\n\n              if (item === null || item === void 0 ? void 0 : item.id) {\n                var _options$move;\n\n                (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, item.id);\n              }\n            } else {\n              var _options$last;\n\n              (_options$last = options.last) === null || _options$last === void 0 ? void 0 : _options$last.call(options);\n            }\n          };\n\n          var first = options.first && function () {\n            return options.first();\n          };\n\n          var last = options.last && function () {\n            return options.last();\n          };\n\n          return {\n            ArrowUp: (isGrid || isVertical) && up,\n            ArrowRight: (isGrid || isHorizontal) && first,\n            ArrowDown: (isGrid || isVertical) && first,\n            ArrowLeft: (isGrid || isHorizontal) && last,\n            Home: first,\n            End: last,\n            PageUp: first,\n            PageDown: last\n          };\n        }\n      });\n    }, [onKeyDown, options.currentId, options.orientation, options.groups, options.items, options.move, options.last, options.first]);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      ref: Object(useForkRef[\"a\" /* useForkRef */])(ref, htmlRef),\n      id: options.baseId,\n      onFocus: onFocus,\n      onBlur: onBlur,\n      onKeyDown: onMove,\n      onKeyUp: onKeyUp,\n      \"aria-activedescendant\": options.unstable_virtual ? (currentItem === null || currentItem === void 0 ? void 0 : currentItem.id) || undefined : undefined\n    }, htmlProps);\n  },\n  useComposeProps: function useComposeProps(options, htmlProps) {\n    htmlProps = Object(Box[\"a\" /* useBox */])(options, htmlProps, true);\n    var tabbableHTMLProps = Object(Tabbable[\"a\" /* useTabbable */])(options, htmlProps, true);\n\n    if (options.unstable_virtual || options.currentId === null) {\n      // Composite will only be tabbable by default if the focus is managed\n      // using aria-activedescendant, which requires DOM focus on the container\n      // element (the composite)\n      return tabbableHTMLProps;\n    }\n\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({}, htmlProps), {}, {\n      ref: tabbableHTMLProps.ref\n    });\n  }\n});\nvar Composite = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"div\",\n  useHook: useComposite,\n  useCreateElement: function useCreateElement$1(type, props, children) {\n     false ? undefined : void 0;\n     false ? undefined : void 0;\n    return Object(useCreateElement[\"a\" /* useCreateElement */])(type, props, children);\n  }\n});\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useIsomorphicEffect.js\nvar useIsomorphicEffect = __webpack_require__(60);\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Group/Group.js\n\n\n\n\n\n\nvar useGroup = Object(createHook[\"a\" /* createHook */])({\n  name: \"Group\",\n  compose: Box[\"a\" /* useBox */],\n  useProps: function useProps(_, htmlProps) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      role: \"group\"\n    }, htmlProps);\n  }\n});\nvar Group = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"div\",\n  useHook: useGroup\n});\n\n\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/Id/Id.js\nvar Id = __webpack_require__(103);\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Composite/CompositeGroup.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar useCompositeGroup = Object(createHook[\"a\" /* createHook */])({\n  name: \"CompositeGroup\",\n  compose: [useGroup, Id[\"a\" /* unstable_useId */]],\n  useState: CompositeState_3a25dcee[\"g\" /* u */],\n  propsAreEqual: function propsAreEqual(prev, next) {\n    if (!next.id || prev.id !== next.id) {\n      return useGroup.unstable_propsAreEqual(prev, next);\n    }\n\n    var prevCurrentId = prev.currentId,\n        prevMoves = prev.unstable_moves,\n        prevProps = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(prev, [\"currentId\", \"unstable_moves\"]);\n\n    var nextCurrentId = next.currentId,\n        nextMoves = next.unstable_moves,\n        nextProps = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(next, [\"currentId\", \"unstable_moves\"]);\n\n    if (prev.items && next.items) {\n      var prevCurrentItem = Object(CompositeState_3a25dcee[\"d\" /* f */])(prev.items, prevCurrentId);\n      var nextCurrentItem = Object(CompositeState_3a25dcee[\"d\" /* f */])(next.items, nextCurrentId);\n      var prevGroupId = prevCurrentItem === null || prevCurrentItem === void 0 ? void 0 : prevCurrentItem.groupId;\n      var nextGroupId = nextCurrentItem === null || nextCurrentItem === void 0 ? void 0 : nextCurrentItem.groupId;\n\n      if (next.id === nextGroupId || next.id === prevGroupId) {\n        return false;\n      }\n    }\n\n    return useGroup.unstable_propsAreEqual(prevProps, nextProps);\n  },\n  useProps: function useProps(options, _ref) {\n    var htmlRef = _ref.ref,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(_ref, [\"ref\"]);\n\n    var ref = Object(external_this_React_[\"useRef\"])(null);\n    var id = options.id; // We need this to be called before CompositeItems' register\n\n    Object(useIsomorphicEffect[\"a\" /* useIsomorphicEffect */])(function () {\n      var _options$registerGrou;\n\n      if (!id) return undefined;\n      (_options$registerGrou = options.registerGroup) === null || _options$registerGrou === void 0 ? void 0 : _options$registerGrou.call(options, {\n        id: id,\n        ref: ref\n      });\n      return function () {\n        var _options$unregisterGr;\n\n        (_options$unregisterGr = options.unregisterGroup) === null || _options$unregisterGr === void 0 ? void 0 : _options$unregisterGr.call(options, id);\n      };\n    }, [id, options.registerGroup, options.unregisterGroup]);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      ref: Object(useForkRef[\"a\" /* useForkRef */])(ref, htmlRef)\n    }, htmlProps);\n  }\n});\nvar CompositeGroup = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"div\",\n  useHook: useCompositeGroup\n});\n\n\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/Composite/CompositeItem.js\nvar CompositeItem = __webpack_require__(126);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/tooltip/index.js\nvar build_module_tooltip = __webpack_require__(76);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/utils.js\n\n\n\n/**\n * Utility Functions\n */\n\n/**\n * renderAsRenderProps is used to wrap a component and convert\n * the passed property \"as\" either a string or component, to the\n * rendered tag if a string, or component.\n *\n * See VisuallyHidden hidden for example.\n *\n * @param {string|WPComponent} as A tag or component to render.\n * @return {WPComponent} The rendered component.\n */\nfunction renderAsRenderProps(_ref) {\n  var _ref$as = _ref.as,\n      Component = _ref$as === void 0 ? 'div' : _ref$as,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"as\"]);\n\n  if (typeof props.children === 'function') {\n    return props.children(props);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(Component, props);\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/visually-hidden/index.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * VisuallyHidden component to render text out non-visually\n * for use in devices such as a screen reader.\n *\n * @param {Object}             props             Component props.\n * @param {string|WPComponent} [props.as=\"div\"]  A tag or component to render.\n * @param {string}             [props.className] Class to set on the container.\n */\n\nfunction VisuallyHidden(_ref) {\n  var _ref$as = _ref.as,\n      as = _ref$as === void 0 ? 'div' : _ref$as,\n      className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"as\", \"className\"]);\n\n  return renderAsRenderProps(_objectSpread({\n    as: as,\n    className: classnames_default()('components-visually-hidden', className)\n  }, props));\n}\n\n/* harmony default export */ var visually_hidden = (VisuallyHidden);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/utils.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar GRID = [['top left', 'top center', 'top right'], ['center left', 'center center', 'center right'], ['bottom left', 'bottom center', 'bottom right']]; // Stored as map as i18n __() only accepts strings (not variables)\n\nvar ALIGNMENT_LABEL = {\n  'top left': Object(external_this_wp_i18n_[\"__\"])('Top Left'),\n  'top center': Object(external_this_wp_i18n_[\"__\"])('Top Center'),\n  'top right': Object(external_this_wp_i18n_[\"__\"])('Top Right'),\n  'center left': Object(external_this_wp_i18n_[\"__\"])('Center Left'),\n  'center center': Object(external_this_wp_i18n_[\"__\"])('Center Center'),\n  'center right': Object(external_this_wp_i18n_[\"__\"])('Center Right'),\n  'bottom left': Object(external_this_wp_i18n_[\"__\"])('Bottom Left'),\n  'bottom center': Object(external_this_wp_i18n_[\"__\"])('Bottom Center'),\n  'bottom right': Object(external_this_wp_i18n_[\"__\"])('Bottom Right')\n}; // Transforms GRID into a flat Array of values\n\nvar ALIGNMENTS = Object(external_this_lodash_[\"flattenDeep\"])(GRID);\n/**\n * Parses and transforms an incoming value to better match the alignment values\n *\n * @param {string} value An alignment value to parse.\n *\n * @return {string} The parsed value.\n */\n\nfunction transformValue(value) {\n  var nextValue = value === 'center' ? 'center center' : value;\n  return nextValue.replace('-', ' ');\n}\n/**\n * Creates an item ID based on a prefix ID and an alignment value.\n *\n * @param {string} prefixId An ID to prefix.\n * @param {string} value An alignment value.\n *\n * @return {string} The item id.\n */\n\nfunction getItemId(prefixId, value) {\n  var valueId = transformValue(value).replace(' ', '-');\n  return \"\".concat(prefixId, \"-\").concat(valueId);\n}\n/**\n * Retrieves the alignment index from a value.\n *\n * @param {string} alignment Value to check.\n *\n * @return {number} The index of a matching alignment.\n */\n\nfunction getAlignmentIndex() {\n  var alignment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'center';\n  var item = transformValue(alignment).replace('-', ' ');\n  var index = ALIGNMENTS.indexOf(item);\n  return index > -1 ? index : undefined;\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js\nvar helpers_defineProperty = __webpack_require__(264);\nvar defineProperty_default = /*#__PURE__*/__webpack_require__.n(helpers_defineProperty);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/memoize/dist/memoize.browser.esm.js\nfunction memoize(fn) {\n  var cache = {};\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\n/* harmony default export */ var memoize_browser_esm = (memoize);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js\n\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar is_prop_valid_browser_esm_index = memoize_browser_esm(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\n/* harmony default export */ var is_prop_valid_browser_esm = (is_prop_valid_browser_esm_index);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inheritsLoose.js\nvar inheritsLoose = __webpack_require__(139);\nvar inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/sheet/dist/sheet.browser.esm.js\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    // $FlowFixMe\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      // $FlowFixMe\n      return document.styleSheets[i];\n    }\n  }\n}\n\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n\n  tag.appendChild(document.createTextNode(''));\n  return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n  function StyleSheet(options) {\n    this.isSpeedy = options.speedy === undefined ? \"production\" === 'production' : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.before = null;\n  }\n\n  var _proto = StyleSheet.prototype;\n\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      var _tag = createStyleElement(this);\n\n      var before;\n\n      if (this.tags.length === 0) {\n        before = this.before;\n      } else {\n        before = this.tags[this.tags.length - 1].nextSibling;\n      }\n\n      this.container.insertBefore(_tag, before);\n      this.tags.push(_tag);\n    }\n\n    var tag = this.tags[this.tags.length - 1];\n\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n\n      try {\n        // this is a really hot path\n        // we check the second character first because having \"i\"\n        // as the second character will happen less often than\n        // having \"@\" as the first character\n        var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n\n        sheet.insertRule(rule, // we need to insert @import rules before anything else\n        // otherwise there will be an error\n        // technically this means that the @import rules will\n        // _usually_(not always since there could be multiple style tags)\n        // be the first ones in prod and generally later in dev\n        // this shouldn't really matter in the real world though\n        // @import is generally only used for font faces from google fonts and etc.\n        // so while this could be technically correct then it would be slower and larger\n        // for a tiny bit of correctness that won't matter in the real world\n        isImportRule ? 0 : sheet.cssRules.length);\n      } catch (e) {\n        if (false) {}\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n\n    this.ctr++;\n  };\n\n  _proto.flush = function flush() {\n    // $FlowFixMe\n    this.tags.forEach(function (tag) {\n      return tag.parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n  };\n\n  return StyleSheet;\n}();\n\n\n\n// CONCATENATED MODULE: ./node_modules/@emotion/stylis/dist/stylis.browser.esm.js\nfunction stylis_min (W) {\n  function M(d, c, e, h, a) {\n    for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n      g = e.charCodeAt(l);\n      l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n      if (0 === b + n + v + m) {\n        if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n          switch (g) {\n            case 32:\n            case 9:\n            case 59:\n            case 13:\n            case 10:\n              break;\n\n            default:\n              f += e.charAt(l);\n          }\n\n          g = 59;\n        }\n\n        switch (g) {\n          case 123:\n            f = f.trim();\n            q = f.charCodeAt(0);\n            k = 1;\n\n            for (t = ++l; l < B;) {\n              switch (g = e.charCodeAt(l)) {\n                case 123:\n                  k++;\n                  break;\n\n                case 125:\n                  k--;\n                  break;\n\n                case 47:\n                  switch (g = e.charCodeAt(l + 1)) {\n                    case 42:\n                    case 47:\n                      a: {\n                        for (u = l + 1; u < J; ++u) {\n                          switch (e.charCodeAt(u)) {\n                            case 47:\n                              if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n                                l = u + 1;\n                                break a;\n                              }\n\n                              break;\n\n                            case 10:\n                              if (47 === g) {\n                                l = u + 1;\n                                break a;\n                              }\n\n                          }\n                        }\n\n                        l = u;\n                      }\n\n                  }\n\n                  break;\n\n                case 91:\n                  g++;\n\n                case 40:\n                  g++;\n\n                case 34:\n                case 39:\n                  for (; l++ < J && e.charCodeAt(l) !== g;) {\n                  }\n\n              }\n\n              if (0 === k) break;\n              l++;\n            }\n\n            k = e.substring(t, l);\n            0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n            switch (q) {\n              case 64:\n                0 < r && (f = f.replace(N, ''));\n                g = f.charCodeAt(1);\n\n                switch (g) {\n                  case 100:\n                  case 109:\n                  case 115:\n                  case 45:\n                    r = c;\n                    break;\n\n                  default:\n                    r = O;\n                }\n\n                k = M(c, r, k, g, a + 1);\n                t = k.length;\n                0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n                if (0 < t) switch (g) {\n                  case 115:\n                    f = f.replace(da, ea);\n\n                  case 100:\n                  case 109:\n                  case 45:\n                    k = f + '{' + k + '}';\n                    break;\n\n                  case 107:\n                    f = f.replace(fa, '$1 $2');\n                    k = f + '{' + k + '}';\n                    k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n                    break;\n\n                  default:\n                    k = f + k, 112 === h && (k = (p += k, ''));\n                } else k = '';\n                break;\n\n              default:\n                k = M(c, X(c, f, I), k, h, a + 1);\n            }\n\n            F += k;\n            k = I = r = u = q = 0;\n            f = '';\n            g = e.charCodeAt(++l);\n            break;\n\n          case 125:\n          case 59:\n            f = (0 < r ? f.replace(N, '') : f).trim();\n            if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n              case 0:\n                break;\n\n              case 64:\n                if (105 === g || 99 === g) {\n                  G += f + e.charAt(l);\n                  break;\n                }\n\n              default:\n                58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n            }\n            I = r = u = q = 0;\n            f = '';\n            g = e.charCodeAt(++l);\n        }\n      }\n\n      switch (g) {\n        case 13:\n        case 10:\n          47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n          0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n          z = 1;\n          D++;\n          break;\n\n        case 59:\n        case 125:\n          if (0 === b + n + v + m) {\n            z++;\n            break;\n          }\n\n        default:\n          z++;\n          y = e.charAt(l);\n\n          switch (g) {\n            case 9:\n            case 32:\n              if (0 === n + m + b) switch (x) {\n                case 44:\n                case 58:\n                case 9:\n                case 32:\n                  y = '';\n                  break;\n\n                default:\n                  32 !== g && (y = ' ');\n              }\n              break;\n\n            case 0:\n              y = '\\\\0';\n              break;\n\n            case 12:\n              y = '\\\\f';\n              break;\n\n            case 11:\n              y = '\\\\v';\n              break;\n\n            case 38:\n              0 === n + b + m && (r = I = 1, y = '\\f' + y);\n              break;\n\n            case 108:\n              if (0 === n + b + m + E && 0 < u) switch (l - u) {\n                case 2:\n                  112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n                case 8:\n                  111 === K && (E = K);\n              }\n              break;\n\n            case 58:\n              0 === n + b + m && (u = l);\n              break;\n\n            case 44:\n              0 === b + v + n + m && (r = 1, y += '\\r');\n              break;\n\n            case 34:\n            case 39:\n              0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n              break;\n\n            case 91:\n              0 === n + b + v && m++;\n              break;\n\n            case 93:\n              0 === n + b + v && m--;\n              break;\n\n            case 41:\n              0 === n + b + m && v--;\n              break;\n\n            case 40:\n              if (0 === n + b + m) {\n                if (0 === q) switch (2 * x + 3 * K) {\n                  case 533:\n                    break;\n\n                  default:\n                    q = 1;\n                }\n                v++;\n              }\n\n              break;\n\n            case 64:\n              0 === b + v + n + m + u + k && (k = 1);\n              break;\n\n            case 42:\n            case 47:\n              if (!(0 < n + m + v)) switch (b) {\n                case 0:\n                  switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n                    case 235:\n                      b = 47;\n                      break;\n\n                    case 220:\n                      t = l, b = 42;\n                  }\n\n                  break;\n\n                case 42:\n                  47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n              }\n          }\n\n          0 === b && (f += y);\n      }\n\n      K = x;\n      x = g;\n      l++;\n    }\n\n    t = p.length;\n\n    if (0 < t) {\n      r = c;\n      if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n      p = r.join(',') + '{' + p + '}';\n\n      if (0 !== w * E) {\n        2 !== w || L(p, 2) || (E = 0);\n\n        switch (E) {\n          case 111:\n            p = p.replace(ha, ':-moz-$1') + p;\n            break;\n\n          case 112:\n            p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n        }\n\n        E = 0;\n      }\n    }\n\n    return G + p + F;\n  }\n\n  function X(d, c, e) {\n    var h = c.trim().split(ia);\n    c = h;\n    var a = h.length,\n        m = d.length;\n\n    switch (m) {\n      case 0:\n      case 1:\n        var b = 0;\n\n        for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n          c[b] = Z(d, c[b], e).trim();\n        }\n\n        break;\n\n      default:\n        var v = b = 0;\n\n        for (c = []; b < a; ++b) {\n          for (var n = 0; n < m; ++n) {\n            c[v++] = Z(d[n] + ' ', h[b], e).trim();\n          }\n        }\n\n    }\n\n    return c;\n  }\n\n  function Z(d, c, e) {\n    var h = c.charCodeAt(0);\n    33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n    switch (h) {\n      case 38:\n        return c.replace(F, '$1' + d.trim());\n\n      case 58:\n        return d.trim() + c.replace(F, '$1' + d.trim());\n\n      default:\n        if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n    }\n\n    return d + c;\n  }\n\n  function P(d, c, e, h) {\n    var a = d + ';',\n        m = 2 * c + 3 * e + 4 * h;\n\n    if (944 === m) {\n      d = a.indexOf(':', 9) + 1;\n      var b = a.substring(d, a.length - 1).trim();\n      b = a.substring(0, d).trim() + b + ';';\n      return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n    }\n\n    if (0 === w || 2 === w && !L(a, 1)) return a;\n\n    switch (m) {\n      case 1015:\n        return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n      case 951:\n        return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n      case 963:\n        return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n      case 1009:\n        if (100 !== a.charCodeAt(4)) break;\n\n      case 969:\n      case 942:\n        return '-webkit-' + a + a;\n\n      case 978:\n        return '-webkit-' + a + '-moz-' + a + a;\n\n      case 1019:\n      case 983:\n        return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n      case 883:\n        if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n        if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n        break;\n\n      case 932:\n        if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n          case 103:\n            return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n          case 115:\n            return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n          case 98:\n            return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n        }\n        return '-webkit-' + a + '-ms-' + a + a;\n\n      case 964:\n        return '-webkit-' + a + '-ms-flex-' + a + a;\n\n      case 1023:\n        if (99 !== a.charCodeAt(8)) break;\n        b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n        return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n      case 1005:\n        return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n      case 1e3:\n        b = a.substring(13).trim();\n        c = b.indexOf('-') + 1;\n\n        switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n          case 226:\n            b = a.replace(G, 'tb');\n            break;\n\n          case 232:\n            b = a.replace(G, 'tb-rl');\n            break;\n\n          case 220:\n            b = a.replace(G, 'lr');\n            break;\n\n          default:\n            return a;\n        }\n\n        return '-webkit-' + a + '-ms-' + b + a;\n\n      case 1017:\n        if (-1 === a.indexOf('sticky', 9)) break;\n\n      case 975:\n        c = (a = d).length - 10;\n        b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n        switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n          case 203:\n            if (111 > b.charCodeAt(8)) break;\n\n          case 115:\n            a = a.replace(b, '-webkit-' + b) + ';' + a;\n            break;\n\n          case 207:\n          case 102:\n            a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n        }\n\n        return a + ';';\n\n      case 938:\n        if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n          case 105:\n            return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n          case 115:\n            return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n          default:\n            return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n        }\n        break;\n\n      case 973:\n      case 989:\n        if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n      case 931:\n      case 953:\n        if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n        break;\n\n      case 962:\n        if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n    }\n\n    return a;\n  }\n\n  function L(d, c) {\n    var e = d.indexOf(1 === c ? ':' : '{'),\n        h = d.substring(0, 3 !== c ? e : 10);\n    e = d.substring(e + 1, d.length - 1);\n    return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n  }\n\n  function ea(d, c) {\n    var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n    return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n  }\n\n  function H(d, c, e, h, a, m, b, v, n, q) {\n    for (var g = 0, x = c, w; g < A; ++g) {\n      switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n        case void 0:\n        case !1:\n        case !0:\n        case null:\n          break;\n\n        default:\n          x = w;\n      }\n    }\n\n    if (x !== c) return x;\n  }\n\n  function T(d) {\n    switch (d) {\n      case void 0:\n      case null:\n        A = S.length = 0;\n        break;\n\n      default:\n        if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n          T(d[c]);\n        } else Y = !!d | 0;\n    }\n\n    return T;\n  }\n\n  function U(d) {\n    d = d.prefix;\n    void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n    return U;\n  }\n\n  function B(d, c) {\n    var e = d;\n    33 > e.charCodeAt(0) && (e = e.trim());\n    V = e;\n    e = [V];\n\n    if (0 < A) {\n      var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n      void 0 !== h && 'string' === typeof h && (c = h);\n    }\n\n    var a = M(O, e, c, 0, 0);\n    0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n    V = '';\n    E = 0;\n    z = D = 1;\n    return a;\n  }\n\n  var ca = /^\\0+/g,\n      N = /[\\0\\r\\f]/g,\n      aa = /: */g,\n      ka = /zoo|gra/,\n      ma = /([,: ])(transform)/g,\n      ia = /,\\r+?/g,\n      F = /([\\t\\r\\n ])*\\f?&/g,\n      fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n      Q = /::(place)/g,\n      ha = /:(read-only)/g,\n      G = /[svh]\\w+-[tblr]{2}/,\n      da = /\\(\\s*(.*)\\s*\\)/g,\n      oa = /([\\s\\S]*?);/g,\n      ba = /-self|flex-/g,\n      na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n      la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n      ja = /([^-])(image-set\\()/,\n      z = 1,\n      D = 1,\n      E = 0,\n      w = 1,\n      O = [],\n      S = [],\n      A = 0,\n      R = null,\n      Y = 0,\n      V = '';\n  B.use = T;\n  B.set = U;\n  void 0 !== W && U(W);\n  return B;\n}\n\n/* harmony default export */ var stylis_browser_esm = (stylis_min);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.esm.js\nvar weakMemoize = function weakMemoize(func) {\n  // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n  var cache = new WeakMap();\n  return function (arg) {\n    if (cache.has(arg)) {\n      // $FlowFixMe\n      return cache.get(arg);\n    }\n\n    var ret = func(arg);\n    cache.set(arg, ret);\n    return ret;\n  };\n};\n\n/* harmony default export */ var weak_memoize_browser_esm = (weakMemoize);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/cache/dist/cache.browser.esm.js\n\n\n\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n  if (block) {\n    Sheet.current.insert(block + '}');\n  }\n}\n\nvar Sheet = {\n  current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n  switch (context) {\n    // property\n    case 1:\n      {\n        switch (content.charCodeAt(0)) {\n          case 64:\n            {\n              // @import\n              Sheet.current.insert(content + ';');\n              return '';\n            }\n          // charcode for l\n\n          case 108:\n            {\n              // charcode for b\n              // this ignores label\n              if (content.charCodeAt(2) === 98) {\n                return '';\n              }\n            }\n        }\n\n        break;\n      }\n    // selector\n\n    case 2:\n      {\n        if (ns === 0) return content + delimiter;\n        break;\n      }\n    // at-rule\n\n    case 3:\n      {\n        switch (ns) {\n          // @font-face, @page\n          case 102:\n          case 112:\n            {\n              Sheet.current.insert(selectors[0] + content);\n              return '';\n            }\n\n          default:\n            {\n              return content + (at === 0 ? delimiter : '');\n            }\n        }\n      }\n\n    case -2:\n      {\n        content.split(needle).forEach(toSheet);\n      }\n  }\n};\n\nvar cache_browser_esm_createCache = function createCache(options) {\n  if (options === undefined) options = {};\n  var key = options.key || 'css';\n  var stylisOptions;\n\n  if (options.prefix !== undefined) {\n    stylisOptions = {\n      prefix: options.prefix\n    };\n  }\n\n  var stylis = new stylis_browser_esm(stylisOptions);\n\n  if (false) {}\n\n  var inserted = {}; // $FlowFixMe\n\n  var container;\n\n  {\n    container = options.container || document.head;\n    var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n    Array.prototype.forEach.call(nodes, function (node) {\n      var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n      attrib.split(' ').forEach(function (id) {\n        inserted[id] = true;\n      });\n\n      if (node.parentNode !== container) {\n        container.appendChild(node);\n      }\n    });\n  }\n\n  var _insert;\n\n  {\n    stylis.use(options.stylisPlugins)(ruleSheet);\n\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      var name = serialized.name;\n      Sheet.current = sheet;\n\n      if (false) { var map; }\n\n      stylis(selector, serialized.styles);\n\n      if (shouldCache) {\n        cache.inserted[name] = true;\n      }\n    };\n  }\n\n  if (false) { var commentEnd, commentStart; }\n\n  var cache = {\n    key: key,\n    sheet: new StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  return cache;\n};\n\n/* harmony default export */ var cache_browser_esm = (cache_browser_esm_createCache);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/utils/dist/utils.browser.esm.js\nvar isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className]);\n    } else {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n\n  if ( // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false || // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n\n    do {\n      var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\n\n\n// CONCATENATED MODULE: ./node_modules/@emotion/hash/dist/hash.browser.esm.js\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\n/* harmony default export */ var hash_browser_esm = (murmur2);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/unitless/dist/unitless.browser.esm.js\nvar unitlessKeys = {\n  animationIterationCount: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\n/* harmony default export */ var unitless_browser_esm = (unitlessKeys);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/serialize/dist/serialize.browser.esm.js\n\n\n\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize_browser_esm(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar serialize_browser_esm_processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n\n  if (unitless_browser_esm[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n\n  return value;\n};\n\nif (false) { var hyphenatedCache, hyphenPattern, msPattern, oldProcessStyleValue, contentValues, contentValuePattern; }\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n\n  if (interpolation.__emotion_styles !== undefined) {\n    if (false) {}\n\n    return interpolation;\n  }\n\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n\n    case 'object':\n      {\n        if (interpolation.anim === 1) {\n          cursor = {\n            name: interpolation.name,\n            styles: interpolation.styles,\n            next: cursor\n          };\n          return interpolation.name;\n        }\n\n        if (interpolation.styles !== undefined) {\n          var next = interpolation.next;\n\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n\n          var styles = interpolation.styles + \";\";\n\n          if (false) {}\n\n          return styles;\n        }\n\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n        } else if (false) {}\n\n        break;\n      }\n\n    case 'string':\n      if (false) { var replaced, matched; }\n\n      break;\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n  if (registered == null) {\n    return interpolation;\n  }\n\n  var cached = registered[interpolation];\n\n  if (false) {}\n\n  return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i], false);\n    }\n  } else {\n    for (var _key in obj) {\n      var value = obj[_key];\n\n      if (typeof value !== 'object') {\n        if (registered != null && registered[value] !== undefined) {\n          string += _key + \"{\" + registered[value] + \"}\";\n        } else if (isProcessableValue(value)) {\n          string += processStyleName(_key) + \":\" + serialize_browser_esm_processStyleValue(_key, value) + \";\";\n        }\n      } else {\n        if (_key === 'NO_COMPONENT_SELECTOR' && \"production\" !== 'production') {\n          throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n        }\n\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(_key) + \":\" + serialize_browser_esm_processStyleValue(_key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n          switch (_key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(_key) + \":\" + interpolated + \";\";\n                break;\n              }\n\n            default:\n              {\n                if (false) {}\n\n                string += _key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n\n  return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (false) {} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serialize_browser_esm_serializeStyles = function serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings, false);\n  } else {\n    if (false) {}\n\n    styles += strings[0];\n  } // we start at 1 since we've already handled the first arg\n\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n    if (stringMode) {\n      if (false) {}\n\n      styles += strings[i];\n    }\n  }\n\n  var sourceMap;\n\n  if (false) {} // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + // $FlowFixMe we know it's not null\n    match[1];\n  }\n\n  var name = hash_browser_esm(styles) + identifierName;\n\n  if (false) {}\n\n  return {\n    name: name,\n    styles: styles,\n    next: cursor\n  };\n};\n\n\n\n// CONCATENATED MODULE: ./node_modules/@emotion/css/dist/css.browser.esm.js\n\n\nfunction css_browser_esm_css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return serialize_browser_esm_serializeStyles(args);\n}\n\n/* harmony default export */ var css_browser_esm = (css_browser_esm_css);\n\n// CONCATENATED MODULE: ./node_modules/@emotion/core/dist/core.browser.esm.js\n\n\n\n\n\n\n\n\n\nvar EmotionCacheContext = Object(external_this_React_[\"createContext\"])( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? cache_browser_esm() : null);\nvar ThemeContext = Object(external_this_React_[\"createContext\"])({});\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar core_browser_esm_withEmotionCache = function withEmotionCache(func) {\n  var render = function render(props, ref) {\n    return Object(external_this_React_[\"createElement\"])(EmotionCacheContext.Consumer, null, function (cache) {\n      return func(props, cache, ref);\n    });\n  }; // $FlowFixMe\n\n\n  return Object(external_this_React_[\"forwardRef\"])(render);\n};\n\n// thus we only need to replace what is a valid character for JS, but not for CSS\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n  return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar core_browser_esm_hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar core_browser_esm_render = function render(cache, props, theme, ref) {\n  var cssProp = theme === null ? props.css : props.css(theme); // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n\n  var type = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n\n  if (typeof props.className === 'string') {\n    className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n\n  var serialized = serialize_browser_esm_serializeStyles(registeredStyles);\n\n  if (false) { var labelFromStack; }\n\n  var rules = insertStyles(cache, serialized, typeof type === 'string');\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n\n  for (var key in props) {\n    if (core_browser_esm_hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( true || false)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps.ref = ref;\n  newProps.className = className;\n  var ele = Object(external_this_React_[\"createElement\"])(type, newProps);\n\n  return ele;\n};\n\nvar Emotion =\n/* #__PURE__ */\ncore_browser_esm_withEmotionCache(function (props, cache, ref) {\n  // use Context.read for the theme when it's stable\n  if (typeof props.css === 'function') {\n    return Object(external_this_React_[\"createElement\"])(ThemeContext.Consumer, null, function (theme) {\n      return core_browser_esm_render(cache, props, theme, ref);\n    });\n  }\n\n  return core_browser_esm_render(cache, props, null, ref);\n});\n\nif (false) {} // $FlowFixMe\n\n\nvar core_browser_esm_jsx = function jsx(type, props) {\n  var args = arguments;\n\n  if (props == null || !core_browser_esm_hasOwnProperty.call(props, 'css')) {\n    // $FlowFixMe\n    return external_this_React_[\"createElement\"].apply(undefined, args);\n  }\n\n  if (false) {}\n\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = Emotion;\n  var newProps = {};\n\n  for (var key in props) {\n    if (core_browser_esm_hasOwnProperty.call(props, key)) {\n      newProps[key] = props[key];\n    }\n  }\n\n  newProps[typePropName] = type;\n\n  if (false) { var match, error; }\n\n  createElementArgArray[1] = newProps;\n\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  } // $FlowFixMe\n\n\n  return external_this_React_[\"createElement\"].apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false;\nvar Global =\n/* #__PURE__ */\ncore_browser_esm_withEmotionCache(function (props, cache) {\n  if (false) {}\n\n  var styles = props.styles;\n\n  if (typeof styles === 'function') {\n    return Object(external_this_React_[\"createElement\"])(ThemeContext.Consumer, null, function (theme) {\n      var serialized = serialize_browser_esm_serializeStyles([styles(theme)]);\n      return Object(external_this_React_[\"createElement\"])(core_browser_esm_InnerGlobal, {\n        serialized: serialized,\n        cache: cache\n      });\n    });\n  }\n\n  var serialized = serialize_browser_esm_serializeStyles([styles]);\n  return Object(external_this_React_[\"createElement\"])(core_browser_esm_InnerGlobal, {\n    serialized: serialized,\n    cache: cache\n  });\n});\n\n// maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\nvar core_browser_esm_InnerGlobal =\n/*#__PURE__*/\nfunction (_React$Component) {\n  inheritsLoose_default()(InnerGlobal, _React$Component);\n\n  function InnerGlobal(props, context, updater) {\n    return _React$Component.call(this, props, context, updater) || this;\n  }\n\n  var _proto = InnerGlobal.prototype;\n\n  _proto.componentDidMount = function componentDidMount() {\n    this.sheet = new StyleSheet({\n      key: this.props.cache.key + \"-global\",\n      nonce: this.props.cache.sheet.nonce,\n      container: this.props.cache.sheet.container\n    }); // $FlowFixMe\n\n    var node = document.querySelector(\"style[data-emotion-\" + this.props.cache.key + \"=\\\"\" + this.props.serialized.name + \"\\\"]\");\n\n    if (node !== null) {\n      this.sheet.tags.push(node);\n    }\n\n    if (this.props.cache.sheet.tags.length) {\n      this.sheet.before = this.props.cache.sheet.tags[0];\n    }\n\n    this.insertStyles();\n  };\n\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    if (prevProps.serialized.name !== this.props.serialized.name) {\n      this.insertStyles();\n    }\n  };\n\n  _proto.insertStyles = function insertStyles$1() {\n    if (this.props.serialized.next !== undefined) {\n      // insert keyframes\n      insertStyles(this.props.cache, this.props.serialized.next, true);\n    }\n\n    if (this.sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = this.sheet.tags[this.sheet.tags.length - 1].nextElementSibling;\n      this.sheet.before = element;\n      this.sheet.flush();\n    }\n\n    this.props.cache.insert(\"\", this.props.serialized, this.sheet, false);\n  };\n\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.sheet.flush();\n  };\n\n  _proto.render = function render() {\n\n    return null;\n  };\n\n  return InnerGlobal;\n}(external_this_React_[\"Component\"]);\n\nvar core_browser_esm_keyframes = function keyframes() {\n  var insertable = css_browser_esm.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n};\n\nvar core_browser_esm_classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n            toAdd = '';\n\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n\n          break;\n        }\n\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n\n  return cls;\n};\n\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n\n  return rawClassName + css(registeredStyles);\n}\n\nvar ClassNames = core_browser_esm_withEmotionCache(function (props, context) {\n  return Object(external_this_React_[\"createElement\"])(ThemeContext.Consumer, null, function (theme) {\n    var hasRendered = false;\n\n    var css = function css() {\n      if (hasRendered && \"production\" !== 'production') {\n        throw new Error('css can only be used during render');\n      }\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      var serialized = serialize_browser_esm_serializeStyles(args, context.registered);\n\n      {\n        insertStyles(context, serialized, false);\n      }\n\n      return context.key + \"-\" + serialized.name;\n    };\n\n    var cx = function cx() {\n      if (hasRendered && \"production\" !== 'production') {\n        throw new Error('cx can only be used during render');\n      }\n\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n\n      return merge(context.registered, css, core_browser_esm_classnames(args));\n    };\n\n    var content = {\n      css: css,\n      cx: cx,\n      theme: theme\n    };\n    var ele = props.children(content);\n    hasRendered = true;\n\n    return ele;\n  });\n});\n\n\n\n// CONCATENATED MODULE: ./node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js\n\n\n\n\n\n\n\nvar testOmitPropsOnStringTag = is_prop_valid_browser_esm;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n  return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n  return typeof tag === 'string' && // 96 is one less than the char code\n  // for \"a\" so this is checking that\n  // it's a lowercase character\n  tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nfunction styled_base_browser_esm_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction styled_base_browser_esm_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { styled_base_browser_esm_ownKeys(source, true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { styled_base_browser_esm_ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar styled_base_browser_esm_ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar styled_base_browser_esm_createStyled = function createStyled(tag, options) {\n  if (false) {}\n\n  var identifierName;\n  var shouldForwardProp;\n  var targetClassName;\n\n  if (options !== undefined) {\n    identifierName = options.label;\n    targetClassName = options.target;\n    shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n      return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n      options.shouldForwardProp(propName);\n    } : options.shouldForwardProp;\n  }\n\n  var isReal = tag.__emotion_real === tag;\n  var baseTag = isReal && tag.__emotion_base || tag;\n\n  if (typeof shouldForwardProp !== 'function' && isReal) {\n    shouldForwardProp = tag.__emotion_forwardProp;\n  }\n\n  var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n  var shouldUseAs = !defaultShouldForwardProp('as');\n  return function () {\n    var args = arguments;\n    var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n    if (identifierName !== undefined) {\n      styles.push(\"label:\" + identifierName + \";\");\n    }\n\n    if (args[0] == null || args[0].raw === undefined) {\n      styles.push.apply(styles, args);\n    } else {\n      if (false) {}\n\n      styles.push(args[0][0]);\n      var len = args.length;\n      var i = 1;\n\n      for (; i < len; i++) {\n        if (false) {}\n\n        styles.push(args[i], args[0][i]);\n      }\n    } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n    var Styled = core_browser_esm_withEmotionCache(function (props, context, ref) {\n      return Object(external_this_React_[\"createElement\"])(ThemeContext.Consumer, null, function (theme) {\n        var finalTag = shouldUseAs && props.as || baseTag;\n        var className = '';\n        var classInterpolations = [];\n        var mergedProps = props;\n\n        if (props.theme == null) {\n          mergedProps = {};\n\n          for (var key in props) {\n            mergedProps[key] = props[key];\n          }\n\n          mergedProps.theme = theme;\n        }\n\n        if (typeof props.className === 'string') {\n          className = getRegisteredStyles(context.registered, classInterpolations, props.className);\n        } else if (props.className != null) {\n          className = props.className + \" \";\n        }\n\n        var serialized = serialize_browser_esm_serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n        var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n        className += context.key + \"-\" + serialized.name;\n\n        if (targetClassName !== undefined) {\n          className += \" \" + targetClassName;\n        }\n\n        var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n        var newProps = {};\n\n        for (var _key in props) {\n          if (shouldUseAs && _key === 'as') continue;\n\n          if ( // $FlowFixMe\n          finalShouldForwardProp(_key)) {\n            newProps[_key] = props[_key];\n          }\n        }\n\n        newProps.className = className;\n        newProps.ref = ref || props.innerRef;\n\n        if (false) {}\n\n        var ele = Object(external_this_React_[\"createElement\"])(finalTag, newProps);\n\n        return ele;\n      });\n    });\n    Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n    Styled.defaultProps = tag.defaultProps;\n    Styled.__emotion_real = Styled;\n    Styled.__emotion_base = baseTag;\n    Styled.__emotion_styles = styles;\n    Styled.__emotion_forwardProp = shouldForwardProp;\n    Object.defineProperty(Styled, 'toString', {\n      value: function value() {\n        if (targetClassName === undefined && \"production\" !== 'production') {\n          return 'NO_COMPONENT_SELECTOR';\n        } // $FlowFixMe: coerce undefined to string\n\n\n        return \".\" + targetClassName;\n      }\n    });\n\n    Styled.withComponent = function (nextTag, nextOptions) {\n      return createStyled(nextTag, nextOptions !== undefined ? styled_base_browser_esm_objectSpread({}, options || {}, {}, nextOptions) : options).apply(void 0, styles);\n    };\n\n    return Styled;\n  };\n};\n\n/* harmony default export */ var styled_base_browser_esm = (styled_base_browser_esm_createStyled);\n\n// EXTERNAL MODULE: ./node_modules/tinycolor2/tinycolor.js\nvar tinycolor = __webpack_require__(56);\nvar tinycolor_default = /*#__PURE__*/__webpack_require__.n(tinycolor);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors-values.js\n\n\nfunction colors_values_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction colors_values_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { colors_values_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { colors_values_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar BASE = {\n  black: '#000',\n  white: '#fff'\n};\n/**\n * TODO: Continue to update values as \"G2\" design evolves.\n *\n * \"G2\" refers to the movement to advance the interface of the block editor.\n * https://github.com/WordPress/gutenberg/issues/18667\n */\n\nvar G2 = {\n  blue: {\n    medium: {\n      focus: '#007cba',\n      focusDark: '#fff'\n    }\n  },\n  darkGray: {\n    primary: '#1e1e1e'\n  },\n  mediumGray: {\n    text: '#757575'\n  },\n  lightGray: {\n    ui: '#949494',\n    secondary: '#ccc',\n    tertiary: '#e7e8e9'\n  }\n};\nvar DARK_GRAY = {\n  900: '#191e23',\n  800: '#23282d',\n  700: '#32373c',\n  600: '#40464d',\n  500: '#555d66',\n  // Use this most of the time for dark items.\n  400: '#606a73',\n  300: '#6c7781',\n  // Lightest gray that can be used for AA text contrast.\n  200: '#7e8993',\n  150: '#8d96a0',\n  // Lightest gray that can be used for AA non-text contrast.\n  100: '#8f98a1'\n};\nvar DARK_OPACITY = {\n  900: rgba('#000510', 0.9),\n  800: rgba('#00000a', 0.85),\n  700: rgba('#06060b', 0.8),\n  600: rgba('#000913', 0.75),\n  500: rgba('#0a1829', 0.7),\n  400: rgba('#0a1829', 0.65),\n  300: rgba('#0e1c2e', 0.62),\n  200: rgba('#162435', 0.55),\n  100: rgba('#223443', 0.5),\n  backgroundFill: rgba(DARK_GRAY[700], 0.7)\n};\nvar DARK_OPACITY_LIGHT = {\n  900: rgba('#304455', 0.45),\n  800: rgba('#425863', 0.4),\n  700: rgba('#667886', 0.35),\n  600: rgba('#7b86a2', 0.3),\n  500: rgba('#9197a2', 0.25),\n  400: rgba('#95959c', 0.2),\n  300: rgba('#829493', 0.15),\n  200: rgba('#8b8b96', 0.1),\n  100: rgba('#747474', 0.05)\n};\nvar LIGHT_GRAY = {\n  900: '#a2aab2',\n  800: '#b5bcc2',\n  700: '#ccd0d4',\n  600: '#d7dade',\n  500: '#e2e4e7',\n  // Good for \"grayed\" items and borders.\n  400: '#e8eaeb',\n  // Good for \"readonly\" input fields and special text selection.\n  300: '#edeff0',\n  200: '#f3f4f5',\n  100: '#f8f9f9'\n};\nvar LIGHT_OPACITY_LIGHT = {\n  900: rgba(BASE.white, 0.5),\n  800: rgba(BASE.white, 0.45),\n  700: rgba(BASE.white, 0.4),\n  600: rgba(BASE.white, 0.35),\n  500: rgba(BASE.white, 0.3),\n  400: rgba(BASE.white, 0.25),\n  300: rgba(BASE.white, 0.2),\n  200: rgba(BASE.white, 0.15),\n  100: rgba(BASE.white, 0.1),\n  backgroundFill: rgba(LIGHT_GRAY[300], 0.8)\n}; // Additional colors.\n// Some are from https://make.wordpress.org/design/handbook/foundations/colors/.\n\nvar BLUE = {\n  wordpress: {\n    700: '#00669b'\n  },\n  dark: {\n    900: '#0071a1'\n  },\n  medium: {\n    900: '#006589',\n    800: '#00739c',\n    700: '#007fac',\n    600: '#008dbe',\n    500: '#00a0d2',\n    400: '#33b3db',\n    300: '#66c6e4',\n    200: '#bfe7f3',\n    100: '#e5f5fa',\n    highlight: '#b3e7fe',\n    focus: '#007cba'\n  }\n};\nvar ALERT = {\n  yellow: '#f0b849',\n  red: '#d94f4f',\n  green: '#4ab866'\n}; // Namespaced values for raw colors hex codes\n\nvar UI = {\n  background: BASE.white,\n  backgroundDisabled: LIGHT_GRAY[200],\n  brand: BLUE.wordpress[700],\n  border: G2.darkGray.primary,\n  borderFocus: BLUE.medium.focus,\n  borderDisabled: DARK_GRAY[700],\n  borderLight: LIGHT_GRAY[600],\n  label: DARK_GRAY[500],\n  textDisabled: DARK_GRAY[150],\n  textDark: BASE.white,\n  textLight: BASE.black\n};\nvar COLORS = colors_values_objectSpread({}, BASE, {\n  darkGray: Object(external_this_lodash_[\"merge\"])({}, DARK_GRAY, G2.darkGray),\n  darkOpacity: DARK_OPACITY,\n  darkOpacityLight: DARK_OPACITY_LIGHT,\n  mediumGray: G2.mediumGray,\n  lightGray: Object(external_this_lodash_[\"merge\"])({}, LIGHT_GRAY, G2.lightGray),\n  lightGrayLight: LIGHT_OPACITY_LIGHT,\n  blue: Object(external_this_lodash_[\"merge\"])({}, BLUE, G2.blue),\n  alert: ALERT,\n  ui: UI\n});\n/* harmony default export */ var colors_values = (COLORS);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/colors.js\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Generating a CSS complient rgba() color value.\n *\n * @param {string} hexValue The hex value to convert to rgba().\n * @param {number} alpha The alpha value for opacity.\n * @return {string} The converted rgba() color value.\n *\n * @example\n * rgba( '#000000', 0.5 )\n * // rgba(0, 0, 0, 0.5)\n */\n\nfunction rgba() {\n  var hexValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var alpha = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n  var _tinycolor$toRgb = tinycolor_default()(hexValue).toRgb(),\n      r = _tinycolor$toRgb.r,\n      g = _tinycolor$toRgb.g,\n      b = _tinycolor$toRgb.b;\n\n  return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(alpha, \")\");\n}\n/**\n * Retrieves a color from the color palette.\n *\n * @param {string} value The value to retrieve.\n * @return {string} The color (or fallback, if not found).\n *\n * @example\n * color( 'blue.wordpress.700' )\n * // #00669b\n */\n\nfunction colors_color(value) {\n  var fallbackColor = '#000';\n  return Object(external_this_lodash_[\"get\"])(COLORS, value, fallbackColor);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/reduce-motion.js\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n *\n * @param {string} prop CSS Property name\n * @return {string} Generated CSS code for the reduced style\n */\nfunction reduceMotion() {\n  var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transition';\n  var style;\n\n  switch (prop) {\n    case 'transition':\n      style = 'transition-duration: 0ms;';\n      break;\n\n    case 'animation':\n      style = 'animation-duration: 1ms;';\n      break;\n\n    default:\n      style = \"\\n\\t\\t\\t\\tanimation-duration: 1ms;\\n\\t\\t\\t\\ttransition-duration: 0ms;\\n\\t\\t\\t\";\n  }\n\n  return \"\\n\\t\\t@media ( prefers-reduced-motion: reduce ) {\\n\\t\\t\\t\".concat(style, \";\\n\\t\\t}\\n\\t\");\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js\n\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar alignment_matrix_control_styles_ref =  true ? {\n  name: \"1xiracb\",\n  styles: \"border-radius:2px;box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );outline:none;\"\n} : undefined;\n\nvar rootBase = function rootBase() {\n  return alignment_matrix_control_styles_ref;\n};\n\nvar alignment_matrix_control_styles_rootSize = function rootSize(_ref2) {\n  var _ref2$size = _ref2.size,\n      size = _ref2$size === void 0 ? 92 : _ref2$size;\n  return /*#__PURE__*/css_browser_esm(\"grid-template-rows:repeat( 3,calc( \", size, \"px / 3 ) );width:\", size, \"px;\" + ( true ? \"\" : undefined));\n};\n\nvar Root = styled_base_browser_esm(\"div\", {\n  target: \"e1od1u4s0\",\n  label: \"Root\"\n})(rootBase, \";border:1px solid transparent;cursor:pointer;grid-template-columns:auto;\", alignment_matrix_control_styles_rootSize, \";\" + ( true ? \"\" : undefined));\nvar Row = styled_base_browser_esm(\"div\", {\n  target: \"e1od1u4s1\",\n  label: \"Row\"\n})( true ? {\n  name: \"1177s8r\",\n  styles: \"box-sizing:border-box;display:grid;grid-template-columns:repeat( 3,1fr );\"\n} : undefined);\n\nvar alignment_matrix_control_styles_pointActive = function pointActive(_ref3) {\n  var isActive = _ref3.isActive;\n  var boxShadow = isActive ? \"0 0 0 2px \".concat(colors_color('black')) : null;\n  var pointColor = isActive ? colors_color('black') : colors_color('lightGray.800');\n  var pointColorHover = isActive ? colors_color('black') : colors_color('blue.medium.focus');\n  return /*#__PURE__*/css_browser_esm(\"box-shadow:\", boxShadow, \";color:\", pointColor, \";*:hover > &{color:\", pointColorHover, \";}\" + ( true ? \"\" : undefined));\n};\n\nvar alignment_matrix_control_styles_pointBase = function pointBase(props) {\n  return /*#__PURE__*/css_browser_esm(\"background:currentColor;box-sizing:border-box;display:grid;margin:auto;transition:all 120ms linear;\", reduceMotion('transition'), \" \", alignment_matrix_control_styles_pointActive(props),  true ? \"\" : undefined);\n};\nvar Point = styled_base_browser_esm(\"span\", {\n  target: \"e1od1u4s2\",\n  label: \"Point\"\n})(\"height:6px;width:6px;\", alignment_matrix_control_styles_pointBase,  true ? \"\" : undefined);\nvar Cell = styled_base_browser_esm(\"span\", {\n  target: \"e1od1u4s3\",\n  label: \"Cell\"\n})( true ? {\n  name: \"10ro24i\",\n  styles: \"appearance:none;border:none;box-sizing:border-box;margin:0;display:flex;position:relative;outline:none;align-items:center;justify-content:center;padding:0;\"\n} : undefined);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/cell.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction cell_Cell(_ref) {\n  var _ref$isActive = _ref.isActive,\n      isActive = _ref$isActive === void 0 ? false : _ref$isActive,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isActive\", \"value\"]);\n\n  var tooltipText = ALIGNMENT_LABEL[value];\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_tooltip[\"a\" /* default */], {\n    text: tooltipText\n  }, Object(external_this_wp_element_[\"createElement\"])(CompositeItem[\"a\" /* CompositeItem */], Object(esm_extends[\"a\" /* default */])({\n    as: Cell,\n    role: \"gridcell\"\n  }, props), Object(external_this_wp_element_[\"createElement\"])(visually_hidden, null, value), Object(external_this_wp_element_[\"createElement\"])(Point, {\n    isActive: isActive,\n    role: \"presentation\"\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/rtl.js\n/**\n * External dependencies\n */\n\n\nvar LOWER_LEFT_REGEXP = new RegExp(/-left/g);\nvar LOWER_RIGHT_REGEXP = new RegExp(/-right/g);\nvar UPPER_LEFT_REGEXP = new RegExp(/Left/g);\nvar UPPER_RIGHT_REGEXP = new RegExp(/Right/g);\n/**\n * Checks to see whether the document is set to rtl.\n *\n * @return {boolean} Whether document is RTL.\n */\n\nfunction getRTL() {\n  return !!(document && document.documentElement.dir === 'rtl');\n}\n/**\n * Simple hook to retrieve RTL direction value\n *\n * @return {boolean} Whether document is RTL.\n */\n\nfunction useRTL() {\n  return getRTL();\n}\n/**\n * Flips a CSS property from left <-> right.\n *\n * @param {string} key The CSS property name.\n *\n * @return {string} The flipped CSS property name, if applicable.\n */\n\nfunction getConvertedKey(key) {\n  if (key === 'left') {\n    return 'right';\n  }\n\n  if (key === 'right') {\n    return 'left';\n  }\n\n  if (LOWER_LEFT_REGEXP.test(key)) {\n    return key.replace(LOWER_LEFT_REGEXP, '-right');\n  }\n\n  if (LOWER_RIGHT_REGEXP.test(key)) {\n    return key.replace(LOWER_RIGHT_REGEXP, '-left');\n  }\n\n  if (UPPER_LEFT_REGEXP.test(key)) {\n    return key.replace(UPPER_LEFT_REGEXP, 'Right');\n  }\n\n  if (UPPER_RIGHT_REGEXP.test(key)) {\n    return key.replace(UPPER_RIGHT_REGEXP, 'Left');\n  }\n\n  return key;\n}\n/**\n * An incredibly basic ltr -> rtl converter for style properties\n *\n * @param {Object} ltrStyles\n *\n * @return {Object} Converted ltr -> rtl styles\n */\n\n\nvar rtl_convertLTRToRTL = function convertLTRToRTL() {\n  var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return Object(external_this_lodash_[\"mapKeys\"])(ltrStyles, function (_value, key) {\n    return getConvertedKey(key);\n  });\n};\n/**\n * A higher-order function that create an incredibly basic ltr -> rtl style converter for CSS objects.\n *\n * @param {Object} ltrStyles Ltr styles. Converts and renders from ltr -> rtl styles, if applicable.\n * @param {null|Object} rtlStyles Rtl styles. Renders if provided.\n *\n * @return {Function} A function to output CSS styles for Emotion's renderer\n */\n\nfunction rtl() {\n  var ltrStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var rtlStyles = arguments.length > 1 ? arguments[1] : undefined;\n  return function () {\n    var isRTL = getRTL();\n\n    if (rtlStyles) {\n      return isRTL ? /*#__PURE__*/css_browser_esm(rtlStyles,  true ? \"\" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? \"\" : undefined);\n    }\n\n    return isRTL ? /*#__PURE__*/css_browser_esm(rtl_convertLTRToRTL(ltrStyles),  true ? \"\" : undefined) : /*#__PURE__*/css_browser_esm(ltrStyles,  true ? \"\" : undefined);\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/styles/alignment-matrix-control-icon-styles.js\n\n\nfunction alignment_matrix_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar alignment_matrix_control_icon_styles_rootSize = function rootSize() {\n  var padding = 1.5;\n  var size = 24;\n  return /*#__PURE__*/css_browser_esm({\n    gridTemplateRows: \"repeat( 3, calc( \".concat(size - padding * 2, \"px / 3))\"),\n    padding: padding,\n    maxHeight: size,\n    maxWidth: size\n  },  true ? \"\" : undefined);\n};\n\nvar alignment_matrix_control_icon_styles_rootPointerEvents = function rootPointerEvents(_ref) {\n  var disablePointerEvents = _ref.disablePointerEvents;\n  return /*#__PURE__*/css_browser_esm({\n    pointerEvents: disablePointerEvents ? 'none' : null\n  },  true ? \"\" : undefined);\n};\n\nvar alignment_matrix_control_icon_styles_Wrapper = styled_base_browser_esm(\"div\", {\n  target: \"elqsdmc0\",\n  label: \"Wrapper\"\n})( true ? {\n  name: \"co61ta\",\n  styles: \"box-sizing:border-box;padding:2px;\"\n} : undefined);\nvar alignment_matrix_control_icon_styles_Root = styled_base_browser_esm(\"div\", {\n  target: \"elqsdmc1\",\n  label: \"Root\"\n})(\"transform-origin:top left;height:100%;width:100%;\", rootBase, \";\", alignment_matrix_control_icon_styles_rootSize, \";\", alignment_matrix_control_icon_styles_rootPointerEvents, \";\" + ( true ? \"\" : undefined));\n\nvar alignment_matrix_control_icon_styles_pointActive = function pointActive(_ref2) {\n  var isActive = _ref2.isActive;\n  var boxShadow = isActive ? \"0 0 0 1px currentColor\" : null;\n  return /*#__PURE__*/css_browser_esm(\"box-shadow:\", boxShadow, \";color:currentColor;*:hover > &{color:currentColor;}\" + ( true ? \"\" : undefined));\n};\n\nvar alignment_matrix_control_icon_styles_Point = styled_base_browser_esm(\"span\", {\n  target: \"elqsdmc2\",\n  label: \"Point\"\n})(\"height:2px;width:2px;\", alignment_matrix_control_styles_pointBase, \";\", alignment_matrix_control_icon_styles_pointActive, \";\" + ( true ? \"\" : undefined));\nvar alignment_matrix_control_icon_styles_Cell = Cell;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/icon.js\n\n\n\n\n\nfunction icon_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction icon_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { icon_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { icon_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar BASE_SIZE = 24;\nfunction AlignmentMatrixControlIcon(_ref) {\n  var className = _ref.className,\n      _ref$disablePointerEv = _ref.disablePointerEvents,\n      disablePointerEvents = _ref$disablePointerEv === void 0 ? true : _ref$disablePointerEv,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? BASE_SIZE : _ref$size,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? 'center' : _ref$value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"disablePointerEvents\", \"size\", \"style\", \"value\"]);\n\n  var alignIndex = getAlignmentIndex(value);\n  var scale = (size / BASE_SIZE).toFixed(2);\n  var classes = classnames_default()('component-alignment-matrix-control-icon', className);\n\n  var styles = icon_objectSpread({}, style, {\n    transform: \"scale(\".concat(scale, \")\")\n  });\n\n  return Object(external_this_wp_element_[\"createElement\"])(alignment_matrix_control_icon_styles_Root, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: classes,\n    disablePointerEvents: disablePointerEvents,\n    role: \"presentation\",\n    size: size,\n    style: styles\n  }), ALIGNMENTS.map(function (align, index) {\n    var isActive = alignIndex === index;\n    return Object(external_this_wp_element_[\"createElement\"])(alignment_matrix_control_icon_styles_Cell, {\n      key: align\n    }, Object(external_this_wp_element_[\"createElement\"])(alignment_matrix_control_icon_styles_Point, {\n      isActive: isActive\n    }));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/alignment-matrix-control/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction useBaseId(id) {\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(AlignmentMatrixControl, 'alignment-matrix-control');\n  return id || instanceId;\n}\n\nfunction AlignmentMatrixControl(_ref) {\n  var className = _ref.className,\n      id = _ref.id,\n      _ref$label = _ref.label,\n      label = _ref$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Alignment Matrix Control') : _ref$label,\n      _ref$defaultValue = _ref.defaultValue,\n      defaultValue = _ref$defaultValue === void 0 ? 'center center' : _ref$defaultValue,\n      value = _ref.value,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$width = _ref.width,\n      width = _ref$width === void 0 ? 92 : _ref$width,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"id\", \"label\", \"defaultValue\", \"value\", \"onChange\", \"width\"]);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(value !== null && value !== void 0 ? value : defaultValue),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 1),\n      immutableDefaultValue = _useState2[0];\n\n  var isRTL = useRTL();\n  var baseId = useBaseId(id);\n  var initialCurrentId = getItemId(baseId, immutableDefaultValue);\n  var composite = Object(CompositeState_3a25dcee[\"g\" /* u */])({\n    baseId: baseId,\n    currentId: initialCurrentId,\n    rtl: isRTL\n  });\n\n  var handleOnChange = function handleOnChange(nextValue) {\n    onChange(nextValue);\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (typeof value !== 'undefined') {\n      composite.setCurrentId(getItemId(baseId, value));\n    }\n  }, [value, composite.setCurrentId]);\n  var classes = classnames_default()('component-alignment-matrix-control', className);\n  return Object(external_this_wp_element_[\"createElement\"])(Composite, Object(esm_extends[\"a\" /* default */])({}, props, composite, {\n    \"aria-label\": label,\n    as: Root,\n    className: classes,\n    role: \"grid\",\n    width: width\n  }), GRID.map(function (cells, index) {\n    return Object(external_this_wp_element_[\"createElement\"])(CompositeGroup, Object(esm_extends[\"a\" /* default */])({}, composite, {\n      as: Row,\n      role: \"row\",\n      key: index\n    }), cells.map(function (cell) {\n      var cellId = getItemId(baseId, cell);\n      var isActive = composite.currentId === cellId;\n      return Object(external_this_wp_element_[\"createElement\"])(cell_Cell, Object(esm_extends[\"a\" /* default */])({}, composite, {\n        id: cellId,\n        isActive: isActive,\n        key: cell,\n        value: cell,\n        onFocus: function onFocus() {\n          return handleOnChange(cell);\n        }\n      }));\n    }));\n  }));\n}\nAlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/animate/index.js\nvar animate = __webpack_require__(154);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/base-control/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BaseControl(_ref) {\n  var id = _ref.id,\n      label = _ref.label,\n      hideLabelFromVision = _ref.hideLabelFromVision,\n      help = _ref.help,\n      className = _ref.className,\n      children = _ref.children;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('components-base-control', className)\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-base-control__field\"\n  }, label && id && (hideLabelFromVision ? Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    as: \"label\",\n    htmlFor: id\n  }, label) : Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    className: \"components-base-control__label\",\n    htmlFor: id\n  }, label)), label && !id && (hideLabelFromVision ? Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    as: \"label\"\n  }, label) : Object(external_this_wp_element_[\"createElement\"])(BaseControl.VisualLabel, null, label)), children), !!help && Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    id: id + '__help',\n    className: \"components-base-control__help\"\n  }, help));\n}\n\nBaseControl.VisualLabel = function (_ref2) {\n  var className = _ref2.className,\n      children = _ref2.children;\n  className = classnames_default()('components-base-control__label', className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: className\n  }, children);\n};\n\n/* harmony default export */ var base_control = (BaseControl);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/angle-picker-control/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction getAngle(centerX, centerY, pointX, pointY) {\n  var y = pointY - centerY;\n  var x = pointX - centerX;\n  var angleInRadians = Math.atan2(y, x);\n  var angleInDeg = Math.round(angleInRadians * (180 / Math.PI)) + 90;\n\n  if (angleInDeg < 0) {\n    return 360 + angleInDeg;\n  }\n\n  return angleInDeg;\n}\n\nvar angle_picker_control_AngleCircle = function AngleCircle(_ref) {\n  var value = _ref.value,\n      onChange = _ref.onChange,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"value\", \"onChange\"]);\n\n  var angleCircleRef = Object(external_this_wp_element_[\"useRef\"])();\n  var angleCircleCenter = Object(external_this_wp_element_[\"useRef\"])();\n\n  var setAngleCircleCenter = function setAngleCircleCenter() {\n    var rect = angleCircleRef.current.getBoundingClientRect();\n    angleCircleCenter.current = {\n      x: rect.x + rect.width / 2,\n      y: rect.y + rect.height / 2\n    };\n  };\n\n  var changeAngleToPosition = function changeAngleToPosition(event) {\n    var _angleCircleCenter$cu = angleCircleCenter.current,\n        centerX = _angleCircleCenter$cu.x,\n        centerY = _angleCircleCenter$cu.y; // Prevent (drag) mouse events from selecting and accidentally\n    // triggering actions from other elements.\n\n    event.preventDefault();\n    onChange(getAngle(centerX, centerY, event.clientX, event.clientY));\n  };\n\n  var _useDragging = Object(external_this_wp_compose_[\"__experimentalUseDragging\"])({\n    onDragStart: function onDragStart(event) {\n      setAngleCircleCenter();\n      changeAngleToPosition(event);\n    },\n    onDragMove: changeAngleToPosition,\n    onDragEnd: changeAngleToPosition\n  }),\n      startDrag = _useDragging.startDrag,\n      isDragging = _useDragging.isDragging;\n\n  return (\n    /* eslint-disable jsx-a11y/no-static-element-interactions */\n    Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n      ref: angleCircleRef,\n      onMouseDown: startDrag,\n      className: \"components-angle-picker-control__angle-circle\",\n      style: isDragging ? {\n        cursor: 'grabbing'\n      } : undefined\n    }, props), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      style: value ? {\n        transform: \"rotate(\".concat(value, \"deg)\")\n      } : undefined,\n      className: \"components-angle-picker-control__angle-circle-indicator-wrapper\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"components-angle-picker-control__angle-circle-indicator\"\n    })))\n    /* eslint-enable jsx-a11y/no-static-element-interactions */\n\n  );\n};\n\nfunction AnglePickerControl(_ref2) {\n  var value = _ref2.value,\n      _onChange = _ref2.onChange,\n      _ref2$label = _ref2.label,\n      label = _ref2$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Angle') : _ref2$label;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(AnglePickerControl);\n  var inputId = \"components-angle-picker-control__input-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: label,\n    id: inputId,\n    className: \"components-angle-picker-control\"\n  }, Object(external_this_wp_element_[\"createElement\"])(angle_picker_control_AngleCircle, {\n    value: value,\n    onChange: _onChange,\n    \"aria-hidden\": \"true\"\n  }), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    className: \"components-angle-picker-control__input-field\",\n    type: \"number\",\n    id: inputId,\n    onChange: function onChange(event) {\n      var unprocessedValue = event.target.value;\n      var inputValue = unprocessedValue !== '' ? parseInt(event.target.value, 10) : 0;\n\n      _onChange(inputValue);\n    },\n    value: value,\n    min: 0,\n    max: 360,\n    step: \"1\"\n  }));\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/button/index.js\nvar build_module_button = __webpack_require__(34);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/popover/index.js + 2 modules\nvar popover = __webpack_require__(107);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"a11y\"]}\nvar external_this_wp_a11y_ = __webpack_require__(48);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-spoken-messages/index.js\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * A Higher Order Component used to be provide a unique instance ID by\n * component.\n *\n * @param {WPComponent} WrappedComponent  The wrapped component.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n/* harmony default export */ var with_spoken_messages = (Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(_class, _Component);\n\n    var _super = _createSuper(_class);\n\n    function _class() {\n      var _this;\n\n      Object(classCallCheck[\"a\" /* default */])(this, _class);\n\n      _this = _super.apply(this, arguments);\n      _this.debouncedSpeak = Object(external_this_lodash_[\"debounce\"])(_this.speak.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), 500);\n      return _this;\n    }\n\n    Object(createClass[\"a\" /* default */])(_class, [{\n      key: \"speak\",\n      value: function speak(message) {\n        var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'polite';\n\n        Object(external_this_wp_a11y_[\"speak\"])(message, type);\n      }\n    }, {\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.debouncedSpeak.cancel();\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, this.props, {\n          speak: this.speak,\n          debouncedSpeak: this.debouncedSpeak\n        }));\n      }\n    }]);\n\n    return _class;\n  }(external_this_wp_element_[\"Component\"]);\n}, 'withSpokenMessages'));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/autocomplete/index.js\n\n\n\n\n\n\n\n\n\n\nfunction autocomplete_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (autocomplete_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction autocomplete_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * A raw completer option.\n *\n * @typedef {*} CompleterOption\n */\n\n/**\n * @callback FnGetOptions\n *\n * @return {(CompleterOption[]|Promise.<CompleterOption[]>)} The completer options or a promise for them.\n */\n\n/**\n * @callback FnGetOptionKeywords\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} list of key words to search.\n */\n\n/**\n * @callback FnIsOptionDisabled\n * @param {CompleterOption} option a completer option.\n *\n * @return {string[]} whether or not the given option is disabled.\n */\n\n/**\n * @callback FnGetOptionLabel\n * @param {CompleterOption} option a completer option.\n *\n * @return {(string|Array.<(string|Component)>)} list of react components to render.\n */\n\n/**\n * @callback FnAllowContext\n * @param {string} before the string before the auto complete trigger and query.\n * @param {string} after  the string after the autocomplete trigger and query.\n *\n * @return {boolean} true if the completer can handle.\n */\n\n/**\n * @typedef {Object} OptionCompletion\n * @property {'insert-at-caret'|'replace'} action the intended placement of the completion.\n * @property {OptionCompletionValue} value the completion value.\n */\n\n/**\n * A completion value.\n *\n * @typedef {(string|WPElement|Object)} OptionCompletionValue\n */\n\n/**\n * @callback FnGetOptionCompletion\n * @param {CompleterOption} value the value of the completer option.\n * @param {string} query the text value of the autocomplete query.\n *\n * @return {(OptionCompletion|OptionCompletionValue)} the completion for the given option. If an\n * \t\t\t\t\t\t\t\t\t\t\t\t\t   OptionCompletionValue is returned, the\n * \t\t\t\t\t\t\t\t\t\t\t\t\t   completion action defaults to `insert-at-caret`.\n */\n\n/**\n * @typedef {Object} WPCompleter\n * @property {string} name a way to identify a completer, useful for selective overriding.\n * @property {?string} className A class to apply to the popup menu.\n * @property {string} triggerPrefix the prefix that will display the menu.\n * @property {(CompleterOption[]|FnGetOptions)} options the completer options or a function to get them.\n * @property {?FnGetOptionKeywords} getOptionKeywords get the keywords for a given option.\n * @property {?FnIsOptionDisabled} isOptionDisabled get whether or not the given option is disabled.\n * @property {FnGetOptionLabel} getOptionLabel get the label for a given option.\n * @property {?FnAllowContext} allowContext filter the context under which the autocomplete activates.\n * @property {FnGetOptionCompletion} getOptionCompletion get the completion associated with a given option.\n */\n\nfunction filterOptions(search) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var maxResults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n  var filtered = [];\n\n  for (var i = 0; i < options.length; i++) {\n    var option = options[i]; // Merge label into keywords\n\n    var _option$keywords = option.keywords,\n        keywords = _option$keywords === void 0 ? [] : _option$keywords;\n\n    if ('string' === typeof option.label) {\n      keywords = [].concat(Object(toConsumableArray[\"a\" /* default */])(keywords), [option.label]);\n    }\n\n    var isMatch = keywords.some(function (keyword) {\n      return search.test(Object(external_this_lodash_[\"deburr\"])(keyword));\n    });\n\n    if (!isMatch) {\n      continue;\n    }\n\n    filtered.push(option); // Abort early if max reached\n\n    if (filtered.length === maxResults) {\n      break;\n    }\n  }\n\n  return filtered;\n}\n\nfunction getRange() {\n  var selection = window.getSelection();\n  return selection.rangeCount ? selection.getRangeAt(0) : null;\n}\n\nvar autocomplete_getAutoCompleterUI = function getAutoCompleterUI(autocompleter) {\n  var useItems = autocompleter.useItems ? autocompleter.useItems : function (filterValue) {\n    var _useState = Object(external_this_wp_element_[\"useState\"])([]),\n        _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n        items = _useState2[0],\n        setItems = _useState2[1];\n    /*\n     * We support both synchronous and asynchronous retrieval of completer options\n     * but internally treat all as async so we maintain a single, consistent code path.\n     *\n     * Because networks can be slow, and the internet is wonderfully unpredictable,\n     * we don't want two promises updating the state at once. This ensures that only\n     * the most recent promise will act on `optionsData`. This doesn't use the state\n     * because `setState` is batched, and so there's no guarantee that setting\n     * `activePromise` in the state would result in it actually being in `this.state`\n     * before the promise resolves and we check to see if this is the active promise or not.\n     */\n\n\n    Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n      var options = autocompleter.options,\n          isDebounced = autocompleter.isDebounced;\n      var loadOptions = Object(external_this_lodash_[\"debounce\"])(function () {\n        var promise = Promise.resolve(typeof options === 'function' ? options(filterValue) : options).then(function (optionsData) {\n          if (promise.canceled) {\n            return;\n          }\n\n          var keyedOptions = optionsData.map(function (optionData, optionIndex) {\n            return {\n              key: \"\".concat(autocompleter.name, \"-\").concat(optionIndex),\n              value: optionData,\n              label: autocompleter.getOptionLabel(optionData),\n              keywords: autocompleter.getOptionKeywords ? autocompleter.getOptionKeywords(optionData) : [],\n              isDisabled: autocompleter.isOptionDisabled ? autocompleter.isOptionDisabled(optionData) : false\n            };\n          }); // create a regular expression to filter the options\n\n          var search = new RegExp('(?:\\\\b|\\\\s|^)' + Object(external_this_lodash_[\"escapeRegExp\"])(filterValue), 'i');\n          setItems(filterOptions(search, keyedOptions));\n        });\n        return promise;\n      }, isDebounced ? 250 : 0);\n      var promise = loadOptions();\n      return function () {\n        loadOptions.cancel();\n\n        if (promise) {\n          promise.canceled = true;\n        }\n      };\n    }, [filterValue]);\n    return [items];\n  };\n\n  function AutocompleterUI(_ref) {\n    var filterValue = _ref.filterValue,\n        instanceId = _ref.instanceId,\n        listBoxId = _ref.listBoxId,\n        className = _ref.className,\n        selectedIndex = _ref.selectedIndex,\n        onChangeOptions = _ref.onChangeOptions,\n        onSelect = _ref.onSelect,\n        onReset = _ref.onReset;\n\n    var _useItems = useItems(filterValue),\n        _useItems2 = Object(slicedToArray[\"a\" /* default */])(_useItems, 1),\n        items = _useItems2[0];\n\n    Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n      onChangeOptions(items);\n    }, [items]);\n\n    if (!items.length > 0) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(popover[\"a\" /* default */], {\n      focusOnMount: false,\n      onClose: onReset,\n      position: \"top right\",\n      className: \"components-autocomplete__popover\",\n      anchorRef: getRange()\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      id: listBoxId,\n      role: \"listbox\",\n      className: \"components-autocomplete__results\"\n    }, Object(external_this_lodash_[\"map\"])(items, function (option, index) {\n      return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        key: option.key,\n        id: \"components-autocomplete-item-\".concat(instanceId, \"-\").concat(option.key),\n        role: \"option\",\n        \"aria-selected\": index === selectedIndex,\n        disabled: option.isDisabled,\n        className: classnames_default()('components-autocomplete__result', className, {\n          'is-selected': index === selectedIndex\n        }),\n        onClick: function onClick() {\n          return onSelect(option);\n        }\n      }, option.label);\n    })));\n  }\n\n  return AutocompleterUI;\n};\n\nvar autocomplete_Autocomplete = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Autocomplete, _Component);\n\n  var _super = autocomplete_createSuper(Autocomplete);\n\n  Object(createClass[\"a\" /* default */])(Autocomplete, null, [{\n    key: \"getInitialState\",\n    value: function getInitialState() {\n      return {\n        selectedIndex: 0,\n        filteredOptions: [],\n        filterValue: '',\n        autocompleter: null,\n        AutocompleterUI: null\n      };\n    }\n  }]);\n\n  function Autocomplete() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Autocomplete);\n\n    _this = _super.apply(this, arguments);\n    _this.select = _this.select.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.reset = _this.reset.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeOptions = _this.onChangeOptions.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = _this.constructor.getInitialState();\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Autocomplete, [{\n    key: \"insertCompletion\",\n    value: function insertCompletion(replacement) {\n      var _this$state = this.state,\n          autocompleter = _this$state.autocompleter,\n          filterValue = _this$state.filterValue;\n      var _this$props = this.props,\n          record = _this$props.record,\n          onChange = _this$props.onChange;\n      var end = record.start;\n      var start = end - autocompleter.triggerPrefix.length - filterValue.length;\n      var toInsert = Object(external_this_wp_richText_[\"create\"])({\n        html: Object(external_this_wp_element_[\"renderToString\"])(replacement)\n      });\n      onChange(Object(external_this_wp_richText_[\"insert\"])(record, toInsert, start, end));\n    }\n  }, {\n    key: \"select\",\n    value: function select(option) {\n      var onReplace = this.props.onReplace;\n      var _this$state2 = this.state,\n          autocompleter = _this$state2.autocompleter,\n          filterValue = _this$state2.filterValue;\n\n      var _ref2 = autocompleter || {},\n          getOptionCompletion = _ref2.getOptionCompletion;\n\n      if (option.isDisabled) {\n        return;\n      }\n\n      if (getOptionCompletion) {\n        var completion = getOptionCompletion(option.value, filterValue);\n\n        var _ref3 = undefined === completion.action || undefined === completion.value ? {\n          action: 'insert-at-caret',\n          value: completion\n        } : completion,\n            action = _ref3.action,\n            value = _ref3.value;\n\n        if ('replace' === action) {\n          onReplace([value]);\n        } else if ('insert-at-caret' === action) {\n          this.insertCompletion(value);\n        }\n      } // Reset autocomplete state after insertion rather than before\n      // so insertion events don't cause the completion menu to redisplay.\n\n\n      this.reset();\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.setState(this.constructor.getInitialState());\n    }\n  }, {\n    key: \"announce\",\n    value: function announce(filteredOptions) {\n      var debouncedSpeak = this.props.debouncedSpeak;\n\n      if (!debouncedSpeak) {\n        return;\n      }\n\n      if (!!filteredOptions.length) {\n        debouncedSpeak(Object(external_this_wp_i18n_[\"sprintf\"])(\n        /* translators: %d: number of results. */\n        Object(external_this_wp_i18n_[\"_n\"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', filteredOptions.length), filteredOptions.length), 'assertive');\n      } else {\n        debouncedSpeak(Object(external_this_wp_i18n_[\"__\"])('No results.'), 'assertive');\n      }\n    }\n    /**\n     * Load options for an autocompleter.\n     *\n     * @param {Array} filteredOptions\n     */\n\n  }, {\n    key: \"onChangeOptions\",\n    value: function onChangeOptions(filteredOptions) {\n      var selectedIndex = filteredOptions.length === this.state.filteredOptions.length ? this.state.selectedIndex : 0;\n      this.setState({\n        filteredOptions: filteredOptions,\n        selectedIndex: selectedIndex\n      });\n      this.announce(filteredOptions);\n    }\n  }, {\n    key: \"handleKeyDown\",\n    value: function handleKeyDown(event) {\n      var _this$state3 = this.state,\n          autocompleter = _this$state3.autocompleter,\n          selectedIndex = _this$state3.selectedIndex,\n          filteredOptions = _this$state3.filteredOptions;\n\n      if (!autocompleter) {\n        return;\n      }\n\n      if (filteredOptions.length === 0) {\n        return;\n      }\n\n      var nextSelectedIndex;\n\n      switch (event.keyCode) {\n        case external_this_wp_keycodes_[\"UP\"]:\n          nextSelectedIndex = (selectedIndex === 0 ? filteredOptions.length : selectedIndex) - 1;\n          this.setState({\n            selectedIndex: nextSelectedIndex\n          });\n          break;\n\n        case external_this_wp_keycodes_[\"DOWN\"]:\n          nextSelectedIndex = (selectedIndex + 1) % filteredOptions.length;\n          this.setState({\n            selectedIndex: nextSelectedIndex\n          });\n          break;\n\n        case external_this_wp_keycodes_[\"ESCAPE\"]:\n          this.setState({\n            autocompleter: null,\n            AutocompleterUI: null\n          });\n          break;\n\n        case external_this_wp_keycodes_[\"ENTER\"]:\n          this.select(filteredOptions[selectedIndex]);\n          break;\n\n        case external_this_wp_keycodes_[\"LEFT\"]:\n        case external_this_wp_keycodes_[\"RIGHT\"]:\n          this.reset();\n          return;\n\n        default:\n          return;\n      } // Any handled keycode should prevent original behavior. This relies on\n      // the early return in the default case.\n\n\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props2 = this.props,\n          record = _this$props2.record,\n          completers = _this$props2.completers;\n      var prevRecord = prevProps.record;\n\n      if (Object(external_this_wp_richText_[\"isCollapsed\"])(record)) {\n        var text = Object(external_this_lodash_[\"deburr\"])(Object(external_this_wp_richText_[\"getTextContent\"])(Object(external_this_wp_richText_[\"slice\"])(record, 0)));\n        var prevText = Object(external_this_lodash_[\"deburr\"])(Object(external_this_wp_richText_[\"getTextContent\"])(Object(external_this_wp_richText_[\"slice\"])(prevRecord, 0)));\n\n        if (text !== prevText) {\n          var textAfterSelection = Object(external_this_wp_richText_[\"getTextContent\"])(Object(external_this_wp_richText_[\"slice\"])(record, undefined, Object(external_this_wp_richText_[\"getTextContent\"])(record).length));\n          var autocompleter = Object(external_this_lodash_[\"find\"])(completers, function (_ref4) {\n            var triggerPrefix = _ref4.triggerPrefix,\n                allowContext = _ref4.allowContext;\n            var index = text.lastIndexOf(triggerPrefix);\n\n            if (index === -1) {\n              return false;\n            }\n\n            if (allowContext && !allowContext(text.slice(0, index), textAfterSelection)) {\n              return false;\n            }\n\n            return /^\\S*$/.test(text.slice(index + triggerPrefix.length));\n          });\n\n          if (!autocompleter) {\n            this.reset();\n            return;\n          }\n\n          var safeTrigger = Object(external_this_lodash_[\"escapeRegExp\"])(autocompleter.triggerPrefix);\n          var match = text.match(new RegExp(\"\".concat(safeTrigger, \"(\\\\S*)$\")));\n          var query = match && match[1];\n          this.setState({\n            autocompleter: autocompleter,\n            AutocompleterUI: autocompleter !== this.state.autocompleter ? autocomplete_getAutoCompleterUI(autocompleter) : this.state.AutocompleterUI,\n            filterValue: query\n          });\n        }\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          children = _this$props3.children,\n          instanceId = _this$props3.instanceId,\n          isSelected = _this$props3.isSelected;\n      var _this$state4 = this.state,\n          autocompleter = _this$state4.autocompleter,\n          selectedIndex = _this$state4.selectedIndex,\n          filteredOptions = _this$state4.filteredOptions,\n          AutocompleterUI = _this$state4.AutocompleterUI,\n          filterValue = _this$state4.filterValue;\n\n      var _ref5 = filteredOptions[selectedIndex] || {},\n          _ref5$key = _ref5.key,\n          selectedKey = _ref5$key === void 0 ? '' : _ref5$key;\n\n      var _ref6 = autocompleter || {},\n          className = _ref6.className;\n\n      var isExpanded = !!autocompleter && filteredOptions.length > 0;\n      var listBoxId = isExpanded ? \"components-autocomplete-listbox-\".concat(instanceId) : null;\n      var activeId = isExpanded ? \"components-autocomplete-item-\".concat(instanceId, \"-\").concat(selectedKey) : null;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, children({\n        isExpanded: isExpanded,\n        listBoxId: listBoxId,\n        activeId: activeId,\n        onKeyDown: this.handleKeyDown\n      }), isSelected && AutocompleterUI && Object(external_this_wp_element_[\"createElement\"])(AutocompleterUI, {\n        className: className,\n        filterValue: filterValue,\n        instanceId: instanceId,\n        listBoxId: listBoxId,\n        selectedIndex: selectedIndex,\n        onChangeOptions: this.onChangeOptions,\n        onSelect: this.select,\n        onReset: this.onReset\n      }));\n    }\n  }]);\n\n  return Autocomplete;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var autocomplete = (Object(external_this_wp_compose_[\"compose\"])([with_spoken_messages, external_this_wp_compose_[\"withInstanceId\"]])(autocomplete_Autocomplete));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/styles/flex-styles.js\n\n\nfunction flex_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\nvar flex_styles_alignStyle = function alignStyle(_ref2) {\n  var align = _ref2.align;\n  var aligns = {\n    top: 'flex-start',\n    bottom: 'flex-end'\n  };\n  var value = aligns[align] || align;\n  return /*#__PURE__*/css_browser_esm({\n    alignItems: value\n  },  true ? \"\" : undefined);\n};\n\nvar flex_styles_justifyStyle = function justifyStyle(_ref3) {\n  var justify = _ref3.justify,\n      isReversed = _ref3.isReversed;\n  var justifies = {\n    left: 'flex-start',\n    right: 'flex-end'\n  };\n  var value = justifies[justify] || justify;\n\n  if (isReversed && justifies[justify]) {\n    value = justify === 'left' ? justifies.right : justifies.left;\n  }\n\n  return /*#__PURE__*/css_browser_esm({\n    justifyContent: value\n  },  true ? \"\" : undefined);\n};\n\nvar flex_styles_gapStyle = function gapStyle(_ref4) {\n  var gap = _ref4.gap,\n      isReversed = _ref4.isReversed;\n  var base = 4;\n  var value = typeof gap === 'number' ? base * gap : base;\n  var dir = isReversed ? 'left' : 'right';\n  var padding = \"padding-\".concat(dir);\n  return /*#__PURE__*/css_browser_esm(\"> *{\", padding, \":\", value, \"px;&:last-child{\", padding, \":0;}}\" + ( true ? \"\" : undefined));\n};\n\nvar flex_styles_ref =  true ? {\n  name: \"8kj89b\",\n  styles: \"flex-direction:row-reverse;\"\n} : undefined;\n\nvar reversedStyles = function reversedStyles(_ref5) {\n  var isReversed = _ref5.isReversed;\n  if (!isReversed) return '';\n  return flex_styles_ref;\n};\n\nvar Flex = styled_base_browser_esm(\"div\", {\n  target: \"eboqfv50\",\n  label: \"Flex\"\n})(\"box-sizing:border-box;display:flex;\", flex_styles_alignStyle, \";\", flex_styles_justifyStyle, \";\", flex_styles_gapStyle, \";\", reversedStyles, \";\" + ( true ? \"\" : undefined));\nvar Item = styled_base_browser_esm(\"div\", {\n  target: \"eboqfv51\",\n  label: \"Item\"\n})( true ? {\n  name: \"13luw5d\",\n  styles: \"box-sizing:border-box;min-width:0;max-width:100%;\"\n} : undefined);\nvar Block = /*#__PURE__*/styled_base_browser_esm(Item, {\n  target: \"eboqfv52\",\n  label: \"Block\"\n})( true ? {\n  name: \"1rr4qq7\",\n  styles: \"flex:1;\"\n} : undefined);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/item.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction FlexItem(_ref, ref) {\n  var className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\"]);\n\n  var classes = classnames_default()('components-flex__item', className);\n  return Object(external_this_wp_element_[\"createElement\"])(Item, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: classes,\n    ref: ref\n  }));\n}\n\n/* harmony default export */ var flex_item = (Object(external_this_wp_element_[\"forwardRef\"])(FlexItem));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/block.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction FlexBlock(_ref, ref) {\n  var className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\"]);\n\n  var classes = classnames_default()('components-flex__block', className);\n  return Object(external_this_wp_element_[\"createElement\"])(Block, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: classes,\n    ref: ref\n  }));\n}\n\n/* harmony default export */ var block = (Object(external_this_wp_element_[\"forwardRef\"])(FlexBlock));\n\n// CONCATENATED MODULE: ./node_modules/react-use-gesture/dist/react-use-gesture.esm.js\n\n\n// vector add\nfunction addV(v1, v2) {\n  return v1.map(function (v, i) {\n    return v + v2[i];\n  });\n} // vector substract\n\nfunction subV(v1, v2) {\n  return v1.map(function (v, i) {\n    return v - v2[i];\n  });\n}\n/**\r\n * Calculates velocity\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time offset\r\n * @param len the length of the delta vector\r\n * @returns velocity\r\n */\n\nfunction calculateVelocity(delta, delta_t, len) {\n  len = len || Math.hypot.apply(Math, delta);\n  return delta_t ? len / delta_t : 0;\n}\n/**\r\n * Calculates velocities vector\r\n * @template T the expected vector type\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time offset\r\n * @returns velocities vector\r\n */\n\nfunction calculateVelocities(delta, delta_t) {\n  return delta_t ? delta.map(function (v) {\n    return v / delta_t;\n  }) : Array(delta.length).fill(0);\n}\n/**\r\n * Calculates distance\r\n * @param movement the difference between current and initial vectors\r\n * @returns distance\r\n */\n\nfunction calculateDistance(movement) {\n  return Math.hypot.apply(Math, movement);\n}\n/**\r\n * Calculates direction\r\n * @template T the expected vector type\r\n * @param delta\r\n * @param len\r\n * @returns direction\r\n */\n\nfunction calculateDirection(delta, len) {\n  len = len || Math.hypot.apply(Math, delta) || 1;\n  return delta.map(function (v) {\n    return v / len;\n  });\n}\n/**\r\n * Calculates all kinematics\r\n * @template T the expected vector type\r\n * @param movement the difference between current and initial vectors\r\n * @param delta the difference between current and previous vectors\r\n * @param delta_t the time difference between current and previous timestamps\r\n * @returns all kinematics\r\n */\n\nfunction calculateAllKinematics(movement, delta, delta_t) {\n  var len = Math.hypot.apply(Math, delta);\n  return {\n    velocities: calculateVelocities(delta, delta_t),\n    velocity: calculateVelocity(delta, delta_t, len),\n    distance: calculateDistance(movement),\n    direction: calculateDirection(delta, len)\n  };\n}\nfunction getIntentionalDisplacement(movement, threshold) {\n  var abs = Math.abs(movement);\n  return abs >= threshold ? Math.sign(movement) * threshold : false;\n}\n\nfunction minMax(value, min, max) {\n  return Math.max(min, Math.min(value, max));\n} // Based on @aholachek ;)\n// https://twitter.com/chpwn/status/285540192096497664\n// iOS constant = 0.55\n// https://medium.com/@nathangitter/building-fluid-interfaces-ios-swift-9732bb934bf5\n\n\nfunction rubberband2(distance, constant) {\n  // default constant from the article is 0.7\n  return Math.pow(distance, constant * 5);\n}\n\nfunction rubberband(distance, dimension, constant) {\n  if (dimension === 0 || Math.abs(dimension) === Infinity) return rubberband2(distance, constant);\n  return distance * dimension * constant / (dimension + constant * distance);\n}\n\nfunction rubberbandIfOutOfBounds(position, min, max, constant) {\n  if (constant === void 0) {\n    constant = 0.15;\n  }\n\n  if (constant === 0) return minMax(position, min, max);\n\n  if (position < min) {\n    return -rubberband(min - position, max - min, constant) + min;\n  }\n\n  if (position > max) {\n    return rubberband(position - max, max - min, constant) + max;\n  }\n\n  return position;\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(n);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o) {\n  var i = 0;\n\n  if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n    if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () {\n      if (i >= o.length) return {\n        done: true\n      };\n      return {\n        done: false,\n        value: o[i++]\n      };\n    };\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n\n  i = o[Symbol.iterator]();\n  return i.next.bind(i);\n}\n\n// blank function\nfunction noop() {} // returns a function that chains all functions given as parameters\n\nvar chainFns = function chainFns() {\n  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n    fns[_key] = arguments[_key];\n  }\n\n  return function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return fns.forEach(function (fn) {\n      return fn.apply(void 0, args);\n    });\n  };\n};\nvar def = {\n  array: function array(value) {\n    return Array.isArray(value) ? value : [value, value];\n  },\n  withDefault: function withDefault(value, defaultIfUndefined) {\n    return value !== void 0 ? value : defaultIfUndefined;\n  }\n};\nfunction matchKeysFromObject(obj, matchingObject) {\n  var o = {};\n  Object.entries(obj).forEach(function (_ref) {\n    var key = _ref[0],\n        value = _ref[1];\n    return (value !== void 0 || key in matchingObject) && (o[key] = value);\n  });\n  return o;\n}\nfunction valueFn(v) {\n  return typeof v === 'function' ? v() : v;\n}\n\nfunction getInitialState() {\n  // common initial state for all gestures\n  var initialCommon = {\n    _active: false,\n    _blocked: false,\n    _intentional: [false, false],\n    _movement: [0, 0],\n    _initial: [0, 0],\n    _lastEventType: undefined,\n    event: undefined,\n    // currentTarget: undefined,\n    // pointerId: undefined,\n    values: [0, 0],\n    velocities: [0, 0],\n    delta: [0, 0],\n    movement: [0, 0],\n    offset: [0, 0],\n    lastOffset: [0, 0],\n    direction: [0, 0],\n    initial: [0, 0],\n    previous: [0, 0],\n    first: false,\n    last: false,\n    active: false,\n    timeStamp: 0,\n    startTime: 0,\n    elapsedTime: 0,\n    cancel: noop,\n    canceled: false,\n    memo: undefined,\n    args: undefined\n  }; // initial state for coordinates-based gestures\n\n  var initialCoordinates = {\n    axis: undefined,\n    xy: [0, 0],\n    vxvy: [0, 0],\n    velocity: 0,\n    distance: 0\n  }; // initial state for distance and angle-based gestures (pinch)\n\n  var initialDistanceAngle = {\n    da: [0, 0],\n    vdva: [0, 0],\n    origin: undefined,\n    turns: 0\n  }; // initial state object (used by the gesture controller)\n\n  return {\n    shared: {\n      hovering: false,\n      scrolling: false,\n      wheeling: false,\n      dragging: false,\n      moving: false,\n      pinching: false,\n      touches: 0,\n      buttons: 0,\n      down: false,\n      shiftKey: false,\n      altKey: false,\n      metaKey: false,\n      ctrlKey: false\n    },\n    drag: _extends({}, initialCommon, {}, initialCoordinates, {\n      _isTap: true,\n      _delayedEvent: false,\n      tap: false,\n      swipe: [0, 0]\n    }),\n    pinch: _extends({}, initialCommon, {}, initialDistanceAngle),\n    wheel: _extends({}, initialCommon, {}, initialCoordinates),\n    move: _extends({}, initialCommon, {}, initialCoordinates),\n    scroll: _extends({}, initialCommon, {}, initialCoordinates)\n  };\n}\n\nvar setListeners = function setListeners(add) {\n  return function (el, listeners, options) {\n    var action = add ? 'addEventListener' : 'removeEventListener';\n    listeners.forEach(function (_ref) {\n      var eventName = _ref[0],\n          fn = _ref[1];\n      return el[action](eventName, fn, options);\n    });\n  };\n};\n/**\r\n * Whether the browser supports GestureEvent (ie Safari)\r\n * @returns true if the browser supports gesture event\r\n */\n\n\nfunction supportsGestureEvents() {\n  try {\n    // TODO [TS] possibly find GestureEvent definitions?\n    // @ts-ignore: no type definitions for webkit GestureEvents\n    return 'constructor' in GestureEvent;\n  } catch (e) {\n    return false;\n  }\n}\nvar addListeners = /*#__PURE__*/setListeners(true);\nvar removeListeners = /*#__PURE__*/setListeners(false);\n/**\r\n * Gets modifier keys from event\r\n * @param event\r\n * @returns modifier keys\r\n */\n\nfunction getModifierKeys(event) {\n  var shiftKey = event.shiftKey,\n      altKey = event.altKey,\n      metaKey = event.metaKey,\n      ctrlKey = event.ctrlKey;\n  return {\n    shiftKey: shiftKey,\n    altKey: altKey,\n    metaKey: metaKey,\n    ctrlKey: ctrlKey\n  };\n}\n\nfunction getTouchEvents(event) {\n  if ('touches' in event) {\n    var touches = event.touches,\n        changedTouches = event.changedTouches;\n    return touches.length > 0 ? touches : changedTouches;\n  }\n\n  return null;\n}\n\nfunction getGenericEventData(event) {\n  var buttons = 'buttons' in event ? event.buttons : 0;\n  var touchEvents = getTouchEvents(event);\n  var touches = touchEvents && touchEvents.length || 0;\n  var down = touches > 0 || buttons > 0;\n  return _extends({\n    touches: touches,\n    down: down,\n    buttons: buttons\n  }, getModifierKeys(event));\n}\n/**\r\n * Gets scroll event values\r\n * @param event\r\n * @returns scroll event values\r\n */\n\nfunction getScrollEventValues(event) {\n  // If the currentTarget is the window then we return the scrollX/Y position.\n  // If not (ie the currentTarget is a DOM element), then we return scrollLeft/Top\n  var _event$currentTarget = event.currentTarget,\n      scrollX = _event$currentTarget.scrollX,\n      scrollY = _event$currentTarget.scrollY,\n      scrollLeft = _event$currentTarget.scrollLeft,\n      scrollTop = _event$currentTarget.scrollTop;\n  return {\n    values: [scrollX || scrollLeft || 0, scrollY || scrollTop || 0]\n  };\n}\n/**\r\n * Gets wheel event values.\r\n * @param event\r\n * @returns wheel event values\r\n */\n\nfunction getWheelEventValues(event) {\n  var deltaX = event.deltaX,\n      deltaY = event.deltaY; //TODO implement polyfill ?\n  // https://developer.mozilla.org/en-US/docs/Web/Events/wheel#Polyfill\n\n  return {\n    values: [deltaX, deltaY]\n  };\n}\n/**\r\n * Gets pointer event values.\r\n * @param event\r\n * @returns pointer event values\r\n */\n\nfunction getPointerEventValues(event) {\n  var touchEvents = getTouchEvents(event);\n\n  var _ref2 = touchEvents ? touchEvents[0] : event,\n      clientX = _ref2.clientX,\n      clientY = _ref2.clientY;\n\n  return {\n    values: [clientX, clientY]\n  };\n}\nvar WEBKIT_DISTANCE_SCALE_FACTOR = 260;\n/**\r\n * Gets webkit gesture event values.\r\n * @param event\r\n * @returns webkit gesture event values\r\n */\n\nfunction getWebkitGestureEventValues(event) {\n  return {\n    values: [event.scale * WEBKIT_DISTANCE_SCALE_FACTOR, event.rotation]\n  };\n}\n/**\r\n * Gets two touches event data\r\n * @param event\r\n * @returns two touches event data\r\n */\n\nfunction getTwoTouchesEventData(event) {\n  var touches = event.touches;\n  var dx = touches[1].clientX - touches[0].clientX;\n  var dy = touches[1].clientY - touches[0].clientY;\n  var values = [Math.hypot(dx, dy), -(Math.atan2(dx, dy) * 180) / Math.PI];\n  var origin = [(touches[1].clientX + touches[0].clientX) / 2, (touches[1].clientY + touches[0].clientY) / 2];\n  return {\n    values: values,\n    origin: origin\n  };\n}\n\n/**\r\n * The controller will keep track of the state for all gestures and also keep\r\n * track of timeouts, and window listeners.\r\n *\r\n * @template BinderType the type the bind function should return\r\n */\n\nvar Controller = function Controller() {\n  var _this = this;\n\n  this.state = getInitialState(); // state for all gestures\n\n  this.timeouts = {}; // keeping track of timeouts for debounced gestures (such as move, scroll, wheel)\n\n  this.domListeners = []; // when config.domTarget is set, we attach events directly to the dom\n\n  this.windowListeners = {}; // keeps track of window listeners added by gestures (drag only at the moment)\n\n  this.bindings = {}; // an object holding the handlers associated to the gestures\n\n  /**\r\n   * Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.\r\n   */\n\n  this.clean = function () {\n    _this.resetBindings();\n\n    Object.values(_this.timeouts).forEach(clearTimeout);\n    Object.keys(_this.windowListeners).forEach(function (stateKey) {\n      return _this.removeWindowListeners(stateKey);\n    });\n  };\n  /**\r\n   * Function run every time the bind function is run (ie on every render).\r\n   * Resets the binding object and remove dom listeners attached to config.domTarget\r\n   */\n\n\n  this.resetBindings = function () {\n    _this.bindings = {};\n\n    var domTarget = _this.getDomTarget();\n\n    if (domTarget) {\n      removeListeners(domTarget, _this.domListeners, _this.config.eventOptions);\n      _this.domListeners = [];\n    }\n  };\n  /**\r\n   * Returns the domTarget element and parses a ref if needed.\r\n   */\n\n\n  this.getDomTarget = function () {\n    var domTarget = _this.config.domTarget;\n    return domTarget && 'current' in domTarget ? domTarget.current : domTarget;\n  };\n  /**\r\n   * Commodity function to let recognizers simply add listeners to config.window.\r\n   */\n\n\n  this.addWindowListeners = function (stateKey, listeners) {\n    if (!_this.config.window) return; // we use this.windowListeners to keep track of the listeners we add\n\n    _this.windowListeners[stateKey] = listeners;\n    addListeners(_this.config.window, listeners, _this.config.eventOptions);\n  };\n  /**\r\n   * Commodity function to let recognizers simply remove listeners to config.window.\r\n   */\n\n\n  this.removeWindowListeners = function (stateKey) {\n    if (!_this.config.window) return;\n    var listeners = _this.windowListeners[stateKey];\n\n    if (listeners) {\n      removeListeners(_this.config.window, listeners, _this.config.eventOptions);\n      delete _this.windowListeners[stateKey];\n    }\n  };\n  /**\r\n   * When config.domTarget is set, this function will add dom listeners to it\r\n   */\n\n\n  this.addDomTargetListeners = function (target) {\n    /** We iterate on the entries of this.binding for each event, then we chain\r\n     * the array of functions mapped to it and push them to this.domListeners\r\n     */\n    Object.entries(_this.bindings).forEach(function (_ref) {\n      var event = _ref[0],\n          fns = _ref[1];\n\n      _this.domListeners.push([event.substr(2).toLowerCase(), chainFns.apply(void 0, fns)]);\n    });\n    addListeners(target, _this.domListeners, _this.config.eventOptions);\n  };\n  /**\r\n   * this.bindings is an object which keys match ReactEventHandlerKeys.\r\n   * Since a recognizer might want to bind a handler function to an event key already used by a previously\r\n   * added recognizer, we need to make sure that each event key is an array of all the functions mapped for\r\n   * that key.\r\n   */\n\n\n  this.addBindings = function (eventNames, fn) {\n    var eventNamesArray = !Array.isArray(eventNames) ? [eventNames] : eventNames;\n    eventNamesArray.forEach(function (eventName) {\n      if (_this.bindings[eventName]) _this.bindings[eventName].push(fn);else _this.bindings[eventName] = [fn];\n    });\n  };\n  /**\r\n   * getBindings will return an object that will be bound by users\r\n   * to the react component they want to interact with.\r\n   */\n\n\n  this.getBindings = function () {\n    var bindings = {};\n    var captureString = _this.config.captureString;\n    Object.entries(_this.bindings).forEach(function (_ref2) {\n      var event = _ref2[0],\n          fns = _ref2[1];\n      var fnsArray = Array.isArray(fns) ? fns : [fns];\n      var key = event + captureString;\n      bindings[key] = chainFns.apply(void 0, fnsArray);\n    });\n    return bindings;\n  };\n\n  this.getBind = function () {\n    // If config.domTarget is set we add event listeners to it and return the clean function.\n    if (_this.config.domTarget) {\n      var domTarget = _this.getDomTarget();\n\n      domTarget && _this.addDomTargetListeners(domTarget);\n      return _this.clean;\n    } // If not, we return an object that contains gesture handlers mapped to react handler event keys.\n\n\n    return _this.getBindings();\n  };\n};\n\n/**\r\n * @private\r\n *\r\n * Utility hook called by all gesture hooks and that will be responsible for the internals.\r\n *\r\n * @param {Partial<InternalHandlers>} handlers\r\n * @param {RecognizerClasses} classes\r\n * @param {InternalConfig} config\r\n * @param {NativeHandlersPartial} nativeHandlers - native handlers such as onClick, onMouseDown, etc.\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useRecognizers(handlers, classes, config, nativeHandlers) {\n  // The gesture controller keeping track of all gesture states\n  var controller = external_this_React_default.a.useMemo(function () {\n    var current = new Controller();\n    /**\r\n     * The bind function will create gesture recognizers and return the right\r\n     * bind object depending on whether `domTarget` was specified in the config object.\r\n     */\n\n    var bind = function bind() {\n      current.resetBindings();\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      for (var _iterator = _createForOfIteratorHelperLoose(classes), _step; !(_step = _iterator()).done;) {\n        var RecognizerClass = _step.value;\n        new RecognizerClass(current, args).addBindings();\n      } // we also add event bindings for native handlers\n\n\n      if (controller.nativeRefs) {\n        for (var eventName in controller.nativeRefs) {\n          current.addBindings(eventName, // @ts-ignore we're cheating when it comes to event type :(\n          controller.nativeRefs[eventName]);\n        }\n      }\n\n      return current.getBind();\n    };\n\n    return {\n      nativeRefs: nativeHandlers,\n      current: current,\n      bind: bind\n    };\n  }, []); // We reassign the config and handlers to the controller on every render.\n\n  controller.current.config = config;\n  controller.current.handlers = handlers; // We assign nativeHandlers, otherwise they won't be refreshed on the next render.\n\n  controller.nativeRefs = nativeHandlers; // Run controller clean functions on unmount.\n\n  external_this_React_default.a.useEffect(function () {\n    return controller.current.clean;\n  }, []);\n  return controller.bind;\n}\n\n/**\r\n * @private\r\n * Recognizer abstract class.\r\n *\r\n * @protected\r\n * @abstract\r\n * @type {StateKey<T>} whether the Recognizer should deal with coordinates or distance / angle\r\n */\n\nvar Recognizer = /*#__PURE__*/function () {\n  /**\r\n   * Creates an instance of a gesture recognizer.\r\n   * @param stateKey drag, move, pinch, etc.\r\n   * @param controller the controller attached to the gesture\r\n   * @param [args] the args that should be passed to the gesture handler\r\n   */\n  function Recognizer(stateKey, controller, args) {\n    var _this = this;\n\n    if (args === void 0) {\n      args = [];\n    }\n\n    this.stateKey = stateKey;\n    this.controller = controller;\n    this.args = args;\n    this.debounced = true; // Convenience method to set a timeout for a given gesture\n\n    this.setTimeout = function (callback, ms) {\n      var _window;\n\n      if (ms === void 0) {\n        ms = 140;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n        args[_key - 2] = arguments[_key];\n      }\n\n      _this.controller.timeouts[_this.stateKey] = (_window = window).setTimeout.apply(_window, [callback, ms].concat(args));\n    }; // Convenience method to clear a timeout for a given gesture\n\n\n    this.clearTimeout = function () {\n      clearTimeout(_this.controller.timeouts[_this.stateKey]);\n    }; // Convenience method to add window listeners for a given gesture\n\n\n    this.addWindowListeners = function (listeners) {\n      _this.controller.addWindowListeners(_this.stateKey, listeners);\n    }; // Convenience method to remove window listeners for a given gesture\n\n\n    this.removeWindowListeners = function () {\n      _this.controller.removeWindowListeners(_this.stateKey);\n    };\n    /**\r\n     * Returns the reinitialized start state for the gesture.\r\n     * Should be common to all gestures.\r\n     *\r\n     * @param {Vector2} values\r\n     * @param {UseGestureEvent} event\r\n     * @returns - the start state for the gesture\r\n     */\n\n\n    this.getStartGestureState = function (values, event) {\n      return _extends({}, getInitialState()[_this.stateKey], {\n        _active: true,\n        values: values,\n        initial: values,\n        offset: _this.state.offset,\n        lastOffset: _this.state.offset,\n        startTime: event.timeStamp\n      });\n    }; // Runs rubberband on a vector\n\n\n    this.rubberband = function (vector, rubberband) {\n      var bounds = _this.config.bounds;\n      /**\r\n       * [x, y]: [rubberband(x, min, max), rubberband(y, min, max)]\r\n       */\n\n      return vector.map(function (v, i) {\n        return rubberbandIfOutOfBounds(v, bounds[i][0], bounds[i][1], rubberband[i]);\n      });\n    };\n    /**\r\n     * Fires the gesture handler\r\n     *\r\n     * @param {boolean} [forceFlag] - if true, then the handler will fire even if the gesture is not intentional\r\n     */\n\n\n    this.fireGestureHandler = function (forceFlag) {\n      /**\r\n       * If the gesture has been blocked (this can happen when the gesture has started in an unwanted direction),\r\n       * clean everything and don't do anything.\r\n       */\n      if (_this.state._blocked) {\n        // we need debounced gestures to end by themselves\n        if (!_this.debounced) {\n          _this.state._active = false;\n\n          _this.clean();\n        }\n\n        return null;\n      } // If the gesture has no intentional dimension, don't do fire the handler.\n\n\n      var _this$state$_intentio = _this.state._intentional,\n          intentionalX = _this$state$_intentio[0],\n          intentionalY = _this$state$_intentio[1];\n      if (!forceFlag && intentionalX === false && intentionalY === false) return null;\n      var _this$state = _this.state,\n          _active = _this$state._active,\n          active = _this$state.active;\n      _this.state.active = _active;\n      _this.state.first = _active && !active; // `first` is true when the gesture becomes active\n\n      _this.state.last = active && !_active; // `last` is true when the gesture becomes inactive\n\n      _this.controller.state.shared[_this.ingKey] = _active; // Sets dragging, pinching, etc. to the gesture active state\n\n      var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.mapStateValues(_this.state)); // @ts-ignore\n\n\n      var newMemo = _this.handler(state); // Sets memo to the returned value of the handler (unless it's not undefined)\n\n\n      _this.state.memo = newMemo !== void 0 ? newMemo : _this.state.memo; // Cleans the gesture when the gesture is no longer active.\n\n      if (!_active) _this.clean();\n      return state;\n    };\n  } // Returns the gesture config\n\n\n  var _proto = Recognizer.prototype;\n\n  // Conveninence method to update the shared state\n  _proto.updateSharedState = function updateSharedState(sharedState) {\n    Object.assign(this.controller.state.shared, sharedState);\n  } // Conveninence method to update the gesture state\n  ;\n\n  _proto.updateGestureState = function updateGestureState(gestureState) {\n    Object.assign(this.state, gestureState);\n  }\n  /**\r\n   * Returns a generic, common payload for all gestures from an event.\r\n   *\r\n   * @param {UseGestureEvent} event\r\n   * @param {boolean} [isStartEvent]\r\n   * @returns - the generic gesture payload\r\n   */\n  ;\n\n  _proto.getGenericPayload = function getGenericPayload(event, isStartEvent) {\n    var timeStamp = event.timeStamp,\n        type = event.type;\n    var _this$state2 = this.state,\n        values = _this$state2.values,\n        startTime = _this$state2.startTime;\n    return {\n      _lastEventType: type,\n      event: event,\n      timeStamp: timeStamp,\n      elapsedTime: isStartEvent ? 0 : timeStamp - startTime,\n      args: this.args,\n      previous: values\n    };\n  }\n  /**\r\n   * Returns state properties depending on the movement and state.\r\n   *\r\n   * Should be overriden for custom behavior, doesn't do anything in the implementation\r\n   * below.\r\n   */\n  ;\n\n  _proto.checkIntentionality = function checkIntentionality(_intentional, _movement, _state) {\n    return {\n      _intentional: _intentional,\n      _blocked: false\n    };\n  }\n  /**\r\n   * Returns basic movement properties for the gesture based on the next values and current state.\r\n   */\n  ;\n\n  _proto.getMovement = function getMovement(values, state) {\n    if (state === void 0) {\n      state = this.state;\n    }\n\n    var _this$config = this.config,\n        initial = _this$config.initial,\n        threshold = _this$config.threshold,\n        rubberband = _this$config.rubberband;\n    var t0 = threshold[0],\n        t1 = threshold[1];\n    var _state2 = state,\n        _initial = _state2._initial,\n        _active = _state2._active,\n        intentional = _state2._intentional,\n        lastOffset = _state2.lastOffset,\n        prevMovement = _state2.movement;\n    var i0 = intentional[0],\n        i1 = intentional[1];\n\n    var _this$getInternalMove = this.getInternalMovement(values, state),\n        _m0 = _this$getInternalMove[0],\n        _m1 = _this$getInternalMove[1];\n    /**\r\n     * For both dimensions of the gesture, check its intentionality on each frame.\r\n     */\n\n\n    if (i0 === false) {\n      i0 = getIntentionalDisplacement(_m0, t0);\n    }\n\n    if (i1 === false) {\n      i1 = getIntentionalDisplacement(_m1, t1);\n    } // Get gesture specific state properties based on intentionality and movement.\n\n\n    var intentionalityCheck = this.checkIntentionality([i0, i1], [_m0, _m1], state);\n    var _intentional = intentionalityCheck._intentional,\n        _blocked = intentionalityCheck._blocked;\n    var _i0 = _intentional[0],\n        _i1 = _intentional[1];\n    var _movement = [_m0, _m1];\n    if (_i0 !== false && intentional[0] === false) _initial[0] = valueFn(initial)[0];\n    if (_i1 !== false && intentional[1] === false) _initial[1] = valueFn(initial)[1];\n    /**\r\n     * If the gesture has been blocked (from gesture specific checkIntentionality),\r\n     * stop right there.\r\n     */\n\n    if (_blocked) return _extends({}, intentionalityCheck, {\n      _movement: _movement,\n      delta: [0, 0]\n    });\n    /**\r\n     * The movement sent to the handler has 0 in its dimensions when intentionality is false.\r\n     * It is calculated from the actual movement minus the threshold.\r\n     */\n\n    var movement = [_i0 !== false ? _m0 - _i0 : valueFn(initial)[0], _i1 !== false ? _m1 - _i1 : valueFn(initial)[1]];\n    var offset = addV(movement, lastOffset);\n    /**\r\n     * Rubberband should be 0 when the gesture is no longer active, so that movement\r\n     * and offset can return within their bounds.\r\n     */\n\n    var _rubberband = _active ? rubberband : [0, 0];\n\n    movement = this.rubberband(addV(movement, _initial), _rubberband); // rubberbanded movement\n\n    return _extends({}, intentionalityCheck, {\n      _initial: _initial,\n      _movement: _movement,\n      movement: movement,\n      offset: this.rubberband(offset, _rubberband),\n      delta: subV(movement, prevMovement)\n    });\n  } // Cleans the gesture. Can be overriden by gestures.\n  ;\n\n  _proto.clean = function clean() {\n    this.clearTimeout();\n    this.removeWindowListeners();\n  };\n\n  _createClass(Recognizer, [{\n    key: \"config\",\n    get: function get() {\n      return this.controller.config[this.stateKey];\n    } // Is the gesture enabled\n\n  }, {\n    key: \"enabled\",\n    get: function get() {\n      return this.controller.config.enabled && this.config.enabled;\n    } // Returns the controller state for a given gesture\n\n  }, {\n    key: \"state\",\n    get: function get() {\n      return this.controller.state[this.stateKey];\n    } // Returns the gesture handler\n\n  }, {\n    key: \"handler\",\n    get: function get() {\n      return this.controller.handlers[this.stateKey];\n    }\n  }]);\n\n  return Recognizer;\n}();\n\n/**\r\n * @private\r\n * Abstract class for coordinates-based gesture recongizers\r\n * @abstract\r\n * @class CoordinatesRecognizer\r\n * @extends {Recognizer<T>}\r\n * @template T\r\n */\n\nvar CoordinatesRecognizer = /*#__PURE__*/function (_Recognizer) {\n  _inheritsLoose(CoordinatesRecognizer, _Recognizer);\n\n  function CoordinatesRecognizer() {\n    return _Recognizer.apply(this, arguments) || this;\n  }\n\n  var _proto = CoordinatesRecognizer.prototype;\n\n  /**\r\n   * Returns the real movement (without taking intentionality into acount)\r\n   */\n  _proto.getInternalMovement = function getInternalMovement(values, state) {\n    return subV(values, state.initial);\n  }\n  /**\r\n   * In coordinates-based gesture, this function will detect the first intentional axis,\r\n   * lock the gesture axis if lockDirection is specified in the config, block the gesture\r\n   * if the first intentional axis doesn't match the specified axis in config.\r\n   *\r\n   * @param {[FalseOrNumber, FalseOrNumber]} _intentional\r\n   * @param {Vector2} _movement\r\n   * @param {PartialGestureState<T>} state\r\n   */\n  ;\n\n  _proto.checkIntentionality = function checkIntentionality(_intentional, _movement, state) {\n    var _intentional2 = _intentional,\n        _ix = _intentional2[0],\n        _iy = _intentional2[1];\n    var intentionalMovement = _ix !== false || _iy !== false;\n    var axis = state.axis;\n    var _blocked = false; // If the movement is intentional, we can compute axis.\n\n    if (intentionalMovement) {\n      var _movement$map = _movement.map(Math.abs),\n          absX = _movement$map[0],\n          absY = _movement$map[1];\n\n      var _this$config = this.config,\n          configAxis = _this$config.axis,\n          lockDirection = _this$config.lockDirection; // We make sure we only set axis value if it hadn't been detected before.\n\n      axis = axis || (absX > absY ? 'x' : absX < absY ? 'y' : undefined);\n\n      if (!!configAxis || lockDirection) {\n        if (!!axis) {\n          // If the detected axis doesn't match the config axis we block the gesture\n          if (!!configAxis && axis !== configAxis) _blocked = true;else {\n            // Otherwise we prevent the gesture from updating the unwanted axis.\n            var lockedIndex = axis === 'x' ? 1 : 0;\n            _intentional[lockedIndex] = false;\n          }\n        } else {\n          // Until we've detected the axis, we prevent the hnadler from updating.\n          _intentional = [false, false];\n        }\n      }\n    }\n\n    return {\n      _intentional: _intentional,\n      _blocked: _blocked,\n      axis: axis\n    };\n  };\n\n  _proto.getKinematics = function getKinematics(values, event) {\n    var timeStamp = this.state.timeStamp;\n    var movementDetection = this.getMovement(values, this.state);\n    var _blocked = movementDetection._blocked,\n        delta = movementDetection.delta,\n        movement = movementDetection.movement;\n    if (_blocked) return movementDetection;\n    var delta_t = event.timeStamp - timeStamp;\n    var kinematics = calculateAllKinematics(movement, delta, delta_t);\n    return _extends({\n      values: values,\n      delta: delta\n    }, movementDetection, {}, kinematics);\n  };\n\n  _proto.mapStateValues = function mapStateValues(state) {\n    return {\n      xy: state.values,\n      vxvy: state.velocities\n    };\n  };\n\n  return CoordinatesRecognizer;\n}(Recognizer);\n\nvar TAP_DISTANCE_THRESHOLD = 3;\nvar SWIPE_MAX_ELAPSED_TIME = 220;\nvar FILTER_REPEATED_EVENTS_DELAY = 200;\n\nvar DragRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n  _inheritsLoose(DragRecognizer, _CoordinatesRecognize);\n\n  function DragRecognizer(controller, args) {\n    var _this;\n\n    _this = _CoordinatesRecognize.call(this, 'drag', controller, args) || this;\n    _this.ingKey = 'dragging';\n    _this.wasTouch = false;\n\n    _this.isEventTypeTouch = function (type) {\n      return !!type && type.indexOf('touch') === 0;\n    };\n\n    _this.dragShouldStart = function (event) {\n      var _getGenericEventData = getGenericEventData(event),\n          touches = _getGenericEventData.touches;\n\n      var _lastEventType = _this.state._lastEventType;\n      /**\r\n       * This tries to filter out mouse events triggered by touch screens\r\n       * */\n      // If the previous gesture was touch-based, and the current one is mouse based,\n      // this means that we might be dealing with mouse simulated events if they're close to\n      // each other. We're only doing this check when we're not using pointer events.\n\n      if (!_this.controller.config.pointer && _this.isEventTypeTouch(_lastEventType) && !_this.isEventTypeTouch(event.type)) {\n        var delay = Math.abs(event.timeStamp - _this.state.startTime);\n        if (delay < FILTER_REPEATED_EVENTS_DELAY) return false;\n      }\n\n      return _this.enabled && touches < 2;\n    };\n\n    _this.setPointers = function (event) {\n      var currentTarget = event.currentTarget,\n          pointerId = event.pointerId;\n      if (currentTarget) currentTarget.setPointerCapture(pointerId);\n\n      _this.updateGestureState({\n        currentTarget: currentTarget,\n        pointerId: pointerId\n      });\n    };\n\n    _this.removePointers = function () {\n      var _this$state = _this.state,\n          currentTarget = _this$state.currentTarget,\n          pointerId = _this$state.pointerId;\n      if (currentTarget && pointerId) currentTarget.releasePointerCapture(pointerId);\n    };\n\n    _this.setListeners = function (isTouch) {\n      _this.removeWindowListeners();\n\n      var dragListeners = isTouch ? [['touchmove', _this.onDragChange], ['touchend', _this.onDragEnd], ['touchcancel', _this.onDragEnd]] : [['mousemove', _this.onDragChange], ['mouseup', _this.onDragEnd]];\n\n      _this.addWindowListeners(dragListeners);\n    };\n\n    _this.onDragStart = function (event) {\n      if (!_this.dragShouldStart(event)) return; // if pointers events\n\n      if (_this.controller.config.pointer) _this.setPointers(event);else _this.setListeners(_this.isEventTypeTouch(event.type));\n\n      if (_this.config.delay > 0) {\n        _this.state._delayedEvent = true;\n        if (typeof event.persist === 'function') event.persist();\n\n        _this.setTimeout(function () {\n          return _this.startDrag(event);\n        }, _this.config.delay);\n      } else {\n        _this.startDrag(event);\n      }\n    };\n\n    _this.onDragChange = function (event) {\n      var canceled = _this.state.canceled;\n      if (canceled) return;\n\n      if (!_this.state._active) {\n        if (_this.state._delayedEvent) {\n          _this.clearTimeout();\n\n          _this.startDrag(event);\n        }\n\n        return;\n      }\n\n      var genericEventData = getGenericEventData(event);\n\n      if (!genericEventData.down) {\n        _this.onDragEnd(event);\n\n        return;\n      }\n\n      _this.updateSharedState(genericEventData);\n\n      var _getPointerEventValue = getPointerEventValues(event),\n          values = _getPointerEventValue.values;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      var _isTap = _this.state._isTap;\n      if (_isTap && calculateDistance(kinematics._movement) >= TAP_DISTANCE_THRESHOLD) _isTap = false;\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {\n        _isTap: _isTap,\n        cancel: function cancel() {\n          return _this.onCancel();\n        }\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onDragEnd = function (event) {\n      _this.state._active = false;\n\n      _this.updateSharedState({\n        down: false,\n        buttons: 0,\n        touches: 0\n      });\n\n      var _this$state2 = _this.state,\n          _isTap = _this$state2._isTap,\n          values = _this$state2.values,\n          _this$state2$velociti = _this$state2.velocities,\n          vx = _this$state2$velociti[0],\n          vy = _this$state2$velociti[1],\n          _this$state2$movement = _this$state2.movement,\n          mx = _this$state2$movement[0],\n          my = _this$state2$movement[1],\n          _this$state2$_intenti = _this$state2._intentional,\n          ix = _this$state2$_intenti[0],\n          iy = _this$state2$_intenti[1];\n\n      var endState = _extends({}, _this.getGenericPayload(event), {}, _this.getMovement(values));\n\n      var elapsedTime = endState.elapsedTime;\n      var _this$config = _this.config,\n          _this$config$swipeVel = _this$config.swipeVelocity,\n          svx = _this$config$swipeVel[0],\n          svy = _this$config$swipeVel[1],\n          _this$config$swipeDis = _this$config.swipeDistance,\n          sx = _this$config$swipeDis[0],\n          sy = _this$config$swipeDis[1];\n      var swipe = [0, 0];\n\n      if (elapsedTime < SWIPE_MAX_ELAPSED_TIME) {\n        if (ix !== false && Math.abs(vx) > svx && Math.abs(mx) > sx) swipe[0] = Math.sign(vx);\n        if (iy !== false && Math.abs(vy) > svy && Math.abs(my) > sy) swipe[1] = Math.sign(vy);\n      }\n\n      _this.updateGestureState(_extends({\n        event: event\n      }, endState, {\n        tap: _isTap,\n        swipe: swipe\n      }));\n\n      _this.fireGestureHandler(_this.config.filterTaps && _this.state._isTap);\n    };\n\n    _this.clean = function () {\n      _CoordinatesRecognize.prototype.clean.call(_assertThisInitialized(_this));\n\n      _this.state._delayedEvent = false;\n      if (_this.controller.config.pointer) _this.removePointers();\n    };\n\n    _this.onCancel = function () {\n      _this.updateGestureState({\n        canceled: true,\n        cancel: noop\n      });\n\n      _this.state._active = false;\n\n      _this.updateSharedState({\n        down: false,\n        buttons: 0,\n        touches: 0\n      });\n\n      requestAnimationFrame(function () {\n        return _this.fireGestureHandler();\n      });\n    };\n\n    return _this;\n  }\n\n  var _proto = DragRecognizer.prototype;\n\n  _proto.startDrag = function startDrag(event) {\n    var _this2 = this;\n\n    var _getPointerEventValue2 = getPointerEventValues(event),\n        values = _getPointerEventValue2.values;\n\n    this.updateSharedState(getGenericEventData(event));\n\n    var startState = _extends({}, this.getStartGestureState(values, event), {}, this.getGenericPayload(event, true));\n\n    this.updateGestureState(_extends({}, startState, {}, this.getMovement(values, startState), {\n      cancel: function cancel() {\n        return _this2.onCancel();\n      }\n    }));\n    this.fireGestureHandler();\n  };\n\n  _proto.addBindings = function addBindings() {\n    if (this.controller.config.pointer) {\n      this.controller.addBindings('onPointerDown', this.onDragStart);\n      this.controller.addBindings('onPointerMove', this.onDragChange);\n      this.controller.addBindings(['onPointerUp', 'onPointerCancel'], this.onDragEnd);\n    } else {\n      this.controller.addBindings(['onTouchStart', 'onMouseDown'], this.onDragStart);\n    }\n  };\n\n  return DragRecognizer;\n}(CoordinatesRecognizer);\n\nvar DEFAULT_DRAG_DELAY = 180;\nvar DEFAULT_RUBBERBAND = 0.15;\nvar DEFAULT_SWIPE_VELOCITY = 0.5;\nvar DEFAULT_SWIPE_DISTANCE = 60;\nvar defaultWindow = typeof window !== 'undefined' ? window : undefined;\nvar defaultCoordinatesOptions = {\n  lockDirection: false,\n  axis: undefined,\n  bounds: undefined\n};\n/**\r\n * @private\r\n *\r\n * Returns the internal generic option object.\r\n *\r\n * @param {Partial<GenericOptions>} [config={}]\r\n * @returns {InternalGenericOptions}\r\n */\n\nfunction getInternalGenericOptions(config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      _config$eventOptions = _config.eventOptions;\n  _config$eventOptions = _config$eventOptions === void 0 ? {} : _config$eventOptions;\n\n  var _config$eventOptions$ = _config$eventOptions.passive,\n      passive = _config$eventOptions$ === void 0 ? true : _config$eventOptions$,\n      _config$eventOptions$2 = _config$eventOptions.capture,\n      capture = _config$eventOptions$2 === void 0 ? false : _config$eventOptions$2,\n      _config$eventOptions$3 = _config$eventOptions.pointer,\n      pointer = _config$eventOptions$3 === void 0 ? false : _config$eventOptions$3,\n      _config$window = _config.window,\n      window = _config$window === void 0 ? defaultWindow : _config$window,\n      _config$domTarget = _config.domTarget,\n      domTarget = _config$domTarget === void 0 ? undefined : _config$domTarget,\n      _config$enabled = _config.enabled,\n      enabled = _config$enabled === void 0 ? true : _config$enabled,\n      restConfig = _objectWithoutPropertiesLoose(_config, [\"eventOptions\", \"window\", \"domTarget\", \"enabled\"]);\n\n  return _extends({}, restConfig, {\n    enabled: enabled,\n    domTarget: domTarget,\n    window: window,\n    // passive is always true if there's no domTarget\n    eventOptions: {\n      passive: !domTarget || !!passive,\n      capture: !!capture\n    },\n    captureString: capture ? 'Capture' : '',\n    pointer: !!pointer\n  });\n}\nfunction getInternalGestureOptions(gestureConfig) {\n  var _gestureConfig$thresh = gestureConfig.threshold,\n      threshold = _gestureConfig$thresh === void 0 ? undefined : _gestureConfig$thresh,\n      _gestureConfig$rubber = gestureConfig.rubberband,\n      rubberband = _gestureConfig$rubber === void 0 ? 0 : _gestureConfig$rubber,\n      _gestureConfig$enable = gestureConfig.enabled,\n      enabled = _gestureConfig$enable === void 0 ? true : _gestureConfig$enable,\n      _gestureConfig$initia = gestureConfig.initial,\n      initial = _gestureConfig$initia === void 0 ? [0, 0] : _gestureConfig$initia;\n  if (typeof rubberband === 'boolean') rubberband = rubberband ? DEFAULT_RUBBERBAND : 0;\n  if (threshold === void 0) threshold = 0;\n  return {\n    enabled: enabled,\n    initial: initial,\n    threshold: def.array(threshold),\n    rubberband: def.array(rubberband)\n  };\n}\nfunction getInternalCoordinatesOptions(coordinatesConfig) {\n  if (coordinatesConfig === void 0) {\n    coordinatesConfig = {};\n  }\n\n  var _coordinatesConfig = coordinatesConfig,\n      axis = _coordinatesConfig.axis,\n      lockDirection = _coordinatesConfig.lockDirection,\n      _coordinatesConfig$bo = _coordinatesConfig.bounds,\n      bounds = _coordinatesConfig$bo === void 0 ? {} : _coordinatesConfig$bo,\n      internalOptions = _objectWithoutPropertiesLoose(_coordinatesConfig, [\"axis\", \"lockDirection\", \"bounds\"]);\n\n  var boundsArray = [[def.withDefault(bounds.left, -Infinity), def.withDefault(bounds.right, Infinity)], [def.withDefault(bounds.top, -Infinity), def.withDefault(bounds.bottom, Infinity)]];\n  return _extends({}, getInternalGestureOptions(internalOptions), {}, defaultCoordinatesOptions, {}, matchKeysFromObject({\n    axis: axis,\n    lockDirection: lockDirection\n  }, coordinatesConfig), {\n    bounds: boundsArray\n  });\n}\nfunction getInternalDistanceAngleOptions(distanceAngleConfig) {\n  if (distanceAngleConfig === void 0) {\n    distanceAngleConfig = {};\n  }\n\n  var _distanceAngleConfig = distanceAngleConfig,\n      _distanceAngleConfig$ = _distanceAngleConfig.distanceBounds,\n      distanceBounds = _distanceAngleConfig$ === void 0 ? {} : _distanceAngleConfig$,\n      _distanceAngleConfig$2 = _distanceAngleConfig.angleBounds,\n      angleBounds = _distanceAngleConfig$2 === void 0 ? {} : _distanceAngleConfig$2,\n      internalOptions = _objectWithoutPropertiesLoose(_distanceAngleConfig, [\"distanceBounds\", \"angleBounds\"]);\n\n  var boundsArray = [[def.withDefault(distanceBounds.min, -Infinity), def.withDefault(distanceBounds.max, Infinity)], [def.withDefault(angleBounds.min, -Infinity), def.withDefault(angleBounds.max, Infinity)]];\n  return _extends({}, getInternalGestureOptions(internalOptions), {\n    bounds: boundsArray\n  });\n}\nfunction getInternalDragOptions(dragConfig) {\n  if (dragConfig === void 0) {\n    dragConfig = {};\n  }\n\n  var _dragConfig = dragConfig,\n      enabled = _dragConfig.enabled,\n      threshold = _dragConfig.threshold,\n      bounds = _dragConfig.bounds,\n      rubberband = _dragConfig.rubberband,\n      initial = _dragConfig.initial,\n      dragOptions = _objectWithoutPropertiesLoose(_dragConfig, [\"enabled\", \"threshold\", \"bounds\", \"rubberband\", \"initial\"]);\n\n  var _dragOptions$swipeVel = dragOptions.swipeVelocity,\n      swipeVelocity = _dragOptions$swipeVel === void 0 ? DEFAULT_SWIPE_VELOCITY : _dragOptions$swipeVel,\n      _dragOptions$swipeDis = dragOptions.swipeDistance,\n      swipeDistance = _dragOptions$swipeDis === void 0 ? DEFAULT_SWIPE_DISTANCE : _dragOptions$swipeDis,\n      _dragOptions$delay = dragOptions.delay,\n      delay = _dragOptions$delay === void 0 ? false : _dragOptions$delay,\n      _dragOptions$filterTa = dragOptions.filterTaps,\n      filterTaps = _dragOptions$filterTa === void 0 ? false : _dragOptions$filterTa,\n      axis = dragOptions.axis,\n      lockDirection = dragOptions.lockDirection;\n\n  if (threshold === void 0) {\n    threshold = Math.max(0, filterTaps ? 3 : 0, lockDirection || axis ? 1 : 0);\n  } else {\n    filterTaps = true;\n  }\n\n  var internalCoordinatesOptions = getInternalCoordinatesOptions(matchKeysFromObject({\n    enabled: enabled,\n    threshold: threshold,\n    bounds: bounds,\n    rubberband: rubberband,\n    axis: axis,\n    lockDirection: lockDirection,\n    initial: initial\n  }, dragConfig));\n  return _extends({}, internalCoordinatesOptions, {\n    filterTaps: filterTaps || internalCoordinatesOptions.threshold[0] + internalCoordinatesOptions.threshold[1] > 0,\n    swipeVelocity: def.array(swipeVelocity),\n    swipeDistance: def.array(swipeDistance),\n    delay: typeof delay === 'number' ? delay : delay ? DEFAULT_DRAG_DELAY : 0\n  });\n}\n\n/**\r\n * @public\r\n *\r\n * Drag hook.\r\n *\r\n * @param {Handler<'drag'>} handler - the function fired every time the drag gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and drag options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useDrag(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      drag = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    drag: getInternalDragOptions(drag)\n  });\n\n  return useRecognizers({\n    drag: handler\n  }, [DragRecognizer], mergedConfig);\n}\n\n/**\r\n * @private\r\n * Abstract class for distance/angle-based gesture recongizers\r\n * @abstract\r\n * @class DistanceAngleRecognizer\r\n * @extends {Recognizer<T>}\r\n * @template T\r\n */\n\nvar DistanceAngleRecognizer = /*#__PURE__*/function (_Recognizer) {\n  _inheritsLoose(DistanceAngleRecognizer, _Recognizer);\n\n  function DistanceAngleRecognizer() {\n    return _Recognizer.apply(this, arguments) || this;\n  }\n\n  var _proto = DistanceAngleRecognizer.prototype;\n\n  /**\r\n   * Returns the real movement (without taking intentionality into acount)\r\n   */\n  _proto.getInternalMovement = function getInternalMovement(_ref, state) {\n    var d = _ref[0],\n        a = _ref[1];\n    var da = state.values,\n        turns = state.turns,\n        initial = state.initial; // angle might not be defined when ctrl wheel is used for zoom only\n    // in that case we set it to the previous angle value\n\n    a = a !== void 0 ? a : da[1];\n    var delta_a = a - da[1];\n    /**\r\n     * The angle value might jump from 179deg to -179deg when we actually want to\r\n     * read 181deg to ensure continuity. To make that happen, we detect when the jump\r\n     * is supsiciously high (ie > 270deg) and increase the `turns` value\r\n     */\n\n    var newTurns = Math.abs(delta_a) > 270 ? turns + Math.sign(delta_a) : turns; // we update the angle difference to its corrected value\n\n    var movement_d = d - initial[0];\n    var movement_a = a - 360 * newTurns - initial[1];\n    return [movement_d, movement_a];\n  };\n\n  _proto.getKinematics = function getKinematics(values, event) {\n    var _this$state = this.state,\n        timeStamp = _this$state.timeStamp,\n        initial = _this$state.initial;\n    var movementDetection = this.getMovement(values, this.state);\n    var delta = movementDetection.delta,\n        movement = movementDetection.movement;\n    var turns = (values[1] - movement[1] - initial[1]) / 360;\n    var delta_t = event.timeStamp - timeStamp;\n    var kinematics = calculateAllKinematics(movement, delta, delta_t);\n    return _extends({\n      values: values,\n      delta: delta,\n      turns: turns\n    }, movementDetection, {}, kinematics);\n  };\n\n  _proto.mapStateValues = function mapStateValues(state) {\n    return {\n      da: state.values,\n      vdva: state.velocities\n    };\n  };\n\n  return DistanceAngleRecognizer;\n}(Recognizer);\n\nvar PinchRecognizer = /*#__PURE__*/function (_DistanceAngleRecogni) {\n  _inheritsLoose(PinchRecognizer, _DistanceAngleRecogni);\n\n  function PinchRecognizer(controller, args) {\n    var _this;\n\n    _this = _DistanceAngleRecogni.call(this, 'pinch', controller, args) || this;\n    _this.ingKey = 'pinching';\n\n    _this.pinchShouldStart = function (event) {\n      var _getGenericEventData = getGenericEventData(event),\n          touches = _getGenericEventData.touches;\n\n      return _this.enabled && touches === 2;\n    };\n\n    _this.onPinchStart = function (event) {\n      if (!_this.pinchShouldStart(event)) return;\n\n      var _getTwoTouchesEventDa = getTwoTouchesEventData(event),\n          values = _getTwoTouchesEventDa.values,\n          origin = _getTwoTouchesEventDa.origin;\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));\n\n      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {\n        origin: origin,\n        cancel: function cancel() {\n          return _this.onCancel();\n        }\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onPinchChange = function (event) {\n      var _this$state = _this.state,\n          canceled = _this$state.canceled,\n          timeStamp = _this$state.timeStamp,\n          _active = _this$state._active;\n      if (canceled || !_active) return;\n      var genericEventData = getGenericEventData(event);\n      if (genericEventData.touches !== 2 || event.timeStamp === timeStamp) return;\n\n      _this.updateSharedState(genericEventData);\n\n      var _getTwoTouchesEventDa2 = getTwoTouchesEventData(event),\n          values = _getTwoTouchesEventDa2.values,\n          origin = _getTwoTouchesEventDa2.origin;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {\n        origin: origin,\n        cancel: function cancel() {\n          return _this.onCancel();\n        }\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onPinchEnd = function (event) {\n      if (!_this.state.active) return;\n      _this.state._active = false;\n\n      _this.updateSharedState({\n        down: false,\n        touches: 0\n      });\n\n      _this.updateGestureState(_extends({\n        event: event\n      }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values)));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onCancel = function () {\n      _this.state._active = false;\n\n      _this.updateGestureState({\n        canceled: true,\n        cancel: noop\n      });\n\n      _this.updateSharedState({\n        down: false,\n        touches: 0\n      });\n\n      requestAnimationFrame(function () {\n        return _this.fireGestureHandler();\n      });\n    };\n    /**\r\n     * PINCH WITH WEBKIT GESTURES\r\n     */\n\n\n    _this.onGestureStart = function (event) {\n      if (!_this.enabled) return;\n      event.preventDefault();\n\n      var _getWebkitGestureEven = getWebkitGestureEventValues(event),\n          values = _getWebkitGestureEven.values;\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));\n\n      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {\n        cancel: function cancel() {\n          return _this.onCancel();\n        }\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onGestureChange = function (event) {\n      var _this$state2 = _this.state,\n          canceled = _this$state2.canceled,\n          _active = _this$state2._active;\n      if (canceled || !_active) return;\n      event.preventDefault();\n      var genericEventData = getGenericEventData(event);\n\n      _this.updateSharedState(genericEventData);\n\n      var _getWebkitGestureEven2 = getWebkitGestureEventValues(event),\n          values = _getWebkitGestureEven2.values;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {\n        cancel: function cancel() {\n          return _this.onCancel();\n        }\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onGestureEnd = function (event) {\n      event.preventDefault();\n      if (!_this.state.active) return;\n      _this.state._active = false;\n\n      _this.updateSharedState({\n        down: false,\n        touches: 0\n      });\n\n      _this.updateGestureState(_extends({\n        event: event\n      }, _this.getGenericPayload(event), {}, _this.getMovement(_this.state.values)));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.updateTouchData = function (event) {\n      if (!_this.enabled || event.touches.length !== 2 || !_this.state._active) return;\n\n      var _getTwoTouchesEventDa3 = getTwoTouchesEventData(event),\n          origin = _getTwoTouchesEventDa3.origin;\n\n      _this.state.origin = origin;\n    };\n    /**\r\n     * PINCH WITH WHEEL\r\n     */\n\n\n    _this.wheelShouldRun = function (event) {\n      return _this.enabled && event.ctrlKey;\n    };\n\n    _this.getWheelValuesFromEvent = function (event) {\n      var _getWheelEventValues = getWheelEventValues(event),\n          _getWheelEventValues$ = _getWheelEventValues.values,\n          delta_d = _getWheelEventValues$[1];\n\n      var _this$state$values = _this.state.values,\n          prev_d = _this$state$values[0],\n          prev_a = _this$state$values[1];\n      var d = prev_d - delta_d;\n      var a = prev_a !== void 0 ? prev_a : 0;\n      return {\n        values: [d, a],\n        origin: [event.clientX, event.clientY],\n        delta: [0, delta_d]\n      };\n    };\n\n    _this.onWheel = function (event) {\n      if (!_this.wheelShouldRun(event)) return;\n\n      _this.clearTimeout();\n\n      _this.setTimeout(_this.onWheelEnd);\n\n      if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);\n    };\n\n    _this.onWheelStart = function (event) {\n      var _this$getWheelValuesF = _this.getWheelValuesFromEvent(event),\n          values = _this$getWheelValuesF.values,\n          delta = _this$getWheelValuesF.delta,\n          origin = _this$getWheelValuesF.origin;\n\n      if (!_this.controller.config.eventOptions.passive) {\n        event.preventDefault();\n      } else if (false) {}\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {\n        initial: _this.state.values\n      });\n\n      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState), {\n        offset: values,\n        delta: delta,\n        origin: origin\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onWheelChange = function (event) {\n      var genericEventData = getGenericEventData(event);\n\n      _this.updateSharedState(genericEventData);\n\n      var _this$getWheelValuesF2 = _this.getWheelValuesFromEvent(event),\n          values = _this$getWheelValuesF2.values,\n          origin = _this$getWheelValuesF2.origin,\n          delta = _this$getWheelValuesF2.delta;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics, {\n        origin: origin,\n        delta: delta\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onWheelEnd = function () {\n      _this.state._active = false;\n\n      _this.updateGestureState(_this.getMovement(_this.state.values));\n\n      _this.fireGestureHandler();\n    };\n\n    return _this;\n  }\n\n  var _proto = PinchRecognizer.prototype;\n\n  _proto.addBindings = function addBindings() {\n    // Only try to use gesture events when they are supported and domTarget is set\n    // as React doesn't support gesture handlers.\n    if (this.controller.config.domTarget && supportsGestureEvents()) {\n      this.controller.addBindings('onGestureStart', this.onGestureStart);\n      this.controller.addBindings('onGestureChange', this.onGestureChange);\n      this.controller.addBindings(['onGestureEnd', 'onTouchCancel'], this.onGestureEnd);\n      this.controller.addBindings(['onTouchStart', 'onTouchMove'], this.updateTouchData);\n    } else {\n      this.controller.addBindings('onTouchStart', this.onPinchStart);\n      this.controller.addBindings('onTouchMove', this.onPinchChange);\n      this.controller.addBindings(['onTouchEnd', 'onTouchCancel'], this.onPinchEnd);\n      this.controller.addBindings('onWheel', this.onWheel);\n    }\n  };\n\n  return PinchRecognizer;\n}(DistanceAngleRecognizer);\n\n/**\r\n * @public\r\n *\r\n * Pinch hook.\r\n *\r\n * @param {Handler<'pinch'>} handler - the function fired every time the pinch gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and pinch options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction usePinch(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      pinch = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    pinch: getInternalDistanceAngleOptions(pinch)\n  });\n\n  return useRecognizers({\n    pinch: handler\n  }, [PinchRecognizer], mergedConfig);\n}\n\nvar WheelRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n  _inheritsLoose(WheelRecognizer, _CoordinatesRecognize);\n\n  function WheelRecognizer(controller, args) {\n    var _this;\n\n    _this = _CoordinatesRecognize.call(this, 'wheel', controller, args) || this;\n    _this.ingKey = 'wheeling';\n    _this.debounced = true;\n\n    _this.wheelShouldRun = function (event) {\n      if (event.ctrlKey && 'pinch' in _this.controller.handlers) return false;\n      return _this.enabled;\n    };\n\n    _this.getValuesFromEvent = function (event) {\n      var prevValues = _this.state.values;\n\n      var _getWheelEventValues = getWheelEventValues(event),\n          values = _getWheelEventValues.values;\n\n      return {\n        values: addV(values, prevValues)\n      };\n    };\n\n    _this.onWheel = function (event) {\n      if (!_this.wheelShouldRun(event)) return;\n\n      _this.clearTimeout();\n\n      _this.setTimeout(_this.onWheelEnd);\n\n      if (!_this.state._active) _this.onWheelStart(event);else _this.onWheelChange(event);\n    };\n\n    _this.onWheelStart = function (event) {\n      var _this$getValuesFromEv = _this.getValuesFromEvent(event),\n          values = _this$getValuesFromEv.values;\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {\n        initial: _this.state.values\n      });\n\n      var movementDetection = _this.getMovement(values, startState);\n\n      var delta = movementDetection.delta;\n\n      _this.updateGestureState(_extends({}, startState, {}, movementDetection, {\n        distance: calculateDistance(delta),\n        direction: calculateDirection(delta)\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onWheelChange = function (event) {\n      var genericEventData = getGenericEventData(event);\n\n      _this.updateSharedState(genericEventData);\n\n      var _this$getValuesFromEv2 = _this.getValuesFromEvent(event),\n          values = _this$getValuesFromEv2.values;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onWheelEnd = function () {\n      _this.state._active = false;\n\n      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n        velocities: [0, 0],\n        velocity: 0\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    return _this;\n  }\n\n  var _proto = WheelRecognizer.prototype;\n\n  _proto.addBindings = function addBindings() {\n    this.controller.addBindings('onWheel', this.onWheel);\n  };\n\n  return WheelRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * @public\r\n *\r\n * Wheel hook.\r\n *\r\n * @param {Handler<'wheel'>} handler - the function fired every time the wheel gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and wheel options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useWheel(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      wheel = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    wheel: getInternalCoordinatesOptions(wheel)\n  });\n\n  return useRecognizers({\n    wheel: handler\n  }, [WheelRecognizer], mergedConfig);\n}\n\nvar MoveRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n  _inheritsLoose(MoveRecognizer, _CoordinatesRecognize);\n\n  function MoveRecognizer(controller, args) {\n    var _this;\n\n    _this = _CoordinatesRecognize.call(this, 'move', controller, args) || this;\n    _this.ingKey = 'moving';\n    _this.debounced = true;\n\n    _this.moveShouldRun = function () {\n      return _this.enabled;\n    };\n\n    _this.onMove = function (event) {\n      if (!_this.moveShouldRun()) return;\n\n      _this.clearTimeout();\n\n      _this.setTimeout(_this.onMoveEnd);\n\n      if (!_this.state._active) _this.onMoveStart(event);else _this.onMoveChange(event);\n    };\n\n    _this.onMoveStart = function (event) {\n      var _getPointerEventValue = getPointerEventValues(event),\n          values = _getPointerEventValue.values;\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true));\n\n      _this.updateGestureState(_extends({}, startState, {}, _this.getMovement(values, startState)));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onMoveChange = function (event) {\n      var genericEventData = getGenericEventData(event);\n\n      _this.updateSharedState(genericEventData);\n\n      var _getPointerEventValue2 = getPointerEventValues(event),\n          values = _getPointerEventValue2.values;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onMoveEnd = function () {\n      _this.state._active = false;\n\n      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n        velocities: [0, 0],\n        velocity: 0\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onPointerEnter = function (event) {\n      _this.controller.state.shared.hovering = true;\n      if (!_this.controller.config.enabled) return;\n\n      if (_this.controller.config.hover.enabled) {\n        var _getPointerEventValue3 = getPointerEventValues(event),\n            values = _getPointerEventValue3.values;\n\n        var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event, true), {\n          values: values,\n          active: true,\n          hovering: true\n        });\n\n        _this.controller.handlers.hover(_extends({}, state, {}, _this.mapStateValues(state)));\n      }\n\n      if ('move' in _this.controller.handlers) _this.onMoveStart(event);\n    };\n\n    _this.onPointerLeave = function (event) {\n      _this.controller.state.shared.hovering = false;\n      if ('move' in _this.controller.handlers) _this.onMoveEnd();\n\n      if (_this.controller.config.hover.enabled) {\n        var _getPointerEventValue4 = getPointerEventValues(event),\n            values = _getPointerEventValue4.values;\n\n        var state = _extends({}, _this.controller.state.shared, {}, _this.state, {}, _this.getGenericPayload(event), {\n          values: values,\n          active: false\n        });\n\n        _this.controller.handlers.hover(_extends({}, state, {}, _this.mapStateValues(state)));\n      }\n    };\n\n    return _this;\n  }\n\n  var _proto = MoveRecognizer.prototype;\n\n  _proto.addBindings = function addBindings() {\n    if (this.controller.config.pointer) {\n      if ('move' in this.controller.handlers) {\n        this.controller.addBindings('onPointerMove', this.onMove);\n      }\n\n      if ('hover' in this.controller.handlers) {\n        this.controller.addBindings('onPointerEnter', this.onPointerEnter);\n        this.controller.addBindings('onPointerLeave', this.onPointerLeave);\n      }\n    } else {\n      if ('move' in this.controller.handlers) {\n        this.controller.addBindings('onMouseMove', this.onMove);\n      }\n\n      if ('hover' in this.controller.handlers) {\n        this.controller.addBindings('onMouseEnter', this.onPointerEnter);\n        this.controller.addBindings('onMouseLeave', this.onPointerLeave);\n      }\n    }\n  };\n\n  return MoveRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * @public\r\n *\r\n * Move hook.\r\n *\r\n * @param {Handler<'move'>} handler - the function fired every time the move gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and move options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useMove(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      move = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    move: getInternalCoordinatesOptions(move)\n  });\n\n  return useRecognizers({\n    move: handler\n  }, [MoveRecognizer], mergedConfig);\n}\n\n/**\r\n * @public\r\n *\r\n * Hover hook.\r\n *\r\n * @param {Handler<'hover'>} handler - the function fired every time the hover gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and hover options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useHover(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      hover = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    hover: _extends({\n      enabled: true\n    }, hover)\n  });\n\n  return useRecognizers({\n    hover: handler\n  }, [MoveRecognizer], mergedConfig);\n}\n\nvar ScrollRecognizer = /*#__PURE__*/function (_CoordinatesRecognize) {\n  _inheritsLoose(ScrollRecognizer, _CoordinatesRecognize);\n\n  function ScrollRecognizer(controller, args) {\n    var _this;\n\n    _this = _CoordinatesRecognize.call(this, 'scroll', controller, args) || this;\n    _this.ingKey = 'scrolling';\n    _this.debounced = true;\n\n    _this.scrollShouldRun = function () {\n      return _this.enabled;\n    };\n\n    _this.onScroll = function (event) {\n      if (!_this.scrollShouldRun()) return;\n\n      _this.clearTimeout();\n\n      _this.setTimeout(_this.onScrollEnd);\n\n      if (!_this.state._active) _this.onScrollStart(event);else _this.onScrollChange(event);\n    };\n\n    _this.onScrollStart = function (event) {\n      var _getScrollEventValues = getScrollEventValues(event),\n          values = _getScrollEventValues.values;\n\n      _this.updateSharedState(getGenericEventData(event));\n\n      var startState = _extends({}, _this.getStartGestureState(values, event), {}, _this.getGenericPayload(event, true), {\n        initial: _this.state.values\n      });\n\n      var movementDetection = _this.getMovement(values, startState);\n\n      var delta = movementDetection.delta;\n\n      _this.updateGestureState(_extends({}, startState, {}, movementDetection, {\n        distance: calculateDistance(delta),\n        direction: calculateDirection(delta)\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onScrollChange = function (event) {\n      var genericEventData = getGenericEventData(event);\n\n      _this.updateSharedState(genericEventData);\n\n      var _getScrollEventValues2 = getScrollEventValues(event),\n          values = _getScrollEventValues2.values;\n\n      var kinematics = _this.getKinematics(values, event);\n\n      _this.updateGestureState(_extends({}, _this.getGenericPayload(event), {}, kinematics));\n\n      _this.fireGestureHandler();\n    };\n\n    _this.onScrollEnd = function () {\n      _this.state._active = false;\n\n      _this.updateGestureState(_extends({}, _this.getMovement(_this.state.values), {\n        velocities: [0, 0],\n        velocity: 0\n      }));\n\n      _this.fireGestureHandler();\n    };\n\n    return _this;\n  }\n\n  var _proto = ScrollRecognizer.prototype;\n\n  _proto.addBindings = function addBindings() {\n    this.controller.addBindings('onScroll', this.onScroll);\n  };\n\n  return ScrollRecognizer;\n}(CoordinatesRecognizer);\n\n/**\r\n * @public\r\n *\r\n * Scroll hook.\r\n *\r\n * @param {Handler<'scroll'>} handler - the function fired every time the scroll gesture updates\r\n * @param {(Config | {})} [config={}] - the config object including generic options and scroll options\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useScroll(handler, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  var _config = config,\n      domTarget = _config.domTarget,\n      eventOptions = _config.eventOptions,\n      window = _config.window,\n      scroll = _objectWithoutPropertiesLoose(_config, [\"domTarget\", \"eventOptions\", \"window\"]);\n  /**\r\n   * TODO: at the moment we recompute the config object at every render\r\n   * this could probably be optimized\r\n   */\n\n\n  var mergedConfig = _extends({}, getInternalGenericOptions({\n    domTarget: domTarget,\n    eventOptions: eventOptions,\n    window: window\n  }), {\n    scroll: getInternalCoordinatesOptions(scroll)\n  });\n\n  return useRecognizers({\n    scroll: handler\n  }, [ScrollRecognizer], mergedConfig);\n}\n\n/**\r\n * @public\r\n *\r\n * The most complete gesture hook, allowing support for multiple gestures.\r\n *\r\n * @param {UserHandlersPartial} handlers - an object with on[Gesture] keys containg gesture handlers\r\n * @param {UseGestureConfig} [config={}] - the full config object\r\n * @returns {(...args: any[]) => HookReturnType<Config>}\r\n */\n\nfunction useGesture(handlers, config) {\n  if (config === void 0) {\n    config = {};\n  }\n\n  /**\r\n   * If handlers contains {onDragStart, onDrag, onDragEnd, onMoveStart, onMove}\r\n   * actions will include 'onDrag' and 'onMove.\r\n   */\n  var _React$useState = external_this_React_default.a.useState(function () {\n    return new Set(Object.keys(handlers).map(function (k) {\n      return k.replace(/End|Start/, '');\n    }));\n  }),\n      actions = _React$useState[0];\n  /**\r\n   * Here we compute the derived internal config based on the provided config object.\r\n   * We decompose the config into its generic and gesture options and compute each.\r\n   * TODO: this is currently done on every render!\r\n   */\n\n\n  var _config = config,\n      drag = _config.drag,\n      wheel = _config.wheel,\n      move = _config.move,\n      scroll = _config.scroll,\n      pinch = _config.pinch,\n      hover = _config.hover,\n      restConfig = _objectWithoutPropertiesLoose(_config, [\"drag\", \"wheel\", \"move\", \"scroll\", \"pinch\", \"hover\"]);\n\n  var mergedConfig = getInternalGenericOptions(restConfig);\n  var classes = [];\n  var internalHandlers = {}; // will hold reference to native handlers such as onClick, onMouseDown, etc.\n\n  var _nativeHandlers = _extends({}, handlers);\n\n  if (actions.has('onDrag')) {\n    classes.push(DragRecognizer);\n    internalHandlers.drag = includeStartEndHandlers(handlers, 'onDrag', _nativeHandlers);\n    mergedConfig.drag = getInternalDragOptions(drag);\n  }\n\n  if (actions.has('onWheel')) {\n    classes.push(WheelRecognizer);\n    internalHandlers.wheel = includeStartEndHandlers(handlers, 'onWheel', _nativeHandlers);\n    mergedConfig.wheel = getInternalCoordinatesOptions(wheel);\n  }\n\n  if (actions.has('onScroll')) {\n    classes.push(ScrollRecognizer);\n    internalHandlers.scroll = includeStartEndHandlers(handlers, 'onScroll', _nativeHandlers);\n    mergedConfig.scroll = getInternalCoordinatesOptions(scroll);\n  }\n\n  if (actions.has('onMove')) {\n    classes.push(MoveRecognizer);\n    internalHandlers.move = includeStartEndHandlers(handlers, 'onMove', _nativeHandlers);\n    mergedConfig.move = getInternalCoordinatesOptions(move);\n  }\n\n  if (actions.has('onPinch')) {\n    classes.push(PinchRecognizer);\n    internalHandlers.pinch = includeStartEndHandlers(handlers, 'onPinch', _nativeHandlers);\n    mergedConfig.pinch = getInternalDistanceAngleOptions(pinch);\n  }\n\n  if (actions.has('onHover')) {\n    if (!actions.has('onMove')) classes.push(MoveRecognizer);\n    internalHandlers.hover = handlers.onHover;\n    mergedConfig.hover = _extends({\n      enabled: true\n    }, hover);\n    delete _nativeHandlers.onHover;\n  }\n\n  return useRecognizers(internalHandlers, classes, mergedConfig, _nativeHandlers);\n}\n/**\r\n * @private\r\n *\r\n * This utility function will integrate start and end handlers into the regular\r\n * handler function by using first and last conditions.\r\n *\r\n * @param {UserHandlersPartial} handlers - the handlers function object\r\n * @param {HandlerKey} handlerKey - the key for which to integrate start and end handlers\r\n * @returns\r\n */\n\nfunction includeStartEndHandlers(handlers, handlerKey, _nativeHandlers) {\n  var startKey = handlerKey + 'Start';\n  var endKey = handlerKey + 'End';\n  delete _nativeHandlers[handlerKey];\n  delete _nativeHandlers[startKey];\n  delete _nativeHandlers[endKey];\n\n  var fn = function fn(state) {\n    var memo = undefined;\n    if (state.first && startKey in handlers) handlers[startKey](state);\n    if (handlerKey in handlers) memo = handlers[handlerKey](state);\n    if (state.last && endKey in handlers) handlers[endKey](state);\n    return memo;\n  };\n\n  return fn;\n}\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/flex/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction FlexComponent(_ref, ref) {\n  var _ref$align = _ref.align,\n      align = _ref$align === void 0 ? 'center' : _ref$align,\n      className = _ref.className,\n      _ref$gap = _ref.gap,\n      gap = _ref$gap === void 0 ? 2 : _ref$gap,\n      _ref$justify = _ref.justify,\n      justify = _ref$justify === void 0 ? 'space-between' : _ref$justify,\n      _ref$isReversed = _ref.isReversed,\n      isReversed = _ref$isReversed === void 0 ? false : _ref$isReversed,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"align\", \"className\", \"gap\", \"justify\", \"isReversed\"]);\n\n  var classes = classnames_default()('components-flex', className);\n  return Object(external_this_wp_element_[\"createElement\"])(Flex, Object(esm_extends[\"a\" /* default */])({}, props, {\n    align: align,\n    className: classes,\n    ref: ref,\n    gap: gap,\n    justify: justify,\n    isReversed: isReversed\n  }));\n}\n\nvar flex_Flex = Object(external_this_wp_element_[\"forwardRef\"])(FlexComponent);\n/* harmony default export */ var flex = (flex_Flex);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/state.js\n\n\n\nfunction state_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar initialStateReducer = function initialStateReducer(state) {\n  return state;\n};\n\nvar initialInputControlState = {\n  _event: {},\n  error: null,\n  initialValue: '',\n  isDirty: false,\n  isDragEnabled: false,\n  isDragging: false,\n  isPressEnterToChange: false,\n  value: ''\n};\nvar actionTypes = {\n  CHANGE: 'CHANGE',\n  COMMIT: 'COMMIT',\n  DRAG_END: 'DRAG_END',\n  DRAG_START: 'DRAG_START',\n  DRAG: 'DRAG',\n  INVALIDATE: 'INVALIDATE',\n  PRESS_DOWN: 'PRESS_DOWN',\n  PRESS_ENTER: 'PRESS_ENTER',\n  PRESS_UP: 'PRESS_UP',\n  RESET: 'RESET',\n  UPDATE: 'UPDATE'\n};\nvar inputControlActionTypes = actionTypes;\n/**\n * Prepares initialState for the reducer.\n *\n * @param {Object} initialState The initial state.\n * @return {Object} Prepared initialState for the reducer\n */\n\nfunction mergeInitialState() {\n  var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialInputControlState;\n  var value = initialState.value;\n  return state_objectSpread({}, initialInputControlState, {}, initialState, {\n    initialValue: value\n  });\n}\n/**\n * Composes multiple stateReducers into a single stateReducer, building\n * the pipeline to control the flow for state and actions.\n *\n * @param  {...Function} fns State reducers.\n * @return {Function} The single composed stateReducer.\n */\n\n\nvar state_composeStateReducers = function composeStateReducers() {\n  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n    fns[_key] = arguments[_key];\n  }\n\n  return function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return fns.reduceRight(function (state, fn) {\n      var fnState = fn.apply(void 0, args);\n      return Object(external_this_lodash_[\"isEmpty\"])(fnState) ? state : state_objectSpread({}, state, {}, fnState);\n    }, {});\n  };\n};\n/**\n * Creates a reducer that opens the channel for external state subscription\n * and modification.\n *\n * This technique uses the \"stateReducer\" design pattern:\n * https://kentcdodds.com/blog/the-state-reducer-pattern/\n *\n * @param {Function} composedStateReducers A custom reducer that can subscribe and modify state.\n * @return {Function} The reducer.\n */\n\nfunction inputControlStateReducer(composedStateReducers) {\n  return function (state, action) {\n    var nextState = state_objectSpread({}, state);\n\n    var type = action.type,\n        payload = action.payload;\n\n    switch (type) {\n      /**\n       * Keyboard events\n       */\n      case actionTypes.PRESS_UP:\n        nextState.isDirty = false;\n        break;\n\n      case actionTypes.PRESS_DOWN:\n        nextState.isDirty = false;\n        break;\n\n      /**\n       * Drag events\n       */\n\n      case actionTypes.DRAG_START:\n        nextState.isDragging = true;\n        break;\n\n      case actionTypes.DRAG_END:\n        nextState.isDragging = false;\n        break;\n\n      /**\n       * Input events\n       */\n\n      case actionTypes.CHANGE:\n        nextState.error = null;\n        nextState.value = payload.value;\n\n        if (state.isPressEnterToChange) {\n          nextState.isDirty = true;\n        }\n\n        break;\n\n      case actionTypes.COMMIT:\n        nextState.value = payload.value;\n        nextState.isDirty = false;\n        break;\n\n      case actionTypes.RESET:\n        nextState.error = null;\n        nextState.isDirty = false;\n        nextState.value = payload.value || state.initialValue;\n        break;\n\n      case actionTypes.UPDATE:\n        if (payload.value !== state.value) {\n          nextState.value = payload.value;\n          nextState.isDirty = false;\n        }\n\n        break;\n\n      /**\n       * Validation\n       */\n\n      case actionTypes.INVALIDATE:\n        nextState.error = payload.error;\n        break;\n    }\n\n    if (payload.event) {\n      nextState._event = payload.event;\n    }\n    /**\n     * Send the nextState + action to the composedReducers via\n     * this \"bridge\" mechanism. This allows external stateReducers\n     * to hook into actions, and modify state if needed.\n     */\n\n\n    return composedStateReducers(nextState, action);\n  };\n}\n/**\n * A custom hook that connects and external stateReducer with an internal\n * reducer. This hook manages the internal state of InputControl.\n * However, by connecting an external stateReducer function, other\n * components can react to actions as well as modify state before it is\n * applied.\n *\n * This technique uses the \"stateReducer\" design pattern:\n * https://kentcdodds.com/blog/the-state-reducer-pattern/\n *\n * @param {Function} stateReducer An external state reducer.\n * @param {Object} initialState The initial state for the reducer.\n * @return {Object} State, dispatch, and a collection of actions.\n */\n\n\nfunction useInputControlStateReducer() {\n  var stateReducer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialStateReducer;\n  var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : initialInputControlState;\n\n  var _useReducer = Object(external_this_wp_element_[\"useReducer\"])(inputControlStateReducer(stateReducer), mergeInitialState(initialState)),\n      _useReducer2 = Object(slicedToArray[\"a\" /* default */])(_useReducer, 2),\n      state = _useReducer2[0],\n      dispatch = _useReducer2[1];\n\n  var createChangeEvent = function createChangeEvent(type) {\n    return function (nextValue, event) {\n      /**\n       * Persist allows for the (Synthetic) event to be used outside of\n       * this function call.\n       * https://reactjs.org/docs/events.html#event-pooling\n       */\n      if (event && event.persist) {\n        event.persist();\n      }\n\n      dispatch({\n        type: type,\n        payload: {\n          value: nextValue,\n          event: event\n        }\n      });\n    };\n  };\n\n  var createKeyEvent = function createKeyEvent(type) {\n    return function (event) {\n      /**\n       * Persist allows for the (Synthetic) event to be used outside of\n       * this function call.\n       * https://reactjs.org/docs/events.html#event-pooling\n       */\n      if (event && event.persist) {\n        event.persist();\n      }\n\n      dispatch({\n        type: type,\n        payload: {\n          event: event\n        }\n      });\n    };\n  };\n\n  var createDragEvent = function createDragEvent(type) {\n    return function (dragProps) {\n      dispatch({\n        type: type,\n        payload: dragProps\n      });\n    };\n  };\n  /**\n   * Actions for the reducer\n   */\n\n\n  var change = createChangeEvent(actionTypes.CHANGE);\n  var inValidate = createChangeEvent(actionTypes.INVALIDATE);\n  var reset = createChangeEvent(actionTypes.RESET);\n  var commit = createChangeEvent(actionTypes.COMMIT);\n  var update = createChangeEvent(actionTypes.UPDATE);\n  var dragStart = createDragEvent(actionTypes.DRAG_START);\n  var drag = createDragEvent(actionTypes.DRAG);\n  var dragEnd = createDragEvent(actionTypes.DRAG_END);\n  var pressUp = createKeyEvent(actionTypes.PRESS_UP);\n  var pressDown = createKeyEvent(actionTypes.PRESS_DOWN);\n  var pressEnter = createKeyEvent(actionTypes.PRESS_ENTER);\n  return {\n    change: change,\n    commit: commit,\n    dispatch: dispatch,\n    drag: drag,\n    dragEnd: dragEnd,\n    dragStart: dragStart,\n    inValidate: inValidate,\n    pressDown: pressDown,\n    pressEnter: pressEnter,\n    pressUp: pressUp,\n    reset: reset,\n    state: state,\n    update: update\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\nfunction _taggedTemplateLiteral(strings, raw) {\n  if (!raw) {\n    raw = strings.slice(0);\n  }\n\n  return Object.freeze(Object.defineProperties(strings, {\n    raw: {\n      value: Object.freeze(raw)\n    }\n  }));\n}\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/font-family.js\nvar fontFamily = \"font-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto,\\nOxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\";\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/emotion-css.js\n/**\n * External dependencies\n */\n\n/* harmony default export */ var emotion_css = (css_browser_esm);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/styles/text-mixins.js\n\n\nfunction _templateObject9() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\", \"\\n\\t\", \"\\n\"]);\n\n  _templateObject9 = function _templateObject9() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject8() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject8 = function _templateObject8() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject7() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject7 = function _templateObject7() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject6() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject6 = function _templateObject6() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject5() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject5 = function _templateObject5() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject4() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject4 = function _templateObject4() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject3() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject3 = function _templateObject3() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject2() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject2 = function _templateObject2() {\n    return data;\n  };\n\n  return data;\n}\n\nfunction _templateObject() {\n  var data = _taggedTemplateLiteral([\"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\\t\", \"\\n\\t\\t\\t\"]);\n\n  _templateObject = function _templateObject() {\n    return data;\n  };\n\n  return data;\n}\n\n/**\n * Internal dependencies\n */\n\n\nvar fontWeightNormal = \"font-weight: 400;\";\nvar fontWeightSemibold = \"font-weight: 600;\";\nvar text_mixins_title = \"\\n  \".concat(fontWeightNormal, \"\\n\");\nvar titleLarge = \"\\n\\tfont-size: 32px;\\n\\tline-height: 40px;\\n\";\nvar titleMedium = \"\\n\\tfont-size: 24px;\\n\\tline-height: 32px;\\n\";\nvar titleSmall = \"\\n\\tfont-size: 20px;\\n\\tline-height: 28px;\\n\";\nvar subtitle = \"\\n\\t\".concat(fontWeightSemibold, \"\\n\\tfont-size: 14px;\\n\\tline-height: 20px;\\n\");\nvar subtitleLarge = \"\\n\\tfont-size: 16px;\\n\\tline-height: 24px;\\n\";\nvar subtitleSmall = \"\\n\\tfont-size: 14px;\\n\\tline-height: 20px;\\n\";\nvar text_mixins_body = \"\\n\\t\".concat(fontWeightNormal, \"\\n\");\nvar bodyLarge = \"\\n\\tfont-size: 16px;\\n\\tline-height: 24px;\\n\";\nvar bodySmall = \"\\n\\tfont-size: 14px;\\n\\tline-height: 20px;\\n\";\nvar text_mixins_button = \"\\n  \".concat(fontWeightSemibold, \"\\n  font-size: 14px;\\n  line-height: 20px;\\n\");\nvar caption = \"\\n\\t\".concat(fontWeightNormal, \"\\n\\tfont-size: 12px;\\n\\tline-height: 16px;\\n\");\nvar text_mixins_label = \"\\n\\t\".concat(fontWeightSemibold, \"\\n\\tfont-size: 12px;\\n\\tline-height: 16px;\\n\");\n/**\n * @typedef {'title.large'|'title.medium'|'title.small'|'subtitle'|'subtitle.small'|'body'|'body.large'|'body.small'|'button'|'caption'|'label'} TextVariant\n */\n\n/**\n * @param {TextVariant} variantName\n */\n\nvar text_mixins_variant = function variant() {\n  var variantName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'body';\n\n  switch (variantName) {\n    case 'title.large':\n      return emotion_css(_templateObject(), text_mixins_title, titleLarge);\n\n    case 'title.medium':\n      return emotion_css(_templateObject2(), text_mixins_title, titleMedium);\n\n    case 'title.small':\n      return emotion_css(_templateObject3(), text_mixins_title, titleSmall);\n\n    case 'subtitle':\n      return emotion_css(_templateObject4(), subtitle, subtitleLarge);\n\n    case 'subtitle.small':\n      return emotion_css(_templateObject5(), subtitle, subtitleSmall);\n\n    case 'body':\n      return emotion_css(_templateObject6(), text_mixins_body);\n\n    case 'body.large':\n      return emotion_css(_templateObject7(), text_mixins_body, bodyLarge);\n\n    case 'body.small':\n      return emotion_css(_templateObject8(), text_mixins_body, bodySmall);\n\n    case 'button':\n      return text_mixins_button;\n\n    case 'caption':\n      return caption;\n\n    case 'label':\n      return text_mixins_label;\n  }\n};\n/**\n * @typedef {Object} TextProps\n * @property {TextVariant} variant one of TextVariant to be used\n */\n\n/**\n * @param {TextProps} props\n */\n\n\nvar text_mixins_text = function text(props) {\n  return emotion_css(_templateObject9(), fontFamily, text_mixins_variant(props.variant));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text/index.js\n\n\n/**\n * Internal dependencies\n */\n\n\nvar Text = styled_base_browser_esm(\"p\", {\n  target: \"e15wbhsk0\",\n  label: \"Text\"\n})(\"\\n\\tbox-sizing: border-box;\\n\\tmargin: 0;\\n\", text_mixins_text,  true ? \"\" : undefined);\n\n/* harmony default export */ var build_module_text = (Text);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/styles/input-control-styles.js\n\n\n\n\nfunction input_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar FLOATING_LABEL_TRANSITION_SPEED = '60ms';\n\nvar input_control_styles_rootFloatLabelStyles = function rootFloatLabelStyles(_ref3) {\n  var isFloatingLabel = _ref3.isFloatingLabel;\n  var paddingTop = isFloatingLabel ? 5 : 0;\n  return /*#__PURE__*/css_browser_esm({\n    paddingTop: paddingTop\n  },  true ? \"\" : undefined);\n};\n\nvar input_control_styles_ref =  true ? {\n  name: \"r6z5ec\",\n  styles: \"z-index:1;\"\n} : undefined;\n\nvar rootFocusedStyles = function rootFocusedStyles(_ref4) {\n  var isFocused = _ref4.isFocused;\n  if (!isFocused) return '';\n  return input_control_styles_ref;\n};\n\nvar input_control_styles_Root = styled_base_browser_esm(\"div\", {\n  target: \"e1cr7zh10\",\n  label: \"Root\"\n})(\"box-sizing:border-box;position:relative;border-radius:2px;\", input_control_styles_rootFloatLabelStyles, \";\", rootFocusedStyles, \";\" + ( true ? \"\" : undefined));\n\nvar input_control_styles_containerDisabledStyle = function containerDisabledStyle(_ref5) {\n  var disabled = _ref5.disabled;\n  var backgroundColor = disabled ? colors_color('ui.backgroundDisabled') : colors_color('ui.background');\n  return /*#__PURE__*/css_browser_esm({\n    backgroundColor: backgroundColor\n  },  true ? \"\" : undefined);\n};\n\nvar Container = styled_base_browser_esm(\"div\", {\n  target: \"e1cr7zh11\",\n  label: \"Container\"\n})(\"align-items:center;box-sizing:border-box;border-radius:inherit;display:flex;position:relative;\", input_control_styles_containerDisabledStyle, \";\" + ( true ? \"\" : undefined));\n\nvar input_control_styles_disabledStyles = function disabledStyles(_ref6) {\n  var disabled = _ref6.disabled;\n  if (!disabled) return '';\n  return /*#__PURE__*/css_browser_esm({\n    color: colors_color('ui.textDisabled')\n  },  true ? \"\" : undefined);\n};\n\nvar input_control_styles_fontSizeStyles = function fontSizeStyles(_ref7) {\n  var size = _ref7.size;\n  var sizes = {\n    default: '13px',\n    small: '11px'\n  };\n  var fontSize = sizes[size];\n  var fontSizeMobile = '16px';\n  if (!fontSize) return '';\n  return /*#__PURE__*/css_browser_esm(\"font-size:\", fontSizeMobile, \";@media ( min-width:600px ){font-size:\", fontSize, \";}\" + ( true ? \"\" : undefined));\n};\n\nvar input_control_styles_sizeStyles = function sizeStyles(_ref8) {\n  var size = _ref8.size;\n  var sizes = {\n    default: {\n      height: 30,\n      lineHeight: 1,\n      minHeight: 30\n    },\n    small: {\n      height: 24,\n      lineHeight: 1,\n      minHeight: 24\n    }\n  };\n  var style = sizes[size] || sizes.default;\n  return /*#__PURE__*/css_browser_esm(style,  true ? \"\" : undefined);\n};\n\nvar input_control_styles_placeholderStyles = function placeholderStyles(_ref9) {\n  var isFilled = _ref9.isFilled,\n      isFloating = _ref9.isFloating,\n      isFloatingLabel = _ref9.isFloatingLabel;\n  var opacity = 1;\n\n  if (isFloatingLabel) {\n    if (!isFilled && !isFloating) {\n      opacity = 0;\n    }\n  }\n\n  return /*#__PURE__*/css_browser_esm(\"&::placeholder{opacity:\", opacity, \";}&::-webkit-input-placeholder{line-height:normal;}\" + ( true ? \"\" : undefined));\n};\n\nvar input_control_styles_dragStyles = function dragStyles(_ref10) {\n  var isDragging = _ref10.isDragging,\n      dragCursor = _ref10.dragCursor;\n  var defaultArrowStyles = '';\n  var activeDragCursorStyles = '';\n\n  if (isDragging) {\n    defaultArrowStyles = /*#__PURE__*/css_browser_esm(\"cursor:\", dragCursor, \";user-select:none;&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}\" + ( true ? \"\" : undefined));\n  }\n\n  if (isDragging && dragCursor) {\n    activeDragCursorStyles = /*#__PURE__*/css_browser_esm(\"&:active{cursor:\", dragCursor, \";}\" + ( true ? \"\" : undefined));\n  }\n\n  return /*#__PURE__*/css_browser_esm(defaultArrowStyles, \";\", activeDragCursorStyles, \";\" + ( true ? \"\" : undefined));\n}; // TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\n\nvar input_control_styles_Input = styled_base_browser_esm(\"input\", {\n  target: \"e1cr7zh12\",\n  label: \"Input\"\n})(\"&&&{background-color:transparent;box-sizing:border-box;border:none;box-shadow:none !important;color:\", colors_color('black'), \";display:block;outline:none;padding-left:8px;padding-right:8px;width:100%;\", input_control_styles_dragStyles, \";\", input_control_styles_disabledStyles, \";\", input_control_styles_fontSizeStyles, \";\", input_control_styles_sizeStyles, \";\", input_control_styles_placeholderStyles, \";}\" + ( true ? \"\" : undefined));\n\nvar input_control_styles_laberColor = function laberColor(_ref11) {\n  var isFloatingLabel = _ref11.isFloatingLabel,\n      isFilled = _ref11.isFilled,\n      isFloating = _ref11.isFloating;\n  var isPlaceholder = isFloatingLabel && !isFilled;\n  var textColor = isPlaceholder || isFloating ? colors_color('ui.textDisabled') : 'currentColor';\n  return /*#__PURE__*/css_browser_esm({\n    color: textColor\n  },  true ? \"\" : undefined);\n};\n\nvar input_control_styles_labelFontSize = function labelFontSize(_ref12) {\n  var isFloatingLabel = _ref12.isFloatingLabel,\n      size = _ref12.size;\n  var sizes = {\n    default: '13px',\n    small: '11px'\n  };\n  var fontSize = sizes[size];\n  var lineHeight = isFloatingLabel ? 1.2 : null;\n  return /*#__PURE__*/css_browser_esm({\n    fontSize: fontSize,\n    lineHeight: lineHeight\n  },  true ? \"\" : undefined);\n};\n\nvar input_control_styles_labelPosition = function labelPosition(_ref13) {\n  var isFloatingLabel = _ref13.isFloatingLabel,\n      isFloating = _ref13.isFloating,\n      size = _ref13.size;\n  var paddingBottom = isFloatingLabel ? 0 : 4;\n  var position = isFloatingLabel ? 'absolute' : null;\n  var pointerEvents = isFloating ? null : 'none';\n  var isSmall = size === 'small';\n  var offsetTop = isSmall ? 1 : 2;\n  var offset = isSmall ? '-1px' : '-3px';\n  var marginTop = isFloating ? 0 : offsetTop;\n  var marginLeft = isFloatingLabel ? 8 : 0;\n  var transform = isFloating ? \"translate( 0, calc(-100% + \".concat(offset, \") ) scale( 0.75 )\") : 'translate( 0, -50%) scale(1)';\n\n  if (!isFloatingLabel) {\n    transform = null;\n  }\n\n  var transition = isFloatingLabel ? \"transform \".concat(FLOATING_LABEL_TRANSITION_SPEED, \" linear\") : null;\n  return /*#__PURE__*/css_browser_esm({\n    marginTop: marginTop,\n    paddingBottom: paddingBottom,\n    position: position,\n    pointerEvents: pointerEvents,\n    transition: transition,\n    transform: transform\n  }, rtl({\n    marginLeft: marginLeft\n  })(), rtl({\n    transformOrigin: 'top left'\n  }, {\n    transformOrigin: 'top right'\n  })(),  true ? \"\" : undefined);\n};\n\nvar input_control_styles_ref2 =  true ? {\n  name: \"fjfd5j\",\n  styles: \"max-width:calc( 100% - 10px );overflow:hidden;text-overflow:ellipsis;white-space:nowrap;\"\n} : undefined;\n\nvar labelTruncation = function labelTruncation(_ref14) {\n  var isFloating = _ref14.isFloating;\n  if (isFloating) return '';\n  return input_control_styles_ref2;\n};\n\nvar BaseLabel = /*#__PURE__*/styled_base_browser_esm(build_module_text, {\n  target: \"e1cr7zh13\",\n  label: \"BaseLabel\"\n})(\"&&&{box-sizing:border-box;display:block;margin:0;max-width:100%;padding:0;pointer-events:none;top:50%;transition:transform \", FLOATING_LABEL_TRANSITION_SPEED, \" linear,max-width \", FLOATING_LABEL_TRANSITION_SPEED, \" linear;z-index:1;\", input_control_styles_laberColor, \";\", input_control_styles_labelFontSize, \";\", input_control_styles_labelPosition, \";\", labelTruncation, \";\", reduceMotion('transition'), \";\", rtl({\n  left: 0\n}), \"}\" + ( true ? \"\" : undefined));\n\nvar input_control_styles_Label = function Label(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(BaseLabel, Object(esm_extends[\"a\" /* default */])({}, props, {\n    as: \"label\"\n  }));\n};\n\nvar input_control_styles_fieldsetTopStyles = function fieldsetTopStyles(_ref15) {\n  var isFloatingLabel = _ref15.isFloatingLabel;\n  var top = isFloatingLabel ? -5 : 0;\n  return /*#__PURE__*/css_browser_esm({\n    top: top\n  },  true ? \"\" : undefined);\n};\n\nvar input_control_styles_fieldsetFocusedStyles = function fieldsetFocusedStyles(_ref16) {\n  var disabled = _ref16.disabled,\n      isFocused = _ref16.isFocused;\n  var borderColor = isFocused ? colors_color('ui.borderFocus') : colors_color('ui.border');\n\n  if (disabled) {\n    borderColor = 'ui.borderDisabled';\n  }\n\n  var borderWidth = isFocused ? 2 : 1;\n  var borderStyle = 'solid';\n  return /*#__PURE__*/css_browser_esm({\n    borderColor: borderColor,\n    borderStyle: borderStyle,\n    borderWidth: borderWidth\n  },  true ? \"\" : undefined);\n};\n\nvar Fieldset = styled_base_browser_esm(\"fieldset\", {\n  target: \"e1cr7zh14\",\n  label: \"Fieldset\"\n})(\"&&&{box-sizing:border-box;border-radius:inherit;bottom:0;left:0;margin:0;padding:0;pointer-events:none;position:absolute;right:0;\", input_control_styles_fieldsetFocusedStyles, \";\", input_control_styles_fieldsetTopStyles, \";\", rtl({\n  paddingLeft: 2\n}), \"}\" + ( true ? \"\" : undefined));\n\nvar input_control_styles_legendSize = function legendSize(_ref17) {\n  var isFloating = _ref17.isFloating,\n      size = _ref17.size;\n  var maxWidth = isFloating ? 1000 : 0.01;\n  var sizes = {\n    default: 9.75,\n    small: 8.25\n  };\n  var fontSize = sizes[size];\n  return /*#__PURE__*/css_browser_esm({\n    fontSize: fontSize,\n    maxWidth: maxWidth\n  },  true ? \"\" : undefined);\n};\n\nvar Legend = styled_base_browser_esm(\"legend\", {\n  target: \"e1cr7zh15\",\n  label: \"Legend\"\n})(\"&&&{box-sizing:border-box;display:block;height:11px;line-height:11px;margin:0;padding:0;transition:max-width \", FLOATING_LABEL_TRANSITION_SPEED, \" linear;visibility:hidden;width:auto;\", input_control_styles_legendSize, \";\", reduceMotion('transition'), \";}\" + ( true ? \"\" : undefined));\n\nvar BaseLegendText = /*#__PURE__*/styled_base_browser_esm(build_module_text, {\n  target: \"e1cr7zh16\",\n  label: \"BaseLegendText\"\n})(\"box-sizing:border-box;display:inline-block;\", rtl({\n  paddingLeft: 4,\n  paddingRight: 5\n}),  true ? \"\" : undefined);\n\nvar input_control_styles_LegendText = function LegendText(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(BaseLegendText, Object(esm_extends[\"a\" /* default */])({}, props, {\n    as: \"span\"\n  }));\n};\nvar Suffix = styled_base_browser_esm(\"span\", {\n  target: \"e1cr7zh17\",\n  label: \"Suffix\"\n})( true ? {\n  name: \"1pxuk39\",\n  styles: \"box-sizing:border-box;display:block;\"\n} : undefined);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/backdrop.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction Backdrop(_ref) {\n  var _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$isFloating = _ref.isFloating,\n      isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating,\n      _ref$isFloatingLabel = _ref.isFloatingLabel,\n      isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel,\n      _ref$isFocused = _ref.isFocused,\n      isFocused = _ref$isFocused === void 0 ? false : _ref$isFocused,\n      label = _ref.label,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 'default' : _ref$size;\n  return Object(external_this_wp_element_[\"createElement\"])(Fieldset, {\n    \"aria-hidden\": \"true\",\n    className: \"components-input-control__backdrop\",\n    disabled: disabled,\n    isFloatingLabel: isFloatingLabel,\n    isFocused: isFocused\n  }, isFloatingLabel && Object(external_this_wp_element_[\"createElement\"])(Legend, {\n    \"aria-hidden\": \"true\",\n    className: \"components-input-control__backdrop-label\",\n    isFloating: isFloating,\n    size: size\n  }, Object(external_this_wp_element_[\"createElement\"])(input_control_styles_LegendText, {\n    className: \"components-input-control__backdrop-text\"\n  }, label)));\n}\n\nvar MemoizedBackdrop = Object(external_this_wp_element_[\"memo\"])(Backdrop);\n/* harmony default export */ var backdrop = (MemoizedBackdrop);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/utils.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Gets a CSS cursor value based on a drag direction.\n *\n * @param {string} dragDirection The drag direction.\n * @return {string} The CSS cursor value.\n */\n\nfunction getDragCursor(dragDirection) {\n  var dragCursor = 'ns-resize';\n\n  switch (dragDirection) {\n    case 'n':\n    case 's':\n      dragCursor = 'ns-resize';\n      break;\n\n    case 'e':\n    case 'w':\n      dragCursor = 'ew-resize';\n      break;\n  }\n\n  return dragCursor;\n}\n/**\n * Custom hook that renders a drag cursor when dragging.\n *\n * @param {boolean} isDragging The dragging state.\n * @param {string} dragDirection The drag direction.\n *\n * @return {string} The CSS cursor value.\n */\n\nfunction useDragCursor(isDragging, dragDirection) {\n  var dragCursor = getDragCursor(dragDirection);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isDragging) {\n      document.documentElement.style.cursor = dragCursor;\n      document.documentElement.style.pointerEvents = 'none';\n    } else {\n      document.documentElement.style.cursor = null;\n      document.documentElement.style.pointerEvents = null;\n    }\n  }, [isDragging]);\n  return dragCursor;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/values.js\n/**\n * Determines if a value is null or undefined.\n *\n * @param {any} value The value to check.\n * @return {boolean} Whether value is null or undefined.\n */\nfunction isValueDefined(value) {\n  return value !== undefined && value !== null;\n}\n/**\n * Determines if a value is empty, null, or undefined.\n *\n * @param {any} value The value to check.\n * @return {boolean} Whether value is empty.\n */\n\nfunction isValueEmpty(value) {\n  var isEmptyString = value === '';\n  return !isValueDefined(value) || isEmptyString;\n}\n/**\n * Attempts to get a defined/non-null value from a collection of arguments.\n *\n * @param {Array<any>} values Values to derive from.\n * @param {any} fallbackValue Fallback value if there are no defined values.\n * @return {any} A defined value or the fallback value.\n */\n\nfunction getDefinedValue() {\n  var _values$find;\n\n  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var fallbackValue = arguments.length > 1 ? arguments[1] : undefined;\n  return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/input-field.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction InputField(_ref, ref) {\n  var _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$dragDirection = _ref.dragDirection,\n      dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection,\n      _ref$dragThreshold = _ref.dragThreshold,\n      dragThreshold = _ref$dragThreshold === void 0 ? 10 : _ref$dragThreshold,\n      id = _ref.id,\n      _ref$isDragEnabled = _ref.isDragEnabled,\n      isDragEnabled = _ref$isDragEnabled === void 0 ? false : _ref$isDragEnabled,\n      _ref$isFloating = _ref.isFloating,\n      isFloating = _ref$isFloating === void 0 ? false : _ref$isFloating,\n      _ref$isFloatingLabelS = _ref.isFloatingLabelSet,\n      isFloatingLabelSet = _ref$isFloatingLabelS === void 0 ? false : _ref$isFloatingLabelS,\n      _ref$isPressEnterToCh = _ref.isPressEnterToChange,\n      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,\n      _ref$onBlur = _ref.onBlur,\n      onBlur = _ref$onBlur === void 0 ? external_this_lodash_[\"noop\"] : _ref$onBlur,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onDrag = _ref.onDrag,\n      onDrag = _ref$onDrag === void 0 ? external_this_lodash_[\"noop\"] : _ref$onDrag,\n      _ref$onDragEnd = _ref.onDragEnd,\n      onDragEnd = _ref$onDragEnd === void 0 ? external_this_lodash_[\"noop\"] : _ref$onDragEnd,\n      _ref$onDragStart = _ref.onDragStart,\n      onDragStart = _ref$onDragStart === void 0 ? external_this_lodash_[\"noop\"] : _ref$onDragStart,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onKeyDown = _ref.onKeyDown,\n      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_[\"noop\"] : _ref$onKeyDown,\n      onUpdateValue = _ref.onUpdateValue,\n      _ref$onValidate = _ref.onValidate,\n      onValidate = _ref$onValidate === void 0 ? external_this_lodash_[\"noop\"] : _ref$onValidate,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 'default' : _ref$size,\n      _ref$stateReducer = _ref.stateReducer,\n      stateReducer = _ref$stateReducer === void 0 ? function (state) {\n    return state;\n  } : _ref$stateReducer,\n      valueProp = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"disabled\", \"dragDirection\", \"dragThreshold\", \"id\", \"isDragEnabled\", \"isFloating\", \"isFloatingLabelSet\", \"isPressEnterToChange\", \"onBlur\", \"onChange\", \"onDrag\", \"onDragEnd\", \"onDragStart\", \"onFocus\", \"onKeyDown\", \"onUpdateValue\", \"onValidate\", \"size\", \"stateReducer\", \"value\"]);\n\n  var _useInputControlState = useInputControlStateReducer(stateReducer, {\n    isDragEnabled: isDragEnabled,\n    value: valueProp,\n    isPressEnterToChange: isPressEnterToChange\n  }),\n      state = _useInputControlState.state,\n      change = _useInputControlState.change,\n      commit = _useInputControlState.commit,\n      drag = _useInputControlState.drag,\n      dragEnd = _useInputControlState.dragEnd,\n      dragStart = _useInputControlState.dragStart,\n      invalidate = _useInputControlState.invalidate,\n      pressDown = _useInputControlState.pressDown,\n      pressEnter = _useInputControlState.pressEnter,\n      pressUp = _useInputControlState.pressUp,\n      reset = _useInputControlState.reset,\n      update = _useInputControlState.update;\n\n  var _event = state._event,\n      value = state.value,\n      isDragging = state.isDragging,\n      isDirty = state.isDirty;\n  var valueRef = Object(external_this_wp_element_[\"useRef\"])(value);\n  var dragCursor = useDragCursor(isDragging, dragDirection);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    /**\n     * Handles syncing incoming value changes with internal state.\n     * This effectively enables a \"controlled\" state.\n     * https://reactjs.org/docs/forms.html#controlled-components\n     */\n    if (valueProp !== valueRef.current) {\n      update(valueProp);\n      valueRef.current = valueProp; // Quick return to avoid firing the onChange callback\n\n      return;\n    }\n    /**\n     * Fires the onChange callback when internal state value changes.\n     */\n\n\n    if (value !== valueRef.current && !isDirty) {\n      onChange(value, {\n        event: _event\n      });\n      onUpdateValue(!isValueEmpty(value));\n      valueRef.current = value;\n    }\n  }, [value, isDirty, valueProp]);\n\n  var handleOnBlur = function handleOnBlur(event) {\n    onBlur(event);\n    /**\n     * If isPressEnterToChange is set, this commits the value to\n     * the onChange callback.\n     */\n\n    if (isPressEnterToChange && isDirty) {\n      if (!isValueEmpty(value)) {\n        handleOnCommit({\n          target: {\n            value: value\n          }\n        }, event);\n      } else {\n        reset(valueProp);\n      }\n    }\n  };\n\n  var handleOnFocus = function handleOnFocus(event) {\n    onFocus(event);\n  };\n\n  var handleOnChange = function handleOnChange(event) {\n    var nextValue = event.target.value;\n    change(nextValue, event);\n  };\n\n  var handleOnCommit = function handleOnCommit(event) {\n    var nextValue = event.target.value;\n\n    try {\n      onValidate(nextValue, {\n        event: event\n      });\n      commit(nextValue, event);\n    } catch (err) {\n      invalidate(err, {\n        event: event\n      });\n    }\n  };\n\n  var handleOnKeyDown = function handleOnKeyDown(event) {\n    var keyCode = event.keyCode;\n    onKeyDown(event);\n\n    switch (keyCode) {\n      case external_this_wp_keycodes_[\"UP\"]:\n        pressUp(event);\n        break;\n\n      case external_this_wp_keycodes_[\"DOWN\"]:\n        pressDown(event);\n        break;\n\n      case external_this_wp_keycodes_[\"ENTER\"]:\n        pressEnter(event);\n\n        if (isPressEnterToChange) {\n          event.preventDefault();\n          handleOnCommit(event);\n        }\n\n        break;\n    }\n  };\n\n  var dragGestureProps = useDrag(function (dragProps) {\n    var distance = dragProps.distance,\n        dragging = dragProps.dragging,\n        event = dragProps.event;\n    if (!isDragEnabled) return;\n    if (!distance) return;\n    event.stopPropagation();\n    /**\n     * Quick return if no longer dragging.\n     * This prevents unnecessary value calculations.\n     */\n\n    if (!dragging) {\n      onDragEnd(dragProps);\n      dragEnd(dragProps);\n      return;\n    }\n\n    onDrag(dragProps);\n    drag(dragProps);\n\n    if (!isDragging) {\n      onDragStart(dragProps);\n      dragStart(dragProps);\n    }\n  }, {\n    threshold: dragThreshold,\n    enabled: isDragEnabled\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(input_control_styles_Input, Object(esm_extends[\"a\" /* default */])({}, props, dragGestureProps(), {\n    className: \"components-input-control__input\",\n    disabled: disabled,\n    dragCursor: dragCursor,\n    isDragging: isDragging,\n    id: id,\n    isFloating: isFloating,\n    isFloatingLabel: isFloatingLabelSet,\n    onBlur: handleOnBlur,\n    onChange: handleOnChange,\n    onFocus: handleOnFocus,\n    onKeyDown: handleOnKeyDown,\n    ref: ref,\n    size: size,\n    value: value\n  }));\n}\n\nvar ForwardedComponent = Object(external_this_wp_element_[\"forwardRef\"])(InputField);\n/* harmony default export */ var input_field = (ForwardedComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/label.js\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction label_Label(_ref) {\n  var children = _ref.children,\n      hideLabelFromVision = _ref.hideLabelFromVision,\n      htmlFor = _ref.htmlFor,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"hideLabelFromVision\", \"htmlFor\"]);\n\n  if (!children) return null;\n\n  if (hideLabelFromVision) {\n    return Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n      as: \"label\",\n      htmlFor: htmlFor\n    }, children);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(input_control_styles_Label, Object(esm_extends[\"a\" /* default */])({\n    htmlFor: htmlFor\n  }, props), children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/input-control/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction useUniqueId(idProp) {\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(InputControl);\n  var id = \"inspector-input-control-\".concat(instanceId);\n  return idProp || id;\n}\n\nfunction InputControl(_ref, ref) {\n  var _ref$__unstableStateR = _ref.__unstableStateReducer,\n      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {\n    return state;\n  } : _ref$__unstableStateR,\n      children = _ref.children,\n      className = _ref.className,\n      _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$hideLabelFromVis = _ref.hideLabelFromVision,\n      hideLabelFromVision = _ref$hideLabelFromVis === void 0 ? false : _ref$hideLabelFromVis,\n      idProp = _ref.id,\n      _ref$isPressEnterToCh = _ref.isPressEnterToChange,\n      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,\n      _ref$isFloatingLabel = _ref.isFloatingLabel,\n      isFloatingLabel = _ref$isFloatingLabel === void 0 ? false : _ref$isFloatingLabel,\n      label = _ref.label,\n      _ref$onBlur = _ref.onBlur,\n      onBlur = _ref$onBlur === void 0 ? external_this_lodash_[\"noop\"] : _ref$onBlur,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onValidate = _ref.onValidate,\n      onValidate = _ref$onValidate === void 0 ? external_this_lodash_[\"noop\"] : _ref$onValidate,\n      _ref$onKeyDown = _ref.onKeyDown,\n      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_[\"noop\"] : _ref$onKeyDown,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 'default' : _ref$size,\n      suffix = _ref.suffix,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"__unstableStateReducer\", \"children\", \"className\", \"disabled\", \"hideLabelFromVision\", \"id\", \"isPressEnterToChange\", \"isFloatingLabel\", \"label\", \"onBlur\", \"onChange\", \"onFocus\", \"onValidate\", \"onKeyDown\", \"size\", \"suffix\", \"value\"]);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isFocused = _useState2[0],\n      setIsFocused = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(!isValueEmpty(value)),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isFilled = _useState4[0],\n      setIsFilled = _useState4[1];\n\n  var id = useUniqueId(idProp);\n  var classes = classnames_default()('components-input-control', className);\n\n  var handleOnBlur = function handleOnBlur(event) {\n    onBlur(event);\n    setIsFocused(false);\n  };\n\n  var handleOnFocus = function handleOnFocus(event) {\n    onFocus(event);\n    setIsFocused(true);\n  };\n\n  var isInputFilled = isFilled || !isValueEmpty(value);\n  var isFloating = isFloatingLabel ? isInputFilled || isFocused : false;\n  var isFloatingLabelSet = !hideLabelFromVision && isFloatingLabel && label;\n  return Object(external_this_wp_element_[\"createElement\"])(input_control_styles_Root, {\n    className: classes,\n    isFloatingLabel: isFloatingLabelSet,\n    isFocused: isFocused\n  }, Object(external_this_wp_element_[\"createElement\"])(label_Label, {\n    className: \"components-input-control__label\",\n    hideLabelFromVision: hideLabelFromVision,\n    htmlFor: id,\n    isFilled: isFilled,\n    isFloating: isFloating,\n    isFloatingLabel: isFloatingLabel,\n    size: size\n  }, label), Object(external_this_wp_element_[\"createElement\"])(Container, {\n    className: \"components-input-control__container\",\n    disabled: disabled,\n    isFocused: isFocused\n  }, Object(external_this_wp_element_[\"createElement\"])(input_field, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: \"components-input-control__input\",\n    disabled: disabled,\n    id: id,\n    isFloating: isFloating,\n    isFloatingLabelSet: isFloatingLabelSet,\n    isPressEnterToChange: isPressEnterToChange,\n    onBlur: handleOnBlur,\n    onChange: onChange,\n    onFocus: handleOnFocus,\n    onKeyDown: onKeyDown,\n    onUpdateValue: setIsFilled,\n    onValidate: onValidate,\n    ref: ref,\n    setIsFocused: setIsFocused,\n    size: size,\n    stateReducer: stateReducer,\n    value: value\n  })), suffix && Object(external_this_wp_element_[\"createElement\"])(Suffix, {\n    className: \"components-input-control__suffix\"\n  }, suffix), Object(external_this_wp_element_[\"createElement\"])(backdrop, {\n    \"aria-hidden\": \"true\",\n    disabled: disabled,\n    isFloating: isFloating,\n    isFloatingLabel: isFloatingLabelSet,\n    isFocused: isFocused,\n    label: label,\n    size: size\n  }), children));\n}\n/* harmony default export */ var input_control = (Object(external_this_wp_element_[\"forwardRef\"])(InputControl));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/styles/number-control-styles.js\n\n\nfunction number_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar number_control_styles_ref =  true ? {\n  name: \"1b9wwt5\",\n  styles: \"&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none !important;margin:0 !important;}\"\n} : undefined;\n\nvar htmlArrowStyles = function htmlArrowStyles(_ref2) {\n  var hideHTMLArrows = _ref2.hideHTMLArrows;\n  if (!hideHTMLArrows) return \"\";\n  return number_control_styles_ref;\n};\n\nvar number_control_styles_Input = /*#__PURE__*/styled_base_browser_esm(input_control, {\n  target: \"ep48uk90\",\n  label: \"Input\"\n})(htmlArrowStyles, \";\" + ( true ? \"\" : undefined));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/math.js\n/**\n * External dependencies\n */\n\n/**\n * Parses and retrieves a number value.\n *\n * @param {any} value The incoming value.\n *\n * @return {number} The parsed number value.\n */\n\nfunction getNumber(value) {\n  var number = Number(value);\n  return isNaN(number) ? 0 : number;\n}\n/**\n * Safely adds 2 values.\n *\n * @param {number|string} args Values to add together.\n *\n * @return {number} The sum of values.\n */\n\nfunction add() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  return args.reduce(function (sum, arg) {\n    return sum + getNumber(arg);\n  }, 0);\n}\n/**\n * Safely subtracts 2 values.\n *\n * @param {number|string} args Values to subtract together.\n *\n * @return {number} The difference of the 2 values.\n */\n\nfunction subtract() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  return args.reduce(function (diff, arg, index) {\n    var value = getNumber(arg);\n    return index === 0 ? value : diff - value;\n  });\n}\n/**\n * Determines the decimal position of a number value.\n *\n * @param {number} value The number to evaluate.\n *\n * @return {number} The number of decimal places.\n */\n\nfunction getPrecision(value) {\n  var split = (value + '').split('.');\n  return split[1] !== undefined ? split[1].length : 0;\n}\n/**\n * Clamps a value based on a min/max range with rounding\n *\n * @param {number} value The value.\n * @param {number} min The minimum range.\n * @param {number} max The maximum range.\n * @param {number} step A multiplier for the value.\n *\n * @return {number} The rounded and clamped value.\n */\n\n\nfunction roundClamp() {\n  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Infinity;\n  var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Infinity;\n  var step = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  var baseValue = getNumber(value);\n  var stepValue = getNumber(step);\n  var precision = getPrecision(step);\n  var rounded = Math.round(baseValue / stepValue) * stepValue;\n  var clampedValue = Object(external_this_lodash_[\"clamp\"])(rounded, min, max);\n  return precision ? getNumber(clampedValue.toFixed(precision)) : clampedValue;\n}\n/**\n * Clamps a value based on a min/max range with rounding.\n * Returns a string.\n *\n * @param {any} args Arguments for roundClamp().\n * @property {number} value The value.\n * @property {number} min The minimum range.\n * @property {number} max The maximum range.\n * @property {number} step A multiplier for the value.\n *\n * @return {string} The rounded and clamped value.\n */\n\nfunction roundClampString() {\n  return roundClamp.apply(void 0, arguments).toString();\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-jump-step.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * A custom hook that calculates a step value (used by elements like input\n * [type=\"number\"]). This value can be modified based on whether the Shift\n * key is being held down.\n *\n * For example, a shiftStep of 10, and a step of 1...\n * Starting from 10, the next incremented value will be 11.\n *\n * Holding down shift...\n * Starting from 10, the next incremented value will be 20.\n *\n * @param {Object} props Properties for the hook.\n * @param {boolean} [props.isShiftStepEnabled=true] Determines if jumping values with shift is enabled\n * @param {number} [props.shiftStep=10] Multiplier to jump by, when holding shift key.\n * @param {number} [props.step=1] Multiplier to jump by, when not-holding shift key.\n *\n * @return {number} The jump step value.\n */\n\nfunction useJumpStep(_ref) {\n  var _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,\n      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,\n      _ref$shiftStep = _ref.shiftStep,\n      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,\n      _ref$step = _ref.step,\n      step = _ref$step === void 0 ? 1 : _ref$step;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isShiftKey = _useState2[0],\n      setIsShiftKey = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var handleShiftKeyToggle = function handleShiftKeyToggle(event) {\n      setIsShiftKey(event.shiftKey);\n    };\n\n    window.addEventListener('keydown', handleShiftKeyToggle);\n    window.addEventListener('keyup', handleShiftKeyToggle);\n    return function () {\n      window.removeEventListener('keydown', handleShiftKeyToggle);\n      window.removeEventListener('keyup', handleShiftKeyToggle);\n    };\n  }, []);\n  var isEnabled = isShiftStepEnabled && isShiftKey;\n  return isEnabled ? shiftStep * step : step;\n}\n\n/* harmony default export */ var use_jump_step = (useJumpStep);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/number-control/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction NumberControl(_ref, ref) {\n  var _ref$__unstableStateR = _ref.__unstableStateReducer,\n      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {\n    return state;\n  } : _ref$__unstableStateR,\n      className = _ref.className,\n      _ref$dragDirection = _ref.dragDirection,\n      dragDirection = _ref$dragDirection === void 0 ? 'n' : _ref$dragDirection,\n      _ref$hideHTMLArrows = _ref.hideHTMLArrows,\n      hideHTMLArrows = _ref$hideHTMLArrows === void 0 ? false : _ref$hideHTMLArrows,\n      _ref$isDragEnabled = _ref.isDragEnabled,\n      isDragEnabled = _ref$isDragEnabled === void 0 ? true : _ref$isDragEnabled,\n      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,\n      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,\n      label = _ref.label,\n      _ref$max = _ref.max,\n      max = _ref$max === void 0 ? Infinity : _ref$max,\n      _ref$min = _ref.min,\n      min = _ref$min === void 0 ? -Infinity : _ref$min,\n      _ref$shiftStep = _ref.shiftStep,\n      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,\n      _ref$step = _ref.step,\n      step = _ref$step === void 0 ? 1 : _ref$step,\n      _ref$type = _ref.type,\n      typeProp = _ref$type === void 0 ? 'number' : _ref$type,\n      valueProp = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"__unstableStateReducer\", \"className\", \"dragDirection\", \"hideHTMLArrows\", \"isDragEnabled\", \"isShiftStepEnabled\", \"label\", \"max\", \"min\", \"shiftStep\", \"step\", \"type\", \"value\"]);\n\n  var isRtl = useRTL();\n  var baseValue = roundClamp(0, min, max, step);\n  var jumpStep = use_jump_step({\n    step: step,\n    shiftStep: shiftStep,\n    isShiftStepEnabled: isShiftStepEnabled\n  });\n  var autoComplete = typeProp === 'number' ? 'off' : null;\n  var classes = classnames_default()('components-number-control', className);\n  /**\n   * \"Middleware\" function that intercepts updates from InputControl.\n   * This allows us to tap into actions to transform the (next) state for\n   * InputControl.\n   *\n   * @param {Object} state State from InputControl\n   * @param {Object} action Action triggering state change\n   * @return {Object} The updated state to apply to InputControl\n   */\n\n  var numberControlStateReducer = function numberControlStateReducer(state, action) {\n    var type = action.type,\n        payload = action.payload;\n    var event = payload === null || payload === void 0 ? void 0 : payload.event;\n    var currentValue = state.value;\n    /**\n     * Handles custom UP and DOWN Keyboard events\n     */\n\n    if (type === inputControlActionTypes.PRESS_UP || type === inputControlActionTypes.PRESS_DOWN) {\n      var enableShift = event.shiftKey && isShiftStepEnabled;\n      var incrementalValue = enableShift ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);\n      var nextValue = isValueEmpty(currentValue) ? baseValue : currentValue;\n\n      if (event === null || event === void 0 ? void 0 : event.preventDefault) {\n        event.preventDefault();\n      }\n\n      if (type === inputControlActionTypes.PRESS_UP) {\n        nextValue = add(nextValue, incrementalValue);\n      }\n\n      if (type === inputControlActionTypes.PRESS_DOWN) {\n        nextValue = subtract(nextValue, incrementalValue);\n      }\n\n      nextValue = roundClamp(nextValue, min, max, incrementalValue);\n      state.value = nextValue;\n    }\n    /**\n     * Handles drag to update events\n     */\n\n\n    if (type === inputControlActionTypes.DRAG && isDragEnabled) {\n      var delta = payload.delta,\n          shiftKey = payload.shiftKey;\n\n      var _delta = Object(slicedToArray[\"a\" /* default */])(delta, 2),\n          x = _delta[0],\n          y = _delta[1];\n\n      var modifier = shiftKey ? parseFloat(shiftStep) * parseFloat(step) : parseFloat(step);\n      var directionModifier;\n      var directionBaseValue;\n\n      switch (dragDirection) {\n        case 'n':\n          directionBaseValue = y;\n          directionModifier = -1;\n          break;\n\n        case 'e':\n          directionBaseValue = x;\n          directionModifier = isRtl ? -1 : 1;\n          break;\n\n        case 's':\n          directionBaseValue = y;\n          directionModifier = 1;\n          break;\n\n        case 'w':\n          directionBaseValue = x;\n          directionModifier = isRtl ? 1 : -1;\n          break;\n      }\n\n      var distance = directionBaseValue * modifier * directionModifier;\n\n      var _nextValue;\n\n      if (distance !== 0) {\n        _nextValue = roundClamp(add(currentValue, distance), min, max, modifier);\n        state.value = _nextValue;\n      }\n    }\n    /**\n     * Handles ENTER key press and submit\n     */\n\n\n    if (type === inputControlActionTypes.PRESS_ENTER || type === inputControlActionTypes.SUBMIT) {\n      state.value = roundClamp(currentValue, min, max);\n    }\n\n    return state;\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(number_control_styles_Input, Object(esm_extends[\"a\" /* default */])({\n    autoComplete: autoComplete,\n    inputMode: \"numeric\"\n  }, props, {\n    className: classes,\n    dragDirection: dragDirection,\n    hideHTMLArrows: hideHTMLArrows,\n    isDragEnabled: isDragEnabled,\n    label: label,\n    max: max,\n    min: min,\n    ref: ref,\n    step: jumpStep,\n    type: typeProp,\n    value: valueProp,\n    __unstableStateReducer: state_composeStateReducers(numberControlStateReducer, stateReducer)\n  }));\n}\n/* harmony default export */ var number_control = (Object(external_this_wp_element_[\"forwardRef\"])(NumberControl));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/styles/unit-control-styles.js\n\n\nfunction unit_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar unit_control_styles_Root = styled_base_browser_esm(\"div\", {\n  target: \"e1agakv00\",\n  label: \"Root\"\n})( true ? {\n  name: \"1bt0omd\",\n  styles: \"box-sizing:border-box;position:relative;\"\n} : undefined);\n\nvar unit_control_styles_paddingStyles = function paddingStyles(_ref2) {\n  var disableUnits = _ref2.disableUnits;\n  var value = disableUnits ? 3 : 24;\n  return /*#__PURE__*/css_browser_esm(rtl({\n    paddingRight: value\n  })(), \";\" + ( true ? \"\" : undefined));\n};\n\nvar unit_control_styles_ref =  true ? {\n  name: \"1y65o8\",\n  styles: \"&::-webkit-outer-spin-button,&::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}\"\n} : undefined;\n\nvar arrowStyles = function arrowStyles(_ref3) {\n  var disableUnits = _ref3.disableUnits;\n  if (disableUnits) return '';\n  return unit_control_styles_ref;\n}; // TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\n\nvar ValueInput = /*#__PURE__*/styled_base_browser_esm(number_control, {\n  target: \"e1agakv01\",\n  label: \"ValueInput\"\n})(\"&&&{input{appearance:none;-moz-appearance:textfield;display:block;width:100%;\", arrowStyles, \";\", unit_control_styles_paddingStyles, \";}}\" + ( true ? \"\" : undefined));\n\nvar unit_control_styles_unitSizeStyles = function unitSizeStyles(_ref4) {\n  var size = _ref4.size;\n  var sizes = {\n    default: {\n      height: 28,\n      lineHeight: '24px',\n      minHeight: 28,\n      top: 1\n    },\n    small: {\n      height: 22,\n      lineHeight: '18px',\n      minHeight: 22,\n      top: 1\n    }\n  };\n  return /*#__PURE__*/css_browser_esm(sizes[size],  true ? \"\" : undefined);\n};\n\nvar unit_control_styles_baseUnitLabelStyles = function baseUnitLabelStyles(props) {\n  return /*#__PURE__*/css_browser_esm(\"appearance:none;background:transparent;border-radius:2px;border:none;box-sizing:border-box;color:\", colors_color('darkGray.500'), \";display:block;font-size:8px;line-height:1;letter-spacing:-0.5px;outline:none;padding:2px 1px;position:absolute;text-align-last:center;text-transform:uppercase;width:20px;\", rtl({\n    borderTopLeftRadius: 0,\n    borderBottomLeftRadius: 0\n  })(), \" \", rtl({\n    right: 0\n  })(), \" \", unit_control_styles_unitSizeStyles(props),  true ? \"\" : undefined);\n};\n\nvar UnitLabel = styled_base_browser_esm(\"div\", {\n  target: \"e1agakv02\",\n  label: \"UnitLabel\"\n})(\"&&&{pointer-events:none;\", unit_control_styles_baseUnitLabelStyles, \";}\" + ( true ? \"\" : undefined));\nvar UnitSelect = styled_base_browser_esm(\"select\", {\n  target: \"e1agakv03\",\n  label: \"UnitSelect\"\n})(\"&&&{\", unit_control_styles_baseUnitLabelStyles, \";cursor:pointer;border:1px solid transparent;&:hover{background-color:\", colors_color('lightGray.300'), \";}&:focus{border-color:\", colors_color('ui.borderFocus'), \";outline:2px solid transparent;outline-offset:0;}&:disabled{cursor:initial;&:hover{background-color:transparent;}}}\" + ( true ? \"\" : undefined));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/utils.js\n\n\n/**\n * External dependencies\n */\n\nvar CSS_UNITS = [{\n  value: 'px',\n  label: 'px',\n  default: 0\n}, {\n  value: '%',\n  label: '%',\n  default: 10\n}, {\n  value: 'em',\n  label: 'em',\n  default: 0\n}, {\n  value: 'rem',\n  label: 'rem',\n  default: 0\n}, {\n  value: 'vw',\n  label: 'vw',\n  default: 10\n}, {\n  value: 'vh',\n  label: 'vh',\n  default: 10\n}];\nvar DEFAULT_UNIT = CSS_UNITS[0];\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param {number|string} value Value\n * @param {string} unit Unit value\n * @param {Array<Object>} units Units to derive from.\n * @return {Array<number, string>} The extracted number and unit.\n */\n\nfunction getParsedValue(value, unit, units) {\n  var initialValue = unit ? \"\".concat(value).concat(unit) : value;\n  return parseUnit(initialValue, units);\n}\n/**\n * Checks if units are defined.\n *\n * @param {any} units Units to check.\n * @return {boolean} Whether units are defined.\n */\n\nfunction hasUnits(units) {\n  return !Object(external_this_lodash_[\"isEmpty\"])(units) && units.length > 1 && units !== false;\n}\n/**\n * Parses a number and unit from a value.\n *\n * @param {string} initialValue Value to parse\n * @param {Array<Object>} units Units to derive from.\n * @return {Array<number, string>} The extracted number and unit.\n */\n\nfunction parseUnit(initialValue) {\n  var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : CSS_UNITS;\n  var value = String(initialValue).trim();\n  var num = parseFloat(value, 10);\n  num = isNaN(num) ? '' : num;\n  var unitMatch = value.match(/[\\d.\\-\\+]*\\s*(.*)/)[1];\n  var unit = unitMatch !== undefined ? unitMatch : '';\n  unit = unit.toLowerCase();\n\n  if (hasUnits(units)) {\n    var match = units.find(function (item) {\n      return item.value === unit;\n    });\n    unit = match === null || match === void 0 ? void 0 : match.value;\n  }\n\n  return [num, unit];\n}\n/**\n * Parses a number and unit from a value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param {number|string} next The next value.\n * @param {Array<Object>} units Units to derive from.\n * @param {number|string} fallbackValue The fallback value.\n * @param {string} fallbackUnit The fallback value.\n * @return {Array<number, string>} The extracted number and unit.\n */\n\nfunction getValidParsedUnit(next, units, fallbackValue, fallbackUnit) {\n  var _parseUnit = parseUnit(next, units),\n      _parseUnit2 = Object(slicedToArray[\"a\" /* default */])(_parseUnit, 2),\n      parsedValue = _parseUnit2[0],\n      parsedUnit = _parseUnit2[1];\n\n  var baseValue = parsedValue;\n  var baseUnit;\n\n  if (isNaN(parsedValue) || parsedValue === '') {\n    baseValue = fallbackValue;\n  }\n\n  baseUnit = parsedUnit || fallbackUnit;\n  /**\n   * If no unit is found, attempt to use the first value from the collection\n   * of units as a default fallback.\n   */\n\n  if (hasUnits(units) && !baseUnit) {\n    var _units$;\n\n    baseUnit = (_units$ = units[0]) === null || _units$ === void 0 ? void 0 : _units$.value;\n  }\n\n  return [baseValue, baseUnit];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/unit-select-control.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Renders a `select` if there are multiple units.\n * Otherwise, renders a non-selectable label.\n *\n * @param {Object}   props                     Component props.\n * @param {string}   [props.className]         Class to set on the `select` element.\n * @param {boolean}  [props.isTabbable=true]   Whether the control can be focused via keyboard navigation.\n * @param {Array}    [props.options=CSS_UNITS] Available units to select from.\n * @param {Function} [props.onChange=noop]     A callback function invoked when the value is changed.\n * @param {string}   [props.size=\"default\"]    Size of the control option. Supports \"default\" and \"small\".\n * @param {string}   [props.value=\"px\"]        Current unit.\n */\n\nfunction UnitSelectControl(_ref) {\n  var className = _ref.className,\n      _ref$isTabbable = _ref.isTabbable,\n      isTabbable = _ref$isTabbable === void 0 ? true : _ref$isTabbable,\n      _ref$options = _ref.options,\n      options = _ref$options === void 0 ? CSS_UNITS : _ref$options,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 'default' : _ref$size,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? 'px' : _ref$value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"isTabbable\", \"options\", \"onChange\", \"size\", \"value\"]);\n\n  if (!hasUnits(options)) {\n    return Object(external_this_wp_element_[\"createElement\"])(UnitLabel, {\n      className: \"components-unit-control__unit-label\",\n      size: size\n    }, value);\n  }\n\n  var handleOnChange = function handleOnChange(event) {\n    var unitValue = event.target.value;\n    var data = options.find(function (option) {\n      return option.value === unitValue;\n    });\n    onChange(unitValue, {\n      event: event,\n      data: data\n    });\n  };\n\n  var classes = classnames_default()('components-unit-control__select', className);\n  return Object(external_this_wp_element_[\"createElement\"])(UnitSelect, Object(esm_extends[\"a\" /* default */])({\n    className: classes,\n    onChange: handleOnChange,\n    size: size,\n    tabIndex: isTabbable ? null : '-1',\n    value: value\n  }, props), options.map(function (option) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n      value: option.value,\n      key: option.value\n    }, option.label);\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/hooks/use-controlled-state.js\n\n\n\nfunction use_controlled_state_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction use_controlled_state_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { use_controlled_state_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { use_controlled_state_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar defaultOptions = {\n  initial: undefined,\n\n  /**\n   * Defaults to empty string, as that is preferred for usage with\n   * <input />, <textarea />, and <select /> form elements.\n   */\n  fallback: ''\n};\n/**\n * Custom hooks for \"controlled\" components to track and consolidate internal\n * state and incoming values. This is useful for components that render\n * `input`, `textarea`, or `select` HTML elements.\n *\n * https://reactjs.org/docs/forms.html#controlled-components\n *\n * At first, a component using useControlledState receives an initial prop\n * value, which is used as initial internal state.\n *\n * This internal state can be maintained and updated without\n * relying on new incoming prop values.\n *\n * Unlike the basic useState hook, useControlledState's state can\n * be updated if a new incoming prop value is changed.\n *\n * @param {any} currentState The current value.\n * @param {Object} options Additional options for the hook.\n * @param {any} options.initial The initial state.\n * @param {any} options.fallback The state to use when no state is defined.\n *\n * @return {[*, Function]} The controlled value and the value setter.\n */\n\nfunction useControlledState(currentState) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n\n  var _defaultOptions$optio = use_controlled_state_objectSpread({}, defaultOptions, {}, options),\n      initial = _defaultOptions$optio.initial,\n      fallback = _defaultOptions$optio.fallback;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(currentState),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      internalState = _useState2[0],\n      setInternalState = _useState2[1];\n\n  var hasCurrentState = isValueDefined(currentState);\n  var state = getDefinedValue([currentState, internalState, initial], fallback);\n\n  var setState = function setState(nextState) {\n    if (!hasCurrentState) {\n      setInternalState(nextState);\n    }\n  };\n\n  return [state, setState];\n}\n\n/* harmony default export */ var use_controlled_state = (useControlledState);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/unit-control/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction UnitControl(_ref, ref) {\n  var _ref$__unstableStateR = _ref.__unstableStateReducer,\n      stateReducer = _ref$__unstableStateR === void 0 ? function (state) {\n    return state;\n  } : _ref$__unstableStateR,\n      _ref$autoComplete = _ref.autoComplete,\n      autoComplete = _ref$autoComplete === void 0 ? 'off' : _ref$autoComplete,\n      className = _ref.className,\n      _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$disableUnits = _ref.disableUnits,\n      disableUnits = _ref$disableUnits === void 0 ? false : _ref$disableUnits,\n      _ref$isPressEnterToCh = _ref.isPressEnterToChange,\n      isPressEnterToChange = _ref$isPressEnterToCh === void 0 ? false : _ref$isPressEnterToCh,\n      _ref$isResetValueOnUn = _ref.isResetValueOnUnitChange,\n      isResetValueOnUnitChange = _ref$isResetValueOnUn === void 0 ? false : _ref$isResetValueOnUn,\n      _ref$isUnitSelectTabb = _ref.isUnitSelectTabbable,\n      isUnitSelectTabbable = _ref$isUnitSelectTabb === void 0 ? false : _ref$isUnitSelectTabb,\n      label = _ref.label,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onUnitChange = _ref.onUnitChange,\n      onUnitChange = _ref$onUnitChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onUnitChange,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 'default' : _ref$size,\n      style = _ref.style,\n      unitProp = _ref.unit,\n      _ref$units = _ref.units,\n      units = _ref$units === void 0 ? CSS_UNITS : _ref$units,\n      valueProp = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"__unstableStateReducer\", \"autoComplete\", \"className\", \"disabled\", \"disableUnits\", \"isPressEnterToChange\", \"isResetValueOnUnitChange\", \"isUnitSelectTabbable\", \"label\", \"onChange\", \"onUnitChange\", \"size\", \"style\", \"unit\", \"units\", \"value\"]);\n\n  var _getParsedValue = getParsedValue(valueProp, unitProp, units),\n      _getParsedValue2 = Object(slicedToArray[\"a\" /* default */])(_getParsedValue, 2),\n      value = _getParsedValue2[0],\n      initialUnit = _getParsedValue2[1];\n\n  var _useControlledState = use_controlled_state(unitProp, {\n    initial: initialUnit\n  }),\n      _useControlledState2 = Object(slicedToArray[\"a\" /* default */])(_useControlledState, 2),\n      unit = _useControlledState2[0],\n      setUnit = _useControlledState2[1];\n\n  var classes = classnames_default()('components-unit-control', className);\n\n  var handleOnChange = function handleOnChange(next, changeProps) {\n    /**\n     * Customizing the onChange callback.\n     * This allows as to broadcast a combined value+unit to onChange.\n     */\n    var _getValidParsedUnit = getValidParsedUnit(next, units, value, unit),\n        _getValidParsedUnit2 = Object(slicedToArray[\"a\" /* default */])(_getValidParsedUnit, 2),\n        parsedValue = _getValidParsedUnit2[0],\n        parsedUnit = _getValidParsedUnit2[1];\n\n    var nextValue = \"\".concat(parsedValue).concat(parsedUnit);\n    onChange(nextValue, changeProps);\n  };\n\n  var handleOnUnitChange = function handleOnUnitChange(next, changeProps) {\n    var data = changeProps.data;\n    var nextValue = \"\".concat(value).concat(next);\n\n    if (isResetValueOnUnitChange && (data === null || data === void 0 ? void 0 : data.default) !== undefined) {\n      nextValue = \"\".concat(data.default).concat(next);\n    }\n\n    onChange(nextValue, changeProps);\n    onUnitChange(next, changeProps);\n    setUnit(next);\n  };\n  /**\n   * \"Middleware\" function that intercepts updates from InputControl.\n   * This allows us to tap into actions to transform the (next) state for\n   * InputControl.\n   *\n   * @param {Object} state State from InputControl\n   * @param {Object} action Action triggering state change\n   * @return {Object} The updated state to apply to InputControl\n   */\n\n\n  var unitControlStateReducer = function unitControlStateReducer(state, action) {\n    var type = action.type,\n        payload = action.payload;\n    var event = payload === null || payload === void 0 ? void 0 : payload.event;\n    /**\n     * Customizes the commit interaction.\n     *\n     * This occurs when pressing ENTER to fire a change.\n     * By intercepting the state change, we can parse the incoming\n     * value to determine if the unit needs to be updated.\n     */\n\n    if (type === inputControlActionTypes.COMMIT) {\n      var _event$target;\n\n      var valueToParse = event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;\n\n      var _getValidParsedUnit3 = getValidParsedUnit(valueToParse, units, value, unit),\n          _getValidParsedUnit4 = Object(slicedToArray[\"a\" /* default */])(_getValidParsedUnit3, 2),\n          parsedValue = _getValidParsedUnit4[0],\n          parsedUnit = _getValidParsedUnit4[1];\n\n      state.value = parsedValue; // Update unit if the incoming parsed unit is different.\n\n      if (unit !== parsedUnit) {\n        handleOnUnitChange(parsedUnit, {\n          event: event\n        });\n      }\n    }\n\n    return state;\n  };\n\n  var inputSuffix = !disableUnits ? Object(external_this_wp_element_[\"createElement\"])(UnitSelectControl, {\n    disabled: disabled,\n    isTabbable: isUnitSelectTabbable,\n    options: units,\n    onChange: handleOnUnitChange,\n    size: size,\n    value: unit\n  }) : null;\n  return Object(external_this_wp_element_[\"createElement\"])(unit_control_styles_Root, {\n    className: \"components-unit-control-wrapper\",\n    style: style\n  }, Object(external_this_wp_element_[\"createElement\"])(ValueInput, Object(esm_extends[\"a\" /* default */])({\n    \"aria-label\": label,\n    type: isPressEnterToChange ? 'text' : 'number'\n  }, props, {\n    autoComplete: autoComplete,\n    className: classes,\n    disabled: disabled,\n    disableUnits: disableUnits,\n    isPressEnterToChange: isPressEnterToChange,\n    label: label,\n    onChange: handleOnChange,\n    ref: ref,\n    size: size,\n    suffix: inputSuffix,\n    value: value,\n    __unstableStateReducer: state_composeStateReducers(unitControlStateReducer, stateReducer)\n  })));\n}\n\nvar ForwardedUnitControl = Object(external_this_wp_element_[\"forwardRef\"])(UnitControl);\n/* harmony default export */ var unit_control = (ForwardedUnitControl);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-styles.js\n\n\nfunction box_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar box_control_styles_Root = styled_base_browser_esm(\"div\", {\n  target: \"e7pk0lh0\",\n  label: \"Root\"\n})( true ? {\n  name: \"vho1ao\",\n  styles: \"box-sizing:border-box;max-width:235px;padding-bottom:12px;width:100%;\"\n} : undefined);\nvar Header = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {\n  target: \"e7pk0lh1\",\n  label: \"Header\"\n})(\"color:\", colors_color('ui.label'), \";padding-bottom:8px;\" + ( true ? \"\" : undefined));\nvar HeaderControlWrapper = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {\n  target: \"e7pk0lh2\",\n  label: \"HeaderControlWrapper\"\n})( true ? {\n  name: \"19de7qh\",\n  styles: \"min-height:30px;\"\n} : undefined);\nvar UnitControlWrapper = styled_base_browser_esm(\"div\", {\n  target: \"e7pk0lh3\",\n  label: \"UnitControlWrapper\"\n})( true ? {\n  name: \"zypm0w\",\n  styles: \"box-sizing:border-box;max-width:80px;\"\n} : undefined);\nvar LayoutContainer = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {\n  target: \"e7pk0lh4\",\n  label: \"LayoutContainer\"\n})( true ? {\n  name: \"39f89t\",\n  styles: \"justify-content:center;padding-top:8px;\"\n} : undefined);\nvar Layout = /*#__PURE__*/styled_base_browser_esm(flex_Flex, {\n  target: \"e7pk0lh5\",\n  label: \"Layout\"\n})( true ? {\n  name: \"ojqyia\",\n  styles: \"position:relative;height:100%;width:100%;\"\n} : undefined);\n\nvar box_control_styles_ref =  true ? {\n  name: \"icip60\",\n  styles: \"border-radius:2px;\"\n} : undefined;\n\nvar box_control_styles_ref2 =  true ? {\n  name: \"1k07npk\",\n  styles: \"border-radius:0;\"\n} : undefined;\n\nvar box_control_styles_unitControlBorderRadiusStyles = function unitControlBorderRadiusStyles(_ref3) {\n  var isFirst = _ref3.isFirst,\n      isLast = _ref3.isLast,\n      isOnly = _ref3.isOnly;\n\n  if (isFirst) {\n    return rtl({\n      borderTopRightRadius: 0,\n      borderBottomRightRadius: 0\n    })();\n  }\n\n  if (isLast) {\n    return rtl({\n      borderTopLeftRadius: 0,\n      borderBottomLeftRadius: 0\n    })();\n  }\n\n  if (isOnly) {\n    return box_control_styles_ref;\n  }\n\n  return box_control_styles_ref2;\n};\n\nvar box_control_styles_unitControlMarginStyles = function unitControlMarginStyles(_ref4) {\n  var isFirst = _ref4.isFirst;\n  var marginLeft = isFirst ? 0 : -1;\n  return rtl({\n    marginLeft: marginLeft\n  })();\n};\n\nvar box_control_styles_UnitControl = /*#__PURE__*/styled_base_browser_esm(unit_control, {\n  target: \"e7pk0lh6\",\n  label: \"UnitControl\"\n})(\"max-width:60px;\", box_control_styles_unitControlBorderRadiusStyles, \";\", box_control_styles_unitControlMarginStyles, \";\" + ( true ? \"\" : undefined));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/unit-control.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BoxUnitControl(_ref) {\n  var isFirst = _ref.isFirst,\n      isLast = _ref.isLast,\n      isOnly = _ref.isOnly,\n      _ref$onHoverOn = _ref.onHoverOn,\n      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOn,\n      _ref$onHoverOff = _ref.onHoverOff,\n      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOff,\n      label = _ref.label,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isFirst\", \"isLast\", \"isOnly\", \"onHoverOn\", \"onHoverOff\", \"label\", \"value\"]);\n\n  var bindHoverGesture = useHover(function (_ref2) {\n    var event = _ref2.event,\n        state = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"event\"]);\n\n    if (state.hovering) {\n      onHoverOn(event, state);\n    } else {\n      onHoverOff(event, state);\n    }\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(UnitControlWrapper, Object(esm_extends[\"a\" /* default */])({\n    \"aria-label\": label\n  }, bindHoverGesture()), Object(external_this_wp_element_[\"createElement\"])(Tooltip, {\n    text: label\n  }, Object(external_this_wp_element_[\"createElement\"])(box_control_styles_UnitControl, Object(esm_extends[\"a\" /* default */])({\n    className: \"component-box-control__unit-control\",\n    hideHTMLArrows: true,\n    isFirst: isFirst,\n    isLast: isLast,\n    isOnly: isOnly,\n    isPressEnterToChange: true,\n    isFloatingLabel: true,\n    isResetValueOnUnitChange: false,\n    value: value\n  }, props))));\n}\n\nfunction Tooltip(_ref3) {\n  var children = _ref3.children,\n      text = _ref3.text;\n  if (!text) return children;\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_tooltip[\"a\" /* default */], {\n    text: text,\n    position: \"top\"\n  }, children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/utils.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar LABELS = {\n  all: Object(external_this_wp_i18n_[\"__\"])('All'),\n  top: Object(external_this_wp_i18n_[\"__\"])('Top'),\n  bottom: Object(external_this_wp_i18n_[\"__\"])('Bottom'),\n  left: Object(external_this_wp_i18n_[\"__\"])('Left'),\n  right: Object(external_this_wp_i18n_[\"__\"])('Right'),\n  mixed: Object(external_this_wp_i18n_[\"__\"])('Mixed')\n};\nvar DEFAULT_VALUES = {\n  top: null,\n  right: null,\n  bottom: null,\n  left: null\n};\nvar DEFAULT_VISUALIZER_VALUES = {\n  top: false,\n  right: false,\n  bottom: false,\n  left: false\n};\n/**\n * Gets an items with the most occurance within an array\n * https://stackoverflow.com/a/20762713\n *\n * @param {Array<any>} arr Array of items to check.\n * @return {any} The item with the most occurances.\n */\n\nfunction mode(arr) {\n  return arr.sort(function (a, b) {\n    return arr.filter(function (v) {\n      return v === a;\n    }).length - arr.filter(function (v) {\n      return v === b;\n    }).length;\n  }).pop();\n}\n/**\n * Gets the 'all' input value and unit from values data.\n *\n * @param {Object} values Box values.\n * @return {string} A value + unit for the 'all' input.\n */\n\n\nfunction getAllValue() {\n  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var parsedValues = Object.values(values).map(parseUnit);\n  var allValues = parsedValues.map(function (value) {\n    return value[0];\n  });\n  var allUnits = parsedValues.map(function (value) {\n    return value[1];\n  });\n  var value = allValues.every(function (v) {\n    return v === allValues[0];\n  }) ? allValues[0] : '';\n  var unit = mode(allUnits);\n  /**\n   * The isNumber check is important. On reset actions, the incoming value\n   * may be null or an empty string.\n   *\n   * Also, the value may also be zero (0), which is considered a valid unit value.\n   *\n   * isNumber() is more specific for these cases, rather than relying on a\n   * simple truthy check.\n   */\n\n  var allValue = Object(external_this_lodash_[\"isNumber\"])(value) ? \"\".concat(value).concat(unit) : null;\n  return allValue;\n}\n/**\n * Checks to determine if values are mixed.\n *\n * @param {Object} values Box values.\n * @return {boolean} Whether values are mixed.\n */\n\nfunction isValuesMixed() {\n  var values = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var allValue = getAllValue(values);\n  var isMixed = isNaN(parseFloat(allValue));\n  return isMixed;\n}\n/**\n * Checks to determine if values are defined.\n *\n * @param {Object} values Box values.\n *\n * @return {boolean} Whether values are mixed.\n */\n\nfunction isValuesDefined(values) {\n  return values !== undefined && !Object(external_this_lodash_[\"isEmpty\"])(Object.values(values).filter(Boolean));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/all-input-control.js\n\n\n\n\n\nfunction all_input_control_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction all_input_control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { all_input_control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { all_input_control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction AllInputControl(_ref) {\n  var _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onHoverOn = _ref.onHoverOn,\n      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOn,\n      _ref$onHoverOff = _ref.onHoverOff,\n      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOff,\n      values = _ref.values,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"onChange\", \"onFocus\", \"onHoverOn\", \"onHoverOff\", \"values\"]);\n\n  var allValue = getAllValue(values);\n  var hasValues = isValuesDefined(values);\n  var isMixed = hasValues && isValuesMixed(values);\n  var allPlaceholder = isMixed ? LABELS.mixed : null;\n\n  var handleOnFocus = function handleOnFocus(event) {\n    onFocus(event, {\n      side: 'all'\n    });\n  };\n\n  var handleOnChange = function handleOnChange(next) {\n    var nextValues = all_input_control_objectSpread({}, values);\n\n    nextValues.top = next;\n    nextValues.bottom = next;\n    nextValues.left = next;\n    nextValues.right = next;\n    onChange(nextValues);\n  };\n\n  var handleOnHoverOn = function handleOnHoverOn() {\n    onHoverOn({\n      top: true,\n      bottom: true,\n      left: true,\n      right: true\n    });\n  };\n\n  var handleOnHoverOff = function handleOnHoverOff() {\n    onHoverOff({\n      top: false,\n      bottom: false,\n      left: false,\n      right: false\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(BoxUnitControl, Object(esm_extends[\"a\" /* default */])({}, props, {\n    disableUnits: isMixed,\n    isOnly: true,\n    value: allValue,\n    onChange: handleOnChange,\n    onFocus: handleOnFocus,\n    onHoverOn: handleOnHoverOn,\n    onHoverOff: handleOnHoverOff,\n    placeholder: allPlaceholder\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/input-controls.js\n\n\n\n\n\nfunction input_controls_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction input_controls_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { input_controls_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { input_controls_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BoxInputControls(_ref) {\n  var _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onHoverOn = _ref.onHoverOn,\n      onHoverOn = _ref$onHoverOn === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOn,\n      _ref$onHoverOff = _ref.onHoverOff,\n      onHoverOff = _ref$onHoverOff === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHoverOff,\n      values = _ref.values,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"onChange\", \"onFocus\", \"onHoverOn\", \"onHoverOff\", \"values\"]);\n\n  var createHandleOnFocus = function createHandleOnFocus(side) {\n    return function (event) {\n      onFocus(event, {\n        side: side\n      });\n    };\n  };\n\n  var createHandleOnHoverOn = function createHandleOnHoverOn(side) {\n    return function () {\n      onHoverOn(Object(defineProperty[\"a\" /* default */])({}, side, true));\n    };\n  };\n\n  var createHandleOnHoverOff = function createHandleOnHoverOff(side) {\n    return function () {\n      onHoverOff(Object(defineProperty[\"a\" /* default */])({}, side, false));\n    };\n  };\n\n  var handleOnChange = function handleOnChange(nextValues) {\n    onChange(nextValues);\n  };\n\n  var top = values.top,\n      right = values.right,\n      bottom = values.bottom,\n      left = values.left;\n\n  var createHandleOnChange = function createHandleOnChange(side) {\n    return function (next, _ref2) {\n      var event = _ref2.event;\n      var altKey = event.altKey;\n\n      var nextValues = input_controls_objectSpread({}, values);\n\n      nextValues[side] = next;\n      /**\n       * Supports changing pair sides. For example, holding the ALT key\n       * when changing the TOP will also update BOTTOM.\n       */\n\n      if (altKey) {\n        switch (side) {\n          case 'top':\n            nextValues.bottom = next;\n            break;\n\n          case 'bottom':\n            nextValues.top = next;\n            break;\n\n          case 'left':\n            nextValues.right = next;\n            break;\n\n          case 'right':\n            nextValues.left = next;\n            break;\n        }\n      }\n\n      handleOnChange(nextValues);\n    };\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(LayoutContainer, {\n    className: \"component-box-control__input-controls-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(Layout, {\n    gap: 0,\n    align: \"top\",\n    className: \"component-box-control__input-controls\"\n  }, Object(external_this_wp_element_[\"createElement\"])(BoxUnitControl, Object(esm_extends[\"a\" /* default */])({}, props, {\n    isFirst: true,\n    value: top,\n    onChange: createHandleOnChange('top'),\n    onFocus: createHandleOnFocus('top'),\n    onHoverOn: createHandleOnHoverOn('top'),\n    onHoverOff: createHandleOnHoverOff('top'),\n    label: LABELS.top\n  })), Object(external_this_wp_element_[\"createElement\"])(BoxUnitControl, Object(esm_extends[\"a\" /* default */])({}, props, {\n    value: right,\n    onChange: createHandleOnChange('right'),\n    onFocus: createHandleOnFocus('right'),\n    onHoverOn: createHandleOnHoverOn('right'),\n    onHoverOff: createHandleOnHoverOff('right'),\n    label: LABELS.right\n  })), Object(external_this_wp_element_[\"createElement\"])(BoxUnitControl, Object(esm_extends[\"a\" /* default */])({}, props, {\n    value: bottom,\n    onChange: createHandleOnChange('bottom'),\n    onFocus: createHandleOnFocus('bottom'),\n    onHoverOn: createHandleOnHoverOn('bottom'),\n    onHoverOff: createHandleOnHoverOff('bottom'),\n    label: LABELS.bottom\n  })), Object(external_this_wp_element_[\"createElement\"])(BoxUnitControl, Object(esm_extends[\"a\" /* default */])({}, props, {\n    isLast: true,\n    value: left,\n    onChange: createHandleOnChange('left'),\n    onFocus: createHandleOnFocus('left'),\n    onHoverOn: createHandleOnHoverOn('left'),\n    onHoverOff: createHandleOnHoverOff('left'),\n    label: LABELS.left\n  }))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-icon-styles.js\n\n\nfunction box_control_icon_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\nvar box_control_icon_styles_Root = styled_base_browser_esm(\"span\", {\n  target: \"eaw9yqk0\",\n  label: \"Root\"\n})( true ? {\n  name: \"1qtciqq\",\n  styles: \"box-sizing:border-box;display:block;width:24px;height:24px;position:relative;padding:4px;\"\n} : undefined);\nvar Viewbox = styled_base_browser_esm(\"span\", {\n  target: \"eaw9yqk1\",\n  label: \"Viewbox\"\n})( true ? {\n  name: \"be7uli\",\n  styles: \"box-sizing:border-box;display:block;position:relative;width:100%;height:100%;\"\n} : undefined);\n\nvar box_control_icon_styles_strokeFocus = function strokeFocus(_ref) {\n  var isFocused = _ref.isFocused;\n  return /*#__PURE__*/css_browser_esm({\n    backgroundColor: 'currentColor',\n    opacity: isFocused ? 1 : 0.3\n  },  true ? \"\" : undefined);\n};\n\nvar Stroke = styled_base_browser_esm(\"span\", {\n  target: \"eaw9yqk2\",\n  label: \"Stroke\"\n})(\"box-sizing:border-box;display:block;pointer-events:none;position:absolute;\", box_control_icon_styles_strokeFocus, \";\" + ( true ? \"\" : undefined));\n\nvar VerticalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {\n  target: \"eaw9yqk3\",\n  label: \"VerticalStroke\"\n})( true ? {\n  name: \"r820ty\",\n  styles: \"bottom:3px;top:3px;width:2px;\"\n} : undefined);\n\nvar HorizontalStroke = /*#__PURE__*/styled_base_browser_esm(Stroke, {\n  target: \"eaw9yqk4\",\n  label: \"HorizontalStroke\"\n})( true ? {\n  name: \"1gteeqa\",\n  styles: \"height:2px;left:3px;right:3px;\"\n} : undefined);\n\nvar TopStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {\n  target: \"eaw9yqk5\",\n  label: \"TopStroke\"\n})( true ? {\n  name: \"1etxbbi\",\n  styles: \"top:0;\"\n} : undefined);\nvar RightStroke = /*#__PURE__*/styled_base_browser_esm(VerticalStroke, {\n  target: \"eaw9yqk6\",\n  label: \"RightStroke\"\n})( true ? {\n  name: \"19zs6va\",\n  styles: \"right:0;\"\n} : undefined);\nvar BottomStroke = /*#__PURE__*/styled_base_browser_esm(HorizontalStroke, {\n  target: \"eaw9yqk7\",\n  label: \"BottomStroke\"\n})( true ? {\n  name: \"lh0t43\",\n  styles: \"bottom:0;\"\n} : undefined);\nvar LeftStroke = /*#__PURE__*/styled_base_browser_esm(VerticalStroke, {\n  target: \"eaw9yqk8\",\n  label: \"LeftStroke\"\n})( true ? {\n  name: \"260zpl\",\n  styles: \"left:0;\"\n} : undefined);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/icon.js\n\n\n\n\n/**\n * Internal dependencies\n */\n\nvar BASE_ICON_SIZE = 24;\nfunction BoxControlIcon(_ref) {\n  var _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      _ref$side = _ref.side,\n      side = _ref$side === void 0 ? 'all' : _ref$side,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"size\", \"side\"]);\n\n  var top = getSide(side, 'top');\n  var right = getSide(side, 'right');\n  var bottom = getSide(side, 'bottom');\n  var left = getSide(side, 'left'); // Simulates SVG Icon scaling\n\n  var scale = size / BASE_ICON_SIZE;\n  return Object(external_this_wp_element_[\"createElement\"])(box_control_icon_styles_Root, Object(esm_extends[\"a\" /* default */])({\n    style: {\n      transform: \"scale(\".concat(scale, \")\")\n    }\n  }, props), Object(external_this_wp_element_[\"createElement\"])(Viewbox, null, Object(external_this_wp_element_[\"createElement\"])(TopStroke, {\n    isFocused: top\n  }), Object(external_this_wp_element_[\"createElement\"])(RightStroke, {\n    isFocused: right\n  }), Object(external_this_wp_element_[\"createElement\"])(BottomStroke, {\n    isFocused: bottom\n  }), Object(external_this_wp_element_[\"createElement\"])(LeftStroke, {\n    isFocused: left\n  })));\n}\n\nfunction getSide(side, value) {\n  return side === 'all' || side === value;\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js\nvar library_link = __webpack_require__(174);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js\nvar link_off = __webpack_require__(199);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/linked-button.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction LinkedButton(_ref) {\n  var isLinked = _ref.isLinked,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isLinked\"]);\n\n  var linkedTooltipText = isLinked ? Object(external_this_wp_i18n_[\"__\"])('Unlink Sides') : Object(external_this_wp_i18n_[\"__\"])('Link Sides');\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_tooltip[\"a\" /* default */], {\n    text: linkedTooltipText\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: \"component-box-control__linked-button\",\n    isPrimary: isLinked,\n    isSecondary: !isLinked,\n    isSmall: true,\n    icon: isLinked ? library_link[\"a\" /* default */] : link_off[\"a\" /* default */],\n    iconSize: 16\n  }))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/styles/box-control-visualizer-styles.js\n\n\nfunction box_control_visualizer_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar box_control_visualizer_styles_ref =  true ? {\n  name: \"tbck19\",\n  styles: \"bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1;\"\n} : undefined;\n\nvar containerPositionStyles = function containerPositionStyles(_ref2) {\n  var isPositionAbsolute = _ref2.isPositionAbsolute;\n  if (!isPositionAbsolute) return '';\n  return box_control_visualizer_styles_ref;\n};\n\nvar box_control_visualizer_styles_Container = styled_base_browser_esm(\"div\", {\n  target: \"e1df9b4q0\",\n  label: \"Container\"\n})(\"box-sizing:border-box;position:relative;\", containerPositionStyles, \";\" + ( true ? \"\" : undefined));\nvar Side = styled_base_browser_esm(\"div\", {\n  target: \"e1df9b4q1\",\n  label: \"Side\"\n})(\"box-sizing:border-box;background:\", colors_color('ui.brand'), \";filter:brightness( 1 );opacity:0;position:absolute;pointer-events:none;transition:opacity 120ms linear;z-index:1;\", function (_ref3) {\n  var isActive = _ref3.isActive;\n  return isActive && \"\\n\\t\\topacity: 0.3;\\n\\t\";\n},  true ? \"\" : undefined);\nvar TopView = /*#__PURE__*/styled_base_browser_esm(Side, {\n  target: \"e1df9b4q2\",\n  label: \"TopView\"\n})( true ? {\n  name: \"1pb21am\",\n  styles: \"top:0;left:0;right:0;\"\n} : undefined);\nvar RightView = /*#__PURE__*/styled_base_browser_esm(Side, {\n  target: \"e1df9b4q3\",\n  label: \"RightView\"\n})(\"top:0;bottom:0;\", rtl({\n  right: 0\n}), \";\" + ( true ? \"\" : undefined));\nvar BottomView = /*#__PURE__*/styled_base_browser_esm(Side, {\n  target: \"e1df9b4q4\",\n  label: \"BottomView\"\n})( true ? {\n  name: \"w87m56\",\n  styles: \"bottom:0;left:0;right:0;\"\n} : undefined);\nvar LeftView = /*#__PURE__*/styled_base_browser_esm(Side, {\n  target: \"e1df9b4q5\",\n  label: \"LeftView\"\n})(\"top:0;bottom:0;\", rtl({\n  left: 0\n}), \";\" + ( true ? \"\" : undefined));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/visualizer.js\n\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BoxControlVisualizer(_ref) {\n  var children = _ref.children,\n      _ref$showValues = _ref.showValues,\n      showValues = _ref$showValues === void 0 ? DEFAULT_VISUALIZER_VALUES : _ref$showValues,\n      _ref$values = _ref.values,\n      valuesProp = _ref$values === void 0 ? DEFAULT_VALUES : _ref$values,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"showValues\", \"values\"]);\n\n  var isPositionAbsolute = !children;\n  return Object(external_this_wp_element_[\"createElement\"])(box_control_visualizer_styles_Container, Object(esm_extends[\"a\" /* default */])({}, props, {\n    isPositionAbsolute: isPositionAbsolute,\n    \"aria-hidden\": \"true\"\n  }), Object(external_this_wp_element_[\"createElement\"])(Sides, {\n    showValues: showValues,\n    values: valuesProp\n  }), children);\n}\n\nfunction Sides(_ref2) {\n  var _ref2$showValues = _ref2.showValues,\n      showValues = _ref2$showValues === void 0 ? DEFAULT_VISUALIZER_VALUES : _ref2$showValues,\n      values = _ref2.values;\n  var top = values.top,\n      right = values.right,\n      bottom = values.bottom,\n      left = values.left;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(Top, {\n    isVisible: showValues.top,\n    value: top\n  }), Object(external_this_wp_element_[\"createElement\"])(Right, {\n    isVisible: showValues.right,\n    value: right\n  }), Object(external_this_wp_element_[\"createElement\"])(Bottom, {\n    isVisible: showValues.bottom,\n    value: bottom\n  }), Object(external_this_wp_element_[\"createElement\"])(Left, {\n    isVisible: showValues.left,\n    value: left\n  }));\n}\n\nfunction Top(_ref3) {\n  var _ref3$isVisible = _ref3.isVisible,\n      isVisible = _ref3$isVisible === void 0 ? false : _ref3$isVisible,\n      value = _ref3.value;\n  var height = value;\n  var animationProps = useSideAnimation(height);\n  var isActive = animationProps.isActive || isVisible;\n  return Object(external_this_wp_element_[\"createElement\"])(TopView, {\n    isActive: isActive,\n    style: {\n      height: height\n    }\n  });\n}\n\nfunction Right(_ref4) {\n  var _ref4$isVisible = _ref4.isVisible,\n      isVisible = _ref4$isVisible === void 0 ? false : _ref4$isVisible,\n      value = _ref4.value;\n  var width = value;\n  var animationProps = useSideAnimation(width);\n  var isActive = animationProps.isActive || isVisible;\n  return Object(external_this_wp_element_[\"createElement\"])(RightView, {\n    isActive: isActive,\n    style: {\n      width: width\n    }\n  });\n}\n\nfunction Bottom(_ref5) {\n  var _ref5$isVisible = _ref5.isVisible,\n      isVisible = _ref5$isVisible === void 0 ? false : _ref5$isVisible,\n      value = _ref5.value;\n  var height = value;\n  var animationProps = useSideAnimation(height);\n  var isActive = animationProps.isActive || isVisible;\n  return Object(external_this_wp_element_[\"createElement\"])(BottomView, {\n    isActive: isActive,\n    style: {\n      height: height\n    }\n  });\n}\n\nfunction Left(_ref6) {\n  var _ref6$isVisible = _ref6.isVisible,\n      isVisible = _ref6$isVisible === void 0 ? false : _ref6$isVisible,\n      value = _ref6.value;\n  var width = value;\n  var animationProps = useSideAnimation(width);\n  var isActive = animationProps.isActive || isVisible;\n  return Object(external_this_wp_element_[\"createElement\"])(LeftView, {\n    isActive: isActive,\n    style: {\n      width: width\n    }\n  });\n}\n/**\n * Custom hook that renders the \"flash\" animation whenever the value changes.\n *\n * @param {string} value Value of (box) side.\n */\n\n\nfunction useSideAnimation(value) {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isActive = _useState2[0],\n      setIsActive = _useState2[1];\n\n  var valueRef = Object(external_this_wp_element_[\"useRef\"])(value);\n  var timeoutRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var clearTimer = function clearTimer() {\n    if (timeoutRef.current) {\n      window.clearTimeout(timeoutRef.current);\n    }\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (value !== valueRef.current) {\n      setIsActive(true);\n      valueRef.current = value;\n      clearTimer();\n      timeoutRef.current = setTimeout(function () {\n        setIsActive(false);\n      }, 400);\n    }\n\n    return function () {\n      return clearTimer();\n    };\n  }, [value]);\n  return {\n    isActive: isActive\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/box-control/index.js\n\n\n\n\nfunction box_control_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction box_control_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { box_control_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { box_control_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\nvar defaultInputProps = {\n  min: 0\n};\n\nfunction box_control_useUniqueId(idProp) {\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(BoxControl, 'inspector-box-control');\n  return idProp || instanceId;\n}\n\nfunction BoxControl(_ref) {\n  var idProp = _ref.id,\n      _ref$inputProps = _ref.inputProps,\n      inputProps = _ref$inputProps === void 0 ? defaultInputProps : _ref$inputProps,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onChangeShowVisu = _ref.onChangeShowVisualizer,\n      onChangeShowVisualizer = _ref$onChangeShowVisu === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChangeShowVisu,\n      _ref$label = _ref.label,\n      label = _ref$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Box Control') : _ref$label,\n      valuesProp = _ref.values,\n      units = _ref.units;\n\n  var _useControlledState = use_controlled_state(valuesProp),\n      _useControlledState2 = Object(slicedToArray[\"a\" /* default */])(_useControlledState, 2),\n      values = _useControlledState2[0],\n      setValues = _useControlledState2[1];\n\n  var inputValues = values || DEFAULT_VALUES;\n  var hasInitialValue = isValuesDefined(valuesProp);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(hasInitialValue),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isDirty = _useState2[0],\n      setIsDirty = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(!hasInitialValue || !isValuesMixed(inputValues)),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isLinked = _useState4[0],\n      setIsLinked = _useState4[1];\n\n  var _useState5 = Object(external_this_wp_element_[\"useState\"])(isLinked ? 'all' : 'top'),\n      _useState6 = Object(slicedToArray[\"a\" /* default */])(_useState5, 2),\n      side = _useState6[0],\n      setSide = _useState6[1];\n\n  var id = box_control_useUniqueId(idProp);\n  var headingId = \"\".concat(id, \"-heading\");\n\n  var toggleLinked = function toggleLinked() {\n    setIsLinked(!isLinked);\n    setSide(!isLinked ? 'all' : 'top');\n  };\n\n  var handleOnFocus = function handleOnFocus(event, _ref2) {\n    var nextSide = _ref2.side;\n    setSide(nextSide);\n  };\n\n  var handleOnChange = function handleOnChange(nextValues) {\n    onChange(nextValues);\n    setValues(nextValues);\n    setIsDirty(true);\n  };\n\n  var handleOnHoverOn = function handleOnHoverOn() {\n    var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    onChangeShowVisualizer(box_control_objectSpread({}, DEFAULT_VISUALIZER_VALUES, {}, next));\n  };\n\n  var handleOnHoverOff = function handleOnHoverOff() {\n    var next = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    onChangeShowVisualizer(box_control_objectSpread({}, DEFAULT_VISUALIZER_VALUES, {}, next));\n  };\n\n  var handleOnReset = function handleOnReset() {\n    var initialValues = DEFAULT_VALUES;\n    onChange(initialValues);\n    setValues(initialValues);\n    setIsDirty(false);\n  };\n\n  var inputControlProps = box_control_objectSpread({}, inputProps, {\n    onChange: handleOnChange,\n    onFocus: handleOnFocus,\n    onHoverOn: handleOnHoverOn,\n    onHoverOff: handleOnHoverOff,\n    isLinked: isLinked,\n    units: units,\n    values: inputValues\n  });\n\n  return Object(external_this_wp_element_[\"createElement\"])(box_control_styles_Root, {\n    id: id,\n    role: \"region\",\n    \"aria-labelledby\": headingId\n  }, Object(external_this_wp_element_[\"createElement\"])(Header, {\n    className: \"component-box-control__header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(flex_item, null, Object(external_this_wp_element_[\"createElement\"])(build_module_text, {\n    id: headingId,\n    className: \"component-box-control__label\"\n  }, label)), Object(external_this_wp_element_[\"createElement\"])(flex_item, null, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"component-box-control__reset-button\",\n    isSecondary: true,\n    isSmall: true,\n    onClick: handleOnReset,\n    disabled: !isDirty\n  }, Object(external_this_wp_i18n_[\"__\"])('Reset')))), Object(external_this_wp_element_[\"createElement\"])(HeaderControlWrapper, {\n    className: \"component-box-control__header-control-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(flex_item, null, Object(external_this_wp_element_[\"createElement\"])(BoxControlIcon, {\n    side: side\n  })), isLinked && Object(external_this_wp_element_[\"createElement\"])(block, null, Object(external_this_wp_element_[\"createElement\"])(AllInputControl, inputControlProps)), Object(external_this_wp_element_[\"createElement\"])(flex_item, null, Object(external_this_wp_element_[\"createElement\"])(LinkedButton, {\n    onClick: toggleLinked,\n    isLinked: isLinked\n  }))), !isLinked && Object(external_this_wp_element_[\"createElement\"])(BoxInputControls, inputControlProps));\n}\nBoxControl.__Visualizer = BoxControlVisualizer;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button-group/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction ButtonGroup(_ref, ref) {\n  var className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\"]);\n\n  var classes = classnames_default()('components-button-group', className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    role: \"group\",\n    className: classes\n  }, props));\n}\n\n/* harmony default export */ var button_group = (Object(external_this_wp_element_[\"forwardRef\"])(ButtonGroup));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/context.js\n/**\n * WordPress dependencies\n */\n\nvar CardContext = Object(external_this_wp_element_[\"createContext\"])({});\nvar context_useCardContext = function useCardContext() {\n  return Object(external_this_wp_element_[\"useContext\"])(CardContext);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/utils/space.js\nvar SPACE_GRID_BASE = 8;\n/**\n * Creates a spacing CSS value (px) based on grid system values.\n *\n * @param {number} value Multiplier against the grid base value (8)\n * @return {string} The spacing value (px).\n */\n\nfunction space() {\n  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n  if (isNaN(value)) return \"\".concat(SPACE_GRID_BASE, \"px\");\n  return \"\".concat(SPACE_GRID_BASE * value, \"px\");\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/styles/card-styles.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar styleProps = {\n  borderColor: colors_color('lightGray.500'),\n  borderRadius: '3px',\n  backgroundShady: colors_color('lightGray.200')\n};\nvar card_styles_borderColor = styleProps.borderColor,\n    borderRadius = styleProps.borderRadius,\n    backgroundShady = styleProps.backgroundShady;\nvar CardUI = styled_base_browser_esm(\"div\", {\n  target: \"e1q7k77g0\",\n  label: \"CardUI\"\n})(\"background:\", colors_color('white'), \";box-sizing:border-box;border-radius:\", borderRadius, \";border:1px solid \", card_styles_borderColor, \";\", handleBorderless, \";&.is-elevated{box-shadow:0px 1px 3px 0px rgba( 0,0,0,0.2 ),0px 1px 1px 0px rgba( 0,0,0,0.14 ),0px 2px 1px -1px rgba( 0,0,0,0.12 );}\" + ( true ? \"\" : undefined));\nvar HeaderUI = /*#__PURE__*/styled_base_browser_esm(flex, {\n  target: \"e1q7k77g1\",\n  label: \"HeaderUI\"\n})(\"border-bottom:1px solid \", card_styles_borderColor, \";border-top-left-radius:\", borderRadius, \";border-top-right-radius:\", borderRadius, \";box-sizing:border-box;&:last-child{border-bottom:none;}\", headerFooterSizes, \";\", handleBorderless, \";\", handleShady, \";\" + ( true ? \"\" : undefined));\nvar MediaUI = styled_base_browser_esm(\"div\", {\n  target: \"e1q7k77g2\",\n  label: \"MediaUI\"\n})(\"box-sizing:border-box;overflow:hidden;& > img,& > iframe{display:block;height:auto;max-width:100%;width:100%;}&:first-of-type{border-top-left-radius:\", borderRadius, \";border-top-right-radius:\", borderRadius, \";}&:last-of-type{border-bottom-left-radius:\", borderRadius, \";border-bottom-right-radius:\", borderRadius, \";}\" + ( true ? \"\" : undefined));\nvar BodyUI = styled_base_browser_esm(\"div\", {\n  target: \"e1q7k77g3\",\n  label: \"BodyUI\"\n})(\"box-sizing:border-box;\", bodySize, \";\", handleShady, \";\" + ( true ? \"\" : undefined));\nvar FooterUI = /*#__PURE__*/styled_base_browser_esm(flex, {\n  target: \"e1q7k77g4\",\n  label: \"FooterUI\"\n})(\"border-top:1px solid \", card_styles_borderColor, \";border-bottom-left-radius:\", borderRadius, \";border-bottom-right-radius:\", borderRadius, \";box-sizing:border-box;&:first-of-type{border-top:none;}\", headerFooterSizes, \";\", handleBorderless, \";\", handleShady, \";\" + ( true ? \"\" : undefined));\nvar DividerUI = /*#__PURE__*/styled_base_browser_esm(external_this_wp_primitives_[\"HorizontalRule\"], {\n  target: \"e1q7k77g5\",\n  label: \"DividerUI\"\n})(\"all:unset;border-top:1px solid \", card_styles_borderColor, \";box-sizing:border-box;display:block;height:0;width:100%;\" + ( true ? \"\" : undefined));\nfunction bodySize() {\n  return \"\\n\\t\\t&.is-size {\\n\\t\\t\\t&-large {\\n\\t\\t\\t\\tpadding: \".concat(space(3), \" \").concat(space(4), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-medium {\\n\\t\\t\\t\\tpadding: \").concat(space(2), \" \").concat(space(3), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-small {\\n\\t\\t\\t\\tpadding: \").concat(space(2), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-extraSmall {\\n\\t\\t\\t\\tpadding: \").concat(space(1), \";\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\");\n}\nfunction headerFooterSizes() {\n  return \"\\n\\t\\t&.is-size {\\n\\t\\t\\t&-large {\\n\\t\\t\\t\\tpadding: \".concat(space(3), \" \").concat(space(4), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-medium {\\n\\t\\t\\t\\tpadding: \").concat(space(2), \" \").concat(space(3), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-small {\\n\\t\\t\\t\\tpadding: \").concat(space(2), \";\\n\\t\\t\\t}\\n\\t\\t\\t&-extraSmall {\\n\\t\\t\\t\\tpadding: \").concat(space(1), \";\\n\\t\\t\\t}\\n\\t\\t}\\n\\t\");\n}\nfunction handleBorderless() {\n  return \"\\n\\t\\t&.is-borderless {\\n\\t\\t\\tborder: none;\\n\\t\\t}\\n\\t\";\n}\nfunction handleShady() {\n  return \"\\n\\t\\t&.is-shady {\\n\\t\\t\\tbackground: \".concat(backgroundShady, \";\\n\\t\\t}\\n\\t\");\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar card_defaultProps = {\n  isBorderless: false,\n  isElevated: false,\n  size: 'medium'\n};\nfunction Card(props) {\n  var className = props.className,\n      isBorderless = props.isBorderless,\n      isElevated = props.isElevated,\n      size = props.size,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\", \"isBorderless\", \"isElevated\", \"size\"]);\n\n  var Provider = CardContext.Provider;\n  var contextProps = {\n    isBorderless: isBorderless,\n    isElevated: isElevated,\n    size: size\n  };\n  var classes = classnames_default()('components-card', isBorderless && 'is-borderless', isElevated && 'is-elevated', size && \"is-size-\".concat(size), className);\n  return Object(external_this_wp_element_[\"createElement\"])(Provider, {\n    value: contextProps\n  }, Object(external_this_wp_element_[\"createElement\"])(CardUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  })));\n}\nCard.defaultProps = card_defaultProps;\n/* harmony default export */ var card = (Card);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/body.js\n\n\n\n\n\nfunction body_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction body_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { body_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { body_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar body_defaultProps = {\n  isShady: false,\n  size: 'medium'\n};\nfunction CardBody(props) {\n  var className = props.className,\n      isShady = props.isShady,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\", \"isShady\"]);\n\n  var mergedProps = body_objectSpread({}, body_defaultProps, {}, context_useCardContext(), {}, props);\n\n  var size = mergedProps.size;\n  var classes = classnames_default()('components-card__body', isShady && 'is-shady', size && \"is-size-\".concat(size), className);\n  return Object(external_this_wp_element_[\"createElement\"])(BodyUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  }));\n}\n/* harmony default export */ var card_body = (CardBody);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/divider.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction CardDivider(props) {\n  var className = props.className,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\"]);\n\n  var classes = classnames_default()('components-card__divider', className);\n  return Object(external_this_wp_element_[\"createElement\"])(DividerUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    children: null,\n    className: classes,\n    role: \"separator\"\n  }));\n}\n/* harmony default export */ var divider = (CardDivider);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/footer.js\n\n\n\n\n\nfunction footer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction footer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { footer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { footer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar footer_defaultProps = {\n  isBorderless: false,\n  isShady: false,\n  size: 'medium'\n};\nfunction CardFooter(props) {\n  var className = props.className,\n      isShady = props.isShady,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\", \"isShady\"]);\n\n  var mergedProps = footer_objectSpread({}, footer_defaultProps, {}, context_useCardContext(), {}, props);\n\n  var isBorderless = mergedProps.isBorderless,\n      size = mergedProps.size;\n  var classes = classnames_default()('components-card__footer', isBorderless && 'is-borderless', isShady && 'is-shady', size && \"is-size-\".concat(size), className);\n  return Object(external_this_wp_element_[\"createElement\"])(FooterUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  }));\n}\n/* harmony default export */ var footer = (CardFooter);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/header.js\n\n\n\n\n\nfunction header_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction header_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { header_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { header_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar header_defaultProps = {\n  isBorderless: false,\n  isShady: false,\n  size: 'medium'\n};\nfunction CardHeader(props) {\n  var className = props.className,\n      isShady = props.isShady,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\", \"isShady\"]);\n\n  var mergedProps = header_objectSpread({}, header_defaultProps, {}, context_useCardContext(), {}, props);\n\n  var isBorderless = mergedProps.isBorderless,\n      size = mergedProps.size;\n  var classes = classnames_default()('components-card__header', isBorderless && 'is-borderless', isShady && 'is-shady', size && \"is-size-\".concat(size), className);\n  return Object(external_this_wp_element_[\"createElement\"])(HeaderUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  }));\n}\n/* harmony default export */ var card_header = (CardHeader);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/card/media.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction CardMedia(props) {\n  var className = props.className,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"className\"]);\n\n  var classes = classnames_default()('components-card__media', className);\n  return Object(external_this_wp_element_[\"createElement\"])(MediaUI, Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  }));\n}\n/* harmony default export */ var media = (CardMedia);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar build_module_icon = __webpack_require__(131);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js\nvar check = __webpack_require__(148);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/checkbox-control/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction CheckboxControl(_ref) {\n  var label = _ref.label,\n      className = _ref.className,\n      heading = _ref.heading,\n      checked = _ref.checked,\n      help = _ref.help,\n      onChange = _ref.onChange,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"className\", \"heading\", \"checked\", \"help\", \"onChange\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(CheckboxControl);\n  var id = \"inspector-checkbox-control-\".concat(instanceId);\n\n  var onChangeValue = function onChangeValue(event) {\n    return onChange(event.target.checked);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: heading,\n    id: id,\n    help: help,\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-checkbox-control__input-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"input\", Object(esm_extends[\"a\" /* default */])({\n    id: id,\n    className: \"components-checkbox-control__input\",\n    type: \"checkbox\",\n    value: \"1\",\n    onChange: onChangeValue,\n    checked: checked,\n    \"aria-describedby\": !!help ? id + '__help' : undefined\n  }, props)), checked ? Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    icon: check[\"a\" /* default */],\n    className: \"components-checkbox-control__checked\",\n    role: \"presentation\"\n  }) : null), Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    className: \"components-checkbox-control__label\",\n    htmlFor: id\n  }, label));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/clipboard-button/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction ClipboardButton(_ref) {\n  var className = _ref.className,\n      children = _ref.children,\n      onCopy = _ref.onCopy,\n      onFinishCopy = _ref.onFinishCopy,\n      text = _ref.text,\n      buttonProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"children\", \"onCopy\", \"onFinishCopy\", \"text\"]);\n\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n  var hasCopied = Object(external_this_wp_compose_[\"useCopyOnClick\"])(ref, text);\n  var lastHasCopied = Object(external_this_wp_element_[\"useRef\"])(hasCopied);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (lastHasCopied.current === hasCopied) {\n      return;\n    }\n\n    if (hasCopied) {\n      onCopy();\n    } else if (onFinishCopy) {\n      onFinishCopy();\n    }\n\n    lastHasCopied.current = hasCopied;\n  }, [onCopy, onFinishCopy, hasCopied]);\n  var classes = classnames_default()('components-clipboard-button', className); // Workaround for inconsistent behavior in Safari, where <textarea> is not\n  // the document.activeElement at the moment when the copy event fires.\n  // This causes documentHasSelection() in the copy-handler component to\n  // mistakenly override the ClipboardButton, and copy a serialized string\n  // of the current block instead.\n\n  var focusOnCopyEventTarget = function focusOnCopyEventTarget(event) {\n    event.target.focus();\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({}, buttonProps, {\n    className: classes,\n    ref: ref,\n    onCopy: focusOnCopyEventTarget\n  }), children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-indicator/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\nvar color_indicator_ColorIndicator = function ColorIndicator(_ref) {\n  var className = _ref.className,\n      colorValue = _ref.colorValue,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"colorValue\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('component-color-indicator', className),\n    style: {\n      background: colorValue\n    }\n  }, props));\n};\n\n/* harmony default export */ var color_indicator = (color_indicator_ColorIndicator);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/utils.js\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n\n/**\n * Given a hex color, get all other color properties (rgb, alpha, etc).\n *\n * @param {Object|string} data A hex color string or an object with a hex property\n * @param {string} oldHue A reference to the hue of the previous color, otherwise dragging the saturation to zero will reset the current hue to zero as well. See https://github.com/casesandberg/react-color/issues/29#issuecomment-132686909.\n * @return {Object} An object of different color representations.\n */\n\nfunction colorToState() {\n  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var oldHue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var color = data.hex ? tinycolor_default()(data.hex) : tinycolor_default()(data);\n  var hsl = color.toHsl();\n  hsl.h = Math.round(hsl.h);\n  hsl.s = Math.round(hsl.s * 100);\n  hsl.l = Math.round(hsl.l * 100);\n  var hsv = color.toHsv();\n  hsv.h = Math.round(hsv.h);\n  hsv.s = Math.round(hsv.s * 100);\n  hsv.v = Math.round(hsv.v * 100);\n  var rgb = color.toRgb();\n  var hex = color.toHex();\n\n  if (hsl.s === 0) {\n    hsl.h = oldHue || 0;\n    hsv.h = oldHue || 0;\n  }\n\n  var transparent = hex === '000000' && rgb.a === 0;\n  return {\n    color: color,\n    hex: transparent ? 'transparent' : \"#\".concat(hex),\n    hsl: hsl,\n    hsv: hsv,\n    oldHue: data.h || oldHue || hsl.h,\n    rgb: rgb,\n    source: data.source\n  };\n}\n/**\n * Get the top/left offsets of a point in a container, also returns the container width/height.\n *\n * @param {Event} e Mouse or touch event with a location coordinate.\n * @param {HTMLElement} container The container div, returned point is relative to this container.\n * @return {Object} An object of the offset positions & container size.\n */\n\nfunction getPointOffset(e, container) {\n  e.preventDefault();\n\n  var _container$getBoundin = container.getBoundingClientRect(),\n      containerLeft = _container$getBoundin.left,\n      containerTop = _container$getBoundin.top,\n      width = _container$getBoundin.width,\n      height = _container$getBoundin.height;\n\n  var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n  var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n  var left = x - (containerLeft + window.pageXOffset);\n  var top = y - (containerTop + window.pageYOffset);\n\n  if (left < 0) {\n    left = 0;\n  } else if (left > width) {\n    left = width;\n  } else if (top < 0) {\n    top = 0;\n  } else if (top > height) {\n    top = height;\n  }\n\n  return {\n    top: top,\n    left: left,\n    width: width,\n    height: height\n  };\n}\n/**\n * Check if a string is a valid hex color code.\n *\n * @param {string} hex A possible hex color.\n * @return {boolean} True if the color is a valid hex color.\n */\n\n\nfunction isValidHex(hex) {\n  // disable hex4 and hex8\n  var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n  return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor_default()(hex).isValid();\n}\n/**\n * Check an object for any valid color properties.\n *\n * @param {Object} data A possible object representing a color.\n * @return {Object|boolean} If a valid representation of color, returns the data object. Otherwise returns false.\n */\n\nfunction simpleCheckForValidColor(data) {\n  var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n  var checked = 0;\n  var passed = 0;\n  Object(external_this_lodash_[\"each\"])(keysToCheck, function (letter) {\n    if (data[letter]) {\n      checked += 1;\n\n      if (!isNaN(data[letter])) {\n        passed += 1;\n      }\n    }\n  });\n  return checked === passed ? data : false;\n}\n/**\n * Calculate the current alpha based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the alpha bar.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the alpha bar graph.\n * @return {Object|null} If the alpha value has changed, returns a new color object.\n */\n\nfunction calculateAlphaChange(e, props, container) {\n  var _getPointOffset = getPointOffset(e, container),\n      left = _getPointOffset.left,\n      width = _getPointOffset.width;\n\n  var a = left < 0 ? 0 : Math.round(left * 100 / width) / 100;\n\n  if (props.hsl.a !== a) {\n    return {\n      h: props.hsl.h,\n      s: props.hsl.s,\n      l: props.hsl.l,\n      a: a,\n      source: 'rgb'\n    };\n  }\n\n  return null;\n}\n/**\n * Calculate the current hue based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the hue bar.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the hue bar graph.\n * @return {Object|null} If the hue value has changed, returns a new color object.\n */\n\nfunction calculateHueChange(e, props, container) {\n  var _getPointOffset2 = getPointOffset(e, container),\n      left = _getPointOffset2.left,\n      width = _getPointOffset2.width;\n\n  var percent = left * 100 / width;\n  var h = left >= width ? 359 : 360 * percent / 100;\n\n  if (props.hsl.h !== h) {\n    return {\n      h: h,\n      s: props.hsl.s,\n      l: props.hsl.l,\n      a: props.hsl.a,\n      source: 'rgb'\n    };\n  }\n\n  return null;\n}\n/**\n * Calculate the current saturation & brightness based on a mouse or touch event\n *\n * @param {Event} e A mouse or touch event on the saturation graph.\n * @param {Object} props The current component props\n * @param {HTMLElement} container The container div for the 2D saturation graph.\n * @return {Object} Returns a new color object.\n */\n\nfunction calculateSaturationChange(e, props, container) {\n  var _getPointOffset3 = getPointOffset(e, container),\n      top = _getPointOffset3.top,\n      left = _getPointOffset3.left,\n      width = _getPointOffset3.width,\n      height = _getPointOffset3.height;\n\n  var saturation = left < 0 ? 0 : left * 100 / width;\n  var bright = top >= height ? 0 : -(top * 100 / height) + 100; // `v` values less than 1 are considered in the [0,1] range, causing unexpected behavior at the bottom\n  // of the chart. To fix this, we assume any value less than 1 should be 0 brightness.\n\n  if (bright < 1) {\n    bright = 0;\n  }\n\n  return {\n    h: props.hsl.h,\n    s: saturation,\n    v: bright,\n    a: props.hsl.a,\n    source: 'rgb'\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/keyboard-shortcuts/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction KeyboardShortcut(_ref) {\n  var target = _ref.target,\n      callback = _ref.callback,\n      shortcut = _ref.shortcut,\n      bindGlobal = _ref.bindGlobal,\n      eventName = _ref.eventName;\n  Object(external_this_wp_compose_[\"useKeyboardShortcut\"])(shortcut, callback, {\n    bindGlobal: bindGlobal,\n    target: target,\n    eventName: eventName\n  });\n  return null;\n}\n\nfunction KeyboardShortcuts(_ref2) {\n  var children = _ref2.children,\n      shortcuts = _ref2.shortcuts,\n      bindGlobal = _ref2.bindGlobal,\n      eventName = _ref2.eventName;\n  var target = Object(external_this_wp_element_[\"useRef\"])();\n  var element = Object(external_this_lodash_[\"map\"])(shortcuts, function (callback, shortcut) {\n    return Object(external_this_wp_element_[\"createElement\"])(KeyboardShortcut, {\n      key: shortcut,\n      shortcut: shortcut,\n      callback: callback,\n      bindGlobal: bindGlobal,\n      eventName: eventName,\n      target: target\n    });\n  }); // Render as non-visual if there are no children pressed. Keyboard\n  // events will be bound to the document instead.\n\n  if (!external_this_wp_element_[\"Children\"].count(children)) {\n    return element;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: target\n  }, element, children);\n}\n\n/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/alpha.js\n\n\n\n\n\n\n\n\nfunction alpha_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (alpha_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction alpha_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar alpha_Alpha = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Alpha, _Component);\n\n  var _super = alpha_createSuper(Alpha);\n\n  function Alpha() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Alpha);\n\n    _this = _super.apply(this, arguments);\n    _this.container = Object(external_this_wp_element_[\"createRef\"])();\n    _this.increase = _this.increase.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.decrease = _this.decrease.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Alpha, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"increase\",\n    value: function increase() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.01;\n      var _this$props = this.props,\n          hsl = _this$props.hsl,\n          _this$props$onChange = _this$props.onChange,\n          onChange = _this$props$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange;\n      amount = parseInt(amount * 100, 10);\n      var change = {\n        h: hsl.h,\n        s: hsl.s,\n        l: hsl.l,\n        a: (parseInt(hsl.a * 100, 10) + amount) / 100,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"decrease\",\n    value: function decrease() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.01;\n      var _this$props2 = this.props,\n          hsl = _this$props2.hsl,\n          _this$props2$onChange = _this$props2.onChange,\n          onChange = _this$props2$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props2$onChange;\n      var intValue = parseInt(hsl.a * 100, 10) - parseInt(amount * 100, 10);\n      var change = {\n        h: hsl.h,\n        s: hsl.s,\n        l: hsl.l,\n        a: hsl.a <= amount ? 0 : intValue / 100,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"handleChange\",\n    value: function handleChange(e) {\n      var _this$props$onChange2 = this.props.onChange,\n          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange2;\n      var change = calculateAlphaChange(e, this.props, this.container.current);\n\n      if (change) {\n        onChange(change, e);\n      }\n    }\n  }, {\n    key: \"handleMouseDown\",\n    value: function handleMouseDown(e) {\n      this.handleChange(e);\n      window.addEventListener('mousemove', this.handleChange);\n      window.addEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"handleMouseUp\",\n    value: function handleMouseUp() {\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"preventKeyEvents\",\n    value: function preventKeyEvents(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"TAB\"]) {\n        return;\n      }\n\n      event.preventDefault();\n    }\n  }, {\n    key: \"unbindEventListeners\",\n    value: function unbindEventListeners() {\n      window.removeEventListener('mousemove', this.handleChange);\n      window.removeEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var rgb = this.props.rgb;\n      var rgbString = \"\".concat(rgb.r, \",\").concat(rgb.g, \",\").concat(rgb.b);\n      var gradient = {\n        background: \"linear-gradient(to right, rgba(\".concat(rgbString, \", 0) 0%, rgba(\").concat(rgbString, \", 1) 100%)\")\n      };\n      var pointerLocation = {\n        left: \"\".concat(rgb.a * 100, \"%\")\n      };\n      var shortcuts = {\n        up: function up() {\n          return _this2.increase();\n        },\n        right: function right() {\n          return _this2.increase();\n        },\n        'shift+up': function shiftUp() {\n          return _this2.increase(0.1);\n        },\n        'shift+right': function shiftRight() {\n          return _this2.increase(0.1);\n        },\n        pageup: function pageup() {\n          return _this2.increase(0.1);\n        },\n        end: function end() {\n          return _this2.increase(1);\n        },\n        down: function down() {\n          return _this2.decrease();\n        },\n        left: function left() {\n          return _this2.decrease();\n        },\n        'shift+down': function shiftDown() {\n          return _this2.decrease(0.1);\n        },\n        'shift+left': function shiftLeft() {\n          return _this2.decrease(0.1);\n        },\n        pagedown: function pagedown() {\n          return _this2.decrease(0.1);\n        },\n        home: function home() {\n          return _this2.decrease(1);\n        }\n      };\n      return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, {\n        shortcuts: shortcuts\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__alpha\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__alpha-gradient\",\n        style: gradient\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__alpha-bar\",\n        ref: this.container,\n        onMouseDown: this.handleMouseDown,\n        onTouchMove: this.handleChange,\n        onTouchStart: this.handleChange\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        tabIndex: \"0\",\n        role: \"slider\",\n        \"aria-valuemax\": \"1\",\n        \"aria-valuemin\": \"0\",\n        \"aria-valuenow\": rgb.a,\n        \"aria-orientation\": \"horizontal\",\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Alpha value, from 0 (transparent) to 1 (fully opaque).'),\n        className: \"components-color-picker__alpha-pointer\",\n        style: pointerLocation,\n        onKeyDown: this.preventKeyEvents\n      }))));\n    }\n  }]);\n\n  return Alpha;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var color_picker_alpha = (Object(external_this_wp_compose_[\"pure\"])(alpha_Alpha));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/hue.js\n\n\n\n\n\n\n\n\nfunction hue_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (hue_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction hue_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar hue_Hue = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Hue, _Component);\n\n  var _super = hue_createSuper(Hue);\n\n  function Hue() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Hue);\n\n    _this = _super.apply(this, arguments);\n    _this.container = Object(external_this_wp_element_[\"createRef\"])();\n    _this.increase = _this.increase.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.decrease = _this.decrease.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Hue, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"increase\",\n    value: function increase() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n      var _this$props = this.props,\n          hsl = _this$props.hsl,\n          _this$props$onChange = _this$props.onChange,\n          onChange = _this$props$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange;\n      var change = {\n        h: hsl.h + amount >= 359 ? 359 : hsl.h + amount,\n        s: hsl.s,\n        l: hsl.l,\n        a: hsl.a,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"decrease\",\n    value: function decrease() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n      var _this$props2 = this.props,\n          hsl = _this$props2.hsl,\n          _this$props2$onChange = _this$props2.onChange,\n          onChange = _this$props2$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props2$onChange;\n      var change = {\n        h: hsl.h <= amount ? 0 : hsl.h - amount,\n        s: hsl.s,\n        l: hsl.l,\n        a: hsl.a,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"handleChange\",\n    value: function handleChange(e) {\n      var _this$props$onChange2 = this.props.onChange,\n          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange2;\n      var change = calculateHueChange(e, this.props, this.container.current);\n\n      if (change) {\n        onChange(change, e);\n      }\n    }\n  }, {\n    key: \"handleMouseDown\",\n    value: function handleMouseDown(e) {\n      this.handleChange(e);\n      window.addEventListener('mousemove', this.handleChange);\n      window.addEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"handleMouseUp\",\n    value: function handleMouseUp() {\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"preventKeyEvents\",\n    value: function preventKeyEvents(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"TAB\"]) {\n        return;\n      }\n\n      event.preventDefault();\n    }\n  }, {\n    key: \"unbindEventListeners\",\n    value: function unbindEventListeners() {\n      window.removeEventListener('mousemove', this.handleChange);\n      window.removeEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props3 = this.props,\n          _this$props3$hsl = _this$props3.hsl,\n          hsl = _this$props3$hsl === void 0 ? {} : _this$props3$hsl,\n          instanceId = _this$props3.instanceId;\n      var pointerLocation = {\n        left: \"\".concat(hsl.h * 100 / 360, \"%\")\n      };\n      var shortcuts = {\n        up: function up() {\n          return _this2.increase();\n        },\n        right: function right() {\n          return _this2.increase();\n        },\n        'shift+up': function shiftUp() {\n          return _this2.increase(10);\n        },\n        'shift+right': function shiftRight() {\n          return _this2.increase(10);\n        },\n        pageup: function pageup() {\n          return _this2.increase(10);\n        },\n        end: function end() {\n          return _this2.increase(359);\n        },\n        down: function down() {\n          return _this2.decrease();\n        },\n        left: function left() {\n          return _this2.decrease();\n        },\n        'shift+down': function shiftDown() {\n          return _this2.decrease(10);\n        },\n        'shift+left': function shiftLeft() {\n          return _this2.decrease(10);\n        },\n        pagedown: function pagedown() {\n          return _this2.decrease(10);\n        },\n        home: function home() {\n          return _this2.decrease(359);\n        }\n      };\n      return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, {\n        shortcuts: shortcuts\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__hue\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__hue-gradient\"\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__hue-bar\",\n        ref: this.container,\n        onMouseDown: this.handleMouseDown,\n        onTouchMove: this.handleChange,\n        onTouchStart: this.handleChange\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        tabIndex: \"0\",\n        role: \"slider\",\n        \"aria-valuemax\": \"1\",\n        \"aria-valuemin\": \"359\",\n        \"aria-valuenow\": hsl.h,\n        \"aria-orientation\": \"horizontal\",\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Hue value in degrees, from 0 to 359.'),\n        \"aria-describedby\": \"components-color-picker__hue-description-\".concat(instanceId),\n        className: \"components-color-picker__hue-pointer\",\n        style: pointerLocation,\n        onKeyDown: this.preventKeyEvents\n      }), Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n        as: \"p\",\n        id: \"components-color-picker__hue-description-\".concat(instanceId)\n      }, Object(external_this_wp_i18n_[\"__\"])('Move the arrow left or right to change hue.')))));\n    }\n  }]);\n\n  return Hue;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var hue = (Object(external_this_wp_compose_[\"compose\"])(external_this_wp_compose_[\"pure\"], external_this_wp_compose_[\"withInstanceId\"])(hue_Hue));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-down.js\nvar chevron_down = __webpack_require__(291);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-control/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction TextControl(_ref) {\n  var label = _ref.label,\n      hideLabelFromVision = _ref.hideLabelFromVision,\n      value = _ref.value,\n      help = _ref.help,\n      className = _ref.className,\n      onChange = _ref.onChange,\n      _ref$type = _ref.type,\n      type = _ref$type === void 0 ? 'text' : _ref$type,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"hideLabelFromVision\", \"value\", \"help\", \"className\", \"onChange\", \"type\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(TextControl);\n  var id = \"inspector-text-control-\".concat(instanceId);\n\n  var onChangeValue = function onChangeValue(event) {\n    return onChange(event.target.value);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: label,\n    hideLabelFromVision: hideLabelFromVision,\n    id: id,\n    help: help,\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(\"input\", Object(esm_extends[\"a\" /* default */])({\n    className: \"components-text-control__input\",\n    type: type,\n    id: id,\n    value: value,\n    onChange: onChangeValue,\n    \"aria-describedby\": !!help ? id + '__help' : undefined\n  }, props)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/inputs.js\n\n\n\n\n\n\n\n\n\n\nfunction inputs_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (inputs_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction inputs_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/* Wrapper for TextControl, only used to handle intermediate state while typing. */\n\nvar inputs_Input = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Input, _Component);\n\n  var _super = inputs_createSuper(Input);\n\n  function Input() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Input);\n\n    _this = _super.apply(this, arguments);\n    _this.handleBlur = _this.handleBlur.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Input, [{\n    key: \"handleBlur\",\n    value: function handleBlur() {\n      var _this$props = this.props,\n          value = _this$props.value,\n          valueKey = _this$props.valueKey,\n          onChange = _this$props.onChange,\n          source = _this$props.source;\n      onChange({\n        source: source,\n        state: 'commit',\n        value: value,\n        valueKey: valueKey\n      });\n    }\n  }, {\n    key: \"handleChange\",\n    value: function handleChange(value) {\n      var _this$props2 = this.props,\n          valueKey = _this$props2.valueKey,\n          onChange = _this$props2.onChange,\n          source = _this$props2.source;\n\n      if (value.length > 4 && isValidHex(value)) {\n        onChange({\n          source: source,\n          state: 'commit',\n          value: value,\n          valueKey: valueKey\n        });\n      } else {\n        onChange({\n          source: source,\n          state: 'draft',\n          value: value,\n          valueKey: valueKey\n        });\n      }\n    }\n  }, {\n    key: \"handleKeyDown\",\n    value: function handleKeyDown(_ref) {\n      var keyCode = _ref.keyCode;\n\n      if (keyCode !== external_this_wp_keycodes_[\"ENTER\"] && keyCode !== external_this_wp_keycodes_[\"UP\"] && keyCode !== external_this_wp_keycodes_[\"DOWN\"]) {\n        return;\n      }\n\n      var _this$props3 = this.props,\n          value = _this$props3.value,\n          valueKey = _this$props3.valueKey,\n          onChange = _this$props3.onChange,\n          source = _this$props3.source;\n      onChange({\n        source: source,\n        state: 'commit',\n        value: value,\n        valueKey: valueKey\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props4 = this.props,\n          label = _this$props4.label,\n          value = _this$props4.value,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_this$props4, [\"label\", \"value\"]);\n\n      return Object(external_this_wp_element_[\"createElement\"])(TextControl, Object(esm_extends[\"a\" /* default */])({\n        className: \"components-color-picker__inputs-field\",\n        label: label,\n        value: value,\n        onChange: function onChange(newValue) {\n          return _this2.handleChange(newValue);\n        },\n        onBlur: this.handleBlur,\n        onKeyDown: this.handleKeyDown\n      }, Object(external_this_lodash_[\"omit\"])(props, ['onChange', 'valueKey', 'source'])));\n    }\n  }]);\n\n  return Input;\n}(external_this_wp_element_[\"Component\"]);\nvar PureButton = Object(external_this_wp_compose_[\"pure\"])(build_module_button[\"a\" /* default */]);\nvar inputs_Inputs = /*#__PURE__*/function (_Component2) {\n  Object(inherits[\"a\" /* default */])(Inputs, _Component2);\n\n  var _super2 = inputs_createSuper(Inputs);\n\n  function Inputs(_ref2) {\n    var _this3;\n\n    var hsl = _ref2.hsl;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Inputs);\n\n    _this3 = _super2.apply(this, arguments);\n    var view = hsl.a === 1 ? 'hex' : 'rgb';\n    _this3.state = {\n      view: view\n    };\n    _this3.toggleViews = _this3.toggleViews.bind(Object(assertThisInitialized[\"a\" /* default */])(_this3));\n    _this3.resetDraftValues = _this3.resetDraftValues.bind(Object(assertThisInitialized[\"a\" /* default */])(_this3));\n    _this3.handleChange = _this3.handleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this3));\n    _this3.normalizeValue = _this3.normalizeValue.bind(Object(assertThisInitialized[\"a\" /* default */])(_this3));\n    return _this3;\n  }\n\n  Object(createClass[\"a\" /* default */])(Inputs, [{\n    key: \"toggleViews\",\n    value: function toggleViews() {\n      if (this.state.view === 'hex') {\n        this.setState({\n          view: 'rgb'\n        }, this.resetDraftValues);\n        Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('RGB mode active'));\n      } else if (this.state.view === 'rgb') {\n        this.setState({\n          view: 'hsl'\n        }, this.resetDraftValues);\n        Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('Hue/saturation/lightness mode active'));\n      } else if (this.state.view === 'hsl') {\n        if (this.props.hsl.a === 1) {\n          this.setState({\n            view: 'hex'\n          }, this.resetDraftValues);\n          Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('Hex color mode active'));\n        } else {\n          this.setState({\n            view: 'rgb'\n          }, this.resetDraftValues);\n          Object(external_this_wp_a11y_[\"speak\"])(Object(external_this_wp_i18n_[\"__\"])('RGB mode active'));\n        }\n      }\n    }\n  }, {\n    key: \"resetDraftValues\",\n    value: function resetDraftValues() {\n      return this.props.onChange({\n        state: 'reset'\n      });\n    }\n  }, {\n    key: \"normalizeValue\",\n    value: function normalizeValue(valueKey, value) {\n      if (valueKey !== 'a') {\n        return value;\n      }\n\n      if (value < 0) {\n        return 0;\n      } else if (value > 1) {\n        return 1;\n      }\n\n      return Math.round(value * 100) / 100;\n    }\n  }, {\n    key: \"handleChange\",\n    value: function handleChange(_ref3) {\n      var source = _ref3.source,\n          state = _ref3.state,\n          value = _ref3.value,\n          valueKey = _ref3.valueKey;\n      this.props.onChange({\n        source: source,\n        state: state,\n        valueKey: valueKey,\n        value: this.normalizeValue(valueKey, value)\n      });\n    }\n  }, {\n    key: \"renderFields\",\n    value: function renderFields() {\n      var _this$props$disableAl = this.props.disableAlpha,\n          disableAlpha = _this$props$disableAl === void 0 ? false : _this$props$disableAl;\n\n      if (this.state.view === 'hex') {\n        return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"components-color-picker__inputs-fields\"\n        }, Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: Object(external_this_wp_i18n_[\"__\"])('Color value in hexadecimal'),\n          valueKey: \"hex\",\n          value: this.props.hex,\n          onChange: this.handleChange\n        }));\n      } else if (this.state.view === 'rgb') {\n        return Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", null, Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n          as: \"legend\"\n        }, Object(external_this_wp_i18n_[\"__\"])('Color value in RGB')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"components-color-picker__inputs-fields\"\n        }, Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"r\",\n          valueKey: \"r\",\n          value: this.props.rgb.r,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"255\"\n        }), Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"g\",\n          valueKey: \"g\",\n          value: this.props.rgb.g,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"255\"\n        }), Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"b\",\n          valueKey: \"b\",\n          value: this.props.rgb.b,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"255\"\n        }), disableAlpha ? null : Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"a\",\n          valueKey: \"a\",\n          value: this.props.rgb.a,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"1\",\n          step: \"0.01\"\n        })));\n      } else if (this.state.view === 'hsl') {\n        return Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", null, Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n          as: \"legend\"\n        }, Object(external_this_wp_i18n_[\"__\"])('Color value in HSL')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"components-color-picker__inputs-fields\"\n        }, Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"h\",\n          valueKey: \"h\",\n          value: this.props.hsl.h,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"359\"\n        }), Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"s\",\n          valueKey: \"s\",\n          value: this.props.hsl.s,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"100\"\n        }), Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"l\",\n          valueKey: \"l\",\n          value: this.props.hsl.l,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"100\"\n        }), disableAlpha ? null : Object(external_this_wp_element_[\"createElement\"])(inputs_Input, {\n          source: this.state.view,\n          label: \"a\",\n          valueKey: \"a\",\n          value: this.props.hsl.a,\n          onChange: this.handleChange,\n          type: \"number\",\n          min: \"0\",\n          max: \"1\",\n          step: \"0.05\"\n        })));\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__inputs-wrapper\"\n      }, this.renderFields(), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__inputs-toggle-wrapper\"\n      }, Object(external_this_wp_element_[\"createElement\"])(PureButton, {\n        className: \"components-color-picker__inputs-toggle\",\n        icon: chevron_down[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('Change color format'),\n        onClick: this.toggleViews\n      })));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      if (props.hsl.a !== 1 && state.view === 'hex') {\n        return {\n          view: 'rgb'\n        };\n      }\n\n      return null;\n    }\n  }]);\n\n  return Inputs;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var inputs = (inputs_Inputs);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/saturation.js\n\n\n\n\n\n\n\n\nfunction saturation_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (saturation_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction saturation_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar saturation_Saturation = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Saturation, _Component);\n\n  var _super = saturation_createSuper(Saturation);\n\n  function Saturation(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Saturation);\n\n    _this = _super.call(this, props);\n    _this.throttle = Object(external_this_lodash_[\"throttle\"])(function (fn, data, e) {\n      fn(data, e);\n    }, 50);\n    _this.container = Object(external_this_wp_element_[\"createRef\"])();\n    _this.saturate = _this.saturate.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.brighten = _this.brighten.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleChange = _this.handleChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleMouseUp = _this.handleMouseUp.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Saturation, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.throttle.cancel();\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"saturate\",\n    value: function saturate() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.01;\n      var _this$props = this.props,\n          hsv = _this$props.hsv,\n          _this$props$onChange = _this$props.onChange,\n          onChange = _this$props$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange;\n      var intSaturation = Object(external_this_lodash_[\"clamp\"])(hsv.s + Math.round(amount * 100), 0, 100);\n      var change = {\n        h: hsv.h,\n        s: intSaturation,\n        v: hsv.v,\n        a: hsv.a,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"brighten\",\n    value: function brighten() {\n      var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.01;\n      var _this$props2 = this.props,\n          hsv = _this$props2.hsv,\n          _this$props2$onChange = _this$props2.onChange,\n          onChange = _this$props2$onChange === void 0 ? external_this_lodash_[\"noop\"] : _this$props2$onChange;\n      var intValue = Object(external_this_lodash_[\"clamp\"])(hsv.v + Math.round(amount * 100), 0, 100);\n      var change = {\n        h: hsv.h,\n        s: hsv.s,\n        v: intValue,\n        a: hsv.a,\n        source: 'rgb'\n      };\n      onChange(change);\n    }\n  }, {\n    key: \"handleChange\",\n    value: function handleChange(e) {\n      var _this$props$onChange2 = this.props.onChange,\n          onChange = _this$props$onChange2 === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChange2;\n      var change = calculateSaturationChange(e, this.props, this.container.current);\n      this.throttle(onChange, change, e);\n    }\n  }, {\n    key: \"handleMouseDown\",\n    value: function handleMouseDown(e) {\n      this.handleChange(e);\n      window.addEventListener('mousemove', this.handleChange);\n      window.addEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"handleMouseUp\",\n    value: function handleMouseUp() {\n      this.unbindEventListeners();\n    }\n  }, {\n    key: \"preventKeyEvents\",\n    value: function preventKeyEvents(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"TAB\"]) {\n        return;\n      }\n\n      event.preventDefault();\n    }\n  }, {\n    key: \"unbindEventListeners\",\n    value: function unbindEventListeners() {\n      window.removeEventListener('mousemove', this.handleChange);\n      window.removeEventListener('mouseup', this.handleMouseUp);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props3 = this.props,\n          hsv = _this$props3.hsv,\n          hsl = _this$props3.hsl,\n          instanceId = _this$props3.instanceId;\n      var pointerLocation = {\n        top: \"\".concat(-hsv.v + 100, \"%\"),\n        left: \"\".concat(hsv.s, \"%\")\n      };\n      var shortcuts = {\n        up: function up() {\n          return _this2.brighten();\n        },\n        'shift+up': function shiftUp() {\n          return _this2.brighten(0.1);\n        },\n        pageup: function pageup() {\n          return _this2.brighten(1);\n        },\n        down: function down() {\n          return _this2.brighten(-0.01);\n        },\n        'shift+down': function shiftDown() {\n          return _this2.brighten(-0.1);\n        },\n        pagedown: function pagedown() {\n          return _this2.brighten(-1);\n        },\n        right: function right() {\n          return _this2.saturate();\n        },\n        'shift+right': function shiftRight() {\n          return _this2.saturate(0.1);\n        },\n        end: function end() {\n          return _this2.saturate(1);\n        },\n        left: function left() {\n          return _this2.saturate(-0.01);\n        },\n        'shift+left': function shiftLeft() {\n          return _this2.saturate(-0.1);\n        },\n        home: function home() {\n          return _this2.saturate(-1);\n        }\n      };\n      /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\n\n      return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, {\n        shortcuts: shortcuts\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        style: {\n          background: \"hsl(\".concat(hsl.h, \",100%, 50%)\")\n        },\n        className: \"components-color-picker__saturation-color\",\n        ref: this.container,\n        onMouseDown: this.handleMouseDown,\n        onTouchMove: this.handleChange,\n        onTouchStart: this.handleChange,\n        role: \"application\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__saturation-white\"\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__saturation-black\"\n      }), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Choose a shade'),\n        \"aria-describedby\": \"color-picker-saturation-\".concat(instanceId),\n        className: \"components-color-picker__saturation-pointer\",\n        style: pointerLocation,\n        onKeyDown: this.preventKeyEvents\n      }), Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n        id: \"color-picker-saturation-\".concat(instanceId)\n      }, Object(external_this_wp_i18n_[\"__\"])('Use your arrow keys to change the base color. Move up to lighten the color, down to darken, left to decrease saturation, and right to increase saturation.'))));\n      /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */\n    }\n  }]);\n\n  return Saturation;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var saturation = (Object(external_this_wp_compose_[\"compose\"])(external_this_wp_compose_[\"pure\"], external_this_wp_compose_[\"withInstanceId\"])(saturation_Saturation));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-picker/index.js\n\n\n\n\n\n\n\n\n\nfunction color_picker_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (color_picker_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction color_picker_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction color_picker_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction color_picker_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { color_picker_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { color_picker_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Parts of this source were derived and modified from react-color,\n * released under the MIT license.\n *\n * https://github.com/casesandberg/react-color/\n *\n * Copyright (c) 2015 Case Sandberg\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nvar toLowerCase = function toLowerCase(value) {\n  return String(value).toLowerCase();\n};\n\nvar color_picker_isValueEmpty = function isValueEmpty(data) {\n  if (data.source === 'hex' && !data.hex) {\n    return true;\n  } else if (data.source === 'hsl' && (!data.h || !data.s || !data.l)) {\n    return true;\n  } else if (data.source === 'rgb' && (!data.r || !data.g || !data.b) && (!data.h || !data.s || !data.v || !data.a) && (!data.h || !data.s || !data.l || !data.a)) {\n    return true;\n  }\n\n  return false;\n};\n\nvar color_picker_isValidColor = function isValidColor(colors) {\n  return colors.hex ? isValidHex(colors.hex) : simpleCheckForValidColor(colors);\n};\n/**\n * Function that creates the new color object\n * from old data and the new value.\n *\n * @param {Object} oldColors The old color object.\n * @param {string} oldColors.hex\n * @param {Object} oldColors.rgb\n * @param {number} oldColors.rgb.r\n * @param {number} oldColors.rgb.g\n * @param {number} oldColors.rgb.b\n * @param {number} oldColors.rgb.a\n * @param {Object} oldColors.hsl\n * @param {number} oldColors.hsl.h\n * @param {number} oldColors.hsl.s\n * @param {number} oldColors.hsl.l\n * @param {number} oldColors.hsl.a\n * @param {string} oldColors.draftHex Same format as oldColors.hex\n * @param {Object} oldColors.draftRgb Same format as oldColors.rgb\n * @param {Object} oldColors.draftHsl Same format as oldColors.hsl\n * @param {Object} data Data containing the new value to update.\n * @param {Object} data.source One of `hex`, `rgb`, `hsl`.\n * @param {string|number} data.value Value to update.\n * @param {string} data.valueKey Depends on `data.source` values:\n *   - when source = `rgb`, valuKey can be `r`, `g`, `b`, or `a`.\n *   - when source = `hsl`, valuKey can be `h`, `s`, `l`, or `a`.\n * @return {Object} A new color object for a specific source. For example:\n * { source: 'rgb', r: 1, g: 2, b:3, a:0 }\n */\n\n\nvar color_picker_dataToColors = function dataToColors(oldColors, _ref) {\n  var source = _ref.source,\n      valueKey = _ref.valueKey,\n      value = _ref.value;\n\n  if (source === 'hex') {\n    return Object(defineProperty[\"a\" /* default */])({\n      source: source\n    }, source, value);\n  }\n\n  return color_picker_objectSpread({\n    source: source\n  }, color_picker_objectSpread({}, oldColors[source], {}, Object(defineProperty[\"a\" /* default */])({}, valueKey, value)));\n};\n\nvar color_picker_ColorPicker = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ColorPicker, _Component);\n\n  var _super = color_picker_createSuper(ColorPicker);\n\n  function ColorPicker(_ref3) {\n    var _this;\n\n    var _ref3$color = _ref3.color,\n        color = _ref3$color === void 0 ? '0071a1' : _ref3$color;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ColorPicker);\n\n    _this = _super.apply(this, arguments);\n    var colors = colorToState(color);\n    _this.state = color_picker_objectSpread({}, colors, {\n      draftHex: toLowerCase(colors.hex),\n      draftRgb: colors.rgb,\n      draftHsl: colors.hsl\n    });\n    _this.commitValues = _this.commitValues.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setDraftValues = _this.setDraftValues.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.resetDraftValues = _this.resetDraftValues.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleInputChange = _this.handleInputChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ColorPicker, [{\n    key: \"commitValues\",\n    value: function commitValues(data) {\n      var _this$props = this.props,\n          oldHue = _this$props.oldHue,\n          _this$props$onChangeC = _this$props.onChangeComplete,\n          onChangeComplete = _this$props$onChangeC === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onChangeC;\n\n      if (color_picker_isValidColor(data)) {\n        var colors = colorToState(data, data.h || oldHue);\n        this.setState(color_picker_objectSpread({}, colors, {\n          draftHex: toLowerCase(colors.hex),\n          draftHsl: colors.hsl,\n          draftRgb: colors.rgb\n        }), Object(external_this_lodash_[\"debounce\"])(Object(external_this_lodash_[\"partial\"])(onChangeComplete, colors), 100));\n      }\n    }\n  }, {\n    key: \"resetDraftValues\",\n    value: function resetDraftValues() {\n      this.setState({\n        draftHex: this.state.hex,\n        draftHsl: this.state.hsl,\n        draftRgb: this.state.rgb\n      });\n    }\n  }, {\n    key: \"setDraftValues\",\n    value: function setDraftValues(data) {\n      switch (data.source) {\n        case 'hex':\n          this.setState({\n            draftHex: toLowerCase(data.hex)\n          });\n          break;\n\n        case 'rgb':\n          this.setState({\n            draftRgb: data\n          });\n          break;\n\n        case 'hsl':\n          this.setState({\n            draftHsl: data\n          });\n          break;\n      }\n    }\n  }, {\n    key: \"handleInputChange\",\n    value: function handleInputChange(data) {\n      switch (data.state) {\n        case 'reset':\n          this.resetDraftValues();\n          break;\n\n        case 'commit':\n          var colors = color_picker_dataToColors(this.state, data);\n\n          if (!color_picker_isValueEmpty(colors)) {\n            this.commitValues(colors);\n          }\n\n          break;\n\n        case 'draft':\n          this.setDraftValues(color_picker_dataToColors(this.state, data));\n          break;\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          className = _this$props2.className,\n          disableAlpha = _this$props2.disableAlpha;\n      var _this$state = this.state,\n          color = _this$state.color,\n          hsl = _this$state.hsl,\n          hsv = _this$state.hsv,\n          rgb = _this$state.rgb,\n          draftHex = _this$state.draftHex,\n          draftHsl = _this$state.draftHsl,\n          draftRgb = _this$state.draftRgb;\n      var classes = classnames_default()(className, {\n        'components-color-picker': true,\n        'is-alpha-disabled': disableAlpha,\n        'is-alpha-enabled': !disableAlpha\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classes\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__saturation\"\n      }, Object(external_this_wp_element_[\"createElement\"])(saturation, {\n        hsl: hsl,\n        hsv: hsv,\n        onChange: this.commitValues\n      })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__body\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__controls\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__swatch\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__active\",\n        style: {\n          backgroundColor: color && color.toRgbString()\n        }\n      })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-color-picker__toggles\"\n      }, Object(external_this_wp_element_[\"createElement\"])(hue, {\n        hsl: hsl,\n        onChange: this.commitValues\n      }), disableAlpha ? null : Object(external_this_wp_element_[\"createElement\"])(color_picker_alpha, {\n        rgb: rgb,\n        hsl: hsl,\n        onChange: this.commitValues\n      }))), Object(external_this_wp_element_[\"createElement\"])(inputs, {\n        rgb: draftRgb,\n        hsl: draftHsl,\n        hex: draftHex,\n        onChange: this.handleInputChange,\n        disableAlpha: disableAlpha\n      })));\n    }\n  }]);\n\n  return ColorPicker;\n}(external_this_wp_element_[\"Component\"]);\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction useObservableState(initialState, onStateChange) {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(initialState),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      state = _useState2[0],\n      setState = _useState2[1];\n\n  return [state, function (value) {\n    setState(value);\n\n    if (onStateChange) {\n      onStateChange(value);\n    }\n  }];\n}\n\nfunction Dropdown(_ref) {\n  var renderContent = _ref.renderContent,\n      renderToggle = _ref.renderToggle,\n      _ref$position = _ref.position,\n      position = _ref$position === void 0 ? 'bottom right' : _ref$position,\n      className = _ref.className,\n      contentClassName = _ref.contentClassName,\n      expandOnMobile = _ref.expandOnMobile,\n      headerTitle = _ref.headerTitle,\n      focusOnMount = _ref.focusOnMount,\n      popoverProps = _ref.popoverProps,\n      onClose = _ref.onClose,\n      onToggle = _ref.onToggle;\n  var containerRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useObservableState = useObservableState(false, onToggle),\n      _useObservableState2 = Object(slicedToArray[\"a\" /* default */])(_useObservableState, 2),\n      isOpen = _useObservableState2[0],\n      setIsOpen = _useObservableState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      if (onToggle) {\n        onToggle(false);\n      }\n    };\n  }, []);\n\n  function toggle() {\n    setIsOpen(!isOpen);\n  }\n  /**\n   * Closes the dropdown if a focus leaves the dropdown wrapper. This is\n   * intentionally distinct from `onClose` since focus loss from the popover\n   * is expected to occur when using the Dropdown's toggle button, in which\n   * case the correct behavior is to keep the dropdown closed. The same applies\n   * in case when focus is moved to the modal dialog.\n   */\n\n\n  function closeIfFocusOutside() {\n    if (!containerRef.current.contains(document.activeElement) && !document.activeElement.closest('[role=\"dialog\"]')) {\n      close();\n    }\n  }\n\n  function close() {\n    if (onClose) {\n      onClose();\n    }\n\n    setIsOpen(false);\n  }\n\n  var args = {\n    isOpen: isOpen,\n    onToggle: toggle,\n    onClose: close\n  };\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('components-dropdown', className),\n    ref: containerRef\n  }, renderToggle(args), isOpen && Object(external_this_wp_element_[\"createElement\"])(popover[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    position: position,\n    onClose: close,\n    onFocusOutside: closeIfFocusOutside,\n    expandOnMobile: expandOnMobile,\n    headerTitle: headerTitle,\n    focusOnMount: focusOnMount\n  }, popoverProps, {\n    anchorRef: containerRef.current,\n    className: classnames_default()('components-dropdown__content', popoverProps ? popoverProps.className : undefined, contentClassName)\n  }), renderContent(args)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/circular-option-picker/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction Option(_ref) {\n  var className = _ref.className,\n      isSelected = _ref.isSelected,\n      selectedIconProps = _ref.selectedIconProps,\n      tooltipText = _ref.tooltipText,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"isSelected\", \"selectedIconProps\", \"tooltipText\"]);\n\n  var optionButton = Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    isPressed: isSelected,\n    className: classnames_default()(className, 'components-circular-option-picker__option')\n  }, additionalProps));\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-circular-option-picker__option-wrapper\"\n  }, tooltipText ? Object(external_this_wp_element_[\"createElement\"])(build_module_tooltip[\"a\" /* default */], {\n    text: tooltipText\n  }, optionButton) : optionButton, isSelected && Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    icon: check[\"a\" /* default */]\n  }, selectedIconProps ? selectedIconProps : {})));\n}\n\nfunction DropdownLinkAction(_ref2) {\n  var buttonProps = _ref2.buttonProps,\n      className = _ref2.className,\n      dropdownProps = _ref2.dropdownProps,\n      linkText = _ref2.linkText;\n  return Object(external_this_wp_element_[\"createElement\"])(Dropdown, Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('components-circular-option-picker__dropdown-link-action', className),\n    renderToggle: function renderToggle(_ref3) {\n      var isOpen = _ref3.isOpen,\n          onToggle = _ref3.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n        \"aria-expanded\": isOpen,\n        onClick: onToggle,\n        isLink: true\n      }, buttonProps), linkText);\n    }\n  }, dropdownProps));\n}\n\nfunction ButtonAction(_ref4) {\n  var className = _ref4.className,\n      children = _ref4.children,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref4, [\"className\", \"children\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('components-circular-option-picker__clear', className),\n    isSmall: true,\n    isSecondary: true\n  }, additionalProps), children);\n}\n\nfunction CircularOptionPicker(_ref5) {\n  var actions = _ref5.actions,\n      className = _ref5.className,\n      options = _ref5.options,\n      children = _ref5.children;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('components-circular-option-picker', className)\n  }, options, children, actions && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-circular-option-picker__custom-clear-wrapper\"\n  }, actions));\n}\nCircularOptionPicker.Option = Option;\nCircularOptionPicker.ButtonAction = ButtonAction;\nCircularOptionPicker.DropdownLinkAction = DropdownLinkAction;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/color-palette/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ColorPalette(_ref) {\n  var _ref$clearable = _ref.clearable,\n      clearable = _ref$clearable === void 0 ? true : _ref$clearable,\n      className = _ref.className,\n      colors = _ref.colors,\n      _ref$disableCustomCol = _ref.disableCustomColors,\n      disableCustomColors = _ref$disableCustomCol === void 0 ? false : _ref$disableCustomCol,\n      onChange = _ref.onChange,\n      value = _ref.value;\n  var clearColor = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return onChange(undefined);\n  }, [onChange]);\n  var colorOptions = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_lodash_[\"map\"])(colors, function (_ref2) {\n      var color = _ref2.color,\n          name = _ref2.name;\n      return Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker.Option, {\n        key: color,\n        isSelected: value === color,\n        selectedIconProps: value === color ? {\n          fill: tinycolor_default.a.mostReadable(color, ['#000', '#fff']).toHexString()\n        } : {},\n        tooltipText: name || // translators: %s: color hex code e.g: \"#f00\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Color code: %s'), color),\n        style: {\n          backgroundColor: color,\n          color: color\n        },\n        onClick: value === color ? clearColor : function () {\n          return onChange(color);\n        },\n        \"aria-label\": name ? // translators: %s: The name of the color e.g: \"vivid red\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Color: %s'), name) : // translators: %s: color hex code e.g: \"#f00\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Color code: %s'), color)\n      });\n    });\n  }, [colors, value, onChange, clearColor]);\n\n  var renderCustomColorPicker = function renderCustomColorPicker() {\n    return Object(external_this_wp_element_[\"createElement\"])(color_picker_ColorPicker, {\n      color: value,\n      onChangeComplete: function onChangeComplete(color) {\n        return onChange(color.hex);\n      },\n      disableAlpha: true\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker, {\n    className: className,\n    options: colorOptions,\n    actions: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !disableCustomColors && Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker.DropdownLinkAction, {\n      dropdownProps: {\n        renderContent: renderCustomColorPicker,\n        contentClassName: 'components-color-palette__picker'\n      },\n      buttonProps: {\n        'aria-label': Object(external_this_wp_i18n_[\"__\"])('Custom color picker')\n      },\n      linkText: Object(external_this_wp_i18n_[\"__\"])('Custom color')\n    }), !!clearable && Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker.ButtonAction, {\n      onClick: clearColor\n    }, Object(external_this_wp_i18n_[\"__\"])('Clear')))\n  });\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\nvar objectWithoutPropertiesLoose = __webpack_require__(41);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\nfunction inheritsLoose_inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n// EXTERNAL MODULE: ./node_modules/prop-types/index.js\nvar prop_types = __webpack_require__(28);\nvar prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);\n\n// EXTERNAL MODULE: ./node_modules/downshift/node_modules/react-is/index.js\nvar react_is = __webpack_require__(188);\n\n// CONCATENATED MODULE: ./node_modules/compute-scroll-into-view/es/index.js\nfunction isElement(el) {\n  return el != null && typeof el === 'object' && el.nodeType === 1;\n}\n\nfunction canOverflow(overflow, skipOverflowHiddenElements) {\n  if (skipOverflowHiddenElements && overflow === 'hidden') {\n    return false;\n  }\n\n  return overflow !== 'visible' && overflow !== 'clip';\n}\n\nfunction getFrameElement(el) {\n  if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n    return null;\n  }\n\n  try {\n    return el.ownerDocument.defaultView.frameElement;\n  } catch (e) {\n    return null;\n  }\n}\n\nfunction isHiddenByFrame(el) {\n  var frame = getFrameElement(el);\n\n  if (!frame) {\n    return false;\n  }\n\n  return frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth;\n}\n\nfunction isScrollable(el, skipOverflowHiddenElements) {\n  if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n    var style = getComputedStyle(el, null);\n    return canOverflow(style.overflowY, skipOverflowHiddenElements) || canOverflow(style.overflowX, skipOverflowHiddenElements) || isHiddenByFrame(el);\n  }\n\n  return false;\n}\n\nfunction alignNearest(scrollingEdgeStart, scrollingEdgeEnd, scrollingSize, scrollingBorderStart, scrollingBorderEnd, elementEdgeStart, elementEdgeEnd, elementSize) {\n  if (elementEdgeStart < scrollingEdgeStart && elementEdgeEnd > scrollingEdgeEnd || elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd) {\n    return 0;\n  }\n\n  if (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize || elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize) {\n    return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart;\n  }\n\n  if (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize || elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize) {\n    return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd;\n  }\n\n  return 0;\n}\n\n/* harmony default export */ var compute_scroll_into_view_es = (function (target, options) {\n  var scrollMode = options.scrollMode,\n      block = options.block,\n      inline = options.inline,\n      boundary = options.boundary,\n      skipOverflowHiddenElements = options.skipOverflowHiddenElements;\n  var checkBoundary = typeof boundary === 'function' ? boundary : function (node) {\n    return node !== boundary;\n  };\n\n  if (!isElement(target)) {\n    throw new TypeError('Invalid target');\n  }\n\n  var scrollingElement = document.scrollingElement || document.documentElement;\n  var frames = [];\n  var cursor = target;\n\n  while (isElement(cursor) && checkBoundary(cursor)) {\n    cursor = cursor.parentNode;\n\n    if (cursor === scrollingElement) {\n      frames.push(cursor);\n      break;\n    }\n\n    if (cursor === document.body && isScrollable(cursor) && !isScrollable(document.documentElement)) {\n      continue;\n    }\n\n    if (isScrollable(cursor, skipOverflowHiddenElements)) {\n      frames.push(cursor);\n    }\n  }\n\n  var viewportWidth = window.visualViewport ? visualViewport.width : innerWidth;\n  var viewportHeight = window.visualViewport ? visualViewport.height : innerHeight;\n  var viewportX = window.scrollX || pageXOffset;\n  var viewportY = window.scrollY || pageYOffset;\n\n  var _target$getBoundingCl = target.getBoundingClientRect(),\n      targetHeight = _target$getBoundingCl.height,\n      targetWidth = _target$getBoundingCl.width,\n      targetTop = _target$getBoundingCl.top,\n      targetRight = _target$getBoundingCl.right,\n      targetBottom = _target$getBoundingCl.bottom,\n      targetLeft = _target$getBoundingCl.left;\n\n  var targetBlock = block === 'start' || block === 'nearest' ? targetTop : block === 'end' ? targetBottom : targetTop + targetHeight / 2;\n  var targetInline = inline === 'center' ? targetLeft + targetWidth / 2 : inline === 'end' ? targetRight : targetLeft;\n  var computations = [];\n\n  for (var index = 0; index < frames.length; index++) {\n    var frame = frames[index];\n\n    var _frame$getBoundingCli = frame.getBoundingClientRect(),\n        height = _frame$getBoundingCli.height,\n        width = _frame$getBoundingCli.width,\n        top = _frame$getBoundingCli.top,\n        right = _frame$getBoundingCli.right,\n        bottom = _frame$getBoundingCli.bottom,\n        left = _frame$getBoundingCli.left;\n\n    if (scrollMode === 'if-needed' && targetTop >= 0 && targetLeft >= 0 && targetBottom <= viewportHeight && targetRight <= viewportWidth && targetTop >= top && targetBottom <= bottom && targetLeft >= left && targetRight <= right) {\n      return computations;\n    }\n\n    var frameStyle = getComputedStyle(frame);\n    var borderLeft = parseInt(frameStyle.borderLeftWidth, 10);\n    var borderTop = parseInt(frameStyle.borderTopWidth, 10);\n    var borderRight = parseInt(frameStyle.borderRightWidth, 10);\n    var borderBottom = parseInt(frameStyle.borderBottomWidth, 10);\n    var blockScroll = 0;\n    var inlineScroll = 0;\n    var scrollbarWidth = 'offsetWidth' in frame ? frame.offsetWidth - frame.clientWidth - borderLeft - borderRight : 0;\n    var scrollbarHeight = 'offsetHeight' in frame ? frame.offsetHeight - frame.clientHeight - borderTop - borderBottom : 0;\n\n    if (scrollingElement === frame) {\n      if (block === 'start') {\n        blockScroll = targetBlock;\n      } else if (block === 'end') {\n        blockScroll = targetBlock - viewportHeight;\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(viewportY, viewportY + viewportHeight, viewportHeight, borderTop, borderBottom, viewportY + targetBlock, viewportY + targetBlock + targetHeight, targetHeight);\n      } else {\n        blockScroll = targetBlock - viewportHeight / 2;\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline;\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - viewportWidth / 2;\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - viewportWidth;\n      } else {\n        inlineScroll = alignNearest(viewportX, viewportX + viewportWidth, viewportWidth, borderLeft, borderRight, viewportX + targetInline, viewportX + targetInline + targetWidth, targetWidth);\n      }\n\n      blockScroll = Math.max(0, blockScroll + viewportY);\n      inlineScroll = Math.max(0, inlineScroll + viewportX);\n    } else {\n      if (block === 'start') {\n        blockScroll = targetBlock - top - borderTop;\n      } else if (block === 'end') {\n        blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight;\n      } else if (block === 'nearest') {\n        blockScroll = alignNearest(top, bottom, height, borderTop, borderBottom + scrollbarHeight, targetBlock, targetBlock + targetHeight, targetHeight);\n      } else {\n        blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2;\n      }\n\n      if (inline === 'start') {\n        inlineScroll = targetInline - left - borderLeft;\n      } else if (inline === 'center') {\n        inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2;\n      } else if (inline === 'end') {\n        inlineScroll = targetInline - right + borderRight + scrollbarWidth;\n      } else {\n        inlineScroll = alignNearest(left, right, width, borderLeft, borderRight + scrollbarWidth, targetInline, targetInline + targetWidth, targetWidth);\n      }\n\n      var scrollLeft = frame.scrollLeft,\n          scrollTop = frame.scrollTop;\n      blockScroll = Math.max(0, Math.min(scrollTop + blockScroll, frame.scrollHeight - height + scrollbarHeight));\n      inlineScroll = Math.max(0, Math.min(scrollLeft + inlineScroll, frame.scrollWidth - width + scrollbarWidth));\n      targetBlock += scrollTop - blockScroll;\n      targetInline += scrollLeft - inlineScroll;\n    }\n\n    computations.push({\n      el: frame,\n      top: blockScroll,\n      left: inlineScroll\n    });\n  }\n\n  return computations;\n});\n// CONCATENATED MODULE: ./node_modules/downshift/dist/downshift.esm.js\n\n\n\n\n\n\n\n\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n  return typeof cb === 'function' ? cb : downshift_esm_noop;\n}\n\nfunction downshift_esm_noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction downshift_esm_scrollIntoView(node, menuNode) {\n  if (!node) {\n    return;\n  }\n\n  var actions = compute_scroll_into_view_es(node, {\n    boundary: menuNode,\n    block: 'nearest',\n    scrollMode: 'if-needed'\n  });\n  actions.forEach(function (_ref) {\n    var el = _ref.el,\n        top = _ref.top,\n        left = _ref.left;\n    el.scrollTop = top;\n    el.scrollLeft = left;\n  });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child) {\n  return parent === child || parent.contains && parent.contains(child);\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n  var timeoutId;\n\n  function cancel() {\n    if (timeoutId) {\n      clearTimeout(timeoutId);\n    }\n  }\n\n  function wrapper() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    cancel();\n    timeoutId = setTimeout(function () {\n      timeoutId = null;\n      fn.apply(void 0, args);\n    }, time);\n  }\n\n  wrapper.cancel = cancel;\n  return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n  for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    fns[_key2] = arguments[_key2];\n  }\n\n  return function (event) {\n    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      args[_key3 - 1] = arguments[_key3];\n    }\n\n    return fns.some(function (fn) {\n      if (fn) {\n        fn.apply(void 0, [event].concat(args));\n      }\n\n      return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n    });\n  };\n}\n\nfunction handleRefs() {\n  for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    refs[_key4] = arguments[_key4];\n  }\n\n  return function (node) {\n    refs.forEach(function (ref) {\n      if (typeof ref === 'function') {\n        ref(node);\n      } else if (ref) {\n        ref.current = node;\n      }\n    });\n  };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n  return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n  idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction downshift_esm_getA11yStatusMessage(_ref2) {\n  var isOpen = _ref2.isOpen,\n      resultCount = _ref2.resultCount,\n      previousResultCount = _ref2.previousResultCount;\n\n  if (!isOpen) {\n    return '';\n  }\n\n  if (!resultCount) {\n    return 'No results are available.';\n  }\n\n  if (resultCount !== previousResultCount) {\n    return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n  }\n\n  return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n  arg = Array.isArray(arg) ?\n  /* istanbul ignore next (preact) */\n  arg[0] : arg;\n\n  if (!arg && defaultValue) {\n    return defaultValue;\n  } else {\n    return arg;\n  }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n  // then we assume this is react\n  return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n  return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n  // eslint-disable-next-line no-console\n  console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n  if (state === void 0) {\n    state = {};\n  }\n\n  var result = {};\n  stateKeys.forEach(function (k) {\n    if (state.hasOwnProperty(k)) {\n      result[k] = state[k];\n    }\n  });\n  return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n  return Object.keys(state).reduce(function (prevState, key) {\n    prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n    return prevState;\n  }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n  return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n  var key = event.key,\n      keyCode = event.keyCode;\n  /* istanbul ignore next (ie) */\n\n  if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n    return \"Arrow\" + key;\n  }\n\n  return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n  return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n  if (circular === void 0) {\n    circular = true;\n  }\n\n  if (itemCount === 0) {\n    return -1;\n  }\n\n  var itemsLastIndex = itemCount - 1;\n\n  if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n    baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n  }\n\n  var newIndex = baseIndex + moveAmount;\n\n  if (newIndex < 0) {\n    newIndex = circular ? itemsLastIndex : 0;\n  } else if (newIndex > itemsLastIndex) {\n    newIndex = circular ? 0 : itemsLastIndex;\n  }\n\n  var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n  if (nonDisabledNewIndex === -1) {\n    return baseIndex >= itemCount ? -1 : baseIndex;\n  }\n\n  return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n  var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n  if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n    return baseIndex;\n  }\n\n  if (moveAmount > 0) {\n    for (var index = baseIndex + 1; index < itemCount; index++) {\n      if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n        return index;\n      }\n    }\n  } else {\n    for (var _index = baseIndex - 1; _index >= 0; _index--) {\n      if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n        return _index;\n      }\n    }\n  }\n\n  if (circular) {\n    return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n  }\n\n  return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Document} document The document.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, document, checkActiveElement) {\n  if (checkActiveElement === void 0) {\n    checkActiveElement = true;\n  }\n\n  return downshiftElements.some(function (contextNode) {\n    return contextNode && (isOrContainsNode(contextNode, target) || checkActiveElement && isOrContainsNode(contextNode, document.activeElement));\n  });\n}\n\nfunction validateControlledUnchanged(state, prevProps, nextProps) {\n  if (true) {\n    return;\n  }\n\n  var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n  Object.keys(state).forEach(function (propKey) {\n    if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n      // eslint-disable-next-line no-console\n      console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n    } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n      // eslint-disable-next-line no-console\n      console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n    }\n  });\n}\n\nvar cleanupStatus = debounce(function () {\n  getStatusDiv().textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n  var div = getStatusDiv(documentProp);\n\n  if (!status) {\n    return;\n  }\n\n  div.textContent = status;\n  cleanupStatus();\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n  if (documentProp === void 0) {\n    documentProp = document;\n  }\n\n  var statusDiv = documentProp.getElementById('a11y-status-message');\n\n  if (statusDiv) {\n    return statusDiv;\n  }\n\n  statusDiv = documentProp.createElement('div');\n  statusDiv.setAttribute('id', 'a11y-status-message');\n  statusDiv.setAttribute('role', 'status');\n  statusDiv.setAttribute('aria-live', 'polite');\n  statusDiv.setAttribute('aria-relevant', 'additions text');\n  Object.assign(statusDiv.style, {\n    border: '0',\n    clip: 'rect(0 0 0 0)',\n    height: '1px',\n    margin: '-1px',\n    overflow: 'hidden',\n    padding: '0',\n    position: 'absolute',\n    width: '1px'\n  });\n  documentProp.body.appendChild(statusDiv);\n  return statusDiv;\n}\n\nvar unknown =  false ? undefined : 0;\nvar mouseUp =  false ? undefined : 1;\nvar itemMouseEnter =  false ? undefined : 2;\nvar keyDownArrowUp =  false ? undefined : 3;\nvar keyDownArrowDown =  false ? undefined : 4;\nvar keyDownEscape =  false ? undefined : 5;\nvar keyDownEnter =  false ? undefined : 6;\nvar keyDownHome =  false ? undefined : 7;\nvar keyDownEnd =  false ? undefined : 8;\nvar clickItem =  false ? undefined : 9;\nvar blurInput =  false ? undefined : 10;\nvar changeInput =  false ? undefined : 11;\nvar keyDownSpaceButton =  false ? undefined : 12;\nvar clickButton =  false ? undefined : 13;\nvar blurButton =  false ? undefined : 14;\nvar controlledPropUpdatedSelectedItem =  false ? undefined : 15;\nvar touchEnd =  false ? undefined : 16;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  unknown: unknown,\n  mouseUp: mouseUp,\n  itemMouseEnter: itemMouseEnter,\n  keyDownArrowUp: keyDownArrowUp,\n  keyDownArrowDown: keyDownArrowDown,\n  keyDownEscape: keyDownEscape,\n  keyDownEnter: keyDownEnter,\n  keyDownHome: keyDownHome,\n  keyDownEnd: keyDownEnd,\n  clickItem: clickItem,\n  blurInput: blurInput,\n  changeInput: changeInput,\n  keyDownSpaceButton: keyDownSpaceButton,\n  clickButton: clickButton,\n  blurButton: blurButton,\n  controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n  touchEnd: touchEnd\n});\n\nvar downshift_esm_Downshift =\n/*#__PURE__*/\nfunction () {\n  var Downshift =\n  /*#__PURE__*/\n  function (_Component) {\n    inheritsLoose_inheritsLoose(Downshift, _Component);\n\n    function Downshift(_props) {\n      var _this = _Component.call(this, _props) || this;\n\n      _this.id = _this.props.id || \"downshift-\" + generateId();\n      _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n      _this.labelId = _this.props.labelId || _this.id + \"-label\";\n      _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n      _this.getItemId = _this.props.getItemId || function (index) {\n        return _this.id + \"-item-\" + index;\n      };\n\n      _this.input = null;\n      _this.items = [];\n      _this.itemCount = null;\n      _this.previousResultCount = 0;\n      _this.timeoutIds = [];\n\n      _this.internalSetTimeout = function (fn, time) {\n        var id = setTimeout(function () {\n          _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n            return i !== id;\n          });\n          fn();\n        }, time);\n\n        _this.timeoutIds.push(id);\n      };\n\n      _this.setItemCount = function (count) {\n        _this.itemCount = count;\n      };\n\n      _this.unsetItemCount = function () {\n        _this.itemCount = null;\n      };\n\n      _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n        if (highlightedIndex === void 0) {\n          highlightedIndex = _this.props.defaultHighlightedIndex;\n        }\n\n        if (otherStateToSet === void 0) {\n          otherStateToSet = {};\n        }\n\n        otherStateToSet = pickState(otherStateToSet);\n\n        _this.internalSetState(Object(esm_extends[\"a\" /* default */])({\n          highlightedIndex: highlightedIndex\n        }, otherStateToSet));\n      };\n\n      _this.clearSelection = function (cb) {\n        _this.internalSetState({\n          selectedItem: null,\n          inputValue: '',\n          highlightedIndex: _this.props.defaultHighlightedIndex,\n          isOpen: _this.props.defaultIsOpen\n        }, cb);\n      };\n\n      _this.selectItem = function (item, otherStateToSet, cb) {\n        otherStateToSet = pickState(otherStateToSet);\n\n        _this.internalSetState(Object(esm_extends[\"a\" /* default */])({\n          isOpen: _this.props.defaultIsOpen,\n          highlightedIndex: _this.props.defaultHighlightedIndex,\n          selectedItem: item,\n          inputValue: _this.props.itemToString(item)\n        }, otherStateToSet), cb);\n      };\n\n      _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n        var item = _this.items[itemIndex];\n\n        if (item == null) {\n          return;\n        }\n\n        _this.selectItem(item, otherStateToSet, cb);\n      };\n\n      _this.selectHighlightedItem = function (otherStateToSet, cb) {\n        return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n      };\n\n      _this.internalSetState = function (stateToSet, cb) {\n        var isItemSelected, onChangeArg;\n        var onStateChangeArg = {};\n        var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n        // so someone controlling the `inputValue` state gets notified of\n        // the input change as soon as possible. This avoids issues with\n        // preserving the cursor position.\n        // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n        if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n          _this.props.onInputValueChange(stateToSet.inputValue, Object(esm_extends[\"a\" /* default */])({}, _this.getStateAndHelpers(), stateToSet));\n        }\n\n        return _this.setState(function (state) {\n          state = _this.getState(state);\n          var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n          newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n          // what was selected before\n          // used to determine if onSelect and onChange callbacks should be called\n\n          isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n          var nextState = {}; // this is just used to tell whether the state changed\n\n          var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n          // and we're trying to update that state. OR if the selection has changed and we're\n          // trying to update the selection\n\n          if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n            onChangeArg = newStateToSet.selectedItem;\n          }\n\n          newStateToSet.type = newStateToSet.type || unknown;\n          Object.keys(newStateToSet).forEach(function (key) {\n            // onStateChangeArg should only have the state that is\n            // actually changing\n            if (state[key] !== newStateToSet[key]) {\n              onStateChangeArg[key] = newStateToSet[key];\n            } // the type is useful for the onStateChangeArg\n            // but we don't actually want to set it in internal state.\n            // this is an undocumented feature for now... Not all internalSetState\n            // calls support it and I'm not certain we want them to yet.\n            // But it enables users controlling the isOpen state to know when\n            // the isOpen state changes due to mouseup events which is quite handy.\n\n\n            if (key === 'type') {\n              return;\n            }\n\n            nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n            if (!isControlledProp(_this.props, key)) {\n              nextState[key] = newStateToSet[key];\n            }\n          }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n          // earlier, so we'll call it now that we know what the inputValue state will be.\n\n          if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n            _this.props.onInputValueChange(newStateToSet.inputValue, Object(esm_extends[\"a\" /* default */])({}, _this.getStateAndHelpers(), newStateToSet));\n          }\n\n          return nextState;\n        }, function () {\n          // call the provided callback if it's a function\n          cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n          // we have relevant information to pass them.\n\n          var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n          if (hasMoreStateThanType) {\n            _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n          }\n\n          if (isItemSelected) {\n            _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n          }\n\n          if (onChangeArg !== undefined) {\n            _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n          } // this is currently undocumented and therefore subject to change\n          // We'll try to not break it, but just be warned.\n\n\n          _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n        });\n      };\n\n      _this.rootRef = function (node) {\n        return _this._rootNode = node;\n      };\n\n      _this.getRootProps = function (_temp, _temp2) {\n        var _extends2;\n\n        var _ref = _temp === void 0 ? {} : _temp,\n            _ref$refKey = _ref.refKey,\n            refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n            ref = _ref.ref,\n            rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref, [\"refKey\", \"ref\"]);\n\n        var _ref2 = _temp2 === void 0 ? {} : _temp2,\n            _ref2$suppressRefErro = _ref2.suppressRefError,\n            suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n        // this is used in the render to know whether the user has called getRootProps.\n        // It uses that to know whether to apply the props automatically\n        _this.getRootProps.called = true;\n        _this.getRootProps.refKey = refKey;\n        _this.getRootProps.suppressRefError = suppressRefError;\n\n        var _this$getState = _this.getState(),\n            isOpen = _this$getState.isOpen;\n\n        return Object(esm_extends[\"a\" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n      };\n\n      _this.keyDownHandlers = {\n        ArrowDown: function ArrowDown(event) {\n          var _this2 = this;\n\n          event.preventDefault();\n\n          if (this.getState().isOpen) {\n            var amount = event.shiftKey ? 5 : 1;\n            this.moveHighlightedIndex(amount, {\n              type: keyDownArrowDown\n            });\n          } else {\n            this.internalSetState({\n              isOpen: true,\n              type: keyDownArrowDown\n            }, function () {\n              var itemCount = _this2.getItemCount();\n\n              if (itemCount > 0) {\n                var _this2$getState = _this2.getState(),\n                    highlightedIndex = _this2$getState.highlightedIndex;\n\n                var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n                  return _this2.getItemNodeFromIndex(index);\n                });\n\n                _this2.setHighlightedIndex(nextHighlightedIndex, {\n                  type: keyDownArrowDown\n                });\n              }\n            });\n          }\n        },\n        ArrowUp: function ArrowUp(event) {\n          var _this3 = this;\n\n          event.preventDefault();\n\n          if (this.getState().isOpen) {\n            var amount = event.shiftKey ? -5 : -1;\n            this.moveHighlightedIndex(amount, {\n              type: keyDownArrowUp\n            });\n          } else {\n            this.internalSetState({\n              isOpen: true,\n              type: keyDownArrowUp\n            }, function () {\n              var itemCount = _this3.getItemCount();\n\n              if (itemCount > 0) {\n                var _this3$getState = _this3.getState(),\n                    highlightedIndex = _this3$getState.highlightedIndex;\n\n                var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n                  return _this3.getItemNodeFromIndex(index);\n                });\n\n                _this3.setHighlightedIndex(nextHighlightedIndex, {\n                  type: keyDownArrowUp\n                });\n              }\n            });\n          }\n        },\n        Enter: function Enter(event) {\n          if (event.which === 229) {\n            return;\n          }\n\n          var _this$getState2 = this.getState(),\n              isOpen = _this$getState2.isOpen,\n              highlightedIndex = _this$getState2.highlightedIndex;\n\n          if (isOpen && highlightedIndex != null) {\n            event.preventDefault();\n            var item = this.items[highlightedIndex];\n            var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n            if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n              return;\n            }\n\n            this.selectHighlightedItem({\n              type: keyDownEnter\n            });\n          }\n        },\n        Escape: function Escape(event) {\n          event.preventDefault();\n          this.reset({\n            type: keyDownEscape,\n            selectedItem: null,\n            inputValue: ''\n          });\n        }\n      };\n      _this.buttonKeyDownHandlers = Object(esm_extends[\"a\" /* default */])({}, _this.keyDownHandlers, {\n        ' ': function _(event) {\n          event.preventDefault();\n          this.toggleMenu({\n            type: keyDownSpaceButton\n          });\n        }\n      });\n      _this.inputKeyDownHandlers = Object(esm_extends[\"a\" /* default */])({}, _this.keyDownHandlers, {\n        Home: function Home(event) {\n          var _this4 = this;\n\n          event.preventDefault();\n          var itemCount = this.getItemCount();\n\n          var _this$getState3 = this.getState(),\n              isOpen = _this$getState3.isOpen;\n\n          if (itemCount <= 0 || !isOpen) {\n            return;\n          } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n          var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n            return _this4.getItemNodeFromIndex(index);\n          }, false);\n          this.setHighlightedIndex(newHighlightedIndex, {\n            type: keyDownHome\n          });\n        },\n        End: function End(event) {\n          var _this5 = this;\n\n          event.preventDefault();\n          var itemCount = this.getItemCount();\n\n          var _this$getState4 = this.getState(),\n              isOpen = _this$getState4.isOpen;\n\n          if (itemCount <= 0 || !isOpen) {\n            return;\n          } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n          var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n            return _this5.getItemNodeFromIndex(index);\n          }, false);\n          this.setHighlightedIndex(newHighlightedIndex, {\n            type: keyDownEnd\n          });\n        }\n      });\n\n      _this.getToggleButtonProps = function (_temp3) {\n        var _ref3 = _temp3 === void 0 ? {} : _temp3,\n            onClick = _ref3.onClick,\n            onPress = _ref3.onPress,\n            onKeyDown = _ref3.onKeyDown,\n            onKeyUp = _ref3.onKeyUp,\n            onBlur = _ref3.onBlur,\n            rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref3, [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"]);\n\n        var _this$getState5 = _this.getState(),\n            isOpen = _this$getState5.isOpen;\n\n        var enabledEventHandlers = {\n          onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n          onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n          onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n          onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n        };\n        var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n        return Object(esm_extends[\"a\" /* default */])({\n          type: 'button',\n          role: 'button',\n          'aria-label': isOpen ? 'close menu' : 'open menu',\n          'aria-haspopup': true,\n          'data-toggle': true\n        }, eventHandlers, rest);\n      };\n\n      _this.buttonHandleKeyUp = function (event) {\n        // Prevent click event from emitting in Firefox\n        event.preventDefault();\n      };\n\n      _this.buttonHandleKeyDown = function (event) {\n        var key = normalizeArrowKey(event);\n\n        if (_this.buttonKeyDownHandlers[key]) {\n          _this.buttonKeyDownHandlers[key].call(Object(assertThisInitialized[\"a\" /* default */])(_this), event);\n        }\n      };\n\n      _this.buttonHandleClick = function (event) {\n        event.preventDefault(); // handle odd case for Safari and Firefox which\n        // don't give the button the focus properly.\n\n        /* istanbul ignore if (can't reasonably test this) */\n\n        if ( _this.props.environment.document.activeElement === _this.props.environment.document.body) {\n          event.target.focus();\n        } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n        // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n        // when building for production and should therefore have no impact on production code.\n\n\n        if (false) {} else {\n          // Ensure that toggle of menu occurs after the potential blur event in iOS\n          _this.internalSetTimeout(function () {\n            return _this.toggleMenu({\n              type: clickButton\n            });\n          });\n        }\n      };\n\n      _this.buttonHandleBlur = function (event) {\n        var blurTarget = event.target; // Save blur target for comparison with activeElement later\n        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n        _this.internalSetTimeout(function () {\n          if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n          ) {\n              _this.reset({\n                type: blurButton\n              });\n            }\n        });\n      };\n\n      _this.getLabelProps = function (props) {\n        return Object(esm_extends[\"a\" /* default */])({\n          htmlFor: _this.inputId,\n          id: _this.labelId\n        }, props);\n      };\n\n      _this.getInputProps = function (_temp4) {\n        var _ref4 = _temp4 === void 0 ? {} : _temp4,\n            onKeyDown = _ref4.onKeyDown,\n            onBlur = _ref4.onBlur,\n            onChange = _ref4.onChange,\n            onInput = _ref4.onInput,\n            onChangeText = _ref4.onChangeText,\n            rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref4, [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"]);\n\n        var onChangeKey;\n        var eventHandlers = {};\n        /* istanbul ignore next (preact) */\n\n        onChangeKey = 'onChange';\n\n        var _this$getState6 = _this.getState(),\n            inputValue = _this$getState6.inputValue,\n            isOpen = _this$getState6.isOpen,\n            highlightedIndex = _this$getState6.highlightedIndex;\n\n        if (!rest.disabled) {\n          var _eventHandlers;\n\n          eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n        }\n        /* istanbul ignore if (react-native) */\n\n\n        return Object(esm_extends[\"a\" /* default */])({\n          'aria-autocomplete': 'list',\n          'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n          'aria-controls': isOpen ? _this.menuId : null,\n          'aria-labelledby': _this.labelId,\n          // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n          // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n          autoComplete: 'off',\n          value: inputValue,\n          id: _this.inputId\n        }, eventHandlers, rest);\n      };\n\n      _this.inputHandleKeyDown = function (event) {\n        var key = normalizeArrowKey(event);\n\n        if (key && _this.inputKeyDownHandlers[key]) {\n          _this.inputKeyDownHandlers[key].call(Object(assertThisInitialized[\"a\" /* default */])(_this), event);\n        }\n      };\n\n      _this.inputHandleChange = function (event) {\n        _this.internalSetState({\n          type: changeInput,\n          isOpen: true,\n          inputValue: event.target.value,\n          highlightedIndex: _this.props.defaultHighlightedIndex\n        });\n      };\n\n      _this.inputHandleBlur = function () {\n        // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n        _this.internalSetTimeout(function () {\n          var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n          if (!_this.isMouseDown && !downshiftButtonIsActive) {\n            _this.reset({\n              type: blurInput\n            });\n          }\n        });\n      };\n\n      _this.menuRef = function (node) {\n        _this._menuNode = node;\n      };\n\n      _this.getMenuProps = function (_temp5, _temp6) {\n        var _extends3;\n\n        var _ref5 = _temp5 === void 0 ? {} : _temp5,\n            _ref5$refKey = _ref5.refKey,\n            refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n            ref = _ref5.ref,\n            props = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref5, [\"refKey\", \"ref\"]);\n\n        var _ref6 = _temp6 === void 0 ? {} : _temp6,\n            _ref6$suppressRefErro = _ref6.suppressRefError,\n            suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n        _this.getMenuProps.called = true;\n        _this.getMenuProps.refKey = refKey;\n        _this.getMenuProps.suppressRefError = suppressRefError;\n        return Object(esm_extends[\"a\" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n      };\n\n      _this.getItemProps = function (_temp7) {\n        var _enabledEventHandlers;\n\n        var _ref7 = _temp7 === void 0 ? {} : _temp7,\n            onMouseMove = _ref7.onMouseMove,\n            onMouseDown = _ref7.onMouseDown,\n            onClick = _ref7.onClick,\n            onPress = _ref7.onPress,\n            index = _ref7.index,\n            _ref7$item = _ref7.item,\n            item = _ref7$item === void 0 ?  true ?\n        /* istanbul ignore next */\n        undefined : undefined : _ref7$item,\n            rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref7, [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"]);\n\n        if (index === undefined) {\n          _this.items.push(item);\n\n          index = _this.items.indexOf(item);\n        } else {\n          _this.items[index] = item;\n        }\n\n        var onSelectKey = 'onClick';\n        var customClickHandler = onClick;\n        var enabledEventHandlers = (_enabledEventHandlers = {\n          // onMouseMove is used over onMouseEnter here. onMouseMove\n          // is only triggered on actual mouse movement while onMouseEnter\n          // can fire on DOM changes, interrupting keyboard navigation\n          onMouseMove: callAllEventHandlers(onMouseMove, function () {\n            if (index === _this.getState().highlightedIndex) {\n              return;\n            }\n\n            _this.setHighlightedIndex(index, {\n              type: itemMouseEnter\n            }); // We never want to manually scroll when changing state based\n            // on `onMouseMove` because we will be moving the element out\n            // from under the user which is currently scrolling/moving the\n            // cursor\n\n\n            _this.avoidScrolling = true;\n\n            _this.internalSetTimeout(function () {\n              return _this.avoidScrolling = false;\n            }, 250);\n          }),\n          onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n            // This prevents the activeElement from being changed\n            // to the item so it can remain with the current activeElement\n            // which is a more common use case.\n            event.preventDefault();\n          })\n        }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n          _this.selectItemAtIndex(index, {\n            type: clickItem\n          });\n        }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n        // of the activeElement if clicking on disabled items\n\n        var eventHandlers = rest.disabled ? {\n          onMouseDown: enabledEventHandlers.onMouseDown\n        } : enabledEventHandlers;\n        return Object(esm_extends[\"a\" /* default */])({\n          id: _this.getItemId(index),\n          role: 'option',\n          'aria-selected': _this.getState().highlightedIndex === index\n        }, eventHandlers, rest);\n      };\n\n      _this.clearItems = function () {\n        _this.items = [];\n      };\n\n      _this.reset = function (otherStateToSet, cb) {\n        if (otherStateToSet === void 0) {\n          otherStateToSet = {};\n        }\n\n        otherStateToSet = pickState(otherStateToSet);\n\n        _this.internalSetState(function (_ref8) {\n          var selectedItem = _ref8.selectedItem;\n          return Object(esm_extends[\"a\" /* default */])({\n            isOpen: _this.props.defaultIsOpen,\n            highlightedIndex: _this.props.defaultHighlightedIndex,\n            inputValue: _this.props.itemToString(selectedItem)\n          }, otherStateToSet);\n        }, cb);\n      };\n\n      _this.toggleMenu = function (otherStateToSet, cb) {\n        if (otherStateToSet === void 0) {\n          otherStateToSet = {};\n        }\n\n        otherStateToSet = pickState(otherStateToSet);\n\n        _this.internalSetState(function (_ref9) {\n          var isOpen = _ref9.isOpen;\n          return Object(esm_extends[\"a\" /* default */])({\n            isOpen: !isOpen\n          }, isOpen && {\n            highlightedIndex: _this.props.defaultHighlightedIndex\n          }, otherStateToSet);\n        }, function () {\n          var _this$getState7 = _this.getState(),\n              isOpen = _this$getState7.isOpen,\n              highlightedIndex = _this$getState7.highlightedIndex;\n\n          if (isOpen) {\n            if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n              _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n            }\n          }\n\n          cbToCb(cb)();\n        });\n      };\n\n      _this.openMenu = function (cb) {\n        _this.internalSetState({\n          isOpen: true\n        }, cb);\n      };\n\n      _this.closeMenu = function (cb) {\n        _this.internalSetState({\n          isOpen: false\n        }, cb);\n      };\n\n      _this.updateStatus = debounce(function () {\n        var state = _this.getState();\n\n        var item = _this.items[state.highlightedIndex];\n\n        var resultCount = _this.getItemCount();\n\n        var status = _this.props.getA11yStatusMessage(Object(esm_extends[\"a\" /* default */])({\n          itemToString: _this.props.itemToString,\n          previousResultCount: _this.previousResultCount,\n          resultCount: resultCount,\n          highlightedItem: item\n        }, state));\n\n        _this.previousResultCount = resultCount;\n        setStatus(status, _this.props.environment.document);\n      }, 200);\n\n      // fancy destructuring + defaults + aliases\n      // this basically says each value of state should either be set to\n      // the initial value or the default value if the initial value is not provided\n      var _this$props = _this.props,\n          defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n          _this$props$initialHi = _this$props.initialHighlightedIndex,\n          _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n          defaultIsOpen = _this$props.defaultIsOpen,\n          _this$props$initialIs = _this$props.initialIsOpen,\n          _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n          _this$props$initialIn = _this$props.initialInputValue,\n          _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n          _this$props$initialSe = _this$props.initialSelectedItem,\n          _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n      var _state = _this.getState({\n        highlightedIndex: _highlightedIndex,\n        isOpen: _isOpen,\n        inputValue: _inputValue,\n        selectedItem: _selectedItem\n      });\n\n      if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n        _state.inputValue = _this.props.itemToString(_state.selectedItem);\n      }\n\n      _this.state = _state;\n      return _this;\n    }\n\n    var _proto = Downshift.prototype;\n\n    /**\n     * Clear all running timeouts\n     */\n    _proto.internalClearTimeouts = function internalClearTimeouts() {\n      this.timeoutIds.forEach(function (id) {\n        clearTimeout(id);\n      });\n      this.timeoutIds = [];\n    }\n    /**\n     * Gets the state based on internal state or props\n     * If a state value is passed via props, then that\n     * is the value given, otherwise it's retrieved from\n     * stateToMerge\n     *\n     * @param {Object} stateToMerge defaults to this.state\n     * @return {Object} the state\n     */\n    ;\n\n    _proto.getState = function getState$1(stateToMerge) {\n      if (stateToMerge === void 0) {\n        stateToMerge = this.state;\n      }\n\n      return getState(stateToMerge, this.props);\n    };\n\n    _proto.getItemCount = function getItemCount() {\n      // things read better this way. They're in priority order:\n      // 1. `this.itemCount`\n      // 2. `this.props.itemCount`\n      // 3. `this.items.length`\n      var itemCount = this.items.length;\n\n      if (this.itemCount != null) {\n        itemCount = this.itemCount;\n      } else if (this.props.itemCount !== undefined) {\n        itemCount = this.props.itemCount;\n      }\n\n      return itemCount;\n    };\n\n    _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n      return this.props.environment.document.getElementById(this.getItemId(index));\n    };\n\n    _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n      /* istanbul ignore else (react-native) */\n      {\n        var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n        this.props.scrollIntoView(node, this._menuNode);\n      }\n    };\n\n    _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n      var _this6 = this;\n\n      var itemCount = this.getItemCount();\n\n      var _this$getState8 = this.getState(),\n          highlightedIndex = _this$getState8.highlightedIndex;\n\n      if (itemCount > 0) {\n        var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n          return _this6.getItemNodeFromIndex(index);\n        });\n        this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n      }\n    };\n\n    _proto.getStateAndHelpers = function getStateAndHelpers() {\n      var _this$getState9 = this.getState(),\n          highlightedIndex = _this$getState9.highlightedIndex,\n          inputValue = _this$getState9.inputValue,\n          selectedItem = _this$getState9.selectedItem,\n          isOpen = _this$getState9.isOpen;\n\n      var itemToString = this.props.itemToString;\n      var id = this.id;\n      var getRootProps = this.getRootProps,\n          getToggleButtonProps = this.getToggleButtonProps,\n          getLabelProps = this.getLabelProps,\n          getMenuProps = this.getMenuProps,\n          getInputProps = this.getInputProps,\n          getItemProps = this.getItemProps,\n          openMenu = this.openMenu,\n          closeMenu = this.closeMenu,\n          toggleMenu = this.toggleMenu,\n          selectItem = this.selectItem,\n          selectItemAtIndex = this.selectItemAtIndex,\n          selectHighlightedItem = this.selectHighlightedItem,\n          setHighlightedIndex = this.setHighlightedIndex,\n          clearSelection = this.clearSelection,\n          clearItems = this.clearItems,\n          reset = this.reset,\n          setItemCount = this.setItemCount,\n          unsetItemCount = this.unsetItemCount,\n          setState = this.internalSetState;\n      return {\n        // prop getters\n        getRootProps: getRootProps,\n        getToggleButtonProps: getToggleButtonProps,\n        getLabelProps: getLabelProps,\n        getMenuProps: getMenuProps,\n        getInputProps: getInputProps,\n        getItemProps: getItemProps,\n        // actions\n        reset: reset,\n        openMenu: openMenu,\n        closeMenu: closeMenu,\n        toggleMenu: toggleMenu,\n        selectItem: selectItem,\n        selectItemAtIndex: selectItemAtIndex,\n        selectHighlightedItem: selectHighlightedItem,\n        setHighlightedIndex: setHighlightedIndex,\n        clearSelection: clearSelection,\n        clearItems: clearItems,\n        setItemCount: setItemCount,\n        unsetItemCount: unsetItemCount,\n        setState: setState,\n        // props\n        itemToString: itemToString,\n        // derived\n        id: id,\n        // state\n        highlightedIndex: highlightedIndex,\n        inputValue: inputValue,\n        isOpen: isOpen,\n        selectedItem: selectedItem\n      };\n    } //////////////////////////// ROOT\n    ;\n\n    _proto.componentDidMount = function componentDidMount() {\n      var _this7 = this;\n\n      /* istanbul ignore if (react-native) */\n      if (false) {}\n      /* istanbul ignore if (react-native) */\n\n\n      {\n        // this.isMouseDown helps us track whether the mouse is currently held down.\n        // This is useful when the user clicks on an item in the list, but holds the mouse\n        // down long enough for the list to disappear (because the blur event fires on the input)\n        // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n        // trigger hiding the menu.\n        var onMouseDown = function () {\n          _this7.isMouseDown = true;\n        };\n\n        var onMouseUp = function (event) {\n          _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n          // then we don't want to reset downshift\n\n          var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document);\n\n          if (!contextWithinDownshift && _this7.getState().isOpen) {\n            _this7.reset({\n              type: mouseUp\n            }, function () {\n              return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n            });\n          }\n        }; // Touching an element in iOS gives focus and hover states, but touching out of\n        // the element will remove hover, and persist the focus state, resulting in the\n        // blur event not being triggered.\n        // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n        // If the user taps outside of Downshift, the component should be reset,\n        // but not if the user is swiping\n\n\n        var onTouchStart = function () {\n          _this7.isTouchMove = false;\n        };\n\n        var onTouchMove = function () {\n          _this7.isTouchMove = true;\n        };\n\n        var onTouchEnd = function (event) {\n          var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment.document, false);\n\n          if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n            _this7.reset({\n              type: touchEnd\n            }, function () {\n              return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n            });\n          }\n        };\n\n        var environment = this.props.environment;\n        environment.addEventListener('mousedown', onMouseDown);\n        environment.addEventListener('mouseup', onMouseUp);\n        environment.addEventListener('touchstart', onTouchStart);\n        environment.addEventListener('touchmove', onTouchMove);\n        environment.addEventListener('touchend', onTouchEnd);\n\n        this.cleanup = function () {\n          _this7.internalClearTimeouts();\n\n          _this7.updateStatus.cancel();\n\n          environment.removeEventListener('mousedown', onMouseDown);\n          environment.removeEventListener('mouseup', onMouseUp);\n          environment.removeEventListener('touchstart', onTouchStart);\n          environment.removeEventListener('touchmove', onTouchMove);\n          environment.removeEventListener('touchend', onTouchEnd);\n        };\n      }\n    };\n\n    _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n      var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n          currentHighlightedIndex = _ref10.highlightedIndex;\n\n      var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n          prevHighlightedIndex = _ref11.highlightedIndex;\n\n      var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n      return scrollWhenOpen || currentHighlightedIndex !== prevHighlightedIndex;\n    };\n\n    _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n      if (false) {}\n\n      if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n        this.internalSetState({\n          type: controlledPropUpdatedSelectedItem,\n          inputValue: this.props.itemToString(this.props.selectedItem)\n        });\n      }\n\n      if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n        this.scrollHighlightedItemIntoView();\n      }\n      /* istanbul ignore else (react-native) */\n\n\n      this.updateStatus();\n    };\n\n    _proto.componentWillUnmount = function componentWillUnmount() {\n      this.cleanup(); // avoids memory leak\n    };\n\n    _proto.render = function render() {\n      var children = unwrapArray(this.props.children, downshift_esm_noop); // because the items are rerendered every time we call the children\n      // we clear this out each render and it will be populated again as\n      // getItemProps is called.\n\n      this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n      // this render. If they do then we don't need to do anything,\n      // if they don't then we need to clone the element they return and\n      // apply the props for them.\n\n      this.getRootProps.called = false;\n      this.getRootProps.refKey = undefined;\n      this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n      this.getMenuProps.called = false;\n      this.getMenuProps.refKey = undefined;\n      this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n      this.getLabelProps.called = false; // and something similar for getInputProps\n\n      this.getInputProps.called = false;\n      var element = unwrapArray(children(this.getStateAndHelpers()));\n\n      if (!element) {\n        return null;\n      }\n\n      if (this.getRootProps.called || this.props.suppressRefError) {\n        if (false) {}\n\n        return element;\n      } else if (isDOMElement(element)) {\n        // they didn't apply the root props, but we can clone\n        // this and apply the props ourselves\n        return Object(external_this_React_[\"cloneElement\"])(element, this.getRootProps(getElementProps(element)));\n      }\n      /* istanbul ignore else */\n\n\n      if (false) {}\n      /* istanbul ignore next */\n\n\n      return undefined;\n    };\n\n    return Downshift;\n  }(external_this_React_[\"Component\"]);\n\n  Downshift.defaultProps = {\n    defaultHighlightedIndex: null,\n    defaultIsOpen: false,\n    getA11yStatusMessage: downshift_esm_getA11yStatusMessage,\n    itemToString: function itemToString(i) {\n      if (i == null) {\n        return '';\n      }\n\n      if (false) {}\n\n      return String(i);\n    },\n    onStateChange: downshift_esm_noop,\n    onInputValueChange: downshift_esm_noop,\n    onUserAction: downshift_esm_noop,\n    onChange: downshift_esm_noop,\n    onSelect: downshift_esm_noop,\n    onOuterClick: downshift_esm_noop,\n    selectedItemChanged: function selectedItemChanged(prevItem, item) {\n      return prevItem !== item;\n    },\n    environment: typeof window === 'undefined'\n    /* istanbul ignore next (ssr) */\n    ? {} : window,\n    stateReducer: function stateReducer(state, stateToSet) {\n      return stateToSet;\n    },\n    suppressRefError: false,\n    scrollIntoView: downshift_esm_scrollIntoView\n  };\n  Downshift.stateChangeTypes = stateChangeTypes;\n  return Downshift;\n}();\n\n false ? undefined : void 0;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n  var refKey = _ref12.refKey;\n\n  if (!node) {\n    // eslint-disable-next-line no-console\n    console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n  }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n  var refKey = _ref13.refKey;\n  var refKeySpecified = refKey !== 'ref';\n  var isComposite = !isDOMElement(element);\n\n  if (isComposite && !refKeySpecified && !Object(react_is[\"isForwardRef\"])(element)) {\n    // eslint-disable-next-line no-console\n    console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n  } else if (!isComposite && refKeySpecified) {\n    // eslint-disable-next-line no-console\n    console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n  }\n\n  if (!Object(react_is[\"isForwardRef\"])(element) && !getElementProps(element)[refKey]) {\n    // eslint-disable-next-line no-console\n    console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n  }\n}\n\nvar dropdownDefaultStateValues = {\n  highlightedIndex: -1,\n  isOpen: false,\n  selectedItem: null,\n  inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n  var props = action.props,\n      type = action.type;\n  var changes = {};\n  Object.keys(state).forEach(function (key) {\n    invokeOnChangeHandler(key, props, state, newState);\n\n    if (newState[key] !== state[key]) {\n      changes[key] = newState[key];\n    }\n  });\n\n  if (props.onStateChange && Object.keys(changes).length) {\n    props.onStateChange(Object(esm_extends[\"a\" /* default */])({\n      type: type\n    }, changes));\n  }\n}\n\nfunction invokeOnChangeHandler(key, props, state, newState) {\n  var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n  if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n    props[handler](newState);\n  }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction downshift_esm_stateReducer(s, a) {\n  return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction downshift_esm_getA11ySelectionMessage(selectionParameters) {\n  var selectedItem = selectionParameters.selectedItem,\n      itemToStringLocal = selectionParameters.itemToString;\n  return selectedItem ? itemToStringLocal(selectedItem) + \" has been selected.\" : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (getA11yMessage, document) {\n  setStatus(getA11yMessage(), document);\n}, 200);\nfunction getElementIds(_ref) {\n  var id = _ref.id,\n      labelId = _ref.labelId,\n      menuId = _ref.menuId,\n      getItemId = _ref.getItemId,\n      toggleButtonId = _ref.toggleButtonId;\n  var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n  return {\n    labelId: labelId || uniqueId + \"-label\",\n    menuId: menuId || uniqueId + \"-menu\",\n    getItemId: getItemId || function (index) {\n      return uniqueId + \"-item-\" + index;\n    },\n    toggleButtonId: toggleButtonId || uniqueId + \"-toggle-button\"\n  };\n}\nfunction getItemIndex(index, item, items) {\n  if (index !== undefined) {\n    return index;\n  }\n\n  if (items.length === 0) {\n    return -1;\n  }\n\n  return items.indexOf(item);\n}\n\nfunction downshift_esm_itemToString(item) {\n  return item ? String(item) : '';\n}\n\nfunction getPropTypesValidator(caller, propTypes) {\n  // istanbul ignore next\n  return function (options) {\n    if (options === void 0) {\n      options = {};\n    }\n\n    Object.keys(propTypes).forEach(function (key) {\n      prop_types_default.a.checkPropTypes(propTypes, options, key, caller.name);\n    });\n  };\n}\nfunction isAcceptedCharacterKey(key) {\n  return /^\\S{1}$/.test(key);\n}\nfunction capitalizeString(string) {\n  return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\nfunction useLatestRef(val) {\n  var ref = Object(external_this_React_[\"useRef\"])(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n  // the value during render (so it's not idempotent). However, the places this\n  // hook is used is to support memoizing callbacks which will be called\n  // *during* render, so we need the latest values *during* render.\n  // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n  ref.current = val;\n  return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n  var prevStateRef = Object(external_this_React_[\"useRef\"])();\n  var actionRef = Object(external_this_React_[\"useRef\"])();\n  var enhancedReducer = Object(external_this_React_[\"useCallback\"])(function (state, action) {\n    actionRef.current = action;\n    state = getState(state, action.props);\n    var changes = reducer(state, action);\n    var newState = action.props.stateReducer(state, Object(esm_extends[\"a\" /* default */])({}, action, {\n      changes: changes\n    }));\n    return newState;\n  }, [reducer]);\n\n  var _useReducer = Object(external_this_React_[\"useReducer\"])(enhancedReducer, initialState),\n      state = _useReducer[0],\n      dispatch = _useReducer[1];\n\n  var propsRef = useLatestRef(props);\n  var dispatchWithProps = Object(external_this_React_[\"useCallback\"])(function (action) {\n    return dispatch(Object(esm_extends[\"a\" /* default */])({\n      props: propsRef.current\n    }, action));\n  }, [propsRef]);\n  var action = actionRef.current;\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (action && prevStateRef.current && prevStateRef.current !== state) {\n      callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n    }\n\n    prevStateRef.current = state;\n  }, [state, props, action]);\n  return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n  var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n      state = _useEnhancedReducer[0],\n      dispatch = _useEnhancedReducer[1];\n\n  return [getState(state, props), dispatch];\n}\nvar downshift_esm_defaultProps = {\n  itemToString: downshift_esm_itemToString,\n  stateReducer: downshift_esm_stateReducer,\n  getA11ySelectionMessage: downshift_esm_getA11ySelectionMessage,\n  scrollIntoView: downshift_esm_scrollIntoView,\n  circularNavigation: false,\n  environment: typeof window === 'undefined'\n  /* istanbul ignore next (ssr) */\n  ? {} : window\n};\nfunction getDefaultValue(props, propKey, defaultStateValues) {\n  if (defaultStateValues === void 0) {\n    defaultStateValues = dropdownDefaultStateValues;\n  }\n\n  var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n  if (defaultPropKey in props) {\n    return props[defaultPropKey];\n  }\n\n  return defaultStateValues[propKey];\n}\nfunction getInitialValue(props, propKey, defaultStateValues) {\n  if (defaultStateValues === void 0) {\n    defaultStateValues = dropdownDefaultStateValues;\n  }\n\n  if (propKey in props) {\n    return props[propKey];\n  }\n\n  var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n  if (initialPropKey in props) {\n    return props[initialPropKey];\n  }\n\n  return getDefaultValue(props, propKey, defaultStateValues);\n}\nfunction downshift_esm_getInitialState(props) {\n  var selectedItem = getInitialValue(props, 'selectedItem');\n  var isOpen = getInitialValue(props, 'isOpen');\n  var highlightedIndex = getInitialValue(props, 'highlightedIndex');\n  var inputValue = getInitialValue(props, 'inputValue');\n  return {\n    highlightedIndex: highlightedIndex < 0 && selectedItem ? props.items.indexOf(selectedItem) : highlightedIndex,\n    isOpen: isOpen,\n    selectedItem: selectedItem,\n    inputValue: inputValue\n  };\n}\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n  var items = props.items,\n      initialHighlightedIndex = props.initialHighlightedIndex,\n      defaultHighlightedIndex = props.defaultHighlightedIndex;\n  var selectedItem = state.selectedItem,\n      highlightedIndex = state.highlightedIndex;\n\n  if (items.length === 0) {\n    return -1;\n  } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n  if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n    return initialHighlightedIndex;\n  }\n\n  if (defaultHighlightedIndex !== undefined) {\n    return defaultHighlightedIndex;\n  }\n\n  if (selectedItem) {\n    if (offset === 0) {\n      return items.indexOf(selectedItem);\n    }\n\n    return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n  }\n\n  if (offset === 0) {\n    return -1;\n  }\n\n  return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array<Object>} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n  var mouseAndTouchTrackersRef = Object(external_this_React_[\"useRef\"])({\n    isMouseDown: false,\n    isTouchMove: false\n  });\n  Object(external_this_React_[\"useEffect\"])(function () {\n    // The same strategy for checking if a click occurred inside or outside downsift\n    // as in downshift.js.\n    var onMouseDown = function () {\n      mouseAndTouchTrackersRef.current.isMouseDown = true;\n    };\n\n    var onMouseUp = function (event) {\n      mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n      if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n        return ref.current;\n      }), environment.document)) {\n        handleBlur();\n      }\n    };\n\n    var onTouchStart = function () {\n      mouseAndTouchTrackersRef.current.isTouchMove = false;\n    };\n\n    var onTouchMove = function () {\n      mouseAndTouchTrackersRef.current.isTouchMove = true;\n    };\n\n    var onTouchEnd = function (event) {\n      if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n        return ref.current;\n      }), environment.document, false)) {\n        handleBlur();\n      }\n    };\n\n    environment.addEventListener('mousedown', onMouseDown);\n    environment.addEventListener('mouseup', onMouseUp);\n    environment.addEventListener('touchstart', onTouchStart);\n    environment.addEventListener('touchmove', onTouchMove);\n    environment.addEventListener('touchend', onTouchEnd);\n    return function () {\n      environment.removeEventListener('mousedown', onMouseDown);\n      environment.removeEventListener('mouseup', onMouseUp);\n      environment.removeEventListener('touchstart', onTouchStart);\n      environment.removeEventListener('touchmove', onTouchMove);\n      environment.removeEventListener('touchend', onTouchEnd);\n    }; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isOpen, environment]);\n  return mouseAndTouchTrackersRef;\n}\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param  {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\nfunction useGetterPropsCalledChecker() {\n  var isNotProduction = \"production\" !== 'production';\n  var isInitialMountRef = Object(external_this_React_[\"useRef\"])(true);\n\n  for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n    propKeys[_key] = arguments[_key];\n  }\n\n  var getterPropsCalledRef = Object(external_this_React_[\"useRef\"])(propKeys.reduce(function (acc, propKey) {\n    acc[propKey] = {};\n    return acc;\n  }, {}));\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (!isNotProduction) {\n      return;\n    }\n\n    Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n      var propCallInfo = getterPropsCalledRef.current[propKey];\n\n      if (isInitialMountRef.current) {\n        if (!Object.keys(propCallInfo).length) {\n          // eslint-disable-next-line no-console\n          console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n          return;\n        }\n      }\n\n      var suppressRefError = propCallInfo.suppressRefError,\n          refKey = propCallInfo.refKey,\n          elementRef = propCallInfo.elementRef;\n\n      if ((!elementRef || !elementRef.current) && !suppressRefError) {\n        // eslint-disable-next-line no-console\n        console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n      }\n    });\n    isInitialMountRef.current = false;\n  });\n  var setGetterPropCallInfo = Object(external_this_React_[\"useCallback\"])(function (propKey, suppressRefError, refKey, elementRef) {\n    if (false) {}\n  }, []);\n  return setGetterPropCallInfo;\n}\n\nfunction getItemIndexByCharacterKey(keysSoFar, highlightedIndex, items, itemToStringParam, getItemNodeFromIndex) {\n  var lowerCasedItemStrings = items.map(function (item) {\n    return itemToStringParam(item).toLowerCase();\n  });\n  var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n\n  var isValid = function (itemString, index) {\n    var element = getItemNodeFromIndex(index);\n    return itemString.startsWith(lowerCasedKeysSoFar) && !(element && element.hasAttribute('disabled'));\n  };\n\n  for (var index = highlightedIndex + 1; index < lowerCasedItemStrings.length; index++) {\n    var itemString = lowerCasedItemStrings[index];\n\n    if (isValid(itemString, index)) {\n      return index;\n    }\n  }\n\n  for (var _index = 0; _index < highlightedIndex; _index++) {\n    var _itemString = lowerCasedItemStrings[_index];\n\n    if (isValid(_itemString, _index)) {\n      return _index;\n    }\n  }\n\n  return highlightedIndex;\n}\n\nvar downshift_esm_propTypes = {\n  items: prop_types_default.a.array.isRequired,\n  itemToString: prop_types_default.a.func,\n  getA11yStatusMessage: prop_types_default.a.func,\n  getA11ySelectionMessage: prop_types_default.a.func,\n  circularNavigation: prop_types_default.a.bool,\n  highlightedIndex: prop_types_default.a.number,\n  defaultHighlightedIndex: prop_types_default.a.number,\n  initialHighlightedIndex: prop_types_default.a.number,\n  isOpen: prop_types_default.a.bool,\n  defaultIsOpen: prop_types_default.a.bool,\n  initialIsOpen: prop_types_default.a.bool,\n  selectedItem: prop_types_default.a.any,\n  initialSelectedItem: prop_types_default.a.any,\n  defaultSelectedItem: prop_types_default.a.any,\n  id: prop_types_default.a.string,\n  labelId: prop_types_default.a.string,\n  menuId: prop_types_default.a.string,\n  getItemId: prop_types_default.a.func,\n  toggleButtonId: prop_types_default.a.string,\n  stateReducer: prop_types_default.a.func,\n  onSelectedItemChange: prop_types_default.a.func,\n  onHighlightedIndexChange: prop_types_default.a.func,\n  onStateChange: prop_types_default.a.func,\n  onIsOpenChange: prop_types_default.a.func,\n  environment: prop_types_default.a.shape({\n    addEventListener: prop_types_default.a.func,\n    removeEventListener: prop_types_default.a.func,\n    document: prop_types_default.a.shape({\n      getElementById: prop_types_default.a.func,\n      activeElement: prop_types_default.a.any,\n      body: prop_types_default.a.any\n    })\n  })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\nfunction getA11yStatusMessage$1(_ref) {\n  var isOpen = _ref.isOpen,\n      resultCount = _ref.resultCount,\n      previousResultCount = _ref.previousResultCount;\n\n  if (!isOpen) {\n    return '';\n  }\n\n  if (!resultCount) {\n    return 'No results are available.';\n  }\n\n  if (resultCount !== previousResultCount) {\n    return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n  }\n\n  return '';\n}\n\nvar defaultProps$1 = Object(esm_extends[\"a\" /* default */])({}, downshift_esm_defaultProps, {\n  getA11yStatusMessage: getA11yStatusMessage$1\n});\n\nvar MenuKeyDownArrowDown =  false ? undefined : 0;\nvar MenuKeyDownArrowUp =  false ? undefined : 1;\nvar MenuKeyDownEscape =  false ? undefined : 2;\nvar MenuKeyDownHome =  false ? undefined : 3;\nvar MenuKeyDownEnd =  false ? undefined : 4;\nvar MenuKeyDownEnter =  false ? undefined : 5;\nvar MenuKeyDownSpaceButton =  false ? undefined : 6;\nvar MenuKeyDownCharacter =  false ? undefined : 7;\nvar MenuBlur =  false ? undefined : 8;\nvar MenuMouseLeave =  false ? undefined : 9;\nvar ItemMouseMove =  false ? undefined : 10;\nvar ItemClick =  false ? undefined : 11;\nvar ToggleButtonClick =  false ? undefined : 12;\nvar ToggleButtonKeyDownArrowDown =  false ? undefined : 13;\nvar ToggleButtonKeyDownArrowUp =  false ? undefined : 14;\nvar ToggleButtonKeyDownCharacter =  false ? undefined : 15;\nvar FunctionToggleMenu =  false ? undefined : 16;\nvar FunctionOpenMenu =  false ? undefined : 17;\nvar FunctionCloseMenu =  false ? undefined : 18;\nvar FunctionSetHighlightedIndex =  false ? undefined : 19;\nvar FunctionSelectItem =  false ? undefined : 20;\nvar FunctionSetInputValue =  false ? undefined : 21;\nvar FunctionReset =  false ? undefined : 22;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n  MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n  MenuKeyDownEscape: MenuKeyDownEscape,\n  MenuKeyDownHome: MenuKeyDownHome,\n  MenuKeyDownEnd: MenuKeyDownEnd,\n  MenuKeyDownEnter: MenuKeyDownEnter,\n  MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n  MenuKeyDownCharacter: MenuKeyDownCharacter,\n  MenuBlur: MenuBlur,\n  MenuMouseLeave: MenuMouseLeave,\n  ItemMouseMove: ItemMouseMove,\n  ItemClick: ItemClick,\n  ToggleButtonClick: ToggleButtonClick,\n  ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n  ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n  ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n  FunctionToggleMenu: FunctionToggleMenu,\n  FunctionOpenMenu: FunctionOpenMenu,\n  FunctionCloseMenu: FunctionCloseMenu,\n  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n  FunctionSelectItem: FunctionSelectItem,\n  FunctionSetInputValue: FunctionSetInputValue,\n  FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n  var type = action.type,\n      props = action.props,\n      shiftKey = action.shiftKey;\n  var changes;\n\n  switch (type) {\n    case ItemMouseMove:\n      changes = {\n        highlightedIndex: action.index\n      };\n      break;\n\n    case ItemClick:\n      changes = {\n        isOpen: getDefaultValue(props, 'isOpen'),\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        selectedItem: props.items[action.index]\n      };\n      break;\n\n    case ToggleButtonKeyDownCharacter:\n      {\n        var lowercasedKey = action.key;\n        var inputValue = \"\" + state.inputValue + lowercasedKey;\n        var itemIndex = getItemIndexByCharacterKey(inputValue, state.selectedItem ? props.items.indexOf(state.selectedItem) : -1, props.items, props.itemToString, action.getItemNodeFromIndex);\n        changes = Object(esm_extends[\"a\" /* default */])({\n          inputValue: inputValue\n        }, itemIndex >= 0 && {\n          selectedItem: props.items[itemIndex]\n        });\n      }\n      break;\n\n    case ToggleButtonKeyDownArrowDown:\n      changes = {\n        highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n        isOpen: true\n      };\n      break;\n\n    case ToggleButtonKeyDownArrowUp:\n      changes = {\n        highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n        isOpen: true\n      };\n      break;\n\n    case MenuKeyDownEnter:\n    case MenuKeyDownSpaceButton:\n      changes = Object(esm_extends[\"a\" /* default */])({\n        isOpen: getDefaultValue(props, 'isOpen'),\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex')\n      }, state.highlightedIndex >= 0 && {\n        selectedItem: props.items[state.highlightedIndex]\n      });\n      break;\n\n    case MenuKeyDownHome:\n      changes = {\n        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n      };\n      break;\n\n    case MenuKeyDownEnd:\n      changes = {\n        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n      };\n      break;\n\n    case MenuKeyDownEscape:\n      changes = {\n        isOpen: false,\n        highlightedIndex: -1\n      };\n      break;\n\n    case MenuBlur:\n      changes = {\n        isOpen: false,\n        highlightedIndex: -1\n      };\n      break;\n\n    case MenuKeyDownCharacter:\n      {\n        var _lowercasedKey = action.key;\n\n        var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n        var highlightedIndex = getItemIndexByCharacterKey(_inputValue, state.highlightedIndex, props.items, props.itemToString, action.getItemNodeFromIndex);\n        changes = Object(esm_extends[\"a\" /* default */])({\n          inputValue: _inputValue\n        }, highlightedIndex >= 0 && {\n          highlightedIndex: highlightedIndex\n        });\n      }\n      break;\n\n    case MenuKeyDownArrowDown:\n      changes = {\n        highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n      };\n      break;\n\n    case MenuKeyDownArrowUp:\n      changes = {\n        highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n      };\n      break;\n\n    case MenuMouseLeave:\n      changes = {\n        highlightedIndex: -1\n      };\n      break;\n\n    case ToggleButtonClick:\n    case FunctionToggleMenu:\n      changes = {\n        isOpen: !state.isOpen,\n        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n      };\n      break;\n\n    case FunctionOpenMenu:\n      changes = {\n        isOpen: true,\n        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n      };\n      break;\n\n    case FunctionCloseMenu:\n      changes = {\n        isOpen: false\n      };\n      break;\n\n    case FunctionSetHighlightedIndex:\n      changes = {\n        highlightedIndex: action.highlightedIndex\n      };\n      break;\n\n    case FunctionSelectItem:\n      changes = {\n        selectedItem: action.selectedItem\n      };\n      break;\n\n    case FunctionSetInputValue:\n      changes = {\n        inputValue: action.inputValue\n      };\n      break;\n\n    case FunctionReset:\n      changes = {\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        isOpen: getDefaultValue(props, 'isOpen'),\n        selectedItem: getDefaultValue(props, 'selectedItem'),\n        inputValue: getDefaultValue(props, 'inputValue')\n      };\n      break;\n\n    default:\n      throw new Error('Reducer called without proper action type.');\n  }\n\n  return Object(esm_extends[\"a\" /* default */])({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes =  true ?\n/* istanbul ignore next */\nnull : undefined;\nuseSelect.stateChangeTypes = stateChangeTypes$1;\n\nfunction useSelect(userProps) {\n  if (userProps === void 0) {\n    userProps = {};\n  }\n\n  /* istanbul ignore else */\n  if (false) {} // Props defaults and destructuring.\n\n\n  var props = Object(esm_extends[\"a\" /* default */])({}, defaultProps$1, userProps);\n\n  var items = props.items,\n      scrollIntoView = props.scrollIntoView,\n      environment = props.environment,\n      initialIsOpen = props.initialIsOpen,\n      defaultIsOpen = props.defaultIsOpen,\n      itemToString = props.itemToString,\n      getA11ySelectionMessage = props.getA11ySelectionMessage,\n      getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n  var initialState = downshift_esm_getInitialState(props);\n\n  var _useControlledReducer = useControlledReducer(downshiftSelectReducer, initialState, props),\n      state = _useControlledReducer[0],\n      dispatch = _useControlledReducer[1];\n\n  var isOpen = state.isOpen,\n      highlightedIndex = state.highlightedIndex,\n      selectedItem = state.selectedItem,\n      inputValue = state.inputValue; // Element efs.\n\n  var toggleButtonRef = Object(external_this_React_[\"useRef\"])(null);\n  var menuRef = Object(external_this_React_[\"useRef\"])(null);\n  var itemRefs = Object(external_this_React_[\"useRef\"])();\n  itemRefs.current = {}; // used not to scroll when highlight by mouse.\n\n  var shouldScrollRef = Object(external_this_React_[\"useRef\"])(true); // used not to trigger menu blur action in some scenarios.\n\n  var shouldBlurRef = Object(external_this_React_[\"useRef\"])(true); // used to keep the inputValue clearTimeout object between renders.\n\n  var clearTimeoutRef = Object(external_this_React_[\"useRef\"])(null); // prevent id re-generation between renders.\n\n  var elementIdsRef = Object(external_this_React_[\"useRef\"])(getElementIds(props)); // used to keep track of how many items we had on previous cycle.\n\n  var previousResultCountRef = Object(external_this_React_[\"useRef\"])();\n  var isInitialMountRef = Object(external_this_React_[\"useRef\"])(true); // used for checking when props are moving from controlled to uncontrolled.\n\n  var prevPropsRef = Object(external_this_React_[\"useRef\"])(props); // utility callback to get item element.\n\n  var latest = useLatestRef({\n    state: state,\n    props: props\n  }); // Some utils.\n\n  var getItemNodeFromIndex = function (index) {\n    return itemRefs.current[elementIdsRef.current.getItemId(index)];\n  }; // Effects.\n  // Sets a11y status message on changes in state.\n\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    var previousResultCount = previousResultCountRef.current;\n    updateA11yStatus(function () {\n      return getA11yStatusMessage({\n        isOpen: isOpen,\n        highlightedIndex: highlightedIndex,\n        selectedItem: selectedItem,\n        inputValue: inputValue,\n        highlightedItem: items[highlightedIndex],\n        resultCount: items.length,\n        itemToString: itemToString,\n        previousResultCount: previousResultCount\n      });\n    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isOpen, highlightedIndex, inputValue, items]); // Sets a11y status message on changes in selectedItem.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    var previousResultCount = previousResultCountRef.current;\n    updateA11yStatus(function () {\n      return getA11ySelectionMessage({\n        isOpen: isOpen,\n        highlightedIndex: highlightedIndex,\n        selectedItem: selectedItem,\n        inputValue: inputValue,\n        highlightedItem: items[highlightedIndex],\n        resultCount: items.length,\n        itemToString: itemToString,\n        previousResultCount: previousResultCount\n      });\n    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [selectedItem]); // Sets cleanup for the keysSoFar after 500ms.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    // init the clean function here as we need access to dispatch.\n    if (isInitialMountRef.current) {\n      clearTimeoutRef.current = debounce(function (outerDispatch) {\n        outerDispatch({\n          type: FunctionSetInputValue,\n          inputValue: ''\n        });\n      }, 500);\n    }\n\n    if (!inputValue) {\n      return;\n    }\n\n    clearTimeoutRef.current(dispatch); // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [inputValue]);\n  /* Controls the focus on the menu or the toggle button. */\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    // Don't focus menu on first render.\n    if (isInitialMountRef.current) {\n      // Unless it was initialised as open.\n      if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n        menuRef.current.focus();\n      }\n\n      return;\n    } // Focus menu on open.\n\n\n    if (isOpen) {\n      // istanbul ignore else\n      if (menuRef.current) {\n        menuRef.current.focus();\n      }\n\n      return;\n    } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n    if (environment.document.activeElement === menuRef.current) {\n      // istanbul ignore else\n      if (toggleButtonRef.current) {\n        shouldBlurRef.current = false;\n        toggleButtonRef.current.focus();\n      }\n    } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  }, [isOpen]); // Scroll on highlighted item if change comes from keyboard.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n      return;\n    }\n\n    if (shouldScrollRef.current === false) {\n      shouldScrollRef.current = true;\n    } else {\n      scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current);\n    } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  }, [highlightedIndex]);\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    previousResultCountRef.current = items.length;\n  });\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    validateControlledUnchanged(state, prevPropsRef.current, props);\n    prevPropsRef.current = props;\n  }, [state, props]); // Add mouse/touch events to document.\n\n  var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {\n    dispatch({\n      type: MenuBlur\n    });\n  });\n  var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    isInitialMountRef.current = false;\n  }, []); // Event handler functions.\n\n  var toggleButtonKeyDownHandlers = Object(external_this_React_[\"useMemo\"])(function () {\n    return {\n      ArrowDown: function ArrowDown(event) {\n        event.preventDefault();\n        dispatch({\n          type: ToggleButtonKeyDownArrowDown,\n          getItemNodeFromIndex: getItemNodeFromIndex,\n          shiftKey: event.shiftKey\n        });\n      },\n      ArrowUp: function ArrowUp(event) {\n        event.preventDefault();\n        dispatch({\n          type: ToggleButtonKeyDownArrowUp,\n          getItemNodeFromIndex: getItemNodeFromIndex,\n          shiftKey: event.shiftKey\n        });\n      }\n    };\n  }, [dispatch]);\n  var menuKeyDownHandlers = Object(external_this_React_[\"useMemo\"])(function () {\n    return {\n      ArrowDown: function ArrowDown(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownArrowDown,\n          getItemNodeFromIndex: getItemNodeFromIndex,\n          shiftKey: event.shiftKey\n        });\n      },\n      ArrowUp: function ArrowUp(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownArrowUp,\n          getItemNodeFromIndex: getItemNodeFromIndex,\n          shiftKey: event.shiftKey\n        });\n      },\n      Home: function Home(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownHome,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      End: function End(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownEnd,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      Escape: function Escape() {\n        dispatch({\n          type: MenuKeyDownEscape\n        });\n      },\n      Enter: function Enter(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownEnter\n        });\n      },\n      ' ': function _(event) {\n        event.preventDefault();\n        dispatch({\n          type: MenuKeyDownSpaceButton\n        });\n      }\n    };\n  }, [dispatch]); // Action functions.\n\n  var toggleMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionToggleMenu\n    });\n  }, [dispatch]);\n  var closeMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionCloseMenu\n    });\n  }, [dispatch]);\n  var openMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionOpenMenu\n    });\n  }, [dispatch]);\n  var setHighlightedIndex = Object(external_this_React_[\"useCallback\"])(function (newHighlightedIndex) {\n    dispatch({\n      type: FunctionSetHighlightedIndex,\n      highlightedIndex: newHighlightedIndex\n    });\n  }, [dispatch]);\n  var selectItem = Object(external_this_React_[\"useCallback\"])(function (newSelectedItem) {\n    dispatch({\n      type: FunctionSelectItem,\n      selectedItem: newSelectedItem\n    });\n  }, [dispatch]);\n  var reset = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionReset\n    });\n  }, [dispatch]);\n  var setInputValue = Object(external_this_React_[\"useCallback\"])(function (newInputValue) {\n    dispatch({\n      type: FunctionSetInputValue,\n      inputValue: newInputValue\n    });\n  }, [dispatch]); // Getter functions.\n\n  var getLabelProps = Object(external_this_React_[\"useCallback\"])(function (labelProps) {\n    return Object(esm_extends[\"a\" /* default */])({\n      id: elementIdsRef.current.labelId,\n      htmlFor: elementIdsRef.current.toggleButtonId\n    }, labelProps);\n  }, []);\n  var getMenuProps = Object(external_this_React_[\"useCallback\"])(function (_temp, _temp2) {\n    var _extends2;\n\n    var _ref = _temp === void 0 ? {} : _temp,\n        onMouseLeave = _ref.onMouseLeave,\n        _ref$refKey = _ref.refKey,\n        refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n        onKeyDown = _ref.onKeyDown,\n        onBlur = _ref.onBlur,\n        ref = _ref.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref, [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"]);\n\n    var _ref2 = _temp2 === void 0 ? {} : _temp2,\n        _ref2$suppressRefErro = _ref2.suppressRefError,\n        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n    var latestState = latest.current.state;\n    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n    return Object(esm_extends[\"a\" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n      menuRef.current = menuNode;\n    }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {\n      'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)\n    }, {\n      onMouseLeave: callAllEventHandlers(onMouseLeave, function menuHandleMouseLeave() {\n        dispatch({\n          type: MenuMouseLeave\n        });\n      }),\n      onKeyDown: callAllEventHandlers(onKeyDown, function menuHandleKeyDown(event) {\n        var key = normalizeArrowKey(event);\n\n        if (key && menuKeyDownHandlers[key]) {\n          menuKeyDownHandlers[key](event);\n        } else if (isAcceptedCharacterKey(key)) {\n          dispatch({\n            type: MenuKeyDownCharacter,\n            key: key,\n            getItemNodeFromIndex: getItemNodeFromIndex\n          });\n        }\n      }),\n      onBlur: callAllEventHandlers(onBlur, function menuHandleBlur() {\n        // if the blur was a result of selection, we don't trigger this action.\n        if (shouldBlurRef.current === false) {\n          shouldBlurRef.current = true;\n          return;\n        }\n\n        var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n        /* istanbul ignore else */\n\n        if (shouldBlur) {\n          dispatch({\n            type: MenuBlur\n          });\n        }\n      })\n    }, rest);\n  }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo]);\n  var getToggleButtonProps = Object(external_this_React_[\"useCallback\"])(function (_temp3, _temp4) {\n    var _extends3;\n\n    var _ref3 = _temp3 === void 0 ? {} : _temp3,\n        onClick = _ref3.onClick,\n        onKeyDown = _ref3.onKeyDown,\n        _ref3$refKey = _ref3.refKey,\n        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n        ref = _ref3.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref3, [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"]);\n\n    var _ref4 = _temp4 === void 0 ? {} : _temp4,\n        _ref4$suppressRefErro = _ref4.suppressRefError,\n        suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;\n\n    var toggleButtonHandleClick = function () {\n      dispatch({\n        type: ToggleButtonClick\n      });\n    };\n\n    var toggleButtonHandleKeyDown = function (event) {\n      var key = normalizeArrowKey(event);\n\n      if (key && toggleButtonKeyDownHandlers[key]) {\n        toggleButtonKeyDownHandlers[key](event);\n      } else if (isAcceptedCharacterKey(key)) {\n        dispatch({\n          type: ToggleButtonKeyDownCharacter,\n          key: key,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      }\n    };\n\n    var toggleProps = Object(esm_extends[\"a\" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n      toggleButtonRef.current = toggleButtonNode;\n    }), _extends3.id = elementIdsRef.current.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIdsRef.current.labelId + \" \" + elementIdsRef.current.toggleButtonId, _extends3), rest);\n\n    if (!rest.disabled) {\n      toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n      toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n    }\n\n    setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n    return toggleProps;\n  }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo]);\n  var getItemProps = Object(external_this_React_[\"useCallback\"])(function (_temp5) {\n    var _extends4;\n\n    var _ref5 = _temp5 === void 0 ? {} : _temp5,\n        item = _ref5.item,\n        index = _ref5.index,\n        onMouseMove = _ref5.onMouseMove,\n        onClick = _ref5.onClick,\n        _ref5$refKey = _ref5.refKey,\n        refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n        ref = _ref5.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref5, [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"refKey\", \"ref\"]);\n\n    var _latest$current = latest.current,\n        latestState = _latest$current.state,\n        latestProps = _latest$current.props;\n\n    var itemHandleMouseMove = function () {\n      if (index === latestState.highlightedIndex) {\n        return;\n      }\n\n      shouldScrollRef.current = false;\n      dispatch({\n        type: ItemMouseMove,\n        index: index\n      });\n    };\n\n    var itemHandleClick = function () {\n      dispatch({\n        type: ItemClick,\n        index: index\n      });\n    };\n\n    var itemIndex = getItemIndex(index, item, latestProps.items);\n\n    if (itemIndex < 0) {\n      throw new Error('Pass either item or item index in getItemProps!');\n    }\n\n    var itemProps = Object(esm_extends[\"a\" /* default */])((_extends4 = {\n      role: 'option',\n      'aria-selected': \"\" + (itemIndex === latestState.highlightedIndex),\n      id: elementIdsRef.current.getItemId(itemIndex)\n    }, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n      if (itemNode) {\n        itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;\n      }\n    }), _extends4), rest);\n\n    if (!rest.disabled) {\n      itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n      itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n    }\n\n    return itemProps;\n  }, [dispatch, latest]);\n  return {\n    // prop getters.\n    getToggleButtonProps: getToggleButtonProps,\n    getLabelProps: getLabelProps,\n    getMenuProps: getMenuProps,\n    getItemProps: getItemProps,\n    // actions.\n    toggleMenu: toggleMenu,\n    openMenu: openMenu,\n    closeMenu: closeMenu,\n    setHighlightedIndex: setHighlightedIndex,\n    selectItem: selectItem,\n    reset: reset,\n    setInputValue: setInputValue,\n    // state.\n    highlightedIndex: highlightedIndex,\n    isOpen: isOpen,\n    selectedItem: selectedItem,\n    inputValue: inputValue\n  };\n}\n\nvar InputKeyDownArrowDown =  false ? undefined : 0;\nvar InputKeyDownArrowUp =  false ? undefined : 1;\nvar InputKeyDownEscape =  false ? undefined : 2;\nvar InputKeyDownHome =  false ? undefined : 3;\nvar InputKeyDownEnd =  false ? undefined : 4;\nvar InputKeyDownEnter =  false ? undefined : 5;\nvar InputChange =  false ? undefined : 6;\nvar InputBlur =  false ? undefined : 7;\nvar MenuMouseLeave$1 =  false ? undefined : 8;\nvar ItemMouseMove$1 =  false ? undefined : 9;\nvar ItemClick$1 =  false ? undefined : 10;\nvar ToggleButtonClick$1 =  false ? undefined : 11;\nvar FunctionToggleMenu$1 =  false ? undefined : 12;\nvar FunctionOpenMenu$1 =  false ? undefined : 13;\nvar FunctionCloseMenu$1 =  false ? undefined : 14;\nvar FunctionSetHighlightedIndex$1 =  false ? undefined : 15;\nvar FunctionSelectItem$1 =  false ? undefined : 16;\nvar FunctionSetInputValue$1 =  false ? undefined : 17;\nvar FunctionReset$1 =  false ? undefined : 18;\nvar ControlledPropUpdatedSelectedItem =  false ? undefined : 19;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  InputKeyDownArrowDown: InputKeyDownArrowDown,\n  InputKeyDownArrowUp: InputKeyDownArrowUp,\n  InputKeyDownEscape: InputKeyDownEscape,\n  InputKeyDownHome: InputKeyDownHome,\n  InputKeyDownEnd: InputKeyDownEnd,\n  InputKeyDownEnter: InputKeyDownEnter,\n  InputChange: InputChange,\n  InputBlur: InputBlur,\n  MenuMouseLeave: MenuMouseLeave$1,\n  ItemMouseMove: ItemMouseMove$1,\n  ItemClick: ItemClick$1,\n  ToggleButtonClick: ToggleButtonClick$1,\n  FunctionToggleMenu: FunctionToggleMenu$1,\n  FunctionOpenMenu: FunctionOpenMenu$1,\n  FunctionCloseMenu: FunctionCloseMenu$1,\n  FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n  FunctionSelectItem: FunctionSelectItem$1,\n  FunctionSetInputValue: FunctionSetInputValue$1,\n  FunctionReset: FunctionReset$1,\n  ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getElementIds$1(_ref) {\n  var id = _ref.id,\n      inputId = _ref.inputId,\n      rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref, [\"id\", \"inputId\"]);\n\n  var uniqueId = id === undefined ? \"downshift-\" + generateId() : id;\n  return Object(esm_extends[\"a\" /* default */])({\n    inputId: inputId || uniqueId + \"-input\"\n  }, getElementIds(Object(esm_extends[\"a\" /* default */])({\n    id: id\n  }, rest)));\n}\nfunction getInitialState$1(props) {\n  var initialState = downshift_esm_getInitialState(props);\n  var selectedItem = initialState.selectedItem;\n  var inputValue = initialState.inputValue;\n\n  if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n    inputValue = props.itemToString(selectedItem);\n  }\n\n  return Object(esm_extends[\"a\" /* default */])({}, initialState, {\n    inputValue: inputValue\n  });\n}\nvar propTypes$1 = {\n  items: prop_types_default.a.array.isRequired,\n  itemToString: prop_types_default.a.func,\n  getA11yStatusMessage: prop_types_default.a.func,\n  getA11ySelectionMessage: prop_types_default.a.func,\n  circularNavigation: prop_types_default.a.bool,\n  highlightedIndex: prop_types_default.a.number,\n  defaultHighlightedIndex: prop_types_default.a.number,\n  initialHighlightedIndex: prop_types_default.a.number,\n  isOpen: prop_types_default.a.bool,\n  defaultIsOpen: prop_types_default.a.bool,\n  initialIsOpen: prop_types_default.a.bool,\n  selectedItem: prop_types_default.a.any,\n  initialSelectedItem: prop_types_default.a.any,\n  defaultSelectedItem: prop_types_default.a.any,\n  inputValue: prop_types_default.a.string,\n  defaultInputValue: prop_types_default.a.string,\n  initialInputValue: prop_types_default.a.string,\n  id: prop_types_default.a.string,\n  labelId: prop_types_default.a.string,\n  menuId: prop_types_default.a.string,\n  getItemId: prop_types_default.a.func,\n  inputId: prop_types_default.a.string,\n  toggleButtonId: prop_types_default.a.string,\n  stateReducer: prop_types_default.a.func,\n  onSelectedItemChange: prop_types_default.a.func,\n  onHighlightedIndexChange: prop_types_default.a.func,\n  onStateChange: prop_types_default.a.func,\n  onIsOpenChange: prop_types_default.a.func,\n  onInputValueChange: prop_types_default.a.func,\n  environment: prop_types_default.a.shape({\n    addEventListener: prop_types_default.a.func,\n    removeEventListener: prop_types_default.a.func,\n    document: prop_types_default.a.shape({\n      getElementById: prop_types_default.a.func,\n      activeElement: prop_types_default.a.any,\n      body: prop_types_default.a.any\n    })\n  })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n  var previousSelectedItemRef = Object(external_this_React_[\"useRef\"])();\n\n  var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n      state = _useEnhancedReducer[0],\n      dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isControlledProp(props, 'selectedItem')) {\n      if (previousSelectedItemRef.current !== props.selectedItem) {\n        dispatch({\n          type: ControlledPropUpdatedSelectedItem,\n          inputValue: props.itemToString(props.selectedItem)\n        });\n      }\n\n      previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n    }\n  });\n  return [getState(state, props), dispatch];\n}\nvar defaultProps$2 = Object(esm_extends[\"a\" /* default */])({}, downshift_esm_defaultProps, {\n  getA11yStatusMessage: downshift_esm_getA11yStatusMessage,\n  circularNavigation: true\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n  var type = action.type,\n      props = action.props,\n      shiftKey = action.shiftKey;\n  var changes;\n\n  switch (type) {\n    case ItemMouseMove$1:\n      changes = {\n        highlightedIndex: action.index\n      };\n      break;\n\n    case ItemClick$1:\n      changes = {\n        isOpen: getDefaultValue(props, 'isOpen'),\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        selectedItem: props.items[action.index],\n        inputValue: props.itemToString(props.items[action.index])\n      };\n      break;\n\n    case InputKeyDownArrowDown:\n      if (state.isOpen) {\n        changes = {\n          highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n        };\n      } else {\n        changes = {\n          highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n          isOpen: true\n        };\n      }\n\n      break;\n\n    case InputKeyDownArrowUp:\n      if (state.isOpen) {\n        changes = {\n          highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n        };\n      } else {\n        changes = {\n          highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n          isOpen: true\n        };\n      }\n\n      break;\n\n    case InputKeyDownEnter:\n      changes = Object(esm_extends[\"a\" /* default */])({}, state.highlightedIndex >= 0 && {\n        selectedItem: props.items[state.highlightedIndex],\n        isOpen: getDefaultValue(props, 'isOpen'),\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        inputValue: props.itemToString(props.items[state.highlightedIndex])\n      });\n      break;\n\n    case InputKeyDownEscape:\n      changes = {\n        isOpen: false,\n        selectedItem: null,\n        highlightedIndex: -1,\n        inputValue: ''\n      };\n      break;\n\n    case InputKeyDownHome:\n      changes = {\n        highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n      };\n      break;\n\n    case InputKeyDownEnd:\n      changes = {\n        highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n      };\n      break;\n\n    case InputBlur:\n      changes = Object(esm_extends[\"a\" /* default */])({\n        isOpen: false\n      }, state.highlightedIndex >= 0 && {\n        selectedItem: props.items[state.highlightedIndex],\n        inputValue: props.itemToString(props.items[state.highlightedIndex]),\n        highlightedIndex: -1\n      });\n      break;\n\n    case InputChange:\n      changes = {\n        isOpen: true,\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        inputValue: action.inputValue\n      };\n      break;\n\n    case MenuMouseLeave$1:\n      changes = {\n        highlightedIndex: -1\n      };\n      break;\n\n    case ToggleButtonClick$1:\n    case FunctionToggleMenu$1:\n      changes = {\n        isOpen: !state.isOpen,\n        highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n      };\n      break;\n\n    case FunctionOpenMenu$1:\n      changes = {\n        isOpen: true,\n        highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n      };\n      break;\n\n    case FunctionCloseMenu$1:\n      changes = {\n        isOpen: false\n      };\n      break;\n\n    case FunctionSetHighlightedIndex$1:\n      changes = {\n        highlightedIndex: action.highlightedIndex\n      };\n      break;\n\n    case FunctionSelectItem$1:\n      changes = {\n        selectedItem: action.selectedItem,\n        inputValue: props.itemToString(action.selectedItem)\n      };\n      break;\n\n    case ControlledPropUpdatedSelectedItem:\n    case FunctionSetInputValue$1:\n      changes = {\n        inputValue: action.inputValue\n      };\n      break;\n\n    case FunctionReset$1:\n      changes = {\n        highlightedIndex: getDefaultValue(props, 'highlightedIndex'),\n        isOpen: getDefaultValue(props, 'isOpen'),\n        selectedItem: getDefaultValue(props, 'selectedItem'),\n        inputValue: getDefaultValue(props, 'inputValue')\n      };\n      break;\n\n    default:\n      throw new Error('Reducer called without proper action type.');\n  }\n\n  return Object(esm_extends[\"a\" /* default */])({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar validatePropTypes$1 =  true ?\n/* istanbul ignore next */\nnull : undefined;\nuseCombobox.stateChangeTypes = stateChangeTypes$2;\n\nfunction useCombobox(userProps) {\n  if (userProps === void 0) {\n    userProps = {};\n  }\n\n  /* istanbul ignore else */\n  if (false) {} // Props defaults and destructuring.\n\n\n  var props = Object(esm_extends[\"a\" /* default */])({}, defaultProps$2, userProps);\n\n  var initialIsOpen = props.initialIsOpen,\n      defaultIsOpen = props.defaultIsOpen,\n      items = props.items,\n      scrollIntoView = props.scrollIntoView,\n      environment = props.environment,\n      getA11yStatusMessage = props.getA11yStatusMessage,\n      getA11ySelectionMessage = props.getA11ySelectionMessage,\n      itemToString = props.itemToString; // Initial state depending on controlled props.\n\n  var initialState = getInitialState$1(props);\n\n  var _useControlledReducer = useControlledReducer$1(downshiftUseComboboxReducer, initialState, props),\n      state = _useControlledReducer[0],\n      dispatch = _useControlledReducer[1];\n\n  var isOpen = state.isOpen,\n      highlightedIndex = state.highlightedIndex,\n      selectedItem = state.selectedItem,\n      inputValue = state.inputValue; // Element refs.\n\n  var menuRef = Object(external_this_React_[\"useRef\"])(null);\n  var itemRefs = Object(external_this_React_[\"useRef\"])();\n  var inputRef = Object(external_this_React_[\"useRef\"])(null);\n  var toggleButtonRef = Object(external_this_React_[\"useRef\"])(null);\n  var comboboxRef = Object(external_this_React_[\"useRef\"])(null);\n  itemRefs.current = {}; // used not to scroll on highlight by mouse.\n\n  var shouldScrollRef = Object(external_this_React_[\"useRef\"])(true);\n  var isInitialMountRef = Object(external_this_React_[\"useRef\"])(true); // prevent id re-generation between renders.\n\n  var elementIdsRef = Object(external_this_React_[\"useRef\"])(getElementIds$1(props)); // used to keep track of how many items we had on previous cycle.\n\n  var previousResultCountRef = Object(external_this_React_[\"useRef\"])(); // used for checking when props are moving from controlled to uncontrolled.\n\n  var prevPropsRef = Object(external_this_React_[\"useRef\"])(props); // utility callback to get item element.\n\n  var latest = useLatestRef({\n    state: state,\n    props: props\n  });\n\n  var getItemNodeFromIndex = function (index) {\n    return itemRefs.current[elementIdsRef.current.getItemId(index)];\n  }; // Effects.\n  // Sets a11y status message on changes in state.\n\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    var previousResultCount = previousResultCountRef.current;\n    updateA11yStatus(function () {\n      return getA11yStatusMessage({\n        isOpen: isOpen,\n        highlightedIndex: highlightedIndex,\n        selectedItem: selectedItem,\n        inputValue: inputValue,\n        highlightedItem: items[highlightedIndex],\n        resultCount: items.length,\n        itemToString: itemToString,\n        previousResultCount: previousResultCount\n      });\n    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [isOpen, highlightedIndex, inputValue, items]); // Sets a11y status message on changes in selectedItem.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    var previousResultCount = previousResultCountRef.current;\n    updateA11yStatus(function () {\n      return getA11ySelectionMessage({\n        isOpen: isOpen,\n        highlightedIndex: highlightedIndex,\n        selectedItem: selectedItem,\n        inputValue: inputValue,\n        highlightedItem: items[highlightedIndex],\n        resultCount: items.length,\n        itemToString: itemToString,\n        previousResultCount: previousResultCount\n      });\n    }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [selectedItem]); // Scroll on highlighted item if change comes from keyboard.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n      return;\n    }\n\n    if (shouldScrollRef.current === false) {\n      shouldScrollRef.current = true;\n    } else {\n      scrollIntoView(getItemNodeFromIndex(highlightedIndex), menuRef.current);\n    } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  }, [highlightedIndex]); // Controls the focus on the menu or the toggle button.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    // Don't focus menu on first render.\n    if (isInitialMountRef.current) {\n      // Unless it was initialised as open.\n      if (initialIsOpen || defaultIsOpen || isOpen) {\n        if (inputRef.current) {\n          inputRef.current.focus();\n        }\n      }\n    } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n  }, [isOpen]);\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    previousResultCountRef.current = items.length;\n  });\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    validateControlledUnchanged(state, prevPropsRef.current, props);\n    prevPropsRef.current = props;\n  }, [state, props]); // Add mouse/touch events to document.\n\n  var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {\n    dispatch({\n      type: InputBlur\n    });\n  });\n  var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    isInitialMountRef.current = false;\n  }, []);\n  /* Event handler functions */\n\n  var inputKeyDownHandlers = Object(external_this_React_[\"useMemo\"])(function () {\n    return {\n      ArrowDown: function ArrowDown(event) {\n        event.preventDefault();\n        dispatch({\n          type: InputKeyDownArrowDown,\n          shiftKey: event.shiftKey,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      ArrowUp: function ArrowUp(event) {\n        event.preventDefault();\n        dispatch({\n          type: InputKeyDownArrowUp,\n          shiftKey: event.shiftKey,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      Home: function Home(event) {\n        event.preventDefault();\n        dispatch({\n          type: InputKeyDownHome,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      End: function End(event) {\n        event.preventDefault();\n        dispatch({\n          type: InputKeyDownEnd,\n          getItemNodeFromIndex: getItemNodeFromIndex\n        });\n      },\n      Escape: function Escape() {\n        dispatch({\n          type: InputKeyDownEscape\n        });\n      },\n      Enter: function Enter(event) {\n        // if IME composing, wait for next Enter keydown event.\n        if (event.which === 229) {\n          return;\n        }\n\n        var latestState = latest.current.state;\n\n        if (latestState.isOpen && latestState.highlightedIndex > -1) {\n          event.preventDefault();\n          dispatch({\n            type: InputKeyDownEnter,\n            getItemNodeFromIndex: getItemNodeFromIndex\n          });\n        }\n      }\n    };\n  }, [dispatch, latest]); // Getter props.\n\n  var getLabelProps = Object(external_this_React_[\"useCallback\"])(function (labelProps) {\n    return Object(esm_extends[\"a\" /* default */])({\n      id: elementIdsRef.current.labelId,\n      htmlFor: elementIdsRef.current.inputId\n    }, labelProps);\n  }, []);\n  var getMenuProps = Object(external_this_React_[\"useCallback\"])(function (_temp, _temp2) {\n    var _extends2;\n\n    var _ref = _temp === void 0 ? {} : _temp,\n        onMouseLeave = _ref.onMouseLeave,\n        _ref$refKey = _ref.refKey,\n        refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n        ref = _ref.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref, [\"onMouseLeave\", \"refKey\", \"ref\"]);\n\n    var _ref2 = _temp2 === void 0 ? {} : _temp2,\n        _ref2$suppressRefErro = _ref2.suppressRefError,\n        suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n    setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n    return Object(esm_extends[\"a\" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n      menuRef.current = menuNode;\n    }), _extends2.id = elementIdsRef.current.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIdsRef.current.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n      dispatch({\n        type: MenuMouseLeave$1\n      });\n    }), _extends2), rest);\n  }, [dispatch, setGetterPropCallInfo]);\n  var getItemProps = Object(external_this_React_[\"useCallback\"])(function (_temp3) {\n    var _extends3, _ref4;\n\n    var _ref3 = _temp3 === void 0 ? {} : _temp3,\n        item = _ref3.item,\n        index = _ref3.index,\n        _ref3$refKey = _ref3.refKey,\n        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n        ref = _ref3.ref,\n        onMouseMove = _ref3.onMouseMove,\n        onClick = _ref3.onClick,\n        onPress = _ref3.onPress,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref3, [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"]);\n\n    var _latest$current = latest.current,\n        latestProps = _latest$current.props,\n        latestState = _latest$current.state;\n    var itemIndex = getItemIndex(index, item, latestProps.items);\n\n    if (itemIndex < 0) {\n      throw new Error('Pass either item or item index in getItemProps!');\n    }\n\n    var onSelectKey = 'onClick';\n    var customClickHandler = onClick;\n    return Object(esm_extends[\"a\" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n      if (itemNode) {\n        itemRefs.current[elementIdsRef.current.getItemId(itemIndex)] = itemNode;\n      }\n    }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIdsRef.current.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {\n      onMouseMove: callAllEventHandlers(onMouseMove, function itemHandleMouseMove() {\n        if (index === latestState.highlightedIndex) {\n          return;\n        }\n\n        shouldScrollRef.current = false;\n        dispatch({\n          type: ItemMouseMove$1,\n          index: index\n        });\n      })\n    }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, function itemHandleClick() {\n      dispatch({\n        type: ItemClick$1,\n        index: index\n      });\n\n      if (inputRef.current) {\n        inputRef.current.focus();\n      }\n    }), _ref4), rest);\n  }, [dispatch, latest]);\n  var getToggleButtonProps = Object(external_this_React_[\"useCallback\"])(function (_temp4) {\n    var _extends4;\n\n    var _ref5 = _temp4 === void 0 ? {} : _temp4,\n        onClick = _ref5.onClick,\n        onPress = _ref5.onPress,\n        _ref5$refKey = _ref5.refKey,\n        refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n        ref = _ref5.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref5, [\"onClick\", \"onPress\", \"refKey\", \"ref\"]);\n\n    var toggleButtonHandleClick = function () {\n      dispatch({\n        type: ToggleButtonClick$1\n      });\n\n      if (!latest.current.state.isOpen && inputRef.current) {\n        inputRef.current.focus();\n      }\n    };\n\n    return Object(esm_extends[\"a\" /* default */])((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n      toggleButtonRef.current = toggleButtonNode;\n    }), _extends4.id = elementIdsRef.current.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && Object(esm_extends[\"a\" /* default */])({}, {\n      onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n    }), rest);\n  }, [dispatch, latest]);\n  var getInputProps = Object(external_this_React_[\"useCallback\"])(function (_temp5, _temp6) {\n    var _extends5;\n\n    var _ref6 = _temp5 === void 0 ? {} : _temp5,\n        onKeyDown = _ref6.onKeyDown,\n        onChange = _ref6.onChange,\n        onInput = _ref6.onInput,\n        onBlur = _ref6.onBlur,\n        onChangeText = _ref6.onChangeText,\n        _ref6$refKey = _ref6.refKey,\n        refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n        ref = _ref6.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref6, [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"]);\n\n    var _ref7 = _temp6 === void 0 ? {} : _temp6,\n        _ref7$suppressRefErro = _ref7.suppressRefError,\n        suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n    setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n    var latestState = latest.current.state;\n\n    var inputHandleKeyDown = function (event) {\n      var key = normalizeArrowKey(event);\n\n      if (key && inputKeyDownHandlers[key]) {\n        inputKeyDownHandlers[key](event);\n      }\n    };\n\n    var inputHandleChange = function (event) {\n      dispatch({\n        type: InputChange,\n        inputValue: event.target.value\n      });\n    };\n\n    var inputHandleBlur = function () {\n      /* istanbul ignore else */\n      if (!mouseAndTouchTrackersRef.current.isMouseDown) {\n        dispatch({\n          type: InputBlur\n        });\n      }\n    };\n    /* istanbul ignore next (preact) */\n\n\n    var onChangeKey = 'onChange';\n    var eventHandlers = {};\n\n    if (!rest.disabled) {\n      var _eventHandlers;\n\n      eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n    }\n    /* istanbul ignore if (react-native) */\n\n\n    return Object(esm_extends[\"a\" /* default */])((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n      inputRef.current = inputNode;\n    }), _extends5.id = elementIdsRef.current.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIdsRef.current.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {\n      'aria-activedescendant': elementIdsRef.current.getItemId(latestState.highlightedIndex)\n    }, {\n      'aria-labelledby': elementIdsRef.current.labelId,\n      // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n      // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n      autoComplete: 'off',\n      value: latestState.inputValue\n    }, eventHandlers, rest);\n  }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo]);\n  var getComboboxProps = Object(external_this_React_[\"useCallback\"])(function (_temp7, _temp8) {\n    var _extends6;\n\n    var _ref8 = _temp7 === void 0 ? {} : _temp7,\n        _ref8$refKey = _ref8.refKey,\n        refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,\n        ref = _ref8.ref,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref8, [\"refKey\", \"ref\"]);\n\n    var _ref9 = _temp8 === void 0 ? {} : _temp8,\n        _ref9$suppressRefErro = _ref9.suppressRefError,\n        suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n    setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n    return Object(esm_extends[\"a\" /* default */])((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n      comboboxRef.current = comboboxNode;\n    }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIdsRef.current.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);\n  }, [latest, setGetterPropCallInfo]); // returns\n\n  var toggleMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionToggleMenu$1\n    });\n  }, [dispatch]);\n  var closeMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionCloseMenu$1\n    });\n  }, [dispatch]);\n  var openMenu = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionOpenMenu$1\n    });\n  }, [dispatch]);\n  var setHighlightedIndex = Object(external_this_React_[\"useCallback\"])(function (newHighlightedIndex) {\n    dispatch({\n      type: FunctionSetHighlightedIndex$1,\n      highlightedIndex: newHighlightedIndex\n    });\n  }, [dispatch]);\n  var selectItem = Object(external_this_React_[\"useCallback\"])(function (newSelectedItem) {\n    dispatch({\n      type: FunctionSelectItem$1,\n      selectedItem: newSelectedItem\n    });\n  }, [dispatch]);\n  var setInputValue = Object(external_this_React_[\"useCallback\"])(function (newInputValue) {\n    dispatch({\n      type: FunctionSetInputValue$1,\n      inputValue: newInputValue\n    });\n  }, [dispatch]);\n  var reset = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionReset$1\n    });\n  }, [dispatch]);\n  return {\n    // prop getters.\n    getItemProps: getItemProps,\n    getLabelProps: getLabelProps,\n    getMenuProps: getMenuProps,\n    getInputProps: getInputProps,\n    getComboboxProps: getComboboxProps,\n    getToggleButtonProps: getToggleButtonProps,\n    // actions.\n    toggleMenu: toggleMenu,\n    openMenu: openMenu,\n    closeMenu: closeMenu,\n    setHighlightedIndex: setHighlightedIndex,\n    setInputValue: setInputValue,\n    selectItem: selectItem,\n    reset: reset,\n    // state.\n    highlightedIndex: highlightedIndex,\n    isOpen: isOpen,\n    selectedItem: selectedItem,\n    inputValue: inputValue\n  };\n}\n\nvar defaultStateValues = {\n  activeIndex: -1,\n  selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue$1(props, propKey) {\n  return getInitialValue(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue$1(props, propKey) {\n  return getDefaultValue(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\nfunction getInitialState$2(props) {\n  var activeIndex = getInitialValue$1(props, 'activeIndex');\n  var selectedItems = getInitialValue$1(props, 'selectedItems');\n  return {\n    activeIndex: activeIndex,\n    selectedItems: selectedItems\n  };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\nfunction isKeyDownOperationPermitted(event) {\n  if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n    return false;\n  }\n\n  var element = event.target;\n\n  if (element instanceof HTMLInputElement && // if element is a text input\n  element.value !== '' && ( // and we have text in it\n  // and cursor is either not at the start or is currently highlighting text.\n  element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\nfunction downshift_esm_getA11yRemovalMessage(selectionParameters) {\n  var removedSelectedItem = selectionParameters.removedSelectedItem,\n      itemToStringLocal = selectionParameters.itemToString;\n  return itemToStringLocal(removedSelectedItem) + \" has been removed.\";\n}\n\nvar propTypes$2 = {\n  selectedItems: prop_types_default.a.array,\n  initialSelectedItems: prop_types_default.a.array,\n  defaultSelectedItems: prop_types_default.a.array,\n  itemToString: prop_types_default.a.func,\n  getA11yRemovalMessage: prop_types_default.a.func,\n  stateReducer: prop_types_default.a.func,\n  activeIndex: prop_types_default.a.number,\n  initialActiveIndex: prop_types_default.a.number,\n  defaultActiveIndex: prop_types_default.a.number,\n  onActiveIndexChange: prop_types_default.a.func,\n  onSelectedItemsChange: prop_types_default.a.func,\n  keyNavigationNext: prop_types_default.a.string,\n  keyNavigationPrevious: prop_types_default.a.string,\n  environment: prop_types_default.a.shape({\n    addEventListener: prop_types_default.a.func,\n    removeEventListener: prop_types_default.a.func,\n    document: prop_types_default.a.shape({\n      getElementById: prop_types_default.a.func,\n      activeElement: prop_types_default.a.any,\n      body: prop_types_default.a.any\n    })\n  })\n};\nvar defaultProps$3 = {\n  itemToString: downshift_esm_defaultProps.itemToString,\n  stateReducer: downshift_esm_defaultProps.stateReducer,\n  environment: downshift_esm_defaultProps.environment,\n  getA11yRemovalMessage: downshift_esm_getA11yRemovalMessage,\n  keyNavigationNext: 'ArrowRight',\n  keyNavigationPrevious: 'ArrowLeft'\n};\n\nvar SelectedItemClick =  false ? undefined : 0;\nvar SelectedItemKeyDownDelete =  false ? undefined : 1;\nvar SelectedItemKeyDownBackspace =  false ? undefined : 2;\nvar SelectedItemKeyDownNavigationNext =  false ? undefined : 3;\nvar SelectedItemKeyDownNavigationPrevious =  false ? undefined : 4;\nvar DropdownKeyDownNavigationPrevious =  false ? undefined : 5;\nvar DropdownKeyDownBackspace =  false ? undefined : 6;\nvar DropdownClick =  false ? undefined : 7;\nvar FunctionAddSelectedItem =  false ? undefined : 8;\nvar FunctionRemoveSelectedItem =  false ? undefined : 9;\nvar FunctionSetSelectedItems =  false ? undefined : 10;\nvar FunctionSetActiveIndex =  false ? undefined : 11;\nvar FunctionReset$2 =  false ? undefined : 12;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  SelectedItemClick: SelectedItemClick,\n  SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n  SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n  SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n  SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n  DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n  DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n  DropdownClick: DropdownClick,\n  FunctionAddSelectedItem: FunctionAddSelectedItem,\n  FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n  FunctionSetSelectedItems: FunctionSetSelectedItems,\n  FunctionSetActiveIndex: FunctionSetActiveIndex,\n  FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n  var type = action.type,\n      index = action.index,\n      props = action.props,\n      selectedItem = action.selectedItem;\n  var activeIndex = state.activeIndex,\n      selectedItems = state.selectedItems;\n  var changes;\n\n  switch (type) {\n    case SelectedItemClick:\n      changes = {\n        activeIndex: index\n      };\n      break;\n\n    case SelectedItemKeyDownNavigationPrevious:\n      changes = {\n        activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n      };\n      break;\n\n    case SelectedItemKeyDownNavigationNext:\n      changes = {\n        activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n      };\n      break;\n\n    case SelectedItemKeyDownBackspace:\n    case SelectedItemKeyDownDelete:\n      {\n        var newActiveIndex = activeIndex;\n\n        if (selectedItems.length === 1) {\n          newActiveIndex = -1;\n        } else if (activeIndex === selectedItems.length - 1) {\n          newActiveIndex = selectedItems.length - 2;\n        }\n\n        changes = Object(esm_extends[\"a\" /* default */])({\n          selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n        }, {\n          activeIndex: newActiveIndex\n        });\n        break;\n      }\n\n    case DropdownKeyDownNavigationPrevious:\n      changes = {\n        activeIndex: selectedItems.length - 1\n      };\n      break;\n\n    case DropdownKeyDownBackspace:\n      changes = {\n        selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n      };\n      break;\n\n    case FunctionAddSelectedItem:\n      changes = {\n        selectedItems: [].concat(selectedItems, [selectedItem])\n      };\n      break;\n\n    case DropdownClick:\n      changes = {\n        activeIndex: -1\n      };\n      break;\n\n    case FunctionRemoveSelectedItem:\n      {\n        var _newActiveIndex = activeIndex;\n        var selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n        if (selectedItems.length === 1) {\n          _newActiveIndex = -1;\n        } else if (selectedItemIndex === selectedItems.length - 1) {\n          _newActiveIndex = selectedItems.length - 2;\n        }\n\n        changes = Object(esm_extends[\"a\" /* default */])({\n          selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))\n        }, {\n          activeIndex: _newActiveIndex\n        });\n        break;\n      }\n\n    case FunctionSetSelectedItems:\n      {\n        var newSelectedItems = action.selectedItems;\n        changes = {\n          selectedItems: newSelectedItems\n        };\n        break;\n      }\n\n    case FunctionSetActiveIndex:\n      {\n        var _newActiveIndex2 = action.activeIndex;\n        changes = {\n          activeIndex: _newActiveIndex2\n        };\n        break;\n      }\n\n    case FunctionReset$2:\n      changes = {\n        activeIndex: getDefaultValue$1(props, 'activeIndex'),\n        selectedItems: getDefaultValue$1(props, 'selectedItems')\n      };\n      break;\n\n    default:\n      throw new Error('Reducer called without proper action type.');\n  }\n\n  return Object(esm_extends[\"a\" /* default */])({}, state, changes);\n}\n\nuseMultipleSelection.stateChangeTypes = stateChangeTypes$3;\n\nfunction useMultipleSelection(userProps) {\n  if (userProps === void 0) {\n    userProps = {};\n  }\n\n  // Props defaults and destructuring.\n  var props = Object(esm_extends[\"a\" /* default */])({}, defaultProps$3, userProps);\n\n  var getA11yRemovalMessage = props.getA11yRemovalMessage,\n      itemToString = props.itemToString,\n      environment = props.environment,\n      keyNavigationNext = props.keyNavigationNext,\n      keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n  var _useControlledReducer = useControlledReducer(downshiftMultipleSelectionReducer, getInitialState$2(props), props),\n      state = _useControlledReducer[0],\n      dispatch = _useControlledReducer[1];\n\n  var activeIndex = state.activeIndex,\n      selectedItems = state.selectedItems; // Refs.\n\n  var isInitialMountRef = Object(external_this_React_[\"useRef\"])(true);\n  var dropdownRef = Object(external_this_React_[\"useRef\"])(null);\n  var previousSelectedItemsRef = Object(external_this_React_[\"useRef\"])(selectedItems);\n  var selectedItemRefs = Object(external_this_React_[\"useRef\"])();\n  selectedItemRefs.current = []; // used for checking when props are moving from controlled to uncontrolled.\n\n  var prevPropsRef = Object(external_this_React_[\"useRef\"])(props);\n  var latest = useLatestRef({\n    state: state,\n    props: props\n  }); // Effects.\n\n  /* Sets a11y status message on changes in selectedItem. */\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    if (selectedItems.length < previousSelectedItemsRef.current.length) {\n      var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {\n        return selectedItems.indexOf(item) < 0;\n      });\n      setStatus(getA11yRemovalMessage({\n        itemToString: itemToString,\n        resultCount: selectedItems.length,\n        removedSelectedItem: removedSelectedItem,\n        activeIndex: activeIndex,\n        activeSelectedItem: selectedItems[activeIndex]\n      }), environment.document);\n    }\n\n    previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [selectedItems.length]); // Sets focus on active item.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    if (activeIndex === -1 && dropdownRef.current) {\n      dropdownRef.current.focus();\n    } else if (selectedItemRefs.current[activeIndex]) {\n      selectedItemRefs.current[activeIndex].focus();\n    }\n  }, [activeIndex]);\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (isInitialMountRef.current) {\n      return;\n    }\n\n    validateControlledUnchanged(state, prevPropsRef.current, props);\n    prevPropsRef.current = props;\n  }, [state, props]);\n  var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n  Object(external_this_React_[\"useEffect\"])(function () {\n    isInitialMountRef.current = false;\n  }, []); // Event handler functions.\n\n  var selectedItemKeyDownHandlers = Object(external_this_React_[\"useMemo\"])(function () {\n    var _ref;\n\n    return _ref = {}, _ref[keyNavigationPrevious] = function () {\n      dispatch({\n        type: SelectedItemKeyDownNavigationPrevious\n      });\n    }, _ref[keyNavigationNext] = function () {\n      dispatch({\n        type: SelectedItemKeyDownNavigationNext\n      });\n    }, _ref.Delete = function Delete() {\n      dispatch({\n        type: SelectedItemKeyDownDelete\n      });\n    }, _ref.Backspace = function Backspace() {\n      dispatch({\n        type: SelectedItemKeyDownBackspace\n      });\n    }, _ref;\n  }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n  var dropdownKeyDownHandlers = Object(external_this_React_[\"useMemo\"])(function () {\n    var _ref2;\n\n    return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n      if (isKeyDownOperationPermitted(event)) {\n        dispatch({\n          type: DropdownKeyDownNavigationPrevious\n        });\n      }\n    }, _ref2.Backspace = function Backspace(event) {\n      if (isKeyDownOperationPermitted(event)) {\n        dispatch({\n          type: DropdownKeyDownBackspace\n        });\n      }\n    }, _ref2;\n  }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n  var getSelectedItemProps = Object(external_this_React_[\"useCallback\"])(function (_temp) {\n    var _extends2;\n\n    var _ref3 = _temp === void 0 ? {} : _temp,\n        _ref3$refKey = _ref3.refKey,\n        refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n        ref = _ref3.ref,\n        onClick = _ref3.onClick,\n        onKeyDown = _ref3.onKeyDown,\n        selectedItem = _ref3.selectedItem,\n        index = _ref3.index,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref3, [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"]);\n\n    var latestState = latest.current.state;\n    var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n    if (itemIndex < 0) {\n      throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n    }\n\n    return Object(esm_extends[\"a\" /* default */])((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n      if (selectedItemNode) {\n        selectedItemRefs.current.push(selectedItemNode);\n      }\n    }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, function selectedItemHandleClick() {\n      dispatch({\n        type: SelectedItemClick,\n        index: index\n      });\n    }), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, function selectedItemHandleKeyDown(event) {\n      var key = normalizeArrowKey(event);\n\n      if (key && selectedItemKeyDownHandlers[key]) {\n        selectedItemKeyDownHandlers[key](event);\n      }\n    }), _extends2), rest);\n  }, [dispatch, latest, selectedItemKeyDownHandlers]);\n  var getDropdownProps = Object(external_this_React_[\"useCallback\"])(function (_temp2, _temp3) {\n    var _extends3;\n\n    var _ref4 = _temp2 === void 0 ? {} : _temp2,\n        _ref4$refKey = _ref4.refKey,\n        refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n        ref = _ref4.ref,\n        onKeyDown = _ref4.onKeyDown,\n        onClick = _ref4.onClick,\n        _ref4$preventKeyActio = _ref4.preventKeyAction,\n        preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n        rest = Object(objectWithoutPropertiesLoose[\"a\" /* default */])(_ref4, [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"]);\n\n    var _ref5 = _temp3 === void 0 ? {} : _temp3,\n        _ref5$suppressRefErro = _ref5.suppressRefError,\n        suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n    setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n    return Object(esm_extends[\"a\" /* default */])((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n      if (dropdownNode) {\n        dropdownRef.current = dropdownNode;\n      }\n    }), _extends3), !preventKeyAction && {\n      onKeyDown: callAllEventHandlers(onKeyDown, function dropdownHandleKeyDown(event) {\n        var key = normalizeArrowKey(event);\n\n        if (key && dropdownKeyDownHandlers[key]) {\n          dropdownKeyDownHandlers[key](event);\n        }\n      }),\n      onClick: callAllEventHandlers(onClick, function dropdownHandleClick() {\n        dispatch({\n          type: DropdownClick\n        });\n      })\n    }, rest);\n  }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n  var addSelectedItem = Object(external_this_React_[\"useCallback\"])(function (selectedItem) {\n    dispatch({\n      type: FunctionAddSelectedItem,\n      selectedItem: selectedItem\n    });\n  }, [dispatch]);\n  var removeSelectedItem = Object(external_this_React_[\"useCallback\"])(function (selectedItem) {\n    dispatch({\n      type: FunctionRemoveSelectedItem,\n      selectedItem: selectedItem\n    });\n  }, [dispatch]);\n  var setSelectedItems = Object(external_this_React_[\"useCallback\"])(function (newSelectedItems) {\n    dispatch({\n      type: FunctionSetSelectedItems,\n      selectedItems: newSelectedItems\n    });\n  }, [dispatch]);\n  var setActiveIndex = Object(external_this_React_[\"useCallback\"])(function (newActiveIndex) {\n    dispatch({\n      type: FunctionSetActiveIndex,\n      activeIndex: newActiveIndex\n    });\n  }, [dispatch]);\n  var reset = Object(external_this_React_[\"useCallback\"])(function () {\n    dispatch({\n      type: FunctionReset$2\n    });\n  }, [dispatch]);\n  return {\n    getSelectedItemProps: getSelectedItemProps,\n    getDropdownProps: getDropdownProps,\n    addSelectedItem: addSelectedItem,\n    removeSelectedItem: removeSelectedItem,\n    setSelectedItems: setSelectedItems,\n    setActiveIndex: setActiveIndex,\n    reset: reset,\n    selectedItems: selectedItems,\n    activeIndex: activeIndex\n  };\n}\n\n/* harmony default export */ var downshift_esm = (downshift_esm_Downshift);\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-select-control/index.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar custom_select_control_itemToString = function itemToString(item) {\n  return item && item.name;\n}; // This is needed so that in Windows, where\n// the menu does not necessarily open on\n// key up/down, you can still switch between\n// options with the menu closed.\n\n\nvar custom_select_control_stateReducer = function stateReducer(_ref, _ref2) {\n  var selectedItem = _ref.selectedItem;\n  var type = _ref2.type,\n      changes = _ref2.changes,\n      items = _ref2.props.items;\n\n  switch (type) {\n    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:\n      // If we already have a selected item, try to select the next one,\n      // without circular navigation. Otherwise, select the first item.\n      return {\n        selectedItem: items[selectedItem ? Math.min(items.indexOf(selectedItem) + 1, items.length - 1) : 0]\n      };\n\n    case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:\n      // If we already have a selected item, try to select the previous one,\n      // without circular navigation. Otherwise, select the last item.\n      return {\n        selectedItem: items[selectedItem ? Math.max(items.indexOf(selectedItem) - 1, 0) : items.length - 1]\n      };\n\n    default:\n      return changes;\n  }\n};\n\nfunction CustomSelectControl(_ref3) {\n  var className = _ref3.className,\n      hideLabelFromVision = _ref3.hideLabelFromVision,\n      label = _ref3.label,\n      items = _ref3.options,\n      onSelectedItemChange = _ref3.onChange,\n      _selectedItem = _ref3.value;\n\n  var _useSelect = useSelect({\n    initialSelectedItem: items[0],\n    items: items,\n    itemToString: custom_select_control_itemToString,\n    onSelectedItemChange: onSelectedItemChange,\n    selectedItem: _selectedItem,\n    stateReducer: custom_select_control_stateReducer\n  }),\n      getLabelProps = _useSelect.getLabelProps,\n      getToggleButtonProps = _useSelect.getToggleButtonProps,\n      getMenuProps = _useSelect.getMenuProps,\n      getItemProps = _useSelect.getItemProps,\n      isOpen = _useSelect.isOpen,\n      highlightedIndex = _useSelect.highlightedIndex,\n      selectedItem = _useSelect.selectedItem;\n\n  var menuProps = getMenuProps({\n    className: 'components-custom-select-control__menu',\n    'aria-hidden': !isOpen\n  }); // We need this here, because the null active descendant is not\n  // fully ARIA compliant.\n\n  if (menuProps['aria-activedescendant'] && menuProps['aria-activedescendant'].slice(0, 'downshift-null'.length) === 'downshift-null') {\n    delete menuProps['aria-activedescendant'];\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('components-custom-select-control', className)\n  }, hideLabelFromVision ? Object(external_this_wp_element_[\"createElement\"])(visually_hidden, Object(esm_extends[\"a\" /* default */])({\n    as: \"label\"\n  }, getLabelProps()), label) :\n  /* eslint-disable-next-line jsx-a11y/label-has-associated-control, jsx-a11y/label-has-for */\n  Object(external_this_wp_element_[\"createElement\"])(\"label\", getLabelProps({\n    className: 'components-custom-select-control__label'\n  }), label), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], getToggleButtonProps({\n    // This is needed because some speech recognition software don't support `aria-labelledby`.\n    'aria-label': label,\n    'aria-labelledby': undefined,\n    className: 'components-custom-select-control__button',\n    isSmall: true\n  }), custom_select_control_itemToString(selectedItem), Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    icon: chevron_down[\"a\" /* default */],\n    className: \"components-custom-select-control__button-icon\"\n  })), Object(external_this_wp_element_[\"createElement\"])(\"ul\", menuProps, isOpen && items.map(function (item, index) {\n    return (// eslint-disable-next-line react/jsx-key\n      Object(external_this_wp_element_[\"createElement\"])(\"li\", getItemProps({\n        item: item,\n        index: index,\n        key: item.key,\n        className: classnames_default()(item.className, 'components-custom-select-control__item', {\n          'is-highlighted': index === highlightedIndex\n        }),\n        style: item.style\n      }), item === selectedItem && Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n        icon: check[\"a\" /* default */],\n        className: \"components-custom-select-control__item-icon\"\n      }), item.name)\n    );\n  })));\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/dashicon/index.js\nvar dashicon = __webpack_require__(142);\n\n// EXTERNAL MODULE: ./node_modules/react-dates/initialize.js\nvar initialize = __webpack_require__(301);\n\n// EXTERNAL MODULE: external {\"this\":\"moment\"}\nvar external_this_moment_ = __webpack_require__(43);\nvar external_this_moment_default = /*#__PURE__*/__webpack_require__.n(external_this_moment_);\n\n// EXTERNAL MODULE: ./node_modules/react-dates/lib/components/DayPickerSingleDateController.js\nvar DayPickerSingleDateController = __webpack_require__(265);\nvar DayPickerSingleDateController_default = /*#__PURE__*/__webpack_require__.n(DayPickerSingleDateController);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/date.js\n\n\n\n\n\n\n\n\nfunction date_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (date_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction date_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n // react-dates doesn't tree-shake correctly, so we import from the individual\n// component here, to avoid including too much of the library\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Module Constants\n */\n\nvar TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\n\nvar date_isRTL = function isRTL() {\n  return document.documentElement.dir === 'rtl';\n};\n\nvar date_DatePicker = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(DatePicker, _Component);\n\n  var _super = date_createSuper(DatePicker);\n\n  function DatePicker() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, DatePicker);\n\n    _this = _super.apply(this, arguments);\n    _this.onChangeMoment = _this.onChangeMoment.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.nodeRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.keepFocusInside = _this.keepFocusInside.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n  /*\n   * Todo: We should remove this function ASAP.\n   * It is kept because focus is lost when we click on the previous and next month buttons.\n   * This focus loss closes the date picker popover.\n   * Ideally we should add an upstream commit on react-dates to fix this issue.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(DatePicker, [{\n    key: \"keepFocusInside\",\n    value: function keepFocusInside() {\n      if (!this.nodeRef.current) {\n        return;\n      } // If focus was lost.\n\n\n      if (!document.activeElement || !this.nodeRef.current.contains(document.activeElement)) {\n        // Retrieve the focus region div.\n        var focusRegion = this.nodeRef.current.querySelector('.DayPicker_focusRegion');\n\n        if (!focusRegion) {\n          return;\n        } // Keep the focus on focus region.\n\n\n        focusRegion.focus();\n      }\n    }\n  }, {\n    key: \"onChangeMoment\",\n    value: function onChangeMoment(newDate) {\n      var _this$props = this.props,\n          currentDate = _this$props.currentDate,\n          onChange = _this$props.onChange; // If currentDate is null, use now as momentTime to designate hours, minutes, seconds.\n\n      var momentDate = currentDate ? external_this_moment_default()(currentDate) : external_this_moment_default()();\n      var momentTime = {\n        hours: momentDate.hours(),\n        minutes: momentDate.minutes(),\n        seconds: 0\n      };\n      onChange(newDate.set(momentTime).format(TIMEZONELESS_FORMAT));\n    }\n    /**\n     * Create a Moment object from a date string. With no currentDate supplied, default to a Moment\n     * object representing now. If a null value is passed, return a null value.\n     *\n     * @param {?string} currentDate Date representing the currently selected date or null to signify no selection.\n     * @return {?moment.Moment} Moment object for selected date or null.\n     */\n\n  }, {\n    key: \"getMomentDate\",\n    value: function getMomentDate(currentDate) {\n      if (null === currentDate) {\n        return null;\n      }\n\n      return currentDate ? external_this_moment_default()(currentDate) : external_this_moment_default()();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          currentDate = _this$props2.currentDate,\n          isInvalidDate = _this$props2.isInvalidDate;\n      var momentDate = this.getMomentDate(currentDate);\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__date\",\n        ref: this.nodeRef\n      }, Object(external_this_wp_element_[\"createElement\"])(DayPickerSingleDateController_default.a, {\n        date: momentDate,\n        daySize: 30,\n        focused: true,\n        hideKeyboardShortcutsPanel: true // This is a hack to force the calendar to update on month or year change\n        // https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665\n        ,\n        key: \"datepicker-controller-\".concat(momentDate ? momentDate.format('MM-YYYY') : 'null'),\n        noBorder: true,\n        numberOfMonths: 1,\n        onDateChange: this.onChangeMoment,\n        transitionDuration: 0,\n        weekDayFormat: \"ddd\",\n        isRTL: date_isRTL(),\n        isOutsideRange: function isOutsideRange(date) {\n          return isInvalidDate && isInvalidDate(date.toDate());\n        },\n        onPrevMonthClick: this.keepFocusInside,\n        onNextMonthClick: this.keepFocusInside\n      }));\n    }\n  }]);\n\n  return DatePicker;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var date_time_date = (date_DatePicker);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/time.js\n\n\n\n\n\n\n\n\nfunction time_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (time_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction time_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Module Constants\n */\n\nvar time_TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\n\nvar time_TimePicker = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(TimePicker, _Component);\n\n  var _super = time_createSuper(TimePicker);\n\n  function TimePicker() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, TimePicker);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      day: '',\n      month: '',\n      year: '',\n      hours: '',\n      minutes: '',\n      am: '',\n      date: null\n    };\n    _this.changeDate = _this.changeDate.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateMonth = _this.updateMonth.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeMonth = _this.onChangeMonth.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateDay = _this.updateDay.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeDay = _this.onChangeDay.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateYear = _this.updateYear.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeYear = _this.onChangeYear.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateHours = _this.updateHours.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateMinutes = _this.updateMinutes.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeHours = _this.onChangeHours.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeMinutes = _this.onChangeMinutes.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderMonth = _this.renderMonth.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderDay = _this.renderDay.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderDayMonthFormat = _this.renderDayMonthFormat.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(TimePicker, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.syncState(this.props);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          currentTime = _this$props.currentTime,\n          is12Hour = _this$props.is12Hour;\n\n      if (currentTime !== prevProps.currentTime || is12Hour !== prevProps.is12Hour) {\n        this.syncState(this.props);\n      }\n    }\n    /**\n     * Function that sets the date state and calls the onChange with a new date.\n     * The date is truncated at the minutes.\n     *\n     * @param {Object} newDate The date object.\n     */\n\n  }, {\n    key: \"changeDate\",\n    value: function changeDate(newDate) {\n      var dateWithStartOfMinutes = newDate.clone().startOf('minute');\n      this.setState({\n        date: dateWithStartOfMinutes\n      });\n      this.props.onChange(newDate.format(time_TIMEZONELESS_FORMAT));\n    }\n  }, {\n    key: \"getMaxHours\",\n    value: function getMaxHours() {\n      return this.props.is12Hour ? 12 : 23;\n    }\n  }, {\n    key: \"getMinHours\",\n    value: function getMinHours() {\n      return this.props.is12Hour ? 1 : 0;\n    }\n  }, {\n    key: \"syncState\",\n    value: function syncState(_ref) {\n      var currentTime = _ref.currentTime,\n          is12Hour = _ref.is12Hour;\n      var selected = currentTime ? external_this_moment_default()(currentTime) : external_this_moment_default()();\n      var day = selected.format('DD');\n      var month = selected.format('MM');\n      var year = selected.format('YYYY');\n      var minutes = selected.format('mm');\n      var am = selected.format('H') <= 11 ? 'AM' : 'PM';\n      var hours = selected.format(is12Hour ? 'hh' : 'HH');\n      var date = currentTime ? external_this_moment_default()(currentTime) : external_this_moment_default()();\n      this.setState({\n        day: day,\n        month: month,\n        year: year,\n        minutes: minutes,\n        hours: hours,\n        am: am,\n        date: date\n      });\n    }\n  }, {\n    key: \"updateHours\",\n    value: function updateHours() {\n      var is12Hour = this.props.is12Hour;\n      var _this$state = this.state,\n          am = _this$state.am,\n          hours = _this$state.hours,\n          date = _this$state.date;\n      var value = parseInt(hours, 10);\n\n      if (value === date.hour()) {\n        return;\n      }\n\n      if (!Object(external_this_lodash_[\"isInteger\"])(value) || is12Hour && (value < 1 || value > 12) || !is12Hour && (value < 0 || value > 23)) {\n        this.syncState(this.props);\n        return;\n      }\n\n      var newDate = is12Hour ? date.clone().hours(am === 'AM' ? value % 12 : (value % 12 + 12) % 24) : date.clone().hours(value);\n      this.changeDate(newDate);\n    }\n  }, {\n    key: \"updateMinutes\",\n    value: function updateMinutes() {\n      var _this$state2 = this.state,\n          minutes = _this$state2.minutes,\n          date = _this$state2.date;\n      var value = parseInt(minutes, 10);\n\n      if (value === date.minute()) {\n        return;\n      }\n\n      if (!Object(external_this_lodash_[\"isInteger\"])(value) || value < 0 || value > 59) {\n        this.syncState(this.props);\n        return;\n      }\n\n      var newDate = date.clone().minutes(value);\n      this.changeDate(newDate);\n    }\n  }, {\n    key: \"updateDay\",\n    value: function updateDay() {\n      var _this$state3 = this.state,\n          day = _this$state3.day,\n          date = _this$state3.date;\n      var value = parseInt(day, 10);\n\n      if (value === date.date()) {\n        return;\n      }\n\n      if (!Object(external_this_lodash_[\"isInteger\"])(value) || value < 1 || value > 31) {\n        this.syncState(this.props);\n        return;\n      }\n\n      var newDate = date.clone().date(value);\n      this.changeDate(newDate);\n    }\n  }, {\n    key: \"updateMonth\",\n    value: function updateMonth() {\n      var _this$state4 = this.state,\n          month = _this$state4.month,\n          date = _this$state4.date;\n      var value = parseInt(month, 10);\n\n      if (value === date.month() + 1) {\n        return;\n      }\n\n      if (!Object(external_this_lodash_[\"isInteger\"])(value) || value < 1 || value > 12) {\n        this.syncState(this.props);\n        return;\n      }\n\n      var newDate = date.clone().month(value - 1);\n      this.changeDate(newDate);\n    }\n  }, {\n    key: \"updateYear\",\n    value: function updateYear() {\n      var _this$state5 = this.state,\n          year = _this$state5.year,\n          date = _this$state5.date;\n      var value = parseInt(year, 10);\n\n      if (value === date.year()) {\n        return;\n      }\n\n      if (!Object(external_this_lodash_[\"isInteger\"])(value) || value < 0 || value > 9999) {\n        this.syncState(this.props);\n        return;\n      }\n\n      var newDate = date.clone().year(value);\n      this.changeDate(newDate);\n    }\n  }, {\n    key: \"updateAmPm\",\n    value: function updateAmPm(value) {\n      var _this2 = this;\n\n      return function () {\n        var _this2$state = _this2.state,\n            am = _this2$state.am,\n            date = _this2$state.date,\n            hours = _this2$state.hours;\n\n        if (am === value) {\n          return;\n        }\n\n        var newDate;\n\n        if (value === 'PM') {\n          newDate = date.clone().hours((parseInt(hours, 10) % 12 + 12) % 24);\n        } else {\n          newDate = date.clone().hours(parseInt(hours, 10) % 12);\n        }\n\n        _this2.changeDate(newDate);\n      };\n    }\n  }, {\n    key: \"onChangeDay\",\n    value: function onChangeDay(event) {\n      this.setState({\n        day: event.target.value\n      });\n    }\n  }, {\n    key: \"onChangeMonth\",\n    value: function onChangeMonth(event) {\n      this.setState({\n        month: event.target.value\n      });\n    }\n  }, {\n    key: \"onChangeYear\",\n    value: function onChangeYear(event) {\n      this.setState({\n        year: event.target.value\n      });\n    }\n  }, {\n    key: \"onChangeHours\",\n    value: function onChangeHours(event) {\n      this.setState({\n        hours: event.target.value\n      });\n    }\n  }, {\n    key: \"onChangeMinutes\",\n    value: function onChangeMinutes(event) {\n      var minutes = event.target.value;\n      this.setState({\n        minutes: minutes === '' ? '' : ('0' + minutes).slice(-2)\n      });\n    }\n  }, {\n    key: \"renderMonth\",\n    value: function renderMonth(month) {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        key: \"render-month\",\n        className: \"components-datetime__time-field components-datetime__time-field-month\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"select\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Month'),\n        className: \"components-datetime__time-field-month-select\",\n        value: month,\n        onChange: this.onChangeMonth,\n        onBlur: this.updateMonth\n      }, Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"01\"\n      }, Object(external_this_wp_i18n_[\"__\"])('January')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"02\"\n      }, Object(external_this_wp_i18n_[\"__\"])('February')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"03\"\n      }, Object(external_this_wp_i18n_[\"__\"])('March')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"04\"\n      }, Object(external_this_wp_i18n_[\"__\"])('April')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"05\"\n      }, Object(external_this_wp_i18n_[\"__\"])('May')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"06\"\n      }, Object(external_this_wp_i18n_[\"__\"])('June')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"07\"\n      }, Object(external_this_wp_i18n_[\"__\"])('July')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"08\"\n      }, Object(external_this_wp_i18n_[\"__\"])('August')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"09\"\n      }, Object(external_this_wp_i18n_[\"__\"])('September')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"10\"\n      }, Object(external_this_wp_i18n_[\"__\"])('October')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"11\"\n      }, Object(external_this_wp_i18n_[\"__\"])('November')), Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n        value: \"12\"\n      }, Object(external_this_wp_i18n_[\"__\"])('December'))));\n    }\n  }, {\n    key: \"renderDay\",\n    value: function renderDay(day) {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        key: \"render-day\",\n        className: \"components-datetime__time-field components-datetime__time-field-day\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Day'),\n        className: \"components-datetime__time-field-day-input\",\n        type: \"number\",\n        value: day,\n        step: 1,\n        min: 1,\n        onChange: this.onChangeDay,\n        onBlur: this.updateDay\n      }));\n    }\n  }, {\n    key: \"renderDayMonthFormat\",\n    value: function renderDayMonthFormat(is12Hour) {\n      var _this$state6 = this.state,\n          day = _this$state6.day,\n          month = _this$state6.month;\n      var layout = [this.renderDay(day), this.renderMonth(month)];\n      return is12Hour ? layout : layout.reverse();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var is12Hour = this.props.is12Hour;\n      var _this$state7 = this.state,\n          year = _this$state7.year,\n          minutes = _this$state7.minutes,\n          hours = _this$state7.hours,\n          am = _this$state7.am;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classnames_default()('components-datetime__time')\n      }, Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", null, Object(external_this_wp_element_[\"createElement\"])(\"legend\", {\n        className: \"components-datetime__time-legend invisible\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Date')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__time-wrapper\"\n      }, this.renderDayMonthFormat(is12Hour), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__time-field components-datetime__time-field-year\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Year'),\n        className: \"components-datetime__time-field-year-input\",\n        type: \"number\",\n        step: 1,\n        value: year,\n        onChange: this.onChangeYear,\n        onBlur: this.updateYear\n      })))), Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", null, Object(external_this_wp_element_[\"createElement\"])(\"legend\", {\n        className: \"components-datetime__time-legend invisible\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Time')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__time-wrapper\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__time-field components-datetime__time-field-time\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Hours'),\n        className: \"components-datetime__time-field-hours-input\",\n        type: \"number\",\n        step: 1,\n        min: this.getMinHours(),\n        max: this.getMaxHours(),\n        value: hours,\n        onChange: this.onChangeHours,\n        onBlur: this.updateHours\n      }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        className: \"components-datetime__time-separator\",\n        \"aria-hidden\": \"true\"\n      }, \":\"), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Minutes'),\n        className: \"components-datetime__time-field-minutes-input\",\n        type: \"number\",\n        min: 0,\n        max: 59,\n        value: minutes,\n        onChange: this.onChangeMinutes,\n        onBlur: this.updateMinutes\n      })), is12Hour && Object(external_this_wp_element_[\"createElement\"])(button_group, {\n        className: \"components-datetime__time-field components-datetime__time-field-am-pm\"\n      }, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        isPrimary: am === 'AM',\n        isSecondary: am !== 'AM',\n        onClick: this.updateAmPm('AM'),\n        className: \"components-datetime__time-am-button\"\n      }, Object(external_this_wp_i18n_[\"__\"])('AM')), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        isPrimary: am === 'PM',\n        isSecondary: am !== 'PM',\n        onClick: this.updateAmPm('PM'),\n        className: \"components-datetime__time-pm-button\"\n      }, Object(external_this_wp_i18n_[\"__\"])('PM'))))));\n    }\n  }]);\n\n  return TimePicker;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var time = (time_TimePicker);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/date-time/index.js\n\n\n\n\n\n\n\n\nfunction date_time_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (date_time_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction date_time_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n// Needed to initialise the default datepicker styles.\n// See: https://github.com/airbnb/react-dates#initialize\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar date_time_DateTimePicker = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(DateTimePicker, _Component);\n\n  var _super = date_time_createSuper(DateTimePicker);\n\n  function DateTimePicker() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, DateTimePicker);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      calendarHelpIsVisible: false\n    };\n    _this.onClickDescriptionToggle = _this.onClickDescriptionToggle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(DateTimePicker, [{\n    key: \"onClickDescriptionToggle\",\n    value: function onClickDescriptionToggle() {\n      this.setState({\n        calendarHelpIsVisible: !this.state.calendarHelpIsVisible\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          currentDate = _this$props.currentDate,\n          is12Hour = _this$props.is12Hour,\n          isInvalidDate = _this$props.isInvalidDate,\n          onChange = _this$props.onChange;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime\"\n      }, !this.state.calendarHelpIsVisible && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(time, {\n        currentTime: currentDate,\n        onChange: onChange,\n        is12Hour: is12Hour\n      }), Object(external_this_wp_element_[\"createElement\"])(date_time_date, {\n        currentDate: currentDate,\n        onChange: onChange,\n        isInvalidDate: isInvalidDate\n      })), this.state.calendarHelpIsVisible && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__calendar-help\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"h4\", null, Object(external_this_wp_i18n_[\"__\"])('Click to Select')), Object(external_this_wp_element_[\"createElement\"])(\"ul\", null, Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_i18n_[\"__\"])('Click the right or left arrows to select other months in the past or the future.')), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_i18n_[\"__\"])('Click the desired day to select it.'))), Object(external_this_wp_element_[\"createElement\"])(\"h4\", null, Object(external_this_wp_i18n_[\"__\"])('Navigating with a keyboard')), Object(external_this_wp_element_[\"createElement\"])(\"ul\", null, Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(\"abbr\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"_x\"])('Enter', 'keyboard button')\n      }, \"\\u21B5\"), ' '\n      /* JSX removes whitespace, but a space is required for screen readers. */\n      , Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_i18n_[\"__\"])('Select the date in focus.'))), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(\"abbr\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Left and Right Arrows')\n      }, \"\\u2190/\\u2192\"), ' '\n      /* JSX removes whitespace, but a space is required for screen readers. */\n      , Object(external_this_wp_i18n_[\"__\"])('Move backward (left) or forward (right) by one day.')), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(\"abbr\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Up and Down Arrows')\n      }, \"\\u2191/\\u2193\"), ' '\n      /* JSX removes whitespace, but a space is required for screen readers. */\n      , Object(external_this_wp_i18n_[\"__\"])('Move backward (up) or forward (down) by one week.')), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(\"abbr\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Page Up and Page Down')\n      }, Object(external_this_wp_i18n_[\"__\"])('PgUp/PgDn')), ' '\n      /* JSX removes whitespace, but a space is required for screen readers. */\n      , Object(external_this_wp_i18n_[\"__\"])('Move backward (PgUp) or forward (PgDn) by one month.')), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(\"abbr\", {\n        \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Home and End')\n      }, Object(external_this_wp_i18n_[\"__\"])('Home/End')), ' '\n      /* JSX removes whitespace, but a space is required for screen readers. */\n      , Object(external_this_wp_i18n_[\"__\"])('Go to the first (home) or last (end) day of a week.'))))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-datetime__buttons\"\n      }, !this.state.calendarHelpIsVisible && currentDate && Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        className: \"components-datetime__date-reset-button\",\n        isLink: true,\n        onClick: function onClick() {\n          return onChange(null);\n        }\n      }, Object(external_this_wp_i18n_[\"__\"])('Reset')), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        className: \"components-datetime__date-help-toggle\",\n        isLink: true,\n        onClick: this.onClickDescriptionToggle\n      }, this.state.calendarHelpIsVisible ? Object(external_this_wp_i18n_[\"__\"])('Close') : Object(external_this_wp_i18n_[\"__\"])('Calendar Help'))));\n    }\n  }]);\n\n  return DateTimePicker;\n}(external_this_wp_element_[\"Component\"]);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/icon/index.js\nvar components_build_module_icon = __webpack_require__(78);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/select-control/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction SelectControl(_ref) {\n  var help = _ref.help,\n      label = _ref.label,\n      _ref$multiple = _ref.multiple,\n      multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n      onChange = _ref.onChange,\n      _ref$options = _ref.options,\n      options = _ref$options === void 0 ? [] : _ref$options,\n      className = _ref.className,\n      hideLabelFromVision = _ref.hideLabelFromVision,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"help\", \"label\", \"multiple\", \"onChange\", \"options\", \"className\", \"hideLabelFromVision\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(SelectControl);\n  var id = \"inspector-select-control-\".concat(instanceId);\n\n  var onChangeValue = function onChangeValue(event) {\n    if (multiple) {\n      var selectedOptions = Object(toConsumableArray[\"a\" /* default */])(event.target.options).filter(function (_ref2) {\n        var selected = _ref2.selected;\n        return selected;\n      });\n\n      var newValues = selectedOptions.map(function (_ref3) {\n        var value = _ref3.value;\n        return value;\n      });\n      onChange(newValues);\n      return;\n    }\n\n    onChange(event.target.value);\n  }; // Disable reason: A select with an onchange throws a warning\n\n  /* eslint-disable jsx-a11y/no-onchange */\n\n\n  return !Object(external_this_lodash_[\"isEmpty\"])(options) && Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: label,\n    hideLabelFromVision: hideLabelFromVision,\n    id: id,\n    help: help,\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(\"select\", Object(esm_extends[\"a\" /* default */])({\n    id: id,\n    className: \"components-select-control__input\",\n    onChange: onChangeValue,\n    \"aria-describedby\": !!help ? \"\".concat(id, \"__help\") : undefined,\n    multiple: multiple\n  }, props), options.map(function (option, index) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n      key: \"\".concat(option.label, \"-\").concat(option.value, \"-\").concat(index),\n      value: option.value,\n      disabled: option.disabled\n    }, option.label);\n  })));\n  /* eslint-enable jsx-a11y/no-onchange */\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/sizes.js\n/**\n * Sizes\n *\n * defines the sizes used in dimension controls\n * all hardcoded `size` values are based on the value of\n * the Sass variable `$block-padding` from\n * `packages/block-editor/src/components/dimension-control/sizes.js`.\n */\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Finds the correct size object from the provided sizes\n * table by size slug (eg: `medium`)\n *\n * @param  {Array}  sizes containing objects for each size definition\n * @param  {string} slug  a string representation of the size (eg: `medium`)\n * @return {Object}       the matching size definition\n */\n\nvar findSizeBySlug = function findSizeBySlug(sizes, slug) {\n  return sizes.find(function (size) {\n    return slug === size.slug;\n  });\n};\n/* harmony default export */ var dimension_control_sizes = ([{\n  name: Object(external_this_wp_i18n_[\"__\"])('None'),\n  slug: 'none'\n}, {\n  name: Object(external_this_wp_i18n_[\"__\"])('Small'),\n  slug: 'small'\n}, {\n  name: Object(external_this_wp_i18n_[\"__\"])('Medium'),\n  slug: 'medium'\n}, {\n  name: Object(external_this_wp_i18n_[\"__\"])('Large'),\n  slug: 'large'\n}, {\n  name: Object(external_this_wp_i18n_[\"__\"])('Extra Large'),\n  slug: 'xlarge'\n}]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dimension-control/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction DimensionControl(props) {\n  var label = props.label,\n      value = props.value,\n      _props$sizes = props.sizes,\n      sizes = _props$sizes === void 0 ? dimension_control_sizes : _props$sizes,\n      icon = props.icon,\n      onChange = props.onChange,\n      _props$className = props.className,\n      className = _props$className === void 0 ? '' : _props$className;\n\n  var onChangeSpacingSize = function onChangeSpacingSize(val) {\n    var theSize = findSizeBySlug(sizes, val);\n\n    if (!theSize || value === theSize.slug) {\n      onChange(undefined);\n    } else if (Object(external_this_lodash_[\"isFunction\"])(onChange)) {\n      onChange(theSize.slug);\n    }\n  };\n\n  var formatSizesAsOptions = function formatSizesAsOptions(theSizes) {\n    var options = theSizes.map(function (_ref) {\n      var name = _ref.name,\n          slug = _ref.slug;\n      return {\n        label: name,\n        value: slug\n      };\n    });\n    return [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Default'),\n      value: ''\n    }].concat(options);\n  };\n\n  var selectLabel = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, icon && Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n    icon: icon\n  }), label);\n  return Object(external_this_wp_element_[\"createElement\"])(SelectControl, {\n    className: classnames_default()(className, 'block-editor-dimension-control'),\n    label: selectLabel,\n    hideLabelFromVision: false,\n    value: value,\n    onChange: onChangeSpacingSize,\n    options: formatSizesAsOptions(sizes)\n  });\n}\n/* harmony default export */ var dimension_control = (DimensionControl);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dom\"]}\nvar external_this_wp_dom_ = __webpack_require__(31);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/disabled/index.js\n\n\n\n\n\n\n\n\n\n\nfunction disabled_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (disabled_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction disabled_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar _createContext = Object(external_this_wp_element_[\"createContext\"])(false),\n    Consumer = _createContext.Consumer,\n    disabled_Provider = _createContext.Provider;\n/**\n * Names of control nodes which qualify for disabled behavior.\n *\n * See WHATWG HTML Standard: 4.10.18.5: \"Enabling and disabling form controls: the disabled attribute\".\n *\n * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#enabling-and-disabling-form-controls:-the-disabled-attribute\n *\n * @type {string[]}\n */\n\n\nvar DISABLED_ELIGIBLE_NODE_NAMES = ['BUTTON', 'FIELDSET', 'INPUT', 'OPTGROUP', 'OPTION', 'SELECT', 'TEXTAREA'];\n\nvar disabled_Disabled = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Disabled, _Component);\n\n  var _super = disabled_createSuper(Disabled);\n\n  function Disabled() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Disabled);\n\n    _this = _super.apply(this, arguments);\n    _this.bindNode = _this.bindNode.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.disable = _this.disable.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)); // Debounce re-disable since disabling process itself will incur\n    // additional mutations which should be ignored.\n\n    _this.debouncedDisable = Object(external_this_lodash_[\"debounce\"])(_this.disable, {\n      leading: true\n    });\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Disabled, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.disable();\n      this.observer = new window.MutationObserver(this.debouncedDisable);\n      this.observer.observe(this.node, {\n        childList: true,\n        attributes: true,\n        subtree: true\n      });\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.observer.disconnect();\n      this.debouncedDisable.cancel();\n    }\n  }, {\n    key: \"bindNode\",\n    value: function bindNode(node) {\n      this.node = node;\n    }\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      external_this_wp_dom_[\"focus\"].focusable.find(this.node).forEach(function (focusable) {\n        if (Object(external_this_lodash_[\"includes\"])(DISABLED_ELIGIBLE_NODE_NAMES, focusable.nodeName)) {\n          focusable.setAttribute('disabled', '');\n        }\n\n        if (focusable.hasAttribute('tabindex')) {\n          focusable.removeAttribute('tabindex');\n        }\n\n        if (focusable.hasAttribute('contenteditable')) {\n          focusable.setAttribute('contenteditable', 'false');\n        }\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          className = _this$props.className,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_this$props, [\"className\"]);\n\n      return Object(external_this_wp_element_[\"createElement\"])(disabled_Provider, {\n        value: true\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n        ref: this.bindNode,\n        className: classnames_default()(className, 'components-disabled')\n      }, props), this.props.children));\n    }\n  }]);\n\n  return Disabled;\n}(external_this_wp_element_[\"Component\"]);\n\ndisabled_Disabled.Consumer = Consumer;\n/* harmony default export */ var build_module_disabled = (disabled_Disabled);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/draggable/index.js\n\n\n\n\n\n\n\n\nfunction draggable_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (draggable_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction draggable_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar dragImageClass = 'components-draggable__invisible-drag-image';\nvar cloneWrapperClass = 'components-draggable__clone';\nvar cloneHeightTransformationBreakpoint = 700;\nvar clonePadding = 0;\n\nvar draggable_Draggable = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Draggable, _Component);\n\n  var _super = draggable_createSuper(Draggable);\n\n  function Draggable() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Draggable);\n\n    _this = _super.apply(this, arguments);\n    _this.onDragStart = _this.onDragStart.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDragEnd = _this.onDragEnd.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.dragComponentRef = Object(external_this_wp_element_[\"createRef\"])();\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Draggable, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.resetDragState();\n    }\n    /**\n     * Removes the element clone, resets cursor, and removes drag listener.\n     *\n     * @param  {Object} event The non-custom DragEvent.\n     */\n\n  }, {\n    key: \"onDragEnd\",\n    value: function onDragEnd(event) {\n      var _this$props$onDragEnd = this.props.onDragEnd,\n          onDragEnd = _this$props$onDragEnd === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onDragEnd;\n      event.preventDefault();\n      this.resetDragState(); // Allow the Synthetic Event to be accessed from asynchronous code.\n      // https://reactjs.org/docs/events.html#event-pooling\n\n      event.persist();\n      this.props.setTimeout(onDragEnd.bind(this, event));\n    }\n    /**\n     * Updates positioning of element clone based on mouse movement during dragging.\n     *\n     * @param  {Object} event The non-custom DragEvent.\n     */\n\n  }, {\n    key: \"onDragOver\",\n    value: function onDragOver(event) {\n      this.cloneWrapper.style.top = \"\".concat(parseInt(this.cloneWrapper.style.top, 10) + event.clientY - this.cursorTop, \"px\");\n      this.cloneWrapper.style.left = \"\".concat(parseInt(this.cloneWrapper.style.left, 10) + event.clientX - this.cursorLeft, \"px\"); // Update cursor coordinates.\n\n      this.cursorLeft = event.clientX;\n      this.cursorTop = event.clientY;\n      var _this$props$onDragOve = this.props.onDragOver,\n          onDragOver = _this$props$onDragOve === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onDragOve; // The `event` from `onDragOver` is not a SyntheticEvent\n      // and so it doesn't require `event.persist()`.\n\n      this.props.setTimeout(onDragOver.bind(this, event));\n    }\n    /**\n     * This method does a couple of things:\n     *\n     * - Clones the current element and spawns clone over original element.\n     * - Adds a fake temporary drag image to avoid browser defaults.\n     * - Sets transfer data.\n     * - Adds dragover listener.\n     *\n     * @param  {Object} event The non-custom DragEvent.\n     */\n\n  }, {\n    key: \"onDragStart\",\n    value: function onDragStart(event) {\n      var _this$props = this.props,\n          cloneClassname = _this$props.cloneClassname,\n          elementId = _this$props.elementId,\n          transferData = _this$props.transferData,\n          _this$props$onDragSta = _this$props.onDragStart,\n          onDragStart = _this$props$onDragSta === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onDragSta;\n      var element = document.getElementById(elementId);\n\n      if (!element) {\n        event.preventDefault();\n        return;\n      } // Set a fake drag image to avoid browser defaults. Remove from DOM\n      // right after. event.dataTransfer.setDragImage is not supported yet in\n      // IE, we need to check for its existence first.\n\n\n      if ('function' === typeof event.dataTransfer.setDragImage) {\n        var dragImage = document.createElement('div');\n        dragImage.id = \"drag-image-\".concat(elementId);\n        dragImage.classList.add(dragImageClass);\n        document.body.appendChild(dragImage);\n        event.dataTransfer.setDragImage(dragImage, 0, 0);\n        this.props.setTimeout(function () {\n          document.body.removeChild(dragImage);\n        });\n      }\n\n      event.dataTransfer.setData('text', JSON.stringify(transferData)); // Prepare element clone and append to element wrapper.\n\n      var elementRect = element.getBoundingClientRect();\n      var elementWrapper = element.parentNode;\n      var elementTopOffset = parseInt(elementRect.top, 10);\n      var elementLeftOffset = parseInt(elementRect.left, 10);\n      this.cloneWrapper = document.createElement('div');\n      this.cloneWrapper.classList.add(cloneWrapperClass);\n\n      if (cloneClassname) {\n        this.cloneWrapper.classList.add(cloneClassname);\n      }\n\n      this.cloneWrapper.style.width = \"\".concat(elementRect.width + clonePadding * 2, \"px\"); // If a dragComponent is defined, the following logic will clone the\n      // HTML node and inject it into the cloneWrapper.\n\n      if (this.dragComponentRef.current) {\n        // Position clone right over the original element (20px padding).\n        this.cloneWrapper.style.top = \"\".concat(elementTopOffset - clonePadding, \"px\");\n        this.cloneWrapper.style.left = \"\".concat(elementLeftOffset - clonePadding, \"px\");\n        var clonedDragComponent = document.createElement('div');\n        clonedDragComponent.innerHTML = this.dragComponentRef.current.innerHTML;\n        this.cloneWrapper.appendChild(clonedDragComponent);\n      } else {\n        var clone = element.cloneNode(true);\n        clone.id = \"clone-\".concat(elementId);\n\n        if (elementRect.height > cloneHeightTransformationBreakpoint) {\n          // Scale down clone if original element is larger than 700px.\n          this.cloneWrapper.style.transform = 'scale(0.5)';\n          this.cloneWrapper.style.transformOrigin = 'top left'; // Position clone near the cursor.\n\n          this.cloneWrapper.style.top = \"\".concat(event.clientY - 100, \"px\");\n          this.cloneWrapper.style.left = \"\".concat(event.clientX, \"px\");\n        } else {\n          // Position clone right over the original element (20px padding).\n          this.cloneWrapper.style.top = \"\".concat(elementTopOffset - clonePadding, \"px\");\n          this.cloneWrapper.style.left = \"\".concat(elementLeftOffset - clonePadding, \"px\");\n        } // Hack: Remove iFrames as it's causing the embeds drag clone to freeze\n\n\n        Array.from(clone.querySelectorAll('iframe')).forEach(function (child) {\n          return child.parentNode.removeChild(child);\n        });\n        this.cloneWrapper.appendChild(clone);\n      } // Inject the cloneWrapper into the DOM.\n\n\n      elementWrapper.appendChild(this.cloneWrapper); // Mark the current cursor coordinates.\n\n      this.cursorLeft = event.clientX;\n      this.cursorTop = event.clientY; // Update cursor to 'grabbing', document wide.\n\n      document.body.classList.add('is-dragging-components-draggable');\n      document.addEventListener('dragover', this.onDragOver); // Allow the Synthetic Event to be accessed from asynchronous code.\n      // https://reactjs.org/docs/events.html#event-pooling\n\n      event.persist();\n      this.props.setTimeout(onDragStart.bind(this, event));\n    }\n    /**\n     * Cleans up drag state when drag has completed, or component unmounts\n     * while dragging.\n     */\n\n  }, {\n    key: \"resetDragState\",\n    value: function resetDragState() {\n      // Remove drag clone\n      document.removeEventListener('dragover', this.onDragOver);\n\n      if (this.cloneWrapper && this.cloneWrapper.parentNode) {\n        this.cloneWrapper.parentNode.removeChild(this.cloneWrapper);\n        this.cloneWrapper = null;\n      }\n\n      this.cursorLeft = null;\n      this.cursorTop = null; // Reset cursor.\n\n      document.body.classList.remove('is-dragging-components-draggable');\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          dragComponent = _this$props2.__experimentalDragComponent;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, children({\n        onDraggableStart: this.onDragStart,\n        onDraggableEnd: this.onDragEnd\n      }), dragComponent && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-draggable-drag-component-root\",\n        style: {\n          display: 'none'\n        },\n        ref: this.dragComponentRef\n      }, dragComponent));\n    }\n  }]);\n\n  return Draggable;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var draggable = (Object(external_this_wp_compose_[\"withSafeTimeout\"])(draggable_Draggable));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js\nvar upload = __webpack_require__(198);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/provider.js\n\n\n\n\n\n\n\n\n\nfunction provider_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (provider_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction provider_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar Context = Object(external_this_wp_element_[\"createContext\"])({\n  addDropZone: function addDropZone() {},\n  removeDropZone: function removeDropZone() {}\n});\nvar provider_Provider = Context.Provider,\n    provider_Consumer = Context.Consumer;\n\nvar provider_getDragEventType = function getDragEventType(_ref) {\n  var dataTransfer = _ref.dataTransfer;\n\n  if (dataTransfer) {\n    // Use lodash `includes` here as in the Edge browser `types` is implemented\n    // as a DomStringList, whereas in other browsers it's an array. `includes`\n    // happily works with both types.\n    if (Object(external_this_lodash_[\"includes\"])(dataTransfer.types, 'Files')) {\n      return 'file';\n    }\n\n    if (Object(external_this_lodash_[\"includes\"])(dataTransfer.types, 'text/html')) {\n      return 'html';\n    }\n  }\n\n  return 'default';\n};\n\nvar isTypeSupportedByDropZone = function isTypeSupportedByDropZone(type, dropZone) {\n  return type === 'file' && dropZone.onFilesDrop || type === 'html' && dropZone.onHTMLDrop || type === 'default' && dropZone.onDrop;\n};\n\nvar isWithinElementBounds = function isWithinElementBounds(element, x, y) {\n  var rect = element.getBoundingClientRect(); /// make sure the rect is a valid rect\n\n  if (rect.bottom === rect.top || rect.left === rect.right) {\n    return false;\n  }\n\n  return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n};\n\nvar provider_DropZoneProvider = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(DropZoneProvider, _Component);\n\n  var _super = provider_createSuper(DropZoneProvider);\n\n  function DropZoneProvider() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, DropZoneProvider);\n\n    _this = _super.apply(this, arguments); // Event listeners\n\n    _this.onDragOver = _this.onDragOver.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onDrop = _this.onDrop.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)); // Context methods so this component can receive data from consumers\n\n    _this.addDropZone = _this.addDropZone.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.removeDropZone = _this.removeDropZone.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)); // Utility methods\n\n    _this.resetDragState = _this.resetDragState.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.toggleDraggingOverDocument = Object(external_this_lodash_[\"throttle\"])(_this.toggleDraggingOverDocument.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), 200);\n    _this.dropZones = [];\n    _this.dropZoneCallbacks = {\n      addDropZone: _this.addDropZone,\n      removeDropZone: _this.removeDropZone\n    };\n    _this.state = {\n      hoveredDropZone: -1,\n      isDraggingOverDocument: false,\n      position: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(DropZoneProvider, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      window.addEventListener('dragover', this.onDragOver);\n      window.addEventListener('mouseup', this.resetDragState);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.removeEventListener('dragover', this.onDragOver);\n      window.removeEventListener('mouseup', this.resetDragState);\n    }\n  }, {\n    key: \"addDropZone\",\n    value: function addDropZone(dropZone) {\n      this.dropZones.push(dropZone);\n    }\n  }, {\n    key: \"removeDropZone\",\n    value: function removeDropZone(dropZone) {\n      this.dropZones = Object(external_this_lodash_[\"filter\"])(this.dropZones, function (dz) {\n        return dz !== dropZone;\n      });\n    }\n  }, {\n    key: \"resetDragState\",\n    value: function resetDragState() {\n      // Avoid throttled drag over handler calls\n      this.toggleDraggingOverDocument.cancel();\n      var _this$state = this.state,\n          isDraggingOverDocument = _this$state.isDraggingOverDocument,\n          hoveredDropZone = _this$state.hoveredDropZone;\n\n      if (!isDraggingOverDocument && hoveredDropZone === -1) {\n        return;\n      }\n\n      this.setState({\n        hoveredDropZone: -1,\n        isDraggingOverDocument: false,\n        position: null\n      });\n      this.dropZones.forEach(function (dropZone) {\n        return dropZone.setState({\n          isDraggingOverDocument: false,\n          isDraggingOverElement: false,\n          position: null,\n          type: null\n        });\n      });\n    }\n  }, {\n    key: \"toggleDraggingOverDocument\",\n    value: function toggleDraggingOverDocument(event, dragEventType) {\n      var _this2 = this;\n\n      // In some contexts, it may be necessary to capture and redirect the\n      // drag event (e.g. atop an `iframe`). To accommodate this, you can\n      // create an instance of CustomEvent with the original event specified\n      // as the `detail` property.\n      //\n      // See: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events\n      var detail = window.CustomEvent && event instanceof window.CustomEvent ? event.detail : event; // Index of hovered dropzone.\n\n      var hoveredDropZones = Object(external_this_lodash_[\"filter\"])(this.dropZones, function (dropZone) {\n        return isTypeSupportedByDropZone(dragEventType, dropZone) && isWithinElementBounds(dropZone.element.current, detail.clientX, detail.clientY);\n      }); // Find the leaf dropzone not containing another dropzone\n\n      var hoveredDropZone = Object(external_this_lodash_[\"find\"])(hoveredDropZones, function (zone) {\n        var container = zone.isRelative ? zone.element.current.parentElement : zone.element.current;\n        return !Object(external_this_lodash_[\"some\"])(hoveredDropZones, function (subZone) {\n          return subZone !== zone && container.contains(subZone.element.current);\n        });\n      });\n      var hoveredDropZoneIndex = this.dropZones.indexOf(hoveredDropZone);\n      var position = null;\n\n      if (hoveredDropZone && hoveredDropZone.withPosition) {\n        position = {\n          x: detail.clientX,\n          y: detail.clientY\n        };\n      } // Optimisation: Only update the changed dropzones\n\n\n      var toUpdate = [];\n\n      if (!this.state.isDraggingOverDocument) {\n        toUpdate = this.dropZones;\n      } else if (hoveredDropZoneIndex !== this.state.hoveredDropZone) {\n        if (this.state.hoveredDropZone !== -1) {\n          toUpdate.push(this.dropZones[this.state.hoveredDropZone]);\n        }\n\n        if (hoveredDropZone) {\n          toUpdate.push(hoveredDropZone);\n        }\n      } else if (hoveredDropZone && hoveredDropZoneIndex === this.state.hoveredDropZone && !Object(external_this_lodash_[\"isEqual\"])(position, this.state.position)) {\n        toUpdate.push(hoveredDropZone);\n      } // Notifying the dropzones\n\n\n      toUpdate.forEach(function (dropZone) {\n        var index = _this2.dropZones.indexOf(dropZone);\n\n        var isDraggingOverDropZone = index === hoveredDropZoneIndex;\n        dropZone.setState({\n          isDraggingOverDocument: isTypeSupportedByDropZone(dragEventType, dropZone),\n          isDraggingOverElement: isDraggingOverDropZone,\n          position: isDraggingOverDropZone ? position : null,\n          type: isDraggingOverDropZone ? dragEventType : null\n        });\n      });\n      var newState = {\n        isDraggingOverDocument: true,\n        hoveredDropZone: hoveredDropZoneIndex,\n        position: position\n      };\n\n      if (!external_this_wp_isShallowEqual_default()(newState, this.state)) {\n        this.setState(newState);\n      }\n    }\n  }, {\n    key: \"onDragOver\",\n    value: function onDragOver(event) {\n      this.toggleDraggingOverDocument(event, provider_getDragEventType(event));\n      event.preventDefault();\n    }\n  }, {\n    key: \"onDrop\",\n    value: function onDrop(event) {\n      // This seemingly useless line has been shown to resolve a Safari issue\n      // where files dragged directly from the dock are not recognized\n      event.dataTransfer && event.dataTransfer.files.length; // eslint-disable-line no-unused-expressions\n\n      var _this$state2 = this.state,\n          position = _this$state2.position,\n          hoveredDropZone = _this$state2.hoveredDropZone;\n      var dragEventType = provider_getDragEventType(event);\n      var dropZone = this.dropZones[hoveredDropZone];\n      this.resetDragState();\n\n      if (dropZone) {\n        switch (dragEventType) {\n          case 'file':\n            dropZone.onFilesDrop(Object(toConsumableArray[\"a\" /* default */])(event.dataTransfer.files), position);\n            break;\n\n          case 'html':\n            dropZone.onHTMLDrop(event.dataTransfer.getData('text/html'), position);\n            break;\n\n          case 'default':\n            dropZone.onDrop(event, position);\n        }\n      }\n\n      event.stopPropagation();\n      event.preventDefault();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        onDrop: this.onDrop,\n        className: \"components-drop-zone__provider\"\n      }, Object(external_this_wp_element_[\"createElement\"])(provider_Provider, {\n        value: this.dropZoneCallbacks\n      }, this.props.children));\n    }\n  }]);\n\n  return DropZoneProvider;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var provider = (provider_DropZoneProvider);\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/drop-zone/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction useDropZone(_ref) {\n  var element = _ref.element,\n      onFilesDrop = _ref.onFilesDrop,\n      onHTMLDrop = _ref.onHTMLDrop,\n      onDrop = _ref.onDrop,\n      isDisabled = _ref.isDisabled,\n      withPosition = _ref.withPosition,\n      _ref$__unstableIsRela = _ref.__unstableIsRelative,\n      __unstableIsRelative = _ref$__unstableIsRela === void 0 ? false : _ref$__unstableIsRela;\n\n  var _useContext = Object(external_this_wp_element_[\"useContext\"])(Context),\n      addDropZone = _useContext.addDropZone,\n      removeDropZone = _useContext.removeDropZone;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])({\n    isDraggingOverDocument: false,\n    isDraggingOverElement: false,\n    type: null\n  }),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      state = _useState2[0],\n      setState = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isDisabled) {\n      var dropZone = {\n        element: element,\n        onDrop: onDrop,\n        onFilesDrop: onFilesDrop,\n        onHTMLDrop: onHTMLDrop,\n        setState: setState,\n        withPosition: withPosition,\n        isRelative: __unstableIsRelative\n      };\n      addDropZone(dropZone);\n      return function () {\n        removeDropZone(dropZone);\n      };\n    }\n  }, [isDisabled, onDrop, onFilesDrop, onHTMLDrop, withPosition]);\n  return state;\n}\n\nvar drop_zone_DropZone = function DropZone(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(provider_Consumer, null, function (_ref2) {\n    var addDropZone = _ref2.addDropZone,\n        removeDropZone = _ref2.removeDropZone;\n    return Object(external_this_wp_element_[\"createElement\"])(DropZoneComponent, Object(esm_extends[\"a\" /* default */])({\n      addDropZone: addDropZone,\n      removeDropZone: removeDropZone\n    }, props));\n  });\n};\n\nfunction DropZoneComponent(_ref3) {\n  var className = _ref3.className,\n      label = _ref3.label,\n      onFilesDrop = _ref3.onFilesDrop,\n      onHTMLDrop = _ref3.onHTMLDrop,\n      onDrop = _ref3.onDrop;\n  var element = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useDropZone = useDropZone({\n    element: element,\n    onFilesDrop: onFilesDrop,\n    onHTMLDrop: onHTMLDrop,\n    onDrop: onDrop,\n    __unstableIsRelative: true\n  }),\n      isDraggingOverDocument = _useDropZone.isDraggingOverDocument,\n      isDraggingOverElement = _useDropZone.isDraggingOverElement,\n      type = _useDropZone.type;\n\n  var children;\n\n  if (isDraggingOverElement) {\n    children = Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"components-drop-zone__content\"\n    }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n      icon: upload[\"a\" /* default */],\n      className: \"components-drop-zone__content-icon\"\n    }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"components-drop-zone__content-text\"\n    }, label ? label : Object(external_this_wp_i18n_[\"__\"])('Drop files to upload')));\n  }\n\n  var classes = classnames_default()('components-drop-zone', className, Object(defineProperty[\"a\" /* default */])({\n    'is-active': (isDraggingOverDocument || isDraggingOverElement) && (type === 'file' && onFilesDrop || type === 'html' && onHTMLDrop || type === 'default' && onDrop),\n    'is-dragging-over-document': isDraggingOverDocument,\n    'is-dragging-over-element': isDraggingOverElement\n  }, \"is-dragging-\".concat(type), !!type));\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: element,\n    className: classes\n  }, children);\n}\n\n/* harmony default export */ var drop_zone = (drop_zone_DropZone);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/container.js\n\n\n\n\n\n\n\n\n\n\nfunction container_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (container_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction container_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction cycleValue(value, total, offset) {\n  var nextValue = value + offset;\n\n  if (nextValue < 0) {\n    return total + nextValue;\n  } else if (nextValue >= total) {\n    return nextValue - total;\n  }\n\n  return nextValue;\n}\n\nvar container_NavigableContainer = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(NavigableContainer, _Component);\n\n  var _super = container_createSuper(NavigableContainer);\n\n  function NavigableContainer() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, NavigableContainer);\n\n    _this = _super.apply(this, arguments);\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindContainer = _this.bindContainer.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getFocusableContext = _this.getFocusableContext.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getFocusableIndex = _this.getFocusableIndex.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(NavigableContainer, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // We use DOM event listeners instead of React event listeners\n      // because we want to catch events from the underlying DOM tree\n      // The React Tree can be different from the DOM tree when using\n      // portals. Block Toolbars for instance are rendered in a separate\n      // React Trees.\n      this.container.addEventListener('keydown', this.onKeyDown);\n      this.container.addEventListener('focus', this.onFocus);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.container.removeEventListener('keydown', this.onKeyDown);\n      this.container.removeEventListener('focus', this.onFocus);\n    }\n  }, {\n    key: \"bindContainer\",\n    value: function bindContainer(ref) {\n      var forwardedRef = this.props.forwardedRef;\n      this.container = ref;\n\n      if (Object(external_this_lodash_[\"isFunction\"])(forwardedRef)) {\n        forwardedRef(ref);\n      } else if (forwardedRef && 'current' in forwardedRef) {\n        forwardedRef.current = ref;\n      }\n    }\n  }, {\n    key: \"getFocusableContext\",\n    value: function getFocusableContext(target) {\n      var onlyBrowserTabstops = this.props.onlyBrowserTabstops;\n      var finder = onlyBrowserTabstops ? external_this_wp_dom_[\"focus\"].tabbable : external_this_wp_dom_[\"focus\"].focusable;\n      var focusables = finder.find(this.container);\n      var index = this.getFocusableIndex(focusables, target);\n\n      if (index > -1 && target) {\n        return {\n          index: index,\n          target: target,\n          focusables: focusables\n        };\n      }\n\n      return null;\n    }\n  }, {\n    key: \"getFocusableIndex\",\n    value: function getFocusableIndex(focusables, target) {\n      var directIndex = focusables.indexOf(target);\n\n      if (directIndex !== -1) {\n        return directIndex;\n      }\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      if (this.props.onKeyDown) {\n        this.props.onKeyDown(event);\n      }\n\n      var getFocusableContext = this.getFocusableContext;\n      var _this$props = this.props,\n          _this$props$cycle = _this$props.cycle,\n          cycle = _this$props$cycle === void 0 ? true : _this$props$cycle,\n          eventToOffset = _this$props.eventToOffset,\n          _this$props$onNavigat = _this$props.onNavigate,\n          onNavigate = _this$props$onNavigat === void 0 ? external_this_lodash_[\"noop\"] : _this$props$onNavigat,\n          stopNavigationEvents = _this$props.stopNavigationEvents;\n      var offset = eventToOffset(event); // eventToOffset returns undefined if the event is not handled by the component\n\n      if (offset !== undefined && stopNavigationEvents) {\n        // Prevents arrow key handlers bound to the document directly interfering\n        event.stopImmediatePropagation(); // When navigating a collection of items, prevent scroll containers\n        // from scrolling.\n\n        if (event.target.getAttribute('role') === 'menuitem') {\n          event.preventDefault();\n        }\n      }\n\n      if (!offset) {\n        return;\n      }\n\n      var context = getFocusableContext(document.activeElement);\n\n      if (!context) {\n        return;\n      }\n\n      var index = context.index,\n          focusables = context.focusables;\n      var nextIndex = cycle ? cycleValue(index, focusables.length, offset) : index + offset;\n\n      if (nextIndex >= 0 && nextIndex < focusables.length) {\n        focusables[nextIndex].focus();\n        onNavigate(nextIndex, focusables[nextIndex]);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          children = _this$props2.children,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_this$props2, [\"children\"]);\n\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n        ref: this.bindContainer\n      }, Object(external_this_lodash_[\"omit\"])(props, ['stopNavigationEvents', 'eventToOffset', 'onNavigate', 'onKeyDown', 'cycle', 'onlyBrowserTabstops', 'forwardedRef'])), children);\n    }\n  }]);\n\n  return NavigableContainer;\n}(external_this_wp_element_[\"Component\"]);\n\nvar container_forwardedNavigableContainer = function forwardedNavigableContainer(props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(container_NavigableContainer, Object(esm_extends[\"a\" /* default */])({}, props, {\n    forwardedRef: ref\n  }));\n};\n\ncontainer_forwardedNavigableContainer.displayName = 'NavigableContainer';\n/* harmony default export */ var navigable_container_container = (Object(external_this_wp_element_[\"forwardRef\"])(container_forwardedNavigableContainer));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/menu.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction NavigableMenu(_ref, ref) {\n  var _ref$role = _ref.role,\n      role = _ref$role === void 0 ? 'menu' : _ref$role,\n      _ref$orientation = _ref.orientation,\n      orientation = _ref$orientation === void 0 ? 'vertical' : _ref$orientation,\n      rest = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"role\", \"orientation\"]);\n\n  var eventToOffset = function eventToOffset(evt) {\n    var keyCode = evt.keyCode;\n    var next = [external_this_wp_keycodes_[\"DOWN\"]];\n    var previous = [external_this_wp_keycodes_[\"UP\"]];\n\n    if (orientation === 'horizontal') {\n      next = [external_this_wp_keycodes_[\"RIGHT\"]];\n      previous = [external_this_wp_keycodes_[\"LEFT\"]];\n    }\n\n    if (orientation === 'both') {\n      next = [external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"DOWN\"]];\n      previous = [external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"UP\"]];\n    }\n\n    if (Object(external_this_lodash_[\"includes\"])(next, keyCode)) {\n      return 1;\n    } else if (Object(external_this_lodash_[\"includes\"])(previous, keyCode)) {\n      return -1;\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(navigable_container_container, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    stopNavigationEvents: true,\n    onlyBrowserTabstops: false,\n    role: role,\n    \"aria-orientation\": role === 'presentation' ? null : orientation,\n    eventToOffset: eventToOffset\n  }, rest));\n}\n/* harmony default export */ var menu = (Object(external_this_wp_element_[\"forwardRef\"])(NavigableMenu));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown-menu/index.js\n\n\n\n\nfunction dropdown_menu_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction dropdown_menu_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { dropdown_menu_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { dropdown_menu_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction mergeProps() {\n  var defaultProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  var mergedProps = dropdown_menu_objectSpread({}, defaultProps, {}, props);\n\n  if (props.className && defaultProps.className) {\n    mergedProps.className = classnames_default()(props.className, defaultProps.className);\n  }\n\n  return mergedProps;\n}\n\nfunction DropdownMenu(_ref) {\n  var children = _ref.children,\n      className = _ref.className,\n      controls = _ref.controls,\n      _ref$icon = _ref.icon,\n      icon = _ref$icon === void 0 ? 'menu' : _ref$icon,\n      label = _ref.label,\n      popoverProps = _ref.popoverProps,\n      toggleProps = _ref.toggleProps,\n      menuProps = _ref.menuProps,\n      _ref$disableOpenOnArr = _ref.disableOpenOnArrowDown,\n      disableOpenOnArrowDown = _ref$disableOpenOnArr === void 0 ? false : _ref$disableOpenOnArr,\n      menuLabel = _ref.menuLabel,\n      position = _ref.position,\n      noIcons = _ref.noIcons;\n\n  if (menuLabel) {\n    external_this_wp_deprecated_default()('`menuLabel` prop in `DropdownComponent`', {\n      alternative: '`menuProps` object and its `aria-label` property',\n      plugin: 'Gutenberg'\n    });\n  }\n\n  if (position) {\n    external_this_wp_deprecated_default()('`position` prop in `DropdownComponent`', {\n      alternative: '`popoverProps` object and its `position` property',\n      plugin: 'Gutenberg'\n    });\n  }\n\n  if (Object(external_this_lodash_[\"isEmpty\"])(controls) && !Object(external_this_lodash_[\"isFunction\"])(children)) {\n    return null;\n  } // Normalize controls to nested array of objects (sets of controls)\n\n\n  var controlSets;\n\n  if (!Object(external_this_lodash_[\"isEmpty\"])(controls)) {\n    controlSets = controls;\n\n    if (!Array.isArray(controlSets[0])) {\n      controlSets = [controlSets];\n    }\n  }\n\n  var mergedPopoverProps = mergeProps({\n    className: 'components-dropdown-menu__popover',\n    position: position\n  }, popoverProps);\n  return Object(external_this_wp_element_[\"createElement\"])(Dropdown, {\n    className: classnames_default()('components-dropdown-menu', className),\n    popoverProps: mergedPopoverProps,\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n\n      var openOnArrowDown = function openOnArrowDown(event) {\n        if (disableOpenOnArrowDown) {\n          return;\n        }\n\n        if (!isOpen && event.keyCode === external_this_wp_keycodes_[\"DOWN\"]) {\n          event.preventDefault();\n          event.stopPropagation();\n          onToggle();\n        }\n      };\n\n      var mergedToggleProps = mergeProps({\n        className: classnames_default()('components-dropdown-menu__toggle', {\n          'is-opened': isOpen\n        })\n      }, toggleProps);\n      return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({}, mergedToggleProps, {\n        icon: icon,\n        onClick: function onClick(event) {\n          onToggle(event);\n\n          if (mergedToggleProps.onClick) {\n            mergedToggleProps.onClick(event);\n          }\n        },\n        onKeyDown: function onKeyDown(event) {\n          openOnArrowDown(event);\n\n          if (mergedToggleProps.onKeyDown) {\n            mergedToggleProps.onKeyDown(event);\n          }\n        },\n        \"aria-haspopup\": \"true\",\n        \"aria-expanded\": isOpen,\n        label: label,\n        showTooltip: true\n      }), mergedToggleProps.children);\n    },\n    renderContent: function renderContent(props) {\n      var mergedMenuProps = mergeProps({\n        'aria-label': menuLabel || label,\n        className: classnames_default()('components-dropdown-menu__menu', {\n          'no-icons': noIcons\n        })\n      }, menuProps);\n      return Object(external_this_wp_element_[\"createElement\"])(menu, Object(esm_extends[\"a\" /* default */])({}, mergedMenuProps, {\n        role: \"menu\"\n      }), Object(external_this_lodash_[\"isFunction\"])(children) ? children(props) : null, Object(external_this_lodash_[\"flatMap\"])(controlSets, function (controlSet, indexOfSet) {\n        return controlSet.map(function (control, indexOfControl) {\n          return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n            key: [indexOfSet, indexOfControl].join(),\n            onClick: function onClick(event) {\n              event.stopPropagation();\n              props.onClose();\n\n              if (control.onClick) {\n                control.onClick();\n              }\n            },\n            className: classnames_default()('components-dropdown-menu__menu-item', {\n              'has-separator': indexOfSet > 0 && indexOfControl === 0,\n              'is-active': control.isActive\n            }),\n            icon: control.icon,\n            \"aria-checked\": control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.isActive : undefined,\n            role: control.role === 'menuitemcheckbox' || control.role === 'menuitemradio' ? control.role : 'menuitem',\n            disabled: control.isDisabled\n          }, control.title);\n        });\n      }));\n    }\n  });\n}\n\n/* harmony default export */ var dropdown_menu = (DropdownMenu);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js\nvar external = __webpack_require__(405);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/external-link/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction ExternalLink(_ref, ref) {\n  var href = _ref.href,\n      children = _ref.children,\n      className = _ref.className,\n      _ref$rel = _ref.rel,\n      rel = _ref$rel === void 0 ? '' : _ref$rel,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"href\", \"children\", \"className\", \"rel\"]);\n\n  rel = Object(external_this_lodash_[\"uniq\"])(Object(external_this_lodash_[\"compact\"])([].concat(Object(toConsumableArray[\"a\" /* default */])(rel.split(' ')), ['external', 'noreferrer', 'noopener']))).join(' ');\n  var classes = classnames_default()('components-external-link', className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"a\", Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes,\n    href: href // eslint-disable-next-line react/jsx-no-target-blank\n    ,\n    target: \"_blank\",\n    rel: rel,\n    ref: ref\n  }), children, Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    as: \"span\"\n  },\n  /* translators: accessibility text */\n  Object(external_this_wp_i18n_[\"__\"])('(opens in a new tab)')), Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n    icon: external[\"a\" /* default */],\n    className: \"components-external-link__icon\"\n  }));\n}\n/* harmony default export */ var external_link = (Object(external_this_wp_element_[\"forwardRef\"])(ExternalLink));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-outside/index.js\nvar with_focus_outside = __webpack_require__(105);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focal-point-picker/index.js\n\n\n\n\n\n\n\n\nfunction focal_point_picker_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (focal_point_picker_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction focal_point_picker_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar TEXTCONTROL_MIN = 0;\nvar TEXTCONTROL_MAX = 100;\nvar focal_point_picker_FocalPointPicker = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FocalPointPicker, _Component);\n\n  var _super = focal_point_picker_createSuper(FocalPointPicker);\n\n  function FocalPointPicker(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, FocalPointPicker);\n\n    _this = _super.call(this, props);\n    _this.onMouseMove = _this.onMouseMove.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      isDragging: false,\n      bounds: {},\n      percentages: props.value\n    };\n    _this.containerRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.imageRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.horizontalPositionChanged = _this.horizontalPositionChanged.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.verticalPositionChanged = _this.verticalPositionChanged.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onLoad = _this.onLoad.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(FocalPointPicker, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.url !== this.props.url) {\n        this.setState({\n          isDragging: false\n        });\n      }\n    }\n  }, {\n    key: \"calculateBounds\",\n    value: function calculateBounds() {\n      var bounds = {\n        top: 0,\n        left: 0,\n        bottom: 0,\n        right: 0,\n        width: 0,\n        height: 0\n      };\n\n      if (!this.imageRef.current) {\n        return bounds;\n      }\n\n      var dimensions = {\n        width: this.imageRef.current.clientWidth,\n        height: this.imageRef.current.clientHeight\n      };\n      var pickerDimensions = this.pickerDimensions();\n      var widthRatio = pickerDimensions.width / dimensions.width;\n      var heightRatio = pickerDimensions.height / dimensions.height;\n\n      if (heightRatio >= widthRatio) {\n        bounds.width = bounds.right = pickerDimensions.width;\n        bounds.height = dimensions.height * widthRatio;\n        bounds.top = (pickerDimensions.height - bounds.height) / 2;\n        bounds.bottom = bounds.top + bounds.height;\n      } else {\n        bounds.height = bounds.bottom = pickerDimensions.height;\n        bounds.width = dimensions.width * heightRatio;\n        bounds.left = (pickerDimensions.width - bounds.width) / 2;\n        bounds.right = bounds.left + bounds.width;\n      }\n\n      return bounds;\n    }\n  }, {\n    key: \"onLoad\",\n    value: function onLoad() {\n      this.setState({\n        bounds: this.calculateBounds()\n      });\n    }\n  }, {\n    key: \"onMouseMove\",\n    value: function onMouseMove(event) {\n      var _this$state = this.state,\n          isDragging = _this$state.isDragging,\n          bounds = _this$state.bounds;\n      var onChange = this.props.onChange;\n\n      if (isDragging) {\n        var pickerDimensions = this.pickerDimensions();\n        var cursorPosition = {\n          left: event.pageX - pickerDimensions.left,\n          top: event.pageY - pickerDimensions.top\n        };\n        var left = Math.max(bounds.left, Math.min(cursorPosition.left, bounds.right));\n        var top = Math.max(bounds.top, Math.min(cursorPosition.top, bounds.bottom));\n        var percentages = {\n          x: ((left - bounds.left) / (pickerDimensions.width - bounds.left * 2)).toFixed(2),\n          y: ((top - bounds.top) / (pickerDimensions.height - bounds.top * 2)).toFixed(2)\n        };\n        this.setState({\n          percentages: percentages\n        }, function () {\n          onChange({\n            x: this.state.percentages.x,\n            y: this.state.percentages.y\n          });\n        });\n      }\n    }\n  }, {\n    key: \"fractionToPercentage\",\n    value: function fractionToPercentage(fraction) {\n      return Math.round(fraction * 100);\n    }\n  }, {\n    key: \"horizontalPositionChanged\",\n    value: function horizontalPositionChanged(event) {\n      this.positionChangeFromTextControl('x', event.target.value);\n    }\n  }, {\n    key: \"verticalPositionChanged\",\n    value: function verticalPositionChanged(event) {\n      this.positionChangeFromTextControl('y', event.target.value);\n    }\n  }, {\n    key: \"positionChangeFromTextControl\",\n    value: function positionChangeFromTextControl(axis, value) {\n      var onChange = this.props.onChange;\n      var percentages = this.state.percentages;\n      var cleanValue = Math.max(Math.min(parseInt(value), 100), 0);\n      percentages[axis] = (cleanValue ? cleanValue / 100 : 0).toFixed(2);\n      this.setState({\n        percentages: percentages\n      }, function () {\n        onChange({\n          x: this.state.percentages.x,\n          y: this.state.percentages.y\n        });\n      });\n    }\n  }, {\n    key: \"pickerDimensions\",\n    value: function pickerDimensions() {\n      if (this.containerRef.current) {\n        return {\n          width: this.containerRef.current.clientWidth,\n          height: this.containerRef.current.clientHeight,\n          top: this.containerRef.current.getBoundingClientRect().top + document.body.scrollTop,\n          left: this.containerRef.current.getBoundingClientRect().left\n        };\n      }\n\n      return {\n        width: 0,\n        height: 0,\n        left: 0,\n        top: 0\n      };\n    }\n  }, {\n    key: \"handleFocusOutside\",\n    value: function handleFocusOutside() {\n      this.setState({\n        isDragging: false\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var _this$props = this.props,\n          instanceId = _this$props.instanceId,\n          url = _this$props.url,\n          value = _this$props.value,\n          label = _this$props.label,\n          help = _this$props.help,\n          className = _this$props.className;\n      var _this$state2 = this.state,\n          bounds = _this$state2.bounds,\n          isDragging = _this$state2.isDragging,\n          percentages = _this$state2.percentages;\n      var pickerDimensions = this.pickerDimensions();\n      var iconCoordinates = {\n        left: value.x * (pickerDimensions.width - bounds.left * 2) + bounds.left,\n        top: value.y * (pickerDimensions.height - bounds.top * 2) + bounds.top\n      };\n      var iconContainerStyle = {\n        left: \"\".concat(iconCoordinates.left, \"px\"),\n        top: \"\".concat(iconCoordinates.top, \"px\")\n      };\n      var iconContainerClasses = classnames_default()('components-focal-point-picker__icon_container', isDragging ? 'is-dragging' : null);\n      var id = \"inspector-focal-point-picker-control-\".concat(instanceId);\n      var horizontalPositionId = \"inspector-focal-point-picker-control-horizontal-position-\".concat(instanceId);\n      var verticalPositionId = \"inspector-focal-point-picker-control-vertical-position-\".concat(instanceId);\n      return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n        label: label,\n        id: id,\n        help: help,\n        className: className\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-focal-point-picker-wrapper\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-focal-point-picker\",\n        onMouseDown: function onMouseDown() {\n          return _this2.setState({\n            isDragging: true\n          });\n        },\n        onDragStart: function onDragStart() {\n          return _this2.setState({\n            isDragging: true\n          });\n        },\n        onMouseUp: function onMouseUp() {\n          return _this2.setState({\n            isDragging: false\n          });\n        },\n        onDrop: function onDrop() {\n          return _this2.setState({\n            isDragging: false\n          });\n        },\n        onMouseMove: this.onMouseMove,\n        ref: this.containerRef,\n        role: \"button\",\n        tabIndex: \"-1\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        alt: \"Dimensions helper\",\n        onLoad: this.onLoad,\n        ref: this.imageRef,\n        src: url,\n        draggable: \"false\"\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: iconContainerClasses,\n        style: iconContainerStyle\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n        className: \"components-focal-point-picker__icon\",\n        xmlns: \"http://www.w3.org/2000/svg\",\n        viewBox: \"0 0 30 30\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n        className: \"components-focal-point-picker__icon-outline\",\n        d: \"M15 1C7.3 1 1 7.3 1 15s6.3 14 14 14 14-6.3 14-14S22.7 1 15 1zm0 22c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z\"\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n        className: \"components-focal-point-picker__icon-fill\",\n        d: \"M15 3C8.4 3 3 8.4 3 15s5.4 12 12 12 12-5.4 12-12S21.6 3 15 3zm0 22C9.5 25 5 20.5 5 15S9.5 5 15 5s10 4.5 10 10-4.5 10-10 10z\"\n      }))))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"components-focal-point-picker_position-display-container\"\n      }, Object(external_this_wp_element_[\"createElement\"])(base_control, {\n        label: Object(external_this_wp_i18n_[\"__\"])('Horizontal pos.'),\n        id: horizontalPositionId\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        className: \"components-text-control__input\",\n        id: horizontalPositionId,\n        max: TEXTCONTROL_MAX,\n        min: TEXTCONTROL_MIN,\n        onChange: this.horizontalPositionChanged,\n        type: \"number\",\n        value: this.fractionToPercentage(percentages.x)\n      }), Object(external_this_wp_element_[\"createElement\"])(\"span\", null, \"%\")), Object(external_this_wp_element_[\"createElement\"])(base_control, {\n        label: Object(external_this_wp_i18n_[\"__\"])('Vertical pos.'),\n        id: verticalPositionId\n      }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        className: \"components-text-control__input\",\n        id: verticalPositionId,\n        max: TEXTCONTROL_MAX,\n        min: TEXTCONTROL_MIN,\n        onChange: this.verticalPositionChanged,\n        type: \"number\",\n        value: this.fractionToPercentage(percentages.y)\n      }), Object(external_this_wp_element_[\"createElement\"])(\"span\", null, \"%\"))));\n    }\n  }]);\n\n  return FocalPointPicker;\n}(external_this_wp_element_[\"Component\"]);\nfocal_point_picker_FocalPointPicker.defaultProps = {\n  url: null,\n  value: {\n    x: 0.5,\n    y: 0.5\n  },\n  onChange: function onChange() {}\n};\n/* harmony default export */ var focal_point_picker = (Object(external_this_wp_compose_[\"compose\"])([external_this_wp_compose_[\"withInstanceId\"], with_focus_outside[\"a\" /* default */]])(focal_point_picker_FocalPointPicker));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/focusable-iframe/index.js\n\n\n\n\n\n\n\n\n\nfunction focusable_iframe_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (focusable_iframe_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction focusable_iframe_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Browser dependencies\n */\n\nvar _window = window,\n    FocusEvent = _window.FocusEvent;\n\nvar focusable_iframe_FocusableIframe = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FocusableIframe, _Component);\n\n  var _super = focusable_iframe_createSuper(FocusableIframe);\n\n  function FocusableIframe(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, FocusableIframe);\n\n    _this = _super.apply(this, arguments);\n    _this.checkFocus = _this.checkFocus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.node = props.iframeRef || Object(external_this_wp_element_[\"createRef\"])();\n    return _this;\n  }\n  /**\n   * Checks whether the iframe is the activeElement, inferring that it has\n   * then received focus, and calls the `onFocus` prop callback.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(FocusableIframe, [{\n    key: \"checkFocus\",\n    value: function checkFocus() {\n      var iframe = this.node.current;\n\n      if (document.activeElement !== iframe) {\n        return;\n      }\n\n      var focusEvent = new FocusEvent('focus', {\n        bubbles: true\n      });\n      iframe.dispatchEvent(focusEvent);\n      var onFocus = this.props.onFocus;\n\n      if (onFocus) {\n        onFocus(focusEvent);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      // Disable reason: The rendered iframe is a pass-through component,\n      // assigning props inherited from the rendering parent. It's the\n      // responsibility of the parent to assign a title.\n\n      /* eslint-disable jsx-a11y/iframe-has-title */\n      return Object(external_this_wp_element_[\"createElement\"])(\"iframe\", Object(esm_extends[\"a\" /* default */])({\n        ref: this.node\n      }, Object(external_this_lodash_[\"omit\"])(this.props, ['iframeRef', 'onFocus'])));\n      /* eslint-enable jsx-a11y/iframe-has-title */\n    }\n  }]);\n\n  return FocusableIframe;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var focusable_iframe = (Object(external_this_wp_compose_[\"withGlobalEvents\"])({\n  blur: 'checkFocus'\n})(focusable_iframe_FocusableIframe));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/text-color.js\nvar text_color = __webpack_require__(406);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/utils.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A float supported clamp function for a specific value.\n *\n * @param {number|null} value The value to clamp.\n * @param {number}      min   The minimum value.\n * @param {number}      max   The maximum value.\n *\n * @return {number} A (float) number\n */\n\nfunction floatClamp(value, min, max) {\n  if (typeof value !== 'number') {\n    return null;\n  }\n\n  return parseFloat(Object(external_this_lodash_[\"clamp\"])(value, min, max));\n}\n/**\n * Hook to store a clamped value, derived from props.\n *\n * @param {Object} settings         Hook settings.\n * @param {number} settings.min     The minimum value.\n * @param {number} settings.max     The maximum value.\n * @param {number} settings.value  \tThe current value.\n * @param {any}    settings.initial The initial value.\n *\n * @return {[*, Function]} The controlled value and the value setter.\n */\n\nfunction useControlledRangeValue(_ref) {\n  var min = _ref.min,\n      max = _ref.max,\n      valueProp = _ref.value,\n      initial = _ref.initial;\n\n  var _useControlledState = use_controlled_state(floatClamp(valueProp, min, max), {\n    initial: initial,\n    fallback: null\n  }),\n      _useControlledState2 = Object(slicedToArray[\"a\" /* default */])(_useControlledState, 2),\n      state = _useControlledState2[0],\n      setInternalState = _useControlledState2[1];\n\n  var setState = Object(external_this_wp_element_[\"useCallback\"])(function (nextValue) {\n    if (nextValue === null) {\n      setInternalState(null);\n    } else {\n      setInternalState(floatClamp(nextValue, min, max));\n    }\n  }, [min, max]);\n  return [state, setState];\n}\n/**\n * Hook to encapsulate the debouncing \"hover\" to better handle the showing\n * and hiding of the Tooltip.\n *\n * @param {Object}   settings                     Hook settings.\n * @param {Function} [settings.onShow=noop]       A callback function invoked when the element is shown.\n * @param {Function} [settings.onHide=noop]       A callback function invoked when the element is hidden.\n * @param {Function} [settings.onMouseMove=noop]  A callback function invoked when the mouse is moved.\n * @param {Function} [settings.onMouseLeave=noop] A callback function invoked when the mouse is moved out of the element.\n * @param {number}   [settings.timeout=300]       Timeout before the element is shown or hidden.\n *\n * @return {Object} Bound properties for use on a React.Node.\n */\n\nfunction useDebouncedHoverInteraction(_ref2) {\n  var _ref2$onHide = _ref2.onHide,\n      onHide = _ref2$onHide === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onHide,\n      _ref2$onMouseLeave = _ref2.onMouseLeave,\n      onMouseLeave = _ref2$onMouseLeave === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onMouseLeave,\n      _ref2$onMouseMove = _ref2.onMouseMove,\n      onMouseMove = _ref2$onMouseMove === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onMouseMove,\n      _ref2$onShow = _ref2.onShow,\n      onShow = _ref2$onShow === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onShow,\n      _ref2$timeout = _ref2.timeout,\n      timeout = _ref2$timeout === void 0 ? 300 : _ref2$timeout;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      show = _useState2[0],\n      setShow = _useState2[1];\n\n  var timeoutRef = Object(external_this_wp_element_[\"useRef\"])();\n  var setDebouncedTimeout = Object(external_this_wp_element_[\"useCallback\"])(function (callback) {\n    window.clearTimeout(timeoutRef.current);\n    timeoutRef.current = setTimeout(callback, timeout);\n  }, [timeout]);\n  var handleOnMouseMove = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    onMouseMove(event);\n    setDebouncedTimeout(function () {\n      if (!show) {\n        setShow(true);\n        onShow();\n      }\n    });\n  }, []);\n  var handleOnMouseLeave = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    onMouseLeave(event);\n    setDebouncedTimeout(function () {\n      setShow(false);\n      onHide();\n    });\n  }, []);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      window.clearTimeout(timeoutRef.current);\n    };\n  });\n  return {\n    onMouseMove: handleOnMouseMove,\n    onMouseLeave: handleOnMouseLeave\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/styles/range-control-styles.js\n\n\nfunction range_control_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar range_control_styles_ref =  true ? {\n  name: \"tdik1c\",\n  styles: \"height:30px;min-height:30px;\"\n} : undefined;\n\nvar rangeHeight = function rangeHeight() {\n  return range_control_styles_ref;\n};\n\nvar range_control_styles_Root = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y20\",\n  label: \"Root\"\n})( true ? {\n  name: \"1916452\",\n  styles: \"-webkit-tap-highlight-color:transparent;box-sizing:border-box;cursor:pointer;align-items:flex-start;display:inline-flex;justify-content:flex-start;padding:0;position:relative;touch-action:none;width:100%;\"\n} : undefined);\n\nvar range_control_styles_wrapperColor = function wrapperColor(_ref4) {\n  var _ref4$color = _ref4.color,\n      colorProp = _ref4$color === void 0 ? colors_color('ui.borderFocus') : _ref4$color;\n  return /*#__PURE__*/css_browser_esm({\n    color: colorProp\n  },  true ? \"\" : undefined);\n};\n\nvar range_control_styles_wrapperMargin = function wrapperMargin(_ref5) {\n  var marks = _ref5.marks;\n  return /*#__PURE__*/css_browser_esm({\n    marginBottom: marks ? 16 : null\n  },  true ? \"\" : undefined);\n};\n\nvar range_control_styles_Wrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y21\",\n  label: \"Wrapper\"\n})(\"box-sizing:border-box;display:block;flex:1;padding-top:15px;position:relative;width:100%;\", range_control_styles_wrapperColor, \";\", rangeHeight, \";\", range_control_styles_wrapperMargin, \";\", rtl({\n  marginLeft: 10\n}),  true ? \"\" : undefined);\nvar BeforeIconWrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y22\",\n  label: \"BeforeIconWrapper\"\n})(\"margin-top:3px;\", rtl({\n  marginRight: 6\n}),  true ? \"\" : undefined);\nvar AfterIconWrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y23\",\n  label: \"AfterIconWrapper\"\n})(\"margin-top:3px;\", rtl({\n  marginLeft: 16\n}),  true ? \"\" : undefined);\n\nvar range_control_styles_railBackgroundColor = function railBackgroundColor(_ref6) {\n  var disabled = _ref6.disabled,\n      railColor = _ref6.railColor;\n  var background = railColor || null;\n\n  if (disabled) {\n    background = colors_color('lightGray.400');\n  }\n\n  return /*#__PURE__*/css_browser_esm({\n    background: background\n  },  true ? \"\" : undefined);\n};\n\nvar Rail = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y24\",\n  label: \"Rail\"\n})(\"background-color:\", colors_color('lightGray.600'), \";box-sizing:border-box;left:0;pointer-events:none;right:0;display:block;height:3px;position:absolute;margin-top:14px;top:0;\", range_control_styles_railBackgroundColor, \";\" + ( true ? \"\" : undefined));\n\nvar range_control_styles_trackBackgroundColor = function trackBackgroundColor(_ref7) {\n  var disabled = _ref7.disabled,\n      trackColor = _ref7.trackColor;\n  var background = trackColor || 'currentColor';\n\n  if (disabled) {\n    background = colors_color('lightGray.800');\n  }\n\n  return /*#__PURE__*/css_browser_esm({\n    background: background\n  },  true ? \"\" : undefined);\n};\n\nvar Track = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y25\",\n  label: \"Track\"\n})(\"background-color:currentColor;border-radius:1px;box-sizing:border-box;height:3px;pointer-events:none;display:block;position:absolute;margin-top:14px;top:0;\", range_control_styles_trackBackgroundColor, \";\" + ( true ? \"\" : undefined));\nvar MarksWrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y26\",\n  label: \"MarksWrapper\"\n})( true ? {\n  name: \"sx8y8z\",\n  styles: \"box-sizing:border-box;display:block;position:relative;width:100%;user-select:none;\"\n} : undefined);\n\nvar range_control_styles_markFill = function markFill(_ref8) {\n  var disabled = _ref8.disabled,\n      isFilled = _ref8.isFilled;\n  var backgroundColor = isFilled ? 'currentColor' : colors_color('lightGray.600');\n\n  if (disabled) {\n    backgroundColor = colors_color('lightGray.800');\n  }\n\n  return /*#__PURE__*/css_browser_esm({\n    backgroundColor: backgroundColor\n  },  true ? \"\" : undefined);\n};\n\nvar Mark = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y27\",\n  label: \"Mark\"\n})(\"box-sizing:border-box;height:9px;left:0;position:absolute;top:-4px;width:1px;\", range_control_styles_markFill, \";\" + ( true ? \"\" : undefined));\n\nvar range_control_styles_markLabelFill = function markLabelFill(_ref9) {\n  var isFilled = _ref9.isFilled;\n  return /*#__PURE__*/css_browser_esm({\n    color: isFilled ? colors_color('darkGray.300') : colors_color('lightGray.600')\n  },  true ? \"\" : undefined);\n};\n\nvar MarkLabel = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y28\",\n  label: \"MarkLabel\"\n})(\"box-sizing:border-box;color:\", colors_color('lightGray.600'), \";left:0;font-size:11px;position:absolute;top:12px;transform:translateX( -50% );white-space:nowrap;\", range_control_styles_markLabelFill, \";\" + ( true ? \"\" : undefined));\nvar ThumbWrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y29\",\n  label: \"ThumbWrapper\"\n})(\"align-items:center;box-sizing:border-box;display:flex;height:20px;justify-content:center;margin-top:5px;outline:0;pointer-events:none;position:absolute;top:0;user-select:none;width:20px;\", rtl({\n  marginLeft: -10\n}),  true ? \"\" : undefined);\n\nvar range_control_styles_thumbFocus = function thumbFocus(_ref10) {\n  var isFocused = _ref10.isFocused;\n  return /*#__PURE__*/css_browser_esm({\n    borderColor: isFocused ? colors_color('ui.borderFocus') : colors_color('darkGray.200'),\n    boxShadow: isFocused ? \"\\n\\t\\t\\t\\t0 0 0 1px \".concat(colors_color('ui.borderFocus'), \"\\n\\t\\t\\t\") : \"\\n\\t\\t\\t\\t0 0 0 rgba(0, 0, 0, 0)\\n\\t\\t\\t\"\n  },  true ? \"\" : undefined);\n};\n\nvar Thumb = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y210\",\n  label: \"Thumb\"\n})(\"align-items:center;background-color:white;border-radius:50%;border:1px solid \", colors_color('darkGray.200'), \";box-sizing:border-box;height:100%;outline:0;pointer-events:none;position:absolute;user-select:none;width:100%;\", range_control_styles_thumbFocus, \";\" + ( true ? \"\" : undefined));\nvar InputRange = styled_base_browser_esm(\"input\", {\n  target: \"exqw8y211\",\n  label: \"InputRange\"\n})( true ? {\n  name: \"cvc9dl\",\n  styles: \"box-sizing:border-box;cursor:pointer;display:block;height:100%;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;width:100%;\"\n} : undefined);\n\nvar range_control_styles_tooltipShow = function tooltipShow(_ref11) {\n  var show = _ref11.show;\n  return /*#__PURE__*/css_browser_esm({\n    opacity: show ? 1 : 0\n  },  true ? \"\" : undefined);\n};\n\nvar range_control_styles_ref2 =  true ? {\n  name: \"5qqmyx\",\n  styles: \"top:-80%;\"\n} : undefined;\n\nvar range_control_styles_ref3 =  true ? {\n  name: \"eda4eg\",\n  styles: \"bottom:-80%;\"\n} : undefined;\n\nvar tooltipPosition = function tooltipPosition(_ref12) {\n  var position = _ref12.position;\n  var isTop = position === 'top';\n\n  if (isTop) {\n    return range_control_styles_ref2;\n  }\n\n  return range_control_styles_ref3;\n};\n\nvar range_control_styles_Tooltip = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y212\",\n  label: \"Tooltip\"\n})(\"background:\", colors_color('ui.border'), \";border-radius:2px;box-sizing:border-box;color:white;display:inline-block;font-size:12px;min-width:32px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;text-align:center;transition:opacity 120ms ease;user-select:none;line-height:1.4;\", range_control_styles_tooltipShow, \";\", tooltipPosition, \";\", reduceMotion('transition'), \";\", rtl({\n  transform: 'translateX(-50%)'\n}, {\n  transform: 'translateX(50%)'\n}),  true ? \"\" : undefined);\nvar InputNumber = /*#__PURE__*/styled_base_browser_esm(number_control, {\n  target: \"exqw8y213\",\n  label: \"InputNumber\"\n})(\"box-sizing:border-box;display:inline-block;font-size:13px;margin-top:0;width:\", space(8), \";input[type='number']&{\", rangeHeight, \";}\", rtl({\n  marginLeft: space(2)\n}),  true ? \"\" : undefined);\nvar ActionRightWrapper = styled_base_browser_esm(\"span\", {\n  target: \"exqw8y214\",\n  label: \"ActionRightWrapper\"\n})(\"box-sizing:border-box;display:block;margin-top:0;button,button.is-small{margin-left:0;\", rangeHeight, \";}\", rtl({\n  marginLeft: 8\n}),  true ? \"\" : undefined);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/input-range.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction input_range_InputRange(_ref, ref) {\n  var describedBy = _ref.describedBy,\n      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,\n      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,\n      label = _ref.label,\n      _ref$onHideTooltip = _ref.onHideTooltip,\n      onHideTooltip = _ref$onHideTooltip === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHideTooltip,\n      _ref$onMouseLeave = _ref.onMouseLeave,\n      onMouseLeave = _ref$onMouseLeave === void 0 ? external_this_lodash_[\"noop\"] : _ref$onMouseLeave,\n      _ref$step = _ref.step,\n      step = _ref$step === void 0 ? 1 : _ref$step,\n      _ref$onBlur = _ref.onBlur,\n      onBlur = _ref$onBlur === void 0 ? external_this_lodash_[\"noop\"] : _ref$onBlur,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onMouseMove = _ref.onMouseMove,\n      onMouseMove = _ref$onMouseMove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onMouseMove,\n      _ref$onShowTooltip = _ref.onShowTooltip,\n      onShowTooltip = _ref$onShowTooltip === void 0 ? external_this_lodash_[\"noop\"] : _ref$onShowTooltip,\n      _ref$shiftStep = _ref.shiftStep,\n      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"describedBy\", \"isShiftStepEnabled\", \"label\", \"onHideTooltip\", \"onMouseLeave\", \"step\", \"onBlur\", \"onChange\", \"onFocus\", \"onMouseMove\", \"onShowTooltip\", \"shiftStep\", \"value\"]);\n\n  var jumpStep = use_jump_step({\n    step: step,\n    shiftStep: shiftStep,\n    isShiftStepEnabled: isShiftStepEnabled\n  });\n  var hoverInteractions = useDebouncedHoverInteraction({\n    onHide: onHideTooltip,\n    onMouseLeave: onMouseLeave,\n    onMouseMove: onMouseMove,\n    onShow: onShowTooltip\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(InputRange, Object(esm_extends[\"a\" /* default */])({}, props, hoverInteractions, {\n    \"aria-describedby\": describedBy,\n    \"aria-label\": label,\n    \"aria-hidden\": false,\n    onBlur: onBlur,\n    onChange: onChange,\n    onFocus: onFocus,\n    ref: ref,\n    step: jumpStep,\n    tabIndex: 0,\n    type: \"range\",\n    value: value\n  }));\n}\n\nvar input_range_ForwardedComponent = Object(external_this_wp_element_[\"forwardRef\"])(input_range_InputRange);\n/* harmony default export */ var input_range = (input_range_ForwardedComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/mark.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction RangeMark(_ref) {\n  var className = _ref.className,\n      _ref$isFilled = _ref.isFilled,\n      isFilled = _ref$isFilled === void 0 ? false : _ref$isFilled,\n      label = _ref.label,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"isFilled\", \"label\", \"style\"]);\n\n  var classes = classnames_default()('components-range-control__mark', isFilled && 'is-filled', className);\n  var labelClasses = classnames_default()('components-range-control__mark-label', isFilled && 'is-filled');\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(Mark, Object(esm_extends[\"a\" /* default */])({}, props, {\n    \"aria-hidden\": \"true\",\n    className: classes,\n    isFilled: isFilled,\n    style: style\n  })), label && Object(external_this_wp_element_[\"createElement\"])(MarkLabel, {\n    \"aria-hidden\": \"true\",\n    className: labelClasses,\n    isFilled: isFilled,\n    style: style\n  }, label));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/rail.js\n\n\n\n\n\n\nfunction rail_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction rail_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { rail_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { rail_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\nfunction RangeRail(_ref) {\n  var _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$marks = _ref.marks,\n      marks = _ref$marks === void 0 ? false : _ref$marks,\n      _ref$min = _ref.min,\n      min = _ref$min === void 0 ? 0 : _ref$min,\n      _ref$max = _ref.max,\n      max = _ref$max === void 0 ? 100 : _ref$max,\n      _ref$step = _ref.step,\n      step = _ref$step === void 0 ? 1 : _ref$step,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? 0 : _ref$value,\n      restProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"disabled\", \"marks\", \"min\", \"max\", \"step\", \"value\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(Rail, Object(esm_extends[\"a\" /* default */])({\n    disabled: disabled\n  }, restProps)), marks && Object(external_this_wp_element_[\"createElement\"])(Marks, {\n    disabled: disabled,\n    marks: marks,\n    min: min,\n    max: max,\n    step: step,\n    value: value\n  }));\n}\n\nfunction Marks(_ref2) {\n  var _ref2$disabled = _ref2.disabled,\n      disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,\n      _ref2$marks = _ref2.marks,\n      marks = _ref2$marks === void 0 ? false : _ref2$marks,\n      _ref2$min = _ref2.min,\n      min = _ref2$min === void 0 ? 0 : _ref2$min,\n      _ref2$max = _ref2.max,\n      max = _ref2$max === void 0 ? 100 : _ref2$max,\n      _ref2$step = _ref2.step,\n      step = _ref2$step === void 0 ? 1 : _ref2$step,\n      _ref2$value = _ref2.value,\n      value = _ref2$value === void 0 ? 0 : _ref2$value;\n  var marksData = useMarks({\n    marks: marks,\n    min: min,\n    max: max,\n    step: step,\n    value: value\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(MarksWrapper, {\n    \"aria-hidden\": \"true\",\n    className: \"components-range-control__marks\"\n  }, marksData.map(function (mark) {\n    return Object(external_this_wp_element_[\"createElement\"])(RangeMark, Object(esm_extends[\"a\" /* default */])({}, mark, {\n      key: mark.key,\n      \"aria-hidden\": \"true\",\n      disabled: disabled\n    }));\n  }));\n}\n\nfunction useMarks(_ref3) {\n  var marks = _ref3.marks,\n      _ref3$min = _ref3.min,\n      min = _ref3$min === void 0 ? 0 : _ref3$min,\n      _ref3$max = _ref3.max,\n      max = _ref3$max === void 0 ? 100 : _ref3$max,\n      _ref3$step = _ref3.step,\n      step = _ref3$step === void 0 ? 1 : _ref3$step,\n      _ref3$value = _ref3.value,\n      value = _ref3$value === void 0 ? 0 : _ref3$value;\n  var isRTL = document.documentElement.dir === 'rtl';\n\n  if (!marks) {\n    return [];\n  }\n\n  var isCustomMarks = Array.isArray(marks);\n  var markCount = Math.round((max - min) / step);\n  var marksArray = isCustomMarks ? marks : Object(toConsumableArray[\"a\" /* default */])(Array(markCount + 1)).map(function (_, index) {\n    return {\n      value: index\n    };\n  });\n  var enhancedMarks = marksArray.map(function (mark, index) {\n    var markValue = mark.value !== undefined ? mark.value : value;\n    var key = \"mark-\".concat(index);\n    var isFilled = markValue * step + min <= value;\n    var offset = \"\".concat(markValue / markCount * 100, \"%\");\n\n    var offsetStyle = Object(defineProperty[\"a\" /* default */])({}, isRTL ? 'right' : 'left', offset);\n\n    return rail_objectSpread({}, mark, {\n      isFilled: isFilled,\n      key: key,\n      style: offsetStyle\n    });\n  });\n  return enhancedMarks;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/tooltip.js\n\n\n\n\n\n\nfunction tooltip_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction tooltip_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { tooltip_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { tooltip_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nvar TOOLTIP_OFFSET_HEIGHT = 32;\nfunction SimpleTooltip(_ref) {\n  var className = _ref.className,\n      inputRef = _ref.inputRef,\n      _ref$position = _ref.position,\n      positionProp = _ref$position === void 0 ? 'auto' : _ref$position,\n      _ref$show = _ref.show,\n      show = _ref$show === void 0 ? false : _ref$show,\n      _ref$style = _ref.style,\n      style = _ref$style === void 0 ? {} : _ref$style,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? 0 : _ref$value,\n      _ref$renderTooltipCon = _ref.renderTooltipContent,\n      renderTooltipContent = _ref$renderTooltipCon === void 0 ? function (v) {\n    return v;\n  } : _ref$renderTooltipCon,\n      _ref$zIndex = _ref.zIndex,\n      zIndex = _ref$zIndex === void 0 ? 100 : _ref$zIndex,\n      restProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"inputRef\", \"position\", \"show\", \"style\", \"value\", \"renderTooltipContent\", \"zIndex\"]);\n\n  var position = useTooltipPosition({\n    inputRef: inputRef,\n    position: positionProp\n  });\n  var classes = classnames_default()('components-simple-tooltip', className);\n\n  var styles = tooltip_objectSpread({}, style, {\n    zIndex: zIndex\n  });\n\n  return Object(external_this_wp_element_[\"createElement\"])(range_control_styles_Tooltip, Object(esm_extends[\"a\" /* default */])({}, restProps, {\n    \"aria-hidden\": show,\n    className: classes,\n    position: position,\n    show: show,\n    role: \"tooltip\",\n    style: styles\n  }), renderTooltipContent(value));\n}\n\nfunction useTooltipPosition(_ref2) {\n  var inputRef = _ref2.inputRef,\n      positionProp = _ref2.position;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])('top'),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      position = _useState2[0],\n      setPosition = _useState2[1];\n\n  var calculatePosition = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    if (inputRef && inputRef.current) {\n      var nextPosition = positionProp;\n\n      if (positionProp === 'auto') {\n        var _inputRef$current$get = inputRef.current.getBoundingClientRect(),\n            top = _inputRef$current$get.top;\n\n        var isOffscreenTop = top - TOOLTIP_OFFSET_HEIGHT < 0;\n        nextPosition = isOffscreenTop ? 'bottom' : 'top';\n      }\n\n      setPosition(nextPosition);\n    }\n  }, [positionProp]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    calculatePosition();\n  }, [calculatePosition]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    window.addEventListener('resize', calculatePosition);\n    return function () {\n      window.removeEventListener('resize', calculatePosition);\n    };\n  });\n  return position;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/input-field.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction input_field_InputField(_ref) {\n  var label = _ref.label,\n      _ref$onBlur = _ref.onBlur,\n      onBlur = _ref$onBlur === void 0 ? external_this_lodash_[\"noop\"] : _ref$onBlur,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onReset = _ref.onReset,\n      onReset = _ref$onReset === void 0 ? external_this_lodash_[\"noop\"] : _ref$onReset,\n      _ref$onKeyDown = _ref.onKeyDown,\n      onKeyDown = _ref$onKeyDown === void 0 ? external_this_lodash_[\"noop\"] : _ref$onKeyDown,\n      valueProp = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"onBlur\", \"onChange\", \"onReset\", \"onKeyDown\", \"value\"]);\n\n  /**\n   * This component stores an internal (input) value state, derived from\n   * the incoming value prop.\n   *\n   * This allows for the <input /> to be updated independently before the\n   * value is applied and propagated. This independent updating action is\n   * necessary to accommodate individual keystroke values that may not\n   * be considered \"valid\" (e.g. within the min - max range).\n   */\n  var _useControlledState = use_controlled_state(valueProp),\n      _useControlledState2 = Object(slicedToArray[\"a\" /* default */])(_useControlledState, 2),\n      value = _useControlledState2[0],\n      setValue = _useControlledState2[1];\n\n  var handleOnReset = function handleOnReset(event) {\n    onReset(event);\n    setValue('');\n  };\n\n  var handleOnCommit = function handleOnCommit(event) {\n    var nextValue = parseFloat(event.target.value);\n\n    if (isNaN(nextValue)) {\n      handleOnReset();\n      return;\n    }\n\n    setValue(nextValue);\n    onChange(nextValue);\n  };\n\n  var handleOnBlur = function handleOnBlur(event) {\n    onBlur(event);\n    handleOnCommit(event);\n  };\n\n  var handleOnChange = function handleOnChange(next) {\n    handleOnCommit({\n      target: {\n        value: next\n      }\n    });\n  };\n\n  var handleOnKeyDown = function handleOnKeyDown(event) {\n    var keyCode = event.keyCode;\n    onKeyDown(event);\n\n    if (keyCode === external_this_wp_keycodes_[\"ENTER\"]) {\n      event.preventDefault();\n      handleOnCommit(event);\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(InputNumber, Object(esm_extends[\"a\" /* default */])({\n    \"aria-label\": label,\n    className: \"components-range-control__number\",\n    inputMode: \"decimal\",\n    onBlur: handleOnBlur,\n    onChange: handleOnChange,\n    onKeyDown: handleOnKeyDown,\n    type: \"number\",\n    value: value\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/range-control/index.js\n\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction RangeControl(_ref, ref) {\n  var _inputRef$current;\n\n  var afterIcon = _ref.afterIcon,\n      _ref$allowReset = _ref.allowReset,\n      allowReset = _ref$allowReset === void 0 ? false : _ref$allowReset,\n      beforeIcon = _ref.beforeIcon,\n      className = _ref.className,\n      currentInput = _ref.currentInput,\n      _ref$color = _ref.color,\n      colorProp = _ref$color === void 0 ? colors_color('ui.brand') : _ref$color,\n      _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      help = _ref.help,\n      initialPosition = _ref.initialPosition,\n      _ref$isShiftStepEnabl = _ref.isShiftStepEnabled,\n      isShiftStepEnabled = _ref$isShiftStepEnabl === void 0 ? true : _ref$isShiftStepEnabl,\n      label = _ref.label,\n      _ref$marks = _ref.marks,\n      marks = _ref$marks === void 0 ? false : _ref$marks,\n      _ref$max = _ref.max,\n      max = _ref$max === void 0 ? 100 : _ref$max,\n      _ref$min = _ref.min,\n      min = _ref$min === void 0 ? 0 : _ref$min,\n      _ref$onBlur = _ref.onBlur,\n      onBlur = _ref$onBlur === void 0 ? external_this_lodash_[\"noop\"] : _ref$onBlur,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      _ref$onFocus = _ref.onFocus,\n      onFocus = _ref$onFocus === void 0 ? external_this_lodash_[\"noop\"] : _ref$onFocus,\n      _ref$onMouseMove = _ref.onMouseMove,\n      onMouseMove = _ref$onMouseMove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onMouseMove,\n      _ref$onMouseLeave = _ref.onMouseLeave,\n      onMouseLeave = _ref$onMouseLeave === void 0 ? external_this_lodash_[\"noop\"] : _ref$onMouseLeave,\n      railColor = _ref.railColor,\n      resetFallbackValue = _ref.resetFallbackValue,\n      _ref$renderTooltipCon = _ref.renderTooltipContent,\n      renderTooltipContent = _ref$renderTooltipCon === void 0 ? function (v) {\n    return v;\n  } : _ref$renderTooltipCon,\n      showTooltipProp = _ref.showTooltip,\n      _ref$shiftStep = _ref.shiftStep,\n      shiftStep = _ref$shiftStep === void 0 ? 10 : _ref$shiftStep,\n      _ref$step = _ref.step,\n      step = _ref$step === void 0 ? 1 : _ref$step,\n      trackColor = _ref.trackColor,\n      valueProp = _ref.value,\n      _ref$withInputField = _ref.withInputField,\n      withInputField = _ref$withInputField === void 0 ? true : _ref$withInputField,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"afterIcon\", \"allowReset\", \"beforeIcon\", \"className\", \"currentInput\", \"color\", \"disabled\", \"help\", \"initialPosition\", \"isShiftStepEnabled\", \"label\", \"marks\", \"max\", \"min\", \"onBlur\", \"onChange\", \"onFocus\", \"onMouseMove\", \"onMouseLeave\", \"railColor\", \"resetFallbackValue\", \"renderTooltipContent\", \"showTooltip\", \"shiftStep\", \"step\", \"trackColor\", \"value\", \"withInputField\"]);\n\n  var isRTL = useRTL();\n\n  var _useControlledRangeVa = useControlledRangeValue({\n    min: min,\n    max: max,\n    value: valueProp,\n    initial: initialPosition\n  }),\n      _useControlledRangeVa2 = Object(slicedToArray[\"a\" /* default */])(_useControlledRangeVa, 2),\n      value = _useControlledRangeVa2[0],\n      setValue = _useControlledRangeVa2[1];\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(showTooltipProp),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      showTooltip = _useState2[0],\n      setShowTooltip = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isFocused = _useState4[0],\n      setIsFocused = _useState4[1];\n\n  var inputRef = Object(external_this_wp_element_[\"useRef\"])();\n\n  var setRef = function setRef(nodeRef) {\n    inputRef.current = nodeRef;\n\n    if (ref) {\n      ref(nodeRef);\n    }\n  };\n\n  var isCurrentlyFocused = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.matches(':focus');\n  var isThumbFocused = !disabled && isFocused;\n  var isValueReset = value === null;\n  var currentValue = value !== undefined ? value : currentInput;\n  var inputSliderValue = isValueReset ? '' : currentValue;\n  var rangeFillValue = isValueReset ? floatClamp(max / 2, min, max) : value;\n  var calculatedFillValue = (value - min) / (max - min) * 100;\n  var fillValue = isValueReset ? 50 : calculatedFillValue;\n  var fillValueOffset = \"\".concat(Object(external_this_lodash_[\"clamp\"])(fillValue, 0, 100), \"%\");\n  var classes = classnames_default()('components-range-control', className);\n  var wrapperClasses = classnames_default()('components-range-control__wrapper', !!marks && 'is-marked');\n  var id = Object(external_this_wp_compose_[\"useInstanceId\"])(RangeControl, 'inspector-range-control');\n  var describedBy = !!help ? \"\".concat(id, \"__help\") : undefined;\n  var enableTooltip = showTooltipProp !== false && Object(external_this_lodash_[\"isFinite\"])(value);\n\n  var handleOnRangeChange = function handleOnRangeChange(event) {\n    var nextValue = parseFloat(event.target.value);\n    handleOnChange(nextValue);\n  };\n\n  var handleOnChange = function handleOnChange(nextValue) {\n    if (isNaN(nextValue)) {\n      handleOnReset();\n      return;\n    }\n\n    setValue(nextValue);\n    onChange(nextValue);\n  };\n\n  var handleOnReset = function handleOnReset() {\n    var resetValue = parseFloat(resetFallbackValue);\n    var onChangeResetValue = resetValue;\n\n    if (isNaN(resetValue)) {\n      resetValue = null;\n      onChangeResetValue = undefined;\n    }\n\n    setValue(resetValue);\n    /**\n     * Previously, this callback would always receive undefined as\n     * an argument. This behavior is unexpected, specifically\n     * when resetFallbackValue is defined.\n     *\n     * The value of undefined is not ideal. Passing it through\n     * to internal <input /> elements would change it from a\n     * controlled component to an uncontrolled component.\n     *\n     * For now, to minimize unexpected regressions, we're going to\n     * preserve the undefined callback argument, except when a\n     * resetFallbackValue is defined.\n     */\n\n    onChange(onChangeResetValue);\n  };\n\n  var handleShowTooltip = function handleShowTooltip() {\n    return setShowTooltip(true);\n  };\n\n  var handleHideTooltip = function handleHideTooltip() {\n    return setShowTooltip(false);\n  };\n\n  var handleOnBlur = function handleOnBlur(event) {\n    onBlur(event);\n    setIsFocused(false);\n    handleHideTooltip();\n  };\n\n  var handleOnFocus = function handleOnFocus(event) {\n    onFocus(event);\n    setIsFocused(true);\n    handleShowTooltip();\n  };\n\n  var offsetStyle = Object(defineProperty[\"a\" /* default */])({}, isRTL ? 'right' : 'left', fillValueOffset);\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    className: classes,\n    label: label,\n    id: id,\n    help: help\n  }, Object(external_this_wp_element_[\"createElement\"])(range_control_styles_Root, {\n    className: \"components-range-control__root\",\n    isRTL: isRTL\n  }, beforeIcon && Object(external_this_wp_element_[\"createElement\"])(BeforeIconWrapper, null, Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n    icon: beforeIcon\n  })), Object(external_this_wp_element_[\"createElement\"])(range_control_styles_Wrapper, {\n    className: wrapperClasses,\n    color: colorProp,\n    marks: !!marks\n  }, Object(external_this_wp_element_[\"createElement\"])(input_range, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: \"components-range-control__slider\",\n    describedBy: describedBy,\n    disabled: disabled,\n    id: id,\n    isShiftStepEnabled: isShiftStepEnabled,\n    label: label,\n    max: max,\n    min: min,\n    onBlur: handleOnBlur,\n    onChange: handleOnRangeChange,\n    onFocus: handleOnFocus,\n    onMouseMove: onMouseMove,\n    onMouseLeave: onMouseLeave,\n    ref: setRef,\n    shiftStep: shiftStep,\n    step: step,\n    value: inputSliderValue\n  })), Object(external_this_wp_element_[\"createElement\"])(RangeRail, {\n    \"aria-hidden\": true,\n    disabled: disabled,\n    marks: marks,\n    max: max,\n    min: min,\n    railColor: railColor,\n    step: step,\n    value: rangeFillValue\n  }), Object(external_this_wp_element_[\"createElement\"])(Track, {\n    \"aria-hidden\": true,\n    className: \"components-range-control__track\",\n    disabled: disabled,\n    style: {\n      width: fillValueOffset\n    },\n    trackColor: trackColor\n  }), Object(external_this_wp_element_[\"createElement\"])(ThumbWrapper, {\n    style: offsetStyle\n  }, Object(external_this_wp_element_[\"createElement\"])(Thumb, {\n    \"aria-hidden\": true,\n    isFocused: isThumbFocused\n  })), enableTooltip && Object(external_this_wp_element_[\"createElement\"])(SimpleTooltip, {\n    className: \"components-range-control__tooltip\",\n    inputRef: inputRef,\n    renderTooltipContent: renderTooltipContent,\n    show: isCurrentlyFocused || showTooltip,\n    style: offsetStyle,\n    value: value\n  })), afterIcon && Object(external_this_wp_element_[\"createElement\"])(AfterIconWrapper, null, Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n    icon: afterIcon\n  })), withInputField && Object(external_this_wp_element_[\"createElement\"])(input_field_InputField, {\n    disabled: disabled,\n    isShiftStepEnabled: isShiftStepEnabled,\n    label: label,\n    max: max,\n    min: min,\n    onChange: handleOnChange,\n    onReset: handleOnReset,\n    shiftStep: shiftStep,\n    step: step,\n    value: inputSliderValue\n  }), allowReset && Object(external_this_wp_element_[\"createElement\"])(ActionRightWrapper, null, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-range-control__reset\",\n    disabled: disabled || value === undefined,\n    isSecondary: true,\n    isSmall: true,\n    onClick: handleOnReset\n  }, Object(external_this_wp_i18n_[\"__\"])('Reset')))));\n}\n\nvar range_control_ForwardedComponent = Object(external_this_wp_element_[\"forwardRef\"])(RangeControl);\n/* harmony default export */ var range_control = (range_control_ForwardedComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/font-size-picker/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar DEFAULT_FONT_SIZE = 'default';\nvar CUSTOM_FONT_SIZE = 'custom';\n\nfunction getSelectValueFromFontSize(fontSizes, value) {\n  if (value) {\n    var fontSizeValue = fontSizes.find(function (font) {\n      return font.size === Number(value);\n    });\n    return fontSizeValue ? fontSizeValue.slug : CUSTOM_FONT_SIZE;\n  }\n\n  return DEFAULT_FONT_SIZE;\n}\n\nfunction getSelectOptions(optionsArray, disableCustomFontSizes) {\n  if (disableCustomFontSizes && !optionsArray.length) {\n    return null;\n  }\n\n  optionsArray = [{\n    slug: DEFAULT_FONT_SIZE,\n    name: Object(external_this_wp_i18n_[\"__\"])('Default')\n  }].concat(Object(toConsumableArray[\"a\" /* default */])(optionsArray), Object(toConsumableArray[\"a\" /* default */])(disableCustomFontSizes ? [] : [{\n    slug: CUSTOM_FONT_SIZE,\n    name: Object(external_this_wp_i18n_[\"__\"])('Custom')\n  }]));\n  return optionsArray.map(function (option) {\n    return {\n      key: option.slug,\n      name: option.name,\n      style: {\n        fontSize: option.size\n      }\n    };\n  });\n}\n\nfunction FontSizePicker(_ref) {\n  var fallbackFontSize = _ref.fallbackFontSize,\n      _ref$fontSizes = _ref.fontSizes,\n      fontSizes = _ref$fontSizes === void 0 ? [] : _ref$fontSizes,\n      _ref$disableCustomFon = _ref.disableCustomFontSizes,\n      disableCustomFontSizes = _ref$disableCustomFon === void 0 ? false : _ref$disableCustomFon,\n      _onChange = _ref.onChange,\n      value = _ref.value,\n      _ref$withSlider = _ref.withSlider,\n      withSlider = _ref$withSlider === void 0 ? false : _ref$withSlider;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(FontSizePicker);\n  var options = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return getSelectOptions(fontSizes, disableCustomFontSizes);\n  }, [fontSizes, disableCustomFontSizes]);\n\n  if (!options) {\n    return null;\n  }\n\n  var selectedFontSizeSlug = getSelectValueFromFontSize(fontSizes, value);\n  var fontSizePickerNumberId = \"components-font-size-picker__number#\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", {\n    className: \"components-font-size-picker\"\n  }, Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    as: \"legend\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Font size')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-font-size-picker__controls\"\n  }, fontSizes.length > 0 && Object(external_this_wp_element_[\"createElement\"])(CustomSelectControl, {\n    className: 'components-font-size-picker__select',\n    label: Object(external_this_wp_i18n_[\"__\"])('Preset size'),\n    options: options,\n    value: options.find(function (option) {\n      return option.key === selectedFontSizeSlug;\n    }),\n    onChange: function onChange(_ref2) {\n      var selectedItem = _ref2.selectedItem;\n      var selectedValue = selectedItem.style && selectedItem.style.fontSize;\n\n      _onChange(Number(selectedValue));\n    }\n  }), !withSlider && !disableCustomFontSizes && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-font-size-picker__number-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    htmlFor: fontSizePickerNumberId\n  }, Object(external_this_wp_i18n_[\"__\"])('Custom')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    id: fontSizePickerNumberId,\n    className: \"components-font-size-picker__number\",\n    type: \"number\",\n    min: 1,\n    onChange: function onChange(event) {\n      _onChange(Number(event.target.value));\n    },\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Custom'),\n    value: value || ''\n  })), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-color-palette__clear\",\n    disabled: value === undefined,\n    onClick: function onClick() {\n      _onChange(undefined);\n    },\n    isSmall: true,\n    isSecondary: true\n  }, Object(external_this_wp_i18n_[\"__\"])('Reset'))), withSlider && Object(external_this_wp_element_[\"createElement\"])(range_control, {\n    className: \"components-font-size-picker__custom-input\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Custom Size'),\n    value: value || '',\n    initialPosition: fallbackFontSize,\n    onChange: function onChange(newValue) {\n      _onChange(newValue);\n    },\n    min: 12,\n    max: 100,\n    beforeIcon: text_color[\"a\" /* default */],\n    afterIcon: text_color[\"a\" /* default */]\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-file-upload/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction FormFileUpload(_ref) {\n  var accept = _ref.accept,\n      children = _ref.children,\n      _ref$multiple = _ref.multiple,\n      multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n      onChange = _ref.onChange,\n      render = _ref.render,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"accept\", \"children\", \"multiple\", \"onChange\", \"render\"]);\n\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n\n  var openFileDialog = function openFileDialog() {\n    ref.current.click();\n  };\n\n  var ui = render ? render({\n    openFileDialog: openFileDialog\n  }) : Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    onClick: openFileDialog\n  }, props), children);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-form-file-upload\"\n  }, ui, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n    type: \"file\",\n    ref: ref,\n    multiple: multiple,\n    style: {\n      display: 'none'\n    },\n    accept: accept,\n    onChange: onChange\n  }));\n}\n\n/* harmony default export */ var form_file_upload = (FormFileUpload);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-toggle/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n\nfunction FormToggle(_ref) {\n  var className = _ref.className,\n      checked = _ref.checked,\n      id = _ref.id,\n      _ref$onChange = _ref.onChange,\n      onChange = _ref$onChange === void 0 ? external_this_lodash_[\"noop\"] : _ref$onChange,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"checked\", \"id\", \"onChange\"]);\n\n  var wrapperClasses = classnames_default()('components-form-toggle', className, {\n    'is-checked': checked\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: wrapperClasses\n  }, Object(external_this_wp_element_[\"createElement\"])(\"input\", Object(esm_extends[\"a\" /* default */])({\n    className: \"components-form-toggle__input\",\n    id: id,\n    type: \"checkbox\",\n    checked: checked,\n    onChange: onChange\n  }, props)), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-form-toggle__track\"\n  }), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-form-toggle__thumb\"\n  }));\n}\n\n/* harmony default export */ var form_toggle = (FormToggle);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/close-circle-filled.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar closeCircleFilled = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm5 11l-3-3 3-3-2-2-3 3-3-3-2 2 3 3-3 3 2 2 3-3 3 3z\"\n}));\n/* harmony default export */ var close_circle_filled = (closeCircleFilled);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction Token(_ref) {\n  var value = _ref.value,\n      status = _ref.status,\n      title = _ref.title,\n      displayTransform = _ref.displayTransform,\n      _ref$isBorderless = _ref.isBorderless,\n      isBorderless = _ref$isBorderless === void 0 ? false : _ref$isBorderless,\n      _ref$disabled = _ref.disabled,\n      disabled = _ref$disabled === void 0 ? false : _ref$disabled,\n      _ref$onClickRemove = _ref.onClickRemove,\n      onClickRemove = _ref$onClickRemove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onClickRemove,\n      onMouseEnter = _ref.onMouseEnter,\n      onMouseLeave = _ref.onMouseLeave,\n      messages = _ref.messages,\n      termPosition = _ref.termPosition,\n      termsCount = _ref.termsCount;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(Token);\n  var tokenClasses = classnames_default()('components-form-token-field__token', {\n    'is-error': 'error' === status,\n    'is-success': 'success' === status,\n    'is-validating': 'validating' === status,\n    'is-borderless': isBorderless,\n    'is-disabled': disabled\n  });\n\n  var onClick = function onClick() {\n    return onClickRemove({\n      value: value\n    });\n  };\n\n  var transformedValue = displayTransform(value);\n  var termPositionAndCount = Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: 1: term name, 2: term position in a set of terms, 3: total term set count. */\n  Object(external_this_wp_i18n_[\"__\"])('%1$s (%2$s of %3$s)'), transformedValue, termPosition, termsCount);\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: tokenClasses,\n    onMouseEnter: onMouseEnter,\n    onMouseLeave: onMouseLeave,\n    title: title\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-form-token-field__token-text\",\n    id: \"components-form-token-field__token-text-\".concat(instanceId)\n  }, Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    as: \"span\"\n  }, termPositionAndCount), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    \"aria-hidden\": \"true\"\n  }, transformedValue)), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-form-token-field__remove-token\",\n    icon: close_circle_filled,\n    onClick: !disabled && onClick,\n    label: messages.remove,\n    \"aria-describedby\": \"components-form-token-field__token-text-\".concat(instanceId)\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/token-input.js\n\n\n\n\n\n\n\n\n\n\nfunction token_input_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (token_input_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction token_input_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\nvar token_input_TokenInput = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(TokenInput, _Component);\n\n  var _super = token_input_createSuper(TokenInput);\n\n  function TokenInput() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, TokenInput);\n\n    _this = _super.apply(this, arguments);\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(TokenInput, [{\n    key: \"focus\",\n    value: function focus() {\n      this.input.focus();\n    }\n  }, {\n    key: \"hasFocus\",\n    value: function hasFocus() {\n      return this.input === document.activeElement;\n    }\n  }, {\n    key: \"bindInput\",\n    value: function bindInput(ref) {\n      this.input = ref;\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(event) {\n      this.props.onChange({\n        value: event.target.value\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          value = _this$props.value,\n          isExpanded = _this$props.isExpanded,\n          instanceId = _this$props.instanceId,\n          selectedSuggestionIndex = _this$props.selectedSuggestionIndex,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_this$props, [\"value\", \"isExpanded\", \"instanceId\", \"selectedSuggestionIndex\"]);\n\n      var size = value.length + 1;\n      return Object(external_this_wp_element_[\"createElement\"])(\"input\", Object(esm_extends[\"a\" /* default */])({\n        ref: this.bindInput,\n        id: \"components-form-token-input-\".concat(instanceId),\n        type: \"text\"\n      }, props, {\n        value: value,\n        onChange: this.onChange,\n        size: size,\n        className: \"components-form-token-field__input\",\n        role: \"combobox\",\n        \"aria-expanded\": isExpanded,\n        \"aria-autocomplete\": \"list\",\n        \"aria-owns\": isExpanded ? \"components-form-token-suggestions-\".concat(instanceId) : undefined,\n        \"aria-activedescendant\": selectedSuggestionIndex !== -1 ? \"components-form-token-suggestions-\".concat(instanceId, \"-\").concat(selectedSuggestionIndex) : undefined,\n        \"aria-describedby\": \"components-form-token-suggestions-howto-\".concat(instanceId)\n      }));\n    }\n  }]);\n\n  return TokenInput;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var token_input = (token_input_TokenInput);\n\n// EXTERNAL MODULE: ./node_modules/dom-scroll-into-view/lib/index.js\nvar lib = __webpack_require__(117);\nvar lib_default = /*#__PURE__*/__webpack_require__.n(lib);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/suggestions-list.js\n\n\n\n\n\n\n\n\nfunction suggestions_list_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (suggestions_list_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction suggestions_list_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar suggestions_list_SuggestionsList = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(SuggestionsList, _Component);\n\n  var _super = suggestions_list_createSuper(SuggestionsList);\n\n  function SuggestionsList() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, SuggestionsList);\n\n    _this = _super.apply(this, arguments);\n    _this.handleMouseDown = _this.handleMouseDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindList = _this.bindList.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(SuggestionsList, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      var _this2 = this;\n\n      // only have to worry about scrolling selected suggestion into view\n      // when already expanded\n      if (this.props.selectedIndex > -1 && this.props.scrollIntoView) {\n        this.scrollingIntoView = true;\n        lib_default()(this.list.children[this.props.selectedIndex], this.list, {\n          onlyScrollIfNeeded: true\n        });\n        this.props.setTimeout(function () {\n          _this2.scrollingIntoView = false;\n        }, 100);\n      }\n    }\n  }, {\n    key: \"bindList\",\n    value: function bindList(ref) {\n      this.list = ref;\n    }\n  }, {\n    key: \"handleHover\",\n    value: function handleHover(suggestion) {\n      var _this3 = this;\n\n      return function () {\n        if (!_this3.scrollingIntoView) {\n          _this3.props.onHover(suggestion);\n        }\n      };\n    }\n  }, {\n    key: \"handleClick\",\n    value: function handleClick(suggestion) {\n      var _this4 = this;\n\n      return function () {\n        _this4.props.onSelect(suggestion);\n      };\n    }\n  }, {\n    key: \"handleMouseDown\",\n    value: function handleMouseDown(e) {\n      // By preventing default here, we will not lose focus of <input> when clicking a suggestion\n      e.preventDefault();\n    }\n  }, {\n    key: \"computeSuggestionMatch\",\n    value: function computeSuggestionMatch(suggestion) {\n      var match = this.props.displayTransform(this.props.match || '').toLocaleLowerCase();\n\n      if (match.length === 0) {\n        return null;\n      }\n\n      suggestion = this.props.displayTransform(suggestion);\n      var indexOfMatch = suggestion.toLocaleLowerCase().indexOf(match);\n      return {\n        suggestionBeforeMatch: suggestion.substring(0, indexOfMatch),\n        suggestionMatch: suggestion.substring(indexOfMatch, indexOfMatch + match.length),\n        suggestionAfterMatch: suggestion.substring(indexOfMatch + match.length)\n      };\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this5 = this;\n\n      // We set `tabIndex` here because otherwise Firefox sets focus on this\n      // div when tabbing off of the input in `TokenField` -- not really sure\n      // why, since usually a div isn't focusable by default\n      // TODO does this still apply now that it's a <ul> and not a <div>?\n      return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n        ref: this.bindList,\n        className: \"components-form-token-field__suggestions-list\",\n        id: \"components-form-token-suggestions-\".concat(this.props.instanceId),\n        role: \"listbox\"\n      }, Object(external_this_lodash_[\"map\"])(this.props.suggestions, function (suggestion, index) {\n        var match = _this5.computeSuggestionMatch(suggestion);\n\n        var classeName = classnames_default()('components-form-token-field__suggestion', {\n          'is-selected': index === _this5.props.selectedIndex\n        });\n        /* eslint-disable jsx-a11y/click-events-have-key-events */\n\n        return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n          id: \"components-form-token-suggestions-\".concat(_this5.props.instanceId, \"-\").concat(index),\n          role: \"option\",\n          className: classeName,\n          key: suggestion,\n          onMouseDown: _this5.handleMouseDown,\n          onClick: _this5.handleClick(suggestion),\n          onMouseEnter: _this5.handleHover(suggestion),\n          \"aria-selected\": index === _this5.props.selectedIndex\n        }, match ? Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n          \"aria-label\": _this5.props.displayTransform(suggestion)\n        }, match.suggestionBeforeMatch, Object(external_this_wp_element_[\"createElement\"])(\"strong\", {\n          className: \"components-form-token-field__suggestion-match\"\n        }, match.suggestionMatch), match.suggestionAfterMatch) : _this5.props.displayTransform(suggestion));\n        /* eslint-enable jsx-a11y/click-events-have-key-events */\n      }));\n    }\n  }]);\n\n  return SuggestionsList;\n}(external_this_wp_element_[\"Component\"]);\n\nsuggestions_list_SuggestionsList.defaultProps = {\n  match: '',\n  onHover: function onHover() {},\n  onSelect: function onSelect() {},\n  suggestions: Object.freeze([])\n};\n/* harmony default export */ var suggestions_list = (Object(external_this_wp_compose_[\"withSafeTimeout\"])(suggestions_list_SuggestionsList));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/form-token-field/index.js\n\n\n\n\n\n\n\n\n\n\nfunction form_token_field_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction form_token_field_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { form_token_field_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { form_token_field_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction form_token_field_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (form_token_field_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction form_token_field_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar form_token_field_initialState = {\n  incompleteTokenValue: '',\n  inputOffsetFromEnd: 0,\n  isActive: false,\n  isExpanded: false,\n  selectedSuggestionIndex: -1,\n  selectedSuggestionScroll: false\n};\n\nvar form_token_field_FormTokenField = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FormTokenField, _Component);\n\n  var _super = form_token_field_createSuper(FormTokenField);\n\n  function FormTokenField() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, FormTokenField);\n\n    _this = _super.apply(this, arguments);\n    _this.state = form_token_field_initialState;\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onKeyPress = _this.onKeyPress.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onFocus = _this.onFocus.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onBlur = _this.onBlur.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.deleteTokenBeforeInput = _this.deleteTokenBeforeInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.deleteTokenAfterInput = _this.deleteTokenAfterInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.addCurrentToken = _this.addCurrentToken.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onContainerTouched = _this.onContainerTouched.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.renderToken = _this.renderToken.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onTokenClickRemove = _this.onTokenClickRemove.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSuggestionHovered = _this.onSuggestionHovered.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSuggestionSelected = _this.onSuggestionSelected.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onInputChange = _this.onInputChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindInput = _this.bindInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.bindTokensAndInput = _this.bindTokensAndInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updateSuggestions = _this.updateSuggestions.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(FormTokenField, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Make sure to focus the input when the isActive state is true.\n      if (this.state.isActive && !this.input.hasFocus()) {\n        this.input.focus();\n      }\n\n      var _this$props = this.props,\n          suggestions = _this$props.suggestions,\n          value = _this$props.value;\n      var suggestionsDidUpdate = !external_this_wp_isShallowEqual_default()(suggestions, prevProps.suggestions);\n\n      if (suggestionsDidUpdate || value !== prevProps.value) {\n        this.updateSuggestions(suggestionsDidUpdate);\n      }\n    }\n  }, {\n    key: \"bindInput\",\n    value: function bindInput(ref) {\n      this.input = ref;\n    }\n  }, {\n    key: \"bindTokensAndInput\",\n    value: function bindTokensAndInput(ref) {\n      this.tokensAndInput = ref;\n    }\n  }, {\n    key: \"onFocus\",\n    value: function onFocus(event) {\n      // If focus is on the input or on the container, set the isActive state to true.\n      if (this.input.hasFocus() || event.target === this.tokensAndInput) {\n        this.setState({\n          isActive: true\n        });\n      } else {\n        /*\n         * Otherwise, focus is on one of the token \"remove\" buttons and we\n         * set the isActive state to false to prevent the input to be\n         * re-focused, see componentDidUpdate().\n         */\n        this.setState({\n          isActive: false\n        });\n      }\n\n      if ('function' === typeof this.props.onFocus) {\n        this.props.onFocus(event);\n      }\n    }\n  }, {\n    key: \"onBlur\",\n    value: function onBlur() {\n      if (this.inputHasValidValue()) {\n        this.setState({\n          isActive: false\n        });\n      } else {\n        this.setState(form_token_field_initialState);\n      }\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      var preventDefault = false;\n\n      switch (event.keyCode) {\n        case external_this_wp_keycodes_[\"BACKSPACE\"]:\n          preventDefault = this.handleDeleteKey(this.deleteTokenBeforeInput);\n          break;\n\n        case external_this_wp_keycodes_[\"ENTER\"]:\n          preventDefault = this.addCurrentToken();\n          break;\n\n        case external_this_wp_keycodes_[\"LEFT\"]:\n          preventDefault = this.handleLeftArrowKey();\n          break;\n\n        case external_this_wp_keycodes_[\"UP\"]:\n          preventDefault = this.handleUpArrowKey();\n          break;\n\n        case external_this_wp_keycodes_[\"RIGHT\"]:\n          preventDefault = this.handleRightArrowKey();\n          break;\n\n        case external_this_wp_keycodes_[\"DOWN\"]:\n          preventDefault = this.handleDownArrowKey();\n          break;\n\n        case external_this_wp_keycodes_[\"DELETE\"]:\n          preventDefault = this.handleDeleteKey(this.deleteTokenAfterInput);\n          break;\n\n        case external_this_wp_keycodes_[\"SPACE\"]:\n          if (this.props.tokenizeOnSpace) {\n            preventDefault = this.addCurrentToken();\n          }\n\n          break;\n\n        case external_this_wp_keycodes_[\"ESCAPE\"]:\n          preventDefault = this.handleEscapeKey(event);\n          event.stopPropagation();\n          break;\n\n        default:\n          break;\n      }\n\n      if (preventDefault) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"onKeyPress\",\n    value: function onKeyPress(event) {\n      var preventDefault = false;\n\n      switch (event.charCode) {\n        case 44:\n          // comma\n          preventDefault = this.handleCommaKey();\n          break;\n\n        default:\n          break;\n      }\n\n      if (preventDefault) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"onContainerTouched\",\n    value: function onContainerTouched(event) {\n      // Prevent clicking/touching the tokensAndInput container from blurring\n      // the input and adding the current token.\n      if (event.target === this.tokensAndInput && this.state.isActive) {\n        event.preventDefault();\n      }\n    }\n  }, {\n    key: \"onTokenClickRemove\",\n    value: function onTokenClickRemove(event) {\n      this.deleteToken(event.value);\n      this.input.focus();\n    }\n  }, {\n    key: \"onSuggestionHovered\",\n    value: function onSuggestionHovered(suggestion) {\n      var index = this.getMatchingSuggestions().indexOf(suggestion);\n\n      if (index >= 0) {\n        this.setState({\n          selectedSuggestionIndex: index,\n          selectedSuggestionScroll: false\n        });\n      }\n    }\n  }, {\n    key: \"onSuggestionSelected\",\n    value: function onSuggestionSelected(suggestion) {\n      this.addNewToken(suggestion);\n    }\n  }, {\n    key: \"onInputChange\",\n    value: function onInputChange(event) {\n      var text = event.value;\n      var separator = this.props.tokenizeOnSpace ? /[ ,\\t]+/ : /[,\\t]+/;\n      var items = text.split(separator);\n      var tokenValue = Object(external_this_lodash_[\"last\"])(items) || '';\n\n      if (items.length > 1) {\n        this.addNewTokens(items.slice(0, -1));\n      }\n\n      this.setState({\n        incompleteTokenValue: tokenValue\n      }, this.updateSuggestions);\n      this.props.onInputChange(tokenValue);\n    }\n  }, {\n    key: \"handleDeleteKey\",\n    value: function handleDeleteKey(deleteToken) {\n      var preventDefault = false;\n\n      if (this.input.hasFocus() && this.isInputEmpty()) {\n        deleteToken();\n        preventDefault = true;\n      }\n\n      return preventDefault;\n    }\n  }, {\n    key: \"handleLeftArrowKey\",\n    value: function handleLeftArrowKey() {\n      var preventDefault = false;\n\n      if (this.isInputEmpty()) {\n        this.moveInputBeforePreviousToken();\n        preventDefault = true;\n      }\n\n      return preventDefault;\n    }\n  }, {\n    key: \"handleRightArrowKey\",\n    value: function handleRightArrowKey() {\n      var preventDefault = false;\n\n      if (this.isInputEmpty()) {\n        this.moveInputAfterNextToken();\n        preventDefault = true;\n      }\n\n      return preventDefault;\n    }\n  }, {\n    key: \"handleUpArrowKey\",\n    value: function handleUpArrowKey() {\n      var _this2 = this;\n\n      this.setState(function (state, props) {\n        return {\n          selectedSuggestionIndex: (state.selectedSuggestionIndex === 0 ? _this2.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length : state.selectedSuggestionIndex) - 1,\n          selectedSuggestionScroll: true\n        };\n      });\n      return true; // preventDefault\n    }\n  }, {\n    key: \"handleDownArrowKey\",\n    value: function handleDownArrowKey() {\n      var _this3 = this;\n\n      this.setState(function (state, props) {\n        return {\n          selectedSuggestionIndex: (state.selectedSuggestionIndex + 1) % _this3.getMatchingSuggestions(state.incompleteTokenValue, props.suggestions, props.value, props.maxSuggestions, props.saveTransform).length,\n          selectedSuggestionScroll: true\n        };\n      });\n      return true; // preventDefault\n    }\n  }, {\n    key: \"handleEscapeKey\",\n    value: function handleEscapeKey(event) {\n      this.setState({\n        incompleteTokenValue: event.target.value,\n        isExpanded: false,\n        selectedSuggestionIndex: -1,\n        selectedSuggestionScroll: false\n      });\n      return true; // preventDefault\n    }\n  }, {\n    key: \"handleCommaKey\",\n    value: function handleCommaKey() {\n      if (this.inputHasValidValue()) {\n        this.addNewToken(this.state.incompleteTokenValue);\n      }\n\n      return true; // preventDefault\n    }\n  }, {\n    key: \"moveInputToIndex\",\n    value: function moveInputToIndex(index) {\n      this.setState(function (state, props) {\n        return {\n          inputOffsetFromEnd: props.value.length - Math.max(index, -1) - 1\n        };\n      });\n    }\n  }, {\n    key: \"moveInputBeforePreviousToken\",\n    value: function moveInputBeforePreviousToken() {\n      this.setState(function (state, props) {\n        return {\n          inputOffsetFromEnd: Math.min(state.inputOffsetFromEnd + 1, props.value.length)\n        };\n      });\n    }\n  }, {\n    key: \"moveInputAfterNextToken\",\n    value: function moveInputAfterNextToken() {\n      this.setState(function (state) {\n        return {\n          inputOffsetFromEnd: Math.max(state.inputOffsetFromEnd - 1, 0)\n        };\n      });\n    }\n  }, {\n    key: \"deleteTokenBeforeInput\",\n    value: function deleteTokenBeforeInput() {\n      var index = this.getIndexOfInput() - 1;\n\n      if (index > -1) {\n        this.deleteToken(this.props.value[index]);\n      }\n    }\n  }, {\n    key: \"deleteTokenAfterInput\",\n    value: function deleteTokenAfterInput() {\n      var index = this.getIndexOfInput();\n\n      if (index < this.props.value.length) {\n        this.deleteToken(this.props.value[index]); // update input offset since it's the offset from the last token\n\n        this.moveInputToIndex(index);\n      }\n    }\n  }, {\n    key: \"addCurrentToken\",\n    value: function addCurrentToken() {\n      var preventDefault = false;\n      var selectedSuggestion = this.getSelectedSuggestion();\n\n      if (selectedSuggestion) {\n        this.addNewToken(selectedSuggestion);\n        preventDefault = true;\n      } else if (this.inputHasValidValue()) {\n        this.addNewToken(this.state.incompleteTokenValue);\n        preventDefault = true;\n      }\n\n      return preventDefault;\n    }\n  }, {\n    key: \"addNewTokens\",\n    value: function addNewTokens(tokens) {\n      var _this4 = this;\n\n      var tokensToAdd = Object(external_this_lodash_[\"uniq\"])(tokens.map(this.props.saveTransform).filter(Boolean).filter(function (token) {\n        return !_this4.valueContainsToken(token);\n      }));\n\n      if (tokensToAdd.length > 0) {\n        var newValue = Object(external_this_lodash_[\"clone\"])(this.props.value);\n        newValue.splice.apply(newValue, [this.getIndexOfInput(), 0].concat(tokensToAdd));\n        this.props.onChange(newValue);\n      }\n    }\n  }, {\n    key: \"addNewToken\",\n    value: function addNewToken(token) {\n      this.addNewTokens([token]);\n      this.props.speak(this.props.messages.added, 'assertive');\n      this.setState({\n        incompleteTokenValue: '',\n        selectedSuggestionIndex: -1,\n        selectedSuggestionScroll: false,\n        isExpanded: false\n      });\n\n      if (this.state.isActive) {\n        this.input.focus();\n      }\n    }\n  }, {\n    key: \"deleteToken\",\n    value: function deleteToken(token) {\n      var _this5 = this;\n\n      var newTokens = this.props.value.filter(function (item) {\n        return _this5.getTokenValue(item) !== _this5.getTokenValue(token);\n      });\n      this.props.onChange(newTokens);\n      this.props.speak(this.props.messages.removed, 'assertive');\n    }\n  }, {\n    key: \"getTokenValue\",\n    value: function getTokenValue(token) {\n      if ('object' === Object(esm_typeof[\"a\" /* default */])(token)) {\n        return token.value;\n      }\n\n      return token;\n    }\n  }, {\n    key: \"getMatchingSuggestions\",\n    value: function getMatchingSuggestions() {\n      var searchValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.incompleteTokenValue;\n      var suggestions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.props.suggestions;\n      var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.props.value;\n      var maxSuggestions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.props.maxSuggestions;\n      var saveTransform = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.props.saveTransform;\n      var match = saveTransform(searchValue);\n      var startsWithMatch = [];\n      var containsMatch = [];\n\n      if (match.length === 0) {\n        suggestions = Object(external_this_lodash_[\"difference\"])(suggestions, value);\n      } else {\n        match = match.toLocaleLowerCase();\n        Object(external_this_lodash_[\"each\"])(suggestions, function (suggestion) {\n          var index = suggestion.toLocaleLowerCase().indexOf(match);\n\n          if (value.indexOf(suggestion) === -1) {\n            if (index === 0) {\n              startsWithMatch.push(suggestion);\n            } else if (index > 0) {\n              containsMatch.push(suggestion);\n            }\n          }\n        });\n        suggestions = startsWithMatch.concat(containsMatch);\n      }\n\n      return Object(external_this_lodash_[\"take\"])(suggestions, maxSuggestions);\n    }\n  }, {\n    key: \"getSelectedSuggestion\",\n    value: function getSelectedSuggestion() {\n      if (this.state.selectedSuggestionIndex !== -1) {\n        return this.getMatchingSuggestions()[this.state.selectedSuggestionIndex];\n      }\n    }\n  }, {\n    key: \"valueContainsToken\",\n    value: function valueContainsToken(token) {\n      var _this6 = this;\n\n      return Object(external_this_lodash_[\"some\"])(this.props.value, function (item) {\n        return _this6.getTokenValue(token) === _this6.getTokenValue(item);\n      });\n    }\n  }, {\n    key: \"getIndexOfInput\",\n    value: function getIndexOfInput() {\n      return this.props.value.length - this.state.inputOffsetFromEnd;\n    }\n  }, {\n    key: \"isInputEmpty\",\n    value: function isInputEmpty() {\n      return this.state.incompleteTokenValue.length === 0;\n    }\n  }, {\n    key: \"inputHasValidValue\",\n    value: function inputHasValidValue() {\n      return this.props.saveTransform(this.state.incompleteTokenValue).length > 0;\n    }\n  }, {\n    key: \"updateSuggestions\",\n    value: function updateSuggestions() {\n      var resetSelectedSuggestion = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n      var incompleteTokenValue = this.state.incompleteTokenValue;\n      var inputHasMinimumChars = incompleteTokenValue.trim().length > 1;\n      var matchingSuggestions = this.getMatchingSuggestions(incompleteTokenValue);\n      var hasMatchingSuggestions = matchingSuggestions.length > 0;\n      var newState = {\n        isExpanded: inputHasMinimumChars && hasMatchingSuggestions\n      };\n\n      if (resetSelectedSuggestion) {\n        newState.selectedSuggestionIndex = -1;\n        newState.selectedSuggestionScroll = false;\n      }\n\n      this.setState(newState);\n\n      if (inputHasMinimumChars) {\n        var debouncedSpeak = this.props.debouncedSpeak;\n        var message = hasMatchingSuggestions ? Object(external_this_wp_i18n_[\"sprintf\"])(\n        /* translators: %d: number of results. */\n        Object(external_this_wp_i18n_[\"_n\"])('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', matchingSuggestions.length), matchingSuggestions.length) : Object(external_this_wp_i18n_[\"__\"])('No results.');\n        debouncedSpeak(message, 'assertive');\n      }\n    }\n  }, {\n    key: \"renderTokensAndInput\",\n    value: function renderTokensAndInput() {\n      var components = Object(external_this_lodash_[\"map\"])(this.props.value, this.renderToken);\n      components.splice(this.getIndexOfInput(), 0, this.renderInput());\n      return components;\n    }\n  }, {\n    key: \"renderToken\",\n    value: function renderToken(token, index, tokens) {\n      var value = this.getTokenValue(token);\n      var status = token.status ? token.status : undefined;\n      var termPosition = index + 1;\n      var termsCount = tokens.length;\n      return Object(external_this_wp_element_[\"createElement\"])(Token, {\n        key: 'token-' + value,\n        value: value,\n        status: status,\n        title: token.title,\n        displayTransform: this.props.displayTransform,\n        onClickRemove: this.onTokenClickRemove,\n        isBorderless: token.isBorderless || this.props.isBorderless,\n        onMouseEnter: token.onMouseEnter,\n        onMouseLeave: token.onMouseLeave,\n        disabled: 'error' !== status && this.props.disabled,\n        messages: this.props.messages,\n        termsCount: termsCount,\n        termPosition: termPosition\n      });\n    }\n  }, {\n    key: \"renderInput\",\n    value: function renderInput() {\n      var _this$props2 = this.props,\n          autoCapitalize = _this$props2.autoCapitalize,\n          autoComplete = _this$props2.autoComplete,\n          maxLength = _this$props2.maxLength,\n          value = _this$props2.value,\n          instanceId = _this$props2.instanceId;\n      var props = {\n        instanceId: instanceId,\n        autoCapitalize: autoCapitalize,\n        autoComplete: autoComplete,\n        ref: this.bindInput,\n        key: 'input',\n        disabled: this.props.disabled,\n        value: this.state.incompleteTokenValue,\n        onBlur: this.onBlur,\n        isExpanded: this.state.isExpanded,\n        selectedSuggestionIndex: this.state.selectedSuggestionIndex\n      };\n\n      if (!(maxLength && value.length >= maxLength)) {\n        props = form_token_field_objectSpread({}, props, {\n          onChange: this.onInputChange\n        });\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(token_input, props);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          disabled = _this$props3.disabled,\n          _this$props3$label = _this$props3.label,\n          label = _this$props3$label === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Add item') : _this$props3$label,\n          instanceId = _this$props3.instanceId,\n          className = _this$props3.className;\n      var isExpanded = this.state.isExpanded;\n      var classes = classnames_default()(className, 'components-form-token-field__input-container', {\n        'is-active': this.state.isActive,\n        'is-disabled': disabled\n      });\n      var tokenFieldProps = {\n        className: 'components-form-token-field',\n        tabIndex: '-1'\n      };\n      var matchingSuggestions = this.getMatchingSuggestions();\n\n      if (!disabled) {\n        tokenFieldProps = Object.assign({}, tokenFieldProps, {\n          onKeyDown: this.onKeyDown,\n          onKeyPress: this.onKeyPress,\n          onFocus: this.onFocus\n        });\n      } // Disable reason: There is no appropriate role which describes the\n      // input container intended accessible usability.\n      // TODO: Refactor click detection to use blur to stop propagation.\n\n      /* eslint-disable jsx-a11y/no-static-element-interactions */\n\n\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", tokenFieldProps, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: \"components-form-token-input-\".concat(instanceId),\n        className: \"components-form-token-field__label\"\n      }, label), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        ref: this.bindTokensAndInput,\n        className: classes,\n        tabIndex: \"-1\",\n        onMouseDown: this.onContainerTouched,\n        onTouchStart: this.onContainerTouched\n      }, this.renderTokensAndInput(), isExpanded && Object(external_this_wp_element_[\"createElement\"])(suggestions_list, {\n        instanceId: instanceId,\n        match: this.props.saveTransform(this.state.incompleteTokenValue),\n        displayTransform: this.props.displayTransform,\n        suggestions: matchingSuggestions,\n        selectedIndex: this.state.selectedSuggestionIndex,\n        scrollIntoView: this.state.selectedSuggestionScroll,\n        onHover: this.onSuggestionHovered,\n        onSelect: this.onSuggestionSelected\n      })), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        id: \"components-form-token-suggestions-howto-\".concat(instanceId),\n        className: \"components-form-token-field__help\"\n      }, this.props.tokenizeOnSpace ? Object(external_this_wp_i18n_[\"__\"])('Separate with commas, spaces, or the Enter key.') : Object(external_this_wp_i18n_[\"__\"])('Separate with commas or the Enter key.')));\n      /* eslint-enable jsx-a11y/no-static-element-interactions */\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      if (!props.disabled || !state.isActive) {\n        return null;\n      }\n\n      return {\n        isActive: false,\n        incompleteTokenValue: ''\n      };\n    }\n  }]);\n\n  return FormTokenField;\n}(external_this_wp_element_[\"Component\"]);\n\nform_token_field_FormTokenField.defaultProps = {\n  suggestions: Object.freeze([]),\n  maxSuggestions: 100,\n  value: Object.freeze([]),\n  displayTransform: external_this_lodash_[\"identity\"],\n  saveTransform: function saveTransform(token) {\n    return token.trim();\n  },\n  onChange: function onChange() {},\n  onInputChange: function onInputChange() {},\n  isBorderless: false,\n  disabled: false,\n  tokenizeOnSpace: false,\n  messages: {\n    added: Object(external_this_wp_i18n_[\"__\"])('Item added.'),\n    removed: Object(external_this_wp_i18n_[\"__\"])('Item removed.'),\n    remove: Object(external_this_wp_i18n_[\"__\"])('Remove item')\n  }\n};\n/* harmony default export */ var form_token_field = (with_spoken_messages(Object(external_this_wp_compose_[\"withInstanceId\"])(form_token_field_FormTokenField)));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/icons.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\nvar LinearGradientIcon = Object(external_this_wp_compose_[\"withInstanceId\"])(function (_ref) {\n  var instanceId = _ref.instanceId;\n  var linerGradientId = \"linear-gradient-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    fill: \"none\",\n    height: \"20\",\n    viewBox: \"0 0 20 20\",\n    width: \"20\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"LinearGradient\"], {\n    id: linerGradientId,\n    gradientUnits: \"userSpaceOnUse\",\n    x1: \"10\",\n    x2: \"10\",\n    y1: \"1\",\n    y2: \"19\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Stop\"], {\n    offset: \"0\",\n    stopColor: \"#000000\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Stop\"], {\n    offset: \"1\",\n    stopColor: \"#ffffff\"\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"m1 1h18v18h-18z\",\n    fill: \"url(#\".concat(linerGradientId, \")\")\n  }));\n});\nvar RadialGradientIcon = Object(external_this_wp_compose_[\"withInstanceId\"])(function (_ref2) {\n  var instanceId = _ref2.instanceId;\n  var radialGradientId = \"radial-gradient-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    fill: \"none\",\n    height: \"20\",\n    viewBox: \"0 0 20 20\",\n    width: \"20\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"RadialGradient\"], {\n    id: radialGradientId,\n    cx: \"0\",\n    cy: \"0\",\n    gradientTransform: \"matrix(0 9 -9 0 10 10)\",\n    gradientUnits: \"userSpaceOnUse\",\n    r: \"1\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Stop\"], {\n    offset: \"0\",\n    stopColor: \"#000000\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Stop\"], {\n    offset: \"1\",\n    stopColor: \"#ffffff\"\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Circle\"], {\n    cx: \"10\",\n    cy: \"10\",\n    fill: \"url(#\".concat(radialGradientId, \")\"),\n    r: \"9\"\n  }));\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/plus-circle.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar plusCircle = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6zM10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z\"\n}));\n/* harmony default export */ var plus_circle = (plusCircle);\n\n// EXTERNAL MODULE: ./node_modules/gradient-parser/build/node.js\nvar build_node = __webpack_require__(189);\nvar node_default = /*#__PURE__*/__webpack_require__.n(build_node);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/constants.js\nvar INSERT_POINT_WIDTH = 23;\nvar GRADIENT_MARKERS_WIDTH = 18;\nvar MINIMUM_DISTANCE_BETWEEN_INSERTER_AND_MARKER = (INSERT_POINT_WIDTH + GRADIENT_MARKERS_WIDTH) / 2;\nvar MINIMUM_ABSOLUTE_LEFT_POSITION = 5;\nvar MINIMUM_DISTANCE_BETWEEN_POINTS = 9;\nvar MINIMUM_SIGNIFICANT_MOVE = 5;\nvar DEFAULT_GRADIENT = 'linear-gradient(135deg, rgba(6, 147, 227, 1) 0%, rgb(155, 81, 224) 100%)';\nvar COLOR_POPOVER_PROPS = {\n  className: 'components-custom-gradient-picker__color-picker-popover',\n  position: 'top'\n};\nvar DEFAULT_LINEAR_GRADIENT_ANGLE = 180;\nvar HORIZONTAL_GRADIENT_ORIENTATION = {\n  type: 'angular',\n  value: 90\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/serializer.js\n\n\n/**\n * External dependencies\n */\n\nfunction serializeGradientColor(_ref) {\n  var type = _ref.type,\n      value = _ref.value;\n\n  if (type === 'literal' || type === 'hex') {\n    return value;\n  }\n\n  return \"\".concat(type, \"(\").concat(value.join(','), \")\");\n}\nfunction serializeGradientPosition(_ref2) {\n  var type = _ref2.type,\n      value = _ref2.value;\n  return \"\".concat(value).concat(type);\n}\nfunction serializeGradientColorStop(_ref3) {\n  var type = _ref3.type,\n      value = _ref3.value,\n      length = _ref3.length;\n  return \"\".concat(serializeGradientColor({\n    type: type,\n    value: value\n  }), \" \").concat(serializeGradientPosition(length));\n}\nfunction serializeGradientOrientation(orientation) {\n  if (!orientation || orientation.type !== 'angular') {\n    return;\n  }\n\n  return \"\".concat(orientation.value, \"deg\");\n}\nfunction serializeGradient(_ref4) {\n  var type = _ref4.type,\n      orientation = _ref4.orientation,\n      colorStops = _ref4.colorStops;\n  var serializedOrientation = serializeGradientOrientation(orientation);\n  var serializedColorStops = colorStops.sort(function (colorStop1, colorStop2) {\n    return Object(external_this_lodash_[\"get\"])(colorStop1, ['length', 'value'], 0) - Object(external_this_lodash_[\"get\"])(colorStop2, ['length', 'value'], 0);\n  }).map(serializeGradientColorStop);\n  return \"\".concat(type, \"(\").concat(Object(external_this_lodash_[\"compact\"])([serializedOrientation].concat(Object(toConsumableArray[\"a\" /* default */])(serializedColorStops))).join(','), \")\");\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/utils.js\n\n\n\nfunction utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction utils_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction tinyColorRgbToGradientColorStop(_ref) {\n  var r = _ref.r,\n      g = _ref.g,\n      b = _ref.b,\n      a = _ref.a;\n\n  if (a === 1) {\n    return {\n      type: 'rgb',\n      value: [r, g, b]\n    };\n  }\n\n  return {\n    type: 'rgba',\n    value: [r, g, b, a]\n  };\n}\n\nfunction getGradientWithColorStopAdded(gradientAST, relativePosition, rgbaColor) {\n  var colorStop = tinyColorRgbToGradientColorStop(rgbaColor);\n  colorStop.length = {\n    type: '%',\n    value: relativePosition\n  };\n  return utils_objectSpread({}, gradientAST, {\n    colorStops: [].concat(Object(toConsumableArray[\"a\" /* default */])(gradientAST.colorStops), [colorStop])\n  });\n}\nfunction getGradientWithPositionAtIndexChanged(gradientAST, index, relativePosition) {\n  return utils_objectSpread({}, gradientAST, {\n    colorStops: gradientAST.colorStops.map(function (colorStop, colorStopIndex) {\n      if (colorStopIndex !== index) {\n        return colorStop;\n      }\n\n      return utils_objectSpread({}, colorStop, {\n        length: utils_objectSpread({}, colorStop.length, {\n          value: relativePosition\n        })\n      });\n    })\n  });\n}\nfunction isControlPointOverlapping(gradientAST, position, initialIndex) {\n  var initialPosition = parseInt(gradientAST.colorStops[initialIndex].length.value);\n  var minPosition = Math.min(initialPosition, position);\n  var maxPosition = Math.max(initialPosition, position);\n  return Object(external_this_lodash_[\"some\"])(gradientAST.colorStops, function (_ref2, index) {\n    var length = _ref2.length;\n    var itemPosition = parseInt(length.value);\n    return index !== initialIndex && (Math.abs(itemPosition - position) < MINIMUM_DISTANCE_BETWEEN_POINTS || minPosition < itemPosition && itemPosition < maxPosition);\n  });\n}\n\nfunction getGradientWithPositionAtIndexSummed(gradientAST, index, valueToSum) {\n  var currentPosition = gradientAST.colorStops[index].length.value;\n  var newPosition = Math.max(0, Math.min(100, parseInt(currentPosition) + valueToSum));\n\n  if (isControlPointOverlapping(gradientAST, newPosition, index)) {\n    return gradientAST;\n  }\n\n  return getGradientWithPositionAtIndexChanged(gradientAST, index, newPosition);\n}\n\nfunction getGradientWithPositionAtIndexIncreased(gradientAST, index) {\n  return getGradientWithPositionAtIndexSummed(gradientAST, index, MINIMUM_DISTANCE_BETWEEN_POINTS);\n}\nfunction getGradientWithPositionAtIndexDecreased(gradientAST, index) {\n  return getGradientWithPositionAtIndexSummed(gradientAST, index, -MINIMUM_DISTANCE_BETWEEN_POINTS);\n}\nfunction getGradientWithColorAtIndexChanged(gradientAST, index, rgbaColor) {\n  return utils_objectSpread({}, gradientAST, {\n    colorStops: gradientAST.colorStops.map(function (colorStop, colorStopIndex) {\n      if (colorStopIndex !== index) {\n        return colorStop;\n      }\n\n      return utils_objectSpread({}, colorStop, {}, tinyColorRgbToGradientColorStop(rgbaColor));\n    })\n  });\n}\nfunction getGradientWithColorAtPositionChanged(gradientAST, relativePositionValue, rgbaColor) {\n  var index = Object(external_this_lodash_[\"findIndex\"])(gradientAST.colorStops, function (colorStop) {\n    return colorStop && colorStop.length && colorStop.length.type === '%' && colorStop.length.value === relativePositionValue.toString();\n  });\n  return getGradientWithColorAtIndexChanged(gradientAST, index, rgbaColor);\n}\nfunction getGradientWithControlPointRemoved(gradientAST, index) {\n  return utils_objectSpread({}, gradientAST, {\n    colorStops: gradientAST.colorStops.filter(function (elem, elemIndex) {\n      return elemIndex !== index;\n    })\n  });\n}\nfunction getHorizontalRelativeGradientPosition(mouseXCoordinate, containerElement, positionedElementWidth) {\n  if (!containerElement) {\n    return;\n  }\n\n  var _containerElement$get = containerElement.getBoundingClientRect(),\n      x = _containerElement$get.x,\n      width = _containerElement$get.width;\n\n  var absolutePositionValue = mouseXCoordinate - x - MINIMUM_ABSOLUTE_LEFT_POSITION - positionedElementWidth / 2;\n  var availableWidth = width - MINIMUM_ABSOLUTE_LEFT_POSITION - INSERT_POINT_WIDTH;\n  return Math.round(Math.min(Math.max(absolutePositionValue * 100 / availableWidth, 0), 100));\n}\n/**\n * Returns the marker points from a gradient AST.\n *\n * @param {Object} gradientAST An object representing the gradient AST.\n *\n * @return {Array.<{color: string, position: string, positionValue: number}>}\n *         An array of markerPoint objects.\n *         color:         A string with the color code ready to be used in css style e.g: \"rgba( 1, 2 , 3, 0.5)\".\n *         position:      A string with the position ready to be used in css style e.g: \"70%\".\n *         positionValue: A number with the relative position value e.g: 70.\n */\n\nfunction getMarkerPoints(gradientAST) {\n  if (!gradientAST) {\n    return [];\n  }\n\n  return Object(external_this_lodash_[\"map\"])(gradientAST.colorStops, function (colorStop) {\n    if (!colorStop || !colorStop.length || colorStop.length.type !== '%') {\n      return null;\n    }\n\n    return {\n      color: serializeGradientColor(colorStop),\n      position: serializeGradientPosition(colorStop.length),\n      positionValue: parseInt(colorStop.length.value)\n    };\n  });\n}\nfunction getLinearGradientRepresentationOfARadial(gradientAST) {\n  return serializeGradient({\n    type: 'linear-gradient',\n    orientation: HORIZONTAL_GRADIENT_ORIENTATION,\n    colorStops: gradientAST.colorStops\n  });\n}\nvar DIRECTIONAL_ORIENTATION_ANGLE_MAP = {\n  top: 0,\n  'top right': 45,\n  'right top': 45,\n  right: 90,\n  'right bottom': 135,\n  'bottom right': 135,\n  bottom: 180,\n  'bottom left': 225,\n  'left bottom': 225,\n  left: 270,\n  'top left': 315,\n  'left top': 315\n};\nfunction getGradientParsed(value) {\n  var hasGradient = !!value; // gradientAST will contain the gradient AST as parsed by gradient-parser npm module.\n  // More information of its structure available at https://www.npmjs.com/package/gradient-parser#ast.\n\n  var gradientAST;\n  var gradientValue;\n\n  try {\n    gradientAST = node_default.a.parse(value || DEFAULT_GRADIENT)[0];\n    gradientValue = value || DEFAULT_GRADIENT;\n  } catch (error) {\n    hasGradient = false;\n    gradientAST = node_default.a.parse(DEFAULT_GRADIENT)[0];\n    gradientValue = DEFAULT_GRADIENT;\n  }\n\n  if (gradientAST.orientation && gradientAST.orientation.type === 'directional') {\n    gradientAST.orientation.type = 'angular';\n    gradientAST.orientation.value = DIRECTIONAL_ORIENTATION_ANGLE_MAP[gradientAST.orientation.value].toString();\n  }\n\n  return {\n    hasGradient: hasGradient,\n    gradientAST: gradientAST,\n    gradientValue: gradientValue\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/control-points.js\n\n\n\n\n\n\n\n\n\n\nfunction control_points_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (control_points_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction control_points_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\nvar control_points_ControlPointKeyboardMove = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ControlPointKeyboardMove, _Component);\n\n  var _super = control_points_createSuper(ControlPointKeyboardMove);\n\n  function ControlPointKeyboardMove() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ControlPointKeyboardMove);\n\n    _this = _super.apply(this, arguments);\n    _this.increase = _this.increase.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.decrease = _this.decrease.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.shortcuts = {\n      right: _this.increase,\n      left: _this.decrease\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ControlPointKeyboardMove, [{\n    key: \"increase\",\n    value: function increase(event) {\n      // Stop propagation of the key press event to avoid focus moving\n      // to another editor area.\n      event.stopPropagation();\n      var _this$props = this.props,\n          gradientIndex = _this$props.gradientIndex,\n          onChange = _this$props.onChange,\n          gradientAST = _this$props.gradientAST;\n      onChange(getGradientWithPositionAtIndexIncreased(gradientAST, gradientIndex));\n    }\n  }, {\n    key: \"decrease\",\n    value: function decrease(event) {\n      // Stop propagation of the key press event to avoid focus moving\n      // to another editor area.\n      event.stopPropagation();\n      var _this$props2 = this.props,\n          gradientIndex = _this$props2.gradientIndex,\n          onChange = _this$props2.onChange,\n          gradientAST = _this$props2.gradientAST;\n      onChange(getGradientWithPositionAtIndexDecreased(gradientAST, gradientIndex));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var children = this.props.children;\n      return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, {\n        shortcuts: this.shortcuts\n      }, children);\n    }\n  }]);\n\n  return ControlPointKeyboardMove;\n}(external_this_wp_element_[\"Component\"]);\n\nfunction ControlPointButton(_ref) {\n  var isOpen = _ref.isOpen,\n      position = _ref.position,\n      color = _ref.color,\n      onChange = _ref.onChange,\n      gradientIndex = _ref.gradientIndex,\n      gradientAST = _ref.gradientAST,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isOpen\", \"position\", \"color\", \"onChange\", \"gradientIndex\", \"gradientAST\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(ControlPointButton);\n  var descriptionId = \"components-custom-gradient-picker__control-point-button-description-\".concat(instanceId);\n  return Object(external_this_wp_element_[\"createElement\"])(control_points_ControlPointKeyboardMove, {\n    onChange: onChange,\n    gradientIndex: gradientIndex,\n    gradientAST: gradientAST\n  }, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    \"aria-label\": Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %1$s: gradient position e.g: 70%, %2$s: gradient color code e.g: rgb(52,121,151).\n    Object(external_this_wp_i18n_[\"__\"])('Gradient control point at position %1$s with color code %2$s.'), position, color),\n    \"aria-describedby\": descriptionId,\n    \"aria-expanded\": isOpen,\n    className: classnames_default()('components-custom-gradient-picker__control-point-button', {\n      'is-active': isOpen\n    }),\n    style: {\n      left: position\n    }\n  }, additionalProps)), Object(external_this_wp_element_[\"createElement\"])(visually_hidden, {\n    id: descriptionId\n  }, Object(external_this_wp_i18n_[\"__\"])('Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.')));\n}\n\nfunction ControlPoints(_ref2) {\n  var gradientPickerDomRef = _ref2.gradientPickerDomRef,\n      ignoreMarkerPosition = _ref2.ignoreMarkerPosition,\n      markerPoints = _ref2.markerPoints,\n      onChange = _ref2.onChange,\n      gradientAST = _ref2.gradientAST,\n      onStartControlPointChange = _ref2.onStartControlPointChange,\n      onStopControlPointChange = _ref2.onStopControlPointChange;\n  var controlPointMoveState = Object(external_this_wp_element_[\"useRef\"])();\n\n  var onMouseMove = function onMouseMove(event) {\n    var relativePosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, GRADIENT_MARKERS_WIDTH);\n    var _controlPointMoveStat = controlPointMoveState.current,\n        referenceGradientAST = _controlPointMoveStat.gradientAST,\n        position = _controlPointMoveStat.position,\n        significantMoveHappened = _controlPointMoveStat.significantMoveHappened;\n\n    if (!significantMoveHappened) {\n      var initialPosition = referenceGradientAST.colorStops[position].length.value;\n\n      if (Math.abs(initialPosition - relativePosition) >= MINIMUM_SIGNIFICANT_MOVE) {\n        controlPointMoveState.current.significantMoveHappened = true;\n      }\n    }\n\n    if (!isControlPointOverlapping(referenceGradientAST, relativePosition, position)) {\n      onChange(getGradientWithPositionAtIndexChanged(referenceGradientAST, position, relativePosition));\n    }\n  };\n\n  var cleanEventListeners = function cleanEventListeners() {\n    if (window && window.removeEventListener && controlPointMoveState.current && controlPointMoveState.current.listenersActivated) {\n      window.removeEventListener('mousemove', onMouseMove);\n      window.removeEventListener('mouseup', cleanEventListeners);\n      onStopControlPointChange();\n      controlPointMoveState.current.listenersActivated = false;\n    }\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      cleanEventListeners();\n    };\n  }, []);\n  return markerPoints.map(function (point, index) {\n    return point && ignoreMarkerPosition !== point.positionValue && Object(external_this_wp_element_[\"createElement\"])(Dropdown, {\n      key: index,\n      onClose: onStopControlPointChange,\n      renderToggle: function renderToggle(_ref3) {\n        var isOpen = _ref3.isOpen,\n            onToggle = _ref3.onToggle;\n        return Object(external_this_wp_element_[\"createElement\"])(ControlPointButton, {\n          key: index,\n          onClick: function onClick() {\n            if (controlPointMoveState.current && controlPointMoveState.current.significantMoveHappened) {\n              return;\n            }\n\n            if (isOpen) {\n              onStopControlPointChange();\n            } else {\n              onStartControlPointChange();\n            }\n\n            onToggle();\n          },\n          onMouseDown: function onMouseDown() {\n            if (window && window.addEventListener) {\n              controlPointMoveState.current = {\n                gradientAST: gradientAST,\n                position: index,\n                significantMoveHappened: false,\n                listenersActivated: true\n              };\n              onStartControlPointChange();\n              window.addEventListener('mousemove', onMouseMove);\n              window.addEventListener('mouseup', cleanEventListeners);\n            }\n          },\n          isOpen: isOpen,\n          position: point.position,\n          color: point.color,\n          onChange: onChange,\n          gradientAST: gradientAST,\n          gradientIndex: index\n        });\n      },\n      renderContent: function renderContent(_ref4) {\n        var onClose = _ref4.onClose;\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(color_picker_ColorPicker, {\n          color: point.color,\n          onChangeComplete: function onChangeComplete(_ref5) {\n            var rgb = _ref5.rgb;\n            onChange(getGradientWithColorAtIndexChanged(gradientAST, index, rgb));\n          }\n        }), Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n          className: \"components-custom-gradient-picker__remove-control-point\",\n          onClick: function onClick() {\n            onChange(getGradientWithControlPointRemoved(gradientAST, index));\n            onClose();\n          },\n          isLink: true\n        }, Object(external_this_wp_i18n_[\"__\"])('Remove Control Point')));\n      },\n      popoverProps: COLOR_POPOVER_PROPS\n    });\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/custom-gradient-bar.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\nfunction InsertPoint(_ref) {\n  var onChange = _ref.onChange,\n      gradientAST = _ref.gradientAST,\n      onOpenInserter = _ref.onOpenInserter,\n      onCloseInserter = _ref.onCloseInserter,\n      insertPosition = _ref.insertPosition;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      alreadyInsertedPoint = _useState2[0],\n      setAlreadyInsertedPoint = _useState2[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(Dropdown, {\n    className: \"components-custom-gradient-picker__inserter\",\n    onClose: function onClose() {\n      onCloseInserter();\n    },\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        \"aria-expanded\": isOpen,\n        onClick: function onClick() {\n          if (isOpen) {\n            onCloseInserter();\n          } else {\n            setAlreadyInsertedPoint(false);\n            onOpenInserter();\n          }\n\n          onToggle();\n        },\n        className: \"components-custom-gradient-picker__insert-point\",\n        icon: plus_circle,\n        style: {\n          left: insertPosition !== null ? \"\".concat(insertPosition, \"%\") : undefined\n        }\n      });\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(color_picker_ColorPicker, {\n        onChangeComplete: function onChangeComplete(_ref3) {\n          var rgb = _ref3.rgb;\n          var newGradient;\n\n          if (alreadyInsertedPoint) {\n            newGradient = getGradientWithColorAtPositionChanged(gradientAST, insertPosition, rgb);\n          } else {\n            newGradient = getGradientWithColorStopAdded(gradientAST, insertPosition, rgb);\n            setAlreadyInsertedPoint(true);\n          }\n\n          onChange(newGradient);\n        }\n      });\n    },\n    popoverProps: COLOR_POPOVER_PROPS\n  });\n}\n\nfunction customGradientBarReducer(state, action) {\n  switch (action.type) {\n    case 'MOVE_INSERTER':\n      if (state.id === 'IDLE' || state.id === 'MOVING_INSERTER') {\n        return {\n          id: 'MOVING_INSERTER',\n          insertPosition: action.insertPosition\n        };\n      }\n\n      break;\n\n    case 'STOP_INSERTER_MOVE':\n      if (state.id === 'MOVING_INSERTER') {\n        return {\n          id: 'IDLE'\n        };\n      }\n\n      break;\n\n    case 'OPEN_INSERTER':\n      if (state.id === 'MOVING_INSERTER') {\n        return {\n          id: 'INSERTING_CONTROL_POINT',\n          insertPosition: state.insertPosition\n        };\n      }\n\n      break;\n\n    case 'CLOSE_INSERTER':\n      if (state.id === 'INSERTING_CONTROL_POINT') {\n        return {\n          id: 'IDLE'\n        };\n      }\n\n      break;\n\n    case 'START_CONTROL_CHANGE':\n      if (state.id === 'IDLE') {\n        return {\n          id: 'MOVING_CONTROL_POINT'\n        };\n      }\n\n      break;\n\n    case 'STOP_CONTROL_CHANGE':\n      if (state.id === 'MOVING_CONTROL_POINT') {\n        return {\n          id: 'IDLE'\n        };\n      }\n\n      break;\n  }\n\n  return state;\n}\n\nvar customGradientBarReducerInitialState = {\n  id: 'IDLE'\n};\nfunction CustomGradientBar(_ref4) {\n  var value = _ref4.value,\n      onChange = _ref4.onChange;\n\n  var _getGradientParsed = getGradientParsed(value),\n      gradientAST = _getGradientParsed.gradientAST,\n      gradientValue = _getGradientParsed.gradientValue,\n      hasGradient = _getGradientParsed.hasGradient;\n\n  var onGradientStructureChange = function onGradientStructureChange(newGradientStructure) {\n    onChange(serializeGradient(newGradientStructure));\n  };\n\n  var gradientPickerDomRef = Object(external_this_wp_element_[\"useRef\"])();\n  var markerPoints = getMarkerPoints(gradientAST);\n\n  var _useReducer = Object(external_this_wp_element_[\"useReducer\"])(customGradientBarReducer, customGradientBarReducerInitialState),\n      _useReducer2 = Object(slicedToArray[\"a\" /* default */])(_useReducer, 2),\n      gradientBarState = _useReducer2[0],\n      gradientBarStateDispatch = _useReducer2[1];\n\n  var onMouseEnterAndMove = function onMouseEnterAndMove(event) {\n    var insertPosition = getHorizontalRelativeGradientPosition(event.clientX, gradientPickerDomRef.current, INSERT_POINT_WIDTH); // If the insert point is close to an existing control point don't show it.\n\n    if (Object(external_this_lodash_[\"some\"])(markerPoints, function (_ref5) {\n      var positionValue = _ref5.positionValue;\n      return Math.abs(insertPosition - positionValue) < MINIMUM_DISTANCE_BETWEEN_POINTS;\n    })) {\n      if (gradientBarState.id === 'MOVING_INSERTER') {\n        gradientBarStateDispatch({\n          type: 'STOP_INSERTER_MOVE'\n        });\n      }\n\n      return;\n    }\n\n    gradientBarStateDispatch({\n      type: 'MOVE_INSERTER',\n      insertPosition: insertPosition\n    });\n  };\n\n  var onMouseLeave = function onMouseLeave() {\n    gradientBarStateDispatch({\n      type: 'STOP_INSERTER_MOVE'\n    });\n  };\n\n  var isMovingInserter = gradientBarState.id === 'MOVING_INSERTER';\n  var isInsertingControlPoint = gradientBarState.id === 'INSERTING_CONTROL_POINT';\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    ref: gradientPickerDomRef,\n    className: classnames_default()('components-custom-gradient-picker__gradient-bar', {\n      'has-gradient': hasGradient\n    }),\n    onMouseEnter: onMouseEnterAndMove,\n    onMouseMove: onMouseEnterAndMove // On radial gradients the bar should display a linear gradient.\n    // On radial gradients the bar represents a slice of the gradient from the center until the outside.\n    ,\n    style: {\n      background: gradientAST.type === 'radial-gradient' ? getLinearGradientRepresentationOfARadial(gradientAST) : gradientValue\n    },\n    onMouseLeave: onMouseLeave\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-custom-gradient-picker__markers-container\"\n  }, (isMovingInserter || isInsertingControlPoint) && Object(external_this_wp_element_[\"createElement\"])(InsertPoint, {\n    insertPosition: gradientBarState.insertPosition,\n    onChange: onGradientStructureChange,\n    gradientAST: gradientAST,\n    onOpenInserter: function onOpenInserter() {\n      gradientBarStateDispatch({\n        type: 'OPEN_INSERTER'\n      });\n    },\n    onCloseInserter: function onCloseInserter() {\n      gradientBarStateDispatch({\n        type: 'CLOSE_INSERTER'\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(ControlPoints, {\n    gradientPickerDomRef: gradientPickerDomRef,\n    ignoreMarkerPosition: isInsertingControlPoint ? gradientBarState.insertPosition : undefined,\n    markerPoints: markerPoints,\n    onChange: onGradientStructureChange,\n    gradientAST: gradientAST,\n    onStartControlPointChange: function onStartControlPointChange() {\n      gradientBarStateDispatch({\n        type: 'START_CONTROL_CHANGE'\n      });\n    },\n    onStopControlPointChange: function onStopControlPointChange() {\n      gradientBarStateDispatch({\n        type: 'STOP_CONTROL_CHANGE'\n      });\n    }\n  })));\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-item/index.js\nvar toolbar_item = __webpack_require__(127);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/toolbar-context/index.js\nvar toolbar_context = __webpack_require__(77);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/toolbar-button-container.js\n\n\nvar toolbar_button_container_ToolbarButtonContainer = function ToolbarButtonContainer(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: props.className\n  }, props.children);\n};\n\n/* harmony default export */ var toolbar_button_container = (toolbar_button_container_ToolbarButtonContainer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-button/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction ToolbarButton(_ref, ref) {\n  var containerClassName = _ref.containerClassName,\n      className = _ref.className,\n      extraProps = _ref.extraProps,\n      children = _ref.children,\n      title = _ref.title,\n      isActive = _ref.isActive,\n      isDisabled = _ref.isDisabled,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"containerClassName\", \"className\", \"extraProps\", \"children\", \"title\", \"isActive\", \"isDisabled\"]);\n\n  var accessibleToolbarState = Object(external_this_wp_element_[\"useContext\"])(toolbar_context[\"a\" /* default */]);\n\n  if (!accessibleToolbarState) {\n    // This should be deprecated when <Toolbar __experimentalAccessibilityLabel=\"label\">\n    // becomes stable.\n    return Object(external_this_wp_element_[\"createElement\"])(toolbar_button_container, {\n      className: containerClassName\n    }, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n      ref: ref,\n      icon: props.icon,\n      label: title,\n      shortcut: props.shortcut,\n      \"data-subscript\": props.subscript,\n      onClick: function onClick(event) {\n        event.stopPropagation();\n\n        if (props.onClick) {\n          props.onClick(event);\n        }\n      },\n      className: classnames_default()('components-toolbar__control', className),\n      isPressed: isActive,\n      disabled: isDisabled,\n      \"data-experimental-toolbar-item\": true\n    }, extraProps, props), children));\n  } // ToobarItem will pass all props to the render prop child, which will pass\n  // all props to Button. This means that ToolbarButton has the same API as\n  // Button.\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(toolbar_item[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('components-toolbar-button', className)\n  }, extraProps, props, {\n    ref: ref\n  }), function (toolbarItemProps) {\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n      label: title,\n      isPressed: isActive,\n      disabled: isDisabled\n    }, toolbarItemProps), children);\n  });\n}\n\n/* harmony default export */ var toolbar_button = (Object(external_this_wp_element_[\"forwardRef\"])(ToolbarButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-container.js\n\n\n\n\nvar toolbar_group_container_ToolbarGroupContainer = function ToolbarGroupContainer(_ref) {\n  var className = _ref.className,\n      children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"children\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n    className: className\n  }, props), children);\n};\n\n/* harmony default export */ var toolbar_group_container = (toolbar_group_container_ToolbarGroupContainer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/toolbar-group-collapsed.js\n\n\n\n\n\nfunction toolbar_group_collapsed_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction toolbar_group_collapsed_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { toolbar_group_collapsed_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { toolbar_group_collapsed_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction ToolbarGroupCollapsed(_ref) {\n  var _ref$controls = _ref.controls,\n      controls = _ref$controls === void 0 ? [] : _ref$controls,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"controls\"]);\n\n  // It'll contain state if `ToolbarGroup` is being used within\n  // `<Toolbar __experimentalAccessibilityLabel=\"label\" />`\n  var accessibleToolbarState = Object(external_this_wp_element_[\"useContext\"])(toolbar_context[\"a\" /* default */]);\n\n  var renderDropdownMenu = function renderDropdownMenu(toggleProps) {\n    return Object(external_this_wp_element_[\"createElement\"])(dropdown_menu, Object(esm_extends[\"a\" /* default */])({\n      controls: controls,\n      toggleProps: toolbar_group_collapsed_objectSpread({}, toggleProps, {\n        'data-experimental-toolbar-item': true\n      })\n    }, props));\n  };\n\n  if (accessibleToolbarState) {\n    return Object(external_this_wp_element_[\"createElement\"])(toolbar_item[\"a\" /* default */], null, renderDropdownMenu);\n  }\n\n  return renderDropdownMenu();\n}\n\n/* harmony default export */ var toolbar_group_collapsed = (ToolbarGroupCollapsed);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar-group/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Renders a collapsible group of controls\n *\n * The `controls` prop accepts an array of sets. A set is an array of controls.\n * Controls have the following shape:\n *\n * ```\n * {\n *   icon: string,\n *   title: string,\n *   subscript: string,\n *   onClick: Function,\n *   isActive: boolean,\n *   isDisabled: boolean\n * }\n * ```\n *\n * For convenience it is also possible to pass only an array of controls. It is\n * then assumed this is the only set.\n *\n * Either `controls` or `children` is required, otherwise this components\n * renders nothing.\n *\n * @param {Object}    props               Component props.\n * @param {Array}     [props.controls]    The controls to render in this toolbar.\n * @param {WPElement} [props.children]    Any other things to render inside the toolbar besides the controls.\n * @param {string}    [props.className]   Class to set on the container div.\n * @param {boolean}   [props.isCollapsed] Turns ToolbarGroup into a dropdown menu.\n * @param {string}    [props.title]       ARIA label for dropdown menu if is collapsed.\n */\n\nfunction ToolbarGroup(_ref) {\n  var _ref$controls = _ref.controls,\n      controls = _ref$controls === void 0 ? [] : _ref$controls,\n      children = _ref.children,\n      className = _ref.className,\n      isCollapsed = _ref.isCollapsed,\n      title = _ref.title,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"controls\", \"children\", \"className\", \"isCollapsed\", \"title\"]);\n\n  // It'll contain state if `ToolbarGroup` is being used within\n  // `<Toolbar accessibilityLabel=\"label\" />`\n  var accessibleToolbarState = Object(external_this_wp_element_[\"useContext\"])(toolbar_context[\"a\" /* default */]);\n\n  if ((!controls || !controls.length) && !children) {\n    return null;\n  }\n\n  var finalClassName = classnames_default()( // Unfortunately, there's legacy code referencing to `.components-toolbar`\n  // So we can't get rid of it\n  accessibleToolbarState ? 'components-toolbar-group' : 'components-toolbar', className); // Normalize controls to nested array of objects (sets of controls)\n\n  var controlSets = controls;\n\n  if (!Array.isArray(controlSets[0])) {\n    controlSets = [controlSets];\n  }\n\n  if (isCollapsed) {\n    return Object(external_this_wp_element_[\"createElement\"])(toolbar_group_collapsed, Object(esm_extends[\"a\" /* default */])({\n      label: title,\n      controls: controlSets,\n      className: finalClassName,\n      children: children\n    }, props));\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(toolbar_group_container, Object(esm_extends[\"a\" /* default */])({\n    className: finalClassName\n  }, props), Object(external_this_lodash_[\"flatMap\"])(controlSets, function (controlSet, indexOfSet) {\n    return controlSet.map(function (control, indexOfControl) {\n      return Object(external_this_wp_element_[\"createElement\"])(toolbar_button, Object(esm_extends[\"a\" /* default */])({\n        key: [indexOfSet, indexOfControl].join(),\n        containerClassName: indexOfSet > 0 && indexOfControl === 0 ? 'has-left-divider' : null\n      }, control));\n    });\n  }), children);\n}\n\n/* harmony default export */ var toolbar_group = (ToolbarGroup);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/custom-gradient-picker/index.js\n\n\n\nfunction custom_gradient_picker_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction custom_gradient_picker_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { custom_gradient_picker_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { custom_gradient_picker_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\nvar custom_gradient_picker_GradientAnglePicker = function GradientAnglePicker(_ref) {\n  var gradientAST = _ref.gradientAST,\n      hasGradient = _ref.hasGradient,\n      onChange = _ref.onChange;\n  var angle = Object(external_this_lodash_[\"get\"])(gradientAST, ['orientation', 'value'], DEFAULT_LINEAR_GRADIENT_ANGLE);\n\n  var onAngleChange = function onAngleChange(newAngle) {\n    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, gradientAST, {\n      orientation: {\n        type: 'angular',\n        value: newAngle\n      }\n    })));\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(AnglePickerControl, {\n    value: hasGradient ? angle : '',\n    onChange: onAngleChange\n  });\n};\n\nvar custom_gradient_picker_GradientTypePicker = function GradientTypePicker(_ref2) {\n  var gradientAST = _ref2.gradientAST,\n      hasGradient = _ref2.hasGradient,\n      onChange = _ref2.onChange;\n  var type = gradientAST.type;\n\n  var onSetLinearGradient = function onSetLinearGradient() {\n    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, gradientAST, {}, gradientAST.orientation ? {} : {\n      orientation: HORIZONTAL_GRADIENT_ORIENTATION\n    }, {\n      type: 'linear-gradient'\n    })));\n  };\n\n  var onSetRadialGradient = function onSetRadialGradient() {\n    onChange(serializeGradient(custom_gradient_picker_objectSpread({}, Object(external_this_lodash_[\"omit\"])(gradientAST, ['orientation']), {\n      type: 'radial-gradient'\n    })));\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    className: \"components-custom-gradient-picker__type-picker\"\n  }, Object(external_this_wp_element_[\"createElement\"])(base_control.VisualLabel, null, Object(external_this_wp_i18n_[\"__\"])('Type')), Object(external_this_wp_element_[\"createElement\"])(toolbar_group, {\n    className: \"components-custom-gradient-picker__toolbar\",\n    controls: [{\n      icon: Object(external_this_wp_element_[\"createElement\"])(LinearGradientIcon, null),\n      title: Object(external_this_wp_i18n_[\"__\"])('Linear Gradient'),\n      isActive: hasGradient && type === 'linear-gradient',\n      onClick: onSetLinearGradient\n    }, {\n      icon: Object(external_this_wp_element_[\"createElement\"])(RadialGradientIcon, null),\n      title: Object(external_this_wp_i18n_[\"__\"])('Radial Gradient'),\n      isActive: hasGradient && type === 'radial-gradient',\n      onClick: onSetRadialGradient\n    }]\n  }));\n};\n\nfunction CustomGradientPicker(_ref3) {\n  var value = _ref3.value,\n      onChange = _ref3.onChange;\n\n  var _getGradientParsed = getGradientParsed(value),\n      gradientAST = _getGradientParsed.gradientAST,\n      hasGradient = _getGradientParsed.hasGradient;\n\n  var type = gradientAST.type;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-custom-gradient-picker\"\n  }, Object(external_this_wp_element_[\"createElement\"])(CustomGradientBar, {\n    value: value,\n    onChange: onChange\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-custom-gradient-picker__ui-line\"\n  }, Object(external_this_wp_element_[\"createElement\"])(custom_gradient_picker_GradientTypePicker, {\n    gradientAST: gradientAST,\n    hasGradient: hasGradient,\n    onChange: onChange\n  }), type === 'linear-gradient' && Object(external_this_wp_element_[\"createElement\"])(custom_gradient_picker_GradientAnglePicker, {\n    gradientAST: gradientAST,\n    hasGradient: hasGradient,\n    onChange: onChange\n  })));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/gradient-picker/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction GradientPicker(_ref) {\n  var className = _ref.className,\n      gradients = _ref.gradients,\n      onChange = _ref.onChange,\n      value = _ref.value,\n      _ref$clearable = _ref.clearable,\n      clearable = _ref$clearable === void 0 ? true : _ref$clearable,\n      _ref$disableCustomGra = _ref.disableCustomGradients,\n      disableCustomGradients = _ref$disableCustomGra === void 0 ? false : _ref$disableCustomGra;\n  var clearGradient = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return onChange(undefined);\n  }, [onChange]);\n  var gradientOptions = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return Object(external_this_lodash_[\"map\"])(gradients, function (_ref2) {\n      var gradient = _ref2.gradient,\n          name = _ref2.name;\n      return Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker.Option, {\n        key: gradient,\n        value: gradient,\n        isSelected: value === gradient,\n        tooltipText: name || // translators: %s: gradient code e.g: \"linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Gradient code: %s'), gradient),\n        style: {\n          color: 'rgba( 0,0,0,0 )',\n          background: gradient\n        },\n        onClick: value === gradient ? clearGradient : function () {\n          return onChange(gradient);\n        },\n        \"aria-label\": name ? // translators: %s: The name of the gradient e.g: \"Angular red to blue\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Gradient: %s'), name) : // translators: %s: gradient code e.g: \"linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);\".\n        Object(external_this_wp_i18n_[\"sprintf\"])(Object(external_this_wp_i18n_[\"__\"])('Gradient code: %s'), gradient)\n      });\n    });\n  }, [gradients, value, onChange, clearGradient]);\n  return Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker, {\n    className: className,\n    options: gradientOptions,\n    actions: clearable && Object(external_this_wp_element_[\"createElement\"])(CircularOptionPicker.ButtonAction, {\n      onClick: clearGradient\n    }, Object(external_this_wp_i18n_[\"__\"])('Clear'))\n  }, !disableCustomGradients && Object(external_this_wp_element_[\"createElement\"])(CustomGradientPicker, {\n    value: value,\n    onChange: onChange\n  }));\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/isolated-event-container/index.js\nvar isolated_event_container = __webpack_require__(125);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/index.js\nvar with_focus_return = __webpack_require__(124);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-constrained-tabbing/index.js\nvar with_constrained_tabbing = __webpack_require__(123);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/frame.js\n\n\n\n\n\n\n\n\nfunction frame_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (frame_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction frame_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar frame_ModalFrame = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ModalFrame, _Component);\n\n  var _super = frame_createSuper(ModalFrame);\n\n  function ModalFrame() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ModalFrame);\n\n    _this = _super.apply(this, arguments);\n    _this.containerRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.handleKeyDown = _this.handleKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.handleFocusOutside = _this.handleFocusOutside.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n  /**\n   * Focuses the first tabbable element when props.focusOnMount is true.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(ModalFrame, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      // Focus on mount\n      if (this.props.focusOnMount) {\n        this.containerRef.current.focus();\n      }\n    }\n    /**\n     * Callback function called when clicked outside the modal.\n     *\n     * @param {Object} event Mouse click event.\n     */\n\n  }, {\n    key: \"handleFocusOutside\",\n    value: function handleFocusOutside(event) {\n      if (this.props.shouldCloseOnClickOutside) {\n        this.onRequestClose(event);\n      }\n    }\n    /**\n     * Callback function called when a key is pressed.\n     *\n     * @param {KeyboardEvent} event Key down event.\n     */\n\n  }, {\n    key: \"handleKeyDown\",\n    value: function handleKeyDown(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"ESCAPE\"]) {\n        this.handleEscapeKeyDown(event);\n      }\n    }\n    /**\n     * Handles a escape key down event.\n     *\n     * Calls onRequestClose and prevents propagation of the event outside the modal.\n     *\n     * @param {Object} event Key down event.\n     */\n\n  }, {\n    key: \"handleEscapeKeyDown\",\n    value: function handleEscapeKeyDown(event) {\n      if (this.props.shouldCloseOnEsc) {\n        event.stopPropagation();\n        this.onRequestClose(event);\n      }\n    }\n    /**\n     * Calls the onRequestClose callback props when it is available.\n     *\n     * @param {Object} event Event object.\n     */\n\n  }, {\n    key: \"onRequestClose\",\n    value: function onRequestClose(event) {\n      var onRequestClose = this.props.onRequestClose;\n\n      if (onRequestClose) {\n        onRequestClose(event);\n      }\n    }\n    /**\n     * Renders the modal frame element.\n     *\n     * @return {WPElement} The modal frame element.\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          overlayClassName = _this$props.overlayClassName,\n          contentLabel = _this$props.contentLabel,\n          _this$props$aria = _this$props.aria,\n          describedby = _this$props$aria.describedby,\n          labelledby = _this$props$aria.labelledby,\n          children = _this$props.children,\n          className = _this$props.className,\n          role = _this$props.role,\n          style = _this$props.style;\n      return Object(external_this_wp_element_[\"createElement\"])(isolated_event_container[\"a\" /* default */], {\n        className: classnames_default()('components-modal__screen-overlay', overlayClassName),\n        onKeyDown: this.handleKeyDown\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classnames_default()('components-modal__frame', className),\n        style: style,\n        ref: this.containerRef,\n        role: role,\n        \"aria-label\": contentLabel,\n        \"aria-labelledby\": contentLabel ? null : labelledby,\n        \"aria-describedby\": describedby,\n        tabIndex: \"-1\"\n      }, children));\n    }\n  }]);\n\n  return ModalFrame;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var modal_frame = (Object(external_this_wp_compose_[\"compose\"])([with_focus_return[\"a\" /* default */], with_constrained_tabbing[\"a\" /* default */], with_focus_outside[\"a\" /* default */]])(frame_ModalFrame));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/header.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar header_ModalHeader = function ModalHeader(_ref) {\n  var icon = _ref.icon,\n      title = _ref.title,\n      onClose = _ref.onClose,\n      closeLabel = _ref.closeLabel,\n      headingId = _ref.headingId,\n      isDismissible = _ref.isDismissible;\n  var label = closeLabel ? closeLabel : Object(external_this_wp_i18n_[\"__\"])('Close dialog');\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-modal__header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-modal__header-heading-container\"\n  }, icon && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-modal__icon-container\",\n    \"aria-hidden\": true\n  }, icon), title && Object(external_this_wp_element_[\"createElement\"])(\"h1\", {\n    id: headingId,\n    className: \"components-modal__header-heading\"\n  }, title)), isDismissible && Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    onClick: onClose,\n    icon: library_close[\"a\" /* default */],\n    label: label\n  }));\n};\n\n/* harmony default export */ var modal_header = (header_ModalHeader);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/aria-helper.js\n/**\n * External dependencies\n */\n\nvar LIVE_REGION_ARIA_ROLES = new Set(['alert', 'status', 'log', 'marquee', 'timer']);\nvar hiddenElements = [],\n    isHidden = false;\n/**\n * Hides all elements in the body element from screen-readers except\n * the provided element and elements that should not be hidden from\n * screen-readers.\n *\n * The reason we do this is because `aria-modal=\"true\"` currently is bugged\n * in Safari, and support is spotty in other browsers overall. In the future\n * we should consider removing these helper functions in favor of\n * `aria-modal=\"true\"`.\n *\n * @param {Element} unhiddenElement The element that should not be hidden.\n */\n\nfunction hideApp(unhiddenElement) {\n  if (isHidden) {\n    return;\n  }\n\n  var elements = document.body.children;\n  Object(external_this_lodash_[\"forEach\"])(elements, function (element) {\n    if (element === unhiddenElement) {\n      return;\n    }\n\n    if (elementShouldBeHidden(element)) {\n      element.setAttribute('aria-hidden', 'true');\n      hiddenElements.push(element);\n    }\n  });\n  isHidden = true;\n}\n/**\n * Determines if the passed element should not be hidden from screen readers.\n *\n * @param {HTMLElement} element The element that should be checked.\n *\n * @return {boolean} Whether the element should not be hidden from screen-readers.\n */\n\nfunction elementShouldBeHidden(element) {\n  var role = element.getAttribute('role');\n  return !(element.tagName === 'SCRIPT' || element.hasAttribute('aria-hidden') || element.hasAttribute('aria-live') || LIVE_REGION_ARIA_ROLES.has(role));\n}\n/**\n * Makes all elements in the body that have been hidden by `hideApp`\n * visible again to screen-readers.\n */\n\nfunction showApp() {\n  if (!isHidden) {\n    return;\n  }\n\n  Object(external_this_lodash_[\"forEach\"])(hiddenElements, function (element) {\n    element.removeAttribute('aria-hidden');\n  });\n  hiddenElements = [];\n  isHidden = false;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/modal/index.js\n\n\n\n\n\n\n\n\n\nfunction modal_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (modal_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction modal_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n // Used to count the number of open modals.\n\nvar parentElement,\n    openModalCount = 0;\n\nvar modal_Modal = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Modal, _Component);\n\n  var _super = modal_createSuper(Modal);\n\n  function Modal(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Modal);\n\n    _this = _super.call(this, props);\n\n    _this.prepareDOM();\n\n    return _this;\n  }\n  /**\n   * Appends the modal's node to the DOM, so the portal can render the\n   * modal in it. Also calls the openFirstModal when this is the first modal to be\n   * opened.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(Modal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      openModalCount++;\n\n      if (openModalCount === 1) {\n        this.openFirstModal();\n      }\n    }\n    /**\n     * Removes the modal's node from the DOM. Also calls closeLastModal when this is\n     * the last modal to be closed.\n     */\n\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      openModalCount--;\n\n      if (openModalCount === 0) {\n        this.closeLastModal();\n      }\n\n      this.cleanDOM();\n    }\n    /**\n     * Prepares the DOM for the modals to be rendered.\n     *\n     * Every modal is mounted in a separate div appended to a parent div\n     * that is appended to the document body.\n     *\n     * The parent div will be created if it does not yet exist, and the\n     * separate div for this specific modal will be appended to that.\n     */\n\n  }, {\n    key: \"prepareDOM\",\n    value: function prepareDOM() {\n      if (!parentElement) {\n        parentElement = document.createElement('div');\n        document.body.appendChild(parentElement);\n      }\n\n      this.node = document.createElement('div');\n      parentElement.appendChild(this.node);\n    }\n    /**\n     * Removes the specific mounting point for this modal from the DOM.\n     */\n\n  }, {\n    key: \"cleanDOM\",\n    value: function cleanDOM() {\n      parentElement.removeChild(this.node);\n    }\n    /**\n     * Prepares the DOM for this modal and any additional modal to be mounted.\n     *\n     * It appends an additional div to the body for the modals to be rendered in,\n     * it hides any other elements from screen-readers and adds an additional class\n     * to the body to prevent scrolling while the modal is open.\n     */\n\n  }, {\n    key: \"openFirstModal\",\n    value: function openFirstModal() {\n      hideApp(parentElement);\n      document.body.classList.add(this.props.bodyOpenClassName);\n    }\n    /**\n     * Cleans up the DOM after the last modal is closed and makes the app available\n     * for screen-readers again.\n     */\n\n  }, {\n    key: \"closeLastModal\",\n    value: function closeLastModal() {\n      document.body.classList.remove(this.props.bodyOpenClassName);\n      showApp();\n    }\n    /**\n     * Renders the modal.\n     *\n     * @return {WPElement} The modal element.\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          onRequestClose = _this$props.onRequestClose,\n          title = _this$props.title,\n          icon = _this$props.icon,\n          closeButtonLabel = _this$props.closeButtonLabel,\n          children = _this$props.children,\n          aria = _this$props.aria,\n          instanceId = _this$props.instanceId,\n          isDismissible = _this$props.isDismissible,\n          isDismissable = _this$props.isDismissable,\n          otherProps = Object(objectWithoutProperties[\"a\" /* default */])(_this$props, [\"onRequestClose\", \"title\", \"icon\", \"closeButtonLabel\", \"children\", \"aria\", \"instanceId\", \"isDismissible\", \"isDismissable\"]);\n\n      var headingId = aria.labelledby || \"components-modal-header-\".concat(instanceId);\n\n      if (isDismissable) {\n        external_this_wp_deprecated_default()('isDismissable prop of the Modal component', {\n          alternative: 'isDismissible prop (renamed) of the Modal component'\n        });\n      } // Disable reason: this stops mouse events from triggering tooltips and\n      // other elements underneath the modal overlay.\n\n\n      return Object(external_this_wp_element_[\"createPortal\"])(Object(external_this_wp_element_[\"createElement\"])(modal_frame, Object(esm_extends[\"a\" /* default */])({\n        onRequestClose: onRequestClose,\n        aria: {\n          labelledby: title ? headingId : null,\n          describedby: aria.describedby\n        }\n      }, otherProps), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: 'components-modal__content',\n        role: \"document\"\n      }, Object(external_this_wp_element_[\"createElement\"])(modal_header, {\n        closeLabel: closeButtonLabel,\n        headingId: headingId,\n        icon: icon,\n        isDismissible: isDismissible || isDismissable,\n        onClose: onRequestClose,\n        title: title\n      }), children)), this.node);\n    }\n  }]);\n\n  return Modal;\n}(external_this_wp_element_[\"Component\"]);\n\nmodal_Modal.defaultProps = {\n  bodyOpenClassName: 'modal-open',\n  role: 'dialog',\n  title: null,\n  focusOnMount: true,\n  shouldCloseOnEsc: true,\n  shouldCloseOnClickOutside: true,\n  isDismissible: true,\n\n  /* accessibility */\n  aria: {\n    labelledby: null,\n    describedby: null\n  }\n};\n/* harmony default export */ var modal = (Object(external_this_wp_compose_[\"withInstanceId\"])(modal_Modal));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/icons.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar icons_PageControlIcon = function PageControlIcon(_ref) {\n  var isSelected = _ref.isSelected;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"8\",\n    height: \"8\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Circle\"], {\n    cx: \"4\",\n    cy: \"4\",\n    r: \"4\",\n    fill: isSelected ? '#419ECD' : '#E1E3E6'\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page-control.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PageControl(_ref) {\n  var currentPage = _ref.currentPage,\n      numberOfPages = _ref.numberOfPages,\n      setCurrentPage = _ref.setCurrentPage;\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"components-guide__page-control\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Guide controls')\n  }, Object(external_this_lodash_[\"times\"])(numberOfPages, function (page) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: page // Set aria-current=\"step\" on the active page, see https://www.w3.org/TR/wai-aria-1.1/#aria-current\n      ,\n      \"aria-current\": page === currentPage ? 'step' : undefined\n    }, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n      key: page,\n      icon: Object(external_this_wp_element_[\"createElement\"])(icons_PageControlIcon, {\n        isSelected: page === currentPage\n      }),\n      \"aria-label\": Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: 1: current page number 2: total number of pages */\n      Object(external_this_wp_i18n_[\"__\"])('Page %1$d of %2$d'), page + 1, numberOfPages),\n      onClick: function onClick() {\n        return setCurrentPage(page);\n      }\n    }));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/finish-button.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction FinishButton(_ref) {\n  var className = _ref.className,\n      onClick = _ref.onClick,\n      children = _ref.children;\n  var button = Object(external_this_wp_element_[\"useRef\"])(null); // Focus the button on mount if nothing else is focused. This prevents a\n  // focus loss when the 'Next' button is swapped out.\n\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    if (!document.activeElement || document.activeElement === document.body) {\n      button.current.focus();\n    }\n  }, [button]);\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    ref: button,\n    className: className,\n    isPrimary: true,\n    onClick: onClick\n  }, children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction Guide(_ref) {\n  var children = _ref.children,\n      className = _ref.className,\n      contentLabel = _ref.contentLabel,\n      finishButtonText = _ref.finishButtonText,\n      onFinish = _ref.onFinish,\n      _ref$pages = _ref.pages,\n      pages = _ref$pages === void 0 ? [] : _ref$pages;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(0),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      currentPage = _useState2[0],\n      setCurrentPage = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (external_this_wp_element_[\"Children\"].count(children)) {\n      external_this_wp_deprecated_default()('Passing children to <Guide>', {\n        alternative: 'the `pages` prop'\n      });\n    }\n  }, [children]);\n\n  if (external_this_wp_element_[\"Children\"].count(children)) {\n    pages = external_this_wp_element_[\"Children\"].map(children, function (child) {\n      return {\n        content: child\n      };\n    });\n  }\n\n  var canGoBack = currentPage > 0;\n  var canGoForward = currentPage < pages.length - 1;\n\n  var goBack = function goBack() {\n    if (canGoBack) {\n      setCurrentPage(currentPage - 1);\n    }\n  };\n\n  var goForward = function goForward() {\n    if (canGoForward) {\n      setCurrentPage(currentPage + 1);\n    }\n  };\n\n  if (pages.length === 0) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(modal, {\n    className: classnames_default()('components-guide', className),\n    contentLabel: contentLabel,\n    onRequestClose: onFinish\n  }, Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, {\n    key: currentPage,\n    shortcuts: {\n      left: goBack,\n      right: goForward\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-guide__container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-guide__page\"\n  }, pages[currentPage].image, Object(external_this_wp_element_[\"createElement\"])(PageControl, {\n    currentPage: currentPage,\n    numberOfPages: pages.length,\n    setCurrentPage: setCurrentPage\n  }), pages[currentPage].content, !canGoForward && Object(external_this_wp_element_[\"createElement\"])(FinishButton, {\n    className: \"components-guide__inline-finish-button\",\n    onClick: onFinish\n  }, finishButtonText || Object(external_this_wp_i18n_[\"__\"])('Finish'))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-guide__footer\"\n  }, canGoBack && Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-guide__back-button\",\n    onClick: goBack\n  }, Object(external_this_wp_i18n_[\"__\"])('Previous')), canGoForward && Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-guide__forward-button\",\n    onClick: goForward\n  }, Object(external_this_wp_i18n_[\"__\"])('Next')), !canGoForward && Object(external_this_wp_element_[\"createElement\"])(FinishButton, {\n    className: \"components-guide__finish-button\",\n    onClick: onFinish\n  }, finishButtonText || Object(external_this_wp_i18n_[\"__\"])('Finish')))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/guide/page.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction GuidePage(props) {\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    external_this_wp_deprecated_default()('<GuidePage>', {\n      alternative: 'the `pages` prop in <Guide>'\n    });\n  }, []);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", props);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/button/deprecated.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction IconButton(_ref, ref) {\n  var labelPosition = _ref.labelPosition,\n      size = _ref.size,\n      tooltip = _ref.tooltip,\n      label = _ref.label,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"labelPosition\", \"size\", \"tooltip\", \"label\"]);\n\n  external_this_wp_deprecated_default()('wp.components.IconButton', {\n    alternative: 'wp.components.Button'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({}, props, {\n    ref: ref,\n    tooltipPosition: labelPosition,\n    iconSize: size,\n    showTooltip: tooltip !== undefined ? !!tooltip : undefined,\n    label: tooltip || label\n  }));\n}\n\n/* harmony default export */ var deprecated = (Object(external_this_wp_element_[\"forwardRef\"])(IconButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-group/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction MenuGroup(_ref) {\n  var children = _ref.children,\n      _ref$className = _ref.className,\n      className = _ref$className === void 0 ? '' : _ref$className,\n      label = _ref.label;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(MenuGroup);\n\n  if (!external_this_wp_element_[\"Children\"].count(children)) {\n    return null;\n  }\n\n  var labelId = \"components-menu-group-label-\".concat(instanceId);\n  var classNames = classnames_default()(className, 'components-menu-group');\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classNames\n  }, label && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-menu-group__label\",\n    id: labelId,\n    \"aria-hidden\": \"true\"\n  }, label), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    role: \"group\",\n    \"aria-labelledby\": label ? labelId : null\n  }, children));\n}\n/* harmony default export */ var menu_group = (MenuGroup);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/shortcut/index.js\nvar build_module_shortcut = __webpack_require__(160);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-item/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Renders a generic menu item for use inside the more menu.\n *\n * @param {Object}        props                   Component props.\n * @param {WPElement}     props.children          Element to render as child of button.\n * @param {string}        props.info              Text to use as description for button text.\n * @param {string}        props.className         Class to set on the container.\n * @param {WPIcon}        props.icon              Button's `icon` prop.\n * @param {string|Object} props.shortcut          Shortcut's `shortcut` prop.\n * @param {boolean}       props.isSelected        Whether or not the menu item is currently selected.\n * @param {string}        [props.role=\"menuitem\"] ARIA role of the menu item.\n * @param {Object}        ref                     React Element ref.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nfunction MenuItem(_ref, ref) {\n  var children = _ref.children,\n      info = _ref.info,\n      className = _ref.className,\n      icon = _ref.icon,\n      shortcut = _ref.shortcut,\n      isSelected = _ref.isSelected,\n      _ref$role = _ref.role,\n      role = _ref$role === void 0 ? 'menuitem' : _ref$role,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"info\", \"className\", \"icon\", \"shortcut\", \"isSelected\", \"role\"]);\n\n  className = classnames_default()('components-menu-item__button', className);\n\n  if (info) {\n    children = Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"components-menu-item__info-wrapper\"\n    }, children, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"components-menu-item__info\"\n    }, info));\n  }\n\n  if (icon && !Object(external_this_lodash_[\"isString\"])(icon)) {\n    icon = Object(external_this_wp_element_[\"cloneElement\"])(icon, {\n      className: 'components-menu-items__item-icon'\n    });\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    icon: icon // Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked\n    ,\n    \"aria-checked\": role === 'menuitemcheckbox' || role === 'menuitemradio' ? isSelected : undefined,\n    role: role,\n    className: className\n  }, props), children, Object(external_this_wp_element_[\"createElement\"])(build_module_shortcut[\"a\" /* default */], {\n    className: \"components-menu-item__shortcut\",\n    shortcut: shortcut\n  }));\n}\n/* harmony default export */ var menu_item = (Object(external_this_wp_element_[\"forwardRef\"])(MenuItem));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/menu-items-choice/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction MenuItemsChoice(_ref) {\n  var _ref$choices = _ref.choices,\n      choices = _ref$choices === void 0 ? [] : _ref$choices,\n      _ref$onHover = _ref.onHover,\n      onHover = _ref$onHover === void 0 ? external_this_lodash_[\"noop\"] : _ref$onHover,\n      onSelect = _ref.onSelect,\n      value = _ref.value;\n  return choices.map(function (item) {\n    var isSelected = value === item.value;\n    return Object(external_this_wp_element_[\"createElement\"])(menu_item, {\n      key: item.value,\n      role: \"menuitemradio\",\n      icon: isSelected && check[\"a\" /* default */],\n      isSelected: isSelected,\n      shortcut: item.shortcut,\n      className: \"components-menu-items-choice\",\n      onClick: function onClick() {\n        if (!isSelected) {\n          onSelect(item.value);\n        }\n      },\n      onMouseEnter: function onMouseEnter() {\n        return onHover(item.value);\n      },\n      onMouseLeave: function onMouseLeave() {\n        return onHover(null);\n      }\n    }, item.label);\n  });\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/scroll-lock/index.js\nvar scroll_lock = __webpack_require__(155);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/tabbable.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction TabbableContainer(_ref, ref) {\n  var eventToOffset = _ref.eventToOffset,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"eventToOffset\"]);\n\n  var innerEventToOffset = function innerEventToOffset(evt) {\n    var keyCode = evt.keyCode,\n        shiftKey = evt.shiftKey;\n\n    if (external_this_wp_keycodes_[\"TAB\"] === keyCode) {\n      return shiftKey ? -1 : 1;\n    } // Allow custom handling of keys besides Tab.\n    //\n    // By default, TabbableContainer will move focus forward on Tab and\n    // backward on Shift+Tab. The handler below will be used for all other\n    // events. The semantics for `eventToOffset`'s return\n    // values are the following:\n    //\n    // - +1: move focus forward\n    // - -1: move focus backward\n    // -  0: don't move focus, but acknowledge event and thus stop it\n    // - undefined: do nothing, let the event propagate\n\n\n    if (eventToOffset) {\n      return eventToOffset(evt);\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(navigable_container_container, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    stopNavigationEvents: true,\n    onlyBrowserTabstops: true,\n    eventToOffset: innerEventToOffset\n  }, props));\n}\n/* harmony default export */ var tabbable = (Object(external_this_wp_element_[\"forwardRef\"])(TabbableContainer));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/** @typedef {import('@wordpress/element').WPElement} WPElement */\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param {string|WPElement}     [message]  Message to announce.\n * @param {'polite'|'assertive'} politeness Politeness to announce.\n */\n\nfunction useSpokenMessage(message, politeness) {\n  var spokenMessage = typeof message === 'string' ? message : Object(external_this_wp_element_[\"renderToString\"])(message);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (spokenMessage) {\n      Object(external_this_wp_a11y_[\"speak\"])(spokenMessage, politeness);\n    }\n  }, [spokenMessage, politeness]);\n}\n/**\n * Given a notice status, returns an assumed default politeness for the status.\n * Defaults to 'assertive'.\n *\n * @param {string} [status] Notice status.\n *\n * @return {'polite'|'assertive'} Notice politeness.\n */\n\n\nfunction getDefaultPoliteness(status) {\n  switch (status) {\n    case 'success':\n    case 'warning':\n    case 'info':\n      return 'polite';\n\n    case 'error':\n    default:\n      return 'assertive';\n  }\n}\n\nfunction Notice(_ref) {\n  var className = _ref.className,\n      _ref$status = _ref.status,\n      status = _ref$status === void 0 ? 'info' : _ref$status,\n      children = _ref.children,\n      _ref$spokenMessage = _ref.spokenMessage,\n      spokenMessage = _ref$spokenMessage === void 0 ? children : _ref$spokenMessage,\n      _ref$onRemove = _ref.onRemove,\n      onRemove = _ref$onRemove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onRemove,\n      _ref$isDismissible = _ref.isDismissible,\n      isDismissible = _ref$isDismissible === void 0 ? true : _ref$isDismissible,\n      _ref$actions = _ref.actions,\n      actions = _ref$actions === void 0 ? [] : _ref$actions,\n      _ref$politeness = _ref.politeness,\n      politeness = _ref$politeness === void 0 ? getDefaultPoliteness(status) : _ref$politeness,\n      __unstableHTML = _ref.__unstableHTML;\n  useSpokenMessage(spokenMessage, politeness);\n  var classes = classnames_default()(className, 'components-notice', 'is-' + status, {\n    'is-dismissible': isDismissible\n  });\n\n  if (__unstableHTML) {\n    children = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], null, children);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classes\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-notice__content\"\n  }, children, actions.map(function (_ref2, index) {\n    var buttonCustomClasses = _ref2.className,\n        label = _ref2.label,\n        isPrimary = _ref2.isPrimary,\n        _ref2$noDefaultClasse = _ref2.noDefaultClasses,\n        noDefaultClasses = _ref2$noDefaultClasse === void 0 ? false : _ref2$noDefaultClasse,\n        onClick = _ref2.onClick,\n        url = _ref2.url;\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n      key: index,\n      href: url,\n      isPrimary: isPrimary,\n      isSecondary: !noDefaultClasses && !url,\n      isLink: !noDefaultClasses && !!url,\n      onClick: url ? undefined : onClick,\n      className: classnames_default()('components-notice__action', buttonCustomClasses)\n    }, label);\n  })), isDismissible && Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n    className: \"components-notice__dismiss\",\n    icon: library_close[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Dismiss this notice'),\n    onClick: onRemove,\n    showTooltip: false\n  }));\n}\n\n/* harmony default export */ var build_module_notice = (Notice);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/notice/list.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Renders a list of notices.\n *\n * @param  {Object}   $0           Props passed to the component.\n * @param  {Array}    $0.notices   Array of notices to render.\n * @param  {Function} $0.onRemove  Function called when a notice should be removed / dismissed.\n * @param  {Object}   $0.className Name of the class used by the component.\n * @param  {Object}   $0.children  Array of children to be rendered inside the notice list.\n * @return {Object}                The rendered notices list.\n */\n\nfunction NoticeList(_ref) {\n  var notices = _ref.notices,\n      _ref$onRemove = _ref.onRemove,\n      onRemove = _ref$onRemove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onRemove,\n      className = _ref.className,\n      children = _ref.children;\n\n  var removeNotice = function removeNotice(id) {\n    return function () {\n      return onRemove(id);\n    };\n  };\n\n  className = classnames_default()('components-notice-list', className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, children, Object(toConsumableArray[\"a\" /* default */])(notices).reverse().map(function (notice) {\n    return Object(external_this_wp_element_[\"createElement\"])(build_module_notice, Object(esm_extends[\"a\" /* default */])({}, Object(external_this_lodash_[\"omit\"])(notice, ['content']), {\n      key: notice.id,\n      onRemove: removeNotice(notice.id)\n    }), notice.content);\n  }));\n}\n\n/* harmony default export */ var list = (NoticeList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/header.js\n\n\nfunction PanelHeader(_ref) {\n  var label = _ref.label,\n      children = _ref.children;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-panel__header\"\n  }, label && Object(external_this_wp_element_[\"createElement\"])(\"h2\", null, label), children);\n}\n\n/* harmony default export */ var panel_header = (PanelHeader);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction Panel(_ref) {\n  var header = _ref.header,\n      className = _ref.className,\n      children = _ref.children;\n  var classNames = classnames_default()(className, 'components-panel');\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classNames\n  }, header && Object(external_this_wp_element_[\"createElement\"])(panel_header, {\n    label: header\n  }), children);\n}\n\n/* harmony default export */ var panel = (Panel);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-up.js\nvar chevron_up = __webpack_require__(290);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/body.js\n\n\n\n\n\n\n\n\n\nfunction body_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (body_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction body_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar body_PanelBody = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PanelBody, _Component);\n\n  var _super = body_createSuper(PanelBody);\n\n  function PanelBody(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PanelBody);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      opened: props.initialOpen === undefined ? true : props.initialOpen\n    };\n    _this.toggle = _this.toggle.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PanelBody, [{\n    key: \"toggle\",\n    value: function toggle(event) {\n      event.preventDefault();\n\n      if (this.props.opened === undefined) {\n        this.setState(function (state) {\n          return {\n            opened: !state.opened\n          };\n        });\n      }\n\n      if (this.props.onToggle) {\n        this.props.onToggle();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          title = _this$props.title,\n          children = _this$props.children,\n          opened = _this$props.opened,\n          className = _this$props.className,\n          icon = _this$props.icon,\n          forwardedRef = _this$props.forwardedRef;\n      var isOpened = opened === undefined ? this.state.opened : opened;\n      var classes = classnames_default()('components-panel__body', className, {\n        'is-opened': isOpened\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classes,\n        ref: forwardedRef\n      }, !!title && Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n        className: \"components-panel__body-title\"\n      }, Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], {\n        className: \"components-panel__body-toggle\",\n        onClick: this.toggle,\n        \"aria-expanded\": isOpened\n      }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n        \"aria-hidden\": \"true\"\n      }, Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n        className: \"components-panel__arrow\",\n        icon: isOpened ? chevron_up[\"a\" /* default */] : chevron_down[\"a\" /* default */]\n      })), title, icon && Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n        icon: icon,\n        className: \"components-panel__icon\",\n        size: 20\n      }))), isOpened && children);\n    }\n  }]);\n\n  return PanelBody;\n}(external_this_wp_element_[\"Component\"]);\n\nvar body_forwardedPanelBody = function forwardedPanelBody(props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(body_PanelBody, Object(esm_extends[\"a\" /* default */])({}, props, {\n    forwardedRef: ref\n  }));\n};\n\nbody_forwardedPanelBody.displayName = 'PanelBody';\n/* harmony default export */ var panel_body = (Object(external_this_wp_element_[\"forwardRef\"])(body_forwardedPanelBody));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/panel/row.js\n\n\n/**\n * External dependencies\n */\n\n\nfunction PanelRow(_ref) {\n  var className = _ref.className,\n      children = _ref.children;\n  var classes = classnames_default()('components-panel__row', className);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classes\n  }, children);\n}\n\n/* harmony default export */ var row = (PanelRow);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/placeholder/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Renders a placeholder. Normally used by blocks to render their empty state.\n *\n * @param {Object}    props                The component props.\n * @param {WPIcon}    props.icon           An icon rendered before the label.\n * @param {WPElement} props.children       Children to be rendered.\n * @param {string}    props.label          Title of the placeholder.\n * @param {string}    props.instructions   Instructions of the placeholder.\n * @param {string}    props.className      Class to set on the container div.\n * @param {Object}    props.notices        A rendered notices list.\n * @param {Object}    props.preview        Preview to be rendered in the placeholder.\n * @param {boolean}   props.isColumnLayout Whether a column layout should be used.\n *\n * @return {Object}       The rendered placeholder.\n */\n\nfunction Placeholder(_ref) {\n  var icon = _ref.icon,\n      children = _ref.children,\n      label = _ref.label,\n      instructions = _ref.instructions,\n      className = _ref.className,\n      notices = _ref.notices,\n      preview = _ref.preview,\n      isColumnLayout = _ref.isColumnLayout,\n      additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"icon\", \"children\", \"label\", \"instructions\", \"className\", \"notices\", \"preview\", \"isColumnLayout\"]);\n\n  var _useResizeObserver = Object(external_this_wp_compose_[\"useResizeObserver\"])(),\n      _useResizeObserver2 = Object(slicedToArray[\"a\" /* default */])(_useResizeObserver, 2),\n      resizeListener = _useResizeObserver2[0],\n      width = _useResizeObserver2[1].width; // Since `useResizeObserver` will report a width of `null` until after the\n  // first render, avoid applying any modifier classes until width is known.\n\n\n  var modifierClassNames;\n\n  if (typeof width === 'number') {\n    modifierClassNames = {\n      'is-large': width >= 320,\n      'is-medium': width >= 160 && width < 320,\n      'is-small': width < 160\n    };\n  }\n\n  var classes = classnames_default()('components-placeholder', className, modifierClassNames);\n  var fieldsetClasses = classnames_default()('components-placeholder__fieldset', {\n    'is-column-layout': isColumnLayout\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({}, additionalProps, {\n    className: classes\n  }), resizeListener, notices, preview && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__preview\"\n  }, preview), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__label\"\n  }, Object(external_this_wp_element_[\"createElement\"])(components_build_module_icon[\"a\" /* default */], {\n    icon: icon\n  }), label), !!instructions && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-placeholder__instructions\"\n  }, instructions), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: fieldsetClasses\n  }, children));\n}\n\n/* harmony default export */ var placeholder = (Placeholder);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/terms.js\n\n\nfunction terms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction terms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { terms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { terms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Returns terms in a tree form.\n *\n * @param {Array} flatTerms  Array of terms in flat format.\n *\n * @return {Array} Array of terms in tree format.\n */\n\nfunction buildTermsTree(flatTerms) {\n  var flatTermsWithParentAndChildren = flatTerms.map(function (term) {\n    return terms_objectSpread({\n      children: [],\n      parent: null\n    }, term);\n  });\n  var termsByParent = Object(external_this_lodash_[\"groupBy\"])(flatTermsWithParentAndChildren, 'parent');\n\n  if (termsByParent.null && termsByParent.null.length) {\n    return flatTermsWithParentAndChildren;\n  }\n\n  var fillWithChildren = function fillWithChildren(terms) {\n    return terms.map(function (term) {\n      var children = termsByParent[term.id];\n      return terms_objectSpread({}, term, {\n        children: children && children.length ? fillWithChildren(children) : []\n      });\n    });\n  };\n\n  return fillWithChildren(termsByParent['0'] || []);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-select/index.js\n\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction tree_select_getSelectOptions(tree) {\n  var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  return Object(external_this_lodash_[\"flatMap\"])(tree, function (treeNode) {\n    return [{\n      value: treeNode.id,\n      label: Object(external_this_lodash_[\"repeat\"])(\"\\xA0\", level * 3) + Object(external_this_lodash_[\"unescape\"])(treeNode.name)\n    }].concat(Object(toConsumableArray[\"a\" /* default */])(tree_select_getSelectOptions(treeNode.children || [], level + 1)));\n  });\n}\n\nfunction TreeSelect(_ref) {\n  var label = _ref.label,\n      noOptionLabel = _ref.noOptionLabel,\n      onChange = _ref.onChange,\n      selectedId = _ref.selectedId,\n      tree = _ref.tree,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"noOptionLabel\", \"onChange\", \"selectedId\", \"tree\"]);\n\n  var options = Object(external_this_lodash_[\"compact\"])([noOptionLabel && {\n    value: '',\n    label: noOptionLabel\n  }].concat(Object(toConsumableArray[\"a\" /* default */])(tree_select_getSelectOptions(tree))));\n  return Object(external_this_wp_element_[\"createElement\"])(SelectControl, Object(esm_extends[\"a\" /* default */])({\n    label: label,\n    options: options,\n    onChange: onChange\n  }, {\n    value: selectedId\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/category-select.js\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction CategorySelect(_ref) {\n  var label = _ref.label,\n      noOptionLabel = _ref.noOptionLabel,\n      categoriesList = _ref.categoriesList,\n      selectedCategoryId = _ref.selectedCategoryId,\n      onChange = _ref.onChange,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"noOptionLabel\", \"categoriesList\", \"selectedCategoryId\", \"onChange\"]);\n\n  var termsTree = buildTermsTree(categoriesList);\n  return Object(external_this_wp_element_[\"createElement\"])(TreeSelect, Object(esm_extends[\"a\" /* default */])({\n    label: label,\n    noOptionLabel: noOptionLabel,\n    onChange: onChange\n  }, {\n    tree: termsTree,\n    selectedId: selectedCategoryId\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/author-select.js\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction AuthorSelect(_ref) {\n  var label = _ref.label,\n      noOptionLabel = _ref.noOptionLabel,\n      authorList = _ref.authorList,\n      selectedAuthorId = _ref.selectedAuthorId,\n      onChange = _ref.onChange;\n  var termsTree = buildTermsTree(authorList);\n  return Object(external_this_wp_element_[\"createElement\"])(TreeSelect, Object(esm_extends[\"a\" /* default */])({\n    label: label,\n    noOptionLabel: noOptionLabel,\n    onChange: onChange\n  }, {\n    tree: termsTree,\n    selectedId: selectedAuthorId\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/query-controls/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar DEFAULT_MIN_ITEMS = 1;\nvar DEFAULT_MAX_ITEMS = 100;\nvar MAX_CATEGORIES_SUGGESTIONS = 20;\nfunction QueryControls(_ref) {\n  var authorList = _ref.authorList,\n      selectedAuthorId = _ref.selectedAuthorId,\n      categoriesList = _ref.categoriesList,\n      selectedCategoryId = _ref.selectedCategoryId,\n      categorySuggestions = _ref.categorySuggestions,\n      selectedCategories = _ref.selectedCategories,\n      numberOfItems = _ref.numberOfItems,\n      order = _ref.order,\n      orderBy = _ref.orderBy,\n      _ref$maxItems = _ref.maxItems,\n      maxItems = _ref$maxItems === void 0 ? DEFAULT_MAX_ITEMS : _ref$maxItems,\n      _ref$minItems = _ref.minItems,\n      minItems = _ref$minItems === void 0 ? DEFAULT_MIN_ITEMS : _ref$minItems,\n      onCategoryChange = _ref.onCategoryChange,\n      onAuthorChange = _ref.onAuthorChange,\n      onNumberOfItemsChange = _ref.onNumberOfItemsChange,\n      onOrderChange = _ref.onOrderChange,\n      onOrderByChange = _ref.onOrderByChange;\n  return [onOrderChange && onOrderByChange && Object(external_this_wp_element_[\"createElement\"])(SelectControl, {\n    key: \"query-controls-order-select\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Order by'),\n    value: \"\".concat(orderBy, \"/\").concat(order),\n    options: [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Newest to oldest'),\n      value: 'date/desc'\n    }, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Oldest to newest'),\n      value: 'date/asc'\n    }, {\n      /* translators: label for ordering posts by title in ascending order */\n      label: Object(external_this_wp_i18n_[\"__\"])('A → Z'),\n      value: 'title/asc'\n    }, {\n      /* translators: label for ordering posts by title in descending order */\n      label: Object(external_this_wp_i18n_[\"__\"])('Z → A'),\n      value: 'title/desc'\n    }],\n    onChange: function onChange(value) {\n      var _value$split = value.split('/'),\n          _value$split2 = Object(slicedToArray[\"a\" /* default */])(_value$split, 2),\n          newOrderBy = _value$split2[0],\n          newOrder = _value$split2[1];\n\n      if (newOrder !== order) {\n        onOrderChange(newOrder);\n      }\n\n      if (newOrderBy !== orderBy) {\n        onOrderByChange(newOrderBy);\n      }\n    }\n  }), categoriesList && onCategoryChange && Object(external_this_wp_element_[\"createElement\"])(CategorySelect, {\n    key: \"query-controls-category-select\",\n    categoriesList: categoriesList,\n    label: Object(external_this_wp_i18n_[\"__\"])('Category'),\n    noOptionLabel: Object(external_this_wp_i18n_[\"__\"])('All'),\n    selectedCategoryId: selectedCategoryId\n  }), categorySuggestions && onCategoryChange && Object(external_this_wp_element_[\"createElement\"])(form_token_field, {\n    key: \"query-controls-categories-select\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Categories'),\n    value: selectedCategories && selectedCategories.map(function (item) {\n      return {\n        id: item.id,\n        value: item.name || item.value\n      };\n    }),\n    suggestions: Object.keys(categorySuggestions),\n    onChange: onCategoryChange,\n    maxSuggestions: MAX_CATEGORIES_SUGGESTIONS\n  }), onAuthorChange && Object(external_this_wp_element_[\"createElement\"])(AuthorSelect, {\n    key: \"query-controls-author-select\",\n    authorList: authorList,\n    label: Object(external_this_wp_i18n_[\"__\"])('Author'),\n    noOptionLabel: Object(external_this_wp_i18n_[\"__\"])('All'),\n    selectedAuthorId: selectedAuthorId,\n    onChange: onAuthorChange\n  }), onNumberOfItemsChange && Object(external_this_wp_element_[\"createElement\"])(range_control, {\n    key: \"query-controls-range-control\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Number of items'),\n    value: numberOfItems,\n    onChange: onNumberOfItemsChange,\n    min: minItems,\n    max: maxItems,\n    required: true\n  })];\n}\n\n// EXTERNAL MODULE: ./node_modules/reakit-warning/es/warning.js\nvar warning = __webpack_require__(149);\n\n// EXTERNAL MODULE: ./node_modules/reakit-utils/es/useSealedState.js\nvar useSealedState = __webpack_require__(64);\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioState.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction useRadioState(initialState) {\n  if (initialState === void 0) {\n    initialState = {};\n  }\n\n  var _useSealedState = Object(useSealedState[\"a\" /* useSealedState */])(initialState),\n      initialValue = _useSealedState.state,\n      _useSealedState$loop = _useSealedState.loop,\n      loop = _useSealedState$loop === void 0 ? true : _useSealedState$loop,\n      sealed = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(_useSealedState, [\"state\", \"loop\"]);\n\n  var _React$useState = Object(external_this_React_[\"useState\"])(initialValue),\n      state = _React$useState[0],\n      setState = _React$useState[1];\n\n  var composite = Object(CompositeState_3a25dcee[\"g\" /* u */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({}, sealed), {}, {\n    loop: loop\n  }));\n  return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({}, composite), {}, {\n    state: state,\n    setState: setState\n  });\n}\nvar keys = [].concat(CompositeState_3a25dcee[\"g\" /* u */].__keys, [\"state\", \"setState\"]);\nuseRadioState.__keys = keys;\n\n\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/Radio.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getChecked(options) {\n  if (typeof options.checked !== \"undefined\") {\n    return options.checked;\n  }\n\n  return typeof options.value !== \"undefined\" && options.state === options.value;\n}\n\nfunction useInitialChecked(options) {\n  var _React$useState = Object(external_this_React_[\"useState\"])(function () {\n    return getChecked(options);\n  }),\n      initialChecked = _React$useState[0];\n\n  var _React$useState2 = Object(external_this_React_[\"useState\"])(options.currentId),\n      initialCurrentId = _React$useState2[0];\n\n  var id = options.id,\n      setCurrentId = options.setCurrentId;\n  Object(external_this_React_[\"useEffect\"])(function () {\n    if (initialChecked && id && initialCurrentId !== id) {\n      setCurrentId === null || setCurrentId === void 0 ? void 0 : setCurrentId(id);\n    }\n  }, [initialChecked, id, setCurrentId, initialCurrentId]);\n}\n\nfunction fireChange(element, onChange) {\n  var event = createEvent(element, \"change\");\n  Object.defineProperties(event, {\n    type: {\n      value: \"change\"\n    },\n    target: {\n      value: element\n    },\n    currentTarget: {\n      value: element\n    }\n  });\n  onChange === null || onChange === void 0 ? void 0 : onChange(event);\n}\n\nvar useRadio = Object(createHook[\"a\" /* createHook */])({\n  name: \"Radio\",\n  compose: CompositeItem[\"b\" /* useCompositeItem */],\n  useState: useRadioState,\n  keys: [\"value\", \"checked\", \"unstable_checkOnFocus\"],\n  useOptions: function useOptions(_ref, _ref2) {\n    var _options$value;\n\n    var value = _ref2.value,\n        checked = _ref2.checked;\n\n    var _ref$unstable_clickOn = _ref.unstable_clickOnEnter,\n        unstable_clickOnEnter = _ref$unstable_clickOn === void 0 ? false : _ref$unstable_clickOn,\n        _ref$unstable_checkOn = _ref.unstable_checkOnFocus,\n        unstable_checkOnFocus = _ref$unstable_checkOn === void 0 ? true : _ref$unstable_checkOn,\n        options = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(_ref, [\"unstable_clickOnEnter\", \"unstable_checkOnFocus\"]);\n\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])(Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      checked: checked,\n      unstable_clickOnEnter: unstable_clickOnEnter,\n      unstable_checkOnFocus: unstable_checkOnFocus\n    }, options), {}, {\n      value: (_options$value = options.value) != null ? _options$value : value\n    });\n  },\n  useProps: function useProps(options, _ref3) {\n    var htmlRef = _ref3.ref,\n        htmlOnChange = _ref3.onChange,\n        htmlOnClick = _ref3.onClick,\n        htmlProps = Object(_rollupPluginBabelHelpers_1f0bf8c2[\"a\" /* _ */])(_ref3, [\"ref\", \"onChange\", \"onClick\"]);\n\n    var ref = Object(external_this_React_[\"useRef\"])(null);\n\n    var _React$useState3 = Object(external_this_React_[\"useState\"])(true),\n        isNativeRadio = _React$useState3[0],\n        setIsNativeRadio = _React$useState3[1];\n\n    var checked = getChecked(options);\n    var isCurrentItemRef = Object(useLiveRef[\"a\" /* useLiveRef */])(options.currentId === options.id);\n    var onChangeRef = Object(useLiveRef[\"a\" /* useLiveRef */])(htmlOnChange);\n    var onClickRef = Object(useLiveRef[\"a\" /* useLiveRef */])(htmlOnClick);\n    useInitialChecked(options);\n    Object(external_this_React_[\"useEffect\"])(function () {\n      var element = ref.current;\n\n      if (!element) {\n         false ? undefined : void 0;\n        return;\n      }\n\n      if (element.tagName !== \"INPUT\" || element.type !== \"radio\") {\n        setIsNativeRadio(false);\n      }\n    }, []);\n    var onChange = Object(external_this_React_[\"useCallback\"])(function (event) {\n      var _onChangeRef$current, _options$setState;\n\n      (_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 ? void 0 : _onChangeRef$current.call(onChangeRef, event);\n      if (event.defaultPrevented) return;\n      if (options.disabled) return;\n      (_options$setState = options.setState) === null || _options$setState === void 0 ? void 0 : _options$setState.call(options, options.value);\n    }, [options.disabled, options.setState, options.value]);\n    var onClick = Object(external_this_React_[\"useCallback\"])(function (event) {\n      var _onClickRef$current;\n\n      (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n      if (event.defaultPrevented) return;\n      fireChange(event.currentTarget, onChange);\n    }, [onChange]);\n    Object(external_this_React_[\"useEffect\"])(function () {\n      var element = ref.current;\n      if (!element) return;\n\n      if (options.unstable_moves && isCurrentItemRef.current && options.unstable_checkOnFocus) {\n        fireChange(element, onChange);\n      }\n    }, [options.unstable_moves, options.unstable_checkOnFocus, onChange]);\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      ref: Object(useForkRef[\"a\" /* useForkRef */])(ref, htmlRef),\n      role: !isNativeRadio ? \"radio\" : undefined,\n      type: isNativeRadio ? \"radio\" : undefined,\n      value: isNativeRadio ? options.value : undefined,\n      \"aria-checked\": checked,\n      checked: checked,\n      onChange: onChange,\n      onClick: onClick\n    }, htmlProps);\n  }\n});\nvar Radio = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"input\",\n  memo: true,\n  useHook: useRadio\n});\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-context/index.js\n/**\n * WordPress dependencies\n */\n\nvar RadioContext = Object(external_this_wp_element_[\"createContext\"])({\n  state: null,\n  setState: function setState() {}\n});\n/* harmony default export */ var radio_context = (RadioContext);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction radio_Radio(_ref, ref) {\n  var children = _ref.children,\n      value = _ref.value,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"value\"]);\n\n  var radioContext = Object(external_this_wp_element_[\"useContext\"])(radio_context);\n  var checked = radioContext.state === value;\n  return Object(external_this_wp_element_[\"createElement\"])(Radio, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    as: build_module_button[\"a\" /* default */],\n    isPrimary: checked,\n    isSecondary: !checked,\n    value: value\n  }, radioContext, props), children || value);\n}\n\n/* harmony default export */ var build_module_radio = (Object(external_this_wp_element_[\"forwardRef\"])(radio_Radio));\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Radio/RadioGroup.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar useRadioGroup = Object(createHook[\"a\" /* createHook */])({\n  name: \"RadioGroup\",\n  compose: useComposite,\n  useState: useRadioState,\n  useProps: function useProps(_, htmlProps) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      role: \"radiogroup\"\n    }, htmlProps);\n  }\n});\nvar RadioGroup = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"div\",\n  useHook: useRadioGroup,\n  useCreateElement: function useCreateElement$1(type, props, children) {\n     false ? undefined : void 0;\n    return Object(useCreateElement[\"a\" /* useCreateElement */])(type, props, children);\n  }\n});\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-group/index.js\n\n\n\n\n\nfunction radio_group_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction radio_group_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { radio_group_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { radio_group_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction radio_group_RadioGroup(_ref, ref) {\n  var accessibilityLabel = _ref.accessibilityLabel,\n      checked = _ref.checked,\n      defaultChecked = _ref.defaultChecked,\n      disabled = _ref.disabled,\n      onChange = _ref.onChange,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"accessibilityLabel\", \"checked\", \"defaultChecked\", \"disabled\", \"onChange\"]);\n\n  var radioState = useRadioState({\n    state: defaultChecked,\n    baseId: props.id\n  });\n\n  var radioContext = radio_group_objectSpread({}, radioState, {\n    disabled: disabled,\n    // controlled or uncontrolled\n    state: checked || radioState.state,\n    setState: onChange || radioState.setState\n  });\n\n  return Object(external_this_wp_element_[\"createElement\"])(radio_context.Provider, {\n    value: radioContext\n  }, Object(external_this_wp_element_[\"createElement\"])(RadioGroup, Object(esm_extends[\"a\" /* default */])({\n    ref: ref,\n    as: button_group,\n    \"aria-label\": accessibilityLabel\n  }, radioState, props)));\n}\n\n/* harmony default export */ var radio_group = (Object(external_this_wp_element_[\"forwardRef\"])(radio_group_RadioGroup));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/radio-control/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction RadioControl(_ref) {\n  var label = _ref.label,\n      className = _ref.className,\n      selected = _ref.selected,\n      help = _ref.help,\n      onChange = _ref.onChange,\n      _ref$options = _ref.options,\n      options = _ref$options === void 0 ? [] : _ref$options;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(RadioControl);\n  var id = \"inspector-radio-control-\".concat(instanceId);\n\n  var onChangeValue = function onChangeValue(event) {\n    return onChange(event.target.value);\n  };\n\n  return !Object(external_this_lodash_[\"isEmpty\"])(options) && Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: label,\n    id: id,\n    help: help,\n    className: classnames_default()(className, 'components-radio-control')\n  }, options.map(function (option, index) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      key: \"\".concat(id, \"-\").concat(index),\n      className: \"components-radio-control__option\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n      id: \"\".concat(id, \"-\").concat(index),\n      className: \"components-radio-control__input\",\n      type: \"radio\",\n      name: id,\n      value: option.value,\n      onChange: onChangeValue,\n      checked: option.value === selected,\n      \"aria-describedby\": !!help ? \"\".concat(id, \"__help\") : undefined\n    }), Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n      htmlFor: \"\".concat(id, \"-\").concat(index)\n    }, option.label));\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/re-resizable/lib/resizer.js\nvar __extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\n\nvar resizer_styles = {\n    top: {\n        width: '100%',\n        height: '10px',\n        top: '-5px',\n        left: '0px',\n        cursor: 'row-resize',\n    },\n    right: {\n        width: '10px',\n        height: '100%',\n        top: '0px',\n        right: '-5px',\n        cursor: 'col-resize',\n    },\n    bottom: {\n        width: '100%',\n        height: '10px',\n        bottom: '-5px',\n        left: '0px',\n        cursor: 'row-resize',\n    },\n    left: {\n        width: '10px',\n        height: '100%',\n        top: '0px',\n        left: '-5px',\n        cursor: 'col-resize',\n    },\n    topRight: {\n        width: '20px',\n        height: '20px',\n        position: 'absolute',\n        right: '-10px',\n        top: '-10px',\n        cursor: 'ne-resize',\n    },\n    bottomRight: {\n        width: '20px',\n        height: '20px',\n        position: 'absolute',\n        right: '-10px',\n        bottom: '-10px',\n        cursor: 'se-resize',\n    },\n    bottomLeft: {\n        width: '20px',\n        height: '20px',\n        position: 'absolute',\n        left: '-10px',\n        bottom: '-10px',\n        cursor: 'sw-resize',\n    },\n    topLeft: {\n        width: '20px',\n        height: '20px',\n        position: 'absolute',\n        left: '-10px',\n        top: '-10px',\n        cursor: 'nw-resize',\n    },\n};\nvar resizer_Resizer = /** @class */ (function (_super) {\n    __extends(Resizer, _super);\n    function Resizer() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.onMouseDown = function (e) {\n            _this.props.onResizeStart(e, _this.props.direction);\n        };\n        _this.onTouchStart = function (e) {\n            _this.props.onResizeStart(e, _this.props.direction);\n        };\n        return _this;\n    }\n    Resizer.prototype.render = function () {\n        return (external_this_React_[\"createElement\"](\"div\", { className: this.props.className || '', style: __assign(__assign({ position: 'absolute', userSelect: 'none' }, resizer_styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));\n    };\n    return Resizer;\n}(external_this_React_[\"PureComponent\"]));\n\n\n// EXTERNAL MODULE: ./node_modules/fast-memoize/src/index.js\nvar fast_memoize_src = __webpack_require__(111);\nvar src_default = /*#__PURE__*/__webpack_require__.n(fast_memoize_src);\n\n// CONCATENATED MODULE: ./node_modules/re-resizable/lib/index.js\nvar lib_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar lib_assign = (undefined && undefined.__assign) || function () {\n    lib_assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return lib_assign.apply(this, arguments);\n};\n\n\n\nvar DEFAULT_SIZE = {\n    width: 'auto',\n    height: 'auto',\n};\nvar clamp = src_default()(function (n, min, max) { return Math.max(Math.min(n, max), min); });\nvar snap = src_default()(function (n, size) { return Math.round(n / size) * size; });\nvar hasDirection = src_default()(function (dir, target) {\n    return new RegExp(dir, 'i').test(target);\n});\nvar findClosestSnap = src_default()(function (n, snapArray, snapGap) {\n    if (snapGap === void 0) { snapGap = 0; }\n    var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);\n    var gap = Math.abs(snapArray[closestGapIndex] - n);\n    return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;\n});\nvar endsWith = src_default()(function (str, searchStr) {\n    return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;\n});\nvar getStringSize = src_default()(function (n) {\n    n = n.toString();\n    if (n === 'auto') {\n        return n;\n    }\n    if (endsWith(n, 'px')) {\n        return n;\n    }\n    if (endsWith(n, '%')) {\n        return n;\n    }\n    if (endsWith(n, 'vh')) {\n        return n;\n    }\n    if (endsWith(n, 'vw')) {\n        return n;\n    }\n    if (endsWith(n, 'vmax')) {\n        return n;\n    }\n    if (endsWith(n, 'vmin')) {\n        return n;\n    }\n    return n + \"px\";\n});\nvar getPixelSize = function (size, parentSize, innerWidth, innerHeight) {\n    if (size && typeof size === 'string') {\n        if (endsWith(size, '%')) {\n            var ratio = Number(size.replace('%', '')) / 100;\n            return parentSize * ratio;\n        }\n        else if (endsWith(size, 'vw')) {\n            var ratio = Number(size.replace('vw', '')) / 100;\n            return innerWidth * ratio;\n        }\n        else if (endsWith(size, 'vh')) {\n            var ratio = Number(size.replace('vh', '')) / 100;\n            return innerHeight * ratio;\n        }\n    }\n    return size;\n};\nvar calculateNewMax = src_default()(function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {\n    maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);\n    maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);\n    minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);\n    minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);\n    return {\n        maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),\n        maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),\n        minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),\n        minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),\n    };\n});\nvar definedProps = [\n    'as',\n    'style',\n    'className',\n    'grid',\n    'snap',\n    'bounds',\n    'size',\n    'defaultSize',\n    'minWidth',\n    'minHeight',\n    'maxWidth',\n    'maxHeight',\n    'lockAspectRatio',\n    'lockAspectRatioExtraWidth',\n    'lockAspectRatioExtraHeight',\n    'enable',\n    'handleStyles',\n    'handleClasses',\n    'handleWrapperStyle',\n    'handleWrapperClass',\n    'children',\n    'onResizeStart',\n    'onResize',\n    'onResizeStop',\n    'handleComponent',\n    'scale',\n    'resizeRatio',\n    'snapGap',\n];\n// HACK: This class is used to calculate % size.\nvar baseClassName = '__resizable_base__';\nvar lib_Resizable = /** @class */ (function (_super) {\n    lib_extends(Resizable, _super);\n    function Resizable(props) {\n        var _this = _super.call(this, props) || this;\n        _this.ratio = 1;\n        _this.resizable = null;\n        // For parent boundary\n        _this.parentLeft = 0;\n        _this.parentTop = 0;\n        // For boundary\n        _this.resizableLeft = 0;\n        _this.resizableTop = 0;\n        // For target boundary\n        _this.targetLeft = 0;\n        _this.targetTop = 0;\n        _this.ref = function (c) {\n            if (c) {\n                _this.resizable = c;\n            }\n        };\n        _this.state = {\n            isResizing: false,\n            width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'\n                ? 'auto'\n                : _this.propsSize && _this.propsSize.width,\n            height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'\n                ? 'auto'\n                : _this.propsSize && _this.propsSize.height,\n            direction: 'right',\n            original: {\n                x: 0,\n                y: 0,\n                width: 0,\n                height: 0,\n            },\n            backgroundStyle: {\n                height: '100%',\n                width: '100%',\n                backgroundColor: 'rgba(0,0,0,0)',\n                cursor: 'auto',\n                opacity: 0,\n                position: 'fixed',\n                zIndex: 9999,\n                top: '0',\n                left: '0',\n                bottom: '0',\n                right: '0',\n            },\n            flexBasis: undefined,\n        };\n        _this.onResizeStart = _this.onResizeStart.bind(_this);\n        _this.onMouseMove = _this.onMouseMove.bind(_this);\n        _this.onMouseUp = _this.onMouseUp.bind(_this);\n        return _this;\n    }\n    Object.defineProperty(Resizable.prototype, \"parentNode\", {\n        get: function () {\n            if (!this.resizable) {\n                return null;\n            }\n            return this.resizable.parentNode;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Resizable.prototype, \"window\", {\n        get: function () {\n            if (!this.resizable) {\n                return null;\n            }\n            if (!this.resizable.ownerDocument) {\n                return null;\n            }\n            return this.resizable.ownerDocument.defaultView;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Resizable.prototype, \"propsSize\", {\n        get: function () {\n            return this.props.size || this.props.defaultSize || DEFAULT_SIZE;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Resizable.prototype, \"base\", {\n        get: function () {\n            var parent = this.parentNode;\n            if (!parent) {\n                return undefined;\n            }\n            var children = [].slice.call(parent.children);\n            for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n                var n = children_1[_i];\n                if (n.classList.contains(baseClassName)) {\n                    return n;\n                }\n            }\n            return undefined;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Resizable.prototype, \"size\", {\n        get: function () {\n            var width = 0;\n            var height = 0;\n            if (this.resizable && this.window) {\n                var orgWidth = this.resizable.offsetWidth;\n                var orgHeight = this.resizable.offsetHeight;\n                // HACK: Set position `relative` to get parent size.\n                //       This is because when re-resizable set `absolute`, I can not get base width correctly.\n                var orgPosition = this.resizable.style.position;\n                if (orgPosition !== 'relative') {\n                    this.resizable.style.position = 'relative';\n                }\n                // INFO: Use original width or height if set auto.\n                width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n                height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n                // Restore original position\n                this.resizable.style.position = orgPosition;\n            }\n            return { width: width, height: height };\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Resizable.prototype, \"sizeStyle\", {\n        get: function () {\n            var _this = this;\n            var size = this.props.size;\n            var getSize = function (key) {\n                if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {\n                    return 'auto';\n                }\n                if (_this.propsSize && _this.propsSize[key] && endsWith(_this.propsSize[key].toString(), '%')) {\n                    if (endsWith(_this.state[key].toString(), '%')) {\n                        return _this.state[key].toString();\n                    }\n                    var parentSize = _this.getParentSize();\n                    var value = Number(_this.state[key].toString().replace('px', ''));\n                    var percent = (value / parentSize[key]) * 100;\n                    return percent + \"%\";\n                }\n                return getStringSize(_this.state[key]);\n            };\n            var width = size && typeof size.width !== 'undefined' && !this.state.isResizing\n                ? getStringSize(size.width)\n                : getSize('width');\n            var height = size && typeof size.height !== 'undefined' && !this.state.isResizing\n                ? getStringSize(size.height)\n                : getSize('height');\n            return { width: width, height: height };\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Resizable.prototype.getParentSize = function () {\n        if (!this.base || !this.parentNode) {\n            if (!this.window) {\n                return { width: 0, height: 0 };\n            }\n            return { width: this.window.innerWidth, height: this.window.innerHeight };\n        }\n        // INFO: To calculate parent width with flex layout\n        var wrapChanged = false;\n        var wrap = this.parentNode.style.flexWrap;\n        var minWidth = this.base.style.minWidth;\n        if (wrap !== 'wrap') {\n            wrapChanged = true;\n            this.parentNode.style.flexWrap = 'wrap';\n            // HACK: Use relative to get parent padding size\n        }\n        this.base.style.position = 'relative';\n        this.base.style.minWidth = '100%';\n        var size = {\n            width: this.base.offsetWidth,\n            height: this.base.offsetHeight,\n        };\n        this.base.style.position = 'absolute';\n        if (wrapChanged) {\n            this.parentNode.style.flexWrap = wrap;\n        }\n        this.base.style.minWidth = minWidth;\n        return size;\n    };\n    Resizable.prototype.bindEvents = function () {\n        if (this.window) {\n            this.window.addEventListener('mouseup', this.onMouseUp);\n            this.window.addEventListener('mousemove', this.onMouseMove);\n            this.window.addEventListener('mouseleave', this.onMouseUp);\n            this.window.addEventListener('touchmove', this.onMouseMove, {\n                capture: true,\n                passive: false,\n            });\n            this.window.addEventListener('touchend', this.onMouseUp);\n        }\n    };\n    Resizable.prototype.unbindEvents = function () {\n        if (this.window) {\n            this.window.removeEventListener('mouseup', this.onMouseUp);\n            this.window.removeEventListener('mousemove', this.onMouseMove);\n            this.window.removeEventListener('mouseleave', this.onMouseUp);\n            this.window.removeEventListener('touchmove', this.onMouseMove, true);\n            this.window.removeEventListener('touchend', this.onMouseUp);\n        }\n    };\n    Resizable.prototype.componentDidMount = function () {\n        if (!this.resizable || !this.window) {\n            return;\n        }\n        var computedStyle = this.window.getComputedStyle(this.resizable);\n        this.setState({\n            width: this.state.width || this.size.width,\n            height: this.state.height || this.size.height,\n            flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,\n        });\n        var parent = this.parentNode;\n        if (!parent) {\n            return;\n        }\n        if (this.base) {\n            return;\n        }\n        var element = this.window.document.createElement('div');\n        element.style.width = '100%';\n        element.style.height = '100%';\n        element.style.position = 'absolute';\n        element.style.transform = 'scale(0, 0)';\n        element.style.left = '0';\n        element.style.flex = '0';\n        if (element.classList) {\n            element.classList.add(baseClassName);\n        }\n        else {\n            element.className += baseClassName;\n        }\n        parent.appendChild(element);\n    };\n    Resizable.prototype.componentWillUnmount = function () {\n        if (this.window) {\n            this.unbindEvents();\n            var parent_1 = this.parentNode;\n            if (!this.base || !parent_1) {\n                return;\n            }\n            if (!parent_1 || !this.base) {\n                return;\n            }\n            parent_1.removeChild(this.base);\n        }\n    };\n    Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {\n        var propsSize = this.propsSize && this.propsSize[kind];\n        return this.state[kind] === 'auto' &&\n            this.state.original[kind] === newSize &&\n            (typeof propsSize === 'undefined' || propsSize === 'auto')\n            ? 'auto'\n            : newSize;\n    };\n    Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {\n        if (this.props.bounds === 'parent') {\n            var parent_2 = this.parentNode;\n            if (parent_2) {\n                var boundWidth = parent_2.offsetWidth + (this.parentLeft - this.resizableLeft);\n                var boundHeight = parent_2.offsetHeight + (this.parentTop - this.resizableTop);\n                maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n                maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n            }\n        }\n        else if (this.props.bounds === 'window') {\n            if (this.window) {\n                var boundWidth = this.window.innerWidth - this.resizableLeft;\n                var boundHeight = this.window.innerHeight - this.resizableTop;\n                maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n                maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n            }\n        }\n        else if (this.props.bounds) {\n            var boundWidth = this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);\n            var boundHeight = this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);\n            maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n            maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n        }\n        return { maxWidth: maxWidth, maxHeight: maxHeight };\n    };\n    Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {\n        var scale = this.props.scale || 1;\n        var resizeRatio = this.props.resizeRatio || 1;\n        var _a = this.state, direction = _a.direction, original = _a.original;\n        var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;\n        var newWidth = original.width;\n        var newHeight = original.height;\n        var extraHeight = lockAspectRatioExtraHeight || 0;\n        var extraWidth = lockAspectRatioExtraWidth || 0;\n        if (hasDirection('right', direction)) {\n            newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;\n            if (lockAspectRatio) {\n                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n            }\n        }\n        if (hasDirection('left', direction)) {\n            newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;\n            if (lockAspectRatio) {\n                newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n            }\n        }\n        if (hasDirection('bottom', direction)) {\n            newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;\n            if (lockAspectRatio) {\n                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n            }\n        }\n        if (hasDirection('top', direction)) {\n            newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;\n            if (lockAspectRatio) {\n                newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n            }\n        }\n        return { newWidth: newWidth, newHeight: newHeight };\n    };\n    Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {\n        var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;\n        var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;\n        var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;\n        var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;\n        var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;\n        var extraHeight = lockAspectRatioExtraHeight || 0;\n        var extraWidth = lockAspectRatioExtraWidth || 0;\n        if (lockAspectRatio) {\n            var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;\n            var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;\n            var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;\n            var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;\n            var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n            var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n            var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n            var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n            newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n            newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n        }\n        else {\n            newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n            newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n        }\n        return { newWidth: newWidth, newHeight: newHeight };\n    };\n    Resizable.prototype.setBoundingClientRect = function () {\n        // For parent boundary\n        if (this.props.bounds === 'parent') {\n            var parent_3 = this.parentNode;\n            if (parent_3) {\n                var parentRect = parent_3.getBoundingClientRect();\n                this.parentLeft = parentRect.left;\n                this.parentTop = parentRect.top;\n            }\n        }\n        // For target(html element) boundary\n        if (this.props.bounds && typeof this.props.bounds !== 'string') {\n            var targetRect = this.props.bounds.getBoundingClientRect();\n            this.targetLeft = targetRect.left;\n            this.targetTop = targetRect.top;\n        }\n        // For boundary\n        if (this.resizable) {\n            var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top;\n            this.resizableLeft = left;\n            this.resizableTop = top_1;\n        }\n    };\n    Resizable.prototype.onResizeStart = function (event, direction) {\n        if (!this.resizable || !this.window) {\n            return;\n        }\n        var clientX = 0;\n        var clientY = 0;\n        if (event.nativeEvent instanceof this.window.MouseEvent) {\n            clientX = event.nativeEvent.clientX;\n            clientY = event.nativeEvent.clientY;\n            // When user click with right button the resize is stuck in resizing mode\n            // until users clicks again, dont continue if right click is used.\n            // HACK: MouseEvent does not have `which` from flow-bin v0.68.\n            if (event.nativeEvent.which === 3) {\n                return;\n            }\n        }\n        else if (event.nativeEvent instanceof this.window.TouchEvent) {\n            clientX = event.nativeEvent.touches[0].clientX;\n            clientY = event.nativeEvent.touches[0].clientY;\n        }\n        if (this.props.onResizeStart) {\n            if (this.resizable) {\n                var startResize = this.props.onResizeStart(event, direction, this.resizable);\n                if (startResize === false) {\n                    return;\n                }\n            }\n        }\n        // Fix #168\n        if (this.props.size) {\n            if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n                this.setState({ height: this.props.size.height });\n            }\n            if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n                this.setState({ width: this.props.size.width });\n            }\n        }\n        // For lockAspectRatio case\n        this.ratio =\n            typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;\n        var flexBasis;\n        var computedStyle = this.window.getComputedStyle(this.resizable);\n        if (computedStyle.flexBasis !== 'auto') {\n            var parent_4 = this.parentNode;\n            if (parent_4) {\n                var dir = this.window.getComputedStyle(parent_4).flexDirection;\n                this.flexDir = dir.startsWith('row') ? 'row' : 'column';\n                flexBasis = computedStyle.flexBasis;\n            }\n        }\n        // For boundary\n        this.setBoundingClientRect();\n        this.bindEvents();\n        var state = {\n            original: {\n                x: clientX,\n                y: clientY,\n                width: this.size.width,\n                height: this.size.height,\n            },\n            isResizing: true,\n            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),\n            direction: direction,\n            flexBasis: flexBasis,\n        };\n        this.setState(state);\n    };\n    Resizable.prototype.onMouseMove = function (event) {\n        if (!this.state.isResizing || !this.resizable || !this.window) {\n            return;\n        }\n        if (this.window.TouchEvent && event instanceof this.window.TouchEvent) {\n            try {\n                event.preventDefault();\n                event.stopPropagation();\n            }\n            catch (e) {\n                // Ignore on fail\n            }\n        }\n        var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;\n        var clientX = event instanceof this.window.MouseEvent ? event.clientX : event.touches[0].clientX;\n        var clientY = event instanceof this.window.MouseEvent ? event.clientY : event.touches[0].clientY;\n        var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;\n        var parentSize = this.getParentSize();\n        var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);\n        maxWidth = max.maxWidth;\n        maxHeight = max.maxHeight;\n        minWidth = max.minWidth;\n        minHeight = max.minHeight;\n        // Calculate new size\n        var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;\n        // Calculate max size from boundary settings\n        var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);\n        // Calculate new size from aspect ratio\n        var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });\n        newWidth = newSize.newWidth;\n        newHeight = newSize.newHeight;\n        if (this.props.grid) {\n            var newGridWidth = snap(newWidth, this.props.grid[0]);\n            var newGridHeight = snap(newHeight, this.props.grid[1]);\n            var gap = this.props.snapGap || 0;\n            newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;\n            newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;\n        }\n        if (this.props.snap && this.props.snap.x) {\n            newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);\n        }\n        if (this.props.snap && this.props.snap.y) {\n            newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);\n        }\n        var delta = {\n            width: newWidth - original.width,\n            height: newHeight - original.height,\n        };\n        if (width && typeof width === 'string') {\n            if (endsWith(width, '%')) {\n                var percent = (newWidth / parentSize.width) * 100;\n                newWidth = percent + \"%\";\n            }\n            else if (endsWith(width, 'vw')) {\n                var vw = (newWidth / this.window.innerWidth) * 100;\n                newWidth = vw + \"vw\";\n            }\n            else if (endsWith(width, 'vh')) {\n                var vh = (newWidth / this.window.innerHeight) * 100;\n                newWidth = vh + \"vh\";\n            }\n        }\n        if (height && typeof height === 'string') {\n            if (endsWith(height, '%')) {\n                var percent = (newHeight / parentSize.height) * 100;\n                newHeight = percent + \"%\";\n            }\n            else if (endsWith(height, 'vw')) {\n                var vw = (newHeight / this.window.innerWidth) * 100;\n                newHeight = vw + \"vw\";\n            }\n            else if (endsWith(height, 'vh')) {\n                var vh = (newHeight / this.window.innerHeight) * 100;\n                newHeight = vh + \"vh\";\n            }\n        }\n        var newState = {\n            width: this.createSizeForCssProperty(newWidth, 'width'),\n            height: this.createSizeForCssProperty(newHeight, 'height'),\n        };\n        if (this.flexDir === 'row') {\n            newState.flexBasis = newState.width;\n        }\n        else if (this.flexDir === 'column') {\n            newState.flexBasis = newState.height;\n        }\n        this.setState(newState);\n        if (this.props.onResize) {\n            this.props.onResize(event, direction, this.resizable, delta);\n        }\n    };\n    Resizable.prototype.onMouseUp = function (event) {\n        var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;\n        if (!isResizing || !this.resizable) {\n            return;\n        }\n        var delta = {\n            width: this.size.width - original.width,\n            height: this.size.height - original.height,\n        };\n        if (this.props.onResizeStop) {\n            this.props.onResizeStop(event, direction, this.resizable, delta);\n        }\n        if (this.props.size) {\n            this.setState(this.props.size);\n        }\n        this.unbindEvents();\n        this.setState({\n            isResizing: false,\n            backgroundStyle: lib_assign(lib_assign({}, this.state.backgroundStyle), { cursor: 'auto' }),\n        });\n    };\n    Resizable.prototype.updateSize = function (size) {\n        this.setState({ width: size.width, height: size.height });\n    };\n    Resizable.prototype.renderResizer = function () {\n        var _this = this;\n        var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;\n        if (!enable) {\n            return null;\n        }\n        var resizers = Object.keys(enable).map(function (dir) {\n            if (enable[dir] !== false) {\n                return (external_this_React_[\"createElement\"](resizer_Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));\n            }\n            return null;\n        });\n        // #93 Wrap the resize box in span (will not break 100% width/height)\n        return (external_this_React_[\"createElement\"](\"span\", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));\n    };\n    Resizable.prototype.render = function () {\n        var _this = this;\n        var _a;\n        var extendsProps = Object.keys(this.props).reduce(function (acc, key) {\n            if (definedProps.indexOf(key) !== -1) {\n                return acc;\n            }\n            acc[key] = _this.props[key];\n            return acc;\n        }, {});\n        var style = lib_assign(lib_assign(lib_assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });\n        if (this.state.flexBasis) {\n            style.flexBasis = this.state.flexBasis;\n        }\n        var Wrapper = (_a = this.props.as) !== null && _a !== void 0 ? _a : 'div';\n        return (external_this_React_[\"createElement\"](Wrapper, lib_assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),\n            this.state.isResizing && external_this_React_[\"createElement\"](\"div\", { style: this.state.backgroundStyle }),\n            this.props.children,\n            this.renderResizer()));\n    };\n    Resizable.defaultProps = {\n        as: 'div',\n        onResizeStart: function () { },\n        onResize: function () { },\n        onResizeStop: function () { },\n        enable: {\n            top: true,\n            right: true,\n            bottom: true,\n            left: true,\n            topRight: true,\n            bottomRight: true,\n            bottomLeft: true,\n            topLeft: true,\n        },\n        style: {},\n        grid: [1, 1],\n        lockAspectRatio: false,\n        lockAspectRatioExtraWidth: 0,\n        lockAspectRatioExtraHeight: 0,\n        scale: 1,\n        resizeRatio: 1,\n        snapGap: 0,\n    };\n    return Resizable;\n}(external_this_React_[\"PureComponent\"]));\n\n\n// EXTERNAL MODULE: ./node_modules/react-resize-aware/dist/index.js\nvar dist = __webpack_require__(143);\nvar dist_default = /*#__PURE__*/__webpack_require__.n(dist);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/utils.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\nvar utils_window = window,\n    utils_clearTimeout = utils_window.clearTimeout,\n    utils_setTimeout = utils_window.setTimeout;\nvar POSITIONS = {\n  bottom: 'bottom',\n  corner: 'corner'\n};\n/**\n * @typedef {Object} UseResizeLabelProps\n *\n * @property {undefined|string} label The label value.\n * @property {Function} resizeListener Element to be rendered for resize listening events.\n */\n\n/**\n * Custom hook that manages resize listener events. It also provides a label\n * based on current resize width x height values.\n *\n * @param {Object} props\n * @param {string} props.axis Only shows the label corresponding to the axis.\n * @param {number} props.fadeTimeout Duration (ms) before deactivating the resize label.\n * @param {boolean} props.onResize Callback when a resize occurs. Provides { width, height } callback.\n * @param {string} props.position Adjusts label value.\n * @param {boolean} props.showPx Whether to add `PX` to the label.\n *\n * @return {UseResizeLabelProps} Properties for hook.\n */\n\nfunction useResizeLabel(_ref) {\n  var axis = _ref.axis,\n      _ref$fadeTimeout = _ref.fadeTimeout,\n      fadeTimeout = _ref$fadeTimeout === void 0 ? 180 : _ref$fadeTimeout,\n      _ref$onResize = _ref.onResize,\n      onResize = _ref$onResize === void 0 ? external_this_lodash_[\"noop\"] : _ref$onResize,\n      _ref$position = _ref.position,\n      position = _ref$position === void 0 ? POSITIONS.bottom : _ref$position,\n      _ref$showPx = _ref.showPx,\n      showPx = _ref$showPx === void 0 ? false : _ref$showPx;\n\n  /*\n   * The width/height values derive from this special useResizeAware hook.\n   * This custom hook uses injects an iFrame into the element, allowing it\n   * to tap into the onResize (window) callback events.\n   */\n  var _useResizeAware = dist_default()(),\n      _useResizeAware2 = Object(slicedToArray[\"a\" /* default */])(_useResizeAware, 2),\n      resizeListener = _useResizeAware2[0],\n      sizes = _useResizeAware2[1];\n  /*\n   * Indicates if the x/y axis is preferred.\n   * If set, we will avoid resetting the moveX and moveY values.\n   * This will allow for the preferred axis values to persist in the label.\n   */\n\n\n  var isAxisControlled = !!axis;\n  /*\n   * The moveX and moveY values are used to track whether the label should\n   * display width, height, or width x height.\n   */\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      moveX = _useState2[0],\n      setMoveX = _useState2[1];\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      moveY = _useState4[0],\n      setMoveY = _useState4[1];\n  /*\n   * Cached dimension values to check for width/height updates from the\n   * sizes property from useResizeAware()\n   */\n\n\n  var heightRef = Object(external_this_wp_element_[\"useRef\"])(height);\n  var widthRef = Object(external_this_wp_element_[\"useRef\"])(width);\n  /*\n   * This timeout is used with setMoveX and setMoveY to determine of\n   * both width and height values have changed at (roughly) the same time.\n   */\n\n  var moveTimeoutRef = Object(external_this_wp_element_[\"useRef\"])();\n  var width = sizes.width,\n      height = sizes.height;\n\n  var unsetMoveXY = function unsetMoveXY() {\n    /*\n     * If axis is controlled, we will avoid resetting the moveX and moveY values.\n     * This will allow for the preferred axis values to persist in the label.\n     */\n    if (isAxisControlled) return;\n    setMoveX(false);\n    setMoveY(false);\n  };\n\n  var debounceUnsetMoveXY = function debounceUnsetMoveXY() {\n    if (moveTimeoutRef.current) {\n      utils_clearTimeout(moveTimeoutRef.current);\n    }\n\n    moveTimeoutRef.current = utils_setTimeout(unsetMoveXY, fadeTimeout);\n  };\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    /*\n     * On the initial render of useResizeAware, the height and width values are\n     * null. They are calculated then set using via an internal useEffect hook.\n     */\n    var isRendered = width !== null || height !== null;\n    if (!isRendered) return;\n    var didWidthChange = width !== widthRef.current;\n    var didHeightChange = height !== heightRef.current;\n    if (!didWidthChange && !didHeightChange) return;\n    /*\n     * After the initial render, the useResizeAware will set the first\n     * width and height values. We'll sync those values with our\n     * width and height refs. However, we shouldn't render our Tooltip\n     * label on this first cycle.\n     */\n\n    if (width && !widthRef.current && height && !heightRef.current) {\n      widthRef.current = width;\n      heightRef.current = height;\n      return;\n    }\n    /*\n     * After the first cycle, we can track width and height changes.\n     */\n\n\n    if (didWidthChange) {\n      setMoveX(true);\n      widthRef.current = width;\n    }\n\n    if (didHeightChange) {\n      setMoveY(true);\n      heightRef.current = height;\n    }\n\n    onResize({\n      width: width,\n      height: height\n    });\n    debounceUnsetMoveXY();\n  }, [width, height]);\n  var label = getSizeLabel({\n    axis: axis,\n    height: height,\n    moveX: moveX,\n    moveY: moveY,\n    position: position,\n    showPx: showPx,\n    width: width\n  });\n  return {\n    label: label,\n    resizeListener: resizeListener\n  };\n}\n/**\n * Gets the resize label based on width and height values (as well as recent changes).\n *\n * @param {Object} props\n * @param {string} props.axis Only shows the label corresponding to the axis.\n * @param {number} props.height Height value.\n * @param {boolean} props.moveX Recent width (x axis) changes.\n * @param {boolean} props.moveY Recent width (y axis) changes.\n * @param {string} props.position Adjusts label value.\n * @param {boolean} props.showPx Whether to add `PX` to the label.\n * @param {number} props.width Width value.\n *\n * @return {undefined | string} The rendered label.\n */\n\nfunction getSizeLabel(_ref2) {\n  var axis = _ref2.axis,\n      height = _ref2.height,\n      _ref2$moveX = _ref2.moveX,\n      moveX = _ref2$moveX === void 0 ? false : _ref2$moveX,\n      _ref2$moveY = _ref2.moveY,\n      moveY = _ref2$moveY === void 0 ? false : _ref2$moveY,\n      _ref2$position = _ref2.position,\n      position = _ref2$position === void 0 ? POSITIONS.bottom : _ref2$position,\n      _ref2$showPx = _ref2.showPx,\n      showPx = _ref2$showPx === void 0 ? false : _ref2$showPx,\n      width = _ref2.width;\n  if (!moveX && !moveY) return null;\n  /*\n   * Corner position...\n   * We want the label to appear like width x height.\n   */\n\n  if (position === POSITIONS.corner) {\n    return \"\".concat(width, \" x \").concat(height);\n  }\n  /*\n   * Other POSITIONS...\n   * The label will combine both width x height values if both\n   * values have recently been changed.\n   *\n   * Otherwise, only width or height will be displayed.\n   * The `PX` unit will be added, if specified by the `showPx` prop.\n   */\n\n\n  var labelUnit = showPx ? ' px' : '';\n\n  if (axis) {\n    if (axis === 'x' && moveX) {\n      return \"\".concat(width).concat(labelUnit);\n    }\n\n    if (axis === 'y' && moveY) {\n      return \"\".concat(height).concat(labelUnit);\n    }\n  }\n\n  if (moveX && moveY) {\n    return \"\".concat(width, \" x \").concat(height);\n  }\n\n  if (moveX) {\n    return \"\".concat(width).concat(labelUnit);\n  }\n\n  if (moveY) {\n    return \"\".concat(height).concat(labelUnit);\n  }\n\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/styles/resize-tooltip.styles.js\n\n\nfunction resize_tooltip_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n/**\n * Internal dependencies\n */\n\n\n\nvar resize_tooltip_styles_Root = styled_base_browser_esm(\"div\", {\n  target: \"ekdag500\",\n  label: \"Root\"\n})( true ? {\n  name: \"mt2ez5\",\n  styles: \"bottom:0;box-sizing:border-box;left:0;pointer-events:none;position:absolute;right:0;top:0;\"\n} : undefined);\nvar TooltipWrapper = styled_base_browser_esm(\"div\", {\n  target: \"ekdag501\",\n  label: \"TooltipWrapper\"\n})( true ? {\n  name: \"1kllayo\",\n  styles: \"align-items:center;box-sizing:border-box;display:inline-flex;justify-content:center;opacity:0;pointer-events:none;transition:opacity 120ms linear;\"\n} : undefined);\nvar resize_tooltip_styles_Tooltip = styled_base_browser_esm(\"div\", {\n  target: \"ekdag502\",\n  label: \"Tooltip\"\n})(\"background:\", colors_color('ui.border'), \";border-radius:2px;box-sizing:border-box;font-size:12px;color:\", colors_color('ui.textDark'), \";padding:4px 8px;position:relative;\" + ( true ? \"\" : undefined)); // TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nvar LabelText = /*#__PURE__*/styled_base_browser_esm(build_module_text, {\n  target: \"ekdag503\",\n  label: \"LabelText\"\n})(\"&&&{\", text_mixins_text, \";display:block;font-size:13px;line-height:1.4;}\" + ( true ? \"\" : undefined));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/label.js\n\n\n\n\n\nfunction label_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction label_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { label_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { label_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar CORNER_OFFSET = 4;\nvar CURSOR_OFFSET_TOP = CORNER_OFFSET * 2.5;\n\nfunction resize_tooltip_label_Label(_ref, ref) {\n  var label = _ref.label,\n      _ref$position = _ref.position,\n      position = _ref$position === void 0 ? POSITIONS.corner : _ref$position,\n      _ref$zIndex = _ref.zIndex,\n      zIndex = _ref$zIndex === void 0 ? 1000 : _ref$zIndex,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"position\", \"zIndex\"]);\n\n  var isRTL = useRTL();\n  var showLabel = !!label;\n  var isBottom = position === POSITIONS.bottom;\n  var isCorner = position === POSITIONS.corner;\n  if (!showLabel) return null;\n  var style = {\n    opacity: showLabel ? 1 : null,\n    zIndex: zIndex\n  };\n  var labelStyle = {};\n\n  if (isBottom) {\n    style = label_objectSpread({}, style, {\n      position: 'absolute',\n      bottom: CURSOR_OFFSET_TOP * -1,\n      left: '50%',\n      transform: 'translate(-50%, 0)'\n    });\n    labelStyle = {\n      transform: \"translate(0, 100%)\"\n    };\n  }\n\n  if (isCorner) {\n    style = label_objectSpread({}, style, {\n      position: 'absolute',\n      top: CORNER_OFFSET,\n      right: isRTL ? null : CORNER_OFFSET,\n      left: isRTL ? CORNER_OFFSET : null\n    });\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(TooltipWrapper, Object(esm_extends[\"a\" /* default */])({\n    \"aria-hidden\": \"true\",\n    className: \"components-resizable-tooltip__tooltip-wrapper\",\n    isActive: showLabel,\n    ref: ref,\n    style: style\n  }, props), Object(external_this_wp_element_[\"createElement\"])(resize_tooltip_styles_Tooltip, {\n    className: \"components-resizable-tooltip__tooltip\",\n    style: labelStyle\n  }, Object(external_this_wp_element_[\"createElement\"])(LabelText, {\n    as: \"span\"\n  }, label)));\n}\n\nvar label_ForwardedComponent = Object(external_this_wp_element_[\"forwardRef\"])(resize_tooltip_label_Label);\n/* harmony default export */ var resize_tooltip_label = (label_ForwardedComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/resize-tooltip/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nfunction ResizeTooltip(_ref, ref) {\n  var axis = _ref.axis,\n      className = _ref.className,\n      _ref$fadeTimeout = _ref.fadeTimeout,\n      fadeTimeout = _ref$fadeTimeout === void 0 ? 180 : _ref$fadeTimeout,\n      _ref$isVisible = _ref.isVisible,\n      isVisible = _ref$isVisible === void 0 ? true : _ref$isVisible,\n      labelRef = _ref.labelRef,\n      _ref$onResize = _ref.onResize,\n      onResize = _ref$onResize === void 0 ? external_this_lodash_[\"noop\"] : _ref$onResize,\n      _ref$position = _ref.position,\n      position = _ref$position === void 0 ? POSITIONS.bottom : _ref$position,\n      _ref$showPx = _ref.showPx,\n      showPx = _ref$showPx === void 0 ? true : _ref$showPx,\n      _ref$zIndex = _ref.zIndex,\n      zIndex = _ref$zIndex === void 0 ? 1000 : _ref$zIndex,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"axis\", \"className\", \"fadeTimeout\", \"isVisible\", \"labelRef\", \"onResize\", \"position\", \"showPx\", \"zIndex\"]);\n\n  var _useResizeLabel = useResizeLabel({\n    axis: axis,\n    fadeTimeout: fadeTimeout,\n    onResize: onResize,\n    showPx: showPx,\n    position: position\n  }),\n      label = _useResizeLabel.label,\n      resizeListener = _useResizeLabel.resizeListener;\n\n  if (!isVisible) return null;\n  var classes = classnames_default()('components-resize-tooltip', className);\n  return Object(external_this_wp_element_[\"createElement\"])(resize_tooltip_styles_Root, Object(esm_extends[\"a\" /* default */])({\n    \"aria-hidden\": \"true\",\n    className: classes,\n    ref: ref\n  }, props), resizeListener, Object(external_this_wp_element_[\"createElement\"])(resize_tooltip_label, {\n    \"aria-hidden\": props['aria-hidden'],\n    fadeTimeout: fadeTimeout,\n    isVisible: isVisible,\n    label: label,\n    position: position,\n    ref: labelRef,\n    zIndex: zIndex\n  }));\n}\n\nvar resize_tooltip_ForwardedComponent = Object(external_this_wp_element_[\"forwardRef\"])(ResizeTooltip);\n/* harmony default export */ var resize_tooltip = (resize_tooltip_ForwardedComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/resizable-box/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ResizableBox(_ref) {\n  var className = _ref.className,\n      children = _ref.children,\n      _ref$showHandle = _ref.showHandle,\n      showHandle = _ref$showHandle === void 0 ? true : _ref$showHandle,\n      _ref$__experimentalSh = _ref.__experimentalShowTooltip,\n      showTooltip = _ref$__experimentalSh === void 0 ? false : _ref$__experimentalSh,\n      _ref$__experimentalTo = _ref.__experimentalTooltipProps,\n      tooltipProps = _ref$__experimentalTo === void 0 ? {} : _ref$__experimentalTo,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"children\", \"showHandle\", \"__experimentalShowTooltip\", \"__experimentalTooltipProps\"]);\n\n  // Removes the inline styles in the drag handles.\n  var handleStylesOverrides = {\n    width: null,\n    height: null,\n    top: null,\n    right: null,\n    bottom: null,\n    left: null\n  };\n  var handleClassName = 'components-resizable-box__handle';\n  var sideHandleClassName = 'components-resizable-box__side-handle';\n  var cornerHandleClassName = 'components-resizable-box__corner-handle';\n  return Object(external_this_wp_element_[\"createElement\"])(lib_Resizable, Object(esm_extends[\"a\" /* default */])({\n    className: classnames_default()('components-resizable-box__container', showHandle && 'has-show-handle', className),\n    handleClasses: {\n      top: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-top'),\n      right: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-right'),\n      bottom: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-bottom'),\n      left: classnames_default()(handleClassName, sideHandleClassName, 'components-resizable-box__handle-left'),\n      topLeft: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-top', 'components-resizable-box__handle-left'),\n      topRight: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-top', 'components-resizable-box__handle-right'),\n      bottomRight: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-right'),\n      bottomLeft: classnames_default()(handleClassName, cornerHandleClassName, 'components-resizable-box__handle-bottom', 'components-resizable-box__handle-left')\n    },\n    handleStyles: {\n      top: handleStylesOverrides,\n      right: handleStylesOverrides,\n      bottom: handleStylesOverrides,\n      left: handleStylesOverrides,\n      topLeft: handleStylesOverrides,\n      topRight: handleStylesOverrides,\n      bottomRight: handleStylesOverrides,\n      bottomLeft: handleStylesOverrides\n    }\n  }, props), children, showTooltip && Object(external_this_wp_element_[\"createElement\"])(resize_tooltip, tooltipProps));\n}\n\n/* harmony default export */ var resizable_box = (ResizableBox);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/responsive-wrapper/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction ResponsiveWrapper(_ref) {\n  var naturalWidth = _ref.naturalWidth,\n      naturalHeight = _ref.naturalHeight,\n      children = _ref.children,\n      _ref$isInline = _ref.isInline,\n      isInline = _ref$isInline === void 0 ? false : _ref$isInline;\n\n  var _useResizeObserver = Object(external_this_wp_compose_[\"useResizeObserver\"])(),\n      _useResizeObserver2 = Object(slicedToArray[\"a\" /* default */])(_useResizeObserver, 2),\n      containerResizeListener = _useResizeObserver2[0],\n      containerWidth = _useResizeObserver2[1].width;\n\n  if (external_this_wp_element_[\"Children\"].count(children) !== 1) {\n    return null;\n  }\n\n  var imageStyle = {\n    paddingBottom: naturalWidth < containerWidth ? naturalHeight : naturalHeight / naturalWidth * 100 + '%'\n  };\n  var TagName = isInline ? 'span' : 'div';\n  return Object(external_this_wp_element_[\"createElement\"])(TagName, {\n    className: \"components-responsive-wrapper\"\n  }, containerResizeListener, Object(external_this_wp_element_[\"createElement\"])(TagName, {\n    style: imageStyle\n  }), Object(external_this_wp_element_[\"cloneElement\"])(children, {\n    className: classnames_default()('components-responsive-wrapper__content', children.props.className)\n  }));\n}\n\n/* harmony default export */ var responsive_wrapper = (ResponsiveWrapper);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/sandbox/index.js\n\n\n\n\n\n\n\n\nfunction sandbox_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (sandbox_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction sandbox_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar sandbox_Sandbox = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Sandbox, _Component);\n\n  var _super = sandbox_createSuper(Sandbox);\n\n  function Sandbox() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Sandbox);\n\n    _this = _super.apply(this, arguments);\n    _this.trySandbox = _this.trySandbox.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.checkMessageForResize = _this.checkMessageForResize.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.iframe = Object(external_this_wp_element_[\"createRef\"])();\n    _this.state = {\n      width: 0,\n      height: 0\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Sandbox, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      this.trySandbox();\n\n      this.trySandboxWithoutRerender = function () {\n        _this2.trySandbox(false);\n      }; // This used to be registered using <iframe onLoad={} />, but it made the iframe blank\n      // after reordering the containing block. See these two issues for more details:\n      // https://github.com/WordPress/gutenberg/issues/6146\n      // https://github.com/facebook/react/issues/18752\n\n\n      this.iframe.current.addEventListener('load', this.trySandboxWithoutRerender, false);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var forceRerender = prevProps.html !== this.props.html;\n      this.trySandbox(forceRerender);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.iframe.current.removeEventListener('load', this.trySandboxWithoutRerender);\n    }\n  }, {\n    key: \"isFrameAccessible\",\n    value: function isFrameAccessible() {\n      try {\n        return !!this.iframe.current.contentDocument.body;\n      } catch (e) {\n        return false;\n      }\n    }\n  }, {\n    key: \"checkMessageForResize\",\n    value: function checkMessageForResize(event) {\n      var iframe = this.iframe.current; // Attempt to parse the message data as JSON if passed as string\n\n      var data = event.data || {};\n\n      if ('string' === typeof data) {\n        try {\n          data = JSON.parse(data);\n        } catch (e) {}\n      } // Verify that the mounted element is the source of the message\n\n\n      if (!iframe || iframe.contentWindow !== event.source) {\n        return;\n      } // Update the state only if the message is formatted as we expect, i.e.\n      // as an object with a 'resize' action, width, and height\n\n\n      var _data = data,\n          action = _data.action,\n          width = _data.width,\n          height = _data.height;\n      var _this$state = this.state,\n          oldWidth = _this$state.width,\n          oldHeight = _this$state.height;\n\n      if ('resize' === action && (oldWidth !== width || oldHeight !== height)) {\n        this.setState({\n          width: width,\n          height: height\n        });\n      }\n    }\n  }, {\n    key: \"trySandbox\",\n    value: function trySandbox() {\n      var forceRerender = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      if (!this.isFrameAccessible()) {\n        return;\n      }\n\n      var body = this.iframe.current.contentDocument.body;\n\n      if (!forceRerender && null !== body.getAttribute('data-resizable-iframe-connected')) {\n        return;\n      }\n\n      var observeAndResizeJS = \"\\n\\t\\t\\t( function() {\\n\\t\\t\\t\\tvar observer;\\n\\n\\t\\t\\t\\tif ( ! window.MutationObserver || ! document.body || ! window.parent ) {\\n\\t\\t\\t\\t\\treturn;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tfunction sendResize() {\\n\\t\\t\\t\\t\\tvar clientBoundingRect = document.body.getBoundingClientRect();\\n\\n\\t\\t\\t\\t\\twindow.parent.postMessage( {\\n\\t\\t\\t\\t\\t\\taction: 'resize',\\n\\t\\t\\t\\t\\t\\twidth: clientBoundingRect.width,\\n\\t\\t\\t\\t\\t\\theight: clientBoundingRect.height,\\n\\t\\t\\t\\t\\t}, '*' );\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tobserver = new MutationObserver( sendResize );\\n\\t\\t\\t\\tobserver.observe( document.body, {\\n\\t\\t\\t\\t\\tattributes: true,\\n\\t\\t\\t\\t\\tattributeOldValue: false,\\n\\t\\t\\t\\t\\tcharacterData: true,\\n\\t\\t\\t\\t\\tcharacterDataOldValue: false,\\n\\t\\t\\t\\t\\tchildList: true,\\n\\t\\t\\t\\t\\tsubtree: true\\n\\t\\t\\t\\t} );\\n\\n\\t\\t\\t\\twindow.addEventListener( 'load', sendResize, true );\\n\\n\\t\\t\\t\\t// Hack: Remove viewport unit styles, as these are relative\\n\\t\\t\\t\\t// the iframe root and interfere with our mechanism for\\n\\t\\t\\t\\t// determining the unconstrained page bounds.\\n\\t\\t\\t\\tfunction removeViewportStyles( ruleOrNode ) {\\n\\t\\t\\t\\t\\tif( ruleOrNode.style ) {\\n\\t\\t\\t\\t\\t\\t[ 'width', 'height', 'minHeight', 'maxHeight' ].forEach( function( style ) {\\n\\t\\t\\t\\t\\t\\t\\tif ( /^\\\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] ) ) {\\n\\t\\t\\t\\t\\t\\t\\t\\truleOrNode.style[ style ] = '';\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t} );\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tArray.prototype.forEach.call( document.querySelectorAll( '[style]' ), removeViewportStyles );\\n\\t\\t\\t\\tArray.prototype.forEach.call( document.styleSheets, function( stylesheet ) {\\n\\t\\t\\t\\t\\tArray.prototype.forEach.call( stylesheet.cssRules || stylesheet.rules, removeViewportStyles );\\n\\t\\t\\t\\t} );\\n\\n\\t\\t\\t\\tdocument.body.style.position = 'absolute';\\n\\t\\t\\t\\tdocument.body.style.width = '100%';\\n\\t\\t\\t\\tdocument.body.setAttribute( 'data-resizable-iframe-connected', '' );\\n\\n\\t\\t\\t\\tsendResize();\\n\\n\\t\\t\\t\\t// Resize events can change the width of elements with 100% width, but we don't\\n\\t\\t\\t\\t// get an DOM mutations for that, so do the resize when the window is resized, too.\\n\\t\\t\\t\\twindow.addEventListener( 'resize', sendResize, true );\\n\\t\\t} )();\";\n      var style = \"\\n\\t\\t\\tbody {\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\t\\t\\thtml,\\n\\t\\t\\tbody,\\n\\t\\t\\tbody > div,\\n\\t\\t\\tbody > div > iframe {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t\\thtml.wp-has-aspect-ratio,\\n\\t\\t\\tbody.wp-has-aspect-ratio,\\n\\t\\t\\tbody.wp-has-aspect-ratio > div,\\n\\t\\t\\tbody.wp-has-aspect-ratio > div > iframe {\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\toverflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */\\n\\t\\t\\t}\\n\\t\\t\\tbody > div > * {\\n\\t\\t\\t\\tmargin-top: 0 !important; /* Has to have !important to override inline styles. */\\n\\t\\t\\t\\tmargin-bottom: 0 !important;\\n\\t\\t\\t}\\n\\t\\t\"; // put the html snippet into a html document, and then write it to the iframe's document\n      // we can use this in the future to inject custom styles or scripts.\n      // Scripts go into the body rather than the head, to support embedded content such as Instagram\n      // that expect the scripts to be part of the body.\n\n      var htmlDoc = Object(external_this_wp_element_[\"createElement\"])(\"html\", {\n        lang: document.documentElement.lang,\n        className: this.props.type\n      }, Object(external_this_wp_element_[\"createElement\"])(\"head\", null, Object(external_this_wp_element_[\"createElement\"])(\"title\", null, this.props.title), Object(external_this_wp_element_[\"createElement\"])(\"style\", {\n        dangerouslySetInnerHTML: {\n          __html: style\n        }\n      }), this.props.styles && this.props.styles.map(function (rules, i) {\n        return Object(external_this_wp_element_[\"createElement\"])(\"style\", {\n          key: i,\n          dangerouslySetInnerHTML: {\n            __html: rules\n          }\n        });\n      })), Object(external_this_wp_element_[\"createElement\"])(\"body\", {\n        \"data-resizable-iframe-connected\": \"data-resizable-iframe-connected\",\n        className: this.props.type\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        dangerouslySetInnerHTML: {\n          __html: this.props.html\n        }\n      }), Object(external_this_wp_element_[\"createElement\"])(\"script\", {\n        type: \"text/javascript\",\n        dangerouslySetInnerHTML: {\n          __html: observeAndResizeJS\n        }\n      }), this.props.scripts && this.props.scripts.map(function (src) {\n        return Object(external_this_wp_element_[\"createElement\"])(\"script\", {\n          key: src,\n          src: src\n        });\n      }))); // writing the document like this makes it act in the same way as if it was\n      // loaded over the network, so DOM creation and mutation, script execution, etc.\n      // all work as expected\n\n      var iframeDocument = this.iframe.current.contentWindow.document;\n      iframeDocument.open();\n      iframeDocument.write('<!DOCTYPE html>' + Object(external_this_wp_element_[\"renderToString\"])(htmlDoc));\n      iframeDocument.close();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          title = _this$props.title,\n          onFocus = _this$props.onFocus;\n      return Object(external_this_wp_element_[\"createElement\"])(focusable_iframe, {\n        iframeRef: this.iframe,\n        title: title,\n        className: \"components-sandbox\",\n        sandbox: \"allow-scripts allow-same-origin allow-presentation\",\n        onFocus: onFocus,\n        width: Math.ceil(this.state.width),\n        height: Math.ceil(this.state.height)\n      });\n    }\n  }], [{\n    key: \"defaultProps\",\n    get: function get() {\n      return {\n        html: '',\n        title: ''\n      };\n    }\n  }]);\n\n  return Sandbox;\n}(external_this_wp_element_[\"Component\"]);\n\nsandbox_Sandbox = Object(external_this_wp_compose_[\"withGlobalEvents\"])({\n  message: 'checkMessageForResize'\n})(sandbox_Sandbox);\n/* harmony default export */ var sandbox = (sandbox_Sandbox);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/snackbar/index.js\nvar snackbar = __webpack_require__(156);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: ./node_modules/react-spring/web.cjs.js\nvar web_cjs = __webpack_require__(108);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/snackbar/list.js\n\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Renders a list of notices.\n *\n * @param  {Object}   $0           Props passed to the component.\n * @param  {Array}    $0.notices   Array of notices to render.\n * @param  {Function} $0.onRemove  Function called when a notice should be removed / dismissed.\n * @param  {Object}   $0.className Name of the class used by the component.\n * @param  {Object}   $0.children  Array of children to be rendered inside the notice list.\n * @return {Object}                The rendered notices list.\n */\n\nfunction SnackbarList(_ref) {\n  var notices = _ref.notices,\n      className = _ref.className,\n      children = _ref.children,\n      _ref$onRemove = _ref.onRemove,\n      onRemove = _ref$onRemove === void 0 ? external_this_lodash_[\"noop\"] : _ref$onRemove;\n  var isReducedMotion = Object(external_this_wp_compose_[\"useReducedMotion\"])();\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(function () {\n    return new WeakMap();\n  }),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 1),\n      refMap = _useState2[0];\n\n  var transitions = Object(web_cjs[\"useTransition\"])(notices, function (notice) {\n    return notice.id;\n  }, {\n    from: {\n      opacity: 0,\n      height: 0\n    },\n    enter: function enter(item) {\n      return /*#__PURE__*/function () {\n        var _ref2 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(next) {\n          return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  _context.next = 2;\n                  return next({\n                    opacity: 1,\n                    height: refMap.get(item).offsetHeight\n                  });\n\n                case 2:\n                  return _context.abrupt(\"return\", _context.sent);\n\n                case 3:\n                case \"end\":\n                  return _context.stop();\n              }\n            }\n          }, _callee);\n        }));\n\n        return function (_x) {\n          return _ref2.apply(this, arguments);\n        };\n      }();\n    },\n    leave: function leave() {\n      return /*#__PURE__*/function () {\n        var _ref3 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee2(next) {\n          return external_this_regeneratorRuntime_default.a.wrap(function _callee2$(_context2) {\n            while (1) {\n              switch (_context2.prev = _context2.next) {\n                case 0:\n                  _context2.next = 2;\n                  return next({\n                    opacity: 0\n                  });\n\n                case 2:\n                  _context2.next = 4;\n                  return next({\n                    height: 0\n                  });\n\n                case 4:\n                case \"end\":\n                  return _context2.stop();\n              }\n            }\n          }, _callee2);\n        }));\n\n        return function (_x2) {\n          return _ref3.apply(this, arguments);\n        };\n      }();\n    },\n    immediate: isReducedMotion\n  });\n  className = classnames_default()('components-snackbar-list', className);\n\n  var removeNotice = function removeNotice(notice) {\n    return function () {\n      return onRemove(notice.id);\n    };\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, children, transitions.map(function (_ref4) {\n    var notice = _ref4.item,\n        key = _ref4.key,\n        style = _ref4.props;\n    return Object(external_this_wp_element_[\"createElement\"])(web_cjs[\"animated\"].div, {\n      key: key,\n      style: style\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"components-snackbar-list__notice-container\",\n      ref: function ref(_ref5) {\n        return _ref5 && refMap.set(notice, _ref5);\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(snackbar[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({}, Object(external_this_lodash_[\"omit\"])(notice, ['content']), {\n      onRemove: removeNotice(notice)\n    }), notice.content)));\n  }));\n}\n\n/* harmony default export */ var snackbar_list = (SnackbarList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/spinner/index.js\n\nfunction Spinner() {\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"components-spinner\"\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tab-panel/index.js\n\n\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar tab_panel_TabButton = function TabButton(_ref) {\n  var tabId = _ref.tabId,\n      onClick = _ref.onClick,\n      children = _ref.children,\n      selected = _ref.selected,\n      rest = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"tabId\", \"onClick\", \"children\", \"selected\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(build_module_button[\"a\" /* default */], Object(esm_extends[\"a\" /* default */])({\n    role: \"tab\",\n    tabIndex: selected ? null : -1,\n    \"aria-selected\": selected,\n    id: tabId,\n    onClick: onClick\n  }, rest), children);\n};\n\nfunction TabPanel(_ref2) {\n  var _selectedTab$name;\n\n  var className = _ref2.className,\n      children = _ref2.children,\n      tabs = _ref2.tabs,\n      initialTabName = _ref2.initialTabName,\n      _ref2$orientation = _ref2.orientation,\n      orientation = _ref2$orientation === void 0 ? 'horizontal' : _ref2$orientation,\n      _ref2$activeClass = _ref2.activeClass,\n      activeClass = _ref2$activeClass === void 0 ? 'is-active' : _ref2$activeClass,\n      _ref2$onSelect = _ref2.onSelect,\n      onSelect = _ref2$onSelect === void 0 ? external_this_lodash_[\"noop\"] : _ref2$onSelect;\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(TabPanel, 'tab-panel');\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      selected = _useState2[0],\n      setSelected = _useState2[1];\n\n  var handleClick = function handleClick(tabKey) {\n    setSelected(tabKey);\n    onSelect(tabKey);\n  };\n\n  var onNavigate = function onNavigate(childIndex, child) {\n    child.click();\n  };\n\n  var selectedTab = Object(external_this_lodash_[\"find\"])(tabs, {\n    name: selected\n  });\n  var selectedId = \"\".concat(instanceId, \"-\").concat((_selectedTab$name = selectedTab === null || selectedTab === void 0 ? void 0 : selectedTab.name) !== null && _selectedTab$name !== void 0 ? _selectedTab$name : 'none');\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var newSelectedTab = Object(external_this_lodash_[\"find\"])(tabs, {\n      name: selected\n    });\n\n    if (!newSelectedTab) {\n      setSelected(initialTabName || (tabs.length > 0 ? tabs[0].name : null));\n    }\n  }, [tabs]);\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(menu, {\n    role: \"tablist\",\n    orientation: orientation,\n    onNavigate: onNavigate,\n    className: \"components-tab-panel__tabs\"\n  }, tabs.map(function (tab) {\n    return Object(external_this_wp_element_[\"createElement\"])(tab_panel_TabButton, {\n      className: classnames_default()('components-tab-panel__tabs-item', tab.className, Object(defineProperty[\"a\" /* default */])({}, activeClass, tab.name === selected)),\n      tabId: \"\".concat(instanceId, \"-\").concat(tab.name),\n      \"aria-controls\": \"\".concat(instanceId, \"-\").concat(tab.name, \"-view\"),\n      selected: tab.name === selected,\n      key: tab.name,\n      onClick: Object(external_this_lodash_[\"partial\"])(handleClick, tab.name)\n    }, tab.title);\n  })), selectedTab && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    \"aria-labelledby\": selectedId,\n    role: \"tabpanel\",\n    id: \"\".concat(selectedId, \"-view\"),\n    className: \"components-tab-panel__tab-content\"\n  }, children(selectedTab)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/textarea-control/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction TextareaControl(_ref) {\n  var label = _ref.label,\n      hideLabelFromVision = _ref.hideLabelFromVision,\n      value = _ref.value,\n      help = _ref.help,\n      onChange = _ref.onChange,\n      _ref$rows = _ref.rows,\n      rows = _ref$rows === void 0 ? 4 : _ref$rows,\n      className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"label\", \"hideLabelFromVision\", \"value\", \"help\", \"onChange\", \"rows\", \"className\"]);\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(TextareaControl);\n  var id = \"inspector-textarea-control-\".concat(instanceId);\n\n  var onChangeValue = function onChangeValue(event) {\n    return onChange(event.target.value);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    label: label,\n    hideLabelFromVision: hideLabelFromVision,\n    id: id,\n    help: help,\n    className: className\n  }, Object(external_this_wp_element_[\"createElement\"])(\"textarea\", Object(esm_extends[\"a\" /* default */])({\n    className: \"components-textarea-control__input\",\n    id: id,\n    rows: rows,\n    onChange: onChangeValue,\n    \"aria-describedby\": !!help ? id + '__help' : undefined,\n    value: value\n  }, props)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/text-highlight/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar text_highlight_TextHighlight = function TextHighlight(_ref) {\n  var _ref$text = _ref.text,\n      text = _ref$text === void 0 ? '' : _ref$text,\n      _ref$highlight = _ref.highlight,\n      highlight = _ref$highlight === void 0 ? '' : _ref$highlight;\n  var trimmedHighlightText = highlight.trim();\n\n  if (!trimmedHighlightText) {\n    return text;\n  }\n\n  var regex = new RegExp(\"(\".concat(Object(external_this_lodash_[\"escapeRegExp\"])(trimmedHighlightText), \")\"), 'gi');\n  return Object(external_this_wp_element_[\"createInterpolateElement\"])(text.replace(regex, '<mark>$&</mark>'), {\n    mark: Object(external_this_wp_element_[\"createElement\"])(\"mark\", null)\n  });\n};\n\n/* harmony default export */ var text_highlight = (text_highlight_TextHighlight);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tip/index.js\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction Tip(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-tip\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n    width: \"24\",\n    height: \"24\",\n    viewBox: \"0 0 24 24\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n    d: \"M12 15.8c-3.7 0-6.8-3-6.8-6.8s3-6.8 6.8-6.8c3.7 0 6.8 3 6.8 6.8s-3.1 6.8-6.8 6.8zm0-12C9.1 3.8 6.8 6.1 6.8 9s2.4 5.2 5.2 5.2c2.9 0 5.2-2.4 5.2-5.2S14.9 3.8 12 3.8zM8 17.5h8V19H8zM10 20.5h4V22h-4z\"\n  })), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, props.children));\n}\n\n/* harmony default export */ var tip = (Tip);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toggle-control/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ToggleControl(_ref) {\n  var label = _ref.label,\n      checked = _ref.checked,\n      help = _ref.help,\n      className = _ref.className,\n      onChange = _ref.onChange;\n\n  function onChangeToggle(event) {\n    onChange(event.target.checked);\n  }\n\n  var instanceId = Object(external_this_wp_compose_[\"useInstanceId\"])(ToggleControl);\n  var id = \"inspector-toggle-control-\".concat(instanceId);\n  var describedBy, helpLabel;\n\n  if (help) {\n    describedBy = id + '__help';\n    helpLabel = Object(external_this_lodash_[\"isFunction\"])(help) ? help(checked) : help;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(base_control, {\n    id: id,\n    help: helpLabel,\n    className: classnames_default()('components-toggle-control', className)\n  }, Object(external_this_wp_element_[\"createElement\"])(form_toggle, {\n    id: id,\n    checked: checked,\n    onChange: onChangeToggle,\n    \"aria-describedby\": describedBy\n  }), Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    htmlFor: id,\n    className: \"components-toggle-control__label\"\n  }, label));\n}\n\n// EXTERNAL MODULE: ./node_modules/reakit/es/Toolbar/ToolbarState.js\nvar ToolbarState = __webpack_require__(161);\n\n// CONCATENATED MODULE: ./node_modules/reakit/es/Toolbar/Toolbar.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar useToolbar = Object(createHook[\"a\" /* createHook */])({\n  name: \"Toolbar\",\n  compose: useComposite,\n  useState: ToolbarState[\"a\" /* useToolbarState */],\n  useProps: function useProps(options, htmlProps) {\n    return Object(_rollupPluginBabelHelpers_1f0bf8c2[\"b\" /* a */])({\n      role: \"toolbar\",\n      \"aria-orientation\": options.orientation\n    }, htmlProps);\n  }\n});\nvar Toolbar = Object(createComponent[\"a\" /* createComponent */])({\n  as: \"div\",\n  useHook: useToolbar,\n  useCreateElement: function useCreateElement$1(type, props, children) {\n     false ? undefined : void 0;\n    return Object(useCreateElement[\"a\" /* useCreateElement */])(type, props, children);\n  }\n});\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/toolbar-container.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ToolbarContainer(_ref, ref) {\n  var accessibilityLabel = _ref.accessibilityLabel,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"accessibilityLabel\"]);\n\n  // https://reakit.io/docs/basic-concepts/#state-hooks\n  // Passing baseId for server side rendering (which includes snapshots)\n  // If an id prop is passed to Toolbar, toolbar items will use it as a base for their ids\n  var toolbarState = Object(ToolbarState[\"a\" /* useToolbarState */])({\n    loop: true,\n    baseId: props.id\n  });\n  return (// This will provide state for `ToolbarButton`'s\n    Object(external_this_wp_element_[\"createElement\"])(toolbar_context[\"a\" /* default */].Provider, {\n      value: toolbarState\n    }, Object(external_this_wp_element_[\"createElement\"])(Toolbar, Object(esm_extends[\"a\" /* default */])({\n      ref: ref,\n      \"aria-label\": accessibilityLabel\n    }, toolbarState, props)))\n  );\n}\n\n/* harmony default export */ var toolbar_container = (Object(external_this_wp_element_[\"forwardRef\"])(ToolbarContainer));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/toolbar/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Renders a toolbar.\n *\n * To add controls, simply pass `ToolbarButton` components as children.\n *\n * @param {Object} props                                    Component props.\n * @param {string} [props.className]                        Class to set on the container div.\n * @param {string} [props.__experimentalAccessibilityLabel] ARIA label for toolbar container.\n * @param {Object} ref                                      React Element ref.\n */\n\nfunction toolbar_Toolbar(_ref, ref) {\n  var className = _ref.className,\n      __experimentalAccessibilityLabel = _ref.__experimentalAccessibilityLabel,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"__experimentalAccessibilityLabel\"]);\n\n  if (__experimentalAccessibilityLabel) {\n    return Object(external_this_wp_element_[\"createElement\"])(toolbar_container // `ToolbarGroup` already uses components-toolbar for compatibility reasons\n    , Object(esm_extends[\"a\" /* default */])({\n      className: classnames_default()('components-accessible-toolbar', className),\n      accessibilityLabel: __experimentalAccessibilityLabel,\n      ref: ref\n    }, props));\n  } // When the __experimentalAccessibilityLabel prop is not passed, Toolbar will\n  // fallback to ToolbarGroup. This should be deprecated as soon as the new API\n  // gets stable.\n  // See https://github.com/WordPress/gutenberg/pull/20008#issuecomment-624503410\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(toolbar_group, Object(esm_extends[\"a\" /* default */])({}, props, {\n    className: className\n  }));\n}\n\n/* harmony default export */ var toolbar = (Object(external_this_wp_element_[\"forwardRef\"])(toolbar_Toolbar));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-context.js\n/**\n * WordPress dependencies\n */\n\nvar RovingTabIndexContext = Object(external_this_wp_element_[\"createContext\"])();\nvar roving_tab_index_context_useRovingTabIndexContext = function useRovingTabIndexContext() {\n  return Object(external_this_wp_element_[\"useContext\"])(RovingTabIndexContext);\n};\nvar RovingTabIndexProvider = RovingTabIndexContext.Provider;\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Provider for adding roving tab index behaviors to tree grid structures.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/components/src/tree-grid/README.md\n *\n * @param {Object}    props          Component props.\n * @param {WPElement} props.children Children to be rendered\n */\n\nfunction RovingTabIndex(_ref) {\n  var children = _ref.children;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      lastFocusedElement = _useState2[0],\n      setLastFocusedElement = _useState2[1]; // Use `useMemo` to avoid creation of a new object for the providerValue\n  // on every render. Only create a new object when the `lastFocusedElement`\n  // value changes.\n\n\n  var providerValue = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return {\n      lastFocusedElement: lastFocusedElement,\n      setLastFocusedElement: setLastFocusedElement\n    };\n  }, [lastFocusedElement]);\n  return Object(external_this_wp_element_[\"createElement\"])(RovingTabIndexProvider, {\n    value: providerValue\n  }, children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Return focusables in a row element, excluding those from other branches\n * nested within the row.\n *\n * @param {Element} rowElement The DOM element representing the row.\n *\n * @return {?Array} The array of focusables in the row.\n */\n\nfunction getRowFocusables(rowElement) {\n  var focusablesInRow = external_this_wp_dom_[\"focus\"].focusable.find(rowElement);\n\n  if (!focusablesInRow || !focusablesInRow.length) {\n    return;\n  }\n\n  return focusablesInRow.filter(function (focusable) {\n    return focusable.closest('[role=\"row\"]') === rowElement;\n  });\n}\n/**\n * Renders both a table and tbody element, used to create a tree hierarchy.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/components/src/tree-grid/README.md\n *\n * @param {Object}    props          Component props.\n * @param {WPElement} props.children Children to be rendered\n */\n\n\nfunction TreeGrid(_ref) {\n  var children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\"]);\n\n  var onKeyDown = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    var keyCode = event.keyCode,\n        metaKey = event.metaKey,\n        ctrlKey = event.ctrlKey,\n        altKey = event.altKey,\n        shiftKey = event.shiftKey;\n    var hasModifierKeyPressed = metaKey || ctrlKey || altKey || shiftKey;\n\n    if (hasModifierKeyPressed || !Object(external_this_lodash_[\"includes\"])([external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"RIGHT\"]], keyCode)) {\n      return;\n    } // The event will be handled, stop propagation.\n\n\n    event.stopPropagation();\n    var _document = document,\n        activeElement = _document.activeElement;\n    var treeGridElement = event.currentTarget;\n\n    if (!treeGridElement.contains(activeElement)) {\n      return;\n    } // Calculate the columnIndex of the active element.\n\n\n    var activeRow = activeElement.closest('[role=\"row\"]');\n    var focusablesInRow = getRowFocusables(activeRow);\n    var currentColumnIndex = focusablesInRow.indexOf(activeElement);\n\n    if (Object(external_this_lodash_[\"includes\"])([external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"RIGHT\"]], keyCode)) {\n      // Calculate to the next element.\n      var nextIndex;\n\n      if (keyCode === external_this_wp_keycodes_[\"LEFT\"]) {\n        nextIndex = Math.max(0, currentColumnIndex - 1);\n      } else {\n        nextIndex = Math.min(currentColumnIndex + 1, focusablesInRow.length - 1);\n      } // Focus is either at the left or right edge of the grid. Do nothing.\n\n\n      if (nextIndex === currentColumnIndex) {\n        // Prevent key use for anything else. For example, Voiceover\n        // will start reading text on continued use of left/right arrow\n        // keys.\n        event.preventDefault();\n        return;\n      } // Focus the next element.\n\n\n      focusablesInRow[nextIndex].focus(); // Prevent key use for anything else. This ensures Voiceover\n      // doesn't try to handle key navigation.\n\n      event.preventDefault();\n    } else if (Object(external_this_lodash_[\"includes\"])([external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"DOWN\"]], keyCode)) {\n      // Calculate the rowIndex of the next row.\n      var rows = Array.from(treeGridElement.querySelectorAll('[role=\"row\"]'));\n      var currentRowIndex = rows.indexOf(activeRow);\n      var nextRowIndex;\n\n      if (keyCode === external_this_wp_keycodes_[\"UP\"]) {\n        nextRowIndex = Math.max(0, currentRowIndex - 1);\n      } else {\n        nextRowIndex = Math.min(currentRowIndex + 1, rows.length - 1);\n      } // Focus is either at the top or bottom edge of the grid. Do nothing.\n\n\n      if (nextRowIndex === currentRowIndex) {\n        // Prevent key use for anything else. For example, Voiceover\n        // will start navigating horizontally when reaching the vertical\n        // bounds of a table.\n        event.preventDefault();\n        return;\n      } // Get the focusables in the next row.\n\n\n      var focusablesInNextRow = getRowFocusables(rows[nextRowIndex]); // If for some reason there are no focusables in the next row, do nothing.\n\n      if (!focusablesInNextRow || !focusablesInNextRow.length) {\n        // Prevent key use for anything else. For example, Voiceover\n        // will still focus text when using arrow keys, while this\n        // component should limit navigation to focusables.\n        event.preventDefault();\n        return;\n      } // Try to focus the element in the next row that's at a similar column to the activeElement.\n\n\n      var _nextIndex = Math.min(currentColumnIndex, focusablesInNextRow.length - 1);\n\n      focusablesInNextRow[_nextIndex].focus(); // Prevent key use for anything else. This ensures Voiceover\n      // doesn't try to handle key navigation.\n\n\n      event.preventDefault();\n    }\n  }, []);\n  return Object(external_this_wp_element_[\"createElement\"])(RovingTabIndex, null, Object(external_this_wp_element_[\"createElement\"])(\"table\", Object(esm_extends[\"a\" /* default */])({}, props, {\n    role: \"treegrid\",\n    onKeyDown: onKeyDown\n  }), Object(external_this_wp_element_[\"createElement\"])(\"tbody\", null, children)));\n}\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/row.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction TreeGridRow(_ref, ref) {\n  var children = _ref.children,\n      level = _ref.level,\n      positionInSet = _ref.positionInSet,\n      setSize = _ref.setSize,\n      isExpanded = _ref.isExpanded,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"level\", \"positionInSet\", \"setSize\", \"isExpanded\"]);\n\n  return (// Disable reason: Due to an error in the ARIA 1.1 specification, the\n    // aria-posinset and aria-setsize properties are not supported on row\n    // elements. This is being corrected in ARIA 1.2. Consequently, the\n    // linting rule fails when validating this markup.\n    //\n    // eslint-disable-next-line jsx-a11y/role-supports-aria-props\n    Object(external_this_wp_element_[\"createElement\"])(\"tr\", Object(esm_extends[\"a\" /* default */])({}, props, {\n      ref: ref,\n      role: \"row\",\n      \"aria-level\": level,\n      \"aria-posinset\": positionInSet,\n      \"aria-setsize\": setSize,\n      \"aria-expanded\": isExpanded\n    }), children)\n  );\n}\n\n/* harmony default export */ var tree_grid_row = (Object(external_this_wp_element_[\"forwardRef\"])(TreeGridRow));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/roving-tab-index-item.js\n\n\n\n\nfunction roving_tab_index_item_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction roving_tab_index_item_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { roving_tab_index_item_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { roving_tab_index_item_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var roving_tab_index_item = (Object(external_this_wp_element_[\"forwardRef\"])(function RovingTabIndexItem(_ref, forwardedRef) {\n  var children = _ref.children,\n      Component = _ref.as,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"as\"]);\n\n  var localRef = Object(external_this_wp_element_[\"useRef\"])();\n  var ref = forwardedRef || localRef;\n\n  var _useRovingTabIndexCon = roving_tab_index_context_useRovingTabIndexContext(),\n      lastFocusedElement = _useRovingTabIndexCon.lastFocusedElement,\n      setLastFocusedElement = _useRovingTabIndexCon.setLastFocusedElement;\n\n  var tabIndex;\n\n  if (lastFocusedElement) {\n    tabIndex = lastFocusedElement === ref.current ? 0 : -1;\n  }\n\n  var onFocus = function onFocus(event) {\n    return setLastFocusedElement(event.target);\n  };\n\n  var allProps = roving_tab_index_item_objectSpread({\n    ref: ref,\n    tabIndex: tabIndex,\n    onFocus: onFocus\n  }, props);\n\n  if (typeof children === 'function') {\n    return children(allProps);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(Component, allProps, children);\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/item.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var tree_grid_item = (Object(external_this_wp_element_[\"forwardRef\"])(function TreeGridItem(_ref, ref) {\n  var children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(roving_tab_index_item, Object(esm_extends[\"a\" /* default */])({\n    ref: ref\n  }, props), children);\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/tree-grid/cell.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var tree_grid_cell = (Object(external_this_wp_element_[\"forwardRef\"])(function TreeGridCell(_ref, ref) {\n  var children = _ref.children,\n      _ref$withoutGridItem = _ref.withoutGridItem,\n      withoutGridItem = _ref$withoutGridItem === void 0 ? false : _ref$withoutGridItem,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\", \"withoutGridItem\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"td\", Object(esm_extends[\"a\" /* default */])({}, props, {\n    role: \"gridcell\"\n  }), withoutGridItem ? children : Object(external_this_wp_element_[\"createElement\"])(tree_grid_item, {\n    ref: ref\n  }, children));\n}));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/index.js + 6 modules\nvar slot_fill = __webpack_require__(116);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/context.js + 1 modules\nvar slot_fill_context = __webpack_require__(118);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/slot-fill/bubbles-virtually/use-slot.js\nvar use_slot = __webpack_require__(153);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/navigate-regions/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar defaultShortcuts = {\n  previous: ['ctrl+shift+`', external_this_wp_keycodes_[\"rawShortcut\"].access('p')],\n  next: ['ctrl+`', external_this_wp_keycodes_[\"rawShortcut\"].access('n')]\n};\n/* harmony default export */ var navigate_regions = (Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return function (_ref) {\n    var _ref$shortcuts = _ref.shortcuts,\n        shortcuts = _ref$shortcuts === void 0 ? defaultShortcuts : _ref$shortcuts,\n        props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"shortcuts\"]);\n\n    var container = Object(external_this_wp_element_[\"useRef\"])();\n\n    var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n        _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n        isFocusingRegions = _useState2[0],\n        setIsFocusingRegions = _useState2[1];\n\n    var className = classnames_default()('components-navigate-regions', {\n      'is-focusing-regions': isFocusingRegions\n    });\n\n    function focusRegion(offset) {\n      var regions = Array.from(container.current.querySelectorAll('[role=\"region\"]'));\n\n      if (!regions.length) {\n        return;\n      }\n\n      var nextRegion = regions[0];\n      var selectedIndex = regions.indexOf(document.activeElement);\n\n      if (selectedIndex !== -1) {\n        var nextIndex = selectedIndex + offset;\n        nextIndex = nextIndex === -1 ? regions.length - 1 : nextIndex;\n        nextIndex = nextIndex === regions.length ? 0 : nextIndex;\n        nextRegion = regions[nextIndex];\n      }\n\n      nextRegion.focus();\n      setIsFocusingRegions(true);\n    }\n\n    var focusPrevious = Object(external_this_wp_element_[\"useCallback\"])(function () {\n      return focusRegion(-1);\n    }, [container]);\n    var focusNext = Object(external_this_wp_element_[\"useCallback\"])(function () {\n      return focusRegion(1);\n    }, [container]);\n    Object(external_this_wp_compose_[\"useKeyboardShortcut\"])(shortcuts.previous, focusPrevious, {\n      bindGlobal: true\n    });\n    Object(external_this_wp_compose_[\"useKeyboardShortcut\"])(shortcuts.next, focusNext, {\n      bindGlobal: true\n    }); // Disable reason: Clicking the editor should dismiss the regions focus style\n\n    /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      ref: container,\n      className: className,\n      onClick: function onClick() {\n        return setIsFocusingRegions(false);\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, props));\n    /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n  };\n}, 'navigateRegions'));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-fallback-styles/index.js\n\n\n\n\n\n\n\n\n\nfunction with_fallback_styles_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_fallback_styles_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_fallback_styles_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/* harmony default export */ var with_fallback_styles = (function (mapNodeToProps) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n    return /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(_class, _Component);\n\n      var _super = with_fallback_styles_createSuper(_class);\n\n      function _class() {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, _class);\n\n        _this = _super.apply(this, arguments);\n        _this.nodeRef = _this.props.node;\n        _this.state = {\n          fallbackStyles: undefined,\n          grabStylesCompleted: false\n        };\n        _this.bindRef = _this.bindRef.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(_class, [{\n        key: \"bindRef\",\n        value: function bindRef(node) {\n          if (!node) {\n            return;\n          }\n\n          this.nodeRef = node;\n        }\n      }, {\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          this.grabFallbackStyles();\n        }\n      }, {\n        key: \"componentDidUpdate\",\n        value: function componentDidUpdate() {\n          this.grabFallbackStyles();\n        }\n      }, {\n        key: \"grabFallbackStyles\",\n        value: function grabFallbackStyles() {\n          var _this$state = this.state,\n              grabStylesCompleted = _this$state.grabStylesCompleted,\n              fallbackStyles = _this$state.fallbackStyles;\n\n          if (this.nodeRef && !grabStylesCompleted) {\n            var newFallbackStyles = mapNodeToProps(this.nodeRef, this.props);\n\n            if (!Object(external_this_lodash_[\"isEqual\"])(newFallbackStyles, fallbackStyles)) {\n              this.setState({\n                fallbackStyles: newFallbackStyles,\n                grabStylesCompleted: !!Object(external_this_lodash_[\"every\"])(newFallbackStyles)\n              });\n            }\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          var wrappedComponent = Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, this.props, this.state.fallbackStyles));\n          return this.props.node ? wrappedComponent : Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n            ref: this.bindRef\n          }, \" \", wrappedComponent, \" \");\n        }\n      }]);\n\n      return _class;\n    }(external_this_wp_element_[\"Component\"]);\n  }, 'withFallbackStyles');\n});\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-filters/index.js\n\n\n\n\n\n\n\nfunction with_filters_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_filters_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_filters_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar ANIMATION_FRAME_PERIOD = 16;\n/**\n * Creates a higher-order component which adds filtering capability to the\n * wrapped component. Filters get applied when the original component is about\n * to be mounted. When a filter is added or removed that matches the hook name,\n * the wrapped component re-renders.\n *\n * @param {string} hookName Hook name exposed to be used by filters.\n *\n * @return {Function} Higher-order component factory.\n */\n\nfunction withFilters(hookName) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (OriginalComponent) {\n    var namespace = 'core/with-filters/' + hookName;\n    /**\n     * The component definition with current filters applied. Each instance\n     * reuse this shared reference as an optimization to avoid excessive\n     * calls to `applyFilters` when many instances exist.\n     *\n     * @type {?Component}\n     */\n\n    var FilteredComponent;\n    /**\n     * Initializes the FilteredComponent variable once, if not already\n     * assigned. Subsequent calls are effectively a noop.\n     */\n\n    function ensureFilteredComponent() {\n      if (FilteredComponent === undefined) {\n        FilteredComponent = Object(external_this_wp_hooks_[\"applyFilters\"])(hookName, OriginalComponent);\n      }\n    }\n\n    var FilteredComponentRenderer = /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(FilteredComponentRenderer, _Component);\n\n      var _super = with_filters_createSuper(FilteredComponentRenderer);\n\n      function FilteredComponentRenderer() {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, FilteredComponentRenderer);\n\n        _this = _super.apply(this, arguments);\n        ensureFilteredComponent();\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(FilteredComponentRenderer, [{\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          FilteredComponentRenderer.instances.push(this); // If there were previously no mounted instances for components\n          // filtered on this hook, add the hook handler.\n\n          if (FilteredComponentRenderer.instances.length === 1) {\n            Object(external_this_wp_hooks_[\"addAction\"])('hookRemoved', namespace, onHooksUpdated);\n            Object(external_this_wp_hooks_[\"addAction\"])('hookAdded', namespace, onHooksUpdated);\n          }\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          FilteredComponentRenderer.instances = Object(external_this_lodash_[\"without\"])(FilteredComponentRenderer.instances, this); // If this was the last of the mounted components filtered on\n          // this hook, remove the hook handler.\n\n          if (FilteredComponentRenderer.instances.length === 0) {\n            Object(external_this_wp_hooks_[\"removeAction\"])('hookRemoved', namespace);\n            Object(external_this_wp_hooks_[\"removeAction\"])('hookAdded', namespace);\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          return Object(external_this_wp_element_[\"createElement\"])(FilteredComponent, this.props);\n        }\n      }]);\n\n      return FilteredComponentRenderer;\n    }(external_this_wp_element_[\"Component\"]);\n\n    FilteredComponentRenderer.instances = [];\n    /**\n     * Updates the FilteredComponent definition, forcing a render for each\n     * mounted instance. This occurs a maximum of once per animation frame.\n     */\n\n    var throttledForceUpdate = Object(external_this_lodash_[\"debounce\"])(function () {\n      // Recreate the filtered component, only after delay so that it's\n      // computed once, even if many filters added.\n      FilteredComponent = Object(external_this_wp_hooks_[\"applyFilters\"])(hookName, OriginalComponent); // Force each instance to render.\n\n      FilteredComponentRenderer.instances.forEach(function (instance) {\n        instance.forceUpdate();\n      });\n    }, ANIMATION_FRAME_PERIOD);\n    /**\n     * When a filter is added or removed for the matching hook name, each\n     * mounted instance should re-render with the new filters having been\n     * applied to the original component.\n     *\n     * @param {string} updatedHookName Name of the hook that was updated.\n     */\n\n    function onHooksUpdated(updatedHookName) {\n      if (updatedHookName === hookName) {\n        throttledForceUpdate();\n      }\n    }\n\n    return FilteredComponentRenderer;\n  }, 'withFilters');\n}\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-focus-return/context.js\nvar with_focus_return_context = __webpack_require__(187);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/node_modules/uuid/dist/esm-browser/rng.js\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n  if (!getRandomValues) {\n    throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n  }\n\n  return getRandomValues(rnds8);\n}\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/node_modules/uuid/dist/esm-browser/bytesToUuid.js\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var bytesToUuid_i = 0; bytesToUuid_i < 256; ++bytesToUuid_i) {\n  byteToHex[bytesToUuid_i] = (bytesToUuid_i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n  var i = offset || 0;\n  var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n  return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\n/* harmony default export */ var esm_browser_bytesToUuid = (bytesToUuid);\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/node_modules/uuid/dist/esm-browser/v4.js\n\n\n\nfunction v4(options, buf, offset) {\n  var i = buf && offset || 0;\n\n  if (typeof options == 'string') {\n    buf = options === 'binary' ? new Array(16) : null;\n    options = null;\n  }\n\n  options = options || {};\n  var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n  if (buf) {\n    for (var ii = 0; ii < 16; ++ii) {\n      buf[i + ii] = rnds[ii];\n    }\n  }\n\n  return buf || esm_browser_bytesToUuid(rnds);\n}\n\n/* harmony default export */ var esm_browser_v4 = (v4);\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/higher-order/with-notices/index.js\n\n\n\n\n\n\n\n\n\n\n\nfunction with_notices_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction with_notices_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { with_notices_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { with_notices_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction with_notices_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_notices_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_notices_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Override the default edit UI to include notices if supported.\n *\n * @param  {WPComponent} OriginalComponent Original component.\n *\n * @return {WPComponent} Wrapped component.\n */\n\n/* harmony default export */ var with_notices = (Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (OriginalComponent) {\n  return /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(WrappedBlockEdit, _Component);\n\n    var _super = with_notices_createSuper(WrappedBlockEdit);\n\n    function WrappedBlockEdit() {\n      var _this;\n\n      Object(classCallCheck[\"a\" /* default */])(this, WrappedBlockEdit);\n\n      _this = _super.apply(this, arguments);\n      _this.createNotice = _this.createNotice.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.createErrorNotice = _this.createErrorNotice.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.removeNotice = _this.removeNotice.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.removeAllNotices = _this.removeAllNotices.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.state = {\n        noticeList: []\n      };\n      _this.noticeOperations = {\n        createNotice: _this.createNotice,\n        createErrorNotice: _this.createErrorNotice,\n        removeAllNotices: _this.removeAllNotices,\n        removeNotice: _this.removeNotice\n      };\n      return _this;\n    }\n    /**\n     * Function passed down as a prop that adds a new notice.\n     *\n     * @param {Object} notice  Notice to add.\n     */\n\n\n    Object(createClass[\"a\" /* default */])(WrappedBlockEdit, [{\n      key: \"createNotice\",\n      value: function createNotice(notice) {\n        var noticeToAdd = notice.id ? notice : with_notices_objectSpread({}, notice, {\n          id: esm_browser_v4()\n        });\n        this.setState(function (state) {\n          return {\n            noticeList: [].concat(Object(toConsumableArray[\"a\" /* default */])(state.noticeList), [noticeToAdd])\n          };\n        });\n      }\n      /**\n       * Function passed as a prop that adds a new error notice.\n       *\n       * @param {string} msg  Error message of the notice.\n       */\n\n    }, {\n      key: \"createErrorNotice\",\n      value: function createErrorNotice(msg) {\n        this.createNotice({\n          status: 'error',\n          content: msg\n        });\n      }\n      /**\n       * Removes a notice by id.\n       *\n       * @param {string} id  Id of the notice to remove.\n       */\n\n    }, {\n      key: \"removeNotice\",\n      value: function removeNotice(id) {\n        this.setState(function (state) {\n          return {\n            noticeList: state.noticeList.filter(function (notice) {\n              return notice.id !== id;\n            })\n          };\n        });\n      }\n      /**\n       * Removes all notices\n       */\n\n    }, {\n      key: \"removeAllNotices\",\n      value: function removeAllNotices() {\n        this.setState({\n          noticeList: []\n        });\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({\n          noticeList: this.state.noticeList,\n          noticeOperations: this.noticeOperations,\n          noticeUI: this.state.noticeList.length > 0 && Object(external_this_wp_element_[\"createElement\"])(list, {\n            className: \"components-with-notices-ui\",\n            notices: this.state.noticeList,\n            onRemove: this.removeNotice\n          })\n        }, this.props));\n      }\n    }]);\n\n    return WrappedBlockEdit;\n  }(external_this_wp_element_[\"Component\"]);\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/index.js\n// Primitives\n // Components\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // Higher-Order Components\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 255 */,\n/* 256 */,\n/* 257 */,\n/* 258 */,\n/* 259 */,\n/* 260 */,\n/* 261 */,\n/* 262 */,\n/* 263 */,\n/* 264 */\n/***/ (function(module, exports) {\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nmodule.exports = _defineProperty;\n\n/***/ }),\n/* 265 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactMomentProptypes = __webpack_require__(135);\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _object3 = __webpack_require__(222);\n\nvar _object4 = _interopRequireDefault(_object3);\n\nvar _isTouchDevice = __webpack_require__(232);\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _isSameDay = __webpack_require__(184);\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nvar _isAfterDay = __webpack_require__(233);\n\nvar _isAfterDay2 = _interopRequireDefault(_isAfterDay);\n\nvar _getVisibleDays = __webpack_require__(363);\n\nvar _getVisibleDays2 = _interopRequireDefault(_getVisibleDays);\n\nvar _isDayVisible = __webpack_require__(236);\n\nvar _isDayVisible2 = _interopRequireDefault(_isDayVisible);\n\nvar _toISODateString = __webpack_require__(237);\n\nvar _toISODateString2 = _interopRequireDefault(_toISODateString);\n\nvar _toISOMonthString = __webpack_require__(185);\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nvar _ScrollableOrientationShape = __webpack_require__(136);\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = __webpack_require__(150);\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = __webpack_require__(238);\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nvar _constants = __webpack_require__(66);\n\nvar _DayPicker = __webpack_require__(364);\n\nvar _DayPicker2 = _interopRequireDefault(_DayPicker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n  date: _reactMomentProptypes2['default'].momentObj,\n  onDateChange: _propTypes2['default'].func,\n\n  focused: _propTypes2['default'].bool,\n  onFocusChange: _propTypes2['default'].func,\n  onClose: _propTypes2['default'].func,\n\n  keepOpenOnDateSelect: _propTypes2['default'].bool,\n  isOutsideRange: _propTypes2['default'].func,\n  isDayBlocked: _propTypes2['default'].func,\n  isDayHighlighted: _propTypes2['default'].func,\n\n  // DayPicker props\n  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  enableOutsideDays: _propTypes2['default'].bool,\n  numberOfMonths: _propTypes2['default'].number,\n  orientation: _ScrollableOrientationShape2['default'],\n  withPortal: _propTypes2['default'].bool,\n  initialVisibleMonth: _propTypes2['default'].func,\n  firstDayOfWeek: _DayOfWeekShape2['default'],\n  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n  noBorder: _propTypes2['default'].bool,\n  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n  transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n  navPrev: _propTypes2['default'].node,\n  navNext: _propTypes2['default'].node,\n\n  onPrevMonthClick: _propTypes2['default'].func,\n  onNextMonthClick: _propTypes2['default'].func,\n  onOutsideClick: _propTypes2['default'].func,\n  renderCalendarDay: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  renderCalendarInfo: _propTypes2['default'].func,\n  calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n\n  // accessibility\n  onBlur: _propTypes2['default'].func,\n  isFocused: _propTypes2['default'].bool,\n  showKeyboardShortcuts: _propTypes2['default'].bool,\n\n  // i18n\n  monthFormat: _propTypes2['default'].string,\n  weekDayFormat: _propTypes2['default'].string,\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),\n  dayAriaLabelFormat: _propTypes2['default'].string,\n\n  isRTL: _propTypes2['default'].bool\n});\n\nvar defaultProps = {\n  date: undefined, // TODO: use null\n  onDateChange: function () {\n    function onDateChange() {}\n\n    return onDateChange;\n  }(),\n\n\n  focused: false,\n  onFocusChange: function () {\n    function onFocusChange() {}\n\n    return onFocusChange;\n  }(),\n  onClose: function () {\n    function onClose() {}\n\n    return onClose;\n  }(),\n\n\n  keepOpenOnDateSelect: false,\n  isOutsideRange: function () {\n    function isOutsideRange() {}\n\n    return isOutsideRange;\n  }(),\n  isDayBlocked: function () {\n    function isDayBlocked() {}\n\n    return isDayBlocked;\n  }(),\n  isDayHighlighted: function () {\n    function isDayHighlighted() {}\n\n    return isDayHighlighted;\n  }(),\n\n\n  // DayPicker props\n  renderMonthText: null,\n  enableOutsideDays: false,\n  numberOfMonths: 1,\n  orientation: _constants.HORIZONTAL_ORIENTATION,\n  withPortal: false,\n  hideKeyboardShortcutsPanel: false,\n  initialVisibleMonth: null,\n  firstDayOfWeek: null,\n  daySize: _constants.DAY_SIZE,\n  verticalHeight: null,\n  noBorder: false,\n  verticalBorderSpacing: undefined,\n  transitionDuration: undefined,\n  horizontalMonthPadding: 13,\n\n  navPrev: null,\n  navNext: null,\n\n  onPrevMonthClick: function () {\n    function onPrevMonthClick() {}\n\n    return onPrevMonthClick;\n  }(),\n  onNextMonthClick: function () {\n    function onNextMonthClick() {}\n\n    return onNextMonthClick;\n  }(),\n  onOutsideClick: function () {\n    function onOutsideClick() {}\n\n    return onOutsideClick;\n  }(),\n\n\n  renderCalendarDay: undefined,\n  renderDayContents: null,\n  renderCalendarInfo: null,\n  renderMonthElement: null,\n  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n\n  // accessibility\n  onBlur: function () {\n    function onBlur() {}\n\n    return onBlur;\n  }(),\n\n  isFocused: false,\n  showKeyboardShortcuts: false,\n\n  // i18n\n  monthFormat: 'MMMM YYYY',\n  weekDayFormat: 'dd',\n  phrases: _defaultPhrases.DayPickerPhrases,\n  dayAriaLabelFormat: undefined,\n\n  isRTL: false\n};\n\nvar DayPickerSingleDateController = function (_React$Component) {\n  _inherits(DayPickerSingleDateController, _React$Component);\n\n  function DayPickerSingleDateController(props) {\n    _classCallCheck(this, DayPickerSingleDateController);\n\n    var _this = _possibleConstructorReturn(this, (DayPickerSingleDateController.__proto__ || Object.getPrototypeOf(DayPickerSingleDateController)).call(this, props));\n\n    _this.isTouchDevice = false;\n    _this.today = (0, _moment2['default'])();\n\n    _this.modifiers = {\n      today: function () {\n        function today(day) {\n          return _this.isToday(day);\n        }\n\n        return today;\n      }(),\n      blocked: function () {\n        function blocked(day) {\n          return _this.isBlocked(day);\n        }\n\n        return blocked;\n      }(),\n      'blocked-calendar': function () {\n        function blockedCalendar(day) {\n          return props.isDayBlocked(day);\n        }\n\n        return blockedCalendar;\n      }(),\n      'blocked-out-of-range': function () {\n        function blockedOutOfRange(day) {\n          return props.isOutsideRange(day);\n        }\n\n        return blockedOutOfRange;\n      }(),\n      'highlighted-calendar': function () {\n        function highlightedCalendar(day) {\n          return props.isDayHighlighted(day);\n        }\n\n        return highlightedCalendar;\n      }(),\n      valid: function () {\n        function valid(day) {\n          return !_this.isBlocked(day);\n        }\n\n        return valid;\n      }(),\n      hovered: function () {\n        function hovered(day) {\n          return _this.isHovered(day);\n        }\n\n        return hovered;\n      }(),\n      selected: function () {\n        function selected(day) {\n          return _this.isSelected(day);\n        }\n\n        return selected;\n      }(),\n      'first-day-of-week': function () {\n        function firstDayOfWeek(day) {\n          return _this.isFirstDayOfWeek(day);\n        }\n\n        return firstDayOfWeek;\n      }(),\n      'last-day-of-week': function () {\n        function lastDayOfWeek(day) {\n          return _this.isLastDayOfWeek(day);\n        }\n\n        return lastDayOfWeek;\n      }()\n    };\n\n    var _this$getStateForNewM = _this.getStateForNewMonth(props),\n        currentMonth = _this$getStateForNewM.currentMonth,\n        visibleDays = _this$getStateForNewM.visibleDays;\n\n    _this.state = {\n      hoverDate: null,\n      currentMonth: currentMonth,\n      visibleDays: visibleDays\n    };\n\n    _this.onDayMouseEnter = _this.onDayMouseEnter.bind(_this);\n    _this.onDayMouseLeave = _this.onDayMouseLeave.bind(_this);\n    _this.onDayClick = _this.onDayClick.bind(_this);\n\n    _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);\n    _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);\n    _this.onMonthChange = _this.onMonthChange.bind(_this);\n    _this.onYearChange = _this.onYearChange.bind(_this);\n\n    _this.getFirstFocusableDay = _this.getFirstFocusableDay.bind(_this);\n    return _this;\n  }\n\n  _createClass(DayPickerSingleDateController, [{\n    key: 'componentDidMount',\n    value: function () {\n      function componentDidMount() {\n        this.isTouchDevice = (0, _isTouchDevice2['default'])();\n      }\n\n      return componentDidMount;\n    }()\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function () {\n      function componentWillReceiveProps(nextProps) {\n        var _this2 = this;\n\n        var date = nextProps.date,\n            focused = nextProps.focused,\n            isOutsideRange = nextProps.isOutsideRange,\n            isDayBlocked = nextProps.isDayBlocked,\n            isDayHighlighted = nextProps.isDayHighlighted,\n            initialVisibleMonth = nextProps.initialVisibleMonth,\n            numberOfMonths = nextProps.numberOfMonths,\n            enableOutsideDays = nextProps.enableOutsideDays;\n        var _props = this.props,\n            prevIsOutsideRange = _props.isOutsideRange,\n            prevIsDayBlocked = _props.isDayBlocked,\n            prevIsDayHighlighted = _props.isDayHighlighted,\n            prevNumberOfMonths = _props.numberOfMonths,\n            prevEnableOutsideDays = _props.enableOutsideDays,\n            prevInitialVisibleMonth = _props.initialVisibleMonth,\n            prevFocused = _props.focused,\n            prevDate = _props.date;\n        var visibleDays = this.state.visibleDays;\n\n\n        var recomputeOutsideRange = false;\n        var recomputeDayBlocked = false;\n        var recomputeDayHighlighted = false;\n\n        if (isOutsideRange !== prevIsOutsideRange) {\n          this.modifiers['blocked-out-of-range'] = function (day) {\n            return isOutsideRange(day);\n          };\n          recomputeOutsideRange = true;\n        }\n\n        if (isDayBlocked !== prevIsDayBlocked) {\n          this.modifiers['blocked-calendar'] = function (day) {\n            return isDayBlocked(day);\n          };\n          recomputeDayBlocked = true;\n        }\n\n        if (isDayHighlighted !== prevIsDayHighlighted) {\n          this.modifiers['highlighted-calendar'] = function (day) {\n            return isDayHighlighted(day);\n          };\n          recomputeDayHighlighted = true;\n        }\n\n        var recomputePropModifiers = recomputeOutsideRange || recomputeDayBlocked || recomputeDayHighlighted;\n\n        if (numberOfMonths !== prevNumberOfMonths || enableOutsideDays !== prevEnableOutsideDays || initialVisibleMonth !== prevInitialVisibleMonth && !prevFocused && focused) {\n          var newMonthState = this.getStateForNewMonth(nextProps);\n          var currentMonth = newMonthState.currentMonth;\n          visibleDays = newMonthState.visibleDays;\n\n          this.setState({\n            currentMonth: currentMonth,\n            visibleDays: visibleDays\n          });\n        }\n\n        var didDateChange = date !== prevDate;\n        var didFocusChange = focused !== prevFocused;\n\n        var modifiers = {};\n\n        if (didDateChange) {\n          modifiers = this.deleteModifier(modifiers, prevDate, 'selected');\n          modifiers = this.addModifier(modifiers, date, 'selected');\n        }\n\n        if (didFocusChange || recomputePropModifiers) {\n          (0, _object4['default'])(visibleDays).forEach(function (days) {\n            Object.keys(days).forEach(function (day) {\n              var momentObj = (0, _moment2['default'])(day);\n              if (_this2.isBlocked(momentObj)) {\n                modifiers = _this2.addModifier(modifiers, momentObj, 'blocked');\n              } else {\n                modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked');\n              }\n\n              if (didFocusChange || recomputeOutsideRange) {\n                if (isOutsideRange(momentObj)) {\n                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-out-of-range');\n                } else {\n                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-out-of-range');\n                }\n              }\n\n              if (didFocusChange || recomputeDayBlocked) {\n                if (isDayBlocked(momentObj)) {\n                  modifiers = _this2.addModifier(modifiers, momentObj, 'blocked-calendar');\n                } else {\n                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'blocked-calendar');\n                }\n              }\n\n              if (didFocusChange || recomputeDayHighlighted) {\n                if (isDayHighlighted(momentObj)) {\n                  modifiers = _this2.addModifier(modifiers, momentObj, 'highlighted-calendar');\n                } else {\n                  modifiers = _this2.deleteModifier(modifiers, momentObj, 'highlighted-calendar');\n                }\n              }\n            });\n          });\n        }\n\n        var today = (0, _moment2['default'])();\n        if (!(0, _isSameDay2['default'])(this.today, today)) {\n          modifiers = this.deleteModifier(modifiers, this.today, 'today');\n          modifiers = this.addModifier(modifiers, today, 'today');\n          this.today = today;\n        }\n\n        if (Object.keys(modifiers).length > 0) {\n          this.setState({\n            visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n          });\n        }\n      }\n\n      return componentWillReceiveProps;\n    }()\n  }, {\n    key: 'componentWillUpdate',\n    value: function () {\n      function componentWillUpdate() {\n        this.today = (0, _moment2['default'])();\n      }\n\n      return componentWillUpdate;\n    }()\n  }, {\n    key: 'onDayClick',\n    value: function () {\n      function onDayClick(day, e) {\n        if (e) e.preventDefault();\n        if (this.isBlocked(day)) return;\n        var _props2 = this.props,\n            onDateChange = _props2.onDateChange,\n            keepOpenOnDateSelect = _props2.keepOpenOnDateSelect,\n            onFocusChange = _props2.onFocusChange,\n            onClose = _props2.onClose;\n\n\n        onDateChange(day);\n        if (!keepOpenOnDateSelect) {\n          onFocusChange({ focused: false });\n          onClose({ date: day });\n        }\n      }\n\n      return onDayClick;\n    }()\n  }, {\n    key: 'onDayMouseEnter',\n    value: function () {\n      function onDayMouseEnter(day) {\n        if (this.isTouchDevice) return;\n        var _state = this.state,\n            hoverDate = _state.hoverDate,\n            visibleDays = _state.visibleDays;\n\n\n        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');\n        modifiers = this.addModifier(modifiers, day, 'hovered');\n\n        this.setState({\n          hoverDate: day,\n          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n        });\n      }\n\n      return onDayMouseEnter;\n    }()\n  }, {\n    key: 'onDayMouseLeave',\n    value: function () {\n      function onDayMouseLeave() {\n        var _state2 = this.state,\n            hoverDate = _state2.hoverDate,\n            visibleDays = _state2.visibleDays;\n\n        if (this.isTouchDevice || !hoverDate) return;\n\n        var modifiers = this.deleteModifier({}, hoverDate, 'hovered');\n\n        this.setState({\n          hoverDate: null,\n          visibleDays: (0, _object2['default'])({}, visibleDays, modifiers)\n        });\n      }\n\n      return onDayMouseLeave;\n    }()\n  }, {\n    key: 'onPrevMonthClick',\n    value: function () {\n      function onPrevMonthClick() {\n        var _props3 = this.props,\n            onPrevMonthClick = _props3.onPrevMonthClick,\n            numberOfMonths = _props3.numberOfMonths,\n            enableOutsideDays = _props3.enableOutsideDays;\n        var _state3 = this.state,\n            currentMonth = _state3.currentMonth,\n            visibleDays = _state3.visibleDays;\n\n\n        var newVisibleDays = {};\n        Object.keys(visibleDays).sort().slice(0, numberOfMonths + 1).forEach(function (month) {\n          newVisibleDays[month] = visibleDays[month];\n        });\n\n        var prevMonth = currentMonth.clone().subtract(1, 'month');\n        var prevMonthVisibleDays = (0, _getVisibleDays2['default'])(prevMonth, 1, enableOutsideDays);\n\n        this.setState({\n          currentMonth: prevMonth,\n          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(prevMonthVisibleDays))\n        }, function () {\n          onPrevMonthClick(prevMonth.clone());\n        });\n      }\n\n      return onPrevMonthClick;\n    }()\n  }, {\n    key: 'onNextMonthClick',\n    value: function () {\n      function onNextMonthClick() {\n        var _props4 = this.props,\n            onNextMonthClick = _props4.onNextMonthClick,\n            numberOfMonths = _props4.numberOfMonths,\n            enableOutsideDays = _props4.enableOutsideDays;\n        var _state4 = this.state,\n            currentMonth = _state4.currentMonth,\n            visibleDays = _state4.visibleDays;\n\n\n        var newVisibleDays = {};\n        Object.keys(visibleDays).sort().slice(1).forEach(function (month) {\n          newVisibleDays[month] = visibleDays[month];\n        });\n\n        var nextMonth = currentMonth.clone().add(numberOfMonths, 'month');\n        var nextMonthVisibleDays = (0, _getVisibleDays2['default'])(nextMonth, 1, enableOutsideDays);\n\n        var newCurrentMonth = currentMonth.clone().add(1, 'month');\n        this.setState({\n          currentMonth: newCurrentMonth,\n          visibleDays: (0, _object2['default'])({}, newVisibleDays, this.getModifiers(nextMonthVisibleDays))\n        }, function () {\n          onNextMonthClick(newCurrentMonth.clone());\n        });\n      }\n\n      return onNextMonthClick;\n    }()\n  }, {\n    key: 'onMonthChange',\n    value: function () {\n      function onMonthChange(newMonth) {\n        var _props5 = this.props,\n            numberOfMonths = _props5.numberOfMonths,\n            enableOutsideDays = _props5.enableOutsideDays,\n            orientation = _props5.orientation;\n\n        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n        this.setState({\n          currentMonth: newMonth.clone(),\n          visibleDays: this.getModifiers(newVisibleDays)\n        });\n      }\n\n      return onMonthChange;\n    }()\n  }, {\n    key: 'onYearChange',\n    value: function () {\n      function onYearChange(newMonth) {\n        var _props6 = this.props,\n            numberOfMonths = _props6.numberOfMonths,\n            enableOutsideDays = _props6.enableOutsideDays,\n            orientation = _props6.orientation;\n\n        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n        var newVisibleDays = (0, _getVisibleDays2['default'])(newMonth, numberOfMonths, enableOutsideDays, withoutTransitionMonths);\n\n        this.setState({\n          currentMonth: newMonth.clone(),\n          visibleDays: this.getModifiers(newVisibleDays)\n        });\n      }\n\n      return onYearChange;\n    }()\n  }, {\n    key: 'getFirstFocusableDay',\n    value: function () {\n      function getFirstFocusableDay(newMonth) {\n        var _this3 = this;\n\n        var _props7 = this.props,\n            date = _props7.date,\n            numberOfMonths = _props7.numberOfMonths;\n\n\n        var focusedDate = newMonth.clone().startOf('month');\n        if (date) {\n          focusedDate = date.clone();\n        }\n\n        if (this.isBlocked(focusedDate)) {\n          var days = [];\n          var lastVisibleDay = newMonth.clone().add(numberOfMonths - 1, 'months').endOf('month');\n          var currentDay = focusedDate.clone();\n          while (!(0, _isAfterDay2['default'])(currentDay, lastVisibleDay)) {\n            currentDay = currentDay.clone().add(1, 'day');\n            days.push(currentDay);\n          }\n\n          var viableDays = days.filter(function (day) {\n            return !_this3.isBlocked(day) && (0, _isAfterDay2['default'])(day, focusedDate);\n          });\n          if (viableDays.length > 0) {\n            var _viableDays = _slicedToArray(viableDays, 1);\n\n            focusedDate = _viableDays[0];\n          }\n        }\n\n        return focusedDate;\n      }\n\n      return getFirstFocusableDay;\n    }()\n  }, {\n    key: 'getModifiers',\n    value: function () {\n      function getModifiers(visibleDays) {\n        var _this4 = this;\n\n        var modifiers = {};\n        Object.keys(visibleDays).forEach(function (month) {\n          modifiers[month] = {};\n          visibleDays[month].forEach(function (day) {\n            modifiers[month][(0, _toISODateString2['default'])(day)] = _this4.getModifiersForDay(day);\n          });\n        });\n\n        return modifiers;\n      }\n\n      return getModifiers;\n    }()\n  }, {\n    key: 'getModifiersForDay',\n    value: function () {\n      function getModifiersForDay(day) {\n        var _this5 = this;\n\n        return new Set(Object.keys(this.modifiers).filter(function (modifier) {\n          return _this5.modifiers[modifier](day);\n        }));\n      }\n\n      return getModifiersForDay;\n    }()\n  }, {\n    key: 'getStateForNewMonth',\n    value: function () {\n      function getStateForNewMonth(nextProps) {\n        var _this6 = this;\n\n        var initialVisibleMonth = nextProps.initialVisibleMonth,\n            date = nextProps.date,\n            numberOfMonths = nextProps.numberOfMonths,\n            enableOutsideDays = nextProps.enableOutsideDays;\n\n        var initialVisibleMonthThunk = initialVisibleMonth || (date ? function () {\n          return date;\n        } : function () {\n          return _this6.today;\n        });\n        var currentMonth = initialVisibleMonthThunk();\n        var visibleDays = this.getModifiers((0, _getVisibleDays2['default'])(currentMonth, numberOfMonths, enableOutsideDays));\n        return { currentMonth: currentMonth, visibleDays: visibleDays };\n      }\n\n      return getStateForNewMonth;\n    }()\n  }, {\n    key: 'addModifier',\n    value: function () {\n      function addModifier(updatedDays, day, modifier) {\n        var _props8 = this.props,\n            numberOfVisibleMonths = _props8.numberOfMonths,\n            enableOutsideDays = _props8.enableOutsideDays,\n            orientation = _props8.orientation;\n        var _state5 = this.state,\n            firstVisibleMonth = _state5.currentMonth,\n            visibleDays = _state5.visibleDays;\n\n\n        var currentMonth = firstVisibleMonth;\n        var numberOfMonths = numberOfVisibleMonths;\n        if (orientation === _constants.VERTICAL_SCROLLABLE) {\n          numberOfMonths = Object.keys(visibleDays).length;\n        } else {\n          currentMonth = currentMonth.clone().subtract(1, 'month');\n          numberOfMonths += 2;\n        }\n        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n          return updatedDays;\n        }\n\n        var iso = (0, _toISODateString2['default'])(day);\n\n        var updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDays);\n        if (enableOutsideDays) {\n          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n          });\n\n          updatedDaysAfterAddition = monthsToUpdate.reduce(function (days, monthIso) {\n            var month = updatedDays[monthIso] || visibleDays[monthIso];\n            var modifiers = new Set(month[iso]);\n            modifiers.add(modifier);\n            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n          }, updatedDaysAfterAddition);\n        } else {\n          var monthIso = (0, _toISOMonthString2['default'])(day);\n          var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n          var modifiers = new Set(month[iso]);\n          modifiers.add(modifier);\n          updatedDaysAfterAddition = (0, _object2['default'])({}, updatedDaysAfterAddition, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n        }\n\n        return updatedDaysAfterAddition;\n      }\n\n      return addModifier;\n    }()\n  }, {\n    key: 'deleteModifier',\n    value: function () {\n      function deleteModifier(updatedDays, day, modifier) {\n        var _props9 = this.props,\n            numberOfVisibleMonths = _props9.numberOfMonths,\n            enableOutsideDays = _props9.enableOutsideDays,\n            orientation = _props9.orientation;\n        var _state6 = this.state,\n            firstVisibleMonth = _state6.currentMonth,\n            visibleDays = _state6.visibleDays;\n\n\n        var currentMonth = firstVisibleMonth;\n        var numberOfMonths = numberOfVisibleMonths;\n        if (orientation === _constants.VERTICAL_SCROLLABLE) {\n          numberOfMonths = Object.keys(visibleDays).length;\n        } else {\n          currentMonth = currentMonth.clone().subtract(1, 'month');\n          numberOfMonths += 2;\n        }\n        if (!day || !(0, _isDayVisible2['default'])(day, currentMonth, numberOfMonths, enableOutsideDays)) {\n          return updatedDays;\n        }\n\n        var iso = (0, _toISODateString2['default'])(day);\n\n        var updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDays);\n        if (enableOutsideDays) {\n          var monthsToUpdate = Object.keys(visibleDays).filter(function (monthKey) {\n            return Object.keys(visibleDays[monthKey]).indexOf(iso) > -1;\n          });\n\n          updatedDaysAfterDeletion = monthsToUpdate.reduce(function (days, monthIso) {\n            var month = updatedDays[monthIso] || visibleDays[monthIso];\n            var modifiers = new Set(month[iso]);\n            modifiers['delete'](modifier);\n            return (0, _object2['default'])({}, days, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n          }, updatedDaysAfterDeletion);\n        } else {\n          var monthIso = (0, _toISOMonthString2['default'])(day);\n          var month = updatedDays[monthIso] || visibleDays[monthIso];\n\n          var modifiers = new Set(month[iso]);\n          modifiers['delete'](modifier);\n          updatedDaysAfterDeletion = (0, _object2['default'])({}, updatedDaysAfterDeletion, _defineProperty({}, monthIso, (0, _object2['default'])({}, month, _defineProperty({}, iso, modifiers))));\n        }\n\n        return updatedDaysAfterDeletion;\n      }\n\n      return deleteModifier;\n    }()\n  }, {\n    key: 'isBlocked',\n    value: function () {\n      function isBlocked(day) {\n        var _props10 = this.props,\n            isDayBlocked = _props10.isDayBlocked,\n            isOutsideRange = _props10.isOutsideRange;\n\n        return isDayBlocked(day) || isOutsideRange(day);\n      }\n\n      return isBlocked;\n    }()\n  }, {\n    key: 'isHovered',\n    value: function () {\n      function isHovered(day) {\n        var _ref = this.state || {},\n            hoverDate = _ref.hoverDate;\n\n        return (0, _isSameDay2['default'])(day, hoverDate);\n      }\n\n      return isHovered;\n    }()\n  }, {\n    key: 'isSelected',\n    value: function () {\n      function isSelected(day) {\n        var date = this.props.date;\n\n        return (0, _isSameDay2['default'])(day, date);\n      }\n\n      return isSelected;\n    }()\n  }, {\n    key: 'isToday',\n    value: function () {\n      function isToday(day) {\n        return (0, _isSameDay2['default'])(day, this.today);\n      }\n\n      return isToday;\n    }()\n  }, {\n    key: 'isFirstDayOfWeek',\n    value: function () {\n      function isFirstDayOfWeek(day) {\n        var firstDayOfWeek = this.props.firstDayOfWeek;\n\n        return day.day() === (firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek());\n      }\n\n      return isFirstDayOfWeek;\n    }()\n  }, {\n    key: 'isLastDayOfWeek',\n    value: function () {\n      function isLastDayOfWeek(day) {\n        var firstDayOfWeek = this.props.firstDayOfWeek;\n\n        return day.day() === ((firstDayOfWeek || _moment2['default'].localeData().firstDayOfWeek()) + 6) % 7;\n      }\n\n      return isLastDayOfWeek;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _props11 = this.props,\n            numberOfMonths = _props11.numberOfMonths,\n            orientation = _props11.orientation,\n            monthFormat = _props11.monthFormat,\n            renderMonthText = _props11.renderMonthText,\n            navPrev = _props11.navPrev,\n            navNext = _props11.navNext,\n            onOutsideClick = _props11.onOutsideClick,\n            withPortal = _props11.withPortal,\n            focused = _props11.focused,\n            enableOutsideDays = _props11.enableOutsideDays,\n            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,\n            daySize = _props11.daySize,\n            firstDayOfWeek = _props11.firstDayOfWeek,\n            renderCalendarDay = _props11.renderCalendarDay,\n            renderDayContents = _props11.renderDayContents,\n            renderCalendarInfo = _props11.renderCalendarInfo,\n            renderMonthElement = _props11.renderMonthElement,\n            calendarInfoPosition = _props11.calendarInfoPosition,\n            isFocused = _props11.isFocused,\n            isRTL = _props11.isRTL,\n            phrases = _props11.phrases,\n            dayAriaLabelFormat = _props11.dayAriaLabelFormat,\n            onBlur = _props11.onBlur,\n            showKeyboardShortcuts = _props11.showKeyboardShortcuts,\n            weekDayFormat = _props11.weekDayFormat,\n            verticalHeight = _props11.verticalHeight,\n            noBorder = _props11.noBorder,\n            transitionDuration = _props11.transitionDuration,\n            verticalBorderSpacing = _props11.verticalBorderSpacing,\n            horizontalMonthPadding = _props11.horizontalMonthPadding;\n        var _state7 = this.state,\n            currentMonth = _state7.currentMonth,\n            visibleDays = _state7.visibleDays;\n\n\n        return _react2['default'].createElement(_DayPicker2['default'], {\n          orientation: orientation,\n          enableOutsideDays: enableOutsideDays,\n          modifiers: visibleDays,\n          numberOfMonths: numberOfMonths,\n          onDayClick: this.onDayClick,\n          onDayMouseEnter: this.onDayMouseEnter,\n          onDayMouseLeave: this.onDayMouseLeave,\n          onPrevMonthClick: this.onPrevMonthClick,\n          onNextMonthClick: this.onNextMonthClick,\n          onMonthChange: this.onMonthChange,\n          onYearChange: this.onYearChange,\n          monthFormat: monthFormat,\n          withPortal: withPortal,\n          hidden: !focused,\n          hideKeyboardShortcutsPanel: hideKeyboardShortcutsPanel,\n          initialVisibleMonth: function () {\n            function initialVisibleMonth() {\n              return currentMonth;\n            }\n\n            return initialVisibleMonth;\n          }(),\n          firstDayOfWeek: firstDayOfWeek,\n          onOutsideClick: onOutsideClick,\n          navPrev: navPrev,\n          navNext: navNext,\n          renderMonthText: renderMonthText,\n          renderCalendarDay: renderCalendarDay,\n          renderDayContents: renderDayContents,\n          renderCalendarInfo: renderCalendarInfo,\n          renderMonthElement: renderMonthElement,\n          calendarInfoPosition: calendarInfoPosition,\n          isFocused: isFocused,\n          getFirstFocusableDay: this.getFirstFocusableDay,\n          onBlur: onBlur,\n          phrases: phrases,\n          daySize: daySize,\n          isRTL: isRTL,\n          showKeyboardShortcuts: showKeyboardShortcuts,\n          weekDayFormat: weekDayFormat,\n          dayAriaLabelFormat: dayAriaLabelFormat,\n          verticalHeight: verticalHeight,\n          noBorder: noBorder,\n          transitionDuration: transitionDuration,\n          verticalBorderSpacing: verticalBorderSpacing,\n          horizontalMonthPadding: horizontalMonthPadding\n        });\n      }\n\n      return render;\n    }()\n  }]);\n\n  return DayPickerSingleDateController;\n}(_react2['default'].Component);\n\nexports['default'] = DayPickerSingleDateController;\n\n\nDayPickerSingleDateController.propTypes = propTypes;\nDayPickerSingleDateController.defaultProps = defaultProps;\n\n/***/ }),\n/* 266 */,\n/* 267 */,\n/* 268 */,\n/* 269 */,\n/* 270 */,\n/* 271 */,\n/* 272 */,\n/* 273 */,\n/* 274 */,\n/* 275 */,\n/* 276 */,\n/* 277 */,\n/* 278 */,\n/* 279 */,\n/* 280 */,\n/* 281 */,\n/* 282 */,\n/* 283 */,\n/* 284 */,\n/* 285 */,\n/* 286 */,\n/* 287 */,\n/* 288 */,\n/* 289 */,\n/* 290 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronUp = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M12 8l-6 5.4 1 1.2 5-4.6 5 4.6 1-1.2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronUp);\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar chevronDown = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M17 9.4L12 14 7 9.4l-1 1.2 6 5.4 6-5.4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (chevronDown);\n\n\n/***/ }),\n/* 292 */,\n/* 293 */,\n/* 294 */,\n/* 295 */,\n/* 296 */,\n/* 297 */,\n/* 298 */,\n/* 299 */,\n/* 300 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// eslint-disable-next-line import/no-unresolved\n__webpack_require__(302);\n\n\n/***/ }),\n/* 302 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _registerCSSInterfaceWithDefaultTheme = __webpack_require__(303);\n\nvar _registerCSSInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerCSSInterfaceWithDefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n(0, _registerCSSInterfaceWithDefaultTheme2['default'])();\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = registerCSSInterfaceWithDefaultTheme;\n\nvar _reactWithStylesInterfaceCss = __webpack_require__(304);\n\nvar _reactWithStylesInterfaceCss2 = _interopRequireDefault(_reactWithStylesInterfaceCss);\n\nvar _registerInterfaceWithDefaultTheme = __webpack_require__(348);\n\nvar _registerInterfaceWithDefaultTheme2 = _interopRequireDefault(_registerInterfaceWithDefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction registerCSSInterfaceWithDefaultTheme() {\n  (0, _registerInterfaceWithDefaultTheme2['default'])(_reactWithStylesInterfaceCss2['default']);\n}\n\n/***/ }),\n/* 304 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// eslint-disable-next-line import/no-unresolved\nmodule.exports = __webpack_require__(305).default;\n\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _arrayPrototype = __webpack_require__(306);\n\nvar _arrayPrototype2 = _interopRequireDefault(_arrayPrototype);\n\nvar _globalCache = __webpack_require__(344);\n\nvar _globalCache2 = _interopRequireDefault(_globalCache);\n\nvar _constants = __webpack_require__(345);\n\nvar _getClassName = __webpack_require__(346);\n\nvar _getClassName2 = _interopRequireDefault(_getClassName);\n\nvar _separateStyles2 = __webpack_require__(347);\n\nvar _separateStyles3 = _interopRequireDefault(_separateStyles2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Function required as part of the react-with-styles interface. Parses the styles provided by\n * react-with-styles to produce class names based on the style name and optionally the namespace if\n * available.\n *\n * stylesObject {Object} The styles object passed to withStyles.\n *\n * Return an object mapping style names to class names.\n */\nfunction create(stylesObject) {\n  var stylesToClasses = {};\n  var styleNames = Object.keys(stylesObject);\n  var sharedState = _globalCache2['default'].get(_constants.GLOBAL_CACHE_KEY) || {};\n  var _sharedState$namespac = sharedState.namespace,\n      namespace = _sharedState$namespac === undefined ? '' : _sharedState$namespac;\n\n  styleNames.forEach(function (styleName) {\n    var className = (0, _getClassName2['default'])(namespace, styleName);\n    stylesToClasses[styleName] = className;\n  });\n  return stylesToClasses;\n}\n\n/**\n * Process styles to be consumed by a component.\n *\n * stylesArray {Array} Array of the following: values returned by create, plain JavaScript objects\n * representing inline styles, or arrays thereof.\n *\n * Return an object with optional className and style properties to be spread on a component.\n */\nfunction resolve(stylesArray) {\n  var flattenedStyles = (0, _arrayPrototype2['default'])(stylesArray, Infinity);\n\n  var _separateStyles = (0, _separateStyles3['default'])(flattenedStyles),\n      classNames = _separateStyles.classNames,\n      hasInlineStyles = _separateStyles.hasInlineStyles,\n      inlineStyles = _separateStyles.inlineStyles;\n\n  var specificClassNames = classNames.map(function (name, index) {\n    return String(name) + ' ' + String(name) + '_' + String(index + 1);\n  });\n  var className = specificClassNames.join(' ');\n\n  var result = { className: className };\n  if (hasInlineStyles) result.style = inlineStyles;\n  return result;\n}\n\nexports['default'] = { create: create, resolve: resolve };\n\n/***/ }),\n/* 306 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\nvar callBind = __webpack_require__(176);\n\nvar implementation = __webpack_require__(202);\nvar getPolyfill = __webpack_require__(217);\nvar polyfill = getPolyfill();\nvar shim = __webpack_require__(343);\n\nvar boundFlat = callBind(polyfill);\n\ndefine(boundFlat, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundFlat;\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = __webpack_require__(200); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n\n\n/***/ }),\n/* 308 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slice.call(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                args.concat(slice.call(arguments))\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        } else {\n            return target.apply(\n                that,\n                args.concat(slice.call(arguments))\n            );\n        }\n    };\n\n    var boundLength = Math.max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs.push('$' + i);\n    }\n\n    bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Array = GetIntrinsic('%Array%');\nvar $species = GetIntrinsic('%Symbol.species%', true);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar Get = __webpack_require__(177);\nvar IsArray = __webpack_require__(178);\nvar IsConstructor = __webpack_require__(314);\nvar IsInteger = __webpack_require__(319);\nvar Type = __webpack_require__(80);\n\n// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\nmodule.exports = function ArraySpeciesCreate(originalArray, length) {\n\tif (!IsInteger(length) || length < 0) {\n\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t}\n\tvar len = length === 0 ? 0 : length;\n\tvar C;\n\tvar isArray = IsArray(originalArray);\n\tif (isArray) {\n\t\tC = Get(originalArray, 'constructor');\n\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t// if (IsConstructor(C)) {\n\t\t// \tif C is another realm's Array, C = undefined\n\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t// }\n\t\tif ($species && Type(C) === 'Object') {\n\t\t\tC = Get(C, $species);\n\t\t\tif (C === null) {\n\t\t\t\tC = void 0;\n\t\t\t}\n\t\t}\n\t}\n\tif (typeof C === 'undefined') {\n\t\treturn $Array(len);\n\t}\n\tif (!IsConstructor(C)) {\n\t\tthrow new $TypeError('C must be a constructor');\n\t}\n\treturn new C(len); // Construct(C, len);\n};\n\n\n\n/***/ }),\n/* 311 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\n\nvar inspectCustom = __webpack_require__(312).custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        return String(obj);\n    }\n    if (typeof obj === 'bigint') { // eslint-disable-line valid-typeof\n        return String(obj) + 'n';\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return '[Object]';\n    }\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from) {\n        if (from) {\n            seen = seen.slice();\n            seen.push(from);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function') {\n        var name = nameOf(obj);\n        return '[Function' + (name ? ': ' + name : '') + ']';\n    }\n    if (isSymbol(obj)) {\n        var symString = Symbol.prototype.toString.call(obj);\n        return typeof obj === 'object' ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + String(obj.nodeName).toLowerCase();\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '</' + String(obj.nodeName).toLowerCase() + '>';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        return '[ ' + arrObjKeys(obj, inspect).join(', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n    }\n    if (typeof obj === 'object') {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n            return obj[inspectSymbol]();\n        } else if (typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        mapForEach.call(obj, function (value, key) {\n            mapParts.push(inspect(key, obj) + ' => ' + inspect(value, obj));\n        });\n        return collectionOf('Map', mapSize.call(obj), mapParts);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        setForEach.call(obj, function (value) {\n            setParts.push(inspect(value, obj));\n        });\n        return collectionOf('Set', setSize.call(obj), setParts);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var xs = arrObjKeys(obj, inspect);\n        if (xs.length === 0) { return '{}'; }\n        return '{ ' + xs.join(', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return String(s).replace(/\"/g, '&quot;');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]'; }\nfunction isDate(obj) { return toStr(obj) === '[object Date]'; }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]'; }\nfunction isError(obj) { return toStr(obj) === '[object Error]'; }\nfunction isSymbol(obj) { return toStr(obj) === '[object Symbol]'; }\nfunction isString(obj) { return toStr(obj) === '[object String]'; }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]'; }\nfunction isBigInt(obj) { return toStr(obj) === '[object BigInt]'; }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]'; }\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = match.call(f, /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    // eslint-disable-next-line no-control-regex\n    var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b', 9: 't', 10: 'n', 12: 'f', 13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16);\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries) {\n    return type + ' (' + size + ') {' + entries.join(', ') + '}';\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if ((/[^\\w$]/).test(key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    return xs;\n}\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 313 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// https://www.ecma-international.org/ecma-262/5.1/#sec-8\n\nmodule.exports = function Type(x) {\n\tif (x === null) {\n\t\treturn 'Null';\n\t}\n\tif (typeof x === 'undefined') {\n\t\treturn 'Undefined';\n\t}\n\tif (typeof x === 'function' || typeof x === 'object') {\n\t\treturn 'Object';\n\t}\n\tif (typeof x === 'number') {\n\t\treturn 'Number';\n\t}\n\tif (typeof x === 'boolean') {\n\t\treturn 'Boolean';\n\t}\n\tif (typeof x === 'string') {\n\t\treturn 'String';\n\t}\n};\n\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $construct = GetIntrinsic('%Reflect.construct%', true);\n\nvar DefinePropertyOrThrow = __webpack_require__(315);\ntry {\n\tDefinePropertyOrThrow({}, '', { '[[Get]]': function () {} });\n} catch (e) {\n\t// Accessor properties aren't supported\n\tDefinePropertyOrThrow = null;\n}\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isconstructor\n\nif (DefinePropertyOrThrow && $construct) {\n\tvar isConstructorMarker = {};\n\tvar badArrayLike = {};\n\tDefinePropertyOrThrow(badArrayLike, 'length', {\n\t\t'[[Get]]': function () {\n\t\t\tthrow isConstructorMarker;\n\t\t},\n\t\t'[[Enumerable]]': true\n\t});\n\n\tmodule.exports = function IsConstructor(argument) {\n\t\ttry {\n\t\t\t// `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`:\n\t\t\t$construct(argument, badArrayLike);\n\t\t} catch (err) {\n\t\t\treturn err === isConstructorMarker;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function IsConstructor(argument) {\n\t\t// unfortunately there's no way to truly check this without try/catch `new argument` in old environments\n\t\treturn typeof argument === 'function' && !!argument.prototype;\n\t};\n}\n\n\n/***/ }),\n/* 315 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar isPropertyDescriptor = __webpack_require__(316);\nvar DefineOwnProperty = __webpack_require__(203);\n\nvar FromPropertyDescriptor = __webpack_require__(204);\nvar IsAccessorDescriptor = __webpack_require__(317);\nvar IsDataDescriptor = __webpack_require__(205);\nvar IsPropertyKey = __webpack_require__(122);\nvar SameValue = __webpack_require__(206);\nvar ToPropertyDescriptor = __webpack_require__(207);\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow\n\nmodule.exports = function DefinePropertyOrThrow(O, P, desc) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\n\tvar Desc = isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, desc) ? desc : ToPropertyDescriptor(desc);\n\tif (!isPropertyDescriptor({\n\t\tType: Type,\n\t\tIsDataDescriptor: IsDataDescriptor,\n\t\tIsAccessorDescriptor: IsAccessorDescriptor\n\t}, Desc)) {\n\t\tthrow new $TypeError('Assertion failed: Desc is not a valid Property Descriptor');\n\t}\n\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\tDesc\n\t);\n};\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar has = __webpack_require__(81);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function IsPropertyDescriptor(ES, Desc) {\n\tif (ES.Type(Desc) !== 'Object') {\n\t\treturn false;\n\t}\n\tvar allowed = {\n\t\t'[[Configurable]]': true,\n\t\t'[[Enumerable]]': true,\n\t\t'[[Get]]': true,\n\t\t'[[Set]]': true,\n\t\t'[[Value]]': true,\n\t\t'[[Writable]]': true\n\t};\n\n\tfor (var key in Desc) { // eslint-disable-line no-restricted-syntax\n\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tif (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {\n\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t}\n\treturn true;\n};\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = __webpack_require__(81);\n\nvar assertRecord = __webpack_require__(179);\n\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor\n\nmodule.exports = function IsAccessorDescriptor(Desc) {\n\tif (typeof Desc === 'undefined') {\n\t\treturn false;\n\t}\n\n\tassertRecord(Type, 'Property Descriptor', 'Desc', Desc);\n\n\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.11\n\nmodule.exports = __webpack_require__(209);\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Math = GetIntrinsic('%Math%');\n\nvar $floor = $Math.floor;\nvar $abs = $Math.abs;\n\nvar $isNaN = __webpack_require__(180);\nvar $isFinite = __webpack_require__(210);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isinteger\n\nmodule.exports = function IsInteger(argument) {\n\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\treturn false;\n\t}\n\tvar abs = $abs(argument);\n\treturn $floor(abs) === abs;\n};\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar MAX_SAFE_INTEGER = __webpack_require__(211);\n\nvar Call = __webpack_require__(321);\nvar CreateDataPropertyOrThrow = __webpack_require__(322);\nvar Get = __webpack_require__(177);\nvar HasProperty = __webpack_require__(329);\nvar IsArray = __webpack_require__(178);\nvar ToLength = __webpack_require__(213);\nvar ToString = __webpack_require__(339);\n\n// https://ecma-international.org/ecma-262/10.0/#sec-flattenintoarray\n\n// eslint-disable-next-line max-params, max-statements\nmodule.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) {\n\tvar mapperFunction;\n\tif (arguments.length > 5) {\n\t\tmapperFunction = arguments[5];\n\t}\n\n\tvar targetIndex = start;\n\tvar sourceIndex = 0;\n\twhile (sourceIndex < sourceLen) {\n\t\tvar P = ToString(sourceIndex);\n\t\tvar exists = HasProperty(source, P);\n\t\tif (exists === true) {\n\t\t\tvar element = Get(source, P);\n\t\t\tif (typeof mapperFunction !== 'undefined') {\n\t\t\t\tif (arguments.length <= 6) {\n\t\t\t\t\tthrow new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided');\n\t\t\t\t}\n\t\t\t\telement = Call(mapperFunction, arguments[6], [element, sourceIndex, source]);\n\t\t\t}\n\t\t\tvar shouldFlatten = false;\n\t\t\tif (depth > 0) {\n\t\t\t\tshouldFlatten = IsArray(element);\n\t\t\t}\n\t\t\tif (shouldFlatten) {\n\t\t\t\tvar elementLen = ToLength(Get(element, 'length'));\n\t\t\t\ttargetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1);\n\t\t\t} else {\n\t\t\t\tif (targetIndex >= MAX_SAFE_INTEGER) {\n\t\t\t\t\tthrow new $TypeError('index too large');\n\t\t\t\t}\n\t\t\t\tCreateDataPropertyOrThrow(target, ToString(targetIndex), element);\n\t\t\t\ttargetIndex += 1;\n\t\t\t}\n\t\t}\n\t\tsourceIndex += 1;\n\t}\n\n\treturn targetIndex;\n};\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\nvar callBound = __webpack_require__(134);\n\nvar $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%');\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-call\n\nmodule.exports = function Call(F, V) {\n\tvar args = arguments.length > 2 ? arguments[2] : [];\n\treturn $apply(F, V, args);\n};\n\n\n/***/ }),\n/* 322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar CreateDataProperty = __webpack_require__(323);\nvar IsPropertyKey = __webpack_require__(122);\nvar Type = __webpack_require__(80);\n\n// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\nmodule.exports = function CreateDataPropertyOrThrow(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\tvar success = CreateDataProperty(O, P, V);\n\tif (!success) {\n\t\tthrow new $TypeError('unable to create data property');\n\t}\n\treturn success;\n};\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar DefineOwnProperty = __webpack_require__(203);\n\nvar FromPropertyDescriptor = __webpack_require__(204);\nvar OrdinaryGetOwnProperty = __webpack_require__(324);\nvar IsDataDescriptor = __webpack_require__(205);\nvar IsExtensible = __webpack_require__(328);\nvar IsPropertyKey = __webpack_require__(122);\nvar SameValue = __webpack_require__(206);\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-createdataproperty\n\nmodule.exports = function CreateDataProperty(O, P, V) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t}\n\tvar oldDesc = OrdinaryGetOwnProperty(O, P);\n\tvar extensible = !oldDesc || IsExtensible(O);\n\tvar immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']);\n\tif (immutable || !extensible) {\n\t\treturn false;\n\t}\n\treturn DefineOwnProperty(\n\t\tIsDataDescriptor,\n\t\tSameValue,\n\t\tFromPropertyDescriptor,\n\t\tO,\n\t\tP,\n\t\t{\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Value]]': V,\n\t\t\t'[[Writable]]': true\n\t\t}\n\t);\n};\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $gOPD = __webpack_require__(325);\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar callBound = __webpack_require__(134);\n\nvar $isEnumerable = callBound('Object.prototype.propertyIsEnumerable');\n\nvar has = __webpack_require__(81);\n\nvar IsArray = __webpack_require__(178);\nvar IsPropertyKey = __webpack_require__(122);\nvar IsRegExp = __webpack_require__(326);\nvar ToPropertyDescriptor = __webpack_require__(207);\nvar Type = __webpack_require__(80);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty\n\nmodule.exports = function OrdinaryGetOwnProperty(O, P) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: O must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: P must be a Property Key');\n\t}\n\tif (!has(O, P)) {\n\t\treturn void 0;\n\t}\n\tif (!$gOPD) {\n\t\t// ES3 / IE 8 fallback\n\t\tvar arrayLength = IsArray(O) && P === 'length';\n\t\tvar regexLastIndex = IsRegExp(O) && P === 'lastIndex';\n\t\treturn {\n\t\t\t'[[Configurable]]': !(arrayLength || regexLastIndex),\n\t\t\t'[[Enumerable]]': $isEnumerable(O, P),\n\t\t\t'[[Value]]': O[P],\n\t\t\t'[[Writable]]': true\n\t\t};\n\t}\n\treturn ToPropertyDescriptor($gOPD(O, P));\n};\n\n\n/***/ }),\n/* 325 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%');\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n\n\n/***/ }),\n/* 326 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $match = GetIntrinsic('%Symbol.match%', true);\n\nvar hasRegExpMatcher = __webpack_require__(327);\n\nvar ToBoolean = __webpack_require__(208);\n\n// https://ecma-international.org/ecma-262/6.0/#sec-isregexp\n\nmodule.exports = function IsRegExp(argument) {\n\tif (!argument || typeof argument !== 'object') {\n\t\treturn false;\n\t}\n\tif ($match) {\n\t\tvar isRegExp = argument[$match];\n\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\treturn ToBoolean(isRegExp);\n\t\t}\n\t}\n\treturn hasRegExpMatcher(argument);\n};\n\n\n/***/ }),\n/* 327 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasSymbols = __webpack_require__(201)();\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar regexExec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\tregexExec = Function.call.bind(RegExp.prototype.exec);\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\tregexExec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn toStr.call(value) === regexClass;\n\t};\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Object = GetIntrinsic('%Object%');\n\nvar isPrimitive = __webpack_require__(212);\n\nvar $preventExtensions = $Object.preventExtensions;\nvar $isExtensible = $Object.isExtensible;\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-isextensible-o\n\nmodule.exports = $preventExtensions\n\t? function IsExtensible(obj) {\n\t\treturn !isPrimitive(obj) && $isExtensible(obj);\n\t}\n\t: function IsExtensible(obj) {\n\t\treturn !isPrimitive(obj);\n\t};\n\n\n/***/ }),\n/* 329 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar IsPropertyKey = __webpack_require__(122);\nvar Type = __webpack_require__(80);\n\n// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\nmodule.exports = function HasProperty(O, P) {\n\tif (Type(O) !== 'Object') {\n\t\tthrow new $TypeError('Assertion failed: `O` must be an Object');\n\t}\n\tif (!IsPropertyKey(P)) {\n\t\tthrow new $TypeError('Assertion failed: `P` must be a Property Key');\n\t}\n\treturn P in O;\n};\n\n\n/***/ }),\n/* 330 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Math = GetIntrinsic('%Math%');\n\nvar ToNumber = __webpack_require__(331);\nvar $isNaN = __webpack_require__(180);\nvar $isFinite = __webpack_require__(210);\nvar $sign = __webpack_require__(332);\n\nvar $floor = $Math.floor;\nvar $abs = $Math.abs;\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.4\n\nmodule.exports = function ToInteger(value) {\n\tvar number = ToNumber(value);\n\tif ($isNaN(number)) { return 0; }\n\tif (number === 0 || !$isFinite(number)) { return number; }\n\treturn $sign(number) * $floor($abs(number));\n};\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.3\n\nmodule.exports = function ToNumber(value) {\n\treturn +value; // eslint-disable-line no-implicit-coercion\n};\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n\n\n/***/ }),\n/* 333 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $Number = GetIntrinsic('%Number%');\nvar $RegExp = GetIntrinsic('%RegExp%');\nvar $parseInteger = GetIntrinsic('%parseInt%');\n\nvar callBound = __webpack_require__(134);\nvar regexTester = __webpack_require__(334);\nvar isPrimitive = __webpack_require__(212);\n\nvar $strSlice = callBound('String.prototype.slice');\nvar isBinary = regexTester(/^0b[01]+$/i);\nvar isOctal = regexTester(/^0o[0-7]+$/i);\nvar isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = regexTester(nonWSregex);\n\n// whitespace from: https://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar $replace = callBound('String.prototype.replace');\nvar $trim = function (value) {\n\treturn $replace(value, trimRegex, '');\n};\n\nvar ToPrimitive = __webpack_require__(335);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n\nmodule.exports = function ToNumber(argument) {\n\tvar value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number);\n\tif (typeof value === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t}\n\tif (typeof value === 'string') {\n\t\tif (isBinary(value)) {\n\t\t\treturn ToNumber($parseInteger($strSlice(value, 2), 2));\n\t\t} else if (isOctal(value)) {\n\t\t\treturn ToNumber($parseInteger($strSlice(value, 2), 8));\n\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\treturn NaN;\n\t\t} else {\n\t\t\tvar trimmed = $trim(value);\n\t\t\tif (trimmed !== value) {\n\t\t\t\treturn ToNumber(trimmed);\n\t\t\t}\n\t\t}\n\t}\n\treturn $Number(value);\n};\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $test = GetIntrinsic('RegExp.prototype.test');\n\nvar callBind = __webpack_require__(176);\n\nmodule.exports = function regexTester(regex) {\n\treturn callBind($test, regex);\n};\n\n\n/***/ }),\n/* 335 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toPrimitive = __webpack_require__(336);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\n\nmodule.exports = function ToPrimitive(input) {\n\tif (arguments.length > 1) {\n\t\treturn toPrimitive(input, arguments[1]);\n\t}\n\treturn toPrimitive(input);\n};\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = __webpack_require__(337);\nvar isCallable = __webpack_require__(209);\nvar isDate = __webpack_require__(215);\nvar isSymbol = __webpack_require__(181);\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n\n\n/***/ }),\n/* 337 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar origSymbol = global.Symbol;\nvar hasSymbolSham = __webpack_require__(216);\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(121)))\n\n/***/ }),\n/* 339 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $String = GetIntrinsic('%String%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-tostring\n\nmodule.exports = function ToString(argument) {\n\tif (typeof argument === 'symbol') {\n\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t}\n\treturn $String(argument);\n};\n\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $Object = GetIntrinsic('%Object%');\n\nvar RequireObjectCoercible = __webpack_require__(341);\n\n// https://www.ecma-international.org/ecma-262/6.0/#sec-toobject\n\nmodule.exports = function ToObject(value) {\n\tRequireObjectCoercible(value);\n\treturn $Object(value);\n};\n\n\n/***/ }),\n/* 341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(342);\n\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(49);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\n// http://www.ecma-international.org/ecma-262/5.1/#sec-9.10\n\nmodule.exports = function CheckObjectCoercible(value, optMessage) {\n\tif (value == null) {\n\t\tthrow new $TypeError(optMessage || ('Cannot call method on ' + value));\n\t}\n\treturn value;\n};\n\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\nvar getPolyfill = __webpack_require__(217);\n\nmodule.exports = function shimFlat() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tArray.prototype,\n\t\t{ flat: polyfill },\n\t\t{ flat: function () { return Array.prototype.flat !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 344 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar define = __webpack_require__(93);\nvar isSymbol = __webpack_require__(181);\n\nvar globalKey = '__ global cache key __';\n/* istanbul ignore else */\n// eslint-disable-next-line no-restricted-properties\nif (typeof Symbol === 'function' && isSymbol(Symbol('foo')) && typeof Symbol['for'] === 'function') {\n\t// eslint-disable-next-line no-restricted-properties\n\tglobalKey = Symbol['for'](globalKey);\n}\n\nvar trueThunk = function () {\n\treturn true;\n};\n\nvar ensureCache = function ensureCache() {\n\tif (!global[globalKey]) {\n\t\tvar properties = {};\n\t\tproperties[globalKey] = {};\n\t\tvar predicates = {};\n\t\tpredicates[globalKey] = trueThunk;\n\t\tdefine(global, properties, predicates);\n\t}\n\treturn global[globalKey];\n};\n\nvar cache = ensureCache();\n\nvar isPrimitive = function isPrimitive(val) {\n\treturn val === null || (typeof val !== 'object' && typeof val !== 'function');\n};\n\nvar getPrimitiveKey = function getPrimitiveKey(val) {\n\tif (isSymbol(val)) {\n\t\treturn Symbol.prototype.valueOf.call(val);\n\t}\n\treturn typeof val + ' | ' + String(val);\n};\n\nvar requirePrimitiveKey = function requirePrimitiveKey(val) {\n\tif (!isPrimitive(val)) {\n\t\tthrow new TypeError('key must not be an object');\n\t}\n};\n\nvar globalCache = {\n\tclear: function clear() {\n\t\tdelete global[globalKey];\n\t\tcache = ensureCache();\n\t},\n\n\t'delete': function deleteKey(key) {\n\t\trequirePrimitiveKey(key);\n\t\tdelete cache[getPrimitiveKey(key)];\n\t\treturn !globalCache.has(key);\n\t},\n\n\tget: function get(key) {\n\t\trequirePrimitiveKey(key);\n\t\treturn cache[getPrimitiveKey(key)];\n\t},\n\n\thas: function has(key) {\n\t\trequirePrimitiveKey(key);\n\t\treturn getPrimitiveKey(key) in cache;\n\t},\n\n\tset: function set(key, value) {\n\t\trequirePrimitiveKey(key);\n\t\tvar primitiveKey = getPrimitiveKey(key);\n\t\tvar props = {};\n\t\tprops[primitiveKey] = value;\n\t\tvar predicates = {};\n\t\tpredicates[primitiveKey] = trueThunk;\n\t\tdefine(cache, props, predicates);\n\t\treturn globalCache.has(key);\n\t},\n\n\tsetIfMissingThenGet: function setIfMissingThenGet(key, valueThunk) {\n\t\tif (globalCache.has(key)) {\n\t\t\treturn globalCache.get(key);\n\t\t}\n\t\tvar item = valueThunk();\n\t\tglobalCache.set(key, item);\n\t\treturn item;\n\t}\n};\n\nmodule.exports = globalCache;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(121)))\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar GLOBAL_CACHE_KEY = 'reactWithStylesInterfaceCSS';\nvar MAX_SPECIFICITY = 20;\n\nexports.GLOBAL_CACHE_KEY = GLOBAL_CACHE_KEY;\nexports.MAX_SPECIFICITY = MAX_SPECIFICITY;\n\n/***/ }),\n/* 346 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getClassName;\n/**\n * Construct a class name.\n *\n * namespace {String} Used to construct unique class names.\n * styleName {String} Name identifying the specific style.\n *\n * Return the class name.\n */\nfunction getClassName(namespace, styleName) {\n  var namespaceSegment = namespace.length > 0 ? String(namespace) + '__' : '';\n  return '' + namespaceSegment + String(styleName);\n}\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n// This function takes an array of styles and separates them into styles that\n// are handled by Aphrodite and inline styles.\nfunction separateStyles(stylesArray) {\n  var classNames = [];\n\n  // Since determining if an Object is empty requires collecting all of its\n  // keys, and we want the best performance in this code because we are in the\n  // render path, we are going to do a little bookkeeping ourselves.\n  var hasInlineStyles = false;\n  var inlineStyles = {};\n\n  // This is run on potentially every node in the tree when rendering, where\n  // performance is critical. Normally we would prefer using `forEach`, but\n  // old-fashioned for loops are faster so that's what we have chosen here.\n  for (var i = 0; i < stylesArray.length; i++) {\n    // eslint-disable-line no-plusplus\n    var style = stylesArray[i];\n\n    // If this  style is falsy, we just want to disregard it. This allows for\n    // syntax like:\n    //\n    //   css(isFoo && styles.foo)\n    if (style) {\n      if (typeof style === 'string') {\n        classNames.push(style);\n      } else {\n        Object.assign(inlineStyles, style);\n        hasInlineStyles = true;\n      }\n    }\n  }\n\n  return {\n    classNames: classNames,\n    hasInlineStyles: hasInlineStyles,\n    inlineStyles: inlineStyles\n  };\n}\n\nexports['default'] = separateStyles;\n\n/***/ }),\n/* 348 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = registerInterfaceWithDefaultTheme;\n\nvar _ThemedStyleSheet = __webpack_require__(218);\n\nvar _ThemedStyleSheet2 = _interopRequireDefault(_ThemedStyleSheet);\n\nvar _DefaultTheme = __webpack_require__(219);\n\nvar _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction registerInterfaceWithDefaultTheme(reactWithStylesInterface) {\n  _ThemedStyleSheet2['default'].registerInterface(reactWithStylesInterface);\n  _ThemedStyleSheet2['default'].registerTheme(_DefaultTheme2['default']);\n}\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\nvar getPolyfill = __webpack_require__(221);\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar moment = __webpack_require__(43);\n\nfunction isValidMoment(testMoment) {\n  if (typeof moment.isMoment === 'function' && !moment.isMoment(testMoment)) {\n    return false;\n  }\n\n  /* istanbul ignore else  */\n  if (typeof testMoment.isValid === 'function') {\n    // moment 1.7.0+\n    return testMoment.isValid();\n  }\n\n  /* istanbul ignore next */\n  return !isNaN(testMoment);\n}\n\nmodule.exports = {\n  isValidMoment : isValidMoment,\n};\n\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports) {\n\nvar messages = {\n  invalidPredicate: '`predicate` must be a function',\n  invalidPropValidator: '`propValidator` must be a function',\n  requiredCore: 'is marked as required',\n  invalidTypeCore: 'Invalid input type',\n  predicateFailureCore: 'Failed to succeed with predicate',\n  anonymousMessage: '<<anonymous>>',\n  baseInvalidMessage: 'Invalid ',\n};\n\nfunction constructPropValidatorVariations(propValidator) {\n  if (typeof propValidator !== 'function') {\n    throw new Error(messages.invalidPropValidator);\n  }\n\n  var requiredPropValidator = propValidator.bind(null, false, null);\n  requiredPropValidator.isRequired = propValidator.bind(null, true, null);\n\n  requiredPropValidator.withPredicate = function predicateApplication(predicate) {\n    if (typeof predicate !== 'function') {\n      throw new Error(messages.invalidPredicate);\n    }\n    var basePropValidator = propValidator.bind(null, false, predicate);\n    basePropValidator.isRequired = propValidator.bind(null, true, predicate);\n    return basePropValidator;\n  };\n\n  return requiredPropValidator;\n}\n\nfunction createInvalidRequiredErrorMessage(propName, componentName, value) {\n  return new Error(\n    'The prop `' + propName + '` ' + messages.requiredCore +\n    ' in `' + componentName + '`, but its value is `' + value + '`.'\n  );\n}\n\nvar independentGuardianValue = -1;\n\nfunction preValidationRequireCheck(isRequired, componentName, propFullName, propValue) {\n  var isPropValueUndefined = typeof propValue === 'undefined';\n  var isPropValueNull = propValue === null;\n\n  if (isRequired) {\n    if (isPropValueUndefined) {\n      return createInvalidRequiredErrorMessage(propFullName, componentName, 'undefined');\n    } else if (isPropValueNull) {\n      return createInvalidRequiredErrorMessage(propFullName, componentName, 'null');\n    }\n  }\n\n  if (isPropValueUndefined || isPropValueNull) {\n    return null;\n  }\n\n  return independentGuardianValue;\n}\n\nfunction createMomentChecker(type, typeValidator, validator, momentType) {\n\n  function propValidator(\n    isRequired, // Bound parameter to indicate with the propType is required\n    predicate, // Bound parameter to allow user to add dynamic validation\n    props,\n    propName,\n    componentName,\n    location,\n    propFullName\n  ) {\n    var propValue = props[ propName ];\n    var propType = typeof propValue;\n\n    componentName = componentName || messages.anonymousMessage;\n    propFullName = propFullName || propName;\n\n    var preValidationRequireCheckValue = preValidationRequireCheck(\n      isRequired, componentName, propFullName, propValue\n    );\n\n    if (preValidationRequireCheckValue !== independentGuardianValue) {\n      return preValidationRequireCheckValue;\n    }\n\n    if (typeValidator && !typeValidator(propValue)) {\n      return new Error(\n        messages.invalidTypeCore + ': `' + propName + '` of type `' + propType + '` ' +\n        'supplied to `' + componentName + '`, expected `' + type + '`.'\n      );\n    }\n\n    if (!validator(propValue)) {\n      return new Error(\n        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +\n        'supplied to `' + componentName + '`, expected `' + momentType + '`.'\n      );\n    }\n\n    if (predicate && !predicate(propValue)) {\n      var predicateName = predicate.name || messages.anonymousMessage;\n      return new Error(\n        messages.baseInvalidMessage + location + ' `' + propName + '` of type `' + propType + '` ' +\n        'supplied to `' + componentName + '`. ' + messages.predicateFailureCore + ' `' +\n        predicateName + '`.'\n      );\n    }\n\n    return null;\n\n  }\n\n  return constructPropValidatorVariations(propValidator);\n\n}\n\nmodule.exports = {\n  constructPropValidatorVariations: constructPropValidatorVariations,\n  createMomentChecker: createMomentChecker,\n  messages: messages,\n};\n\n\n/***/ }),\n/* 352 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction noop() {\n  return null;\n}\n\nnoop.isRequired = noop;\n\nfunction noopThunk() {\n  return noop;\n}\n\nmodule.exports = {\n  and: noopThunk,\n  between: noopThunk,\n  booleanSome: noopThunk,\n  childrenHavePropXorChildren: noopThunk,\n  childrenOf: noopThunk,\n  childrenOfType: noopThunk,\n  childrenSequenceOf: noopThunk,\n  componentWithName: noopThunk,\n  disallowedIf: noopThunk,\n  elementType: noopThunk,\n  empty: noopThunk,\n  explicitNull: noopThunk,\n  forbidExtraProps: Object,\n  integer: noopThunk,\n  keysOf: noopThunk,\n  mutuallyExclusiveProps: noopThunk,\n  mutuallyExclusiveTrueProps: noopThunk,\n  nChildren: noopThunk,\n  nonNegativeInteger: noop,\n  nonNegativeNumber: noopThunk,\n  numericString: noopThunk,\n  object: noopThunk,\n  or: noopThunk,\n  predicate: noopThunk,\n  range: noopThunk,\n  ref: noopThunk,\n  requiredBy: noopThunk,\n  restrictedProp: noopThunk,\n  sequenceOf: noopThunk,\n  shape: noopThunk,\n  stringEndsWith: noopThunk,\n  stringStartsWith: noopThunk,\n  uniqueArray: noopThunk,\n  uniqueArrayOf: noopThunk,\n  valuesOf: noopThunk,\n  withShape: noopThunk\n};\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(354);\n\n\n/***/ }),\n/* 354 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar ES2015 = __webpack_require__(355);\nvar assign = __webpack_require__(228);\n\nvar ES2016 = assign(assign({}, ES2015), {\n\t// https://github.com/tc39/ecma262/pull/60\n\tSameValueNonNumber: function SameValueNonNumber(x, y) {\n\t\tif (typeof x === 'number' || typeof x !== typeof y) {\n\t\t\tthrow new TypeError('SameValueNonNumber requires two non-number values of the same type.');\n\t\t}\n\t\treturn this.SameValue(x, y);\n\t}\n});\n\nmodule.exports = ES2016;\n\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = __webpack_require__(81);\nvar toPrimitive = __webpack_require__(356);\nvar keys = __webpack_require__(175);\n\nvar GetIntrinsic = __webpack_require__(183);\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $Array = GetIntrinsic('%Array%');\nvar $String = GetIntrinsic('%String%');\nvar $Object = GetIntrinsic('%Object%');\nvar $Number = GetIntrinsic('%Number%');\nvar $Symbol = GetIntrinsic('%Symbol%', true);\nvar $RegExp = GetIntrinsic('%RegExp%');\n\nvar hasSymbols = !!$Symbol;\n\nvar assertRecord = __webpack_require__(225);\nvar $isNaN = __webpack_require__(226);\nvar $isFinite = __webpack_require__(227);\nvar MAX_SAFE_INTEGER = $Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = __webpack_require__(228);\nvar sign = __webpack_require__(229);\nvar mod = __webpack_require__(230);\nvar isPrimitive = __webpack_require__(358);\nvar parseInteger = parseInt;\nvar bind = __webpack_require__(113);\nvar arraySlice = bind.call(Function.call, $Array.prototype.slice);\nvar strSlice = bind.call(Function.call, $String.prototype.slice);\nvar isBinary = bind.call(Function.call, $RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, $RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, $RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new $RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, $RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, $RegExp.prototype.test, invalidHexLiteral);\nvar $charCodeAt = bind.call(Function.call, $String.prototype.charCodeAt);\n\nvar toStr = bind.call(Function.call, Object.prototype.toString);\n\nvar $NumberValueOf = bind.call(Function.call, GetIntrinsic('%NumberPrototype%').valueOf);\nvar $BooleanValueOf = bind.call(Function.call, GetIntrinsic('%BooleanPrototype%').valueOf);\nvar $StringValueOf = bind.call(Function.call, GetIntrinsic('%StringPrototype%').valueOf);\nvar $DateValueOf = bind.call(Function.call, GetIntrinsic('%DatePrototype%').valueOf);\n\nvar $floor = Math.floor;\nvar $abs = Math.abs;\n\nvar $ObjectCreate = Object.create;\nvar $gOPD = $Object.getOwnPropertyDescriptor;\n\nvar $isExtensible = $Object.isExtensible;\n\nvar $defineProperty = $Object.defineProperty;\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, $String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = __webpack_require__(359);\n\nvar hasRegExpMatcher = __webpack_require__(361);\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new $TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, $Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn $Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * $floor($abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = $floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new $TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn $String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, $String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr(argument) !== '[object String]') {\n\t\t\tthrow new $TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: $Array.isArray || function IsArray(argument) {\n\t\treturn toStr(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: Object.preventExtensions\n\t\t? function IsExtensible(obj) {\n\t\t\tif (isPrimitive(obj)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn $isExtensible(obj);\n\t\t}\n\t\t: function isExtensible(obj) { return true; }, // eslint-disable-line no-unused-vars\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = $abs(argument);\n\t\treturn $floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[$Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new $TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new $TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && $Symbol.species ? C[$Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new $TypeError('no constructor found');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof $Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-getiterator\n\tGetIterator: function GetIterator(obj, method) {\n\t\tif (!hasSymbols) {\n\t\t\tthrow new SyntaxError('ES.GetIterator depends on native iterator support.');\n\t\t}\n\n\t\tvar actualMethod = method;\n\t\tif (arguments.length < 2) {\n\t\t\tactualMethod = this.GetMethod(obj, $Symbol.iterator);\n\t\t}\n\t\tvar iterator = this.Call(actualMethod, obj);\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator must return an object');\n\t\t}\n\n\t\treturn iterator;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext\n\tIteratorNext: function IteratorNext(iterator, value) {\n\t\tvar result = this.Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]);\n\t\tif (this.Type(result) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator next must return an object');\n\t\t}\n\t\treturn result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete\n\tIteratorComplete: function IteratorComplete(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.ToBoolean(this.Get(iterResult, 'done'));\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue\n\tIteratorValue: function IteratorValue(iterResult) {\n\t\tif (this.Type(iterResult) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterResult) is not Object');\n\t\t}\n\t\treturn this.Get(iterResult, 'value');\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep\n\tIteratorStep: function IteratorStep(iterator) {\n\t\tvar result = this.IteratorNext(iterator);\n\t\tvar done = this.IteratorComplete(result);\n\t\treturn done === true ? false : result;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose\n\tIteratorClose: function IteratorClose(iterator, completion) {\n\t\tif (this.Type(iterator) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(iterator) is not Object');\n\t\t}\n\t\tif (!this.IsCallable(completion)) {\n\t\t\tthrow new $TypeError('Assertion failed: completion is not a thunk for a Completion Record');\n\t\t}\n\t\tvar completionThunk = completion;\n\n\t\tvar iteratorReturn = this.GetMethod(iterator, 'return');\n\n\t\tif (typeof iteratorReturn === 'undefined') {\n\t\t\treturn completionThunk();\n\t\t}\n\n\t\tvar completionRecord;\n\t\ttry {\n\t\t\tvar innerResult = this.Call(iteratorReturn, iterator, []);\n\t\t} catch (e) {\n\t\t\t// if we hit here, then \"e\" is the innerResult completion that needs re-throwing\n\n\t\t\t// if the completion is of type \"throw\", this will throw.\n\t\t\tcompletionRecord = completionThunk();\n\t\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\t\t// if not, then return the innerResult completion\n\t\t\tthrow e;\n\t\t}\n\t\tcompletionRecord = completionThunk(); // if innerResult worked, then throw if the completion does\n\t\tcompletionThunk = null; // ensure it's not called twice.\n\n\t\tif (this.Type(innerResult) !== 'Object') {\n\t\t\tthrow new $TypeError('iterator .return must return an object');\n\t\t}\n\n\t\treturn completionRecord;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new $TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new $TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && $Symbol.species) {\n\t\t\t\tC = this.Get(C, $Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn $Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new $TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = $gOPD(O, P);\n\t\tvar extensible = oldDesc || (typeof $isExtensible !== 'function' || $isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\t$defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new $TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-objectcreate\n\tObjectCreate: function ObjectCreate(proto, internalSlotsList) {\n\t\tif (proto !== null && this.Type(proto) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: proto must be null or an object');\n\t\t}\n\t\tvar slots = arguments.length < 2 ? [] : internalSlotsList;\n\t\tif (slots.length > 0) {\n\t\t\tthrow new $SyntaxError('es-abstract does not yet support internal slots');\n\t\t}\n\n\t\tif (proto === null && !$ObjectCreate) {\n\t\t\tthrow new $SyntaxError('native Object.create support is required to create null objects');\n\t\t}\n\n\t\treturn $ObjectCreate(proto);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new $TypeError('S must be a String');\n\t\t}\n\t\tif (!this.IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new $TypeError('Assertion failed: length must be an integer >= 0 and <= 2**53');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new $TypeError('Assertion failed: unicode must be a Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar first = $charCodeAt(S, index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\tvar second = $charCodeAt(S, index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\n\t\treturn index + 2;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-createmethodproperty\n\tCreateMethodProperty: function CreateMethodProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\treturn !!$defineProperty(O, P, newDesc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow\n\tDefinePropertyOrThrow: function DefinePropertyOrThrow(O, P, desc) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\treturn !!$defineProperty(O, P, desc);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow\n\tDeletePropertyOrThrow: function DeletePropertyOrThrow(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new $TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\tvar success = delete O[P];\n\t\tif (!success) {\n\t\t\tthrow new TypeError('Attempt to delete property failed.');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/6.0/#sec-enumerableownnames\n\tEnumerableOwnNames: function EnumerableOwnNames(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new $TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\n\t\treturn keys(O);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object\n\tthisNumberValue: function thisNumberValue(value) {\n\t\tif (this.Type(value) === 'Number') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $NumberValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object\n\tthisBooleanValue: function thisBooleanValue(value) {\n\t\tif (this.Type(value) === 'Boolean') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $BooleanValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object\n\tthisStringValue: function thisStringValue(value) {\n\t\tif (this.Type(value) === 'String') {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn $StringValueOf(value);\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object\n\tthisTimeValue: function thisTimeValue(value) {\n\t\treturn $DateValueOf(value);\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n\n\n/***/ }),\n/* 356 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(357);\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = __webpack_require__(224);\nvar isCallable = __webpack_require__(182);\nvar isDate = __webpack_require__(215);\nvar isSymbol = __webpack_require__(181);\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n\treturn void 0;\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (arguments[1] === String) {\n\t\t\thint = 'string';\n\t\t} else if (arguments[1] === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n\n\n/***/ }),\n/* 358 */\n/***/ (function(module, exports) {\n\nmodule.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar GetIntrinsic = __webpack_require__(183);\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\n\nvar assertRecord = __webpack_require__(225);\nvar $isNaN = __webpack_require__(226);\nvar $isFinite = __webpack_require__(227);\n\nvar sign = __webpack_require__(229);\nvar mod = __webpack_require__(230);\n\nvar IsCallable = __webpack_require__(182);\nvar toPrimitive = __webpack_require__(360);\n\nvar has = __webpack_require__(81);\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn +value; // eslint-disable-line no-implicit-coercion\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn $String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn $Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new $TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// https://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tassertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new $TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new $TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n\n\n/***/ }),\n/* 360 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = __webpack_require__(224);\n\nvar isCallable = __webpack_require__(182);\n\n// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O) {\n\t\tvar actualHint;\n\t\tif (arguments.length > 1) {\n\t\t\tactualHint = arguments[1];\n\t\t} else {\n\t\t\tactualHint = toStr.call(O) === '[object Date]' ? String : Number;\n\t\t}\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// http://ecma-international.org/ecma-262/5.1/#sec-9.1\nmodule.exports = function ToPrimitive(input) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tif (arguments.length > 1) {\n\t\treturn ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input);\n};\n\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = __webpack_require__(81);\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n\n\n/***/ }),\n/* 362 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar getPolyfill = __webpack_require__(231);\nvar define = __webpack_require__(93);\n\nmodule.exports = function shimValues() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { values: polyfill }, {\n\t\tvalues: function testValues() {\n\t\t\treturn Object.values !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getVisibleDays;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _toISOMonthString = __webpack_require__(185);\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getVisibleDays(month, numberOfMonths, enableOutsideDays, withoutTransitionMonths) {\n  if (!_moment2['default'].isMoment(month)) return {};\n\n  var visibleDaysByMonth = {};\n  var currentMonth = withoutTransitionMonths ? month.clone() : month.clone().subtract(1, 'month');\n  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {\n    var visibleDays = [];\n\n    // set utc offset to get correct dates in future (when timezone changes)\n    var baseDate = currentMonth.clone();\n    var firstOfMonth = baseDate.clone().startOf('month').hour(12);\n    var lastOfMonth = baseDate.clone().endOf('month').hour(12);\n\n    var currentDay = firstOfMonth.clone();\n\n    // days belonging to the previous month\n    if (enableOutsideDays) {\n      for (var j = 0; j < currentDay.weekday(); j += 1) {\n        var prevDay = currentDay.clone().subtract(j + 1, 'day');\n        visibleDays.unshift(prevDay);\n      }\n    }\n\n    while (currentDay < lastOfMonth) {\n      visibleDays.push(currentDay.clone());\n      currentDay.add(1, 'day');\n    }\n\n    if (enableOutsideDays) {\n      // weekday() returns the index of the day of the week according to the locale\n      // this means if the week starts on Monday, weekday() will return 0 for a Monday date, not 1\n      if (currentDay.weekday() !== 0) {\n        // days belonging to the next month\n        for (var k = currentDay.weekday(), count = 0; k < 7; k += 1, count += 1) {\n          var nextDay = currentDay.clone().add(count, 'day');\n          visibleDays.push(nextDay);\n        }\n      }\n    }\n\n    visibleDaysByMonth[(0, _toISOMonthString2['default'])(currentMonth)] = visibleDays;\n    currentMonth = currentMonth.clone().add(1, 'month');\n  }\n\n  return visibleDaysByMonth;\n}\n\n/***/ }),\n/* 364 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PureDayPicker = exports.defaultProps = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = __webpack_require__(137);\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _throttle = __webpack_require__(371);\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _isTouchDevice = __webpack_require__(232);\n\nvar _isTouchDevice2 = _interopRequireDefault(_isTouchDevice);\n\nvar _reactOutsideClickHandler = __webpack_require__(381);\n\nvar _reactOutsideClickHandler2 = _interopRequireDefault(_reactOutsideClickHandler);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarMonthGrid = __webpack_require__(385);\n\nvar _CalendarMonthGrid2 = _interopRequireDefault(_CalendarMonthGrid);\n\nvar _DayPickerNavigation = __webpack_require__(395);\n\nvar _DayPickerNavigation2 = _interopRequireDefault(_DayPickerNavigation);\n\nvar _DayPickerKeyboardShortcuts = __webpack_require__(400);\n\nvar _DayPickerKeyboardShortcuts2 = _interopRequireDefault(_DayPickerKeyboardShortcuts);\n\nvar _getNumberOfCalendarMonthWeeks = __webpack_require__(403);\n\nvar _getNumberOfCalendarMonthWeeks2 = _interopRequireDefault(_getNumberOfCalendarMonthWeeks);\n\nvar _getCalendarMonthWidth = __webpack_require__(247);\n\nvar _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);\n\nvar _calculateDimension = __webpack_require__(246);\n\nvar _calculateDimension2 = _interopRequireDefault(_calculateDimension);\n\nvar _getActiveElement = __webpack_require__(404);\n\nvar _getActiveElement2 = _interopRequireDefault(_getActiveElement);\n\nvar _isDayVisible = __webpack_require__(236);\n\nvar _isDayVisible2 = _interopRequireDefault(_isDayVisible);\n\nvar _ModifiersShape = __webpack_require__(151);\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = __webpack_require__(136);\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = __webpack_require__(150);\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _CalendarInfoPositionShape = __webpack_require__(238);\n\nvar _CalendarInfoPositionShape2 = _interopRequireDefault(_CalendarInfoPositionShape);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MONTH_PADDING = 23;\nvar PREV_TRANSITION = 'prev';\nvar NEXT_TRANSITION = 'next';\nvar MONTH_SELECTION_TRANSITION = 'month_selection';\nvar YEAR_SELECTION_TRANSITION = 'year_selection';\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n\n  // calendar presentation props\n  enableOutsideDays: _propTypes2['default'].bool,\n  numberOfMonths: _propTypes2['default'].number,\n  orientation: _ScrollableOrientationShape2['default'],\n  withPortal: _propTypes2['default'].bool,\n  onOutsideClick: _propTypes2['default'].func,\n  hidden: _propTypes2['default'].bool,\n  initialVisibleMonth: _propTypes2['default'].func,\n  firstDayOfWeek: _DayOfWeekShape2['default'],\n  renderCalendarInfo: _propTypes2['default'].func,\n  calendarInfoPosition: _CalendarInfoPositionShape2['default'],\n  hideKeyboardShortcutsPanel: _propTypes2['default'].bool,\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  isRTL: _propTypes2['default'].bool,\n  verticalHeight: _airbnbPropTypes.nonNegativeInteger,\n  noBorder: _propTypes2['default'].bool,\n  transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n\n  // navigation props\n  navPrev: _propTypes2['default'].node,\n  navNext: _propTypes2['default'].node,\n  noNavButtons: _propTypes2['default'].bool,\n  onPrevMonthClick: _propTypes2['default'].func,\n  onNextMonthClick: _propTypes2['default'].func,\n  onMonthChange: _propTypes2['default'].func,\n  onYearChange: _propTypes2['default'].func,\n  onMultiplyScrollableMonths: _propTypes2['default'].func, // VERTICAL_SCROLLABLE daypickers only\n\n  // month props\n  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n\n  // day props\n  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),\n  renderCalendarDay: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  onDayClick: _propTypes2['default'].func,\n  onDayMouseEnter: _propTypes2['default'].func,\n  onDayMouseLeave: _propTypes2['default'].func,\n\n  // accessibility props\n  isFocused: _propTypes2['default'].bool,\n  getFirstFocusableDay: _propTypes2['default'].func,\n  onBlur: _propTypes2['default'].func,\n  showKeyboardShortcuts: _propTypes2['default'].bool,\n\n  // internationalization\n  monthFormat: _propTypes2['default'].string,\n  weekDayFormat: _propTypes2['default'].string,\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerPhrases)),\n  dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = exports.defaultProps = {\n  // calendar presentation props\n  enableOutsideDays: false,\n  numberOfMonths: 2,\n  orientation: _constants.HORIZONTAL_ORIENTATION,\n  withPortal: false,\n  onOutsideClick: function () {\n    function onOutsideClick() {}\n\n    return onOutsideClick;\n  }(),\n\n  hidden: false,\n  initialVisibleMonth: function () {\n    function initialVisibleMonth() {\n      return (0, _moment2['default'])();\n    }\n\n    return initialVisibleMonth;\n  }(),\n  firstDayOfWeek: null,\n  renderCalendarInfo: null,\n  calendarInfoPosition: _constants.INFO_POSITION_BOTTOM,\n  hideKeyboardShortcutsPanel: false,\n  daySize: _constants.DAY_SIZE,\n  isRTL: false,\n  verticalHeight: null,\n  noBorder: false,\n  transitionDuration: undefined,\n  verticalBorderSpacing: undefined,\n  horizontalMonthPadding: 13,\n\n  // navigation props\n  navPrev: null,\n  navNext: null,\n  noNavButtons: false,\n  onPrevMonthClick: function () {\n    function onPrevMonthClick() {}\n\n    return onPrevMonthClick;\n  }(),\n  onNextMonthClick: function () {\n    function onNextMonthClick() {}\n\n    return onNextMonthClick;\n  }(),\n  onMonthChange: function () {\n    function onMonthChange() {}\n\n    return onMonthChange;\n  }(),\n  onYearChange: function () {\n    function onYearChange() {}\n\n    return onYearChange;\n  }(),\n  onMultiplyScrollableMonths: function () {\n    function onMultiplyScrollableMonths() {}\n\n    return onMultiplyScrollableMonths;\n  }(),\n\n\n  // month props\n  renderMonthText: null,\n  renderMonthElement: null,\n\n  // day props\n  modifiers: {},\n  renderCalendarDay: undefined,\n  renderDayContents: null,\n  onDayClick: function () {\n    function onDayClick() {}\n\n    return onDayClick;\n  }(),\n  onDayMouseEnter: function () {\n    function onDayMouseEnter() {}\n\n    return onDayMouseEnter;\n  }(),\n  onDayMouseLeave: function () {\n    function onDayMouseLeave() {}\n\n    return onDayMouseLeave;\n  }(),\n\n\n  // accessibility props\n  isFocused: false,\n  getFirstFocusableDay: null,\n  onBlur: function () {\n    function onBlur() {}\n\n    return onBlur;\n  }(),\n\n  showKeyboardShortcuts: false,\n\n  // internationalization\n  monthFormat: 'MMMM YYYY',\n  weekDayFormat: 'dd',\n  phrases: _defaultPhrases.DayPickerPhrases,\n  dayAriaLabelFormat: undefined\n};\n\nvar DayPicker = function (_React$Component) {\n  _inherits(DayPicker, _React$Component);\n\n  function DayPicker(props) {\n    _classCallCheck(this, DayPicker);\n\n    var _this = _possibleConstructorReturn(this, (DayPicker.__proto__ || Object.getPrototypeOf(DayPicker)).call(this, props));\n\n    var currentMonth = props.hidden ? (0, _moment2['default'])() : props.initialVisibleMonth();\n\n    var focusedDate = currentMonth.clone().startOf('month');\n    if (props.getFirstFocusableDay) {\n      focusedDate = props.getFirstFocusableDay(currentMonth);\n    }\n\n    var horizontalMonthPadding = props.horizontalMonthPadding;\n\n\n    var translationValue = props.isRTL && _this.isHorizontal() ? -(0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding) : 0;\n\n    _this.hasSetInitialVisibleMonth = !props.hidden;\n    _this.state = {\n      currentMonth: currentMonth,\n      monthTransition: null,\n      translationValue: translationValue,\n      scrollableMonthMultiple: 1,\n      calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(props.daySize, horizontalMonthPadding),\n      focusedDate: !props.hidden || props.isFocused ? focusedDate : null,\n      nextFocusedDate: null,\n      showKeyboardShortcuts: props.showKeyboardShortcuts,\n      onKeyboardShortcutsPanelClose: function () {\n        function onKeyboardShortcutsPanelClose() {}\n\n        return onKeyboardShortcutsPanelClose;\n      }(),\n\n      isTouchDevice: (0, _isTouchDevice2['default'])(),\n      withMouseInteractions: true,\n      calendarInfoWidth: 0,\n      monthTitleHeight: null,\n      hasSetHeight: false\n    };\n\n    _this.setCalendarMonthWeeks(currentMonth);\n\n    _this.calendarMonthGridHeight = 0;\n    _this.setCalendarInfoWidthTimeout = null;\n\n    _this.onKeyDown = _this.onKeyDown.bind(_this);\n    _this.throttledKeyDown = (0, _throttle2['default'])(_this.onFinalKeyDown, 200, { trailing: false });\n    _this.onPrevMonthClick = _this.onPrevMonthClick.bind(_this);\n    _this.onNextMonthClick = _this.onNextMonthClick.bind(_this);\n    _this.onMonthChange = _this.onMonthChange.bind(_this);\n    _this.onYearChange = _this.onYearChange.bind(_this);\n\n    _this.multiplyScrollableMonths = _this.multiplyScrollableMonths.bind(_this);\n    _this.updateStateAfterMonthTransition = _this.updateStateAfterMonthTransition.bind(_this);\n\n    _this.openKeyboardShortcutsPanel = _this.openKeyboardShortcutsPanel.bind(_this);\n    _this.closeKeyboardShortcutsPanel = _this.closeKeyboardShortcutsPanel.bind(_this);\n\n    _this.setCalendarInfoRef = _this.setCalendarInfoRef.bind(_this);\n    _this.setContainerRef = _this.setContainerRef.bind(_this);\n    _this.setTransitionContainerRef = _this.setTransitionContainerRef.bind(_this);\n    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);\n    return _this;\n  }\n\n  _createClass(DayPicker, [{\n    key: 'componentDidMount',\n    value: function () {\n      function componentDidMount() {\n        var currentMonth = this.state.currentMonth;\n\n        if (this.calendarInfo) {\n          this.setState({\n            isTouchDevice: (0, _isTouchDevice2['default'])(),\n            calendarInfoWidth: (0, _calculateDimension2['default'])(this.calendarInfo, 'width', true, true)\n          });\n        } else {\n          this.setState({ isTouchDevice: (0, _isTouchDevice2['default'])() });\n        }\n\n        this.setCalendarMonthWeeks(currentMonth);\n      }\n\n      return componentDidMount;\n    }()\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function () {\n      function componentWillReceiveProps(nextProps) {\n        var hidden = nextProps.hidden,\n            isFocused = nextProps.isFocused,\n            showKeyboardShortcuts = nextProps.showKeyboardShortcuts,\n            onBlur = nextProps.onBlur,\n            renderMonthText = nextProps.renderMonthText,\n            horizontalMonthPadding = nextProps.horizontalMonthPadding;\n        var currentMonth = this.state.currentMonth;\n\n\n        if (!hidden) {\n          if (!this.hasSetInitialVisibleMonth) {\n            this.hasSetInitialVisibleMonth = true;\n            this.setState({\n              currentMonth: nextProps.initialVisibleMonth()\n            });\n          }\n        }\n\n        var _props = this.props,\n            daySize = _props.daySize,\n            prevIsFocused = _props.isFocused,\n            prevRenderMonthText = _props.renderMonthText;\n\n\n        if (nextProps.daySize !== daySize) {\n          this.setState({\n            calendarMonthWidth: (0, _getCalendarMonthWidth2['default'])(nextProps.daySize, horizontalMonthPadding)\n          });\n        }\n\n        if (isFocused !== prevIsFocused) {\n          if (isFocused) {\n            var focusedDate = this.getFocusedDay(currentMonth);\n\n            var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;\n\n            if (nextProps.showKeyboardShortcuts) {\n              // the ? shortcut came from the input and we should return input there once it is close\n              onKeyboardShortcutsPanelClose = onBlur;\n            }\n\n            this.setState({\n              showKeyboardShortcuts: showKeyboardShortcuts,\n              onKeyboardShortcutsPanelClose: onKeyboardShortcutsPanelClose,\n              focusedDate: focusedDate,\n              withMouseInteractions: false\n            });\n          } else {\n            this.setState({ focusedDate: null });\n          }\n        }\n\n        if (renderMonthText !== prevRenderMonthText) {\n          this.setState({\n            monthTitleHeight: null\n          });\n        }\n      }\n\n      return componentWillReceiveProps;\n    }()\n  }, {\n    key: 'shouldComponentUpdate',\n    value: function () {\n      function shouldComponentUpdate(nextProps, nextState) {\n        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n      }\n\n      return shouldComponentUpdate;\n    }()\n  }, {\n    key: 'componentWillUpdate',\n    value: function () {\n      function componentWillUpdate() {\n        var _this2 = this;\n\n        var transitionDuration = this.props.transitionDuration;\n\n        // Calculating the dimensions trigger a DOM repaint which\n        // breaks the CSS transition.\n        // The setTimeout will wait until the transition ends.\n\n        if (this.calendarInfo) {\n          this.setCalendarInfoWidthTimeout = setTimeout(function () {\n            var calendarInfoWidth = _this2.state.calendarInfoWidth;\n\n            var calendarInfoPanelWidth = (0, _calculateDimension2['default'])(_this2.calendarInfo, 'width', true, true);\n            if (calendarInfoWidth !== calendarInfoPanelWidth) {\n              _this2.setState({\n                calendarInfoWidth: calendarInfoPanelWidth\n              });\n            }\n          }, transitionDuration);\n        }\n      }\n\n      return componentWillUpdate;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate(prevProps) {\n        var _props2 = this.props,\n            orientation = _props2.orientation,\n            daySize = _props2.daySize,\n            isFocused = _props2.isFocused,\n            numberOfMonths = _props2.numberOfMonths;\n        var _state = this.state,\n            focusedDate = _state.focusedDate,\n            monthTitleHeight = _state.monthTitleHeight;\n\n\n        if (this.isHorizontal() && (orientation !== prevProps.orientation || daySize !== prevProps.daySize)) {\n          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);\n          var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n          var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;\n          this.adjustDayPickerHeight(newMonthHeight);\n        }\n\n        if (!prevProps.isFocused && isFocused && !focusedDate) {\n          this.container.focus();\n        }\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'componentWillUnmount',\n    value: function () {\n      function componentWillUnmount() {\n        clearTimeout(this.setCalendarInfoWidthTimeout);\n      }\n\n      return componentWillUnmount;\n    }()\n  }, {\n    key: 'onKeyDown',\n    value: function () {\n      function onKeyDown(e) {\n        e.stopPropagation();\n        if (!_constants.MODIFIER_KEY_NAMES.has(e.key)) {\n          this.throttledKeyDown(e);\n        }\n      }\n\n      return onKeyDown;\n    }()\n  }, {\n    key: 'onFinalKeyDown',\n    value: function () {\n      function onFinalKeyDown(e) {\n        this.setState({ withMouseInteractions: false });\n\n        var _props3 = this.props,\n            onBlur = _props3.onBlur,\n            isRTL = _props3.isRTL;\n        var _state2 = this.state,\n            focusedDate = _state2.focusedDate,\n            showKeyboardShortcuts = _state2.showKeyboardShortcuts;\n\n        if (!focusedDate) return;\n\n        var newFocusedDate = focusedDate.clone();\n\n        var didTransitionMonth = false;\n\n        // focus might be anywhere when the keyboard shortcuts panel is opened so we want to\n        // return it to wherever it was before when the panel was opened\n        var activeElement = (0, _getActiveElement2['default'])();\n        var onKeyboardShortcutsPanelClose = function () {\n          function onKeyboardShortcutsPanelClose() {\n            if (activeElement) activeElement.focus();\n          }\n\n          return onKeyboardShortcutsPanelClose;\n        }();\n\n        switch (e.key) {\n          case 'ArrowUp':\n            e.preventDefault();\n            newFocusedDate.subtract(1, 'week');\n            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n            break;\n          case 'ArrowLeft':\n            e.preventDefault();\n            if (isRTL) {\n              newFocusedDate.add(1, 'day');\n            } else {\n              newFocusedDate.subtract(1, 'day');\n            }\n            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n            break;\n          case 'Home':\n            e.preventDefault();\n            newFocusedDate.startOf('week');\n            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n            break;\n          case 'PageUp':\n            e.preventDefault();\n            newFocusedDate.subtract(1, 'month');\n            didTransitionMonth = this.maybeTransitionPrevMonth(newFocusedDate);\n            break;\n\n          case 'ArrowDown':\n            e.preventDefault();\n            newFocusedDate.add(1, 'week');\n            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n            break;\n          case 'ArrowRight':\n            e.preventDefault();\n            if (isRTL) {\n              newFocusedDate.subtract(1, 'day');\n            } else {\n              newFocusedDate.add(1, 'day');\n            }\n            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n            break;\n          case 'End':\n            e.preventDefault();\n            newFocusedDate.endOf('week');\n            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n            break;\n          case 'PageDown':\n            e.preventDefault();\n            newFocusedDate.add(1, 'month');\n            didTransitionMonth = this.maybeTransitionNextMonth(newFocusedDate);\n            break;\n\n          case '?':\n            this.openKeyboardShortcutsPanel(onKeyboardShortcutsPanelClose);\n            break;\n\n          case 'Escape':\n            if (showKeyboardShortcuts) {\n              this.closeKeyboardShortcutsPanel();\n            } else {\n              onBlur();\n            }\n            break;\n\n          default:\n            break;\n        }\n\n        // If there was a month transition, do not update the focused date until the transition has\n        // completed. Otherwise, attempting to focus on a DOM node may interrupt the CSS animation. If\n        // didTransitionMonth is true, the focusedDate gets updated in #updateStateAfterMonthTransition\n        if (!didTransitionMonth) {\n          this.setState({\n            focusedDate: newFocusedDate\n          });\n        }\n      }\n\n      return onFinalKeyDown;\n    }()\n  }, {\n    key: 'onPrevMonthClick',\n    value: function () {\n      function onPrevMonthClick(nextFocusedDate, e) {\n        var _props4 = this.props,\n            daySize = _props4.daySize,\n            isRTL = _props4.isRTL,\n            numberOfMonths = _props4.numberOfMonths;\n        var _state3 = this.state,\n            calendarMonthWidth = _state3.calendarMonthWidth,\n            monthTitleHeight = _state3.monthTitleHeight;\n\n\n        if (e) e.preventDefault();\n\n        var translationValue = void 0;\n        if (this.isVertical()) {\n          var calendarMonthWeeksHeight = this.calendarMonthWeeks[0] * (daySize - 1);\n          translationValue = monthTitleHeight + calendarMonthWeeksHeight + 1;\n        } else if (this.isHorizontal()) {\n          translationValue = calendarMonthWidth;\n          if (isRTL) {\n            translationValue = -2 * calendarMonthWidth;\n          }\n\n          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(0, numberOfMonths);\n          var _calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight + 1;\n          this.adjustDayPickerHeight(newMonthHeight);\n        }\n\n        this.setState({\n          monthTransition: PREV_TRANSITION,\n          translationValue: translationValue,\n          focusedDate: null,\n          nextFocusedDate: nextFocusedDate\n        });\n      }\n\n      return onPrevMonthClick;\n    }()\n  }, {\n    key: 'onMonthChange',\n    value: function () {\n      function onMonthChange(currentMonth) {\n        this.setCalendarMonthWeeks(currentMonth);\n        this.calculateAndSetDayPickerHeight();\n\n        // Translation value is a hack to force an invisible transition that\n        // properly rerenders the CalendarMonthGrid\n        this.setState({\n          monthTransition: MONTH_SELECTION_TRANSITION,\n          translationValue: 0.00001,\n          focusedDate: null,\n          nextFocusedDate: currentMonth,\n          currentMonth: currentMonth\n        });\n      }\n\n      return onMonthChange;\n    }()\n  }, {\n    key: 'onYearChange',\n    value: function () {\n      function onYearChange(currentMonth) {\n        this.setCalendarMonthWeeks(currentMonth);\n        this.calculateAndSetDayPickerHeight();\n\n        // Translation value is a hack to force an invisible transition that\n        // properly rerenders the CalendarMonthGrid\n        this.setState({\n          monthTransition: YEAR_SELECTION_TRANSITION,\n          translationValue: 0.0001,\n          focusedDate: null,\n          nextFocusedDate: currentMonth,\n          currentMonth: currentMonth\n        });\n      }\n\n      return onYearChange;\n    }()\n  }, {\n    key: 'onNextMonthClick',\n    value: function () {\n      function onNextMonthClick(nextFocusedDate, e) {\n        var _props5 = this.props,\n            isRTL = _props5.isRTL,\n            numberOfMonths = _props5.numberOfMonths,\n            daySize = _props5.daySize;\n        var _state4 = this.state,\n            calendarMonthWidth = _state4.calendarMonthWidth,\n            monthTitleHeight = _state4.monthTitleHeight;\n\n\n        if (e) e.preventDefault();\n\n        var translationValue = void 0;\n\n        if (this.isVertical()) {\n          var firstVisibleMonthWeeks = this.calendarMonthWeeks[1];\n          var calendarMonthWeeksHeight = firstVisibleMonthWeeks * (daySize - 1);\n          translationValue = -(monthTitleHeight + calendarMonthWeeksHeight + 1);\n        }\n\n        if (this.isHorizontal()) {\n          translationValue = -calendarMonthWidth;\n          if (isRTL) {\n            translationValue = 0;\n          }\n\n          var visibleCalendarWeeks = this.calendarMonthWeeks.slice(2, numberOfMonths + 2);\n          var _calendarMonthWeeksHeight2 = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n          var newMonthHeight = monthTitleHeight + _calendarMonthWeeksHeight2 + 1;\n          this.adjustDayPickerHeight(newMonthHeight);\n        }\n\n        this.setState({\n          monthTransition: NEXT_TRANSITION,\n          translationValue: translationValue,\n          focusedDate: null,\n          nextFocusedDate: nextFocusedDate\n        });\n      }\n\n      return onNextMonthClick;\n    }()\n  }, {\n    key: 'getFirstDayOfWeek',\n    value: function () {\n      function getFirstDayOfWeek() {\n        var firstDayOfWeek = this.props.firstDayOfWeek;\n\n        if (firstDayOfWeek == null) {\n          return _moment2['default'].localeData().firstDayOfWeek();\n        }\n\n        return firstDayOfWeek;\n      }\n\n      return getFirstDayOfWeek;\n    }()\n  }, {\n    key: 'getFirstVisibleIndex',\n    value: function () {\n      function getFirstVisibleIndex() {\n        var orientation = this.props.orientation;\n        var monthTransition = this.state.monthTransition;\n\n\n        if (orientation === _constants.VERTICAL_SCROLLABLE) return 0;\n\n        var firstVisibleMonthIndex = 1;\n        if (monthTransition === PREV_TRANSITION) {\n          firstVisibleMonthIndex -= 1;\n        } else if (monthTransition === NEXT_TRANSITION) {\n          firstVisibleMonthIndex += 1;\n        }\n\n        return firstVisibleMonthIndex;\n      }\n\n      return getFirstVisibleIndex;\n    }()\n  }, {\n    key: 'getFocusedDay',\n    value: function () {\n      function getFocusedDay(newMonth) {\n        var _props6 = this.props,\n            getFirstFocusableDay = _props6.getFirstFocusableDay,\n            numberOfMonths = _props6.numberOfMonths;\n\n\n        var focusedDate = void 0;\n        if (getFirstFocusableDay) {\n          focusedDate = getFirstFocusableDay(newMonth);\n        }\n\n        if (newMonth && (!focusedDate || !(0, _isDayVisible2['default'])(focusedDate, newMonth, numberOfMonths))) {\n          focusedDate = newMonth.clone().startOf('month');\n        }\n\n        return focusedDate;\n      }\n\n      return getFocusedDay;\n    }()\n  }, {\n    key: 'setMonthTitleHeight',\n    value: function () {\n      function setMonthTitleHeight(monthTitleHeight) {\n        var _this3 = this;\n\n        this.setState({\n          monthTitleHeight: monthTitleHeight\n        }, function () {\n          _this3.calculateAndSetDayPickerHeight();\n        });\n      }\n\n      return setMonthTitleHeight;\n    }()\n  }, {\n    key: 'setCalendarMonthWeeks',\n    value: function () {\n      function setCalendarMonthWeeks(currentMonth) {\n        var numberOfMonths = this.props.numberOfMonths;\n\n\n        this.calendarMonthWeeks = [];\n        var month = currentMonth.clone().subtract(1, 'months');\n        var firstDayOfWeek = this.getFirstDayOfWeek();\n        for (var i = 0; i < numberOfMonths + 2; i += 1) {\n          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(month, firstDayOfWeek);\n          this.calendarMonthWeeks.push(numberOfWeeks);\n          month = month.add(1, 'months');\n        }\n      }\n\n      return setCalendarMonthWeeks;\n    }()\n  }, {\n    key: 'setContainerRef',\n    value: function () {\n      function setContainerRef(ref) {\n        this.container = ref;\n      }\n\n      return setContainerRef;\n    }()\n  }, {\n    key: 'setCalendarInfoRef',\n    value: function () {\n      function setCalendarInfoRef(ref) {\n        this.calendarInfo = ref;\n      }\n\n      return setCalendarInfoRef;\n    }()\n  }, {\n    key: 'setTransitionContainerRef',\n    value: function () {\n      function setTransitionContainerRef(ref) {\n        this.transitionContainer = ref;\n      }\n\n      return setTransitionContainerRef;\n    }()\n  }, {\n    key: 'maybeTransitionNextMonth',\n    value: function () {\n      function maybeTransitionNextMonth(newFocusedDate) {\n        var numberOfMonths = this.props.numberOfMonths;\n        var _state5 = this.state,\n            currentMonth = _state5.currentMonth,\n            focusedDate = _state5.focusedDate;\n\n\n        var newFocusedDateMonth = newFocusedDate.month();\n        var focusedDateMonth = focusedDate.month();\n        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);\n        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {\n          this.onNextMonthClick(newFocusedDate);\n          return true;\n        }\n\n        return false;\n      }\n\n      return maybeTransitionNextMonth;\n    }()\n  }, {\n    key: 'maybeTransitionPrevMonth',\n    value: function () {\n      function maybeTransitionPrevMonth(newFocusedDate) {\n        var numberOfMonths = this.props.numberOfMonths;\n        var _state6 = this.state,\n            currentMonth = _state6.currentMonth,\n            focusedDate = _state6.focusedDate;\n\n\n        var newFocusedDateMonth = newFocusedDate.month();\n        var focusedDateMonth = focusedDate.month();\n        var isNewFocusedDateVisible = (0, _isDayVisible2['default'])(newFocusedDate, currentMonth, numberOfMonths);\n        if (newFocusedDateMonth !== focusedDateMonth && !isNewFocusedDateVisible) {\n          this.onPrevMonthClick(newFocusedDate);\n          return true;\n        }\n\n        return false;\n      }\n\n      return maybeTransitionPrevMonth;\n    }()\n  }, {\n    key: 'multiplyScrollableMonths',\n    value: function () {\n      function multiplyScrollableMonths(e) {\n        var onMultiplyScrollableMonths = this.props.onMultiplyScrollableMonths;\n\n        if (e) e.preventDefault();\n\n        if (onMultiplyScrollableMonths) onMultiplyScrollableMonths(e);\n\n        this.setState(function (_ref) {\n          var scrollableMonthMultiple = _ref.scrollableMonthMultiple;\n          return {\n            scrollableMonthMultiple: scrollableMonthMultiple + 1\n          };\n        });\n      }\n\n      return multiplyScrollableMonths;\n    }()\n  }, {\n    key: 'isHorizontal',\n    value: function () {\n      function isHorizontal() {\n        var orientation = this.props.orientation;\n\n        return orientation === _constants.HORIZONTAL_ORIENTATION;\n      }\n\n      return isHorizontal;\n    }()\n  }, {\n    key: 'isVertical',\n    value: function () {\n      function isVertical() {\n        var orientation = this.props.orientation;\n\n        return orientation === _constants.VERTICAL_ORIENTATION || orientation === _constants.VERTICAL_SCROLLABLE;\n      }\n\n      return isVertical;\n    }()\n  }, {\n    key: 'updateStateAfterMonthTransition',\n    value: function () {\n      function updateStateAfterMonthTransition() {\n        var _this4 = this;\n\n        var _props7 = this.props,\n            onPrevMonthClick = _props7.onPrevMonthClick,\n            onNextMonthClick = _props7.onNextMonthClick,\n            numberOfMonths = _props7.numberOfMonths,\n            onMonthChange = _props7.onMonthChange,\n            onYearChange = _props7.onYearChange,\n            isRTL = _props7.isRTL;\n        var _state7 = this.state,\n            currentMonth = _state7.currentMonth,\n            monthTransition = _state7.monthTransition,\n            focusedDate = _state7.focusedDate,\n            nextFocusedDate = _state7.nextFocusedDate,\n            withMouseInteractions = _state7.withMouseInteractions,\n            calendarMonthWidth = _state7.calendarMonthWidth;\n\n\n        if (!monthTransition) return;\n\n        var newMonth = currentMonth.clone();\n        var firstDayOfWeek = this.getFirstDayOfWeek();\n        if (monthTransition === PREV_TRANSITION) {\n          newMonth.subtract(1, 'month');\n          if (onPrevMonthClick) onPrevMonthClick(newMonth);\n          var newInvisibleMonth = newMonth.clone().subtract(1, 'month');\n          var numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(newInvisibleMonth, firstDayOfWeek);\n          this.calendarMonthWeeks = [numberOfWeeks].concat(_toConsumableArray(this.calendarMonthWeeks.slice(0, -1)));\n        } else if (monthTransition === NEXT_TRANSITION) {\n          newMonth.add(1, 'month');\n          if (onNextMonthClick) onNextMonthClick(newMonth);\n          var _newInvisibleMonth = newMonth.clone().add(numberOfMonths, 'month');\n          var _numberOfWeeks = (0, _getNumberOfCalendarMonthWeeks2['default'])(_newInvisibleMonth, firstDayOfWeek);\n          this.calendarMonthWeeks = [].concat(_toConsumableArray(this.calendarMonthWeeks.slice(1)), [_numberOfWeeks]);\n        } else if (monthTransition === MONTH_SELECTION_TRANSITION) {\n          if (onMonthChange) onMonthChange(newMonth);\n        } else if (monthTransition === YEAR_SELECTION_TRANSITION) {\n          if (onYearChange) onYearChange(newMonth);\n        }\n\n        var newFocusedDate = null;\n        if (nextFocusedDate) {\n          newFocusedDate = nextFocusedDate;\n        } else if (!focusedDate && !withMouseInteractions) {\n          newFocusedDate = this.getFocusedDay(newMonth);\n        }\n\n        this.setState({\n          currentMonth: newMonth,\n          monthTransition: null,\n          translationValue: isRTL && this.isHorizontal() ? -calendarMonthWidth : 0,\n          nextFocusedDate: null,\n          focusedDate: newFocusedDate\n        }, function () {\n          // we don't want to focus on the relevant calendar day after a month transition\n          // if the user is navigating around using a mouse\n          if (withMouseInteractions) {\n            var activeElement = (0, _getActiveElement2['default'])();\n            if (activeElement && activeElement !== document.body && _this4.container.contains(activeElement)) {\n              activeElement.blur();\n            }\n          }\n        });\n      }\n\n      return updateStateAfterMonthTransition;\n    }()\n  }, {\n    key: 'adjustDayPickerHeight',\n    value: function () {\n      function adjustDayPickerHeight(newMonthHeight) {\n        var _this5 = this;\n\n        var monthHeight = newMonthHeight + MONTH_PADDING;\n        if (monthHeight !== this.calendarMonthGridHeight) {\n          this.transitionContainer.style.height = String(monthHeight) + 'px';\n          if (!this.calendarMonthGridHeight) {\n            setTimeout(function () {\n              _this5.setState({ hasSetHeight: true });\n            }, 0);\n          }\n          this.calendarMonthGridHeight = monthHeight;\n        }\n      }\n\n      return adjustDayPickerHeight;\n    }()\n  }, {\n    key: 'calculateAndSetDayPickerHeight',\n    value: function () {\n      function calculateAndSetDayPickerHeight() {\n        var _props8 = this.props,\n            daySize = _props8.daySize,\n            numberOfMonths = _props8.numberOfMonths;\n        var monthTitleHeight = this.state.monthTitleHeight;\n\n\n        var visibleCalendarWeeks = this.calendarMonthWeeks.slice(1, numberOfMonths + 1);\n        var calendarMonthWeeksHeight = Math.max.apply(Math, [0].concat(_toConsumableArray(visibleCalendarWeeks))) * (daySize - 1);\n        var newMonthHeight = monthTitleHeight + calendarMonthWeeksHeight + 1;\n\n        if (this.isHorizontal()) {\n          this.adjustDayPickerHeight(newMonthHeight);\n        }\n      }\n\n      return calculateAndSetDayPickerHeight;\n    }()\n  }, {\n    key: 'openKeyboardShortcutsPanel',\n    value: function () {\n      function openKeyboardShortcutsPanel(onCloseCallBack) {\n        this.setState({\n          showKeyboardShortcuts: true,\n          onKeyboardShortcutsPanelClose: onCloseCallBack\n        });\n      }\n\n      return openKeyboardShortcutsPanel;\n    }()\n  }, {\n    key: 'closeKeyboardShortcutsPanel',\n    value: function () {\n      function closeKeyboardShortcutsPanel() {\n        var onKeyboardShortcutsPanelClose = this.state.onKeyboardShortcutsPanelClose;\n\n\n        if (onKeyboardShortcutsPanelClose) {\n          onKeyboardShortcutsPanelClose();\n        }\n\n        this.setState({\n          onKeyboardShortcutsPanelClose: null,\n          showKeyboardShortcuts: false\n        });\n      }\n\n      return closeKeyboardShortcutsPanel;\n    }()\n  }, {\n    key: 'renderNavigation',\n    value: function () {\n      function renderNavigation() {\n        var _this6 = this;\n\n        var _props9 = this.props,\n            navPrev = _props9.navPrev,\n            navNext = _props9.navNext,\n            noNavButtons = _props9.noNavButtons,\n            orientation = _props9.orientation,\n            phrases = _props9.phrases,\n            isRTL = _props9.isRTL;\n\n\n        if (noNavButtons) {\n          return null;\n        }\n\n        var onNextMonthClick = void 0;\n        if (orientation === _constants.VERTICAL_SCROLLABLE) {\n          onNextMonthClick = this.multiplyScrollableMonths;\n        } else {\n          onNextMonthClick = function () {\n            function onNextMonthClick(e) {\n              _this6.onNextMonthClick(null, e);\n            }\n\n            return onNextMonthClick;\n          }();\n        }\n\n        return _react2['default'].createElement(_DayPickerNavigation2['default'], {\n          onPrevMonthClick: function () {\n            function onPrevMonthClick(e) {\n              _this6.onPrevMonthClick(null, e);\n            }\n\n            return onPrevMonthClick;\n          }(),\n          onNextMonthClick: onNextMonthClick,\n          navPrev: navPrev,\n          navNext: navNext,\n          orientation: orientation,\n          phrases: phrases,\n          isRTL: isRTL\n        });\n      }\n\n      return renderNavigation;\n    }()\n  }, {\n    key: 'renderWeekHeader',\n    value: function () {\n      function renderWeekHeader(index) {\n        var _props10 = this.props,\n            daySize = _props10.daySize,\n            horizontalMonthPadding = _props10.horizontalMonthPadding,\n            orientation = _props10.orientation,\n            weekDayFormat = _props10.weekDayFormat,\n            styles = _props10.styles;\n        var calendarMonthWidth = this.state.calendarMonthWidth;\n\n        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n        var horizontalStyle = {\n          left: index * calendarMonthWidth\n        };\n        var verticalStyle = {\n          marginLeft: -calendarMonthWidth / 2\n        };\n\n        var weekHeaderStyle = {}; // no styles applied to the vertical-scrollable orientation\n        if (this.isHorizontal()) {\n          weekHeaderStyle = horizontalStyle;\n        } else if (this.isVertical() && !verticalScrollable) {\n          weekHeaderStyle = verticalStyle;\n        }\n\n        var firstDayOfWeek = this.getFirstDayOfWeek();\n\n        var header = [];\n        for (var i = 0; i < 7; i += 1) {\n          header.push(_react2['default'].createElement(\n            'li',\n            _extends({ key: i }, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_li, { width: daySize })),\n            _react2['default'].createElement(\n              'small',\n              null,\n              (0, _moment2['default'])().day((i + firstDayOfWeek) % 7).format(weekDayFormat)\n            )\n          ));\n        }\n\n        return _react2['default'].createElement(\n          'div',\n          _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeader, this.isVertical() && styles.DayPicker_weekHeader__vertical, verticalScrollable && styles.DayPicker_weekHeader__verticalScrollable, weekHeaderStyle, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {\n            key: 'week-' + String(index)\n          }),\n          _react2['default'].createElement(\n            'ul',\n            (0, _reactWithStyles.css)(styles.DayPicker_weekHeader_ul),\n            header\n          )\n        );\n      }\n\n      return renderWeekHeader;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _this7 = this;\n\n        var _state8 = this.state,\n            calendarMonthWidth = _state8.calendarMonthWidth,\n            currentMonth = _state8.currentMonth,\n            monthTransition = _state8.monthTransition,\n            translationValue = _state8.translationValue,\n            scrollableMonthMultiple = _state8.scrollableMonthMultiple,\n            focusedDate = _state8.focusedDate,\n            showKeyboardShortcuts = _state8.showKeyboardShortcuts,\n            isTouch = _state8.isTouchDevice,\n            hasSetHeight = _state8.hasSetHeight,\n            calendarInfoWidth = _state8.calendarInfoWidth,\n            monthTitleHeight = _state8.monthTitleHeight;\n        var _props11 = this.props,\n            enableOutsideDays = _props11.enableOutsideDays,\n            numberOfMonths = _props11.numberOfMonths,\n            orientation = _props11.orientation,\n            modifiers = _props11.modifiers,\n            withPortal = _props11.withPortal,\n            onDayClick = _props11.onDayClick,\n            onDayMouseEnter = _props11.onDayMouseEnter,\n            onDayMouseLeave = _props11.onDayMouseLeave,\n            firstDayOfWeek = _props11.firstDayOfWeek,\n            renderMonthText = _props11.renderMonthText,\n            renderCalendarDay = _props11.renderCalendarDay,\n            renderDayContents = _props11.renderDayContents,\n            renderCalendarInfo = _props11.renderCalendarInfo,\n            renderMonthElement = _props11.renderMonthElement,\n            calendarInfoPosition = _props11.calendarInfoPosition,\n            hideKeyboardShortcutsPanel = _props11.hideKeyboardShortcutsPanel,\n            onOutsideClick = _props11.onOutsideClick,\n            monthFormat = _props11.monthFormat,\n            daySize = _props11.daySize,\n            isFocused = _props11.isFocused,\n            isRTL = _props11.isRTL,\n            styles = _props11.styles,\n            theme = _props11.theme,\n            phrases = _props11.phrases,\n            verticalHeight = _props11.verticalHeight,\n            dayAriaLabelFormat = _props11.dayAriaLabelFormat,\n            noBorder = _props11.noBorder,\n            transitionDuration = _props11.transitionDuration,\n            verticalBorderSpacing = _props11.verticalBorderSpacing,\n            horizontalMonthPadding = _props11.horizontalMonthPadding;\n        var dayPickerHorizontalPadding = theme.reactDates.spacing.dayPickerHorizontalPadding;\n\n\n        var isHorizontal = this.isHorizontal();\n\n        var numOfWeekHeaders = this.isVertical() ? 1 : numberOfMonths;\n        var weekHeaders = [];\n        for (var i = 0; i < numOfWeekHeaders; i += 1) {\n          weekHeaders.push(this.renderWeekHeader(i));\n        }\n\n        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n        var height = void 0;\n        if (isHorizontal) {\n          height = this.calendarMonthGridHeight;\n        } else if (this.isVertical() && !verticalScrollable && !withPortal) {\n          // If the user doesn't set a desired height,\n          // we default back to this kind of made-up value that generally looks good\n          height = verticalHeight || 1.75 * calendarMonthWidth;\n        }\n\n        var isCalendarMonthGridAnimating = monthTransition !== null;\n\n        var shouldFocusDate = !isCalendarMonthGridAnimating && isFocused;\n\n        var keyboardShortcutButtonLocation = _DayPickerKeyboardShortcuts.BOTTOM_RIGHT;\n        if (this.isVertical()) {\n          keyboardShortcutButtonLocation = withPortal ? _DayPickerKeyboardShortcuts.TOP_LEFT : _DayPickerKeyboardShortcuts.TOP_RIGHT;\n        }\n\n        var shouldAnimateHeight = isHorizontal && hasSetHeight;\n\n        var calendarInfoPositionTop = calendarInfoPosition === _constants.INFO_POSITION_TOP;\n        var calendarInfoPositionBottom = calendarInfoPosition === _constants.INFO_POSITION_BOTTOM;\n        var calendarInfoPositionBefore = calendarInfoPosition === _constants.INFO_POSITION_BEFORE;\n        var calendarInfoPositionAfter = calendarInfoPosition === _constants.INFO_POSITION_AFTER;\n        var calendarInfoIsInline = calendarInfoPositionBefore || calendarInfoPositionAfter;\n\n        var calendarInfo = renderCalendarInfo && _react2['default'].createElement(\n          'div',\n          _extends({\n            ref: this.setCalendarInfoRef\n          }, (0, _reactWithStyles.css)(calendarInfoIsInline && styles.DayPicker_calendarInfo__horizontal)),\n          renderCalendarInfo()\n        );\n\n        var calendarInfoPanelWidth = renderCalendarInfo && calendarInfoIsInline ? calendarInfoWidth : 0;\n\n        var firstVisibleMonthIndex = this.getFirstVisibleIndex();\n        var wrapperHorizontalWidth = calendarMonthWidth * numberOfMonths + 2 * dayPickerHorizontalPadding;\n        // Adding `1px` because of whitespace between 2 inline-block\n        var fullHorizontalWidth = wrapperHorizontalWidth + calendarInfoPanelWidth + 1;\n\n        var transitionContainerStyle = {\n          width: isHorizontal && wrapperHorizontalWidth,\n          height: height\n        };\n\n        var dayPickerWrapperStyle = {\n          width: isHorizontal && wrapperHorizontalWidth\n        };\n\n        var dayPickerStyle = {\n          width: isHorizontal && fullHorizontalWidth,\n\n          // These values are to center the datepicker (approximately) on the page\n          marginLeft: isHorizontal && withPortal ? -fullHorizontalWidth / 2 : null,\n          marginTop: isHorizontal && withPortal ? -calendarMonthWidth / 2 : null\n        };\n\n        return _react2['default'].createElement(\n          'div',\n          _extends({\n            role: 'application',\n            'aria-label': phrases.calendarLabel\n          }, (0, _reactWithStyles.css)(styles.DayPicker, isHorizontal && styles.DayPicker__horizontal, verticalScrollable && styles.DayPicker__verticalScrollable, isHorizontal && withPortal && styles.DayPicker_portal__horizontal, this.isVertical() && withPortal && styles.DayPicker_portal__vertical, dayPickerStyle, !monthTitleHeight && styles.DayPicker__hidden, !noBorder && styles.DayPicker__withBorder)),\n          _react2['default'].createElement(\n            _reactOutsideClickHandler2['default'],\n            { onOutsideClick: onOutsideClick },\n            (calendarInfoPositionTop || calendarInfoPositionBefore) && calendarInfo,\n            _react2['default'].createElement(\n              'div',\n              (0, _reactWithStyles.css)(dayPickerWrapperStyle, calendarInfoIsInline && isHorizontal && styles.DayPicker_wrapper__horizontal),\n              _react2['default'].createElement(\n                'div',\n                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_weekHeaders, isHorizontal && styles.DayPicker_weekHeaders__horizontal), {\n                  'aria-hidden': 'true',\n                  role: 'presentation'\n                }),\n                weekHeaders\n              ),\n              _react2['default'].createElement(\n                'div',\n                _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_focusRegion), {\n                  ref: this.setContainerRef,\n                  onClick: function () {\n                    function onClick(e) {\n                      e.stopPropagation();\n                    }\n\n                    return onClick;\n                  }(),\n                  onKeyDown: this.onKeyDown,\n                  onMouseUp: function () {\n                    function onMouseUp() {\n                      _this7.setState({ withMouseInteractions: true });\n                    }\n\n                    return onMouseUp;\n                  }(),\n                  role: 'region',\n                  tabIndex: -1\n                }),\n                !verticalScrollable && this.renderNavigation(),\n                _react2['default'].createElement(\n                  'div',\n                  _extends({}, (0, _reactWithStyles.css)(styles.DayPicker_transitionContainer, shouldAnimateHeight && styles.DayPicker_transitionContainer__horizontal, this.isVertical() && styles.DayPicker_transitionContainer__vertical, verticalScrollable && styles.DayPicker_transitionContainer__verticalScrollable, transitionContainerStyle), {\n                    ref: this.setTransitionContainerRef\n                  }),\n                  _react2['default'].createElement(_CalendarMonthGrid2['default'], {\n                    setMonthTitleHeight: !monthTitleHeight ? this.setMonthTitleHeight : undefined,\n                    translationValue: translationValue,\n                    enableOutsideDays: enableOutsideDays,\n                    firstVisibleMonthIndex: firstVisibleMonthIndex,\n                    initialMonth: currentMonth,\n                    isAnimating: isCalendarMonthGridAnimating,\n                    modifiers: modifiers,\n                    orientation: orientation,\n                    numberOfMonths: numberOfMonths * scrollableMonthMultiple,\n                    onDayClick: onDayClick,\n                    onDayMouseEnter: onDayMouseEnter,\n                    onDayMouseLeave: onDayMouseLeave,\n                    onMonthChange: this.onMonthChange,\n                    onYearChange: this.onYearChange,\n                    renderMonthText: renderMonthText,\n                    renderCalendarDay: renderCalendarDay,\n                    renderDayContents: renderDayContents,\n                    renderMonthElement: renderMonthElement,\n                    onMonthTransitionEnd: this.updateStateAfterMonthTransition,\n                    monthFormat: monthFormat,\n                    daySize: daySize,\n                    firstDayOfWeek: firstDayOfWeek,\n                    isFocused: shouldFocusDate,\n                    focusedDate: focusedDate,\n                    phrases: phrases,\n                    isRTL: isRTL,\n                    dayAriaLabelFormat: dayAriaLabelFormat,\n                    transitionDuration: transitionDuration,\n                    verticalBorderSpacing: verticalBorderSpacing,\n                    horizontalMonthPadding: horizontalMonthPadding\n                  }),\n                  verticalScrollable && this.renderNavigation()\n                ),\n                !isTouch && !hideKeyboardShortcutsPanel && _react2['default'].createElement(_DayPickerKeyboardShortcuts2['default'], {\n                  block: this.isVertical() && !withPortal,\n                  buttonLocation: keyboardShortcutButtonLocation,\n                  showKeyboardShortcutsPanel: showKeyboardShortcuts,\n                  openKeyboardShortcutsPanel: this.openKeyboardShortcutsPanel,\n                  closeKeyboardShortcutsPanel: this.closeKeyboardShortcutsPanel,\n                  phrases: phrases\n                })\n              )\n            ),\n            (calendarInfoPositionBottom || calendarInfoPositionAfter) && calendarInfo\n          )\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return DayPicker;\n}(_react2['default'].Component);\n\nDayPicker.propTypes = propTypes;\nDayPicker.defaultProps = defaultProps;\n\nexports.PureDayPicker = DayPicker;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n  var _ref2$reactDates = _ref2.reactDates,\n      color = _ref2$reactDates.color,\n      font = _ref2$reactDates.font,\n      noScrollBarOnVerticalScrollable = _ref2$reactDates.noScrollBarOnVerticalScrollable,\n      spacing = _ref2$reactDates.spacing,\n      zIndex = _ref2$reactDates.zIndex;\n  return {\n    DayPicker: {\n      background: color.background,\n      position: 'relative',\n      textAlign: 'left'\n    },\n\n    DayPicker__horizontal: {\n      background: color.background\n    },\n\n    DayPicker__verticalScrollable: {\n      height: '100%'\n    },\n\n    DayPicker__hidden: {\n      visibility: 'hidden'\n    },\n\n    DayPicker__withBorder: {\n      boxShadow: '0 2px 6px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.07)',\n      borderRadius: 3\n    },\n\n    DayPicker_portal__horizontal: {\n      boxShadow: 'none',\n      position: 'absolute',\n      left: '50%',\n      top: '50%'\n    },\n\n    DayPicker_portal__vertical: {\n      position: 'initial'\n    },\n\n    DayPicker_focusRegion: {\n      outline: 'none'\n    },\n\n    DayPicker_calendarInfo__horizontal: {\n      display: 'inline-block',\n      verticalAlign: 'top'\n    },\n\n    DayPicker_wrapper__horizontal: {\n      display: 'inline-block',\n      verticalAlign: 'top'\n    },\n\n    DayPicker_weekHeaders: {\n      position: 'relative'\n    },\n\n    DayPicker_weekHeaders__horizontal: {\n      marginLeft: spacing.dayPickerHorizontalPadding\n    },\n\n    DayPicker_weekHeader: {\n      color: color.placeholderText,\n      position: 'absolute',\n      top: 62,\n      zIndex: zIndex + 2,\n      textAlign: 'left'\n    },\n\n    DayPicker_weekHeader__vertical: {\n      left: '50%'\n    },\n\n    DayPicker_weekHeader__verticalScrollable: {\n      top: 0,\n      display: 'table-row',\n      borderBottom: '1px solid ' + String(color.core.border),\n      background: color.background,\n      marginLeft: 0,\n      left: 0,\n      width: '100%',\n      textAlign: 'center'\n    },\n\n    DayPicker_weekHeader_ul: {\n      listStyle: 'none',\n      margin: '1px 0',\n      paddingLeft: 0,\n      paddingRight: 0,\n      fontSize: font.size\n    },\n\n    DayPicker_weekHeader_li: {\n      display: 'inline-block',\n      textAlign: 'center'\n    },\n\n    DayPicker_transitionContainer: {\n      position: 'relative',\n      overflow: 'hidden',\n      borderRadius: 3\n    },\n\n    DayPicker_transitionContainer__horizontal: {\n      transition: 'height 0.2s ease-in-out'\n    },\n\n    DayPicker_transitionContainer__vertical: {\n      width: '100%'\n    },\n\n    DayPicker_transitionContainer__verticalScrollable: (0, _object2['default'])({\n      paddingTop: 20,\n      height: '100%',\n      position: 'absolute',\n      top: 0,\n      bottom: 0,\n      right: 0,\n      left: 0,\n      overflowY: 'scroll'\n    }, noScrollBarOnVerticalScrollable && {\n      '-webkitOverflowScrolling': 'touch',\n      '::-webkit-scrollbar': {\n        '-webkit-appearance': 'none',\n        display: 'none'\n      }\n    })\n  };\n})(DayPicker);\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n * \n */\n\n/*eslint-disable no-self-compare */\n\n\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\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  // SameValue algorithm\n  if (x === y) {\n    // Steps 1-5, 7-10\n    // Steps 6.b-6.e: +0 != -0\n    // Added the nonzero y check to make Flow happy, but it is redundant\n    return x !== 0 || y !== 0 || 1 / x === 1 / y;\n  } else {\n    // Step 6.a: NaN == NaN\n    return x !== x && y !== y;\n  }\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n  if (is(objA, objB)) {\n    return true;\n  }\n\n  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n    return false;\n  }\n\n  var keysA = Object.keys(objA);\n  var keysB = Object.keys(objB);\n\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n\n  // Test for A's keys different from B.\n  for (var i = 0; i < keysA.length; i++) {\n    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = shallowEqual;\n\n/***/ }),\n/* 366 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar reactIs = __webpack_require__(367);\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n\n    var keys = getOwnPropertyNames(sourceComponent);\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n\n  return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nif (true) {\n  module.exports = __webpack_require__(368);\n} else {}\n\n\n/***/ }),\n/* 368 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/** @license React v16.8.6\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nObject.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.memo\"):\n60115,r=b?Symbol.for(\"react.lazy\"):60116;function t(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;\nexports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||\"object\"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k};\nexports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f};\nexports.isSuspense=function(a){return t(a)===p};\n\n\n/***/ }),\n/* 369 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar CHANNEL = exports.CHANNEL = '__direction__';\n\nvar DIRECTIONS = exports.DIRECTIONS = {\n  LTR: 'ltr',\n  RTL: 'rtl'\n};\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nexports['default'] = _propTypes2['default'].shape({\n  getState: _propTypes2['default'].func,\n  setState: _propTypes2['default'].func,\n  subscribe: _propTypes2['default'].func\n});\n\n/***/ }),\n/* 371 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar debounce = __webpack_require__(372),\n    isObject = __webpack_require__(186);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nmodule.exports = throttle;\n\n\n/***/ }),\n/* 372 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(186),\n    now = __webpack_require__(373),\n    toNumber = __webpack_require__(375);\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar root = __webpack_require__(239);\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n\n\n/***/ }),\n/* 374 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(121)))\n\n/***/ }),\n/* 375 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(186),\n    isSymbol = __webpack_require__(376);\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar baseGetTag = __webpack_require__(377),\n    isObjectLike = __webpack_require__(380);\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n/***/ }),\n/* 377 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(240),\n    getRawTag = __webpack_require__(378),\n    objectToString = __webpack_require__(379);\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 378 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Symbol = __webpack_require__(240);\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n\n\n/***/ }),\n/* 379 */\n/***/ (function(module, exports) {\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports) {\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 381 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// eslint-disable-next-line import/no-unresolved\nmodule.exports = __webpack_require__(382);\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _consolidatedEvents = __webpack_require__(241);\n\nvar _object = __webpack_require__(222);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _document = __webpack_require__(383);\n\nvar _document2 = _interopRequireDefault(_document);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DISPLAY = {\n  BLOCK: 'block',\n  FLEX: 'flex',\n  INLINE: 'inline',\n  INLINE_BLOCK: 'inline-block',\n  CONTENTS: 'contents'\n};\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n  children: _propTypes2['default'].node.isRequired,\n  onOutsideClick: _propTypes2['default'].func.isRequired,\n  disabled: _propTypes2['default'].bool,\n  useCapture: _propTypes2['default'].bool,\n  display: _propTypes2['default'].oneOf((0, _object2['default'])(DISPLAY))\n});\n\nvar defaultProps = {\n  disabled: false,\n\n  // `useCapture` is set to true by default so that a `stopPropagation` in the\n  // children will not prevent all outside click handlers from firing - maja\n  useCapture: true,\n  display: DISPLAY.BLOCK\n};\n\nvar OutsideClickHandler = function (_React$Component) {\n  _inherits(OutsideClickHandler, _React$Component);\n\n  function OutsideClickHandler() {\n    var _ref;\n\n    _classCallCheck(this, OutsideClickHandler);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var _this = _possibleConstructorReturn(this, (_ref = OutsideClickHandler.__proto__ || Object.getPrototypeOf(OutsideClickHandler)).call.apply(_ref, [this].concat(args)));\n\n    _this.onMouseDown = _this.onMouseDown.bind(_this);\n    _this.onMouseUp = _this.onMouseUp.bind(_this);\n    _this.setChildNodeRef = _this.setChildNodeRef.bind(_this);\n    return _this;\n  }\n\n  _createClass(OutsideClickHandler, [{\n    key: 'componentDidMount',\n    value: function () {\n      function componentDidMount() {\n        var _props = this.props,\n            disabled = _props.disabled,\n            useCapture = _props.useCapture;\n\n\n        if (!disabled) this.addMouseDownEventListener(useCapture);\n      }\n\n      return componentDidMount;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate(_ref2) {\n        var prevDisabled = _ref2.disabled;\n        var _props2 = this.props,\n            disabled = _props2.disabled,\n            useCapture = _props2.useCapture;\n\n        if (prevDisabled !== disabled) {\n          if (disabled) {\n            this.removeEventListeners();\n          } else {\n            this.addMouseDownEventListener(useCapture);\n          }\n        }\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'componentWillUnmount',\n    value: function () {\n      function componentWillUnmount() {\n        this.removeEventListeners();\n      }\n\n      return componentWillUnmount;\n    }()\n\n    // Use mousedown/mouseup to enforce that clicks remain outside the root's\n    // descendant tree, even when dragged. This should also get triggered on\n    // touch devices.\n\n  }, {\n    key: 'onMouseDown',\n    value: function () {\n      function onMouseDown(e) {\n        var useCapture = this.props.useCapture;\n\n\n        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);\n        if (!isDescendantOfRoot) {\n          if (this.removeMouseUp) {\n            this.removeMouseUp();\n            this.removeMouseUp = null;\n          }\n          this.removeMouseUp = (0, _consolidatedEvents.addEventListener)(document, 'mouseup', this.onMouseUp, { capture: useCapture });\n        }\n      }\n\n      return onMouseDown;\n    }()\n\n    // Use mousedown/mouseup to enforce that clicks remain outside the root's\n    // descendant tree, even when dragged. This should also get triggered on\n    // touch devices.\n\n  }, {\n    key: 'onMouseUp',\n    value: function () {\n      function onMouseUp(e) {\n        var onOutsideClick = this.props.onOutsideClick;\n\n\n        var isDescendantOfRoot = this.childNode && (0, _document2['default'])(this.childNode, e.target);\n        if (this.removeMouseUp) {\n          this.removeMouseUp();\n          this.removeMouseUp = null;\n        }\n\n        if (!isDescendantOfRoot) {\n          onOutsideClick(e);\n        }\n      }\n\n      return onMouseUp;\n    }()\n  }, {\n    key: 'setChildNodeRef',\n    value: function () {\n      function setChildNodeRef(ref) {\n        this.childNode = ref;\n      }\n\n      return setChildNodeRef;\n    }()\n  }, {\n    key: 'addMouseDownEventListener',\n    value: function () {\n      function addMouseDownEventListener(useCapture) {\n        this.removeMouseDown = (0, _consolidatedEvents.addEventListener)(document, 'mousedown', this.onMouseDown, { capture: useCapture });\n      }\n\n      return addMouseDownEventListener;\n    }()\n  }, {\n    key: 'removeEventListeners',\n    value: function () {\n      function removeEventListeners() {\n        if (this.removeMouseDown) this.removeMouseDown();\n        if (this.removeMouseUp) this.removeMouseUp();\n      }\n\n      return removeEventListeners;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _props3 = this.props,\n            children = _props3.children,\n            display = _props3.display;\n\n\n        return _react2['default'].createElement(\n          'div',\n          {\n            ref: this.setChildNodeRef,\n            style: display !== DISPLAY.BLOCK && (0, _object2['default'])(DISPLAY).includes(display) ? { display: display } : undefined\n          },\n          children\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return OutsideClickHandler;\n}(_react2['default'].Component);\n\nexports['default'] = OutsideClickHandler;\n\n\nOutsideClickHandler.propTypes = propTypes;\nOutsideClickHandler.defaultProps = defaultProps;\n\n/***/ }),\n/* 383 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\n\nvar implementation = __webpack_require__(242);\nvar getPolyfill = __webpack_require__(243);\nvar polyfill = getPolyfill();\nvar shim = __webpack_require__(384);\n\nvar boundContains = function contains(node, other) {\n\treturn polyfill.apply(node, [other]);\n};\n\ndefine(boundContains, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundContains;\n\n\n/***/ }),\n/* 384 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar define = __webpack_require__(93);\nvar getPolyfill = __webpack_require__(243);\n\nmodule.exports = function shimContains() {\n\tvar polyfill = getPolyfill();\n\tif (typeof document !== 'undefined') {\n\t\tdefine(\n\t\t\tdocument,\n\t\t\t{ contains: polyfill },\n\t\t\t{ contains: function () { return document.contains !== polyfill; } }\n\t\t);\n\t\tif (typeof Element !== 'undefined') {\n\t\t\tdefine(\n\t\t\t\tElement.prototype,\n\t\t\t\t{ contains: polyfill },\n\t\t\t\t{ contains: function () { return Element.prototype.contains !== polyfill; } }\n\t\t\t);\n\t\t}\n\t}\n\treturn polyfill;\n};\n\n\n/***/ }),\n/* 385 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = __webpack_require__(137);\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = __webpack_require__(135);\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _consolidatedEvents = __webpack_require__(241);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarMonth = __webpack_require__(386);\n\nvar _CalendarMonth2 = _interopRequireDefault(_CalendarMonth);\n\nvar _isTransitionEndSupported = __webpack_require__(391);\n\nvar _isTransitionEndSupported2 = _interopRequireDefault(_isTransitionEndSupported);\n\nvar _getTransformStyles = __webpack_require__(392);\n\nvar _getTransformStyles2 = _interopRequireDefault(_getTransformStyles);\n\nvar _getCalendarMonthWidth = __webpack_require__(247);\n\nvar _getCalendarMonthWidth2 = _interopRequireDefault(_getCalendarMonthWidth);\n\nvar _toISOMonthString = __webpack_require__(185);\n\nvar _toISOMonthString2 = _interopRequireDefault(_toISOMonthString);\n\nvar _isPrevMonth = __webpack_require__(393);\n\nvar _isPrevMonth2 = _interopRequireDefault(_isPrevMonth);\n\nvar _isNextMonth = __webpack_require__(394);\n\nvar _isNextMonth2 = _interopRequireDefault(_isNextMonth);\n\nvar _ModifiersShape = __webpack_require__(151);\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = __webpack_require__(136);\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = __webpack_require__(150);\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  enableOutsideDays: _propTypes2['default'].bool,\n  firstVisibleMonthIndex: _propTypes2['default'].number,\n  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n  initialMonth: _reactMomentProptypes2['default'].momentObj,\n  isAnimating: _propTypes2['default'].bool,\n  numberOfMonths: _propTypes2['default'].number,\n  modifiers: _propTypes2['default'].objectOf(_propTypes2['default'].objectOf(_ModifiersShape2['default'])),\n  orientation: _ScrollableOrientationShape2['default'],\n  onDayClick: _propTypes2['default'].func,\n  onDayMouseEnter: _propTypes2['default'].func,\n  onDayMouseLeave: _propTypes2['default'].func,\n  onMonthTransitionEnd: _propTypes2['default'].func,\n  onMonthChange: _propTypes2['default'].func,\n  onYearChange: _propTypes2['default'].func,\n  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  renderCalendarDay: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  translationValue: _propTypes2['default'].number,\n  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day\n  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day\n  firstDayOfWeek: _DayOfWeekShape2['default'],\n  setMonthTitleHeight: _propTypes2['default'].func,\n  isRTL: _propTypes2['default'].bool,\n  transitionDuration: _airbnbPropTypes.nonNegativeInteger,\n  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n  // i18n\n  monthFormat: _propTypes2['default'].string,\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),\n  dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = {\n  enableOutsideDays: false,\n  firstVisibleMonthIndex: 0,\n  horizontalMonthPadding: 13,\n  initialMonth: (0, _moment2['default'])(),\n  isAnimating: false,\n  numberOfMonths: 1,\n  modifiers: {},\n  orientation: _constants.HORIZONTAL_ORIENTATION,\n  onDayClick: function () {\n    function onDayClick() {}\n\n    return onDayClick;\n  }(),\n  onDayMouseEnter: function () {\n    function onDayMouseEnter() {}\n\n    return onDayMouseEnter;\n  }(),\n  onDayMouseLeave: function () {\n    function onDayMouseLeave() {}\n\n    return onDayMouseLeave;\n  }(),\n  onMonthChange: function () {\n    function onMonthChange() {}\n\n    return onMonthChange;\n  }(),\n  onYearChange: function () {\n    function onYearChange() {}\n\n    return onYearChange;\n  }(),\n  onMonthTransitionEnd: function () {\n    function onMonthTransitionEnd() {}\n\n    return onMonthTransitionEnd;\n  }(),\n\n  renderMonthText: null,\n  renderCalendarDay: undefined,\n  renderDayContents: null,\n  translationValue: null,\n  renderMonthElement: null,\n  daySize: _constants.DAY_SIZE,\n  focusedDate: null,\n  isFocused: false,\n  firstDayOfWeek: null,\n  setMonthTitleHeight: null,\n  isRTL: false,\n  transitionDuration: 200,\n  verticalBorderSpacing: undefined,\n\n  // i18n\n  monthFormat: 'MMMM YYYY', // english locale\n  phrases: _defaultPhrases.CalendarDayPhrases,\n  dayAriaLabelFormat: undefined\n};\n\nfunction getMonths(initialMonth, numberOfMonths, withoutTransitionMonths) {\n  var month = initialMonth.clone();\n  if (!withoutTransitionMonths) month = month.subtract(1, 'month');\n\n  var months = [];\n  for (var i = 0; i < (withoutTransitionMonths ? numberOfMonths : numberOfMonths + 2); i += 1) {\n    months.push(month);\n    month = month.clone().add(1, 'month');\n  }\n\n  return months;\n}\n\nvar CalendarMonthGrid = function (_React$Component) {\n  _inherits(CalendarMonthGrid, _React$Component);\n\n  function CalendarMonthGrid(props) {\n    _classCallCheck(this, CalendarMonthGrid);\n\n    var _this = _possibleConstructorReturn(this, (CalendarMonthGrid.__proto__ || Object.getPrototypeOf(CalendarMonthGrid)).call(this, props));\n\n    var withoutTransitionMonths = props.orientation === _constants.VERTICAL_SCROLLABLE;\n    _this.state = {\n      months: getMonths(props.initialMonth, props.numberOfMonths, withoutTransitionMonths)\n    };\n\n    _this.isTransitionEndSupported = (0, _isTransitionEndSupported2['default'])();\n    _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);\n    _this.setContainerRef = _this.setContainerRef.bind(_this);\n\n    _this.locale = _moment2['default'].locale();\n    _this.onMonthSelect = _this.onMonthSelect.bind(_this);\n    _this.onYearSelect = _this.onYearSelect.bind(_this);\n    return _this;\n  }\n\n  _createClass(CalendarMonthGrid, [{\n    key: 'componentDidMount',\n    value: function () {\n      function componentDidMount() {\n        this.removeEventListener = (0, _consolidatedEvents.addEventListener)(this.container, 'transitionend', this.onTransitionEnd);\n      }\n\n      return componentDidMount;\n    }()\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function () {\n      function componentWillReceiveProps(nextProps) {\n        var _this2 = this;\n\n        var initialMonth = nextProps.initialMonth,\n            numberOfMonths = nextProps.numberOfMonths,\n            orientation = nextProps.orientation;\n        var months = this.state.months;\n        var _props = this.props,\n            prevInitialMonth = _props.initialMonth,\n            prevNumberOfMonths = _props.numberOfMonths;\n\n        var hasMonthChanged = !prevInitialMonth.isSame(initialMonth, 'month');\n        var hasNumberOfMonthsChanged = prevNumberOfMonths !== numberOfMonths;\n        var newMonths = months;\n\n        if (hasMonthChanged && !hasNumberOfMonthsChanged) {\n          if ((0, _isNextMonth2['default'])(prevInitialMonth, initialMonth)) {\n            newMonths = months.slice(1);\n            newMonths.push(months[months.length - 1].clone().add(1, 'month'));\n          } else if ((0, _isPrevMonth2['default'])(prevInitialMonth, initialMonth)) {\n            newMonths = months.slice(0, months.length - 1);\n            newMonths.unshift(months[0].clone().subtract(1, 'month'));\n          } else {\n            var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n            newMonths = getMonths(initialMonth, numberOfMonths, withoutTransitionMonths);\n          }\n        }\n\n        if (hasNumberOfMonthsChanged) {\n          var _withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n          newMonths = getMonths(initialMonth, numberOfMonths, _withoutTransitionMonths);\n        }\n\n        var momentLocale = _moment2['default'].locale();\n        if (this.locale !== momentLocale) {\n          this.locale = momentLocale;\n          newMonths = newMonths.map(function (m) {\n            return m.locale(_this2.locale);\n          });\n        }\n\n        this.setState({\n          months: newMonths\n        });\n      }\n\n      return componentWillReceiveProps;\n    }()\n  }, {\n    key: 'shouldComponentUpdate',\n    value: function () {\n      function shouldComponentUpdate(nextProps, nextState) {\n        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n      }\n\n      return shouldComponentUpdate;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate() {\n        var _props2 = this.props,\n            isAnimating = _props2.isAnimating,\n            transitionDuration = _props2.transitionDuration,\n            onMonthTransitionEnd = _props2.onMonthTransitionEnd;\n\n        // For IE9, immediately call onMonthTransitionEnd instead of\n        // waiting for the animation to complete. Similarly, if transitionDuration\n        // is set to 0, also immediately invoke the onMonthTransitionEnd callback\n\n        if ((!this.isTransitionEndSupported || !transitionDuration) && isAnimating) {\n          onMonthTransitionEnd();\n        }\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'componentWillUnmount',\n    value: function () {\n      function componentWillUnmount() {\n        if (this.removeEventListener) this.removeEventListener();\n      }\n\n      return componentWillUnmount;\n    }()\n  }, {\n    key: 'onTransitionEnd',\n    value: function () {\n      function onTransitionEnd() {\n        var onMonthTransitionEnd = this.props.onMonthTransitionEnd;\n\n        onMonthTransitionEnd();\n      }\n\n      return onTransitionEnd;\n    }()\n  }, {\n    key: 'onMonthSelect',\n    value: function () {\n      function onMonthSelect(currentMonth, newMonthVal) {\n        var newMonth = currentMonth.clone();\n        var _props3 = this.props,\n            onMonthChange = _props3.onMonthChange,\n            orientation = _props3.orientation;\n        var months = this.state.months;\n\n        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n        var initialMonthSubtraction = months.indexOf(currentMonth);\n        if (!withoutTransitionMonths) {\n          initialMonthSubtraction -= 1;\n        }\n        newMonth.set('month', newMonthVal).subtract(initialMonthSubtraction, 'months');\n        onMonthChange(newMonth);\n      }\n\n      return onMonthSelect;\n    }()\n  }, {\n    key: 'onYearSelect',\n    value: function () {\n      function onYearSelect(currentMonth, newYearVal) {\n        var newMonth = currentMonth.clone();\n        var _props4 = this.props,\n            onYearChange = _props4.onYearChange,\n            orientation = _props4.orientation;\n        var months = this.state.months;\n\n        var withoutTransitionMonths = orientation === _constants.VERTICAL_SCROLLABLE;\n        var initialMonthSubtraction = months.indexOf(currentMonth);\n        if (!withoutTransitionMonths) {\n          initialMonthSubtraction -= 1;\n        }\n        newMonth.set('year', newYearVal).subtract(initialMonthSubtraction, 'months');\n        onYearChange(newMonth);\n      }\n\n      return onYearSelect;\n    }()\n  }, {\n    key: 'setContainerRef',\n    value: function () {\n      function setContainerRef(ref) {\n        this.container = ref;\n      }\n\n      return setContainerRef;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _this3 = this;\n\n        var _props5 = this.props,\n            enableOutsideDays = _props5.enableOutsideDays,\n            firstVisibleMonthIndex = _props5.firstVisibleMonthIndex,\n            horizontalMonthPadding = _props5.horizontalMonthPadding,\n            isAnimating = _props5.isAnimating,\n            modifiers = _props5.modifiers,\n            numberOfMonths = _props5.numberOfMonths,\n            monthFormat = _props5.monthFormat,\n            orientation = _props5.orientation,\n            translationValue = _props5.translationValue,\n            daySize = _props5.daySize,\n            onDayMouseEnter = _props5.onDayMouseEnter,\n            onDayMouseLeave = _props5.onDayMouseLeave,\n            onDayClick = _props5.onDayClick,\n            renderMonthText = _props5.renderMonthText,\n            renderCalendarDay = _props5.renderCalendarDay,\n            renderDayContents = _props5.renderDayContents,\n            renderMonthElement = _props5.renderMonthElement,\n            onMonthTransitionEnd = _props5.onMonthTransitionEnd,\n            firstDayOfWeek = _props5.firstDayOfWeek,\n            focusedDate = _props5.focusedDate,\n            isFocused = _props5.isFocused,\n            isRTL = _props5.isRTL,\n            styles = _props5.styles,\n            phrases = _props5.phrases,\n            dayAriaLabelFormat = _props5.dayAriaLabelFormat,\n            transitionDuration = _props5.transitionDuration,\n            verticalBorderSpacing = _props5.verticalBorderSpacing,\n            setMonthTitleHeight = _props5.setMonthTitleHeight;\n        var months = this.state.months;\n\n        var isVertical = orientation === _constants.VERTICAL_ORIENTATION;\n        var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n        var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;\n\n        var calendarMonthWidth = (0, _getCalendarMonthWidth2['default'])(daySize, horizontalMonthPadding);\n\n        var width = isVertical || isVerticalScrollable ? calendarMonthWidth : (numberOfMonths + 2) * calendarMonthWidth;\n\n        var transformType = isVertical || isVerticalScrollable ? 'translateY' : 'translateX';\n        var transformValue = transformType + '(' + String(translationValue) + 'px)';\n\n        return _react2['default'].createElement(\n          'div',\n          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonthGrid, isHorizontal && styles.CalendarMonthGrid__horizontal, isVertical && styles.CalendarMonthGrid__vertical, isVerticalScrollable && styles.CalendarMonthGrid__vertical_scrollable, isAnimating && styles.CalendarMonthGrid__animating, isAnimating && transitionDuration && {\n            transition: 'transform ' + String(transitionDuration) + 'ms ease-in-out'\n          }, (0, _object2['default'])({}, (0, _getTransformStyles2['default'])(transformValue), {\n            width: width\n          })), {\n            ref: this.setContainerRef,\n            onTransitionEnd: onMonthTransitionEnd\n          }),\n          months.map(function (month, i) {\n            var isVisible = i >= firstVisibleMonthIndex && i < firstVisibleMonthIndex + numberOfMonths;\n            var hideForAnimation = i === 0 && !isVisible;\n            var showForAnimation = i === 0 && isAnimating && isVisible;\n            var monthString = (0, _toISOMonthString2['default'])(month);\n            return _react2['default'].createElement(\n              'div',\n              _extends({\n                key: monthString\n              }, (0, _reactWithStyles.css)(isHorizontal && styles.CalendarMonthGrid_month__horizontal, hideForAnimation && styles.CalendarMonthGrid_month__hideForAnimation, showForAnimation && !isVertical && !isRTL && {\n                position: 'absolute',\n                left: -calendarMonthWidth\n              }, showForAnimation && !isVertical && isRTL && {\n                position: 'absolute',\n                right: 0\n              }, showForAnimation && isVertical && {\n                position: 'absolute',\n                top: -translationValue\n              }, !isVisible && !isAnimating && styles.CalendarMonthGrid_month__hidden)),\n              _react2['default'].createElement(_CalendarMonth2['default'], {\n                month: month,\n                isVisible: isVisible,\n                enableOutsideDays: enableOutsideDays,\n                modifiers: modifiers[monthString],\n                monthFormat: monthFormat,\n                orientation: orientation,\n                onDayMouseEnter: onDayMouseEnter,\n                onDayMouseLeave: onDayMouseLeave,\n                onDayClick: onDayClick,\n                onMonthSelect: _this3.onMonthSelect,\n                onYearSelect: _this3.onYearSelect,\n                renderMonthText: renderMonthText,\n                renderCalendarDay: renderCalendarDay,\n                renderDayContents: renderDayContents,\n                renderMonthElement: renderMonthElement,\n                firstDayOfWeek: firstDayOfWeek,\n                daySize: daySize,\n                focusedDate: isVisible ? focusedDate : null,\n                isFocused: isFocused,\n                phrases: phrases,\n                setMonthTitleHeight: setMonthTitleHeight,\n                dayAriaLabelFormat: dayAriaLabelFormat,\n                verticalBorderSpacing: verticalBorderSpacing,\n                horizontalMonthPadding: horizontalMonthPadding\n              })\n            );\n          })\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return CalendarMonthGrid;\n}(_react2['default'].Component);\n\nCalendarMonthGrid.propTypes = propTypes;\nCalendarMonthGrid.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n  var _ref$reactDates = _ref.reactDates,\n      color = _ref$reactDates.color,\n      noScrollBarOnVerticalScrollable = _ref$reactDates.noScrollBarOnVerticalScrollable,\n      spacing = _ref$reactDates.spacing,\n      zIndex = _ref$reactDates.zIndex;\n  return {\n    CalendarMonthGrid: {\n      background: color.background,\n      textAlign: 'left',\n      zIndex: zIndex\n    },\n\n    CalendarMonthGrid__animating: {\n      zIndex: zIndex + 1\n    },\n\n    CalendarMonthGrid__horizontal: {\n      position: 'absolute',\n      left: spacing.dayPickerHorizontalPadding\n    },\n\n    CalendarMonthGrid__vertical: {\n      margin: '0 auto'\n    },\n\n    CalendarMonthGrid__vertical_scrollable: (0, _object2['default'])({\n      margin: '0 auto',\n      overflowY: 'scroll'\n    }, noScrollBarOnVerticalScrollable && {\n      '-webkitOverflowScrolling': 'touch',\n      '::-webkit-scrollbar': {\n        '-webkit-appearance': 'none',\n        display: 'none'\n      }\n    }),\n\n    CalendarMonthGrid_month__horizontal: {\n      display: 'inline-block',\n      verticalAlign: 'top',\n      minHeight: '100%'\n    },\n\n    CalendarMonthGrid_month__hideForAnimation: {\n      position: 'absolute',\n      zIndex: zIndex - 1,\n      opacity: 0,\n      pointerEvents: 'none'\n    },\n\n    CalendarMonthGrid_month__hidden: {\n      visibility: 'hidden'\n    }\n  };\n})(CalendarMonthGrid);\n\n/***/ }),\n/* 386 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = __webpack_require__(137);\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = __webpack_require__(135);\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _CalendarWeek = __webpack_require__(387);\n\nvar _CalendarWeek2 = _interopRequireDefault(_CalendarWeek);\n\nvar _CalendarDay = __webpack_require__(244);\n\nvar _CalendarDay2 = _interopRequireDefault(_CalendarDay);\n\nvar _calculateDimension = __webpack_require__(246);\n\nvar _calculateDimension2 = _interopRequireDefault(_calculateDimension);\n\nvar _getCalendarMonthWeeks = __webpack_require__(390);\n\nvar _getCalendarMonthWeeks2 = _interopRequireDefault(_getCalendarMonthWeeks);\n\nvar _isSameDay = __webpack_require__(184);\n\nvar _isSameDay2 = _interopRequireDefault(_isSameDay);\n\nvar _toISODateString = __webpack_require__(237);\n\nvar _toISODateString2 = _interopRequireDefault(_toISODateString);\n\nvar _ModifiersShape = __webpack_require__(151);\n\nvar _ModifiersShape2 = _interopRequireDefault(_ModifiersShape);\n\nvar _ScrollableOrientationShape = __webpack_require__(136);\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _DayOfWeekShape = __webpack_require__(150);\n\nvar _DayOfWeekShape2 = _interopRequireDefault(_DayOfWeekShape);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint react/no-array-index-key: 0 */\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  month: _reactMomentProptypes2['default'].momentObj,\n  horizontalMonthPadding: _airbnbPropTypes.nonNegativeInteger,\n  isVisible: _propTypes2['default'].bool,\n  enableOutsideDays: _propTypes2['default'].bool,\n  modifiers: _propTypes2['default'].objectOf(_ModifiersShape2['default']),\n  orientation: _ScrollableOrientationShape2['default'],\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  onDayClick: _propTypes2['default'].func,\n  onDayMouseEnter: _propTypes2['default'].func,\n  onDayMouseLeave: _propTypes2['default'].func,\n  onMonthSelect: _propTypes2['default'].func,\n  onYearSelect: _propTypes2['default'].func,\n  renderMonthText: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  renderCalendarDay: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  renderMonthElement: (0, _airbnbPropTypes.mutuallyExclusiveProps)(_propTypes2['default'].func, 'renderMonthText', 'renderMonthElement'),\n  firstDayOfWeek: _DayOfWeekShape2['default'],\n  setMonthTitleHeight: _propTypes2['default'].func,\n  verticalBorderSpacing: _airbnbPropTypes.nonNegativeInteger,\n\n  focusedDate: _reactMomentProptypes2['default'].momentObj, // indicates focusable day\n  isFocused: _propTypes2['default'].bool, // indicates whether or not to move focus to focusable day\n\n  // i18n\n  monthFormat: _propTypes2['default'].string,\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases)),\n  dayAriaLabelFormat: _propTypes2['default'].string\n}));\n\nvar defaultProps = {\n  month: (0, _moment2['default'])(),\n  horizontalMonthPadding: 13,\n  isVisible: true,\n  enableOutsideDays: false,\n  modifiers: {},\n  orientation: _constants.HORIZONTAL_ORIENTATION,\n  daySize: _constants.DAY_SIZE,\n  onDayClick: function () {\n    function onDayClick() {}\n\n    return onDayClick;\n  }(),\n  onDayMouseEnter: function () {\n    function onDayMouseEnter() {}\n\n    return onDayMouseEnter;\n  }(),\n  onDayMouseLeave: function () {\n    function onDayMouseLeave() {}\n\n    return onDayMouseLeave;\n  }(),\n  onMonthSelect: function () {\n    function onMonthSelect() {}\n\n    return onMonthSelect;\n  }(),\n  onYearSelect: function () {\n    function onYearSelect() {}\n\n    return onYearSelect;\n  }(),\n\n  renderMonthText: null,\n  renderCalendarDay: function () {\n    function renderCalendarDay(props) {\n      return _react2['default'].createElement(_CalendarDay2['default'], props);\n    }\n\n    return renderCalendarDay;\n  }(),\n  renderDayContents: null,\n  renderMonthElement: null,\n  firstDayOfWeek: null,\n  setMonthTitleHeight: null,\n\n  focusedDate: null,\n  isFocused: false,\n\n  // i18n\n  monthFormat: 'MMMM YYYY', // english locale\n  phrases: _defaultPhrases.CalendarDayPhrases,\n  dayAriaLabelFormat: undefined,\n  verticalBorderSpacing: undefined\n};\n\nvar CalendarMonth = function (_React$Component) {\n  _inherits(CalendarMonth, _React$Component);\n\n  function CalendarMonth(props) {\n    _classCallCheck(this, CalendarMonth);\n\n    var _this = _possibleConstructorReturn(this, (CalendarMonth.__proto__ || Object.getPrototypeOf(CalendarMonth)).call(this, props));\n\n    _this.state = {\n      weeks: (0, _getCalendarMonthWeeks2['default'])(props.month, props.enableOutsideDays, props.firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : props.firstDayOfWeek)\n    };\n\n    _this.setCaptionRef = _this.setCaptionRef.bind(_this);\n    _this.setMonthTitleHeight = _this.setMonthTitleHeight.bind(_this);\n    return _this;\n  }\n\n  _createClass(CalendarMonth, [{\n    key: 'componentDidMount',\n    value: function () {\n      function componentDidMount() {\n        this.setMonthTitleHeightTimeout = setTimeout(this.setMonthTitleHeight, 0);\n      }\n\n      return componentDidMount;\n    }()\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function () {\n      function componentWillReceiveProps(nextProps) {\n        var month = nextProps.month,\n            enableOutsideDays = nextProps.enableOutsideDays,\n            firstDayOfWeek = nextProps.firstDayOfWeek;\n        var _props = this.props,\n            prevMonth = _props.month,\n            prevEnableOutsideDays = _props.enableOutsideDays,\n            prevFirstDayOfWeek = _props.firstDayOfWeek;\n\n        if (!month.isSame(prevMonth) || enableOutsideDays !== prevEnableOutsideDays || firstDayOfWeek !== prevFirstDayOfWeek) {\n          this.setState({\n            weeks: (0, _getCalendarMonthWeeks2['default'])(month, enableOutsideDays, firstDayOfWeek == null ? _moment2['default'].localeData().firstDayOfWeek() : firstDayOfWeek)\n          });\n        }\n      }\n\n      return componentWillReceiveProps;\n    }()\n  }, {\n    key: 'shouldComponentUpdate',\n    value: function () {\n      function shouldComponentUpdate(nextProps, nextState) {\n        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n      }\n\n      return shouldComponentUpdate;\n    }()\n  }, {\n    key: 'componentWillUnmount',\n    value: function () {\n      function componentWillUnmount() {\n        if (this.setMonthTitleHeightTimeout) {\n          clearTimeout(this.setMonthTitleHeightTimeout);\n        }\n      }\n\n      return componentWillUnmount;\n    }()\n  }, {\n    key: 'setMonthTitleHeight',\n    value: function () {\n      function setMonthTitleHeight() {\n        var setMonthTitleHeight = this.props.setMonthTitleHeight;\n\n        if (setMonthTitleHeight) {\n          var captionHeight = (0, _calculateDimension2['default'])(this.captionRef, 'height', true, true);\n          setMonthTitleHeight(captionHeight);\n        }\n      }\n\n      return setMonthTitleHeight;\n    }()\n  }, {\n    key: 'setCaptionRef',\n    value: function () {\n      function setCaptionRef(ref) {\n        this.captionRef = ref;\n      }\n\n      return setCaptionRef;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _props2 = this.props,\n            dayAriaLabelFormat = _props2.dayAriaLabelFormat,\n            daySize = _props2.daySize,\n            focusedDate = _props2.focusedDate,\n            horizontalMonthPadding = _props2.horizontalMonthPadding,\n            isFocused = _props2.isFocused,\n            isVisible = _props2.isVisible,\n            modifiers = _props2.modifiers,\n            month = _props2.month,\n            monthFormat = _props2.monthFormat,\n            onDayClick = _props2.onDayClick,\n            onDayMouseEnter = _props2.onDayMouseEnter,\n            onDayMouseLeave = _props2.onDayMouseLeave,\n            onMonthSelect = _props2.onMonthSelect,\n            onYearSelect = _props2.onYearSelect,\n            orientation = _props2.orientation,\n            phrases = _props2.phrases,\n            renderCalendarDay = _props2.renderCalendarDay,\n            renderDayContents = _props2.renderDayContents,\n            renderMonthElement = _props2.renderMonthElement,\n            renderMonthText = _props2.renderMonthText,\n            styles = _props2.styles,\n            verticalBorderSpacing = _props2.verticalBorderSpacing;\n        var weeks = this.state.weeks;\n\n        var monthTitle = renderMonthText ? renderMonthText(month) : month.format(monthFormat);\n\n        var verticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n\n        return _react2['default'].createElement(\n          'div',\n          _extends({}, (0, _reactWithStyles.css)(styles.CalendarMonth, { padding: '0 ' + String(horizontalMonthPadding) + 'px' }), {\n            'data-visible': isVisible\n          }),\n          _react2['default'].createElement(\n            'div',\n            _extends({\n              ref: this.setCaptionRef\n            }, (0, _reactWithStyles.css)(styles.CalendarMonth_caption, verticalScrollable && styles.CalendarMonth_caption__verticalScrollable)),\n            renderMonthElement ? renderMonthElement({ month: month, onMonthSelect: onMonthSelect, onYearSelect: onYearSelect }) : _react2['default'].createElement(\n              'strong',\n              null,\n              monthTitle\n            )\n          ),\n          _react2['default'].createElement(\n            'table',\n            _extends({}, (0, _reactWithStyles.css)(!verticalBorderSpacing && styles.CalendarMonth_table, verticalBorderSpacing && styles.CalendarMonth_verticalSpacing, verticalBorderSpacing && { borderSpacing: '0px ' + String(verticalBorderSpacing) + 'px' }), {\n              role: 'presentation'\n            }),\n            _react2['default'].createElement(\n              'tbody',\n              null,\n              weeks.map(function (week, i) {\n                return _react2['default'].createElement(\n                  _CalendarWeek2['default'],\n                  { key: i },\n                  week.map(function (day, dayOfWeek) {\n                    return renderCalendarDay({\n                      key: dayOfWeek,\n                      day: day,\n                      daySize: daySize,\n                      isOutsideDay: !day || day.month() !== month.month(),\n                      tabIndex: isVisible && (0, _isSameDay2['default'])(day, focusedDate) ? 0 : -1,\n                      isFocused: isFocused,\n                      onDayMouseEnter: onDayMouseEnter,\n                      onDayMouseLeave: onDayMouseLeave,\n                      onDayClick: onDayClick,\n                      renderDayContents: renderDayContents,\n                      phrases: phrases,\n                      modifiers: modifiers[(0, _toISODateString2['default'])(day)],\n                      ariaLabelFormat: dayAriaLabelFormat\n                    });\n                  })\n                );\n              })\n            )\n          )\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return CalendarMonth;\n}(_react2['default'].Component);\n\nCalendarMonth.propTypes = propTypes;\nCalendarMonth.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref) {\n  var _ref$reactDates = _ref.reactDates,\n      color = _ref$reactDates.color,\n      font = _ref$reactDates.font,\n      spacing = _ref$reactDates.spacing;\n  return {\n    CalendarMonth: {\n      background: color.background,\n      textAlign: 'center',\n      verticalAlign: 'top',\n      userSelect: 'none'\n    },\n\n    CalendarMonth_table: {\n      borderCollapse: 'collapse',\n      borderSpacing: 0\n    },\n\n    CalendarMonth_verticalSpacing: {\n      borderCollapse: 'separate'\n    },\n\n    CalendarMonth_caption: {\n      color: color.text,\n      fontSize: font.captionSize,\n      textAlign: 'center',\n      paddingTop: spacing.captionPaddingTop,\n      paddingBottom: spacing.captionPaddingBottom,\n      captionSide: 'initial'\n    },\n\n    CalendarMonth_caption__verticalScrollable: {\n      paddingTop: 12,\n      paddingBottom: 7\n    }\n  };\n})(CalendarMonth);\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = CalendarWeek;\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _CalendarDay = __webpack_require__(244);\n\nvar _CalendarDay2 = _interopRequireDefault(_CalendarDay);\n\nvar _CustomizableCalendarDay = __webpack_require__(389);\n\nvar _CustomizableCalendarDay2 = _interopRequireDefault(_CustomizableCalendarDay);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)({\n  children: (0, _airbnbPropTypes.or)([(0, _airbnbPropTypes.childrenOfType)(_CalendarDay2['default']), (0, _airbnbPropTypes.childrenOfType)(_CustomizableCalendarDay2['default'])]).isRequired\n});\n\nfunction CalendarWeek(_ref) {\n  var children = _ref.children;\n\n  return _react2['default'].createElement(\n    'tr',\n    null,\n    children\n  );\n}\n\nCalendarWeek.propTypes = propTypes;\n\n/***/ }),\n/* 388 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getPhrase;\nfunction getPhrase(phrase, args) {\n  if (typeof phrase === 'string') return phrase;\n\n  if (typeof phrase === 'function') {\n    return phrase(args);\n  }\n\n  return '';\n}\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PureCustomizableCalendarDay = exports.selectedStyles = exports.lastInRangeStyles = exports.selectedSpanStyles = exports.hoveredSpanStyles = exports.blockedOutOfRangeStyles = exports.blockedCalendarStyles = exports.blockedMinNightsStyles = exports.highlightedCalendarStyles = exports.outsideStyles = exports.defaultStyles = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactAddonsShallowCompare = __webpack_require__(137);\n\nvar _reactAddonsShallowCompare2 = _interopRequireDefault(_reactAddonsShallowCompare);\n\nvar _reactMomentProptypes = __webpack_require__(135);\n\nvar _reactMomentProptypes2 = _interopRequireDefault(_reactMomentProptypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _getCalendarDaySettings = __webpack_require__(245);\n\nvar _getCalendarDaySettings2 = _interopRequireDefault(_getCalendarDaySettings);\n\nvar _constants = __webpack_require__(66);\n\nvar _DefaultTheme = __webpack_require__(219);\n\nvar _DefaultTheme2 = _interopRequireDefault(_DefaultTheme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar color = _DefaultTheme2['default'].reactDates.color;\n\n\nfunction getStyles(stylesObj, isHovered) {\n  if (!stylesObj) return null;\n\n  var hover = stylesObj.hover;\n\n  if (isHovered && hover) {\n    return hover;\n  }\n\n  return stylesObj;\n}\n\nvar DayStyleShape = _propTypes2['default'].shape({\n  background: _propTypes2['default'].string,\n  border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),\n  color: _propTypes2['default'].string,\n\n  hover: _propTypes2['default'].shape({\n    background: _propTypes2['default'].string,\n    border: (0, _airbnbPropTypes.or)([_propTypes2['default'].string, _propTypes2['default'].number]),\n    color: _propTypes2['default'].string\n  })\n});\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  day: _reactMomentProptypes2['default'].momentObj,\n  daySize: _airbnbPropTypes.nonNegativeInteger,\n  isOutsideDay: _propTypes2['default'].bool,\n  modifiers: _propTypes2['default'].instanceOf(Set),\n  isFocused: _propTypes2['default'].bool,\n  tabIndex: _propTypes2['default'].oneOf([0, -1]),\n  onDayClick: _propTypes2['default'].func,\n  onDayMouseEnter: _propTypes2['default'].func,\n  onDayMouseLeave: _propTypes2['default'].func,\n  renderDayContents: _propTypes2['default'].func,\n  ariaLabelFormat: _propTypes2['default'].string,\n\n  // style overrides\n  defaultStyles: DayStyleShape,\n  outsideStyles: DayStyleShape,\n  todayStyles: DayStyleShape,\n  firstDayOfWeekStyles: DayStyleShape,\n  lastDayOfWeekStyles: DayStyleShape,\n  highlightedCalendarStyles: DayStyleShape,\n  blockedMinNightsStyles: DayStyleShape,\n  blockedCalendarStyles: DayStyleShape,\n  blockedOutOfRangeStyles: DayStyleShape,\n  hoveredSpanStyles: DayStyleShape,\n  selectedSpanStyles: DayStyleShape,\n  lastInRangeStyles: DayStyleShape,\n  selectedStyles: DayStyleShape,\n  selectedStartStyles: DayStyleShape,\n  selectedEndStyles: DayStyleShape,\n  afterHoveredStartStyles: DayStyleShape,\n\n  // internationalization\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.CalendarDayPhrases))\n}));\n\nvar defaultStyles = exports.defaultStyles = {\n  border: '1px solid ' + String(color.core.borderLight),\n  color: color.text,\n  background: color.background,\n\n  hover: {\n    background: color.core.borderLight,\n    border: '1px double ' + String(color.core.borderLight),\n    color: 'inherit'\n  }\n};\n\nvar outsideStyles = exports.outsideStyles = {\n  background: color.outside.backgroundColor,\n  border: 0,\n  color: color.outside.color\n};\n\nvar highlightedCalendarStyles = exports.highlightedCalendarStyles = {\n  background: color.highlighted.backgroundColor,\n  color: color.highlighted.color,\n\n  hover: {\n    background: color.highlighted.backgroundColor_hover,\n    color: color.highlighted.color_active\n  }\n};\n\nvar blockedMinNightsStyles = exports.blockedMinNightsStyles = {\n  background: color.minimumNights.backgroundColor,\n  border: '1px solid ' + String(color.minimumNights.borderColor),\n  color: color.minimumNights.color,\n\n  hover: {\n    background: color.minimumNights.backgroundColor_hover,\n    color: color.minimumNights.color_active\n  }\n};\n\nvar blockedCalendarStyles = exports.blockedCalendarStyles = {\n  background: color.blocked_calendar.backgroundColor,\n  border: '1px solid ' + String(color.blocked_calendar.borderColor),\n  color: color.blocked_calendar.color,\n\n  hover: {\n    background: color.blocked_calendar.backgroundColor_hover,\n    border: '1px solid ' + String(color.blocked_calendar.borderColor),\n    color: color.blocked_calendar.color_active\n  }\n};\n\nvar blockedOutOfRangeStyles = exports.blockedOutOfRangeStyles = {\n  background: color.blocked_out_of_range.backgroundColor,\n  border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n  color: color.blocked_out_of_range.color,\n\n  hover: {\n    background: color.blocked_out_of_range.backgroundColor_hover,\n    border: '1px solid ' + String(color.blocked_out_of_range.borderColor),\n    color: color.blocked_out_of_range.color_active\n  }\n};\n\nvar hoveredSpanStyles = exports.hoveredSpanStyles = {\n  background: color.hoveredSpan.backgroundColor,\n  border: '1px solid ' + String(color.hoveredSpan.borderColor),\n  color: color.hoveredSpan.color,\n\n  hover: {\n    background: color.hoveredSpan.backgroundColor_hover,\n    border: '1px solid ' + String(color.hoveredSpan.borderColor),\n    color: color.hoveredSpan.color_active\n  }\n};\n\nvar selectedSpanStyles = exports.selectedSpanStyles = {\n  background: color.selectedSpan.backgroundColor,\n  border: '1px solid ' + String(color.selectedSpan.borderColor),\n  color: color.selectedSpan.color,\n\n  hover: {\n    background: color.selectedSpan.backgroundColor_hover,\n    border: '1px solid ' + String(color.selectedSpan.borderColor),\n    color: color.selectedSpan.color_active\n  }\n};\n\nvar lastInRangeStyles = exports.lastInRangeStyles = {\n  borderRight: color.core.primary\n};\n\nvar selectedStyles = exports.selectedStyles = {\n  background: color.selected.backgroundColor,\n  border: '1px solid ' + String(color.selected.borderColor),\n  color: color.selected.color,\n\n  hover: {\n    background: color.selected.backgroundColor_hover,\n    border: '1px solid ' + String(color.selected.borderColor),\n    color: color.selected.color_active\n  }\n};\n\nvar defaultProps = {\n  day: (0, _moment2['default'])(),\n  daySize: _constants.DAY_SIZE,\n  isOutsideDay: false,\n  modifiers: new Set(),\n  isFocused: false,\n  tabIndex: -1,\n  onDayClick: function () {\n    function onDayClick() {}\n\n    return onDayClick;\n  }(),\n  onDayMouseEnter: function () {\n    function onDayMouseEnter() {}\n\n    return onDayMouseEnter;\n  }(),\n  onDayMouseLeave: function () {\n    function onDayMouseLeave() {}\n\n    return onDayMouseLeave;\n  }(),\n\n  renderDayContents: null,\n  ariaLabelFormat: 'dddd, LL',\n\n  // style defaults\n  defaultStyles: defaultStyles,\n  outsideStyles: outsideStyles,\n  todayStyles: {},\n  highlightedCalendarStyles: highlightedCalendarStyles,\n  blockedMinNightsStyles: blockedMinNightsStyles,\n  blockedCalendarStyles: blockedCalendarStyles,\n  blockedOutOfRangeStyles: blockedOutOfRangeStyles,\n  hoveredSpanStyles: hoveredSpanStyles,\n  selectedSpanStyles: selectedSpanStyles,\n  lastInRangeStyles: lastInRangeStyles,\n  selectedStyles: selectedStyles,\n  selectedStartStyles: {},\n  selectedEndStyles: {},\n  afterHoveredStartStyles: {},\n  firstDayOfWeekStyles: {},\n  lastDayOfWeekStyles: {},\n\n  // internationalization\n  phrases: _defaultPhrases.CalendarDayPhrases\n};\n\nvar CustomizableCalendarDay = function (_React$Component) {\n  _inherits(CustomizableCalendarDay, _React$Component);\n\n  function CustomizableCalendarDay() {\n    var _ref;\n\n    _classCallCheck(this, CustomizableCalendarDay);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var _this = _possibleConstructorReturn(this, (_ref = CustomizableCalendarDay.__proto__ || Object.getPrototypeOf(CustomizableCalendarDay)).call.apply(_ref, [this].concat(args)));\n\n    _this.state = {\n      isHovered: false\n    };\n\n    _this.setButtonRef = _this.setButtonRef.bind(_this);\n    return _this;\n  }\n\n  _createClass(CustomizableCalendarDay, [{\n    key: 'shouldComponentUpdate',\n    value: function () {\n      function shouldComponentUpdate(nextProps, nextState) {\n        return (0, _reactAddonsShallowCompare2['default'])(this, nextProps, nextState);\n      }\n\n      return shouldComponentUpdate;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate(prevProps) {\n        var _props = this.props,\n            isFocused = _props.isFocused,\n            tabIndex = _props.tabIndex;\n\n        if (tabIndex === 0) {\n          if (isFocused || tabIndex !== prevProps.tabIndex) {\n            this.buttonRef.focus();\n          }\n        }\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'onDayClick',\n    value: function () {\n      function onDayClick(day, e) {\n        var onDayClick = this.props.onDayClick;\n\n        onDayClick(day, e);\n      }\n\n      return onDayClick;\n    }()\n  }, {\n    key: 'onDayMouseEnter',\n    value: function () {\n      function onDayMouseEnter(day, e) {\n        var onDayMouseEnter = this.props.onDayMouseEnter;\n\n        this.setState({ isHovered: true });\n        onDayMouseEnter(day, e);\n      }\n\n      return onDayMouseEnter;\n    }()\n  }, {\n    key: 'onDayMouseLeave',\n    value: function () {\n      function onDayMouseLeave(day, e) {\n        var onDayMouseLeave = this.props.onDayMouseLeave;\n\n        this.setState({ isHovered: false });\n        onDayMouseLeave(day, e);\n      }\n\n      return onDayMouseLeave;\n    }()\n  }, {\n    key: 'onKeyDown',\n    value: function () {\n      function onKeyDown(day, e) {\n        var onDayClick = this.props.onDayClick;\n        var key = e.key;\n\n        if (key === 'Enter' || key === ' ') {\n          onDayClick(day, e);\n        }\n      }\n\n      return onKeyDown;\n    }()\n  }, {\n    key: 'setButtonRef',\n    value: function () {\n      function setButtonRef(ref) {\n        this.buttonRef = ref;\n      }\n\n      return setButtonRef;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _this2 = this;\n\n        var _props2 = this.props,\n            day = _props2.day,\n            ariaLabelFormat = _props2.ariaLabelFormat,\n            daySize = _props2.daySize,\n            isOutsideDay = _props2.isOutsideDay,\n            modifiers = _props2.modifiers,\n            tabIndex = _props2.tabIndex,\n            renderDayContents = _props2.renderDayContents,\n            styles = _props2.styles,\n            phrases = _props2.phrases,\n            defaultStylesWithHover = _props2.defaultStyles,\n            outsideStylesWithHover = _props2.outsideStyles,\n            todayStylesWithHover = _props2.todayStyles,\n            firstDayOfWeekStylesWithHover = _props2.firstDayOfWeekStyles,\n            lastDayOfWeekStylesWithHover = _props2.lastDayOfWeekStyles,\n            highlightedCalendarStylesWithHover = _props2.highlightedCalendarStyles,\n            blockedMinNightsStylesWithHover = _props2.blockedMinNightsStyles,\n            blockedCalendarStylesWithHover = _props2.blockedCalendarStyles,\n            blockedOutOfRangeStylesWithHover = _props2.blockedOutOfRangeStyles,\n            hoveredSpanStylesWithHover = _props2.hoveredSpanStyles,\n            selectedSpanStylesWithHover = _props2.selectedSpanStyles,\n            lastInRangeStylesWithHover = _props2.lastInRangeStyles,\n            selectedStylesWithHover = _props2.selectedStyles,\n            selectedStartStylesWithHover = _props2.selectedStartStyles,\n            selectedEndStylesWithHover = _props2.selectedEndStyles,\n            afterHoveredStartStylesWithHover = _props2.afterHoveredStartStyles;\n        var isHovered = this.state.isHovered;\n\n\n        if (!day) return _react2['default'].createElement('td', null);\n\n        var _getCalendarDaySettin = (0, _getCalendarDaySettings2['default'])(day, ariaLabelFormat, daySize, modifiers, phrases),\n            daySizeStyles = _getCalendarDaySettin.daySizeStyles,\n            useDefaultCursor = _getCalendarDaySettin.useDefaultCursor,\n            selected = _getCalendarDaySettin.selected,\n            hoveredSpan = _getCalendarDaySettin.hoveredSpan,\n            isOutsideRange = _getCalendarDaySettin.isOutsideRange,\n            ariaLabel = _getCalendarDaySettin.ariaLabel;\n\n        return _react2['default'].createElement(\n          'td',\n          _extends({}, (0, _reactWithStyles.css)(styles.CalendarDay, useDefaultCursor && styles.CalendarDay__defaultCursor, daySizeStyles, getStyles(defaultStylesWithHover, isHovered), isOutsideDay && getStyles(outsideStylesWithHover, isHovered), modifiers.has('today') && getStyles(todayStylesWithHover, isHovered), modifiers.has('first-day-of-week') && getStyles(firstDayOfWeekStylesWithHover, isHovered), modifiers.has('last-day-of-week') && getStyles(lastDayOfWeekStylesWithHover, isHovered), modifiers.has('highlighted-calendar') && getStyles(highlightedCalendarStylesWithHover, isHovered), modifiers.has('blocked-minimum-nights') && getStyles(blockedMinNightsStylesWithHover, isHovered), modifiers.has('blocked-calendar') && getStyles(blockedCalendarStylesWithHover, isHovered), hoveredSpan && getStyles(hoveredSpanStylesWithHover, isHovered), modifiers.has('after-hovered-start') && getStyles(afterHoveredStartStylesWithHover, isHovered), modifiers.has('selected-span') && getStyles(selectedSpanStylesWithHover, isHovered), modifiers.has('last-in-range') && getStyles(lastInRangeStylesWithHover, isHovered), selected && getStyles(selectedStylesWithHover, isHovered), modifiers.has('selected-start') && getStyles(selectedStartStylesWithHover, isHovered), modifiers.has('selected-end') && getStyles(selectedEndStylesWithHover, isHovered), isOutsideRange && getStyles(blockedOutOfRangeStylesWithHover, isHovered)), {\n            role: 'button' // eslint-disable-line jsx-a11y/no-noninteractive-element-to-interactive-role\n            , ref: this.setButtonRef,\n            'aria-label': ariaLabel,\n            onMouseEnter: function () {\n              function onMouseEnter(e) {\n                _this2.onDayMouseEnter(day, e);\n              }\n\n              return onMouseEnter;\n            }(),\n            onMouseLeave: function () {\n              function onMouseLeave(e) {\n                _this2.onDayMouseLeave(day, e);\n              }\n\n              return onMouseLeave;\n            }(),\n            onMouseUp: function () {\n              function onMouseUp(e) {\n                e.currentTarget.blur();\n              }\n\n              return onMouseUp;\n            }(),\n            onClick: function () {\n              function onClick(e) {\n                _this2.onDayClick(day, e);\n              }\n\n              return onClick;\n            }(),\n            onKeyDown: function () {\n              function onKeyDown(e) {\n                _this2.onKeyDown(day, e);\n              }\n\n              return onKeyDown;\n            }(),\n            tabIndex: tabIndex\n          }),\n          renderDayContents ? renderDayContents(day, modifiers) : day.format('D')\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return CustomizableCalendarDay;\n}(_react2['default'].Component);\n\nCustomizableCalendarDay.propTypes = propTypes;\nCustomizableCalendarDay.defaultProps = defaultProps;\n\nexports.PureCustomizableCalendarDay = CustomizableCalendarDay;\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n  var font = _ref2.reactDates.font;\n  return {\n    CalendarDay: {\n      boxSizing: 'border-box',\n      cursor: 'pointer',\n      fontSize: font.size,\n      textAlign: 'center',\n\n      ':active': {\n        outline: 0\n      }\n    },\n\n    CalendarDay__defaultCursor: {\n      cursor: 'default'\n    }\n  };\n})(CustomizableCalendarDay);\n\n/***/ }),\n/* 390 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getCalendarMonthWeeks;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getCalendarMonthWeeks(month, enableOutsideDays) {\n  var firstDayOfWeek = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _moment2['default'].localeData().firstDayOfWeek();\n\n  if (!_moment2['default'].isMoment(month) || !month.isValid()) {\n    throw new TypeError('`month` must be a valid moment object');\n  }\n  if (_constants.WEEKDAYS.indexOf(firstDayOfWeek) === -1) {\n    throw new TypeError('`firstDayOfWeek` must be an integer between 0 and 6');\n  }\n\n  // set utc offset to get correct dates in future (when timezone changes)\n  var firstOfMonth = month.clone().startOf('month').hour(12);\n  var lastOfMonth = month.clone().endOf('month').hour(12);\n\n  // calculate the exact first and last days to fill the entire matrix\n  // (considering days outside month)\n  var prevDays = (firstOfMonth.day() + 7 - firstDayOfWeek) % 7;\n  var nextDays = (firstDayOfWeek + 6 - lastOfMonth.day()) % 7;\n  var firstDay = firstOfMonth.clone().subtract(prevDays, 'day');\n  var lastDay = lastOfMonth.clone().add(nextDays, 'day');\n\n  var totalDays = lastDay.diff(firstDay, 'days') + 1;\n\n  var currentDay = firstDay.clone();\n  var weeksInMonth = [];\n\n  for (var i = 0; i < totalDays; i += 1) {\n    if (i % 7 === 0) {\n      weeksInMonth.push([]);\n    }\n\n    var day = null;\n    if (i >= prevDays && i < totalDays - nextDays || enableOutsideDays) {\n      day = currentDay.clone();\n    }\n\n    weeksInMonth[weeksInMonth.length - 1].push(day);\n\n    currentDay.add(1, 'day');\n  }\n\n  return weeksInMonth;\n}\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isTransitionEndSupported;\nfunction isTransitionEndSupported() {\n  return !!(typeof window !== 'undefined' && 'TransitionEvent' in window);\n}\n\n/***/ }),\n/* 392 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports[\"default\"] = getTransformStyles;\nfunction getTransformStyles(transformValue) {\n  return {\n    transform: transformValue,\n    msTransform: transformValue,\n    MozTransform: transformValue,\n    WebkitTransform: transformValue\n  };\n}\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isPrevMonth;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isSameMonth = __webpack_require__(248);\n\nvar _isSameMonth2 = _interopRequireDefault(_isSameMonth);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isPrevMonth(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n  return (0, _isSameMonth2['default'])(a.clone().subtract(1, 'month'), b);\n}\n\n/***/ }),\n/* 394 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = isNextMonth;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _isSameMonth = __webpack_require__(248);\n\nvar _isSameMonth2 = _interopRequireDefault(_isSameMonth);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction isNextMonth(a, b) {\n  if (!_moment2['default'].isMoment(a) || !_moment2['default'].isMoment(b)) return false;\n  return (0, _isSameMonth2['default'])(a.clone().add(1, 'month'), b);\n}\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _LeftArrow = __webpack_require__(396);\n\nvar _LeftArrow2 = _interopRequireDefault(_LeftArrow);\n\nvar _RightArrow = __webpack_require__(397);\n\nvar _RightArrow2 = _interopRequireDefault(_RightArrow);\n\nvar _ChevronUp = __webpack_require__(398);\n\nvar _ChevronUp2 = _interopRequireDefault(_ChevronUp);\n\nvar _ChevronDown = __webpack_require__(399);\n\nvar _ChevronDown2 = _interopRequireDefault(_ChevronDown);\n\nvar _ScrollableOrientationShape = __webpack_require__(136);\n\nvar _ScrollableOrientationShape2 = _interopRequireDefault(_ScrollableOrientationShape);\n\nvar _constants = __webpack_require__(66);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  navPrev: _propTypes2['default'].node,\n  navNext: _propTypes2['default'].node,\n  orientation: _ScrollableOrientationShape2['default'],\n\n  onPrevMonthClick: _propTypes2['default'].func,\n  onNextMonthClick: _propTypes2['default'].func,\n\n  // internationalization\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerNavigationPhrases)),\n\n  isRTL: _propTypes2['default'].bool\n}));\n\nvar defaultProps = {\n  navPrev: null,\n  navNext: null,\n  orientation: _constants.HORIZONTAL_ORIENTATION,\n\n  onPrevMonthClick: function () {\n    function onPrevMonthClick() {}\n\n    return onPrevMonthClick;\n  }(),\n  onNextMonthClick: function () {\n    function onNextMonthClick() {}\n\n    return onNextMonthClick;\n  }(),\n\n\n  // internationalization\n  phrases: _defaultPhrases.DayPickerNavigationPhrases,\n  isRTL: false\n};\n\nfunction DayPickerNavigation(_ref) {\n  var navPrev = _ref.navPrev,\n      navNext = _ref.navNext,\n      onPrevMonthClick = _ref.onPrevMonthClick,\n      onNextMonthClick = _ref.onNextMonthClick,\n      orientation = _ref.orientation,\n      phrases = _ref.phrases,\n      isRTL = _ref.isRTL,\n      styles = _ref.styles;\n\n  var isHorizontal = orientation === _constants.HORIZONTAL_ORIENTATION;\n  var isVertical = orientation !== _constants.HORIZONTAL_ORIENTATION;\n  var isVerticalScrollable = orientation === _constants.VERTICAL_SCROLLABLE;\n\n  var navPrevIcon = navPrev;\n  var navNextIcon = navNext;\n  var isDefaultNavPrev = false;\n  var isDefaultNavNext = false;\n  if (!navPrevIcon) {\n    isDefaultNavPrev = true;\n    var Icon = isVertical ? _ChevronUp2['default'] : _LeftArrow2['default'];\n    if (isRTL && !isVertical) {\n      Icon = _RightArrow2['default'];\n    }\n    navPrevIcon = _react2['default'].createElement(Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));\n  }\n\n  if (!navNextIcon) {\n    isDefaultNavNext = true;\n    var _Icon = isVertical ? _ChevronDown2['default'] : _RightArrow2['default'];\n    if (isRTL && !isVertical) {\n      _Icon = _LeftArrow2['default'];\n    }\n    navNextIcon = _react2['default'].createElement(_Icon, (0, _reactWithStyles.css)(isHorizontal && styles.DayPickerNavigation_svg__horizontal, isVertical && styles.DayPickerNavigation_svg__vertical));\n  }\n\n  var isDefaultNav = isVerticalScrollable ? isDefaultNavNext : isDefaultNavNext || isDefaultNavPrev;\n\n  return _react2['default'].createElement(\n    'div',\n    _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation, isHorizontal && styles.DayPickerNavigation__horizontal].concat(_toConsumableArray(isVertical && [styles.DayPickerNavigation__vertical, isDefaultNav && styles.DayPickerNavigation__verticalDefault]), _toConsumableArray(isVerticalScrollable && [styles.DayPickerNavigation__verticalScrollable, isDefaultNav && styles.DayPickerNavigation__verticalScrollableDefault]))),\n    !isVerticalScrollable && _react2['default'].createElement(\n      'div',\n      _extends({\n        role: 'button',\n        tabIndex: '0'\n      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavPrev && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__horizontalDefault, !isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical].concat(_toConsumableArray(isDefaultNavPrev && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_prevButton__verticalDefault]))))), {\n        'aria-label': phrases.jumpToPrevMonth,\n        onClick: onPrevMonthClick,\n        onKeyUp: function () {\n          function onKeyUp(e) {\n            var key = e.key;\n\n            if (key === 'Enter' || key === ' ') onPrevMonthClick(e);\n          }\n\n          return onKeyUp;\n        }(),\n        onMouseUp: function () {\n          function onMouseUp(e) {\n            e.currentTarget.blur();\n          }\n\n          return onMouseUp;\n        }()\n      }),\n      navPrevIcon\n    ),\n    _react2['default'].createElement(\n      'div',\n      _extends({\n        role: 'button',\n        tabIndex: '0'\n      }, _reactWithStyles.css.apply(undefined, [styles.DayPickerNavigation_button, isDefaultNavNext && styles.DayPickerNavigation_button__default].concat(_toConsumableArray(isHorizontal && [styles.DayPickerNavigation_button__horizontal].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__horizontalDefault, isRTL && styles.DayPickerNavigation_leftButton__horizontalDefault, !isRTL && styles.DayPickerNavigation_rightButton__horizontalDefault]))), _toConsumableArray(isVertical && [styles.DayPickerNavigation_button__vertical, styles.DayPickerNavigation_nextButton__vertical].concat(_toConsumableArray(isDefaultNavNext && [styles.DayPickerNavigation_button__verticalDefault, styles.DayPickerNavigation_nextButton__verticalDefault, isVerticalScrollable && styles.DayPickerNavigation_nextButton__verticalScrollableDefault]))))), {\n        'aria-label': phrases.jumpToNextMonth,\n        onClick: onNextMonthClick,\n        onKeyUp: function () {\n          function onKeyUp(e) {\n            var key = e.key;\n\n            if (key === 'Enter' || key === ' ') onNextMonthClick(e);\n          }\n\n          return onKeyUp;\n        }(),\n        onMouseUp: function () {\n          function onMouseUp(e) {\n            e.currentTarget.blur();\n          }\n\n          return onMouseUp;\n        }()\n      }),\n      navNextIcon\n    )\n  );\n}\n\nDayPickerNavigation.propTypes = propTypes;\nDayPickerNavigation.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n  var _ref2$reactDates = _ref2.reactDates,\n      color = _ref2$reactDates.color,\n      zIndex = _ref2$reactDates.zIndex;\n  return {\n    DayPickerNavigation: {\n      position: 'relative',\n      zIndex: zIndex + 2\n    },\n\n    DayPickerNavigation__horizontal: {\n      height: 0\n    },\n\n    DayPickerNavigation__vertical: {},\n    DayPickerNavigation__verticalScrollable: {},\n\n    DayPickerNavigation__verticalDefault: {\n      position: 'absolute',\n      width: '100%',\n      height: 52,\n      bottom: 0,\n      left: 0\n    },\n\n    DayPickerNavigation__verticalScrollableDefault: {\n      position: 'relative'\n    },\n\n    DayPickerNavigation_button: {\n      cursor: 'pointer',\n      userSelect: 'none',\n      border: 0,\n      padding: 0,\n      margin: 0\n    },\n\n    DayPickerNavigation_button__default: {\n      border: '1px solid ' + String(color.core.borderLight),\n      backgroundColor: color.background,\n      color: color.placeholderText,\n\n      ':focus': {\n        border: '1px solid ' + String(color.core.borderMedium)\n      },\n\n      ':hover': {\n        border: '1px solid ' + String(color.core.borderMedium)\n      },\n\n      ':active': {\n        background: color.backgroundDark\n      }\n    },\n\n    DayPickerNavigation_button__horizontal: {},\n\n    DayPickerNavigation_button__horizontalDefault: {\n      position: 'absolute',\n      top: 18,\n      lineHeight: 0.78,\n      borderRadius: 3,\n      padding: '6px 9px'\n    },\n\n    DayPickerNavigation_leftButton__horizontalDefault: {\n      left: 22\n    },\n\n    DayPickerNavigation_rightButton__horizontalDefault: {\n      right: 22\n    },\n\n    DayPickerNavigation_button__vertical: {},\n\n    DayPickerNavigation_button__verticalDefault: {\n      padding: 5,\n      background: color.background,\n      boxShadow: '0 0 5px 2px rgba(0, 0, 0, 0.1)',\n      position: 'relative',\n      display: 'inline-block',\n      height: '100%',\n      width: '50%'\n    },\n\n    DayPickerNavigation_prevButton__verticalDefault: {},\n\n    DayPickerNavigation_nextButton__verticalDefault: {\n      borderLeft: 0\n    },\n\n    DayPickerNavigation_nextButton__verticalScrollableDefault: {\n      width: '100%'\n    },\n\n    DayPickerNavigation_svg__horizontal: {\n      height: 19,\n      width: 19,\n      fill: color.core.grayLight,\n      display: 'block'\n    },\n\n    DayPickerNavigation_svg__vertical: {\n      height: 42,\n      width: 42,\n      fill: color.text,\n      display: 'block'\n    }\n  };\n})(DayPickerNavigation);\n\n/***/ }),\n/* 396 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar LeftArrow = function () {\n  function LeftArrow(props) {\n    return _react2['default'].createElement(\n      'svg',\n      props,\n      _react2['default'].createElement('path', {\n        d: 'M336.2 274.5l-210.1 210h805.4c13 0 23 10 23 23s-10 23-23 23H126.1l210.1 210.1c11 11 11 21 0 32-5 5-10 7-16 7s-11-2-16-7l-249.1-249c-11-11-11-21 0-32l249.1-249.1c21-21.1 53 10.9 32 32z'\n      })\n    );\n  }\n\n  return LeftArrow;\n}();\n\nLeftArrow.defaultProps = {\n  viewBox: '0 0 1000 1000'\n};\nexports['default'] = LeftArrow;\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar RightArrow = function () {\n  function RightArrow(props) {\n    return _react2['default'].createElement(\n      'svg',\n      props,\n      _react2['default'].createElement('path', {\n        d: 'M694.4 242.4l249.1 249.1c11 11 11 21 0 32L694.4 772.7c-5 5-10 7-16 7s-11-2-16-7c-11-11-11-21 0-32l210.1-210.1H67.1c-13 0-23-10-23-23s10-23 23-23h805.4L662.4 274.5c-21-21.1 11-53.1 32-32.1z'\n      })\n    );\n  }\n\n  return RightArrow;\n}();\n\nRightArrow.defaultProps = {\n  viewBox: '0 0 1000 1000'\n};\nexports['default'] = RightArrow;\n\n/***/ }),\n/* 398 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar ChevronUp = function () {\n  function ChevronUp(props) {\n    return _react2['default'].createElement(\n      'svg',\n      props,\n      _react2['default'].createElement('path', {\n        d: 'M32.1 712.6l453.2-452.2c11-11 21-11 32 0l453.2 452.2c4 5 6 10 6 16 0 13-10 23-22 23-7 0-12-2-16-7L501.3 308.5 64.1 744.7c-4 5-9 7-15 7-7 0-12-2-17-7-9-11-9-21 0-32.1z'\n      })\n    );\n  }\n\n  return ChevronUp;\n}();\n\nChevronUp.defaultProps = {\n  viewBox: '0 0 1000 1000'\n};\nexports['default'] = ChevronUp;\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar ChevronDown = function () {\n  function ChevronDown(props) {\n    return _react2['default'].createElement(\n      'svg',\n      props,\n      _react2['default'].createElement('path', {\n        d: 'M967.5 288.5L514.3 740.7c-11 11-21 11-32 0L29.1 288.5c-4-5-6-11-6-16 0-13 10-23 23-23 6 0 11 2 15 7l437.2 436.2 437.2-436.2c4-5 9-7 16-7 6 0 11 2 16 7 9 10.9 9 21 0 32z'\n      })\n    );\n  }\n\n  return ChevronDown;\n}();\n\nChevronDown.defaultProps = {\n  viewBox: '0 0 1000 1000'\n};\nexports['default'] = ChevronDown;\n\n/***/ }),\n/* 400 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.BOTTOM_RIGHT = exports.TOP_RIGHT = exports.TOP_LEFT = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nvar _defaultPhrases = __webpack_require__(99);\n\nvar _getPhrasePropTypes = __webpack_require__(100);\n\nvar _getPhrasePropTypes2 = _interopRequireDefault(_getPhrasePropTypes);\n\nvar _KeyboardShortcutRow = __webpack_require__(401);\n\nvar _KeyboardShortcutRow2 = _interopRequireDefault(_KeyboardShortcutRow);\n\nvar _CloseButton = __webpack_require__(402);\n\nvar _CloseButton2 = _interopRequireDefault(_CloseButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOP_LEFT = exports.TOP_LEFT = 'top-left';\nvar TOP_RIGHT = exports.TOP_RIGHT = 'top-right';\nvar BOTTOM_RIGHT = exports.BOTTOM_RIGHT = 'bottom-right';\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  block: _propTypes2['default'].bool,\n  buttonLocation: _propTypes2['default'].oneOf([TOP_LEFT, TOP_RIGHT, BOTTOM_RIGHT]),\n  showKeyboardShortcutsPanel: _propTypes2['default'].bool,\n  openKeyboardShortcutsPanel: _propTypes2['default'].func,\n  closeKeyboardShortcutsPanel: _propTypes2['default'].func,\n  phrases: _propTypes2['default'].shape((0, _getPhrasePropTypes2['default'])(_defaultPhrases.DayPickerKeyboardShortcutsPhrases))\n}));\n\nvar defaultProps = {\n  block: false,\n  buttonLocation: BOTTOM_RIGHT,\n  showKeyboardShortcutsPanel: false,\n  openKeyboardShortcutsPanel: function () {\n    function openKeyboardShortcutsPanel() {}\n\n    return openKeyboardShortcutsPanel;\n  }(),\n  closeKeyboardShortcutsPanel: function () {\n    function closeKeyboardShortcutsPanel() {}\n\n    return closeKeyboardShortcutsPanel;\n  }(),\n\n  phrases: _defaultPhrases.DayPickerKeyboardShortcutsPhrases\n};\n\nfunction getKeyboardShortcuts(phrases) {\n  return [{\n    unicode: '↵',\n    label: phrases.enterKey,\n    action: phrases.selectFocusedDate\n  }, {\n    unicode: '←/→',\n    label: phrases.leftArrowRightArrow,\n    action: phrases.moveFocusByOneDay\n  }, {\n    unicode: '↑/↓',\n    label: phrases.upArrowDownArrow,\n    action: phrases.moveFocusByOneWeek\n  }, {\n    unicode: 'PgUp/PgDn',\n    label: phrases.pageUpPageDown,\n    action: phrases.moveFocusByOneMonth\n  }, {\n    unicode: 'Home/End',\n    label: phrases.homeEnd,\n    action: phrases.moveFocustoStartAndEndOfWeek\n  }, {\n    unicode: 'Esc',\n    label: phrases.escape,\n    action: phrases.returnFocusToInput\n  }, {\n    unicode: '?',\n    label: phrases.questionMark,\n    action: phrases.openThisPanel\n  }];\n}\n\nvar DayPickerKeyboardShortcuts = function (_React$Component) {\n  _inherits(DayPickerKeyboardShortcuts, _React$Component);\n\n  function DayPickerKeyboardShortcuts() {\n    var _ref;\n\n    _classCallCheck(this, DayPickerKeyboardShortcuts);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    var _this = _possibleConstructorReturn(this, (_ref = DayPickerKeyboardShortcuts.__proto__ || Object.getPrototypeOf(DayPickerKeyboardShortcuts)).call.apply(_ref, [this].concat(args)));\n\n    var phrases = _this.props.phrases;\n\n    _this.keyboardShortcuts = getKeyboardShortcuts(phrases);\n\n    _this.onShowKeyboardShortcutsButtonClick = _this.onShowKeyboardShortcutsButtonClick.bind(_this);\n    _this.setShowKeyboardShortcutsButtonRef = _this.setShowKeyboardShortcutsButtonRef.bind(_this);\n    _this.setHideKeyboardShortcutsButtonRef = _this.setHideKeyboardShortcutsButtonRef.bind(_this);\n    _this.handleFocus = _this.handleFocus.bind(_this);\n    _this.onKeyDown = _this.onKeyDown.bind(_this);\n    return _this;\n  }\n\n  _createClass(DayPickerKeyboardShortcuts, [{\n    key: 'componentWillReceiveProps',\n    value: function () {\n      function componentWillReceiveProps(nextProps) {\n        var phrases = this.props.phrases;\n\n        if (nextProps.phrases !== phrases) {\n          this.keyboardShortcuts = getKeyboardShortcuts(nextProps.phrases);\n        }\n      }\n\n      return componentWillReceiveProps;\n    }()\n  }, {\n    key: 'componentDidUpdate',\n    value: function () {\n      function componentDidUpdate() {\n        this.handleFocus();\n      }\n\n      return componentDidUpdate;\n    }()\n  }, {\n    key: 'onKeyDown',\n    value: function () {\n      function onKeyDown(e) {\n        e.stopPropagation();\n\n        var closeKeyboardShortcutsPanel = this.props.closeKeyboardShortcutsPanel;\n        // Because the close button is the only focusable element inside of the panel, this\n        // amounts to a very basic focus trap. The user can exit the panel by \"pressing\" the\n        // close button or hitting escape\n\n        switch (e.key) {\n          case 'Enter':\n          case ' ':\n          case 'Spacebar': // for older browsers\n          case 'Escape':\n            closeKeyboardShortcutsPanel();\n            break;\n\n          // do nothing - this allows the up and down arrows continue their\n          // default behavior of scrolling the content of the Keyboard Shortcuts Panel\n          // which is needed when only a single month is shown for instance.\n          case 'ArrowUp':\n          case 'ArrowDown':\n            break;\n\n          // completely block the rest of the keys that have functionality outside of this panel\n          case 'Tab':\n          case 'Home':\n          case 'End':\n          case 'PageUp':\n          case 'PageDown':\n          case 'ArrowLeft':\n          case 'ArrowRight':\n            e.preventDefault();\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      return onKeyDown;\n    }()\n  }, {\n    key: 'onShowKeyboardShortcutsButtonClick',\n    value: function () {\n      function onShowKeyboardShortcutsButtonClick() {\n        var _this2 = this;\n\n        var openKeyboardShortcutsPanel = this.props.openKeyboardShortcutsPanel;\n\n        // we want to return focus to this button after closing the keyboard shortcuts panel\n\n        openKeyboardShortcutsPanel(function () {\n          _this2.showKeyboardShortcutsButton.focus();\n        });\n      }\n\n      return onShowKeyboardShortcutsButtonClick;\n    }()\n  }, {\n    key: 'setShowKeyboardShortcutsButtonRef',\n    value: function () {\n      function setShowKeyboardShortcutsButtonRef(ref) {\n        this.showKeyboardShortcutsButton = ref;\n      }\n\n      return setShowKeyboardShortcutsButtonRef;\n    }()\n  }, {\n    key: 'setHideKeyboardShortcutsButtonRef',\n    value: function () {\n      function setHideKeyboardShortcutsButtonRef(ref) {\n        this.hideKeyboardShortcutsButton = ref;\n      }\n\n      return setHideKeyboardShortcutsButtonRef;\n    }()\n  }, {\n    key: 'handleFocus',\n    value: function () {\n      function handleFocus() {\n        if (this.hideKeyboardShortcutsButton) {\n          // automatically move focus into the dialog by moving\n          // to the only interactive element, the hide button\n          this.hideKeyboardShortcutsButton.focus();\n        }\n      }\n\n      return handleFocus;\n    }()\n  }, {\n    key: 'render',\n    value: function () {\n      function render() {\n        var _this3 = this;\n\n        var _props = this.props,\n            block = _props.block,\n            buttonLocation = _props.buttonLocation,\n            showKeyboardShortcutsPanel = _props.showKeyboardShortcutsPanel,\n            closeKeyboardShortcutsPanel = _props.closeKeyboardShortcutsPanel,\n            styles = _props.styles,\n            phrases = _props.phrases;\n\n\n        var toggleButtonText = showKeyboardShortcutsPanel ? phrases.hideKeyboardShortcutsPanel : phrases.showKeyboardShortcutsPanel;\n\n        var bottomRight = buttonLocation === BOTTOM_RIGHT;\n        var topRight = buttonLocation === TOP_RIGHT;\n        var topLeft = buttonLocation === TOP_LEFT;\n\n        return _react2['default'].createElement(\n          'div',\n          null,\n          _react2['default'].createElement(\n            'button',\n            _extends({\n              ref: this.setShowKeyboardShortcutsButtonRef\n            }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_show, bottomRight && styles.DayPickerKeyboardShortcuts_show__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_show__topRight, topLeft && styles.DayPickerKeyboardShortcuts_show__topLeft), {\n              type: 'button',\n              'aria-label': toggleButtonText,\n              onClick: this.onShowKeyboardShortcutsButtonClick,\n              onKeyDown: function () {\n                function onKeyDown(e) {\n                  if (e.key === 'Enter') {\n                    e.preventDefault();\n                  } else if (e.key === 'Space') {\n                    _this3.onShowKeyboardShortcutsButtonClick(e);\n                  }\n                }\n\n                return onKeyDown;\n              }(),\n              onMouseUp: function () {\n                function onMouseUp(e) {\n                  e.currentTarget.blur();\n                }\n\n                return onMouseUp;\n              }()\n            }),\n            _react2['default'].createElement(\n              'span',\n              (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_showSpan, bottomRight && styles.DayPickerKeyboardShortcuts_showSpan__bottomRight, topRight && styles.DayPickerKeyboardShortcuts_showSpan__topRight, topLeft && styles.DayPickerKeyboardShortcuts_showSpan__topLeft),\n              '?'\n            )\n          ),\n          showKeyboardShortcutsPanel && _react2['default'].createElement(\n            'div',\n            _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_panel), {\n              role: 'dialog',\n              'aria-labelledby': 'DayPickerKeyboardShortcuts_title',\n              'aria-describedby': 'DayPickerKeyboardShortcuts_description'\n            }),\n            _react2['default'].createElement(\n              'div',\n              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_title), {\n                id: 'DayPickerKeyboardShortcuts_title'\n              }),\n              phrases.keyboardShortcuts\n            ),\n            _react2['default'].createElement(\n              'button',\n              _extends({\n                ref: this.setHideKeyboardShortcutsButtonRef\n              }, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_buttonReset, styles.DayPickerKeyboardShortcuts_close), {\n                type: 'button',\n                tabIndex: '0',\n                'aria-label': phrases.hideKeyboardShortcutsPanel,\n                onClick: closeKeyboardShortcutsPanel,\n                onKeyDown: this.onKeyDown\n              }),\n              _react2['default'].createElement(_CloseButton2['default'], (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_closeSvg))\n            ),\n            _react2['default'].createElement(\n              'ul',\n              _extends({}, (0, _reactWithStyles.css)(styles.DayPickerKeyboardShortcuts_list), {\n                id: 'DayPickerKeyboardShortcuts_description'\n              }),\n              this.keyboardShortcuts.map(function (_ref2) {\n                var unicode = _ref2.unicode,\n                    label = _ref2.label,\n                    action = _ref2.action;\n                return _react2['default'].createElement(_KeyboardShortcutRow2['default'], {\n                  key: label,\n                  unicode: unicode,\n                  label: label,\n                  action: action,\n                  block: block\n                });\n              })\n            )\n          )\n        );\n      }\n\n      return render;\n    }()\n  }]);\n\n  return DayPickerKeyboardShortcuts;\n}(_react2['default'].Component);\n\nDayPickerKeyboardShortcuts.propTypes = propTypes;\nDayPickerKeyboardShortcuts.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref3) {\n  var _ref3$reactDates = _ref3.reactDates,\n      color = _ref3$reactDates.color,\n      font = _ref3$reactDates.font,\n      zIndex = _ref3$reactDates.zIndex;\n  return {\n    DayPickerKeyboardShortcuts_buttonReset: {\n      background: 'none',\n      border: 0,\n      borderRadius: 0,\n      color: 'inherit',\n      font: 'inherit',\n      lineHeight: 'normal',\n      overflow: 'visible',\n      padding: 0,\n      cursor: 'pointer',\n      fontSize: font.size,\n\n      ':active': {\n        outline: 'none'\n      }\n    },\n\n    DayPickerKeyboardShortcuts_show: {\n      width: 22,\n      position: 'absolute',\n      zIndex: zIndex + 2\n    },\n\n    DayPickerKeyboardShortcuts_show__bottomRight: {\n      borderTop: '26px solid transparent',\n      borderRight: '33px solid ' + String(color.core.primary),\n      bottom: 0,\n      right: 0,\n\n      ':hover': {\n        borderRight: '33px solid ' + String(color.core.primary_dark)\n      }\n    },\n\n    DayPickerKeyboardShortcuts_show__topRight: {\n      borderBottom: '26px solid transparent',\n      borderRight: '33px solid ' + String(color.core.primary),\n      top: 0,\n      right: 0,\n\n      ':hover': {\n        borderRight: '33px solid ' + String(color.core.primary_dark)\n      }\n    },\n\n    DayPickerKeyboardShortcuts_show__topLeft: {\n      borderBottom: '26px solid transparent',\n      borderLeft: '33px solid ' + String(color.core.primary),\n      top: 0,\n      left: 0,\n\n      ':hover': {\n        borderLeft: '33px solid ' + String(color.core.primary_dark)\n      }\n    },\n\n    DayPickerKeyboardShortcuts_showSpan: {\n      color: color.core.white,\n      position: 'absolute'\n    },\n\n    DayPickerKeyboardShortcuts_showSpan__bottomRight: {\n      bottom: 0,\n      right: -28\n    },\n\n    DayPickerKeyboardShortcuts_showSpan__topRight: {\n      top: 1,\n      right: -28\n    },\n\n    DayPickerKeyboardShortcuts_showSpan__topLeft: {\n      top: 1,\n      left: -28\n    },\n\n    DayPickerKeyboardShortcuts_panel: {\n      overflow: 'auto',\n      background: color.background,\n      border: '1px solid ' + String(color.core.border),\n      borderRadius: 2,\n      position: 'absolute',\n      top: 0,\n      bottom: 0,\n      right: 0,\n      left: 0,\n      zIndex: zIndex + 2,\n      padding: 22,\n      margin: 33\n    },\n\n    DayPickerKeyboardShortcuts_title: {\n      fontSize: 16,\n      fontWeight: 'bold',\n      margin: 0\n    },\n\n    DayPickerKeyboardShortcuts_list: {\n      listStyle: 'none',\n      padding: 0,\n      fontSize: font.size\n    },\n\n    DayPickerKeyboardShortcuts_close: {\n      position: 'absolute',\n      right: 22,\n      top: 22,\n      zIndex: zIndex + 2,\n\n      ':active': {\n        outline: 'none'\n      }\n    },\n\n    DayPickerKeyboardShortcuts_closeSvg: {\n      height: 15,\n      width: 15,\n      fill: color.core.grayLighter,\n\n      ':hover': {\n        fill: color.core.grayLight\n      },\n\n      ':focus': {\n        fill: color.core.grayLight\n      }\n    }\n  };\n})(DayPickerKeyboardShortcuts);\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _object = __webpack_require__(82);\n\nvar _object2 = _interopRequireDefault(_object);\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = __webpack_require__(28);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _airbnbPropTypes = __webpack_require__(75);\n\nvar _reactWithStyles = __webpack_require__(101);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar propTypes = (0, _airbnbPropTypes.forbidExtraProps)((0, _object2['default'])({}, _reactWithStyles.withStylesPropTypes, {\n  unicode: _propTypes2['default'].string.isRequired,\n  label: _propTypes2['default'].string.isRequired,\n  action: _propTypes2['default'].string.isRequired,\n  block: _propTypes2['default'].bool\n}));\n\nvar defaultProps = {\n  block: false\n};\n\nfunction KeyboardShortcutRow(_ref) {\n  var unicode = _ref.unicode,\n      label = _ref.label,\n      action = _ref.action,\n      block = _ref.block,\n      styles = _ref.styles;\n\n  return _react2['default'].createElement(\n    'li',\n    (0, _reactWithStyles.css)(styles.KeyboardShortcutRow, block && styles.KeyboardShortcutRow__block),\n    _react2['default'].createElement(\n      'div',\n      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_keyContainer, block && styles.KeyboardShortcutRow_keyContainer__block),\n      _react2['default'].createElement(\n        'span',\n        _extends({}, (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_key), {\n          role: 'img',\n          'aria-label': String(label) + ',' // add comma so screen readers will pause before reading action\n        }),\n        unicode\n      )\n    ),\n    _react2['default'].createElement(\n      'div',\n      (0, _reactWithStyles.css)(styles.KeyboardShortcutRow_action),\n      action\n    )\n  );\n}\n\nKeyboardShortcutRow.propTypes = propTypes;\nKeyboardShortcutRow.defaultProps = defaultProps;\n\nexports['default'] = (0, _reactWithStyles.withStyles)(function (_ref2) {\n  var color = _ref2.reactDates.color;\n  return {\n    KeyboardShortcutRow: {\n      listStyle: 'none',\n      margin: '6px 0'\n    },\n\n    KeyboardShortcutRow__block: {\n      marginBottom: 16\n    },\n\n    KeyboardShortcutRow_keyContainer: {\n      display: 'inline-block',\n      whiteSpace: 'nowrap',\n      textAlign: 'right',\n      marginRight: 6\n    },\n\n    KeyboardShortcutRow_keyContainer__block: {\n      textAlign: 'left',\n      display: 'inline'\n    },\n\n    KeyboardShortcutRow_key: {\n      fontFamily: 'monospace',\n      fontSize: 12,\n      textTransform: 'uppercase',\n      background: color.core.grayLightest,\n      padding: '2px 6px'\n    },\n\n    KeyboardShortcutRow_action: {\n      display: 'inline',\n      wordBreak: 'break-word',\n      marginLeft: 8\n    }\n  };\n})(KeyboardShortcutRow);\n\n/***/ }),\n/* 402 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(16);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar CloseButton = function () {\n  function CloseButton(props) {\n    return _react2['default'].createElement(\n      'svg',\n      props,\n      _react2['default'].createElement('path', {\n        fillRule: 'evenodd',\n        d: 'M11.53.47a.75.75 0 0 0-1.061 0l-4.47 4.47L1.529.47A.75.75 0 1 0 .468 1.531l4.47 4.47-4.47 4.47a.75.75 0 1 0 1.061 1.061l4.47-4.47 4.47 4.47a.75.75 0 1 0 1.061-1.061l-4.47-4.47 4.47-4.47a.75.75 0 0 0 0-1.061z'\n      })\n    );\n  }\n\n  return CloseButton;\n}();\n\nCloseButton.defaultProps = {\n  viewBox: '0 0 12 12'\n};\nexports['default'] = CloseButton;\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getNumberOfCalendarMonthWeeks;\n\nvar _moment = __webpack_require__(43);\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek) {\n  var weekDayDiff = firstDayOfMonth.day() - firstDayOfWeek;\n  return (weekDayDiff + 7) % 7;\n}\n\nfunction getNumberOfCalendarMonthWeeks(month) {\n  var firstDayOfWeek = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _moment2['default'].localeData().firstDayOfWeek();\n\n  var firstDayOfMonth = month.clone().startOf('month');\n  var numBlankDays = getBlankDaysBeforeFirstDay(firstDayOfMonth, firstDayOfWeek);\n  return Math.ceil((numBlankDays + month.daysInMonth()) / 7);\n}\n\n/***/ }),\n/* 404 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports['default'] = getActiveElement;\nfunction getActiveElement() {\n  return typeof document !== 'undefined' && document.activeElement;\n}\n\n/***/ }),\n/* 405 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (external);\n\n\n/***/ }),\n/* 406 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar textColor = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (textColor);\n\n\n/***/ }),\n/* 407 */,\n/* 408 */,\n/* 409 */,\n/* 410 */,\n/* 411 */,\n/* 412 */,\n/* 413 */,\n/* 414 */,\n/* 415 */,\n/* 416 */,\n/* 417 */,\n/* 418 */,\n/* 419 */,\n/* 420 */,\n/* 421 */,\n/* 422 */,\n/* 423 */,\n/* 424 */,\n/* 425 */,\n/* 426 */,\n/* 427 */,\n/* 428 */,\n/* 429 */,\n/* 430 */,\n/* 431 */,\n/* 432 */,\n/* 433 */,\n/* 434 */,\n/* 435 */,\n/* 436 */,\n/* 437 */,\n/* 438 */,\n/* 439 */,\n/* 440 */,\n/* 441 */,\n/* 442 */,\n/* 443 */,\n/* 444 */,\n/* 445 */,\n/* 446 */,\n/* 447 */,\n/* 448 */,\n/* 449 */,\n/* 450 */,\n/* 451 */,\n/* 452 */,\n/* 453 */,\n/* 454 */,\n/* 455 */,\n/* 456 */,\n/* 457 */,\n/* 458 */,\n/* 459 */,\n/* 460 */,\n/* 461 */,\n/* 462 */,\n/* 463 */,\n/* 464 */,\n/* 465 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ToolbarItem; });\n/* unused harmony export useToolbarItem */\n/* harmony import */ var reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52);\n/* harmony import */ var reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var reakit_warning__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94);\n/* harmony import */ var _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(126);\n/* harmony import */ var _ToolbarState_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(161);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar useToolbarItem = Object(reakit_system_createHook__WEBPACK_IMPORTED_MODULE_1__[/* createHook */ \"a\"])({\n  name: \"ToolbarItem\",\n  compose: _Composite_CompositeItem_js__WEBPACK_IMPORTED_MODULE_4__[/* useCompositeItem */ \"b\"],\n  useState: _ToolbarState_js__WEBPACK_IMPORTED_MODULE_5__[/* useToolbarState */ \"a\"]\n});\nvar ToolbarItem = Object(reakit_system_createComponent__WEBPACK_IMPORTED_MODULE_0__[/* createComponent */ \"a\"])({\n  as: \"button\",\n  memo: true,\n  useHook: useToolbarItem\n});\n\n\n\n\n/***/ })\n/******/ ]);"
  },
  {
    "path": "public/vendor/gutenberg/wp-compose.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"compose\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 441);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 143:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar e=__webpack_require__(16),n={display:\"block\",opacity:0,position:\"absolute\",top:0,left:0,height:\"100%\",width:\"100%\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:-1},t=function(t){var r=t.onResize,u=e.useRef();return function(n,t){var r=function(){return n.current&&n.current.contentDocument&&n.current.contentDocument.defaultView};function u(){t();var e=r();e&&e.addEventListener(\"resize\",t)}e.useEffect((function(){return r()?u():n.current&&n.current.addEventListener&&n.current.addEventListener(\"load\",u),function(){var e=r();e&&\"function\"==typeof e.removeEventListener&&e.removeEventListener(\"resize\",t)}}),[])}(u,(function(){return r(u)})),e.createElement(\"iframe\",{style:n,src:\"about:blank\",ref:u,\"aria-hidden\":!0,tabIndex:-1,frameBorder:0})},r=function(e){return{width:null!=e?e.offsetWidth:null,height:null!=e?e.offsetHeight:null}};module.exports=function(n){void 0===n&&(n=r);var u=e.useState(n(null)),o=u[0],i=u[1],c=e.useCallback((function(e){return i(n(e.current))}),[n]);return[e.useMemo((function(){return e.createElement(t,{onResize:c})}),[c]),o]};\n\n\n/***/ }),\n\n/***/ 144:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"priorityQueue\"]; }());\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 266:\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\n * clipboard.js v2.0.6\n * https://clipboardjs.com/\n * \n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'SELECT') {\n        element.focus();\n\n        selectedText = element.value;\n    }\n    else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        var isReadOnly = element.hasAttribute('readonly');\n\n        if (!isReadOnly) {\n            element.setAttribute('readonly', '');\n        }\n\n        element.select();\n        element.setSelectionRange(0, element.value.length);\n\n        if (!isReadOnly) {\n            element.removeAttribute('readonly');\n        }\n\n        selectedText = element.value;\n    }\n    else {\n        if (element.hasAttribute('contenteditable')) {\n            element.focus();\n        }\n\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar is = __webpack_require__(3);\nvar delegate = __webpack_require__(4);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.fn(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn, useCapture);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn, useCapture);\n        }\n    }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n    // Handle the regular Element usage\n    if (typeof elements.addEventListener === 'function') {\n        return _delegate.apply(null, arguments);\n    }\n\n    // Handle Element-less usage, it defaults to global delegation\n    if (typeof type === 'function') {\n        // Use `document` as the first parameter, then apply arguments\n        // This is a short way to .unshift `arguments` without running into deoptimizations\n        return _delegate.bind(null, document).apply(null, arguments);\n    }\n\n    // Handle Selector-based usage\n    if (typeof elements === 'string') {\n        elements = document.querySelectorAll(elements);\n    }\n\n    // Handle Array-like based usage\n    return Array.prototype.map.call(elements, function (element) {\n        return _delegate(element, selector, type, callback, useCapture);\n    });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        e.delegateTarget = closest(e.target, selector);\n\n        if (e.delegateTarget) {\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n    var proto = Element.prototype;\n\n    proto.matches = proto.matchesSelector ||\n                    proto.mozMatchesSelector ||\n                    proto.msMatchesSelector ||\n                    proto.oMatchesSelector ||\n                    proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n    while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n        if (typeof element.matches === 'function' &&\n            element.matches(selector)) {\n          return element;\n        }\n        element = element.parentNode;\n    }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(0);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n\n// CONCATENATED MODULE: ./src/clipboard-action.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar clipboard_action_ClipboardAction = function () {\n    /**\n     * @param {Object} options\n     */\n    function ClipboardAction(options) {\n        _classCallCheck(this, ClipboardAction);\n\n        this.resolveOptions(options);\n        this.initSelection();\n    }\n\n    /**\n     * Defines base properties passed from constructor.\n     * @param {Object} options\n     */\n\n\n    _createClass(ClipboardAction, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = options.action;\n            this.container = options.container;\n            this.emitter = options.emitter;\n            this.target = options.target;\n            this.text = options.text;\n            this.trigger = options.trigger;\n\n            this.selectedText = '';\n        }\n\n        /**\n         * Decides which selection strategy is going to be applied based\n         * on the existence of `text` and `target` properties.\n         */\n\n    }, {\n        key: 'initSelection',\n        value: function initSelection() {\n            if (this.text) {\n                this.selectFake();\n            } else if (this.target) {\n                this.selectTarget();\n            }\n        }\n\n        /**\n         * Creates a fake textarea element, sets its value from `text` property,\n         * and makes a selection on it.\n         */\n\n    }, {\n        key: 'selectFake',\n        value: function selectFake() {\n            var _this = this;\n\n            var isRTL = document.documentElement.getAttribute('dir') == 'rtl';\n\n            this.removeFake();\n\n            this.fakeHandlerCallback = function () {\n                return _this.removeFake();\n            };\n            this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;\n\n            this.fakeElem = document.createElement('textarea');\n            // Prevent zooming on iOS\n            this.fakeElem.style.fontSize = '12pt';\n            // Reset box model\n            this.fakeElem.style.border = '0';\n            this.fakeElem.style.padding = '0';\n            this.fakeElem.style.margin = '0';\n            // Move element out of screen horizontally\n            this.fakeElem.style.position = 'absolute';\n            this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';\n            // Move element to the same position vertically\n            var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n            this.fakeElem.style.top = yPosition + 'px';\n\n            this.fakeElem.setAttribute('readonly', '');\n            this.fakeElem.value = this.text;\n\n            this.container.appendChild(this.fakeElem);\n\n            this.selectedText = select_default()(this.fakeElem);\n            this.copyText();\n        }\n\n        /**\n         * Only removes the fake element after another click event, that way\n         * a user can hit `Ctrl+C` to copy because selection still exists.\n         */\n\n    }, {\n        key: 'removeFake',\n        value: function removeFake() {\n            if (this.fakeHandler) {\n                this.container.removeEventListener('click', this.fakeHandlerCallback);\n                this.fakeHandler = null;\n                this.fakeHandlerCallback = null;\n            }\n\n            if (this.fakeElem) {\n                this.container.removeChild(this.fakeElem);\n                this.fakeElem = null;\n            }\n        }\n\n        /**\n         * Selects the content from element passed on `target` property.\n         */\n\n    }, {\n        key: 'selectTarget',\n        value: function selectTarget() {\n            this.selectedText = select_default()(this.target);\n            this.copyText();\n        }\n\n        /**\n         * Executes the copy operation based on the current selection.\n         */\n\n    }, {\n        key: 'copyText',\n        value: function copyText() {\n            var succeeded = void 0;\n\n            try {\n                succeeded = document.execCommand(this.action);\n            } catch (err) {\n                succeeded = false;\n            }\n\n            this.handleResult(succeeded);\n        }\n\n        /**\n         * Fires an event based on the copy operation result.\n         * @param {Boolean} succeeded\n         */\n\n    }, {\n        key: 'handleResult',\n        value: function handleResult(succeeded) {\n            this.emitter.emit(succeeded ? 'success' : 'error', {\n                action: this.action,\n                text: this.selectedText,\n                trigger: this.trigger,\n                clearSelection: this.clearSelection.bind(this)\n            });\n        }\n\n        /**\n         * Moves focus away from `target` and back to the trigger, removes current selection.\n         */\n\n    }, {\n        key: 'clearSelection',\n        value: function clearSelection() {\n            if (this.trigger) {\n                this.trigger.focus();\n            }\n            document.activeElement.blur();\n            window.getSelection().removeAllRanges();\n        }\n\n        /**\n         * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n         * @param {String} action\n         */\n\n    }, {\n        key: 'destroy',\n\n\n        /**\n         * Destroy lifecycle.\n         */\n        value: function destroy() {\n            this.removeFake();\n        }\n    }, {\n        key: 'action',\n        set: function set() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';\n\n            this._action = action;\n\n            if (this._action !== 'copy' && this._action !== 'cut') {\n                throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n            }\n        }\n\n        /**\n         * Gets the `action` property.\n         * @return {String}\n         */\n        ,\n        get: function get() {\n            return this._action;\n        }\n\n        /**\n         * Sets the `target` property using an element\n         * that will be have its content copied.\n         * @param {Element} target\n         */\n\n    }, {\n        key: 'target',\n        set: function set(target) {\n            if (target !== undefined) {\n                if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {\n                    if (this.action === 'copy' && target.hasAttribute('disabled')) {\n                        throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n                    }\n\n                    if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n                        throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n                    }\n\n                    this._target = target;\n                } else {\n                    throw new Error('Invalid \"target\" value, use a valid Element');\n                }\n            }\n        }\n\n        /**\n         * Gets the `target` property.\n         * @return {String|HTMLElement}\n         */\n        ,\n        get: function get() {\n            return this._target;\n        }\n    }]);\n\n    return ClipboardAction;\n}();\n\n/* harmony default export */ var clipboard_action = (clipboard_action_ClipboardAction);\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(1);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(2);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n\n// CONCATENATED MODULE: ./src/clipboard.js\nvar clipboard_typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar clipboard_createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction clipboard_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar clipboard_Clipboard = function (_Emitter) {\n    _inherits(Clipboard, _Emitter);\n\n    /**\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     * @param {Object} options\n     */\n    function Clipboard(trigger, options) {\n        clipboard_classCallCheck(this, Clipboard);\n\n        var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));\n\n        _this.resolveOptions(options);\n        _this.listenClick(trigger);\n        return _this;\n    }\n\n    /**\n     * Defines if attributes would be resolved using internal setter functions\n     * or custom functions that were passed in the constructor.\n     * @param {Object} options\n     */\n\n\n    clipboard_createClass(Clipboard, [{\n        key: 'resolveOptions',\n        value: function resolveOptions() {\n            var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n            this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n            this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n            this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n            this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n        }\n\n        /**\n         * Adds a click event listener to the passed trigger.\n         * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n         */\n\n    }, {\n        key: 'listenClick',\n        value: function listenClick(trigger) {\n            var _this2 = this;\n\n            this.listener = listen_default()(trigger, 'click', function (e) {\n                return _this2.onClick(e);\n            });\n        }\n\n        /**\n         * Defines a new `ClipboardAction` on each click event.\n         * @param {Event} e\n         */\n\n    }, {\n        key: 'onClick',\n        value: function onClick(e) {\n            var trigger = e.delegateTarget || e.currentTarget;\n\n            if (this.clipboardAction) {\n                this.clipboardAction = null;\n            }\n\n            this.clipboardAction = new clipboard_action({\n                action: this.action(trigger),\n                target: this.target(trigger),\n                text: this.text(trigger),\n                container: this.container,\n                trigger: trigger,\n                emitter: this\n            });\n        }\n\n        /**\n         * Default `action` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultAction',\n        value: function defaultAction(trigger) {\n            return getAttributeValue('action', trigger);\n        }\n\n        /**\n         * Default `target` lookup function.\n         * @param {Element} trigger\n         */\n\n    }, {\n        key: 'defaultTarget',\n        value: function defaultTarget(trigger) {\n            var selector = getAttributeValue('target', trigger);\n\n            if (selector) {\n                return document.querySelector(selector);\n            }\n        }\n\n        /**\n         * Returns the support of the given action, or all actions if no action is\n         * given.\n         * @param {String} [action]\n         */\n\n    }, {\n        key: 'defaultText',\n\n\n        /**\n         * Default `text` lookup function.\n         * @param {Element} trigger\n         */\n        value: function defaultText(trigger) {\n            return getAttributeValue('text', trigger);\n        }\n\n        /**\n         * Destroy lifecycle.\n         */\n\n    }, {\n        key: 'destroy',\n        value: function destroy() {\n            this.listener.destroy();\n\n            if (this.clipboardAction) {\n                this.clipboardAction.destroy();\n                this.clipboardAction = null;\n            }\n        }\n    }], [{\n        key: 'isSupported',\n        value: function isSupported() {\n            var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n\n            var actions = typeof action === 'string' ? [action] : action;\n            var support = !!document.queryCommandSupported;\n\n            actions.forEach(function (action) {\n                support = support && !!document.queryCommandSupported(action);\n            });\n\n            return support;\n        }\n    }]);\n\n    return Clipboard;\n}(tiny_emitter_default.a);\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\n\nfunction getAttributeValue(suffix, element) {\n    var attribute = 'data-clipboard-' + suffix;\n\n    if (!element.hasAttribute(attribute)) {\n        return;\n    }\n\n    return element.getAttribute(attribute);\n}\n\n/* harmony default export */ var clipboard = __webpack_exports__[\"default\"] = (clipboard_Clipboard);\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n/***/ }),\n\n/***/ 267:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.5\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n    // Check if mousetrap is used inside browser, if not, return\n    if (!window) {\n        return;\n    }\n\n    /**\n     * mapping of special keycodes to their corresponding keys\n     *\n     * everything in this dictionary cannot use keypress events\n     * so it has to be here to map to the correct keycodes for\n     * keyup/keydown events\n     *\n     * @type {Object}\n     */\n    var _MAP = {\n        8: 'backspace',\n        9: 'tab',\n        13: 'enter',\n        16: 'shift',\n        17: 'ctrl',\n        18: 'alt',\n        20: 'capslock',\n        27: 'esc',\n        32: 'space',\n        33: 'pageup',\n        34: 'pagedown',\n        35: 'end',\n        36: 'home',\n        37: 'left',\n        38: 'up',\n        39: 'right',\n        40: 'down',\n        45: 'ins',\n        46: 'del',\n        91: 'meta',\n        93: 'meta',\n        224: 'meta'\n    };\n\n    /**\n     * mapping for special characters so they can support\n     *\n     * this dictionary is only used incase you want to bind a\n     * keyup or keydown event to one of these keys\n     *\n     * @type {Object}\n     */\n    var _KEYCODE_MAP = {\n        106: '*',\n        107: '+',\n        109: '-',\n        110: '.',\n        111 : '/',\n        186: ';',\n        187: '=',\n        188: ',',\n        189: '-',\n        190: '.',\n        191: '/',\n        192: '`',\n        219: '[',\n        220: '\\\\',\n        221: ']',\n        222: '\\''\n    };\n\n    /**\n     * this is a mapping of keys that require shift on a US keypad\n     * back to the non shift equivelents\n     *\n     * this is so you can use keyup events with these keys\n     *\n     * note that this will only work reliably on US keyboards\n     *\n     * @type {Object}\n     */\n    var _SHIFT_MAP = {\n        '~': '`',\n        '!': '1',\n        '@': '2',\n        '#': '3',\n        '$': '4',\n        '%': '5',\n        '^': '6',\n        '&': '7',\n        '*': '8',\n        '(': '9',\n        ')': '0',\n        '_': '-',\n        '+': '=',\n        ':': ';',\n        '\\\"': '\\'',\n        '<': ',',\n        '>': '.',\n        '?': '/',\n        '|': '\\\\'\n    };\n\n    /**\n     * this is a list of special strings you can use to map\n     * to modifier keys when you specify your keyboard shortcuts\n     *\n     * @type {Object}\n     */\n    var _SPECIAL_ALIASES = {\n        'option': 'alt',\n        'command': 'meta',\n        'return': 'enter',\n        'escape': 'esc',\n        'plus': '+',\n        'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n    };\n\n    /**\n     * variable to store the flipped version of _MAP from above\n     * needed to check if we should use keypress or not when no action\n     * is specified\n     *\n     * @type {Object|undefined}\n     */\n    var _REVERSE_MAP;\n\n    /**\n     * loop through the f keys, f1 to f19 and add them to the map\n     * programatically\n     */\n    for (var i = 1; i < 20; ++i) {\n        _MAP[111 + i] = 'f' + i;\n    }\n\n    /**\n     * loop through to map numbers on the numeric keypad\n     */\n    for (i = 0; i <= 9; ++i) {\n\n        // This needs to use a string cause otherwise since 0 is falsey\n        // mousetrap will never fire for numpad 0 pressed as part of a keydown\n        // event.\n        //\n        // @see https://github.com/ccampbell/mousetrap/pull/258\n        _MAP[i + 96] = i.toString();\n    }\n\n    /**\n     * cross browser add event method\n     *\n     * @param {Element|HTMLDocument} object\n     * @param {string} type\n     * @param {Function} callback\n     * @returns void\n     */\n    function _addEvent(object, type, callback) {\n        if (object.addEventListener) {\n            object.addEventListener(type, callback, false);\n            return;\n        }\n\n        object.attachEvent('on' + type, callback);\n    }\n\n    /**\n     * takes the event and returns the key character\n     *\n     * @param {Event} e\n     * @return {string}\n     */\n    function _characterFromEvent(e) {\n\n        // for keypress events we should return the character as is\n        if (e.type == 'keypress') {\n            var character = String.fromCharCode(e.which);\n\n            // if the shift key is not pressed then it is safe to assume\n            // that we want the character to be lowercase.  this means if\n            // you accidentally have caps lock on then your key bindings\n            // will continue to work\n            //\n            // the only side effect that might not be desired is if you\n            // bind something like 'A' cause you want to trigger an\n            // event when capital A is pressed caps lock will no longer\n            // trigger the event.  shift+a will though.\n            if (!e.shiftKey) {\n                character = character.toLowerCase();\n            }\n\n            return character;\n        }\n\n        // for non keypress events the special maps are needed\n        if (_MAP[e.which]) {\n            return _MAP[e.which];\n        }\n\n        if (_KEYCODE_MAP[e.which]) {\n            return _KEYCODE_MAP[e.which];\n        }\n\n        // if it is not in the special map\n\n        // with keydown and keyup events the character seems to always\n        // come in as an uppercase character whether you are pressing shift\n        // or not.  we should make sure it is always lowercase for comparisons\n        return String.fromCharCode(e.which).toLowerCase();\n    }\n\n    /**\n     * checks if two arrays are equal\n     *\n     * @param {Array} modifiers1\n     * @param {Array} modifiers2\n     * @returns {boolean}\n     */\n    function _modifiersMatch(modifiers1, modifiers2) {\n        return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n    }\n\n    /**\n     * takes a key event and figures out what the modifiers are\n     *\n     * @param {Event} e\n     * @returns {Array}\n     */\n    function _eventModifiers(e) {\n        var modifiers = [];\n\n        if (e.shiftKey) {\n            modifiers.push('shift');\n        }\n\n        if (e.altKey) {\n            modifiers.push('alt');\n        }\n\n        if (e.ctrlKey) {\n            modifiers.push('ctrl');\n        }\n\n        if (e.metaKey) {\n            modifiers.push('meta');\n        }\n\n        return modifiers;\n    }\n\n    /**\n     * prevents default for this event\n     *\n     * @param {Event} e\n     * @returns void\n     */\n    function _preventDefault(e) {\n        if (e.preventDefault) {\n            e.preventDefault();\n            return;\n        }\n\n        e.returnValue = false;\n    }\n\n    /**\n     * stops propogation for this event\n     *\n     * @param {Event} e\n     * @returns void\n     */\n    function _stopPropagation(e) {\n        if (e.stopPropagation) {\n            e.stopPropagation();\n            return;\n        }\n\n        e.cancelBubble = true;\n    }\n\n    /**\n     * determines if the keycode specified is a modifier key or not\n     *\n     * @param {string} key\n     * @returns {boolean}\n     */\n    function _isModifier(key) {\n        return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n    }\n\n    /**\n     * reverses the map lookup so that we can look for specific keys\n     * to see what can and can't use keypress\n     *\n     * @return {Object}\n     */\n    function _getReverseMap() {\n        if (!_REVERSE_MAP) {\n            _REVERSE_MAP = {};\n            for (var key in _MAP) {\n\n                // pull out the numeric keypad from here cause keypress should\n                // be able to detect the keys from the character\n                if (key > 95 && key < 112) {\n                    continue;\n                }\n\n                if (_MAP.hasOwnProperty(key)) {\n                    _REVERSE_MAP[_MAP[key]] = key;\n                }\n            }\n        }\n        return _REVERSE_MAP;\n    }\n\n    /**\n     * picks the best action based on the key combination\n     *\n     * @param {string} key - character for key\n     * @param {Array} modifiers\n     * @param {string=} action passed in\n     */\n    function _pickBestAction(key, modifiers, action) {\n\n        // if no action was picked in we should try to pick the one\n        // that we think would work best for this key\n        if (!action) {\n            action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n        }\n\n        // modifier keys don't work as expected with keypress,\n        // switch to keydown\n        if (action == 'keypress' && modifiers.length) {\n            action = 'keydown';\n        }\n\n        return action;\n    }\n\n    /**\n     * Converts from a string key combination to an array\n     *\n     * @param  {string} combination like \"command+shift+l\"\n     * @return {Array}\n     */\n    function _keysFromString(combination) {\n        if (combination === '+') {\n            return ['+'];\n        }\n\n        combination = combination.replace(/\\+{2}/g, '+plus');\n        return combination.split('+');\n    }\n\n    /**\n     * Gets info for a specific key combination\n     *\n     * @param  {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n     * @param  {string=} action\n     * @returns {Object}\n     */\n    function _getKeyInfo(combination, action) {\n        var keys;\n        var key;\n        var i;\n        var modifiers = [];\n\n        // take the keys from this pattern and figure out what the actual\n        // pattern is all about\n        keys = _keysFromString(combination);\n\n        for (i = 0; i < keys.length; ++i) {\n            key = keys[i];\n\n            // normalize key names\n            if (_SPECIAL_ALIASES[key]) {\n                key = _SPECIAL_ALIASES[key];\n            }\n\n            // if this is not a keypress event then we should\n            // be smart about using shift keys\n            // this will only work for US keyboards however\n            if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n                key = _SHIFT_MAP[key];\n                modifiers.push('shift');\n            }\n\n            // if this key is a modifier then add it to the list of modifiers\n            if (_isModifier(key)) {\n                modifiers.push(key);\n            }\n        }\n\n        // depending on what the key combination is\n        // we will try to pick the best event for it\n        action = _pickBestAction(key, modifiers, action);\n\n        return {\n            key: key,\n            modifiers: modifiers,\n            action: action\n        };\n    }\n\n    function _belongsTo(element, ancestor) {\n        if (element === null || element === document) {\n            return false;\n        }\n\n        if (element === ancestor) {\n            return true;\n        }\n\n        return _belongsTo(element.parentNode, ancestor);\n    }\n\n    function Mousetrap(targetElement) {\n        var self = this;\n\n        targetElement = targetElement || document;\n\n        if (!(self instanceof Mousetrap)) {\n            return new Mousetrap(targetElement);\n        }\n\n        /**\n         * element to attach key events to\n         *\n         * @type {Element}\n         */\n        self.target = targetElement;\n\n        /**\n         * a list of all the callbacks setup via Mousetrap.bind()\n         *\n         * @type {Object}\n         */\n        self._callbacks = {};\n\n        /**\n         * direct map of string combinations to callbacks used for trigger()\n         *\n         * @type {Object}\n         */\n        self._directMap = {};\n\n        /**\n         * keeps track of what level each sequence is at since multiple\n         * sequences can start out with the same sequence\n         *\n         * @type {Object}\n         */\n        var _sequenceLevels = {};\n\n        /**\n         * variable to store the setTimeout call\n         *\n         * @type {null|number}\n         */\n        var _resetTimer;\n\n        /**\n         * temporary state where we will ignore the next keyup\n         *\n         * @type {boolean|string}\n         */\n        var _ignoreNextKeyup = false;\n\n        /**\n         * temporary state where we will ignore the next keypress\n         *\n         * @type {boolean}\n         */\n        var _ignoreNextKeypress = false;\n\n        /**\n         * are we currently inside of a sequence?\n         * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n         *\n         * @type {boolean|string}\n         */\n        var _nextExpectedAction = false;\n\n        /**\n         * resets all sequence counters except for the ones passed in\n         *\n         * @param {Object} doNotReset\n         * @returns void\n         */\n        function _resetSequences(doNotReset) {\n            doNotReset = doNotReset || {};\n\n            var activeSequences = false,\n                key;\n\n            for (key in _sequenceLevels) {\n                if (doNotReset[key]) {\n                    activeSequences = true;\n                    continue;\n                }\n                _sequenceLevels[key] = 0;\n            }\n\n            if (!activeSequences) {\n                _nextExpectedAction = false;\n            }\n        }\n\n        /**\n         * finds all callbacks that match based on the keycode, modifiers,\n         * and action\n         *\n         * @param {string} character\n         * @param {Array} modifiers\n         * @param {Event|Object} e\n         * @param {string=} sequenceName - name of the sequence we are looking for\n         * @param {string=} combination\n         * @param {number=} level\n         * @returns {Array}\n         */\n        function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n            var i;\n            var callback;\n            var matches = [];\n            var action = e.type;\n\n            // if there are no events related to this keycode\n            if (!self._callbacks[character]) {\n                return [];\n            }\n\n            // if a modifier key is coming up on its own we should allow it\n            if (action == 'keyup' && _isModifier(character)) {\n                modifiers = [character];\n            }\n\n            // loop through all callbacks for the key that was pressed\n            // and see if any of them match\n            for (i = 0; i < self._callbacks[character].length; ++i) {\n                callback = self._callbacks[character][i];\n\n                // if a sequence name is not specified, but this is a sequence at\n                // the wrong level then move onto the next match\n                if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n                    continue;\n                }\n\n                // if the action we are looking for doesn't match the action we got\n                // then we should keep going\n                if (action != callback.action) {\n                    continue;\n                }\n\n                // if this is a keypress event and the meta key and control key\n                // are not pressed that means that we need to only look at the\n                // character, otherwise check the modifiers as well\n                //\n                // chrome will not fire a keypress if meta or control is down\n                // safari will fire a keypress if meta or meta+shift is down\n                // firefox will fire a keypress if meta or control is down\n                if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n                    // when you bind a combination or sequence a second time it\n                    // should overwrite the first one.  if a sequenceName or\n                    // combination is specified in this call it does just that\n                    //\n                    // @todo make deleting its own method?\n                    var deleteCombo = !sequenceName && callback.combo == combination;\n                    var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n                    if (deleteCombo || deleteSequence) {\n                        self._callbacks[character].splice(i, 1);\n                    }\n\n                    matches.push(callback);\n                }\n            }\n\n            return matches;\n        }\n\n        /**\n         * actually calls the callback function\n         *\n         * if your callback function returns false this will use the jquery\n         * convention - prevent default and stop propogation on the event\n         *\n         * @param {Function} callback\n         * @param {Event} e\n         * @returns void\n         */\n        function _fireCallback(callback, e, combo, sequence) {\n\n            // if this event should not happen stop here\n            if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n                return;\n            }\n\n            if (callback(e, combo) === false) {\n                _preventDefault(e);\n                _stopPropagation(e);\n            }\n        }\n\n        /**\n         * handles a character key event\n         *\n         * @param {string} character\n         * @param {Array} modifiers\n         * @param {Event} e\n         * @returns void\n         */\n        self._handleKey = function(character, modifiers, e) {\n            var callbacks = _getMatches(character, modifiers, e);\n            var i;\n            var doNotReset = {};\n            var maxLevel = 0;\n            var processedSequenceCallback = false;\n\n            // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n            for (i = 0; i < callbacks.length; ++i) {\n                if (callbacks[i].seq) {\n                    maxLevel = Math.max(maxLevel, callbacks[i].level);\n                }\n            }\n\n            // loop through matching callbacks for this key event\n            for (i = 0; i < callbacks.length; ++i) {\n\n                // fire for all sequence callbacks\n                // this is because if for example you have multiple sequences\n                // bound such as \"g i\" and \"g t\" they both need to fire the\n                // callback for matching g cause otherwise you can only ever\n                // match the first one\n                if (callbacks[i].seq) {\n\n                    // only fire callbacks for the maxLevel to prevent\n                    // subsequences from also firing\n                    //\n                    // for example 'a option b' should not cause 'option b' to fire\n                    // even though 'option b' is part of the other sequence\n                    //\n                    // any sequences that do not match here will be discarded\n                    // below by the _resetSequences call\n                    if (callbacks[i].level != maxLevel) {\n                        continue;\n                    }\n\n                    processedSequenceCallback = true;\n\n                    // keep a list of which sequences were matches for later\n                    doNotReset[callbacks[i].seq] = 1;\n                    _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n                    continue;\n                }\n\n                // if there were no sequence matches but we are still here\n                // that means this is a regular match so we should fire that\n                if (!processedSequenceCallback) {\n                    _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n                }\n            }\n\n            // if the key you pressed matches the type of sequence without\n            // being a modifier (ie \"keyup\" or \"keypress\") then we should\n            // reset all sequences that were not matched by this event\n            //\n            // this is so, for example, if you have the sequence \"h a t\" and you\n            // type \"h e a r t\" it does not match.  in this case the \"e\" will\n            // cause the sequence to reset\n            //\n            // modifier keys are ignored because you can have a sequence\n            // that contains modifiers such as \"enter ctrl+space\" and in most\n            // cases the modifier key will be pressed before the next key\n            //\n            // also if you have a sequence such as \"ctrl+b a\" then pressing the\n            // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n            //\n            // the \"keydown\" is expected when there is a modifier, but the\n            // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n            // after and that causes the sequence to reset\n            //\n            // we ignore keypresses in a sequence that directly follow a keydown\n            // for the same character\n            var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n            if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n                _resetSequences(doNotReset);\n            }\n\n            _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n        };\n\n        /**\n         * handles a keydown event\n         *\n         * @param {Event} e\n         * @returns void\n         */\n        function _handleKeyEvent(e) {\n\n            // normalize e.which for key events\n            // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n            if (typeof e.which !== 'number') {\n                e.which = e.keyCode;\n            }\n\n            var character = _characterFromEvent(e);\n\n            // no character found then stop\n            if (!character) {\n                return;\n            }\n\n            // need to use === for the character check because the character can be 0\n            if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n                _ignoreNextKeyup = false;\n                return;\n            }\n\n            self.handleKey(character, _eventModifiers(e), e);\n        }\n\n        /**\n         * called to set a 1 second timeout on the specified sequence\n         *\n         * this is so after each key press in the sequence you have 1 second\n         * to press the next key before you have to start over\n         *\n         * @returns void\n         */\n        function _resetSequenceTimer() {\n            clearTimeout(_resetTimer);\n            _resetTimer = setTimeout(_resetSequences, 1000);\n        }\n\n        /**\n         * binds a key sequence to an event\n         *\n         * @param {string} combo - combo specified in bind call\n         * @param {Array} keys\n         * @param {Function} callback\n         * @param {string=} action\n         * @returns void\n         */\n        function _bindSequence(combo, keys, callback, action) {\n\n            // start off by adding a sequence level record for this combination\n            // and setting the level to 0\n            _sequenceLevels[combo] = 0;\n\n            /**\n             * callback to increase the sequence level for this sequence and reset\n             * all other sequences that were active\n             *\n             * @param {string} nextAction\n             * @returns {Function}\n             */\n            function _increaseSequence(nextAction) {\n                return function() {\n                    _nextExpectedAction = nextAction;\n                    ++_sequenceLevels[combo];\n                    _resetSequenceTimer();\n                };\n            }\n\n            /**\n             * wraps the specified callback inside of another function in order\n             * to reset all sequence counters as soon as this sequence is done\n             *\n             * @param {Event} e\n             * @returns void\n             */\n            function _callbackAndReset(e) {\n                _fireCallback(callback, e, combo);\n\n                // we should ignore the next key up if the action is key down\n                // or keypress.  this is so if you finish a sequence and\n                // release the key the final key will not trigger a keyup\n                if (action !== 'keyup') {\n                    _ignoreNextKeyup = _characterFromEvent(e);\n                }\n\n                // weird race condition if a sequence ends with the key\n                // another sequence begins with\n                setTimeout(_resetSequences, 10);\n            }\n\n            // loop through keys one at a time and bind the appropriate callback\n            // function.  for any key leading up to the final one it should\n            // increase the sequence. after the final, it should reset all sequences\n            //\n            // if an action is specified in the original bind call then that will\n            // be used throughout.  otherwise we will pass the action that the\n            // next key in the sequence should match.  this allows a sequence\n            // to mix and match keypress and keydown events depending on which\n            // ones are better suited to the key provided\n            for (var i = 0; i < keys.length; ++i) {\n                var isFinal = i + 1 === keys.length;\n                var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n                _bindSingle(keys[i], wrappedCallback, action, combo, i);\n            }\n        }\n\n        /**\n         * binds a single keyboard combination\n         *\n         * @param {string} combination\n         * @param {Function} callback\n         * @param {string=} action\n         * @param {string=} sequenceName - name of sequence if part of sequence\n         * @param {number=} level - what part of the sequence the command is\n         * @returns void\n         */\n        function _bindSingle(combination, callback, action, sequenceName, level) {\n\n            // store a direct mapped reference for use with Mousetrap.trigger\n            self._directMap[combination + ':' + action] = callback;\n\n            // make sure multiple spaces in a row become a single space\n            combination = combination.replace(/\\s+/g, ' ');\n\n            var sequence = combination.split(' ');\n            var info;\n\n            // if this pattern is a sequence of keys then run through this method\n            // to reprocess each pattern one key at a time\n            if (sequence.length > 1) {\n                _bindSequence(combination, sequence, callback, action);\n                return;\n            }\n\n            info = _getKeyInfo(combination, action);\n\n            // make sure to initialize array if this is the first time\n            // a callback is added for this key\n            self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n            // remove an existing match if there is one\n            _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n            // add this call back to the array\n            // if it is a sequence put it at the beginning\n            // if not put it at the end\n            //\n            // this is important because the way these are processed expects\n            // the sequence ones to come first\n            self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n                callback: callback,\n                modifiers: info.modifiers,\n                action: info.action,\n                seq: sequenceName,\n                level: level,\n                combo: combination\n            });\n        }\n\n        /**\n         * binds multiple combinations to the same callback\n         *\n         * @param {Array} combinations\n         * @param {Function} callback\n         * @param {string|undefined} action\n         * @returns void\n         */\n        self._bindMultiple = function(combinations, callback, action) {\n            for (var i = 0; i < combinations.length; ++i) {\n                _bindSingle(combinations[i], callback, action);\n            }\n        };\n\n        // start!\n        _addEvent(targetElement, 'keypress', _handleKeyEvent);\n        _addEvent(targetElement, 'keydown', _handleKeyEvent);\n        _addEvent(targetElement, 'keyup', _handleKeyEvent);\n    }\n\n    /**\n     * binds an event to mousetrap\n     *\n     * can be a single key, a combination of keys separated with +,\n     * an array of keys, or a sequence of keys separated by spaces\n     *\n     * be sure to list the modifier keys first to make sure that the\n     * correct key ends up getting bound (the last key in the pattern)\n     *\n     * @param {string|Array} keys\n     * @param {Function} callback\n     * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n     * @returns void\n     */\n    Mousetrap.prototype.bind = function(keys, callback, action) {\n        var self = this;\n        keys = keys instanceof Array ? keys : [keys];\n        self._bindMultiple.call(self, keys, callback, action);\n        return self;\n    };\n\n    /**\n     * unbinds an event to mousetrap\n     *\n     * the unbinding sets the callback function of the specified key combo\n     * to an empty function and deletes the corresponding key in the\n     * _directMap dict.\n     *\n     * TODO: actually remove this from the _callbacks dictionary instead\n     * of binding an empty function\n     *\n     * the keycombo+action has to be exactly the same as\n     * it was defined in the bind method\n     *\n     * @param {string|Array} keys\n     * @param {string} action\n     * @returns void\n     */\n    Mousetrap.prototype.unbind = function(keys, action) {\n        var self = this;\n        return self.bind.call(self, keys, function() {}, action);\n    };\n\n    /**\n     * triggers an event that has already been bound\n     *\n     * @param {string} keys\n     * @param {string=} action\n     * @returns void\n     */\n    Mousetrap.prototype.trigger = function(keys, action) {\n        var self = this;\n        if (self._directMap[keys + ':' + action]) {\n            self._directMap[keys + ':' + action]({}, keys);\n        }\n        return self;\n    };\n\n    /**\n     * resets the library back to its initial state.  this is useful\n     * if you want to clear out the current keyboard shortcuts and bind\n     * new ones - for example if you switch to another page\n     *\n     * @returns void\n     */\n    Mousetrap.prototype.reset = function() {\n        var self = this;\n        self._callbacks = {};\n        self._directMap = {};\n        return self;\n    };\n\n    /**\n     * should we stop this event before firing off callbacks\n     *\n     * @param {Event} e\n     * @param {Element} element\n     * @return {boolean}\n     */\n    Mousetrap.prototype.stopCallback = function(e, element) {\n        var self = this;\n\n        // if the element has the class \"mousetrap\" then no need to stop\n        if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n            return false;\n        }\n\n        if (_belongsTo(element, self.target)) {\n            return false;\n        }\n\n        // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n        // not the initial event target in the shadow tree. Note that not all events cross the\n        // shadow boundary.\n        // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n        // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n        // target cannot be obtained.\n        if ('composedPath' in e && typeof e.composedPath === 'function') {\n            // For open shadow trees, update `element` so that the following check works.\n            var initialEventTarget = e.composedPath()[0];\n            if (initialEventTarget !== e.target) {\n                element = initialEventTarget;\n            }\n        }\n\n        // stop for input, select, and textarea\n        return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n    };\n\n    /**\n     * exposes _handleKey publicly so it can be overwritten by extensions\n     */\n    Mousetrap.prototype.handleKey = function() {\n        var self = this;\n        return self._handleKey.apply(self, arguments);\n    };\n\n    /**\n     * allow custom key mappings\n     */\n    Mousetrap.addKeycodes = function(object) {\n        for (var key in object) {\n            if (object.hasOwnProperty(key)) {\n                _MAP[key] = object[key];\n            }\n        }\n        _REVERSE_MAP = null;\n    };\n\n    /**\n     * Init the global mousetrap functions\n     *\n     * This method is needed to allow the global mousetrap functions to work\n     * now that mousetrap is a constructor function.\n     */\n    Mousetrap.init = function() {\n        var documentMousetrap = Mousetrap(document);\n        for (var method in documentMousetrap) {\n            if (method.charAt(0) !== '_') {\n                Mousetrap[method] = (function(method) {\n                    return function() {\n                        return documentMousetrap[method].apply(documentMousetrap, arguments);\n                    };\n                } (method));\n            }\n        }\n    };\n\n    Mousetrap.init();\n\n    // expose mousetrap to the global object\n    window.Mousetrap = Mousetrap;\n\n    // expose as a common js module\n    if ( true && module.exports) {\n        module.exports = Mousetrap;\n    }\n\n    // expose mousetrap as an AMD module\n    if (true) {\n        !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n            return Mousetrap;\n        }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n    }\n}) (typeof window !== 'undefined' ? window : null, typeof  window !== 'undefined' ? document : null);\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 407:\n/***/ (function(module, exports) {\n\n/**\n * adds a bindGlobal method to Mousetrap that allows you to\n * bind specific keyboard shortcuts that will still work\n * inside a text input field\n *\n * usage:\n * Mousetrap.bindGlobal('ctrl+s', _saveChanges);\n */\n/* global Mousetrap:true */\n(function(Mousetrap) {\n    if (! Mousetrap) {\n        return;\n    }\n    var _globalCallbacks = {};\n    var _originalStopCallback = Mousetrap.prototype.stopCallback;\n\n    Mousetrap.prototype.stopCallback = function(e, element, combo, sequence) {\n        var self = this;\n\n        if (self.paused) {\n            return true;\n        }\n\n        if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {\n            return false;\n        }\n\n        return _originalStopCallback.call(self, e, element, combo);\n    };\n\n    Mousetrap.prototype.bindGlobal = function(keys, callback, action) {\n        var self = this;\n        self.bind(keys, callback, action);\n\n        if (keys instanceof Array) {\n            for (var i = 0; i < keys.length; i++) {\n                _globalCallbacks[keys[i]] = true;\n            }\n            return;\n        }\n\n        _globalCallbacks[keys] = true;\n    };\n\n    Mousetrap.init();\n}) (typeof Mousetrap !== \"undefined\" ? Mousetrap : undefined);\n\n\n/***/ }),\n\n/***/ 441:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"createHigherOrderComponent\", function() { return /* reexport */ create_higher_order_component; });\n__webpack_require__.d(__webpack_exports__, \"compose\", function() { return /* reexport */ compose; });\n__webpack_require__.d(__webpack_exports__, \"ifCondition\", function() { return /* reexport */ if_condition; });\n__webpack_require__.d(__webpack_exports__, \"pure\", function() { return /* reexport */ higher_order_pure; });\n__webpack_require__.d(__webpack_exports__, \"withGlobalEvents\", function() { return /* reexport */ with_global_events; });\n__webpack_require__.d(__webpack_exports__, \"withInstanceId\", function() { return /* reexport */ with_instance_id; });\n__webpack_require__.d(__webpack_exports__, \"withSafeTimeout\", function() { return /* reexport */ with_safe_timeout; });\n__webpack_require__.d(__webpack_exports__, \"withState\", function() { return /* reexport */ withState; });\n__webpack_require__.d(__webpack_exports__, \"useCopyOnClick\", function() { return /* reexport */ useCopyOnClick; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalUseDragging\", function() { return /* reexport */ useDragging; });\n__webpack_require__.d(__webpack_exports__, \"useInstanceId\", function() { return /* reexport */ useInstanceId; });\n__webpack_require__.d(__webpack_exports__, \"useKeyboardShortcut\", function() { return /* reexport */ use_keyboard_shortcut; });\n__webpack_require__.d(__webpack_exports__, \"useMediaQuery\", function() { return /* reexport */ useMediaQuery; });\n__webpack_require__.d(__webpack_exports__, \"usePrevious\", function() { return /* reexport */ usePrevious; });\n__webpack_require__.d(__webpack_exports__, \"useReducedMotion\", function() { return /* reexport */ use_reduced_motion; });\n__webpack_require__.d(__webpack_exports__, \"useViewportMatch\", function() { return /* reexport */ use_viewport_match; });\n__webpack_require__.d(__webpack_exports__, \"useResizeObserver\", function() { return /* reexport */ use_resize_observer; });\n__webpack_require__.d(__webpack_exports__, \"useAsyncList\", function() { return /* reexport */ use_async_list; });\n__webpack_require__.d(__webpack_exports__, \"useWarnOnChange\", function() { return /* reexport */ use_warn_on_change; });\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/utils/create-higher-order-component/index.js\n/**\n * External dependencies\n */\n\n/**\n * Given a function mapping a component to an enhanced component and modifier\n * name, returns the enhanced component augmented with a generated displayName.\n *\n * @param {Function} mapComponentToEnhancedComponent Function mapping component\n *                                                   to enhanced component.\n * @param {string}   modifierName                    Seed name from which to\n *                                                   generated display name.\n *\n * @return {WPComponent} Component class with generated display name assigned.\n */\n\nfunction createHigherOrderComponent(mapComponentToEnhancedComponent, modifierName) {\n  return function (OriginalComponent) {\n    var EnhancedComponent = mapComponentToEnhancedComponent(OriginalComponent);\n    var _OriginalComponent$di = OriginalComponent.displayName,\n        displayName = _OriginalComponent$di === void 0 ? OriginalComponent.name || 'Component' : _OriginalComponent$di;\n    EnhancedComponent.displayName = \"\".concat(Object(external_this_lodash_[\"upperFirst\"])(Object(external_this_lodash_[\"camelCase\"])(modifierName)), \"(\").concat(displayName, \")\");\n    return EnhancedComponent;\n  };\n}\n\n/* harmony default export */ var create_higher_order_component = (createHigherOrderComponent);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/compose.js\n/**\n * External dependencies\n */\n\n/**\n * Composes multiple higher-order components into a single higher-order component. Performs right-to-left function\n * composition, where each successive invocation is supplied the return value of the previous.\n *\n * @param {...Function} hocs The HOC functions to invoke.\n *\n * @return {Function} Returns the new composite function.\n */\n\n/* harmony default export */ var compose = (external_this_lodash_[\"flowRight\"]);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/if-condition/index.js\n\n\n/**\n * Internal dependencies\n */\n\n/**\n * Higher-order component creator, creating a new component which renders if\n * the given condition is satisfied or with the given optional prop name.\n *\n * @param {Function} predicate Function to test condition.\n *\n * @return {Function} Higher-order component.\n */\n\nvar if_condition_ifCondition = function ifCondition(predicate) {\n  return create_higher_order_component(function (WrappedComponent) {\n    return function (props) {\n      if (!predicate(props)) {\n        return null;\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, props);\n    };\n  }, 'ifCondition');\n};\n\n/* harmony default export */ var if_condition = (if_condition_ifCondition);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/pure/index.js\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Given a component returns the enhanced component augmented with a component\n * only rerendering when its props/state change\n *\n * @param {Function} mapComponentToEnhancedComponent Function mapping component\n *                                                   to enhanced component.\n * @param {string}   modifierName                    Seed name from which to\n *                                                   generated display name.\n *\n * @return {WPComponent} Component class with generated display name assigned.\n */\n\nvar pure = create_higher_order_component(function (Wrapped) {\n  if (Wrapped.prototype instanceof external_this_wp_element_[\"Component\"]) {\n    return /*#__PURE__*/function (_Wrapped) {\n      Object(inherits[\"a\" /* default */])(_class, _Wrapped);\n\n      var _super = _createSuper(_class);\n\n      function _class() {\n        Object(classCallCheck[\"a\" /* default */])(this, _class);\n\n        return _super.apply(this, arguments);\n      }\n\n      Object(createClass[\"a\" /* default */])(_class, [{\n        key: \"shouldComponentUpdate\",\n        value: function shouldComponentUpdate(nextProps, nextState) {\n          return !external_this_wp_isShallowEqual_default()(nextProps, this.props) || !external_this_wp_isShallowEqual_default()(nextState, this.state);\n        }\n      }]);\n\n      return _class;\n    }(Wrapped);\n  }\n\n  return /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(_class2, _Component);\n\n    var _super2 = _createSuper(_class2);\n\n    function _class2() {\n      Object(classCallCheck[\"a\" /* default */])(this, _class2);\n\n      return _super2.apply(this, arguments);\n    }\n\n    Object(createClass[\"a\" /* default */])(_class2, [{\n      key: \"shouldComponentUpdate\",\n      value: function shouldComponentUpdate(nextProps) {\n        return !external_this_wp_isShallowEqual_default()(nextProps, this.props);\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        return Object(external_this_wp_element_[\"createElement\"])(Wrapped, this.props);\n      }\n    }]);\n\n    return _class2;\n  }(external_this_wp_element_[\"Component\"]);\n}, 'pure');\n/* harmony default export */ var higher_order_pure = (pure);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/with-global-events/listener.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * Class responsible for orchestrating event handling on the global window,\n * binding a single event to be shared across all handling instances, and\n * removing the handler when no instances are listening for the event.\n */\n\nvar listener_Listener = /*#__PURE__*/function () {\n  function Listener() {\n    Object(classCallCheck[\"a\" /* default */])(this, Listener);\n\n    this.listeners = {};\n    this.handleEvent = this.handleEvent.bind(this);\n  }\n\n  Object(createClass[\"a\" /* default */])(Listener, [{\n    key: \"add\",\n    value: function add(eventType, instance) {\n      if (!this.listeners[eventType]) {\n        // Adding first listener for this type, so bind event.\n        window.addEventListener(eventType, this.handleEvent);\n        this.listeners[eventType] = [];\n      }\n\n      this.listeners[eventType].push(instance);\n    }\n  }, {\n    key: \"remove\",\n    value: function remove(eventType, instance) {\n      this.listeners[eventType] = Object(external_this_lodash_[\"without\"])(this.listeners[eventType], instance);\n\n      if (!this.listeners[eventType].length) {\n        // Removing last listener for this type, so unbind event.\n        window.removeEventListener(eventType, this.handleEvent);\n        delete this.listeners[eventType];\n      }\n    }\n  }, {\n    key: \"handleEvent\",\n    value: function handleEvent(event) {\n      Object(external_this_lodash_[\"forEach\"])(this.listeners[event.type], function (instance) {\n        instance.handleEvent(event);\n      });\n    }\n  }]);\n\n  return Listener;\n}();\n\n/* harmony default export */ var listener = (listener_Listener);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/with-global-events/index.js\n\n\n\n\n\n\n\n\n\nfunction with_global_events_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_global_events_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_global_events_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Listener instance responsible for managing document event handling.\n *\n * @type {Listener}\n */\n\nvar with_global_events_listener = new listener();\n/**\n * Higher-order component creator which, given an object of DOM event types and\n * values corresponding to a callback function name on the component, will\n * create or update a window event handler to invoke the callback when an event\n * occurs. On behalf of the consuming developer, the higher-order component\n * manages unbinding when the component unmounts, and binding at most a single\n * event handler for the entire application.\n *\n * @param {Object<string,string>} eventTypesToHandlers Object with keys of DOM\n *                                                     event type, the value a\n *                                                     name of the function on\n *                                                     the original component's\n *                                                     instance which handles\n *                                                     the event.\n *\n * @return {Function} Higher-order component.\n */\n\nfunction withGlobalEvents(eventTypesToHandlers) {\n  return create_higher_order_component(function (WrappedComponent) {\n    var Wrapper = /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(Wrapper, _Component);\n\n      var _super = with_global_events_createSuper(Wrapper);\n\n      function Wrapper() {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, Wrapper);\n\n        _this = _super.apply(this, arguments);\n        _this.handleEvent = _this.handleEvent.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n        _this.handleRef = _this.handleRef.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(Wrapper, [{\n        key: \"componentDidMount\",\n        value: function componentDidMount() {\n          var _this2 = this;\n\n          Object(external_this_lodash_[\"forEach\"])(eventTypesToHandlers, function (handler, eventType) {\n            with_global_events_listener.add(eventType, _this2);\n          });\n        }\n      }, {\n        key: \"componentWillUnmount\",\n        value: function componentWillUnmount() {\n          var _this3 = this;\n\n          Object(external_this_lodash_[\"forEach\"])(eventTypesToHandlers, function (handler, eventType) {\n            with_global_events_listener.remove(eventType, _this3);\n          });\n        }\n      }, {\n        key: \"handleEvent\",\n        value: function handleEvent(event) {\n          var handler = eventTypesToHandlers[event.type];\n\n          if (typeof this.wrappedRef[handler] === 'function') {\n            this.wrappedRef[handler](event);\n          }\n        }\n      }, {\n        key: \"handleRef\",\n        value: function handleRef(el) {\n          this.wrappedRef = el; // Any component using `withGlobalEvents` that is not setting a `ref`\n          // will cause `this.props.forwardedRef` to be `null`, so we need this\n          // check.\n\n          if (this.props.forwardedRef) {\n            this.props.forwardedRef(el);\n          }\n        }\n      }, {\n        key: \"render\",\n        value: function render() {\n          return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, this.props.ownProps, {\n            ref: this.handleRef\n          }));\n        }\n      }]);\n\n      return Wrapper;\n    }(external_this_wp_element_[\"Component\"]);\n\n    return Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n      return Object(external_this_wp_element_[\"createElement\"])(Wrapper, {\n        ownProps: props,\n        forwardedRef: ref\n      });\n    });\n  }, 'withGlobalEvents');\n}\n\n/* harmony default export */ var with_global_events = (withGlobalEvents);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-instance-id/index.js\n/**\n * WordPress dependencies\n */\n\nvar instanceMap = new WeakMap();\n/**\n * Creates a new id for a given object.\n *\n * @param {Object} object Object reference to create an id for.\n */\n\nfunction createId(object) {\n  var instances = instanceMap.get(object) || 0;\n  instanceMap.set(object, instances + 1);\n  return instances;\n}\n/**\n * Provides a unique instance ID.\n *\n * @param {Object} object Object reference to create an id for.\n * @param {string} prefix Prefix for the unique id.\n */\n\n\nfunction useInstanceId(object, prefix) {\n  return Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var id = createId(object);\n    return prefix ? \"\".concat(prefix, \"-\").concat(id) : id;\n  }, [object]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/with-instance-id/index.js\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A Higher Order Component used to be provide a unique instance ID by\n * component.\n *\n * @param {WPComponent} WrappedComponent The wrapped component.\n *\n * @return {WPComponent} Component with an instanceId prop.\n */\n\n/* harmony default export */ var with_instance_id = (create_higher_order_component(function (WrappedComponent) {\n  return function (props) {\n    var instanceId = useInstanceId(WrappedComponent);\n    return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n      instanceId: instanceId\n    }));\n  };\n}, 'withInstanceId'));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/with-safe-timeout/index.js\n\n\n\n\n\n\n\n\n\nfunction with_safe_timeout_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_safe_timeout_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_safe_timeout_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A higher-order component used to provide and manage delayed function calls\n * that ought to be bound to a component's lifecycle.\n *\n * @param {WPComponent} OriginalComponent Component requiring setTimeout\n *\n * @return {WPComponent} Wrapped component.\n */\n\nvar withSafeTimeout = create_higher_order_component(function (OriginalComponent) {\n  return /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(WrappedComponent, _Component);\n\n    var _super = with_safe_timeout_createSuper(WrappedComponent);\n\n    function WrappedComponent() {\n      var _this;\n\n      Object(classCallCheck[\"a\" /* default */])(this, WrappedComponent);\n\n      _this = _super.apply(this, arguments);\n      _this.timeouts = [];\n      _this.setTimeout = _this.setTimeout.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.clearTimeout = _this.clearTimeout.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      return _this;\n    }\n\n    Object(createClass[\"a\" /* default */])(WrappedComponent, [{\n      key: \"componentWillUnmount\",\n      value: function componentWillUnmount() {\n        this.timeouts.forEach(clearTimeout);\n      }\n    }, {\n      key: \"setTimeout\",\n      value: function (_setTimeout) {\n        function setTimeout(_x, _x2) {\n          return _setTimeout.apply(this, arguments);\n        }\n\n        setTimeout.toString = function () {\n          return _setTimeout.toString();\n        };\n\n        return setTimeout;\n      }(function (fn, delay) {\n        var _this2 = this;\n\n        var id = setTimeout(function () {\n          fn();\n\n          _this2.clearTimeout(id);\n        }, delay);\n        this.timeouts.push(id);\n        return id;\n      })\n    }, {\n      key: \"clearTimeout\",\n      value: function (_clearTimeout) {\n        function clearTimeout(_x3) {\n          return _clearTimeout.apply(this, arguments);\n        }\n\n        clearTimeout.toString = function () {\n          return _clearTimeout.toString();\n        };\n\n        return clearTimeout;\n      }(function (id) {\n        clearTimeout(id);\n        this.timeouts = Object(external_this_lodash_[\"without\"])(this.timeouts, id);\n      })\n    }, {\n      key: \"render\",\n      value: function render() {\n        return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({}, this.props, {\n          setTimeout: this.setTimeout,\n          clearTimeout: this.clearTimeout\n        }));\n      }\n    }]);\n\n    return WrappedComponent;\n  }(external_this_wp_element_[\"Component\"]);\n}, 'withSafeTimeout');\n/* harmony default export */ var with_safe_timeout = (withSafeTimeout);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/higher-order/with-state/index.js\n\n\n\n\n\n\n\n\n\nfunction with_state_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (with_state_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction with_state_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A Higher Order Component used to provide and manage internal component state\n * via props.\n *\n * @param {?Object} initialState Optional initial state of the component.\n *\n * @return {WPComponent} Wrapped component.\n */\n\nfunction withState() {\n  var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return create_higher_order_component(function (OriginalComponent) {\n    return /*#__PURE__*/function (_Component) {\n      Object(inherits[\"a\" /* default */])(WrappedComponent, _Component);\n\n      var _super = with_state_createSuper(WrappedComponent);\n\n      function WrappedComponent() {\n        var _this;\n\n        Object(classCallCheck[\"a\" /* default */])(this, WrappedComponent);\n\n        _this = _super.apply(this, arguments);\n        _this.setState = _this.setState.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n        _this.state = initialState;\n        return _this;\n      }\n\n      Object(createClass[\"a\" /* default */])(WrappedComponent, [{\n        key: \"render\",\n        value: function render() {\n          return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({}, this.props, this.state, {\n            setState: this.setState\n          }));\n        }\n      }]);\n\n      return WrappedComponent;\n    }(external_this_wp_element_[\"Component\"]);\n  }, 'withState');\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/clipboard/dist/clipboard.js\nvar dist_clipboard = __webpack_require__(266);\nvar clipboard_default = /*#__PURE__*/__webpack_require__.n(dist_clipboard);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-copy-on-click/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Copies the text to the clipboard when the element is clicked.\n *\n * @param {Object}          ref     Reference with the element.\n * @param {string|Function} text    The text to copy.\n * @param {number}          timeout Optional timeout to reset the returned\n *                                  state. 4 seconds by default.\n *\n * @return {boolean} Whether or not the text has been copied. Resets after the\n *                   timeout.\n */\n\nfunction useCopyOnClick(ref, _text) {\n  var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4000;\n  var clipboard = Object(external_this_wp_element_[\"useRef\"])();\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      hasCopied = _useState2[0],\n      setHasCopied = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var timeoutId; // Clipboard listens to click events.\n\n    clipboard.current = new clipboard_default.a(ref.current, {\n      text: function text() {\n        return typeof _text === 'function' ? _text() : _text;\n      },\n      container: ref.current\n    });\n    clipboard.current.on('success', function (_ref) {\n      var clearSelection = _ref.clearSelection;\n      // Clearing selection will move focus back to the triggering button,\n      // ensuring that it is not reset to the body, and further that it is\n      // kept within the rendered node.\n      clearSelection();\n\n      if (timeout) {\n        setHasCopied(true);\n        clearTimeout(timeoutId);\n        timeoutId = setTimeout(function () {\n          return setHasCopied(false);\n        }, timeout);\n      }\n    });\n    return function () {\n      clipboard.current.destroy();\n      clearTimeout(timeoutId);\n    };\n  }, [_text, timeout, setHasCopied]);\n  return hasCopied;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-dragging/index.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? external_this_wp_element_[\"useLayoutEffect\"] : external_this_wp_element_[\"useEffect\"];\nfunction useDragging(_ref) {\n  var onDragStart = _ref.onDragStart,\n      onDragMove = _ref.onDragMove,\n      onDragEnd = _ref.onDragEnd;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isDragging = _useState2[0],\n      setIsDragging = _useState2[1];\n\n  var eventsRef = Object(external_this_wp_element_[\"useRef\"])({\n    onDragStart: onDragStart,\n    onDragMove: onDragMove,\n    onDragEnd: onDragEnd\n  });\n  useIsomorphicLayoutEffect(function () {\n    eventsRef.current.onDragStart = onDragStart;\n    eventsRef.current.onDragMove = onDragMove;\n    eventsRef.current.onDragEnd = onDragEnd;\n  }, [onDragStart, onDragMove, onDragEnd]);\n  var onMouseMove = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    var _eventsRef$current;\n\n    return eventsRef.current.onDragMove && (_eventsRef$current = eventsRef.current).onDragMove.apply(_eventsRef$current, arguments);\n  }, []);\n  var endDrag = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    if (eventsRef.current.onDragEnd) {\n      var _eventsRef$current2;\n\n      (_eventsRef$current2 = eventsRef.current).onDragEnd.apply(_eventsRef$current2, arguments);\n    }\n\n    document.removeEventListener('mousemove', onMouseMove);\n    document.removeEventListener('mouseup', endDrag);\n    setIsDragging(false);\n  }, []);\n  var startDrag = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    if (eventsRef.current.onDragStart) {\n      var _eventsRef$current3;\n\n      (_eventsRef$current3 = eventsRef.current).onDragStart.apply(_eventsRef$current3, arguments);\n    }\n\n    document.addEventListener('mousemove', onMouseMove);\n    document.addEventListener('mouseup', endDrag);\n    setIsDragging(true);\n  }, []); // Remove the global events when unmounting if needed.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    return function () {\n      if (isDragging) {\n        document.removeEventListener('mousemove', onMouseMove);\n        document.removeEventListener('mouseup', endDrag);\n      }\n    };\n  }, [isDragging]);\n  return {\n    startDrag: startDrag,\n    endDrag: endDrag,\n    isDragging: isDragging\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/mousetrap/mousetrap.js\nvar mousetrap_mousetrap = __webpack_require__(267);\nvar mousetrap_default = /*#__PURE__*/__webpack_require__.n(mousetrap_mousetrap);\n\n// EXTERNAL MODULE: ./node_modules/mousetrap/plugins/global-bind/mousetrap-global-bind.js\nvar mousetrap_global_bind = __webpack_require__(407);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-keyboard-shortcut/index.js\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * A block selection object.\n *\n * @typedef {Object} WPKeyboardShortcutConfig\n *\n * @property {boolean} [bindGlobal]  Handle keyboard events anywhere including inside textarea/input fields.\n * @property {string}  [eventName]   Event name used to trigger the handler, defaults to keydown.\n * @property {boolean} [isDisabled]  Disables the keyboard handler if the value is true.\n * @property {Object}  [target]      React reference to the DOM element used to catch the keyboard event.\n */\n\n/**\n * Return true if platform is MacOS.\n *\n * @param {Object} _window   window object by default; used for DI testing.\n *\n * @return {boolean} True if MacOS; false otherwise.\n */\n\nfunction isAppleOS() {\n  var _window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n\n  var platform = _window.navigator.platform;\n  return platform.indexOf('Mac') !== -1 || Object(external_this_lodash_[\"includes\"])(['iPad', 'iPhone'], platform);\n}\n/**\n * Attach a keyboard shortcut handler.\n *\n * @param {string[]|string}         shortcuts  Keyboard Shortcuts.\n * @param {Function}                callback   Shortcut callback.\n * @param {WPKeyboardShortcutConfig} options    Shortcut options.\n */\n\n\nfunction useKeyboardShortcut(shortcuts, callback) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref$bindGlobal = _ref.bindGlobal,\n      bindGlobal = _ref$bindGlobal === void 0 ? false : _ref$bindGlobal,\n      _ref$eventName = _ref.eventName,\n      eventName = _ref$eventName === void 0 ? 'keydown' : _ref$eventName,\n      _ref$isDisabled = _ref.isDisabled,\n      isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,\n      target = _ref.target;\n\n  var currentCallback = Object(external_this_wp_element_[\"useRef\"])(callback);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    currentCallback.current = callback;\n  }, [callback]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isDisabled) {\n      return;\n    }\n\n    var mousetrap = new mousetrap_default.a(target ? target.current : document);\n    Object(external_this_lodash_[\"castArray\"])(shortcuts).forEach(function (shortcut) {\n      var keys = shortcut.split('+'); // Determines whether a key is a modifier by the length of the string.\n      // E.g. if I add a pass a shortcut Shift+Cmd+M, it'll determine that\n      // the modifiers are Shift and Cmd because they're not a single character.\n\n      var modifiers = new Set(keys.filter(function (value) {\n        return value.length > 1;\n      }));\n      var hasAlt = modifiers.has('alt');\n      var hasShift = modifiers.has('shift'); // This should be better moved to the shortcut registration instead.\n\n      if (isAppleOS() && (modifiers.size === 1 && hasAlt || modifiers.size === 2 && hasAlt && hasShift)) {\n        throw new Error(\"Cannot bind \".concat(shortcut, \". Alt and Shift+Alt modifiers are reserved for character input.\"));\n      }\n\n      var bindFn = bindGlobal ? 'bindGlobal' : 'bind';\n      mousetrap[bindFn](shortcut, function () {\n        return currentCallback.current.apply(currentCallback, arguments);\n      }, eventName);\n    });\n    return function () {\n      mousetrap.reset();\n    };\n  }, [shortcuts, bindGlobal, eventName, target, isDisabled]);\n}\n\n/* harmony default export */ var use_keyboard_shortcut = (useKeyboardShortcut);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-media-query/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Runs a media query and returns its value when it changes.\n *\n * @param {string} [query] Media Query.\n * @return {boolean} return value of the media query.\n */\n\nfunction useMediaQuery(query) {\n  var _useState = Object(external_this_wp_element_[\"useState\"])(query && window.matchMedia(query).matches),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      match = _useState2[0],\n      setMatch = _useState2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!query) {\n      return;\n    }\n\n    var updateMatch = function updateMatch() {\n      return setMatch(window.matchMedia(query).matches);\n    };\n\n    updateMatch();\n    var list = window.matchMedia(query);\n    list.addListener(updateMatch);\n    return function () {\n      list.removeListener(updateMatch);\n    };\n  }, [query]);\n  return query && match;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-previous/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Use something's value from the previous render.\n * Based on https://usehooks.com/usePrevious/.\n *\n * @template T\n *\n * @param {T} value The value to track.\n *\n * @return {T|undefined} The value from the previous render.\n */\n\nfunction usePrevious(value) {\n  // Disable reason: without an explicit type detail, the type of ref will be\n  // inferred based on the initial useRef argument, which is undefined.\n  // https://github.com/WordPress/gutenberg/pull/22597#issuecomment-633588366\n\n  /* eslint-disable jsdoc/no-undefined-types */\n  var ref = Object(external_this_wp_element_[\"useRef\"])(\n  /** @type {T|undefined} */\n  undefined);\n  /* eslint-enable jsdoc/no-undefined-types */\n  // Store current value in ref.\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    ref.current = value;\n  }, [value]); // Re-run when value changes.\n  // Return previous value (happens before update in useEffect above).\n\n  return ref.current;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-reduced-motion/index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Whether or not the user agent is Internet Explorer.\n *\n * @type {boolean}\n */\n\nvar IS_IE = typeof window !== 'undefined' && window.navigator.userAgent.indexOf('Trident') >= 0;\n/**\n * Hook returning whether the user has a preference for reduced motion.\n *\n * @return {boolean} Reduced motion preference value.\n */\n\nvar useReducedMotion = undefined || IS_IE ? function () {\n  return true;\n} : function () {\n  return useMediaQuery('(prefers-reduced-motion: reduce)');\n};\n/* harmony default export */ var use_reduced_motion = (useReducedMotion);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-viewport-match/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * @typedef {\"huge\"|\"wide\"|\"large\"|\"medium\"|\"small\"|\"mobile\"} WPBreakpoint\n */\n\n/**\n * Hash of breakpoint names with pixel width at which it becomes effective.\n *\n * @see _breakpoints.scss\n *\n * @type {Object<WPBreakpoint,number>}\n */\n\nvar BREAKPOINTS = {\n  huge: 1440,\n  wide: 1280,\n  large: 960,\n  medium: 782,\n  small: 600,\n  mobile: 480\n};\n/**\n * @typedef {\">=\"|\"<\"} WPViewportOperator\n */\n\n/**\n * Object mapping media query operators to the condition to be used.\n *\n * @type {Object<WPViewportOperator,string>}\n */\n\nvar CONDITIONS = {\n  '>=': 'min-width',\n  '<': 'max-width'\n};\n/**\n * Object mapping media query operators to a function that given a breakpointValue and a width evaluates if the operator matches the values.\n *\n * @type {Object<WPViewportOperator,Function>}\n */\n\nvar OPERATOR_EVALUATORS = {\n  '>=': function _(breakpointValue, width) {\n    return width >= breakpointValue;\n  },\n  '<': function _(breakpointValue, width) {\n    return width < breakpointValue;\n  }\n};\nvar ViewportMatchWidthContext = Object(external_this_wp_element_[\"createContext\"])(null);\n/**\n * Returns true if the viewport matches the given query, or false otherwise.\n *\n * @param {WPBreakpoint}       breakpoint      Breakpoint size name.\n * @param {WPViewportOperator} [operator=\">=\"] Viewport operator.\n *\n * @example\n *\n * ```js\n * useViewportMatch( 'huge', '<' );\n * useViewportMatch( 'medium' );\n * ```\n *\n * @return {boolean} Whether viewport matches query.\n */\n\nvar use_viewport_match_useViewportMatch = function useViewportMatch(breakpoint) {\n  var operator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '>=';\n  var simulatedWidth = Object(external_this_wp_element_[\"useContext\"])(ViewportMatchWidthContext);\n  var mediaQuery = !simulatedWidth && \"(\".concat(CONDITIONS[operator], \": \").concat(BREAKPOINTS[breakpoint], \"px)\");\n  var mediaQueryResult = useMediaQuery(mediaQuery);\n\n  if (simulatedWidth) {\n    return OPERATOR_EVALUATORS[operator](BREAKPOINTS[breakpoint], simulatedWidth);\n  }\n\n  return mediaQueryResult;\n};\n\nuse_viewport_match_useViewportMatch.__experimentalWidthProvider = ViewportMatchWidthContext.Provider;\n/* harmony default export */ var use_viewport_match = (use_viewport_match_useViewportMatch);\n\n// EXTERNAL MODULE: ./node_modules/react-resize-aware/dist/index.js\nvar dist = __webpack_require__(143);\nvar dist_default = /*#__PURE__*/__webpack_require__.n(dist);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-resize-observer/index.js\n/**\n * External dependencies\n */\n\n/**\n * Hook which allows to listen the resize event of any target element when it changes sizes.\n * _Note: `useResizeObserver` will report `null` until after first render_\n *\n * @return {Array} An array of {Element} `resizeListener` and {?Object} `sizes` with properties `width` and `height`\n *\n * @example\n *\n * ```js\n * const App = () => {\n * \tconst [ resizeListener, sizes ] = useResizeObserver();\n *\n * \treturn (\n * \t\t<div>\n * \t\t\t{ resizeListener }\n * \t\t\tYour content here\n * \t\t</div>\n * \t);\n * };\n * ```\n *\n */\n\n/* harmony default export */ var use_resize_observer = (dist_default.a);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"priorityQueue\"]}\nvar external_this_wp_priorityQueue_ = __webpack_require__(144);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-async-list/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Returns the first items from list that are present on state.\n *\n * @param {Array} list  New array.\n * @param {Array} state Current state.\n * @return {Array} First items present iin state.\n */\n\nfunction getFirstItemsPresentInState(list, state) {\n  var firstItems = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n\n    if (!state.includes(item)) {\n      break;\n    }\n\n    firstItems.push(item);\n  }\n\n  return firstItems;\n}\n/**\n * Reducer keeping track of a list of appended items.\n *\n * @param {Array}  state  Current state\n * @param {Object} action Action\n *\n * @return {Array} update state.\n */\n\n\nfunction listReducer(state, action) {\n  if (action.type === 'reset') {\n    return action.list;\n  }\n\n  if (action.type === 'append') {\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(state), [action.item]);\n  }\n\n  return state;\n}\n/**\n * React hook returns an array which items get asynchronously appended from a source array.\n * This behavior is useful if we want to render a list of items asynchronously for performance reasons.\n *\n * @param {Array} list Source array.\n * @return {Array} Async array.\n */\n\n\nfunction useAsyncList(list) {\n  var _useReducer = Object(external_this_wp_element_[\"useReducer\"])(listReducer, []),\n      _useReducer2 = Object(slicedToArray[\"a\" /* default */])(_useReducer, 2),\n      current = _useReducer2[0],\n      dispatch = _useReducer2[1];\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // On reset, we keep the first items that were previously rendered.\n    var firstItems = getFirstItemsPresentInState(list, current);\n    dispatch({\n      type: 'reset',\n      list: firstItems\n    });\n    var asyncQueue = Object(external_this_wp_priorityQueue_[\"createQueue\"])();\n\n    var append = function append(index) {\n      return function () {\n        if (list.length <= index) {\n          return;\n        }\n\n        dispatch({\n          type: 'append',\n          item: list[index]\n        });\n        asyncQueue.add({}, append(index + 1));\n      };\n    };\n\n    asyncQueue.add({}, append(firstItems.length));\n    return function () {\n      return asyncQueue.reset();\n    };\n  }, [list]);\n  return current;\n}\n\n/* harmony default export */ var use_async_list = (useAsyncList);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/hooks/use-warn-on-change/index.js\n\n\n/**\n * Internal dependencies\n */\n\n/**\n * Hook that performs a shallow comparison between the preview value of an object\n * and the new one, if there's a difference, it prints it to the console.\n * this is useful in performance related work, to check why a component re-renders.\n *\n *  @example\n *\n * ```jsx\n * function MyComponent(props) {\n *    useWarnOnChange(props);\n *\n *    return \"Something\";\n * }\n * ```\n *\n * @param {Object} object Object which changes to compare.\n * @param {string} prefix Just a prefix to show when console logging.\n */\n\nfunction useWarnOnChange(object) {\n  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Change detection';\n  var previousValues = usePrevious(object);\n  Object.entries(previousValues !== null && previousValues !== void 0 ? previousValues : []).forEach(function (_ref) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n        key = _ref2[0],\n        value = _ref2[1];\n\n    if (value !== object[key]) {\n      // eslint-disable-next-line no-console\n      console.warn(\"\".concat(prefix, \": \").concat(key, \" key changed:\"), value, object[key]);\n    }\n  });\n}\n\n/* harmony default export */ var use_warn_on_change = (useWarnOnChange);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/compose/build-module/index.js\n// Utils\n // Compose helper (aliased flowRight from Lodash)\n\n // Higher-order components\n\n\n\n\n\n\n // Hooks\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-core-data.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"coreData\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 443);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 120:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/**\n * Given an instance of EquivalentKeyMap, returns its internal value pair tuple\n * for a key, if one exists. The tuple members consist of the last reference\n * value for the key (used in efficient subsequent lookups) and the value\n * assigned for the key at the leaf node.\n *\n * @param {EquivalentKeyMap} instance EquivalentKeyMap instance.\n * @param {*} key                     The key for which to return value pair.\n *\n * @return {?Array} Value pair, if exists.\n */\nfunction getValuePair(instance, key) {\n  var _map = instance._map,\n      _arrayTreeMap = instance._arrayTreeMap,\n      _objectTreeMap = instance._objectTreeMap; // Map keeps a reference to the last object-like key used to set the\n  // value, which can be used to shortcut immediately to the value.\n\n  if (_map.has(key)) {\n    return _map.get(key);\n  } // Sort keys to ensure stable retrieval from tree.\n\n\n  var properties = Object.keys(key).sort(); // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n  var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap;\n\n  for (var i = 0; i < properties.length; i++) {\n    var property = properties[i];\n    map = map.get(property);\n\n    if (map === undefined) {\n      return;\n    }\n\n    var propertyValue = key[property];\n    map = map.get(propertyValue);\n\n    if (map === undefined) {\n      return;\n    }\n  }\n\n  var valuePair = map.get('_ekm_value');\n\n  if (!valuePair) {\n    return;\n  } // If reached, it implies that an object-like key was set with another\n  // reference, so delete the reference and replace with the current.\n\n\n  _map.delete(valuePair[0]);\n\n  valuePair[0] = key;\n  map.set('_ekm_value', valuePair);\n\n  _map.set(key, valuePair);\n\n  return valuePair;\n}\n/**\n * Variant of a Map object which enables lookup by equivalent (deeply equal)\n * object and array keys.\n */\n\n\nvar EquivalentKeyMap =\n/*#__PURE__*/\nfunction () {\n  /**\n   * Constructs a new instance of EquivalentKeyMap.\n   *\n   * @param {Iterable.<*>} iterable Initial pair of key, value for map.\n   */\n  function EquivalentKeyMap(iterable) {\n    _classCallCheck(this, EquivalentKeyMap);\n\n    this.clear();\n\n    if (iterable instanceof EquivalentKeyMap) {\n      // Map#forEach is only means of iterating with support for IE11.\n      var iterablePairs = [];\n      iterable.forEach(function (value, key) {\n        iterablePairs.push([key, value]);\n      });\n      iterable = iterablePairs;\n    }\n\n    if (iterable != null) {\n      for (var i = 0; i < iterable.length; i++) {\n        this.set(iterable[i][0], iterable[i][1]);\n      }\n    }\n  }\n  /**\n   * Accessor property returning the number of elements.\n   *\n   * @return {number} Number of elements.\n   */\n\n\n  _createClass(EquivalentKeyMap, [{\n    key: \"set\",\n\n    /**\n     * Add or update an element with a specified key and value.\n     *\n     * @param {*} key   The key of the element to add.\n     * @param {*} value The value of the element to add.\n     *\n     * @return {EquivalentKeyMap} Map instance.\n     */\n    value: function set(key, value) {\n      // Shortcut non-object-like to set on internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        this._map.set(key, value);\n\n        return this;\n      } // Sort keys to ensure stable assignment into tree.\n\n\n      var properties = Object.keys(key).sort();\n      var valuePair = [key, value]; // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n      var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap;\n\n      for (var i = 0; i < properties.length; i++) {\n        var property = properties[i];\n\n        if (!map.has(property)) {\n          map.set(property, new EquivalentKeyMap());\n        }\n\n        map = map.get(property);\n        var propertyValue = key[property];\n\n        if (!map.has(propertyValue)) {\n          map.set(propertyValue, new EquivalentKeyMap());\n        }\n\n        map = map.get(propertyValue);\n      } // If an _ekm_value exists, there was already an equivalent key. Before\n      // overriding, ensure that the old key reference is removed from map to\n      // avoid memory leak of accumulating equivalent keys. This is, in a\n      // sense, a poor man's WeakMap, while still enabling iterability.\n\n\n      var previousValuePair = map.get('_ekm_value');\n\n      if (previousValuePair) {\n        this._map.delete(previousValuePair[0]);\n      }\n\n      map.set('_ekm_value', valuePair);\n\n      this._map.set(key, valuePair);\n\n      return this;\n    }\n    /**\n     * Returns a specified element.\n     *\n     * @param {*} key The key of the element to return.\n     *\n     * @return {?*} The element associated with the specified key or undefined\n     *              if the key can't be found.\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      // Shortcut non-object-like to get from internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.get(key);\n      }\n\n      var valuePair = getValuePair(this, key);\n\n      if (valuePair) {\n        return valuePair[1];\n      }\n    }\n    /**\n     * Returns a boolean indicating whether an element with the specified key\n     * exists or not.\n     *\n     * @param {*} key The key of the element to test for presence.\n     *\n     * @return {boolean} Whether an element with the specified key exists.\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.has(key);\n      } // Test on the _presence_ of the pair, not its value, as even undefined\n      // can be a valid member value for a key.\n\n\n      return getValuePair(this, key) !== undefined;\n    }\n    /**\n     * Removes the specified element.\n     *\n     * @param {*} key The key of the element to remove.\n     *\n     * @return {boolean} Returns true if an element existed and has been\n     *                   removed, or false if the element does not exist.\n     */\n\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      if (!this.has(key)) {\n        return false;\n      } // This naive implementation will leave orphaned child trees. A better\n      // implementation should traverse and remove orphans.\n\n\n      this.set(key, undefined);\n      return true;\n    }\n    /**\n     * Executes a provided function once per each key/value pair, in insertion\n     * order.\n     *\n     * @param {Function} callback Function to execute for each element.\n     * @param {*}        thisArg  Value to use as `this` when executing\n     *                            `callback`.\n     */\n\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      var _this = this;\n\n      var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n      this._map.forEach(function (value, key) {\n        // Unwrap value from object-like value pair.\n        if (key !== null && _typeof(key) === 'object') {\n          value = value[1];\n        }\n\n        callback.call(thisArg, value, key, _this);\n      });\n    }\n    /**\n     * Removes all elements.\n     */\n\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this._map = new Map();\n      this._arrayTreeMap = new Map();\n      this._objectTreeMap = new Map();\n    }\n  }, {\n    key: \"size\",\n    get: function get() {\n      return this._map.size;\n    }\n  }]);\n\n  return EquivalentKeyMap;\n}();\n\nmodule.exports = EquivalentKeyMap;\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dataControls\"]; }());\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 443:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"EntityProvider\", function() { return /* reexport */ EntityProvider; });\n__webpack_require__.d(__webpack_exports__, \"useEntityId\", function() { return /* reexport */ useEntityId; });\n__webpack_require__.d(__webpack_exports__, \"useEntityProp\", function() { return /* reexport */ useEntityProp; });\n__webpack_require__.d(__webpack_exports__, \"useEntityBlockEditor\", function() { return /* reexport */ useEntityBlockEditor; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/core-data/build-module/actions.js\nvar build_module_actions_namespaceObject = {};\n__webpack_require__.r(build_module_actions_namespaceObject);\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveUserQuery\", function() { return receiveUserQuery; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveCurrentUser\", function() { return receiveCurrentUser; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"addEntities\", function() { return addEntities; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveEntityRecords\", function() { return receiveEntityRecords; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveCurrentTheme\", function() { return receiveCurrentTheme; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveThemeSupports\", function() { return receiveThemeSupports; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveEmbedPreview\", function() { return receiveEmbedPreview; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"editEntityRecord\", function() { return actions_editEntityRecord; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"undo\", function() { return undo; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"redo\", function() { return redo; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"__unstableCreateUndoLevel\", function() { return __unstableCreateUndoLevel; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"saveEntityRecord\", function() { return saveEntityRecord; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"saveEditedEntityRecord\", function() { return saveEditedEntityRecord; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveUploadPermissions\", function() { return receiveUploadPermissions; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveUserPermission\", function() { return receiveUserPermission; });\n__webpack_require__.d(build_module_actions_namespaceObject, \"receiveAutosaves\", function() { return receiveAutosaves; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/core-data/build-module/selectors.js\nvar build_module_selectors_namespaceObject = {};\n__webpack_require__.r(build_module_selectors_namespaceObject);\n__webpack_require__.d(build_module_selectors_namespaceObject, \"isRequestingEmbedPreview\", function() { return isRequestingEmbedPreview; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getAuthors\", function() { return getAuthors; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getCurrentUser\", function() { return getCurrentUser; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getUserQueryResults\", function() { return getUserQueryResults; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntitiesByKind\", function() { return getEntitiesByKind; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntity\", function() { return selectors_getEntity; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntityRecord\", function() { return getEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"__experimentalGetEntityRecordNoResolver\", function() { return __experimentalGetEntityRecordNoResolver; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getRawEntityRecord\", function() { return getRawEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntityRecords\", function() { return getEntityRecords; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"__experimentalGetDirtyEntityRecords\", function() { return __experimentalGetDirtyEntityRecords; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntityRecordEdits\", function() { return getEntityRecordEdits; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEntityRecordNonTransientEdits\", function() { return getEntityRecordNonTransientEdits; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"hasEditsForEntityRecord\", function() { return hasEditsForEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEditedEntityRecord\", function() { return getEditedEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"isAutosavingEntityRecord\", function() { return isAutosavingEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"isSavingEntityRecord\", function() { return isSavingEntityRecord; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getLastEntitySaveError\", function() { return getLastEntitySaveError; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getUndoEdit\", function() { return getUndoEdit; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getRedoEdit\", function() { return getRedoEdit; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"hasUndo\", function() { return hasUndo; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"hasRedo\", function() { return hasRedo; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getCurrentTheme\", function() { return getCurrentTheme; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getThemeSupports\", function() { return getThemeSupports; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getEmbedPreview\", function() { return getEmbedPreview; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"isPreviewEmbedFallback\", function() { return isPreviewEmbedFallback; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"hasUploadPermissions\", function() { return hasUploadPermissions; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"canUser\", function() { return canUser; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getAutosaves\", function() { return getAutosaves; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getAutosave\", function() { return getAutosave; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"hasFetchedAutosaves\", function() { return hasFetchedAutosaves; });\n__webpack_require__.d(build_module_selectors_namespaceObject, \"getReferenceByDistinctEdits\", function() { return getReferenceByDistinctEdits; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/core-data/build-module/resolvers.js\nvar resolvers_namespaceObject = {};\n__webpack_require__.r(resolvers_namespaceObject);\n__webpack_require__.d(resolvers_namespaceObject, \"getAuthors\", function() { return resolvers_getAuthors; });\n__webpack_require__.d(resolvers_namespaceObject, \"getCurrentUser\", function() { return resolvers_getCurrentUser; });\n__webpack_require__.d(resolvers_namespaceObject, \"getEntityRecord\", function() { return resolvers_getEntityRecord; });\n__webpack_require__.d(resolvers_namespaceObject, \"getRawEntityRecord\", function() { return resolvers_getRawEntityRecord; });\n__webpack_require__.d(resolvers_namespaceObject, \"getEditedEntityRecord\", function() { return resolvers_getEditedEntityRecord; });\n__webpack_require__.d(resolvers_namespaceObject, \"getEntityRecords\", function() { return resolvers_getEntityRecords; });\n__webpack_require__.d(resolvers_namespaceObject, \"getCurrentTheme\", function() { return resolvers_getCurrentTheme; });\n__webpack_require__.d(resolvers_namespaceObject, \"getThemeSupports\", function() { return resolvers_getThemeSupports; });\n__webpack_require__.d(resolvers_namespaceObject, \"getEmbedPreview\", function() { return resolvers_getEmbedPreview; });\n__webpack_require__.d(resolvers_namespaceObject, \"hasUploadPermissions\", function() { return resolvers_hasUploadPermissions; });\n__webpack_require__.d(resolvers_namespaceObject, \"canUser\", function() { return resolvers_canUser; });\n__webpack_require__.d(resolvers_namespaceObject, \"getAutosaves\", function() { return resolvers_getAutosaves; });\n__webpack_require__.d(resolvers_namespaceObject, \"getAutosave\", function() { return resolvers_getAutosave; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/if-matching-action.js\n/**\n * A higher-order reducer creator which invokes the original reducer only if\n * the dispatching action matches the given predicate, **OR** if state is\n * initializing (undefined).\n *\n * @param {Function} isMatch Function predicate for allowing reducer call.\n *\n * @return {Function} Higher-order reducer.\n */\nvar ifMatchingAction = function ifMatchingAction(isMatch) {\n  return function (reducer) {\n    return function (state, action) {\n      if (state === undefined || isMatch(action)) {\n        return reducer(state, action);\n      }\n\n      return state;\n    };\n  };\n};\n\n/* harmony default export */ var if_matching_action = (ifMatchingAction);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/replace-action.js\n/**\n * Higher-order reducer creator which substitutes the action object before\n * passing to the original reducer.\n *\n * @param {Function} replacer Function mapping original action to replacement.\n *\n * @return {Function} Higher-order reducer.\n */\nvar replaceAction = function replaceAction(replacer) {\n  return function (reducer) {\n    return function (state, action) {\n      return reducer(state, replacer(action));\n    };\n  };\n};\n\n/* harmony default export */ var replace_action = (replaceAction);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/conservative-map-item.js\n/**\n * External dependencies\n */\n\n/**\n * Given the current and next item entity, returns the minimally \"modified\"\n * result of the next item, preferring value references from the original item\n * if equal. If all values match, the original item is returned.\n *\n * @param {Object} item     Original item.\n * @param {Object} nextItem Next item.\n *\n * @return {Object} Minimally modified merged item.\n */\n\nfunction conservativeMapItem(item, nextItem) {\n  // Return next item in its entirety if there is no original item.\n  if (!item) {\n    return nextItem;\n  }\n\n  var hasChanges = false;\n  var result = {};\n\n  for (var key in nextItem) {\n    if (Object(external_this_lodash_[\"isEqual\"])(item[key], nextItem[key])) {\n      result[key] = item[key];\n    } else {\n      hasChanges = true;\n      result[key] = nextItem[key];\n    }\n  }\n\n  if (!hasChanges) {\n    return item;\n  }\n\n  return result;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/on-sub-key.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param {string} actionProperty Action property by which to key object.\n *\n * @return {Function} Higher-order reducer.\n */\nvar on_sub_key_onSubKey = function onSubKey(actionProperty) {\n  return function (reducer) {\n    return function () {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n      // Retrieve subkey from action. Do not track if undefined; useful for cases\n      // where reducer is scoped by action shape.\n      var key = action[actionProperty];\n\n      if (key === undefined) {\n        return state;\n      } // Avoid updating state if unchanged. Note that this also accounts for a\n      // reducer which returns undefined on a key which is not yet tracked.\n\n\n      var nextKeyState = reducer(state[key], action);\n\n      if (nextKeyState === state[key]) {\n        return state;\n      }\n\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, key, nextKeyState));\n    };\n  };\n};\n/* harmony default export */ var on_sub_key = (on_sub_key_onSubKey);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/actions.js\n\n\nfunction actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Returns an action object used in signalling that items have been received.\n *\n * @param {Array} items Items received.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveItems(items) {\n  return {\n    type: 'RECEIVE_ITEMS',\n    items: Object(external_this_lodash_[\"castArray\"])(items)\n  };\n}\n/**\n * Returns an action object used in signalling that queried data has been\n * received.\n *\n * @param {Array}   items Queried items received.\n * @param {?Object} query Optional query object.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveQueriedItems(items) {\n  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  return actions_objectSpread({}, receiveItems(items), {\n    query: query\n  });\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/controls.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Trigger an API Fetch request.\n *\n * @param {Object} request API Fetch Request Object.\n * @return {Object} control descriptor.\n */\n\nfunction apiFetch(request) {\n  return {\n    type: 'API_FETCH',\n    request: request\n  };\n}\n/**\n * Calls a selector using the current state.\n *\n * @param {string} selectorName Selector name.\n * @param  {Array} args         Selector arguments.\n *\n * @return {Object} control descriptor.\n */\n\nfunction controls_select(selectorName) {\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  return {\n    type: 'SELECT',\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Dispatches a control action for triggering a registry select that has a\n * resolver.\n *\n * @param {string}  selectorName\n * @param {Array}   args  Arguments for the select.\n *\n * @return {Object} control descriptor.\n */\n\nfunction resolveSelect(selectorName) {\n  for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    args[_key2 - 1] = arguments[_key2];\n  }\n\n  return {\n    type: 'RESOLVE_SELECT',\n    selectorName: selectorName,\n    args: args\n  };\n}\nvar controls = {\n  API_FETCH: function API_FETCH(_ref) {\n    var request = _ref.request;\n    return external_this_wp_apiFetch_default()(request);\n  },\n  SELECT: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function (_ref2) {\n      var _registry$select;\n\n      var selectorName = _ref2.selectorName,\n          args = _ref2.args;\n      return (_registry$select = registry.select('core'))[selectorName].apply(_registry$select, Object(toConsumableArray[\"a\" /* default */])(args));\n    };\n  }),\n  RESOLVE_SELECT: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function (_ref3) {\n      var _registry$__experimen;\n\n      var selectorName = _ref3.selectorName,\n          args = _ref3.args;\n      return (_registry$__experimen = registry.__experimentalResolveSelect('core'))[selectorName].apply(_registry$__experimen, Object(toConsumableArray[\"a\" /* default */])(args));\n    };\n  })\n};\n/* harmony default export */ var build_module_controls = (controls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/actions.js\n\n\n\n\nvar _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_editEntityRecord),\n    _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(undo),\n    _marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(redo),\n    _marked4 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(saveEntityRecord),\n    _marked5 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(saveEditedEntityRecord);\n\nfunction build_module_actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction build_module_actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { build_module_actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Returns an action object used in signalling that authors have been received.\n *\n * @param {string}       queryID Query ID.\n * @param {Array|Object} users   Users received.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveUserQuery(queryID, users) {\n  return {\n    type: 'RECEIVE_USER_QUERY',\n    users: Object(external_this_lodash_[\"castArray\"])(users),\n    queryID: queryID\n  };\n}\n/**\n * Returns an action used in signalling that the current user has been received.\n *\n * @param {Object} currentUser Current user object.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveCurrentUser(currentUser) {\n  return {\n    type: 'RECEIVE_CURRENT_USER',\n    currentUser: currentUser\n  };\n}\n/**\n * Returns an action object used in adding new entities.\n *\n * @param {Array} entities  Entities received.\n *\n * @return {Object} Action object.\n */\n\nfunction addEntities(entities) {\n  return {\n    type: 'ADD_ENTITIES',\n    entities: entities\n  };\n}\n/**\n * Returns an action object used in signalling that entity records have been received.\n *\n * @param {string}       kind            Kind of the received entity.\n * @param {string}       name            Name of the received entity.\n * @param {Array|Object} records         Records received.\n * @param {?Object}      query           Query Object.\n * @param {?boolean}     invalidateCache Should invalidate query caches\n *\n * @return {Object} Action object.\n */\n\nfunction receiveEntityRecords(kind, name, records, query) {\n  var invalidateCache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n  // Auto drafts should not have titles, but some plugins rely on them so we can't filter this\n  // on the server.\n  if (kind === 'postType') {\n    records = Object(external_this_lodash_[\"castArray\"])(records).map(function (record) {\n      return record.status === 'auto-draft' ? build_module_actions_objectSpread({}, record, {\n        title: ''\n      }) : record;\n    });\n  }\n\n  var action;\n\n  if (query) {\n    action = receiveQueriedItems(records, query);\n  } else {\n    action = receiveItems(records);\n  }\n\n  return build_module_actions_objectSpread({}, action, {\n    kind: kind,\n    name: name,\n    invalidateCache: invalidateCache\n  });\n}\n/**\n * Returns an action object used in signalling that the current theme has been received.\n *\n * @param {Object} currentTheme The current theme.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveCurrentTheme(currentTheme) {\n  return {\n    type: 'RECEIVE_CURRENT_THEME',\n    currentTheme: currentTheme\n  };\n}\n/**\n * Returns an action object used in signalling that the index has been received.\n *\n * @param {Object} themeSupports Theme support for the current theme.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveThemeSupports(themeSupports) {\n  return {\n    type: 'RECEIVE_THEME_SUPPORTS',\n    themeSupports: themeSupports\n  };\n}\n/**\n * Returns an action object used in signalling that the preview data for\n * a given URl has been received.\n *\n * @param {string}  url     URL to preview the embed for.\n * @param {*}       preview Preview data.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveEmbedPreview(url, preview) {\n  return {\n    type: 'RECEIVE_EMBED_PREVIEW',\n    url: url,\n    preview: preview\n  };\n}\n/**\n * Returns an action object that triggers an\n * edit to an entity record.\n *\n * @param {string} kind     Kind of the edited entity record.\n * @param {string} name     Name of the edited entity record.\n * @param {number} recordId Record ID of the edited entity record.\n * @param {Object} edits    The edits.\n * @param {Object} options  Options for the edit.\n * @param {boolean} options.undoIgnore Whether to ignore the edit in undo history or not.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_editEntityRecord(kind, name, recordId, edits) {\n  var options,\n      entity,\n      _entity$transientEdit,\n      transientEdits,\n      _entity$mergedEdits,\n      mergedEdits,\n      record,\n      editedRecord,\n      edit,\n      _args = arguments;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function editEntityRecord$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          options = _args.length > 4 && _args[4] !== undefined ? _args[4] : {};\n          _context.next = 3;\n          return controls_select('getEntity', kind, name);\n\n        case 3:\n          entity = _context.sent;\n\n          if (entity) {\n            _context.next = 6;\n            break;\n          }\n\n          throw new Error(\"The entity being edited (\".concat(kind, \", \").concat(name, \") does not have a loaded config.\"));\n\n        case 6:\n          _entity$transientEdit = entity.transientEdits, transientEdits = _entity$transientEdit === void 0 ? {} : _entity$transientEdit, _entity$mergedEdits = entity.mergedEdits, mergedEdits = _entity$mergedEdits === void 0 ? {} : _entity$mergedEdits;\n          _context.next = 9;\n          return controls_select('getRawEntityRecord', kind, name, recordId);\n\n        case 9:\n          record = _context.sent;\n          _context.next = 12;\n          return controls_select('getEditedEntityRecord', kind, name, recordId);\n\n        case 12:\n          editedRecord = _context.sent;\n          edit = {\n            kind: kind,\n            name: name,\n            recordId: recordId,\n            // Clear edits when they are equal to their persisted counterparts\n            // so that the property is not considered dirty.\n            edits: Object.keys(edits).reduce(function (acc, key) {\n              var recordValue = record[key];\n              var editedRecordValue = editedRecord[key];\n              var value = mergedEdits[key] ? build_module_actions_objectSpread({}, editedRecordValue, {}, edits[key]) : edits[key];\n              acc[key] = Object(external_this_lodash_[\"isEqual\"])(recordValue, value) ? undefined : value;\n              return acc;\n            }, {}),\n            transientEdits: transientEdits\n          };\n          return _context.abrupt(\"return\", build_module_actions_objectSpread({\n            type: 'EDIT_ENTITY_RECORD'\n          }, edit, {\n            meta: {\n              undo: !options.undoIgnore && build_module_actions_objectSpread({}, edit, {\n                // Send the current values for things like the first undo stack entry.\n                edits: Object.keys(edits).reduce(function (acc, key) {\n                  acc[key] = editedRecord[key];\n                  return acc;\n                }, {})\n              })\n            }\n          }));\n\n        case 15:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked);\n}\n/**\n * Action triggered to undo the last edit to\n * an entity record, if any.\n */\n\nfunction undo() {\n  var undoEdit;\n  return external_this_regeneratorRuntime_default.a.wrap(function undo$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return controls_select('getUndoEdit');\n\n        case 2:\n          undoEdit = _context2.sent;\n\n          if (undoEdit) {\n            _context2.next = 5;\n            break;\n          }\n\n          return _context2.abrupt(\"return\");\n\n        case 5:\n          _context2.next = 7;\n          return build_module_actions_objectSpread({\n            type: 'EDIT_ENTITY_RECORD'\n          }, undoEdit, {\n            meta: {\n              isUndo: true\n            }\n          });\n\n        case 7:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2);\n}\n/**\n * Action triggered to redo the last undoed\n * edit to an entity record, if any.\n */\n\nfunction redo() {\n  var redoEdit;\n  return external_this_regeneratorRuntime_default.a.wrap(function redo$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          _context3.next = 2;\n          return controls_select('getRedoEdit');\n\n        case 2:\n          redoEdit = _context3.sent;\n\n          if (redoEdit) {\n            _context3.next = 5;\n            break;\n          }\n\n          return _context3.abrupt(\"return\");\n\n        case 5:\n          _context3.next = 7;\n          return build_module_actions_objectSpread({\n            type: 'EDIT_ENTITY_RECORD'\n          }, redoEdit, {\n            meta: {\n              isRedo: true\n            }\n          });\n\n        case 7:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, _marked3);\n}\n/**\n * Forces the creation of a new undo level.\n *\n * @return {Object} Action object.\n */\n\nfunction __unstableCreateUndoLevel() {\n  return {\n    type: 'CREATE_UNDO_LEVEL'\n  };\n}\n/**\n * Action triggered to save an entity record.\n *\n * @param {string}  kind                       Kind of the received entity.\n * @param {string}  name                       Name of the received entity.\n * @param {Object}  record                     Record to be saved.\n * @param {Object}  options                    Saving options.\n * @param {boolean} [options.isAutosave=false] Whether this is an autosave.\n */\n\nfunction saveEntityRecord(kind, name, record) {\n  var _ref,\n      _ref$isAutosave,\n      isAutosave,\n      entities,\n      entity,\n      entityIdKey,\n      recordId,\n      _i,\n      _Object$entries,\n      _Object$entries$_i,\n      key,\n      value,\n      evaluatedValue,\n      updatedRecord,\n      error,\n      persistedEntity,\n      currentEdits,\n      path,\n      persistedRecord,\n      currentUser,\n      currentUserId,\n      autosavePost,\n      data,\n      newRecord,\n      _data,\n      _args4 = arguments;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function saveEntityRecord$(_context4) {\n    while (1) {\n      switch (_context4.prev = _context4.next) {\n        case 0:\n          _ref = _args4.length > 3 && _args4[3] !== undefined ? _args4[3] : {\n            isAutosave: false\n          }, _ref$isAutosave = _ref.isAutosave, isAutosave = _ref$isAutosave === void 0 ? false : _ref$isAutosave;\n          _context4.next = 3;\n          return getKindEntities(kind);\n\n        case 3:\n          entities = _context4.sent;\n          entity = Object(external_this_lodash_[\"find\"])(entities, {\n            kind: kind,\n            name: name\n          });\n\n          if (entity) {\n            _context4.next = 7;\n            break;\n          }\n\n          return _context4.abrupt(\"return\");\n\n        case 7:\n          entityIdKey = entity.key || DEFAULT_ENTITY_KEY;\n          recordId = record[entityIdKey]; // Evaluate optimized edits.\n          // (Function edits that should be evaluated on save to avoid expensive computations on every edit.)\n\n          _i = 0, _Object$entries = Object.entries(record);\n\n        case 10:\n          if (!(_i < _Object$entries.length)) {\n            _context4.next = 24;\n            break;\n          }\n\n          _Object$entries$_i = Object(slicedToArray[\"a\" /* default */])(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1];\n\n          if (!(typeof value === 'function')) {\n            _context4.next = 21;\n            break;\n          }\n\n          _context4.t0 = value;\n          _context4.next = 16;\n          return controls_select('getEditedEntityRecord', kind, name, recordId);\n\n        case 16:\n          _context4.t1 = _context4.sent;\n          evaluatedValue = (0, _context4.t0)(_context4.t1);\n          _context4.next = 20;\n          return actions_editEntityRecord(kind, name, recordId, Object(defineProperty[\"a\" /* default */])({}, key, evaluatedValue), {\n            undoIgnore: true\n          });\n\n        case 20:\n          record[key] = evaluatedValue;\n\n        case 21:\n          _i++;\n          _context4.next = 10;\n          break;\n\n        case 24:\n          _context4.next = 26;\n          return {\n            type: 'SAVE_ENTITY_RECORD_START',\n            kind: kind,\n            name: name,\n            recordId: recordId,\n            isAutosave: isAutosave\n          };\n\n        case 26:\n          _context4.prev = 26;\n          path = \"\".concat(entity.baseURL).concat(recordId ? '/' + recordId : '');\n          _context4.next = 30;\n          return controls_select('getRawEntityRecord', kind, name, recordId);\n\n        case 30:\n          persistedRecord = _context4.sent;\n\n          if (!isAutosave) {\n            _context4.next = 55;\n            break;\n          }\n\n          _context4.next = 34;\n          return controls_select('getCurrentUser');\n\n        case 34:\n          currentUser = _context4.sent;\n          currentUserId = currentUser ? currentUser.id : undefined;\n          _context4.next = 38;\n          return controls_select('getAutosave', persistedRecord.type, persistedRecord.id, currentUserId);\n\n        case 38:\n          autosavePost = _context4.sent;\n          // Autosaves need all expected fields to be present.\n          // So we fallback to the previous autosave and then\n          // to the actual persisted entity if the edits don't\n          // have a value.\n          data = build_module_actions_objectSpread({}, persistedRecord, {}, autosavePost, {}, record);\n          data = Object.keys(data).reduce(function (acc, key) {\n            if (['title', 'excerpt', 'content'].includes(key)) {\n              // Edits should be the \"raw\" attribute values.\n              acc[key] = Object(external_this_lodash_[\"get\"])(data[key], 'raw', data[key]);\n            }\n\n            return acc;\n          }, {\n            status: data.status === 'auto-draft' ? 'draft' : data.status\n          });\n          _context4.next = 43;\n          return apiFetch({\n            path: \"\".concat(path, \"/autosaves\"),\n            method: 'POST',\n            data: data\n          });\n\n        case 43:\n          updatedRecord = _context4.sent;\n\n          if (!(persistedRecord.id === updatedRecord.id)) {\n            _context4.next = 51;\n            break;\n          }\n\n          newRecord = build_module_actions_objectSpread({}, persistedRecord, {}, data, {}, updatedRecord);\n          newRecord = Object.keys(newRecord).reduce(function (acc, key) {\n            // These properties are persisted in autosaves.\n            if (['title', 'excerpt', 'content'].includes(key)) {\n              // Edits should be the \"raw\" attribute values.\n              acc[key] = Object(external_this_lodash_[\"get\"])(newRecord[key], 'raw', newRecord[key]);\n            } else if (key === 'status') {\n              // Status is only persisted in autosaves when going from\n              // \"auto-draft\" to \"draft\".\n              acc[key] = persistedRecord.status === 'auto-draft' && newRecord.status === 'draft' ? newRecord.status : persistedRecord.status;\n            } else {\n              // These properties are not persisted in autosaves.\n              acc[key] = Object(external_this_lodash_[\"get\"])(persistedRecord[key], 'raw', persistedRecord[key]);\n            }\n\n            return acc;\n          }, {});\n          _context4.next = 49;\n          return receiveEntityRecords(kind, name, newRecord, undefined, true);\n\n        case 49:\n          _context4.next = 53;\n          break;\n\n        case 51:\n          _context4.next = 53;\n          return receiveAutosaves(persistedRecord.id, updatedRecord);\n\n        case 53:\n          _context4.next = 70;\n          break;\n\n        case 55:\n          // Auto drafts should be converted to drafts on explicit saves and we should not respect their default title,\n          // but some plugins break with this behavior so we can't filter it on the server.\n          _data = record;\n\n          if (kind === 'postType' && persistedRecord && persistedRecord.status === 'auto-draft') {\n            if (!_data.status) {\n              _data = build_module_actions_objectSpread({}, _data, {\n                status: 'draft'\n              });\n            }\n\n            if (!_data.title || _data.title === 'Auto Draft') {\n              _data = build_module_actions_objectSpread({}, _data, {\n                title: ''\n              });\n            }\n          } // Get the full local version of the record before the update,\n          // to merge it with the edits and then propagate it to subscribers\n\n\n          _context4.next = 59;\n          return controls_select('__experimentalGetEntityRecordNoResolver', kind, name, recordId);\n\n        case 59:\n          persistedEntity = _context4.sent;\n          _context4.next = 62;\n          return controls_select('getEntityRecordEdits', kind, name, recordId);\n\n        case 62:\n          currentEdits = _context4.sent;\n          _context4.next = 65;\n          return receiveEntityRecords(kind, name, build_module_actions_objectSpread({}, persistedEntity, {}, _data), undefined, true);\n\n        case 65:\n          _context4.next = 67;\n          return apiFetch({\n            path: path,\n            method: recordId ? 'PUT' : 'POST',\n            data: _data\n          });\n\n        case 67:\n          updatedRecord = _context4.sent;\n          _context4.next = 70;\n          return receiveEntityRecords(kind, name, updatedRecord, undefined, true);\n\n        case 70:\n          _context4.next = 93;\n          break;\n\n        case 72:\n          _context4.prev = 72;\n          _context4.t2 = _context4[\"catch\"](26);\n          error = _context4.t2; // If we got to the point in the try block where we made an optimistic update,\n          // we need to roll it back here.\n\n          if (!(persistedEntity && currentEdits)) {\n            _context4.next = 93;\n            break;\n          }\n\n          _context4.next = 78;\n          return receiveEntityRecords(kind, name, persistedEntity, undefined, true);\n\n        case 78:\n          _context4.t3 = actions_editEntityRecord;\n          _context4.t4 = kind;\n          _context4.t5 = name;\n          _context4.t6 = recordId;\n          _context4.t7 = build_module_actions_objectSpread;\n          _context4.t8 = {};\n          _context4.t9 = currentEdits;\n          _context4.t10 = {};\n          _context4.next = 88;\n          return controls_select('getEntityRecordEdits', kind, name, recordId);\n\n        case 88:\n          _context4.t11 = _context4.sent;\n          _context4.t12 = (0, _context4.t7)(_context4.t8, _context4.t9, _context4.t10, _context4.t11);\n          _context4.t13 = {\n            undoIgnore: true\n          };\n          _context4.next = 93;\n          return (0, _context4.t3)(_context4.t4, _context4.t5, _context4.t6, _context4.t12, _context4.t13);\n\n        case 93:\n          _context4.next = 95;\n          return {\n            type: 'SAVE_ENTITY_RECORD_FINISH',\n            kind: kind,\n            name: name,\n            recordId: recordId,\n            error: error,\n            isAutosave: isAutosave\n          };\n\n        case 95:\n          return _context4.abrupt(\"return\", updatedRecord);\n\n        case 96:\n        case \"end\":\n          return _context4.stop();\n      }\n    }\n  }, _marked4, null, [[26, 72]]);\n}\n/**\n * Action triggered to save an entity record's edits.\n *\n * @param {string} kind     Kind of the entity.\n * @param {string} name     Name of the entity.\n * @param {Object} recordId ID of the record.\n * @param {Object} options  Saving options.\n */\n\nfunction saveEditedEntityRecord(kind, name, recordId, options) {\n  var edits, record;\n  return external_this_regeneratorRuntime_default.a.wrap(function saveEditedEntityRecord$(_context5) {\n    while (1) {\n      switch (_context5.prev = _context5.next) {\n        case 0:\n          _context5.next = 2;\n          return controls_select('hasEditsForEntityRecord', kind, name, recordId);\n\n        case 2:\n          if (_context5.sent) {\n            _context5.next = 4;\n            break;\n          }\n\n          return _context5.abrupt(\"return\");\n\n        case 4:\n          _context5.next = 6;\n          return controls_select('getEntityRecordNonTransientEdits', kind, name, recordId);\n\n        case 6:\n          edits = _context5.sent;\n          record = build_module_actions_objectSpread({\n            id: recordId\n          }, edits);\n          return _context5.delegateYield(saveEntityRecord(kind, name, record, options), \"t0\", 9);\n\n        case 9:\n        case \"end\":\n          return _context5.stop();\n      }\n    }\n  }, _marked5);\n}\n/**\n * Returns an action object used in signalling that Upload permissions have been received.\n *\n * @param {boolean} hasUploadPermissions Does the user have permission to upload files?\n *\n * @return {Object} Action object.\n */\n\nfunction receiveUploadPermissions(hasUploadPermissions) {\n  return {\n    type: 'RECEIVE_USER_PERMISSION',\n    key: 'create/media',\n    isAllowed: hasUploadPermissions\n  };\n}\n/**\n * Returns an action object used in signalling that the current user has\n * permission to perform an action on a REST resource.\n *\n * @param {string}  key       A key that represents the action and REST resource.\n * @param {boolean} isAllowed Whether or not the user can perform the action.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveUserPermission(key, isAllowed) {\n  return {\n    type: 'RECEIVE_USER_PERMISSION',\n    key: key,\n    isAllowed: isAllowed\n  };\n}\n/**\n * Returns an action object used in signalling that the autosaves for a\n * post have been received.\n *\n * @param {number}       postId    The id of the post that is parent to the autosave.\n * @param {Array|Object} autosaves An array of autosaves or singular autosave object.\n *\n * @return {Object} Action object.\n */\n\nfunction receiveAutosaves(postId, autosaves) {\n  return {\n    type: 'RECEIVE_AUTOSAVES',\n    postId: postId,\n    autosaves: Object(external_this_lodash_[\"castArray\"])(autosaves)\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/entities.js\n\n\nvar entities_marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(loadPostTypeEntities),\n    entities_marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(loadTaxonomyEntities),\n    entities_marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(getKindEntities);\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar DEFAULT_ENTITY_KEY = 'id';\nvar defaultEntities = [{\n  label: Object(external_this_wp_i18n_[\"__\"])('Site'),\n  name: 'site',\n  kind: 'root',\n  baseURL: '/wp/v2/settings',\n  getTitle: function getTitle(record) {\n    return Object(external_this_lodash_[\"get\"])(record, ['title'], Object(external_this_wp_i18n_[\"__\"])('Site Title'));\n  }\n}, {\n  label: Object(external_this_wp_i18n_[\"__\"])('Post Type'),\n  name: 'postType',\n  kind: 'root',\n  key: 'slug',\n  baseURL: '/wp/v2/types'\n}, {\n  name: 'media',\n  kind: 'root',\n  baseURL: '/wp/v2/media',\n  plural: 'mediaItems',\n  label: Object(external_this_wp_i18n_[\"__\"])('Media')\n}, {\n  name: 'taxonomy',\n  kind: 'root',\n  key: 'slug',\n  baseURL: '/wp/v2/taxonomies',\n  plural: 'taxonomies',\n  label: Object(external_this_wp_i18n_[\"__\"])('Taxonomy')\n}, {\n  name: 'widgetArea',\n  kind: 'root',\n  baseURL: '/__experimental/widget-areas',\n  plural: 'widgetAreas',\n  transientEdits: {\n    blocks: true\n  },\n  label: Object(external_this_wp_i18n_[\"__\"])('Widget area')\n}, {\n  label: Object(external_this_wp_i18n_[\"__\"])('User'),\n  name: 'user',\n  kind: 'root',\n  baseURL: '/wp/v2/users',\n  plural: 'users'\n}, {\n  name: 'comment',\n  kind: 'root',\n  baseURL: '/wp/v2/comments',\n  plural: 'comments',\n  label: Object(external_this_wp_i18n_[\"__\"])('Comment')\n}, {\n  name: 'menu',\n  kind: 'root',\n  baseURL: '/__experimental/menus',\n  plural: 'menus',\n  label: Object(external_this_wp_i18n_[\"__\"])('Menu')\n}, {\n  name: 'menuItem',\n  kind: 'root',\n  baseURL: '/__experimental/menu-items',\n  plural: 'menuItems',\n  label: Object(external_this_wp_i18n_[\"__\"])('Menu Item')\n}, {\n  name: 'menuLocation',\n  kind: 'root',\n  baseURL: '/__experimental/menu-locations',\n  plural: 'menuLocations',\n  label: Object(external_this_wp_i18n_[\"__\"])('Menu Location'),\n  key: 'name'\n}];\nvar kinds = [{\n  name: 'postType',\n  loadEntities: loadPostTypeEntities\n}, {\n  name: 'taxonomy',\n  loadEntities: loadTaxonomyEntities\n}];\n/**\n * Returns the list of post type entities.\n *\n * @return {Promise} Entities promise\n */\n\nfunction loadPostTypeEntities() {\n  var postTypes;\n  return external_this_regeneratorRuntime_default.a.wrap(function loadPostTypeEntities$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          _context.next = 2;\n          return apiFetch({\n            path: '/wp/v2/types?context=edit'\n          });\n\n        case 2:\n          postTypes = _context.sent;\n          return _context.abrupt(\"return\", Object(external_this_lodash_[\"map\"])(postTypes, function (postType, name) {\n            return {\n              kind: 'postType',\n              baseURL: '/wp/v2/' + postType.rest_base,\n              name: name,\n              label: postType.labels.singular_name,\n              transientEdits: {\n                blocks: true,\n                selectionStart: true,\n                selectionEnd: true\n              },\n              mergedEdits: {\n                meta: true\n              },\n              getTitle: function getTitle(record) {\n                if (name === 'wp_template_part' || name === 'wp_template') {\n                  return Object(external_this_lodash_[\"startCase\"])(record.slug);\n                }\n\n                return Object(external_this_lodash_[\"get\"])(record, ['title', 'rendered'], record.id);\n              }\n            };\n          }));\n\n        case 4:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, entities_marked);\n}\n/**\n * Returns the list of the taxonomies entities.\n *\n * @return {Promise} Entities promise\n */\n\n\nfunction loadTaxonomyEntities() {\n  var taxonomies;\n  return external_this_regeneratorRuntime_default.a.wrap(function loadTaxonomyEntities$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return apiFetch({\n            path: '/wp/v2/taxonomies?context=edit'\n          });\n\n        case 2:\n          taxonomies = _context2.sent;\n          return _context2.abrupt(\"return\", Object(external_this_lodash_[\"map\"])(taxonomies, function (taxonomy, name) {\n            return {\n              kind: 'taxonomy',\n              baseURL: '/wp/v2/' + taxonomy.rest_base,\n              name: name,\n              label: taxonomy.labels.singular_name\n            };\n          }));\n\n        case 4:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, entities_marked2);\n}\n/**\n * Returns the entity's getter method name given its kind and name.\n *\n * @param {string}  kind      Entity kind.\n * @param {string}  name      Entity name.\n * @param {string}  prefix    Function prefix.\n * @param {boolean} usePlural Whether to use the plural form or not.\n *\n * @return {string} Method name\n */\n\n\nvar entities_getMethodName = function getMethodName(kind, name) {\n  var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'get';\n  var usePlural = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  var entity = Object(external_this_lodash_[\"find\"])(defaultEntities, {\n    kind: kind,\n    name: name\n  });\n  var kindPrefix = kind === 'root' ? '' : Object(external_this_lodash_[\"upperFirst\"])(Object(external_this_lodash_[\"camelCase\"])(kind));\n  var nameSuffix = Object(external_this_lodash_[\"upperFirst\"])(Object(external_this_lodash_[\"camelCase\"])(name)) + (usePlural ? 's' : '');\n  var suffix = usePlural && entity.plural ? Object(external_this_lodash_[\"upperFirst\"])(Object(external_this_lodash_[\"camelCase\"])(entity.plural)) : nameSuffix;\n  return \"\".concat(prefix).concat(kindPrefix).concat(suffix);\n};\n/**\n * Loads the kind entities into the store.\n *\n * @param {string} kind  Kind\n *\n * @return {Array} Entities\n */\n\nfunction getKindEntities(kind) {\n  var entities, kindConfig;\n  return external_this_regeneratorRuntime_default.a.wrap(function getKindEntities$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          _context3.next = 2;\n          return controls_select('getEntitiesByKind', kind);\n\n        case 2:\n          entities = _context3.sent;\n\n          if (!(entities && entities.length !== 0)) {\n            _context3.next = 5;\n            break;\n          }\n\n          return _context3.abrupt(\"return\", entities);\n\n        case 5:\n          kindConfig = Object(external_this_lodash_[\"find\"])(kinds, {\n            name: kind\n          });\n\n          if (kindConfig) {\n            _context3.next = 8;\n            break;\n          }\n\n          return _context3.abrupt(\"return\", []);\n\n        case 8:\n          _context3.next = 10;\n          return kindConfig.loadEntities();\n\n        case 10:\n          entities = _context3.sent;\n          _context3.next = 13;\n          return addEntities(entities);\n\n        case 13:\n          return _context3.abrupt(\"return\", entities);\n\n        case 14:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, entities_marked3);\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/with-weak-map-cache.js\n/**\n * External dependencies\n */\n\n/**\n * Given a function, returns an enhanced function which caches the result and\n * tracks in WeakMap. The result is only cached if the original function is\n * passed a valid object-like argument (requirement for WeakMap key).\n *\n * @param {Function} fn Original function.\n *\n * @return {Function} Enhanced caching function.\n */\n\nfunction withWeakMapCache(fn) {\n  var cache = new WeakMap();\n  return function (key) {\n    var value;\n\n    if (cache.has(key)) {\n      value = cache.get(key);\n    } else {\n      value = fn(key); // Can reach here if key is not valid for WeakMap, since `has`\n      // will return false for invalid key. Since `set` will throw,\n      // ensure that key is valid before setting into cache.\n\n      if (Object(external_this_lodash_[\"isObjectLike\"])(key)) {\n        cache.set(key, value);\n      }\n    }\n\n    return value;\n  };\n}\n\n/* harmony default export */ var with_weak_map_cache = (withWeakMapCache);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/get-query-parts.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * An object of properties describing a specific query.\n *\n * @typedef {Object} WPQueriedDataQueryParts\n *\n * @property {number} page      The query page (1-based index, default 1).\n * @property {number} perPage   Items per page for query (default 10).\n * @property {string} stableKey An encoded stable string of all non-pagination\n *                              query parameters.\n */\n\n/**\n * Given a query object, returns an object of parts, including pagination\n * details (`page` and `perPage`, or default values). All other properties are\n * encoded into a stable (idempotent) `stableKey` value.\n *\n * @param {Object} query Optional query object.\n *\n * @return {WPQueriedDataQueryParts} Query parts.\n */\n\nfunction getQueryParts(query) {\n  /**\n   * @type {WPQueriedDataQueryParts}\n   */\n  var parts = {\n    stableKey: '',\n    page: 1,\n    perPage: 10\n  }; // Ensure stable key by sorting keys. Also more efficient for iterating.\n\n  var keys = Object.keys(query).sort();\n\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    var value = query[key];\n\n    switch (key) {\n      case 'page':\n        parts[key] = Number(value);\n        break;\n\n      case 'per_page':\n        parts.perPage = Number(value);\n        break;\n\n      default:\n        // While it could be any deterministic string, for simplicity's\n        // sake mimic querystring encoding for stable key.\n        //\n        // TODO: For consistency with PHP implementation, addQueryArgs\n        // should accept a key value pair, which may optimize its\n        // implementation for our use here, vs. iterating an object\n        // with only a single key.\n        parts.stableKey += (parts.stableKey ? '&' : '') + Object(external_this_wp_url_[\"addQueryArgs\"])('', Object(defineProperty[\"a\" /* default */])({}, key, value)).slice(1);\n    }\n  }\n\n  return parts;\n}\n/* harmony default export */ var get_query_parts = (with_weak_map_cache(getQueryParts));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/reducer.js\n\n\nfunction reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Returns a merged array of item IDs, given details of the received paginated\n * items. The array is sparse-like with `undefined` entries where holes exist.\n *\n * @param {?Array<number>} itemIds     Original item IDs (default empty array).\n * @param {number[]}       nextItemIds Item IDs to merge.\n * @param {number}         page        Page of items merged.\n * @param {number}         perPage     Number of items per page.\n *\n * @return {number[]} Merged array of item IDs.\n */\n\nfunction getMergedItemIds(itemIds, nextItemIds, page, perPage) {\n  var receivedAllIds = page === 1 && perPage === -1;\n\n  if (receivedAllIds) {\n    return nextItemIds;\n  }\n\n  var nextItemIdsStartIndex = (page - 1) * perPage; // If later page has already been received, default to the larger known\n  // size of the existing array, else calculate as extending the existing.\n\n  var size = Math.max(itemIds.length, nextItemIdsStartIndex + nextItemIds.length); // Preallocate array since size is known.\n\n  var mergedItemIds = new Array(size);\n\n  for (var i = 0; i < size; i++) {\n    // Preserve existing item ID except for subset of range of next items.\n    var isInNextItemsRange = i >= nextItemIdsStartIndex && i < nextItemIdsStartIndex + nextItemIds.length;\n    mergedItemIds[i] = isInNextItemsRange ? nextItemIds[i - nextItemIdsStartIndex] : itemIds[i];\n  }\n\n  return mergedItemIds;\n}\n/**\n * Reducer tracking items state, keyed by ID. Items are assumed to be normal,\n * where identifiers are common across all queries.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\n\nfunction reducer_items() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_ITEMS':\n      var key = action.key || DEFAULT_ENTITY_KEY;\n      return reducer_objectSpread({}, state, {}, action.items.reduce(function (accumulator, value) {\n        var itemId = value[key];\n        accumulator[itemId] = conservativeMapItem(state[itemId], value);\n        return accumulator;\n      }, {}));\n  }\n\n  return state;\n}\n/**\n * Reducer tracking queries state, keyed by stable query key. Each reducer\n * query object includes `itemIds` and `requestingPageByPerPage`.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\n\n\nvar queries = Object(external_this_lodash_[\"flowRight\"])([// Limit to matching action type so we don't attempt to replace action on\n// an unhandled action.\nif_matching_action(function (action) {\n  return 'query' in action;\n}), // Inject query parts into action for use both in `onSubKey` and reducer.\nreplace_action(function (action) {\n  // `ifMatchingAction` still passes on initialization, where state is\n  // undefined and a query is not assigned. Avoid attempting to parse\n  // parts. `onSubKey` will omit by lack of `stableKey`.\n  if (action.query) {\n    return reducer_objectSpread({}, action, {}, get_query_parts(action.query));\n  }\n\n  return action;\n}), // Queries shape is shared, but keyed by query `stableKey` part. Original\n// reducer tracks only a single query object.\non_sub_key('stableKey')])(function () {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n  var type = action.type,\n      page = action.page,\n      perPage = action.perPage,\n      _action$key = action.key,\n      key = _action$key === void 0 ? DEFAULT_ENTITY_KEY : _action$key;\n\n  if (type !== 'RECEIVE_ITEMS') {\n    return state;\n  }\n\n  return getMergedItemIds(state || [], Object(external_this_lodash_[\"map\"])(action.items, key), page, perPage);\n});\n/* harmony default export */ var queried_data_reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  items: reducer_items,\n  queries: queries\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/reducer.js\n\n\n\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction build_module_reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction build_module_reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { build_module_reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Reducer managing terms state. Keyed by taxonomy slug, the value is either\n * undefined (if no request has been made for given taxonomy), null (if a\n * request is in-flight for given taxonomy), or the array of terms for the\n * taxonomy.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction terms() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_TERMS':\n      return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.taxonomy, action.terms));\n  }\n\n  return state;\n}\n/**\n * Reducer managing authors state. Keyed by id.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_users() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n    byId: {},\n    queries: {}\n  };\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_USER_QUERY':\n      return {\n        byId: build_module_reducer_objectSpread({}, state.byId, {}, Object(external_this_lodash_[\"keyBy\"])(action.users, 'id')),\n        queries: build_module_reducer_objectSpread({}, state.queries, Object(defineProperty[\"a\" /* default */])({}, action.queryID, Object(external_this_lodash_[\"map\"])(action.users, function (user) {\n          return user.id;\n        })))\n      };\n  }\n\n  return state;\n}\n/**\n * Reducer managing current user state.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_currentUser() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_CURRENT_USER':\n      return action.currentUser;\n  }\n\n  return state;\n}\n/**\n * Reducer managing taxonomies.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_taxonomies() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_TAXONOMIES':\n      return action.taxonomies;\n  }\n\n  return state;\n}\n/**\n * Reducer managing the current theme.\n *\n * @param {string} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction currentTheme() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_CURRENT_THEME':\n      return action.currentTheme.stylesheet;\n  }\n\n  return state;\n}\n/**\n * Reducer managing installed themes.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction themes() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_CURRENT_THEME':\n      return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.currentTheme.stylesheet, action.currentTheme));\n  }\n\n  return state;\n}\n/**\n * Reducer managing theme supports data.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction themeSupports() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_THEME_SUPPORTS':\n      return build_module_reducer_objectSpread({}, state, {}, action.themeSupports);\n  }\n\n  return state;\n}\n/**\n * Higher Order Reducer for a given entity config. It supports:\n *\n *  - Fetching\n *  - Editing\n *  - Saving\n *\n * @param {Object} entityConfig  Entity config.\n *\n * @return {Function} Reducer.\n */\n\nfunction reducer_entity(entityConfig) {\n  return Object(external_this_lodash_[\"flowRight\"])([// Limit to matching action type so we don't attempt to replace action on\n  // an unhandled action.\n  if_matching_action(function (action) {\n    return action.name && action.kind && action.name === entityConfig.name && action.kind === entityConfig.kind;\n  }), // Inject the entity config into the action.\n  replace_action(function (action) {\n    return build_module_reducer_objectSpread({}, action, {\n      key: entityConfig.key || DEFAULT_ENTITY_KEY\n    });\n  })])(Object(external_this_wp_data_[\"combineReducers\"])({\n    queriedData: queried_data_reducer,\n    edits: function edits() {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n\n      switch (action.type) {\n        case 'RECEIVE_ITEMS':\n          var nextState = build_module_reducer_objectSpread({}, state);\n\n          var _iterator = _createForOfIteratorHelper(action.items),\n              _step;\n\n          try {\n            var _loop = function _loop() {\n              var record = _step.value;\n              var recordId = record[action.key];\n              var edits = nextState[recordId];\n\n              if (!edits) {\n                return \"continue\";\n              }\n\n              var nextEdits = Object.keys(edits).reduce(function (acc, key) {\n                // If the edited value is still different to the persisted value,\n                // keep the edited value in edits.\n                if ( // Edits are the \"raw\" attribute values, but records may have\n                // objects with more properties, so we use `get` here for the\n                // comparison.\n                !Object(external_this_lodash_[\"isEqual\"])(edits[key], Object(external_this_lodash_[\"get\"])(record[key], 'raw', record[key]))) {\n                  acc[key] = edits[key];\n                }\n\n                return acc;\n              }, {});\n\n              if (Object.keys(nextEdits).length) {\n                nextState[recordId] = nextEdits;\n              } else {\n                delete nextState[recordId];\n              }\n            };\n\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var _ret = _loop();\n\n              if (_ret === \"continue\") continue;\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n\n          return nextState;\n\n        case 'EDIT_ENTITY_RECORD':\n          var nextEdits = build_module_reducer_objectSpread({}, state[action.recordId], {}, action.edits);\n\n          Object.keys(nextEdits).forEach(function (key) {\n            // Delete cleared edits so that the properties\n            // are not considered dirty.\n            if (nextEdits[key] === undefined) {\n              delete nextEdits[key];\n            }\n          });\n          return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.recordId, nextEdits));\n      }\n\n      return state;\n    },\n    saving: function saving() {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n\n      switch (action.type) {\n        case 'SAVE_ENTITY_RECORD_START':\n        case 'SAVE_ENTITY_RECORD_FINISH':\n          return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.recordId, {\n            pending: action.type === 'SAVE_ENTITY_RECORD_START',\n            error: action.error,\n            isAutosave: action.isAutosave\n          }));\n      }\n\n      return state;\n    }\n  }));\n}\n/**\n * Reducer keeping track of the registered entities.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\n\nfunction entitiesConfig() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultEntities;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_ENTITIES':\n      return [].concat(Object(toConsumableArray[\"a\" /* default */])(state), Object(toConsumableArray[\"a\" /* default */])(action.entities));\n  }\n\n  return state;\n}\n/**\n * Reducer keeping track of the registered entities config and data.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar reducer_entities = function entities() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n  var newConfig = entitiesConfig(state.config, action); // Generates a dynamic reducer for the entities\n\n  var entitiesDataReducer = state.reducer;\n\n  if (!entitiesDataReducer || newConfig !== state.config) {\n    var entitiesByKind = Object(external_this_lodash_[\"groupBy\"])(newConfig, 'kind');\n    entitiesDataReducer = Object(external_this_wp_data_[\"combineReducers\"])(Object.entries(entitiesByKind).reduce(function (memo, _ref) {\n      var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n          kind = _ref2[0],\n          subEntities = _ref2[1];\n\n      var kindReducer = Object(external_this_wp_data_[\"combineReducers\"])(subEntities.reduce(function (kindMemo, entityConfig) {\n        return build_module_reducer_objectSpread({}, kindMemo, Object(defineProperty[\"a\" /* default */])({}, entityConfig.name, reducer_entity(entityConfig)));\n      }, {}));\n      memo[kind] = kindReducer;\n      return memo;\n    }, {}));\n  }\n\n  var newData = entitiesDataReducer(state.data, action);\n\n  if (newData === state.data && newConfig === state.config && entitiesDataReducer === state.reducer) {\n    return state;\n  }\n\n  return {\n    reducer: entitiesDataReducer,\n    data: newData,\n    config: newConfig\n  };\n};\n/**\n * Reducer keeping track of entity edit undo history.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar UNDO_INITIAL_STATE = [];\nUNDO_INITIAL_STATE.offset = 0;\nvar lastEditAction;\nfunction reducer_undo() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : UNDO_INITIAL_STATE;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'EDIT_ENTITY_RECORD':\n    case 'CREATE_UNDO_LEVEL':\n      var isCreateUndoLevel = action.type === 'CREATE_UNDO_LEVEL';\n      var isUndoOrRedo = !isCreateUndoLevel && (action.meta.isUndo || action.meta.isRedo);\n\n      if (isCreateUndoLevel) {\n        action = lastEditAction;\n      } else if (!isUndoOrRedo) {\n        // Don't lose the last edit cache if the new one only has transient edits.\n        // Transient edits don't create new levels so updating the cache would make\n        // us skip an edit later when creating levels explicitly.\n        if (Object.keys(action.edits).some(function (key) {\n          return !action.transientEdits[key];\n        })) {\n          lastEditAction = action;\n        } else {\n          lastEditAction = build_module_reducer_objectSpread({}, action, {\n            edits: build_module_reducer_objectSpread({}, lastEditAction && lastEditAction.edits, {}, action.edits)\n          });\n        }\n      }\n\n      var nextState;\n\n      if (isUndoOrRedo) {\n        nextState = Object(toConsumableArray[\"a\" /* default */])(state);\n        nextState.offset = state.offset + (action.meta.isUndo ? -1 : 1);\n\n        if (state.flattenedUndo) {\n          // The first undo in a sequence of undos might happen while we have\n          // flattened undos in state. If this is the case, we want execution\n          // to continue as if we were creating an explicit undo level. This\n          // will result in an extra undo level being appended with the flattened\n          // undo values.\n          isCreateUndoLevel = true;\n          action = lastEditAction;\n        } else {\n          return nextState;\n        }\n      }\n\n      if (!action.meta.undo) {\n        return state;\n      } // Transient edits don't create an undo level, but are\n      // reachable in the next meaningful edit to which they\n      // are merged. They are defined in the entity's config.\n\n\n      if (!isCreateUndoLevel && !Object.keys(action.edits).some(function (key) {\n        return !action.transientEdits[key];\n      })) {\n        nextState = Object(toConsumableArray[\"a\" /* default */])(state);\n        nextState.flattenedUndo = build_module_reducer_objectSpread({}, state.flattenedUndo, {}, action.edits);\n        nextState.offset = state.offset;\n        return nextState;\n      } // Clear potential redos, because this only supports linear history.\n\n\n      nextState = nextState || state.slice(0, state.offset || undefined);\n      nextState.offset = nextState.offset || 0;\n      nextState.pop();\n\n      if (!isCreateUndoLevel) {\n        nextState.push({\n          kind: action.meta.undo.kind,\n          name: action.meta.undo.name,\n          recordId: action.meta.undo.recordId,\n          edits: build_module_reducer_objectSpread({}, state.flattenedUndo, {}, action.meta.undo.edits)\n        });\n      } // When an edit is a function it's an optimization to avoid running some expensive operation.\n      // We can't rely on the function references being the same so we opt out of comparing them here.\n\n\n      var comparisonUndoEdits = Object.values(action.meta.undo.edits).filter(function (edit) {\n        return typeof edit !== 'function';\n      });\n      var comparisonEdits = Object.values(action.edits).filter(function (edit) {\n        return typeof edit !== 'function';\n      });\n\n      if (!external_this_wp_isShallowEqual_default()(comparisonUndoEdits, comparisonEdits)) {\n        nextState.push({\n          kind: action.kind,\n          name: action.name,\n          recordId: action.recordId,\n          edits: isCreateUndoLevel ? build_module_reducer_objectSpread({}, state.flattenedUndo, {}, action.edits) : action.edits\n        });\n      }\n\n      return nextState;\n  }\n\n  return state;\n}\n/**\n * Reducer managing embed preview data.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction embedPreviews() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_EMBED_PREVIEW':\n      var url = action.url,\n          preview = action.preview;\n      return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, url, preview));\n  }\n\n  return state;\n}\n/**\n * State which tracks whether the user can perform an action on a REST\n * resource.\n *\n * @param  {Object} state  Current state.\n * @param  {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction userPermissions() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_USER_PERMISSION':\n      return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.key, action.isAllowed));\n  }\n\n  return state;\n}\n/**\n * Reducer returning autosaves keyed by their parent's post id.\n *\n * @param  {Object} state  Current state.\n * @param  {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_autosaves() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'RECEIVE_AUTOSAVES':\n      var postId = action.postId,\n          autosavesData = action.autosaves;\n      return build_module_reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, postId, autosavesData));\n  }\n\n  return state;\n}\n/* harmony default export */ var build_module_reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  terms: terms,\n  users: reducer_users,\n  currentTheme: currentTheme,\n  currentUser: reducer_currentUser,\n  taxonomies: reducer_taxonomies,\n  themes: themes,\n  themeSupports: themeSupports,\n  entities: reducer_entities,\n  undo: reducer_undo,\n  embedPreviews: embedPreviews,\n  userPermissions: userPermissions,\n  autosaves: reducer_autosaves\n}));\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/name.js\n/**\n * The reducer key used by core data in store registration.\n * This is defined in a separate file to avoid cycle-dependency\n *\n * @type {string}\n */\nvar REDUCER_KEY = 'core';\n\n// EXTERNAL MODULE: ./node_modules/equivalent-key-map/equivalent-key-map.js\nvar equivalent_key_map = __webpack_require__(120);\nvar equivalent_key_map_default = /*#__PURE__*/__webpack_require__.n(equivalent_key_map);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/queried-data/selectors.js\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Cache of state keys to EquivalentKeyMap where the inner map tracks queries\n * to their resulting items set. WeakMap allows garbage collection on expired\n * state references.\n *\n * @type {WeakMap<Object,EquivalentKeyMap>}\n */\n\nvar queriedItemsCacheByState = new WeakMap();\n/**\n * Returns items for a given query, or null if the items are not known.\n *\n * @param {Object}  state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\n\nfunction getQueriedItemsUncached(state, query) {\n  var _getQueryParts = get_query_parts(query),\n      stableKey = _getQueryParts.stableKey,\n      page = _getQueryParts.page,\n      perPage = _getQueryParts.perPage;\n\n  if (!state.queries[stableKey]) {\n    return null;\n  }\n\n  var itemIds = state.queries[stableKey];\n\n  if (!itemIds) {\n    return null;\n  }\n\n  var startOffset = perPage === -1 ? 0 : (page - 1) * perPage;\n  var endOffset = perPage === -1 ? itemIds.length : Math.min(startOffset + perPage, itemIds.length);\n  var items = [];\n\n  for (var i = startOffset; i < endOffset; i++) {\n    var itemId = itemIds[i];\n    items.push(state.items[itemId]);\n  }\n\n  return items;\n}\n/**\n * Returns items for a given query, or null if the items are not known. Caches\n * result both per state (by reference) and per query (by deep equality).\n * The caching approach is intended to be durable to query objects which are\n * deeply but not referentially equal, since otherwise:\n *\n * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`\n *\n * @param {Object}  state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\n\n\nvar getQueriedItems = Object(rememo[\"a\" /* default */])(function (state) {\n  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var queriedItemsCache = queriedItemsCacheByState.get(state);\n\n  if (queriedItemsCache) {\n    var queriedItems = queriedItemsCache.get(query);\n\n    if (queriedItems !== undefined) {\n      return queriedItems;\n    }\n  } else {\n    queriedItemsCache = new equivalent_key_map_default.a();\n    queriedItemsCacheByState.set(state, queriedItemsCache);\n  }\n\n  var items = getQueriedItemsUncached(state, query);\n  queriedItemsCache.set(query, items);\n  return items;\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/selectors.js\n\n\nfunction selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Returns true if a request is in progress for embed preview data, or false\n * otherwise.\n *\n * @param {Object} state Data state.\n * @param {string} url   URL the preview would be for.\n *\n * @return {boolean} Whether a request is in progress for an embed preview.\n */\n\nvar isRequestingEmbedPreview = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state, url) {\n    return select('core/data').isResolving(REDUCER_KEY, 'getEmbedPreview', [url]);\n  };\n});\n/**\n * Returns all available authors.\n *\n * @param {Object} state Data state.\n *\n * @return {Array} Authors list.\n */\n\nfunction getAuthors(state) {\n  return getUserQueryResults(state, 'authors');\n}\n/**\n * Returns the current user.\n *\n * @param {Object} state Data state.\n *\n * @return {Object} Current user object.\n */\n\nfunction getCurrentUser(state) {\n  return state.currentUser;\n}\n/**\n * Returns all the users returned by a query ID.\n *\n * @param {Object} state   Data state.\n * @param {string} queryID Query ID.\n *\n * @return {Array} Users list.\n */\n\nvar getUserQueryResults = Object(rememo[\"a\" /* default */])(function (state, queryID) {\n  var queryResults = state.users.queries[queryID];\n  return Object(external_this_lodash_[\"map\"])(queryResults, function (id) {\n    return state.users.byId[id];\n  });\n}, function (state, queryID) {\n  return [state.users.queries[queryID], state.users.byId];\n});\n/**\n * Returns whether the entities for the give kind are loaded.\n *\n * @param {Object} state   Data state.\n * @param {string} kind  Entity kind.\n *\n * @return {boolean} Whether the entities are loaded\n */\n\nfunction getEntitiesByKind(state, kind) {\n  return Object(external_this_lodash_[\"filter\"])(state.entities.config, {\n    kind: kind\n  });\n}\n/**\n * Returns the entity object given its kind and name.\n *\n * @param {Object} state   Data state.\n * @param {string} kind  Entity kind.\n * @param {string} name  Entity name.\n *\n * @return {Object} Entity\n */\n\nfunction selectors_getEntity(state, kind, name) {\n  return Object(external_this_lodash_[\"find\"])(state.entities.config, {\n    kind: kind,\n    name: name\n  });\n}\n/**\n * Returns the Entity's record object by key.\n *\n * @param {Object} state  State tree\n * @param {string} kind   Entity kind.\n * @param {string} name   Entity name.\n * @param {number} key    Record's key\n *\n * @return {Object?} Record.\n */\n\nfunction getEntityRecord(state, kind, name, key) {\n  return Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'queriedData', 'items', key]);\n}\n/**\n * Returns the Entity's record object by key. Doesn't trigger a resolver nor requests the entity from the API if the entity record isn't available in the local state.\n *\n * @param {Object} state  State tree\n * @param {string} kind   Entity kind.\n * @param {string} name   Entity name.\n * @param {number} key    Record's key\n *\n * @return {Object?} Record.\n */\n\nfunction __experimentalGetEntityRecordNoResolver(state, kind, name, key) {\n  return getEntityRecord(state, kind, name, key);\n}\n/**\n * Returns the entity's record object by key,\n * with its attributes mapped to their raw values.\n *\n * @param {Object} state  State tree.\n * @param {string} kind   Entity kind.\n * @param {string} name   Entity name.\n * @param {number} key    Record's key.\n *\n * @return {Object?} Object with the entity's raw attributes.\n */\n\nvar getRawEntityRecord = Object(rememo[\"a\" /* default */])(function (state, kind, name, key) {\n  var record = getEntityRecord(state, kind, name, key);\n  return record && Object.keys(record).reduce(function (accumulator, _key) {\n    // Because edits are the \"raw\" attribute values,\n    // we return those from record selectors to make rendering,\n    // comparisons, and joins with edits easier.\n    accumulator[_key] = Object(external_this_lodash_[\"get\"])(record[_key], 'raw', record[_key]);\n    return accumulator;\n  }, {});\n}, function (state) {\n  return [state.entities.data];\n});\n/**\n * Returns the Entity's records.\n *\n * @param {Object}  state  State tree\n * @param {string}  kind   Entity kind.\n * @param {string}  name   Entity name.\n * @param {?Object} query  Optional terms query.\n *\n * @return {?Array} Records.\n */\n\nfunction getEntityRecords(state, kind, name, query) {\n  var queriedState = Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'queriedData']);\n\n  if (!queriedState) {\n    return [];\n  }\n\n  return getQueriedItems(queriedState, query);\n}\n/**\n * Returns the  list of dirty entity records.\n *\n * @param {Object} state State tree.\n *\n * @return {[{ title: string, key: string, name: string, kind: string }]} The list of updated records\n */\n\nvar __experimentalGetDirtyEntityRecords = Object(rememo[\"a\" /* default */])(function (state) {\n  var data = state.entities.data;\n  var dirtyRecords = [];\n  Object.keys(data).forEach(function (kind) {\n    Object.keys(data[kind]).forEach(function (name) {\n      var primaryKeys = Object.keys(data[kind][name].edits).filter(function (primaryKey) {\n        return hasEditsForEntityRecord(state, kind, name, primaryKey);\n      });\n\n      if (primaryKeys.length) {\n        var entity = selectors_getEntity(state, kind, name);\n        primaryKeys.forEach(function (primaryKey) {\n          var entityRecord = getEntityRecord(state, kind, name, primaryKey);\n          dirtyRecords.push({\n            // We avoid using primaryKey because it's transformed into a string\n            // when it's used as an object key.\n            key: entityRecord[entity.key || DEFAULT_ENTITY_KEY],\n            title: !entity.getTitle ? '' : entity.getTitle(entityRecord),\n            name: name,\n            kind: kind\n          });\n        });\n      }\n    });\n  });\n  return dirtyRecords;\n}, function (state) {\n  return [state.entities.data];\n});\n/**\n * Returns the specified entity record's edits.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {Object?} The entity record's edits.\n */\n\nfunction getEntityRecordEdits(state, kind, name, recordId) {\n  return Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'edits', recordId]);\n}\n/**\n * Returns the specified entity record's non transient edits.\n *\n * Transient edits don't create an undo level, and\n * are not considered for change detection.\n * They are defined in the entity's config.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {Object?} The entity record's non transient edits.\n */\n\nvar getEntityRecordNonTransientEdits = Object(rememo[\"a\" /* default */])(function (state, kind, name, recordId) {\n  var _ref = selectors_getEntity(state, kind, name) || {},\n      transientEdits = _ref.transientEdits;\n\n  var edits = getEntityRecordEdits(state, kind, name, recordId) || {};\n\n  if (!transientEdits) {\n    return edits;\n  }\n\n  return Object.keys(edits).reduce(function (acc, key) {\n    if (!transientEdits[key]) {\n      acc[key] = edits[key];\n    }\n\n    return acc;\n  }, {});\n}, function (state) {\n  return [state.entities.config, state.entities.data];\n});\n/**\n * Returns true if the specified entity record has edits,\n * and false otherwise.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {boolean} Whether the entity record has edits or not.\n */\n\nfunction hasEditsForEntityRecord(state, kind, name, recordId) {\n  return isSavingEntityRecord(state, kind, name, recordId) || Object.keys(getEntityRecordNonTransientEdits(state, kind, name, recordId)).length > 0;\n}\n/**\n * Returns the specified entity record, merged with its edits.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {Object?} The entity record, merged with its edits.\n */\n\nvar getEditedEntityRecord = Object(rememo[\"a\" /* default */])(function (state, kind, name, recordId) {\n  return selectors_objectSpread({}, getRawEntityRecord(state, kind, name, recordId), {}, getEntityRecordEdits(state, kind, name, recordId));\n}, function (state) {\n  return [state.entities.data];\n});\n/**\n * Returns true if the specified entity record is autosaving, and false otherwise.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {boolean} Whether the entity record is autosaving or not.\n */\n\nfunction isAutosavingEntityRecord(state, kind, name, recordId) {\n  var _get = Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'saving', recordId], {}),\n      pending = _get.pending,\n      isAutosave = _get.isAutosave;\n\n  return Boolean(pending && isAutosave);\n}\n/**\n * Returns true if the specified entity record is saving, and false otherwise.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {boolean} Whether the entity record is saving or not.\n */\n\nfunction isSavingEntityRecord(state, kind, name, recordId) {\n  return Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'saving', recordId, 'pending'], false);\n}\n/**\n * Returns the specified entity record's last save error.\n *\n * @param {Object} state    State tree.\n * @param {string} kind     Entity kind.\n * @param {string} name     Entity name.\n * @param {number} recordId Record ID.\n *\n * @return {Object?} The entity record's save error.\n */\n\nfunction getLastEntitySaveError(state, kind, name, recordId) {\n  return Object(external_this_lodash_[\"get\"])(state.entities.data, [kind, name, 'saving', recordId, 'error']);\n}\n/**\n * Returns the current undo offset for the\n * entity records edits history. The offset\n * represents how many items from the end\n * of the history stack we are at. 0 is the\n * last edit, -1 is the second last, and so on.\n *\n * @param {Object} state State tree.\n *\n * @return {number} The current undo offset.\n */\n\nfunction getCurrentUndoOffset(state) {\n  return state.undo.offset;\n}\n/**\n * Returns the previous edit from the current undo offset\n * for the entity records edits history, if any.\n *\n * @param {Object} state State tree.\n *\n * @return {Object?} The edit.\n */\n\n\nfunction getUndoEdit(state) {\n  return state.undo[state.undo.length - 2 + getCurrentUndoOffset(state)];\n}\n/**\n * Returns the next edit from the current undo offset\n * for the entity records edits history, if any.\n *\n * @param {Object} state State tree.\n *\n * @return {Object?} The edit.\n */\n\nfunction getRedoEdit(state) {\n  return state.undo[state.undo.length + getCurrentUndoOffset(state)];\n}\n/**\n * Returns true if there is a previous edit from the current undo offset\n * for the entity records edits history, and false otherwise.\n *\n * @param {Object} state State tree.\n *\n * @return {boolean} Whether there is a previous edit or not.\n */\n\nfunction hasUndo(state) {\n  return Boolean(getUndoEdit(state));\n}\n/**\n * Returns true if there is a next edit from the current undo offset\n * for the entity records edits history, and false otherwise.\n *\n * @param {Object} state State tree.\n *\n * @return {boolean} Whether there is a next edit or not.\n */\n\nfunction hasRedo(state) {\n  return Boolean(getRedoEdit(state));\n}\n/**\n * Return the current theme.\n *\n * @param {Object} state Data state.\n *\n * @return {Object}      The current theme.\n */\n\nfunction getCurrentTheme(state) {\n  return state.themes[state.currentTheme];\n}\n/**\n * Return theme supports data in the index.\n *\n * @param {Object} state Data state.\n *\n * @return {*}           Index data.\n */\n\nfunction getThemeSupports(state) {\n  return state.themeSupports;\n}\n/**\n * Returns the embed preview for the given URL.\n *\n * @param {Object} state    Data state.\n * @param {string} url      Embedded URL.\n *\n * @return {*} Undefined if the preview has not been fetched, otherwise, the preview fetched from the embed preview API.\n */\n\nfunction getEmbedPreview(state, url) {\n  return state.embedPreviews[url];\n}\n/**\n * Determines if the returned preview is an oEmbed link fallback.\n *\n * WordPress can be configured to return a simple link to a URL if it is not embeddable.\n * We need to be able to determine if a URL is embeddable or not, based on what we\n * get back from the oEmbed preview API.\n *\n * @param {Object} state    Data state.\n * @param {string} url      Embedded URL.\n *\n * @return {boolean} Is the preview for the URL an oEmbed link fallback.\n */\n\nfunction isPreviewEmbedFallback(state, url) {\n  var preview = state.embedPreviews[url];\n  var oEmbedLinkCheck = '<a href=\"' + url + '\">' + url + '</a>';\n\n  if (!preview) {\n    return false;\n  }\n\n  return preview.html === oEmbedLinkCheck;\n}\n/**\n * Returns whether the current user can upload media.\n *\n * Calling this may trigger an OPTIONS request to the REST API via the\n * `canUser()` resolver.\n *\n * https://developer.wordpress.org/rest-api/reference/\n *\n * @deprecated since 5.0. Callers should use the more generic `canUser()` selector instead of\n *             `hasUploadPermissions()`, e.g. `canUser( 'create', 'media' )`.\n *\n * @param {Object} state Data state.\n *\n * @return {boolean} Whether or not the user can upload media. Defaults to `true` if the OPTIONS\n *                   request is being made.\n */\n\nfunction hasUploadPermissions(state) {\n  external_this_wp_deprecated_default()(\"select( 'core' ).hasUploadPermissions()\", {\n    alternative: \"select( 'core' ).canUser( 'create', 'media' )\"\n  });\n  return Object(external_this_lodash_[\"defaultTo\"])(canUser(state, 'create', 'media'), true);\n}\n/**\n * Returns whether the current user can perform the given action on the given\n * REST resource.\n *\n * Calling this may trigger an OPTIONS request to the REST API via the\n * `canUser()` resolver.\n *\n * https://developer.wordpress.org/rest-api/reference/\n *\n * @param {Object}   state            Data state.\n * @param {string}   action           Action to check. One of: 'create', 'read', 'update', 'delete'.\n * @param {string}   resource         REST resource to check, e.g. 'media' or 'posts'.\n * @param {string=}  id               Optional ID of the rest resource to check.\n *\n * @return {boolean|undefined} Whether or not the user can perform the action,\n *                             or `undefined` if the OPTIONS request is still being made.\n */\n\nfunction canUser(state, action, resource, id) {\n  var key = Object(external_this_lodash_[\"compact\"])([action, resource, id]).join('/');\n  return Object(external_this_lodash_[\"get\"])(state, ['userPermissions', key]);\n}\n/**\n * Returns the latest autosaves for the post.\n *\n * May return multiple autosaves since the backend stores one autosave per\n * author for each post.\n *\n * @param {Object} state    State tree.\n * @param {string} postType The type of the parent post.\n * @param {number} postId   The id of the parent post.\n *\n * @return {?Array} An array of autosaves for the post, or undefined if there is none.\n */\n\nfunction getAutosaves(state, postType, postId) {\n  return state.autosaves[postId];\n}\n/**\n * Returns the autosave for the post and author.\n *\n * @param {Object} state    State tree.\n * @param {string} postType The type of the parent post.\n * @param {number} postId   The id of the parent post.\n * @param {number} authorId The id of the author.\n *\n * @return {?Object} The autosave for the post and author.\n */\n\nfunction getAutosave(state, postType, postId, authorId) {\n  if (authorId === undefined) {\n    return;\n  }\n\n  var autosaves = state.autosaves[postId];\n  return Object(external_this_lodash_[\"find\"])(autosaves, {\n    author: authorId\n  });\n}\n/**\n * Returns true if the REST request for autosaves has completed.\n *\n * @param {Object} state State tree.\n * @param {string} postType The type of the parent post.\n * @param {number} postId   The id of the parent post.\n *\n * @return {boolean} True if the REST request was completed. False otherwise.\n */\n\nvar hasFetchedAutosaves = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state, postType, postId) {\n    return select(REDUCER_KEY).hasFinishedResolution('getAutosaves', [postType, postId]);\n  };\n});\n/**\n * Returns a new reference when edited values have changed. This is useful in\n * inferring where an edit has been made between states by comparison of the\n * return values using strict equality.\n *\n * @example\n *\n * ```\n * const hasEditOccurred = (\n *    getReferenceByDistinctEdits( beforeState ) !==\n *    getReferenceByDistinctEdits( afterState )\n * );\n * ```\n *\n * @param {Object} state Editor state.\n *\n * @return {*} A value whose reference will change only when an edit occurs.\n */\n\nvar getReferenceByDistinctEdits = Object(rememo[\"a\" /* default */])(function () {\n  return [];\n}, function (state) {\n  return [state.undo.length, state.undo.offset];\n});\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dataControls\"]}\nvar external_this_wp_dataControls_ = __webpack_require__(36);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/utils/if-not-resolved.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Higher-order function which invokes the given resolver only if it has not\n * already been resolved with the arguments passed to the enhanced function.\n *\n * This only considers resolution state, and notably does not support resolver\n * custom `isFulfilled` behavior.\n *\n * @param {Function} resolver     Original resolver.\n * @param {string}   selectorName Selector name associated with resolver.\n *\n * @return {Function} Enhanced resolver.\n */\n\nvar if_not_resolved_ifNotResolved = function ifNotResolved(resolver, selectorName) {\n  return (\n    /*#__PURE__*/\n\n    /**\n     * @param {...any} args Original resolver arguments.\n     */\n    external_this_regeneratorRuntime_default.a.mark(function resolveIfNotResolved() {\n      var _len,\n          args,\n          _key,\n          hasStartedResolution,\n          _args = arguments;\n\n      return external_this_regeneratorRuntime_default.a.wrap(function resolveIfNotResolved$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                args[_key] = _args[_key];\n              }\n\n              _context.next = 3;\n              return Object(external_this_wp_dataControls_[\"select\"])('core', 'hasStartedResolution', selectorName, args);\n\n            case 3:\n              hasStartedResolution = _context.sent;\n\n              if (hasStartedResolution) {\n                _context.next = 6;\n                break;\n              }\n\n              return _context.delegateYield(resolver.apply(void 0, args), \"t0\", 6);\n\n            case 6:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, resolveIfNotResolved);\n    })\n  );\n};\n\n/* harmony default export */ var if_not_resolved = (if_not_resolved_ifNotResolved);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/resolvers.js\n\n\n\nfunction resolvers_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction resolvers_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { resolvers_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { resolvers_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar resolvers_marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getAuthors),\n    resolvers_marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getCurrentUser),\n    resolvers_marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getEntityRecord),\n    resolvers_marked4 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getEntityRecords),\n    resolvers_marked5 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getCurrentTheme),\n    _marked6 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getThemeSupports),\n    _marked7 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getEmbedPreview),\n    _marked8 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_hasUploadPermissions),\n    _marked9 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_canUser),\n    _marked10 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getAutosaves),\n    _marked11 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resolvers_getAutosave);\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Requests authors from the REST API.\n */\n\nfunction resolvers_getAuthors() {\n  var users;\n  return external_this_regeneratorRuntime_default.a.wrap(function getAuthors$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          _context.next = 2;\n          return apiFetch({\n            path: '/wp/v2/users/?who=authors&per_page=-1'\n          });\n\n        case 2:\n          users = _context.sent;\n          _context.next = 5;\n          return receiveUserQuery('authors', users);\n\n        case 5:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, resolvers_marked);\n}\n/**\n * Requests the current user from the REST API.\n */\n\nfunction resolvers_getCurrentUser() {\n  var currentUser;\n  return external_this_regeneratorRuntime_default.a.wrap(function getCurrentUser$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return apiFetch({\n            path: '/wp/v2/users/me'\n          });\n\n        case 2:\n          currentUser = _context2.sent;\n          _context2.next = 5;\n          return receiveCurrentUser(currentUser);\n\n        case 5:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, resolvers_marked2);\n}\n/**\n * Requests an entity's record from the REST API.\n *\n * @param {string} kind   Entity kind.\n * @param {string} name   Entity name.\n * @param {number} key    Record's key\n */\n\nfunction resolvers_getEntityRecord(kind, name) {\n  var key,\n      entities,\n      entity,\n      record,\n      _args3 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function getEntityRecord$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          key = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : '';\n          _context3.next = 3;\n          return getKindEntities(kind);\n\n        case 3:\n          entities = _context3.sent;\n          entity = Object(external_this_lodash_[\"find\"])(entities, {\n            kind: kind,\n            name: name\n          });\n\n          if (entity) {\n            _context3.next = 7;\n            break;\n          }\n\n          return _context3.abrupt(\"return\");\n\n        case 7:\n          _context3.next = 9;\n          return apiFetch({\n            path: \"\".concat(entity.baseURL, \"/\").concat(key, \"?context=edit\")\n          });\n\n        case 9:\n          record = _context3.sent;\n          _context3.next = 12;\n          return receiveEntityRecords(kind, name, record);\n\n        case 12:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, resolvers_marked3);\n}\n/**\n * Requests an entity's record from the REST API.\n */\n\nvar resolvers_getRawEntityRecord = if_not_resolved(resolvers_getEntityRecord, 'getEntityRecord');\n/**\n * Requests an entity's record from the REST API.\n */\n\nvar resolvers_getEditedEntityRecord = if_not_resolved(resolvers_getRawEntityRecord, 'getRawEntityRecord');\n/**\n * Requests the entity's records from the REST API.\n *\n * @param {string}  kind   Entity kind.\n * @param {string}  name   Entity name.\n * @param {Object?} query  Query Object.\n */\n\nfunction resolvers_getEntityRecords(kind, name) {\n  var query,\n      entities,\n      entity,\n      path,\n      records,\n      _args4 = arguments;\n  return external_this_regeneratorRuntime_default.a.wrap(function getEntityRecords$(_context4) {\n    while (1) {\n      switch (_context4.prev = _context4.next) {\n        case 0:\n          query = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {};\n          _context4.next = 3;\n          return getKindEntities(kind);\n\n        case 3:\n          entities = _context4.sent;\n          entity = Object(external_this_lodash_[\"find\"])(entities, {\n            kind: kind,\n            name: name\n          });\n\n          if (entity) {\n            _context4.next = 7;\n            break;\n          }\n\n          return _context4.abrupt(\"return\");\n\n        case 7:\n          path = Object(external_this_wp_url_[\"addQueryArgs\"])(entity.baseURL, resolvers_objectSpread({}, query, {\n            context: 'edit'\n          }));\n          _context4.next = 10;\n          return apiFetch({\n            path: path\n          });\n\n        case 10:\n          records = _context4.sent;\n          _context4.next = 13;\n          return receiveEntityRecords(kind, name, Object.values(records), query);\n\n        case 13:\n        case \"end\":\n          return _context4.stop();\n      }\n    }\n  }, resolvers_marked4);\n}\n\nresolvers_getEntityRecords.shouldInvalidate = function (action, kind, name) {\n  return action.type === 'RECEIVE_ITEMS' && action.invalidateCache && kind === action.kind && name === action.name;\n};\n/**\n * Requests the current theme.\n */\n\n\nfunction resolvers_getCurrentTheme() {\n  var activeThemes;\n  return external_this_regeneratorRuntime_default.a.wrap(function getCurrentTheme$(_context5) {\n    while (1) {\n      switch (_context5.prev = _context5.next) {\n        case 0:\n          _context5.next = 2;\n          return apiFetch({\n            path: '/wp/v2/themes?status=active'\n          });\n\n        case 2:\n          activeThemes = _context5.sent;\n          _context5.next = 5;\n          return receiveCurrentTheme(activeThemes[0]);\n\n        case 5:\n        case \"end\":\n          return _context5.stop();\n      }\n    }\n  }, resolvers_marked5);\n}\n/**\n * Requests theme supports data from the index.\n */\n\nfunction resolvers_getThemeSupports() {\n  var activeThemes;\n  return external_this_regeneratorRuntime_default.a.wrap(function getThemeSupports$(_context6) {\n    while (1) {\n      switch (_context6.prev = _context6.next) {\n        case 0:\n          _context6.next = 2;\n          return apiFetch({\n            path: '/wp/v2/themes?status=active'\n          });\n\n        case 2:\n          activeThemes = _context6.sent;\n          _context6.next = 5;\n          return receiveThemeSupports(activeThemes[0].theme_supports);\n\n        case 5:\n        case \"end\":\n          return _context6.stop();\n      }\n    }\n  }, _marked6);\n}\n/**\n * Requests a preview from the from the Embed API.\n *\n * @param {string} url   URL to get the preview for.\n */\n\nfunction resolvers_getEmbedPreview(url) {\n  var embedProxyResponse;\n  return external_this_regeneratorRuntime_default.a.wrap(function getEmbedPreview$(_context7) {\n    while (1) {\n      switch (_context7.prev = _context7.next) {\n        case 0:\n          _context7.prev = 0;\n          _context7.next = 3;\n          return apiFetch({\n            path: Object(external_this_wp_url_[\"addQueryArgs\"])('/oembed/1.0/proxy', {\n              url: url\n            })\n          });\n\n        case 3:\n          embedProxyResponse = _context7.sent;\n          _context7.next = 6;\n          return receiveEmbedPreview(url, embedProxyResponse);\n\n        case 6:\n          _context7.next = 12;\n          break;\n\n        case 8:\n          _context7.prev = 8;\n          _context7.t0 = _context7[\"catch\"](0);\n          _context7.next = 12;\n          return receiveEmbedPreview(url, false);\n\n        case 12:\n        case \"end\":\n          return _context7.stop();\n      }\n    }\n  }, _marked7, null, [[0, 8]]);\n}\n/**\n * Requests Upload Permissions from the REST API.\n *\n * @deprecated since 5.0. Callers should use the more generic `canUser()` selector instead of\n *            `hasUploadPermissions()`, e.g. `canUser( 'create', 'media' )`.\n */\n\nfunction resolvers_hasUploadPermissions() {\n  return external_this_regeneratorRuntime_default.a.wrap(function hasUploadPermissions$(_context8) {\n    while (1) {\n      switch (_context8.prev = _context8.next) {\n        case 0:\n          external_this_wp_deprecated_default()(\"select( 'core' ).hasUploadPermissions()\", {\n            alternative: \"select( 'core' ).canUser( 'create', 'media' )\"\n          });\n          return _context8.delegateYield(resolvers_canUser('create', 'media'), \"t0\", 2);\n\n        case 2:\n        case \"end\":\n          return _context8.stop();\n      }\n    }\n  }, _marked8);\n}\n/**\n * Checks whether the current user can perform the given action on the given\n * REST resource.\n *\n * @param {string}  action   Action to check. One of: 'create', 'read', 'update',\n *                           'delete'.\n * @param {string}  resource REST resource to check, e.g. 'media' or 'posts'.\n * @param {?string} id       ID of the rest resource to check.\n */\n\nfunction resolvers_canUser(action, resource, id) {\n  var methods, method, path, response, allowHeader, key, isAllowed;\n  return external_this_regeneratorRuntime_default.a.wrap(function canUser$(_context9) {\n    while (1) {\n      switch (_context9.prev = _context9.next) {\n        case 0:\n          methods = {\n            create: 'POST',\n            read: 'GET',\n            update: 'PUT',\n            delete: 'DELETE'\n          };\n          method = methods[action];\n\n          if (method) {\n            _context9.next = 4;\n            break;\n          }\n\n          throw new Error(\"'\".concat(action, \"' is not a valid action.\"));\n\n        case 4:\n          path = id ? \"/wp/v2/\".concat(resource, \"/\").concat(id) : \"/wp/v2/\".concat(resource);\n          _context9.prev = 5;\n          _context9.next = 8;\n          return apiFetch({\n            path: path,\n            // Ideally this would always be an OPTIONS request, but unfortunately there's\n            // a bug in the REST API which causes the Allow header to not be sent on\n            // OPTIONS requests to /posts/:id routes.\n            // https://core.trac.wordpress.org/ticket/45753\n            method: id ? 'GET' : 'OPTIONS',\n            parse: false\n          });\n\n        case 8:\n          response = _context9.sent;\n          _context9.next = 14;\n          break;\n\n        case 11:\n          _context9.prev = 11;\n          _context9.t0 = _context9[\"catch\"](5);\n          return _context9.abrupt(\"return\");\n\n        case 14:\n          if (Object(external_this_lodash_[\"hasIn\"])(response, ['headers', 'get'])) {\n            // If the request is fetched using the fetch api, the header can be\n            // retrieved using the 'get' method.\n            allowHeader = response.headers.get('allow');\n          } else {\n            // If the request was preloaded server-side and is returned by the\n            // preloading middleware, the header will be a simple property.\n            allowHeader = Object(external_this_lodash_[\"get\"])(response, ['headers', 'Allow'], '');\n          }\n\n          key = Object(external_this_lodash_[\"compact\"])([action, resource, id]).join('/');\n          isAllowed = Object(external_this_lodash_[\"includes\"])(allowHeader, method);\n          _context9.next = 19;\n          return receiveUserPermission(key, isAllowed);\n\n        case 19:\n        case \"end\":\n          return _context9.stop();\n      }\n    }\n  }, _marked9, null, [[5, 11]]);\n}\n/**\n * Request autosave data from the REST API.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId   The id of the parent post.\n */\n\nfunction resolvers_getAutosaves(postType, postId) {\n  var _yield$resolveSelect, restBase, autosaves;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function getAutosaves$(_context10) {\n    while (1) {\n      switch (_context10.prev = _context10.next) {\n        case 0:\n          _context10.next = 2;\n          return resolveSelect('getPostType', postType);\n\n        case 2:\n          _yield$resolveSelect = _context10.sent;\n          restBase = _yield$resolveSelect.rest_base;\n          _context10.next = 6;\n          return apiFetch({\n            path: \"/wp/v2/\".concat(restBase, \"/\").concat(postId, \"/autosaves?context=edit\")\n          });\n\n        case 6:\n          autosaves = _context10.sent;\n\n          if (!(autosaves && autosaves.length)) {\n            _context10.next = 10;\n            break;\n          }\n\n          _context10.next = 10;\n          return receiveAutosaves(postId, autosaves);\n\n        case 10:\n        case \"end\":\n          return _context10.stop();\n      }\n    }\n  }, _marked10);\n}\n/**\n * Request autosave data from the REST API.\n *\n * This resolver exists to ensure the underlying autosaves are fetched via\n * `getAutosaves` when a call to the `getAutosave` selector is made.\n *\n * @param {string} postType The type of the parent post.\n * @param {number} postId   The id of the parent post.\n */\n\nfunction resolvers_getAutosave(postType, postId) {\n  return external_this_regeneratorRuntime_default.a.wrap(function getAutosave$(_context11) {\n    while (1) {\n      switch (_context11.prev = _context11.next) {\n        case 0:\n          _context11.next = 2;\n          return resolveSelect('getAutosaves', postType, postId);\n\n        case 2:\n        case \"end\":\n          return _context11.stop();\n      }\n    }\n  }, _marked11);\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/entity-provider.js\n\n\n\n\nfunction entity_provider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction entity_provider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { entity_provider_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { entity_provider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar entity_provider_entities = entity_provider_objectSpread({}, defaultEntities.reduce(function (acc, entity) {\n  if (!acc[entity.kind]) {\n    acc[entity.kind] = {};\n  }\n\n  acc[entity.kind][entity.name] = {\n    context: Object(external_this_wp_element_[\"createContext\"])()\n  };\n  return acc;\n}, {}), {}, kinds.reduce(function (acc, kind) {\n  acc[kind.name] = {};\n  return acc;\n}, {}));\n\nvar entity_provider_getEntity = function getEntity(kind, type) {\n  if (!entity_provider_entities[kind]) {\n    throw new Error(\"Missing entity config for kind: \".concat(kind, \".\"));\n  }\n\n  if (!entity_provider_entities[kind][type]) {\n    entity_provider_entities[kind][type] = {\n      context: Object(external_this_wp_element_[\"createContext\"])()\n    };\n  }\n\n  return entity_provider_entities[kind][type];\n};\n/**\n * Context provider component for providing\n * an entity for a specific entity type.\n *\n * @param {Object} props          The component's props.\n * @param {string} props.kind     The entity kind.\n * @param {string} props.type     The entity type.\n * @param {number} props.id       The entity ID.\n * @param {*}      props.children The children to wrap.\n *\n * @return {Object} The provided children, wrapped with\n *                   the entity's context provider.\n */\n\n\nfunction EntityProvider(_ref) {\n  var kind = _ref.kind,\n      type = _ref.type,\n      id = _ref.id,\n      children = _ref.children;\n  var Provider = entity_provider_getEntity(kind, type).context.Provider;\n  return Object(external_this_wp_element_[\"createElement\"])(Provider, {\n    value: id\n  }, children);\n}\n/**\n * Hook that returns the ID for the nearest\n * provided entity of the specified type.\n *\n * @param {string} kind The entity kind.\n * @param {string} type The entity type.\n */\n\nfunction useEntityId(kind, type) {\n  return Object(external_this_wp_element_[\"useContext\"])(entity_provider_getEntity(kind, type).context);\n}\n/**\n * Hook that returns the value and a setter for the\n * specified property of the nearest provided\n * entity of the specified type.\n *\n * @param {string} kind  The entity kind.\n * @param {string} type  The entity type.\n * @param {string} prop  The property name.\n * @param {string} [_id] An entity ID to use instead of the context-provided one.\n *\n * @return {[*, Function]} A tuple where the first item is the\n *                          property value and the second is the\n *                          setter.\n */\n\nfunction useEntityProp(kind, type, prop, _id) {\n  var providerId = useEntityId(kind, type);\n  var id = _id !== null && _id !== void 0 ? _id : providerId;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core'),\n        getEntityRecord = _select.getEntityRecord,\n        getEditedEntityRecord = _select.getEditedEntityRecord;\n\n    var entity = getEntityRecord(kind, type, id); // Trigger resolver.\n\n    var editedEntity = getEditedEntityRecord(kind, type, id);\n    return entity && editedEntity ? {\n      value: editedEntity[prop],\n      fullValue: entity[prop]\n    } : {};\n  }, [kind, type, id, prop]),\n      value = _useSelect.value,\n      fullValue = _useSelect.fullValue;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core'),\n      editEntityRecord = _useDispatch.editEntityRecord;\n\n  var setValue = Object(external_this_wp_element_[\"useCallback\"])(function (newValue) {\n    editEntityRecord(kind, type, id, Object(defineProperty[\"a\" /* default */])({}, prop, newValue));\n  }, [kind, type, id, prop]);\n  return [value, setValue, fullValue];\n}\n/**\n * Hook that returns block content getters and setters for\n * the nearest provided entity of the specified type.\n *\n * The return value has the shape `[ blocks, onInput, onChange ]`.\n * `onInput` is for block changes that don't create undo levels\n * or dirty the post, non-persistent changes, and `onChange` is for\n * peristent changes. They map directly to the props of a\n * `BlockEditorProvider` and are intended to be used with it,\n * or similar components or hooks.\n *\n * @param {string} kind                            The entity kind.\n * @param {string} type                            The entity type.\n * @param {Object} options\n * @param {Object} [options.initialEdits]          Initial edits object for the entity record.\n * @param {string} [options.blocksProp='blocks']   The name of the entity prop that holds the blocks array.\n * @param {string} [options.contentProp='content'] The name of the entity prop that holds the serialized blocks.\n * @param {string} [options.id]                    An entity ID to use instead of the context-provided one.\n *\n * @return {[WPBlock[], Function, Function]} The block array and setters.\n */\n\nfunction useEntityBlockEditor(kind, type) {\n  var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      initialEdits = _ref2.initialEdits,\n      _ref2$blocksProp = _ref2.blocksProp,\n      blocksProp = _ref2$blocksProp === void 0 ? 'blocks' : _ref2$blocksProp,\n      _ref2$contentProp = _ref2.contentProp,\n      contentProp = _ref2$contentProp === void 0 ? 'content' : _ref2$contentProp,\n      _id = _ref2.id;\n\n  var providerId = useEntityId(kind, type);\n  var id = _id !== null && _id !== void 0 ? _id : providerId;\n\n  var _useEntityProp = useEntityProp(kind, type, contentProp, id),\n      _useEntityProp2 = Object(slicedToArray[\"a\" /* default */])(_useEntityProp, 2),\n      content = _useEntityProp2[0],\n      setContent = _useEntityProp2[1];\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core'),\n      editEntityRecord = _useDispatch2.editEntityRecord;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (initialEdits) {\n      editEntityRecord(kind, type, id, initialEdits, {\n        undoIgnore: true\n      });\n    }\n  }, [id]);\n  var initialBlocks = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    // Guard against other instances that might have\n    // set content to a function already.\n    if (content && typeof content !== 'function') {\n      var parsedContent = Object(external_this_wp_blocks_[\"parse\"])(content);\n      return parsedContent.length ? parsedContent : [];\n    }\n\n    return [];\n  }, [content]);\n\n  var _useEntityProp3 = useEntityProp(kind, type, blocksProp, id),\n      _useEntityProp4 = Object(slicedToArray[\"a\" /* default */])(_useEntityProp3, 2),\n      _useEntityProp4$ = _useEntityProp4[0],\n      blocks = _useEntityProp4$ === void 0 ? initialBlocks : _useEntityProp4$,\n      onInput = _useEntityProp4[1];\n\n  var onChange = Object(external_this_wp_element_[\"useCallback\"])(function (nextBlocks) {\n    onInput(nextBlocks); // Use a function edit to avoid serializing often.\n\n    setContent(function (_ref3) {\n      var blocksToSerialize = _ref3.blocks;\n      return Object(external_this_wp_blocks_[\"serialize\"])(blocksToSerialize);\n    });\n  }, [onInput, setContent]);\n  return [blocks, onInput, onChange];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/core-data/build-module/index.js\n\n\nfunction build_module_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction build_module_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { build_module_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n // The entity selectors/resolvers and actions are shortcuts to their generic equivalents\n// (getEntityRecord, getEntityRecords, updateEntityRecord, updateEntityRecordss)\n// Instead of getEntityRecord, the consumer could use more user-frieldly named selector: getPostType, getTaxonomy...\n// The \"kind\" and the \"name\" of the entity are combined to generate these shortcuts.\n\nvar entitySelectors = defaultEntities.reduce(function (result, entity) {\n  var kind = entity.kind,\n      name = entity.name;\n\n  result[entities_getMethodName(kind, name)] = function (state, key) {\n    return getEntityRecord(state, kind, name, key);\n  };\n\n  result[entities_getMethodName(kind, name, 'get', true)] = function (state) {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return getEntityRecords.apply(build_module_selectors_namespaceObject, [state, kind, name].concat(args));\n  };\n\n  return result;\n}, {});\nvar entityResolvers = defaultEntities.reduce(function (result, entity) {\n  var kind = entity.kind,\n      name = entity.name;\n\n  result[entities_getMethodName(kind, name)] = function (key) {\n    return resolvers_getEntityRecord(kind, name, key);\n  };\n\n  var pluralMethodName = entities_getMethodName(kind, name, 'get', true);\n\n  result[pluralMethodName] = function () {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\n    return resolvers_getEntityRecords.apply(resolvers_namespaceObject, [kind, name].concat(args));\n  };\n\n  result[pluralMethodName].shouldInvalidate = function (action) {\n    var _resolvers$getEntityR;\n\n    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      args[_key3 - 1] = arguments[_key3];\n    }\n\n    return (_resolvers$getEntityR = resolvers_getEntityRecords).shouldInvalidate.apply(_resolvers$getEntityR, [action, kind, name].concat(args));\n  };\n\n  return result;\n}, {});\nvar entityActions = defaultEntities.reduce(function (result, entity) {\n  var kind = entity.kind,\n      name = entity.name;\n\n  result[entities_getMethodName(kind, name, 'save')] = function (key) {\n    return saveEntityRecord(kind, name, key);\n  };\n\n  return result;\n}, {});\nObject(external_this_wp_data_[\"registerStore\"])(REDUCER_KEY, {\n  reducer: build_module_reducer,\n  controls: build_module_controls,\n  actions: build_module_objectSpread({}, build_module_actions_namespaceObject, {}, entityActions),\n  selectors: build_module_objectSpread({}, build_module_selectors_namespaceObject, {}, entitySelectors),\n  resolvers: build_module_objectSpread({}, resolvers_namespaceObject, {}, entityResolvers)\n});\n\n\n\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-data-controls.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"dataControls\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 409);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 409:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apiFetch\", function() { return apiFetch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"select\", function() { return select; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__unstableSyncSelect\", function() { return __unstableSyncSelect; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return dispatch; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"controls\", function() { return controls; });\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);\n/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Dispatches a control action for triggering an api fetch call.\n *\n * @param {Object} request Arguments for the fetch request.\n *\n * @example\n * ```js\n * import { apiFetch } from '@wordpress/data-controls';\n *\n * // Action generator using apiFetch\n * export function* myAction() {\n * \tconst path = '/v2/my-api/items';\n * \tconst items = yield apiFetch( { path } );\n * \t// do something with the items.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\n\nvar apiFetch = function apiFetch(request) {\n  return {\n    type: 'API_FETCH',\n    request: request\n  };\n};\n/**\n * Dispatches a control action for triggering a registry select.\n *\n * Note: when this control action is handled, it automatically considers\n * selectors that may have a resolver. It will await and return the resolved\n * value when the selector has not been resolved yet.\n *\n * @param {string} storeKey      The key for the store the selector belongs to\n * @param {string} selectorName  The name of the selector\n * @param {Array}  args          Arguments for the select.\n *\n * @example\n * ```js\n * import { select } from '@wordpress/data-controls';\n *\n * // Action generator using select\n * export function* myAction() {\n * \tconst isSidebarOpened = yield select( 'core/edit-post', 'isEditorSideBarOpened' );\n * \t// do stuff with the result from the select.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\n\nfunction select(storeKey, selectorName) {\n  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    args[_key - 2] = arguments[_key];\n  }\n\n  return {\n    type: 'SELECT',\n    storeKey: storeKey,\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Dispatches a control action for triggering a registry select.\n *\n * Note: This functions like the `select` control, but does not wait\n * for resolvers.\n *\n * @param {string} storeKey     The key for the store the selector belongs to.\n * @param {string} selectorName The name of the selector.\n * @param {Array}  args         Arguments for the select.\n *\n * @example\n * ```js\n * import { __unstableSyncSelect } from '@wordpress/data-controls';\n *\n * // Action generator using `__unstableSyncSelect`.\n * export function* myAction() {\n * \tconst isEditorSideBarOpened = yield __unstableSyncSelect( 'core/edit-post', 'isEditorSideBarOpened' );\n * \t// Do stuff with the result from the `__unstableSyncSelect`.\n * }\n * ```\n *\n * @return {Object} The control descriptor.\n */\n\nfunction __unstableSyncSelect(storeKey, selectorName) {\n  for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n    args[_key2 - 2] = arguments[_key2];\n  }\n\n  return {\n    type: 'SYNC_SELECT',\n    storeKey: storeKey,\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Dispatches a control action for triggering a registry dispatch.\n *\n * @param {string} storeKey    The key for the store the action belongs to\n * @param {string} actionName  The name of the action to dispatch\n * @param {Array}  args        Arguments for the dispatch action.\n *\n * @example\n * ```js\n * import { dispatch } from '@wordpress/data-controls';\n *\n * // Action generator using dispatch\n * export function* myAction() {\n * \tyield dispatch( 'core/edit-post', 'togglePublishSidebar' );\n * \t// do some other things.\n * }\n * ```\n *\n * @return {Object}  The control descriptor.\n */\n\nfunction dispatch(storeKey, actionName) {\n  for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n    args[_key3 - 2] = arguments[_key3];\n  }\n\n  return {\n    type: 'DISPATCH',\n    storeKey: storeKey,\n    actionName: actionName,\n    args: args\n  };\n}\n/**\n * The default export is what you use to register the controls with your custom\n * store.\n *\n * @example\n * ```js\n * // WordPress dependencies\n * import { controls } from '@wordpress/data-controls';\n * import { registerStore } from '@wordpress/data';\n *\n * // Internal dependencies\n * import reducer from './reducer';\n * import * as selectors from './selectors';\n * import * as actions from './actions';\n * import * as resolvers from './resolvers';\n *\n * registerStore( 'my-custom-store', {\n * \treducer,\n * \tcontrols,\n * \tactions,\n * \tselectors,\n * \tresolvers,\n * } );\n * ```\n *\n * @return {Object} An object for registering the default controls with the\n *                  store.\n */\n\nvar controls = {\n  API_FETCH: function API_FETCH(_ref) {\n    var request = _ref.request;\n    return _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_1___default()(request);\n  },\n  SELECT: Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__[\"createRegistryControl\"])(function (registry) {\n    return function (_ref2) {\n      var _registry;\n\n      var storeKey = _ref2.storeKey,\n          selectorName = _ref2.selectorName,\n          args = _ref2.args;\n      return (_registry = registry[registry.select(storeKey)[selectorName].hasResolver ? '__experimentalResolveSelect' : 'select'](storeKey))[selectorName].apply(_registry, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(args));\n    };\n  }),\n  SYNC_SELECT: Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__[\"createRegistryControl\"])(function (registry) {\n    return function (_ref3) {\n      var _registry$select;\n\n      var storeKey = _ref3.storeKey,\n          selectorName = _ref3.selectorName,\n          args = _ref3.args;\n      return (_registry$select = registry.select(storeKey))[selectorName].apply(_registry$select, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(args));\n    };\n  }),\n  DISPATCH: Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__[\"createRegistryControl\"])(function (registry) {\n    return function (_ref4) {\n      var _registry$dispatch;\n\n      var storeKey = _ref4.storeKey,\n          actionName = _ref4.actionName,\n          args = _ref4.args;\n      return (_registry$dispatch = registry.dispatch(storeKey))[actionName].apply(_registry$dispatch, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(args));\n    };\n  })\n};\n\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-data.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"data\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 438);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 120:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function (obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function (obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/**\n * Given an instance of EquivalentKeyMap, returns its internal value pair tuple\n * for a key, if one exists. The tuple members consist of the last reference\n * value for the key (used in efficient subsequent lookups) and the value\n * assigned for the key at the leaf node.\n *\n * @param {EquivalentKeyMap} instance EquivalentKeyMap instance.\n * @param {*} key                     The key for which to return value pair.\n *\n * @return {?Array} Value pair, if exists.\n */\nfunction getValuePair(instance, key) {\n  var _map = instance._map,\n      _arrayTreeMap = instance._arrayTreeMap,\n      _objectTreeMap = instance._objectTreeMap; // Map keeps a reference to the last object-like key used to set the\n  // value, which can be used to shortcut immediately to the value.\n\n  if (_map.has(key)) {\n    return _map.get(key);\n  } // Sort keys to ensure stable retrieval from tree.\n\n\n  var properties = Object.keys(key).sort(); // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n  var map = Array.isArray(key) ? _arrayTreeMap : _objectTreeMap;\n\n  for (var i = 0; i < properties.length; i++) {\n    var property = properties[i];\n    map = map.get(property);\n\n    if (map === undefined) {\n      return;\n    }\n\n    var propertyValue = key[property];\n    map = map.get(propertyValue);\n\n    if (map === undefined) {\n      return;\n    }\n  }\n\n  var valuePair = map.get('_ekm_value');\n\n  if (!valuePair) {\n    return;\n  } // If reached, it implies that an object-like key was set with another\n  // reference, so delete the reference and replace with the current.\n\n\n  _map.delete(valuePair[0]);\n\n  valuePair[0] = key;\n  map.set('_ekm_value', valuePair);\n\n  _map.set(key, valuePair);\n\n  return valuePair;\n}\n/**\n * Variant of a Map object which enables lookup by equivalent (deeply equal)\n * object and array keys.\n */\n\n\nvar EquivalentKeyMap =\n/*#__PURE__*/\nfunction () {\n  /**\n   * Constructs a new instance of EquivalentKeyMap.\n   *\n   * @param {Iterable.<*>} iterable Initial pair of key, value for map.\n   */\n  function EquivalentKeyMap(iterable) {\n    _classCallCheck(this, EquivalentKeyMap);\n\n    this.clear();\n\n    if (iterable instanceof EquivalentKeyMap) {\n      // Map#forEach is only means of iterating with support for IE11.\n      var iterablePairs = [];\n      iterable.forEach(function (value, key) {\n        iterablePairs.push([key, value]);\n      });\n      iterable = iterablePairs;\n    }\n\n    if (iterable != null) {\n      for (var i = 0; i < iterable.length; i++) {\n        this.set(iterable[i][0], iterable[i][1]);\n      }\n    }\n  }\n  /**\n   * Accessor property returning the number of elements.\n   *\n   * @return {number} Number of elements.\n   */\n\n\n  _createClass(EquivalentKeyMap, [{\n    key: \"set\",\n\n    /**\n     * Add or update an element with a specified key and value.\n     *\n     * @param {*} key   The key of the element to add.\n     * @param {*} value The value of the element to add.\n     *\n     * @return {EquivalentKeyMap} Map instance.\n     */\n    value: function set(key, value) {\n      // Shortcut non-object-like to set on internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        this._map.set(key, value);\n\n        return this;\n      } // Sort keys to ensure stable assignment into tree.\n\n\n      var properties = Object.keys(key).sort();\n      var valuePair = [key, value]; // Tree by type to avoid conflicts on numeric object keys, empty value.\n\n      var map = Array.isArray(key) ? this._arrayTreeMap : this._objectTreeMap;\n\n      for (var i = 0; i < properties.length; i++) {\n        var property = properties[i];\n\n        if (!map.has(property)) {\n          map.set(property, new EquivalentKeyMap());\n        }\n\n        map = map.get(property);\n        var propertyValue = key[property];\n\n        if (!map.has(propertyValue)) {\n          map.set(propertyValue, new EquivalentKeyMap());\n        }\n\n        map = map.get(propertyValue);\n      } // If an _ekm_value exists, there was already an equivalent key. Before\n      // overriding, ensure that the old key reference is removed from map to\n      // avoid memory leak of accumulating equivalent keys. This is, in a\n      // sense, a poor man's WeakMap, while still enabling iterability.\n\n\n      var previousValuePair = map.get('_ekm_value');\n\n      if (previousValuePair) {\n        this._map.delete(previousValuePair[0]);\n      }\n\n      map.set('_ekm_value', valuePair);\n\n      this._map.set(key, valuePair);\n\n      return this;\n    }\n    /**\n     * Returns a specified element.\n     *\n     * @param {*} key The key of the element to return.\n     *\n     * @return {?*} The element associated with the specified key or undefined\n     *              if the key can't be found.\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      // Shortcut non-object-like to get from internal Map.\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.get(key);\n      }\n\n      var valuePair = getValuePair(this, key);\n\n      if (valuePair) {\n        return valuePair[1];\n      }\n    }\n    /**\n     * Returns a boolean indicating whether an element with the specified key\n     * exists or not.\n     *\n     * @param {*} key The key of the element to test for presence.\n     *\n     * @return {boolean} Whether an element with the specified key exists.\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      if (key === null || _typeof(key) !== 'object') {\n        return this._map.has(key);\n      } // Test on the _presence_ of the pair, not its value, as even undefined\n      // can be a valid member value for a key.\n\n\n      return getValuePair(this, key) !== undefined;\n    }\n    /**\n     * Removes the specified element.\n     *\n     * @param {*} key The key of the element to remove.\n     *\n     * @return {boolean} Returns true if an element existed and has been\n     *                   removed, or false if the element does not exist.\n     */\n\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      if (!this.has(key)) {\n        return false;\n      } // This naive implementation will leave orphaned child trees. A better\n      // implementation should traverse and remove orphans.\n\n\n      this.set(key, undefined);\n      return true;\n    }\n    /**\n     * Executes a provided function once per each key/value pair, in insertion\n     * order.\n     *\n     * @param {Function} callback Function to execute for each element.\n     * @param {*}        thisArg  Value to use as `this` when executing\n     *                            `callback`.\n     */\n\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      var _this = this;\n\n      var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n      this._map.forEach(function (value, key) {\n        // Unwrap value from object-like value pair.\n        if (key !== null && _typeof(key) === 'object') {\n          value = value[1];\n        }\n\n        callback.call(thisArg, value, key, _this);\n      });\n    }\n    /**\n     * Removes all elements.\n     */\n\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this._map = new Map();\n      this._arrayTreeMap = new Map();\n      this._objectTreeMap = new Map();\n    }\n  }, {\n    key: \"size\",\n    get: function get() {\n      return this._map.size;\n    }\n  }]);\n\n  return EquivalentKeyMap;\n}();\n\nmodule.exports = EquivalentKeyMap;\n\n\n/***/ }),\n\n/***/ 121:\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 144:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"priorityQueue\"]; }());\n\n/***/ }),\n\n/***/ 157:\n/***/ (function(module, exports) {\n\nfunction combineReducers( reducers ) {\n\tvar keys = Object.keys( reducers ),\n\t\tgetNextState;\n\n\tgetNextState = ( function() {\n\t\tvar fn, i, key;\n\n\t\tfn = 'return {';\n\t\tfor ( i = 0; i < keys.length; i++ ) {\n\t\t\t// Rely on Quoted escaping of JSON.stringify with guarantee that\n\t\t\t// each member of Object.keys is a string.\n\t\t\t//\n\t\t\t// \"If Type(value) is String, then return the result of calling the\n\t\t\t// abstract operation Quote with argument value. [...] The abstract\n\t\t\t// operation Quote(value) wraps a String value in double quotes and\n\t\t\t// escapes characters within it.\"\n\t\t\t//\n\t\t\t// https://www.ecma-international.org/ecma-262/5.1/#sec-15.12.3\n\t\t\tkey = JSON.stringify( keys[ i ] );\n\n\t\t\tfn += key + ':r[' + key + '](s[' + key + '],a),';\n\t\t}\n\t\tfn += '}';\n\n\t\treturn new Function( 'r,s,a', fn );\n\t} )();\n\n\treturn function combinedReducer( state, action ) {\n\t\tvar nextState, i, key;\n\n\t\t// Assumed changed if initial state.\n\t\tif ( state === undefined ) {\n\t\t\treturn getNextState( reducers, {}, action );\n\t\t}\n\n\t\tnextState = getNextState( reducers, state, action );\n\n\t\t// Determine whether state has changed.\n\t\ti = keys.length;\n\t\twhile ( i-- ) {\n\t\t\tkey = keys[ i ];\n\t\t\tif ( state[ key ] !== nextState[ key ] ) {\n\t\t\t\t// Return immediately if a changed value is encountered.\n\t\t\t\treturn nextState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t};\n}\n\nmodule.exports = combineReducers;\n\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 190:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(270);\n/* global window */\n\n\nvar root;\n\nif (typeof self !== 'undefined') {\n  root = self;\n} else if (typeof window !== 'undefined') {\n  root = window;\n} else if (typeof global !== 'undefined') {\n  root = global;\n} else if (true) {\n  root = module;\n} else {}\n\nvar result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(root);\n/* harmony default export */ __webpack_exports__[\"a\"] = (result);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(121), __webpack_require__(408)(module)))\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 268:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"reduxRoutine\"]; }());\n\n/***/ }),\n\n/***/ 269:\n/***/ (function(module, exports) {\n\nmodule.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n\n\n/***/ }),\n\n/***/ 270:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return symbolObservablePonyfill; });\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 408:\n/***/ (function(module, exports) {\n\nmodule.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"withSelect\", function() { return /* reexport */ with_select; });\n__webpack_require__.d(__webpack_exports__, \"withDispatch\", function() { return /* reexport */ with_dispatch; });\n__webpack_require__.d(__webpack_exports__, \"withRegistry\", function() { return /* reexport */ with_registry; });\n__webpack_require__.d(__webpack_exports__, \"RegistryProvider\", function() { return /* reexport */ context; });\n__webpack_require__.d(__webpack_exports__, \"RegistryConsumer\", function() { return /* reexport */ RegistryConsumer; });\n__webpack_require__.d(__webpack_exports__, \"useRegistry\", function() { return /* reexport */ useRegistry; });\n__webpack_require__.d(__webpack_exports__, \"useSelect\", function() { return /* reexport */ useSelect; });\n__webpack_require__.d(__webpack_exports__, \"useDispatch\", function() { return /* reexport */ use_dispatch; });\n__webpack_require__.d(__webpack_exports__, \"__unstableUseDispatchWithMap\", function() { return /* reexport */ use_dispatch_with_map; });\n__webpack_require__.d(__webpack_exports__, \"AsyncModeProvider\", function() { return /* reexport */ async_mode_provider_context; });\n__webpack_require__.d(__webpack_exports__, \"createRegistry\", function() { return /* reexport */ createRegistry; });\n__webpack_require__.d(__webpack_exports__, \"createRegistrySelector\", function() { return /* reexport */ createRegistrySelector; });\n__webpack_require__.d(__webpack_exports__, \"createRegistryControl\", function() { return /* reexport */ createRegistryControl; });\n__webpack_require__.d(__webpack_exports__, \"plugins\", function() { return /* reexport */ plugins_namespaceObject; });\n__webpack_require__.d(__webpack_exports__, \"combineReducers\", function() { return /* reexport */ turbo_combine_reducers_default.a; });\n__webpack_require__.d(__webpack_exports__, \"select\", function() { return /* binding */ build_module_select; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalResolveSelect\", function() { return /* binding */ build_module_experimentalResolveSelect; });\n__webpack_require__.d(__webpack_exports__, \"dispatch\", function() { return /* binding */ build_module_dispatch; });\n__webpack_require__.d(__webpack_exports__, \"subscribe\", function() { return /* binding */ build_module_subscribe; });\n__webpack_require__.d(__webpack_exports__, \"registerGenericStore\", function() { return /* binding */ build_module_registerGenericStore; });\n__webpack_require__.d(__webpack_exports__, \"registerStore\", function() { return /* binding */ build_module_registerStore; });\n__webpack_require__.d(__webpack_exports__, \"use\", function() { return /* binding */ build_module_use; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getIsResolving\", function() { return getIsResolving; });\n__webpack_require__.d(selectors_namespaceObject, \"hasStartedResolution\", function() { return hasStartedResolution; });\n__webpack_require__.d(selectors_namespaceObject, \"hasFinishedResolution\", function() { return hasFinishedResolution; });\n__webpack_require__.d(selectors_namespaceObject, \"isResolving\", function() { return isResolving; });\n__webpack_require__.d(selectors_namespaceObject, \"getCachedResolvers\", function() { return getCachedResolvers; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"startResolution\", function() { return startResolution; });\n__webpack_require__.d(actions_namespaceObject, \"finishResolution\", function() { return finishResolution; });\n__webpack_require__.d(actions_namespaceObject, \"invalidateResolution\", function() { return invalidateResolution; });\n__webpack_require__.d(actions_namespaceObject, \"invalidateResolutionForStore\", function() { return invalidateResolutionForStore; });\n__webpack_require__.d(actions_namespaceObject, \"invalidateResolutionForStoreSelector\", function() { return invalidateResolutionForStoreSelector; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/data/build-module/plugins/index.js\nvar plugins_namespaceObject = {};\n__webpack_require__.r(plugins_namespaceObject);\n__webpack_require__.d(plugins_namespaceObject, \"controls\", function() { return controls; });\n__webpack_require__.d(plugins_namespaceObject, \"persistence\", function() { return plugins_persistence; });\n\n// EXTERNAL MODULE: ./node_modules/turbo-combine-reducers/index.js\nvar turbo_combine_reducers = __webpack_require__(157);\nvar turbo_combine_reducers_default = /*#__PURE__*/__webpack_require__.n(turbo_combine_reducers);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: ./node_modules/symbol-observable/es/index.js\nvar es = __webpack_require__(190);\n\n// CONCATENATED MODULE: ./node_modules/redux/es/redux.js\n\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n  return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n  INIT: \"@@redux/INIT\" + randomString(),\n  REPLACE: \"@@redux/REPLACE\" + randomString(),\n  PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n    return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n  }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n  if (typeof obj !== 'object' || obj === null) return false;\n  var proto = obj;\n\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n\n  return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n  var _ref2;\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n  }\n\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = preloadedState;\n    preloadedState = undefined;\n  }\n\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error('Expected the enhancer to be a function.');\n    }\n\n    return enhancer(createStore)(reducer, preloadedState);\n  }\n\n  if (typeof reducer !== 'function') {\n    throw new Error('Expected the reducer to be a function.');\n  }\n\n  var currentReducer = reducer;\n  var currentState = preloadedState;\n  var currentListeners = [];\n  var nextListeners = currentListeners;\n  var isDispatching = false;\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = currentListeners.slice();\n    }\n  }\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns {any} The current state tree of your application.\n   */\n\n\n  function getState() {\n    if (isDispatching) {\n      throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n\n    return currentState;\n  }\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param {Function} listener A callback to be invoked on every dispatch.\n   * @returns {Function} A function to remove this change listener.\n   */\n\n\n  function subscribe(listener) {\n    if (typeof listener !== 'function') {\n      throw new Error('Expected the listener to be a function.');\n    }\n\n    if (isDispatching) {\n      throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n    }\n\n    var isSubscribed = true;\n    ensureCanMutateNextListeners();\n    nextListeners.push(listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n\n      if (isDispatching) {\n        throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n      }\n\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      var index = nextListeners.indexOf(listener);\n      nextListeners.splice(index, 1);\n      currentListeners = null;\n    };\n  }\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param {Object} action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns {Object} For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n\n\n  function dispatch(action) {\n    if (!isPlainObject(action)) {\n      throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n    }\n\n    if (typeof action.type === 'undefined') {\n      throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n    }\n\n    if (isDispatching) {\n      throw new Error('Reducers may not dispatch actions.');\n    }\n\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n\n    var listeners = currentListeners = nextListeners;\n\n    for (var i = 0; i < listeners.length; i++) {\n      var listener = listeners[i];\n      listener();\n    }\n\n    return action;\n  }\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param {Function} nextReducer The reducer for the store to use instead.\n   * @returns {void}\n   */\n\n\n  function replaceReducer(nextReducer) {\n    if (typeof nextReducer !== 'function') {\n      throw new Error('Expected the nextReducer to be a function.');\n    }\n\n    currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n\n    dispatch({\n      type: ActionTypes.REPLACE\n    });\n  }\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns {observable} A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n\n\n  function observable() {\n    var _ref;\n\n    var outerSubscribe = subscribe;\n    return _ref = {\n      /**\n       * The minimal observable subscription method.\n       * @param {Object} observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns {subscription} An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe: function subscribe(observer) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new TypeError('Expected the observer to be an object.');\n        }\n\n        function observeState() {\n          if (observer.next) {\n            observer.next(getState());\n          }\n        }\n\n        observeState();\n        var unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe: unsubscribe\n        };\n      }\n    }, _ref[es[\"a\" /* default */]] = function () {\n      return this;\n    }, _ref;\n  } // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n\n\n  dispatch({\n    type: ActionTypes.INIT\n  });\n  return _ref2 = {\n    dispatch: dispatch,\n    subscribe: subscribe,\n    getState: getState,\n    replaceReducer: replaceReducer\n  }, _ref2[es[\"a\" /* default */]] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n  /* eslint-disable no-console */\n  if (typeof console !== 'undefined' && typeof console.error === 'function') {\n    console.error(message);\n  }\n  /* eslint-enable no-console */\n\n\n  try {\n    // This error was thrown as a convenience so that if you enable\n    // \"break on all exceptions\" in your console,\n    // it would pause the execution at this line.\n    throw new Error(message);\n  } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n  var actionType = action && action.type;\n  var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n  return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n  var reducerKeys = Object.keys(reducers);\n  var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n\n  if (!isPlainObject(inputState)) {\n    return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n  }\n\n  var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n    return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n  });\n  unexpectedKeys.forEach(function (key) {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n\n  if (unexpectedKeys.length > 0) {\n    return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n  }\n}\n\nfunction assertReducerShape(reducers) {\n  Object.keys(reducers).forEach(function (key) {\n    var reducer = reducers[key];\n    var initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n\n    if (typeof initialState === 'undefined') {\n      throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n    }\n\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n    }\n  });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n  var reducerKeys = Object.keys(reducers);\n  var finalReducers = {};\n\n  for (var i = 0; i < reducerKeys.length; i++) {\n    var key = reducerKeys[i];\n\n    if (false) {}\n\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n\n  var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n  // keys multiple times.\n\n  var unexpectedKeyCache;\n\n  if (false) {}\n\n  var shapeAssertionError;\n\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n\n  return function combination(state, action) {\n    if (state === void 0) {\n      state = {};\n    }\n\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n\n    if (false) { var warningMessage; }\n\n    var hasChanged = false;\n    var nextState = {};\n\n    for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n      var _key = finalReducerKeys[_i];\n      var reducer = finalReducers[_key];\n      var previousStateForKey = state[_key];\n      var nextStateForKey = reducer(previousStateForKey, action);\n\n      if (typeof nextStateForKey === 'undefined') {\n        var errorMessage = getUndefinedStateErrorMessage(_key, action);\n        throw new Error(errorMessage);\n      }\n\n      nextState[_key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n  return function () {\n    return dispatch(actionCreator.apply(this, arguments));\n  };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n  if (typeof actionCreators === 'function') {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n\n  if (typeof actionCreators !== 'object' || actionCreators === null) {\n    throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n  }\n\n  var boundActionCreators = {};\n\n  for (var key in actionCreators) {\n    var actionCreator = actionCreators[key];\n\n    if (typeof actionCreator === 'function') {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n\n  return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n  }\n\n  if (enumerableOnly) keys = keys.filter(function (sym) {\n    return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n  });\n  return keys;\n}\n\nfunction _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(source, true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(source).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n  for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n    funcs[_key] = arguments[_key];\n  }\n\n  if (funcs.length === 0) {\n    return function (arg) {\n      return arg;\n    };\n  }\n\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n\n  return funcs.reduce(function (a, b) {\n    return function () {\n      return a(b.apply(void 0, arguments));\n    };\n  });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n  for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n    middlewares[_key] = arguments[_key];\n  }\n\n  return function (createStore) {\n    return function () {\n      var store = createStore.apply(void 0, arguments);\n\n      var _dispatch = function dispatch() {\n        throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n      };\n\n      var middlewareAPI = {\n        getState: store.getState,\n        dispatch: function dispatch() {\n          return _dispatch.apply(void 0, arguments);\n        }\n      };\n      var chain = middlewares.map(function (middleware) {\n        return middleware(middlewareAPI);\n      });\n      _dispatch = compose.apply(void 0, chain)(store.dispatch);\n      return _objectSpread2({}, store, {\n        dispatch: _dispatch\n      });\n    };\n  };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (false) {}\n\n\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"reduxRoutine\"]}\nvar external_this_wp_reduxRoutine_ = __webpack_require__(268);\nvar external_this_wp_reduxRoutine_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_reduxRoutine_);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/data/node_modules/is-promise/index.js\nvar is_promise = __webpack_require__(269);\nvar is_promise_default = /*#__PURE__*/__webpack_require__.n(is_promise);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/promise-middleware.js\n/**\n * External dependencies\n */\n\n/**\n * Simplest possible promise redux middleware.\n *\n * @return {Function} middleware.\n */\n\nvar promise_middleware_promiseMiddleware = function promiseMiddleware() {\n  return function (next) {\n    return function (action) {\n      if (is_promise_default()(action)) {\n        return action.then(function (resolvedAction) {\n          if (resolvedAction) {\n            return next(resolvedAction);\n          }\n        });\n      }\n\n      return next(action);\n    };\n  };\n};\n\n/* harmony default export */ var promise_middleware = (promise_middleware_promiseMiddleware);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/resolvers-cache-middleware.js\n\n\n\n/**\n * External dependencies\n */\n\n/** @typedef {import('./registry').WPDataRegistry} WPDataRegistry */\n\n/**\n * Creates a middleware handling resolvers cache invalidation.\n *\n * @param {WPDataRegistry} registry   The registry reference for which to create\n *                                    the middleware.\n * @param {string}         reducerKey The namespace for which to create the\n *                                    middleware.\n *\n * @return {Function} Middleware function.\n */\n\nvar resolvers_cache_middleware_createResolversCacheMiddleware = function createResolversCacheMiddleware(registry, reducerKey) {\n  return function () {\n    return function (next) {\n      return function (action) {\n        var resolvers = registry.select('core/data').getCachedResolvers(reducerKey);\n        Object.entries(resolvers).forEach(function (_ref) {\n          var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n              selectorName = _ref2[0],\n              resolversByArgs = _ref2[1];\n\n          var resolver = Object(external_this_lodash_[\"get\"])(registry.stores, [reducerKey, 'resolvers', selectorName]);\n\n          if (!resolver || !resolver.shouldInvalidate) {\n            return;\n          }\n\n          resolversByArgs.forEach(function (value, args) {\n            // resolversByArgs is the map Map([ args ] => boolean) storing the cache resolution status for a given selector.\n            // If the value is false it means this resolver has finished its resolution which means we need to invalidate it,\n            // if it's true it means it's inflight and the invalidation is not necessary.\n            if (value !== false || !resolver.shouldInvalidate.apply(resolver, [action].concat(Object(toConsumableArray[\"a\" /* default */])(args)))) {\n              return;\n            } // Trigger cache invalidation\n\n\n            registry.dispatch('core/data').invalidateResolution(reducerKey, selectorName, args);\n          });\n        });\n        return next(action);\n      };\n    };\n  };\n};\n\n/* harmony default export */ var resolvers_cache_middleware = (resolvers_cache_middleware_createResolversCacheMiddleware);\n\n// EXTERNAL MODULE: ./node_modules/equivalent-key-map/equivalent-key-map.js\nvar equivalent_key_map = __webpack_require__(120);\nvar equivalent_key_map_default = /*#__PURE__*/__webpack_require__.n(equivalent_key_map);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/utils.js\n\n\nfunction utils_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { utils_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { utils_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param {string} actionProperty Action property by which to key object.\n *\n * @return {Function} Higher-order reducer.\n */\nvar utils_onSubKey = function onSubKey(actionProperty) {\n  return function (reducer) {\n    return function () {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n      // Retrieve subkey from action. Do not track if undefined; useful for cases\n      // where reducer is scoped by action shape.\n      var key = action[actionProperty];\n\n      if (key === undefined) {\n        return state;\n      } // Avoid updating state if unchanged. Note that this also accounts for a\n      // reducer which returns undefined on a key which is not yet tracked.\n\n\n      var nextKeyState = reducer(state[key], action);\n\n      if (nextKeyState === state[key]) {\n        return state;\n      }\n\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, key, nextKeyState));\n    };\n  };\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/reducer.js\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Reducer function returning next state for selector resolution of\n * subkeys, object form:\n *\n *  selectorName -> EquivalentKeyMap<Array,boolean>\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Next state.\n */\n\nvar subKeysIsResolved = Object(external_this_lodash_[\"flowRight\"])([utils_onSubKey('selectorName')])(function () {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new equivalent_key_map_default.a();\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'START_RESOLUTION':\n    case 'FINISH_RESOLUTION':\n      {\n        var isStarting = action.type === 'START_RESOLUTION';\n        var nextState = new equivalent_key_map_default.a(state);\n        nextState.set(action.args, isStarting);\n        return nextState;\n      }\n\n    case 'INVALIDATE_RESOLUTION':\n      {\n        var _nextState = new equivalent_key_map_default.a(state);\n\n        _nextState.delete(action.args);\n\n        return _nextState;\n      }\n  }\n\n  return state;\n});\n/**\n * Reducer function returning next state for selector resolution, object form:\n *\n *   selectorName -> EquivalentKeyMap<Array, boolean>\n *\n * @param {Object} state   Current state.\n * @param {Object} action  Dispatched action.\n *\n * @return {Object} Next state.\n */\n\nvar reducer_isResolved = function isResolved() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'INVALIDATE_RESOLUTION_FOR_STORE':\n      return {};\n\n    case 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR':\n      return Object(external_this_lodash_[\"has\"])(state, [action.selectorName]) ? Object(external_this_lodash_[\"omit\"])(state, [action.selectorName]) : state;\n\n    case 'START_RESOLUTION':\n    case 'FINISH_RESOLUTION':\n    case 'INVALIDATE_RESOLUTION':\n      return subKeysIsResolved(state, action);\n  }\n\n  return state;\n};\n\n/* harmony default export */ var metadata_reducer = (reducer_isResolved);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/selectors.js\n/**\n * External dependencies\n */\n\n/**\n * Returns the raw `isResolving` value for a given selector name,\n * and arguments set. May be undefined if the selector has never been resolved\n * or not resolved for the given set of arguments, otherwise true or false for\n * resolution started and completed respectively.\n *\n * @param {Object} state        Data state.\n * @param {string} selectorName Selector name.\n * @param {Array}  args         Arguments passed to selector.\n *\n * @return {?boolean} isResolving value.\n */\n\nfunction getIsResolving(state, selectorName, args) {\n  var map = Object(external_this_lodash_[\"get\"])(state, [selectorName]);\n\n  if (!map) {\n    return;\n  }\n\n  return map.get(args);\n}\n/**\n * Returns true if resolution has already been triggered for a given\n * selector name, and arguments set.\n *\n * @param {Object} state        Data state.\n * @param {string} selectorName Selector name.\n * @param {?Array} args         Arguments passed to selector (default `[]`).\n *\n * @return {boolean} Whether resolution has been triggered.\n */\n\nfunction hasStartedResolution(state, selectorName) {\n  var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  return getIsResolving(state, selectorName, args) !== undefined;\n}\n/**\n * Returns true if resolution has completed for a given selector\n * name, and arguments set.\n *\n * @param {Object} state        Data state.\n * @param {string} selectorName Selector name.\n * @param {?Array} args         Arguments passed to selector.\n *\n * @return {boolean} Whether resolution has completed.\n */\n\nfunction hasFinishedResolution(state, selectorName) {\n  var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  return getIsResolving(state, selectorName, args) === false;\n}\n/**\n * Returns true if resolution has been triggered but has not yet completed for\n * a given selector name, and arguments set.\n *\n * @param {Object} state        Data state.\n * @param {string} selectorName Selector name.\n * @param {?Array} args         Arguments passed to selector.\n *\n * @return {boolean} Whether resolution is in progress.\n */\n\nfunction isResolving(state, selectorName) {\n  var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  return getIsResolving(state, selectorName, args) === true;\n}\n/**\n * Returns the list of the cached resolvers.\n *\n * @param {Object} state      Data state.\n *\n * @return {Object} Resolvers mapped by args and selectorName.\n */\n\nfunction getCachedResolvers(state) {\n  return state;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/namespace-store/metadata/actions.js\n/**\n * Returns an action object used in signalling that selector resolution has\n * started.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {...*}   args         Arguments to associate for uniqueness.\n *\n * @return {Object} Action object.\n */\nfunction startResolution(selectorName, args) {\n  return {\n    type: 'START_RESOLUTION',\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Returns an action object used in signalling that selector resolution has\n * completed.\n *\n * @param {string} selectorName Name of selector for which resolver triggered.\n * @param {...*}   args         Arguments to associate for uniqueness.\n *\n * @return {Object} Action object.\n */\n\nfunction finishResolution(selectorName, args) {\n  return {\n    type: 'FINISH_RESOLUTION',\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Returns an action object used in signalling that we should invalidate the resolution cache.\n *\n * @param {string} selectorName Name of selector for which resolver should be invalidated.\n * @param {Array}  args         Arguments to associate for uniqueness.\n *\n * @return {Object} Action object.\n */\n\nfunction invalidateResolution(selectorName, args) {\n  return {\n    type: 'INVALIDATE_RESOLUTION',\n    selectorName: selectorName,\n    args: args\n  };\n}\n/**\n * Returns an action object used in signalling that the resolution\n * should be invalidated.\n *\n * @return {Object} Action object.\n */\n\nfunction invalidateResolutionForStore() {\n  return {\n    type: 'INVALIDATE_RESOLUTION_FOR_STORE'\n  };\n}\n/**\n * Returns an action object used in signalling that the resolution cache for a\n * given selectorName should be invalidated.\n *\n * @param {string} selectorName Name of selector for which all resolvers should\n *                              be invalidated.\n *\n * @return  {Object} Action object.\n */\n\nfunction invalidateResolutionForStoreSelector(selectorName) {\n  return {\n    type: 'INVALIDATE_RESOLUTION_FOR_STORE_SELECTOR',\n    selectorName: selectorName\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/namespace-store/index.js\n\n\n\n\nfunction namespace_store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction namespace_store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { namespace_store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { namespace_store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/**\n * @typedef {WPDataRegistry} WPDataRegistry\n */\n\n/**\n * Creates a namespace object with a store derived from the reducer given.\n *\n * @param {string}         key      Unique namespace identifier.\n * @param {Object}         options  Registered store options, with properties\n *                                  describing reducer, actions, selectors, and\n *                                  resolvers.\n * @param {WPDataRegistry} registry Registry reference.\n *\n * @return {Object} Store Object.\n */\n\nfunction createNamespace(key, options, registry) {\n  var reducer = options.reducer;\n  var store = createReduxStore(key, options, registry);\n  var resolvers;\n  var actions = mapActions(namespace_store_objectSpread({}, actions_namespaceObject, {}, options.actions), store);\n  var selectors = mapSelectors(namespace_store_objectSpread({}, Object(external_this_lodash_[\"mapValues\"])(selectors_namespaceObject, function (selector) {\n    return function (state) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return selector.apply(void 0, [state.metadata].concat(args));\n    };\n  }), {}, Object(external_this_lodash_[\"mapValues\"])(options.selectors, function (selector) {\n    if (selector.isRegistrySelector) {\n      selector.registry = registry;\n    }\n\n    return function (state) {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      return selector.apply(void 0, [state.root].concat(args));\n    };\n  })), store);\n\n  if (options.resolvers) {\n    var result = mapResolvers(options.resolvers, selectors, store);\n    resolvers = result.resolvers;\n    selectors = result.selectors;\n  }\n\n  var getSelectors = function getSelectors() {\n    return selectors;\n  };\n\n  var getActions = function getActions() {\n    return actions;\n  }; // We have some modules monkey-patching the store object\n  // It's wrong to do so but until we refactor all of our effects to controls\n  // We need to keep the same \"store\" instance here.\n\n\n  store.__unstableOriginalGetState = store.getState;\n\n  store.getState = function () {\n    return store.__unstableOriginalGetState().root;\n  }; // Customize subscribe behavior to call listeners only on effective change,\n  // not on every dispatch.\n\n\n  var subscribe = store && function (listener) {\n    var lastState = store.__unstableOriginalGetState();\n\n    store.subscribe(function () {\n      var state = store.__unstableOriginalGetState();\n\n      var hasChanged = state !== lastState;\n      lastState = state;\n\n      if (hasChanged) {\n        listener();\n      }\n    });\n  }; // This can be simplified to just { subscribe, getSelectors, getActions }\n  // Once we remove the use function.\n\n\n  return {\n    reducer: reducer,\n    store: store,\n    actions: actions,\n    selectors: selectors,\n    resolvers: resolvers,\n    getSelectors: getSelectors,\n    getActions: getActions,\n    subscribe: subscribe\n  };\n}\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string}         key      Unique namespace identifier.\n * @param {Object}         options  Registered store options, with properties\n *                                  describing reducer, actions, selectors, and\n *                                  resolvers.\n * @param {WPDataRegistry} registry Registry reference.\n *\n * @return {Object} Newly created redux store.\n */\n\nfunction createReduxStore(key, options, registry) {\n  var middlewares = [resolvers_cache_middleware(registry, key), promise_middleware];\n\n  if (options.controls) {\n    var normalizedControls = Object(external_this_lodash_[\"mapValues\"])(options.controls, function (control) {\n      return control.isRegistryControl ? control(registry) : control;\n    });\n    middlewares.push(external_this_wp_reduxRoutine_default()(normalizedControls));\n  }\n\n  var enhancers = [applyMiddleware.apply(void 0, middlewares)];\n\n  if (typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__) {\n    enhancers.push(window.__REDUX_DEVTOOLS_EXTENSION__({\n      name: key,\n      instanceId: key\n    }));\n  }\n\n  var reducer = options.reducer,\n      initialState = options.initialState;\n  var enhancedReducer = turbo_combine_reducers_default()({\n    metadata: metadata_reducer,\n    root: reducer\n  });\n  return createStore(enhancedReducer, {\n    root: initialState\n  }, Object(external_this_lodash_[\"flowRight\"])(enhancers));\n}\n/**\n * Maps selectors to a store.\n *\n * @param {Object} selectors Selectors to register. Keys will be used as the\n *                           public facing API. Selectors will get passed the\n *                           state as first argument.\n * @param {Object} store     The store to which the selectors should be mapped.\n *\n * @return {Object} Selectors mapped to the provided store.\n */\n\n\nfunction mapSelectors(selectors, store) {\n  var createStateSelector = function createStateSelector(registrySelector) {\n    var selector = function runSelector() {\n      // This function is an optimized implementation of:\n      //\n      //   selector( store.getState(), ...arguments )\n      //\n      // Where the above would incur an `Array#concat` in its application,\n      // the logic here instead efficiently constructs an arguments array via\n      // direct assignment.\n      var argsLength = arguments.length;\n      var args = new Array(argsLength + 1);\n      args[0] = store.__unstableOriginalGetState();\n\n      for (var i = 0; i < argsLength; i++) {\n        args[i + 1] = arguments[i];\n      }\n\n      return registrySelector.apply(void 0, args);\n    };\n\n    selector.hasResolver = false;\n    return selector;\n  };\n\n  return Object(external_this_lodash_[\"mapValues\"])(selectors, createStateSelector);\n}\n/**\n * Maps actions to dispatch from a given store.\n *\n * @param {Object} actions    Actions to register.\n * @param {Object} store      The redux store to which the actions should be mapped.\n * @return {Object}           Actions mapped to the redux store provided.\n */\n\n\nfunction mapActions(actions, store) {\n  var createBoundAction = function createBoundAction(action) {\n    return function () {\n      return Promise.resolve(store.dispatch(action.apply(void 0, arguments)));\n    };\n  };\n\n  return Object(external_this_lodash_[\"mapValues\"])(actions, createBoundAction);\n}\n/**\n * Returns resolvers with matched selectors for a given namespace.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} resolvers   Resolvers to register.\n * @param {Object} selectors   The current selectors to be modified.\n * @param {Object} store       The redux store to which the resolvers should be mapped.\n * @return {Object}            An object containing updated selectors and resolvers.\n */\n\n\nfunction mapResolvers(resolvers, selectors, store) {\n  var mappedResolvers = Object(external_this_lodash_[\"mapValues\"])(resolvers, function (resolver) {\n    var _resolver$fulfill = resolver.fulfill,\n        resolverFulfill = _resolver$fulfill === void 0 ? resolver : _resolver$fulfill;\n    return namespace_store_objectSpread({}, resolver, {\n      fulfill: resolverFulfill\n    });\n  });\n\n  var mapSelector = function mapSelector(selector, selectorName) {\n    var resolver = resolvers[selectorName];\n\n    if (!resolver) {\n      selector.hasResolver = false;\n      return selector;\n    }\n\n    var selectorResolver = function selectorResolver() {\n      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        args[_key3] = arguments[_key3];\n      }\n\n      function fulfillSelector() {\n        return _fulfillSelector.apply(this, arguments);\n      }\n\n      function _fulfillSelector() {\n        _fulfillSelector = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee() {\n          var state, _store$__unstableOrig, metadata;\n\n          return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n            while (1) {\n              switch (_context.prev = _context.next) {\n                case 0:\n                  state = store.getState();\n\n                  if (!(typeof resolver.isFulfilled === 'function' && resolver.isFulfilled.apply(resolver, [state].concat(args)))) {\n                    _context.next = 3;\n                    break;\n                  }\n\n                  return _context.abrupt(\"return\");\n\n                case 3:\n                  _store$__unstableOrig = store.__unstableOriginalGetState(), metadata = _store$__unstableOrig.metadata;\n\n                  if (!hasStartedResolution(metadata, selectorName, args)) {\n                    _context.next = 6;\n                    break;\n                  }\n\n                  return _context.abrupt(\"return\");\n\n                case 6:\n                  store.dispatch(startResolution(selectorName, args));\n                  _context.next = 9;\n                  return fulfillResolver.apply(void 0, [store, mappedResolvers, selectorName].concat(args));\n\n                case 9:\n                  store.dispatch(finishResolution(selectorName, args));\n\n                case 10:\n                case \"end\":\n                  return _context.stop();\n              }\n            }\n          }, _callee);\n        }));\n        return _fulfillSelector.apply(this, arguments);\n      }\n\n      fulfillSelector.apply(void 0, args);\n      return selector.apply(void 0, args);\n    };\n\n    selectorResolver.hasResolver = true;\n    return selectorResolver;\n  };\n\n  return {\n    resolvers: mappedResolvers,\n    selectors: Object(external_this_lodash_[\"mapValues\"])(selectors, mapSelector)\n  };\n}\n/**\n * Calls a resolver given arguments\n *\n * @param {Object} store        Store reference, for fulfilling via resolvers\n * @param {Object} resolvers    Store Resolvers\n * @param {string} selectorName Selector name to fulfill.\n * @param {Array} args          Selector Arguments.\n */\n\n\nfunction fulfillResolver(_x, _x2, _x3) {\n  return _fulfillResolver.apply(this, arguments);\n}\n\nfunction _fulfillResolver() {\n  _fulfillResolver = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee2(store, resolvers, selectorName) {\n    var resolver,\n        _len4,\n        args,\n        _key4,\n        action,\n        _args2 = arguments;\n\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            resolver = Object(external_this_lodash_[\"get\"])(resolvers, [selectorName]);\n\n            if (resolver) {\n              _context2.next = 3;\n              break;\n            }\n\n            return _context2.abrupt(\"return\");\n\n          case 3:\n            for (_len4 = _args2.length, args = new Array(_len4 > 3 ? _len4 - 3 : 0), _key4 = 3; _key4 < _len4; _key4++) {\n              args[_key4 - 3] = _args2[_key4];\n            }\n\n            action = resolver.fulfill.apply(resolver, args);\n\n            if (!action) {\n              _context2.next = 8;\n              break;\n            }\n\n            _context2.next = 8;\n            return store.dispatch(action);\n\n          case 8:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2);\n  }));\n  return _fulfillResolver.apply(this, arguments);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/store/index.js\n\n\nfunction store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCoreDataStore(registry) {\n  var getCoreDataSelector = function getCoreDataSelector(selectorName) {\n    return function (reducerKey) {\n      var _registry$select;\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return (_registry$select = registry.select(reducerKey))[selectorName].apply(_registry$select, args);\n    };\n  };\n\n  var getCoreDataAction = function getCoreDataAction(actionName) {\n    return function (reducerKey) {\n      var _registry$dispatch;\n\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      return (_registry$dispatch = registry.dispatch(reducerKey))[actionName].apply(_registry$dispatch, args);\n    };\n  };\n\n  return {\n    getSelectors: function getSelectors() {\n      return ['getIsResolving', 'hasStartedResolution', 'hasFinishedResolution', 'isResolving', 'getCachedResolvers'].reduce(function (memo, selectorName) {\n        return store_objectSpread({}, memo, Object(defineProperty[\"a\" /* default */])({}, selectorName, getCoreDataSelector(selectorName)));\n      }, {});\n    },\n    getActions: function getActions() {\n      return ['startResolution', 'finishResolution', 'invalidateResolution', 'invalidateResolutionForStore', 'invalidateResolutionForStoreSelector'].reduce(function (memo, actionName) {\n        return store_objectSpread({}, memo, Object(defineProperty[\"a\" /* default */])({}, actionName, getCoreDataAction(actionName)));\n      }, {});\n    },\n    subscribe: function subscribe() {\n      // There's no reasons to trigger any listener when we subscribe to this store\n      // because there's no state stored in this store that need to retrigger selectors\n      // if a change happens, the corresponding store where the tracking stated live\n      // would have already triggered a \"subscribe\" call.\n      return function () {};\n    }\n  };\n}\n\n/* harmony default export */ var build_module_store = (createCoreDataStore);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/registry.js\n\n\n\nfunction registry_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction registry_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { registry_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { registry_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n *                                           object, registers a new generic\n *                                           store.\n * @property {Function} registerStore        Given a namespace key and settings\n *                                           object, registers a new namespace\n *                                           store.\n * @property {Function} subscribe            Given a function callback, invokes\n *                                           the callback on any change to state\n *                                           within any registered store.\n * @property {Function} select               Given a namespace key, returns an\n *                                           object of the  store's registered\n *                                           selectors.\n * @property {Function} dispatch             Given a namespace key, returns an\n *                                           object of the store's registered\n *                                           action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object}  storeConfigs Initial store configurations.\n * @param {Object?} parent       Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\n\nfunction createRegistry() {\n  var storeConfigs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  var stores = {};\n  var listeners = [];\n  /**\n   * Global listener called for each store's update.\n   */\n\n  function globalListener() {\n    listeners.forEach(function (listener) {\n      return listener();\n    });\n  }\n  /**\n   * Subscribe to changes to any data.\n   *\n   * @param {Function}   listener Listener function.\n   *\n   * @return {Function}           Unsubscribe function.\n   */\n\n\n  var subscribe = function subscribe(listener) {\n    listeners.push(listener);\n    return function () {\n      listeners = Object(external_this_lodash_[\"without\"])(listeners, listener);\n    };\n  };\n  /**\n   * Calls a selector given the current state and extra arguments.\n   *\n   * @param {string} reducerKey Part of the state shape to register the\n   *                            selectors for.\n   *\n   * @return {*} The selector's returned value.\n   */\n\n\n  function select(reducerKey) {\n    var store = stores[reducerKey];\n\n    if (store) {\n      return store.getSelectors();\n    }\n\n    return parent && parent.select(reducerKey);\n  }\n\n  var getResolveSelectors = memize_default()(function (selectors) {\n    return Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"omit\"])(selectors, ['getIsResolving', 'hasStartedResolution', 'hasFinishedResolution', 'isResolving', 'getCachedResolvers']), function (selector, selectorName) {\n      return function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        return new Promise(function (resolve) {\n          var hasFinished = function hasFinished() {\n            return selectors.hasFinishedResolution(selectorName, args);\n          };\n\n          var getResult = function getResult() {\n            return selector.apply(null, args);\n          }; // trigger the selector (to trigger the resolver)\n\n\n          var result = getResult();\n\n          if (hasFinished()) {\n            return resolve(result);\n          }\n\n          var unsubscribe = subscribe(function () {\n            if (hasFinished()) {\n              unsubscribe();\n              resolve(getResult());\n            }\n          });\n        });\n      };\n    });\n  }, {\n    maxSize: 1\n  });\n  /**\n   * Given the name of a registered store, returns an object containing the store's\n   * selectors pre-bound to state so that you only need to supply additional arguments,\n   * and modified so that they return promises that resolve to their eventual values,\n   * after any resolvers have ran.\n   *\n   * @param {string} reducerKey Part of the state shape to register the\n   *                            selectors for.\n   *\n   * @return {Object} Each key of the object matches the name of a selector.\n   */\n\n  function __experimentalResolveSelect(reducerKey) {\n    return getResolveSelectors(select(reducerKey));\n  }\n  /**\n   * Returns the available actions for a part of the state.\n   *\n   * @param {string} reducerKey Part of the state shape to dispatch the\n   *                            action for.\n   *\n   * @return {*} The action's returned value.\n   */\n\n\n  function dispatch(reducerKey) {\n    var store = stores[reducerKey];\n\n    if (store) {\n      return store.getActions();\n    }\n\n    return parent && parent.dispatch(reducerKey);\n  } //\n  // Deprecated\n  // TODO: Remove this after `use()` is removed.\n  //\n\n\n  function withPlugins(attributes) {\n    return Object(external_this_lodash_[\"mapValues\"])(attributes, function (attribute, key) {\n      if (typeof attribute !== 'function') {\n        return attribute;\n      }\n\n      return function () {\n        return registry[key].apply(null, arguments);\n      };\n    });\n  }\n  /**\n   * Registers a generic store.\n   *\n   * @param {string} key    Store registry key.\n   * @param {Object} config Configuration (getSelectors, getActions, subscribe).\n   */\n\n\n  function registerGenericStore(key, config) {\n    if (typeof config.getSelectors !== 'function') {\n      throw new TypeError('config.getSelectors must be a function');\n    }\n\n    if (typeof config.getActions !== 'function') {\n      throw new TypeError('config.getActions must be a function');\n    }\n\n    if (typeof config.subscribe !== 'function') {\n      throw new TypeError('config.subscribe must be a function');\n    }\n\n    stores[key] = config;\n    config.subscribe(globalListener);\n  }\n\n  var registry = {\n    registerGenericStore: registerGenericStore,\n    stores: stores,\n    namespaces: stores,\n    // TODO: Deprecate/remove this.\n    subscribe: subscribe,\n    select: select,\n    __experimentalResolveSelect: __experimentalResolveSelect,\n    dispatch: dispatch,\n    use: use\n  };\n  /**\n   * Registers a standard `@wordpress/data` store.\n   *\n   * @param {string} reducerKey Reducer key.\n   * @param {Object} options    Store description (reducer, actions, selectors, resolvers).\n   *\n   * @return {Object} Registered store object.\n   */\n\n  registry.registerStore = function (reducerKey, options) {\n    if (!options.reducer) {\n      throw new TypeError('Must specify store reducer');\n    }\n\n    var namespace = createNamespace(reducerKey, options, registry);\n    registerGenericStore(reducerKey, namespace);\n    return namespace.store;\n  }; //\n  // TODO:\n  // This function will be deprecated as soon as it is no longer internally referenced.\n  //\n\n\n  function use(plugin, options) {\n    registry = registry_objectSpread({}, registry, {}, plugin(registry, options));\n    return registry;\n  }\n\n  registerGenericStore('core/data', build_module_store(registry));\n  Object.entries(storeConfigs).forEach(function (_ref) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n        name = _ref2[0],\n        config = _ref2[1];\n\n    return registry.registerStore(name, config);\n  });\n\n  if (parent) {\n    parent.subscribe(globalListener);\n  }\n\n  return withPlugins(registry);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/default-registry.js\n/**\n * Internal dependencies\n */\n\n/* harmony default export */ var default_registry = (createRegistry());\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/plugins/controls/index.js\n/**\n * WordPress dependencies\n */\n\n/* harmony default export */ var controls = (function (registry) {\n  external_this_wp_deprecated_default()('wp.data.plugins.controls', {\n    hint: 'The controls plugins is now baked-in.'\n  });\n  return registry;\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/plugins/persistence/storage/object.js\nvar objectStorage;\nvar object_storage = {\n  getItem: function getItem(key) {\n    if (!objectStorage || !objectStorage[key]) {\n      return null;\n    }\n\n    return objectStorage[key];\n  },\n  setItem: function setItem(key, value) {\n    if (!objectStorage) {\n      object_storage.clear();\n    }\n\n    objectStorage[key] = String(value);\n  },\n  clear: function clear() {\n    objectStorage = Object.create(null);\n  }\n};\n/* harmony default export */ var object = (object_storage);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/plugins/persistence/storage/default.js\n/**\n * Internal dependencies\n */\n\nvar default_storage;\n\ntry {\n  // Private Browsing in Safari 10 and earlier will throw an error when\n  // attempting to set into localStorage. The test here is intentional in\n  // causing a thrown error as condition for using fallback object storage.\n  default_storage = window.localStorage;\n  default_storage.setItem('__wpDataTestLocalStorage', '');\n  default_storage.removeItem('__wpDataTestLocalStorage');\n} catch (error) {\n  default_storage = object;\n}\n\n/* harmony default export */ var storage_default = (default_storage);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/plugins/persistence/index.js\n\n\nfunction persistence_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction persistence_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { persistence_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { persistence_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n/** @typedef {import('../../registry').WPDataRegistry} WPDataRegistry */\n\n/** @typedef {import('../../registry').WPDataPlugin} WPDataPlugin */\n\n/**\n * @typedef {Object} WPDataPersistencePluginOptions Persistence plugin options.\n *\n * @property {Storage} storage    Persistent storage implementation. This must\n *                                at least implement `getItem` and `setItem` of\n *                                the Web Storage API.\n * @property {string}  storageKey Key on which to set in persistent storage.\n *\n */\n\n/**\n * Default plugin storage.\n *\n * @type {Storage}\n */\n\nvar DEFAULT_STORAGE = storage_default;\n/**\n * Default plugin storage key.\n *\n * @type {string}\n */\n\nvar DEFAULT_STORAGE_KEY = 'WP_DATA';\n/**\n * Higher-order reducer which invokes the original reducer only if state is\n * inequal from that of the action's `nextState` property, otherwise returning\n * the original state reference.\n *\n * @param {Function} reducer Original reducer.\n *\n * @return {Function} Enhanced reducer.\n */\n\nvar withLazySameState = function withLazySameState(reducer) {\n  return function (state, action) {\n    if (action.nextState === state) {\n      return state;\n    }\n\n    return reducer(state, action);\n  };\n};\n/**\n * Creates a persistence interface, exposing getter and setter methods (`get`\n * and `set` respectively).\n *\n * @param {WPDataPersistencePluginOptions} options Plugin options.\n *\n * @return {Object} Persistence interface.\n */\n\nfunction createPersistenceInterface(options) {\n  var _options$storage = options.storage,\n      storage = _options$storage === void 0 ? DEFAULT_STORAGE : _options$storage,\n      _options$storageKey = options.storageKey,\n      storageKey = _options$storageKey === void 0 ? DEFAULT_STORAGE_KEY : _options$storageKey;\n  var data;\n  /**\n   * Returns the persisted data as an object, defaulting to an empty object.\n   *\n   * @return {Object} Persisted data.\n   */\n\n  function getData() {\n    if (data === undefined) {\n      // If unset, getItem is expected to return null. Fall back to\n      // empty object.\n      var persisted = storage.getItem(storageKey);\n\n      if (persisted === null) {\n        data = {};\n      } else {\n        try {\n          data = JSON.parse(persisted);\n        } catch (error) {\n          // Similarly, should any error be thrown during parse of\n          // the string (malformed JSON), fall back to empty object.\n          data = {};\n        }\n      }\n    }\n\n    return data;\n  }\n  /**\n   * Merges an updated reducer state into the persisted data.\n   *\n   * @param {string} key   Key to update.\n   * @param {*}      value Updated value.\n   */\n\n\n  function setData(key, value) {\n    data = persistence_objectSpread({}, data, Object(defineProperty[\"a\" /* default */])({}, key, value));\n    storage.setItem(storageKey, JSON.stringify(data));\n  }\n\n  return {\n    get: getData,\n    set: setData\n  };\n}\n/**\n * Data plugin to persist store state into a single storage key.\n *\n * @param {WPDataRegistry}                  registry      Data registry.\n * @param {?WPDataPersistencePluginOptions} pluginOptions Plugin options.\n *\n * @return {WPDataPlugin} Data plugin.\n */\n\nfunction persistencePlugin(registry, pluginOptions) {\n  var persistence = createPersistenceInterface(pluginOptions);\n  /**\n   * Creates an enhanced store dispatch function, triggering the state of the\n   * given reducer key to be persisted when changed.\n   *\n   * @param {Function}       getState   Function which returns current state.\n   * @param {string}         reducerKey Reducer key.\n   * @param {?Array<string>} keys       Optional subset of keys to save.\n   *\n   * @return {Function} Enhanced dispatch function.\n   */\n\n  function createPersistOnChange(getState, reducerKey, keys) {\n    var getPersistedState;\n\n    if (Array.isArray(keys)) {\n      // Given keys, the persisted state should by produced as an object\n      // of the subset of keys. This implementation uses combineReducers\n      // to leverage its behavior of returning the same object when none\n      // of the property values changes. This allows a strict reference\n      // equality to bypass a persistence set on an unchanging state.\n      var reducers = keys.reduce(function (accumulator, key) {\n        return Object.assign(accumulator, Object(defineProperty[\"a\" /* default */])({}, key, function (state, action) {\n          return action.nextState[key];\n        }));\n      }, {});\n      getPersistedState = withLazySameState(turbo_combine_reducers_default()(reducers));\n    } else {\n      getPersistedState = function getPersistedState(state, action) {\n        return action.nextState;\n      };\n    }\n\n    var lastState = getPersistedState(undefined, {\n      nextState: getState()\n    });\n    return function () {\n      var state = getPersistedState(lastState, {\n        nextState: getState()\n      });\n\n      if (state !== lastState) {\n        persistence.set(reducerKey, state);\n        lastState = state;\n      }\n    };\n  }\n\n  return {\n    registerStore: function registerStore(reducerKey, options) {\n      if (!options.persist) {\n        return registry.registerStore(reducerKey, options);\n      } // Load from persistence to use as initial state.\n\n\n      var persistedState = persistence.get()[reducerKey];\n\n      if (persistedState !== undefined) {\n        var initialState = options.reducer(options.initialState, {\n          type: '@@WP/PERSISTENCE_RESTORE'\n        });\n\n        if (Object(external_this_lodash_[\"isPlainObject\"])(initialState) && Object(external_this_lodash_[\"isPlainObject\"])(persistedState)) {\n          // If state is an object, ensure that:\n          // - Other keys are left intact when persisting only a\n          //   subset of keys.\n          // - New keys in what would otherwise be used as initial\n          //   state are deeply merged as base for persisted value.\n          initialState = Object(external_this_lodash_[\"merge\"])({}, initialState, persistedState);\n        } else {\n          // If there is a mismatch in object-likeness of default\n          // initial or persisted state, defer to persisted value.\n          initialState = persistedState;\n        }\n\n        options = persistence_objectSpread({}, options, {\n          initialState: initialState\n        });\n      }\n\n      var store = registry.registerStore(reducerKey, options);\n      store.subscribe(createPersistOnChange(store.getState, reducerKey, options.persist));\n      return store;\n    }\n  };\n}\n/**\n * Deprecated: Remove this function and the code in WordPress Core that calls\n * it once WordPress 5.4 is released.\n */\n\n\npersistencePlugin.__unstableMigrate = function (pluginOptions) {\n  var persistence = createPersistenceInterface(pluginOptions);\n  var state = persistence.get(); // Migrate 'insertUsage' from 'core/editor' to 'core/block-editor'\n\n  var insertUsage = Object(external_this_lodash_[\"get\"])(state, ['core/editor', 'preferences', 'insertUsage']);\n\n  if (insertUsage) {\n    persistence.set('core/block-editor', {\n      preferences: {\n        insertUsage: insertUsage\n      }\n    });\n  }\n\n  var editPostState = state['core/edit-post']; // Default `fullscreenMode` to `false` if any persisted state had existed\n  // and the user hadn't made an explicit choice about fullscreen mode. This\n  // is needed since `fullscreenMode` previously did not have a default value\n  // and was implicitly false by its absence. It is now `true` by default, but\n  // this change is not intended to affect upgrades from earlier versions.\n\n  var hadPersistedState = Object.keys(state).length > 0;\n  var hadFullscreenModePreference = Object(external_this_lodash_[\"has\"])(state, ['core/edit-post', 'preferences', 'features', 'fullscreenMode']);\n\n  if (hadPersistedState && !hadFullscreenModePreference) {\n    editPostState = Object(external_this_lodash_[\"merge\"])({}, editPostState, {\n      preferences: {\n        features: {\n          fullscreenMode: false\n        }\n      }\n    });\n  } // Migrate 'areTipsEnabled' from 'core/nux' to 'showWelcomeGuide' in 'core/edit-post'\n\n\n  var areTipsEnabled = Object(external_this_lodash_[\"get\"])(state, ['core/nux', 'preferences', 'areTipsEnabled']);\n  var hasWelcomeGuide = Object(external_this_lodash_[\"has\"])(state, ['core/edit-post', 'preferences', 'features', 'welcomeGuide']);\n\n  if (areTipsEnabled !== undefined && !hasWelcomeGuide) {\n    editPostState = Object(external_this_lodash_[\"merge\"])({}, editPostState, {\n      preferences: {\n        features: {\n          welcomeGuide: areTipsEnabled\n        }\n      }\n    });\n  }\n\n  if (editPostState !== state['core/edit-post']) {\n    persistence.set('core/edit-post', editPostState);\n  }\n};\n\n/* harmony default export */ var plugins_persistence = (persistencePlugin);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/plugins/index.js\n\n\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\n\n// CONCATENATED MODULE: ./node_modules/use-memo-one/dist/use-memo-one.esm.js\n\n\nfunction areInputsEqual(newInputs, lastInputs) {\n  if (newInputs.length !== lastInputs.length) {\n    return false;\n  }\n\n  for (var i = 0; i < newInputs.length; i++) {\n    if (newInputs[i] !== lastInputs[i]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n  var initial = Object(external_this_React_[\"useState\"])(function () {\n    return {\n      inputs: inputs,\n      result: getResult()\n    };\n  })[0];\n  var committed = Object(external_this_React_[\"useRef\"])(initial);\n  var isInputMatch = Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n  var cache = isInputMatch ? committed.current : {\n    inputs: inputs,\n    result: getResult()\n  };\n  Object(external_this_React_[\"useEffect\"])(function () {\n    committed.current = cache;\n  }, [cache]);\n  return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n  return useMemoOne(function () {\n    return callback;\n  }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\n\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"priorityQueue\"]}\nvar external_this_wp_priorityQueue_ = __webpack_require__(144);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"isShallowEqual\"]}\nvar external_this_wp_isShallowEqual_ = __webpack_require__(55);\nvar external_this_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_isShallowEqual_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/registry-provider/context.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nvar Context = Object(external_this_wp_element_[\"createContext\"])(default_registry);\nvar Consumer = Context.Consumer,\n    Provider = Context.Provider;\n/**\n * A custom react Context consumer exposing the provided `registry` to\n * children components. Used along with the RegistryProvider.\n *\n * You can read more about the react context api here:\n * https://reactjs.org/docs/context.html#contextprovider\n *\n * @example\n * ```js\n * const {\n *   RegistryProvider,\n *   RegistryConsumer,\n *   createRegistry\n * } = wp.data;\n *\n * const registry = createRegistry( {} );\n *\n * const App = ( { props } ) => {\n *   return <RegistryProvider value={ registry }>\n *     <div>Hello There</div>\n *     <RegistryConsumer>\n *       { ( registry ) => (\n *         <ComponentUsingRegistry\n *         \t\t{ ...props }\n *         \t  registry={ registry }\n *       ) }\n *     </RegistryConsumer>\n *   </RegistryProvider>\n * }\n * ```\n */\n\nvar RegistryConsumer = Consumer;\n/**\n * A custom Context provider for exposing the provided `registry` to children\n * components via a consumer.\n *\n * See <a name=\"#RegistryConsumer\">RegistryConsumer</a> documentation for\n * example.\n */\n\n/* harmony default export */ var context = (Provider);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/registry-provider/use-registry.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * A custom react hook exposing the registry context for use.\n *\n * This exposes the `registry` value provided via the\n * <a href=\"#RegistryProvider\">Registry Provider</a> to a component implementing\n * this hook.\n *\n * It acts similarly to the `useContext` react hook.\n *\n * Note: Generally speaking, `useRegistry` is a low level hook that in most cases\n * won't be needed for implementation. Most interactions with the wp.data api\n * can be performed via the `useSelect` hook,  or the `withSelect` and\n * `withDispatch` higher order components.\n *\n * @example\n * ```js\n * const {\n *   RegistryProvider,\n *   createRegistry,\n *   useRegistry,\n * } = wp.data\n *\n * const registry = createRegistry( {} );\n *\n * const SomeChildUsingRegistry = ( props ) => {\n *   const registry = useRegistry( registry );\n *   // ...logic implementing the registry in other react hooks.\n * };\n *\n *\n * const ParentProvidingRegistry = ( props ) => {\n *   return <RegistryProvider value={ registry }>\n *     <SomeChildUsingRegistry { ...props } />\n *   </RegistryProvider>\n * };\n * ```\n *\n * @return {Function}  A custom react hook exposing the registry context value.\n */\n\nfunction useRegistry() {\n  return Object(external_this_wp_element_[\"useContext\"])(Context);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/async-mode-provider/context.js\n/**\n * WordPress dependencies\n */\n\nvar context_Context = Object(external_this_wp_element_[\"createContext\"])(false);\nvar context_Consumer = context_Context.Consumer,\n    context_Provider = context_Context.Provider;\nvar AsyncModeConsumer = context_Consumer;\n/**\n * Context Provider Component used to switch the data module component rerendering\n * between Sync and Async modes.\n *\n * @example\n *\n * ```js\n * import { useSelect, AsyncModeProvider } from '@wordpress/data';\n *\n * function BlockCount() {\n *   const count = useSelect( ( select ) => {\n *     return select( 'core/block-editor' ).getBlockCount()\n *   }, [] );\n *\n *   return count;\n * }\n *\n * function App() {\n *   return (\n *     <AsyncModeProvider value={ true }>\n *       <BlockCount />\n *     </AsyncModeProvider>\n *   );\n * }\n * ```\n *\n * In this example, the BlockCount component is rerendered asynchronously.\n * It means if a more critical task is being performed (like typing in an input),\n * the rerendering is delayed until the browser becomes IDLE.\n * It is possible to nest multiple levels of AsyncModeProvider to fine-tune the rendering behavior.\n *\n * @param {boolean}   props.value  Enable Async Mode.\n * @return {WPComponent} The component to be rendered.\n */\n\n/* harmony default export */ var async_mode_provider_context = (context_Provider);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/async-mode-provider/use-async-mode.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction useAsyncMode() {\n  return Object(external_this_wp_element_[\"useContext\"])(context_Context);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/use-select/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Favor useLayoutEffect to ensure the store subscription callback always has\n * the selector from the latest render. If a store update happens between render\n * and the effect, this could cause missed/stale updates or inconsistent state.\n *\n * Fallback to useEffect for server rendered components because currently React\n * throws a warning when using useLayoutEffect in that environment.\n */\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? external_this_wp_element_[\"useLayoutEffect\"] : external_this_wp_element_[\"useEffect\"];\nvar renderQueue = Object(external_this_wp_priorityQueue_[\"createQueue\"])();\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @param {Function} _mapSelect  Function called on every state change. The\n *                               returned value is exposed to the component\n *                               implementing this hook. The function receives\n *                               the `registry.select` method on the first\n *                               argument and the `registry` on the second\n *                               argument.\n * @param {Array}    deps        If provided, this memoizes the mapSelect so the\n *                               same `mapSelect` is invoked on every state\n *                               change unless the dependencies change.\n *\n * @example\n * ```js\n * const { useSelect } = wp.data;\n *\n * function HammerPriceDisplay( { currency } ) {\n *   const price = useSelect( ( select ) => {\n *     return select( 'my-shop' ).getPrice( 'hammer', currency )\n *   }, [ currency ] );\n *   return new Intl.NumberFormat( 'en-US', {\n *     style: 'currency',\n *     currency,\n *   } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * @return {Function}  A custom react hook.\n */\n\nfunction useSelect(_mapSelect, deps) {\n  var mapSelect = Object(external_this_wp_element_[\"useCallback\"])(_mapSelect, deps);\n  var registry = useRegistry();\n  var isAsync = useAsyncMode(); // React can sometimes clear the `useMemo` cache.\n  // We use the cache-stable `useMemoOne` to avoid\n  // losing queues.\n\n  var queueContext = useMemoOne(function () {\n    return {\n      queue: true\n    };\n  }, [registry]);\n\n  var _useReducer = Object(external_this_wp_element_[\"useReducer\"])(function (s) {\n    return s + 1;\n  }, 0),\n      _useReducer2 = Object(slicedToArray[\"a\" /* default */])(_useReducer, 2),\n      forceRender = _useReducer2[1];\n\n  var latestMapSelect = Object(external_this_wp_element_[\"useRef\"])();\n  var latestIsAsync = Object(external_this_wp_element_[\"useRef\"])(isAsync);\n  var latestMapOutput = Object(external_this_wp_element_[\"useRef\"])();\n  var latestMapOutputError = Object(external_this_wp_element_[\"useRef\"])();\n  var isMountedAndNotUnsubscribing = Object(external_this_wp_element_[\"useRef\"])();\n  var mapOutput;\n\n  try {\n    if (latestMapSelect.current !== mapSelect || latestMapOutputError.current) {\n      mapOutput = mapSelect(registry.select, registry);\n    } else {\n      mapOutput = latestMapOutput.current;\n    }\n  } catch (error) {\n    var errorMessage = \"An error occurred while running 'mapSelect': \".concat(error.message);\n\n    if (latestMapOutputError.current) {\n      errorMessage += \"\\nThe error may be correlated with this previous error:\\n\";\n      errorMessage += \"\".concat(latestMapOutputError.current.stack, \"\\n\\n\");\n      errorMessage += 'Original stack trace:';\n      throw new Error(errorMessage);\n    } else {\n      // eslint-disable-next-line no-console\n      console.error(errorMessage);\n    }\n  }\n\n  useIsomorphicLayoutEffect(function () {\n    latestMapSelect.current = mapSelect;\n    latestMapOutput.current = mapOutput;\n    latestMapOutputError.current = undefined;\n    isMountedAndNotUnsubscribing.current = true; // This has to run after the other ref updates\n    // to avoid using stale values in the flushed\n    // callbacks or potentially overwriting a\n    // changed `latestMapOutput.current`.\n\n    if (latestIsAsync.current !== isAsync) {\n      latestIsAsync.current = isAsync;\n      renderQueue.flush(queueContext);\n    }\n  });\n  useIsomorphicLayoutEffect(function () {\n    var onStoreChange = function onStoreChange() {\n      if (isMountedAndNotUnsubscribing.current) {\n        try {\n          var newMapOutput = latestMapSelect.current(registry.select, registry);\n\n          if (external_this_wp_isShallowEqual_default()(latestMapOutput.current, newMapOutput)) {\n            return;\n          }\n\n          latestMapOutput.current = newMapOutput;\n        } catch (error) {\n          latestMapOutputError.current = error;\n        }\n\n        forceRender();\n      }\n    }; // catch any possible state changes during mount before the subscription\n    // could be set.\n\n\n    if (latestIsAsync.current) {\n      renderQueue.add(queueContext, onStoreChange);\n    } else {\n      onStoreChange();\n    }\n\n    var unsubscribe = registry.subscribe(function () {\n      if (latestIsAsync.current) {\n        renderQueue.add(queueContext, onStoreChange);\n      } else {\n        onStoreChange();\n      }\n    });\n    return function () {\n      isMountedAndNotUnsubscribing.current = false;\n      unsubscribe();\n      renderQueue.flush(queueContext);\n    };\n  }, [registry]);\n  return mapOutput;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/with-select/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order component used to inject state-derived props using registered\n * selectors.\n *\n * @param {Function} mapSelectToProps Function called on every state change,\n *                                   expected to return object of props to\n *                                   merge with the component's own props.\n *\n * @example\n * ```js\n * function PriceDisplay( { price, currency } ) {\n * \treturn new Intl.NumberFormat( 'en-US', {\n * \t\tstyle: 'currency',\n * \t\tcurrency,\n * \t} ).format( price );\n * }\n *\n * const { withSelect } = wp.data;\n *\n * const HammerPriceDisplay = withSelect( ( select, ownProps ) => {\n * \tconst { getPrice } = select( 'my-shop' );\n * \tconst { currency } = ownProps;\n *\n * \treturn {\n * \t\tprice: getPrice( 'hammer', currency ),\n * \t};\n * } )( PriceDisplay );\n *\n * // Rendered in the application:\n * //\n * //  <HammerPriceDisplay currency=\"USD\" />\n * ```\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, it will pass the price into the underlying `PriceDisplay`\n * component and update automatically if the price of a hammer ever changes in\n * the store.\n *\n * @return {WPComponent} Enhanced component with merged state data props.\n */\n\nvar with_select_withSelect = function withSelect(mapSelectToProps) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n    return Object(external_this_wp_compose_[\"pure\"])(function (ownProps) {\n      var mapSelect = function mapSelect(select, registry) {\n        return mapSelectToProps(select, ownProps, registry);\n      };\n\n      var mergeProps = useSelect(mapSelect);\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, ownProps, mergeProps));\n    });\n  }, 'withSelect');\n};\n\n/* harmony default export */ var with_select = (with_select_withSelect);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/use-dispatch/use-dispatch-with-map.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Favor useLayoutEffect to ensure the store subscription callback always has\n * the dispatchMap from the latest render. If a store update happens between\n * render and the effect, this could cause missed/stale updates or\n * inconsistent state.\n *\n * Fallback to useEffect for server rendered components because currently React\n * throws a warning when using useLayoutEffect in that environment.\n */\n\nvar use_dispatch_with_map_useIsomorphicLayoutEffect = typeof window !== 'undefined' ? external_this_wp_element_[\"useLayoutEffect\"] : external_this_wp_element_[\"useEffect\"];\n/**\n * Custom react hook for returning aggregate dispatch actions using the provided\n * dispatchMap.\n *\n * Currently this is an internal api only and is implemented by `withDispatch`\n *\n * @param {Function} dispatchMap  Receives the `registry.dispatch` function as\n *                                the first argument and the `registry` object\n *                                as the second argument.  Should return an\n *                                object mapping props to functions.\n * @param {Array}    deps         An array of dependencies for the hook.\n * @return {Object}  An object mapping props to functions created by the passed\n *                   in dispatchMap.\n */\n\nvar use_dispatch_with_map_useDispatchWithMap = function useDispatchWithMap(dispatchMap, deps) {\n  var registry = useRegistry();\n  var currentDispatchMap = Object(external_this_wp_element_[\"useRef\"])(dispatchMap);\n  use_dispatch_with_map_useIsomorphicLayoutEffect(function () {\n    currentDispatchMap.current = dispatchMap;\n  });\n  return Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var currentDispatchProps = currentDispatchMap.current(registry.dispatch, registry);\n    return Object(external_this_lodash_[\"mapValues\"])(currentDispatchProps, function (dispatcher, propName) {\n      if (typeof dispatcher !== 'function') {\n        // eslint-disable-next-line no-console\n        console.warn(\"Property \".concat(propName, \" returned from dispatchMap in useDispatchWithMap must be a function.\"));\n      }\n\n      return function () {\n        var _currentDispatchMap$c;\n\n        return (_currentDispatchMap$c = currentDispatchMap.current(registry.dispatch, registry))[propName].apply(_currentDispatchMap$c, arguments);\n      };\n    });\n  }, [registry].concat(Object(toConsumableArray[\"a\" /* default */])(deps)));\n};\n\n/* harmony default export */ var use_dispatch_with_map = (use_dispatch_with_map_useDispatchWithMap);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/with-dispatch/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order component used to add dispatch props using registered action\n * creators.\n *\n * @param {Function} mapDispatchToProps A function of returning an object of\n *                                      prop names where value is a\n *                                      dispatch-bound action creator, or a\n *                                      function to be called with the\n *                                      component's props and returning an\n *                                      action creator.\n *\n * @example\n * ```jsx\n * function Button( { onClick, children } ) {\n *     return <button type=\"button\" onClick={ onClick }>{ children }</button>;\n * }\n *\n * const { withDispatch } = wp.data;\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps ) => {\n *     const { startSale } = dispatch( 'my-shop' );\n *     const { discountPercent } = ownProps;\n *\n *     return {\n *         onClick() {\n *             startSale( discountPercent );\n *         },\n *     };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * // <SaleButton discountPercent=\"20\">Start Sale!</SaleButton>\n * ```\n *\n * @example\n * In the majority of cases, it will be sufficient to use only two first params\n * passed to `mapDispatchToProps` as illustrated in the previous example.\n * However, there might be some very advanced use cases where using the\n * `registry` object might be used as a tool to optimize the performance of\n * your component. Using `select` function from the registry might be useful\n * when you need to fetch some dynamic data from the store at the time when the\n * event is fired, but at the same time, you never use it to render your\n * component. In such scenario, you can avoid using the `withSelect` higher\n * order component to compute such prop, which might lead to unnecessary\n * re-renders of your component caused by its frequent value change.\n * Keep in mind, that `mapDispatchToProps` must return an object with functions\n * only.\n *\n * ```jsx\n * function Button( { onClick, children } ) {\n *     return <button type=\"button\" onClick={ onClick }>{ children }</button>;\n * }\n *\n * const { withDispatch } = wp.data;\n *\n * const SaleButton = withDispatch( ( dispatch, ownProps, { select } ) => {\n *    // Stock number changes frequently.\n *    const { getStockNumber } = select( 'my-shop' );\n *    const { startSale } = dispatch( 'my-shop' );\n *    return {\n *        onClick() {\n *            const discountPercent = getStockNumber() > 50 ? 10 : 20;\n *            startSale( discountPercent );\n *        },\n *    };\n * } )( Button );\n *\n * // Rendered in the application:\n * //\n * //  <SaleButton>Start Sale!</SaleButton>\n * ```\n *\n * _Note:_ It is important that the `mapDispatchToProps` function always\n * returns an object with the same keys. For example, it should not contain\n * conditions under which a different value would be returned.\n *\n * @return {WPComponent} Enhanced component with merged dispatcher props.\n */\n\nvar with_dispatch_withDispatch = function withDispatch(mapDispatchToProps) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n    return function (ownProps) {\n      var mapDispatch = function mapDispatch(dispatch, registry) {\n        return mapDispatchToProps(dispatch, ownProps, registry);\n      };\n\n      var dispatchProps = use_dispatch_with_map(mapDispatch, []);\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, ownProps, dispatchProps));\n    };\n  }, 'withDispatch');\n};\n\n/* harmony default export */ var with_dispatch = (with_dispatch_withDispatch);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/with-registry/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order component which renders the original component with the current\n * registry context passed as its `registry` prop.\n *\n * @param {WPComponent} OriginalComponent Original component.\n *\n * @return {WPComponent} Enhanced component.\n */\n\nvar withRegistry = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (OriginalComponent) {\n  return function (props) {\n    return Object(external_this_wp_element_[\"createElement\"])(RegistryConsumer, null, function (registry) {\n      return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({}, props, {\n        registry: registry\n      }));\n    });\n  };\n}, 'withRegistry');\n/* harmony default export */ var with_registry = (withRegistry);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/components/use-dispatch/use-dispatch.js\n/**\n * Internal dependencies\n */\n\n/**\n * A custom react hook returning the current registry dispatch actions creators.\n *\n * Note: The component using this hook must be within the context of a\n * RegistryProvider.\n *\n * @param {string} [storeName]  Optionally provide the name of the store from\n *                             which to retrieve action creators. If not\n *                             provided, the registry.dispatch function is\n *                             returned instead.\n *\n * @example\n * This illustrates a pattern where you may need to retrieve dynamic data from\n * the server via the `useSelect` hook to use in combination with the dispatch\n * action.\n *\n * ```jsx\n * const { useDispatch, useSelect } = wp.data;\n * const { useCallback } = wp.element;\n *\n * function Button( { onClick, children } ) {\n *   return <button type=\"button\" onClick={ onClick }>{ children }</button>\n * }\n *\n * const SaleButton = ( { children } ) => {\n *   const { stockNumber } = useSelect(\n *     ( select ) => select( 'my-shop' ).getStockNumber(),\n *     []\n *   );\n *   const { startSale } = useDispatch( 'my-shop' );\n *   const onClick = useCallback( () => {\n *     const discountPercent = stockNumber > 50 ? 10: 20;\n *     startSale( discountPercent );\n *   }, [ stockNumber ] );\n *   return <Button onClick={ onClick }>{ children }</Button>\n * }\n *\n * // Rendered somewhere in the application:\n * //\n * // <SaleButton>Start Sale!</SaleButton>\n * ```\n * @return {Function}  A custom react hook.\n */\n\nvar use_dispatch_useDispatch = function useDispatch(storeName) {\n  var _useRegistry = useRegistry(),\n      dispatch = _useRegistry.dispatch;\n\n  return storeName === void 0 ? dispatch : dispatch(storeName);\n};\n\n/* harmony default export */ var use_dispatch = (use_dispatch_useDispatch);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/factory.js\n/**\n * Internal dependencies\n */\n\n/** @typedef {import('./registry').WPDataRegistry} WPDataRegistry */\n\n/**\n * Mark a selector as a registry selector.\n *\n * @param {Function} registrySelector Function receiving a registry object and returning a state selector.\n *\n * @return {Function} marked registry selector.\n */\n\nfunction createRegistrySelector(registrySelector) {\n  var selector = function selector() {\n    return registrySelector(selector.registry.select).apply(void 0, arguments);\n  };\n  /**\n   * Flag indicating to selector registration mapping that the selector should\n   * be mapped as a registry selector.\n   *\n   * @type {boolean}\n   */\n\n\n  selector.isRegistrySelector = true;\n  /**\n   * Registry on which to call `select`, stubbed for non-standard usage to\n   * use the default registry.\n   *\n   * @type {WPDataRegistry}\n   */\n\n  selector.registry = default_registry;\n  return selector;\n}\n/**\n * Mark a control as a registry control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} marked registry control.\n */\n\nfunction createRegistryControl(registryControl) {\n  registryControl.isRegistryControl = true;\n  return registryControl;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/data/build-module/index.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Object of available plugins to use with a registry.\n *\n * @see [use](#use)\n *\n * @type {Object}\n */\n\n\n/**\n * The combineReducers helper function turns an object whose values are different\n * reducing functions into a single reducing function you can pass to registerReducer.\n *\n * @param {Object} reducers An object whose values correspond to different reducing\n *                          functions that need to be combined into one.\n *\n * @example\n * ```js\n * const { combineReducers, registerStore } = wp.data;\n *\n * const prices = ( state = {}, action ) => {\n * \treturn action.type === 'SET_PRICE' ?\n * \t\t{\n * \t\t\t...state,\n * \t\t\t[ action.item ]: action.price,\n * \t\t} :\n * \t\tstate;\n * };\n *\n * const discountPercent = ( state = 0, action ) => {\n * \treturn action.type === 'START_SALE' ?\n * \t\taction.discountPercent :\n * \t\tstate;\n * };\n *\n * registerStore( 'my-shop', {\n * \treducer: combineReducers( {\n * \t\tprices,\n * \t\tdiscountPercent,\n * \t} ),\n * } );\n * ```\n *\n * @return {Function}       A reducer that invokes every reducer inside the reducers\n *                          object, and constructs a state object with the same shape.\n */\n\n\n/**\n * Given the name of a registered store, returns an object of the store's selectors.\n * The selector functions are been pre-bound to pass the current state automatically.\n * As a consumer, you need only pass arguments of the selector, if applicable.\n *\n * @param {string} name Store name.\n *\n * @example\n * ```js\n * const { select } = wp.data;\n *\n * select( 'my-shop' ).getPrice( 'hammer' );\n * ```\n *\n * @return {Object} Object containing the store's selectors.\n */\n\nvar build_module_select = default_registry.select;\n/**\n * Given the name of a registered store, returns an object containing the store's\n * selectors pre-bound to state so that you only need to supply additional arguments,\n * and modified so that they return promises that resolve to their eventual values,\n * after any resolvers have ran.\n *\n * @param {string} name Store name.\n *\n * @example\n * ```js\n * const { __experimentalResolveSelect } = wp.data;\n *\n * __experimentalResolveSelect( 'my-shop' ).getPrice( 'hammer' ).then(console.log)\n * ```\n *\n * @return {Object} Object containing the store's promise-wrapped selectors.\n */\n\nvar build_module_experimentalResolveSelect = default_registry.__experimentalResolveSelect;\n/**\n * Given the name of a registered store, returns an object of the store's action creators.\n * Calling an action creator will cause it to be dispatched, updating the state value accordingly.\n *\n * Note: Action creators returned by the dispatch will return a promise when\n * they are called.\n *\n * @param {string} name Store name.\n *\n * @example\n * ```js\n * const { dispatch } = wp.data;\n *\n * dispatch( 'my-shop' ).setPrice( 'hammer', 9.75 );\n * ```\n * @return {Object} Object containing the action creators.\n */\n\nvar build_module_dispatch = default_registry.dispatch;\n/**\n * Given a listener function, the function will be called any time the state value\n * of one of the registered stores has changed. This function returns a `unsubscribe`\n * function used to stop the subscription.\n *\n * @param {Function} listener Callback function.\n *\n * @example\n * ```js\n * const { subscribe } = wp.data;\n *\n * const unsubscribe = subscribe( () => {\n * \t// You could use this opportunity to test whether the derived result of a\n * \t// selector has subsequently changed as the result of a state update.\n * } );\n *\n * // Later, if necessary...\n * unsubscribe();\n * ```\n */\n\nvar build_module_subscribe = default_registry.subscribe;\n/**\n * Registers a generic store.\n *\n * @param {string} key    Store registry key.\n * @param {Object} config Configuration (getSelectors, getActions, subscribe).\n */\n\nvar build_module_registerGenericStore = default_registry.registerGenericStore;\n/**\n * Registers a standard `@wordpress/data` store.\n *\n * @param {string} reducerKey Reducer key.\n * @param {Object} options    Store description (reducer, actions, selectors, resolvers).\n *\n * @return {Object} Registered store object.\n */\n\nvar build_module_registerStore = default_registry.registerStore;\n/**\n * Extends a registry to inherit functionality provided by a given plugin. A\n * plugin is an object with properties aligning to that of a registry, merged\n * to extend the default registry behavior.\n *\n * @param {Object} plugin Plugin object.\n */\n\nvar build_module_use = default_registry.use;\n\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ }),\n\n/***/ 55:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"isShallowEqual\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-date.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"date\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 410);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 249:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone.js\n//! version : 0.5.31\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif ( true && module.exports) {\n\t\tmodule.exports = factory(__webpack_require__(43)); // Node\n\t} else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(43)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));                 // AMD\n\t} else {}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.31\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils  = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname       : data[0],\n\t\t\tabbrs      : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets    : mapIndices(offsets, indices),\n\t\t\tuntils     : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name       = unpacked.name;\n\t\t\tthis.abbrs      = unpacked.abbrs;\n\t\t\tthis.untils     = unpacked.untils;\n\t\t\tthis.offsets    = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target  = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils  = this.untils,\n\t\t\t\tmax     = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset     = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout  = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version      = VERSION;\n\ttz.dataVersion  = '';\n\ttz._zones       = zones;\n\ttz._links       = links;\n\ttz._names       = names;\n\ttz._countries\t= countries;\n\ttz.add          = addZone;\n\ttz.link         = addLink;\n\ttz.load         = loadData;\n\ttz.zone         = getZone;\n\ttz.zoneExists   = zoneExists; // deprecated in 0.1.0\n\ttz.guess        = guess;\n\ttz.names        = getNames;\n\ttz.Zone         = Zone;\n\ttz.unpack       = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset  = needsOffset;\n\ttz.moveInvalidForward   = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries    = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName  = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr  = abbrWrap(fn.zoneAbbr);\n\tfn.utc       = resetZoneWrap(fn.utc);\n\tfn.local     = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n\n\n/***/ }),\n\n/***/ 410:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSettings\", function() { return setSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"__experimentalGetSettings\", function() { return __experimentalGetSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"format\", function() { return format; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"date\", function() { return date; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gmdate\", function() { return gmdate; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dateI18n\", function() { return dateI18n; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"gmdateI18n\", function() { return gmdateI18n; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInTheFuture\", function() { return isInTheFuture; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDate\", function() { return getDate; });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(249);\n/* harmony import */ var moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(411);\n/* harmony import */ var moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2__);\n/**\n * External dependencies\n */\n\n\n\n/** @typedef {import('moment').Moment} Moment */\n\nvar WP_ZONE = 'WP'; // This regular expression tests positive for UTC offsets as described in ISO 8601.\n// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n\nvar VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/; // Changes made here will likely need to be made in `lib/client-assets.php` as\n// well because it uses the `setSettings()` function to change these settings.\n\nvar settings = {\n  l10n: {\n    locale: 'en',\n    months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    meridiem: {\n      am: 'am',\n      pm: 'pm',\n      AM: 'AM',\n      PM: 'PM'\n    },\n    relative: {\n      future: '%s from now',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    }\n  },\n  formats: {\n    time: 'g: i a',\n    date: 'F j, Y',\n    datetime: 'F j, Y g: i a',\n    datetimeAbbreviated: 'M j, Y g: i a'\n  },\n  timezone: {\n    offset: '0',\n    string: ''\n  }\n};\n/**\n * Adds a locale to moment, using the format supplied by `wp_localize_script()`.\n *\n * @param {Object} dateSettings Settings, including locale data.\n */\n\nfunction setSettings(dateSettings) {\n  settings = dateSettings; // Backup and restore current locale.\n\n  var currentLocale = moment__WEBPACK_IMPORTED_MODULE_0___default.a.locale();\n  moment__WEBPACK_IMPORTED_MODULE_0___default.a.updateLocale(dateSettings.l10n.locale, {\n    // Inherit anything missing from the default locale.\n    parentLocale: currentLocale,\n    months: dateSettings.l10n.months,\n    monthsShort: dateSettings.l10n.monthsShort,\n    weekdays: dateSettings.l10n.weekdays,\n    weekdaysShort: dateSettings.l10n.weekdaysShort,\n    meridiem: function meridiem(hour, minute, isLowercase) {\n      if (hour < 12) {\n        return isLowercase ? dateSettings.l10n.meridiem.am : dateSettings.l10n.meridiem.AM;\n      }\n\n      return isLowercase ? dateSettings.l10n.meridiem.pm : dateSettings.l10n.meridiem.PM;\n    },\n    longDateFormat: {\n      LT: dateSettings.formats.time,\n      LTS: null,\n      L: null,\n      LL: dateSettings.formats.date,\n      LLL: dateSettings.formats.datetime,\n      LLLL: null\n    },\n    // From human_time_diff?\n    // Set to `(number, withoutSuffix, key, isFuture) => {}` instead.\n    relativeTime: dateSettings.l10n.relative\n  });\n  moment__WEBPACK_IMPORTED_MODULE_0___default.a.locale(currentLocale);\n  setupWPTimezone();\n}\n/**\n * Returns the currently defined date settings.\n *\n * @return {Object} Settings, including locale data.\n */\n\nfunction __experimentalGetSettings() {\n  return settings;\n}\n\nfunction setupWPTimezone() {\n  // Create WP timezone based off dateSettings.\n  moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz.add(moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz.pack({\n    name: WP_ZONE,\n    abbrs: [WP_ZONE],\n    untils: [null],\n    offsets: [-settings.timezone.offset * 60 || 0]\n  }));\n} // Date constants.\n\n/**\n * Number of seconds in one minute.\n *\n * @type {number}\n */\n\n\nvar MINUTE_IN_SECONDS = 60;\n/**\n * Number of minutes in one hour.\n *\n * @type {number}\n */\n\nvar HOUR_IN_MINUTES = 60;\n/**\n * Number of seconds in one hour.\n *\n * @type {number}\n */\n\nvar HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;\n/**\n * Map of PHP formats to Moment.js formats.\n *\n * These are used internally by {@link wp.date.format}, and are either\n * a string representing the corresponding Moment.js format code, or a\n * function which returns the formatted string.\n *\n * This should only be used through {@link wp.date.format}, not\n * directly.\n *\n * @type {Object}\n */\n\nvar formatMap = {\n  // Day\n  d: 'DD',\n  D: 'ddd',\n  j: 'D',\n  l: 'dddd',\n  N: 'E',\n\n  /**\n   * Gets the ordinal suffix.\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  S: function S(momentDate) {\n    // Do - D\n    var num = momentDate.format('D');\n    var withOrdinal = momentDate.format('Do');\n    return withOrdinal.replace(num, '');\n  },\n  w: 'd',\n\n  /**\n   * Gets the day of the year (zero-indexed).\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  z: function z(momentDate) {\n    // DDD - 1\n    return '' + parseInt(momentDate.format('DDD'), 10) - 1;\n  },\n  // Week\n  W: 'W',\n  // Month\n  F: 'MMMM',\n  m: 'MM',\n  M: 'MMM',\n  n: 'M',\n\n  /**\n   * Gets the days in the month.\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  t: function t(momentDate) {\n    return momentDate.daysInMonth();\n  },\n  // Year\n\n  /**\n   * Gets whether the current year is a leap year.\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  L: function L(momentDate) {\n    return momentDate.isLeapYear() ? '1' : '0';\n  },\n  o: 'GGGG',\n  Y: 'YYYY',\n  y: 'YY',\n  // Time\n  a: 'a',\n  A: 'A',\n\n  /**\n   * Gets the current time in Swatch Internet Time (.beats).\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  B: function B(momentDate) {\n    var timezoned = moment__WEBPACK_IMPORTED_MODULE_0___default()(momentDate).utcOffset(60);\n    var seconds = parseInt(timezoned.format('s'), 10),\n        minutes = parseInt(timezoned.format('m'), 10),\n        hours = parseInt(timezoned.format('H'), 10);\n    return parseInt((seconds + minutes * MINUTE_IN_SECONDS + hours * HOUR_IN_SECONDS) / 86.4, 10);\n  },\n  g: 'h',\n  G: 'H',\n  h: 'hh',\n  H: 'HH',\n  i: 'mm',\n  s: 'ss',\n  u: 'SSSSSS',\n  v: 'SSS',\n  // Timezone\n  e: 'zz',\n\n  /**\n   * Gets whether the timezone is in DST currently.\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  I: function I(momentDate) {\n    return momentDate.isDST() ? '1' : '0';\n  },\n  O: 'ZZ',\n  P: 'Z',\n  T: 'z',\n\n  /**\n   * Gets the timezone offset in seconds.\n   *\n   * @param {Moment} momentDate Moment instance.\n   *\n   * @return {string} Formatted date.\n   */\n  Z: function Z(momentDate) {\n    // Timezone offset in seconds.\n    var offset = momentDate.format('Z');\n    var sign = offset[0] === '-' ? -1 : 1;\n    var parts = offset.substring(1).split(':');\n    return sign * (parts[0] * HOUR_IN_MINUTES + parts[1]) * MINUTE_IN_SECONDS;\n  },\n  // Full date/time\n  c: 'YYYY-MM-DDTHH:mm:ssZ',\n  // .toISOString\n  r: 'ddd, D MMM YYYY HH:mm:ss ZZ',\n  U: 'X'\n};\n/**\n * Formats a date. Does not alter the date's timezone.\n *\n * @param {string}                  dateFormat PHP-style formatting string.\n *                                             See php.net/date.\n * @param {Date|string|Moment|null} dateValue  Date object or string,\n *                                             parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\n\nfunction format(dateFormat) {\n  var dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n  var i, char;\n  var newFormat = [];\n  var momentDate = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue);\n\n  for (i = 0; i < dateFormat.length; i++) {\n    char = dateFormat[i]; // Is this an escape?\n\n    if ('\\\\' === char) {\n      // Add next character, then move on.\n      i++;\n      newFormat.push('[' + dateFormat[i] + ']');\n      continue;\n    }\n\n    if (char in formatMap) {\n      if (typeof formatMap[char] !== 'string') {\n        // If the format is a function, call it.\n        newFormat.push('[' + formatMap[char](momentDate) + ']');\n      } else {\n        // Otherwise, add as a formatting string.\n        newFormat.push(formatMap[char]);\n      }\n    } else {\n      newFormat.push('[' + char + ']');\n    }\n  } // Join with [] between to separate characters, and replace\n  // unneeded separators with static text.\n\n\n  newFormat = newFormat.join('[]');\n  return momentDate.format(newFormat);\n}\n/**\n * Formats a date (like `date()` in PHP).\n *\n * @param {string}                  dateFormat PHP-style formatting string.\n *                                             See php.net/date.\n * @param {Date|string|Moment|null} dateValue  Date object or string, parsable\n *                                             by moment.js.\n * @param {string|number|null}      timezone   Timezone to output result in or a\n *                                             UTC offset. Defaults to timezone from\n *                                             site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date in English.\n */\n\nfunction date(dateFormat) {\n  var dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n  var timezone = arguments.length > 2 ? arguments[2] : undefined;\n  var dateMoment = buildMoment(dateValue, timezone);\n  return format(dateFormat, dateMoment);\n}\n/**\n * Formats a date (like `date()` in PHP), in the UTC timezone.\n *\n * @param {string}                  dateFormat PHP-style formatting string.\n *                                             See php.net/date.\n * @param {Date|string|Moment|null} dateValue  Date object or string,\n *                                             parsable by moment.js.\n *\n * @return {string} Formatted date in English.\n */\n\nfunction gmdate(dateFormat) {\n  var dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n  var dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue).utc();\n  return format(dateFormat, dateMoment);\n}\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale.\n *\n * Backward Compatibility Notice: if `timezone` is set to `true`, the function\n * behaves like `gmdateI18n`.\n *\n * @param {string}                     dateFormat PHP-style formatting string.\n *                                                See php.net/date.\n * @param {Date|string|Moment|null}    dateValue  Date object or string, parsable by\n *                                                moment.js.\n * @param {string|number|boolean|null} timezone   Timezone to output result in or a\n *                                                UTC offset. Defaults to timezone from\n *                                                site. Notice: `boolean` is effectively\n *                                                deprecated, but still supported for\n *                                                backward compatibility reasons.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date.\n */\n\nfunction dateI18n(dateFormat) {\n  var dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n  var timezone = arguments.length > 2 ? arguments[2] : undefined;\n\n  if (true === timezone) {\n    return gmdateI18n(dateFormat, dateValue);\n  }\n\n  if (false === timezone) {\n    timezone = undefined;\n  }\n\n  var dateMoment = buildMoment(dateValue, timezone);\n  dateMoment.locale(settings.l10n.locale);\n  return format(dateFormat, dateMoment);\n}\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale\n * and using the UTC timezone.\n *\n * @param {string}                  dateFormat PHP-style formatting string.\n *                                             See php.net/date.\n * @param {Date|string|Moment|null} dateValue  Date object or string,\n *                                             parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\n\nfunction gmdateI18n(dateFormat) {\n  var dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();\n  var dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue).utc();\n  dateMoment.locale(settings.l10n.locale);\n  return format(dateFormat, dateMoment);\n}\n/**\n * Check whether a date is considered in the future according to the WordPress settings.\n *\n * @param {string} dateValue Date String or Date object in the Defined WP Timezone.\n *\n * @return {boolean} Is in the future.\n */\n\nfunction isInTheFuture(dateValue) {\n  var now = moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz(WP_ZONE);\n  var momentObject = moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz(dateValue, WP_ZONE);\n  return momentObject.isAfter(now);\n}\n/**\n * Create and return a JavaScript Date Object from a date string in the WP timezone.\n *\n * @param {string?} dateString Date formatted in the WP timezone.\n *\n * @return {Date} Date\n */\n\nfunction getDate(dateString) {\n  if (!dateString) {\n    return moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz(WP_ZONE).toDate();\n  }\n\n  return moment__WEBPACK_IMPORTED_MODULE_0___default.a.tz(dateString, WP_ZONE).toDate();\n}\n/**\n * Creates a moment instance using the given timezone or, if none is provided, using global settings.\n *\n * @param {Date|string|Moment|null} dateValue Date object or string, parsable\n *                                            by moment.js.\n * @param {string|number|null}      timezone  Timezone to output result in or a\n *                                            UTC offset. Defaults to timezone from\n *                                            site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {Moment} a moment instance.\n */\n\nfunction buildMoment(dateValue) {\n  var timezone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue);\n\n  if (timezone && !isUTCOffset(timezone)) {\n    return dateMoment.tz(timezone);\n  }\n\n  if (timezone && isUTCOffset(timezone)) {\n    return dateMoment.utcOffset(timezone);\n  }\n\n  if (settings.timezone.string) {\n    return dateMoment.tz(settings.timezone.string);\n  }\n\n  return dateMoment.utcOffset(settings.timezone.offset);\n}\n/**\n * Returns whether a certain UTC offset is valid or not.\n *\n * @param {number|string} offset a UTC offset.\n *\n * @return {boolean} whether a certain UTC offset is valid or not.\n */\n\n\nfunction isUTCOffset(offset) {\n  if ('number' === typeof offset) {\n    return true;\n  }\n\n  return VALID_UTC_OFFSET.test(offset);\n}\n\nsetupWPTimezone();\n\n\n/***/ }),\n\n/***/ 411:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//! moment-timezone-utils.js\n//! version : 0.5.31\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n    if ( true && module.exports) {\n        module.exports = factory(__webpack_require__(412));     // Node\n    } else if (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(43)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));                 // AMD\n\t} else {}\n}(this, function (moment) {\n\t\"use strict\";\n\n\tif (!moment.tz) {\n\t\tthrow new Error(\"moment-timezone-utils.js must be loaded after moment-timezone.js\");\n\t}\n\n\t/************************************\n\t\tPack Base 60\n\t************************************/\n\n\tvar BASE60 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX',\n\t\tEPSILON = 0.000001; // Used to fix floating point rounding errors\n\n\tfunction packBase60Fraction(fraction, precision) {\n\t\tvar buffer = '.',\n\t\t\toutput = '',\n\t\t\tcurrent;\n\n\t\twhile (precision > 0) {\n\t\t\tprecision  -= 1;\n\t\t\tfraction   *= 60;\n\t\t\tcurrent     = Math.floor(fraction + EPSILON);\n\t\t\tbuffer     += BASE60[current];\n\t\t\tfraction   -= current;\n\n\t\t\t// Only add buffer to output once we have a non-zero value.\n\t\t\t// This makes '.000' output '', and '.100' output '.1'\n\t\t\tif (current) {\n\t\t\t\toutput += buffer;\n\t\t\t\tbuffer  = '';\n\t\t\t}\n\t\t}\n\n\t\treturn output;\n\t}\n\n\tfunction packBase60(number, precision) {\n\t\tvar output = '',\n\t\t\tabsolute = Math.abs(number),\n\t\t\twhole = Math.floor(absolute),\n\t\t\tfraction = packBase60Fraction(absolute - whole, Math.min(~~precision, 10));\n\n\t\twhile (whole > 0) {\n\t\t\toutput = BASE60[whole % 60] + output;\n\t\t\twhole = Math.floor(whole / 60);\n\t\t}\n\n\t\tif (number < 0) {\n\t\t\toutput = '-' + output;\n\t\t}\n\n\t\tif (output && fraction) {\n\t\t\treturn output + fraction;\n\t\t}\n\n\t\tif (!fraction && output === '-') {\n\t\t\treturn '0';\n\t\t}\n\n\t\treturn output || fraction || '0';\n\t}\n\n\t/************************************\n\t\tPack\n\t************************************/\n\n\tfunction packUntils(untils) {\n\t\tvar out = [],\n\t\t\tlast = 0,\n\t\t\ti;\n\n\t\tfor (i = 0; i < untils.length - 1; i++) {\n\t\t\tout[i] = packBase60(Math.round((untils[i] - last) / 1000) / 60, 1);\n\t\t\tlast = untils[i];\n\t\t}\n\n\t\treturn out.join(' ');\n\t}\n\n\tfunction packAbbrsAndOffsets(source) {\n\t\tvar index = 0,\n\t\t\tabbrs = [],\n\t\t\toffsets = [],\n\t\t\tindices = [],\n\t\t\tmap = {},\n\t\t\ti, key;\n\n\t\tfor (i = 0; i < source.abbrs.length; i++) {\n\t\t\tkey = source.abbrs[i] + '|' + source.offsets[i];\n\t\t\tif (map[key] === undefined) {\n\t\t\t\tmap[key] = index;\n\t\t\t\tabbrs[index] = source.abbrs[i];\n\t\t\t\toffsets[index] = packBase60(Math.round(source.offsets[i] * 60) / 60, 1);\n\t\t\t\tindex++;\n\t\t\t}\n\t\t\tindices[i] = packBase60(map[key], 0);\n\t\t}\n\n\t\treturn abbrs.join(' ') + '|' + offsets.join(' ') + '|' + indices.join('');\n\t}\n\n\tfunction packPopulation (number) {\n\t\tif (!number) {\n\t\t\treturn '';\n\t\t}\n\t\tif (number < 1000) {\n\t\t\treturn number;\n\t\t}\n\t\tvar exponent = String(number | 0).length - 2;\n\t\tvar precision = Math.round(number / Math.pow(10, exponent));\n\t\treturn precision + 'e' + exponent;\n\t}\n\n\tfunction packCountries (countries) {\n\t\tif (!countries) {\n\t\t\treturn '';\n\t\t}\n\t\treturn countries.join(' ');\n\t}\n\n\tfunction validatePackData (source) {\n\t\tif (!source.name)    { throw new Error(\"Missing name\"); }\n\t\tif (!source.abbrs)   { throw new Error(\"Missing abbrs\"); }\n\t\tif (!source.untils)  { throw new Error(\"Missing untils\"); }\n\t\tif (!source.offsets) { throw new Error(\"Missing offsets\"); }\n\t\tif (\n\t\t\tsource.offsets.length !== source.untils.length ||\n\t\t\tsource.offsets.length !== source.abbrs.length\n\t\t) {\n\t\t\tthrow new Error(\"Mismatched array lengths\");\n\t\t}\n\t}\n\n\tfunction pack (source) {\n\t\tvalidatePackData(source);\n\t\treturn [\n\t\t\tsource.name, // 0 - timezone name\n\t\t\tpackAbbrsAndOffsets(source), // 1 - abbrs, 2 - offsets, 3 - indices\n\t\t\tpackUntils(source.untils), // 4 - untils\n\t\t\tpackPopulation(source.population) // 5 - population\n\t\t].join('|');\n\t}\n\n\tfunction packCountry (source) {\n\t\treturn [\n\t\t\tsource.name,\n\t\t\tsource.zones.join(' '),\n\t\t].join('|');\n\t}\n\n\t/************************************\n\t\tCreate Links\n\t************************************/\n\n\tfunction arraysAreEqual(a, b) {\n\t\tvar i;\n\n\t\tif (a.length !== b.length) { return false; }\n\n\t\tfor (i = 0; i < a.length; i++) {\n\t\t\tif (a[i] !== b[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction zonesAreEqual(a, b) {\n\t\treturn arraysAreEqual(a.offsets, b.offsets) && arraysAreEqual(a.abbrs, b.abbrs) && arraysAreEqual(a.untils, b.untils);\n\t}\n\n\tfunction findAndCreateLinks (input, output, links, groupLeaders) {\n\t\tvar i, j, a, b, group, foundGroup, groups = [];\n\n\t\tfor (i = 0; i < input.length; i++) {\n\t\t\tfoundGroup = false;\n\t\t\ta = input[i];\n\n\t\t\tfor (j = 0; j < groups.length; j++) {\n\t\t\t\tgroup = groups[j];\n\t\t\t\tb = group[0];\n\t\t\t\tif (zonesAreEqual(a, b)) {\n\t\t\t\t\tif (a.population > b.population) {\n\t\t\t\t\t\tgroup.unshift(a);\n\t\t\t\t\t} else if (a.population === b.population && groupLeaders && groupLeaders[a.name]) {\n                        group.unshift(a);\n                    } else {\n\t\t\t\t\t\tgroup.push(a);\n\t\t\t\t\t}\n\t\t\t\t\tfoundGroup = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!foundGroup) {\n\t\t\t\tgroups.push([a]);\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < groups.length; i++) {\n\t\t\tgroup = groups[i];\n\t\t\toutput.push(group[0]);\n\t\t\tfor (j = 1; j < group.length; j++) {\n\t\t\t\tlinks.push(group[0].name + '|' + group[j].name);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction createLinks (source, groupLeaders) {\n\t\tvar zones = [],\n\t\t\tlinks = [];\n\n\t\tif (source.links) {\n\t\t\tlinks = source.links.slice();\n\t\t}\n\n\t\tfindAndCreateLinks(source.zones, zones, links, groupLeaders);\n\n\t\treturn {\n\t\t\tversion \t: source.version,\n\t\t\tzones   \t: zones,\n\t\t\tlinks   \t: links.sort()\n\t\t};\n\t}\n\n\t/************************************\n\t\tFilter Years\n\t************************************/\n\n\tfunction findStartAndEndIndex (untils, start, end) {\n\t\tvar startI = 0,\n\t\t\tendI = untils.length + 1,\n\t\t\tuntilYear,\n\t\t\ti;\n\n\t\tif (!end) {\n\t\t\tend = start;\n\t\t}\n\n\t\tif (start > end) {\n\t\t\ti = start;\n\t\t\tstart = end;\n\t\t\tend = i;\n\t\t}\n\n\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\tif (untils[i] == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tuntilYear = new Date(untils[i]).getUTCFullYear();\n\t\t\tif (untilYear < start) {\n\t\t\t\tstartI = i + 1;\n\t\t\t}\n\t\t\tif (untilYear > end) {\n\t\t\t\tendI = Math.min(endI, i + 1);\n\t\t\t}\n\t\t}\n\n\t\treturn [startI, endI];\n\t}\n\n\tfunction filterYears (source, start, end) {\n\t\tvar slice     = Array.prototype.slice,\n\t\t\tindices   = findStartAndEndIndex(source.untils, start, end),\n\t\t\tuntils    = slice.apply(source.untils, indices);\n\n\t\tuntils[untils.length - 1] = null;\n\n\t\treturn {\n\t\t\tname       : source.name,\n\t\t\tabbrs      : slice.apply(source.abbrs, indices),\n\t\t\tuntils     : untils,\n\t\t\toffsets    : slice.apply(source.offsets, indices),\n\t\t\tpopulation : source.population,\n\t\t\tcountries  : source.countries\n\t\t};\n\t}\n\n\t/************************************\n\t\tFilter, Link, and Pack\n\t************************************/\n\n\tfunction filterLinkPack (input, start, end, groupLeaders) {\n\t\tvar i,\n\t\t\tinputZones = input.zones,\n\t\t\toutputZones = [],\n\t\t\toutput;\n\n\t\tfor (i = 0; i < inputZones.length; i++) {\n\t\t\toutputZones[i] = filterYears(inputZones[i], start, end);\n\t\t}\n\n\t\toutput = createLinks({\n\t\t\tzones : outputZones,\n\t\t\tlinks : input.links.slice(),\n\t\t\tversion : input.version\n\t\t}, groupLeaders);\n\n\t\tfor (i = 0; i < output.zones.length; i++) {\n\t\t\toutput.zones[i] = pack(output.zones[i]);\n\t\t}\n\n\t\toutput.countries = input.countries ? input.countries.map(function (unpacked) {\n\t\t\treturn packCountry(unpacked);\n\t\t}) : [];\n\n\t\treturn output;\n\t}\n\n\t/************************************\n\t\tExports\n\t************************************/\n\n\tmoment.tz.pack           = pack;\n\tmoment.tz.packBase60     = packBase60;\n\tmoment.tz.createLinks    = createLinks;\n\tmoment.tz.filterYears    = filterYears;\n\tmoment.tz.filterLinkPack = filterLinkPack;\n\tmoment.tz.packCountry\t = packCountry;\n\n\treturn moment;\n}));\n\n\n/***/ }),\n\n/***/ 412:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar moment = module.exports = __webpack_require__(249);\nmoment.tz.load(__webpack_require__(413));\n\n\n/***/ }),\n\n/***/ 413:\n/***/ (function(module) {\n\nmodule.exports = JSON.parse(\"{\\\"version\\\":\\\"2020a\\\",\\\"zones\\\":[\\\"Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5\\\",\\\"Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5\\\",\\\"Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5\\\",\\\"Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5\\\",\\\"Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6\\\",\\\"Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4\\\",\\\"Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5\\\",\\\"Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6\\\",\\\"Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5\\\",\\\"Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3\\\",\\\"Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4\\\",\\\"Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5\\\",\\\"Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|\\\",\\\"Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5\\\",\\\"Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5\\\",\\\"Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5\\\",\\\"Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|\\\",\\\"Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5\\\",\\\"Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5\\\",\\\"Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4\\\",\\\"America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326\\\",\\\"America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4\\\",\\\"America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3\\\",\\\"America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4\\\",\\\"America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\\\",\\\"America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\\\",\\\"America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|\\\",\\\"America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|\\\",\\\"America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\\\",\\\"America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|\\\",\\\"America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|\\\",\\\"America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|\\\",\\\"America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|\\\",\\\"America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|\\\",\\\"America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|\\\",\\\"America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|\\\",\\\"America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4\\\",\\\"America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5\\\",\\\"America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2\\\",\\\"America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3\\\",\\\"America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5\\\",\\\"America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4\\\",\\\"America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5\\\",\\\"America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3\\\",\\\"America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2\\\",\\\"America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2\\\",\\\"America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5\\\",\\\"America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4\\\",\\\"America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2\\\",\\\"America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4\\\",\\\"America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4\\\",\\\"America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5\\\",\\\"America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3\\\",\\\"America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5\\\",\\\"America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5\\\",\\\"America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4\\\",\\\"America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5\\\",\\\"America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2\\\",\\\"America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4\\\",\\\"America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8\\\",\\\"America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3\\\",\\\"America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|13e2\\\",\\\"America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5\\\",\\\"America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5\\\",\\\"America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5\\\",\\\"America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3\\\",\\\"America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5\\\",\\\"America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5\\\",\\\"America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2\\\",\\\"America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5\\\",\\\"America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\\\",\\\"America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3\\\",\\\"America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2\\\",\\\"America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2\\\",\\\"America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5\\\",\\\"America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5\\\",\\\"America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4\\\",\\\"America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4\\\",\\\"America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\\\",\\\"America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4\\\",\\\"America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2\\\",\\\"America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2\\\",\\\"America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4\\\",\\\"America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3\\\",\\\"America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5\\\",\\\"America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6\\\",\\\"America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6\\\",\\\"America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4\\\",\\\"America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5\\\",\\\"America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5\\\",\\\"America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4\\\",\\\"America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4\\\",\\\"America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4\\\",\\\"America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2\\\",\\\"America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5\\\",\\\"America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\\\",\\\"America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6\\\",\\\"America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2\\\",\\\"America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3\\\",\\\"America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5\\\",\\\"America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5\\\",\\\"America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5\\\",\\\"America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4\\\",\\\"America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6\\\",\\\"America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2\\\",\\\"America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2\\\",\\\"America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2\\\",\\\"America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3\\\",\\\"America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2\\\",\\\"America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4\\\",\\\"America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5\\\",\\\"America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\\\",\\\"America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4\\\",\\\"America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4\\\",\\\"America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5\\\",\\\"America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|\\\",\\\"America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842\\\",\\\"America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2\\\",\\\"America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5\\\",\\\"America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4\\\",\\\"America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229\\\",\\\"America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4\\\",\\\"America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5\\\",\\\"America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5\\\",\\\"America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6\\\",\\\"America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452\\\",\\\"America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2\\\",\\\"America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\\\",\\\"America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3\\\",\\\"America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5\\\",\\\"America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656\\\",\\\"America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4\\\",\\\"America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5\\\",\\\"America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|23e3\\\",\\\"America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4\\\",\\\"America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642\\\",\\\"America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3\\\",\\\"Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10\\\",\\\"Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70\\\",\\\"Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80\\\",\\\"Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1\\\",\\\"Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60\\\",\\\"Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5\\\",\\\"Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40\\\",\\\"Antarctica/Rothera|-00 -03|0 30|01|gOo0|130\\\",\\\"Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20\\\",\\\"Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40\\\",\\\"Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25\\\",\\\"Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4\\\",\\\"Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5\\\",\\\"Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5\\\",\\\"Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5\\\",\\\"Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3\\\",\\\"Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4\\\",\\\"Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4\\\",\\\"Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4\\\",\\\"Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\\\",\\\"Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5\\\",\\\"Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4\\\",\\\"Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5\\\",\\\"Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6\\\",\\\"Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|\\\",\\\"Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5\\\",\\\"Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4\\\",\\\"Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4\\\",\\\"Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6\\\",\\\"Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4\\\",\\\"Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3\\\",\\\"Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6\\\",\\\"Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5\\\",\\\"Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6\\\",\\\"Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5\\\",\\\"Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4\\\",\\\"Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5\\\",\\\"Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4\\\",\\\"Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\\\",\\\"Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|0101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|18e5\\\",\\\"Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|25e4\\\",\\\"Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5\\\",\\\"Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5\\\",\\\"Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3\\\",\\\"Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\\\",\\\"Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6\\\",\\\"Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6\\\",\\\"Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4\\\",\\\"Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4\\\",\\\"Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5\\\",\\\"Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4\\\",\\\"Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6\\\",\\\"Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5\\\",\\\"Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5\\\",\\\"Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2\\\",\\\"Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5\\\",\\\"Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5\\\",\\\"Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4\\\",\\\"Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4\\\",\\\"Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3\\\",\\\"Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5\\\",\\\"Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6\\\",\\\"Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4\\\",\\\"Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4\\\",\\\"Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5\\\",\\\"Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5\\\",\\\"Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4\\\",\\\"Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4\\\",\\\"Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5\\\",\\\"Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|\\\",\\\"Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4\\\",\\\"Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5\\\",\\\"Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4\\\",\\\"Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4\\\",\\\"Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6\\\",\\\"Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2\\\",\\\"Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5\\\",\\\"Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5\\\",\\\"Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5\\\",\\\"Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6\\\",\\\"Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3\\\",\\\"Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6\\\",\\\"Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5\\\",\\\"Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5\\\",\\\"Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2\\\",\\\"Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4\\\",\\\"Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4\\\",\\\"Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5\\\",\\\"Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5\\\",\\\"Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4\\\",\\\"Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3\\\",\\\"Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\\\",\\\"Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4\\\",\\\"Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3\\\",\\\"Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4\\\",\\\"Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4\\\",\\\"Atlantic/South_Georgia|-02|20|0||30\\\",\\\"Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2\\\",\\\"Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5\\\",\\\"Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5\\\",\\\"Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5\\\",\\\"Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3\\\",\\\"Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746\\\",\\\"Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4\\\",\\\"Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368\\\",\\\"Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4\\\",\\\"Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347\\\",\\\"Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10\\\",\\\"Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5\\\",\\\"Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5\\\",\\\"CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\\\",\\\"Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2\\\",\\\"CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\\\",\\\"Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\\\",\\\"EST|EST|50|0||\\\",\\\"EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"Etc/GMT-0|GMT|0|0||\\\",\\\"Etc/GMT-1|+01|-10|0||\\\",\\\"Pacific/Port_Moresby|+10|-a0|0||25e4\\\",\\\"Etc/GMT-11|+11|-b0|0||\\\",\\\"Pacific/Tarawa|+12|-c0|0||29e3\\\",\\\"Etc/GMT-13|+13|-d0|0||\\\",\\\"Etc/GMT-14|+14|-e0|0||\\\",\\\"Etc/GMT-2|+02|-20|0||\\\",\\\"Etc/GMT-3|+03|-30|0||\\\",\\\"Etc/GMT-4|+04|-40|0||\\\",\\\"Etc/GMT-5|+05|-50|0||\\\",\\\"Etc/GMT-6|+06|-60|0||\\\",\\\"Indian/Christmas|+07|-70|0||21e2\\\",\\\"Etc/GMT-8|+08|-80|0||\\\",\\\"Pacific/Palau|+09|-90|0||21e3\\\",\\\"Etc/GMT+1|-01|10|0||\\\",\\\"Etc/GMT+10|-10|a0|0||\\\",\\\"Etc/GMT+11|-11|b0|0||\\\",\\\"Etc/GMT+12|-12|c0|0||\\\",\\\"Etc/GMT+3|-03|30|0||\\\",\\\"Etc/GMT+4|-04|40|0||\\\",\\\"Etc/GMT+5|-05|50|0||\\\",\\\"Etc/GMT+6|-06|60|0||\\\",\\\"Etc/GMT+7|-07|70|0||\\\",\\\"Etc/GMT+8|-08|80|0||\\\",\\\"Etc/GMT+9|-09|90|0||\\\",\\\"Etc/UTC|UTC|0|0||\\\",\\\"Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5\\\",\\\"Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3\\\",\\\"Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5\\\",\\\"Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5\\\",\\\"Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6\\\",\\\"Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\\\",\\\"Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5\\\",\\\"Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5\\\",\\\"Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5\\\",\\\"Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5\\\",\\\"Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\\\",\\\"Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4\\\",\\\"Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4\\\",\\\"Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\\\",\\\"Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3\\\",\\\"Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\\\",\\\"Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4\\\",\\\"Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5\\\",\\\"Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4\\\",\\\"Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5\\\",\\\"Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\\\",\\\"Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5\\\",\\\"Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\\\",\\\"Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5\\\",\\\"Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3\\\",\\\"Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6\\\",\\\"Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6\\\",\\\"Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4\\\",\\\"Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5\\\",\\\"Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5\\\",\\\"Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|\\\",\\\"Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4\\\",\\\"Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5\\\",\\\"Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5\\\",\\\"Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4\\\",\\\"Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4\\\",\\\"Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5\\\",\\\"Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4\\\",\\\"Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5\\\",\\\"Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4\\\",\\\"Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0|10e5\\\",\\\"Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5\\\",\\\"Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4\\\",\\\"HST|HST|a0|0||\\\",\\\"Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2\\\",\\\"Indian/Cocos|+0630|-6u|0||596\\\",\\\"Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130\\\",\\\"Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3\\\",\\\"Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4\\\",\\\"Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4\\\",\\\"Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4\\\",\\\"Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3\\\",\\\"MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\\\",\\\"MST|MST|70|0||\\\",\\\"MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600\\\",\\\"Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3\\\",\\\"Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4\\\",\\\"Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3\\\",\\\"Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3\\\",\\\"Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1\\\",\\\"Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483\\\",\\\"Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4\\\",\\\"Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3\\\",\\\"Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125\\\",\\\"Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4\\\",\\\"Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4\\\",\\\"Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4\\\",\\\"Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2\\\",\\\"Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2\\\",\\\"Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3\\\",\\\"Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2\\\",\\\"Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2\\\",\\\"Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3\\\",\\\"Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2\\\",\\\"Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4\\\",\\\"Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3\\\",\\\"Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56\\\",\\\"Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3\\\",\\\"Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3\\\",\\\"Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4\\\",\\\"Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3\\\",\\\"PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|\\\",\\\"WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|\\\"],\\\"links\\\":[\\\"Africa/Abidjan|Africa/Bamako\\\",\\\"Africa/Abidjan|Africa/Banjul\\\",\\\"Africa/Abidjan|Africa/Conakry\\\",\\\"Africa/Abidjan|Africa/Dakar\\\",\\\"Africa/Abidjan|Africa/Freetown\\\",\\\"Africa/Abidjan|Africa/Lome\\\",\\\"Africa/Abidjan|Africa/Nouakchott\\\",\\\"Africa/Abidjan|Africa/Ouagadougou\\\",\\\"Africa/Abidjan|Africa/Timbuktu\\\",\\\"Africa/Abidjan|Atlantic/St_Helena\\\",\\\"Africa/Cairo|Egypt\\\",\\\"Africa/Johannesburg|Africa/Maseru\\\",\\\"Africa/Johannesburg|Africa/Mbabane\\\",\\\"Africa/Lagos|Africa/Bangui\\\",\\\"Africa/Lagos|Africa/Brazzaville\\\",\\\"Africa/Lagos|Africa/Douala\\\",\\\"Africa/Lagos|Africa/Kinshasa\\\",\\\"Africa/Lagos|Africa/Libreville\\\",\\\"Africa/Lagos|Africa/Luanda\\\",\\\"Africa/Lagos|Africa/Malabo\\\",\\\"Africa/Lagos|Africa/Niamey\\\",\\\"Africa/Lagos|Africa/Porto-Novo\\\",\\\"Africa/Maputo|Africa/Blantyre\\\",\\\"Africa/Maputo|Africa/Bujumbura\\\",\\\"Africa/Maputo|Africa/Gaborone\\\",\\\"Africa/Maputo|Africa/Harare\\\",\\\"Africa/Maputo|Africa/Kigali\\\",\\\"Africa/Maputo|Africa/Lubumbashi\\\",\\\"Africa/Maputo|Africa/Lusaka\\\",\\\"Africa/Nairobi|Africa/Addis_Ababa\\\",\\\"Africa/Nairobi|Africa/Asmara\\\",\\\"Africa/Nairobi|Africa/Asmera\\\",\\\"Africa/Nairobi|Africa/Dar_es_Salaam\\\",\\\"Africa/Nairobi|Africa/Djibouti\\\",\\\"Africa/Nairobi|Africa/Kampala\\\",\\\"Africa/Nairobi|Africa/Mogadishu\\\",\\\"Africa/Nairobi|Indian/Antananarivo\\\",\\\"Africa/Nairobi|Indian/Comoro\\\",\\\"Africa/Nairobi|Indian/Mayotte\\\",\\\"Africa/Tripoli|Libya\\\",\\\"America/Adak|America/Atka\\\",\\\"America/Adak|US/Aleutian\\\",\\\"America/Anchorage|US/Alaska\\\",\\\"America/Argentina/Buenos_Aires|America/Buenos_Aires\\\",\\\"America/Argentina/Catamarca|America/Argentina/ComodRivadavia\\\",\\\"America/Argentina/Catamarca|America/Catamarca\\\",\\\"America/Argentina/Cordoba|America/Cordoba\\\",\\\"America/Argentina/Cordoba|America/Rosario\\\",\\\"America/Argentina/Jujuy|America/Jujuy\\\",\\\"America/Argentina/Mendoza|America/Mendoza\\\",\\\"America/Atikokan|America/Coral_Harbour\\\",\\\"America/Chicago|US/Central\\\",\\\"America/Curacao|America/Aruba\\\",\\\"America/Curacao|America/Kralendijk\\\",\\\"America/Curacao|America/Lower_Princes\\\",\\\"America/Denver|America/Shiprock\\\",\\\"America/Denver|Navajo\\\",\\\"America/Denver|US/Mountain\\\",\\\"America/Detroit|US/Michigan\\\",\\\"America/Edmonton|Canada/Mountain\\\",\\\"America/Fort_Wayne|America/Indiana/Indianapolis\\\",\\\"America/Fort_Wayne|America/Indianapolis\\\",\\\"America/Fort_Wayne|US/East-Indiana\\\",\\\"America/Godthab|America/Nuuk\\\",\\\"America/Halifax|Canada/Atlantic\\\",\\\"America/Havana|Cuba\\\",\\\"America/Indiana/Knox|America/Knox_IN\\\",\\\"America/Indiana/Knox|US/Indiana-Starke\\\",\\\"America/Jamaica|Jamaica\\\",\\\"America/Kentucky/Louisville|America/Louisville\\\",\\\"America/Los_Angeles|US/Pacific\\\",\\\"America/Los_Angeles|US/Pacific-New\\\",\\\"America/Manaus|Brazil/West\\\",\\\"America/Mazatlan|Mexico/BajaSur\\\",\\\"America/Mexico_City|Mexico/General\\\",\\\"America/New_York|US/Eastern\\\",\\\"America/Noronha|Brazil/DeNoronha\\\",\\\"America/Panama|America/Cayman\\\",\\\"America/Phoenix|US/Arizona\\\",\\\"America/Port_of_Spain|America/Anguilla\\\",\\\"America/Port_of_Spain|America/Antigua\\\",\\\"America/Port_of_Spain|America/Dominica\\\",\\\"America/Port_of_Spain|America/Grenada\\\",\\\"America/Port_of_Spain|America/Guadeloupe\\\",\\\"America/Port_of_Spain|America/Marigot\\\",\\\"America/Port_of_Spain|America/Montserrat\\\",\\\"America/Port_of_Spain|America/St_Barthelemy\\\",\\\"America/Port_of_Spain|America/St_Kitts\\\",\\\"America/Port_of_Spain|America/St_Lucia\\\",\\\"America/Port_of_Spain|America/St_Thomas\\\",\\\"America/Port_of_Spain|America/St_Vincent\\\",\\\"America/Port_of_Spain|America/Tortola\\\",\\\"America/Port_of_Spain|America/Virgin\\\",\\\"America/Regina|Canada/Saskatchewan\\\",\\\"America/Rio_Branco|America/Porto_Acre\\\",\\\"America/Rio_Branco|Brazil/Acre\\\",\\\"America/Santiago|Chile/Continental\\\",\\\"America/Sao_Paulo|Brazil/East\\\",\\\"America/St_Johns|Canada/Newfoundland\\\",\\\"America/Tijuana|America/Ensenada\\\",\\\"America/Tijuana|America/Santa_Isabel\\\",\\\"America/Tijuana|Mexico/BajaNorte\\\",\\\"America/Toronto|America/Montreal\\\",\\\"America/Toronto|Canada/Eastern\\\",\\\"America/Vancouver|Canada/Pacific\\\",\\\"America/Whitehorse|Canada/Yukon\\\",\\\"America/Winnipeg|Canada/Central\\\",\\\"Asia/Ashgabat|Asia/Ashkhabad\\\",\\\"Asia/Bangkok|Asia/Phnom_Penh\\\",\\\"Asia/Bangkok|Asia/Vientiane\\\",\\\"Asia/Dhaka|Asia/Dacca\\\",\\\"Asia/Dubai|Asia/Muscat\\\",\\\"Asia/Ho_Chi_Minh|Asia/Saigon\\\",\\\"Asia/Hong_Kong|Hongkong\\\",\\\"Asia/Jerusalem|Asia/Tel_Aviv\\\",\\\"Asia/Jerusalem|Israel\\\",\\\"Asia/Kathmandu|Asia/Katmandu\\\",\\\"Asia/Kolkata|Asia/Calcutta\\\",\\\"Asia/Kuala_Lumpur|Asia/Singapore\\\",\\\"Asia/Kuala_Lumpur|Singapore\\\",\\\"Asia/Macau|Asia/Macao\\\",\\\"Asia/Makassar|Asia/Ujung_Pandang\\\",\\\"Asia/Nicosia|Europe/Nicosia\\\",\\\"Asia/Qatar|Asia/Bahrain\\\",\\\"Asia/Rangoon|Asia/Yangon\\\",\\\"Asia/Riyadh|Asia/Aden\\\",\\\"Asia/Riyadh|Asia/Kuwait\\\",\\\"Asia/Seoul|ROK\\\",\\\"Asia/Shanghai|Asia/Chongqing\\\",\\\"Asia/Shanghai|Asia/Chungking\\\",\\\"Asia/Shanghai|Asia/Harbin\\\",\\\"Asia/Shanghai|PRC\\\",\\\"Asia/Taipei|ROC\\\",\\\"Asia/Tehran|Iran\\\",\\\"Asia/Thimphu|Asia/Thimbu\\\",\\\"Asia/Tokyo|Japan\\\",\\\"Asia/Ulaanbaatar|Asia/Ulan_Bator\\\",\\\"Asia/Urumqi|Asia/Kashgar\\\",\\\"Atlantic/Faroe|Atlantic/Faeroe\\\",\\\"Atlantic/Reykjavik|Iceland\\\",\\\"Atlantic/South_Georgia|Etc/GMT+2\\\",\\\"Australia/Adelaide|Australia/South\\\",\\\"Australia/Brisbane|Australia/Queensland\\\",\\\"Australia/Broken_Hill|Australia/Yancowinna\\\",\\\"Australia/Darwin|Australia/North\\\",\\\"Australia/Hobart|Australia/Tasmania\\\",\\\"Australia/Lord_Howe|Australia/LHI\\\",\\\"Australia/Melbourne|Australia/Victoria\\\",\\\"Australia/Perth|Australia/West\\\",\\\"Australia/Sydney|Australia/ACT\\\",\\\"Australia/Sydney|Australia/Canberra\\\",\\\"Australia/Sydney|Australia/NSW\\\",\\\"Etc/GMT-0|Etc/GMT\\\",\\\"Etc/GMT-0|Etc/GMT+0\\\",\\\"Etc/GMT-0|Etc/GMT0\\\",\\\"Etc/GMT-0|Etc/Greenwich\\\",\\\"Etc/GMT-0|GMT\\\",\\\"Etc/GMT-0|GMT+0\\\",\\\"Etc/GMT-0|GMT-0\\\",\\\"Etc/GMT-0|GMT0\\\",\\\"Etc/GMT-0|Greenwich\\\",\\\"Etc/UTC|Etc/UCT\\\",\\\"Etc/UTC|Etc/Universal\\\",\\\"Etc/UTC|Etc/Zulu\\\",\\\"Etc/UTC|UCT\\\",\\\"Etc/UTC|UTC\\\",\\\"Etc/UTC|Universal\\\",\\\"Etc/UTC|Zulu\\\",\\\"Europe/Belgrade|Europe/Ljubljana\\\",\\\"Europe/Belgrade|Europe/Podgorica\\\",\\\"Europe/Belgrade|Europe/Sarajevo\\\",\\\"Europe/Belgrade|Europe/Skopje\\\",\\\"Europe/Belgrade|Europe/Zagreb\\\",\\\"Europe/Chisinau|Europe/Tiraspol\\\",\\\"Europe/Dublin|Eire\\\",\\\"Europe/Helsinki|Europe/Mariehamn\\\",\\\"Europe/Istanbul|Asia/Istanbul\\\",\\\"Europe/Istanbul|Turkey\\\",\\\"Europe/Lisbon|Portugal\\\",\\\"Europe/London|Europe/Belfast\\\",\\\"Europe/London|Europe/Guernsey\\\",\\\"Europe/London|Europe/Isle_of_Man\\\",\\\"Europe/London|Europe/Jersey\\\",\\\"Europe/London|GB\\\",\\\"Europe/London|GB-Eire\\\",\\\"Europe/Moscow|W-SU\\\",\\\"Europe/Oslo|Arctic/Longyearbyen\\\",\\\"Europe/Oslo|Atlantic/Jan_Mayen\\\",\\\"Europe/Prague|Europe/Bratislava\\\",\\\"Europe/Rome|Europe/San_Marino\\\",\\\"Europe/Rome|Europe/Vatican\\\",\\\"Europe/Warsaw|Poland\\\",\\\"Europe/Zurich|Europe/Busingen\\\",\\\"Europe/Zurich|Europe/Vaduz\\\",\\\"Indian/Christmas|Etc/GMT-7\\\",\\\"Pacific/Auckland|Antarctica/McMurdo\\\",\\\"Pacific/Auckland|Antarctica/South_Pole\\\",\\\"Pacific/Auckland|NZ\\\",\\\"Pacific/Chatham|NZ-CHAT\\\",\\\"Pacific/Chuuk|Pacific/Truk\\\",\\\"Pacific/Chuuk|Pacific/Yap\\\",\\\"Pacific/Easter|Chile/EasterIsland\\\",\\\"Pacific/Guam|Pacific/Saipan\\\",\\\"Pacific/Honolulu|Pacific/Johnston\\\",\\\"Pacific/Honolulu|US/Hawaii\\\",\\\"Pacific/Kwajalein|Kwajalein\\\",\\\"Pacific/Pago_Pago|Pacific/Midway\\\",\\\"Pacific/Pago_Pago|Pacific/Samoa\\\",\\\"Pacific/Pago_Pago|US/Samoa\\\",\\\"Pacific/Palau|Etc/GMT-9\\\",\\\"Pacific/Pohnpei|Pacific/Ponape\\\",\\\"Pacific/Port_Moresby|Etc/GMT-10\\\",\\\"Pacific/Tarawa|Etc/GMT-12\\\",\\\"Pacific/Tarawa|Pacific/Funafuti\\\",\\\"Pacific/Tarawa|Pacific/Wake\\\",\\\"Pacific/Tarawa|Pacific/Wallis\\\"],\\\"countries\\\":[\\\"AD|Europe/Andorra\\\",\\\"AE|Asia/Dubai\\\",\\\"AF|Asia/Kabul\\\",\\\"AG|America/Port_of_Spain America/Antigua\\\",\\\"AI|America/Port_of_Spain America/Anguilla\\\",\\\"AL|Europe/Tirane\\\",\\\"AM|Asia/Yerevan\\\",\\\"AO|Africa/Lagos Africa/Luanda\\\",\\\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo\\\",\\\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\\\",\\\"AS|Pacific/Pago_Pago\\\",\\\"AT|Europe/Vienna\\\",\\\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\\\",\\\"AW|America/Curacao America/Aruba\\\",\\\"AX|Europe/Helsinki Europe/Mariehamn\\\",\\\"AZ|Asia/Baku\\\",\\\"BA|Europe/Belgrade Europe/Sarajevo\\\",\\\"BB|America/Barbados\\\",\\\"BD|Asia/Dhaka\\\",\\\"BE|Europe/Brussels\\\",\\\"BF|Africa/Abidjan Africa/Ouagadougou\\\",\\\"BG|Europe/Sofia\\\",\\\"BH|Asia/Qatar Asia/Bahrain\\\",\\\"BI|Africa/Maputo Africa/Bujumbura\\\",\\\"BJ|Africa/Lagos Africa/Porto-Novo\\\",\\\"BL|America/Port_of_Spain America/St_Barthelemy\\\",\\\"BM|Atlantic/Bermuda\\\",\\\"BN|Asia/Brunei\\\",\\\"BO|America/La_Paz\\\",\\\"BQ|America/Curacao America/Kralendijk\\\",\\\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\\\",\\\"BS|America/Nassau\\\",\\\"BT|Asia/Thimphu\\\",\\\"BW|Africa/Maputo Africa/Gaborone\\\",\\\"BY|Europe/Minsk\\\",\\\"BZ|America/Belize\\\",\\\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson\\\",\\\"CC|Indian/Cocos\\\",\\\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\\\",\\\"CF|Africa/Lagos Africa/Bangui\\\",\\\"CG|Africa/Lagos Africa/Brazzaville\\\",\\\"CH|Europe/Zurich\\\",\\\"CI|Africa/Abidjan\\\",\\\"CK|Pacific/Rarotonga\\\",\\\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\\\",\\\"CM|Africa/Lagos Africa/Douala\\\",\\\"CN|Asia/Shanghai Asia/Urumqi\\\",\\\"CO|America/Bogota\\\",\\\"CR|America/Costa_Rica\\\",\\\"CU|America/Havana\\\",\\\"CV|Atlantic/Cape_Verde\\\",\\\"CW|America/Curacao\\\",\\\"CX|Indian/Christmas\\\",\\\"CY|Asia/Nicosia Asia/Famagusta\\\",\\\"CZ|Europe/Prague\\\",\\\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\\\",\\\"DJ|Africa/Nairobi Africa/Djibouti\\\",\\\"DK|Europe/Copenhagen\\\",\\\"DM|America/Port_of_Spain America/Dominica\\\",\\\"DO|America/Santo_Domingo\\\",\\\"DZ|Africa/Algiers\\\",\\\"EC|America/Guayaquil Pacific/Galapagos\\\",\\\"EE|Europe/Tallinn\\\",\\\"EG|Africa/Cairo\\\",\\\"EH|Africa/El_Aaiun\\\",\\\"ER|Africa/Nairobi Africa/Asmara\\\",\\\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\\\",\\\"ET|Africa/Nairobi Africa/Addis_Ababa\\\",\\\"FI|Europe/Helsinki\\\",\\\"FJ|Pacific/Fiji\\\",\\\"FK|Atlantic/Stanley\\\",\\\"FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae\\\",\\\"FO|Atlantic/Faroe\\\",\\\"FR|Europe/Paris\\\",\\\"GA|Africa/Lagos Africa/Libreville\\\",\\\"GB|Europe/London\\\",\\\"GD|America/Port_of_Spain America/Grenada\\\",\\\"GE|Asia/Tbilisi\\\",\\\"GF|America/Cayenne\\\",\\\"GG|Europe/London Europe/Guernsey\\\",\\\"GH|Africa/Accra\\\",\\\"GI|Europe/Gibraltar\\\",\\\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\\\",\\\"GM|Africa/Abidjan Africa/Banjul\\\",\\\"GN|Africa/Abidjan Africa/Conakry\\\",\\\"GP|America/Port_of_Spain America/Guadeloupe\\\",\\\"GQ|Africa/Lagos Africa/Malabo\\\",\\\"GR|Europe/Athens\\\",\\\"GS|Atlantic/South_Georgia\\\",\\\"GT|America/Guatemala\\\",\\\"GU|Pacific/Guam\\\",\\\"GW|Africa/Bissau\\\",\\\"GY|America/Guyana\\\",\\\"HK|Asia/Hong_Kong\\\",\\\"HN|America/Tegucigalpa\\\",\\\"HR|Europe/Belgrade Europe/Zagreb\\\",\\\"HT|America/Port-au-Prince\\\",\\\"HU|Europe/Budapest\\\",\\\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\\\",\\\"IE|Europe/Dublin\\\",\\\"IL|Asia/Jerusalem\\\",\\\"IM|Europe/London Europe/Isle_of_Man\\\",\\\"IN|Asia/Kolkata\\\",\\\"IO|Indian/Chagos\\\",\\\"IQ|Asia/Baghdad\\\",\\\"IR|Asia/Tehran\\\",\\\"IS|Atlantic/Reykjavik\\\",\\\"IT|Europe/Rome\\\",\\\"JE|Europe/London Europe/Jersey\\\",\\\"JM|America/Jamaica\\\",\\\"JO|Asia/Amman\\\",\\\"JP|Asia/Tokyo\\\",\\\"KE|Africa/Nairobi\\\",\\\"KG|Asia/Bishkek\\\",\\\"KH|Asia/Bangkok Asia/Phnom_Penh\\\",\\\"KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati\\\",\\\"KM|Africa/Nairobi Indian/Comoro\\\",\\\"KN|America/Port_of_Spain America/St_Kitts\\\",\\\"KP|Asia/Pyongyang\\\",\\\"KR|Asia/Seoul\\\",\\\"KW|Asia/Riyadh Asia/Kuwait\\\",\\\"KY|America/Panama America/Cayman\\\",\\\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\\\",\\\"LA|Asia/Bangkok Asia/Vientiane\\\",\\\"LB|Asia/Beirut\\\",\\\"LC|America/Port_of_Spain America/St_Lucia\\\",\\\"LI|Europe/Zurich Europe/Vaduz\\\",\\\"LK|Asia/Colombo\\\",\\\"LR|Africa/Monrovia\\\",\\\"LS|Africa/Johannesburg Africa/Maseru\\\",\\\"LT|Europe/Vilnius\\\",\\\"LU|Europe/Luxembourg\\\",\\\"LV|Europe/Riga\\\",\\\"LY|Africa/Tripoli\\\",\\\"MA|Africa/Casablanca\\\",\\\"MC|Europe/Monaco\\\",\\\"MD|Europe/Chisinau\\\",\\\"ME|Europe/Belgrade Europe/Podgorica\\\",\\\"MF|America/Port_of_Spain America/Marigot\\\",\\\"MG|Africa/Nairobi Indian/Antananarivo\\\",\\\"MH|Pacific/Majuro Pacific/Kwajalein\\\",\\\"MK|Europe/Belgrade Europe/Skopje\\\",\\\"ML|Africa/Abidjan Africa/Bamako\\\",\\\"MM|Asia/Yangon\\\",\\\"MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan\\\",\\\"MO|Asia/Macau\\\",\\\"MP|Pacific/Guam Pacific/Saipan\\\",\\\"MQ|America/Martinique\\\",\\\"MR|Africa/Abidjan Africa/Nouakchott\\\",\\\"MS|America/Port_of_Spain America/Montserrat\\\",\\\"MT|Europe/Malta\\\",\\\"MU|Indian/Mauritius\\\",\\\"MV|Indian/Maldives\\\",\\\"MW|Africa/Maputo Africa/Blantyre\\\",\\\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas\\\",\\\"MY|Asia/Kuala_Lumpur Asia/Kuching\\\",\\\"MZ|Africa/Maputo\\\",\\\"NA|Africa/Windhoek\\\",\\\"NC|Pacific/Noumea\\\",\\\"NE|Africa/Lagos Africa/Niamey\\\",\\\"NF|Pacific/Norfolk\\\",\\\"NG|Africa/Lagos\\\",\\\"NI|America/Managua\\\",\\\"NL|Europe/Amsterdam\\\",\\\"NO|Europe/Oslo\\\",\\\"NP|Asia/Kathmandu\\\",\\\"NR|Pacific/Nauru\\\",\\\"NU|Pacific/Niue\\\",\\\"NZ|Pacific/Auckland Pacific/Chatham\\\",\\\"OM|Asia/Dubai Asia/Muscat\\\",\\\"PA|America/Panama\\\",\\\"PE|America/Lima\\\",\\\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\\\",\\\"PG|Pacific/Port_Moresby Pacific/Bougainville\\\",\\\"PH|Asia/Manila\\\",\\\"PK|Asia/Karachi\\\",\\\"PL|Europe/Warsaw\\\",\\\"PM|America/Miquelon\\\",\\\"PN|Pacific/Pitcairn\\\",\\\"PR|America/Puerto_Rico\\\",\\\"PS|Asia/Gaza Asia/Hebron\\\",\\\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\\\",\\\"PW|Pacific/Palau\\\",\\\"PY|America/Asuncion\\\",\\\"QA|Asia/Qatar\\\",\\\"RE|Indian/Reunion\\\",\\\"RO|Europe/Bucharest\\\",\\\"RS|Europe/Belgrade\\\",\\\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\\\",\\\"RW|Africa/Maputo Africa/Kigali\\\",\\\"SA|Asia/Riyadh\\\",\\\"SB|Pacific/Guadalcanal\\\",\\\"SC|Indian/Mahe\\\",\\\"SD|Africa/Khartoum\\\",\\\"SE|Europe/Stockholm\\\",\\\"SG|Asia/Singapore\\\",\\\"SH|Africa/Abidjan Atlantic/St_Helena\\\",\\\"SI|Europe/Belgrade Europe/Ljubljana\\\",\\\"SJ|Europe/Oslo Arctic/Longyearbyen\\\",\\\"SK|Europe/Prague Europe/Bratislava\\\",\\\"SL|Africa/Abidjan Africa/Freetown\\\",\\\"SM|Europe/Rome Europe/San_Marino\\\",\\\"SN|Africa/Abidjan Africa/Dakar\\\",\\\"SO|Africa/Nairobi Africa/Mogadishu\\\",\\\"SR|America/Paramaribo\\\",\\\"SS|Africa/Juba\\\",\\\"ST|Africa/Sao_Tome\\\",\\\"SV|America/El_Salvador\\\",\\\"SX|America/Curacao America/Lower_Princes\\\",\\\"SY|Asia/Damascus\\\",\\\"SZ|Africa/Johannesburg Africa/Mbabane\\\",\\\"TC|America/Grand_Turk\\\",\\\"TD|Africa/Ndjamena\\\",\\\"TF|Indian/Reunion Indian/Kerguelen\\\",\\\"TG|Africa/Abidjan Africa/Lome\\\",\\\"TH|Asia/Bangkok\\\",\\\"TJ|Asia/Dushanbe\\\",\\\"TK|Pacific/Fakaofo\\\",\\\"TL|Asia/Dili\\\",\\\"TM|Asia/Ashgabat\\\",\\\"TN|Africa/Tunis\\\",\\\"TO|Pacific/Tongatapu\\\",\\\"TR|Europe/Istanbul\\\",\\\"TT|America/Port_of_Spain\\\",\\\"TV|Pacific/Funafuti\\\",\\\"TW|Asia/Taipei\\\",\\\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\\\",\\\"UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye\\\",\\\"UG|Africa/Nairobi Africa/Kampala\\\",\\\"UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway\\\",\\\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\\\",\\\"UY|America/Montevideo\\\",\\\"UZ|Asia/Samarkand Asia/Tashkent\\\",\\\"VA|Europe/Rome Europe/Vatican\\\",\\\"VC|America/Port_of_Spain America/St_Vincent\\\",\\\"VE|America/Caracas\\\",\\\"VG|America/Port_of_Spain America/Tortola\\\",\\\"VI|America/Port_of_Spain America/St_Thomas\\\",\\\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\\\",\\\"VU|Pacific/Efate\\\",\\\"WF|Pacific/Wallis\\\",\\\"WS|Pacific/Apia\\\",\\\"YE|Asia/Riyadh Asia/Aden\\\",\\\"YT|Africa/Nairobi Indian/Mayotte\\\",\\\"ZA|Africa/Johannesburg\\\",\\\"ZM|Africa/Maputo Africa/Lusaka\\\",\\\"ZW|Africa/Maputo Africa/Harare\\\"]}\");\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"moment\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-deprecated.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"deprecated\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 414);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 414:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logged\", function() { return logged; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return deprecated; });\n/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32);\n/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * WordPress dependencies\n */\n\n/**\n * Object map tracking messages which have been logged, for use in ensuring a\n * message is only logged once.\n *\n * @type {Object}\n */\n\nvar logged = Object.create(null);\n/**\n * Logs a message to notify developers about a deprecated feature.\n *\n * @param {string}  feature             Name of the deprecated feature.\n * @param {?Object} options             Personalisation options\n * @param {?string} options.version     Version in which the feature will be removed.\n * @param {?string} options.alternative Feature to use instead\n * @param {?string} options.plugin      Plugin name if it's a plugin feature\n * @param {?string} options.link        Link to documentation\n * @param {?string} options.hint        Additional message to help transition away from the deprecated feature.\n *\n * @example\n * ```js\n * import deprecated from '@wordpress/deprecated';\n *\n * deprecated( 'Eating meat', {\n * \tversion: 'the future',\n * \talternative: 'vegetables',\n * \tplugin: 'the earth',\n * \thint: 'You may find it beneficial to transition gradually.',\n * } );\n *\n * // Logs: 'Eating meat is deprecated and will be removed from the earth in the future. Please use vegetables instead. Note: You may find it beneficial to transition gradually.'\n * ```\n */\n\nfunction deprecated(feature) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var version = options.version,\n      alternative = options.alternative,\n      plugin = options.plugin,\n      link = options.link,\n      hint = options.hint;\n  var pluginMessage = plugin ? \" from \".concat(plugin) : '';\n  var versionMessage = version ? \" and will be removed\".concat(pluginMessage, \" in version \").concat(version) : '';\n  var useInsteadMessage = alternative ? \" Please use \".concat(alternative, \" instead.\") : '';\n  var linkMessage = link ? \" See: \".concat(link) : '';\n  var hintMessage = hint ? \" Note: \".concat(hint) : '';\n  var message = \"\".concat(feature, \" is deprecated\").concat(versionMessage, \".\").concat(useInsteadMessage).concat(linkMessage).concat(hintMessage); // Skip if already logged.\n\n  if (message in logged) {\n    return;\n  }\n  /**\n   * Fires whenever a deprecated feature is encountered\n   *\n   * @param {string}  feature             Name of the deprecated feature.\n   * @param {?Object} options             Personalisation options\n   * @param {?string} options.version     Version in which the feature will be removed.\n   * @param {?string} options.alternative Feature to use instead\n   * @param {?string} options.plugin      Plugin name if it's a plugin feature\n   * @param {?string} options.link        Link to documentation\n   * @param {?string} options.hint        Additional message to help transition away from the deprecated feature.\n   * @param {?string} message             Message sent to console.warn\n   */\n\n\n  Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__[\"doAction\"])('deprecated', feature, options, message); // eslint-disable-next-line no-console\n\n  console.warn(message);\n  logged[message] = true;\n}\n\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-dom-ready.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"domReady\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 415);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 415:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return domReady; });\n/**\n * @typedef {() => void} Callback\n *\n * TODO: Remove this typedef and inline `() => void` type.\n *\n * This typedef is used so that a descriptive type is provided in our\n * automatically generated documentation.\n *\n * An in-line type `() => void` would be preferable, but the generated\n * documentation is `null` in that case.\n *\n * @see https://github.com/WordPress/gutenberg/issues/18045\n */\n\n/**\n * Specify a function to execute when the DOM is fully loaded.\n *\n * @param {Callback} callback A function to execute after the DOM is ready.\n *\n * @example\n * ```js\n * import domReady from '@wordpress/dom-ready';\n *\n * domReady( function() {\n * \t//do something after DOM loads.\n * } );\n * ```\n *\n * @return {void}\n */\nfunction domReady(callback) {\n  if (document.readyState === 'complete' || // DOMContentLoaded + Images/Styles/etc loaded, so we call directly.\n  document.readyState === 'interactive' // DOMContentLoaded fires at this point, so we call directly.\n  ) {\n      return void callback();\n    } // DOMContentLoaded has not fired yet, delay callback until then.\n\n\n  document.addEventListener('DOMContentLoaded', callback);\n}\n\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-dom.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"dom\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 458);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 458:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"focus\", function() { return /* binding */ build_module_focus; });\n__webpack_require__.d(__webpack_exports__, \"isHorizontalEdge\", function() { return /* reexport */ isHorizontalEdge; });\n__webpack_require__.d(__webpack_exports__, \"isVerticalEdge\", function() { return /* reexport */ isVerticalEdge; });\n__webpack_require__.d(__webpack_exports__, \"getRectangleFromRange\", function() { return /* reexport */ getRectangleFromRange; });\n__webpack_require__.d(__webpack_exports__, \"computeCaretRect\", function() { return /* reexport */ computeCaretRect; });\n__webpack_require__.d(__webpack_exports__, \"placeCaretAtHorizontalEdge\", function() { return /* reexport */ placeCaretAtHorizontalEdge; });\n__webpack_require__.d(__webpack_exports__, \"placeCaretAtVerticalEdge\", function() { return /* reexport */ placeCaretAtVerticalEdge; });\n__webpack_require__.d(__webpack_exports__, \"isTextField\", function() { return /* reexport */ isTextField; });\n__webpack_require__.d(__webpack_exports__, \"isNumberInput\", function() { return /* reexport */ isNumberInput; });\n__webpack_require__.d(__webpack_exports__, \"documentHasTextSelection\", function() { return /* reexport */ documentHasTextSelection; });\n__webpack_require__.d(__webpack_exports__, \"documentHasUncollapsedSelection\", function() { return /* reexport */ documentHasUncollapsedSelection; });\n__webpack_require__.d(__webpack_exports__, \"documentHasSelection\", function() { return /* reexport */ documentHasSelection; });\n__webpack_require__.d(__webpack_exports__, \"isEntirelySelected\", function() { return /* reexport */ isEntirelySelected; });\n__webpack_require__.d(__webpack_exports__, \"getScrollContainer\", function() { return /* reexport */ getScrollContainer; });\n__webpack_require__.d(__webpack_exports__, \"getOffsetParent\", function() { return /* reexport */ getOffsetParent; });\n__webpack_require__.d(__webpack_exports__, \"replace\", function() { return /* reexport */ replace; });\n__webpack_require__.d(__webpack_exports__, \"remove\", function() { return /* reexport */ remove; });\n__webpack_require__.d(__webpack_exports__, \"insertAfter\", function() { return /* reexport */ insertAfter; });\n__webpack_require__.d(__webpack_exports__, \"unwrap\", function() { return /* reexport */ unwrap; });\n__webpack_require__.d(__webpack_exports__, \"replaceTag\", function() { return /* reexport */ replaceTag; });\n__webpack_require__.d(__webpack_exports__, \"wrap\", function() { return /* reexport */ wrap; });\n__webpack_require__.d(__webpack_exports__, \"__unstableStripHTML\", function() { return /* reexport */ __unstableStripHTML; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/dom/build-module/focusable.js\nvar focusable_namespaceObject = {};\n__webpack_require__.r(focusable_namespaceObject);\n__webpack_require__.d(focusable_namespaceObject, \"find\", function() { return find; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/dom/build-module/tabbable.js\nvar tabbable_namespaceObject = {};\n__webpack_require__.r(tabbable_namespaceObject);\n__webpack_require__.d(tabbable_namespaceObject, \"isTabbableIndex\", function() { return isTabbableIndex; });\n__webpack_require__.d(tabbable_namespaceObject, \"find\", function() { return tabbable_find; });\n__webpack_require__.d(tabbable_namespaceObject, \"findPrevious\", function() { return findPrevious; });\n__webpack_require__.d(tabbable_namespaceObject, \"findNext\", function() { return findNext; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/focusable.js\n/**\n * References:\n *\n * Focusable:\n *  - https://www.w3.org/TR/html5/editing.html#focus-management\n *\n * Sequential focus navigation:\n *  - https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n *\n * Disabled elements:\n *  - https://www.w3.org/TR/html5/disabled-elements.html#disabled-elements\n *\n * getClientRects algorithm (requiring layout box):\n *  - https://www.w3.org/TR/cssom-view-1/#extension-to-the-element-interface\n *\n * AREA elements associated with an IMG:\n *  - https://w3c.github.io/html/editing.html#data-model\n */\nvar SELECTOR = ['[tabindex]', 'a[href]', 'button:not([disabled])', 'input:not([type=\"hidden\"]):not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'iframe', 'object', 'embed', 'area[href]', '[contenteditable]:not([contenteditable=false])'].join(',');\n/**\n * Returns true if the specified element is visible (i.e. neither display: none\n * nor visibility: hidden).\n *\n * @param {Element} element DOM element to test.\n *\n * @return {boolean} Whether element is visible.\n */\n\nfunction isVisible(element) {\n  return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n/**\n * Returns true if the specified element should be skipped from focusable elements.\n * For now it rather specific for `iframes` and  if tabindex attribute is set to -1.\n *\n * @param {Element} element DOM element to test.\n *\n * @return {boolean} Whether element should be skipped from focusable elements.\n */\n\n\nfunction skipFocus(element) {\n  return element.nodeName.toLowerCase() === 'iframe' && element.getAttribute('tabindex') === '-1';\n}\n/**\n * Returns true if the specified area element is a valid focusable element, or\n * false otherwise. Area is only focusable if within a map where a named map\n * referenced by an image somewhere in the document.\n *\n * @param {Element} element DOM area element to test.\n *\n * @return {boolean} Whether area element is valid for focus.\n */\n\n\nfunction isValidFocusableArea(element) {\n  var map = element.closest('map[name]');\n\n  if (!map) {\n    return false;\n  }\n\n  var img = document.querySelector('img[usemap=\"#' + map.name + '\"]');\n  return !!img && isVisible(img);\n}\n/**\n * Returns all focusable elements within a given context.\n *\n * @param {Element} context Element in which to search.\n *\n * @return {Element[]} Focusable elements.\n */\n\n\nfunction find(context) {\n  var elements = context.querySelectorAll(SELECTOR);\n  return Array.from(elements).filter(function (element) {\n    if (!isVisible(element) || skipFocus(element)) {\n      return false;\n    }\n\n    var nodeName = element.nodeName;\n\n    if ('AREA' === nodeName) {\n      return isValidFocusableArea(element);\n    }\n\n    return true;\n  });\n}\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/tabbable.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns the tab index of the given element. In contrast with the tabIndex\n * property, this normalizes the default (0) to avoid browser inconsistencies,\n * operating under the assumption that this function is only ever called with a\n * focusable node.\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=1190261\n *\n * @param {Element} element Element from which to retrieve.\n *\n * @return {?number} Tab index of element (default 0).\n */\n\nfunction getTabIndex(element) {\n  var tabIndex = element.getAttribute('tabindex');\n  return tabIndex === null ? 0 : parseInt(tabIndex, 10);\n}\n/**\n * Returns true if the specified element is tabbable, or false otherwise.\n *\n * @param {Element} element Element to test.\n *\n * @return {boolean} Whether element is tabbable.\n */\n\n\nfunction isTabbableIndex(element) {\n  return getTabIndex(element) !== -1;\n}\n/**\n * Returns a stateful reducer function which constructs a filtered array of\n * tabbable elements, where at most one radio input is selected for a given\n * name, giving priority to checked input, falling back to the first\n * encountered.\n *\n * @return {Function} Radio group collapse reducer.\n */\n\nfunction createStatefulCollapseRadioGroup() {\n  var CHOSEN_RADIO_BY_NAME = {};\n  return function collapseRadioGroup(result, element) {\n    var nodeName = element.nodeName,\n        type = element.type,\n        checked = element.checked,\n        name = element.name; // For all non-radio tabbables, construct to array by concatenating.\n\n    if (nodeName !== 'INPUT' || type !== 'radio' || !name) {\n      return result.concat(element);\n    }\n\n    var hasChosen = CHOSEN_RADIO_BY_NAME.hasOwnProperty(name); // Omit by skipping concatenation if the radio element is not chosen.\n\n    var isChosen = checked || !hasChosen;\n\n    if (!isChosen) {\n      return result;\n    } // At this point, if there had been a chosen element, the current\n    // element is checked and should take priority. Retroactively remove\n    // the element which had previously been considered the chosen one.\n\n\n    if (hasChosen) {\n      var hadChosenElement = CHOSEN_RADIO_BY_NAME[name];\n      result = Object(external_this_lodash_[\"without\"])(result, hadChosenElement);\n    }\n\n    CHOSEN_RADIO_BY_NAME[name] = element;\n    return result.concat(element);\n  };\n}\n/**\n * An array map callback, returning an object with the element value and its\n * array index location as properties. This is used to emulate a proper stable\n * sort where equal tabIndex should be left in order of their occurrence in the\n * document.\n *\n * @param {Element} element Element.\n * @param {number}  index   Array index of element.\n *\n * @return {Object} Mapped object with element, index.\n */\n\n\nfunction mapElementToObjectTabbable(element, index) {\n  return {\n    element: element,\n    index: index\n  };\n}\n/**\n * An array map callback, returning an element of the given mapped object's\n * element value.\n *\n * @param {Object} object Mapped object with index.\n *\n * @return {Element} Mapped object element.\n */\n\n\nfunction mapObjectTabbableToElement(object) {\n  return object.element;\n}\n/**\n * A sort comparator function used in comparing two objects of mapped elements.\n *\n * @see mapElementToObjectTabbable\n *\n * @param {Object} a First object to compare.\n * @param {Object} b Second object to compare.\n *\n * @return {number} Comparator result.\n */\n\n\nfunction compareObjectTabbables(a, b) {\n  var aTabIndex = getTabIndex(a.element);\n  var bTabIndex = getTabIndex(b.element);\n\n  if (aTabIndex === bTabIndex) {\n    return a.index - b.index;\n  }\n\n  return aTabIndex - bTabIndex;\n}\n/**\n * Givin focusable elements, filters out tabbable element.\n *\n * @param {Array} focusables Focusable elements to filter.\n *\n * @return {Array} Tabbable elements.\n */\n\n\nfunction filterTabbable(focusables) {\n  return focusables.filter(isTabbableIndex).map(mapElementToObjectTabbable).sort(compareObjectTabbables).map(mapObjectTabbableToElement).reduce(createStatefulCollapseRadioGroup(), []);\n}\n\nfunction tabbable_find(context) {\n  return filterTabbable(find(context));\n}\n/**\n * Given a focusable element, find the preceding tabbable element.\n *\n * @param {Element} element The focusable element before which to look. Defaults\n *                          to the active element.\n */\n\nfunction findPrevious() {\n  var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.activeElement;\n  var focusables = find(document.body);\n  var index = focusables.indexOf(element); // Remove all focusables after and including `element`.\n\n  focusables.length = index;\n  return Object(external_this_lodash_[\"last\"])(filterTabbable(focusables));\n}\n/**\n * Given a focusable element, find the next tabbable element.\n *\n * @param {Element} element The focusable element after which to look. Defaults\n *                          to the active element.\n */\n\nfunction findNext() {\n  var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.activeElement;\n  var focusables = find(document.body);\n  var index = focusables.indexOf(element); // Remove all focusables before and inside `element`.\n\n  var remaining = focusables.slice(index + 1).filter(function (node) {\n    return !element.contains(node);\n  });\n  return Object(external_this_lodash_[\"first\"])(filterTabbable(remaining));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/dom.js\n/**\n * External dependencies\n */\n\n/**\n * Browser dependencies\n */\n\nvar _window = window,\n    DOMParser = _window.DOMParser,\n    getComputedStyle = _window.getComputedStyle;\nvar _window$Node = window.Node,\n    TEXT_NODE = _window$Node.TEXT_NODE,\n    ELEMENT_NODE = _window$Node.ELEMENT_NODE,\n    DOCUMENT_POSITION_PRECEDING = _window$Node.DOCUMENT_POSITION_PRECEDING,\n    DOCUMENT_POSITION_FOLLOWING = _window$Node.DOCUMENT_POSITION_FOLLOWING;\n/**\n * Returns true if the given selection object is in the forward direction, or\n * false otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n *\n * @param {Selection} selection Selection object to check.\n *\n * @return {boolean} Whether the selection is forward.\n */\n\nfunction isSelectionForward(selection) {\n  var anchorNode = selection.anchorNode,\n      focusNode = selection.focusNode,\n      anchorOffset = selection.anchorOffset,\n      focusOffset = selection.focusOffset;\n  var position = anchorNode.compareDocumentPosition(focusNode); // Disable reason: `Node#compareDocumentPosition` returns a bitmask value,\n  // so bitwise operators are intended.\n\n  /* eslint-disable no-bitwise */\n  // Compare whether anchor node precedes focus node. If focus node (where\n  // end of selection occurs) is after the anchor node, it is forward.\n\n  if (position & DOCUMENT_POSITION_PRECEDING) {\n    return false;\n  }\n\n  if (position & DOCUMENT_POSITION_FOLLOWING) {\n    return true;\n  }\n  /* eslint-enable no-bitwise */\n  // `compareDocumentPosition` returns 0 when passed the same node, in which\n  // case compare offsets.\n\n\n  if (position === 0) {\n    return anchorOffset <= focusOffset;\n  } // This should never be reached, but return true as default case.\n\n\n  return true;\n}\n/**\n * Check whether the selection is at the edge of the container. Checks for\n * horizontal position by default. Set `onlyVertical` to true to check only\n * vertically.\n *\n * @param {Element} container    Focusable element.\n * @param {boolean} isReverse    Set to true to check left, false to check right.\n * @param {boolean} onlyVertical Set to true to check only vertical position.\n *\n * @return {boolean} True if at the edge, false if not.\n */\n\n\nfunction isEdge(container, isReverse, onlyVertical) {\n  if (Object(external_this_lodash_[\"includes\"])(['INPUT', 'TEXTAREA'], container.tagName)) {\n    if (container.selectionStart !== container.selectionEnd) {\n      return false;\n    }\n\n    if (isReverse) {\n      return container.selectionStart === 0;\n    }\n\n    return container.value.length === container.selectionStart;\n  }\n\n  if (!container.isContentEditable) {\n    return true;\n  }\n\n  var selection = window.getSelection();\n\n  if (!selection.rangeCount) {\n    return false;\n  }\n\n  var originalRange = selection.getRangeAt(0);\n  var range = originalRange.cloneRange();\n  var isForward = isSelectionForward(selection);\n  var isCollapsed = selection.isCollapsed; // Collapse in direction of selection.\n\n  if (!isCollapsed) {\n    range.collapse(!isForward);\n  }\n\n  var rangeRect = getRectangleFromRange(range);\n\n  if (!rangeRect) {\n    return false;\n  }\n\n  var computedStyle = window.getComputedStyle(container);\n  var lineHeight = parseInt(computedStyle.lineHeight, 10) || 0; // Only consider the multiline selection at the edge if the direction is\n  // towards the edge.\n\n  if (!isCollapsed && rangeRect.height > lineHeight && isForward === isReverse) {\n    return false;\n  }\n\n  var padding = parseInt(computedStyle[\"padding\".concat(isReverse ? 'Top' : 'Bottom')], 10) || 0; // Calculate a buffer that is half the line height. In some browsers, the\n  // selection rectangle may not fill the entire height of the line, so we add\n  // 3/4 the line height to the selection rectangle to ensure that it is well\n  // over its line boundary.\n\n  var buffer = 3 * parseInt(lineHeight, 10) / 4;\n  var containerRect = container.getBoundingClientRect();\n  var originalRangeRect = getRectangleFromRange(originalRange);\n  var verticalEdge = isReverse ? containerRect.top + padding > originalRangeRect.top - buffer : containerRect.bottom - padding < originalRangeRect.bottom + buffer;\n\n  if (!verticalEdge) {\n    return false;\n  }\n\n  if (onlyVertical) {\n    return true;\n  } // In the case of RTL scripts, the horizontal edge is at the opposite side.\n\n\n  var direction = computedStyle.direction;\n  var isReverseDir = direction === 'rtl' ? !isReverse : isReverse; // To calculate the horizontal position, we insert a test range and see if\n  // this test range has the same horizontal position. This method proves to\n  // be better than a DOM-based calculation, because it ignores empty text\n  // nodes and a trailing line break element. In other words, we need to check\n  // visual positioning, not DOM positioning.\n\n  var x = isReverseDir ? containerRect.left + 1 : containerRect.right - 1;\n  var y = isReverse ? containerRect.top + buffer : containerRect.bottom - buffer;\n  var testRange = hiddenCaretRangeFromPoint(document, x, y, container);\n\n  if (!testRange) {\n    return false;\n  }\n\n  var side = isReverseDir ? 'left' : 'right';\n  var testRect = getRectangleFromRange(testRange); // Allow the position to be 1px off.\n\n  return Math.abs(testRect[side] - rangeRect[side]) <= 1;\n}\n/**\n * Check whether the selection is horizontally at the edge of the container.\n *\n * @param {Element} container Focusable element.\n * @param {boolean} isReverse Set to true to check left, false for right.\n *\n * @return {boolean} True if at the horizontal edge, false if not.\n */\n\n\nfunction isHorizontalEdge(container, isReverse) {\n  return isEdge(container, isReverse);\n}\n/**\n * Check whether the selection is vertically at the edge of the container.\n *\n * @param {Element} container Focusable element.\n * @param {boolean} isReverse Set to true to check top, false for bottom.\n *\n * @return {boolean} True if at the vertical edge, false if not.\n */\n\nfunction isVerticalEdge(container, isReverse) {\n  return isEdge(container, isReverse, true);\n}\n/**\n * Get the rectangle of a given Range.\n *\n * @param {Range} range The range.\n *\n * @return {DOMRect} The rectangle.\n */\n\nfunction getRectangleFromRange(range) {\n  // For uncollapsed ranges, get the rectangle that bounds the contents of the\n  // range; this a rectangle enclosing the union of the bounding rectangles\n  // for all the elements in the range.\n  if (!range.collapsed) {\n    return range.getBoundingClientRect();\n  }\n\n  var _range = range,\n      startContainer = _range.startContainer; // Correct invalid \"BR\" ranges. The cannot contain any children.\n\n  if (startContainer.nodeName === 'BR') {\n    var parentNode = startContainer.parentNode;\n    var index = Array.from(parentNode.childNodes).indexOf(startContainer);\n    range = document.createRange();\n    range.setStart(parentNode, index);\n    range.setEnd(parentNode, index);\n  }\n\n  var rect = range.getClientRects()[0]; // If the collapsed range starts (and therefore ends) at an element node,\n  // `getClientRects` can be empty in some browsers. This can be resolved\n  // by adding a temporary text node with zero-width space to the range.\n  //\n  // See: https://stackoverflow.com/a/6847328/995445\n\n  if (!rect) {\n    var padNode = document.createTextNode(\"\\u200B\"); // Do not modify the live range.\n\n    range = range.cloneRange();\n    range.insertNode(padNode);\n    rect = range.getClientRects()[0];\n    padNode.parentNode.removeChild(padNode);\n  }\n\n  return rect;\n}\n/**\n * Get the rectangle for the selection in a container.\n *\n * @return {?DOMRect} The rectangle.\n */\n\nfunction computeCaretRect() {\n  var selection = window.getSelection();\n  var range = selection.rangeCount ? selection.getRangeAt(0) : null;\n\n  if (!range) {\n    return;\n  }\n\n  return getRectangleFromRange(range);\n}\n/**\n * Places the caret at start or end of a given element.\n *\n * @param {Element} container Focusable element.\n * @param {boolean} isReverse True for end, false for start.\n */\n\nfunction placeCaretAtHorizontalEdge(container, isReverse) {\n  if (!container) {\n    return;\n  }\n\n  if (Object(external_this_lodash_[\"includes\"])(['INPUT', 'TEXTAREA'], container.tagName)) {\n    container.focus();\n\n    if (isReverse) {\n      container.selectionStart = container.value.length;\n      container.selectionEnd = container.value.length;\n    } else {\n      container.selectionStart = 0;\n      container.selectionEnd = 0;\n    }\n\n    return;\n  }\n\n  container.focus();\n\n  if (!container.isContentEditable) {\n    return;\n  } // Select on extent child of the container, not the container itself. This\n  // avoids the selection always being `endOffset` of 1 when placed at end,\n  // where `startContainer`, `endContainer` would always be container itself.\n\n\n  var rangeTarget = container[isReverse ? 'lastChild' : 'firstChild']; // If no range target, it implies that the container is empty. Focusing is\n  // sufficient for caret to be placed correctly.\n\n  if (!rangeTarget) {\n    return;\n  }\n\n  var selection = window.getSelection();\n  var range = document.createRange();\n  range.selectNodeContents(rangeTarget);\n  range.collapse(!isReverse);\n  selection.removeAllRanges();\n  selection.addRange(range);\n}\n/**\n * Polyfill.\n * Get a collapsed range for a given point.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/caretRangeFromPoint\n *\n * @param {Document} doc The document of the range.\n * @param {number}    x   Horizontal position within the current viewport.\n * @param {number}    y   Vertical position within the current viewport.\n *\n * @return {?Range} The best range for the given point.\n */\n\nfunction caretRangeFromPoint(doc, x, y) {\n  if (doc.caretRangeFromPoint) {\n    return doc.caretRangeFromPoint(x, y);\n  }\n\n  if (!doc.caretPositionFromPoint) {\n    return null;\n  }\n\n  var point = doc.caretPositionFromPoint(x, y); // If x or y are negative, outside viewport, or there is no text entry node.\n  // https://developer.mozilla.org/en-US/docs/Web/API/Document/caretRangeFromPoint\n\n  if (!point) {\n    return null;\n  }\n\n  var range = doc.createRange();\n  range.setStart(point.offsetNode, point.offset);\n  range.collapse(true);\n  return range;\n}\n/**\n * Get a collapsed range for a given point.\n * Gives the container a temporary high z-index (above any UI).\n * This is preferred over getting the UI nodes and set styles there.\n *\n * @param {Document} doc       The document of the range.\n * @param {number}    x         Horizontal position within the current viewport.\n * @param {number}    y         Vertical position within the current viewport.\n * @param {Element}  container Container in which the range is expected to be found.\n *\n * @return {?Range} The best range for the given point.\n */\n\n\nfunction hiddenCaretRangeFromPoint(doc, x, y, container) {\n  var originalZIndex = container.style.zIndex;\n  var originalPosition = container.style.position; // A z-index only works if the element position is not static.\n\n  container.style.zIndex = '10000';\n  container.style.position = 'relative';\n  var range = caretRangeFromPoint(doc, x, y);\n  container.style.zIndex = originalZIndex;\n  container.style.position = originalPosition;\n  return range;\n}\n/**\n * Places the caret at the top or bottom of a given element.\n *\n * @param {Element} container           Focusable element.\n * @param {boolean} isReverse           True for bottom, false for top.\n * @param {DOMRect} [rect]              The rectangle to position the caret with.\n * @param {boolean} [mayUseScroll=true] True to allow scrolling, false to disallow.\n */\n\n\nfunction placeCaretAtVerticalEdge(container, isReverse, rect) {\n  var mayUseScroll = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n  if (!container) {\n    return;\n  }\n\n  if (!rect || !container.isContentEditable) {\n    placeCaretAtHorizontalEdge(container, isReverse);\n    return;\n  } // Offset by a buffer half the height of the caret rect. This is needed\n  // because caretRangeFromPoint may default to the end of the selection if\n  // offset is too close to the edge. It's unclear how to precisely calculate\n  // this threshold; it may be the padded area of some combination of line\n  // height, caret height, and font size. The buffer offset is effectively\n  // equivalent to a point at half the height of a line of text.\n\n\n  var buffer = rect.height / 2;\n  var editableRect = container.getBoundingClientRect();\n  var x = rect.left;\n  var y = isReverse ? editableRect.bottom - buffer : editableRect.top + buffer;\n  var range = hiddenCaretRangeFromPoint(document, x, y, container);\n\n  if (!range || !container.contains(range.startContainer)) {\n    if (mayUseScroll && (!range || !range.startContainer || !range.startContainer.contains(container))) {\n      // Might be out of view.\n      // Easier than attempting to calculate manually.\n      container.scrollIntoView(isReverse);\n      placeCaretAtVerticalEdge(container, isReverse, rect, false);\n      return;\n    }\n\n    placeCaretAtHorizontalEdge(container, isReverse);\n    return;\n  }\n\n  var selection = window.getSelection();\n  selection.removeAllRanges();\n  selection.addRange(range);\n  container.focus(); // Editable was already focussed, it goes back to old range...\n  // This fixes it.\n\n  selection.removeAllRanges();\n  selection.addRange(range);\n}\n/**\n * Check whether the given element is a text field, where text field is defined\n * by the ability to select within the input, or that it is contenteditable.\n *\n * See: https://html.spec.whatwg.org/#textFieldSelection\n *\n * @param {HTMLElement} element The HTML element.\n *\n * @return {boolean} True if the element is an text field, false if not.\n */\n\nfunction isTextField(element) {\n  var nodeName = element.nodeName,\n      contentEditable = element.contentEditable;\n  var nonTextInputs = ['button', 'checkbox', 'hidden', 'file', 'radio', 'image', 'range', 'reset', 'submit', 'number'];\n  return nodeName === 'INPUT' && !nonTextInputs.includes(element.type) || nodeName === 'TEXTAREA' || contentEditable === 'true';\n}\n/**\n * Check whether the given element is an input field of type number\n * and has a valueAsNumber\n *\n * @param {HTMLElement} element The HTML element.\n *\n * @return {boolean} True if the element is input and holds a number.\n */\n\nfunction isNumberInput(element) {\n  var nodeName = element.nodeName,\n      type = element.type,\n      valueAsNumber = element.valueAsNumber;\n  return nodeName === 'INPUT' && type === 'number' && !!valueAsNumber;\n}\n/**\n * Check whether the current document has selected text. This applies to ranges\n * of text in the document, and not selection inside <input> and <textarea>\n * elements.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection#Related_objects.\n *\n * @return {boolean} True if there is selection, false if not.\n */\n\nfunction documentHasTextSelection() {\n  var selection = window.getSelection();\n  var range = selection.rangeCount ? selection.getRangeAt(0) : null;\n  return range && !range.collapsed;\n}\n/**\n * Check whether the given element, assumed an input field or textarea,\n * contains a (uncollapsed) selection of text.\n *\n * Note: this is perhaps an abuse of the term \"selection\", since these elements\n * manage selection differently and aren't covered by Selection#collapsed.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection#Related_objects.\n *\n * @param {HTMLElement} element The HTML element.\n *\n * @return {boolean} Whether the input/textareaa element has some \"selection\".\n */\n\nfunction inputFieldHasUncollapsedSelection(element) {\n  if (!isTextField(element) && !isNumberInput(element)) {\n    return false;\n  }\n\n  try {\n    var selectionStart = element.selectionStart,\n        selectionEnd = element.selectionEnd;\n    return selectionStart !== null && selectionStart !== selectionEnd;\n  } catch (error) {\n    // Safari throws an exception when trying to get `selectionStart`\n    // on non-text <input> elements (which, understandably, don't\n    // have the text selection API). We catch this via a try/catch\n    // block, as opposed to a more explicit check of the element's\n    // input types, because of Safari's non-standard behavior. This\n    // also means we don't have to worry about the list of input\n    // types that support `selectionStart` changing as the HTML spec\n    // evolves over time.\n    return false;\n  }\n}\n/**\n * Check whether the current document has any sort of selection. This includes\n * ranges of text across elements and any selection inside <input> and\n * <textarea> elements.\n *\n * @return {boolean} Whether there is any sort of \"selection\" in the document.\n */\n\n\nfunction documentHasUncollapsedSelection() {\n  return documentHasTextSelection() || inputFieldHasUncollapsedSelection(document.activeElement);\n}\n/**\n * Check whether the current document has a selection. This checks for both\n * focus in an input field and general text selection.\n *\n * @return {boolean} True if there is selection, false if not.\n */\n\nfunction documentHasSelection() {\n  return isTextField(document.activeElement) || isNumberInput(document.activeElement) || documentHasTextSelection();\n}\n/**\n * Check whether the contents of the element have been entirely selected.\n * Returns true if there is no possibility of selection.\n *\n * @param {Element} element The element to check.\n *\n * @return {boolean} True if entirely selected, false if not.\n */\n\nfunction isEntirelySelected(element) {\n  if (Object(external_this_lodash_[\"includes\"])(['INPUT', 'TEXTAREA'], element.nodeName)) {\n    return element.selectionStart === 0 && element.value.length === element.selectionEnd;\n  }\n\n  if (!element.isContentEditable) {\n    return true;\n  }\n\n  var selection = window.getSelection();\n  var range = selection.rangeCount ? selection.getRangeAt(0) : null;\n\n  if (!range) {\n    return true;\n  }\n\n  var startContainer = range.startContainer,\n      endContainer = range.endContainer,\n      startOffset = range.startOffset,\n      endOffset = range.endOffset;\n\n  if (startContainer === element && endContainer === element && startOffset === 0 && endOffset === element.childNodes.length) {\n    return true;\n  }\n\n  var lastChild = element.lastChild;\n  var lastChildContentLength = lastChild.nodeType === TEXT_NODE ? lastChild.data.length : lastChild.childNodes.length;\n  return startContainer === element.firstChild && endContainer === element.lastChild && startOffset === 0 && endOffset === lastChildContentLength;\n}\n/**\n * Given a DOM node, finds the closest scrollable container node.\n *\n * @param {Element} node Node from which to start.\n *\n * @return {?Element} Scrollable container node, if found.\n */\n\nfunction getScrollContainer(node) {\n  if (!node) {\n    return;\n  } // Scrollable if scrollable height exceeds displayed...\n\n\n  if (node.scrollHeight > node.clientHeight) {\n    // ...except when overflow is defined to be hidden or visible\n    var _window$getComputedSt = window.getComputedStyle(node),\n        overflowY = _window$getComputedSt.overflowY;\n\n    if (/(auto|scroll)/.test(overflowY)) {\n      return node;\n    }\n  } // Continue traversing\n\n\n  return getScrollContainer(node.parentNode);\n}\n/**\n * Returns the closest positioned element, or null under any of the conditions\n * of the offsetParent specification. Unlike offsetParent, this function is not\n * limited to HTMLElement and accepts any Node (e.g. Node.TEXT_NODE).\n *\n * @see https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsetparent\n *\n * @param {Node} node Node from which to find offset parent.\n *\n * @return {?Node} Offset parent.\n */\n\nfunction getOffsetParent(node) {\n  // Cannot retrieve computed style or offset parent only anything other than\n  // an element node, so find the closest element node.\n  var closestElement;\n\n  while (closestElement = node.parentNode) {\n    if (closestElement.nodeType === ELEMENT_NODE) {\n      break;\n    }\n  }\n\n  if (!closestElement) {\n    return null;\n  } // If the closest element is already positioned, return it, as offsetParent\n  // does not otherwise consider the node itself.\n\n\n  if (getComputedStyle(closestElement).position !== 'static') {\n    return closestElement;\n  }\n\n  return closestElement.offsetParent;\n}\n/**\n * Given two DOM nodes, replaces the former with the latter in the DOM.\n *\n * @param {Element} processedNode Node to be removed.\n * @param {Element} newNode       Node to be inserted in its place.\n * @return {void}\n */\n\nfunction replace(processedNode, newNode) {\n  insertAfter(newNode, processedNode.parentNode);\n  remove(processedNode);\n}\n/**\n * Given a DOM node, removes it from the DOM.\n *\n * @param {Element} node Node to be removed.\n * @return {void}\n */\n\nfunction remove(node) {\n  node.parentNode.removeChild(node);\n}\n/**\n * Given two DOM nodes, inserts the former in the DOM as the next sibling of\n * the latter.\n *\n * @param {Element} newNode       Node to be inserted.\n * @param {Element} referenceNode Node after which to perform the insertion.\n * @return {void}\n */\n\nfunction insertAfter(newNode, referenceNode) {\n  referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n}\n/**\n * Unwrap the given node. This means any child nodes are moved to the parent.\n *\n * @param {Node} node The node to unwrap.\n *\n * @return {void}\n */\n\nfunction unwrap(node) {\n  var parent = node.parentNode;\n\n  while (node.firstChild) {\n    parent.insertBefore(node.firstChild, node);\n  }\n\n  parent.removeChild(node);\n}\n/**\n * Replaces the given node with a new node with the given tag name.\n *\n * @param {Element}  node    The node to replace\n * @param {string}   tagName The new tag name.\n *\n * @return {Element} The new node.\n */\n\nfunction replaceTag(node, tagName) {\n  var newNode = node.ownerDocument.createElement(tagName);\n\n  while (node.firstChild) {\n    newNode.appendChild(node.firstChild);\n  }\n\n  node.parentNode.replaceChild(newNode, node);\n  return newNode;\n}\n/**\n * Wraps the given node with a new node with the given tag name.\n *\n * @param {Element} newNode       The node to insert.\n * @param {Element} referenceNode The node to wrap.\n */\n\nfunction wrap(newNode, referenceNode) {\n  referenceNode.parentNode.insertBefore(newNode, referenceNode);\n  newNode.appendChild(referenceNode);\n}\n/**\n * Removes any HTML tags from the provided string.\n *\n * @param {string} html The string containing html.\n *\n * @return {string} The text content with any html removed.\n */\n\nfunction __unstableStripHTML(html) {\n  var document = new DOMParser().parseFromString(html, 'text/html');\n  return document.body.textContent || '';\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/dom/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Object grouping `focusable` and `tabbable` utils\n * under the keys with the same name.\n */\n\nvar build_module_focus = {\n  focusable: focusable_namespaceObject,\n  tabbable: tabbable_namespaceObject\n};\n\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-edit-post.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"editPost\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 435);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 104:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction flattenIntoMap( map, effects ) {\n\tvar i;\n\tif ( Array.isArray( effects ) ) {\n\t\tfor ( i = 0; i < effects.length; i++ ) {\n\t\t\tflattenIntoMap( map, effects[ i ] );\n\t\t}\n\t} else {\n\t\tfor ( i in effects ) {\n\t\t\tmap[ i ] = ( map[ i ] || [] ).concat( effects[ i ] );\n\t\t}\n\t}\n}\n\nfunction refx( effects ) {\n\tvar map = {},\n\t\tmiddleware;\n\n\tflattenIntoMap( map, effects );\n\n\tmiddleware = function( store ) {\n\t\treturn function( next ) {\n\t\t\treturn function( action ) {\n\t\t\t\tvar handlers = map[ action.type ],\n\t\t\t\t\tresult = next( action ),\n\t\t\t\t\ti, handlerAction;\n\n\t\t\t\tif ( handlers ) {\n\t\t\t\t\tfor ( i = 0; i < handlers.length; i++ ) {\n\t\t\t\t\t\thandlerAction = handlers[ i ]( action, store );\n\t\t\t\t\t\tif ( handlerAction ) {\n\t\t\t\t\t\t\tstore.dispatch( handlerAction );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t};\n\t\t};\n\t};\n\n\tmiddleware.effects = map;\n\n\treturn middleware;\n}\n\nmodule.exports = refx;\n\n\n/***/ }),\n\n/***/ 109:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction BaseOption(_ref) {\n  var label = _ref.label,\n      isChecked = _ref.isChecked,\n      onChange = _ref.onChange,\n      children = _ref.children;\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(\"div\", {\n    className: \"edit-post-options-modal__option\"\n  }, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__[\"CheckboxControl\"], {\n    label: label,\n    checked: isChecked,\n    onChange: onChange\n  }), children);\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (BaseOption);\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 112:\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 145:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"mediaUtils\"]; }());\n\n/***/ }),\n\n/***/ 147:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (close);\n\n\n/***/ }),\n\n/***/ 148:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (check);\n\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 158:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* unused harmony export Fill */\n/* unused harmony export Slot */\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63);\n/* harmony import */ var _wordpress_plugins__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(97);\n/* harmony import */ var _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_warning__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _options_modal_options__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(466);\n\n\n/**\n * Defines as extensibility slot for the Settings sidebar\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar _createSlotFill = Object(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__[\"createSlotFill\"])('PluginDocumentSettingPanel'),\n    Fill = _createSlotFill.Fill,\n    Slot = _createSlotFill.Slot;\n\n\n\nvar PluginDocumentSettingFill = function PluginDocumentSettingFill(_ref) {\n  var isEnabled = _ref.isEnabled,\n      panelName = _ref.panelName,\n      opened = _ref.opened,\n      onToggle = _ref.onToggle,\n      className = _ref.className,\n      title = _ref.title,\n      icon = _ref.icon,\n      children = _ref.children;\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"Fragment\"], null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_options_modal_options__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"], {\n    label: title,\n    panelName: panelName\n  }), Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Fill, null, isEnabled && Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__[\"PanelBody\"], {\n    className: className,\n    title: title,\n    icon: icon,\n    opened: opened,\n    onToggle: onToggle\n  }, children)));\n};\n/**\n * Renders items below the Status & Availability panel in the Document Sidebar.\n *\n * @param {Object} props Component properties.\n * @param {string} [props.name] The machine-friendly name for the panel.\n * @param {string} [props.className] An optional class name added to the row.\n * @param {string} [props.title] The title of the panel\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var __ = wp.i18n.__;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var PluginDocumentSettingPanel = wp.editPost.PluginDocumentSettingPanel;\n *\n * function MyDocumentSettingPlugin() {\n * \treturn el(\n * \t\tPluginDocumentSettingPanel,\n * \t\t{\n * \t\t\tclassName: 'my-document-setting-plugin',\n * \t\t\ttitle: 'My Panel',\n * \t\t},\n * \t\t__( 'My Document Setting Panel' )\n * \t);\n * }\n *\n * registerPlugin( 'my-document-setting-plugin', {\n * \t\trender: MyDocumentSettingPlugin\n * } );\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { registerPlugin } from '@wordpress/plugins';\n * import { PluginDocumentSettingPanel } from '@wordpress/edit-post';\n *\n * const MyDocumentSettingTest = () => (\n * \t\t<PluginDocumentSettingPanel className=\"my-document-setting-plugin\" title=\"My Panel\">\n *\t\t\t<p>My Document Setting Panel</p>\n *\t\t</PluginDocumentSettingPanel>\n *\t);\n *\n *  registerPlugin( 'document-setting-test', { render: MyDocumentSettingTest } );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n\nvar PluginDocumentSettingPanel = Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_2__[\"compose\"])(Object(_wordpress_plugins__WEBPACK_IMPORTED_MODULE_3__[\"withPluginContext\"])(function (context, ownProps) {\n  if (undefined === ownProps.name) {\n    typeof process !== \"undefined\" && process.env && \"production\" !== \"production\" ? _wordpress_warning__WEBPACK_IMPORTED_MODULE_5___default()('PluginDocumentSettingPanel requires a name property.') : void 0;\n  }\n\n  return {\n    icon: ownProps.icon || context.icon,\n    panelName: \"\".concat(context.name, \"/\").concat(ownProps.name)\n  };\n}), Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__[\"withSelect\"])(function (select, _ref2) {\n  var panelName = _ref2.panelName;\n  return {\n    opened: select('core/edit-post').isEditorPanelOpened(panelName),\n    isEnabled: select('core/edit-post').isEditorPanelEnabled(panelName)\n  };\n}), Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_4__[\"withDispatch\"])(function (dispatch, _ref3) {\n  var panelName = _ref3.panelName;\n  return {\n    onToggle: function onToggle() {\n      return dispatch('core/edit-post').toggleEditorPanelOpened(panelName);\n    }\n  };\n}))(PluginDocumentSettingFill);\nPluginDocumentSettingPanel.Slot = Slot;\n/* harmony default export */ __webpack_exports__[\"a\"] = (PluginDocumentSettingPanel);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)))\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 171:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (closeSmall);\n\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 271:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockLibrary\"]; }());\n\n/***/ }),\n\n/***/ 281:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar starFilled = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (starFilled);\n\n\n/***/ }),\n\n/***/ 282:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar starEmpty = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  fillRule: \"evenodd\",\n  d: \"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z\",\n  clipRule: \"evenodd\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (starEmpty);\n\n\n/***/ }),\n\n/***/ 286:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar plus = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18 11.2h-5.2V6h-1.6v5.2H6v1.6h5.2V18h1.6v-5.2H18z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (plus);\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 293:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar moreVertical = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (moreVertical);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 33:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"editor\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dataControls\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 405:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar external = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (external);\n\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 416:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar plugins = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (plugins);\n\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 435:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"reinitializeEditor\", function() { return /* binding */ reinitializeEditor; });\n__webpack_require__.d(__webpack_exports__, \"initializeEditor\", function() { return /* binding */ initializeEditor; });\n__webpack_require__.d(__webpack_exports__, \"PluginBlockSettingsMenuItem\", function() { return /* reexport */ plugin_block_settings_menu_item; });\n__webpack_require__.d(__webpack_exports__, \"PluginDocumentSettingPanel\", function() { return /* reexport */ plugin_document_setting_panel[\"a\" /* default */]; });\n__webpack_require__.d(__webpack_exports__, \"PluginMoreMenuItem\", function() { return /* reexport */ plugin_more_menu_item; });\n__webpack_require__.d(__webpack_exports__, \"PluginPostPublishPanel\", function() { return /* reexport */ plugin_post_publish_panel; });\n__webpack_require__.d(__webpack_exports__, \"PluginPostStatusInfo\", function() { return /* reexport */ plugin_post_status_info; });\n__webpack_require__.d(__webpack_exports__, \"PluginPrePublishPanel\", function() { return /* reexport */ plugin_pre_publish_panel; });\n__webpack_require__.d(__webpack_exports__, \"PluginSidebar\", function() { return /* reexport */ PluginSidebarEditPost; });\n__webpack_require__.d(__webpack_exports__, \"PluginSidebarMoreMenuItem\", function() { return /* reexport */ PluginSidebarMoreMenuItem; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalFullscreenModeClose\", function() { return /* reexport */ fullscreen_mode_close; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-post/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"openGeneralSidebar\", function() { return actions_openGeneralSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"closeGeneralSidebar\", function() { return actions_closeGeneralSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"openModal\", function() { return actions_openModal; });\n__webpack_require__.d(actions_namespaceObject, \"closeModal\", function() { return actions_closeModal; });\n__webpack_require__.d(actions_namespaceObject, \"openPublishSidebar\", function() { return openPublishSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"closePublishSidebar\", function() { return actions_closePublishSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"togglePublishSidebar\", function() { return actions_togglePublishSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"toggleEditorPanelEnabled\", function() { return toggleEditorPanelEnabled; });\n__webpack_require__.d(actions_namespaceObject, \"toggleEditorPanelOpened\", function() { return actions_toggleEditorPanelOpened; });\n__webpack_require__.d(actions_namespaceObject, \"removeEditorPanel\", function() { return removeEditorPanel; });\n__webpack_require__.d(actions_namespaceObject, \"toggleFeature\", function() { return actions_toggleFeature; });\n__webpack_require__.d(actions_namespaceObject, \"switchEditorMode\", function() { return actions_switchEditorMode; });\n__webpack_require__.d(actions_namespaceObject, \"togglePinnedPluginItem\", function() { return togglePinnedPluginItem; });\n__webpack_require__.d(actions_namespaceObject, \"hideBlockTypes\", function() { return actions_hideBlockTypes; });\n__webpack_require__.d(actions_namespaceObject, \"updatePreferredStyleVariations\", function() { return actions_updatePreferredStyleVariations; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalUpdateLocalAutosaveInterval\", function() { return __experimentalUpdateLocalAutosaveInterval; });\n__webpack_require__.d(actions_namespaceObject, \"showBlockTypes\", function() { return actions_showBlockTypes; });\n__webpack_require__.d(actions_namespaceObject, \"setAvailableMetaBoxesPerLocation\", function() { return setAvailableMetaBoxesPerLocation; });\n__webpack_require__.d(actions_namespaceObject, \"requestMetaBoxUpdates\", function() { return requestMetaBoxUpdates; });\n__webpack_require__.d(actions_namespaceObject, \"metaBoxUpdatesSuccess\", function() { return metaBoxUpdatesSuccess; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalSetPreviewDeviceType\", function() { return __experimentalSetPreviewDeviceType; });\n__webpack_require__.d(actions_namespaceObject, \"setIsInserterOpened\", function() { return actions_setIsInserterOpened; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/edit-post/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getEditorMode\", function() { return selectors_getEditorMode; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditorSidebarOpened\", function() { return selectors_isEditorSidebarOpened; });\n__webpack_require__.d(selectors_namespaceObject, \"isPluginSidebarOpened\", function() { return isPluginSidebarOpened; });\n__webpack_require__.d(selectors_namespaceObject, \"getActiveGeneralSidebarName\", function() { return getActiveGeneralSidebarName; });\n__webpack_require__.d(selectors_namespaceObject, \"getPreferences\", function() { return getPreferences; });\n__webpack_require__.d(selectors_namespaceObject, \"getPreference\", function() { return selectors_getPreference; });\n__webpack_require__.d(selectors_namespaceObject, \"isPublishSidebarOpened\", function() { return selectors_isPublishSidebarOpened; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditorPanelRemoved\", function() { return isEditorPanelRemoved; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditorPanelEnabled\", function() { return selectors_isEditorPanelEnabled; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditorPanelOpened\", function() { return selectors_isEditorPanelOpened; });\n__webpack_require__.d(selectors_namespaceObject, \"isModalActive\", function() { return selectors_isModalActive; });\n__webpack_require__.d(selectors_namespaceObject, \"isFeatureActive\", function() { return isFeatureActive; });\n__webpack_require__.d(selectors_namespaceObject, \"isPluginItemPinned\", function() { return isPluginItemPinned; });\n__webpack_require__.d(selectors_namespaceObject, \"getActiveMetaBoxLocations\", function() { return getActiveMetaBoxLocations; });\n__webpack_require__.d(selectors_namespaceObject, \"isMetaBoxLocationVisible\", function() { return isMetaBoxLocationVisible; });\n__webpack_require__.d(selectors_namespaceObject, \"isMetaBoxLocationActive\", function() { return isMetaBoxLocationActive; });\n__webpack_require__.d(selectors_namespaceObject, \"getMetaBoxesPerLocation\", function() { return getMetaBoxesPerLocation; });\n__webpack_require__.d(selectors_namespaceObject, \"getAllMetaBoxes\", function() { return getAllMetaBoxes; });\n__webpack_require__.d(selectors_namespaceObject, \"hasMetaBoxes\", function() { return hasMetaBoxes; });\n__webpack_require__.d(selectors_namespaceObject, \"isSavingMetaBoxes\", function() { return selectors_isSavingMetaBoxes; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetPreviewDeviceType\", function() { return __experimentalGetPreviewDeviceType; });\n__webpack_require__.d(selectors_namespaceObject, \"isInserterOpened\", function() { return selectors_isInserterOpened; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js\nvar store_actions_namespaceObject = {};\n__webpack_require__.r(store_actions_namespaceObject);\n__webpack_require__.d(store_actions_namespaceObject, \"enableComplementaryArea\", function() { return actions_enableComplementaryArea; });\n__webpack_require__.d(store_actions_namespaceObject, \"disableComplementaryArea\", function() { return actions_disableComplementaryArea; });\n__webpack_require__.d(store_actions_namespaceObject, \"pinItem\", function() { return actions_pinItem; });\n__webpack_require__.d(store_actions_namespaceObject, \"unpinItem\", function() { return actions_unpinItem; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js\nvar store_selectors_namespaceObject = {};\n__webpack_require__.r(store_selectors_namespaceObject);\n__webpack_require__.d(store_selectors_namespaceObject, \"getActiveComplementaryArea\", function() { return getActiveComplementaryArea; });\n__webpack_require__.d(store_selectors_namespaceObject, \"isItemPinned\", function() { return isItemPinned; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"coreData\"]}\nvar external_this_wp_coreData_ = __webpack_require__(89);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockEditor\"]}\nvar external_this_wp_blockEditor_ = __webpack_require__(7);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"editor\"]}\nvar external_this_wp_editor_ = __webpack_require__(33);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keyboardShortcuts\"]}\nvar external_this_wp_keyboardShortcuts_ = __webpack_require__(47);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"viewport\"]}\nvar external_this_wp_viewport_ = __webpack_require__(72);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"notices\"]}\nvar external_this_wp_notices_ = __webpack_require__(92);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockLibrary\"]}\nvar external_this_wp_blockLibrary_ = __webpack_require__(271);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"mediaUtils\"]}\nvar external_this_wp_mediaUtils_ = __webpack_require__(145);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/hooks/components/index.js\n/**\n * WordPress dependencies\n */\n\n\n\nvar components_replaceMediaUpload = function replaceMediaUpload() {\n  return external_this_wp_mediaUtils_[\"MediaUpload\"];\n};\n\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.MediaUpload', 'core/edit-post/replace-media-upload', components_replaceMediaUpload);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/hooks/validate-multiple-use/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\nvar enhance = Object(external_this_wp_compose_[\"compose\"])(\n/**\n * For blocks whose block type doesn't support `multiple`, provides the\n * wrapped component with `originalBlockClientId` -- a reference to the\n * first block of the same type in the content -- if and only if that\n * \"original\" block is not the current one. Thus, an inexisting\n * `originalBlockClientId` prop signals that the block is valid.\n *\n * @param {WPComponent} WrappedBlockEdit A filtered BlockEdit instance.\n *\n * @return {WPComponent} Enhanced component with merged state data props.\n */\nObject(external_this_wp_data_[\"withSelect\"])(function (select, block) {\n  var multiple = Object(external_this_wp_blocks_[\"hasBlockSupport\"])(block.name, 'multiple', true); // For block types with `multiple` support, there is no \"original\n  // block\" to be found in the content, as the block itself is valid.\n\n  if (multiple) {\n    return {};\n  } // Otherwise, only pass `originalBlockClientId` if it refers to a different\n  // block from the current one.\n\n\n  var blocks = select('core/block-editor').getBlocks();\n  var firstOfSameType = Object(external_this_lodash_[\"find\"])(blocks, function (_ref) {\n    var name = _ref.name;\n    return block.name === name;\n  });\n  var isInvalid = firstOfSameType && firstOfSameType.clientId !== block.clientId;\n  return {\n    originalBlockClientId: isInvalid && firstOfSameType.clientId\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var originalBlockClientId = _ref2.originalBlockClientId;\n  return {\n    selectFirst: function selectFirst() {\n      return dispatch('core/block-editor').selectBlock(originalBlockClientId);\n    }\n  };\n}));\nvar withMultipleValidation = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n  return enhance(function (_ref3) {\n    var originalBlockClientId = _ref3.originalBlockClientId,\n        selectFirst = _ref3.selectFirst,\n        props = Object(objectWithoutProperties[\"a\" /* default */])(_ref3, [\"originalBlockClientId\", \"selectFirst\"]);\n\n    if (!originalBlockClientId) {\n      return Object(external_this_wp_element_[\"createElement\"])(BlockEdit, props);\n    }\n\n    var blockType = Object(external_this_wp_blocks_[\"getBlockType\"])(props.name);\n    var outboundType = getOutboundType(props.name);\n    return [Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      key: \"invalid-preview\",\n      style: {\n        minHeight: '60px'\n      }\n    }, Object(external_this_wp_element_[\"createElement\"])(BlockEdit, Object(esm_extends[\"a\" /* default */])({\n      key: \"block-edit\"\n    }, props))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"Warning\"], {\n      key: \"multiple-use-warning\",\n      actions: [Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        key: \"find-original\",\n        isSecondary: true,\n        onClick: selectFirst\n      }, Object(external_this_wp_i18n_[\"__\"])('Find original')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        key: \"remove\",\n        isSecondary: true,\n        onClick: function onClick() {\n          return props.onReplace([]);\n        }\n      }, Object(external_this_wp_i18n_[\"__\"])('Remove')), outboundType && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        key: \"transform\",\n        isSecondary: true,\n        onClick: function onClick() {\n          return props.onReplace(Object(external_this_wp_blocks_[\"createBlock\"])(outboundType.name, props.attributes));\n        }\n      }, Object(external_this_wp_i18n_[\"__\"])('Transform into:'), \" \", outboundType.title)]\n    }, Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, blockType.title, \": \"), Object(external_this_wp_i18n_[\"__\"])('This block can only be used once.'))];\n  });\n}, 'withMultipleValidation');\n/**\n * Given a base block name, returns the default block type to which to offer\n * transforms.\n *\n * @param {string} blockName Base block name.\n *\n * @return {?Object} The chosen default block type.\n */\n\nfunction getOutboundType(blockName) {\n  // Grab the first outbound transform\n  var transform = Object(external_this_wp_blocks_[\"findTransform\"])(Object(external_this_wp_blocks_[\"getBlockTransforms\"])('to', blockName), function (_ref4) {\n    var type = _ref4.type,\n        blocks = _ref4.blocks;\n    return type === 'block' && blocks.length === 1;\n  } // What about when .length > 1?\n  );\n\n  if (!transform) {\n    return null;\n  }\n\n  return Object(external_this_wp_blocks_[\"getBlockType\"])(transform.blocks[0]);\n}\n\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.BlockEdit', 'core/edit-post/validate-multiple-use/with-multiple-validation', withMultipleValidation);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/hooks/index.js\n/**\n * Internal dependencies\n */\n\n\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"plugins\"]}\nvar external_this_wp_plugins_ = __webpack_require__(63);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/plugins/copy-content-menu-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction CopyContentMenuItem(_ref) {\n  var createNotice = _ref.createNotice,\n      editedPostContent = _ref.editedPostContent;\n  var ref = Object(external_this_wp_element_[\"useRef\"])();\n  var hasCopied = Object(external_this_wp_compose_[\"useCopyOnClick\"])(ref, editedPostContent);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!hasCopied) {\n      return;\n    }\n\n    createNotice('info', Object(external_this_wp_i18n_[\"__\"])('All content copied.'), {\n      isDismissible: true,\n      type: 'snackbar'\n    });\n  }, [hasCopied]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    ref: ref\n  }, hasCopied ? Object(external_this_wp_i18n_[\"__\"])('Copied!') : Object(external_this_wp_i18n_[\"__\"])('Copy all content'));\n}\n\n/* harmony default export */ var copy_content_menu_item = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    editedPostContent: select('core/editor').getEditedPostAttribute('content')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/notices'),\n      createNotice = _dispatch.createNotice;\n\n  return {\n    createNotice: createNotice\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref2) {\n  var editedPostContent = _ref2.editedPostContent;\n  return editedPostContent.length > 0;\n}))(CopyContentMenuItem));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/plugins/manage-blocks-menu-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction ManageBlocksMenuItem(_ref) {\n  var openModal = _ref.openModal;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: function onClick() {\n      openModal('edit-post/manage-blocks');\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Block Manager'));\n}\n/* harmony default export */ var manage_blocks_menu_item = (Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      openModal = _dispatch.openModal;\n\n  return {\n    openModal: openModal\n  };\n})(ManageBlocksMenuItem));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/plugins/keyboard-shortcuts-help-menu-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction KeyboardShortcutsHelpMenuItem(_ref) {\n  var openModal = _ref.openModal;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: function onClick() {\n      openModal('edit-post/keyboard-shortcut-help');\n    },\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].access('h')\n  }, Object(external_this_wp_i18n_[\"__\"])('Keyboard shortcuts'));\n}\n/* harmony default export */ var keyboard_shortcuts_help_menu_item = (Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      openModal = _dispatch.openModal;\n\n  return {\n    openModal: openModal\n  };\n})(KeyboardShortcutsHelpMenuItem));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/tools-more-menu-group/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar _createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('ToolsMoreMenuGroup'),\n    ToolsMoreMenuGroup = _createSlotFill.Fill,\n    tools_more_menu_group_Slot = _createSlotFill.Slot;\n\nToolsMoreMenuGroup.Slot = function (_ref) {\n  var fillProps = _ref.fillProps;\n  return Object(external_this_wp_element_[\"createElement\"])(tools_more_menu_group_Slot, {\n    fillProps: fillProps\n  }, function (fills) {\n    return !Object(external_this_lodash_[\"isEmpty\"])(fills) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n      label: Object(external_this_wp_i18n_[\"__\"])('Tools')\n    }, fills);\n  });\n};\n\n/* harmony default export */ var tools_more_menu_group = (ToolsMoreMenuGroup);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/plugins/welcome-guide-menu-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction WelcomeGuideMenuItem() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      toggleFeature = _useDispatch.toggleFeature;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: function onClick() {\n      return toggleFeature('welcomeGuide');\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Welcome Guide'));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/plugins/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nObject(external_this_wp_plugins_[\"registerPlugin\"])('edit-post', {\n  render: function render() {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(tools_more_menu_group, null, function (_ref) {\n      var onClose = _ref.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(manage_blocks_menu_item, {\n        onSelect: onClose\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        role: \"menuitem\",\n        href: Object(external_this_wp_url_[\"addQueryArgs\"])('edit.php', {\n          post_type: 'wp_block'\n        })\n      }, Object(external_this_wp_i18n_[\"__\"])('Manage all reusable blocks')), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts_help_menu_item, {\n        onSelect: onClose\n      }), Object(external_this_wp_element_[\"createElement\"])(WelcomeGuideMenuItem, null), Object(external_this_wp_element_[\"createElement\"])(copy_content_menu_item, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n        role: \"menuitem\",\n        href: Object(external_this_wp_i18n_[\"__\"])('https://wordpress.org/support/article/wordpress-editor/'),\n        target: \"_blank\",\n        rel: \"noopener noreferrer\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Help')));\n    }));\n  }\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dataControls\"]}\nvar external_this_wp_dataControls_ = __webpack_require__(36);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/defaults.js\nvar PREFERENCES_DEFAULTS = {\n  editorMode: 'visual',\n  panels: {\n    'post-status': {\n      opened: true\n    }\n  },\n  features: {\n    fixedToolbar: false,\n    welcomeGuide: true,\n    fullscreenMode: true\n  },\n  hiddenBlockTypes: [],\n  preferredStyleVariations: {},\n  localAutosaveInterval: 15\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/reducer.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order reducer creator which provides the given initial state for the\n * original reducer.\n *\n * @param {*} initialState Initial state to provide to reducer.\n *\n * @return {Function} Higher-order reducer.\n */\n\nvar createWithInitialState = function createWithInitialState(initialState) {\n  return function (reducer) {\n    return function () {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n      return reducer(state, action);\n    };\n  };\n};\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object}  state                           Current state.\n * @param {string}  state.mode                      Current editor mode, either\n *                                                  \"visual\" or \"text\".\n * @param {boolean} state.isGeneralSidebarDismissed Whether general sidebar is\n *                                                  dismissed. False by default\n *                                                  or when closing general\n *                                                  sidebar, true when opening\n *                                                  sidebar.\n * @param {boolean} state.isSidebarOpened           Whether the sidebar is\n *                                                  opened or closed.\n * @param {Object}  state.panels                    The state of the different\n *                                                  sidebar panels.\n * @param {Object}  action                          Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\n\nvar preferences = Object(external_this_lodash_[\"flow\"])([external_this_wp_data_[\"combineReducers\"], createWithInitialState(PREFERENCES_DEFAULTS)])({\n  panels: function panels(state, action) {\n    switch (action.type) {\n      case 'TOGGLE_PANEL_ENABLED':\n        {\n          var panelName = action.panelName;\n          return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, panelName, _objectSpread({}, state[panelName], {\n            enabled: !Object(external_this_lodash_[\"get\"])(state, [panelName, 'enabled'], true)\n          })));\n        }\n\n      case 'TOGGLE_PANEL_OPENED':\n        {\n          var _panelName = action.panelName;\n          var isOpen = state[_panelName] === true || Object(external_this_lodash_[\"get\"])(state, [_panelName, 'opened'], false);\n          return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, _panelName, _objectSpread({}, state[_panelName], {\n            opened: !isOpen\n          })));\n        }\n    }\n\n    return state;\n  },\n  features: function features(state, action) {\n    if (action.type === 'TOGGLE_FEATURE') {\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.feature, !state[action.feature]));\n    }\n\n    return state;\n  },\n  editorMode: function editorMode(state, action) {\n    if (action.type === 'SWITCH_MODE') {\n      return action.mode;\n    }\n\n    return state;\n  },\n  hiddenBlockTypes: function hiddenBlockTypes(state, action) {\n    switch (action.type) {\n      case 'SHOW_BLOCK_TYPES':\n        return external_this_lodash_[\"without\"].apply(void 0, [state].concat(Object(toConsumableArray[\"a\" /* default */])(action.blockNames)));\n\n      case 'HIDE_BLOCK_TYPES':\n        return Object(external_this_lodash_[\"union\"])(state, action.blockNames);\n    }\n\n    return state;\n  },\n  preferredStyleVariations: function preferredStyleVariations(state, action) {\n    switch (action.type) {\n      case 'UPDATE_PREFERRED_STYLE_VARIATIONS':\n        {\n          if (!action.blockName) {\n            return state;\n          }\n\n          if (!action.blockStyle) {\n            return Object(external_this_lodash_[\"omit\"])(state, [action.blockName]);\n          }\n\n          return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.blockName, action.blockStyle));\n        }\n    }\n\n    return state;\n  },\n  localAutosaveInterval: function localAutosaveInterval(state, action) {\n    switch (action.type) {\n      case 'UPDATE_LOCAL_AUTOSAVE_INTERVAL':\n        return action.interval;\n    }\n\n    return state;\n  }\n});\n/**\n * Reducer storing the list of all programmatically removed panels.\n *\n * @param {Array}  state  Current state.\n * @param {Object} action Action object.\n *\n * @return {Array} Updated state.\n */\n\nfunction removedPanels() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'REMOVE_PANEL':\n      if (!Object(external_this_lodash_[\"includes\"])(state, action.panelName)) {\n        return [].concat(Object(toConsumableArray[\"a\" /* default */])(state), [action.panelName]);\n      }\n\n  }\n\n  return state;\n}\n/**\n * Reducer for storing the name of the open modal, or null if no modal is open.\n *\n * @param {Object} state  Previous state.\n * @param {Object} action Action object containing the `name` of the modal\n *\n * @return {Object} Updated state\n */\n\nfunction activeModal() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'OPEN_MODAL':\n      return action.name;\n\n    case 'CLOSE_MODAL':\n      return null;\n  }\n\n  return state;\n}\nfunction publishSidebarActive() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'OPEN_PUBLISH_SIDEBAR':\n      return true;\n\n    case 'CLOSE_PUBLISH_SIDEBAR':\n      return false;\n\n    case 'TOGGLE_PUBLISH_SIDEBAR':\n      return !state;\n  }\n\n  return state;\n}\n/**\n * Reducer keeping track of the meta boxes isSaving state.\n * A \"true\" value means the meta boxes saving request is in-flight.\n *\n *\n * @param {boolean}  state   Previous state.\n * @param {Object}   action  Action Object.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_isSavingMetaBoxes() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'REQUEST_META_BOX_UPDATES':\n      return true;\n\n    case 'META_BOX_UPDATES_SUCCESS':\n      return false;\n\n    default:\n      return state;\n  }\n}\n/**\n * Reducer keeping track of the meta boxes per location.\n *\n * @param {boolean}  state   Previous state.\n * @param {Object}   action  Action Object.\n *\n * @return {Object} Updated state.\n */\n\nfunction metaBoxLocations() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_META_BOXES_PER_LOCATIONS':\n      return action.metaBoxesPerLocation;\n  }\n\n  return state;\n}\n/**\n * Reducer returning the editing canvas device type.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_deviceType() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Desktop';\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_PREVIEW_DEVICE_TYPE':\n      return action.deviceType;\n  }\n\n  return state;\n}\n/**\n * Reducer tracking whether the inserter is open.\n *\n * @param {boolean} state\n * @param {Object}  action\n */\n\nfunction reducer_isInserterOpened() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_IS_INSERTER_OPENED':\n      return action.value;\n  }\n\n  return state;\n}\n\nvar reducer_metaBoxes = Object(external_this_wp_data_[\"combineReducers\"])({\n  isSaving: reducer_isSavingMetaBoxes,\n  locations: metaBoxLocations\n});\n/* harmony default export */ var reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  activeModal: activeModal,\n  metaBoxes: reducer_metaBoxes,\n  preferences: preferences,\n  publishSidebarActive: publishSidebarActive,\n  removedPanels: removedPanels,\n  deviceType: reducer_deviceType,\n  isInserterOpened: reducer_isInserterOpened\n}));\n\n// EXTERNAL MODULE: ./node_modules/refx/refx.js\nvar refx = __webpack_require__(104);\nvar refx_default = /*#__PURE__*/__webpack_require__.n(refx);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"a11y\"]}\nvar external_this_wp_a11y_ = __webpack_require__(48);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/actions.js\n\n\nvar _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_openGeneralSidebar),\n    _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_closeGeneralSidebar);\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Returns an action object used in signalling that the user opened an editor sidebar.\n *\n * @param {?string} name Sidebar name to be opened.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_openGeneralSidebar(name) {\n  return external_this_regeneratorRuntime_default.a.wrap(function openGeneralSidebar$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          _context.next = 2;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core/interface', 'enableComplementaryArea', 'core/edit-post', name);\n\n        case 2:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked);\n}\n/**\n * Returns an action object signalling that the user closed the sidebar.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_closeGeneralSidebar() {\n  return external_this_regeneratorRuntime_default.a.wrap(function closeGeneralSidebar$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core/interface', 'disableComplementaryArea', 'core/edit-post');\n\n        case 2:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2);\n}\n/**\n * Returns an action object used in signalling that the user opened a modal.\n *\n * @param {string} name A string that uniquely identifies the modal.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_openModal(name) {\n  return {\n    type: 'OPEN_MODAL',\n    name: name\n  };\n}\n/**\n * Returns an action object signalling that the user closed a modal.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_closeModal() {\n  return {\n    type: 'CLOSE_MODAL'\n  };\n}\n/**\n * Returns an action object used in signalling that the user opened the publish\n * sidebar.\n *\n * @return {Object} Action object\n */\n\nfunction openPublishSidebar() {\n  return {\n    type: 'OPEN_PUBLISH_SIDEBAR'\n  };\n}\n/**\n * Returns an action object used in signalling that the user closed the\n * publish sidebar.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_closePublishSidebar() {\n  return {\n    type: 'CLOSE_PUBLISH_SIDEBAR'\n  };\n}\n/**\n * Returns an action object used in signalling that the user toggles the publish sidebar.\n *\n * @return {Object} Action object\n */\n\nfunction actions_togglePublishSidebar() {\n  return {\n    type: 'TOGGLE_PUBLISH_SIDEBAR'\n  };\n}\n/**\n * Returns an action object used to enable or disable a panel in the editor.\n *\n * @param {string} panelName A string that identifies the panel to enable or disable.\n *\n * @return {Object} Action object.\n */\n\nfunction toggleEditorPanelEnabled(panelName) {\n  return {\n    type: 'TOGGLE_PANEL_ENABLED',\n    panelName: panelName\n  };\n}\n/**\n * Returns an action object used to open or close a panel in the editor.\n *\n * @param {string} panelName A string that identifies the panel to open or close.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_toggleEditorPanelOpened(panelName) {\n  return {\n    type: 'TOGGLE_PANEL_OPENED',\n    panelName: panelName\n  };\n}\n/**\n * Returns an action object used to remove a panel from the editor.\n *\n * @param {string} panelName A string that identifies the panel to remove.\n *\n * @return {Object} Action object.\n */\n\nfunction removeEditorPanel(panelName) {\n  return {\n    type: 'REMOVE_PANEL',\n    panelName: panelName\n  };\n}\n/**\n * Returns an action object used to toggle a feature flag.\n *\n * @param {string} feature Feature name.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_toggleFeature(feature) {\n  return {\n    type: 'TOGGLE_FEATURE',\n    feature: feature\n  };\n}\nfunction actions_switchEditorMode(mode) {\n  return {\n    type: 'SWITCH_MODE',\n    mode: mode\n  };\n}\n/**\n * Returns an action object used to toggle a plugin name flag.\n *\n * @param {string} pluginName Plugin name.\n *\n * @return {Object} Action object.\n */\n\nfunction togglePinnedPluginItem(pluginName) {\n  return {\n    type: 'TOGGLE_PINNED_PLUGIN_ITEM',\n    pluginName: pluginName\n  };\n}\n/**\n * Returns an action object used in signalling that block types by the given\n * name(s) should be hidden.\n *\n * @param {string[]} blockNames Names of block types to hide.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_hideBlockTypes(blockNames) {\n  return {\n    type: 'HIDE_BLOCK_TYPES',\n    blockNames: Object(external_this_lodash_[\"castArray\"])(blockNames)\n  };\n}\n/**\n * Returns an action object used in signaling that a style should be auto-applied when a block is created.\n *\n * @param {string}  blockName  Name of the block.\n * @param {?string} blockStyle Name of the style that should be auto applied. If undefined, the \"auto apply\" setting of the block is removed.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_updatePreferredStyleVariations(blockName, blockStyle) {\n  return {\n    type: 'UPDATE_PREFERRED_STYLE_VARIATIONS',\n    blockName: blockName,\n    blockStyle: blockStyle\n  };\n}\n/**\n * Returns an action object used in signalling that the editor should attempt\n * to locally autosave the current post every `interval` seconds.\n *\n * @param {number} interval The new interval, in seconds.\n * @return {Object} Action object.\n */\n\nfunction __experimentalUpdateLocalAutosaveInterval(interval) {\n  return {\n    type: 'UPDATE_LOCAL_AUTOSAVE_INTERVAL',\n    interval: interval\n  };\n}\n/**\n * Returns an action object used in signalling that block types by the given\n * name(s) should be shown.\n *\n * @param {string[]} blockNames Names of block types to show.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_showBlockTypes(blockNames) {\n  return {\n    type: 'SHOW_BLOCK_TYPES',\n    blockNames: Object(external_this_lodash_[\"castArray\"])(blockNames)\n  };\n}\n/**\n * Returns an action object used in signaling\n * what Meta boxes are available in which location.\n *\n * @param {Object} metaBoxesPerLocation Meta boxes per location.\n *\n * @return {Object} Action object.\n */\n\nfunction setAvailableMetaBoxesPerLocation(metaBoxesPerLocation) {\n  return {\n    type: 'SET_META_BOXES_PER_LOCATIONS',\n    metaBoxesPerLocation: metaBoxesPerLocation\n  };\n}\n/**\n * Returns an action object used to request meta box update.\n *\n * @return {Object} Action object.\n */\n\nfunction requestMetaBoxUpdates() {\n  return {\n    type: 'REQUEST_META_BOX_UPDATES'\n  };\n}\n/**\n * Returns an action object used signal a successful meta box update.\n *\n * @return {Object} Action object.\n */\n\nfunction metaBoxUpdatesSuccess() {\n  return {\n    type: 'META_BOX_UPDATES_SUCCESS'\n  };\n}\n/**\n * Returns an action object used to toggle the width of the editing canvas.\n *\n * @param {string} deviceType\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalSetPreviewDeviceType(deviceType) {\n  return {\n    type: 'SET_PREVIEW_DEVICE_TYPE',\n    deviceType: deviceType\n  };\n}\n/**\n * Returns an action object used to open/close the inserter.\n *\n * @param {boolean} value A boolean representing whether the inserter should be opened or closed.\n * @return {Object} Action object.\n */\n\nfunction actions_setIsInserterOpened(value) {\n  return {\n    type: 'SET_IS_INSERTER_OPENED',\n    value: value\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/selectors.js\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Returns the current editing mode.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Editing mode.\n */\n\nfunction selectors_getEditorMode(state) {\n  return selectors_getPreference(state, 'editorMode', 'visual');\n}\n/**\n * Returns true if the editor sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the editor sidebar is opened.\n */\n\nvar selectors_isEditorSidebarOpened = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function () {\n    var activeGeneralSidebar = select('core/interface').getActiveComplementaryArea('core/edit-post');\n    return Object(external_this_lodash_[\"includes\"])(['edit-post/document', 'edit-post/block'], activeGeneralSidebar);\n  };\n});\n/**\n * Returns true if the plugin sidebar is opened.\n *\n * @param {Object} state Global application state\n * @return {boolean}     Whether the plugin sidebar is opened.\n */\n\nvar isPluginSidebarOpened = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function () {\n    var activeGeneralSidebar = select('core/interface').getActiveComplementaryArea('core/edit-post');\n    return !!activeGeneralSidebar && !Object(external_this_lodash_[\"includes\"])(['edit-post/document', 'edit-post/block'], activeGeneralSidebar);\n  };\n});\n/**\n * Returns the current active general sidebar name, or null if there is no\n * general sidebar active. The active general sidebar is a unique name to\n * identify either an editor or plugin sidebar.\n *\n * Examples:\n *\n *  - `edit-post/document`\n *  - `my-plugin/insert-image-sidebar`\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Active general sidebar name.\n */\n\nvar getActiveGeneralSidebarName = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function () {\n    return select('core/interface').getActiveComplementaryArea('core/edit-post');\n  };\n});\n/**\n * Returns the preferences (these preferences are persisted locally).\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Preferences Object.\n */\n\nfunction getPreferences(state) {\n  return state.preferences;\n}\n/**\n *\n * @param {Object} state         Global application state.\n * @param {string} preferenceKey Preference Key.\n * @param {*}      defaultValue  Default Value.\n *\n * @return {*} Preference Value.\n */\n\nfunction selectors_getPreference(state, preferenceKey, defaultValue) {\n  var preferences = getPreferences(state);\n  var value = preferences[preferenceKey];\n  return value === undefined ? defaultValue : value;\n}\n/**\n * Returns true if the publish sidebar is opened.\n *\n * @param {Object} state Global application state\n *\n * @return {boolean} Whether the publish sidebar is open.\n */\n\nfunction selectors_isPublishSidebarOpened(state) {\n  return state.publishSidebarActive;\n}\n/**\n * Returns true if the given panel was programmatically removed, or false otherwise.\n * All panels are not removed by default.\n *\n * @param {Object} state     Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is removed.\n */\n\nfunction isEditorPanelRemoved(state, panelName) {\n  return Object(external_this_lodash_[\"includes\"])(state.removedPanels, panelName);\n}\n/**\n * Returns true if the given panel is enabled, or false otherwise. Panels are\n * enabled by default.\n *\n * @param {Object} state     Global application state.\n * @param {string} panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is enabled.\n */\n\nfunction selectors_isEditorPanelEnabled(state, panelName) {\n  var panels = selectors_getPreference(state, 'panels');\n  return !isEditorPanelRemoved(state, panelName) && Object(external_this_lodash_[\"get\"])(panels, [panelName, 'enabled'], true);\n}\n/**\n * Returns true if the given panel is open, or false otherwise. Panels are\n * closed by default.\n *\n * @param  {Object}  state     Global application state.\n * @param  {string}  panelName A string that identifies the panel.\n *\n * @return {boolean} Whether or not the panel is open.\n */\n\nfunction selectors_isEditorPanelOpened(state, panelName) {\n  var panels = selectors_getPreference(state, 'panels');\n  return Object(external_this_lodash_[\"get\"])(panels, [panelName]) === true || Object(external_this_lodash_[\"get\"])(panels, [panelName, 'opened']) === true;\n}\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param  {Object}  state \t   Global application state.\n * @param  {string}  modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\n\nfunction selectors_isModalActive(state, modalName) {\n  return state.activeModal === modalName;\n}\n/**\n * Returns whether the given feature is enabled or not.\n *\n * @param {Object} state   Global application state.\n * @param {string} feature Feature slug.\n *\n * @return {boolean} Is active.\n */\n\nfunction isFeatureActive(state, feature) {\n  return Object(external_this_lodash_[\"get\"])(state.preferences.features, [feature], false);\n}\n/**\n * Returns true if the plugin item is pinned to the header.\n * When the value is not set it defaults to true.\n *\n * @param  {Object}  state      Global application state.\n * @param  {string}  pluginName Plugin item name.\n *\n * @return {boolean} Whether the plugin item is pinned.\n */\n\nvar isPluginItemPinned = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (pluginName) {\n    return select('core/interface').isItemPinned('core/edit-post', pluginName);\n  };\n});\n/**\n * Returns an array of active meta box locations.\n *\n * @param {Object} state Post editor state.\n *\n * @return {string[]} Active meta box locations.\n */\n\nvar getActiveMetaBoxLocations = Object(rememo[\"a\" /* default */])(function (state) {\n  return Object.keys(state.metaBoxes.locations).filter(function (location) {\n    return isMetaBoxLocationActive(state, location);\n  });\n}, function (state) {\n  return [state.metaBoxes.locations];\n});\n/**\n * Returns true if a metabox location is active and visible\n *\n * @param {Object} state    Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active and visible.\n */\n\nfunction isMetaBoxLocationVisible(state, location) {\n  return isMetaBoxLocationActive(state, location) && Object(external_this_lodash_[\"some\"])(getMetaBoxesPerLocation(state, location), function (_ref) {\n    var id = _ref.id;\n    return selectors_isEditorPanelEnabled(state, \"meta-box-\".concat(id));\n  });\n}\n/**\n * Returns true if there is an active meta box in the given location, or false\n * otherwise.\n *\n * @param {Object} state    Post editor state.\n * @param {string} location Meta box location to test.\n *\n * @return {boolean} Whether the meta box location is active.\n */\n\nfunction isMetaBoxLocationActive(state, location) {\n  var metaBoxes = getMetaBoxesPerLocation(state, location);\n  return !!metaBoxes && metaBoxes.length !== 0;\n}\n/**\n * Returns the list of all the available meta boxes for a given location.\n *\n * @param {Object} state    Global application state.\n * @param {string} location Meta box location to test.\n *\n * @return {?Array} List of meta boxes.\n */\n\nfunction getMetaBoxesPerLocation(state, location) {\n  return state.metaBoxes.locations[location];\n}\n/**\n * Returns the list of all the available meta boxes.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} List of meta boxes.\n */\n\nvar getAllMetaBoxes = Object(rememo[\"a\" /* default */])(function (state) {\n  return Object(external_this_lodash_[\"flatten\"])(Object(external_this_lodash_[\"values\"])(state.metaBoxes.locations));\n}, function (state) {\n  return [state.metaBoxes.locations];\n});\n/**\n * Returns true if the post is using Meta Boxes\n *\n * @param  {Object} state Global application state\n *\n * @return {boolean} Whether there are metaboxes or not.\n */\n\nfunction hasMetaBoxes(state) {\n  return getActiveMetaBoxLocations(state).length > 0;\n}\n/**\n * Returns true if the Meta Boxes are being saved.\n *\n * @param   {Object}  state Global application state.\n *\n * @return {boolean} Whether the metaboxes are being saved.\n */\n\nfunction selectors_isSavingMetaBoxes(state) {\n  return state.metaBoxes.isSaving;\n}\n/**\n * Returns the current editing canvas device type.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Device type.\n */\n\nfunction __experimentalGetPreviewDeviceType(state) {\n  return state.deviceType;\n}\n/**\n * Returns true if the inserter is opened.\n *\n * @param  {Object}  state Global application state.\n *\n * @return {boolean} Whether the inserter is opened.\n */\n\nfunction selectors_isInserterOpened(state) {\n  return state.isInserterOpened;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/utils/meta-boxes.js\n/**\n * Function returning the current Meta Boxes DOM Node in the editor\n * whether the meta box area is opened or not.\n * If the MetaBox Area is visible returns it, and returns the original container instead.\n *\n * @param   {string} location Meta Box location.\n * @return {string}          HTML content.\n */\nvar getMetaBoxContainer = function getMetaBoxContainer(location) {\n  var area = document.querySelector(\".edit-post-meta-boxes-area.is-\".concat(location, \" .metabox-location-\").concat(location));\n\n  if (area) {\n    return area;\n  }\n\n  return document.querySelector('#metaboxes .metabox-location-' + location);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/effects.js\n\n\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar saveMetaboxUnsubscribe;\nvar effects = {\n  SET_META_BOXES_PER_LOCATIONS: function SET_META_BOXES_PER_LOCATIONS(action, store) {\n    // Allow toggling metaboxes panels\n    // We need to wait for all scripts to load\n    // If the meta box loads the post script, it will already trigger this.\n    // After merge in Core, make sure to drop the timeout and update the postboxes script\n    // to avoid the double binding.\n    setTimeout(function () {\n      var postType = Object(external_this_wp_data_[\"select\"])('core/editor').getCurrentPostType();\n\n      if (window.postboxes.page !== postType) {\n        window.postboxes.add_postbox_toggles(postType);\n      }\n    });\n    var wasSavingPost = Object(external_this_wp_data_[\"select\"])('core/editor').isSavingPost();\n    var wasAutosavingPost = Object(external_this_wp_data_[\"select\"])('core/editor').isAutosavingPost(); // Meta boxes are initialized once at page load. It is not necessary to\n    // account for updates on each state change.\n    //\n    // See: https://github.com/WordPress/WordPress/blob/5.1.1/wp-admin/includes/post.php#L2307-L2309\n\n    var hasActiveMetaBoxes = Object(external_this_wp_data_[\"select\"])('core/edit-post').hasMetaBoxes(); // First remove any existing subscription in order to prevent multiple saves\n\n    if (!!saveMetaboxUnsubscribe) {\n      saveMetaboxUnsubscribe();\n    } // Save metaboxes when performing a full save on the post.\n\n\n    saveMetaboxUnsubscribe = Object(external_this_wp_data_[\"subscribe\"])(function () {\n      var isSavingPost = Object(external_this_wp_data_[\"select\"])('core/editor').isSavingPost();\n      var isAutosavingPost = Object(external_this_wp_data_[\"select\"])('core/editor').isAutosavingPost(); // Save metaboxes on save completion, except for autosaves that are not a post preview.\n\n      var shouldTriggerMetaboxesSave = hasActiveMetaBoxes && wasSavingPost && !isSavingPost && !wasAutosavingPost; // Save current state for next inspection.\n\n      wasSavingPost = isSavingPost;\n      wasAutosavingPost = isAutosavingPost;\n\n      if (shouldTriggerMetaboxesSave) {\n        store.dispatch(requestMetaBoxUpdates());\n      }\n    });\n  },\n  REQUEST_META_BOX_UPDATES: function REQUEST_META_BOX_UPDATES(action, store) {\n    // Saves the wp_editor fields\n    if (window.tinyMCE) {\n      window.tinyMCE.triggerSave();\n    }\n\n    var state = store.getState(); // Additional data needed for backward compatibility.\n    // If we do not provide this data, the post will be overridden with the default values.\n\n    var post = Object(external_this_wp_data_[\"select\"])('core/editor').getCurrentPost(state);\n    var additionalData = [post.comment_status ? ['comment_status', post.comment_status] : false, post.ping_status ? ['ping_status', post.ping_status] : false, post.sticky ? ['sticky', post.sticky] : false, post.author ? ['post_author', post.author] : false].filter(Boolean); // We gather all the metaboxes locations data and the base form data\n\n    var baseFormData = new window.FormData(document.querySelector('.metabox-base-form'));\n    var formDataToMerge = [baseFormData].concat(Object(toConsumableArray[\"a\" /* default */])(getActiveMetaBoxLocations(state).map(function (location) {\n      return new window.FormData(getMetaBoxContainer(location));\n    }))); // Merge all form data objects into a single one.\n\n    var formData = Object(external_this_lodash_[\"reduce\"])(formDataToMerge, function (memo, currentFormData) {\n      var _iterator = _createForOfIteratorHelper(currentFormData),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var _step$value = Object(slicedToArray[\"a\" /* default */])(_step.value, 2),\n              key = _step$value[0],\n              value = _step$value[1];\n\n          memo.append(key, value);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return memo;\n    }, new window.FormData());\n    additionalData.forEach(function (_ref) {\n      var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n          key = _ref2[0],\n          value = _ref2[1];\n\n      return formData.append(key, value);\n    }); // Save the metaboxes\n\n    external_this_wp_apiFetch_default()({\n      url: window._wpMetaBoxUrl,\n      method: 'POST',\n      body: formData,\n      parse: false\n    }).then(function () {\n      return store.dispatch(metaBoxUpdatesSuccess());\n    });\n  },\n  SWITCH_MODE: function SWITCH_MODE(action) {\n    // Unselect blocks when we switch to the code editor.\n    if (action.mode !== 'visual') {\n      Object(external_this_wp_data_[\"dispatch\"])('core/block-editor').clearSelectedBlock();\n    }\n\n    var message = action.mode === 'visual' ? Object(external_this_wp_i18n_[\"__\"])('Visual editor selected') : Object(external_this_wp_i18n_[\"__\"])('Code editor selected');\n    Object(external_this_wp_a11y_[\"speak\"])(message, 'assertive');\n  }\n};\n/* harmony default export */ var store_effects = (effects);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/middlewares.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Applies the custom middlewares used specifically in the editor module.\n *\n * @param {Object} store Store Object.\n *\n * @return {Object} Update Store Object.\n */\n\nfunction applyMiddlewares(store) {\n  var middlewares = [refx_default()(store_effects)];\n\n  var enhancedDispatch = function enhancedDispatch() {\n    throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n  };\n\n  var chain = [];\n  var middlewareAPI = {\n    getState: store.getState,\n    dispatch: function dispatch() {\n      return enhancedDispatch.apply(void 0, arguments);\n    }\n  };\n  chain = middlewares.map(function (middleware) {\n    return middleware(middlewareAPI);\n  });\n  enhancedDispatch = external_this_lodash_[\"flowRight\"].apply(void 0, Object(toConsumableArray[\"a\" /* default */])(chain))(store.dispatch);\n  store.dispatch = enhancedDispatch;\n  return store;\n}\n\n/* harmony default export */ var store_middlewares = (applyMiddlewares);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/controls.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Calls a selector using the current state.\n *\n * @param {string} storeName    Store name.\n * @param {string} selectorName Selector name.\n * @param  {Array} args         Selector arguments.\n *\n * @return {Object} control descriptor.\n */\n\nfunction controls_select(storeName, selectorName) {\n  for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    args[_key - 2] = arguments[_key];\n  }\n\n  return {\n    type: 'SELECT',\n    storeName: storeName,\n    selectorName: selectorName,\n    args: args\n  };\n}\nvar controls = {\n  SELECT: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function (_ref) {\n      var _registry$select;\n\n      var storeName = _ref.storeName,\n          selectorName = _ref.selectorName,\n          args = _ref.args;\n      return (_registry$select = registry.select(storeName))[selectorName].apply(_registry$select, Object(toConsumableArray[\"a\" /* default */])(args));\n    };\n  })\n};\n/* harmony default export */ var store_controls = (controls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/constants.js\n/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nvar STORE_KEY = 'core/edit-post';\n/**\n * CSS selector string for the admin bar view post link anchor tag.\n *\n * @type {string}\n */\n\nvar VIEW_AS_LINK_SELECTOR = '#wp-admin-bar-view a';\n/**\n * CSS selector string for the admin bar preview post link anchor tag.\n *\n * @type {string}\n */\n\nvar VIEW_AS_PREVIEW_LINK_SELECTOR = '#wp-admin-bar-preview a';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/store/index.js\n\n\nfunction store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nvar store_store = Object(external_this_wp_data_[\"registerStore\"])(STORE_KEY, {\n  reducer: reducer,\n  actions: actions_namespaceObject,\n  selectors: selectors_namespaceObject,\n  controls: store_objectSpread({}, external_this_wp_dataControls_[\"controls\"], {}, store_controls),\n  persist: ['preferences']\n});\nstore_middlewares(store_store);\n/* harmony default export */ var build_module_store = (store_store);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/prevent-event-discovery.js\n/* harmony default export */ var prevent_event_discovery = ({\n  't a l e s o f g u t e n b e r g': function tALESOFGUTENBERG(event) {\n    if (!document.activeElement.classList.contains('edit-post-visual-editor') && document.activeElement !== document.body) {\n      return;\n    }\n\n    event.preventDefault();\n    window.wp.data.dispatch('core/block-editor').insertBlock(window.wp.blocks.createBlock('core/paragraph', {\n      content: '🐡🐢🦀🐤🦋🐘🐧🐹🦁🦄🦍🐼🐿🎃🐴🐝🐆🦕🦔🌱🍇π🍌🐉💧🥨🌌🍂🍠🥦🥚🥝🎟🥥🥒🛵🥖🍒🍯🎾🎲🐺🐚🐮⌛️'\n    }));\n  }\n});\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/reducer.js\n\n\nfunction reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Reducer to keep tract of the active area per scope.\n *\n * @param {boolean} state           Previous state.\n * @param {Object}  action          Action object.\n * @param {string}  action.type     Action type.\n * @param {string}  action.itemType Type of item.\n * @param {string}  action.scope    Item scope.\n * @param {string}  action.item     Item name.\n *\n * @return {Object} Updated state.\n */\n\nfunction singleEnableItems() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var _ref = arguments.length > 1 ? arguments[1] : undefined,\n      type = _ref.type,\n      itemType = _ref.itemType,\n      scope = _ref.scope,\n      item = _ref.item;\n\n  if (type !== 'SET_SINGLE_ENABLE_ITEM' || !itemType || !scope) {\n    return state;\n  }\n\n  return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, itemType, reducer_objectSpread({}, state[itemType], Object(defineProperty[\"a\" /* default */])({}, scope, item || null))));\n}\n/**\n * Reducer keeping track of the \"pinned\" items per scope.\n *\n * @param {boolean} state           Previous state.\n * @param {Object}  action          Action object.\n * @param {string}  action.type     Action type.\n * @param {string}  action.itemType Type of item.\n * @param {string}  action.scope    Item scope.\n * @param {string}  action.item     Item name.\n * @param {boolean} action.isEnable Whether the item is pinned.\n *\n * @return {Object} Updated state.\n */\n\nfunction multipleEnableItems() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var _ref2 = arguments.length > 1 ? arguments[1] : undefined,\n      type = _ref2.type,\n      itemType = _ref2.itemType,\n      scope = _ref2.scope,\n      item = _ref2.item,\n      isEnable = _ref2.isEnable;\n\n  if (type !== 'SET_MULTIPLE_ENABLE_ITEM' || !itemType || !scope || !item || Object(external_this_lodash_[\"get\"])(state, [itemType, scope, item]) === isEnable) {\n    return state;\n  }\n\n  var currentTypeState = state[itemType] || {};\n  var currentScopeState = currentTypeState[scope] || {};\n  return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, itemType, reducer_objectSpread({}, currentTypeState, Object(defineProperty[\"a\" /* default */])({}, scope, reducer_objectSpread({}, currentScopeState, Object(defineProperty[\"a\" /* default */])({}, item, isEnable || false))))));\n}\nvar enableItems = Object(external_this_wp_data_[\"combineReducers\"])({\n  singleEnableItems: singleEnableItems,\n  multipleEnableItems: multipleEnableItems\n});\n/* harmony default export */ var store_reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  enableItems: enableItems\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/actions.js\n/**\n * Returns an action object used in signalling that an active area should be changed.\n *\n * @param {string} itemType Type of item.\n * @param {string} scope    Item scope.\n * @param {string} item     Item identifier.\n *\n * @return {Object} Action object.\n */\nfunction setSingleEnableItem(itemType, scope, item) {\n  return {\n    type: 'SET_SINGLE_ENABLE_ITEM',\n    itemType: itemType,\n    scope: scope,\n    item: item\n  };\n}\n/**\n * Returns an action object used in signalling that a complementary item should be enabled.\n *\n * @param {string} scope Complementary area scope.\n * @param {string} area  Area identifier.\n *\n * @return {Object} Action object.\n */\n\n\nfunction actions_enableComplementaryArea(scope, area) {\n  return setSingleEnableItem('complementaryArea', scope, area);\n}\n/**\n * Returns an action object used in signalling that the complementary area of a given scope should be disabled.\n *\n * @param {string} scope Complementary area scope.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_disableComplementaryArea(scope) {\n  return setSingleEnableItem('complementaryArea', scope, undefined);\n}\n/**\n * Returns an action object to make an area enabled/disabled.\n *\n * @param {string}  itemType Type of item.\n * @param {string}  scope    Item scope.\n * @param {string}  item     Item identifier.\n * @param {boolean} isEnable Boolean indicating if an area should be pinned or not.\n *\n * @return {Object} Action object.\n */\n\nfunction setMultipleEnableItem(itemType, scope, item, isEnable) {\n  return {\n    type: 'SET_MULTIPLE_ENABLE_ITEM',\n    itemType: itemType,\n    scope: scope,\n    item: item,\n    isEnable: isEnable\n  };\n}\n/**\n * Returns an action object used in signalling that an item should be pinned.\n *\n * @param {string} scope  Item scope.\n * @param {string} itemId Item identifier.\n *\n * @return {Object} Action object.\n */\n\n\nfunction actions_pinItem(scope, itemId) {\n  return setMultipleEnableItem('pinnedItems', scope, itemId, true);\n}\n/**\n * Returns an action object used in signalling that an item should be unpinned.\n *\n * @param {string} scope  Item scope.\n * @param {string} itemId Item identifier.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_unpinItem(scope, itemId) {\n  return setMultipleEnableItem('pinnedItems', scope, itemId, false);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/selectors.js\n/**\n * External dependencies\n */\n\n/**\n * Returns the item that is enabled in a given scope.\n *\n * @param {Object} state    Global application state.\n * @param {string} itemType Type of item.\n * @param {string} scope    Item scope.\n *\n * @return {?string|null} The item that is enabled in the passed scope and type.\n */\n\nfunction getSingleEnableItem(state, itemType, scope) {\n  return Object(external_this_lodash_[\"get\"])(state.enableItems.singleEnableItems, [itemType, scope]);\n}\n/**\n * Returns the complementary area that is active in a given scope.\n *\n * @param {Object} state    Global application state.\n * @param {string} scope    Item scope.\n *\n * @return {string} The complementary area that is active in the given scope.\n */\n\n\nfunction getActiveComplementaryArea(state, scope) {\n  return getSingleEnableItem(state, 'complementaryArea', scope);\n}\n/**\n * Returns a boolean indicating if an item is enabled or not in a given scope.\n *\n * @param {Object} state    Global application state.\n * @param {string} itemType Type of item.\n * @param {string} scope    Scope.\n * @param {string} item     Item to check.\n *\n * @return {boolean|undefined} True if the item is enabled, false otherwise if the item is explicitly disabled, and undefined if there is no information for that item.\n */\n\nfunction isMultipleEnabledItemEnabled(state, itemType, scope, item) {\n  return Object(external_this_lodash_[\"get\"])(state.enableItems.multipleEnableItems, [itemType, scope, item]);\n}\n/**\n * Returns a boolean indicating if an item is pinned or not.\n *\n * @param {Object} state    Global application state.\n * @param {string} scope    Scope.\n * @param {string} item     Item to check.\n *\n * @return {boolean} True if the item is pinned and false otherwise.\n */\n\n\nfunction isItemPinned(state, scope, item) {\n  return isMultipleEnabledItemEnabled(state, 'pinnedItems', scope, item) !== false;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/constants.js\n/**\n * The identifier for the data store.\n *\n * @type {string}\n */\nvar constants_STORE_KEY = 'core/interface';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar build_module_store_store = Object(external_this_wp_data_[\"registerStore\"])(constants_STORE_KEY, {\n  reducer: store_reducer,\n  actions: store_actions_namespaceObject,\n  selectors: store_selectors_namespaceObject,\n  persist: ['enableItems']\n});\n/* harmony default export */ var interface_build_module_store = (build_module_store_store);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-filled.js\nvar star_filled = __webpack_require__(281);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/star-empty.js\nvar star_empty = __webpack_require__(282);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js\nvar close_small = __webpack_require__(171);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-context/index.js\n/**\n * WordPress dependencies\n */\n\n/* harmony default export */ var complementary_area_context = (Object(external_this_wp_plugins_[\"withPluginContext\"])(function (context, ownProps) {\n  return {\n    icon: ownProps.icon || context.icon,\n    identifier: ownProps.identifier || \"\".concat(context.name, \"/\").concat(ownProps.name)\n  };\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-toggle/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ComplementaryAreaToggle(_ref) {\n  var _ref$as = _ref.as,\n      as = _ref$as === void 0 ? external_this_wp_components_[\"Button\"] : _ref$as,\n      scope = _ref.scope,\n      identifier = _ref.identifier,\n      icon = _ref.icon,\n      selectedIcon = _ref.selectedIcon,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"as\", \"scope\", \"identifier\", \"icon\", \"selectedIcon\"]);\n\n  var ComponentToUse = as;\n  var isSelected = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/interface').getActiveComplementaryArea(scope) === identifier;\n  }, [identifier]);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/interface'),\n      enableComplementaryArea = _useDispatch.enableComplementaryArea,\n      disableComplementaryArea = _useDispatch.disableComplementaryArea;\n\n  return Object(external_this_wp_element_[\"createElement\"])(ComponentToUse, Object(esm_extends[\"a\" /* default */])({\n    icon: selectedIcon && isSelected ? selectedIcon : icon,\n    onClick: function onClick() {\n      if (isSelected) {\n        disableComplementaryArea(scope);\n      } else {\n        enableComplementaryArea(scope, identifier);\n      }\n    }\n  }, Object(external_this_lodash_[\"omit\"])(props, ['name'])));\n}\n\n/* harmony default export */ var complementary_area_toggle = (complementary_area_context(ComplementaryAreaToggle));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-header/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar complementary_area_header_ComplementaryAreaHeader = function ComplementaryAreaHeader(_ref) {\n  var smallScreenTitle = _ref.smallScreenTitle,\n      children = _ref.children,\n      className = _ref.className,\n      toggleButtonProps = _ref.toggleButtonProps;\n  var toggleButton = Object(external_this_wp_element_[\"createElement\"])(complementary_area_toggle, Object(esm_extends[\"a\" /* default */])({\n    icon: close_small[\"a\" /* default */]\n  }, toggleButtonProps));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"components-panel__header interface-complementary-area-header__small\"\n  }, smallScreenTitle && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"interface-complementary-area-header__small-title\"\n  }, smallScreenTitle), toggleButton), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()('components-panel__header', 'interface-complementary-area-header', className),\n    tabIndex: -1\n  }, children, toggleButton));\n};\n\n/* harmony default export */ var complementary_area_header = (complementary_area_header_ComplementaryAreaHeader);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/pinned-items/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PinnedItems(_ref) {\n  var scope = _ref.scope,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"scope\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Fill\"], Object(esm_extends[\"a\" /* default */])({\n    name: \"PinnedItems/\".concat(scope)\n  }, props));\n}\n\nfunction PinnedItemsSlot(_ref2) {\n  var scope = _ref2.scope,\n      className = _ref2.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"scope\", \"className\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], Object(esm_extends[\"a\" /* default */])({\n    name: \"PinnedItems/\".concat(scope)\n  }, props), function (fills) {\n    return !Object(external_this_lodash_[\"isEmpty\"])(fills) && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: classnames_default()(className, 'interface-pinned-items')\n    }, fills);\n  });\n}\n\nPinnedItems.Slot = PinnedItemsSlot;\n/* harmony default export */ var pinned_items = (PinnedItems);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction ComplementaryAreaSlot(_ref) {\n  var scope = _ref.scope,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"scope\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], Object(esm_extends[\"a\" /* default */])({\n    name: \"ComplementaryArea/\".concat(scope)\n  }, props));\n}\n\nfunction ComplementaryAreaFill(_ref2) {\n  var scope = _ref2.scope,\n      children = _ref2.children,\n      className = _ref2.className;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Fill\"], {\n    name: \"ComplementaryArea/\".concat(scope)\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Animate\"], {\n    type: \"slide-in\",\n    options: {\n      origin: 'left'\n    }\n  }, function () {\n    return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: className\n    }, children);\n  }));\n}\n\nfunction useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall) {\n  var previousIsSmall = Object(external_this_wp_element_[\"useRef\"])(false);\n  var shouldOpenWhenNotSmall = Object(external_this_wp_element_[\"useRef\"])(false);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/interface'),\n      enableComplementaryArea = _useDispatch.enableComplementaryArea,\n      disableComplementaryArea = _useDispatch.disableComplementaryArea;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // If the complementary area is active and the editor is switching from a big to a small window size.\n    if (isActive && isSmall && !previousIsSmall.current) {\n      // Disable the complementary area.\n      disableComplementaryArea(scope); // Flag the complementary area to be reopened when the window size goes from small to big.\n\n      shouldOpenWhenNotSmall.current = true;\n    } else if ( // If there is a flag indicating the complementary area should be enabled when we go from small to big window size\n    // and we are going from a small to big window size.\n    shouldOpenWhenNotSmall.current && !isSmall && previousIsSmall.current) {\n      // Remove the flag indicating the complementary area should be enabled.\n      shouldOpenWhenNotSmall.current = false; // Enable the complementary area.\n\n      enableComplementaryArea(scope, identifier);\n    } else if ( // If the flag is indicating the current complementary should be reopened but another complementary area becomes active,\n    // remove the flag.\n    shouldOpenWhenNotSmall.current && activeArea && activeArea !== identifier) {\n      shouldOpenWhenNotSmall.current = false;\n    }\n\n    if (isSmall !== previousIsSmall.current) {\n      previousIsSmall.current = isSmall;\n    }\n  }, [isActive, isSmall, scope, identifier, activeArea]);\n}\n\nfunction ComplementaryArea(_ref3) {\n  var children = _ref3.children,\n      className = _ref3.className,\n      _ref3$closeLabel = _ref3.closeLabel,\n      closeLabel = _ref3$closeLabel === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Close plugin') : _ref3$closeLabel,\n      identifier = _ref3.identifier,\n      header = _ref3.header,\n      headerClassName = _ref3.headerClassName,\n      icon = _ref3.icon,\n      _ref3$isPinnable = _ref3.isPinnable,\n      isPinnable = _ref3$isPinnable === void 0 ? true : _ref3$isPinnable,\n      panelClassName = _ref3.panelClassName,\n      scope = _ref3.scope,\n      smallScreenTitle = _ref3.smallScreenTitle,\n      title = _ref3.title,\n      toggleShortcut = _ref3.toggleShortcut,\n      isActiveByDefault = _ref3.isActiveByDefault;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/interface'),\n        getActiveComplementaryArea = _select.getActiveComplementaryArea,\n        isItemPinned = _select.isItemPinned;\n\n    var _activeArea = getActiveComplementaryArea(scope);\n\n    return {\n      isActive: _activeArea === identifier,\n      isPinned: isItemPinned(scope, identifier),\n      activeArea: _activeArea,\n      isSmall: select('core/viewport').isViewportMatch('< medium')\n    };\n  }, [identifier, scope]),\n      isActive = _useSelect.isActive,\n      isPinned = _useSelect.isPinned,\n      activeArea = _useSelect.activeArea,\n      isSmall = _useSelect.isSmall;\n\n  useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall);\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/interface'),\n      enableComplementaryArea = _useDispatch2.enableComplementaryArea,\n      disableComplementaryArea = _useDispatch2.disableComplementaryArea,\n      pinItem = _useDispatch2.pinItem,\n      unpinItem = _useDispatch2.unpinItem;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isActiveByDefault && activeArea === undefined && !isSmall) {\n      enableComplementaryArea(scope, identifier);\n    }\n  }, [activeArea, isActiveByDefault, scope, identifier, isSmall]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, isPinned && isPinnable && Object(external_this_wp_element_[\"createElement\"])(pinned_items, {\n    scope: scope\n  }, Object(external_this_wp_element_[\"createElement\"])(complementary_area_toggle, {\n    scope: scope,\n    identifier: identifier,\n    isPressed: isActive,\n    \"aria-expanded\": isActive,\n    label: title,\n    icon: icon\n  })), isActive && Object(external_this_wp_element_[\"createElement\"])(ComplementaryAreaFill, {\n    className: classnames_default()('interface-complementary-area', className),\n    scope: scope\n  }, Object(external_this_wp_element_[\"createElement\"])(complementary_area_header, {\n    className: headerClassName,\n    closeLabel: closeLabel,\n    onClose: function onClose() {\n      return disableComplementaryArea(scope);\n    },\n    smallScreenTitle: smallScreenTitle,\n    toggleButtonProps: {\n      label: closeLabel,\n      shortcut: toggleShortcut,\n      scope: scope,\n      identifier: identifier\n    }\n  }, header || Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, title), isPinnable && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"interface-complementary-area__pin-unpin-item\",\n    icon: isPinned ? star_filled[\"a\" /* default */] : star_empty[\"a\" /* default */],\n    label: isPinned ? Object(external_this_wp_i18n_[\"__\"])('Unpin from toolbar') : Object(external_this_wp_i18n_[\"__\"])('Pin to toolbar'),\n    onClick: function onClick() {\n      return (isPinned ? unpinItem : pinItem)(scope, identifier);\n    },\n    isPressed: isPinned,\n    \"aria-expanded\": isPinned\n  }))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Panel\"], {\n    className: panelClassName\n  }, children)));\n}\n\nvar ComplementaryAreaWrapped = complementary_area_context(ComplementaryArea);\nComplementaryAreaWrapped.Slot = ComplementaryAreaSlot;\n/* harmony default export */ var complementary_area = (ComplementaryAreaWrapped);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js\nvar check = __webpack_require__(148);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/action-item/index.js\n\n\n\n\n\n\nfunction action_item_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction action_item_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { action_item_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { action_item_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction ActionItemSlot(_ref) {\n  var name = _ref.name,\n      _ref$as = _ref.as,\n      as = _ref$as === void 0 ? [external_this_wp_components_[\"ButtonGroup\"], external_this_wp_components_[\"Button\"]] : _ref$as,\n      _ref$fillProps = _ref.fillProps,\n      fillProps = _ref$fillProps === void 0 ? {} : _ref$fillProps,\n      bubblesVirtually = _ref.bubblesVirtually,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"name\", \"as\", \"fillProps\", \"bubblesVirtually\"]);\n\n  var _as = Object(slicedToArray[\"a\" /* default */])(as, 2),\n      Container = _as[0],\n      Item = _as[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Slot\"], {\n    name: name,\n    bubblesVirtually: bubblesVirtually,\n    fillProps: action_item_objectSpread({\n      as: Item\n    }, fillProps)\n  }, function (fills) {\n    return !Object(external_this_lodash_[\"isEmpty\"])(fills) && Object(external_this_wp_element_[\"createElement\"])(Container, props, fills);\n  });\n}\n\nfunction ActionItem(_ref2) {\n  var name = _ref2.name,\n      as = _ref2.as,\n      onClick = _ref2.onClick,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref2, [\"name\", \"as\", \"onClick\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Fill\"], {\n    name: name\n  }, function (fillProps) {\n    var fpOnClick = fillProps.onClick,\n        fpAs = fillProps.as;\n    var Item = as || fpAs || external_this_wp_components_[\"Button\"];\n    return Object(external_this_wp_element_[\"createElement\"])(Item, Object(esm_extends[\"a\" /* default */])({\n      onClick: onClick || fpOnClick ? function () {\n        (onClick || external_this_lodash_[\"noop\"]).apply(void 0, arguments);\n        (fpOnClick || external_this_lodash_[\"noop\"]).apply(void 0, arguments);\n      } : undefined\n    }, props));\n  });\n}\n\nActionItem.Slot = ActionItemSlot;\n/* harmony default export */ var action_item = (ActionItem);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/complementary-area-more-menu-item/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ComplementaryAreaMoreMenuItem(_ref) {\n  var scope = _ref.scope,\n      target = _ref.target,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"scope\", \"target\"]);\n\n  return Object(external_this_wp_element_[\"createElement\"])(complementary_area_toggle, Object(esm_extends[\"a\" /* default */])({\n    as: function as(toggleProps) {\n      return Object(external_this_wp_element_[\"createElement\"])(action_item, Object(esm_extends[\"a\" /* default */])({\n        name: \"\".concat(scope, \"/plugin-more-menu\")\n      }, toggleProps));\n    },\n    role: \"menuitemcheckbox\",\n    selectedIcon: check[\"a\" /* default */],\n    name: target,\n    scope: scope\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/fullscreen-mode/index.js\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\nvar fullscreen_mode_FullscreenMode = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FullscreenMode, _Component);\n\n  var _super = _createSuper(FullscreenMode);\n\n  function FullscreenMode() {\n    Object(classCallCheck[\"a\" /* default */])(this, FullscreenMode);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(createClass[\"a\" /* default */])(FullscreenMode, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.isSticky = false;\n      this.sync(); // `is-fullscreen-mode` is set in PHP as a body class by Gutenberg, and this causes\n      // `sticky-menu` to be applied by WordPress and prevents the admin menu being scrolled\n      // even if `is-fullscreen-mode` is then removed. Let's remove `sticky-menu` here as\n      // a consequence of the FullscreenMode setup\n\n      if (document.body.classList.contains('sticky-menu')) {\n        this.isSticky = true;\n        document.body.classList.remove('sticky-menu');\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.isSticky) {\n        document.body.classList.add('sticky-menu');\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.isActive !== prevProps.isActive) {\n        this.sync();\n      }\n    }\n  }, {\n    key: \"sync\",\n    value: function sync() {\n      var isActive = this.props.isActive;\n\n      if (isActive) {\n        document.body.classList.add('is-fullscreen-mode');\n      } else {\n        document.body.classList.remove('is-fullscreen-mode');\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return FullscreenMode;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var fullscreen_mode = (fullscreen_mode_FullscreenMode);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/interface-skeleton/index.js\n\n\n\nfunction interface_skeleton_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction interface_skeleton_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { interface_skeleton_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { interface_skeleton_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction useHTMLClass(className) {\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var element = document && document.querySelector(\"html:not(.\".concat(className, \")\"));\n\n    if (!element) {\n      return;\n    }\n\n    element.classList.toggle(className);\n    return function () {\n      element.classList.toggle(className);\n    };\n  }, [className]);\n}\n\nfunction InterfaceSkeleton(_ref) {\n  var footer = _ref.footer,\n      header = _ref.header,\n      sidebar = _ref.sidebar,\n      leftSidebar = _ref.leftSidebar,\n      content = _ref.content,\n      actions = _ref.actions,\n      labels = _ref.labels,\n      className = _ref.className;\n  useHTMLClass('interface-interface-skeleton__html-container');\n  var defaultLabels = {\n    /* translators: accessibility text for the top bar landmark region. */\n    header: Object(external_this_wp_i18n_[\"__\"])('Header'),\n\n    /* translators: accessibility text for the content landmark region. */\n    body: Object(external_this_wp_i18n_[\"__\"])('Content'),\n\n    /* translators: accessibility text for the left sidebar landmark region. */\n    leftSidebar: Object(external_this_wp_i18n_[\"__\"])('Left sidebar'),\n\n    /* translators: accessibility text for the settings landmark region. */\n    sidebar: Object(external_this_wp_i18n_[\"__\"])('Settings'),\n\n    /* translators: accessibility text for the publish landmark region. */\n    actions: Object(external_this_wp_i18n_[\"__\"])('Publish'),\n\n    /* translators: accessibility text for the footer landmark region. */\n    footer: Object(external_this_wp_i18n_[\"__\"])('Footer')\n  };\n\n  var mergedLabels = interface_skeleton_objectSpread({}, defaultLabels, {}, labels);\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: classnames_default()(className, 'interface-interface-skeleton')\n  }, !!header && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__header\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.header,\n    tabIndex: \"-1\"\n  }, header), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__body\"\n  }, !!leftSidebar && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__left-sidebar\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.leftSidebar,\n    tabIndex: \"-1\"\n  }, leftSidebar), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__content\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.body,\n    tabIndex: \"-1\"\n  }, content), !!sidebar && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__sidebar\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.sidebar,\n    tabIndex: \"-1\"\n  }, sidebar), !!actions && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__actions\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.actions,\n    tabIndex: \"-1\"\n  }, actions)), !!footer && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"interface-interface-skeleton__footer\",\n    role: \"region\",\n    \"aria-label\": mergedLabels.footer,\n    tabIndex: \"-1\"\n  }, footer));\n}\n\n/* harmony default export */ var interface_skeleton = (Object(external_this_wp_components_[\"navigateRegions\"])(InterfaceSkeleton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/main-dashboard-button/index.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar slotName = '__experimentalMainDashboardButton';\n\nvar main_dashboard_button_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])(slotName),\n    Fill = main_dashboard_button_createSlotFill.Fill,\n    MainDashboardButtonSlot = main_dashboard_button_createSlotFill.Slot;\n\nvar MainDashboardButton = Fill;\n\nvar main_dashboard_button_Slot = function Slot(_ref) {\n  var children = _ref.children;\n  var slot = Object(external_this_wp_components_[\"__experimentalUseSlot\"])(slotName);\n  var hasFills = Boolean(slot.fills && slot.fills.length);\n\n  if (!hasFills) {\n    return children;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(MainDashboardButtonSlot, {\n    bubblesVirtually: true\n  });\n};\n\nMainDashboardButton.Slot = main_dashboard_button_Slot;\n/* harmony default export */ var main_dashboard_button = (MainDashboardButton);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/components/index.js\n\n\n\n\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/interface/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/text-editor/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction TextEditor(_ref) {\n  var onExit = _ref.onExit,\n      isRichEditingEnabled = _ref.isRichEditingEnabled;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-text-editor\"\n  }, isRichEditingEnabled && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-text-editor__toolbar\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", null, Object(external_this_wp_i18n_[\"__\"])('Editing code')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isTertiary: true,\n    onClick: onExit,\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].secondary('m')\n  }, Object(external_this_wp_i18n_[\"__\"])('Exit code editor')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"TextEditorGlobalKeyboardShortcuts\"], null)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-text-editor__body\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTitle\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTextEditor\"], null)));\n}\n\n/* harmony default export */ var text_editor = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isRichEditingEnabled: select('core/editor').getEditorSettings().richEditingEnabled\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onExit: function onExit() {\n      dispatch('core/edit-post').switchEditorMode('visual');\n    }\n  };\n}))(TextEditor));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/visual-editor/block-inspector-button.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction BlockInspectorButton(_ref) {\n  var _ref$onClick = _ref.onClick,\n      _onClick = _ref$onClick === void 0 ? external_this_lodash_[\"noop\"] : _ref$onClick,\n      _ref$small = _ref.small,\n      small = _ref$small === void 0 ? false : _ref$small,\n      speak = _ref.speak;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      shortcut: select('core/keyboard-shortcuts').getShortcutRepresentation('core/edit-post/toggle-sidebar'),\n      areAdvancedSettingsOpened: select('core/edit-post').getActiveGeneralSidebarName() === 'edit-post/block'\n    };\n  }, []),\n      shortcut = _useSelect.shortcut,\n      areAdvancedSettingsOpened = _useSelect.areAdvancedSettingsOpened;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      openGeneralSidebar = _useDispatch.openGeneralSidebar,\n      closeGeneralSidebar = _useDispatch.closeGeneralSidebar;\n\n  var speakMessage = function speakMessage() {\n    if (areAdvancedSettingsOpened) {\n      speak(Object(external_this_wp_i18n_[\"__\"])('Block settings closed'));\n    } else {\n      speak(Object(external_this_wp_i18n_[\"__\"])('Additional settings are now available in the Editor block settings sidebar'));\n    }\n  };\n\n  var label = areAdvancedSettingsOpened ? Object(external_this_wp_i18n_[\"__\"])('Hide Block Settings') : Object(external_this_wp_i18n_[\"__\"])('Show Block Settings');\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: function onClick() {\n      if (areAdvancedSettingsOpened) {\n        closeGeneralSidebar();\n      } else {\n        openGeneralSidebar('edit-post/block');\n        speakMessage();\n\n        _onClick();\n      }\n    },\n    shortcut: shortcut\n  }, !small && label);\n}\n/* harmony default export */ var block_inspector_button = (Object(external_this_wp_components_[\"withSpokenMessages\"])(BlockInspectorButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/visual-editor/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction VisualEditor() {\n  var deviceType = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/edit-post').__experimentalGetPreviewDeviceType();\n  }, []);\n  var inlineStyles = Object(external_this_wp_blockEditor_[\"__experimentalUseResizeCanvas\"])(deviceType);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockSelectionClearer\"], {\n    className: \"edit-post-visual-editor editor-styles-wrapper\",\n    style: inlineStyles\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"VisualEditorGlobalKeyboardShortcuts\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MultiSelectScrollIntoView\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"].Slot, {\n    name: \"block-toolbar\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"Typewriter\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"CopyHandler\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"WritingFlow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"ObserveTyping\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-visual-editor__post-title-wrapper\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTitle\"], null)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockList\"], null))))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalBlockSettingsMenuFirstItem\"], null, function (_ref) {\n    var onClose = _ref.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(block_inspector_button, {\n      onClick: onClose\n    });\n  }));\n}\n\n/* harmony default export */ var visual_editor = (VisualEditor);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/keyboard-shortcuts/index.js\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction KeyboardShortcuts() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var settings = select('core/editor').getEditorSettings();\n    return {\n      getBlockSelectionStart: select('core/block-editor').getBlockSelectionStart,\n      getEditorMode: select('core/edit-post').getEditorMode,\n      isEditorSidebarOpened: select('core/edit-post').isEditorSidebarOpened,\n      richEditingEnabled: settings.richEditingEnabled,\n      codeEditingEnabled: settings.codeEditingEnabled\n    };\n  }),\n      getBlockSelectionStart = _useSelect.getBlockSelectionStart,\n      getEditorMode = _useSelect.getEditorMode,\n      isEditorSidebarOpened = _useSelect.isEditorSidebarOpened,\n      richEditingEnabled = _useSelect.richEditingEnabled,\n      codeEditingEnabled = _useSelect.codeEditingEnabled;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      switchEditorMode = _useDispatch.switchEditorMode,\n      openGeneralSidebar = _useDispatch.openGeneralSidebar,\n      closeGeneralSidebar = _useDispatch.closeGeneralSidebar,\n      toggleFeature = _useDispatch.toggleFeature;\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/keyboard-shortcuts'),\n      registerShortcut = _useDispatch2.registerShortcut;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    registerShortcut({\n      name: 'core/edit-post/toggle-mode',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Switch between visual editor and code editor.'),\n      keyCombination: {\n        modifier: 'secondary',\n        character: 'm'\n      }\n    });\n    registerShortcut({\n      name: 'core/edit-post/toggle-fullscreen',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Toggle fullscreen mode.'),\n      keyCombination: {\n        modifier: 'secondary',\n        character: 'f'\n      }\n    });\n    registerShortcut({\n      name: 'core/edit-post/toggle-block-navigation',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Open the block navigation menu.'),\n      keyCombination: {\n        modifier: 'access',\n        character: 'o'\n      }\n    });\n    registerShortcut({\n      name: 'core/edit-post/toggle-sidebar',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Show or hide the settings sidebar.'),\n      keyCombination: {\n        modifier: 'primaryShift',\n        character: ','\n      }\n    });\n    registerShortcut({\n      name: 'core/edit-post/next-region',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Navigate to the next part of the editor.'),\n      keyCombination: {\n        modifier: 'ctrl',\n        character: '`'\n      },\n      aliases: [{\n        modifier: 'access',\n        character: 'n'\n      }]\n    });\n    registerShortcut({\n      name: 'core/edit-post/previous-region',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Navigate to the previous part of the editor.'),\n      keyCombination: {\n        modifier: 'ctrlShift',\n        character: '`'\n      },\n      aliases: [{\n        modifier: 'access',\n        character: 'p'\n      }]\n    });\n    registerShortcut({\n      name: 'core/edit-post/keyboard-shortcuts',\n      category: 'main',\n      description: Object(external_this_wp_i18n_[\"__\"])('Display these keyboard shortcuts.'),\n      keyCombination: {\n        modifier: 'access',\n        character: 'h'\n      }\n    });\n  }, []);\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/edit-post/toggle-mode', function () {\n    switchEditorMode(getEditorMode() === 'visual' ? 'text' : 'visual');\n  }, {\n    bindGlobal: true,\n    isDisabled: !richEditingEnabled || !codeEditingEnabled\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/edit-post/toggle-fullscreen', function () {\n    toggleFeature('fullscreenMode');\n  }, {\n    bindGlobal: true\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/edit-post/toggle-sidebar', function (event) {\n    // This shortcut has no known clashes, but use preventDefault to prevent any\n    // obscure shortcuts from triggering.\n    event.preventDefault();\n\n    if (isEditorSidebarOpened()) {\n      closeGeneralSidebar();\n    } else {\n      var sidebarToOpen = getBlockSelectionStart() ? 'edit-post/block' : 'edit-post/document';\n      openGeneralSidebar(sidebarToOpen);\n    }\n  }, {\n    bindGlobal: true\n  });\n  return null;\n}\n\n/* harmony default export */ var keyboard_shortcuts = (KeyboardShortcuts);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/keyboard-shortcut-help-modal/config.js\n/**\n * WordPress dependencies\n */\n\nvar textFormattingShortcuts = [{\n  keyCombination: {\n    modifier: 'primary',\n    character: 'b'\n  },\n  description: Object(external_this_wp_i18n_[\"__\"])('Make the selected text bold.')\n}, {\n  keyCombination: {\n    modifier: 'primary',\n    character: 'i'\n  },\n  description: Object(external_this_wp_i18n_[\"__\"])('Make the selected text italic.')\n}, {\n  keyCombination: {\n    modifier: 'primary',\n    character: 'k'\n  },\n  description: Object(external_this_wp_i18n_[\"__\"])('Convert the selected text into a link.')\n}, {\n  keyCombination: {\n    modifier: 'primaryShift',\n    character: 'k'\n  },\n  description: Object(external_this_wp_i18n_[\"__\"])('Remove a link.')\n}, {\n  keyCombination: {\n    modifier: 'primary',\n    character: 'u'\n  },\n  description: Object(external_this_wp_i18n_[\"__\"])('Underline the selected text.')\n}];\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/keyboard-shortcut-help-modal/shortcut.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction KeyCombination(_ref) {\n  var keyCombination = _ref.keyCombination,\n      forceAriaLabel = _ref.forceAriaLabel;\n  var shortcut = keyCombination.modifier ? external_this_wp_keycodes_[\"displayShortcutList\"][keyCombination.modifier](keyCombination.character) : keyCombination.character;\n  var ariaLabel = keyCombination.modifier ? external_this_wp_keycodes_[\"shortcutAriaLabel\"][keyCombination.modifier](keyCombination.character) : keyCombination.character;\n  return Object(external_this_wp_element_[\"createElement\"])(\"kbd\", {\n    className: \"edit-post-keyboard-shortcut-help-modal__shortcut-key-combination\",\n    \"aria-label\": forceAriaLabel || ariaLabel\n  }, Object(external_this_lodash_[\"castArray\"])(shortcut).map(function (character, index) {\n    if (character === '+') {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], {\n        key: index\n      }, character);\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(\"kbd\", {\n      key: index,\n      className: \"edit-post-keyboard-shortcut-help-modal__shortcut-key\"\n    }, character);\n  }));\n}\n\nfunction Shortcut(_ref2) {\n  var description = _ref2.description,\n      keyCombination = _ref2.keyCombination,\n      _ref2$aliases = _ref2.aliases,\n      aliases = _ref2$aliases === void 0 ? [] : _ref2$aliases,\n      ariaLabel = _ref2.ariaLabel;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-keyboard-shortcut-help-modal__shortcut-description\"\n  }, description), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-keyboard-shortcut-help-modal__shortcut-term\"\n  }, Object(external_this_wp_element_[\"createElement\"])(KeyCombination, {\n    keyCombination: keyCombination,\n    forceAriaLabel: ariaLabel\n  }), aliases.map(function (alias, index) {\n    return Object(external_this_wp_element_[\"createElement\"])(KeyCombination, {\n      keyCombination: alias,\n      forceAriaLabel: ariaLabel,\n      key: index\n    });\n  })));\n}\n\n/* harmony default export */ var keyboard_shortcut_help_modal_shortcut = (Shortcut);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction DynamicShortcut(_ref) {\n  var name = _ref.name;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/keyboard-shortcuts'),\n        getShortcutKeyCombination = _select.getShortcutKeyCombination,\n        getShortcutDescription = _select.getShortcutDescription,\n        getShortcutAliases = _select.getShortcutAliases;\n\n    return {\n      keyCombination: getShortcutKeyCombination(name),\n      aliases: getShortcutAliases(name),\n      description: getShortcutDescription(name)\n    };\n  }),\n      keyCombination = _useSelect.keyCombination,\n      description = _useSelect.description,\n      aliases = _useSelect.aliases;\n\n  if (!keyCombination) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_shortcut, {\n    keyCombination: keyCombination,\n    description: description,\n    aliases: aliases\n  });\n}\n\n/* harmony default export */ var dynamic_shortcut = (DynamicShortcut);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/keyboard-shortcut-help-modal/index.js\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar MODAL_NAME = 'edit-post/keyboard-shortcut-help';\n\nvar keyboard_shortcut_help_modal_ShortcutList = function ShortcutList(_ref) {\n  var shortcuts = _ref.shortcuts;\n  return (\n    /*\n     * Disable reason: The `list` ARIA role is redundant but\n     * Safari+VoiceOver won't announce the list otherwise.\n     */\n\n    /* eslint-disable jsx-a11y/no-redundant-roles */\n    Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      className: \"edit-post-keyboard-shortcut-help-modal__shortcut-list\",\n      role: \"list\"\n    }, shortcuts.map(function (shortcut, index) {\n      return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n        className: \"edit-post-keyboard-shortcut-help-modal__shortcut\",\n        key: index\n      }, Object(external_this_lodash_[\"isString\"])(shortcut) ? Object(external_this_wp_element_[\"createElement\"])(dynamic_shortcut, {\n        name: shortcut\n      }) : Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_shortcut, shortcut));\n    }))\n    /* eslint-enable jsx-a11y/no-redundant-roles */\n\n  );\n};\n\nvar keyboard_shortcut_help_modal_ShortcutSection = function ShortcutSection(_ref2) {\n  var title = _ref2.title,\n      shortcuts = _ref2.shortcuts,\n      className = _ref2.className;\n  return Object(external_this_wp_element_[\"createElement\"])(\"section\", {\n    className: classnames_default()('edit-post-keyboard-shortcut-help-modal__section', className)\n  }, !!title && Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"edit-post-keyboard-shortcut-help-modal__section-title\"\n  }, title), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutList, {\n    shortcuts: shortcuts\n  }));\n};\n\nvar keyboard_shortcut_help_modal_ShortcutCategorySection = function ShortcutCategorySection(_ref3) {\n  var title = _ref3.title,\n      categoryName = _ref3.categoryName,\n      _ref3$additionalShort = _ref3.additionalShortcuts,\n      additionalShortcuts = _ref3$additionalShort === void 0 ? [] : _ref3$additionalShort;\n  var categoryShortcuts = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/keyboard-shortcuts').getCategoryShortcuts(categoryName);\n  }, [categoryName]);\n  return Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutSection, {\n    title: title,\n    shortcuts: categoryShortcuts.concat(additionalShortcuts)\n  });\n};\n\nfunction KeyboardShortcutHelpModal(_ref4) {\n  var isModalActive = _ref4.isModalActive,\n      toggleModal = _ref4.toggleModal;\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/edit-post/keyboard-shortcuts', toggleModal, {\n    bindGlobal: true\n  });\n\n  if (!isModalActive) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Modal\"], {\n    className: \"edit-post-keyboard-shortcut-help-modal\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Keyboard shortcuts'),\n    closeLabel: Object(external_this_wp_i18n_[\"__\"])('Close'),\n    onRequestClose: toggleModal\n  }, Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutSection, {\n    className: \"edit-post-keyboard-shortcut-help-modal__main-shortcuts\",\n    shortcuts: ['core/edit-post/keyboard-shortcuts']\n  }), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutCategorySection, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Global shortcuts'),\n    categoryName: \"global\"\n  }), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutCategorySection, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Selection shortcuts'),\n    categoryName: \"selection\"\n  }), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutCategorySection, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Block shortcuts'),\n    categoryName: \"block\",\n    additionalShortcuts: [{\n      keyCombination: {\n        character: '/'\n      },\n      description: Object(external_this_wp_i18n_[\"__\"])('Change the block type after adding a new paragraph.'),\n\n      /* translators: The forward-slash character. e.g. '/'. */\n      ariaLabel: Object(external_this_wp_i18n_[\"__\"])('Forward-slash')\n    }]\n  }), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal_ShortcutSection, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Text formatting'),\n    shortcuts: textFormattingShortcuts\n  }));\n}\n/* harmony default export */ var keyboard_shortcut_help_modal = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isModalActive: select('core/edit-post').isModalActive(MODAL_NAME)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref5) {\n  var isModalActive = _ref5.isModalActive;\n\n  var _dispatch = dispatch('core/edit-post'),\n      openModal = _dispatch.openModal,\n      closeModal = _dispatch.closeModal;\n\n  return {\n    toggleModal: function toggleModal() {\n      return isModalActive ? closeModal() : openModal(MODAL_NAME);\n    }\n  };\n})])(KeyboardShortcutHelpModal));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/manage-blocks-modal/checklist.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction BlockTypesChecklist(_ref) {\n  var blockTypes = _ref.blockTypes,\n      value = _ref.value,\n      onItemChange = _ref.onItemChange;\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n    className: \"edit-post-manage-blocks-modal__checklist\"\n  }, blockTypes.map(function (blockType) {\n    return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      key: blockType.name,\n      className: \"edit-post-manage-blocks-modal__checklist-item\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n      label: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, blockType.title, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockIcon\"], {\n        icon: blockType.icon\n      })),\n      checked: value.includes(blockType.name),\n      onChange: Object(external_this_lodash_[\"partial\"])(onItemChange, blockType.name)\n    }));\n  }));\n}\n\n/* harmony default export */ var checklist = (BlockTypesChecklist);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/edit-post-settings/index.js\n/**\n * WordPress dependencies\n */\n\nvar EditPostSettings = Object(external_this_wp_element_[\"createContext\"])({});\n/* harmony default export */ var edit_post_settings = (EditPostSettings);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/manage-blocks-modal/category.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction BlockManagerCategory(_ref) {\n  var instanceId = _ref.instanceId,\n      title = _ref.title,\n      blockTypes = _ref.blockTypes,\n      hiddenBlockTypes = _ref.hiddenBlockTypes,\n      toggleVisible = _ref.toggleVisible,\n      toggleAllVisible = _ref.toggleAllVisible;\n  var settings = Object(external_this_wp_element_[\"useContext\"])(edit_post_settings);\n  var allowedBlockTypes = settings.allowedBlockTypes;\n  var filteredBlockTypes = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    if (allowedBlockTypes === true) {\n      return blockTypes;\n    }\n\n    return blockTypes.filter(function (_ref2) {\n      var name = _ref2.name;\n      return Object(external_this_lodash_[\"includes\"])(allowedBlockTypes || [], name);\n    });\n  }, [allowedBlockTypes, blockTypes]);\n\n  if (!filteredBlockTypes.length) {\n    return null;\n  }\n\n  var checkedBlockNames = external_this_lodash_[\"without\"].apply(void 0, [Object(external_this_lodash_[\"map\"])(filteredBlockTypes, 'name')].concat(Object(toConsumableArray[\"a\" /* default */])(hiddenBlockTypes)));\n  var titleId = 'edit-post-manage-blocks-modal__category-title-' + instanceId;\n  var isAllChecked = checkedBlockNames.length === filteredBlockTypes.length;\n  var ariaChecked;\n\n  if (isAllChecked) {\n    ariaChecked = 'true';\n  } else if (checkedBlockNames.length > 0) {\n    ariaChecked = 'mixed';\n  } else {\n    ariaChecked = 'false';\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    role: \"group\",\n    \"aria-labelledby\": titleId,\n    className: \"edit-post-manage-blocks-modal__category\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    checked: isAllChecked,\n    onChange: toggleAllVisible,\n    className: \"edit-post-manage-blocks-modal__category-title\",\n    \"aria-checked\": ariaChecked,\n    label: Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      id: titleId\n    }, title)\n  }), Object(external_this_wp_element_[\"createElement\"])(checklist, {\n    blockTypes: filteredBlockTypes,\n    value: checkedBlockNames,\n    onItemChange: toggleVisible\n  }));\n}\n\n/* harmony default export */ var manage_blocks_modal_category = (Object(external_this_wp_compose_[\"compose\"])([external_this_wp_compose_[\"withInstanceId\"], Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/edit-post'),\n      getPreference = _select.getPreference;\n\n  return {\n    hiddenBlockTypes: getPreference('hiddenBlockTypes')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  var _dispatch = dispatch('core/edit-post'),\n      showBlockTypes = _dispatch.showBlockTypes,\n      hideBlockTypes = _dispatch.hideBlockTypes;\n\n  return {\n    toggleVisible: function toggleVisible(blockName, nextIsChecked) {\n      if (nextIsChecked) {\n        showBlockTypes(blockName);\n      } else {\n        hideBlockTypes(blockName);\n      }\n    },\n    toggleAllVisible: function toggleAllVisible(nextIsChecked) {\n      var blockNames = Object(external_this_lodash_[\"map\"])(ownProps.blockTypes, 'name');\n\n      if (nextIsChecked) {\n        showBlockTypes(blockNames);\n      } else {\n        hideBlockTypes(blockNames);\n      }\n    }\n  };\n})])(BlockManagerCategory));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/manage-blocks-modal/manager.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction BlockManager(_ref) {\n  var search = _ref.search,\n      setState = _ref.setState,\n      blockTypes = _ref.blockTypes,\n      categories = _ref.categories,\n      hasBlockSupport = _ref.hasBlockSupport,\n      isMatchingSearchTerm = _ref.isMatchingSearchTerm,\n      numberOfHiddenBlocks = _ref.numberOfHiddenBlocks;\n  // Filtering occurs here (as opposed to `withSelect`) to avoid wasted\n  // wasted renders by consequence of `Array#filter` producing a new\n  // value reference on each call.\n  blockTypes = blockTypes.filter(function (blockType) {\n    return hasBlockSupport(blockType, 'inserter', true) && (!search || isMatchingSearchTerm(blockType, search)) && (!blockType.parent || Object(external_this_lodash_[\"includes\"])(blockType.parent, 'core/post-content'));\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-manage-blocks-modal__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    type: \"search\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Search for a block'),\n    value: search,\n    onChange: function onChange(nextSearch) {\n      return setState({\n        search: nextSearch\n      });\n    },\n    className: \"edit-post-manage-blocks-modal__search\"\n  }), !!numberOfHiddenBlocks && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-manage-blocks-modal__disabled-blocks-count\"\n  }, Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %d: number of blocks. */\n  Object(external_this_wp_i18n_[\"_n\"])('%d block is disabled.', '%d blocks are disabled.', numberOfHiddenBlocks), numberOfHiddenBlocks)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    tabIndex: \"0\",\n    role: \"region\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Available block types'),\n    className: \"edit-post-manage-blocks-modal__results\"\n  }, blockTypes.length === 0 && Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"edit-post-manage-blocks-modal__no-results\"\n  }, Object(external_this_wp_i18n_[\"__\"])('No blocks found.')), categories.map(function (category) {\n    return Object(external_this_wp_element_[\"createElement\"])(manage_blocks_modal_category, {\n      key: category.slug,\n      title: category.title,\n      blockTypes: Object(external_this_lodash_[\"filter\"])(blockTypes, {\n        category: category.slug\n      })\n    });\n  }), Object(external_this_wp_element_[\"createElement\"])(manage_blocks_modal_category, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Uncategorized'),\n    blockTypes: Object(external_this_lodash_[\"filter\"])(blockTypes, function (_ref2) {\n      var category = _ref2.category;\n      return !category;\n    })\n  })));\n}\n\n/* harmony default export */ var manager = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_compose_[\"withState\"])({\n  search: ''\n}), Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/blocks'),\n      getBlockTypes = _select.getBlockTypes,\n      getCategories = _select.getCategories,\n      hasBlockSupport = _select.hasBlockSupport,\n      isMatchingSearchTerm = _select.isMatchingSearchTerm;\n\n  var _select2 = select('core/edit-post'),\n      getPreference = _select2.getPreference;\n\n  var hiddenBlockTypes = getPreference('hiddenBlockTypes');\n  var numberOfHiddenBlocks = Object(external_this_lodash_[\"isArray\"])(hiddenBlockTypes) && hiddenBlockTypes.length;\n  return {\n    blockTypes: getBlockTypes(),\n    categories: getCategories(),\n    hasBlockSupport: hasBlockSupport,\n    isMatchingSearchTerm: isMatchingSearchTerm,\n    numberOfHiddenBlocks: numberOfHiddenBlocks\n  };\n})])(BlockManager));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/manage-blocks-modal/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Unique identifier for Manage Blocks modal.\n *\n * @type {string}\n */\n\nvar manage_blocks_modal_MODAL_NAME = 'edit-post/manage-blocks';\nfunction ManageBlocksModal(_ref) {\n  var isActive = _ref.isActive,\n      closeModal = _ref.closeModal;\n\n  if (!isActive) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Modal\"], {\n    className: \"edit-post-manage-blocks-modal\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Block Manager'),\n    closeLabel: Object(external_this_wp_i18n_[\"__\"])('Close'),\n    onRequestClose: closeModal\n  }, Object(external_this_wp_element_[\"createElement\"])(manager, null));\n}\n/* harmony default export */ var manage_blocks_modal = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/edit-post'),\n      isModalActive = _select.isModalActive;\n\n  return {\n    isActive: isModalActive(manage_blocks_modal_MODAL_NAME)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      closeModal = _dispatch.closeModal;\n\n  return {\n    closeModal: closeModal\n  };\n})])(ManageBlocksModal));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/section.js\n\n\nvar section_Section = function Section(_ref) {\n  var title = _ref.title,\n      children = _ref.children;\n  return Object(external_this_wp_element_[\"createElement\"])(\"section\", {\n    className: \"edit-post-options-modal__section\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n    className: \"edit-post-options-modal__section-title\"\n  }, title), children);\n};\n\n/* harmony default export */ var section = (section_Section);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/base.js\nvar base = __webpack_require__(109);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/enable-publish-sidebar.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var enable_publish_sidebar = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isChecked: select('core/editor').isPublishSidebarEnabled()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      enablePublishSidebar = _dispatch.enablePublishSidebar,\n      disablePublishSidebar = _dispatch.disablePublishSidebar;\n\n  return {\n    onChange: function onChange(isEnabled) {\n      return isEnabled ? enablePublishSidebar() : disablePublishSidebar();\n    }\n  };\n}), // In < medium viewports we override this option and always show the publish sidebar.\n// See the edit-post's header component for the specific logic.\nObject(external_this_wp_viewport_[\"ifViewportMatches\"])('medium'))(base[\"a\" /* default */]));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/enable-feature.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ var enable_feature = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var featureName = _ref.featureName;\n\n  var _select = select('core/edit-post'),\n      isFeatureActive = _select.isFeatureActive;\n\n  return {\n    isChecked: isFeatureActive(featureName)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref2) {\n  var featureName = _ref2.featureName;\n  return {\n    onChange: function onChange() {\n      return dispatch('core/edit-post').toggleFeature(featureName);\n    }\n  };\n}))(base[\"a\" /* default */]));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/enable-plugin-document-setting-panel.js\nvar enable_plugin_document_setting_panel = __webpack_require__(466);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/enable-panel.js\nvar enable_panel = __webpack_require__(467);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/options/enable-custom-fields.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction CustomFieldsConfirmation(_ref) {\n  var willEnable = _ref.willEnable;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isReloading = _useState2[0],\n      setIsReloading = _useState2[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n    className: \"edit-post-options-modal__custom-fields-confirmation-message\"\n  }, Object(external_this_wp_i18n_[\"__\"])('A page reload is required for this change. Make sure your content is saved before reloading.')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"edit-post-options-modal__custom-fields-confirmation-button\",\n    isSecondary: true,\n    isBusy: isReloading,\n    disabled: isReloading,\n    onClick: function onClick() {\n      setIsReloading(true);\n      document.getElementById('toggle-custom-fields-form').submit();\n    }\n  }, willEnable ? Object(external_this_wp_i18n_[\"__\"])('Enable & Reload') : Object(external_this_wp_i18n_[\"__\"])('Disable & Reload')));\n}\nfunction EnableCustomFieldsOption(_ref2) {\n  var label = _ref2.label,\n      areCustomFieldsEnabled = _ref2.areCustomFieldsEnabled;\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(areCustomFieldsEnabled),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isChecked = _useState4[0],\n      setIsChecked = _useState4[1];\n\n  return Object(external_this_wp_element_[\"createElement\"])(base[\"a\" /* default */], {\n    label: label,\n    isChecked: isChecked,\n    onChange: setIsChecked\n  }, isChecked !== areCustomFieldsEnabled && Object(external_this_wp_element_[\"createElement\"])(CustomFieldsConfirmation, {\n    willEnable: isChecked\n  }));\n}\n/* harmony default export */ var enable_custom_fields = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    areCustomFieldsEnabled: !!select('core/editor').getEditorSettings().enableCustomFields\n  };\n})(EnableCustomFieldsOption));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/meta-boxes-section.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction MetaBoxesSection(_ref) {\n  var areCustomFieldsRegistered = _ref.areCustomFieldsRegistered,\n      metaBoxes = _ref.metaBoxes,\n      sectionProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"areCustomFieldsRegistered\", \"metaBoxes\"]);\n\n  // The 'Custom Fields' meta box is a special case that we handle separately.\n  var thirdPartyMetaBoxes = Object(external_this_lodash_[\"filter\"])(metaBoxes, function (_ref2) {\n    var id = _ref2.id;\n    return id !== 'postcustom';\n  });\n\n  if (!areCustomFieldsRegistered && thirdPartyMetaBoxes.length === 0) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(section, sectionProps, areCustomFieldsRegistered && Object(external_this_wp_element_[\"createElement\"])(enable_custom_fields, {\n    label: Object(external_this_wp_i18n_[\"__\"])('Custom fields')\n  }), Object(external_this_lodash_[\"map\"])(thirdPartyMetaBoxes, function (_ref3) {\n    var id = _ref3.id,\n        title = _ref3.title;\n    return Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n      key: id,\n      label: title,\n      panelName: \"meta-box-\".concat(id)\n    });\n  }));\n}\n/* harmony default export */ var meta_boxes_section = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditorSettings = _select.getEditorSettings;\n\n  var _select2 = select('core/edit-post'),\n      getAllMetaBoxes = _select2.getAllMetaBoxes;\n\n  return {\n    // This setting should not live in the block editor's store.\n    areCustomFieldsRegistered: getEditorSettings().enableCustomFields !== undefined,\n    metaBoxes: getAllMetaBoxes()\n  };\n})(MetaBoxesSection));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/options-modal/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar options_modal_MODAL_NAME = 'edit-post/options';\nfunction OptionsModal(_ref) {\n  var isModalActive = _ref.isModalActive,\n      isViewable = _ref.isViewable,\n      closeModal = _ref.closeModal;\n\n  if (!isModalActive) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Modal\"], {\n    className: \"edit-post-options-modal\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Options'),\n    closeLabel: Object(external_this_wp_i18n_[\"__\"])('Close'),\n    onRequestClose: closeModal\n  }, Object(external_this_wp_element_[\"createElement\"])(section, {\n    title: Object(external_this_wp_i18n_[\"__\"])('General')\n  }, Object(external_this_wp_element_[\"createElement\"])(enable_publish_sidebar, {\n    label: Object(external_this_wp_i18n_[\"__\"])('Pre-publish checks')\n  }), Object(external_this_wp_element_[\"createElement\"])(enable_feature, {\n    featureName: \"mostUsedBlocks\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Enable the Most Used Blocks category in the block library')\n  })), Object(external_this_wp_element_[\"createElement\"])(section, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Keyboard options')\n  }, Object(external_this_wp_element_[\"createElement\"])(enable_feature, {\n    featureName: \"keepCaretInsideBlock\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Contain text cursor inside active block')\n  })), Object(external_this_wp_element_[\"createElement\"])(section, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Document panels')\n  }, Object(external_this_wp_element_[\"createElement\"])(enable_plugin_document_setting_panel[\"a\" /* default */].Slot, null), isViewable && Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Permalink'),\n    panelName: \"post-link\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTaxonomies\"], {\n    taxonomyWrapper: function taxonomyWrapper(content, taxonomy) {\n      return Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n        label: Object(external_this_lodash_[\"get\"])(taxonomy, ['labels', 'menu_name']),\n        panelName: \"taxonomy-panel-\".concat(taxonomy.slug)\n      });\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostFeaturedImageCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Featured image'),\n    panelName: \"featured-image\"\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostExcerptCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Excerpt'),\n    panelName: \"post-excerpt\"\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTypeSupportCheck\"], {\n    supportKeys: ['comments', 'trackbacks']\n  }, Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Discussion'),\n    panelName: \"discussion-panel\"\n  })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PageAttributesCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(enable_panel[\"a\" /* default */], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Page attributes'),\n    panelName: \"page-attributes\"\n  }))), Object(external_this_wp_element_[\"createElement\"])(meta_boxes_section, {\n    title: Object(external_this_wp_i18n_[\"__\"])('Advanced panels')\n  }));\n}\n/* harmony default export */ var options_modal = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  var postType = getPostType(getEditedPostAttribute('type'));\n  return {\n    isModalActive: select('core/edit-post').isModalActive(options_modal_MODAL_NAME),\n    isViewable: Object(external_this_lodash_[\"get\"])(postType, ['viewable'], false)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    closeModal: function closeModal() {\n      return dispatch('core/edit-post').closeModal();\n    }\n  };\n}))(OptionsModal));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/browser-url/index.js\n\n\n\n\n\n\nfunction browser_url_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (browser_url_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction browser_url_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Returns the Post's Edit URL.\n *\n * @param {number} postId Post ID.\n *\n * @return {string} Post edit URL.\n */\n\nfunction getPostEditURL(postId) {\n  return Object(external_this_wp_url_[\"addQueryArgs\"])('post.php', {\n    post: postId,\n    action: 'edit'\n  });\n}\n/**\n * Returns the Post's Trashed URL.\n *\n * @param {number} postId    Post ID.\n * @param {string} postType Post Type.\n *\n * @return {string} Post trashed URL.\n */\n\nfunction getPostTrashedURL(postId, postType) {\n  return Object(external_this_wp_url_[\"addQueryArgs\"])('edit.php', {\n    trashed: 1,\n    post_type: postType,\n    ids: postId\n  });\n}\nvar browser_url_BrowserURL = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(BrowserURL, _Component);\n\n  var _super = browser_url_createSuper(BrowserURL);\n\n  function BrowserURL() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, BrowserURL);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      historyId: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(BrowserURL, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          postId = _this$props.postId,\n          postStatus = _this$props.postStatus,\n          postType = _this$props.postType,\n          isSavingPost = _this$props.isSavingPost;\n      var historyId = this.state.historyId; // Posts are still dirty while saving so wait for saving to finish\n      // to avoid the unsaved changes warning when trashing posts.\n\n      if (postStatus === 'trash' && !isSavingPost) {\n        this.setTrashURL(postId, postType);\n        return;\n      }\n\n      if ((postId !== prevProps.postId || postId !== historyId) && postStatus !== 'auto-draft') {\n        this.setBrowserURL(postId);\n      }\n    }\n    /**\n     * Navigates the browser to the post trashed URL to show a notice about the trashed post.\n     *\n     * @param {number} postId    Post ID.\n     * @param {string} postType  Post Type.\n     */\n\n  }, {\n    key: \"setTrashURL\",\n    value: function setTrashURL(postId, postType) {\n      window.location.href = getPostTrashedURL(postId, postType);\n    }\n    /**\n     * Replaces the browser URL with a post editor link for the given post ID.\n     *\n     * Note it is important that, since this function may be called when the\n     * editor first loads, the result generated `getPostEditURL` matches that\n     * produced by the server. Otherwise, the URL will change unexpectedly.\n     *\n     * @param {number} postId Post ID for which to generate post editor URL.\n     */\n\n  }, {\n    key: \"setBrowserURL\",\n    value: function setBrowserURL(postId) {\n      window.history.replaceState({\n        id: postId\n      }, 'Post ' + postId, getPostEditURL(postId));\n      this.setState(function () {\n        return {\n          historyId: postId\n        };\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return BrowserURL;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var browser_url = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost,\n      isSavingPost = _select.isSavingPost;\n\n  var _getCurrentPost = getCurrentPost(),\n      id = _getCurrentPost.id,\n      status = _getCurrentPost.status,\n      type = _getCurrentPost.type;\n\n  return {\n    postId: id,\n    postStatus: status,\n    postType: type,\n    isSavingPost: isSavingPost()\n  };\n})(browser_url_BrowserURL));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/wordpress.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar wordpress = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z\"\n}));\n/* harmony default export */ var library_wordpress = (wordpress);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/fullscreen-mode-close/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction FullscreenModeClose() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/editor'),\n        getCurrentPostType = _select.getCurrentPostType;\n\n    var _select2 = select('core/edit-post'),\n        isFeatureActive = _select2.isFeatureActive;\n\n    var _select3 = select('core'),\n        getPostType = _select3.getPostType;\n\n    return {\n      isActive: isFeatureActive('fullscreenMode'),\n      postType: getPostType(getCurrentPostType())\n    };\n  }, []),\n      isActive = _useSelect.isActive,\n      postType = _useSelect.postType;\n\n  if (!isActive || !postType) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"edit-post-fullscreen-mode-close\",\n    icon: library_wordpress,\n    iconSize: 36,\n    href: Object(external_this_wp_url_[\"addQueryArgs\"])('edit.php', {\n      post_type: postType.slug\n    }),\n    label: Object(external_this_lodash_[\"get\"])(postType, ['labels', 'view_items'], Object(external_this_wp_i18n_[\"__\"])('Back'))\n  });\n}\n\n/* harmony default export */ var fullscreen_mode_close = (FullscreenModeClose);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plus.js\nvar plus = __webpack_require__(286);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/header-toolbar/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\nfunction HeaderToolbar() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      setIsInserterOpened = _useDispatch.setIsInserterOpened;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        hasInserterItems = _select.hasInserterItems,\n        getBlockRootClientId = _select.getBlockRootClientId,\n        getBlockSelectionEnd = _select.getBlockSelectionEnd;\n\n    return {\n      hasFixedToolbar: select('core/edit-post').isFeatureActive('fixedToolbar'),\n      // This setting (richEditingEnabled) should not live in the block editor's setting.\n      isInserterEnabled: select('core/edit-post').getEditorMode() === 'visual' && select('core/editor').getEditorSettings().richEditingEnabled && hasInserterItems(getBlockRootClientId(getBlockSelectionEnd())),\n      isInserterOpened: select('core/edit-post').isInserterOpened(),\n      isTextModeEnabled: select('core/edit-post').getEditorMode() === 'text',\n      previewDeviceType: select('core/edit-post').__experimentalGetPreviewDeviceType()\n    };\n  }, []),\n      hasFixedToolbar = _useSelect.hasFixedToolbar,\n      isInserterEnabled = _useSelect.isInserterEnabled,\n      isInserterOpened = _useSelect.isInserterOpened,\n      isTextModeEnabled = _useSelect.isTextModeEnabled,\n      previewDeviceType = _useSelect.previewDeviceType;\n\n  var isLargeViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium');\n  var displayBlockToolbar = !isLargeViewport || previewDeviceType !== 'Desktop' || hasFixedToolbar;\n  var toolbarAriaLabel = displayBlockToolbar ?\n  /* translators: accessibility text for the editor toolbar when Top Toolbar is on */\n  Object(external_this_wp_i18n_[\"__\"])('Document and block tools') :\n  /* translators: accessibility text for the editor toolbar when Top Toolbar is off */\n  Object(external_this_wp_i18n_[\"__\"])('Document tools');\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"NavigableToolbar\"], {\n    className: \"edit-post-header-toolbar\",\n    \"aria-label\": toolbarAriaLabel\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_components_[\"Button\"],\n    className: \"edit-post-header-toolbar__inserter-toggle\",\n    isPrimary: true,\n    isPressed: isInserterOpened,\n    onClick: function onClick() {\n      return setIsInserterOpened(!isInserterOpened);\n    },\n    disabled: !isInserterEnabled,\n    icon: plus[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"_x\"])('Add block', 'Generic label for block inserter button')\n  }), isLargeViewport && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_blockEditor_[\"ToolSelector\"]\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_editor_[\"EditorHistoryUndo\"]\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_editor_[\"EditorHistoryRedo\"]\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_editor_[\"TableOfContents\"],\n    hasOutlineItemsDisabled: isTextModeEnabled\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"__experimentalToolbarItem\"], {\n    as: external_this_wp_blockEditor_[\"BlockNavigationDropdown\"],\n    isDisabled: isTextModeEnabled\n  }), displayBlockToolbar && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-header-toolbar__block-toolbar\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockToolbar\"], {\n    hideDragHandle: true\n  })));\n}\n\n/* harmony default export */ var header_toolbar = (HeaderToolbar);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/more-vertical.js\nvar more_vertical = __webpack_require__(293);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/mode-switcher/index.js\n\n\n\nfunction mode_switcher_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction mode_switcher_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { mode_switcher_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { mode_switcher_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Set of available mode options.\n *\n * @type {Array}\n */\n\nvar MODES = [{\n  value: 'visual',\n  label: Object(external_this_wp_i18n_[\"__\"])('Visual editor')\n}, {\n  value: 'text',\n  label: Object(external_this_wp_i18n_[\"__\"])('Code editor')\n}];\n\nfunction ModeSwitcher() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      shortcut: select('core/keyboard-shortcuts').getShortcutRepresentation('core/edit-post/toggle-mode'),\n      isRichEditingEnabled: select('core/editor').getEditorSettings().richEditingEnabled,\n      isCodeEditingEnabled: select('core/editor').getEditorSettings().codeEditingEnabled,\n      mode: select('core/edit-post').getEditorMode()\n    };\n  }, []),\n      shortcut = _useSelect.shortcut,\n      isRichEditingEnabled = _useSelect.isRichEditingEnabled,\n      isCodeEditingEnabled = _useSelect.isCodeEditingEnabled,\n      mode = _useSelect.mode;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      switchEditorMode = _useDispatch.switchEditorMode;\n\n  if (!isRichEditingEnabled || !isCodeEditingEnabled) {\n    return null;\n  }\n\n  var choices = MODES.map(function (choice) {\n    if (choice.value !== mode) {\n      return mode_switcher_objectSpread({}, choice, {\n        shortcut: shortcut\n      });\n    }\n\n    return choice;\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Editor')\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItemsChoice\"], {\n    choices: choices,\n    value: mode,\n    onSelect: switchEditorMode\n  }));\n}\n\n/* harmony default export */ var mode_switcher = (ModeSwitcher);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/options-menu-item/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction OptionsMenuItem(_ref) {\n  var openModal = _ref.openModal;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    onClick: function onClick() {\n      openModal('edit-post/options');\n    }\n  }, Object(external_this_wp_i18n_[\"__\"])('Options'));\n}\n/* harmony default export */ var options_menu_item = (Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      openModal = _dispatch.openModal;\n\n  return {\n    openModal: openModal\n  };\n})(OptionsMenuItem));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/feature-toggle/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction FeatureToggle(_ref) {\n  var onToggle = _ref.onToggle,\n      isActive = _ref.isActive,\n      label = _ref.label,\n      info = _ref.info,\n      messageActivated = _ref.messageActivated,\n      messageDeactivated = _ref.messageDeactivated,\n      speak = _ref.speak;\n\n  var speakMessage = function speakMessage() {\n    if (isActive) {\n      speak(messageDeactivated || Object(external_this_wp_i18n_[\"__\"])('Feature deactivated'));\n    } else {\n      speak(messageActivated || Object(external_this_wp_i18n_[\"__\"])('Feature activated'));\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n    icon: isActive && check[\"a\" /* default */],\n    isSelected: isActive,\n    onClick: Object(external_this_lodash_[\"flow\"])(onToggle, speakMessage),\n    role: \"menuitemcheckbox\",\n    info: info\n  }, label);\n}\n\n/* harmony default export */ var feature_toggle = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var feature = _ref2.feature;\n  return {\n    isActive: select('core/edit-post').isFeatureActive(feature)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  return {\n    onToggle: function onToggle() {\n      dispatch('core/edit-post').toggleFeature(ownProps.feature);\n    }\n  };\n}), external_this_wp_components_[\"withSpokenMessages\"]])(FeatureToggle));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/writing-menu/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction WritingMenu() {\n  var isLargeViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium');\n\n  if (!isLargeViewport) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], {\n    label: Object(external_this_wp_i18n_[\"_x\"])('View', 'noun')\n  }, Object(external_this_wp_element_[\"createElement\"])(feature_toggle, {\n    feature: \"fixedToolbar\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Top toolbar'),\n    info: Object(external_this_wp_i18n_[\"__\"])('Access all block and document tools in a single place'),\n    messageActivated: Object(external_this_wp_i18n_[\"__\"])('Top toolbar activated'),\n    messageDeactivated: Object(external_this_wp_i18n_[\"__\"])('Top toolbar deactivated')\n  }), Object(external_this_wp_element_[\"createElement\"])(feature_toggle, {\n    feature: \"focusMode\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Spotlight mode'),\n    info: Object(external_this_wp_i18n_[\"__\"])('Focus on one block at a time'),\n    messageActivated: Object(external_this_wp_i18n_[\"__\"])('Spotlight mode activated'),\n    messageDeactivated: Object(external_this_wp_i18n_[\"__\"])('Spotlight mode deactivated')\n  }), Object(external_this_wp_element_[\"createElement\"])(feature_toggle, {\n    feature: \"fullscreenMode\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Fullscreen mode'),\n    info: Object(external_this_wp_i18n_[\"__\"])('Work without distraction'),\n    messageActivated: Object(external_this_wp_i18n_[\"__\"])('Fullscreen mode activated'),\n    messageDeactivated: Object(external_this_wp_i18n_[\"__\"])('Fullscreen mode deactivated')\n  }));\n}\n\n/* harmony default export */ var writing_menu = (WritingMenu);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/more-menu/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\nvar POPOVER_PROPS = {\n  className: 'edit-post-more-menu__content',\n  position: 'bottom left'\n};\nvar TOGGLE_PROPS = {\n  tooltipPosition: 'bottom'\n};\n\nvar more_menu_MoreMenu = function MoreMenu() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropdownMenu\"], {\n    className: \"edit-post-more-menu\",\n    icon: more_vertical[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('More tools & options'),\n    popoverProps: POPOVER_PROPS,\n    toggleProps: TOGGLE_PROPS\n  }, function (_ref) {\n    var onClose = _ref.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(writing_menu, null), Object(external_this_wp_element_[\"createElement\"])(mode_switcher, null), Object(external_this_wp_element_[\"createElement\"])(action_item.Slot, {\n      name: \"core/edit-post/plugin-more-menu\",\n      label: Object(external_this_wp_i18n_[\"__\"])('Plugins'),\n      as: [external_this_wp_components_[\"MenuGroup\"], external_this_wp_components_[\"MenuItem\"]],\n      fillProps: {\n        onClick: onClose\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(tools_more_menu_group.Slot, {\n      fillProps: {\n        onClose: onClose\n      }\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(options_menu_item, null)));\n  });\n};\n\n/* harmony default export */ var more_menu = (more_menu_MoreMenu);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/post-publish-button-or-toggle.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction PostPublishButtonOrToggle(_ref) {\n  var forceIsDirty = _ref.forceIsDirty,\n      forceIsSaving = _ref.forceIsSaving,\n      hasPublishAction = _ref.hasPublishAction,\n      isBeingScheduled = _ref.isBeingScheduled,\n      isPending = _ref.isPending,\n      isPublished = _ref.isPublished,\n      isPublishSidebarEnabled = _ref.isPublishSidebarEnabled,\n      isPublishSidebarOpened = _ref.isPublishSidebarOpened,\n      isScheduled = _ref.isScheduled,\n      togglePublishSidebar = _ref.togglePublishSidebar,\n      setEntitiesSavedStatesCallback = _ref.setEntitiesSavedStatesCallback;\n  var IS_TOGGLE = 'toggle';\n  var IS_BUTTON = 'button';\n  var isSmallerThanMediumViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium', '<');\n  var component;\n  /**\n   * Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):\n   *\n   * 1) We want to show a BUTTON when the post status is at the _final stage_\n   * for a particular role (see https://wordpress.org/support/article/post-status/):\n   *\n   * - is published\n   * - is scheduled to be published\n   * - is pending and can't be published (but only for viewports >= medium).\n   * \t Originally, we considered showing a button for pending posts that couldn't be published\n   * \t (for example, for an author with the contributor role). Some languages can have\n   * \t long translations for \"Submit for review\", so given the lack of UI real estate available\n   * \t we decided to take into account the viewport in that case.\n   *  \t See: https://github.com/WordPress/gutenberg/issues/10475\n   *\n   * 2) Then, in small viewports, we'll show a TOGGLE.\n   *\n   * 3) Finally, we'll use the publish sidebar status to decide:\n   *\n   * - if it is enabled, we show a TOGGLE\n   * - if it is disabled, we show a BUTTON\n   */\n\n  if (isPublished || isScheduled && isBeingScheduled || isPending && !hasPublishAction && !isSmallerThanMediumViewport) {\n    component = IS_BUTTON;\n  } else if (isSmallerThanMediumViewport) {\n    component = IS_TOGGLE;\n  } else if (isPublishSidebarEnabled) {\n    component = IS_TOGGLE;\n  } else {\n    component = IS_BUTTON;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPublishButton\"], {\n    forceIsDirty: forceIsDirty,\n    forceIsSaving: forceIsSaving,\n    isOpen: isPublishSidebarOpened,\n    isToggle: component === IS_TOGGLE,\n    onToggle: togglePublishSidebar,\n    setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback\n  });\n}\n/* harmony default export */ var post_publish_button_or_toggle = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(select('core/editor').getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    isBeingScheduled: select('core/editor').isEditedPostBeingScheduled(),\n    isPending: select('core/editor').isCurrentPostPending(),\n    isPublished: select('core/editor').isCurrentPostPublished(),\n    isPublishSidebarEnabled: select('core/editor').isPublishSidebarEnabled(),\n    isPublishSidebarOpened: select('core/edit-post').isPublishSidebarOpened(),\n    isScheduled: select('core/editor').isCurrentPostScheduled()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      togglePublishSidebar = _dispatch.togglePublishSidebar;\n\n  return {\n    togglePublishSidebar: togglePublishSidebar\n  };\n}))(PostPublishButtonOrToggle));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/external.js\nvar external = __webpack_require__(405);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/device-preview/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction DevicePreview() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      hasActiveMetaboxes: select('core/edit-post').hasMetaBoxes(),\n      isSaving: select('core/edit-post').isSavingMetaBoxes(),\n      isPostSaveable: select('core/editor').isEditedPostSaveable(),\n      deviceType: select('core/edit-post').__experimentalGetPreviewDeviceType()\n    };\n  }, []),\n      hasActiveMetaboxes = _useSelect.hasActiveMetaboxes,\n      isPostSaveable = _useSelect.isPostSaveable,\n      isSaving = _useSelect.isSaving,\n      deviceType = _useSelect.deviceType;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      setPreviewDeviceType = _useDispatch.__experimentalSetPreviewDeviceType;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalPreviewOptions\"], {\n    isEnabled: isPostSaveable,\n    className: \"edit-post-post-preview-dropdown\",\n    deviceType: deviceType,\n    setDeviceType: setPreviewDeviceType\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuGroup\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-header-preview__grouping-external\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPreviewButton\"], {\n    className: 'edit-post-header-preview__button-external',\n    forceIsAutosaveable: hasActiveMetaboxes,\n    forcePreviewLink: isSaving ? null : undefined,\n    textContent: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Icon\"], {\n      icon: external[\"a\" /* default */]\n    }), Object(external_this_wp_i18n_[\"__\"])('Preview in new tab'))\n  }))));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\nfunction Header(_ref) {\n  var setEntitiesSavedStatesCallback = _ref.setEntitiesSavedStatesCallback;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      hasActiveMetaboxes: select('core/edit-post').hasMetaBoxes(),\n      isPublishSidebarOpened: select('core/edit-post').isPublishSidebarOpened(),\n      isSaving: select('core/edit-post').isSavingMetaBoxes()\n    };\n  }, []),\n      hasActiveMetaboxes = _useSelect.hasActiveMetaboxes,\n      isPublishSidebarOpened = _useSelect.isPublishSidebarOpened,\n      isSaving = _useSelect.isSaving;\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(main_dashboard_button.Slot, null, Object(external_this_wp_element_[\"createElement\"])(fullscreen_mode_close, null)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-header__toolbar\"\n  }, Object(external_this_wp_element_[\"createElement\"])(header_toolbar, null)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-header__settings\"\n  }, !isPublishSidebarOpened && // This button isn't completely hidden by the publish sidebar.\n  // We can't hide the whole toolbar when the publish sidebar is open because\n  // we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.\n  // We track that DOM node to return focus to the PostPublishButtonOrToggle\n  // when the publish sidebar has been closed.\n  Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostSavedState\"], {\n    forceIsDirty: hasActiveMetaboxes,\n    forceIsSaving: isSaving\n  }), Object(external_this_wp_element_[\"createElement\"])(DevicePreview, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPreviewButton\"], {\n    forceIsAutosaveable: hasActiveMetaboxes,\n    forcePreviewLink: isSaving ? null : undefined\n  }), Object(external_this_wp_element_[\"createElement\"])(post_publish_button_or_toggle, {\n    forceIsDirty: hasActiveMetaboxes,\n    forceIsSaving: isSaving,\n    setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback\n  }), Object(external_this_wp_element_[\"createElement\"])(pinned_items.Slot, {\n    scope: \"core/edit-post\"\n  }), Object(external_this_wp_element_[\"createElement\"])(more_menu, null)));\n}\n\n/* harmony default export */ var components_header = (Header);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cog.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar cog = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  fillRule: \"evenodd\",\n  d: \"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\",\n  clipRule: \"evenodd\"\n}));\n/* harmony default export */ var library_cog = (cog);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/settings-header/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar settings_header_SettingsHeader = function SettingsHeader(_ref) {\n  var openDocumentSettings = _ref.openDocumentSettings,\n      openBlockSettings = _ref.openBlockSettings,\n      sidebarName = _ref.sidebarName;\n\n  var blockLabel = Object(external_this_wp_i18n_[\"__\"])('Block');\n\n  var _ref2 = sidebarName === 'edit-post/document' ? // translators: ARIA label for the Document sidebar tab, selected.\n  [Object(external_this_wp_i18n_[\"__\"])('Document (selected)'), 'is-active'] : // translators: ARIA label for the Document sidebar tab, not selected.\n  [Object(external_this_wp_i18n_[\"__\"])('Document'), ''],\n      _ref3 = Object(slicedToArray[\"a\" /* default */])(_ref2, 2),\n      documentAriaLabel = _ref3[0],\n      documentActiveClass = _ref3[1];\n\n  var _ref4 = sidebarName === 'edit-post/block' ? // translators: ARIA label for the Settings Sidebar tab, selected.\n  [Object(external_this_wp_i18n_[\"__\"])('Block (selected)'), 'is-active'] : // translators: ARIA label for the Settings Sidebar tab, not selected.\n  [Object(external_this_wp_i18n_[\"__\"])('Block'), ''],\n      _ref5 = Object(slicedToArray[\"a\" /* default */])(_ref4, 2),\n      blockAriaLabel = _ref5[0],\n      blockActiveClass = _ref5[1];\n  /* Use a list so screen readers will announce how many tabs there are. */\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"ul\", null, Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: openDocumentSettings,\n    className: \"edit-post-sidebar__panel-tab \".concat(documentActiveClass),\n    \"aria-label\": documentAriaLabel,\n    \"data-label\": Object(external_this_wp_i18n_[\"__\"])('Document')\n  }, Object(external_this_wp_i18n_[\"__\"])('Document'))), Object(external_this_wp_element_[\"createElement\"])(\"li\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: openBlockSettings,\n    className: \"edit-post-sidebar__panel-tab \".concat(blockActiveClass),\n    \"aria-label\": blockAriaLabel,\n    \"data-label\": blockLabel\n  }, blockLabel)));\n};\n\n/* harmony default export */ var settings_header = (Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      openGeneralSidebar = _dispatch.openGeneralSidebar;\n\n  return {\n    openDocumentSettings: function openDocumentSettings() {\n      openGeneralSidebar('edit-post/document');\n    },\n    openBlockSettings: function openBlockSettings() {\n      openGeneralSidebar('edit-post/block');\n    }\n  };\n})(settings_header_SettingsHeader));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-visibility/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostVisibility() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostVisibilityCheck\"], {\n    render: function render(_ref) {\n      var canEdit = _ref.canEdit;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], {\n        className: \"edit-post-post-visibility\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_i18n_[\"__\"])('Visibility')), !canEdit && Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostVisibilityLabel\"], null)), canEdit && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n        position: \"bottom left\",\n        contentClassName: \"edit-post-post-visibility__dialog\",\n        renderToggle: function renderToggle(_ref2) {\n          var isOpen = _ref2.isOpen,\n              onToggle = _ref2.onToggle;\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n            \"aria-expanded\": isOpen,\n            className: \"edit-post-post-visibility__toggle\",\n            onClick: onToggle,\n            isTertiary: true\n          }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostVisibilityLabel\"], null));\n        },\n        renderContent: function renderContent() {\n          return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostVisibility\"], null);\n        }\n      }));\n    }\n  });\n}\n/* harmony default export */ var post_visibility = (PostVisibility);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-trash/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostTrash() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTrashCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTrash\"], null)));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-schedule/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostSchedule() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostScheduleCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], {\n    className: \"edit-post-post-schedule\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", null, Object(external_this_wp_i18n_[\"__\"])('Publish')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    position: \"bottom left\",\n    contentClassName: \"edit-post-post-schedule__dialog\",\n    renderToggle: function renderToggle(_ref) {\n      var onToggle = _ref.onToggle,\n          isOpen = _ref.isOpen;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"edit-post-post-schedule__toggle\",\n        onClick: onToggle,\n        \"aria-expanded\": isOpen,\n        isTertiary: true\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostScheduleLabel\"], null)));\n    },\n    renderContent: function renderContent() {\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostSchedule\"], null);\n    }\n  })));\n}\n/* harmony default export */ var post_schedule = (PostSchedule);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-sticky/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostSticky() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostStickyCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostSticky\"], null)));\n}\n/* harmony default export */ var post_sticky = (PostSticky);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-author/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostAuthor() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostAuthorCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostAuthor\"], null)));\n}\n/* harmony default export */ var post_author = (PostAuthor);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-slug/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostSlug() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostSlugCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostSlug\"], null)));\n}\n/* harmony default export */ var post_slug = (PostSlug);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-format/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostFormat() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostFormatCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostFormat\"], null)));\n}\n/* harmony default export */ var post_format = (PostFormat);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-pending-status/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PostPendingStatus() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPendingStatusCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPendingStatus\"], null)));\n}\n/* harmony default export */ var post_pending_status = (PostPendingStatus);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/plugin-post-status-info/index.js\n\n\n/**\n * Defines as extensibility slot for the Status & visibility panel.\n */\n\n/**\n * WordPress dependencies\n */\n\n\nvar plugin_post_status_info_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('PluginPostStatusInfo'),\n    plugin_post_status_info_Fill = plugin_post_status_info_createSlotFill.Fill,\n    plugin_post_status_info_Slot = plugin_post_status_info_createSlotFill.Slot;\n/**\n * Renders a row in the Status & visibility panel of the Document sidebar.\n * It should be noted that this is named and implemented around the function it serves\n * and not its location, which may change in future iterations.\n *\n * @param {Object}    props             Component properties.\n * @param {string}    [props.className] An optional class name added to the row.\n * @param {WPElement} props.children    Children to be rendered.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPostStatusInfo = wp.editPost.PluginPostStatusInfo;\n *\n * function MyPluginPostStatusInfo() {\n * \treturn wp.element.createElement(\n * \t\tPluginPostStatusInfo,\n * \t\t{\n * \t\t\tclassName: 'my-plugin-post-status-info',\n * \t\t},\n * \t\t__( 'My post status info' )\n * \t)\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginPostStatusInfo } from '@wordpress/edit-post';\n *\n * const MyPluginPostStatusInfo = () => (\n * \t<PluginPostStatusInfo\n * \t\tclassName=\"my-plugin-post-status-info\"\n * \t>\n * \t\t{ __( 'My post status info' ) }\n * \t</PluginPostStatusInfo>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n\n\n\nvar plugin_post_status_info_PluginPostStatusInfo = function PluginPostStatusInfo(_ref) {\n  var children = _ref.children,\n      className = _ref.className;\n  return Object(external_this_wp_element_[\"createElement\"])(plugin_post_status_info_Fill, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], {\n    className: className\n  }, children));\n};\n\nplugin_post_status_info_PluginPostStatusInfo.Slot = plugin_post_status_info_Slot;\n/* harmony default export */ var plugin_post_status_info = (plugin_post_status_info_PluginPostStatusInfo);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-status/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar PANEL_NAME = 'post-status';\n\nfunction PostStatus(_ref) {\n  var isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    className: \"edit-post-post-status\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Status & visibility'),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, Object(external_this_wp_element_[\"createElement\"])(plugin_post_status_info.Slot, null, function (fills) {\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(post_visibility, null), Object(external_this_wp_element_[\"createElement\"])(post_schedule, null), Object(external_this_wp_element_[\"createElement\"])(post_format, null), Object(external_this_wp_element_[\"createElement\"])(post_sticky, null), Object(external_this_wp_element_[\"createElement\"])(post_pending_status, null), Object(external_this_wp_element_[\"createElement\"])(post_slug, null), Object(external_this_wp_element_[\"createElement\"])(post_author, null), fills, Object(external_this_wp_element_[\"createElement\"])(PostTrash, null));\n  }));\n}\n\n/* harmony default export */ var post_status = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  // We use isEditorPanelRemoved to hide the panel if it was programatically removed. We do\n  // not use isEditorPanelEnabled since this panel should not be disabled through the UI.\n  var _select = select('core/edit-post'),\n      isEditorPanelRemoved = _select.isEditorPanelRemoved,\n      isEditorPanelOpened = _select.isEditorPanelOpened;\n\n  return {\n    isRemoved: isEditorPanelRemoved(PANEL_NAME),\n    isOpened: isEditorPanelOpened(PANEL_NAME)\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref2) {\n  var isRemoved = _ref2.isRemoved;\n  return !isRemoved;\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onTogglePanel: function onTogglePanel() {\n      return dispatch('core/edit-post').toggleEditorPanelOpened(PANEL_NAME);\n    }\n  };\n})])(PostStatus));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/last-revision/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction LastRevision() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostLastRevisionCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    className: \"edit-post-last-revision__panel\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostLastRevision\"], null)));\n}\n\n/* harmony default export */ var last_revision = (LastRevision);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction TaxonomyPanel(_ref) {\n  var isEnabled = _ref.isEnabled,\n      taxonomy = _ref.taxonomy,\n      isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel,\n      children = _ref.children;\n\n  if (!isEnabled) {\n    return null;\n  }\n\n  var taxonomyMenuName = Object(external_this_lodash_[\"get\"])(taxonomy, ['labels', 'menu_name']);\n\n  if (!taxonomyMenuName) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: taxonomyMenuName,\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, children);\n}\n\n/* harmony default export */ var taxonomy_panel = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var slug = Object(external_this_lodash_[\"get\"])(ownProps.taxonomy, ['slug']);\n  var panelName = slug ? \"taxonomy-panel-\".concat(slug) : '';\n  return {\n    panelName: panelName,\n    isEnabled: slug ? select('core/edit-post').isEditorPanelEnabled(panelName) : false,\n    isOpened: slug ? select('core/edit-post').isEditorPanelOpened(panelName) : false\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  return {\n    onTogglePanel: function onTogglePanel() {\n      dispatch('core/edit-post').toggleEditorPanelOpened(ownProps.panelName);\n    }\n  };\n}))(TaxonomyPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-taxonomies/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PostTaxonomies() {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTaxonomiesCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTaxonomies\"], {\n    taxonomyWrapper: function taxonomyWrapper(content, taxonomy) {\n      return Object(external_this_wp_element_[\"createElement\"])(taxonomy_panel, {\n        taxonomy: taxonomy\n      }, content);\n    }\n  }));\n}\n\n/* harmony default export */ var post_taxonomies = (PostTaxonomies);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/featured-image/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar featured_image_PANEL_NAME = 'featured-image';\n\nfunction FeaturedImage(_ref) {\n  var isEnabled = _ref.isEnabled,\n      isOpened = _ref.isOpened,\n      postType = _ref.postType,\n      onTogglePanel = _ref.onTogglePanel;\n\n  if (!isEnabled) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostFeaturedImageCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_lodash_[\"get\"])(postType, ['labels', 'featured_image'], Object(external_this_wp_i18n_[\"__\"])('Featured image')),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostFeaturedImage\"], null)));\n}\n\nvar applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  var _select3 = select('core/edit-post'),\n      isEditorPanelEnabled = _select3.isEditorPanelEnabled,\n      isEditorPanelOpened = _select3.isEditorPanelOpened;\n\n  return {\n    postType: getPostType(getEditedPostAttribute('type')),\n    isEnabled: isEditorPanelEnabled(featured_image_PANEL_NAME),\n    isOpened: isEditorPanelOpened(featured_image_PANEL_NAME)\n  };\n});\nvar applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      toggleEditorPanelOpened = _dispatch.toggleEditorPanelOpened;\n\n  return {\n    onTogglePanel: Object(external_this_lodash_[\"partial\"])(toggleEditorPanelOpened, featured_image_PANEL_NAME)\n  };\n});\n/* harmony default export */ var featured_image = (Object(external_this_wp_compose_[\"compose\"])(applyWithSelect, applyWithDispatch)(FeaturedImage));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-excerpt/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar post_excerpt_PANEL_NAME = 'post-excerpt';\n\nfunction PostExcerpt(_ref) {\n  var isEnabled = _ref.isEnabled,\n      isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel;\n\n  if (!isEnabled) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostExcerptCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Excerpt'),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostExcerpt\"], null)));\n}\n\n/* harmony default export */ var post_excerpt = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isEnabled: select('core/edit-post').isEditorPanelEnabled(post_excerpt_PANEL_NAME),\n    isOpened: select('core/edit-post').isEditorPanelOpened(post_excerpt_PANEL_NAME)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onTogglePanel: function onTogglePanel() {\n      return dispatch('core/edit-post').toggleEditorPanelOpened(post_excerpt_PANEL_NAME);\n    }\n  };\n})])(PostExcerpt));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/post-link/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar post_link_PANEL_NAME = 'post-link';\n\nfunction PostLink(_ref) {\n  var isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel,\n      isEditable = _ref.isEditable,\n      postLink = _ref.postLink,\n      permalinkParts = _ref.permalinkParts,\n      editPermalink = _ref.editPermalink,\n      forceEmptyField = _ref.forceEmptyField,\n      setState = _ref.setState,\n      postSlug = _ref.postSlug,\n      postTypeLabel = _ref.postTypeLabel;\n  var prefix = permalinkParts.prefix,\n      suffix = permalinkParts.suffix;\n  var prefixElement, postNameElement, suffixElement;\n\n  if (isEditable) {\n    prefixElement = prefix && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"edit-post-post-link__link-prefix\"\n    }, prefix);\n    postNameElement = postSlug && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"edit-post-post-link__link-post-name\"\n    }, postSlug);\n    suffixElement = suffix && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"edit-post-post-link__link-suffix\"\n    }, suffix);\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Permalink'),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, isEditable && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-link\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('URL Slug'),\n    value: forceEmptyField ? '' : postSlug,\n    onChange: function onChange(newValue) {\n      editPermalink(newValue); // When we delete the field the permalink gets\n      // reverted to the original value.\n      // The forceEmptyField logic allows the user to have\n      // the field temporarily empty while typing.\n\n      if (!newValue) {\n        if (!forceEmptyField) {\n          setState({\n            forceEmptyField: true\n          });\n        }\n\n        return;\n      }\n\n      if (forceEmptyField) {\n        setState({\n          forceEmptyField: false\n        });\n      }\n    },\n    onBlur: function onBlur(event) {\n      editPermalink(Object(external_this_wp_editor_[\"cleanForSlug\"])(event.target.value));\n\n      if (forceEmptyField) {\n        setState({\n          forceEmptyField: false\n        });\n      }\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('The last part of the URL.'), ' ', Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    href: \"https://wordpress.org/support/article/writing-posts/#post-field-descriptions\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Read about permalinks')))), Object(external_this_wp_element_[\"createElement\"])(\"h3\", {\n    className: \"edit-post-post-link__preview-label\"\n  }, postTypeLabel || Object(external_this_wp_i18n_[\"__\"])('View post')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"edit-post-post-link__preview-link-container\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    className: \"edit-post-post-link__link\",\n    href: postLink,\n    target: \"_blank\"\n  }, isEditable ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, prefixElement, postNameElement, suffixElement) : postLink)));\n}\n\n/* harmony default export */ var post_link = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isPermalinkEditable = _select.isPermalinkEditable,\n      getCurrentPost = _select.getCurrentPost,\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      getPermalinkParts = _select.getPermalinkParts,\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getEditedPostSlug = _select.getEditedPostSlug;\n\n  var _select2 = select('core/edit-post'),\n      isEditorPanelEnabled = _select2.isEditorPanelEnabled,\n      isEditorPanelOpened = _select2.isEditorPanelOpened;\n\n  var _select3 = select('core'),\n      getPostType = _select3.getPostType;\n\n  var _getCurrentPost = getCurrentPost(),\n      link = _getCurrentPost.link;\n\n  var postTypeName = getEditedPostAttribute('type');\n  var postType = getPostType(postTypeName);\n  return {\n    postLink: link,\n    isEditable: isPermalinkEditable(),\n    isPublished: isCurrentPostPublished(),\n    isOpened: isEditorPanelOpened(post_link_PANEL_NAME),\n    permalinkParts: getPermalinkParts(),\n    isEnabled: isEditorPanelEnabled(post_link_PANEL_NAME),\n    isViewable: Object(external_this_lodash_[\"get\"])(postType, ['viewable'], false),\n    postSlug: Object(external_this_wp_url_[\"safeDecodeURIComponent\"])(getEditedPostSlug()),\n    postTypeLabel: Object(external_this_lodash_[\"get\"])(postType, ['labels', 'view_item'])\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref2) {\n  var isEnabled = _ref2.isEnabled,\n      postLink = _ref2.postLink,\n      isViewable = _ref2.isViewable,\n      permalinkParts = _ref2.permalinkParts;\n  return isEnabled && postLink && isViewable && permalinkParts;\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      toggleEditorPanelOpened = _dispatch.toggleEditorPanelOpened;\n\n  var _dispatch2 = dispatch('core/editor'),\n      editPost = _dispatch2.editPost;\n\n  return {\n    onTogglePanel: function onTogglePanel() {\n      return toggleEditorPanelOpened(post_link_PANEL_NAME);\n    },\n    editPermalink: function editPermalink(newSlug) {\n      editPost({\n        slug: newSlug\n      });\n    }\n  };\n}), Object(external_this_wp_compose_[\"withState\"])({\n  forceEmptyField: false\n})])(PostLink));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/discussion-panel/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar discussion_panel_PANEL_NAME = 'discussion-panel';\n\nfunction DiscussionPanel(_ref) {\n  var isEnabled = _ref.isEnabled,\n      isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel;\n\n  if (!isEnabled) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTypeSupportCheck\"], {\n    supportKeys: ['comments', 'trackbacks']\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_wp_i18n_[\"__\"])('Discussion'),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTypeSupportCheck\"], {\n    supportKeys: \"comments\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostComments\"], null))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostTypeSupportCheck\"], {\n    supportKeys: \"trackbacks\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPingbacks\"], null)))));\n}\n\n/* harmony default export */ var discussion_panel = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isEnabled: select('core/edit-post').isEditorPanelEnabled(discussion_panel_PANEL_NAME),\n    isOpened: select('core/edit-post').isEditorPanelOpened(discussion_panel_PANEL_NAME)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onTogglePanel: function onTogglePanel() {\n      return dispatch('core/edit-post').toggleEditorPanelOpened(discussion_panel_PANEL_NAME);\n    }\n  };\n})])(DiscussionPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/page-attributes/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Module Constants\n */\n\nvar page_attributes_PANEL_NAME = 'page-attributes';\nfunction PageAttributes(_ref) {\n  var isEnabled = _ref.isEnabled,\n      isOpened = _ref.isOpened,\n      onTogglePanel = _ref.onTogglePanel,\n      postType = _ref.postType;\n\n  if (!isEnabled || !postType) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PageAttributesCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: Object(external_this_lodash_[\"get\"])(postType, ['labels', 'attributes'], Object(external_this_wp_i18n_[\"__\"])('Page attributes')),\n    opened: isOpened,\n    onToggle: onTogglePanel\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PageTemplate\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PageAttributesParent\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PageAttributesOrder\"], null))));\n}\nvar page_attributes_applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  var _select2 = select('core/edit-post'),\n      isEditorPanelEnabled = _select2.isEditorPanelEnabled,\n      isEditorPanelOpened = _select2.isEditorPanelOpened;\n\n  var _select3 = select('core'),\n      getPostType = _select3.getPostType;\n\n  return {\n    isEnabled: isEditorPanelEnabled(page_attributes_PANEL_NAME),\n    isOpened: isEditorPanelOpened(page_attributes_PANEL_NAME),\n    postType: getPostType(getEditedPostAttribute('type'))\n  };\n});\nvar page_attributes_applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      toggleEditorPanelOpened = _dispatch.toggleEditorPanelOpened;\n\n  return {\n    onTogglePanel: Object(external_this_lodash_[\"partial\"])(toggleEditorPanelOpened, page_attributes_PANEL_NAME)\n  };\n});\n/* harmony default export */ var page_attributes = (Object(external_this_wp_compose_[\"compose\"])(page_attributes_applyWithSelect, page_attributes_applyWithDispatch)(PageAttributes));\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/meta-boxes/meta-boxes-area/index.js\n\n\n\n\n\n\n\n\nfunction meta_boxes_area_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (meta_boxes_area_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction meta_boxes_area_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nvar meta_boxes_area_MetaBoxesArea = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MetaBoxesArea, _Component);\n\n  var _super = meta_boxes_area_createSuper(MetaBoxesArea);\n\n  /**\n   * @inheritdoc\n   */\n  function MetaBoxesArea() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, MetaBoxesArea);\n\n    _this = _super.apply(this, arguments);\n    _this.bindContainerNode = _this.bindContainerNode.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n  /**\n   * @inheritdoc\n   */\n\n\n  Object(createClass[\"a\" /* default */])(MetaBoxesArea, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.form = document.querySelector('.metabox-location-' + this.props.location);\n\n      if (this.form) {\n        this.container.appendChild(this.form);\n      }\n    }\n    /**\n     * Get the meta box location form from the original location.\n     */\n\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.form) {\n        document.querySelector('#metaboxes').appendChild(this.form);\n      }\n    }\n    /**\n     * Binds the metabox area container node.\n     *\n     * @param {Element} node DOM Node.\n     */\n\n  }, {\n    key: \"bindContainerNode\",\n    value: function bindContainerNode(node) {\n      this.container = node;\n    }\n    /**\n     * @inheritdoc\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          location = _this$props.location,\n          isSaving = _this$props.isSaving;\n      var classes = classnames_default()('edit-post-meta-boxes-area', \"is-\".concat(location), {\n        'is-loading': isSaving\n      });\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: classes\n      }, isSaving && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"edit-post-meta-boxes-area__container\",\n        ref: this.bindContainerNode\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"edit-post-meta-boxes-area__clear\"\n      }));\n    }\n  }]);\n\n  return MetaBoxesArea;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var meta_boxes_area = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isSaving: select('core/edit-post').isSavingMetaBoxes()\n  };\n})(meta_boxes_area_MetaBoxesArea));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/meta-boxes/meta-box-visibility.js\n\n\n\n\n\n\nfunction meta_box_visibility_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (meta_box_visibility_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction meta_box_visibility_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar meta_box_visibility_MetaBoxVisibility = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MetaBoxVisibility, _Component);\n\n  var _super = meta_box_visibility_createSuper(MetaBoxVisibility);\n\n  function MetaBoxVisibility() {\n    Object(classCallCheck[\"a\" /* default */])(this, MetaBoxVisibility);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(createClass[\"a\" /* default */])(MetaBoxVisibility, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.updateDOM();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.isVisible !== prevProps.isVisible) {\n        this.updateDOM();\n      }\n    }\n  }, {\n    key: \"updateDOM\",\n    value: function updateDOM() {\n      var _this$props = this.props,\n          id = _this$props.id,\n          isVisible = _this$props.isVisible;\n      var element = document.getElementById(id);\n\n      if (!element) {\n        return;\n      }\n\n      if (isVisible) {\n        element.classList.remove('is-hidden');\n      } else {\n        element.classList.add('is-hidden');\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return MetaBoxVisibility;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var meta_box_visibility = (Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var id = _ref.id;\n  return {\n    isVisible: select('core/edit-post').isEditorPanelEnabled(\"meta-box-\".concat(id))\n  };\n})(meta_box_visibility_MetaBoxVisibility));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/meta-boxes/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction MetaBoxes(_ref) {\n  var location = _ref.location,\n      isVisible = _ref.isVisible,\n      metaBoxes = _ref.metaBoxes;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_lodash_[\"map\"])(metaBoxes, function (_ref2) {\n    var id = _ref2.id;\n    return Object(external_this_wp_element_[\"createElement\"])(meta_box_visibility, {\n      key: id,\n      id: id\n    });\n  }), isVisible && Object(external_this_wp_element_[\"createElement\"])(meta_boxes_area, {\n    location: location\n  }));\n}\n\n/* harmony default export */ var meta_boxes = (Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref3) {\n  var location = _ref3.location;\n\n  var _select = select('core/edit-post'),\n      isMetaBoxLocationVisible = _select.isMetaBoxLocationVisible,\n      getMetaBoxesPerLocation = _select.getMetaBoxesPerLocation;\n\n  return {\n    metaBoxes: getMetaBoxesPerLocation(location),\n    isVisible: isMetaBoxLocationVisible(location)\n  };\n})(MetaBoxes));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/plugin-document-setting-panel/index.js\nvar plugin_document_setting_panel = __webpack_require__(158);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/plugin-sidebar/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.\n * If you wish to display the sidebar, you can with use the `PluginSidebarMoreMenuItem` component or the `wp.data.dispatch` API:\n *\n * ```js\n * wp.data.dispatch( 'core/edit-post' ).openGeneralSidebar( 'plugin-name/sidebar-name' );\n * ```\n *\n * @see PluginSidebarMoreMenuItem\n *\n * @param {Object} props Element props.\n * @param {string} props.name A string identifying the sidebar. Must be unique for every sidebar registered within the scope of your plugin.\n * @param {string} [props.className] An optional class name added to the sidebar body.\n * @param {string} props.title Title displayed at the top of the sidebar.\n * @param {boolean} [props.isPinnable=true] Whether to allow to pin sidebar to toolbar.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var el = wp.element.createElement;\n * var PanelBody = wp.components.PanelBody;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function MyPluginSidebar() {\n * \treturn el(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'my-sidebar',\n * \t\t\t\ttitle: 'My sidebar title',\n * \t\t\t\ticon: moreIcon,\n * \t\t\t},\n * \t\t\tel(\n * \t\t\t\tPanelBody,\n * \t\t\t\t{},\n * \t\t\t\t__( 'My sidebar content' )\n * \t\t\t)\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PanelBody } from '@wordpress/components';\n * import { PluginSidebar } from '@wordpress/edit-post';\n * import { more } from '@wordpress/icons';\n *\n * const MyPluginSidebar = () => (\n * \t<PluginSidebar\n * \t\tname=\"my-sidebar\"\n * \t\ttitle=\"My sidebar title\"\n * \t\ticon={ more }\n * \t>\n * \t\t<PanelBody>\n * \t\t\t{ __( 'My sidebar content' ) }\n * \t\t</PanelBody>\n * \t</PluginSidebar>\n * );\n * ```\n */\n\nfunction PluginSidebarEditPost(_ref) {\n  var className = _ref.className,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\"]);\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      postTitle: select('core/editor').getEditedPostAttribute('title'),\n      shortcut: select('core/keyboard-shortcuts').getShortcutRepresentation('core/edit-post/toggle-sidebar')\n    };\n  }),\n      postTitle = _useSelect.postTitle,\n      shortcut = _useSelect.shortcut;\n\n  return Object(external_this_wp_element_[\"createElement\"])(complementary_area, Object(esm_extends[\"a\" /* default */])({\n    panelClassName: className,\n    className: \"edit-post-sidebar\",\n    smallScreenTitle: postTitle || Object(external_this_wp_i18n_[\"__\"])('(no title)'),\n    scope: \"core/edit-post\",\n    toggleShortcut: shortcut\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/settings-sidebar/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar SIDEBAR_ACTIVE_BY_DEFAULT = external_this_wp_element_[\"Platform\"].select({\n  web: true,\n  native: false\n});\n\nvar settings_sidebar_SettingsSidebar = function SettingsSidebar() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    // The settings sidebar is used by the edit-post/document and edit-post/block sidebars.\n    // sidebarName represents the sidebar that is active or that should be active when the SettingsSidebar toggle button is pressed.\n    // If one of the two sidebars is active the component will contain the content of that sidebar.\n    // When neither of the the two sidebars is active we can not simply return null, because the PluginSidebarEditPost\n    // component, besides being used to render the sidebar, also renders the toggle button. In that case sidebarName\n    // should contain the sidebar that will be active when the toggle button is pressed. If a block\n    // is selected, that should be edit-post/block otherwise it's edit-post/document.\n    var sidebar = select('core/interface').getActiveComplementaryArea('core/edit-post');\n\n    if (!['edit-post/document', 'edit-post/block'].includes(sidebar)) {\n      if (select('core/block-editor').getBlockSelectionStart()) {\n        sidebar = 'edit-post/block';\n      }\n\n      sidebar = 'edit-post/document';\n    }\n\n    var shortcut = select('core/keyboard-shortcuts').getShortcutRepresentation('core/edit-post/toggle-sidebar');\n    return {\n      sidebarName: sidebar,\n      keyboardShortcut: shortcut\n    };\n  }, []),\n      sidebarName = _useSelect.sidebarName,\n      keyboardShortcut = _useSelect.keyboardShortcut;\n\n  return Object(external_this_wp_element_[\"createElement\"])(PluginSidebarEditPost, {\n    identifier: sidebarName,\n    header: Object(external_this_wp_element_[\"createElement\"])(settings_header, {\n      sidebarName: sidebarName\n    }),\n    closeLabel: Object(external_this_wp_i18n_[\"__\"])('Close settings'),\n    headerClassName: \"edit-post-sidebar__panel-tabs\",\n    title: Object(external_this_wp_i18n_[\"__\"])('Settings'),\n    toggleShortcut: keyboardShortcut,\n    icon: library_cog,\n    isActiveByDefault: SIDEBAR_ACTIVE_BY_DEFAULT\n  }, sidebarName === 'edit-post/document' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(post_status, null), Object(external_this_wp_element_[\"createElement\"])(plugin_document_setting_panel[\"a\" /* default */].Slot, null), Object(external_this_wp_element_[\"createElement\"])(last_revision, null), Object(external_this_wp_element_[\"createElement\"])(post_link, null), Object(external_this_wp_element_[\"createElement\"])(post_taxonomies, null), Object(external_this_wp_element_[\"createElement\"])(featured_image, null), Object(external_this_wp_element_[\"createElement\"])(post_excerpt, null), Object(external_this_wp_element_[\"createElement\"])(discussion_panel, null), Object(external_this_wp_element_[\"createElement\"])(page_attributes, null), Object(external_this_wp_element_[\"createElement\"])(meta_boxes, {\n    location: \"side\"\n  })), sidebarName === 'edit-post/block' && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockInspector\"], null));\n};\n\n/* harmony default export */ var settings_sidebar = (settings_sidebar_SettingsSidebar);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/welcome-guide/images.js\n\n\n\n/**\n * WordPress dependencies\n */\n\nvar images_CanvasImage = function CanvasImage(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-np\",\n    alt: \"\",\n    src: \"data:image/gif;base64,R0lGODlhcALgAfYAAOfn58PDw//+/9zc3ODg4IqKiujo6N3d3erq6uTk5N7e3jExMURERGFhYdnZ2dXV1dDQ0M/Pz/f39wAAAOzs7FNTU25ubrS0tOLi4uPj4wwMDPn5+fz8/P///xsbG319fe7u7qioqJiYmP39/fHx8fX19ePh4OXj4ReXwRmWwACg0A+ax/T//+7//wCh1gCg0tze3f/+/Mrt+P/9++nh3wCg1K3q/kOpyuX//wOf0P3//xmXvrnq+fn//xOZwyOexiajyb7s/AubyVeow9f7/2a2z5DW7uH//5ro/kW12gaezf/9/f///c34/wCi1iSSuGrM663j93rM6LH4/+r//xGcyKHb7p/c7v/+/e/t7Pjv7e7l5JXe9lK93Taqz2DE5N3d36j0//T2+N3e2/P192u/2+Dc3BebxY3O4xmfytfv+eDr7uDq8NTh5cHo87/o9cvj7GrS9XfT8IHa98Pn89Lf5JbK3Eihvvr3+Nze39ne4HnV8f38///7+//7/gAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0MzUyLCAyMDIwLzAxLzMwLTE1OjUwOjM4ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMSAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUNDQ0Q2Rjg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUNDQ0Q3MDg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1Q0NDRDZEODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1Q0NDRDZFODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQQAAAAsAAAAAHAC4AEAB/+AL4KDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8Y3FGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBceXyAAIfkEBQQAAAAs7QBXAZYAiQAAB/+AAII1hIWGh4iJiouMjY6PkJGSioKDNS6YmZqbnJ2en6ChoqOkpaaeNZU1OSs+KK+wsbKztLW2t7i5uru8vbE+KzmqKzc2PMfIycrLzM3Oz9DR0tPU1ck2NyupADU+NjgsPeLj5OXm5+jp6uvs7e7v8OIsODYoqZcoPOE6/P3+/wADChxIsKDBgwgTKuTXgwUPe9xc5Ouho4PFixgzatzIsaPHjyBDihxJ0qKOHjx23JPIg2LJlzBjypwp8+RDF4RYuqTJs6fPnyBtosCJr2VFoEiTKoUplKjOo0ujSp1qEuXQnBOhUt3KlWdTrEa7ih378mvRnWTTqt1o9unat3D/22aFSzet3LB183K9i1av36V8tf4d/DMw4cOFrTqdi7jxTMOOI5dVDLav5MsfIWPe3FEz588YPYMGLXo059KmMaNOLXk1a8euXyOOLZsw7dp/b+PWq3t33d6+41I+Kzi47eFujTcGrtwucsbNj9+sXDx6XubWu2LPvnU796nev0cNL14p+fJIz6NPPJ34errq33t9jle+2vj2a9K3nF/7/ur9UYVfgCUNSOBIBh4YUoIKZvZfg3s9CKGAEk4oFYMWaoRhhqFVyGFSG37YQYgfksihiRmiaKGKE7IIoYsNwqigjAfSSKCNAeLYn4758Wifj/IB+Z6Q6xGJnpHlISmeppLfMcmdk9lBaZ2U0VHZnJXKYWmclsFx6ZuXu4GJm5i1kSmbma+hyZqaqbFpmpujwUmahyKyd5V7daZHZ57ztZccnz7J+Zmgp+0JqH5+QncoTYRu1qhqhi46WaL1SYronX9aGtOjl3HaWqSaiuRpZKPCBmqoQZ2KqkelLqfqqhy1OtursGpIa60dUsofrqzeyuuIvvIq62HDSoepor/2qiuAyWb0VSAAIfkEBQQAAAAs1QA0AcYArAAAB/+AAIKDhIWGh4iJiouMjY6PkIc1NZGVlpeYmZqbnJKUnaChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/uzlVQMTFxsfIycrLzM3Oz9DR0tPU1VU5hCs3U0c43t/g4eLj5OXm5+jp6uvs7e7rR1M3K4M1PkZUPUv7MTEz/wADChxIsKDBgwgTKlzIsKHDhwSxYFnSA4cRH5RquEBxpUUPASCZiBxJsqTJkyhTqlzJsqXLlzBjykwJUkCPFldQuJi00QqLHh2CCh1KtKjRo0iTKl3KtKnTp1CjOu3BwopOnih8ApXKtavXr2DDiiVK1epOjVl/jl3Ltq3bt0j/y15FqxWu3bt48yqVe7anWr2AAwseyxdr3cGIEyveW3Wu362LI0tGXJju38mYM9ut/Fiz58+EG/dNCxm06dNTRRu+jLq166KcSb+eTTv2Ydq4T9tmnbt35t2lfQuPDHy4ceKqLQc/zlxv8ebQnSfvHL365umyrWtv+3y797Ddv4vnGn68+dRmVy8/zz4u9tvt4x8tL79+UPr25ePP334///P+/TdegAJ+R2CB2x2IoHUKLhhdgw42B2GEx01I4XAWXuhbhhrmxmGHtb3HG4jVfUiiayaeiFqKKprGYoufvQijZjLOiFmNNkqGY46L7chjYj7+OFiQQgZGZJHSpacc/5LCHcnkXU4+CVeUUrpFZZVsXYllaEpStyWKIq73ZYxhjglml9mZqVuZaq6JJnxteqZlnFLNSSdUdt6JnmNp6nkjm37++eaIgSqWZ6FJHYrofIAuamijjlIGaaSCKUqpUJZe2kGml3JKqaeRguqoqIuSiqiphaIaqKp+sqqnq3fCSqescdLapq1q4mqmrmPy+qWvWwKLpbBVEiulsU8iy6SySDJbpLNCQvujtDxSm6O1NmI7o7YwctuityqCe6K4JJILorkdoquhuheyS6G7EcLroLwL0ougvQXiK6C+//HLn7/5AWyfwPURrN+kmuZlcHwL94dwwlA+DPGUEk9sZUXFFmeJccZc8gknx281zJ7IAG4MMlgkm5fygCaf7NXK4sFsYMsuk0dzzVHJ7J3OCd6M81M8axc0gz7/3NTQJRZt9FKFBQIAIfkEBQQAAAAspADzACUB7QAAB/+AAIKDACo5SoiJiouMjY6PkJGSk5SVlpeYmZqbnJ2IOYShgipKQkIrqKmqq6ytrq+wsbKztLW2t7i5uru8vStCSqCiADkrXl1fycrLzM3Oz9DR0tPU1dbX2Nna29zd3sldXitKojVCN1xNROvs7e7v8PHy8/T19vf4+fr7/P3+/wDXNeFyY0WNUDV8SDnCQofDhxAjSpxIsaLFixgzatzIsaPHjyBDihzpkMURKT4ODqrhAoUNFj06yJxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRozJ7sLCBwoVKACxR8OihA6nVq1izat3KtetVHT14NH0adWpVr2jTql3Ltq1VsGL/na5sadat3bt48+o9CnfsXKlU9woeTLgw275yBZUNbLix48eQeSImS5dx5MuYM++d/Leu5s+gQ3PlrLjyWdGoU6v2SRqq6dWwY8tuvfi07Nu4M9N+nbu378a7Adv+Tby42+CejStf7hW5ZebQo/MN67e0cOnYswd1Ply79+8zuYMfP148+fPZzaNfz1w9+/fE3cOfj1s+/fur7ePfH1o///+Y+QfggI4JSOCBgxmI4IJ4Kcjgg4dRl5hr10FoYV4OXqihVhlu6CFSHX4o4lAhjmgiaxJSVuGJLE4Xl4rJtSijUCXOaGMHNd4oY446sshjjyb+CKSIQg7pYZFGaohk/5IWLsnkg04+uWCUUh5IZZUDXonlf1puuV+XXt4HZpjzjUnme2aeuV6aap7HZpvlpdjZc3ASKad1Mdb54Zt6asdnn9j9CWh0gg7a3p0U5mkohIUualyjjsaHaG2RXghppb1diml9k/K26ZSdrviplaEqOiqXpdJ5Kqovztndql+m+iqsYspKa5a23spqdYmqqmuZuf6Kn6bCfkZssboFiyx8xy4bWbPOPgZttMApS62b1l4bZ6t4+qqtd9N+K1i44upFbrkNZotuoOquS2i77h7Kba+zxrvcufauhW++ae3Lb3Pw/vubvwJvRXDBWR2M8FcBL3ybwg67yCulERcHcf/FRF2MMY0Nb5yaxh7/BHLIPY1M8k4mn5xTyirfxHLLNb0Mc3gdz3yZzDbjPLPOMPPcss8qA32y0CQTHbLRHiO9sdIYM12x0xFD7bDUC1ONsNUFYy2w1v9yza/X+YJtr9jxku2u2euija7a5bItrtvfwq2t3NfSTa3d0eLtrN7L8o2s38UCLqzgvxKuq+G3Ik6r4rAyvqrjp0I+quSfUr6p5ZhiXqnmkXLuqOeLgm6o6IOSDqjpfaKup+p1sg6n623CrqbsZ9JOpu1h4u6l7lvyjqXvVQIvpfBPEs+k8Ukib6TyQzIPpPM9Qq+j9DdSb6P1M2K/Y802Q6Z9i9/7yH2F9wWOT75h4Z+YfpDmn0/Y+iPCb+e8FLsP2mQqqECv/f2lmP/+/DNW+wKIoQES8C7y25MBD3icBTIwQvTz1AOl5cAJ9quCFgRYBEWVwcIk8EgY7KDBQijChJGwhAzboKlQmC4VeouFdvnghmSopBPC0Cg0tJQNb5ixHfKQYy6s1w/VMplAAAAh+QQFBAAAACyAAKYAagE6AQAH/4AAgoOEhYaHiImKi4yNjo+QkZEqlCqSl5iZmpucnZ6foKGio4+VlqSoqaqrozU1hpSssrO0tZ2xtrm6rrCnur/Awau4wsXGx8jJysvMnTnP0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebWvpmvOUrt7u/w8fLz9PX29/j3QkL5/f7/AAMKHEiwoMF++94BeDWIWKMcQoAkmUixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOq1AhESA5fDhflWJHECI8gOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnPXkYSbJCCSYhP5Dg6MG1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp07FgeSH0Iu1VgxhAgLHYADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly4dZEBmygiGkGj6KHGHRobTp06hTq17NurXr17Bjy55Nu7bt27hz697NmzWLI0V8eH4EWjTp3siTK1/OvLnz59CTs8ARfLij4qOja9/Ovbv37+BrT68uCfvx8OjTq1/Pvr3p3+QjmXdPv779+/hhwxdePnT2/AAGKOCA243Hn3z+nUfgggw26KBrBlrXSHE4KPjghRhmiF+E/RVRoYYghihieBwiaNyIKKaoonTAHfhZgivGKOOMr+0nISPz0ajjjjKW+OKJPAYpJIg+EgfjkEgmuaD/jR3+p+STUNbHpIlORmnlleBN+WOVWHbppXNaGgnkl2SW2VuR1x1p5pps0obmhGq2KeecqoWZ5ph05kmnnXDiqeefa76JY5yAFvqloIvkaOiiXSKqiKKMRgqlo4lAKumlQ/I5qJ+YdqqjpokS6umoMYL6qKikpjqiqZWiquqrGVKKiKWw1nqhrIfQauuuS7Z4Y6ic8ipsgKzO6uqwyErpa5MWJussfcXmeuyz1JK4LJXNVqttltdume224BbYrZhchmtudNEaouu57C6XbiHrtisvb+8SEu+8+N5W7yD35uuvbPsK0u+/BLcW8ELTFqxwnePeWe7CEDMcn7cRV+xb/8N9PmxxxQcPvDHBHSf8McjUuUjutyMrjKu6Iqec78rwtuzyvDDbK/PM7dbM7804n6uzwDz3HG7IwQr9Msabfmi0ykgDq/TSIDd9qocoQ80u0U9bffTEJ2v9L9Eae20u2FWLvS3ZZuOLdtryrs321VK3WvTb1bpN99BxGzv33c7azbe2fv9NbeCC9523tHsXzivhig+LddmN1/p45IMfznLilL/KeOaSWx4z1Zwn+zPCoIfueMm/Th226amO7jHrmLoeNOyLyo457ZfanjXuquoOOe+R2r468JIK/zvxhhqPfO+oM7t8681j+zypyk/vafXWxx49xdlrz/Wdu3df+//2YoYvfqG+n188+eAfr36g7Pdp/vt5pk9/8vEn7f79h+bv9P78a5T/pja/ALJpcgbU0+YSWKYFMvBQnrPZ7R54JQdSEEsIvOABI7iz0mkwUBwE2gQ/qCQLkvBJGTwhBL8nPwCqkEcmfGGmQki64ckQSSm8oZVyqMNJ0ZBCLuxhqX4YmgIKUUg8PCIOiehBJZaQiUZ04qegGEQpiiiJVtwRFrNIoxhyEUVh4gWwbPjFFIUxdR0kYxlXxUQ1rjFEW3yjGakoRy3SsY5dvCMee9TGKu6RQF78o4MCKUgGYa+QYByg3NyIyF6xcFOMbOSACClJYilSb5GsJIAOqclY9bH/k3D8JCg1RMlRKuuRY/SjKdlTylW2p5WuXA8sY5meWdLSWqhUnSpvya1cyi2KvDylydoXTEcOM2O7LCZ3OKnMDV0SccBspiyfebloSrOW1PxcJq/ZHVty8zne/GZzwilOd4mynNA6Jzpfqc51yrKd7qwlPOOJy2NCMpn0pNc88+kdcvITN/78p20CKlA37bOg6DooQsGp0IWOs6EONacv9WbNiJ5JjxZN6EQRt82MDhSiHtXnRquJz5BCCKMmZQ5BU4oaZrIUOS59qUjtmUqZqhSkNnVTNiXY0Zz6ZqdpLKlPS7NSmxZVpjEd6kCBKsKKKvWkI/2cU596sajyVKhD/00qVQHGVNJNdaupiSNYa4TTsUqMpro0q75QqtbYiLWtZ0UjJrHq06O+9K1wbSlb82qwsvLVriwFbEq1yteWdvV1hRWsSRUbUsIW9j2HnV1bGetRymbUshbFbEQ161DOLtSzCAVtQR372A6Q9rGnTWxkR/jX1fZ0rKltrVWDWtoauZauOY1tXnULV95OdrVf/e1sm4pbowK3uEg9bm0hpNzlVhWtv0TuXffqXKJSt7p4Re11nZvdxG53ud3963drG97dNre6YT0vek9jv/WyV73uNe14Sytagdb3n/flZ37zuV969jee/3VngNc5YHQWuJwHFmeCv7lgbjb4mg+WZnmEmzlhZVa4mBcOZoZ5ueFbdpiWH45liF35LlwgVrxRNbFk1TriVfqWxbeN73uHW0PpBjbGMrYujU+8W7+ad8crNuubxDjXHOv4mETmqI0H6+Pe4jjHLxZykyc7ZRZXWcpAZm2Ps/xasJbXyVkOLozDvOTFzle7LAwEACH5BAUEAAAALHAAYACQAYABAAf/gACCg4SFhoeIiYqLjI2Oj5CRhTU1kpaXmIYqKpmdnp+goaKjpKWmj5SnqpGbq66vsLGys7S1tre4ubq7vL2+v8DBwsPAlMbHyMnKy8zNzs/IxNLT1NWSSkIrPtvc3d7f4OHi4+TlK0I51urr7MNKK143Q/P09fb3+Pn6+/z9N0Do2gkcSFCWkhRzbLh5w7Chw4cQI0qcSLEiRTc24vhQUqmgx48gMwl5woVOm5MoU6pcyZJlnZUvW8qcyZKOlBRCQurcyRPRSC5wzBwYSrSo0aNIkypdylSpGTNwpOzI2bOq1Y8/gzbdyrWrV6NPo069SrbsuqxCv3odYMGDWw8W/wao7RpWKlWzePMCQzvXa4UJgCdU6Mu17li9iBPj4ku46YC/gQc3Zmr4ruLLmFcxnrz0rwYNgjkvrZy5tOlRm0UjraBBhAgNklUfJX26tm1LWWUrLXBh6IUCumdDvalkUKvbyJMXyh28ude6KYoLOq68+m3mzrNTHr5DuvXvyH+apEm+fJ2Y5dPPpCMHhXfw8BWnEnQwocX7+PPrj4hRI8f4ACI2HwDvxNPPgQgmqGA+/wQU4IOJqZBDNuVUaOGFGIazghLpQOihXtCEKOKIJDLz4Ykopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkKTkoYeSRSCap5P+STDbp5JNQRinllFRWaeWVWGap5ZZcdunllB2KUoMK2GiT4Zlopqnmmmy26eabcMYp55x0+nCOEip09EmRPnjxBRSABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYLvqFFxuFmUkNQuwgRxNHlGrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689iprE3JMpScmNayQRBMsMNHBsh3ooAOz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa661TLDQRBIrDGtJDS74YAQOPZxr77345qvvvvz26++/2vaAgxE+uOBuJPD6cAUL9QLs8MMQRyzxxBTvqwP/C1cUfDAk8KJgBcMVhyzyyCSXbPK4PbBgBQoGf+qCxyCfLPPMNNdss74pr9wysS9/3PDNQAct9NA358zyxqj0HDPRTDft9NP8Gr3zJR37DPXVWGet9bVSI+1I1UtvLfbYZAfdtcsw/1z22my3TfHZPKft9tx0142zykejbbXdfPft97ZwU6202n8Xbrjfgb87+OGMN053yhlPrbjcjldu+daQa6x32Jd37rnQiUsCNuGfl266yaEjvPjprLcecuocr+767LT/C3vSlNeu++723v617LwHL7y3vjcy+vDIJ49t8Ywcr/zz0C/L/CLOR2/98NMrUv313OuefSLbdy9+/+uZSy468OOnX3r5XhuPvvrwW/49IuHHbz/j8x9S//38I46x5nHbW/8G6L/Ita957yOgAtuWP0Psb4EQHFsDJ5HACFowaxMkxAMvyEGnZXAQG+ygCEGHN/OpLncjTCHRPiiIEKrwhSdjIQBcCMMaikyGNLShDiWGwwru8Ic8LOEBqedDIBoRYD1E4RGX6LAkCpCJUPSXEzkXxSria4qks6IWy4XFLXrxXF38ohjFFcYxmrFbZTyjGpcnxM1lcY1whFYa40hHZs2xjnS8Ix7hqMc9qrGPfjQjIAMpxkES0ouGPKQWE6nIKrLPjY1c4yMDSMVIIrKNlHyjJa3IyE0esf+TngQiKEO5w1GS0oamPCUMU6lKFbKylSN8JSw7KMtZXrCWtowgLnO5wF3ykoC+/GX/ginM+xGzmPE7JjLVp8xljq+ZzuweNKN5vWlSM3rWvObzsqnN5HGzm9jDpOCUCE4OfrOcvDsnOr0nzsk9cZ0WVCc8ZyfPeZKvnecjpz2Bic8TvnOf/NTZELVXRIAms5+xU1glDWpMhCZNoZpkKPzqKdHOUbSi8nPo7/SJUWZq1H0c7egzP4rAkIpUmiQloklPWs2UEnSlLMWmS8FX0JhCr4cQtelEZ0q/eC0sojrdJk/1V9OgIu+iRuUbTn+aVPEtdaFN9eZQHVjUqO4OqVb/dRtWs8q2SY7zn1wNpwEhGVahCpSsZZXqWTOZVuVtta2YmyoFYQpX1r21rli7K16hpte9elCuGqyqXy0KWBAKdrAZXetXoYrY9RW2hYdtbOOeClTJXo6ylqXnY2cY2cwWrq+etRloQ0uz0ZJWZqY9Leo2m0PV/i21rh0ZbGP7Otb6lLG0fa1tc5rbxOaNrb2t3GyDG7HhEvdhxj0uEm1LV+UyUKPU6Wlznbs230WXqNOlLtmSq919cbe7+fKqO3EL3rKJN59gLe9zFTveyqpXbN99r7niK19y0be+ZGRuevELX/2Sl79Xuy+Aibdbpg64ugX+74GbJuAFB8y/7nXw/wohLGEJUrjCcWUvehWMYaA1uMPU+jCIpSXiEcvxwiZ+WolT3IEVp/i8/uQwi2P4PxPGLrszLpmLTbzjEfcYxD/ucJAxPOQKF1nCR3Zwkhe85AM3ecBTfFaOmRblKVMZxVY2G5azXLQtc7lmTwYwZr/s4QRHmMwVCzN/1YxfNtfXzfKF83vlrF46l9fO4MVzd/WsXT5TF8Y33i+aSQZo3Al60Df0MqJ1rOhFy7bRjq6thmN85kg3EdKWnliVM83osVJSypx+tKcXW+lQRw3Tpr70pAPNAlCn+m3+dfWrg7hqQ8t41ldENa5PXeuNHnrX3tU1sMMr7GHfq9C+vrWx7f9b44HSFMfLRlmxo83FaVNb2r0G6a+vXe1sl/RjsuY2sb2tUnCLu19jPvfdyE1Q3qp73L8l9bvXHe/2zhveNrZ1qe+dLT8719/KBfhxBU5cggfX4L1FeG4VTluGx9bhroW4aiV+WoqT1uKhxbhnNZ5ZjlvW45JFtraVzW+uNRutJe92vTe875RXC+SNhTliZT5YmvvV5nvFOV51Xleew9XnbQV6WoVeVqKH1ehcRXpW0+1ybK9cde5uen7Z/extS93kVJeu1a/+cmtzncRe//qJs47drYs9Wkq3atqjuvamtj2pbzdq3IM6d53W3aZ3j2neWbr3k/ZdpH/vaOAxOvjTihZeoodnaOINuniANn6fj7dn5Ocp8m+T/OyVL/flxT55eHZ+nZ9HZ+jLOXpwlr6bp9dm6q+Z+Zea/ex2PDlwYc+t1VPT9tHEvTN1v0zeI9P3xQS+MIX/S+Lz0vi5RL4tlT9L5sOSeQOiKrRhD32vtZb2sfd29Of6etpXv+qb/7rzWzl+VZb/lOcnZfpDuX5PMh37bCQ7VaMOf6w/PaEGrn/87//Q/OvfWu/3f9MSgAKIdmFHfQeIeQnIeQsofg3Ide23SRFoSRMYSRXYSBeoSMwTCAAh+QQFBAABACxwAFwAkAGEAQAH/4AvgoOEhYaHiImKi4yNjok1kZKTlJWWl5iZmpucnZ6foKE1j6SlpqeoqaqrrK2HSis+srO0tba3uLm6u7y9vr/AwcArQjmux8jJysvMqjlpQ9HS09TV1tfY2drb3N3e3+DhN0Kjzebn6OnqijleNnR0bvLzbvDw8vbx9Pv8/fv39fIJHAjQn8GDCBMqXMgQX7w3PPZUKbeuosWLGEu1e6OnjcePIEOKHEmypMmTKFOqXMmy5Uo4aHy4oJixps2b6trRMWPmgM+fQIMKHUq0qNGjSJMqXcq0adKOdlDMxEm1qtVWOnk63cq169IBXsOK/QlVKs2raNOqLZS159i3cP+Tgo1Ld2nZqWvz6rXatq7ft2DBgPlL2Ojds3sTK87pZafbwpCdCo5M2efhxZgzm+tbufNQGDAme458WXPVHEpSq17NurXr17Bjy55Nu7YQITfgaB3ddO5cpA4gRBhOfDiE37z/Qt2Burbz59CjS29tDBFqHyiya9/Ovbv37+DDix9PnvyOHXd0P05OV8GBCxPiy59/gT3hPHrsPMFevr///wAGyJ0PSlRXiBI+JCHHHAw26OCDEEYo4YQUVmjhhRjOYUUbu9lXF3zzhVifh3XhB4cRGaao4oostjiHHEkQWEgNK5QRBBE45KjjETr22COPPgaZ4xE8ArljkUImiYP/kT4yuSSRTv4YpZJ6rEciXCCGKN+IV74FWh5sUKHkkmT+OOaQZE4pJJFnjqlmm2YGSUQQZaxgyA9NsNBDB3z26eefgAYq6KCEFmrooYgKgEeXfmWp5QRcMhoWaAcAgOilmGaq6aaC9sDCFECoMAhqSeCgA6eopqoqqhtISpejWkbqalgGrGrrrbgCqgMOSRQoSA5CfEHFEgLkauyxm7Y661uwirisWANYiuy01BIqwBJUfFGMIEoESwUWxVYr7rjKPhtWs/SZS+u47FYrABbZCqGEqN0KC267+BpbrrpcOaqBs/xuFW2+BN/6brzzvlDvt+EW7HCyAXeVpQcXXODB/5YRb1XrwxxnerC2SnDr7b0dl2zovhkvBeICEfgUwQLxyZoyUhubbLOgH8srsr0N3+wznyjPjBR8FTwA1AMVQCr0UjX//HPOISs8cs9O2xz00kVd8AFRH8iM9VBNV20z1DszLLbPV3+tNl1hn90x2VLz7LbVa9f9V9tzOwz3wiTnzXHadgfOFd5+57v31IX/LfjiYhGeOLuHy/14wYAzbvlRjk/uLrwgl9235u1WfvnoQmUOOrKRm3166KS3TvPq+Kb+OezUiu466abTbjDnOsetuu61u3f78EDlDryqslN9fK4jlOD889BHL/301Fdv/fXYZ6/99tx37/0Gy1ObfP/45Jdv/vkdjI/++uy3n7f67scv//wFw0///fjnb6v9+vfv//84413U+KY8ABrwgPfjHwIXyMD1KbCBEIyg7h4owQpasHAUvKAGN+izDHLwgyAkmAdDSMISok6AniugCVfIwv2h0Heza6EMZ6ipEdLwhjjskw1zyEMZ7rCHQCzhD4NIRA4OsYhIrOARk8hEBi6xiVAE4BOjSMX8TbGKWJTfFbPIRQe+kIBdDKMBtyjGMgKPjGZM4+nQqMY2Jo6Nboyj2+Aoxzo+7YuIs6Mez4hHye3xj2vs4+8AScg3CjKGhUyk2OioyEaeEGEpdKQkncbISVoyVZW8pCY9dkgVbvL/k+LrJChHCTlRkvKU08okKlepylWespWuHCUsY/nJWdJSk7a8pSVzqUtJ8rKXjfwlMBMpzGESspjG/CMyk6nHZTKzjs58ZhyjKc02UrOaabwmNsuozW2GsZve5CI4w4nFcZKTiuY8JxTTqU4msrOdSHwnPIkoz3kCsZ725CE+84nDffKThv78pw9NKVBSBrSgKzwoQoVI0IVuUqEOBSFEI2rEhlJ0khO96AUzqlElWrSjiuQoSCEo0pE68aMmBWRJU3rAlbJUiih9qR1dKtP+0bSmVowpTt14053Sr6c+1aJOg2pGoBK1fUY9qhchCUNPKvWbQ32qOKMq1XJStaro/7wqVtep1a26s6tejSdYw0rPsZL1nmY9qz7TqtZ+srWtAH0rXAfKVDDOtYpJvavm8qrXx/G1rxiUK2BJ+NfBzq2whj0bYhNbtcUy9o51zeNjg+jYyY5NsJa1YGUz+zbMcjaCm/2s3jwr2pNG1o+lnWFoUxs70rJ2jK597f9WK1tx0ba2oTztIHFL2NjyFn+3/a2xgitcXBG3uC7ULSKRq1nfMtd9x30uqqIr3U1Rt7qcVK5TsYvA63I3Uc79bvm8K95Ckbe8gzovegOl3vX+qb3u1WF440s7+NLXvvHFr3v1u17+ote/5QWweAX8XQJz18DYRXB1FSxdBj/XwcyFMP9yJVxcCgvXwr/FMG81jFsO19bDsgXxa0XMWhKn1sSlRbFoVfxZFnPWxZmFsWVlPFkaP9bGjMVxYnVsWB4P1seABXJfhaxXIt/VyHNFMlyV3FYmq9XJZ4UyWaUcVip71cpbxTJWtVxVLkvVy08Fs1LFfFQyE9XMQUWzT9W8Uzbj1M01hbNM5fxSOrPUzinFs0n1PFI+g9TPHQW0RgV9UUJT1NARRbRDFb1QRiPU0QWFtEAl/U9K89PS+cS0PTU9T07D09PtBLU6RX1OUpPT1OFEtTdVvU1WY9PV1YS1NGX9TFoz09bJxLUxdT1MXgPT170Eti6FfUti09LYsUS2K5X/zcr50nd1zEZltF/p7GeDbtoGrba1J4dtWWp724bULrhhKu5x+6/boER3Lb9t7sOyu92KfTe8GyvveUO2c021N3Drre/LlrvfQv03wKHL74FzTN0PLbjBRyvwhaMP4bhUuMMNJ/GJtwvil8T4Litu8XFpHKMc7/jmGi7y5X3clyEv+SPxbVeVh+/kjoR5MFPu8lzJPKQ0r/nuSK5zaOe858j7OdCnK/ShW7foRs8uyyWb9Gsjveng5TnU/XZzYj596ua9OtbTq/Wts7frXn8v2MMuX6mTnZJjP3vVC7n2Y6ad7G1X6dvDHndlzt3rdd9j3pt5963vfaZ9x/rfoRn4VKkPXo6Hn2bhoZ54ni6+6Y235uOTHnk1Vj6bkzf65Yua+aFvnpudB/rnxTh6qJr97B0Mfc9L30XWT/X0qPf30lEbe3rDvvadvT3uH+b6LPbeqpAMBAAh+QQFBAAAACxoAFAAoAGQAQAH/4AqKgCEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6Kgp+io6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDsDU1xMjJysvMkcaOxtHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onqx4lKQj47P/Lz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXGhwhw8hOdqtAMKlicWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXLLkAgQjgWU0hP8Ic6aGjp8+fQIMKHUq0qNGjQjeQWcq0qdOnUKNKnUq1qtWrWLNq3cq1q1YxSMOKHUvWaI8jYX4IiVbTxQopR/9Y6OhAt67du3jz6t3Lt6/fvAgOCB5MuLDhw4gTK17MuLHjx5AjS55MOTIGAX8za97Mma8OFkekrHDBroYLFFHkdl7NurVeCpVjy55Nu7bt27gFE3DNu3fnz1FQkCZkGgUPnr6TK3+du7nz59CjO9+9vHp1HT14CC99+vhc6+B7w5ZOvrz589Kph1/PGrv24W2NI2dPf/N49Pjz69+vWH39/325tx1x3c0H4IF53cffggw2CJ1/CEZIl4DwFeedhBh2oKCDHFY2QIcMQpghgBRyJ993Ix64IYgsNvZhi/uJmCJ9JRJ44owqQvYijPt9CAYYPPInI47h1RjfhUTWt2L/kEH+yKR+QyZ5XXYDHmmglOEF9iSIY4whGAwwbCkkljRSWWGBKJJpnZZi5gdBBHDGKSecELSZX5Rq9makhVfmqRybdpo3gAcTFGrooYV6ECh6ePrZ2p5oOlodoIsK9uKOtxGK6KaKVlpeo5L+ZqaJSIbq25KeNqaAZJpueqgHq6aKGJi0gWqqZpDeeKt4spLXqquJ9jprmLNhsKtvuZZ6LGuoCmvbr8B26mxzti7r2ag2KmstZ81OOxu0rkrr7W3VbptXsn2amxml49YGLqft4lauunahmya9f3Ub72TvIiruvrLNi28H9g6smb4AQ9bvqwnXajCu2Fp578N6sdsw/7/AMnxxbALjWzDFfSG8sWKDIsoAA/6OXFnH9H4M8l4iq4zYrxYMMIAFGsscGcvquvxygjpjPIEGIhAmggbBBg0Zz+b6/PNdMSs9GKEeXGDYBVRL/RjT2zr9dF0Waz3zAhHESpgCESzwr9iIcW2t119ryHZjFjygmAMWzL2Y28vC/XXYegdeG9/H+v101IInvnXc50bM58RxI6745IoZixnjdRn+M+CUd97YZZjX63ikodPFueeot1165qPrWrrkqXc+gLGrE9y6tozDHjvlhO+q+cu6765477f+DnLwwgtOvKnGU4x88novH2rzDz8PPdvSS0q9wdZfrzXtq28/8P8GJZRv/vnop6/++uy37/778Mcv//z012///fRLULvt75Ga7v4ADKAAJSS+ARrwgAjcTAETyMAGNnCBDoygBPcHwQla8II/qyAGN8jBpt3ufx0MoQgHpsERmvCEOCohClfIQhJ9EHItjKEMM6TCGdrwhqupIQ53yMO96LCHQATiD4NIxBsOsYhIbOERk8hEEy6xiVDk4BOjSMUJTrGKWGTgFbPIxQFusYtgrN0Xw0hGxo2xjGh82RnTyEYSvrCNcLzgGuNIR9+9sY54ROAc88hHMu2xj4BM4R0DSUgzDrKQiFTjIRPJSDf2L1sgbKQkC7fISVrSjo+U2CU3SclMPo7/k6CcXiVDSUoi/bGUqAzQKFPJSgSdspWwnNAqY0lL8Lyylqm8JS5LqctdhrKXvuQkMIN5yWESc5LGPGYjk6nMRDKzmYV8JjQDKc1p9rGa1swjNrNZx21yM47e/GYbwynONJKznGU8JzrDqM51drGd7swiPONZxXnSM4r2vGcT86nPJPKzn0X8J0CDKNCB9rCgBt0hQhNqxFkyNJYLfagMIypRJTq0orm8KEZ5qdGN/rKjHhUmSENazJGSFJkmPekyU6pSZ7K0pdF8KUypKdOZXrOmNtUmTnPazZ3yFJw+/ek4gypUcxK1qOk8KlLZqdSlvrOpTpUnVKNaz6lSFZ9W/73qPrOqVX9ytasB/SpYCSrWsR60rGZVKFrT2lBPko6tfKQoXEsn17lirq52jRte8/q0vfJVkW513V+HGljcDTaphY3kYZ+aWBgulrFV+uRjjdrYyVI2sm+1LFMrq1ky+rWzXVsraDH42dF2ErOCNW1VOataLJa2taJkLWyxKtvZbrW2tvUqbnMb1t3ylqy+/e1ZgytctRK3uG1FrWGRa1zlKpa5M3wtdGck3emOqLrWxRB2sxuh7XL3QN797n/CK94yHbe8IyQveosk2vV+Tb3undJ547tB+NI3Ofa9r57aq9+H5be/j+IvgD0m4AH3rMAGDu18E6xFBDP4tGdK7f+DLfjfCf+lwhZW5YIzLEAMc1gvHv4wXkIsYtFtuMThczCK/ajiFUuJxCuGMYplXGIai9jGH8Yxh3WcYR5b2McTBvKDhcxgIifYyAZG8oCVDGAm99fJ+oXyfaVMXyrH18ruxfJ6tYxeLpfXy+IF83fFzF0yZ9fM1kXzdNUMXTYz183IhXNx5SxcOv/WzrzFc271bFs+z9bPsAV0awWtWkKb1tCjRTRoFd1ZRmvW0ZaF9GQl/VhKL9bSh8X0YDX9V07z1dN5BbVdRT1XUsPV1GxFdVpVbVZWj9XVYIV1V2WtVVpf1dZUxXVUde1UXi/V10gFdlGFLVRi/9TYPEV2TpX/bVNmz9TZMIV2S6WtUmqf1NokxXZIte1Rbm/U2xgFd0XFLVFyP9TcDEV3QtVtUHYP1N0AhXc/5a1Pet/T3vTEdzz17U5+r9Pf6AR4OQUuToJ/0+DcRHg2FW5Nhk/T4dCEeDMlrkyKH9PixMR4MDXuS47v0uO4BHktRU5LkkO0xS42JcpTTt2Vs/y6Ln+5dmMu8+7SvObgvTnOx6vznZvXuY71uV57LnT2nrjojgQ60sVI9KUvx+SwhHorpc5Kqmf06E73INaz/ramc32/W/86JpUu9vd6veztOTvaRRX2tTvK6qiEO0fb7vY8yZ2Ud/8o3evO4r3z/cVq/7tf8g5KZcKL1O+CFyTiE58iw2/S8SVdPONpGPjJN07ylrc55jOf881znuee//zPI7xc0fsJ8pZEPUpDb3qjk731zKu86VUvSdqvlPWwl+/rc/922Yve9owEvktxz3v8+v7zwkdk8mP6yEAAACH5BAUEAAAALGAASACrAZgBAAf/gAAAKiqChoOFh4qLjI2Oj5CRkpOUlZaXmJmam5ydnp+goYyEmDWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v76QpoupLsbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f3TVOw8Q1hjlCPijr7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLDguxVCcjRSIeSHlCgQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6qkKAWIkESHVCj5gYRIix4scurcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdqrMFESRAlKggB0CJDyhHevTQQbas2bNo06pdy7at27dw/+PKnUu3rt27ePPq3cu3r1+zOI9A8aGEq5AdSFoI6MC4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnHAgS0QLJDiCIhT6YoPk27tu3buHPr3s27N22ykFVPeeL6EGzZi30rX868ufPn0KNHBg65xfDiho7Pls69u/fv4MNHt078dezt4tOrX8++PXvy2AVpT+6+vv37+POHFl7e+Hn6+gUo4IAErsdffADMNyABBCjA4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKKKGGwx4oHnIDajAASy26OKLMMYo44w01mjjjTjmqOOOPPbo449A5liigCf6l6KABASp5P+STDbp5JNQRrnkkAEWmd1/C0qp5ZZcdunll0FSqZ+V8mGJJJhopqnmmmz2KGZ+ZCZoZoBJtmnnnXjmKeWb+MWp4Jl6BirooITGyOd9fs6pX52FNuroo2geal+iR9IJ6aWYZsqkpPVRit6imoYq6qg0cuqepwDmxyipLa7I6quNmtoeqlnCauuthMrKHq2A4urrr2zqaiB8KH6qKrDIJuulsOrxaqmyag7AYgQWVGvttdhaEAG0bTKbnrOgcrtmABOUa+656E4QgLhreiseuMeymya56dZb7rryRmoisUYai9+q+cIorZP02psuvgEvu+91xab6b8I/uopjwQafizD/xFu6Gx68D2PMJcUV3+sxlxqDx/F9AI/8JMghX6zykyV/d7J9Kb/MJMsVu2zzpgv3d2Wl4e5McMjo6ix0mD0j+OezR99MtMVNNxmzdzPXV3PUPeJssNFY8zh1d1W7d3XXOmptL9dkC5l0w7Wm7SPOGmhQL9pu2/g1d2G3N3bdNbLsQQABeHBwshK3u3a/DqPMd9boMgABixAwUPTiXh/+s7+KU172uQ04wKK0DjQANbKFq3m3dHmzt7fmMBZcwMAtDqBAAebSzWrpaZ4eXerrrc76Aa6S60EIMkobguAB4G6r8mDqDh3v6vn+O4sBLGD7AdVfPyrzXzr/HPTpST/9/wMP1KiAtOQTbqf3zoEvnvi/w64y9woTye/lidM8veb0d8l+c+4LD/z2R6Pzcat/JLNcmYAWLwLWDYEZU6CcGNgxB7oNglr6H3MCCJ4BWhBjGNyTBJcWtA92LYRR0uByOPgdD5owYCiEkgqV4ykmtO2FOFSStGbomxreMIdA7NEOR3geG/YqiEjU0RDtx7B+GZFOCohhEoG4xCrdb4EteCKcXDhFJPKwNz5E0oSi2CAGOWhEaEyjGtfIxja68Y0W+iJvwkikAtnxjnik4RUnmMU8+vGPgAzkZlgoyEIa8pDDaiL+EMnIRjryVHsk4SMnSclKrjCSirKkJjfJSdIQsv+ToAylJj8pylKa8pCkPKUqV3nHVLLylbBEFCYpGMta2rJArrylLnf5vVlijpfADKbJfJk/YRrzmAAkJjKXycwNKrOZ0IzmbXIpzWpak5rWzGYzsanNbhqTm94M5y7BKc5yxpKc5kynKtGpznaGkp3ujOconynPeh4TnvbMJyLpqM9+2pKf/gwoKwEq0IKWkqAGTSgnEarQhlKSoQ6NKCMhKtGKCpKiFs1oHvGp0Y6ijp4eDSkeOSrSkvYQpCZNKZxQqtKWQlKRWCymS2c6TJjyUaY0zelHbSpJnfoUbyz9qVDbF9ShGvWkPM3kUZc6x6Iy9am1ISlUoSrVqTK1qlb/PSpWszrUrXL1p179qk7DKlaakrWsLj0rWlWq1rWatK1uFSlc4+rRudJVo3a9q0XzqleJ8rWvDv0rYBUq2MEatLCGFShiE+vPxTJWn459rD0jK1l5Uray7rwsZtWp2c2as7OeFSdoQ+vN0eZnBCRIrWpXy9rWuva1sI2tbGdL29ra9razHUE2meBUZHIgAQnIgHCHS9ziGve4yE2ucpGLgeE2d7nEbe5zoZvc6VL3usMFLgd229tj/pa60sWueMc7XeuO97zOVS4GzHve7VqTt0mlJTN/y1702ve45l2vcOu73/7eF7r8/W9x3VtN+PosptnkgIAXzOAGO1jABJam/4GVptRmKvjBGM6whjEc4WhOmG3WvPCGR0ziEkO3w9D8MOISbOIWu7jFKG6mihcZ4hfb+MYPjjEzZ4zgGuP4x+cNMIl1vEwe35TFQE7ydYU8YiIj08g9tbCSp0zl4zr5mFCu8HyrzOUqX9mYWZbvMkXs3y5nmMlT/rIww/zLMZfZzBhGM5XVHEw249SYZIaznmHM3fi22bfkrbKcz/xmDmfTtPjJ83IHLWBGV5fKzw0vdekMTETfR9GPNq6kX7zpPWfA0cKlNC8tbR9M4/fUoGYwBgZwgVa7+tUDSLWXD91dPBP604RetQc04IFe+7rXvB6AenEdaFzLermiHmethf9pahfrF8DFvYAG+IsBD1xg0cTucrJ1Ser6NBvIcr6AB5RrbU8jm9Z+vjOzuZxf5Yr7uQQobrWvfesmo/vAR/bxfTtd6CC7e9zNLUADHpCB4GbA2u02d6jvTWExA9rM4R53cGmngQI8t9wKR+62b9lt93zb3OIeLu08YHHhYjzjxt34P5cdzI/b99inNm7IhSvwB0wX4fWFuYlVXsuOt8fl/9V5gGeegXhb9+TOZjDPz8lyYAI9ujaubwKIXtzgIh3lw106LH3OnqezF806d7cG4q1pDGiA3i/394K1/kqur+fpUFeyrn9N914fIOhAZvtAfanFaMLdzAlg9asHL2z/bMsb2kNmeLH6Ds2/hz3pJH58cvW+SozaWrySL7HB623va/IdyVjX9IK/bvgNU36dn9c3uJNM+hbz9/SntPy6IZ3t9N448/aFvSll33K5iz7OzG10wu+r+4Omvpp/3zC/ge/6Ymdd8StWfe3TTv3f93vPsi6+KN2uHhGHffkjxn34x6v9dzadl2QW//gzfuzyg5L76bnw962v/PU+G86pdn8n4S8e+SM+9AA4YNBHY8hnewFYYuo3aQPYYwVoe50GfgeYcfq3UOe3S3mWgMyHebKGgefmeX7GeFKmXhyoalE3ggU3gZvEZiC4ZdbFb5t2f2XXYHJmgjaGgpqkggm2/3nmxmQ0+GI2aEk4eE24NYREWIRGeIRI+FrqVmfHR1pfFYRO+IRNGIVWBYVUWIVTeIVPxXtamFNc2IUz9YVg2FJiOIYpVYZmWFJomIYhtYZs2FH894ZtV4FyWFd0WId4dYd4uFd6uId+1Yd+GFiAGIiENYiEeFhZeIhvlYiKKFeM2Ih2+IGQSIaPOIkZ5YaW2FiVmIl/KImc6Ijp9omgiG9RJoqdSIpaZoqCGIqqmIes2Ip8+IqweIoN92ezqFiGeIvlFIe6WEi82IuB9IvA+EfCOIwblYvGuID5lowFVYzMiEvI+IzR5IzSKCB2Vo0BdY3Y2E/auI351I3eWE/gGP+O8TSO5NhO5niO6ZSO6riL0diOo/aO8Mht8jiPKyeL9iha9ZiPW7eP/Lh3+PiP2kSNAikz/liQu3eQCLl9CrmQ79eQDkmBARmR2wSRFGlJBHmRRDWRGnlPFtmRj5SRIKlHHDmSlfaRJrlPKJmShiSSLKkbLvmSuBGTMmkbNFmTtHGTOGkaOrmTnrSSPjlSQBmUdtSTRAkaRnmUnpGUSskZTNmUmvGUUIkZUjmVllGVVkkZWJmVkrGVXBkcQ/mVnRKWYjkrZFmWiYSKDoeWD3WWbPkubvmWNaWWtiiXjeSVbImXaKmXZcmXYumXXwmYXCmYWUmYVmmYU4mYUKmYTcn/mErpmEcJmUQpmUFJmT5pmTuJmTipmTXJmTLpmS8JmiwpmilJmiZpmiOJmiCpmh3JmhrpmhcJmxQpmxFJmw5pmwuJmwipmwXJmwLpm/8InPwonPlInPZonPOInPCIiXYplJ7YnPP0nNBZScw5nQRSndbJRHS5gtmJSpvYncH4neBJjOI5nsconebpneiZnr5YnuwJjev5noCEnfK5K+5Zn1YUn/jpnHS5hPs5JnH5nzMZoAJqkwRaoDl5oAjKkwq6oD9Zkg66UhAaobKknxTaJ/d5od+SoRq6MRzaoQZpoSBqliI6omlZi9xpoie6eCoqof3ZovjBjjCaHjI6o+FRpqM2+h04mqPdsaM8Kh0++qPQEaRC6hxEWqTONKFI2ktKuqTJ1KROeklQGqVI9aJUSjUNeqXK2Y5bqo5deo5fSo5hGo5j6o1luo1nio1pWo30eaUPup1uCjYfGqdRNad0ehpteqefkad62hl82qeDZKeAKhprKo2F+oyHyoyJmoyLaoyNOoyPCoyR2ouTqouVeouXOouZCoub2oqdqoqfaoqhKooHEggAIfkEBQQAAAAsYABCALABngEAB/+AL4KDKio5hzmFh4WMjYaIjpGSk5SVjoiYiY+KmoublqChoqOkpaanqKmqq6ycma+wsZiTnp6ks40vNTWDvSpKQmk/QMTFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3s1pQom9gkpVXmVo6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIkF4ZL1WUkHsh5EaYI1SotJhIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqVGKkfC3BAyaNeLMzZasOjBs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtapVoyxa2Dija1cNFV6OMOlAtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7evX7hMcHhRYTOHki44sAj4y7ix48eQI0ueTLmyZbMCsODooiSHoBxCulBRfLm06dOoU6tezfptZipdxH0OPXpx69u4c+vezTv169ieX4AWTbq38ePIkytH/lu2cNrFl0ufTr269bzNgw+vfb279+/gl2efTdx2+PPo06uXPP55+fXw48uf7xoLbOfbo9Pfz78/+Pb5meffgAQW2BuA0Alo4IIMNmgZgu/1tgECBiBg4YUWGqBhhRpi6CGGG3JI4YcgeljhiCSeSOKHHV7Y4oohdviijCimSKGIK5aoYo4s7ngjiD66GKSJQ2bIo4lGHqmk/45LwhjjixaWcByE3PVWwgFYZqnlllx26eWXYIYp5phklmnmmWim2eUAarbp5ptlgjClfcCRVyVvV8Kp55589unnn4AGKuiYchpHpX665Tnooow26uijkDpa6IF04pegcYpGqummnLrJZqeghjkpb4cqmFumoaZa5qeqtupqoKPuViqmr9Zq6624+hmrbrNameuvWLIK7LDA7ppbr3gSq+yyzKpqLG7I7oZqs9RWa22fz94WbaLXduvtt2dm29q2p4Jr7rnoHiAua+TiNm268MZb7Jz3aXepr/J6qUCq+3oJBhhY/oulGWYEDHC+t667Wru3vYswsAIfEDHBBj9sq//CqjHcmsMWd+wxoxj7Vqm9ESb7ca0NVKDyyiy3XEEDD5zsasioacwaxzJr+sAEPPfs8889R5Czs/TW6d6d0g6tagRAN/2z0EqDSvNpNq+Gc9SNMu301lCjCwMM8xo6sp2Ilou1mcLCqfXWTXd97tdhU1ov2aa6e7af/Y65NttP373p1KZVrdrVfge6N99BFx4p4KUJnhrhivt5OOITuB35ooxf5jhqkF++5+SIW+45rEVbWnLSozMKOt+ip65r6SQjza3rg67Oduu075n5g2MfXbbduRtOed/B/7l7ZZuf1nnxZ9rONfOviz2373U3DL3kw/uM+/VpHk9Z8qYtz73/mKsXUIDT249vpveTgV+a+Op/ObkHIWAZggdApx8/obDTTev+bjrcAgKgpQAsgHgA7F7/qPe/BKZpbxWI2ZYeUAHtOVCB0jNagBp4QTOtzQJpy9IALJC4Dq5vgRvElwnLxDQNiGBLIRSBBiq3wjih8F4mq6HePHABMl3AA/rTIZbYx57epTCHQgSTA4QWQi6xKQIxa2ISh3jD081uiliUVBVlZ7YsenFQRIyM+y4Dvy+a0YYZNB0XgXfGNupui7+znhvn+KYwQmaMlikjHfdIxTTGLo4b46MgT+hH/6lwkIj8kh0fg8fK6DGRZ1ykYxpJmUdC8ouSbAwlJ2PJS2Yx/5OM2aRkOunJKYLyL6KMDClLKcRT+iWVkFklK2voyr7A8jGynKUJa8mXWzpmA1AikjAzhKMncehET6pRk4i5zBttiJhFSpIxZXRMGokomkcK0Y9itE0oBTNHyHQRkIJ5TWdO05ojwqY0k/kjcGJTmxiSAByr56B62vOedvElPvfJT//os58ADah6/inQghrUOgQ9qEIXWkgGMvShEB2oEXEY0YpatDoJvahGNxrKiVqRoyANacY8ukaRmvSkRZzeEVHK0pZqkqSAdKlMZyqXjNL0phq1KU53ClGd8vSnB/UpUIcKUKES9aj3NCpSl8ogpTL1qQNyKlSnSh+pUvWq6/+xKla3Gh6tcvWr1/EqWMcqHbGS9azzRKtakwpTeq71rfwxK1znKjKVUpSueJ2PXPPK1/a1ta+AzepfA0vYrg62sIgN62ETy9iyLraxkE1rZCfb0JVS9rLaeixmN1tXDd6Vs6BtnGZDS1q/2vWjpU0tI0er2ta+krWujS12YCvb2tJlr7ZFLG5zS9jd8hawvv0tX4MrXLwSt7hzPS5y36rc5aq1uc49K3SjO9bpUver1r3uVrOr3atyt7tT/S5kEJCB8pr3vOhN73kxkAH2qve98I2vfOdL3/ra9774za9+9/teCjRIvI8hL38HTOD8urfA60WwghdsYPQe2LwI+C//bfdDAQZb2MIPLnCGL8zhDjs4vRFu6oTpI2D1snfDHk5xeVGsXxar+MUdDvGCAOyYCsP4xvN1sX11jGMFn5jAOpaxgWjcmBL3eMA65nGCL6zk9vK3yUc2sXn9K+LTlrQ/No4yh6G8ZB/fl8td1jJ+2UvlGY94PggAs5il3OUmqznHO14zfd/8YQhL2Mox3Y+R5QzkOs/5yU6mM5/hDOgMCLlARGZMlgdt3h8z+tHvVbOgB3xoAiX6L4uGdIcnDV9OAxoDbgZ1gwtc6aieWT6Z1rSqO33kH4e60UcutT9PHZ9Ur3rMTk6vp1cNZijv+ryy7s+l/ULeX+Na1cZesKBR/5zs+GY42HGlNXz2zGoYOxrHzVY2hqMM7f0Muy/Frm+ys+3lW5ubvt2uqrTXQ21Ni1rDK672ueO85mff2bOo9Y+t583vePe70LCGb7r1um71tPvfrT62tjdMbgsPXD7f5svBEXxthDv7zwl/ccVzLfB7qzHP9Nm3xc/dcHej2+N/dKue5fvugNObzfUe+aYDfeEyD7ng6Zm4vMXNcpn7fOcB//XD4xPxvehcxQ9u+c/l7OkMK53SKDfkgo6ucT6X3NpxZni8yW1zROMcPVRfutiXfPUXDx0+RdeLyC/+6AP7Wttt3/qjzy5YPKs85Pst+5fHvm1V012idm9Q2BH+9v9y8z3Ff09P2vOydqbzOQIfsIDkJ095yn8gAj1/s3s3/u/Eo2fxeBl8xtccAfxlD4iZPzx+PX8e0N9F9NiWst7d+4EJFCAAuM+97nV/vg+o/sKsN2zgGdT4KDOb40xGLwkDQPNIB2ACFtgy34P/n6+fp/gwx3jykU9o+S6/vs+3gNMP7+aOVxnfV+YP9vMO6afr+PsuT2/4f+/wqDt06vRXuHrhX94DEEDXGTB/+Sd3+9V1lmZ94QF78SdzTcZ/AbgAIaBe83d8Axhm6WWApjZ8C7Jv4+d4WndhDvh8E1ABmHdeAhh7/YaBs6aBBtJ4Sbd3/YZiIdgzGvAB/1deJ1j/gQOmgsKGgOCRaRtHZ3oHb+81gzxTgzcYgNCHZKPGbzwYbSxYIC64gIzWdEU4AcxnXiJIguiVg01ocpz2hN7mg9+hgOaWbSEIgRK4hGxngdn3c2KoblFIIGbIfjAoZg6oAEnYhWwofYP2dCd3fh93d2hmbZwHgH4GdAXmgPHlhRTXfv5mX3FIcHM4IHWYddynfVHGiPDliG+YiYnoc9T3Ha5nF5eog+fFie/liaEIin6oiAo2iRBHht5xiq3IhHJWe7e3e7yIe71nh6g4it5RinVhi27YZ6RnesOjASXoik3XgecmjN1BjHRhjKiYAZBXedo4eZf3glh3h5FmYbJI/3S02B3WSHiI+HvjZmzjiHbliFEdcI7HOIQ8B3cmp2nSqFiV6B9p9opUiIIt9m/0qF/5iFDvaB3rp3oslmTdZ3Wr1o51h34gV4iRGI4WCY7AeI2HV5AYdZDVkZA9V4+fVoED2WMcSR3UOBcVdogY2YYMqJEcdpLTkZJyMXjlF5IA949b9mpf+Hsy6Vj7iGU3tnkNWYXN15IieYZkh14/KR4eSR3yiJQw2ZNi15TKQZNxAZK46G8Vx5JV94ceVnJECWz2Z1l0WJLHCJZp+XJsaY9EWF9WmRxYCRdROZVqOXJxyRxPOR17JmqT5pV2GZj0BZGAJ5GEiGqfKJiKOZLzRf+YireX0lGXi2l8oliWn2WJ8/aXKUaPXSlzeSlZ+KeOOglzN+mWOBmD5fWZlXWZ/EiSbcllmgmYt3hrD6aacmOYgkdyuDaEaFmReGmZ+dYfkqmDvFmSh+iNa/letkkqkLkcw5mYPzduCSebLidoEXaYETmIuTmZsgedW4maebecstKcyvGc6ch33tibYemdgwmc6bdyCgmK6olsayaevEKeyRGVnKl/3Mln9nks+Ikc5ol0LEediDifFfif0BKgxyGPCOqS3PmgdiaIKdcgU9if8blmCYAA2JmdFQpe0TWXICpSIjqiIFWiJrpRKJqiF7WiLFpRLvqiPcWgMgpXMVr/owt1ozgaVDS6o2iloz4qUEAapEXVo0QKVkN6pPuUpErKVkHZpJfFpFDqIFI6pRQqdVbKWVWapV73pFzKWFv6pSuIm2KKWWFapmPopWgaWGe6prOopm46XEYap0DVpnRamNp5p2A6p3qKU3bap8JHpoDaW3w6qDL1p4Y6jYWaqCyFqIzakXD6qNW1qJJKopRaqSd6qZiqopq6qS3aqZ4Ko6AaqjMaqaQaXqN6qjmaqqrKo6baqkvlqLB6n686q0Qlq7aaWbWaqz+Fq7y6MKz6q0sarMLqpIJarKi6q8g6U766rKKlrM7aUs0archDrNR6c9B6rSY1rdoqRtbarWOa/6fgOlTcOq4vla3mmlPfmq6UeKzselPl+q69tK7y6qFYWq+HSq/4+nn6uq+BKq7+Kq39GrDDOLAEq4/uerCWiq4KK6QG27Az+bAQ65QMO7H8tHglQAAau7Ec27Ee+7EgG7Ii27EYALIZoK2LRwK4IkUiRAAdeqopeyssqyUKgLISuxYqayt5w7Iue60xay0EYLMVyxo5Wy1B67M3qxZFSy1HS60/a7RCm7DVsbTN0rTR+rRMG7UAex1UyyxW66xYW7Va+6He0bVuEgAW0ABqu7ZsawEEtCdfu6xh+yYLsAAuwzJ1yydxi6xz6yYaUD9fEgIaoLdje6/WYbZt8rdgIv+4hIu0Q7saiKsmihu4gwu3hXt/3RG5aTK5XsK4luu4UksdmosmnJslDsAACwABnqsne1usfZu49RMCFUBAp+sBHrAAMtS4Tpu0aTG6Z/K3JOQBNcgAHhAAEbAAwqu7V8u7aOG7ZqIBC+BCB1AAGlC8bAIByfu5u/u4quG8ZQK9b3sAEQABWaIAqwsnrSusryu5gNu5lcu6l2uWU9snpcslgjuzZpK+v7q+acIA1Wu7ABzAGsAAygu2zHsW3ksmDyACDNzADszAEgS/oLu1h3st+sur/AssF5yrGfwrG2yrHZwrHzyrIYwrIwyrJXwrJ9yqKWwrK6yqLVwrLwyzB2z/FgnswvHLmtNxwzKcw8EpHSVQsiM7xERcxEZcshnwsqQarxbrFkzcxGzxxFCsFlI8xWhRxVaMGTWcxeyyxVw8Utz7xQcYxmIcrmRbxgyFxV+sxlzMxlnsxlYMx1Msx1BMx01sxxaLxxOrxxDLxw3rxwoLyAcryARLyAFryP6KyPuqyPjKyPXqyPIKye8qyexKyelqyeaKyeOqyeDKyd3qyT78nmjcT6A8wWc8yq4auqhcpGS8ym+qyq48rK0cy/aKubTMyrB8y/VUytuby7rsnhP5y9jqy8I8zBRczLvsxcjcUbO8zIrazM5skNAczSipzNS8F7y8vNN8zRRLzNzcba7H/M1mbLjiPM62XM7mLL/onKbevM6Puc3uPJ7wHM8AOs/0rKvtfM+kaM367MT83M9R/M8ATcUCPdBXXNAGrcX2nNCBg9AM3QHZbMAL/dC8M9EU/T0OzdARLbcZndAbzbcdbdAf7bohPdDjEQgAIfkEBQQABgAsXAA4ALgBqAEAB/+ABoKDhDU1hIiJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6CMhqGkpaanqKmqq6ytrosqKq+ztLW2t7i5uo+ju76/wMHCw8QGvYmyvbHFzM3Oz5OystCzyQZK2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy6NLThYeCSlVn/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaJFhVWUTDtm7JCSM0C+7BlJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs2fML0B8KOmoyMeQJjhatKDCtKnTp1CjSp1KlanSq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq1bpVT/W+BoMqQKoxw/mrDogEWAACyAAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2tG7FdABxZNfuRQlENIFxw6BDDpzLq169ewY8ueTbu27du4c+vezbu379/AgwsfTny3DhxfhIxGpGSFHCpMovvtQL269evYs2vfzr279+/gw4sfT768+fPo06tfz769++9/qchZMZS5j+dM3uvfz7+///8ABijggARu55d8QiWixH3QFejggxBGKOGEFFZI3oFyJGjfc31Z6OGHIIYo4ogexpdhfYQsyKFnJLbo4oswxihjByZqmCKDHc6o44489ugjejWiOIiKVOT445FIJqnk/4tBKogji0tGKeWUVP7X5IZFQlnlllx26aWBWCAoZD5PfmnmmWhGeeWNK6bp5ptwMhnmiU62GeedeOb54JpDlqnnn4AG2h6GNvb5nJaCJqrootwJIGadVCAK4QYJJADApZheWummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7CWCsAGFjpKJ5Yd6qBDhBscoMABwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+20ElRI6JjXlKkrrwNcK+645JZr7rnopqvuuNlSyCeZ+FXY67r01mvvvfjmqy+z7UKYH3VMPIrlvxPOu+/BCCes8MIL9/sgwQHfymaWFBrM8P/FGGes8cbJOhzhu93aKaHFHJds8skoq+sxhCATaWSEEqQs88w017zsynvOWSi8FE8Ys81ABy10yTg72LKfEv489NJMN31v0QUeLTLMTldt9dXXQk2g1D2PjPXXYId9rNYDcv3ypGKnrTbWZAtotqQOkrz23HTT3HaAb1dc9958o3w3gHkX3PfM4Q7+9d9W6syty3AXKLfhVStQOOQbI+5f4F5TXrICInzg+eegh/65CJoTra3ikJ794ON7T57xAAtMIPvstNc++wKlc2x5f5jzmnuyv+obu+3E075A8L9fvDt/vaOdfMbDF1/88c8rf7rAE6sed/UYRy+97bhz3/D/9RIb2rXv4i/s/ffGp6/w8vs1v7r7Cq/Pvuzh078v/PrJv73+B7Pf/fIHQHzx7z3+c1wB9yVA9hFwgfU6oHsSSCDWQTBdDfzeAy+oMvLtLGTncx4H65VB6W1whOeS4KBQh6vGVRCFJLwf+GC4LhWyh4IDsiANxVXC6e0wXTZcDw4FpMMfVquHxDuhEa0VRPUMMUBFXKK0kDhDKZKriel5IoCiaMVnNbABFfBhF8WFRSCxMHsuzOEYxyXADwDrA0lcY9Y8uDikoU+OR6ydBkKAvBBooHZKxGOzyngeLf6Hi4I0Vri854EA+EpYF/BA+5CXSGcR0jyG9A8iK1ms6DEA/wLAouQBIsCA24mSkzejY+rSSERURmt4DRjAKUPpgAbgz3WuVNYly5PJ/mwyl8CKXQEUGSxZFmACgQQmsXZ5oTOaT3sKVCazGBACZ4WgAtJMpbucyTNovjCbynoAtMQJTmQxczy95M8vy9msWbLzAOcUTzr3s85cuvOd0YpneOapn3ri85+WVGUL9QbQgpZLn+Dh53v8adCGFguh8OEmCL2pRodaFFsCRSNBL8rRgG7zUcvoJiuh2NGS8kuVIZ3oSLdo0paaE6X2YNxGXUrTYEHUO01KqUwFV9OewhOmz1zpIX3a05t2J6cxtaMIidpSozYKdTpV6vyY6lKnggmkSf89lFB51ytcUtWiEtgq7yRKpOkI7p5f/ecArKodhQ6KUpmKa6zmSte62vWueM2rXveaqlllNKgTYpFYGUXYOHlmsPEjq1QLy9jGwsmtjo2sZHsE2cla9rItqixmN8vZj5ZPpJ0NrWhjpNnRmva0CFTs1FDL2tZuTbUhdK1sZ9s/2FKUtrjNrTxti1jd+ta3pf2tcE8b3OEat7PFPa5yLZvc5Tq3sc19rnQXFd3pWhdQ1b2udu+U3e16N03d/a54vRTe8ZqXSuU9r3qVlN71utdH7X2vfGcU3/na10X1va9+Q5Tf/fr3r6D9r4DJy9sBG3hL/T2wggFX4AU7GEkJfrD/hFeIPcBO+ML0bTCGN4xfDXP4w/z1MIhHDGCVkvjEJd4pilecswoHmMUwLpuIY0xj5s24xjim8GdNnOMeT/DGPg5yM13MYyEbmZdAPrKSr7pjFfOot0uWZ9Tgm2QYcWADWM6ylrfM5S57+ctgDrOYx0zmMpv5zGhOs5rXzOY2a5kDP4pweyiQgTpnAAN4xoCd98znPvv5z4AOtKAHTehCG/rQiE60ovms5zsv2tCNfnSh8ZwBCsS5yi9CgKQ3zelOe/rToA61qEdtaARcmshO3hGdSc3qVrv61bCOdatNTWVUL1ZGq5a1rnfN6177OtS0piymXZTrXxv72MhONq+D//3kYbeo2MqOtrSnTe1DM3tHcmYPtHcd6U03utvV7jS4uS3rcQfa3H6+to6yvZ5thzvU6H63rsEdbzvXu8/3djSkrX3qJt86Ru6WN6fz/etxE9zYB69zwlmt7gzberU6Cvi+Bf7nhR/b4pKmN8UR3XAZsVs9Et/4ojHuZ5KLXOEn53et/Q3xGW3b4vE2+adhnvJEy7zmge44aZ1NopcjutGOSPnNpW3ub+O80zqH0cfTE3Jv73noR5+5058edaT3+4OpjriroT71o9Oc0VSvuqeTLqeHx9blYj801+GN8rSfnOwdNvttiV3yaEf64Gufdrfz7naOX72OLcd1xZXN9/+0F77viYZ7Znk+oqYTfdKDR7zkl/33Vf7I8aQ+fKsJjvG9Tz7ciifR0tGDeVFrPtmn/7zaVy/o0I9o9OcpPahjHu7US37hts955QfqI03PG9C5j3XwVa9r14sI9ubxPdgnbvq2Q/7iJ+e8r3FPaOOHWO5QtpDybW53fLN++cRvPvMpv3Ks/xtG25+89MP/ffbb2fogQn553D38zEde/MLndf1jDf8PyZ88sgdrBsd2wFdyteB+vtZ/JcJ4IlJs1Edx9FYMtIeAr6aAtcKAIRKA4Fd7Ybd5nrZ/FNhnFphi5/ciGkhuGed19zd7Ifh+lXcMWYd2EIh/KNh269eCpDb/gp6VIDBYgnQnbj9XcIoGgitIg+yng4GFOj0YeAAHhPp2bt4naIWXelTIakbnfkgoIU2yhGcneE7YfpKXABv4hDgobVn4MUqID0XGIydYhlF4aGLYgYOWcPdGhO92hiyThhbWI6XHd3b4hYV2ARWwAIRYiIZ4iIVYARfghsX3gmoYg144hwQYfglwATIkPReQAHr2h0foiHvII+nHiHU3ilJYZ2FETSGQiqq4iqyYiqVUAaIIa3jYYizXhTESilE3gCPHfXsWOyEwcSGATLFYgbunUb0XhG8Ifcrmi4kWjAswjK42i0aDgSCCi4Smi73GiYHGjHzWCHXmjNA4a8X4/4k7Yo0qeI0fuI0T8ItXaG8ZEId2Bo7hmIPj+GKgiI7ImILpuGvMSGlk+GfyOI+iJo1RQ40fYo5jCIUDl3bcCI8WIAJ1Bo97FpCx6Hn/6Hz6hm4E+VrY9yMImZAF2H2k2HW9uI58lgCnGAAAKYwCOZD1uIblCIYjOYTJqHeAxo36FkYToAEWMABUR5Hz2I4hqZEvCYm3uI/5po2TRod/xo3+qJOy4wEh0G1A2ZIgOWgbKWMdeYyT2Hcmh5ObCJUTIJVPWJVWuWlZ6TYG6SEfOX4WKYfhB5bvqJM86ZN6FodmeZaPlpZ4s5baZ3/QyIwSmZL/iAF5GYKbiI4Lx5cMtv+VPdKW0ChzvhhpYvgBUwloh6mXiVeUPtgikDmThidqOKlw3SaR38iSmslpjJk4jnmPQSmaJql2mfmaz+eC5Qd4toh+qflo39aPh+aMBLCbaMmZTKibwilpvmiagSaGs9mSiVlqxJmbmXacyLmOlfKbyPSceilzq3k5flkhn0mdYHeKrVierPiKyimQQ9edY9WaMbmL+XeVylaJf3SJepSJESmeCmmbwuaeOhKeCCefb7h/eiaIiHigh6iImqif+7ln7Glj/jkjAIpzGgdr8Nho6YmRdpahDApoD5pYESojE+qOmimGceiPYhgJJvqOLNqhWBmdc/dsbieBpUiiLur/d7dpeT7Shrx5oz76ojnKe3xYbshWdD8adR9aWyHahAKYj0p5pHcIo9kHnk0KhvX2pFDaa5YWpMb4mCxYg1mKg1van7UYoyQyopLYaorAelgapos2ps22pMZ5jm5ahnCKbd9JIWhap1+qn3e6bnk6IXvKp4RqaH/qcGU6pXpaqG6qnaW4cIfqcYEqIYPKqJb6Z5G6c3I6nfpIk9/HlJfqaG1qqFLqkb+noWkqk6G6ejf3gHaWqUo3qRFSqT1Kkqtqk+P3qqXKlfC5bwR6q/gYbbBadhIzCkY5p14JrDYaktM2rHFXrB7RmWdKocHqho66rNhoaJVQo63mrIuHPcYq/60jQqtCWJM4mJh4t6wiZ3LeKnpnFK7FyamEJ3Xi2Xli166v967RGq8uQq6+CppGyIhGaqfFCK/S2a8By60/Oqoih6/Hp68w+Z+ACXzXyqbKepH5aGwOe33QGrESGqAXu4/3uqteGrImq3tcSo4Se7IsK4Ik65otG7MZYGqKioabirAyS53XOXtJmlo365k5G7MbG3+yCiH+GrQ32rM/9rPTirQnq7Q6Zn78CrTAyrDzCLU3VLQPcrROy6BYK0Ra6yA8GnlW27XzSWs1S4tSe7At4mZu+7Zwq2YcMLdXRrdbRrd4W7d6u2Z7G2Z5i7cbYLddNreBG7hXxmWE+7d5+/9lhJtljetliQu4dvu4G5C2NpuocRZl0/V/mmtfnNu58vW5oOteoju66lW6pmteqJu64rW6rOtdrvu62hW7smtdtFu70nW7uOtcuru7ytW7vmtcQaKG9hi8QTa8Qmq8x6s4xOuxyltjyNulz9tj0auy00tj1Vu814u9zJu828u9YtK8x/q9JAa85Ctb5nu+rZW+6ota7Nu+pvW+8Cta8ju/yGUra2um9utg26Kj+1u+Yfu/61W/Asxc+Iub+lvAA9a/3qvAF0bADuxYEBzBjDXBFExYFnzB1NW90qvB/MvB1uvBBpa9zivCAkbC42vC+oXC4qrC78XCU+vCoQvC2iv/w/4Fw2xrw6QbwDr8uzzcw8L7w0AsXBk8xG9SxEYMXkKcxLmFxExsJk78xATGtFI8u0tcxa4VxVhcJVq8xVPSxV6sJlccxvE7xmRMv2Z8IWccKKVruUsiWFIsuhuAAQRQx3Z8x3icx3q8x3zcx378x4AcyBgAAkwsx2ilOQowtA4sx/qjyArMyPTjyAUMye4jyQJMyeljyf+LyeKjyfvLydzjyfYLytUjyvNLys9jyvCLysmjyu3LysfiVWnjyuoLy7lDy+dry6WDy+T7LjWQwkvVyYXMTb/cwt9UycPsYsUcw/+DzEnsy8A8Vc5sxNBszBV1L+ESLg4QAdzczd78/80R8ACyTC+8/L3VzMzRlC8PUEr2KTsV8ACHbC7lvL3nnMPNbC/hAkcegKAIKkkfEM/lMs/XW88JfMz4rABhdAHAMgAMnSyWiE35ItDTq8vnktDMEi4PrS8S/bwUbS4WvSy/ktERncyYKyIMVS0fjSy/gtETANH4stHK29HlktLL8tAATS4wbbwyTS40rSw2PdLPnMbkcdLU0tPDMgAP8AEKPQA//dIknb9uvFD7YtTC4gCltEcHINJOHdRUnM74YtHhUgAiIEvAss5juZMhoNX3ktPBu9PjYtGkhD8BoAAPEDsLEAEWsJPH5NJr/dQIHNXuQdTTktAhIEmEuJMfYP/XEXAAAwBHf8TX9sLWvuvW4hJGOvnODpDX+BMBkvNG7qzRfu2/ICLY0kKXpBNKF8AAn9TZoZTXkF0vkr27lH0tYbQAjqQsId3SoM3VJR0ipB0tYB1KxJTVug3U1CzU4/Hb0ELVx6LWkR3aDWwhyv0szC0sk+PcsA3dRBHN93wveb0AFRDe4j3e5D2IE2ABu33c4Lqv9uzV9xIBVARIi23cQ7wmBlvQ13wvv+IAF2Ce5nkB47wusY279s3e+N1KByNK96QAK53e9Q2x3O3eoazd9w3Y7THdYTPgtVvgJcxT0/zg693hmfPhQDzbe6PhsmvidYPir6vidMPirOvicwP/46kr42tD46Zr42qD46Or47Os3SE8U8LM2zayDBFeNhgONpZm4fR8RkZuzQhO4j28Jk+OzgY95OotMVXe3hUUyF7+5WAe5mK+x4TM5APt5LJw5Gs8XFSe5lC+5sCF5iIO58vV5nNO58cFxngep72957aL3H4OXYAe6IWl54SuqX1+6HU+6IquKIbe6N+a6JDO5ow+6dhV6ZauJ4+e6UTb1Zxexp7+6Wgc6qKOXJhe6kd86qiuxKS+6pe16a5+uVAd67gF67Q+ja1+6xKs6rrOJbbe62qZ68COwbw+7F9c7MYuxsKe7Iny68wOoZL+7Jjl7NLus9Fe7ZNF7dietcu+6u14ou3enkXIHu542u3knurmfu6sfu3qzijg3u7oNO7wTqyzPu+Cnu723iXvnu84Je/8/rD4/u/o5e8C738EX/AXqMxqjvBfQtBmzvD1uMxcDvFT/FkSf+AUj2DEvPAZz8Ub/+Ydf+wKD/Ihr+wWz/Elb/L1nvKGdfAsr5Xs/vIVv/Iyv+40X/Nnsu8hr/Mdz/MZ7/MUD/QQL/QMT/QIzzVmhfNogvQPr/T5anZJ7/QNPwNm5wd+wAdYPwJav/Vc3/Ve//VgH/ZiP/ZkX/Zmf/Zon/Zqv/Zs3/Zu//ZwH/dyP/d0b/Z9gD2BAAAh+QQFBAAAACxcADQAuAGsAQAH/4AvgoMqhSqDiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGIhoeipqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwbKFwsXGx8jJyqOly87P0NHSl4c11jWC19rb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLj2deOKkpCK/v8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixYkMhSpqNyiHES5cyIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPqhNnFi5Aci5SsSMIlSJOjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMNeDcIlyYocANKq7RgGB4u3cP/jyp1LV26Pt3fr6t3Lt6/fv4ADCx5MuLDhw4gTK17MuPFeHDZ8qlW7osyRHlgEaN7MubPnz5w7aBYNurTp06hTq17NurXr17Bjy55Nu7bt27g/M2GCpceRMism13CB4kqLHks6KF/OXDnr5tCjS59Ovbr169iza9/Ovbv37+DDix9Pvrx5AT1aXEHhAtuL4SiisNAhwLz9+/jz69/Pv7///wCCJ4AOLETBnnvwyadDgAw26OCDEEYo4YT3EWhge9kQpyCFHHbo4YcghigidBYemGF8842o4oostujiiyQWaOJ7GqYI44045qjjjuSViCGNKC7I45BEFmnkjT4iWKP/kEc26eSTUAKY5IkbRmnllVhmmd2UQFap5ZdghvkklwnaKOaZaKbpIplLqunmm3BOyGaQcdZpZ5j1NTinl3f26eef2+1pJqCEFmpoB4Iy+d8GJDTq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopG66gZ4y/limov6RcMCrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa2yvJKB6oZJ0BujqsdBGK+201FZr7bXYYpssg4ky+Gy24IYr7ri1DkDuuejuum2A3Tqb7rvwxivvvPTmuq6UqTLLZ6v19ouruf4GLPDAtN77X7sAfkvwwgw37DC6BvuH8H8KP1wv/8AWZ6yxtBH3NzG/G4cs8sgkd8zfx/1VTPLKLLdMr8n7ocyfyi7XbPPN1sKsn8z70Yzzz0AHjayyM67qrdBIJ610wUSr2qa7S7+qQNRU26xzfjzr53PVXHdt8dX4ZZ3f1l6Xbba/YFeYL5WDgnz223DXm7Z9YuNHdtzzYgys3ngTPLd5dd93d9/wAuxABIgnrvjiiztA+MJ/lxe4fYM/Dq8IE2Su+eaccy6C5QNH3uPaXbadMui08k2uuZh37nrnIkyNer+ijze5eZXPLqvs1rb++u8TfK673E3ra/rMw/frO/CuC5+8vLWLd3t5uT+f7fLMe2499MWzzerp28eLff/2mjsfPsTdl/498ue/Oz75wbefbvThTU9e9fJL+z755ucfLv3gsd948Oe/Y+0ve/0roLbSZzSoKTBcB2ReAh9YLQB+R4DiISAFhRVB4E1wgxxj4NMSBsLrwQ92JbyWBb2DwfBoMIW96uDvPgjDYq2wOy0EzwtrqCsZvo6GPBTWDbmTw+/sMIi38mHzkBitIQaKdA0kIROhdcAFLGCGUzyWE7VTRO8cMYuy2l8DHOCACvwQjDYUYbOkiMZhve8DsfrAEtsoRDXuC3x0DBb2NBACBQBsAAoIgQa0l0dgbXFLUBwhxQqpx815IACzMlcAPLA5IDKyVofEThe780U6+o7/ARC4FQQYUL5L+iqT19kkdzrZxtY1QHWw+mMDMmdJU8oKldZR5XZYmUXWTaAAftSVAgoQP1jacla4rI4utcNLMIYgBObiXa6eeUx12fF4PavmtHgnTW3aKpnUWWZ2mtnL3dnKmN7E5DXXl810upNc4JyOOLFDznfaE1fxlM48r1PPe/oTmes82j8HGkJuJXKNiySoQo2Vz+js0zr9XOg9GxqjZXlPoBLN6K8o2pyHVieiGk0nR5njUeqANKTaHOlySjqdk6L0mCpVDkul49KXmjKmiDroHdln054C1KAWVR9GfUrUA+B0ptGpaVHbeFSdYlNrSy1qU4MaxYRGtadT/y2aIv3DqFKNqgRgDatYx1qCTZH1rGE1K1rP6lVIrZWtmnorWdtKV1HJdax1fdSpgKpVhB7qr4B9E1IDS9jChmiwhk2sYvMUUMU69rFGQixkJ0tZujmVnZXNrGYpJNnNevaz4bwsaEdLWnxRdaulTa1qbSfa1br2tSxsLWxnS9vQntavtc1tbTur2976ibe+DW6cgCvc4qaJuMZNLpiQq9zmXom5zo2uk6Ar3eoSibrWzW6OsKvd7q5Jtt4N72/BK97yDpe85k3vcdGr3vYul73uje9z4Svf+k6XvvbN73Xxq9/+bpe//g3wd2+7UwEbeMB9LfCBFzwi7jL4wakEMP+EJwwhB1P4wiSVMIbty1jOanjD8u2wnD7sn86M4MQoTrGKV4xizrC4xQJ4sYxhrJkZn9jFNk4xanScmhyvGDQvxvGPN3Nj0tTYxzwWMpJpHOMlx7jJTAbykqfc5CObxkMWVg4FMsDlLnv5y2AOs5i9jAEMjPnMaE6zmtfMZi6buc1wjrOb5dzlMtP5znXOwJvxzOc6v9nOYqYAlkncny33+dCIRvSeE81nQDP60ZCOtKTPLOgOZbkDhh7zoifN6U5zusyO9rSoR01qNFeaQ5fO9Jc3XepWu/rVcQ41rGed6FN7mMBPdZCqac1rMvdazLKedLB/TWw223rEuMasrov/zexmO/vZpP5zmhEw6GR7aNfQzra2t83tQ1Pb0oTmD7a7Te5ym7vX0kbzt1Ed7v2M+9zwjre8eb3uWyc41w16t5xZPe9++/vfXq43su+t7HwDnM5m5vfBFy5vgUso1Qxvc8IjTvF+OzxCEG90xTfO8WdfvMLt1o++0TyZkpv85ChPucpXzvKWu/zlMI+5zGdO85rb/OYqV7i6q03wa9MZ50APutCHTvSiG/3oQdf5tHnuNNxGaORnRrrUp071qlv96kOn88cflPE4Y/3rYA+72McOdK0z3XgFZxACfk72trv97XC/utnBbe0OrT3Wcc+73vfO95fPnd1159Ddvd73/8Ib/vBv/7u9m65gBw0ezoiPvOQnL3XFD5zx+GYQ1MdM+c57/vMyt/zDQ56fzYsZ9KhPverTInqMkx4/pg/z6mdP+8i3HuSBp1DswVz73vs+77fn+uvvs/sv//74yA978B3Udcgn//nQR/ryG8uh4ns5+tjPftn1DOetM3/49rF+l7VP/vLDfPp8xXzaAyR+Lpt/6mgedscB7n3q657t75d+/Pe8aAzkX+5KJ2b1l35o53Ny9n9AF4BwpoB6hoA4h37sAn7m0X4Z4IBY538W2HYQaFo91yEUmIE2x2gM6GYgGHpyNoARmHsTUnybhoElKHMjOH8bh4IcqH4GuIAvaP91Z5ZuYJYAcyaDxUaDByOB5bF7LZiDNKdm/feDTAiE5CaEEkOE5NF+/IeEYgdme2aFMbeBQ6iCEvKBWjhzMbiATghtUOgxUjgeYBiGRDeGeeZ+bNhyXBiFXvh0+BeHfudrehhrcIiHKjeHaFiHELKGfiiHZhYBIvABiriIjNiIjSgCEVCG3XZsoyeID0KIhdhyIjBIJ9Q5GiACFZiJLkdnlOh6lrhsByiKOXeIg6QBHvCKsBiLsiiLrRiJkphtpYh7HVh9d6iKKUdMGhAA3AdnATBIoHiL0JaLwneKDfJ4beaLJ7docuQBTahpX0ZJH8CHO4iMh6aM38eMateL0Aj/ANI4AdR4Z9johmumjtzoZd5ofxPijGw2jpPhg142jRJ3jRPwAUvYjrz2jgR4UXYHbCRHjyiHj+i4j/7YbACZgrtIIfK4ZvQ4Zgj5ZfZojRmAjQvJbGd4MmkoHhG5h8BmkGqBARXpZQQQAm+ohxq5khv5ah0ZMx8ZHiGZZvSocCfpZhgwARUQiaz2ZunIjf1oZjY3lGoWkzszk+BRk9U4fiQJZjnZZZmjAR9AAFjIZS2pbUYZZlupbUiJNUr5HRRIgr4oZlFpZpuzACrJalm5kNL2gD/IgA1ZgwXogeIoihN3j+boZRfZOT0JZm3pal3JlU1JmA0od3I2l134kCt4/5d4CZV7GWZ+GQEXiZUKCXDsyGyKSYeM+YWOaZAIWXI7qTlq6ZKBqYSSxoOSuJmB2Jl2aJicR5KiGZV6NpVVGYqTYWaniZGHlpmKxn1Dl5cneHYCyYupKJslSZs7+ZdXaZnZmG3CGX/DCG9fGTZh6R2mx4PIWXLTyG8qiZG7+ZIwSZxCZZfreH3bqRa02ZyAeZmw5pudRpRJSJBjVp1qA44BwpTiSWrruWbhuZ+lZp+WhZ8Aop/SCaB8ppz+6Z6SmHBHB4geSaD/YaAIymlnyWb/GW3TuWobao3w2WfRyWYCCjjX2R0UWqGS1p9qlqEoymkjKjklyh0nKpzpmRYJAP+MtsiXXJYAPshvETBIBaCFLmiCcfaioyOh/oEAqmmTNQoAPzoBrjiLUjqLtfhvMciAQzpzBwpmRspaSNofayd/sZmDH7qJneiJxzhvV4puZ9al0hOj23GivPeCH7qjEVAAjpineVoAOYpwHdqia+am9QOn2iGnxmeFa7qhdcqH0clv/SiS/vahghpAhJodhoqedPppevaofwqpv1mYGzmpF1Sp2HGpTpmei/qegCqqsfWl/GGqfZiBmWmPibpv7Hmet4qgrIpDpHodsEqWTRqs21ek5FlV8fiZ7zeY9OlngBpvu0pEvWodv3qYBpmqZNisifasT+Sq+/GrwnqB2Ir/aNrKRdFaHd76rZ9nrQw3rojErfohpyEarvK6bfEaqMWKWhEyrfO6rx7qdhAqk+6aH/rKr49Wr7NmsL6mrtnGrppUrtRxruhKjgR7sGPGmhHqmhACsWzohhNXq0JZdcsaaPfqdBmLrAjYsaKmsJqKmkqImHFmsQCLsQ+isRErpuU2gipLazCblAGLHzS7sWOYsxMrriPbeM2IZ1kKgr6ZtP/3bwwbYT17Hz9bgkwbsSA7nHQns46HtNBXtWV5rRZXtJmXnyZbe7hptYdHimK7fgWaZvyGtnCbhy+7th4ytXHbeQu5s2AZtfahnwoXrEI7tLVGtwMpuIYriU+bSw47/x3w2qmH62wI66GqqrKR26aEK3iPK4KQ67h+irOc27melrjKtLjSMbCH26iZ22yia1tae7SCeWeB+7nxOX+x67apWZ+XC5Hcxn9sxru2q7m9K29Ymo/Bu6XFa7xhtrryRLrRYboaiqsuibz5WLkc+puOWrCQFrSRZq3Kq0/MCx3OC7bnWbuyC53c57nVm7pd1r0O9b3NEb7xRr42S7GgmrrsW1GtG46we3DWSr62mqsy6L/rm7vH2nH1SrnmJsD/G7ZZa4OF66eYqYcKrL7Odr8d5b7MAb+3e70U3MEBR8ASYqD+y7EeXMJcZsEZxrfmocEgun/l25wTPLsmnK0gnP+v0sumQpm5lRm6NfwgAgACJjy/iWZnNivETmjEfaa31qnC5QFlPqZkUxbFTJZkJmZjSnbFROZkTizFVFZlN1YaX/waXDzGZExlN1bGM9YZPQxibMyZDtzGcEyXxRnHdByzb1zHeHyf+ZvHfLyte9zHgKy4TBzIeXxphFxfhnzI8ZXIitxejNzI6fXIkFxekjzJ4VXJltxdmJzJ2bXJnFxdnvzJ0RXKotxcpFzKyXXKqFxcqrzKwdXKrtxbsBzLuTXLtExbtnzLsJXLuuxavNzLqvXLwFxawjzMo1XMxvxZyJzMm7XMzJxZzvzMlBXN0gxZ1FzNjnXN2JxY2rzNhdX/zd4cWOAczn81zuRsKOZ8zoSSzur8J+zczn3yzvBsJ/I8z+c1yPasXfWcz26yz/y8Xvj8z9IFXQIgASBw0Aid0Aq90Azd0A790BAd0RI90RQN0TilyNSFAEiEAQItU8yr0UHE0R2d0Rvd0TkV0HFa0iPNvAaARARg0tTV0kH00iuN0toh0zxE0wId0y4N0x/d0zX9xwIL1Dv90zPt0zZtqUT9zyR91EF9x8241Pzc1DmN1ELts1Kdzzzt1EWd1NiB07YSh7mi00zN0lltz1td1U9dlzMbMOiUK8HUL2Q91UYtL38kNS4z11pd1/UCASLw14Ad2II92CIQSnJt1VCt/3YXE0iceKaaw0eHvdZzHNX1ogCUFKVTmtkeMEge8NbkotdozdfxogAQkDkhcADm4tmxdAAhkDkPUC+gPc9UPS8RkDkXECwXkDkRANuIzdaO1y+1PQG3DSy5PQG7TS+xDc9pTdu2jdu6zduSXZ4PAtbyEtzD/SvFfdzzktztvNzV3dzE/dzI3duTzSDUHS/W7dzGDd1dfdVSC9zgXS62kt3sXdZe7avwLdy7EgALMEavQt/jHd3Gqtj1kt65cgGUxJOOA+DbTd7S/dsFDt5TEwIJdAGNreAMLi/crc6z/d36fQAPMEsTwACQ9N+tGAIizgAZHi8bfs4djt7NjeCbo/8BBTAAggSlwy3iV7TeAd7eiZ2f+X0BBcCJFmCmE7AArXjdB2ABm6PdGu7gAw7kEX7kmeMBp30AEWBGVV7iscLk4t3gAo6vBZrfmcMAEcA7AyACr8jlsuLlTs7iUC7mE0rmcLQ7ANNNsLLi8NLi5Pzi8BLctdRN5qLn78Ln4ezn72Lg51QrhJ4uhu7N3g3jH47avdLo6PLo2xzpf27beK4rln4umI7Nmv4uDjBIFaCnqL6IpKQBjtPj9u3e9nHe8SLijr05DRDZPu7bDSLr8OIAH2BFwB7swj7sVvQBre7qdH3f1sHr8aLaFhPq1TzqI+Ps4wLt0iztGtPpYJ7r5R3/IMxOQdb+zNj+QOHOzOOuQOWezOdeQOluzOvuP+0+zO+eP/EOzPMuP/Xey/fePvmuy4i+Qf1+y/8O7nFOsnPO1a/+42OO8MkO6yus0tz+4JSt1hEf5QvPQyJd8XKepBCf8LpO4BTv8d1eoNSO7yIW2speHQZd0Szf8i7/8jDv8hd9yP5s0u+V8javWzWf81my8zw/Xzj/87Pl80IPJURf9PcV9Ei/Wke/9JGFwU4/zVAf9dY89VSfzVZ/9dyc9Vr/zVzf9eL89WBfzmI/9uhc9ma/zmif9u689mwfz27/9vQc93J/zw5f90NP93jfz3q/9wB9937P9H0f+GLS9IQP/yKGf/hrrPi1PPiM3/OO//hAD/iS71mJX/mmSPmYD82Rv/lJr/meP1mXH/oBKfGk/1qjf/qLqfCqT8yd3/o8kvqwb8cfP/ukJfu2v8Sgn/uAhfu8T6JK//tq4vvC76W7X/xqH/zIX/ivv/wrQvzO36rHH/13Av3U78esf/1br/zaP/nZ3/2EZf3gL8jTP/7D3/zmv3i1n/5hz/3sfyTi//74+/3yDyjxX/8r5VQ9gCg6AAg6goOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuckT0sUSguNS8vNS4oUS0sPa2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx78sLaGjpTCnKEZqbGts02vX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHY1fT019XUakaipIEAIfkEBQQAAAAsXQA4ALYBqAEAB/+AL4KDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2INaChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5urSJNS4uTsHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29G/NYY5SkI+KTvm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wDtpfAhREkOQkp83LBxBIfDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyg9HrFxw4eSQTVW3GjSgsmSGThz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSjW6hEmLJjdWfPOFwgaLHh0EMBlLtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7dvXAEderCwgcIFKBc7jgDuwLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06c8CjuwwXMPJDhxVT8ueTbu27du4c+vezduyTRw7nIByjWMGk97Ikytfzry58+efmcwALrz1a+PQs2vfzr279+7SqQ+/fvy7+fPo06tf/zh88PHFy7OfT7++/fuj3Vcnjh2///8ABjiffvD1J+CBCCao4G4EWhffghBGKOGEmjXIn3wUZqjhhghaSB6HIIYoInsePjjiiSim2FyJBqro4oswnsYihjHWaOONvk33noMt4ujjjzfOaJsECBiAwJFIJnmk/wFMGqnkkk0+iSSTT1IpJZRXZqmlk1YumSSXRjr5ZZFFglkll2WSGaaWbF5p5ZtQhhllk1R2SeadUsoZZZtTignnm3SeKSifXt5pp5ti9mlnoFOqCeahJdwmZG0kKHDApZhmqummnHbq6aeghirqpQMMMOqpqKaq6qqsturqq7DGGisIkuq434eUyqrrrrz26uuvwAYr7LCjklCreDzSeBoJxDbr7LPQRivttL4aa9uktDFL7bbcdiuqqd6GKy6m1taG7Wzajqvuuuy2666s5dJ2rmzpvqsuuPbmq++78c4277L7BizwwAQL269s/5pWb8Hb4svwwxDrerCMthaorP/CEWes8cYDT2xawqUtzPHIJJc8rcelgUyayCa37PLLEh+744W2sQzzzTjn/CnKpKk8ms06By00zDznV3GyNQtt6dBMEy3zrSZm2/TUVI9ctGg+iwZ01Vx3ze/TFift9dhku3t1aFmHtnXZHMMAA9sdg410rnAHXEADeOet9957f1D3vmeDljZoa/8tLgMTJK744owzvoDh+QYe3dE00w05qewu0PjmmzNw+dfXUo6r1J+PuvSzmnOueuKel86u5J4N/lnhrk+b+uqct177uLB3JrtntO8O7e24N6678N72ztnvnQWPfLPEF7/48c9vq/xmzHPmfPXCRi8969x3e33/haJHjW743Xr/PfXoQzt+Ztlvtn37vaovPfv0N/s+ZvFrNn/+urJf8fAHQIPJrXKkKyDqvmc8BT5rf5fpX2b+50BXCRB3BKxgryCYI2Qh8HwaJNYFV5fBEMYsdB4cHQhNGKwRqq6ELIQVBysjQcxQMIancmHucPirGVKmhpe5IQ9DJUAPeOCFQ9zgAVVIryTWL3cQiADiOufEXflwMkC0jBCryCn1NQBcDmgAFbkYqytKJouV2SIZM+W9ApzuAAooQAPX+CozRgaNlFEjHQ+wAAD40Y8huNQbFRACDUxvj66yI2TwOBk90vF2CwjApwJwOxgicmdLNF8TL8mq1DHg/wGhesAULclJTimyPeXrEcBKqSrNWcBUDtsULC0wgcexElWndAwjJePINTJABKoSAQPeeEtQ5bIxu4xML8kYAVY1s5jFyqQqMQbNaiZPmhcLmTW3aT1sio2b4HygNy0XznIaEIUzY+IqzcnOHo4zge2M5wnNlcpsrkye+ITXO1eYz36u6piMSSZklulPcwK0AwJ9DEELGs6DJtQxC2UoNx1az29K9KKeomgKNblOjHpUUxpNJ0ep+dGSXiqkUJumNk1qUpSGjZwsxahL5wbPmF50ph/cpE1luk/ZEClRafoSUA9VpzgFik5FJZRQldqnOBHqUUjV05qmylQvramqQv+tE1LTtKenWrVRigLqV6Ua1TmpCU9uMupWg7olsSLqUFliVJkOJYGeAumueD3RQ/PK176eZ69+DaxgnwPYwRr2sAyqKGIXy1j1FLaxkI1s7BQr2cpaNjmPvaxmN4tQynL2s6DFmmdDS9rS8m+0pk2tanWJ2tW6trSZfa1sbRTb2drWRbW9rW5HlNvd+nZDvf2tcCUU3OEaN0HFPa5yAZTc5TrXPs19rnTXE93pWtc81b2udreT3e161znd/a54Mdva8Zp3QeE9r3rRmVJ7rve9+EkvfOdrtI2qlL74pW5588vfv+7XNBIIsIAHTOACG/jACE6wghfM4AY7+MEQjrD/hCdM4Qpb+MIYznBdcRPbBGTgwyAOMYgxIOISm/jEKD4xiVPMYgysmMUwRrGLQ/ziGNtYxTdO8YtrnOMe87jHGfhxi4MM5CLj2Mgf/nECctNhJKtYyCOGspNvPOMpW7nEJJayjG1cZRnXOMtHvrKOxbxlIIN5xFPmcZdDvGQO/7c0CdAymWEs5znb+c54zrOeh0zlPfvZxG2262w8jOU/G5rMdTbzoRddZDUzmsh9jnGik9zjQLP3pbch9KM3beVJc5nToM6xlD0N6UaL+tOoPrGl6Wlf98J51GkO9Z1JPWZZ2xrRp450qln8x17/sdCAZvKbSaPpWxubz06m9bFr/41kZdM412XeNbPpzOJVy2vYoyn2svWsZU87m9rgNvW2wxxtSUPb3OhOd4mt7S9si0bb42a0sr9N7nCfO96K1jW+bcxuhLk7NPD28b6RTemCE/zK3h54qY1Mb4WLud8Ua3VuAk7thm/b0dJmuMPFvfGOgxjiH/s3aCju8XKX/NG0tvjJ9w3ylIn8MyRf+Z9VDmxOT3rN+u44qW+e82C7WeK4ibnMZU5zjdu76LHu+dA/3PKevdwzcf420i9u4qkbe+cZXzq+m15fkd7XNISmt9XVfeyxJz3fIjZ7zTeNdbJPW9XCBnqmDa32es8c31avu8CVbvCqpz3rdq923L3uav9iJzvIvk684hfPeMXrvdlad3i3/x55FHNdtHK3jdBD3PjOe/7zoA+96EdP+tKb/vSoT73qV8/6xtf5zBm4PNqe3pk427j1uM+97nfP+977/ve//7bsBUd7zmwexMBPvvKXz/zmO//5vb7x8CeX+drYPsbQz772t8/97jdf+oNv78Rv7P3ym//86E+/r8H/c8KP38cYUL/850//+q+e/YKWzfE/bP/++///ALh+/BZ+mKZ55BeACJiACth9+HdpNGWAC3diCziBFFiBvgdjhDZ9k1V9tLF/GWCBIBiCIkh6XKaBvlN8m+GBI7iCLNiCfmRuJrg8KKgZxaZlLniDODj/gQ3Iau4XdAeYg0AYhPW3g9fGgYP2g0KYhErofUTYbkaof2iWYks4hVTofKQWg9gzg5mhglXYhV54gXyGheTzhKfBhV8of2vXd5W3hkAmhvCjhZhhhmcIfFPnbXOofE3ob2QIdkh4h2BYcWTmh8mXhxHXg3N3e4JofgQ3aon4e4QYcnsIZ33YiLw3dnJGibv3iC4XiYYnbfGHibg3a2w4iprodJyYbWYGitD3ZWpIiq5Yil0nfj44ZGqmis73irhoZW54Wqf4bmj3ibaoenUXjL0Hi5hniBCIfcTIeweXi85ojLPXiwA3icu4exhXZNWoe9BIfNI4ctSYjamXZSJQ/wEMUI7meI7omI4MUAEiUGPg2HrbSH3IaH3f+I6nhwEVwEC4UwGP94ygtosRBIeXIYf2eI8fJgKJowELsJAM2ZAO+ZALYEgTIAIFCY8D2H6yeIjKWJGo92H5qAERcG4YEAGGVAH+iIsA2UHz2IH1yJGihzgLYGWawwAn+YopSUMCaRk55pKmF2IwSWmllwEzyZOpF48buJKzsZNEOXo+WUsyOQE0SWNLGXpGeYLd+BlKOZWfJ2I/iXhBOZM16Yo3+UM5WRmBp5Wl15VOBpZhOYpjiUVlSRlZiZahp5ZIxpat2JYl95ZnFJeTEYHPpmN0+UdfZpchFgKvFGMz2Y96+f9nfHlHfikZczmYhHliP6l4COkBIQBjQ0mZi8eKgLluBPiAtbFl7uiZnocBhgliCMk6AZBinYmanVeVMniVnpFsgwllq3mQi6MBfhOFHxabsvmZeSlij7lIkRkZkymbJrabGdCai6OZfSecw6l4tJmFttkZy8mcXOmUwAmdiiOdJUad1SmAMXacqJSdnLGdlAl7H+ac4OmbA3Bi5Fmev1Zu6Mla6rkZZ2mfPwafisMAr+l39dmeoXmeo5lTtMGe9gmgmkmcwQmV9rl41zmGSCkbgYllWTahideVPBYCHzCfZYaXjal1+YlMyQkZlFd1HNqhtSRknlag9rmioomRBUj/jyUaec6ZYySaozJ3ogGVoo+hbVLWor62ozcmo3TpnjkGpJ21nzSYhj46cIapbEpanRX6hlC6hVO6dHbpbD3apR7npE0mpR9opH+EpMwGlmj6ghkahWQqpI7hgZzXoh8ZkoEnYiQ5ARXQpm4KmF0Wp1sah0CGpq2pkBCZqA8pkRTpp1nKixdahi1Znfioj6vDj34KAI8akIM6kJM6mFg2juo4qurIjsDYppuqkhmZjDCWqX5UZ+bJZTMqpRggqJHKh4iIqjh2jTSKZbOKoDZKmiyZqxN6pnj4qxiYoOp0hMTqnwcqpiVqq6uKoxtZrNB6rUynrCMFhc1KqWl3qq4K/3oJMK7kWq7mGnDSeqPDWq3OipuZ6mLwGq/yCmXpKqzMCpzY6orgGq45pq1fJ4l/92PhOrDh+Kwl5q+Fh4pmSrAMe3r9GqwKeq/5+oz76qoPm3+S2q0Wu6sNG6tjhrDvx65oinwdy5TIBrKzKLItCmYVW7KMd7EOGLHcqrL8KpgE62woq5GtOrA0xpgTe3hIlrOsymsuW7SNB7M8OK3rurPvarSih7RFeKsAS7NOW7RQ64RS24lUW7Ule7V6mLUKu7Vc27BeW4hKK7FEO7ZVW7aQCLa+qLEc+rM5KrTUWpxyG2o+e7fHRrdLS2kCq7Zre2N8i7Z2q7ebBriVSW+DO/+zhjtuedu4sra4GSu2S+qViLuVgguxy8q4aXu5XfumB6u52zq5TOu50SeF5YmvJya5uEq5nol0lemrqZu5GNu6pXu5LFuzNsa6U3u7pnu01rq7ovuvWuu7v/uZwQu6IMa7xdu5x8uztBuzm0u6zgu4jwu5Tsa8YWu8z+uo0Zu06kq4KOa52Hty2vu2rruxI2a13xu1ZwuFCfd2hyZ1uHi986twDTdp9Sqz1Ht2kqeXj2u/bJho+zu9fMhzeDtnAgxqC9yYzrZjyTq8CYu+G5d3WgdlP7ZzFqd2DZxnvOpztdu7y4ZzdPe/qsttBturQdbBHAd4c1bAo2u72Eqn9rb/hgisY/HrZ4/3wB93vqGhYUAcxEI8xERcxEZ8xEicxD4cWYvRXzUiX04cxWTZqVJcxe4bvlacxcwBxVpsxVzcxVL8xWDsxGI8xvxVxmaMX2icxvO1xmz8Xm78xuoVx3JsXnRcx+J1x3jsXXq8x9rVx35sXYAcyNI1yITsXIZ8yMqVyIpsXIzcyML1yJDsW5I8ybpVyZZsW5icybK1yZzsWp78yaoVyqJsWqRcyqR1yqgMWqq8ypzVyq6sWbAcy5Y1y7QsWbZ8y5CVy7rMWLzcy4j1y8BsWLE1AhtwzMiczMq8zMzczM78zNAczdI8zdRczdLMAcOspW6rNqxEK9nM/6nbTDjjQkxMQwHfDM7v21GIZM7njJNUnEasxM7tDJfvnEfxPM9THM6zw0oIgM/0rM/Ac8/+DJn13EgCPdDpCdDNw88IjZwFzUsH3dBB+tDKFNESHVsRFT7yLNFPqtDaY9ENjdEgjdAiXUobfdFy2hgZzT0nHdIpzRgrXT0tTdIv3QEx/TwzPdAlzUn9zNET7dHyM9I6XdM3jTw97dM7fUk57c9JrSme6SlLjc9NvUdRPc9TTUdV3c5XvUZZfc5brS4hEJEaMNZkXdZmfdZjvQCBZC9HzdFfLS4hYKm4s9bu0tYoTdEDlS9TVAF809d+3QD5CJX20tXf/Nbhojm2ZP9BtTTYPv3T6UxS7oLYsILYsaQuhJ3Nhu0tkv0qm+0ulz3MmZ0+i83Zo+3Zjd3Rj71S79LZrcLa7PLZwBza3OLaq0Lbln3asr0ttp0quy0usN3LuU0tvZ1Dpd0uv63LwW07xT0qoMRGy70ux33LyS0twy1LYlQBDoAp1d0tdu3SeK1Q+bLdmDIAgQ2VzS3e2xLdtDzd0eLaESACzZ0pDlDerANK6E0t6h3LU13Zs13cImBIminfga2ZqbMAD3Df05LfrszewzPaDyBGi9MAEHAADjBFHiBJEFDgCC4tCr7KDL5Aj3MBqaMB5e0BwpQ4F44pGZ6Qz33bjf3hzoLYBSD/kQtwAQcg4o7zTJhy4IqT2MaN20Qd3hMgkXwa3wPwATSu45nC4y0eLqbS4agM49CjOBoATJsSAOU44Z3C4z7+2kD+3RAl5LUkSa3d5L795UDtP0K+AJU9AOTsKRseLVBeylIuQmYOKqcT59Ay56Jc58Oi55oC6M7S3TQN5iq95pN9597C55/s590zAR6Q3a3iAEfU5etC6ENt6DCdLxCO1p7+6YnTAGyN5ql9T/YSAUck15vjAUrOLpjO1EGeLw/wARVQ67Z+67ie67b+AfFt2i8e65zE6Jzs6Pkj7JlM7PTz6lIN7Jek7FbN7OtM6liszlQt7faqU0pt7fwL2dH+/+uabtNCDevfXtTC4+xaDe17ZO5eje50pO6Fze5r5O6YDe9kJO+gTe9cZO+xje9VpO/Aze9O5O/IDfBJJPDSTfBDZPDrjfA8pPD6zfA45PALDvExJPEeTvEsZPFRzu4K0PEe//EgH/IiP/IkX/Imf/Ion/IqP/KjYuyWXMzWHPMyP/M0X/M278zY7O1pftp8XNM8T8k+//OXHPRCr8lEX/SdfPRID8pKv/Sj3PROb8pQH/WpPPVUz8pWf/WvnPVaL8tc3/W1/PVgj8tiP/a7XPZm78ton/bBvPZsT8xu//aCJcxyHyF0X/foFfd4z1d3v/cdovd+f1d9H/gBMviE/64fhn/48QX4ih8kjN/4T/z4kA8jiT/5AyL5lq8ilZ/5joX5nK9Xnv/5IrL5oo9doV/6HEL6qA8ep7/6GaL6rq8dsB/70DH7tA9erX/7EGL7ur8cvN/75PXtwO8jvz/8vFH8xq8byJ/8Esz8qbX8zg++1x79lwX91P+1pX79jWX92r+JO9/9eMX94H+M2T/+cC/85j/6uZ/++oX+7J/66//+6CH+8o+d31//MUIggQAAIfkEBQQAHAAsXwA0AJUBoAEAB/+AL4KDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnIYcn6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19sMp9/r7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTTgRhAIHLlzBftnxJoSaCmhRA4KQA08DMnjN3Ch3KM6bRo0hd/kTgs6fTmziTxmw6deZSqVizEhWalKpRq1nDZvU6VixSojehmgXqs+1VmDv/z7q0SRMmiWEJBhzYy7ev37+AAwseTLiw4cAD9B5ezLix48eQI0ueTLmy5QMDDOAdoOCy58+gQ4seTbq06dOAE+8FgBe169ewY8ueTXu0ZmEJauvezfuw4t7Ag/u9HSy38OPIkytfHpo4MOPMl/+OTr06c+e/oFvfzr2799PYfWn/3ns6+fPoPYfvNT69+/fwu6/n1T6+/fv4ec/fVT+///8AirafLv0FaOCBCC42YC4FJujggw4uiEuDAHYG4YUISngLhRh26GF6GtrC4YckllhdiLWMaOKKLAaHIi0qtijjjLG9OEuMNCJn3l4W8gUDDKD0mCN1NsqC45C8aaDk/5JMNumkBhAgeWJrUv61424PTKDlllx26eUEEVQZXZGxHCnmAUKeFsGXbH4Z5pnKkQmLmXC+tmabeGr5Zp3HyfkKnXyqmWeeewYKnJ+uAGooaXcOymahi+6GaCuKRhpao456CamltE3KSqWceoZpplxuGmqNVJ5a26ik6qlqbZ6uAuqrk7Haqqm0gpdqrrDZSiquvJIWqyqzBuuYr5kCa2xzuy5rGrKOKuuses1OOxq0g0prbWXDplLstoRhSyi4wlZLrqitanqugOauW9masYDpLmjdovLtvH0hu0AAASzQprb4MlbvKfcGfICvFUR5AAQMPGqwZQObUnDAtlow3f8AFrj5MLftbtzYqBqIoAApIogir8eSRVzKxPhi6sEFg13gQakop9xxzYY1um9fae7V75YA4wyYyqSwPO+dFTxw2AMVuCq0Y0SPYrS7a37g2AcnPy3wzVoH9kAImDWmQAhKX9n10FyfrbZsUYsytbtmFxb32sOlTffdprUdytt4902Y3qDw7ffgfwH+ieCEJ36A4RwgrvjgjDv+eN+RT245tbhdrjlllW/u+WOdfy76YaGPbrpgpZ+uel+sZb7663ylDvvpss8+OuMA2P5668XpvjrjJNAU1VBQbUX8Wkq9hfzywgtv/PNctSQ989SH5RZTQulEV/FFSWVVVGdBvxX/U+Qr/1RXQI1l/lfrhzW+WnMV79JdKtVv//3456///vz37///AAygAAdIwAIa8IAITKACF8jABjrwgRCMoAQnSMEKWvCCGMygBjfIwQ568IMgDKEIR0jCEprwhChMoQpXyMIWuvCFMIwhLQSwCwmU4IYSyKEOd8jDHvrwh0AMohCHSMQiGvGISEyiEpfIxCY68YlQjCISS2BDCejCABnIQAKyyMUuZgADXgyjGMdIxjGCsYxo/OIZ08jGNnIRA2v8ohvnKEc6pjGOdmQjHvNYRzuCcY98DGQWASlIL+4RAbpAQCHNSMhBNnKRZIQjJCeJxj/O8ZGMzOQb+7hJSlbS/5NlxOQdOSnKNgISj5IMIyJzoUhQuvKVsIylLGdJS066sZS1zCUXV4mLVhpSl8CEJS6DScxCnrKYtrylKf0oxmFmkZe38CUyp+lJZ1Lzmsw0Yx6t2UVuDnKZyaTjI6FpC2mG0ZvnxCYt0anOdi7Sm850JizOyM5vipGctTCnO/cJTn4Cs55yrCc8P7nNfioznWXEJy306U9QxrOgkywlOwFaS1EO9KDZHGU4L0lGhc6CoQ0tpkDfydGMhrSk4jypKz0qC5CmVKXN/GU3O4lRQQ6Toq/EKU5hqkuWxsKlo9zpNVEp05dClKd6RKpSC+lTWAB1qTGFqlSnStWVJrKq/P/cqVBNGklrbpWY6MQlN4+Jxqa+4qlYxepXHWpPdV40rXY0qyt8GVa4JjWUdnXlWvNKTbm2QpoTDeZeYzlYo6IUrNis610PS9OOXjWXhUWoW90Z2Wm+VbJRtaVYudrWNvqVFWgNqkFtKtXK8tWU8zwtHz+7itCqdZ3t6CxiBcvHzRq2sdpcI2tV4VrVDtW3gSSqRUs63KMSlLFMfSxwG2ra2zaXtAd9Lk93m4reIlO6usQuZ3P6S+0uN6HK/W5Wg/td74q3rOG9pG1nWtOi+tOrpzXveSdJXVRYl5IPxet8YUpW+e43rumFahz969vAsve/SK3vKQA7VQIfd78DRrD/VBVsivtKuJrtpOeFNwxeVl43w0UdK18jzGHgUrgU+nyug2W7YhCXWLwnJoUiW/ze7W70xTi+ZoxHYWGl0ri2i63pj3Pc0/QOmbz/PfKIgRzk0coWvR5WMnQzy18ia/S2G96xKHqs0kZKmbbutfJ5tRwKLpPUyRG1p4aNy138otnGVBYpk68cTDKDwszrROoe83vjlH4ZkpctsZ0/gWcxx1mb1CQxZs9saGIOmgOFRrJqCblWTFJ0j1skbJ8bvdoAP/jGRP1tmAv7yDUKVbGctuujuXzTA9OZqqGe7acjmeqlrnqZsV70WM8R2VLXGse3PqqlcZvYME+5qns+9q9p/xlsIudar3D987Kf6WnmYhmZsvjzSKcty2Z3+cmL3rRmNQ3tPBsT3NyGpLe/fe0XW3OL0k73Pastb8jO+sAqrjcy171ku3oZoRdoAAMGTvCCG/zgBG/ABfRta3pHu8QZSxeeLMDw2Q6T3xWfpTUvIPFBLfzQxs74KzGe8WQTswFaKgABLJlZVBKgAFpqgLJFrt+LO1ykwRAmNhs2AQK8U0sMoHlISS5uYjPa6MUWNc+LDm4MAF3oDSV6xdf7yqVD8ulQ56fU0U3TYSO6vWzeq3StDlCsIz3rRfZwaQH9WjFaPYuyyIDZIcze4qoZs2tmqyodzvImi3MWIaV01bU0yf+5J/3uUSVxvEd+81fr9/G0nvmza0zKt79xiw/gehfnvng3M72TXpfu1imr+dJ3mZ2Wt6cFGBCANgK9sib39efriOrOd3H0lKf7LVP/zYxpwGqZJqPh9VxiUeJ+krlQ9NnPy3suRnwCHggBGodveujaXqlEbzWYOZ36NT4f6AGANyepn2YQr7fvtHbw8dHOZjby3NRd/L6Wfj8AMZIfrKmYad6JvG5Kox/R26Z74rRH71cK8jcB9Gd/ExB07NdO/PZvb1ZrGAB4XdR8WSR/rCd+XnR/nldl7fd1c4Zb69eAs9R8W/R80YdZHEiCR+dInIRxYseCY0R2YeR7H1B/MQX/RisYX0UHf7ZHctfXaLyXaavXehC4g2n2f5skUbRnftM0gjI4eBNgRpnnamGEhFEYS9lHXgAlXZO3eO8HgmmEhUn2gWEUfN3WeGVohW/VXBZoR2Q4We0Wco5HRmiohWpIc5MnhnP0hnQUh4kGZ8R0h2yUAIQIZb0UeBwGULznTSuohBl3iF1kiJRoiNwEhVFIVnbUfZTCRfeHfpqYTEEIS5I4h9Smdv3WdnzEcz53eZDHRQQAiFc2irJUip6EiSclbaG4SCg3AQWQSqTUTPT0cjHXZo1mi5SEi9aGUntoboLEcR2HJx8naVZoZchIX3nYgnrXXs3YVj9GAAlwgNGo/yUUR4tTdY3qlo1yGIjVJ2Tt2EUBh3DyOI8KN4lZaI90RApppIyCaIoa90bZ5kXEcGzmqFLBV4laVIkKmUf8uIjLZ22BNnv1ho6LBIP3KEuv4GAFSYq1BIQSqX8XWY0hGUsUmVyoGG4jKYMsN1znt2kKeYglKUgNmZJ+Z3uQmIPfFZOBNJPO2I+zaIbbSI00+YTqyFPwx1gBqI0655B+N1U8uYwYZm83eWFU15QgR1VPSW7K1GIbSXpWmWpZaWW9BntD2VdFOXM+5o8RmIRcSGUmV5a7dJbuVkm7UEiuIJEtmVa0qFtyGYIf1pMfKZRgF5Sy1JWzFJbFtouptlWKCf+XcXmSbPePyLVhwOiYWteXh5dJpzZIoBBZ3GCZfLh3kHlu+2SYQAma9sZGFomarIlgHhlYpilvU5l+kxWbHZaIodmaaVlpTLeShNlwo6mbwulvtxlNHniahamSJIiYh6d9XaeW0PmQLvaVV3lv38Wc0/lq3fiKHDWbsLaU0Xla2BmVW8mOazicpTeeVLlOTIieQ4eZPvlw5UeX5zCU6plX3tlItMBF8fCbjXafKDlpdQcO7glKAEpbjSmglNSZ1VmgY8ScpgVf9WZJtilelwif5qmZZ3aUDsqUboSYR1ah2clhB7mOqqlczpmbyRl2HaqilPmhGNqgXtloXyWiedX/bFX5T+T5ji26mPMWnLlImDYqauCpbwdaUeHknQLYo7WUABgAof6Ja0zqmE56pJGpR0o6pVlYpTEqknKmpTClkzzFpUBKm9yplcipisTJbkeXomNEpri5mcfJgkNKpHU4iU+qjtjVa2AqYKTpjcf1SHB6C1ikiCu6dugWkfGZpnrJhpF3doNaTn0ajDzanVhWkHwWUpGaT8pZYJP5RhKqoGipTZtKCxtwQ1QkRaq6qqzaqq76qrAaq7I6q0m0ATJ0q7iaq7q6q7zaq776q8AarMI6rMRarMZ6rMiarMq6rMzarM76rNAardI6rdRardZ6rdiardq6rdzard76reAa/67iOq7kWq7meq7omq7quq7s2q4vJADBIz4gMK/0Wq/2eq/4mq/6uq/82q/++q8AG7D5uhMg8K2ScyoZYLB9k7DeerChwrDd6rCcArHcKrGWQrHbarGRgrHaqrGLwrHZ6rGGArLYKrKBQrLXarJ8grLWqrJ1wrLV6rJwArPUKrNnQrPTarNigrPSqrNVwrPR6rNSArTQKrRIQrTParRDgrTOqrQ5wrTN6rQ0ArXMKrUzkgAKizdY27B9s7UR+xlzwyleW7FdCw8kQABom7Zqu7Zs27Zu+7ZwG7dpS7XhYLUyMrbsQAI9Ux0EQEPzYLctgrfrQALkQQD1ALiA4QD8sv+4jNu4juu4DtAdgqsOhBu2ydG39IC4fvEBGjCOXfJ73DG56UC432G4mcsdMOe5X2I11iG66EC63mG6f8sdM7OAFXC7uJu7uru7uaslHrAdrnsOsNsdsisPmssXQEcZesFzwGu2hXu43JG8ystzlgscwWsOw8sdxRsPx7sX0jsZCsC8reu8pQu92/G9kyG+1XG95ZC927G98NC9B4C+kqG+1MG+5OC+1gG/7yC/9BsZ9hsdGeC37aC/fGu+1vG/kBHAzDHA72DAk2EBHqABC1DBHrAADMAjlsG/7uC/C2gZDLwcDuwOEOwYisFzGsAAH1ABHvABBfAZHNwOHpzBlRH/wsoxwgX8GSGwJaBbAAsQGjHMDjP8GAEAM31hw8mBw3nrGQrQNPNnNT4MxAhcHd87AKsQAp3LunuBxMihxIP7GU6MgFD8w6ARxOswxGHDFztiISLAJRbAF1x8HF5MuTrMw2Msxad7vh/MF51xAQGgAATwF23cJQ2AGXEsHHM8umCLwndcxlNMHd+rAEwTc0rTGXqRuhNQAVgTcwdwyMGRyK8LGgogwS18AD5cvY1hxuowwxYiM1wSfXyByQ2gF5s8AQKnJdsBysI7Ggtwg1HsyHmcwAuoAAOANaDQuVqSMLL8G5hcu7lMwEssGr1symQMw48cHUAXAQ0DCvziL/O3/yUWkCaYjMvWgQHQ/MVMzBfT/MvWHMxUPAELULu27ACWXADITI5oIshc8swPzMuN3M6zq8dbAst+EQA8p8WAIQLOXM7nTMegwRkfADYhgNCXocrp0L0DwCUMACwhADZpDBieDBzm3M/l686QLMaisLca/BedEdK9MdIk/Lwmjc177Bec0RguzRv4Ow4lzBwWjQ5oTBk5vRs7LQ49vRw/fQ5BHRnLS87rS76xe83MocCPMdS6UdThcNTKkdTm4MELgMqCkRje3LwkHdUzzRzefMEVvNZs3dZuvda1W833C9XEK9XLscOq6yUe/dRlXddnLR0hwAAeMNiEXdiGfdiGzf8Ae83XMV3SAX03WA0OWn25Dd3BZfsOJbBycrvZnN3ZcosBkU0O8vshoR21l/21Wpu1kK3adFPaVXvaZJvaXCvbqL3as23btd3arL02rr2so+0hva2sv90hwZ2sw40hxY2sx30hyX2syw0hzW2sz/0g0V2s0+0g1U2s150g2T2s240g3S2siKsA5F3e5n3e6J3e6r3e5R0c4R2sBgDbGbsXigHW5XEgikG3ykoCaME9AvvfAB7gAj7gBF6vUUE/5VrZ+qPg7trgDv7gEB7hEj7hFF7hFn7hGJ7hGr7hHN7hHv7hIB7iIj7iJF7iJn7iKJ7iKr7iLN7iLv7iMB7jMj5w4zRe4zZ+4zie4zq+4+kKAmJab482rvGdK7yz4UN+KhbCONp65K+i5NnK5Kri5NgK5aci5ddK5aFi5daK5ZxS5BrO5Zbi5RkO5pEi5hhO5oti5heeO7mi5dVqAPZdIZfh5tRKAT/uW3denBvO4OAaCAAh+QQFBAAdACxzAEwAigGMAQAH/4AdgoODGxKHiImKiRuNjo+QhouTlJWWl5iRmo6YnZ6Vm6Gio6KfphKkqZqnrK2Wqo2sHAKEtbaDCAe6u7y9vr/AwcLDxMXGx8jJysvMzc7PwwO60tDV1r0DILfbhBTLCuDh4uMK1+bB5Onh59/q7u/w7uy68fUH4Pf48/v168na3Lh520ewoMGDCBM6o0ZNoUNmAAPeGviwosWLGDNq3HgsosRaFDmKHEmypMmTvjx+HBQSpcuXMGPKVKZyZYdcM3Pq3MmTZM2VOHs+bCi0qFGfNkEeXcq0qVNgPz+2fLqPKNWrWJtFlTg1q9evYB9uDRg0rNmzaM2N5VY2rdu3cP+Hrd3WNa7du2jn3mqLt6/frHpt1aWq76/hvEkJ8T3MuLHOwEodS54cE3I3ypgzI00saLBmlAMeXAhBurTp06cvPBigwOpnlJZZvtYZYoLt27hz654Qotzsypw7/35ZTlrt3ch1hxgOPLhnv65lHk9OnXdx5rCDd3iuubDI6dWRL8fuMrZw8i7Bh1eOPrvz9ijVr8c9Hv5mztztV5Q/33Z9/RyZtx2AJPHX338EZiRgfgkiZOB8CDZo0YISZlTOg+tFWKFDAi62oUIYhqfhhwh1SGJFxvW324gnFkRhiw+FWB2LMM7zYo0JyUgdjTiqpR2DPUKjY3I8BlnNjUYSNKT/eEm6+GOTBWGogQY7QrkPklaa86AHF1zgAZFZsoNlmNUYyMAgEXBTJJnImMjmNfw14EAtDaz4pjVu3imkbgUAUwB7ej6TZ6DNhFBLb8AoEAKVt61JaDCDPqqModtME5Cjkqb0ZKbLHHemIL4l+gAD/u0SKqdybYoqMrVZwJoxrVnA26ptauchrb8oKgKsvAwgwgW4GhNpsNaceg+xxAyLbC8KaDfIssnaCu20FSlL7bU2SovttgRZy+23zowJ7rgQqUruucuIi+66qb7H7rvFqAvvvLrISy+83t77rr36rstvv+fmC3DA2g5Mb4fRGUywu/n04/DDEEcs8cQUV2zx/8UYZ6zxxhyTQ1PBCu+rHQeIwGLyySinrPLKLLfs8sswxyzzzCyzsgEtzuas88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz37fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+7556CHLvropJe+N85OC6D66h2s7rrqptv0euuwv4567EuToPvuvPfu++/ABy/88MQXb/zxyCev/PLMN+/889BHL/30yBuQwfXYZ6/99tx33z0G4Icv/v/4GHhv/vnop6/++uy377735Mcf/vv012///fjn7z4AAOjvfgIZACAAryfABBhwgP5LoAIXqMADOvCABDQgAydIwQpasHv8u6AGN8jBDnrwgyAM4QQzKMISmvCEKEyhCleIPRKy8IUwjKEMZyhDF9LwhjjMoQ53SD8b8vCH3CtfCIUoRCAaUYc+PKIRE1DEDzbRfE9UohQ9mMQpWpGDCLyiFlFYxS168YtgXGAWO9jFMJrxjGhM3xg5WMY0uvGNaFzj+qLIvjbC8Y54tKIc4ec/O+bxj4DU4R4v6MdAGvKQLBzk+8pHx+0VEpEVbCQkJ6nICj5ye5I0YiYnyUkPVpL/gpfMACM7ScpS5u+TI+yfKVfJygqikoGhbKUsWbnJAIYwlrPMpS6x98oF4lKUuwzmKnuZvyL+8nq1FKYy30jM9e3RmKpcpjSV2Uz9YeCXo5ymNvFYzWIec5vgvGM380dC8IXznJ0cJ/7KmUx0ujOOt4zmO+cZSHXe75v0zKcUm9lO9F3SnPoMqBLtycfz4VOgCM0hQet30IQ6VIYL7aE8H0rRIw4wou9raEU3ekKM7m+iHA2pIOMp0pLu0KPt06hJV2pBlH6PeypdZj9ZKkKXQjF7MZ2n0Gj6Pw42Mac8DSr+bIpJmIJUqEj9IFHTB9SkWnCmy1yqP4/q1A22M4pQ/9WlVA1K1apqkJ8B3ar5mkpTqJozqwIVq/f8+ES0JtWt2YPrLtWKwa4WFalZpeM45ZpLuhq1fZLk60ObKNi0klR9RSysVwtKUb860q6LnSMGQlCAD1j2spjNrGYvW4ALKFarh42s/SCwABWFZwEQeKhjtUdWJ94VkqU17WmRidC90jajkBXtSzNwAdto4AMFCK5wh0vc4gr3A4zyLDDDGlrdIlaIf5rAB7AXkIti74kfsE0BHGrb5X7UufTL7gS2C9hbRHe6CV0tTnMLXu6JtwBwZWQCzsvd5raXsRl4r/7o6918qreF7L1v9vSbP/7WFrD6ay1P3wtQ+/H3s8O0r/+Az0dg/BnYsCC0oRD/S8/yVXh7FyBAYs13Yeb6r5+PbKtuP6w9BiwgBOozMIRLyeEMxHLGzNUvHUk1gQpEAH0l1idYySnPAao4rs5lcfZ4PIHfEoDEtkHvgTMc4Ota2alFVDL2mGybF3vvwRj+oIJpquXrcfk2PsZkkP2bQBRXecJlzsCZbZNm7WFgzfTEKFTHXFIhxvnMXu4enudZYz6v9M+3cTKUpVtfKk/4pthDdI9/rMhBv7PQbxbwnwMN5Cg/OpmGNmmcQ/DkGHs6vRJ+9JWvp2MLn3rKi7RfqEsa5/ZZ2p2YVnX69AvABrvv1ujMta4prF37FRHY56zkAxP/OGsY4liFWS52gV8dZipmeovPXqGHpe29V54326RUp1ybHVJk75rb1Sbjtdvb2yYD17jwhvcHvjSBC9y2v8F+oL6X3cd1V3XEooytbKmzANWm+tPzA2YEBD5w3aDW4AoEtb/bi4ELVHazGMd4Z8Ftyu4ydOKRPSsv6ZfNigp72EEkBMdNLGaQi9bXQfTqyVHOwJW7Ud8B3LccZ05zO+P359vMKs97TvSDF/3oGiQ30pduY5eD1+ZA3y1Llc70o1Nd21Xf5tWzTvOtc33YXv+6qsMu9gmTvex9xi3a147vOjqd7VWHJtznzscnnp3uQV3j3fE+WEhfd+/hXHnJz/hs/6i/NqVvR7Lh87h49A3ehIFtuywB38rH3zCvkve7By1/RcrTsPFSBD09PX/vCyZz8Zy/ruhNj9CZkj6SMUfsEAlPwdV3PvE4lKvtM9/B3dcP3Dj2fV1fKPzSn5j3Phdq8GP4ehYWvvh85yrrY8h56EMe781/KvsIa/ztU5/ofDW09VM4fsdXdMbjxv0JUy/N8u8S4GrnYeRjjXw0YlXAR/4uEN0f/S/GlP8LBIAzJICIVEvZJ1AYgDtgI32upUnF1H80RG4EmFATWEoHqH2Hl0YwV3sVSEoXeD9mBYGb130l9IH4s0lE5H31J4I/ZIKm14FMl4Iq5IJt5j4wyIJE5v98OChSNJhD7LeD1NeDKviAsneDQCh3IORAOadzTNiEEuSEUKiE/LaESgiERgQA1gNC8rOFXNiFXviFW4hM42OFRmQA1HOGaJiGariGbNiGbviGcJiGUWM7tVA7qAM7gzA7t2M7fNiHrJOHtFA7rTMCdKiAhniIiJiIiriIjNiIjviIkBiJkjiJlFiJlniJmJiJmriJnNiJnviJoBiKojiKpFiKpniKqJiKqriKrNiKrviKsBiLsjiLtFiLtniLuJiLuriLvNiLvviLwBiMwuiJeDiMPyMAG0AAyriMzNiMzviM0BiN0jiN1FiN1niN2JiN2rgBxtgzG8At3NiNO/P/jdiiAOEojjlDjtdijuioM+pILezYjs7yjtTCjbcjjzZBj9ASj/jIGRIAjv0YHP+4LecYkDYxkNhSkAb5EQh5LQq5kAHRkPUIkQcJkBTJkBZ5kRGZkRq5DRI5LQ/ZkYTwkdASkiIpCCS5LCZ5NRuAAdr4kjAZkzLpjAJiNCmJLCtpNf+YMH5BAVlzk8SSk1UDlD35kxy5NUTZFz6JNUlJK0JJNU15F0t5NVGJKk85NVUZF1OpkwrBk/pxlVKTlXCBAEZJkF8jlm9Blkx5lFqDlm6hllTJlmU5GXDJlT3hlXEBllHjlmmxlUPZE8YyAHhpFnoJNXyJFn4JlTwxmHl5/5aYkZhYWRQKcAEM4AFTcpmYmZmauZkMEABFUZhPc5hnAZlhWRQBwCgNhxwa4Jk9AZpOI5pmUZd/KRQVkGibeZu4iZoVIBSu2TSwGRayqZhCQW+sCQ0BYBsewJuOSRnBGZk74Rv0dizPIA3IqZxe85tg0ZylOZy2wZjGUJ2tuZwbER3SYCwPQZp7WRTReQ3gyRO9yTTYSRDS4J37gJ6GqZ62YQ7tuRPvuTTx6QwXsABT4gEEWqAF+gEYYZ+hiZ8ToJ8TkJzheZ0aISu4gZlNNiUWkKBzyRP0Zp7NsJ860Z9K85/LIAIVOgGsKSu7ohEK+poM6qHMAKI5IaJJQ6LG0P8QqNlkKKoLKroRLeqbDOqgEOqe4lkR7ZZoO3oAPcqiG7oT62kNMjoTNIo0NooM4oWkKToBK5oRPwqfQSqdxIAPESACEdALUSoTU3o0VXoMV+pbSbqkXNqkOvGkMPoLAfAlHlCcB3CmMZGmNlkRxXGcJ5qlW6qha8mdDYoNw3Cnt5Gnu8CnMOGnRbOmxEAN9OamhDoNhhqXiHoAteAAqgEMXpIbXKILkPoSkko0lDoMvgEeVJKpTHqoPRGdhBCgD1qounABjKIBIrCrwHKqLpGqQ7OqlXoAJoqpPKqlPiqnOUFv1KAABZCjPrYLuoqcwDKqTdZuQ8qfRXoRD9AABPr/psoaq5w6q/l5ABBQm7qhAX2yKMhZnIyqow9qnV1DrMgwAKUFq3Eqqxyan15SCxRqGwzAKI4qnfEKrCghrEJjr6zKC/marLhqEV3qnwzaphYgCANgq7iRp7XAGge7rSHarRnxsEo6rvtarhy6DQzhAMjVZXrKCwoQALEFsjMqshhBsnC6qXY5q7bwKqZyAAFQAdP6C9QQAQh7EgobNAx7ozhrsjo7mzz7LMpQDr5BnfMaofU6Ek0bsRUxsSPKoMBSDQNwtCaRtECztMbwsAOwpPTJDl5bo1/qC1SbDGRbEmb7M2hbDA8QAdSwtw+wrPzqpN3ZDMZStyRxtz6Tt2F6/xJvS6VxCw1je7VEKqGU0bhqupi68KTMwBB7KrncSrmTYbl/iqghEAGme7qom7qqm7rHQbNSarOHIbqTWhR1kprU0QD0yjWK2xOyq6pFEQGXarukWqZYq7uPyaw5EQENsADM27zO+7zQG70WQLzFi5THG7h44bPV25bXi7ITCbqS0bvDKpfYyxjiu7Dk672Ncb5Km747exFtK7HIi5Owaxjse7buC7UaEb8Kcb94m7/CGbrzG5T1exfzeQD+m7gA7JwCXL4q+TUtOZMSPMEUvIwu6ZIEUJOza5YneQu7+yGIu4sfvCEhrIsjXCElnIsnLCEpjIsr3CAtfIsvnCAxbP+LM0wgNVyLNwwgOUyLO/yVHezBC0yRP2wfPTyL+liSQWwLSfzAS0wITUy/T1wIB8C/gXLEspiMFbzFXNzFXjzBWCyL9zjFZFzGoDPGZpzGarzGbNzGbvzGcBzHcjzHdFzHdnzHeJzHerzHfNzHfvzHgBzIgjzIhFzIhnzIiJzIirzIjNzIjvzIkBzJtCgAcVjJlnzJbojGu8gBdTowHCCMUWwwYVyJoTwwo0yJpQwwpzyJqdwvqyyJrawvrxyJsXwvnxyMtUwvtwyMuTwvu/yLvQwvv+yLwfwuw9yLxcwux8yLybwuy7yLzYwuz6yL0XwuswyJ1Uwu1/yI2Twu2+w2iN0MLt/ciBwQMnJ7M8AoAOVszjA7zosoACPQOyAAAphcz/Z8z7tDzySgz7wzApJcOpr8N4EAACH5BAUEABIALGwATACYAY0BAAf/gB2Cg4SDHAAGAIqIBo2Oj5CPCJOUk5GNlZmYCJuVnZqOnKKej4yOjKaeqpyhBpmirpKglqyxsbCvl7quubybksDBl4vEAK+Utq21n6TIvqyWvrKkzNCZxLuhvZHLqra0393OjiOF5ufoHRwH7O3u7/Dx8vP09fb3+AMD+Pz9/v8AAwocSLCgwYP1FJRLx/DcBgUKEEqcSLGixYsYM2rcaHBhw4+C1nEcSbKkyZMoU55UMEABB5AwRaqcSbOmzZs4MXqEyVBmzp9AgwodenInT3Q+iSpdym8f06c5jR41lxSq1atYs6KUOpVQVa1gw4od+49r15Bk06pdu9bs2a9s/+PKnfvTbVe4dPPq3bvR7lS8fAMLHhzQ71HAhBMrXtzOME/EiSMynszXcUzKmDMLtgwSslrJmkMP5vzRs+jTqJWSbmg6tevXNlf3hE27NlDZ6TbYznqhgO/fwIMLL3Bh91Xc6HQbt/phgvPn0KNLn/BhOVTkDq0TBL2x+fTv0qtrX4rdnPLxSr2DX08dveqzSN2/425TPfvv4uUHLV+otf6T9t0X3n/7wXeOfwSSFKCA0OWX4E38efXgTwsy6JyDE9IU4SDnZVhThRZi6GFKGwrS4YgqgcigiCiaVGIHJ7Zo0gAqCsiijCO9GCOOHO1T43038qiRjkKi9CN7QRZ5Ef+RSpZ05HpJNkkRk1Jy9CR4UVaJEJVaZnQlfl0OaaB5YWr05XRZljkQl2pSVKMGGkDZpkVszomQih5ccIEHWNo55ZiF7OgnQSAuEAE7ESwA5qBbAkqIoIwGVGEFDrjjQAVoRnpQnZpKGh597CyYZqf1cEqqP/ZpEMI8CoQQ53OjniqPqbLio54HAdgTAJ8X1lqYoxz66ukEDBx6TwQM9MoOqMLOCqyJzf7TXAOVNtVAe9HyQ2u28XxQQEAFxJrttty+49QB58oDarrlzkNuu/D29SyM8da71byQ2qtvRe/u629B/f4rMEABD2wwPgUfrLC7+C7s8K/PIvjwwy9KPPH/whVfrLE9GW/scTwdfywyOyGP/HHJJm+McsoXr8wyxQ3PB9HMNNds8800N4vzzjzXPOjK+gQt9NBEFz10s0YnrfTRflacgCnZRC01JtJAsozV3OhydTJYd52112BTfcnWW4sNTAJop6322my3rfbUcFuNDDhzi6MJLlOXnbXeWPMNjN/K5M31LrCUIsC8iCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuOeu++689+7778AHL/zwxBdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/+//jkl2/++einr/767LfvPkMIFCP//PTXb//9+Oev//789+///wAMoAAHSMACGvCACLRfIjLAwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCDeIgRGa8IQTxIAiUMjCFrrwhTCMoQxnyMIElJCGOExhBlaYwx768IdADKIQh0jEDN6Qh0VMohKXyEQg3vCGTWQiEn0IxSha8YpYzKIWOzhFKm7xi2AMoxiV2MUxmvGMaEyjGctowSqq8Y1wjKMcQ8hGCbpxjngE4R3zyEcyAoCDe+yjIO04yEImsY6GTGQHA6nIRr4QiTZMIiMdSckPThKClxxjApYIyQhmkv+SnyRhJT35wFCe0JQZCKUpUZmBTfqxga4cpShPKcs26tCIltSgKnE5wVgycJUYDCUkGclKTM6xmISsJQpRyUxdBpOXEIzkM2HYSWXOUo95RKYDtflLZ1KwmRcEJgV9ScRqNnKS4mThJ7nJzR5mEpzTjGcF0xlNaOrwnal8oDmtmc9rjhCe3pQjQNFIzmTKcJ+LPKMbobhOddoziu3sJz8lWFAhIvSZEV3iQh/qwYxCdKItrGgQLxpHjxqSlSYFqQdFCkSSqrSULUwpIIOJTJnScKC3DKcFWfpDl75UhjYN6De3KUmhvpGnPhymNoNaVGPiEacG/akJkdrDarLzh0z/DWFWc5lQpwJViFAlpTwp6kKqMtCXPl2mO734UbU2daxEzWk3dQrXCpoVh2m15S5NuFVsSpWvQ40rH+8KQyjmVY0mfWIi+2pLHIbVq40dKhQJO8Nh/lWrl51rA/HJUchGdp6dvSBlD/rHs2a2o1i8I2NF+Fg5jjaGlr3ial84W8A6FqanrSc9A6vBw+ZWrJgtZG3x+Fq6fta3pdyrYOuq2SCiVLi/FWFxH1naVrI1tJsd43C/6tTtNlKaRURuW5sbXdxyNbvl5eB0XWhVhRLRu27laBXh+13TvtK+6ZWrEhWb39Sut4XipeV+0fvZYy63v4W17n0VTN4Ev3Wi9O3v/39ZGGDoGte8CM7vhFFYYTBGGLUFvvCHM0zWBcdyxPHNJol5e2EWgzaDGz5hh7VITNlGt7VmvGGMTTjj1OoXpKqV6IpfuOMR9tivzGVtg10cQxQvecghLLIIj8zdBz85qgTG7o9B6+TLSpmO1f3yOVsMZZCK+YNUBrF7getC74K3zCg8swfFu1EsdznIKfbslbVMZjiXlZNhnqk8cTzgA68Vy3r2c0gBDUu9YvjRNaWxod3bZS8zGr/QvCRDx6vmmwrYgXJWNKbLGWh+BrXSD4RAA15lIfBooAEQQLUhQ83BNN/WqIf25wshwKtW38cDEBC1XS/NYB8LGdGc/TQTr//lHA84+9nQjra0o/2cBgh7nMSmtbKTrMg7vioEx46qG0PgHA1cu5fZPvd5E73BZj/wv7zCgLbNnO4iylTWfBahu+9aY16pO4LzzqCt/+lQIN/Q3ZvuqL9P/O+AYxCR/550uFno7q4+0N8RBzWx04tni/ew4h7FeMZHPUSID3GPlcZ3uyfggU43EOMlVPkcHX5Bk+/WthL3NBwrbkJ/yzyPGzapyS+r3Pc+kOcRLMADcs5AkY9citWd+J4lquktvxjJSqbtCZGeXQwswAMiYLrTM05zCw79uiH2uBVtigGuP1BRE1hAAEZdxbFHvOwVHHrM8331tIMV0UR0uwPh7hz/Cywdw3Zv+MbX3XerM53MMg+q4BtI+GaHfe8Xd87TSS7ox0vw7EzkL5ObiAH6In3TlX+O3Od6w8Sr+7+q1Sbo1/5UBzdw8gxMvXNWD1PXbx7n/Zzk7Avd3I4jVuohxn0GUg92Rvr+2ninoM35HtNuo1D5lTd8Mp8v7ICLPoLDj/h2QQ5TuPO+gtwX9Y4zysZAlh756I3oz10exGYz8uthx2D6FR39CdaxxtwmS12mfEpHWPv3ezk0cAgIQuTHVQcIZ3JWTAjFVPPnSPbHVw9YZv33eaXmeQu4dSx3ShkIZZS1NgDWgR/4Q8rHQSM4ZEilNqlUevIHfiiYZaKUUcNl/3xv9H5cN18bBHMjt35TVoMC+Gi8NX8ldHpGiH6at3kRWGtEmF915ncytIJ0hQEtuGIbSIONxmm1F0Tf1ngTRG4TYG5OWG/ix2Y4xGwsN21u+Ia9Zm1niFVcyHloVIE2mEO85msCAmy/F2M310AKaG+EyG5ABAEVwGp8GB2vFmx/iIbHF1A56ETqlYKiBYla12S6hk4qRlRTKIav5zZtg1dRaGNol3VT51YNZYlZ5EaD6Hhqp4mzhG8+GFwIJoqjWE8mlll4SH+s2E2htIUQNIG/WIwIdlGYl1C9aIzMCEIktYzNGI09VYrSWI0v9YrV54tHSH3WCGfYeHJ5CIri2P+N/SVM1JhGOEiOadhb52h0zjSJ6jhy3zhI0BiPczSPhuiFgGeP14aPO6iG/Jhx/uiBM5RSnxiQ1uRRA7lWKIeQT5dSgzhbz+WQFLmQmZhCySho9UiRcKSAKreRHDlRxBiSJPlRpoSM8MdlJbmS09iFS8iSY/Z7FgmTNDl6LDaTjIdrnViTW3RHOKlzKSlYIMmTaPSTObRbQ9mTROlARqlrjraU6tiUawaVZTaTSUmVCUlh7ehIGRmOWHlSHLaVBPeVAZlwRiaWX9SVqUiWEPaSUOiSqCiL3MiWOSSMVYWWpDdPatlYV0mXp8iUeDmOf+eXRKZSgRR+GdaXhHmWI6f/mIsJZo0ZgI+5RlGnbuvkmH1Gk4g5mdtGh/+2mZwZmm8pmqRJXaVZSZh5RaC5Tal5mlC2mq4ZjU4Gm7H5b4RGWrXZjbdJTXaZm0QHRjzUmjiENtZlgpuUNkUEg8dJnK3ENmcFg83JnAUXksG5mO/HizKYndopg7TFndv5neAZnkyFCAlUnuZZQLiINgCQNufJP+n5nqLIP9H5nu1Zn/Z5nwWEAO+zn/zZn/75nwAaoAI6oARaoAZ6oAiaoAq6oAzaoA76oBAaoRI6oRRaoRZ6oRiaoRq6oRzaoR76oSAaoiI6oiRaoiZ6oiiaoiq6oizaoo5zOC4aozI6ozRao9oj/wAjQAE6qqMg0KM++qNAGqRCOqREWqRGeqRImqRKuqRMKqQ7+qRQugE2Sjn5Ei9SOqWSU6XwcqVYCjla2i5c2qWO86XlEqZiyjhkyi1meqaKk6bZsqZsijhuGi1wGqfPMqfNUqd26ih4Kix6CjkwyqJ96it/uqcGMqi1UqiGehaIKiuKyjgl0KSSOqmUWqmWOqQkEKic06in8qiLYwAyQgCgw6mk4qmKA6otIqqfQ6qdYqqJg6oooqqew6qa4qqIA6sjIqudQ6uRYqvzgqseoqubejC++izAmiHCujm8yijFCizHOiHJqjnLOijN6ijP+iDRmjnT6ifVCijXmiDZiv8522on3Tom30og4Xo54zon5Wog5/of6Wo56xoP7IIj7Qof76of8Vo586om93oW+Sof+0qlxIo5AeseAzs5/Vom/9oVB4seCZulBXs5DzseERs5C5sR3BER9QoQ58IsTNGwU1Gx2nGxXjqxlkOy1mGyj5OxGqEAEVAAFjCzNFuzNnuzOFsAEQCyTyGyR6Gyy8GyYyoWrrKI7KEqYeGzPAG0xiG0jeOyGAEBimi036EBEAAWSgsTTLsbToumYVEAzWYBHzC2ZFu2Znu2Z8sr36IVWQsSW1sSHbsUXbs4UHsRFlB47cCz/HC3E2ABWGuwoTqqYcG3fosQhPu3FEsU+6D/D/TAEkExt206uIUXtwBxuGwLuEMRAAwQJ3DobMXxE5CbOHVrEZZrEApQuljRth/xthrLhgLyuTkRunIquX0rEah7FarbEKx7EQqAKdEBdiIQvHxiAcErAlcLuoILFrdLEMsLFbnLELtrEWT4u6DBJyJAFLIbM1rRvALBvSGLuT/Ra9DhAe5gvdibvNuLt4arvlnxvOkQvRMxAA/wHeTbDuY7FNl7p7RbuAfhvUvhvugAvxIxABdAv+U7AdeLv+ibFf77Dw1MFAB8DgIsESJgwPaLwOe7qvsbEA9QAKviDg88FBFsDhOMEAFgwexwv0KBAQuMFSG8LO0AAXC3tuzw/8JBMcKFUMIHMQBT22wHnMAr3MJXwb0duw+J0iAHEBE2DBQ4TAg6fBC++7s/TBQsrMHKy77t8AAXELdHHB0FsA9L/BNNPAhPbBAO0MP1m8IYPBRVPKsbnLchwCcLUBzpEgCE9wGEZwEDEMYjobftMMaCUMYGEQBTm8YHoMKPK8RWUboOwLfPYQHVcgC78hzfIsOPzMc4AcgdIMgG8QDJ8hyGjMhAkb/AMroVYbl2PB1zLMm9RsMPQHhwx78/Qbl/DL5AsbgigCmhvMZCQcp8usEiwGoMEAKV1wC9BsRJ/MrRIcs44cfsoMmcTMEsN8UKbMVZcbqFF8V9u7gfMLUaIP8CoOIAn4zFuGvLQ1HBu4zMo6zIT4HNZQjKH5zEkkx4qgKy4vzIiJuyTIHO1NzL7PwUjuwcFXC87sASBQAn8SwP91y7l5u4S8HPF6zOyGvNDPwcGkDD8jAAkUwPmHwT0LzP0xzRGezGV8xydDwPQmMPHW0TH/3QIa3GEh27/8wUh+vM+LDSNdHSSgHRMD3Su/rG/UvOVqHTRMHTh8zLiUzRLizUA4HTNEHUmSsCqyIZISACuVLNJJ2+DB3UW5265iwUEbGxYY3VP13S/GvT9UC4aM3EXw2tM00UEQG2ZYizdF3XNLtqzoHR5ezQULHWNeHLgGLKFPEA4ku10+EBD5D/z5UTzZQB2GMi2BSxJ4ZNvxfg12Lc1tj61kqxDw8gAmj72aBdtiLwAJZ92Xydq5o9FKXdD6udyZgNrqnNFK09F1CNrLGtpq+Nrrf9prkNr7tNp72tr7+dp8GtErTMFI59qChbOQAQuErtL5rc3Kk63H6KOdIdq9RNqNbt3FktMLXt1s+9L9+d2eGtL+MN2+VtL+et2+ldL+vt2+1tpcWNsNmdqJgTqZea3/q93/xNAvXtqIsqussd4L9sMJoso5AtJAceownOIwvuog1urwSuvd494fpr4BZeygOe4Yy64Rw+Fbpx3Fkh4nnx4C3KAZnA3yq+4ize4kUKpTBOAS/x/+E0XuM2fuM4nuM6vuM83uM+/uNAHuRCPuREXuRGfuRInuRKvuRM3uRO/uRQHuVSPuVUXuVWfuVYnuVavuVc3uVezjgIgAEEMOZkXuZmfuZonuZqvuZs3uZu/uZwHudyPud0Xud2zuYYoJ8Yytgvww8GkKF83uf38Od7Lug1QegXGuiGTg+IbqGKvujyAACADukqIemFTukoYemJjumZPumcbhKNXqGP/unsEOoUOuqkbuoTiuqfruoSyuqc7uoRCuuYLusQSuuUbusPiuuQrusOyuuL7usNCuyGLuwMSuyCbuwLiux9ruwKyuwv4+wJCu0sI+0ISu0pY+0Hiu0moxntBhrmdx7u4j7ubZ6d5H7u6J7u4a7nvBMIACH5BAUEACQALGcATACiAY8BAAf/gB2Cg4SFgiAEiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goZ8KjCCGp6iphRQHra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcaupqrKyx2sx8/Q0dLT1NW9A63Y1tvSyczfhgjc49Ta5Ofo6errt97g783s8vP09fb33O7w3874/v8AAwpkp2/fMlYkEipcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4okcaCgQVX9BqpcybKlS1omT6IS93KeuZo4c7KMKTOczp9AgwotxrMnoZRDx91MyrRptKJGBSF1SrWqVYFQo069yrWr13NZjdL8Sras2Wdhe449y7at23ZR/5VtfUu3rtm0MsWN3Mu3r9+/gAMLHkz4Ysm4KO0qXkwW78m1jCNLHurY4NzJmDOvrLzvsmaXISyIHk26tGkLIT4D5QzPs+qVFibInk27tu0JFl7rZP3OtW6BsW8Lt537d03e4HwvXsoy+PDnuI0fR5wKYeHr2LNbdA5deHHpLZHzA/+Se3fi5MNTR6U8fT3z52l/d491/an29OXBjy97fv5/4jGD33/q7MeffwTeE+BBCQZkYHwINkjPgsropd2FGGL44HkRSigPhapYmOGIJAa2YXcdergOiNWpiM+J0KXoIjossjejPTA+J+ON49R4H4/05DjcjkBa46MhAxYZjf+Q3im5on0+OVkgf7cRKeVTUBYC2ZXcWNCRlVwec6SWYZ7jJUdglknMmIRsqeY0ZzoUQCsBQJTmm8GwOUiSeP4SJ0MPvPLAQ3f26YueUhlazZ8ZFaroLoh24OajxTAqQi0iMOQopbhEOimnwvx5wSsKyHLBQpuCWounqj7DaEUL9FfirLSKdFiWg3zaqi9nMleLAwmlumssrA5LTJwDNGrsMMUuG0ygwEDr7C/NTmutergKouu13CqYbaLdhhtQpHyKa66R38Zz7roTplsuu/AaQ2689NLobr345pPutvn2K8y8/gaM1r0CF7zmvgYnnCfCCjfMS7UOR7wqwxJXPAv/xBZnfGu272qML8YeSwxwyBlHiogoKKes8sost+zyyzDHjHKk6dZs880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7443aDIPnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrHOeQAawxy777LTXbvvtuOeu++689+7778AHL/zwxBdv/PHIJ6/88swjjwEGzUcv/e7Qz1798NfD/vz0sm+vu/fch+88//PZi2/++d2nj/76sUNfvvrsZ/C+9PPHX7v78Nuv//78r1999vUjXgD7F7vXFW+ABLRe7hDYO/wl8IHYax8EgTc/B1JwgrRjIAYjuMEOnk+D4gOhB6MnwgaO0HzlK6H8mqfCE+aPfi7cYAtxN8MYHvB3NbRh8nLIwdttL4cW1KEPxyfEEQYQfL7joQeVyMIiho+JTHxgEIMXxe850YoA1N4OaUi+K0rweFVUoBWFF0YvmjGD3ENgGc84vTKWcIZrZKP+wpjFFZqwh3JU3hGptzwRxlGPGPwjFbcIxBTikIR55CLvgLhCQe7PkcCrlSQnSclKWvKSHNEdJjfJyU568v+Tg9EkKEdJylKa8pSiPKUqV8nKVl4ola6MpSxnScuMwLKWuMylLmN5y1368pfAxGQvg0nMYhozO7a73jGXycxm+oWLzoymNKd5kfvJjprYzKY2h5gBbXrzm8wcJjjHSc5ZirOc6EwnKRmozna6E5RItN0750lPSk7xfvXMpz5JtMh9+vOfoaQhQAdK0L5Qr6AITehGzqnQhjp0IQx9qEQLqsGJWnSiCLyoRhsa0Y16dJ4d/ahI0/lF2o30pPkMKUpXmk0typOlMC0nO2NKU3CqtKY4DeZMc8rTaB60p4HBHVBH9NOhakeF79MgJBW5yH7u0qlG1Qj27olGMW6xgQ7/hWpUMYLURl4wg1utyE3DupGlCpSsYyVrRdyo1kzmrq0LteYLKQhXW761rh3ZKV4Bk9a9KiQABfiAYAdL2MIatrAFCMD3/NqQvu7VARWgUnwqACzGUqSOJrVsRSIr2cm6NJmadWxdAzAbBpzmtKgVDQNmo1hFYmCf/5OrS+lY0sxqliGfLYBsGNBNsUYkA6udQAFuOxHRwvUD/antAm0XnA/09qGxXa4dz0dciSAXNztsbnV/e9ftJiR717XAV2unXYU817vGRWkLw3tH3JU3rH+EnloNyTv2VvG9IqUq+uS7VxGyV6sKcWBzr+ldENZ1vcklI+0GPNSr3s675pXd/3+ZGwHfDTiRIzRgVfkoPs0y0L4P8YAGPkCADGj4dviFcIQXe+D6Jth2HlBICHZ3YRvWsX433rAdK6i+13pEv/uVn1/3CLsJ184DtKlAhd0rG+c28Ys47nFBZXteFSfEyLRDMm1GXGLmNlm5LoyudNX4WW76OKgOLqmVGYJlhsTYITMm75cPCWXXcriGZ25lmfecxKpa2aVYnt2bGxLnBc/ZfmZN4Il1TGXt5bmafOYvemcXaNlpeTZcVu6F8cxnDJPxso8Eq4rB++IjJ3nJKD70GBE93eUyEMjpezQpAezdCTtk0IVutexqTMimytqbiKzemhdS6diJmMS8S3FPzf867O8WG3YWWPL1AsjrpsqwzxzONu0WPcJmkwADzw6eslWcXqOSGrtg/l21jajrZLZbgEJWZbnJGm7grdvX7lbquz8Y7xLxz9skmDATxy3SBBj84Ag3+Efmbe4il1rB0Fa1HP3YReut9XkYz7jGO2zl69Vb3V9OtFVXzVSSW5ub3fs1P7s7auiF99XJlngI2zvHo+6bewDX7QR468MSBne43mb4Vkm729QavTTBnUBrpz1XkYewmNYUdoFrx9nOdqcCq3b6GZMakRKCROgxvSf0IGt16FCW1rC9IfOaPTvAHvbtcBdsYpNoWSpvFdY337an9447bqM8yLBjKW113EL/rfNdeX63eEDlGtUq8jjd9QM4bod4d+Ml/vBG1LjmMb5JsOMV72nGvOipKHmHGJ7voEfj6cNXelyCPvVeHX0bW88Qp78+77JnI+2/jfvc+0/tQlT5ReM7xNXP8eTa/jvpJclij+KPtu4DYTz5J33kl7z5xvR8TaVv/EYr/4pxhD3Owx7+AXbf994/vHqf7GhAPj7S6I/f+Wt3UuK38eTzH6SNsU0/Se9eMGaVf/tHXf+3F+8XfwgoVAW4gHGlgAz4gBahfRAIVMx2WwKYgEUkfHblgBNoEeInQcb3gfiGgS/VgWXVe30mfX0hgq6We8R1gSToRR0hgcQkcu4DEZi1/3Whxn4EpIEUQYO/tEaOx24mJ13Wl35GeH1JaEb6xEgsCFrA9EY8SEQxlFH0tHpEBkjuFoNcyGi2tVLTF2TP14VkeDzzNHgJ9ISHB4MymF9OxIbpNnFaiD5n2GO+B4dlyH9pFHgP6INDBka8A4F4mIfGQ1/Ax3gmmIi1B4Tw5WHLx1UJyHQoiEeHqISEGHrJZ4lIOHKXeIR3RHGd5oUQ14mhOEHhh0J6GIMOBIpxGEKDSIWauIWeiIFSSIr3l0dqOF6YGIu2GHyJ9IqHBGs5WIoYBoyiyG+9qH+zRYnXRozJyIyBRH2+eIAkaIzPuITYGH+52InUCEHWKHqJZnujyP+F33iN5jiHsuiM57iO7KiL3siCYuaL7Xg7lyeN8liJgLeJ2jiP0EhzRSh7S+VI5ciP4JeKmciLdEaE6PiG6aiOA7hE+IiQ+niMbBSGUxhm3QNpqEiQDjleMNeRzziQ8MaRXWWPL2R+nMiRKrmSFVk7rfOSMBmTMjmTNFmTNnmTOJmTlAM5PNmTPvmTQBmUQjmURFmURnmUSJmUSrmUTNmUTvmUUBmVUjmVVFmVVnmVWJmVWrmVXNmVXvmVYBmWYjmWZFmWZnmWaJmWarmWbNmWbvmWMiEAcDk1AqCTdnmXeLk5c4k0I6Awe3k0fZkwf2k0gWkwg1k0hVkwh0k0iSn/MIs5NI0ZMI8pNJHpL5MZNJXZL9/CARvQmZ75maAZmqI5mqRZmqZ5mqiZmqq5mqjJAYzpl9kCAqBCM+CQmfnyLbLJKbT5DbaJL7g5m68pmLEJnJAJm7iSm5Sym8zQm/Xym7oZnIY5nM9ZnMJ5nMRJmcaZJcj5KMq5DMxJL86ZnNCpmNIpntQZndY5ndhZndp5nZiZnVCynYrSncrwnfESntw5ntXgK06Cn/Opn5JZnvl5nuSZnua5nujZnur5nuwZn+4JNPYJL/5pKPSpChHqEvz5FhPaJxWaChe6EhlKFxuKJx2KCh8qEA9gAQvgASzaoi76ojAaowtgAdLyEyP6/yYlegonChAPECtlBx0LUKM5caNqkqOGsKP/wCRWJyz2QKRMEaLeQqA64aMNcAFWeqVYmqVauqUNIBsLEBROGiZGWghI6g8+OirGcAFeCqYC+hIB8AEWIAJyOqd0OqdzshMAihNnegxqOgFfChRh+g8FoAFU8gHYgqA/sadpuqaA2qYq4QA+WqiHyqBAoajF0Kd/aqOOOhCRKhuEugBYylkhcKURMKkQKhSWSgyYyqYGChu28amvEBylOh1SmhOpOgyr2qitqhKEWhuw6gqyihNjSghlig+3Kgy5qqm7KhAicBu/2grBSquIOqWygaaXyqjKqqArUXVb5qexKhuz+v8SwzoIxXoPxxoMyaoTgVoPnYpp3gqs4CqseVoT5woM6TqkmwoQSdetmXoA0Squ8/oS9XoLDlAAInAT94oT6xokzvqu0Bqv0kqpiVqtvvAAwdUA5pCwNbGw8xABDduv/+oS4yoI5WoPA0sLg7IQFaANGvsSHDsP7ToBz+qvEAuwtaqnFAsLEHCnsgABDlEBCdGyLvGy8kB0/PqtExCuIhuwLnGrIkCoDMCzrhABC9EASUdZQtsSRCsPzXq08Jq08nqzLzEAlvoA3KoBBWAOERCpueEASccAWcsSWysPF3BpMxuypvozJcuuOVu3DzEnazsb3wFZDdGv+LqsKoENIrD/ondbs0srtgJbrQPwAQxRAHb7AWwLC2RHG4arsPnaErECso6btz6zt/TgoyGwr5RLAhHArbOxugsxAAPArZ27sZ/LEqGLtEpLuj1jujDrENbaCiFwaRNgqLMwAF2Krep6uyuRu1+7u3gKuU0bEebwAMlbALeQvLXrssyrEs77sGAbsacaFAtwEQEgtbQQtysxtybrsDQbvjY7rbb6V4vqvoerrbbqvngbvfKLsxMQvLiqvPfroBMruvD7uP1Lrzl7rfbruYjbtPo7uvwrsdT6v3wqwA6MvzhrwNC7GUwLugusqhhsuw/cEgygAQzwCh+gARoAAWGbwJFrwfW7vUPb/71cMrId4LvrILtUuqU+/MNYqr2sqsEU+sEscV0/Ch3Gm60EfKAUnBM9msTPEaRD3MQDCsMv8QCYuwBc3MVe/MVgHMYL8AFCyhLaoA3sOyM4rMPGksYussbwaR/yWcTS25w2fCVw3KBy/KB6G8frMcccasT3ecdSkscJasUNAqUTU8fgScj3oMg2QS2CLKGOLB2QTCyTzC5uLA+XvMO9YMgFSsSBzMiDXMJFmsnrsskeAsqOWclFwsoBasplAsuW6cpAQsuaacs8gsu3qcs3wsu+6csuMgDAbMeyLKaofC6qTB6yKwvF3Mi4MgKsOc3UXM3WfM3YTJquScqUfJml6//H3owzbDws4fzNelzONzPOu4LOPKPOrcLOO9OXnYyhiwHPOlOXeZnP+myX9tzP/vzPAB3QAj3QBF3QBn3QCJ3QCr3QDN3QDv3QEB3REj3RFF3RFn3RGJ3RGr3RHN3RHv3RIB3SIj3S1CGXJP2WG2AAAAAABtDSLv3SMB3TLC3TKh3TNn3TNj3TLc3SPL3TOg3TM/3TOD3ULr3SK03USP3SR53UTO3TTU3UQv3USR3UT93TSm3UNf3SG0CUEkAyOoEN8ywBXC0wZ+wWSyHWQ9nVXv0VaC2Uar3WXdHWQfnWcH0Vcg2UdF3XVXHXP5nXeu0UfO2Tfv3XTBHYPTnYhD3MFIbNk4id2EGx2JDT2I79E5D9OJI92TlR2Y5z2ZhdE5rdOJzd2S7x2YwT2qLNEqS9OKZ92iqR2oqz2qwtEK6dOLAd2wAx24hT27btD7h9OLq92/fQ24bz28BdD8JdOMRd3PNw3IST3MrNDsw9OM793OoQ3YIz3dSNDtYdONid3eSw3YDT3ceLGfPsIeD9N+Lt3dtw3n6T0lIt1Uud01EN3/Mt00Jt1Esd1PVd1Vl90/sN3zvt1Egd3wL+3kNN1VCN1UWt4Aau0ltdNYEAACH5BAUEABIALGMATACsAZEBAAf/gB2Cg4SFhgcHCgqIiIqOj5CRkpOUlZaXmJmam5ydnp+goaKjpKWdA4yLBBKsra6vsLGys4y1tre4ubq7vL2+v8DBwsPExcbHyMnKy8y2qKuz0dLTrIvN19jZ2tvc3d7f4MLQ1OTlEuHo6err7O3u6uPm8rTv9fb3+Pn62fHz/q77AgocSLDgun7//hlcyLChw4e4ECacB7GixYsY4U3cmLGjx48gxW2cGLKkyZMdJY4kh7Kly5cCVa6cBrOmzZvoZM6MhrOnz5/JdO6UBbSo0aO5hA6FhbSp059KlwJ8SrVqy6hSWfVUkLWr169gw4odaw5rVqto03o0K1Wt27cO/9kuhUu3bkC5Qw+Q3cu3r78GgAMLHjzYggi7FfHu1Ou3sePHGxsghqh45uSKDSZo3sy5s+cJki83rLxS9MPMn1N7Dm3aIOmRrXFxhRwLterboGO7dqx7oW3cqVn3vst7OMHfwFcbj1l8eUDkyTkLd37vNUfq+6BH1zwd+zvrJL3n0769u3h24BOex0c+uvn16dIrhF+vffL39MHJ95f/nX3g+PXXzX4UCcjOf7gFaKA2BMqz4DoI3qbgg9c0aA6F6USo2oQYLmNhOR2Go2FwIXrzIUsletPARBymaMyJ1LjYzYoJtSjjMDDSdKM2NP5j447A5CgNkNn0+BeRzQjJE/+SzRg5z49M7qIkPVEq46Q8UFYZUXNaHnOlOVl2WcuURInppWYL/EXbmmxmRWYsZp5ZgQPyVJBbnDhyiWcwDXzwzwdhxvkmU3sOAwEiqAijwKGFBqlno5BW92iklLYz6CuVZvrdpJp2aiKnnobKD6iiluohqaam+iKqqrYazKVTuSrrqo3NaisxsLZy666O1srrr1KyCuytuWo17LFjCousq8WesyyyzT4LrbLSmhpttcBee4sp3Hbr7bfghivuuOSWu8ktzbap7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNKMswM0456yzAIb07PPPguwsNM5AGzL00UjrXPTSTDft9NNOJ6001E1LnTPVWBdtNdFRb+31zVmRAAAABhgw9tlop6022mW37fbbcMf99tp012333XjnrTfecvft999+7y344IC7LXjhbQ+ueN6Il73445CTwAoIGVRu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrF+eAAatxy775yBMPvvtuOeu++689+577rD/LvzotUtA+fDIJ6/88szHnkDz0I+ewPOyF3989Nhnr/32uFPP/fe4Ww/+//jkl2/++eiXLn767Lfv/vvw92598PHXb//9+N+/fv789++/6fT73+rmJ8ACGlCAATxg6gh4uX8o8IEQjGD79ifBClrwgvqzHQY3yMEOko+CGUigB0dIwhKGT4OZ854JV8jCFoZuf9FwoQzrV7NYWA6G5shADVsxQxMmAF83RGHLekjE002PHODDoSyKyMQmSu+HSzSfElnmxCpuDor3CqLxLIcxK3rReVhMCPOm6LEvmhF0RxSj5lS4OzIO5YxwhGAa7aXF63FxJXHMoxzDSK86bk5hegykEfk4Lz82cGWCZOIc62VIzO3QH4ns3yK/wkbOVZJzbnRFJDe5wUl6Zf96aLyk5jL5Ck6aMoKe/MrsSEmWU7qyealsk+dYuZFX2pJ8hJQl7VCoOUDekpOgPGS8GmnJXxrTfqCMJbyI6ciaHfOAynwXMzPHimdaE37RlKIQH6nJa/ovmlJZ5TZn4s1yKg+ckJnlOGljznY+cRbno6W+3OnKYFoOnemsnDwlQM9+Ys+e79vnEP2JP4AKU12ZE2grCcrQyhm0csPU5zpj2NCK9g6faxrlRDv2QBFaNAMYdUznFBqwjzYxpLrMgED551GTuhClfhnpRg/m0pNWUl5aJIHnCMa7ltbUfTDNqEQloNPONcZ9PpVgUoGZy4iqlBVFNaq7fnrKoLJzqFH/5ZzKMLjURFo1n0/dIkRTiryultCsr/yqWDCQVJJSlKpwvWJTlznU670xrnh16FylWdc7OjCvgHXdXtfE1s25dRqBrVwAGsCABTj2sZCNrGQjywALBGCTahVp5SQnVh1+rKOVE4EGtkNaEUQys2HxHGftyi8zBjAApI3tBC4rSNTGdLMzZaQeLaAZD4ggBMANrnCHS9zhisADmrHA5dA6Q3CWb7V+nWceGaAZ04LUcgkMYFJFoBkGeHWw7bIcdMfKzZHsbgGaCUHwnsdczYUATd+VxnNzS9ZToncCIZDdeyewgPhmEbedTWzs7pvf9i4Xc/vtb23Byy7x8lLArCOw/37hu+CxnDDAEF6dhGOXYP/OA3sgzHDqNpw6V3S4wlNVJ4ZFjDoSs+7EgbRtLAx8uhCTjsYfdXHmKkDb0MFYjzDdno1ZXDoXJ1ADrBgAOX5cQBwPEoh9JfKNMadjzI12Ah5YMoVjzGAbRm/IUhZdlS935e72eHNMjqOM+TLNMI9uzJZD8issMADOpRmOawaLYR/s5jent3IeLTNnsiyLO58xz7CQH5/7HDo4V07QmyF0LAxtRqtmD8yM7pyjMyBnV9DZzlsGsgqpIeRFZ9pzmxY0A87s3lDnMZrTi7WsZ/1Q32H61JpLdW9LiWZXq7nLCI0yrhv9Z87Juc6go/QXgf+txtzd+rrDzsCmeTw6ZXsR0RYWdnmXuenSWduK2Eas6JZK0kx3m3TfrmJQac3uWKuOei11K6PPXW1f41mUnWu3vttI322vid6iS7cTL4kBUnPOyerrt5fDLGF8o9veh76pwaF32IdFEOA+RtNRBWjQ1Mau4iNrH8aTDfFKM/utwwP5YzhJ3QmYFuHYxQB3J+BdH+qb3Ws8uVDDylp/85p5wUONb4tL9KID97jJhTkLa50+G9O0h7CV7XZYfUqUU1zh/2LizKV+Gw1YF3TOLHVnE+bEAFigsZNNu9oXwIAGUF2qPt8LMzduTvbCO9+km17B4y5u5U1x71B2JY0dLsP/mycz1pC8+oo9K3d/9r1zhVW6CxP4X54fGHYhnzygMUf4aOc0uvIlsig773lnQ/VzC08s9UhfeuEVL6ryaL3sbX36nW5M8rNnocqvmnsBjxfuWfcg7nsvu9/30mDE7+fv85V832M9881n4u7JGf3STz9i9mMT8Yfcl+pb//n98j49r49E8Sef/Osyf0PRH3r1977c7o+/TMdeDvnbP6Hg5+H9989+vsd+/7/Tf2wGgA21fL5EgK9kgAyDgKekgHTEgATlgCgjPLyHSqxnRQKYeBAoYBlYMBvYQx34fx8YWE7ngSPISSGYaCcYZiUYfisoOkxHRM/2gvI3gzTofsZ3/4MImIM6CIA82IP394NAWIOmNoTuZ4NG2HxImITbV3sXNHxMaEAYQD2vF4USFIMzVIVWSIREtYXfdIEyFDxLKGJQuIJjmD1l6IUudIZqOGxsmD+GF4dyGIdWOId2eIfupmJ21IbJBzsYIDkxsId82Hoi9Hpj4ziQc4iNk4iM2Ih30zhm44iSOImUWImWeImPuIiXCIl1E4mc5X+gGIqiOIqkKAsCUIqomIqquIqs2Iqu+IqwGIuyOIu0WIu2eIu4mIu6uIu82Iu++IvAGIzCOIzEWIzGeIzImIzKuIzM2IzO+IzQ6HMdEI38YivpQo064ioDcI3YuCSywo3dWCbfGP+O7WKNWcM0p0iO/DErBHCOhkACFAAC8jiP9FiP9niP+JiP+riP/NiP/viPAMmPCDCQCEABBkkBBIkAn6gu5uiOhJAAA2ANWrIIAFCO7OiQgyAAECmRXVKR7NKQGKmRERknOicWIImRGxknHrkuBHCRGCkIKWkmJRkWLfmNL9kBIsmRWjKTYFGTzHKTOUmS7eKTrdKOLxmUMjmULhmSMSkmPPkVRKkqRsmUI5mU7BKVqTKVDomUTqmUNnmUTdklT+kVWGktQBmWO+mVP3mTEIknY9kVZVkqWumOXCmWalmUZ1mVXXmVS7mVaFklb+kmfUmXfxklgSkV4Fhec+mOhcn/JIe5FHEpKot5jo2JJI85FJEZKpOJNXWZlnz5lVSpk4B5l1KZl6JpmKSZlaYplJ+5lqHJmiw5mOfYmaPZmhlxAQwAaVy3GRrAABewFqtplbHZERegm7vZGRpwAacZF8G5l8OZES13nLfBACnRnA6xnLmAnQ9xmTuRmQuBClcmAhEwnuRZnuZ5nug5cxpQnWCplxghAg1gAQUwn/RZn/UZABbBnTPhnQyxGRGgncIQAZvBni9ZmQahABFwX6QVAvmZmhXhn80AAQOaEZuJNQZaEAXAdQxaEfq5Evy5EBDKDAKqGQTql+7pEB+QGgtQn7xFc/cJoALRoSPxoQYRossw/6ITUKKEeaIMEXWfUQEHkCgXwB0wahAyuhE0WhA2qgw4qqOzeaECoaCeAaSMMKR3khFHOhFJShBLmgxNSqHWyRAPcBtUighWGij6kKUJsaUD0aXI8KUYUaFQQ5sGkaKqUQESeaaJghFq+g9sKhCbwSg3OqFxGqYLYSd3Wgt62hF96g9/GhBuegxwehFy+jR0WhDR+aOKyh0e0ajz8Kj7EKnGMKkWUalRA6XZQaabeqV86qAOgQr+OREF4AC1QKqJYagGsXWaWqXcsacX4anyAKr6IKq8QCeswAC0igi2Shm4WqOJyqus+quu+hCxOg+ZygAPoKyESqnNWhCIuqtmyv+pjDqtDuGmERAND5CpaJKty/oQplo1qLoPD2CcE1CmB3CmnUquDdGlBcAKFRABt/AArlAB37oAD9CuzNmeRRoQVjqlq9oAC0sQwFoW/2KjEPAKvlULF9sKczIABeujTpo1l7oQAYBcnWGv+DqutnkRIRoCssAArLCx/pooSgYLOQqmCpsRBWCymoGy4oql+tqfmnGuEjABrvABnQYLDeCrAwAdIcuZ8WoQUeez0dqgK2sRm3EBshAA6sodhNKi21qq3doQqDCiVLu0KvucGGG0seCrBSBoFrALYHuzhZqzHmG2D5uvV/ugsJCttxABiBq3vAC2T0s1I/sQeAutaJr/DxNbDsKaD2xLDhfwm70goSSKs6/ZEQOQuOFatRwatCCqcTuBsKMxtg7Buff6s626txBBrMRAugzxrugYtQWBuikLtKxLrUPbDLC7ELK7NId7uj2bt2mrLo+LD/7pq28atrdqtx1hu6orrblLtq47DL3rGjfZAbRLENDruRDRuORwvPdQvQHKvMzqvBnRvZIRsTEKugYRnhAQARAwv/GLnvZ7nupZuHO6vQMxAAEQAADLCA7wv//JCMrbEOBLDeJrD10rnZ1BnZhrouxbEAd8wEFqtWpbEahQnA6cGsmpv5bKvx2SwNOwwO4gpLnZwbzpm8CJvp6ZwarpwrUJwxYx/8E98btaI8IYQsLSYMJagsNAE7w7wsPR4MNVAsRAo8MUQsSzYMRRgsQ/o8QPwsSy4MRMAsU+I8ULQsWxYMVIgsU9o8UGwsWw4MVEAsaGIMYCQsavYMZAgsaFoMb9wcau4MY7AscPyaOoOb2egseDIMftYMEoQcetYMc34sc4Ccj0QcisYMgygsjaq8caDBOMLAGO7CKILMQ3UsmXnCKQrMjwwcmyKbKgvB6iDJoSDJvGO8pQK8mW6b6VksmlfB6n7Joo6cpEUst4yZa4DCS6XJoyvMc0LJfZmwBIIsgH8MsxvJUaecyIorwAkI6rjMoOSQIEiZABmc3avM3c3M3eTP+PB4mQA4mQ5EwC0twmnVwikJy97NzO7vzOWtMz57wm6RwiiamOhcyO+DzNzLLP6KzP/hzQAj3QBF3QBn3QCJ3QCr3QDN3QDv3QEB3REj3RFF3RFn3RGJ3RGr3RHN3RHv3RIB3SIm0O8zzSJn3SKO0YI8ABHLABLv3SMB3TMc3SLA3TNN3SMp3TOr3TPN3TPv3TQL3TN63TNz3UQX3UPm3UPK3USN3UQF3UNO3UOz0CQbMyBoAtdmEALnPVWE0XWt0yXN3Vb/HVLBPWYq0WZG3VZz3WW73WbpHWKmPWbl0VcJ0ycj3XT1HXKHPXeN0Uen0yfN3XR/HXJhPYgl0UhF3KMoZ92D+R2CSz2IzdE449MpAd2Tcx2SJT2ZZdE5gdMpq92S/R2SDz2aDdEqL9MaRd2idx2h6T2qpdEqzdMa792iAR2xwz27TtEba9Mbid2xmx2xrT2759EcCdMcI93BVR3BgDAMh92S7D3M3N2c8d3dLdMtBN3S6h3Bdz3diNEtptMdzd3Sbx3RUT3uIdEuRNMeZ93h+R3hIjAC0N1VGd0/KN01J93xvA1Ek93/hN1Pzd3wD+1PIt1fod4C7N1Aj+3wUO1CNQ0u0SCAAh+QQFBAAAACxhAHsArgFjAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTjgMHB5SZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzJkQtWUDo3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUqVaRYtW05k2Mq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt27bE1uy2t2LFgMGvoADh/3rlbBbw1v9Cgar+GzjxZDbIo5c+CtevZQzC0Y8WXPkv525hvY82m5pz2NBo3Z7Wevq17AzE+a893RssQkk36ZrW67qxGJb7x7eVzRxtaF/r+19PAPz5tDpCo9++zlk69T5Ys9+3PD25Zbzumb7nTvjz+apl0+/e33aydPZy0Ztu7xy+Y7x698ctvXj9/shF+CAcLlHoFn3EUdYbl3FB9yBZSk3m2/GiWWgcxBWSGFdzLl3YYYNigdicdqROGJ0Hz6YH3gnwuVgdilqOCGCc8XY4nkrbkjjjas5aKOOFKboIZA8drWdfRj+2F7/ei+qV+STSwrYIoP7NZlBAlRqCCWLtW0ZYWWaYfecdetliZ+VXpbIW5pSWggglzt+mSNYZnY4J5hvoZlagUXGqCSbON7ppolkkRlWAnZCpyegHMb1J32ORkpkoYIOihuEizKq5VeGzqebfAkGGielhO5Z6VZmDvalgaEGJ6Kmh8EpqaVv9glrqnhGl+mnBE7m3aiTGpnehY9OiemrQfLoa6m8glgsrHQeixmsz2Z4JLTZ4Xomstg2alqYjq1XrZqncsrsV9rKt2u3CoIrp4rDiXliuuyt2+aTyY0ob7ns2kUvk9x6Cyl04wJ7bsHwklYrqQaj629c/3J1mQnVuetp/5RrNrdvruYK27CqaUXM3cRdbjyrxv3yRyuGRYo8MFn22rohwi+/RjPL/Hr8sbCGuUxdzCkLHLTOCa/MsKjvHq00Wj7rGvDQKrfLMXcmtyzteAHe/C3VFhcN9Vi5JZr01Hk+/TVgWmd9dshbv/Uc0KmNCfK5Xne9M4Rpd9u0ombbfC/S7OWdcceCs4nogXCDSvTaRiO3LON07d1c4vgVvumwf+NcN+RsMSj5cZRzbmrFmouuHwafExc62t1dPrezi5uucOrDrc56vEFbLrvDiPfNuNyA7y58V7TvZnuv+432HW3Dp1f8bcer3aLuW1bd+OtlPR9b9Kdfj7Ho1h+4YP/yIU7LZmnUNy+69l1zP/jdbm8e/PurLd/x0pSFP79c7L/mn/Tx2kS+xtYt/WWofz0ST/qUBT+7tU19bDuQCXxXP7xh72TNIhgEEYiaCZqPPGTz2gI7o6TTJMcmmkDV1WrELAOiLHaLWSAEO7dCED4Oaa0ioAZddzH8zXA1HPSM+341Ovn5LX5R+yGPgqgZ91WvSyi6nxGVCLEaWnBhCpNVDAuwAA148YtgDKMYx7iAAowvhxu0IvJKB7jelNA8GKjABOZIxzra8Y54rGMFSEhFrjBoRloC5PYoqDjkrCMBBcijIheJxwL08VK9++AjHYjFrixgjgwIgCY3yclOetL/kxdgwBwXMMloscyEU4yME2/HwgHRTANzDECWbmiWAMxRAzI0ViSx5iShQQ6WEwhAVw6Bvq/YcgIaKCXvCLTKUiqviDrkCjCFSZdjJlOZxKMfZJpZQClmbmUfmmZdrInNbKoql+H5oCBx503YoNMt4vReaMh5Sn1cSY0+3B8G2dhD0r0lnoxpFREzYE2A3HOXygQejAAqI7UU9B8HPR1hElcfHoaQn/mkGwihuBeGxoWezsHAPiJauYkS8nsZ1ShKOxrLsSwAEaN5qD9IGiCgobGdG20gJTG6G496ZY4WeIBZEgBSL7GCplU66TeheUGcVvKd42LoZCYwCBHU8paJ/+kHUvXDzSy6cVham4xPDUNVQ5RGplplYma6esTpocanosFjUMWCVn5slU+qVCocicZHa/EULuIcTVkNYVVO1XWkaqVMzDpVwTQ9K54JGmwhCmtMrDIKNKe4q7r0Wk6VBgauXJGrUBlzWHumC0uoTa1qseQ/zhbmpg8SEgOPA9qt2PGliyiqSE0rLYrFKmf9QmdtMzBYyi6uqEPbbQoTm1dJdnZAYw3tBOZ6VWQWZh/M3WZefJtSJD4Xni0VC24b8ZfS5kOz9dLrO7+7leiCja6WFQ1vEcpe/PyxveF9Xc+YZ158aHa1AEZta53b1Pz4qZ9/BdFwzXXWWxo0u4thq/9bYTi39SZswQ69pXL7AWHBSDh3Fw1xYAgD1/X09x7oBRiBuQal9GHYqQS17Ew7HJgPC2+ACnsxWpA7tAAHGBEpNo+NpYa52Oj4LOS0cHqATGPACEfJrYzNCXFxyQlk8pNYzvImRTkBUkJ5QE3mi4/w1aab5a0ziWSkmhfpyOeGeS/TSRts96k0VCpLjmvOsx7/o8w32yU+X+4uR4G0TpVhgItjTLSiwVjGQBPIz3UZ8jl9mcQVBfpwBe6jjwFsSma69myOXkvxwlbf99JX0KWudJz4nOon2WvObgo1tTrGWuC22tMr5hQKCXFrqEm618B+7q8HvVRLMTbYyJbLsKX/bNFMey/Z0FbLsleqxWhb+8+fJrKBEezPa0Nu2k/0trjvku0HFhnV4x43uGEH43SLm9UZWDeFs0gkWbsbVvIGF47vze8Il7uSIy52vwdOHvj8m8UWgjXI7E3woX1YyQxv+CQxsK6IS/ziHVRvgvdkcYx7fCyL/bjIv5bvkZs8qbneawZPznJXpXzCG29oNFve65LXrM40bzjFD85sABWs4znPkM3ZHfRr2xzo7Q46pAG185dDTaBF9/bRYR71545m6NfhJ9KrDi2DO927WQc41z+OdUq/NuZg2vrYQfRwGK09MktPU9mjVui3k53njd0oY8Vm9++SLOwnepbaY4hw/3einJeQQ9jgf4tucq2Rb19/IeAbj6DFv8zyO4zL3/uuPsxrE854J7zKOd/quZPP7KRfudBDD+Jmp56KTvQ85a8t+xuZPu+vH/gQnW1uneaezJ51MuvF93um6zPpYh5+wjxf+1Sbmc7zJnfkwd49jze/2shfq/KfHSzqF9/xk0cPa7bf1s9/H9i3LxTNbHT9G0ve+9JHvHrWD0C027/7zXvUDb+aynTKP7nGR0UW11ebYmcFaBvpd36pVydegRc4URUQGIESOIEUWIEWeIEYmIEaSBRXsWseSAwd8IEiiAwxMIImeIIomIIquIIs2IIu+IIwGIMyOIM0WIM2eIM4mP+DOriDPNiDPviDQBiEQjiERFiERniEtoAJSNiDl7CEPngAHRCFUjiFVFiFUSgAAiCFWZiFVtiFXviFYBiGYjiGZFiGZniGYCgATugIUIiGUSgBBBCHcjiHdFiHdniHeJiHeriHfNiHfviHgBiIG7CGjNCGbigBl5CIiriIjNiIjviIkBiJkjiJlFiJlniJmHgAg0iIimCIZygAJZCJojiKpFiKpniKl7iJnIgInniGiIiKsBiLsjiLs6iKq2gIrWiGr0iLvNiLvviLimiLt0gIuViGuwiMyJiMyniJAyCMwygIxUiGx7iM1FiN1qiJuHCN2riN3BiNYziN3RiO4pj/ic4oC+N4jugIi274hunYju7IiOUYC+84j/T4iOvYAeBYj/p4jfEIC/v4j/N4j/kIkAT5i/34CgWZkOIokArZkL54kK7gkBJZjQw5kRZ5ihDZChe5kb5YkRz5kZaYkawAkiSJih5ZkijZiCK5CinZkph4ki7ZkiupCjFZk5IIkzZJkjOZCjnZk4yIkz65kTuJCkFZlEBZlBM5lKeAlD55lEzZkEppCk+Zk045lQUZlaWghCjkjWI4kFZ5ldn4lS5ZlWK5j1hJCmXZkmSZlvR4lqPAlii5lnDpjm4pCnNJknJ5l+hYl6Gglx+Zl34pjnwJCoG5kYBZmNw4mJ+AmBZ5/5iMyY/ZCA16pmfPwJVh6JWPKZiRCQ+NuY6YmZndqJieoJU2YZlg+JkOeQERsJqsuZoQ0JquaZGi2QmkmQySJQoT0JmH+JEPUAHApGceIJubWZmwOACV6ZjvOAAK8AGTWUfBmZTDqQ61qQym+YWo+Y94dkcasADcyZ101J0LwACXoAAOOZucMJ3ngJ7IUJ1eeJ3zaAkHwJx51ADweQlz5AGWMAD5CZ23oJ7l4J/GwJ5d6J7vGQGLRJ+KeJ8gaZ6bAKDj4KDEIKBWSKDzmJ141ACLqKD1KZz92Q4QOgwSWoUU+o6/eaEZOgHPuYjkCZXRmQ4fKgwhSoUj2o4PwEgYmv+gKLqgLYoOLxoMMTqFM5qOIWCjJ+oBzbCIDKoJPeoNS/oLPyqFQXqOCjCkB1qkOtqh7NCkvvCk7CiRBlqlOJqiQrmj6XmcnjmRA1Cid3SjiaigH5mkmaCl2yCnvMCl+GiRVTafVvqmZGoOdLoLdhql6HgBYNqmOcqnWLoOf6oLgXqRFmpHbGqfKLqiY5qo0mmmu3mReQqpe8qRcEoJi3oNEICpaCio7chlnBqmV5qEHtioHBkCHpCqhiqmF/mpkxCqIuGqG2kJDyACeBapB3CfG8qhrKoODRANugqSIjBHwOqmntqnMZGsH7msE9Csh/qslpoOH0CqroiS1GqttEr/rLWAq9VArkmInP/4rUVKqbUKreRgruOKrvuorqqKqMWqqNyqi97KrJ1aqfd6qc4grRxJr7O6quPqoflqjPtarf3arv1pkWiZsNK4sOCaiOxanu76oBL7jRSriAPgrP46rhY5WMNKioOQmxMpr/ooAl5kAYvoRQtwABcrkbYqCfDqEQJbkyXLn0k4kewAn/CpsqAJjDUbCRB7ss2pZhvblUNLl2GJpoEptE3bi0ULCVNbkFJ7tbX4tFqrj1nbtbBYtY8Atvv4tWRrimLLhmdLj2a7tqOYto3gtgF5pnILmQ9bt+nYtngbkly7twtJt36rjHBbiIE7jnpbuJE4uIuA/7h/m6kcubMxqbidyLjdeLiUq5J9e7kUCbggCbkoKbmJoLnbaLmim4igy4qla42km7qnewipq7pn6rmvS46ZO7u/uLql27q4aLvKiLuiq7uFwLu9e6YzK7yYCLzEaLzA6Luai7yDoLzLy7nQS7t3O720yLyX67zQaL28iL2Uq70AwL3dK73iS4ngW76z6L2Me77oG4vqi7js274mSb7y+4jxW7+lKJCBuL/827/++78ADMD3i7+jeI9WuIVESMCm+Iy3qsAmy8AQHMESPMEUXMEWfMEYnMEavMEc3MEe/MEgHMIiPMIkXMImfMIonMIqvMIsnBIh2MIwnAkCIAE0XP/DNnzDOJzDOrzDPNzDPvzDQBzEQjzERFzERnzESJzESrzENayG57ABDhzFiygB6ADFUnzF4EsLVnzFUZzFs7DFXKzAXiwLYBzG+DvGsWCqZpy76KDGa9y8bfzGBIzGsODGcry+cXzH8kvHr2DHehy4fOwKfvzHexvIrTDIhFy3hswKiJzIbrvIq9DIjny2kKwKkjzJYFvJqXDJmKy1mowKnNzJU/vJpxDKojy0pGwKpnzKmZnKpbDKrMyYrkwKZRzLrFvFtsy7szwKtZzLcPzEvjy7uywKvRzMeAzMxszGyJzMv2wOxczMfjvMofDM0Iy30gwK1FzNcnvNn5DN2rwqttzsCd78zWQbzp0gAcVLzo+MDjPMxO78zvAcz/I8z/Rcz/aMxE5cC4EAACH5BAUEAAAALGAAeQCwAWYBAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOQDQOUmJmam5ydnp+goaKjpKWmiQqnqqusra6vsLGyhgeYD7O4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz58TZdA4kaGo0aNIkypdyrSp06dQo0qdStUphqpGr2LdyrVrUq1ew4odS7brCRoyhEIEK5Zt2ahX/zEAFYVW7bS3Vd0u1Yu3L1a+bwH7HUy4cNVDdWlAEmy4sWPGjiMbhiy5ctNkiQVpTWBZKeXOVqXKPQXa8ufSqFMfVZT50Wmur02LLh17tmqmtTNsTGwid2HfjYHDve2Z+FPhxpO/RZxWMQDkyokD9w09etfq1rNTNdS6HW6q2G1rbxo+/HjC5pEmSkz0vPv38MnHn5+XK/fmhNLTL45X/375e4knWW3+fUVMd4QkoF+BxjH4H3qypUbgMQgOwtmDA7rFFl8OYiggUh0uFVCFRV3o4YljhThZX/4R2FgxFQ6iIorB0WgjaKcxE6MgN8Km2owrBtbjWDriB9CQSCaZgf+JRzFZGCc7MhKgdUAqaeWJTpbIFDBRupZBlVeGKWZlWS6JmZHqjKnmmGWWWRkkXXoH4pp0ztdmUsPEmcmAdfbp51N3dpVAK3p6CRWYX/6pqJptnmlXJ6elh+iilCbXKDKFTjNppZwOdimFaGoSV6ek9lggcIG+5WZSg8IZqielxiorV58akykl/c2qq5ipovYIe7TtKiyntcLYXHu/feXilMM2G1+vvjZyqyi5Qbaps9hOVeyBr0aCwbVzZpXtuMptm2e3zoBL7rpNasmqo87Joi679OIFLV6gTEvKvPX2G9a9nf2KLq7+FkynucLoS5rBDJ/H5IWtgvpoNQ1XrKr/UhHbOrA0FnfsFcLBKMyPx5WCzOXGq/BL8sruIpWxsRPvwp/KLGdr8i8ik1Mzuzf7kvMnNO9scc+9/OyM0EITzYvRjmj4F9JQ/4vxeYUwvdhRy0atdVUAJ1c1yok4zZ+4W5dtmNK7ALvVa2AFbXZRbu+Hti5qH5oo1vR+M3a9XVt3FtiLtN1w3E/v3W/f0f0d8yRvJ0d4mHPnYjUhjVfeWeS4GD3Y4x7ihPkskw9CFueWl/q5LKFvQ6eUUa1KNt8YwxuNxQ9Y4MEEuOeu++689+6BBQ6QLnfsmAIu79YOLND78swvv4ADDZu8Gt3G41IgPBlY0Pz23E9gQfTESxxv/zLCe3j7BA1A8MD67Lfv/vvuR9AA7h4YxZnrwyI+veTVs1J+mLmDgG4M4RsI5A587yre4jChFWuFxmy5u8UhBCOYBxyQYaeLRepA8T8lRZAsCbAg7hDosq684lYOhFtbyvbB+sxJhBMgYbvUk7BuJat0S4kgJ7QCQzz9I4HiaxoO0aNDTRwFhgYBosYWKIkOOquIO0RiQVj1nkHkbD5OJE4Lx9LD4OithO6xYv9kETUocqKLWcRbf/bkMtlBYoh+2eKX9iRFgigRZuMTlRrT2Ce3yHGAtrggII/URgXmkYNwhIoZN1HHgdyRW0xExLfulkixfHA0jBRkXAg5w990Qv9kyOFjnVq4SUxkoJECeeS5InmISuLlj5roIv5utLAmufEjoFmkt5CCyoCosoasXMRxKOnKpOiSElfpYlY4aT94IauYkjnmI5KiTFNthRO/DNkYeyJNSlSzKMwskTOhaZluXu2UuUsiGJmSgHa6853wfNkopkVOsphzgl8xSi/DaSZDzsUQgwTAPSmnQkTs84frnArqxljP6xTlj145qD8CqowNZkNNWoEos8JVFIn2I5snC+ZE/0NKYgIIRB4dWSGDqAyWadSkUflmx+S5ykNGJDovXVJTypTSfYAUZ9s8mrAyijsIOClSSYnABe240iU6p6GFIUBRzpc++Fn1quv/g8D8JuABUdrpljyC6mC0172y8u57LKMpMOMlVvQkz6xwncDzmhXPurozfE4laFv94gDbxXV7vxvAztSqTVaOaq8fa2bgxOVVrY1GT42FHWLfI89bUfSfiOBUZL2ICHoSaSQwnSyVviZSyhEWs6j9hMJm2cfUAmS143KtPWArWgPJln+lTRCnbjsQ2oqWtz7bJmv/BNx8+FZYxaXHcWvLXAx1VrjsSm47lksj6UaEus3NLn3uk1sLxcq6xoWudsdLH7cozqatbBl5C7bZICXlvNPUqVfAm1p99ZO++F2PeNuKyfxqcL9/6q9/64HdUg14ugBer4LhA19IDHfBinpw/7MEXGAIW1g6gqjwhTecmgYTcCkSVtOB46FhDpuYMPrtriBCfOIWf5YQOxIMi11cp9Peo8RrGrFygxoJGovpIBYVRmB0vGMVy4xqRD4He45BuPYmiWYOAkxFeayN8k1yXE5Wo+MoEeRV3GZBVArte7LslQ4JOBJ1cxaZ5XNYXZ05vEZ+hXY2lOR1dBmfNlpzWDbkWGjcORykEp6eR4tmKmd2o7mC0JpCKWbQiOTPr2DMoL/sGSJv0D2TXhsGtZNXc5SqsR2sklbwCAo+OdTHi+50LadyZURXuhyAiXXNoBO0N0sC0no9NXjK/JgUaXk45GT06C7rqjgDoy2Z/hC22P+2QtS0TRO4FgWqE6mhTGwwLm3WcqtZ/SBJTxZMYhvMG7EmMGOH7XXfsZJekt3HYKF7mJJhRLRhnU8FzyjbjT6po0k7lF7Hit04CpPglPOav9X54AhPOCVmoPCGO/zhEI+4xCdO8Ypb/OIYz7jGN87xjnv84yAPuchHTvKSm/zkKE+5yq8hgJX3hAMIiHnMKUDzmtMcBDjPuc53zvOe+/znQA+60IdO9KIb/eg9RwAFlO7yRGzgAFCPutSnTvWqW/3qWM+61rfO9a57/etgp/oGmn4ICYT97GhPu9rXzna1j53shTB72+dO97rb/e5TfzvcB/F0vPv974APvNQVcAD/ve8dAH0XvOIXz3i0c+Dwg5B74ydP+cpP/fGQB4DkLc/5zgce85DfvOdHT/q2g/7woi+96lfv9dPvPfWsj73sqe56uMN+9riPfe3Jfvvc+570u296739PfMsb/vXFTz7pj2975Tuf88zn/fOnP/noC5/62Fd88F0+/Ox7f+3bX3n3v0/+sIdf5eMvv/q5fv6Up3/98L96+1H+/vjbX+rzP3n973///Jt8//wXf/5XcgAYgOtnfdynfgNggF6HgOJHfgvIgA2YeZongRYodQ6Ifhe4gQNIcgW4gdjXgSP3gSA4fSIociRYgs53giGXgr73AB/AAB7QADRYgzZ4gw1w/wHlx4Ig54KlF4EHQHgRoDx/NQEisIMU6IOxJwJFmDtHSH48+HFKqHoKwITLwwAFkIVZeD4foIUFEABImHlTWHpKxTwWMHVECIZBuIZQmIRRJw1EuDxnKHVpSHjwF4UeN4adt4AG1DxzGHVpaH942HF66HlkZYZoiDsBYIfrN4gcV4idF4dymIgToIbwl4HuV36S2Dt/CHWBGH+YSH+auD2deACfeIluSH4MQIqUaIkHmIrZt4AfwIp0qIj2F4r6V34OQIuAaIugCIvft4qIWIuVeIvA6H0PoAHD2IvF+ItiqH4KcAHL6Im+iIrPuH4XoIxn1YrGeI3r5wAVoI25U/+Kp/iK3rh+hBcCDUCE5FiN5hh6BjiL3sONzgiPASiP7diM1miP/IeP9LiPqBePuJOPrqh+uPh/92eH/kiMBVl+B0mAAjmPDNmN/Hh/C8mMDUl+D+mBCQl1F0mN+viOAXmPA/mPIol8JOk9hVCOBnmM8SePhTAALOmQLgl/IWABFhACU1cAOBkBFDmSKhiAGzmCQWmAQ4mCRSmUNZmUNHmOTHmSzfeU9QiUUtmSTlmV33eULYiVUCl9XNmUFfmV2aeVPSiWGrmU3weEKkiWUmiWWYmW5aeWF8iWeeiW3keXhGiXYwmXeul7ePmIfUl9f7lxkBiYizeYGleYhil4iJn/cYq5mIDXmBj3mJDpd5J5cZRZmXd3mRaXmZpZd45ImJ9JfKGZmKP5e6XpmKfpe6k5mauZe5xZcZ75mmrXmhe3ATaXmzaHdLzZm775m8AZnENnc7ZJgR3RcgCAnMa5nMzZnM75nNAZndI5ndRZndZ5ndiZndq5ndzZnd75neAZnuI5nrKgnOT5EQIwAuq5nuzZnu75nvAZn/I5n/RZn/Z5n/iZn/q5n/zZn/75nwAaoPtpnttAAoxImwhalSTwDSSQoA6qoAz6oBKalAvqDQ06oRgKghXaDReaoR7KgBvKDR36oSRqfyFaoCWaovF3otowoir6otnHotngojBao84n/KPYQKM2uqO/h6PXoKM8GqSy56PWAKRCeqSlR6TVYKRI2qScp6TUwKROOqWNB6XTIKVUmqWBZ6XSgKVa+qV3x6XR4KVgWqZtJ6bQQKZmuqZoh6bPoKZsGqde56bOAKdyeqdZR6fNYKd42qdUp6fMwKd+OqgHAKjLIKiE2qeGqgyImqh3uqjJ0KiOGqeQigySOqlrWqnHcKmYWqaaagyc2qlf+qnF0KByKaqTSqrEEKqoSqWqOgys2qpO+qrCEKuyiqS0Ggy2eqtCmqvAsKu8yqO++gvAGqw1qgDD6gsGaqyOmqy9kJ4CGq3SOq3UWq3Weq3Ymq3aqp4EygqBAAAh+QQFBAAEACxjAEwAqwGTAQAH/4AEgoOEhYaCB4mKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGehAeHpqeoqaqrrK2ur7CxsrO0tba3uLm6u6qlvK2+v8LDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ea2A+fq6+zt7u/w8fLC6fP29/j5+vv8/f6y9f4JHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDMeCqaxo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKbBlwps2btTji3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3AP8PVXAAt26umjnt6lX1gBaEvYADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5N+qOo06hTq17NurXr17AvlZ5Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvDm4DNCjS59Ovbp16xgwXN/O/br27t7Bix9Pvrz589sxmMxu3tp39NTfp5cuH7559c4Hga9vv7//+OXx9193Ag5o4IEI/odfLAk26KCBBT4o4XQFCrjgLhFOqOGG3SXwy3gZciiig9rJEyKAA4o14oorXvgNi+LV56JWM/oTI4jTxXPigO89Fd2ODwIJI4oK5niNkBDa1xj/kkMSuF9CGVgIHZNNVpkiUzL+iKOVXE5JYZdgBtmMCSVRGWaARKInn5lW1viOm92c2aacCLJJp3Ti2MkimcboeeefgG6Y3y1SBmoojDvCeZGHhfh5aJiO0venomoxOlOkcx5K6WhZ3ugfpmduStKjUwoS6VRMimpTBuT4CaqmCb6K5n5myqohkkAKqaohrO6jna2k1tlkopJyiWs+vVq1qzq4xjhTsmkBax+bhU4o7X7k5QqiLNDuQ14+104rbJfNYjdfsU46a0u3+mjLronBxhvluT/aOFCu53wXLpj7ctevllumi62/UaZC567/yiuuwhx2Su/ADwvsrzOaXsge/7rYJkyqxveleeexAr3LTXYqcdyfxjJqpKunJ3PD8Kwnv7ztSJ/GYx08qcr85KoN1bjsPCYHWZ2+KQno7bREuUqhTCLr+DM+QSeZbZpP02yRzuHJqS/WXPNoStM9QwqwxF17OXbZXMMJdtjkol0zVCISXSbLS4OGJ1BRw0cszAVzFXepD+V9q9ttB0ywurSsDVOEgh9O+Lh0p42K4tk0Hqt3gxbCrzdAFrO14dZmCvq8ZP89OnbLUH4koJZjbHbkr59O4q+lywoyP6oj1PXeVeZMO9/1rpT7Qa3rba7QEgpeNUPDXsO6x59GHLua5726vEjBXs9Kp0B/OWTOrt93U//2DHZ8NsSThs+6VsNXHnGF3n8cs+kf7zR49YnHL3DxWR+ofWLtA8fvznc/2W3of7VAoI+YxbKEfU56J7Ld49CFkwdizIIHbAeVFCicAC5kgtXrH/rqxoxfjQSDQwMcS/gHPL2ZBVKtqhNRPEiRgxUFfrCjjzVUiJKFQcgcz9NfCyPHQaro8BcDnNg4qiW6zbUFhusoIqG01o2/NGpeJ9HadkyQQhAWaWfvQA9dXkK6Ef4QFo3bYPR4hDzHYY5b0KsOTIxVLBOuAnwhyqMBpxYod71xGSTTxpqmdzYUDrKMF+ShKyRluWU1co8swuGtmnGiKQJMkqSTYjZoSA3+6JH/kCF0YyjVR0cFpS46AgQlij4ZQUW2gpOdJNEaW9lHTVbjYms7ZIZQ2EVqPYePR7yl/NCGKVvKokfIMGY4CCjEKCVRbqujHyKVKY0kUo+aX3MFL70IxlP0zSUsTJ7XlFEiQvALkfNpZaJ4cblvbgWb0fifNcMDT23AEoiyJGbIGqUS/DHwktz0p71QEU5SHq90f2TFPe0ZoLewC5Um+SLqtpcL9ugJLQsVxjxTaD13rouKuNBTPWeoOY6ai1hp9OgxoBgaOZKxmsE7JRsbFp+PQPSKsMrh/IJ5CPpk56dADar/prHRPjazfyPdBn+OsTKEHhSSnqSUKZviMCXiQ2TF/4RkBoWRzosU9Iz3mFdSdWcgcga0lCQ8R3dS8VUXPiNeXFQlw9pa0yiqIqMF8eTX0DlOibTOQt3jzuJa5hHw8VVM7BjPHNlBV1GSbZd0HCsh7DTHLkYSjbYCVdA6esk4iZA6KEkAgZZ4WC3SdFaalYZAWxIqYc6VpTI9T18cEtTaAnWRpD2rbjNJiwfIVTyzFcRuqxTD4Ro3oXNTo5/KIcHGHhc8GiwtI2/k3IYhMTMOeOpJn3ueduA1pMYDpq7eBJ2S7RRR/mGrzN5jWK26l7v+06l25zvEfJZVmzpz1L5oJ1l+YsOPjqXvZ7H2ScW+goW+i1sYMyDa3sk3e5cr6P8s4GvZBuEyVni7mnHHGi7+opR6BKxufuWxxngxscQFpJ+I45i+mb2obJpN68hG1K8Vk2scKBbaiTfsU6cGuL/sC1V9dYvS3Ty4nd4p6sBsDFbarJfCemMylJHmDM5OOW1X5ibjVAqNLHu5whn7nnSNB+SrTk3KX0YTe+OrreayOa9pflyZDSNiO3WYplJCsxlpbN8bP0PP9GrqmJnpQy3vecDSY3GiFQ1mrJ0C0AHWrqA7puTzNnGmRwZxfMt2xxbjqMboxc4zmXPlGls5zqg2H3In/OXURpdwkA6dVT9a6Ocl9VomS6mcN11ABKZZl6kOtpgtfL7/5ViWOxa2sl//+1u3fkjIwFy2tBVWVRGx2sfETk+ljxfraU/7VbB4src1TbgGy6tWEVZoeB1stjtjOtI6RnR+VY1tg/J0HqEOpaB5Z2mxXZjPOeW1rJ19TBhnEnTK6za87c3ohu+2mLfwtsLffehaL1zamBztICZ+wHEbfGMpvjdRdw1Qcp/T4yQiix0z9+iGcu5vHB/Wy2Lex2WqyZL7rvd79xtEab53lFvFyO8mPehjP5eWhtoXWwh9MprrnN6LnvKcI8L03Vkc5ZAb2KsneEhqi/WwBfZiOKf+4pnzVYIyD/uai471EUMjattuu8O79JUIuW/cyRab3NmenjuGtdpQ5vd2RFPn/7gLmMB75zRJtsxdpw/J3JGU0J+nWvZGcz3xmc7WMKB7tFpAHfMAPyu+OhLIa0f7UQBudp+JnPUm9ymurQ44OokO+qT33ay1P3fb2ztMLrP898APvvCHT/ziG//4yE++8pfP/OY7//nQj770p0/96lv/+tjPvva3z/3uK0UA3g/JCEBA/vKb//zoT7/618/+9rv//fCPv/znT3/274YDscm//vc/Ct1sgP8AGIAC6Ai78X8DeIAImH/3l4AM2ICooQA6YRv454AUWIGcUIAWmIEaSAkYuIEe+IGK0IEgOIIZKIIkeIINaIIouIIDqIIs+IL754IwOIOvIYM0eIOqsf+ABzAAONiDOeh/PhiEqWGDQliEmUCERpiEHAiEStiEmKCDThiFkwCFUliFBMiEVpiFi4CEWtiEXNiFSfiFYFiEYjiGQViGJ8iDZvgIaAiCariGbIiFcOiEbTiHMFiHdsiCVJiHRriHefiGPYiHfHiCgkiCDmABHqABE+ABjNiIjviIHmABQliIIGgBE3CJmJiJmriJDTCJcuiDA7AAmziKpDgBnXiGn9iDokiKFXABruiKCzAIr3gB8JAIlKiBFhALIuCFqUiDDjABusiLuWGAPpiLwaiEt2iBHiALu4iMvTiDGsCMwogbxNiDwHiMYfiMMHiNsNCM2TiMQhiN2Nj/h9r4grE4jmRYjiwoAtLojOAohMvYjdN4G9XYgyHAja3gjeT4jkL4AfLojtSYhB+Aj6qgj+nIj0KoAAEgiqxgkJ6IkEYIAR/AAPF4Cg6JihCphA2QChfpg8lIghuJCh0ZiOrogyFpkfMogVKoACdpCiOJgx85gi15CC95gzEJgjNpCDVJgzepgWqYk4WwkzPYkx4IlIQglHdYkj1olIOAlC9IlBsIlMHglHqolDjIlIJAlSsIlbjIiB/ACBTpASGQkrUxgYOYGoB4CWnZCX54lqGwlpUAl5rQlm4JCnI5CXcpG7phlnWJGnkZCX+5hLnBl30Jk3tZmBiJG4SJmEN5/5iMaZgZ+ZhVOZiSaZNWWZkaSJeYOYId+BW2eJmbWYGd6RWfGZmhCYKaeZobmJqqWYKg2ZoJyJWw2RqyOZurUZu2OYSvmZsBiJu8KQq++ZugEJzC2X+mWZyxuZvIGRvEuZyXAIERWJbOKZrKOZ20qRvjV3/auZ3c2Z3e+Z3g2QEdEH7kWZ7meZ7omZ7quZ7s2Z7u+Z7wGZ/yOZ/0WZ/2eZ/4iQzjmZ8KQQEJ8J8AGqACOqAEWqAGeqAImqAKuqAM2qAO+qAQGqESOqEUSqAAYAAYiqEAsKEXeqEZ6qEfyqEGAKIjmqEaKqIkSqIjiqImaqAUcA4JYJ0y+gmBqQg1mv8IN7qDn2Ap5BCjM/qjaGkJOTqkjQCdi8Cj4+CjQLqkVoik4qCkTBqlTeik4QClUnqlQkil4GClWNqlN6il38ClXjqmLAim3iCmZJqmI2im3YCmavqmGsim3OCmcFqnDiin20CndrqnB4in2qCnfBqo/Oen2QCognqosEGo2GCoiNqoq6Go18CojjqpogCp1iCplJqpnWCp1YCpmvqpmMCp1OCpoFqqkyCq00CqprqqjoCq0qCqrBqrieCq0QCrssqqtAoNtnqrppqrz7CrvAqqvuoMwBqsmjqszVCsxkqpyMoMyrqsjtqsy/Cs0Iqo0qoM1FqtgnqtyZCt2sqn3Ip5DACgo98KreF6DN5arnV6rsaQrur6puxaDO76rmkar8Qwr/Q6pvY6DPiar126r8KArznqr8IJsL/gnxVqoQm7sBaqohy6oRpqAAw7sQZqoh8asSsqsQwKsSbKsRZLsQAaoh67ohALsv/5sB0rohlqsgUKAAnwosUQCAAh+QQFBAAAACx/AEUBeAGbAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKTih2Ul5iZmpucnZ6foKGioAelpqeoqaqrrK2ur7CxsrO0ta4Yo7m6u7yRAge9wcLDmAMZxMjJypK/y87PwrjQ09TDzdXY2ZfH2t3emdff4uPA3OPn6Ifh6ezU0u3w4uvx9MTm9fjT8/n8o/f9AK0BC0jw07+CCEXtS8gQ0sGGEMERiEjR0cOKGB0JmJixY6GLHkMW2igyJMiSIkmizHhyZUeVA102bCmzosqaEGnihHhzZ0KdPhP2DEoQKFGCQ4/2M6q0X9Km+JhCxfd0ajypVuNVzcoOK1d2W7+e8yr2XNiy38ii/XZ2rTa1bv+1tWU3QCncuNjmtou58y5eanrR8fXp9y+0wIaXFU68DDFjZIsfI3OcsW7AyJKtccycDTPnXpQrDubn+fOu0KZzlU49CvU3BYMuMNAwAcCE27hz657AoOBq1qFci3vQm1Lxy8DNbiYYQQOm4rCXJh8nHFv0B84RWYAQoXuE494jPPA9Xd5yfnWPNypeIGd5tuf5XYjE3v37btWzqV8vqP3M+/jFl092j9T3H4DZ5IdNbZAYyNBvCGKiIDWWNdiffRECJmBHDv6UYTUTUsNggRce+OFhG9bjAX0lPniiPinSYwGLAPjn4ovPhDiNAwTyVyOGOCqj4zQ2+lgkQhAGqVH/jPVUQOKPJio5GZP1NOBIh0hKKSSV9BxwwYqLYEmellNGFEADCyQiZlFklrnSmsi1qZlLcAKUpJzqcAlRndLhGcyQ3Yw2CJ+k+fmnng0Rms+dhg4CqDbRHaJoVI3y8mg1ghIyaT2MVnppOpvS02mjn05TISKhXlXpaYgylCo8oxpaKjmvthOrn7NS08BtMxZy25Fjrtpaq8IeciueuQZ5rJzJ4rhsm82++CyZ0Z44rZbVfnitlNlmuK2S3Ub4bZDhIjgujuUCeO6L6d637ontvvfuh/GWN2+G9U53b4T5Jrcvgv0C9y+AAbM28H0Fp3bwewmbtnB5DX/28HQRczZx/3IVZ3YxcBlLtjFrHT/2cWohMzayaSUndvJnKRu2Mmct//VyZjGvNdDMktUcF86P6ewWz4xtZMvQRBdt9NFIJ30A0MU27fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpsX72BBHDHLffcdNdt991456333nz37fffgAcu+OCEB77B4YgnrvjbhTfu+NwcIELBKQoobfnlmLNCwOacd+45AZmHLnroCihAQOmop1766aOPXvkqFEiOStsiZXqI7YbgXojuhJwaKSqxHzL5KdCcSjslA0SKCe/GN8L7IKNFf0rwhgxvyvEAKR8R8LITj33T3As/+//3xYZf/fjkr2p+IdaXkr6w6xPS/vPv4xj/IPPXX+n9guSvv6H8A4D//oenAA6QgG0yIPoQSCYFeo+BDZxe964HwQiaAgETdF8FtYQKDIrvgRsMUgczSL8QTmeEH6SgCe13Cg+eD4Qr/BAKX6jCGMqwhSS04YtmWAgELFCHCAqgD2EIxPsI8YdFfM8RiZjEE0rwEEOsYRPLw0NCRFGDU1QiDqGIxCyypoqDuCIwSuhFvICxf10s42fOKMA0qjEzbDzgG00TRzfOkTF1ZOIdFWGZ5h3FgVL0BBn3mJA8tu6QiEykIo82gEU68pGYUwD1CsG4x1nykpjMpCY3yclOevILk4XbQAdGScpRBgIAIfkEBQQADAAsewBGAXwBmgAAB/+ADIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbDAScn6ChoqOkpaanqI8Hnqmtrq+wsbKzqAq0t7i5uru8n6y9wMHCw8Sov8XIycrLzAy2zdDR0tPG1NbX2NmOx9rd3t/M3ODj5OW34ubplgfq7Yjo7vGN7PLy8PX4hvT56vf8/Pv+lfMnsF7AguAIInTHbsDChA8LHoyYTSHFchMvWrOoEVzGjtI4guz2cWQzkSaxlUypDCVLaitfFnMpM1rMmsJo4mR2c2cvnT6T9QyqCyhRYkOFajR6VFjSprOYQu31dCosqVZ1Vc3aCivXW1u/nvIqVlbYsqTIon11dm0otW7/U7WNywkuXVNz72ayq3dUXmB/vfHtGypwsAULBxP+ZJhXAE2NaSlevCkyraEHMmceVEDzZm2TKWeyfJkB4oihRV8irVpR6taUWMM+9Hp2JNm2CdXO7Qg3706/cfnmvTu4ouGuHF4sbhwRctvMm+vT9oxidOmEnqdSbh17LO2wr3tnAL61eO/lVZ/Hnl70euntKb9vHn/xfOP1Cd8Pnr/v/t/96fUfbwHeNWBuBdJ1oG0JxrXgbA269SBsEa41YWsVFlbQhaplWBaHonkIygDV4QMiZSKWwl07Jy6WIlctEvZiVjH2NaNVNep141Q53rUjVD3S9WNTQcY15FFFunUk/1FJrrVkUE2i9aRPUZY15U5VinUlTll+tWVNXXL1pUxhZjXmS2VadSZLaU61ZkptQvWmSXE2NedIdR51J0h5ErVnR30G9edS47FV6F6HtjLoconK1aglgfq0aHeP4lUpJZHuNClql5ay6UOZ4vRpYp2SMipCodZ06oalturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzKqGwLMIGCCtAdFOa+200GarbbYAAHDtt+Be62245Fq77bPXQmuAt+N2W+678K7b7bjxwutuvfjeiy+59O4L7rnVSputv9iqG26/8rpLL8DhAsywtfOya20C0RYigP9nA2Q8wAEad9yxTJ6FLPKqsIxsclUrzlKSZ/po1uwgyqU8ksyMZUcIdywTIoACLvNCspLa0dOgZwIUwvNnL1/zcyE5Z9dz0q02PYjUUF9KNXlPV2111oJcrXWiV3v9daFhcz32oWUjfTbYZou9Nnxtm/02e3GrPTd6dS99tzRp6703NH3/PV7ggtNtN9aHF05g3orDfbjbjWPIeOT8TU754o/LfXmHlm8OYeeeS5554qG7CHrpKJ6Ouoyqr65j664LCXvsQI/uN+3CzY67lbrv7mXvvk9HnqiaFe006cTQXJDywRLuiALQRy/99NQ/U32Jjd4u1NXmnts9uvg67D0pwdLqS3655seb/rrlI3z+tBK/7y+969vrvvzl55/vvPj37/+7zypEIAAAIfkEBQQAAAAseQBGAXwBmgAAB/+AAIKDhIWGh4iJiouMjY6PkJGSk4gClJeYmZqbnJ2en6ChoqOII6SnqKmqq6ytrqmmr7KztLW2t7iGsbm8vb6/wMC7wcTFxsfIk8PJzM3Oz7jL0NPU1daa0tfa29zb2d3g4eLE3+Pm5+it5ens7e7Y7/Hy85Hr9Pf47aYD+f3+7Pv+CRzYLdYBgggTPrOnsKHDaA8jSuTFcKLFi6EqYtzI8ZLGjiBDLvoosqRJACRPquSYcqXLiS1fymwYkxi/mTjV5dzJkqdPizV/CnUXdKjRc0WPKgWXdKnTa02fSoUWdarVZFWvaiW3tau4rF7D3gIrtqwssmbTrkKrti0ptm7/436CK7cuPLt4c9HNy/fR3lcH+/L8K7jwIcKtAhueiZiV4sUvG0MuLHly38qW82LObHczZ7meP7sNLVot6dJmT6MWq3q119aut8KOfXU27am2bz/NLeqmbpq/gxPiLerAY+H/iKc6jnye8uaDof9+Lh0n9eoyr2N3qX27yu7eTYIPL3I8eZDmz/dU/zk9+4vu38OUnzk+/Yf27wPXvzg/f4T+/TdQgAImV6BgBB6YT4IK3sNgg85BiNeDEr5DYYX6YAiahnFdyCFSH7blYYgklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao4448tiMBAUAGKSQGQhZp5JFFYqDk/5JMNkkkkkc6KeWSUFZpJZBTZqllk0gyOeSWYE55JQFEPjnmmUGG6SWZZ5rZZZVuoilnl3HOeWQJJRhHiHF68umnnz0u4hsnzBFjHJ56vhdYoccMugqjyx1yaAkKJBroJgpo4qgzk/J56UmdQvopRqGOalKppoqEaqogrcoqR66+SuoBiIoqq0Ox3jpRrrpGxGuvuNKap63AEvRrsQkdi6yxwlq6bLC1Putrs8RKm4+y1vaDbbb4bMstPd5+K0+44r5DbrntnItuOuque0677o4Db7zhzIvKpvSSYu8j+ObLy778+hsMwAEL7AvBBRucC8IKP8PwLNWO6928f1ZsMUmgAFzc8KO0ShCnmkraaeSaIpds8sggp6zylhkk4LKVChCgwMwgZzCzkTEbmcHKYeYs881CzhzzzjxvKWcCRBc9ZQZJGx1kCYEAACH5BAUEAAAALAgAGABgAsgBAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKJKqUqo6ipqqusra6vsLGys7SXpqe1ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdqrQU06dQGTmNSrWq1atYs2qNtGKrV6Movor9yWKs2bNo025Mobat27dw/+PKnUu3rt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy454HGCAccmEy5suXLmDNr3mx5AOTPoENrlMy5tOnTmT2LXs26tevXsAs9jk27tu1os2/rpqp6t1jUwIMLH058eG/fyJMrX868uXO8x59LnxV9utHc1rNr3869+1zS1b2LH88yPPnz6NPTIl28vfv3mtXLD4V9vv37+PPr38+/f2zz/qkHYIAEFmjggQgmqNiACnLHYIMQRijhhBRWaOGFGFr1YIbh1GfThhyGKCItHo6IXokmCoaiJA00BF6K96wIgIwwdnfAAzXmqOOOPPbo449AZndLkLUNSeSRSCap5P+STDbp5JNQhgRilINNSeWVWGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqac9GGTg55+ABipoBn0OauihiCaq6KKMLlpooI8+2uiklFaKaJ+SWqrpppxymqminx4KV6idlmrqqaj+Saqgq6raaqqwxgpqrJli8CqqtjqKQV+h3nqprMDO6muwvxJr7LG4EnrosLBiqquqmu7qlbOQImsos9bSmu223FqKLaPfdnuqtE95mm2t4qabwSzDhrusuqz6SS280OKa1byzyisus+6W2i69lZLaL8CyDkwsup5edQKgtyLs6KbOGkzwoBIj+6//o2lWPHG16mq8cbP72jowvh9729qnHtdrMcn6yutuyh/DXPLMjZJbG7+JyiyssoZmQvO18f4sNKUyC7ztCT8FzDPHqeoMsNPBojz01D9DDelQIKsc9MMT90p1skx//bXVDB+9kwliG0t22i1vHa3D4AJb8drnQkwoVWznbfe2dLcdd7HixmNzULn667fehyOuOODL4ry4tuZeTVShfQ/t9b4lVx4tvd9qzvdinYMsdbojP25610tP7NPMvnqeeMGp7814t64DfrGptb97d1qPv0x02Z06PrbSBOe+M9+D8/X05t5KzDLmYJ8eu+64U8ql2q/DPqnxWQ9/6fM5y8vf/8Fuewtp5YXnK73hmQfbX/THbwz+1v1yD3y1ySeyfvfgjnU65feD3/7KN7VXeWx+ZAPguDBmlUj9rXqoU5b9wra9jlVNfcSjnva4FSmhzC5mHKQZ3AbItQ1mT4MkXBRQMhi+BabwhfKzVug+aEKL7W51YjPg/OL3vxaSTmhWa9gEOaWWIcIwchSsGwhHd0QN5u8tazNiDGlIRe6VjmpSjJlSwoWtLDaRYtDTWs2+2LQMPpEuCiRjGKk4RjWy0HzFE+FRduhDMVrQjRj8HR0Rd7kIBjBgr5khCte3RyDK8Hd4RCQH7zJIArIxkXZUpMtkSMf0VfBrrinkI5EIyfbxTf+CD6yfISdYGC+SUJNpM+UU/4i9a+0liw4sIftASEsXqtGUZ6QKF0MIRtZNr5WejOQl+Qg0T9VKMKp0ZC/zyMlOOnOWwHzg/XLZk2Q2UYfMa5k1h/lMxdkKKduMZje9R7skcis0orygOceZx0kEb3pWlJ3l3JJOESpTmEpbVQIhV8dDHotkvpunW9D2T3X+8JfexOcIMWgwVOYuoMiKSjj7iatjboKd65SlHhHau6nxrqA2TJQu4EVNYKTxnhit1FyCGTJIHvCdDENf66K1GDji06aSZKekJrrJsukzhJqM5RsD10BmtjGl4zwpUk0GmdlBtJFKjKMieco4ANZTgDD/BZRrlmlUzmH1oClN5kJzyjaooDKVMOwbVb/Y0O4IsqM5lOZGCUmwwdRKps8aqvRUudaocVWvJUvKT8u5y8V5ra9L9SlKxem+GnUVp4hywCgSe0J+VrZUgIEZX+V2Wckl46E3ZRpo5SpDvBTNj9BsXhLp0bCMLvZXZz0WaCjrr1ZEwBCQLShijwo9pHkQrLSl1SOMWigcpYOJtvzn8yJV0p2Uc5WdxV7RIvGuVuwWqn99reg4qlVCNDcnn0QuWrEYik8B41SI6ONXN8YUlvp1rI/tWifWhYrQjveEwlseq4xSQuHNtIykDSlZReUzRDWDvoK4bsHgUsP8blTBFO1U/yOsN+F7QlhsfYnXhQebXI1q6hMf5sRDNaZUPuaFsTm15MH2+NRJBYO7wRUwwzLJ2+xKl5vZFGkjvkuIxP1Cb2+tHsoME1t5kq+ZRAsFggnRokqgD8Zs++/n0Ak88fKywxF1RXRjXOMAV/UsRQ7eZlmZ5FqY9xALEARCqQkq57k0x2XGyoWRyuNDEBgaQuWySov6PSgHbc5jo8SfgpEyFcfYyn7aSjG7qV6SDoOkeo4w0Op8HpZZ0cmQaLIrWqznkw5rjtg1qHuPrKpJUFoSqYX0lgs9RUzdi9Sf3LJrF22xbKxNFFEt7VIAjeX4zlpYsFgyADRdiRfeLtUG5ksf1f+a1bjxmmKyyFRBFpur0p0aKW2OdOLc7NlRGFpl3xzuNfXs257U0s+iDh+HZZWIQtqsT6YeZZXXCzDy6BfAjRX0JrZ51i7WtTl5BvK8d9plU1GiV/o7paxRBZvcantTqEjAoMoR5m2jNlVQAayR8cgMYbN2wH9MjFdpV3FQEosVKXMHnG0cagnrBYvdxO24JItndLccYorRK6LzFk6P6Y8WVywgc2qI4kj/ouRkPrR9xYcVoj8c5D68NiYcbDmNc5blgvJfV53HbcvutdvlNfkAeXrsS51F1QVP+qjZ6s+0Y/SjPM+2tnV2V0pCeedklHrT6RplYwMV3QF3+72X3t3/s1/86c7G+sar7vDDG3CBeq+J/WBJeFbfUZtr97DNkSzf1RR28MDV17ORzfm4Fgy+ywI1vQWu+ZUj/plP3t7QidlnOBKc7ZdnXVu+zarRQ/D1uv311QnvZVC9sviC9+rtER9kw+G92bSOM3MkDv0CSjqf+5NyrsXJae1GDYp49L1O1Z588oc+YeXqZBCFb360m87N4m/bYRAb+4IzN4VId2Pn/kJQ4Bc9pv63cH/Fe7TSOi/zFr/XQ13HP2t0RAiEOVwEGMR3boZEWfGnOHbRfn5ldRZYeavHS/mHbwnYeUlzWsgHehzodRO4fW1HgaRHO0Wxgop1gTylZr4mg6m3/yeQ8Hwi2HoBOC5FZlXZh4FE0X9YhVfYlII/6H0OqEXUJReuE3gUI4Xvx4RL2CzpZWI/YYS9VoX3hYOsd0s2hHpmt2uZR1wy5oKxNnbER4XsV343pRVixYB9d3pvKIBwWIdt6GKG4GqhcYVKOIK+doFiF4ZWqCgmwBOR93HpxkFUl1TQt4iIcC2J6BWwd4cbqIF+B4ZS5YN4+E6SuBPNB4qH2IM41oiAqFhp+H381XiYiFmDIF3Ld4pn+FzDNGe3x4Nqo2yryIL3NnpzGIVjJkYr9IkKR4ibB13RN3yU5Rc9lIyL11PkBHN9VliPEiQLSCh4JXdQB1dqmEgINxQ60/8KibeMYxhK3qiKxpiKdhOKCPhn7Mh4muh8N1eLOgZmHxhrIZiPSheIriiIAnaAzjGH90gOc4OJyNiNriRY/BiPfAdS9seJtDiR7+KOcdFa1giNFeiQ0gguCdk0evGRmmc8uKSRaTWPM1OJRiGSyleKDal4ysiRZah6//iCV0iG9biEbvg1KqkTQRd9mhVG67Y0o7WR11c14zGKAGmUQJmHFSmTJwhINEaR60iVTqeH/2eOgfUN1daO4hiNZGY0z2iTGkWA2pKECumQFjlbMPmFR2mS7eh6bmlx7ycWLGlB9ZeVHeiLAFNuPkF5aWl6STR5ptiEp3MVLnmVLbmGFJj/jVEGCmbpiRSmPLnVWloJldPIhlYJM3IxcgkFlzF5ZUslRN5xl1/XgJG2ls44SKY5hF4kkqqkg7I5m7RZm7Z5m7iZm7q5m7zZm775m8AZnMI5nMRZnMZ5nMiZnMq5nMxZEVYyDALQnPXwnNKpGARQndiZndp5CeABH975neB5nds5nozAHuB5ntRJnuuQnur5He35nvAZn/JJJzQynylRn/bJDeyZnxyxn/z5nwAaoAK6FP45oM5poAiaoOSJnwpqJwzaoBAaoRI6oRSaJQ9aoRiaoRq6oRwaDBfaoSAaoiI6oiTaDkbyJAoAGSdaoixqn7fVojAao8f5oSpRoOpp/1wfYaPkSXMy2qM+6qCZMAA8+qNEWqS0qaNGSg40mqQuwqRO+qRQ2g1LWglIGqXpUKU5MqVW6g4QAAxY+g9auqViOqYESqar8KWfYJ7nuaaV8RHtYabq8KYEoqZs6h5oShRyCqfnkKd62qd++qeAOiZ3GqjWMKiEeqiICqBhSp6GmqjR0KgGsaiOOqmUWqla8SKWmqmauqmc2qme+qmgGqqiOqqkWqqmeqqomqqquqqs2qqu+qqwGquyOqu0Wqu2equ4mqsKigB12qu++qvAGqzCOqzEWqyoYQB1wavGuqzM2qzO+qzQGq2ogQB1YQDSeq3Ymq3auq3cqhnIShfW2v+t4jqu5Fqu5toe3zoXynqu7Nqu7vquxEGn3kmtdLGu8Hqv+Jqv+vqd9Kqu+xqv/xqwAsum8oquyTqwp1GwCLuwDLus6SoX9tqwEjuxFOus/QqxFZuxGruxvvqwcRGxHBuyIjuypuGxcAGyJJuyKjuyFxsX4bqyMBuzGtuycPGyMnuzODuwJvsWNpuzPvuz77qzbtGzQFu0RtutNPsWKHu0TNu0FnuwThu1UrusSesWSzu1WJu1/Aq1Wtu1XvseVdsWRPu1PquwZEscYasWY3u2bNu2lZG2abG2bju3ZAu3aCG3dCuyZpu3p2G3Z4G3fIsZexutgxu4a+q3ZgG4hkuUGYW7uByLuGOhuI7Lro07ue0BuWIhuZa7uSuLuV+huZwbuiLruV5xtaJ7uiybDyv6DqaLuq47s6prCvMAuq9buwhLulvRurZbsZXLtrirFbq7uw3bu237u1kRvMKbvPpqvFiBvMr7vO/KvFfhvNBbveYqvVZBvdZ7rcTruthbFdq7vdDava4rtG0RvuKbvtdqvvAQCAAh+QQFBAAAACxhADoAlQGmAQAH/4AAgoIuLoOHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u5ctvL/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsJ54QICzZlLrfwpocqt/u1rSK3+/UhKsfsNKUix+x0KSrH3LOtIsfc8yEq180ypSLXzXIpKte9sO0i173wIQrnrhjpteubTqmq6t62JiLnroAhjvf/Pyqq6899Kbr73s4tuvvv/y6267l7x7Xr39IQzsvgkzvHDADUP88MD+UgywCcUCF0ywr7QGAgA7\"\n  }, props)), Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-r\",\n    alt: \"\",\n    src: \"data:image/svg+xml,%3Csvg fill='none' height='240' viewBox='0 0 312 240' width='312' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 0h312v240h-312z' fill='%2300a0d2'/%3E%3Cpath d='m48 32c0-1.1046.8954-2 2-2h212c1.105 0 2 .8954 2 2v208h-216z' fill='%23fff'/%3E%3Cpath d='m60 38h191.455v34h-191.455z' fill='%23ddd'/%3E%3Cpath d='m151 49v11l5-4.125 5 4.125v-11h-5z' fill='%23000' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m48 80h216v74h-216z' fill='%23e3e3e3'/%3E%3Crect height='16.5' rx='1.53571' stroke='%23000' stroke-width='1.5' width='16.5' x='147.75' y='108.75'/%3E%3Cpath d='m154 120v-6l5 3z' fill='%23000'/%3E%3Cpath d='m60 163h91.4727v49h-91.4727z' fill='%23ddd'/%3E%3Cpath d='m159.982 163h91.4727v49h-91.4727z' fill='%23ddd'/%3E%3Cg stroke='%23000' stroke-width='1.5'%3E%3Crect height='16.5' rx='1.25' width='16.5' x='97.75' y='179.75'/%3E%3Cpath d='m98 192 4.571-3.333 3.429 2.222 4-3.889 4 3.889' stroke-linejoin='round'/%3E%3Cpath d='m208.917 196v-15.111'/%3E%3Cpath d='m204.472 196v-15.111'/%3E%3Cpath d='m212.333 180.75h-8.889'/%3E%3Cpath d='m203.139 184.889v4.071c-1.928-.353-3.389-2.041-3.389-4.071s1.461-3.718 3.389-4.071z' fill='%23000'/%3E%3C/g%3E%3Cpath d='m60 220h191v20h-191z' fill='%23ddd'/%3E%3C/svg%3E\"\n  }, props)));\n};\nvar images_EditorImage = function EditorImage(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-np\",\n    alt: \"\",\n    src: \"data:image/gif;base64,R0lGODlhcALgAfYBAACg0vj4+P///wAAAP/+//T09BwcHACf1AGf0v///RmXvgCg0ACg1ACi1n5+fm1tbTk5OU9PUASezwOf0F/F5gedzd3c2wCh1huWvqGhoR8jJbOzs//9+/Tv8AI0RxKZxACi2BmWwPPx7/Dv7iUcGgUnMheXwFi/4cbGxubm5tXU1Oz//xWYwf/+/QybyQx1l+n//9r//834/xaXxLvt/A6ax/3//xx+nu3y9ROZwgF+qidfcv/9/OT1+47j/heSuobd+RuWvI+Pj/X//5vX663n+vn//0az1huYv+X//9T+/7f8/1Oxz5ng9+///5HU6MT//+H//5LQ5x+m0vH//2271DWr0v/9/ReXvgCi1MXz/1nB4m/N6/z8/M3//wOg0qTe8h+izIXK4SWhyh6eyCWStSGUuGS0zv3//afz/xOdykCt0hmXvB+UukSpyh2VvSmRsi6PrzCQsDaWsy6cvnvj/1yuyVK93SyWuofL3wGRwCuCnv/7+f/69g+g0QAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0MzUyLCAyMDIwLzAxLzMwLTE1OjUwOjM4ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMSAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NUNDQ0Q3Mzg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NUNDQ0Q3NDg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1Q0NDRDcxODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1Q0NDRDcyODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQgAAQAsAAAAAHAC4AEAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8Y3FGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBceXyAAIfkEBQQAAAAsMAEIARAAEAAAB0aAAIIACAiDhIaHg4WHjIqPkJGSjgyPlYiOhBObE4mIihMVohUTkgChFBSkpqiqpZITEqISr5GFm5mWuqa8vYK5toWekwiBACH5BAUEAAEALDABCAEQABAAAAdWgACCg4SFhoeIiYqLhgsLixI1Hx81EgiHCAhqbpxuahOXhQgTVlBeXlBWoIUXo1ZLp0uqoYMHozV0c3N0n7SECBIuNWouloiOghcHAI+JyIzMzdDTi4EAIfkEBQQAAQAsMAELAQ8ACwAAB2GAAIIACIWGhYODCBOMjRITCIoIflaVlpV+kYsTVkowMElJn0pWkIsSayt8HCMFfHwra5CEnCt9fH23fbGQDIudoKGipLOEFSxIyUgYSCwVkYMMF9PU0wyJggza29rY3t+BACH5BAUEAAAALBIBAgFOABoAAAf/gACCg4SCBweFiYqLjI2Dh46Rj4iSlZaFkJeMDAyanpKcn4qhoqWJpKaCqKmmq62drKmupbOVCwuJCJ+1u7CXB7CcwsKevLkIyIvGowwXF5zO0dG+lcuEyMnMlhMVNR8sM+HiJiYzHzUVE5bW69SOLm8+TWD09fZNPm8u7bEA7IMuynhJQqWgwYNJvJTZV80dLYeMasDxssKGkYsYL9pYoQRODX6x/gmSqIQKAQEoUaRAKYAAlY4fG/YTCaBGnJIETgooUIClgJdxYoKC2MuSRC8whmRcCsOLR5CsaLowAyVGkqtYs8aAYobh0JlEFVUwsaWK2bNozW4xUQGqrLCJQbi5+EC3rl26LtK5fXVpmF+/mWSGhLvowIVFFyj1JbxXUuBByB4Ljsq4XyN22S5XtqyMceZNmzmfCu2IpmhCIgMBACH5BAUEAAAALCoBBwEeABEAAAfhgACCAAcHDIeIiYoMg42DDAcXkpOUlZOJgoUAExU1HyYsM6KjpKUmOTUVE4QHABUhdU1gs7S1trRNdSEVha0uZUtJQ8PExcbESUtlLr0Av1ArNtLT1NXTK1DLjc9OAt7f4OHfTlBwLoMHz9HiAgRd7DbY2pnqNuIEDigE4vHZ54Pc2AlIkQIeNnPbykChIrBhP4QA4UDp1lAguXmCfgU7xtFYMoyuMCxREqWkyZMoTSpZ8qYCK1cfjjCxQ7OmzZs1mRz54FITggouPH0YSrSo0aE1XFRA0Apd00VQEfVqBiAQACH5BAUEAAAALCABAAEuABsAAAf/gAAACAiCggcHhoqLjI2Oi4SKiI+UlY6Rlpmaipibnp+gmoWVCBKmp6ipqquoo4+lLjWys7S1treyLhOUpVMUXMDBwsPExcAUU4SuihMVRzEr0TDT1NXW19XRMUcSu43NRyscV1ct5ufo6eroVxwrRxXeAJOC4DBXBPn6+/z9/lcw4MmjB8AePgEIEypcyHAhAYACHRlsmJAARYoPA8aT6OyexYsgGWaM+M1ZkhYCbIAkkGFDSAEjN5Y8cjIlyAAQULyMKW+RwY8XCaDQGZLnoGUFOx4s+hImxI2d6plsAbTpyqe7oialSdXqTqxHfU6t6rWhUa3gkli0wbat27dwT9/C1Jh1GYO0KePq3duWQJKIaCtYWaKlsOHDiBMrLrzESoUvYTkhqPABi4nLmDNr3sxZwYcKWhcxuEC6tOnTqFObZpCJgevXsGPLng2bUSAAIfkEBQQAAQAsHQEAATYAHgAAB/+AAIKDgwgIhIiJioSGi4IHB4mGkwgTE5SYmZqUlpuTBwGhoZUTEhIVqKmqq6ytpqivrpeiARVTR7i5uru8vb6/R1MVoQwXH0AxSTDLzM3Oz9DRzklJMUAfFwzFLERDAlfg4eLj5OXm4y02Q0Qs2dtEVDYE8/T19vf4+fc2VOzuFyyeODFCQIDBgwgTKlzIMKERJ0/aaQMo0EjDixgzPoz4L+DAjCBDHtwocVtFkSgxkux4MqVLhSsnerT4sqbBmCY/uiSgQsWIlzgp6kwpRIMQEUAhlhRKM+WGABlqBp1ZM8MGqUpZDk2ZIgVWjjJb2kwKNmfTnV+XUh1LVq1Ytihpp76FG1LuVrogY4Zai7euUlo5niShYmTIECOIEytezLix48RUkjzJQasGsijUMmvezLmz585RrNWg5cJKldOoU6tezbq16ypWXNCa4KLGh9u4c+vezbt37xouJiDSRry48ePIkysvPigQACH5BAUEAAYALBAB+ABQADAAAAf/gACCg4SFgwcHhoqFCwuLj5CPjQgIkYqIloaNmZySC5SEiJidpKWdoI+iDKusra6vsLGwhLKyo4aYBxe7vL2+v8DBwa3CxRcMg5sAohI1LM/Q0dLT1NXW19g1EsmOywwXNVxE4+Tl5ufo6err7Fw1yACoB98zXlT3+Pn6+/z9/v8AvbC4IAgVgG8mlNiwYaShw4cQI0qcSLHiRBsxTICAR6sBlhgtCAgYSbKkyZMoU6pcedKGgBYxQmw09C1EjAQsc+rcuZNAzGM0L9jEKZKn0aM6fYYAWuibApBFkUqdSpIATAVADTqFSrWrVKsxsCKjtKnmTa9ojyoFcSERgLJC/8+mnZtzbdumcUPS3YsS7FKOg8zq5Ut4pF+mtPJGLbz3MGBBghcznus4qM3BdAtY2CzZa2W8lzt3FaFBwwMhXRrD/GuZK10VAyBsUMH3c+LQewNEkE1b9c/HBxUTdjC79mrEgYXzFbLBgvHfrTFPpnwceOTpvlmDdo09re3kuLt7rx5dtHik3yErP981fXCbBMyz5+nebPz57clvl45frf7b3PXnH3QFVXKdgOitNhMloJh1RXwQRijhhBRWaOGFF14R04IMBodBDBxc0cKIJJZo4okopqjiiihewUEMGGTV4TcseAHDjTjmqOOOPPbo449ACiTjKAdUcMQJSCap5GKSTDbp5JNQIrkFk1tscUQFiXRD5AQVuODll2CGKeaYZJZp5pkVTPBWN4RQMsEEEsQp55x01mnnnXjmieebBhVCyS2mBCqoIX0OauihuLiF6KKMLqNoKo82KmmggE5q6SOBAAAh+QQFBAAAACwAAfAAcAA8AAAH/4AAgoOEhYaHiImJCwuKjo+QkZKTlIKMlZiZmo+Xm56fjwcHDKSlpqeop4KprK2ur7CvoooIBxe3uLm6u7ykvL/AwcLDxAeJCBI1HyzMzc7P0NHS09TV1tfPHy4SiQcuTE1F4uPk5ebn6Onq6+zt5U1HLgyIDB9PSU5D+vv8/f7/AAMKHEiw4D4nUZ58mGeIwQUWT1YYsUGxosWLGDNq3Mixo8ePFY3AeMLiAkNCDiE6MSKgpcuXMGPKnEmzps2bOF0acULSZMOHT1bmHEq0qNGcO3ueHJQyKMujUKNKtZm05NJVQIVO3co1alWfhZpq7Uq2LFWeVn+qfGq2rduWX/+vAhDL9q3drnHVOr3Ll2vesFnrviTQt/DNvygDG15cFDFTxYwjH0YLNvFayZhpOsZ6ObPnl5vnQv78OTRd0qRNj0aNWXVn1q0pyz0NO7ZSvWMjW3DwoLeDzK73Si5gYEAECxFSAJeNW7BhFAOMj4jgOXjuxSmiRxBBffltwK8jZ9CwvbvttOCFY07xgHt15umvM2Y//f13y+oljxBS4Ld39PjJV1th1jk3YF8FHhhZggouxmCDBMIHAAIIiBYehHchRqGF+WFo14Mefsjchpx1GGJbeZHIoYAnkhWXMQEa2CJessFoyVwQSTTjW5s1wkCOMu441U5SAPjYhUL6JeGKkSYmOeSSJbLoJFQgTvnkfUxKaWVjUHKo45ZbGbEClkzZA8NEIKWp5ppsfiSSQnKtUsMJS8hg55145qnnnnz26eefgAaKJxRLnFBDnAAckEwOJjTq6KOQRirppJRWaumlmEKaQw3cICKKQ8SEKuqopJaaC6KEfBrLqqy26uqrpNioyCyg1GorKIEAACH5BAUEAAAALOgA4ACgAFgAAAf/gACCgwsLg4eIiYqLjI2Oj5CRkpOUi4WVmJmam5ydnp+goaKjpKWmp6ipqqusjAcMsLGys7S1tre4ubq7vL2+vAeKDBfExcbHyMnKy8zNzs/Q0dLSDACXExU1Jhgh3d7f4OHi4+Tl5ufo6err5xgmNRUThhUKXF5K+Pn6+/z9/v8AAwocSLCgQYJeuGCpIMhFGShOWhAQkKCixYsYM2rcyLGjx48gQ4oc2bGFEyhlXAiqUcaLk4kCYsqcSbOmzZs4c+rcybOnz586CVBBWWMlHJdAkypdyrSp05xUvMApCqDGUSdPs2rdynVp1KlGkXYdS7bs1q9UrXqhYrat27c7/51ITXuULdy7eN3KBVv1at6/gM/ODYs1sOHDQNESRsy4MU7FfcU6nuwYstrClDMftuxXs2fAnCV/Hv02NGbSqMuGtpu6ddfVrmML5quWtezbXgdHto27t0/YvoP3BC68+GPdtY0rt0l8ufPmzpVDj158OvXg1q/3zq79Nvfusb+Dby1+PGrTxgmksMC+/Yjie+mK7h3gwYD7+A04iAkTd/zFwjmAnxAECBGBcv9FdhpuBBgwoABCPIAgcp0Fh98AQkB4oHEJXiYcARo8aOCEtFXoWwYibggfhfP1tgEEGGpIonwLBvdAhiMah55yN8qoI4s1+tZjjtUBudyQKgq3Y/9xBKhggQAWqCCdkeb5tmSV3lHJpEwE9Kcki7xh6VqHdYnpH5hm3kbmWmnKtmaYbY72ZpxjoklnTDbkqSdlc94pgJ57TrZmkH7yqWWhng2KqJyHLmpoiS062piikmZGaaWCNoopYpduytiVnm6maaigjUpqXqCe+leqquLFaqtwvQqrW4ot4KFWgAL6VK6BjvefrSY6xWueuw5b5aA2zJqXDfEhAIBDUERBxbTUVmvttdhmq+223Hbr7bfghvttFFCY4YKzFbBQBxT5xODuu+4aBC+8B/Uz77v15hvQvfziWy8UdXzAEAATuMACHXMkrPDCDDfs8MMQRyzxxBRXbPEwxRXTkUM8giCAjQs1hCzyyCSXbPLJKKes8sost+zyyy27EM8BwbRi882jXAIAzYEAACH5BAUEAAAALKgAxwAeAZEAAAf/gACCgwATFS6IiYqLjI2Oj5CRkpOUlZaXmJmam5yXFROEAAsLhAwVLGZlqqusra6vqnBwrLK0srOwubVlu7m+v763uLu9wL/EuMHDycawxcXNyM2xy8C7ZiwVDISjgwgSYUBLUOTl5ufo6err7O3u7/Dx8vP09fb3+PFLQGESCKGDKnzgEoOKk4MIEx6kYlAhw4QPnURcyLCixYgYL05EuHGjQocNNXrkKLJjw48lKWakyFJiyJIvIVb8SJNkzZojb+q06VKmyhhcPlQAgOAfoQoY0ji5QkCA06dQBRBoGnUqVKtSqTqdyrUr161UvX6tqjVr1LNPsYrFenbtWLBo/7OKBas2rF24ctfipVs27tW+fvcGHvxXcN0rTtKEGFr0wIFBLt6kWdGCsOXLmDNr3sy5s+fPoEOLjkugxYo0b1yQAuAYcpvJCUbLnk27tu3buG8nON1GNUAALl6viJ27uPHjyJMrj7s7Te/fwIUTX069uvXr2KM2f/47OOzs4MOLHw96uwvo3oeTX8++PXvz6KW7n0+/PnL43eXb38+/v2f8AKU3nX8EFmjgUwCGIuCBDDa4X4KELOjghBSOB6Fr31Wo4YbUXSiIhByGKKJuvJ2XX4YjpqhieSXGh+KKMMZomYfRvSjjjTgi2OKJ6uXoI440gvjjkCoGqR+RSIpopP+NSTY54ZI9Oimlg1AOOOWVBFaJ5ZZZ7hjgkVyGSZ+WYpbpHplmpmmhlwqCqeab16EJ55wdshmhm3TmaZycevaJG59+BjoboIIWyqJzJn7JpKGMckZoo5Be9miklPo1aaWYQnVpppluymmlnn4aaaiiNkpqqYaeiqqgqq7qZ6uu6glrrHTOSiuctt6qZq66mslrr2L+CiyXwg6LZbHGTolssk4uy2ySzj5LZLRSdmHBAxFkq+22ETyQwqh2YhhlowE4MMC56KaLrgEqgIuoi+MaWq66BmSAAgrmRnAvCgW4y52i8RaKgroDaNCuABsMEEEAmFKbZAQEG+xUwgs3HO7/h3gKqkHEB1PMMKgX1xiwxhxPrPDHlDqM5MbqSozwyRa/y6OVhULccscwgywzwDQLmvDNJles879tLhpoAQ8A/bLQKYcsJKNIG4Cuyx4TZsPVWL+pcpIBoPDAxlTnHBjWWe/qdMaNpgBB2AuzZerZRjOqNtsBuM3o1k7OjTPT/iZa9Mhpr703yn3D23PgdMdM9J1xG6p30IRDineTjy8d+ds7/304oyI44MC3AqjwQAZdKO4344BLO+fkqsPIeutFwp067Gm+TruSsm9+e5m2I4kGGmddDd3wxBdv/PGE1Nc7kb8HbwPy0EcvfSjK5757nstfT2H22lNpffdafw9+/+3ij897+eaHyX36XWaOuu7sN7l+/PzNT7999t8/Jvr6N8t//9D6HwCnJcAB/ih/BiQPAhMongUyEDwOfCB2IihB61CwgnVyn7jgh8EUXbCDyfkgCI8jwhEWp4Qm/FMBUxgiFLKwNi584aBWKMMKxbCGorkhDg+1uA3u0IM0/CGDdChERwWxiAUiIhIzo8QlSuqITqwfFKOIvylScX8axFjjrijFLIqMg1ysnhefFsb29VCLsyujGM/4RTUeyDzbAEgFQpAGGFyNNncUQB4zs0c92uAyfbRPH//YGbLlcZCEDORTDknIuDBybI30IyShosioXA0GihnKbyRQAwrEwP8IRjCkKEdJylKa8pSoTKUqV8nKVrrylbCMpSxnCcoYUKAGEoDOBCRABjHQQAvADKYwh0nMYhrzmMhMpjKXycxmOvOZ0IymNKcZTRk8kwZiIIMEQPGbogjEBOAMpzjHSU5xYgEL4DxnOcN5TnWyE50mcOc609nOedpznu2E5zrl+U538tOf8OSnOQOqT3wW9J7xRGg8C5rPfNKTnAB9aD8bKtB7upMFQikK8RhwgY569KMgDalIR0rSkpr0pChNqUpXytKWuvSlMI2pS+NYvAMw4KY4zalOd8rTnvr0p0ANqlCH2lPHOIaoSE1qUW2q1KY69alIfcz0pkrVqtZUqlY9NV5RNJrVrkKHq14Nq1jHCpBukPWsaJWeWQVRlLWmlaxgfatcBeFWq9Z1rnhNq1vbupq8ejWufj3rXaETCAAh+QQFBAAAACyDALEAawG/AAAH/4AAAAgIEhWHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fFRKEgqQTFS4sWCYmWKqsrbCxsrO0sau3uLm6u7m1vL/AwcK6tre+r6utvMfJtc7P0NHS09TV1tfYtSwuFROkhC5jFEDk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8QBRjLkaZGtMkBowVCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePH2HEaDKmGwAJLijEsCGghUsCBFzKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSIkKsBGDggsJACrkAAIDptWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu27VUYQP9yVIhqAsiKFgQE6N3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjR465AoiJuRXq3s0rubPnz6BDix5NurRpwJQtY9aM97Tr17Bjy55NW3Lqy3Tttq7Nu7fv38CDF769Wjdn4ciTK1/OvDHx3JubS59OvTrw55mNW9/Ovbv3yS0q484e/bv58+jRY2d9PL379/CRr9euGKZf+3vx4ye9X0B/wfpphVp79QlYWn9XIfbfYAs61uBkBP5GwBXhATFDceUltiCCnD3oGYeGBZjVgA4ayF97CR7m4V8rFihai7PBVOGF0O0W34045ujafBnq6OOPQDpX4XjsBWnkkUiiNiT/hjYm6eSTOvLYJJRUVnmelBFaqeWW0mHJ5ZdgLudlmGSWyduYZqappmlorunmm7YtWWOWcNZp53BykjflnXz2eV+eRfop6KD+AUofoYja2WaijKq5aKOQhvlopJRqOWmlmD55aaacGrlpp6BGaWiPoZbq46empqreqHuq6uqq4jFJ56u0codqrbg2d2uuvMrH6qy9BivcrsIWSxuxxib7GrLKNsvfr85GWxuz0lYLXqxzWqvtadRu662C0H4r7ofhjmvuY92eq25+5a7rbojtvitvYOnOK2699nqLb77a7stvtf7+G23AAjdLcMHJHoxwsQovHGzDDvMKccS4Tkwx/60WX+xqxhqnynHHpX4MMqgij8xpySZjinLKlK7MMqQuv8xozDIjSnOlBWzgwM489+yzAxsAO3C83xKgwgMaDKD00kw3PYAD594MKQpJO2310gZAba7UjFpggNURpLCXAwNogMK7XCNaQARXhz122We7mzahG1TttNt6kW022kRrS3bbYucNN9/Y6il0pmig4ZcNLBX2wNUD4C2A3nGvO3eViS/eOGGPA/723nL3bW3nYAc++eChFx6ouH+X/nnl6l4uaAZfuy446JaLXm0AbNt+Ou6x614t1b5TTrhq2Z6bgd1LS2586sgbrm4AG/TevOnP5676oeZ2kQIKD0Dwtf/zqGsf/erujsA2+cBHLfy36keOffnBb0+quvGzD7v79rdqbv7za9/W3oc4xfWFcYJhnAI3pxcAvu54ROJeqjJ3QAZqboF9ceDt9jfA/h1uWxr8HQfHJbtG5Y8UIoSgrOYVwuzV73wSxF8EDPAA0wnBABAY4b0IWDNhlbCHb/ohENckxCGmqYhGLBMSkygpHjIRY0584saiKEWPUbGKIbsiFkmmxS2erIteVBkYw9iyMZIRZmY848zSqEabsbGNg1oiHI8kxzkGqY52/BEe8ygqD/JRVXv8440CKUj4ELKQ7jkkImEFw/stsox+fOQXIylJMVKykpBspP8w6cZLcrL/UYr8pHVCKUrqkLKUXXojKrl0ylWKSZWutFIrY+krT9KST7O85XVgqUsn5bKXvfklMKfFy2F6qpjGBJIwkxmbZTJzWch8Zo6cKU02RbOa8aEmNkdDHAZIb5tHvCY406PNcX6mnObsDDrTeS1NfpCdSFonPB0kznnaqp72HCU+82nKffIzlbb8Z5LkKVAV+bOgyiEoQgmj0IUCaEneZM0VHOrLUcGIotm06Dsxmsg8sYAqCeDoQOHCggp48wNciAJLyJKAlibALTBFS0th4lKXfmWmLH0pAXCaFp7GVCs6XUtQbzpUmhaVLT4laliSOpalxIALH5jLFyqwhiVQwQZX/8iqVrfK1axy4Ksc6KpYx0rWrbrErC0oq1rXeoWvehWsblVrXNmq1bjOlUIyoetb9UrWs1KorGHlK1796lW93tUlcSWsYLv6VcUqdqt3zepj28oBx6ZVrQSwARWWsIYKfGEQE1ADE4oQgygkIQlRSK1qV8va1qYWta6NrWthK1vTnva2uH2tbVVL29qalrWnfW1vfWvb4BL3uMJFrnBzC1zYGne1qH2ub287294aV7rBjS5upatc2V53u9wF7m55O1zeKhe7zo1BEZighlEMQgI1YIEJFIABDCjgvvjNb37ZwF823DcEIdCvgAdM4ALjt74ITrB9FQDg+t7XwQYuMP+EIRzhCls4vwC+rwlCQOEL0xfBBu7wfwOs3wwPOMEC7vCEMWBiFYPYwxdesYIXTGAUH5jGMNavix8cghnU4LOkAMABLkDkBhS5AUhOspKXzOQmO/nJTD4ykolM5SpTWclEBgEIpAzlJh+Zy1i+wJTF3OUyQxnMZq7ymKNMZjM/Wc1L5vKX22xkOsPZzW6es5WvnGQ925nOeK7zmvtM5iozIMiCOAADFs3oRjv60ZCOtKQnTelKM5rIls60pA+gaAZwWtOgDnWlPy3qUpv61KhOtapFzWlEu/rVsI61rGdN61rDutW2zrWr3eteXfv616/uNbCHTexiG/vYyC72AhZykOxmO/vZQV72sl09bWhbe9cIuLa2X11tW3e71t+mdbhjLW1m/3rc2063uklRbmqbe93PFja8oY1ucr8b3PcWd77tXe95+/vfAA+4wAdO8IIb/OAIT7jCF87whjv84b7mdbYhTvGKW/ziDpc4xjdu7UAAACH5BAUEAAAALHEApwCPAcoAAAf/gACCggcMhoeIiYqLjI2Oj5CRkpOUlZaXmJmOB5ydnIaCoACapJOhpaiVB4OsgwwXsLGys7S1tre4ubq7vL2+v8DBwsPDhrDGxMm8yMrNvwytgggVFR8s19jZ2tvc3d7f4OHi4+Tl5ufo6erfM+3u7evx8vP05h8VEgut1VZcRP8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYCT7hYqWGBFYHXFhJo2SFEyooU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59Ag6p04iRGGisuVo26kONJkiFGokqdSrWq1atYs2rdyrWr169gw4odS7as2bNo06q9OiTJkw8X/w4geGXCixEbAvLq3cu3r9+/gAMLHky4sOHDiBMrXsx4b4IEjSNLnky5sgDINryYiDv3QogYBAjgtUy6tOnTqFOrXs26NePQMUJcAND5MwEBo13r3s27t+/fwHsTaBF7dm3QuIMrX868ufPnqocXp/3KdnLo2LNr3879t3TZ1D0jz929vPnz6NP7/W68+nj18OPLn++dOPjjt8nT38+/v//D7IVnnX7/FWjggfMFiN91CDbo4IPaKehefhBWaOGFwtnXnngUYujhhyBSJiGHDIZo4oko/jXigCm26OKJK7734ow0QhhjhzXmqGN/N5a4449AntcjgUEWaaRzQx6p5P+SyyXJ5JNQuuZklFRWSdqUgIXWl5Z6ccllal8KEGZpYyIW2plnrhYmmgDeZliZjcE5mZzAEXDFbliq6OZea7pJZ2V9grmnYmiyGd2ghhb255aDSrboa402GWl0Ggooo5WYZrpYnpp26qmKlS5I5KekdhpaqBP6WOqqmnLK6qtU9gjrrJi6SuutRdqK66466srrry/6CuywJp46najEJjujsMo2WyGzzkaLILTSVusftdZmmyCqJI6q7bf7YQvuuOWJS+652ZmL7rrNqcvuu3VyyyK89HLnbr34snZvvvyetm+/AAMq76UBF4znwDgarLC+CKu68MNkNuwtxBRH9m//xRhvKXHGHDu6cccgE/pxyCQrOnLJKGd5csos87lyyy1fDHPBMs8McM0284tzzvjuzDO9Pv/8btBCr0t00ecejfS4Si/9bdNOZwt11NVOTXW0Vl/dbNZaJ8t118N+DfavYo+9a9lm34p22rOuTeykM7v9NMpy80pAASlYoPfefPet9whwG1w3rgGg4IAGAySu+OKMJ/4Ax4PTGkAGiDduOeOPZxw5rF0IcbkGD4T+QAQGDAC66BtA3jDHG5Ru+QMF6IUC4g+kkFfgCsuK8QgQXD4A7LLTbvvtqh+b6sQAZ+D667HnNfvvw4O8OasP+P578wI8XzvJ068agfXAOy88//cvK/y97+FnP37I3Zd6/uXpax99x+0jiAYafdmAPGXvMx889OQzXrdgdb/87W8yDgAf9uQXwPscD2PPg98C1ye98gkugRL83/bYZ0GapaB/i4sfBenXQYOpAISOmyAAOSjAeWUsBUJYXgo1OL/iOXCAHQtACjIQgcqJcIUVbCHB6LcB2qlwg0G8oQshl5ciXo+GDdzQEkHmxB8iEXL1o1UVj1hDzZWQXNEIoxi3CEUWKnGI7xKjGllBRvEBkYRCTFipCuicNqrvjTaUIho/Rcfm2JGBZtSjHDv2xxHm0VKDZJ0Ry5hEQTosYxuAgAEcsEBJOqCLGMsi26ykyU3G6v+LnhwaKENptFGSMmmmPCXTUqnKp7GylVJ7JSyrJstZYq2WttwaLnPptV3yEljGOmMifwmuThKzV7485tmSqUy1MbOZbXsmNF9lzGm6qJrWTBE2swkjaXLzU9v8JojCKU4MBdORBywnrsipTguxs5028iY8q/TOeTaonvY8ED7zWaB98vNa8vynks6JyEcKFFb+PCh9EqpQ+TC0ofB5KETTI9GJCimgFt1RRTPanY1ydDse/Wi6MCrSZZG0pNc8KUq1qdKVdjOOBnVplEIq0ya1tKYfoilO4wXTdO40SDr9aYZ6KlRO3rSo8SQqUmd61KXes6lO1SdUo9rPqVIVoEr/veqRgqpV1HC1q2T6KlivZNWxOrSsZo0oWtNK0bWy9aJCbAHu3srS4kDDPXKlq0Y1dFfx5FWvOWJPXz/zV8DSSLBLIexcDTtOviY2BoVlbErt+tjISrauspkNXhd72Qt9BwR9VQBkHyVZ/SXGtOiBjWxCO1rOMha1h4GteVR7gcHGIAGktads/7Pb3iSgOJq9wAy0MAQbFOq4yE0uAR6j3OY697nQja50p0vd6lr3utjNrnJvp93uehe53P2udW0wBC3MALSh+AAXojCE4bTgvfCNr3znG18OcGC+PKCvfvfL3/76978ADrCA9XuFKwz4wP0tMIIXzGD/Khi+D24w/4Aj/F8KU1jC8Q3NEKLAhQ+IggEuoAMQZJAEGJj4xChOsYpXzOIWu/jFMI6xjGdM4xrb+MY0XgEMSoxjFvO4x0Cm8Y+D7GMTJ2HIRSayipMgAyDQwQWzGcQEXDCGI5zgylvYwpW3zOUue/nLJ9CylsFM5jKTecxY/nKWzczmNnt5zFles5rD7GY4oxnNbu4ynM0sZjxzWc53zvOW/cxnQe+5zYQWNJgJnWhEA5rOYT40pL98hDC4YALRQMAEKuCCTnv606AOtahHTepSm/rUqE61qlfN6la7+tWwjrWsZ03rWtt61BWYAALEqOkJSODXwA72rydA7GIb+9jHFjawkUtNbGUP29fLZjayny1taTtbAtOOdrWTje1iX3vb1u42uJlNbXJre9zVLne5wx1sY68b3fD+Nrfh3WxxQ7ve7263udVtb3ofe9esCAQAIfkEBQQAAAAsZwCgAKIB3gAAB/+AAIKDhIWGhAiJiomHjY6PkJGSk5SVlpeYmZqTCwuCnYiKm6OkpaanpYuLqKytrq+wsYegALSCq7K5uruGDLy/wLEHB4LDsZ3IyMHLy7bMo4m+jl8TEhXX2Nna29zd3t/g4eLj5OXmFRLW6Orn7e7v8PHy8/T15hITX40TFS4f/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgt1nBRYYIhBBXUWKHApaTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPnhSsqKmAgFDII0ViJFnBtKnTp0xhSJ0qFarVq02pat3KtWtVrGDDrvDKVaxTslvNql3Ltq3brDD/zsZ9S5ct2rt479YVmyRGkSNDCbmw4iOJDQItEitezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4v+TMBGEh9WXBADwKAGEy9UCAggQLu27du4c+vezbu379/AgwsfTry48ePIkytfzry5cgECqHhhUgMEMQYfzkQZAr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++fQFDopz5cOF69u33BSjggAQWaOCBCCao4H02NJjfftJgpx13C1Zo4YUYZqjhhhyC16AND34Q4X8UdmjiiSimqOKKC4Y44oQsxijjjDTWuKKLABxwAYmzyWbjj0AGKeSQ6IGon4g57ggj/21ENunkk1CiaCSEgkgIYJRYZqnllgHiyBqPXIYp5phkfuellSWWqeaabAZ5JphtxinnnCa+CSOdeOapp4F2Xrnnn4AGyl6faQpq6KGIEorooowCqmijkEba5qOSVmrplpReqummQ2bK6aegxmjEkS/6eSCT3aGKaoGr9siqj+7pdiqsPbZqnq3l4QqfrvPxqqGvBXr6qneq0jpgq8DKl2yuuc1KbG3qLfusfdK2V+2CBFxxobChduuthtx+K+64B4ZL7rno0mduuuy2q9667sYrL3jwzmtvvPXeqy+6+e7r77f9/ivwpwEPbLClBR+scKMJL+ywoQ0/LPGeEU9s8f+cFV+s8ZoZb+yxmB1/LHKWIY9sspMln6yym6RWCefKMJOZcsw0szhzzTifeHPOPIPb8pd39ix0pz+jOfTRLFMJtKlINx3jzk5HfR/UUlctH9VWZ90e1lp3jR7XXoc9Hthil+0d2WabjXbaYq/Nttduv6113HJbTXfdUt+Nt9N67410334PDXjgPQ9OeM6GH15z4orHzHjjKz8O+cmSTz5y5ZZ/jHnmG2/O+cWefz5x6KI/THrpC5+O+sGqrz5w667/C3vs+85O+7223z5v7rrjW/TLchsrOu/zEtDF8cgnr3zywrf9e9ByB2CBAxoMYP312GdvPQQoyE08uwSMIIT/AdqXrz333j/PtNkpPGC+ARrEH//18McfQfdvf4/uCA6YP8ADAeiOBSAwAPT5TX/k6sIGyOeIAEJngAXE394QqCY0oMFDNrBP+wbwCAcKAIIGnKD6CvUwC2LQPiioXgd9BEIJ4o2C4toABzsoQAKG8IUjTJtsZAgJD7YwcDD8Fg9p+EAburBuQfTWEBtYwwgCMYdsW2IjfGjEJyrNaGxDAQR62MQbIhGKaROBEGY4xS4eMX1XBJ7YCKCCCBDxg1U8IBjTFoANaICJRXSiHNMIvbQVYANbPAQV9ShCPq7PbAFQgfsMMUgvohFJSyOhDgUhhEI08oz5m6PfxieIS1oR/5JYJBwnAeDJPYJSjXgbZSkLeco+7k2VZvxkqSTpnWfY8pa4BAAs8+jITO5nNaEUTy6HSUxd7BKOhMThL13mylQaoJOxrFuD8KPJVz6TlNGU2zSTyK5j/tCUs1ScN+PIynAebnz/W6UyW3nIuqkgA0JAQRe6I4INCGEDKZAlM9vZu7CNypC0nFzzfMnOgPaza9w8aKgSqlCCVbOhCH0oRLPG0IleqqIWrRRGMxqpjXKUYRL9aNM8KtJEhbSkgjspSgun0pUirqUuXRxMY+q4mdI0cja9KeVyqtPL8bSnmvspUDsn1KGCrqhGHR1Sk2q6pTI1dU59KuuiKtXXUbWqsv+7KlZrp9Wt4q6rXt0dWMPqO4CSdadmPatP06rWoLK1rUR9K1yPKte5KrWudm0qXvMK1b3ydap+/atVAyvYrBK2sFw9LGK/qtjFirWxji1rQSOrMJJS9keWvWyNMqvZGXG2s08bK2gl9dnRqqi0pkURalNbJ9GydlGrfe2GYivbDNG2tttyLW4Dddvdtki3vqUYcIObp94St1zDPS7GkqvcOBm3uQN6LnS7xNzpqkm61q0PdrM7n+1yNz7e/e57wiverVW3vJg6L3pJpt71Rom87v1ae+OLsvnSl0h2isEQBorVa+mLAEOIgdIA4II1LCE2xklAApzD4AY7uMHiEQ7/dB7MGwXTxsIUzrBtJuwj3HBYNwrGsIZlVSvetIAKS1iDCwaxgAqQgQteYIoTZkzjGtv4xjjOsY53fGMq8PjHQA6ykIdMZB1fZcgyLrKSi0wFHzvByUGG8pKVnOQcV3nKUt5xlqeM47F4gQJkqIAnBMEPMpwgDUtIs5rXzOY2u/nNcI6znOdM5zrb+c54zrOe98znPvv5z4AOtKADnYYThNkjhZDABzBghjI4+tGQjrSkJ03pSlv60pjOtKY3zelOe/rToA61qEdN6lKb+tSkNgMSaiCBRnzhGi6ItaxnTeta2/rWuM61rnfN6177+tfADrawh03sYhv72MjmdQ2WjM3sZDvb1ujQRzGnLQtaOIPa2M42LFRRFFckYxTSeAQDwq3tXRjDFYwotyTSre52u3sS527EuN+di3izgt30/ki3881vftu73wCXxLUDTvBgDNwQBy+4wgOe8IU73NtjfkTDH07xilv84hjPuMY3zvGOe/zjHsc3yC2RbpGP/OQob4XJUw6Jku974YEAACH5BAUEAAoALGMAoACrAeAAAAf/gACCBwcMhoeIiYqLjI2Oj5CRkpOUlQyChpiWm5ydnp+gkJqjAKGmp4yEgqsACBUuNR+ys7S1tre4ubq7vL2+v8DBwsPExcbHyMM5ObLLyc/QuzUuFQisABVka0xn3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb340xrZBWrCBNktqRREqWgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48LlaTZEmaCNQku7kBZQWWIy5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIaVJZAeWOCwnYZvhIIqCq1atYs2rdyrWr169gw4q1mqBsgrFo06pdy7at27dw/+PKnYs1iY8Z/Sq8SbPiLN2/gAMLHky4sOHDiBMLSLAizZt+LsykceJXseXLmDNr3sy5M1fGacy4ABCZb2XPqFOrXs26tWXQoklL7uu6tu3buHPbhj26NG3dwIMLH068LW/ZposrX868Oe7jvk87n069uvXA0GdLv869u/fvWbMnB0++vPnm4n+fX8++fev0293Ln0+/MPz6+PPrj3t/v///AH7WWGzRBWjggf71h+CCDLKnYIMQRsjdgxJWaKFyFF6o4Ya3ZcjhhyByRsAVoLXRm3YhpqhiZgQQUOKJ48XVYlYzWlVjjYPhKICOf/GIVotAAlmYjkGO5WNXR7KV5P9bS7J4xXuNmYicenD5SCQBVTUpI5Y2chmYll4FWSRhV4J5lZldzoVmWmsi1mZiL04Z34p01gmYh3bmqadxA8JI5Z6ABjoWnoIWaihZfcp56KKMVkVoo5DS+WiklII4aaWYXnhpppxCuGmnoB74aaikJphogaWm2uCoqrbqHquuxmoerLLW6h2ttuZaHa669socr74GOxywwhabG7HGJusasso2m1qcqDorbXHQojjttcJVGyO23HYYpZ9zdisuatr+Oe65npUbLrrsvvatou3Gq5m68tZ7Gb325nsYvvr2Kxi//gY8F8ACF+wWwQYnnBbCCjcMFsMOR7wVxBJXjGj/aOBarLFWzG4sb8cetwtyyOiOTPK4Jp/cbcoqY8tyy9O+DLOzMs+sbM02G4tzzsLuzLOvPv+sa9BC20p00bIejbSrSi+tatNOlwp11KFOTXWnVl+dadZaV8p115F+DXajYo+9aNlmG4o2qCNsIIQDcMct99xwC4FCwWtn2sUGD2gwwN+ABy444AY4gPep1gosghAQDO644wYIcTjG8AbchRB+Ox6BEJxz7rcBD3SegQqTE5g4pmigkZUNNhi2QeaOO9CFVSNEMIABGzicd32pr946YbU//rfstNuOu+6Ib6tvBrDHPntVwR/f8O6QPiD88M8LEH3u0ydvrr22X088//TGc68w9Y2GL/z42pePPOXR9qv+4+xv/77pyuc7v/PF325+wuhjlPXElz37dQ9+p1te8wZXP/cdEH/fq5cI9ie4BvrvfhkT2OvWV0AHns9764pXAIRgAPp18IIPzKDARlhCBp5Qeh9EYP4i1TussA4xAVABBS0IQwCCsFM1vMoNExMABTggApnj4f8MFsBIeUkADsBe/3rIxHfFr2FRHIAS3yelKyosi1tMYeUcBsYXLrF0KswX69b4O6uUcYpnFBhvEOBFebFxiG6UIvlQGEPR0DGBX9Rj+/joQxlGsGBv3CMV0ThGLArSgH1MoyO1aEYMNjKQlISjJetosAxEIP8CGcheAY4YgbuJkZNpc9kPU1myVbISZa6U2BM31sRXqqiWtgwRLnP5oV3yckO+/KWmYilMmhGzmDc7JjJ1psxl9qyZzgQaNKM5tGlS02jWvGbSsqlNpnGzm0/7JjilJs5xVq2c5sQaOtO5tXWy02vufGfY4ilPstGznme7Jz7Vps99CiqY/pwPQAP6qn4SVE8DPeh6EqrQWRm0oZJ6KERvKdGJ6rKiFu0lRjMKzI1ydJiGDOFH/+nRkUqIoSbdVUlTuqqVsnRBKH0pelwqUwPFtKYYoilO/3PTnQ5Lpz7VT0+DCpyhEvVYQD0qfYyq1N0ktakFDSlU88TUqbKmqlb/VQ1Ws0qup3K1PFv9KmfCKtZ5ebWstzorWiek1rVah6xuVQx8ZhnXCMG1rvuyIiDx2tI0dHGvfIWpXmcYWARRrLABOixieTrYQy6WsX6V5GNt2liRThY/ir0sZiurWcO2tbO6mStoE8vZ0QIos6ZtD2pTu9DSslaoVmwDYV8bVSlVIARTqdib1FKWrYxJTXQdDB4fZlnC9BYrYCIADHwQgrzUgAJeaIkRpkvd6lr3utjNrna3y93ueve74A2veMdL3vKa97zoTa9618ve9mZ3CFTwAgU+0I8vSCAMXNBCFGCwghXA4L8ADrCA+dtf/xK4vwcusIIXjOABA7jBEDaw/4IDzOAIU1jCGHYwgS/c4P9WuMAa7vCGE8xhDH/Ywxke8YkT/GEQR3jCLE4xil+8YBQP2MAjnnGFQ7xjFeNYwC3+sYhvDGIgF5nGNjbyhUsMYws/2L9RWAIXwlCBL6zCBWO4gxjEkIc8bLnLYA6zl7ks5jKLmctoNvOYvwzmL5O5y2zeMpvVTOc6n1nObjYzmfFc5zi7Wc5w3jOe91zmN9vZz3ZONJwDrWg9E1rNaI60oPks6EYHes5zZvSaB51oPw/a0JruM6gVjelMg5rPbRb0HcYwGlZMoAKxYIGslyHrWtv61rjOta53zete+/rXuKZ1rYXNa2KzYAYzALayl/7NbF0be9nPbraylxFtaVubBdTOway1vetsA7va1w63sMfN7Vp/oAbVuAYADnABVLj73Z24QLvhTe962/ve+M63vt2tCnX7+98AD7jAB07wghe83/9GuMEXzvCGO/zhEI+4xCdO8Ypb/OIYz7jGHa7wjf8bAdbw+MZBLvKSm/zkKD/5AhaQ8pa7fOIrf7nMZy7xmDPc5gNfOc4JvvOA27zfPV9F0P899JyznOZIT/o1iq70pied6QCHOit0fvSCS13oRwd61Ze+dZ933elgD7vYx072spv97GhPu9rXzva2u/3tcE85yeOu8bnPne54z7veS373vU/c7iH3+8ADAQAh+QQFBAALACxYAJ4AwAHiAAAH/4AAgoOCCAiEiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fn4aToggVLjWoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcKzLi4Vh6KQyQguGGVw0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq3GUYLocAyY2iEh9WPlD5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnHjQh5UPEuLBe8TAhRsoSZyIHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3MmzJRUqTpJAcVODwSQGOZqsMEJAgNOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaLESWGtkRRMWRv8VHTiAiMEFE0pspN3Lt6/fv4ADCx5MuLBVI0pMXIiLaG7dCyFitGhquLLly5gza97MmWsCDjEULI5kN/JkATb0dl7NurXr17A1E2gRA8NoSKUlN00du7fv38CDB59d+zbHCxh0C1/OvLnz52nXFmfsyG7y09Cza9/Ovbl029Qb2VWgvLv58+jTGyYewnj1C+Sxq59Pv779rezdi4df/r7//wCml194jIzXX4AIJqggcAOSxp98C0Yo4YSYNYjbg5RRqOGGHO5l4XGmZdjhiCSWmBVxohG4SG4QmujiiyWiqF+BkB0I4404SiijioqwKGKOQAbp344OhijkkUjOR+T/hUYm6eST2S0Joo1QVmllbFK+1+SVXHa5Wpb7benlmGSuR1t7PCbiY5lstgnYh1r2t8CcdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDa651Nwhimno5RWaumlmGaq6aacdurpApCeOeOKNbbo5qmohhUpjWKm6uqrJ4qa5mOtwmrrraHGgGaRVOLqq6urklrrr8S6GWyPpf5Y7LJlHqtmssxGy6aztPYq7bVPUkvImth2W6W2g3Dr7bhIgiuIuOSmm6O5AKCr7rsususuvPR2KC+09eZrr6y8mqrvvwreOyzABP8nsLUFJ0zfwf4q7LCA/DKJ8MMUb8ew/7IVZ6zdxRp3zB3HHof8HMgilywcySan3BvKKrfcGssux7wZzDLXbBnNNuc8GM469+wXzz4HjRbQQhc9FtFGJ+0V0ko3HauuoyI7sNNUP72rxA1XrXVVTG/tdddeb50A1LNui2/YaFM19tVTZp321xG3jfHbYYNNd9J231103noHzXffPf8NeM6CD15z4YbHjHjiLS/OeMqOP15y5JKHTHnlHV+Oecaab05x5547DHroCY9OOsGmn/5v6qrny3rr9L4O+7uyz55u7baPi3vu3e7+rwUPQCD88MQXT7wDSvtebwAPaGDAANBHL/300j/g1NyHxx2n2zmnEMHz1Icfvv/1eGsvKfc1BxCB+AM8oML770MAvRDwq5BC8uazOumn/PfvP6IPGMCeMhSAOQ0gA1oj2f8WyMAG5skCGuATAQ2IwKopT10BlOBTCriAAyYwf8KaWM0g0KcJdrCCVLtguiLIJ6hw0IMWBKHURCgzFg5wgxT8INn6hT2b2VBPJoRhCmX4rKn5sIQ4PKEO2ba9Ho4QiU55IQqdpkJyCcEAGoxiDmO4Q6w5UWYF+CGegjjFplVRdxnAIhCTKEQqErFa6JNZFzKYJzIuMWpFpGHNuuAAAY6RjWXEXxfl9hQHGvKQDOwCCkh4JztykYnnyxAiJ0nJThGgC3Ni5JxcuMUhDrL/iYWspChHySlHehKS+pMPKVfJSkqZ0o2fjGQoW0nLWhLqlWZ8o9mMaLQH0AmXgkRlCFVpy2IaM4sCkOIdyxausx3zmdD8JSCXycNZRvOatQRm+WKZSkli85ut1KbRFAjOco5SnHvTZTO3ZM52UpKTSnwkHuH4RaH5ck7oFNoZ8+UA5wmBgA8wgAY2QE0v8s5m+zyorxKq0FuR050QjahEJ/qnXAlzhnFsaMUYqtFXcbSjqfooSE8l0pG2qaQmbZY6z3W2lHoMpS71EkxjyqWZ0tRKNr0plHKqUyfxtKflWmm7WgpUhf20qEE6KlLXJdR5LXV1TSXqU6HKzWHWc6rk/1IqVuMVVV5uNatd1eNXexfWjI71Wlo9676qitGrqjVaaX2rhuIq1wnRta4RuiteA1ZWt+51oX396+0CK1jdEbawZGVrHs2KWFjptbH3eSxk6yPZySrpsJZdVmUzi57NctY8nv3sxzArWlyFtrRRIi1qHava1QKrta5F1Wljy5zZ0vZksL3ttHKrWzLZtre++S1wscTb4da0uMbFKXKTu9PlMtenzn1uUBVLT+mqlLq7FKt1hSTc7c4sut5lKnbXqd3w4qi75r0MetNbmfWytzDufe/OwCvfGNG3viOKL37/ot/99qW//vXQfQNMIQAT+CwGPnBZEqzgow24wXwdL/9LvQrhuT64wgFiMIaXduEND2mldgEBhT0MoLWgRgDsAcE8WSri8pLYPibWS4pXfIALXAAE8fHri0t8JhVfgC6MqPGN8aKaHZPIBomx8Y8RIY922YUFRXCCERIAlbVYWcdGtpgRnFCEGSyGOoZoMgPsUgM3eCEJP3HCT9bM5ja7+c1wjrOc50znOtv5znjOs573zOc++/nPgA60oAdNaDsnwQtEGTOYN9KYeqwhDV5QgqQnTelKW/rSmM60pjfN6U57+tOgDrWoR03qUpv61KhOtapXzWpPeyENa/hABShhFGZgAA5xkIOud73rOPj618AOtrCHTexiG/vYyE62speUzexmO/vZ0I62tKdN7Wpb+9rS5rW24wCHN7hgAoyWxAEmYIphmPvc6E63utfN7na7+93wZoUxJBBucR9gzIKYi2MAsG9Q+PvfAA+4wAdO8IIb/OACxzfCF87whjv84RCPuMQnTvGKW/ziGM+4xjfO8Y57/OMgD7nIR07ykpv85ChPucpXzvKWu/zlMI+5zGdOc5cHAgAh+QQFBAAAACxdAJ0AtgHjAAAH/4AAgoIHhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6fmYOiAIUXpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AuoWjCBMVNSwmIcvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5dkmLDUVEwiDB8ZjVU009PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwoUOCTaqMWXeAkIQwXKDAGGKko8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bK4fAgMIljISKBy7UOEFjhREbSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKxWpkBY0TNS6U+iAmihECAv8EJEgwahCBunjv3sUrai/fv4ADCx5MuLDhw4gTK16c2C/jx3kL643M2LFiy4fn2hBAwEgUMR/UBs0hBYYRupBTq17NurXr17Bjy55NO7aAslJyiL7AQorRBAJqCx9OvLjx48iTK8cb14gTKTN2kzYaF0D15diza9/Ovbv3wHOtJ3AOXbpvI9Wvf1/Pvr379/D5hpdLPnqpGVKcoA8ev7///wAGKFtzz9kXFH76qSfgggw26OCCBJZ3X377PWjhhRhmuFyEBl6AYIUahijiiCQuxuFuHypY4oostijiiRMmyJ+LNNZoI4AwHkihijf26OOPG95WIIo7zgjkkUgmaZv/kBLqKKOSUEYppWI5eljklFhmqaUoVaZo5JZghvljl1eKaeaZNJL5JJpsthmimiC6KeecEDLZoZd05qlnfHDyuOefgAZZH5FrBmroocb1+SWijDbqmqKORiqpapBOaumlhlWK6aac1qVpp6Bu+mmopEo6aqmoInpqqqz+uWqrsM75aqy0ojlrrbiCeWuuvE65a6/AJvlrsMT6OGyxyKZpJ6FxJuvsmMvG2Oyz1NZ4bLXYXnhtttwyuG234P73bbjkvjduueh+d2667Gq3brvwJvduvPQSN2+9+M52b778Phqtk9P2KzBy+w5ssImdDSmtnwc3POC/Vhbq8MQPD7rw/6IUZ7xawRp3zCXEeHosMmQcj6xxySZTjHLKDq/M8sEuvzxwzDILDHKZNefM180S6+yzdTwH/HPNNA8Nb9FGs4t00uguzTS5Tj8NbtRSc0t11dhejTW1Wm/tbNdeIwt22MSOTTawZp/Na9pq48p227S+DTescs/Nat12o4p33qTuzTeofv/NaeCCY0p4q5glfXjhky6eqgoRGDDA5JRXbjnlEXjseKkRTJ5Y5tZlvHmoki8G+slBM9ywAX85EEABsBcAegaxFxCA5qlj3PDpOw+iu8ijb6rCAIHN+DvuFgOs+sC89y7I8R0HP+lerBfve87SX0p8YdCjnnzEQh+8Pf9gxmOfe8fj/1U+0edrnL7zobP/fcgO76WBYOvLnL2lDrzv6fXyU5jyusevAPhvFPl72f4aB4ADAjB++mufxhLHpQcqUIITJJ8FWbbASwXnfv97nvnmhzPNUXCDKesgqB5AmQiSsGcmY6EIBXFC5AkQfMvTmAxHUcPoYfBnPfTeDenHsh3OKIii+2EMW3jBF4bPYzvsywiHWMKUGdEuU2wSDgk4sShiMYBaJKLI9rJDvyBRZUrU2RknpsJOPWByDuhL5waQAQ6mkXH0aiMe86THPcrqjn5UGiAD2bRBEhJqhjzk1BKpSKsxspFZeyQkuSbJSX6tkpYUGyYzWbZNchL/bZ785NpCKUq3kbKUcTslKummylXerZWu1BssY9m3WdIScLa85eByqUvD8bKXluojMKHlxBwOM5XF5OIxX5nMZRZLmM601i+jqappUtNQ0Lwmi7KpzRJxppndNCU4w4lMKsKQnKniJjo1pM51Yqid7rQQPOPpoHnS01vWvCeb7KnPAPGzn+LKJ0DF9M+B8kmgBt1SQRPqnoUylD0Ofai6ECpRKUW0oty5KEbdRdGNCqujHj2SRkOqnJGSlGAgPWmPTKrS4rC0pcN5KUxrI9OZ6iulNm1RTXMKm53y1F/j/CmdfCrUjeG0qC86KlLZqdSlvrOpTpUnVKNaz6lSFZ9B/70qQa2qVX9ytasBzSpYtUTUsXLvq2aFT1nTij+0srU9a32r+twq14laTBC9MQpc6qqk9ACtPqLI61uUyVdvBuewdhLFdJ5Y2B4hJbGDII1pCNtYFj0WNzMQBVvcAhfO7CUuoKVsZRsUl858JgeiGIoWjPJYAYzltbCNrWxnS9va2va2uM0tU8qyBLSIogIYkcFGcELc4hr3uMhNrnKXy9zmOnckOuFJGCogCnhUAQwPya52t8vd7nr3u+ANr3jHyw8wSGQdoijGMVgwg2SggwXwja9850vf+tr3vvjNr373y9/++ve/AA6wgAdM4AIb+MAITrCC42uCBr8XvliAr1g6ENAOURyAARgOhoY3zOEOe/jDIA6xiEdMYlZkAQAYxjBgUsziFrv4xTCOsYxnTOMa2/jGOM6xjnfM4x77+MdADrKQh0zkHY/2yEhOspIdNYwlb6nJAAgEACH5BAUEAAEALFgAmADAAegAAAf/gAGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydgwcHnqKjpKWmp6ipqquslKCtsLGys7S1tre4ubq7vL2+v8CJCAjBxcbHyMnKAQzNDAAAztLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6erhktGCDQ1ZWYjw9fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw3yCmj2aUMEFixAKFAQJgqGjx44ZQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+ocySYjCxcSHlXI4aZIlCRIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4rFGqWImw8VGBB6VYhBDTde/5wkaMGhrt27ePPq3cu3r9+/gAMLHky4sOHDiBMrXsy4sePHg1skcOLFjQu1n0IRUjujCBUjAggkGE26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27d2wCAow4KcKCmSK1CqIAFyBIAPNDzxcxj56I+rLr2CFZv7W9eoDu3bVjCu/I+fTQURQYJwRtEIMGCpJcSUA+u/37+PP3SnAlSZD1g7QXEXxJcECffggmqOCCqyTAgX8ACjKMewReQQCDGGao4YbSPRdafwo0gNkgEw4Yn4Ucpqjiivo51xwBIIp4XAAYFJgAizjmqCMyDiaBQYSGqFWjgTsWaeSRtfT44/+IhwhpI5JQRinlKEoC2RaNT06p5ZZcPlIlk0FiSWSXZJZZ5pczDnmjmWy2CSWaiTg5ppt01rkinIjIuaadfPa5IJ5NEjinn4QWil2PIYLZlqB7Guroo8EgKmOcjEJq6aW7SKroZpVi6umnsWh6XKeglmpqKaJSGt+gp7bq6iWp5knqq7TW6uWDiY66aqO29uprIbEGuuuvxBYbbJCzFqvsq8cuOuyy0LraLKfPRmstqNNSWO213FqarYlZdiuuo98yk+y46NpZ7nvbpuuum+ue++68XcbbLr34amlvuPn2K+W+rPorcJEA8zrwwTgWjPDCOSrM8MMpOgzxxBhKTPH/xQhajPHG9mnM8cfKeAzyyMWITPLJ++E6qaz3ouyyLia/LDMtMc9scys136wzKjnv7DOVKm+qLb8/F21Kz0YnDWvQuhKt9NOaIA311I0IIDXVWCdyddZcE7J1111/DXbWYo9NddlmQ4122kqvzbbRbr/9c9xy70x33TffjffMeu/9ct9+owx44CQPTjjIhh/OceKKY8x44xQ/DjnEkk/OcOWWI4x55gNvzrm/nn+eb+ii00t66e+ejnq6qq8+buuudwt77NfOTnu0tt++bO66G8u0qk73LvjvLAcvfOHEC2v88Ygnj2zLzDefRK7ABzz1AIfzni4EkGsfPa3e92ue/4uDLEf+0+Ffy73l6X9/avvulwr/sthnPn/8nt6P/6X67w9p//4jl/OctbwAXm6A1CqgATWHwKFZz2dd4BwAF+inCVKQTxb0VX3wlsEL0qmDv9og20BoreiIsG0NBNcDzXbCpJEwWiZM2wuhFUOzzfBaLYRbCs0FPa7VcGw3VNYPwRZEGMpwh+xSINWGGDYkyutp22Ei14pILCmSzYk9zJoVsUZFD+oLi0r0Ir66KMYokbGMSDojGo2kxjXuqI1ubBgYVxjH1M3RYHU03R3zKDA48jFie/zj6AIpSD1Ob2XKo2MhueXHRVaMkI5kHSQj+bpJUlJ2lrxk7TKpSdxxsv+Tu/skKH13SKGpEI+jVFYjU9kxUbKyV6t85XViKcuQubKWzLolLltFy10ao5e+jJQug4mtYRIzf8Y8pqWslkxl/q+ZzhRgKZumyGhiCpjWzAU2s3mLbXIzSdD8JgbDKc46ebOcoSInOtt0znWyop3uVAU848kzddKzXva855bmqU9S8LOfovgnQDsh0IFuoqAGzQRCE7q0aVYPlQxlZz4jSrCJUlRHC72oJDKqUUhwtKOO+ChIGSHSkSqipCZFBEpTaoiVstRrFn1phlwq0wDQVKY3fWlOWbrTlPbUpD8daVBBOtSOFlWjR71oUim61Ig2laFPTWhUDTrVgR5rAQv/oBAbbJTDmm6IABcSRI/YsDKsYlWrXPUqlMA6iLGWNaubERNE1ZojF60LS/Oha5RcBCOHDuKsEblAcszTnK7qdUHOIUAUQnCBEZkVrsy4AAuK4ATQiMY3mM2sZjfL2c569rOgDa1nwXoa0gLHCFQowgwa+9cFDKNEDHABXORyBcjY9ra4za1ud8vb3vr2t729Qm3xIlwOWIgybqgBZl7LXGIE4ABDKcpRxkLd6lr3utjNrna3y93uevcpZXFDDiqgGeYegiIuyAFGFACSnbj3vfCNr3znS9/62ve++B1JCH5SgQlA4gIAhsc7HkLgAhv4wAhOsIIXzOAGO/geAA4AIwAicQCJFEJAh02RNDgB2Ax7+MMgDjGfOixiN2EVGihGcSAAACH5BAUEAAEALFgAmADAAeAAAAf/gAGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydgwAAnqKjpKWmp6ipqquslKCtsLGys7S1tre4ubq7vL2+v8CJr8HExcbHyMgHhAwMyc/Q0dLTi8uQBxeEFxcN3d7d1OHi4+Sp29rWkDmDGBgK7/Dv5fP09faN7QoBIesVE/cAAwocqGldugDDCCpcyDBgjUIJG0qcSPHZDEchKmrcyHFWRkMHDnYcSbLkKAUNQIo0ybKly0coDUW8gOGlzZs2MWSDGGoQTZxAg3bUyaiBPqFIky6Mucio0qdQ7TFV5DSq1avTpiaqirWrV2JaEXH9SrYsrrCHxppdy5YVWkNq/9vKnSvqbaG4dPPqrWR3r9+/gAMLHky4sOHDiBMrXsy4sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHk26tOnTqFOrXs26tevXsGPLnk27tu3buHPr3s27t+/fwIMLH068uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869u/fv4MOLH0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5K2STDbp5JNQRinllFRWaeWVWGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqageM1MQpAaxkyCgrNrqqwj1RAheqQ5y1Ki0CoIAArka8uuvhVyU6q+x9nTAQ6Rak2yysJraU7KBAAAh+QQFCAAAACxeAHAABAAFAQAHUoAHBwAAgoSGhYOJh4qIjo2QjJKLlI+TlpWRmZeamJiECISio6SbAAihp6mlrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7IBIEAIfkEBQQAAAAsXgBqALQBEAEAB/+AAAAICIKGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en58IEhKFoKanqKmqq6ytrq+wlBN6LhOxt7i5uru8vb6eEjo1Er/FxsfIycrLhxU6HxXM0tPU1dbXiM7Q2Nzd3t/gnQzBw+Hm5+jp3OPCxOrv8PHysOzl8/f4+fqS9e77/wADxusnsKDBg9gIIlzIsGEvhQ4jSpx4CiLFixgzRrKosaNHjRw/ihzJMCTJkyj3mUzJsqW6lS5jylxHzt/MmzirwczJsyevnT6DCm0FdKjRo56KIl3KlJLSplCjKnoqtWpUqlazIsWqtWtQrl7D4gQrtqxLsmbTnkSrtq1Htm7/416EK7euQ7p28x7Eq7cvQL5+A+MDLLhwvJqGE09ErLgxQ8aOIxeUQIuU5MsAJ1SoYAuz53wIJkwo9bm06dOoU6tezbq169ewY8ueTbu27du4YTVokLu3pt2TFCjwTdyS8OLIkytfzry58+fQo0ufTl2xAt7Vsx+6rr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkw5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+AqelytwLUaCAAh+QQFBAABACwAAAYAXALSAQAH/4AICAEBgoSHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6flQuiC6ClpqeoqZWGhYOqr7CxsrO0tba3jKOkuLy9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEkymSBWJVOqBHnS1cqXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjt3QhXcp0mdKmUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7dvhS1/C38UfLjx48iTK1/OvLnz59CjS//3dHru6taza9/Ovbv37+DDix9Pvrz58+jTq1/Pvr379/Djy59Pv779VAwYfCx+X9+ECi64UMEEHvHXHz4VYIDHDW+4cKBlDNQwhwce3FDDg5ORcgELO5Swgxs16IchZKQ0oEAJBtBgxwcijvgYAyaWoIESK7boYmMwnjhjjTe+GOOOLI6GnXg5okhjkKINGV7/kUDa2KNiTB7p5JOIRckjlYtZiSSWiWk5JZeEeQlmlz9KOWaVZV55ZmFFGmDmmmymuSWcgrX5Jp11xuimmngCZiefffolZqB+yvkloXkNimhfii66V6OOJmpopHxBSqldll5KV6aaysVpp3B9Cqpboo7KVqmmqoVqqmityqpZrr5KVqyyikVrrWDdiqtXbao4566qXjBDhzsACmxaEU5Y4QcHoHRsWgni8YKFzbr0LFr/uVCDCwRe2xYADFxwwaHennXAAeWmq+667LbrbmwAvJtKvEGBS4i48nKCbwAM0BsUCwFggEG+mwgcAMBAxYswwaYA7C9QVzC8ScRUSFxW/8UWOwrAwxcMnHEpGFxw08aIdPwxyCLzZGIAHCRwsiYJcADUyi2/nEnMNues88489+zzz0AHLfTQRBdt9NFIJ6300rgZyPRPTj8t9dRUyySAAIpcjYjWAXCtitddY50K2JZcbbbZsIB9NiVkP9K2Jm93Encvc4PWttpi1+0J3l+LjcnZa7+Ct96JEL6133IjDorhtTBe9eOQRy755JRXbvnlmGeu+eacd+7556CHLvropJdu+umop6766qy37vrrsMcu++y012777bjnrvvuvPfu++/ABy/88MQXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99tx3b5ji3ocv/v/45KNOACN+n1++JHeDv7417b8vf1nuz2///fjnn7HYBujv//8AnE79AjiNB0xHSYOJ340QKBgFEvAfA3ygBCdIwdMALoIVJMYFM8jBDnrwgyAMoQhHSMISvgOD3ImaCX2hwhW68IUwjKEMZ0jDGtrwhjjMoQ53yMMe+vCHQAyiEIdIxCIa8YhITKISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPlpEFIRYWdLapoAG5ASQARAk0ghpSJs4y2RcdFbApuayQI7sYZcjGUw0mQiM+SzVAZVEBCghwUmakEtnHJBZIlJJiAR48pROGcX/ZnANBqYDYAZL2oXqlZ8AgAAEYCTZvgjRSy2S4lyIKKUfl8nM+CjTi89spjSnSc1qWvOaqGthFrWJzW5685vgDGfybIlFcorznOhMpzrXyc52uvOd8IynPOdJz3ra8574zKc+98nPfvrznwANqEAHStCCGvSgCE2oQhfK0IY69KEQjahEJ0rRilr0ohjNqEY3ytGOevSjIA2pSEdKD25esSUbS6lKV8rSlrr0pTCNqUxnStOa2vSmKg0EACH5BAUEAAEALF8AZwCxARUBAAf/gAGCDISFgoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+gmQwXDaUNFwyhqqusra6vsLGys7SPNSwKuSYfFbW+v8DBwsPExZcKczslyyU7MwjG0dLT1NXW1Bok2gYlOhPQ1+Hi4+Tl5jMBGhEWIh0dMXcVE+b09fb3+KokFjYCBC0w4s3LR7CgwYP3SIgQ4K9FkjsuBiKcSLGixVokRjD89zAiuIsgQ4ocOUnhRoAQJZJcybKlRZMNA0Z0SbOmzXow/8lUebOnz5/BcqKcCbSo0aOsMp7cibSp06eVhDKFSrWqVakprWrdehQrUa5gw7r0ylOs2bMUyaJdy9ag2rZw/+OWeyu3rl1pdO/q3esrL9+/gJNqjJk1sOHDnvwiXsw4kuLGkCMfeiy58mLKljMDxqy5813OnkPDBS269FnSplNzRa26NVWlhL+6ng2WNe3bQG3j3m1TN+/fLH0DHx5SOPHjaRfGLou8OUnjzqMnXJggAQemBw5I337RZPXrWbNzHz9x31KB5NMjVGchQQvwstXLv5dNG4kSLzwKEj+//7hkzJTgwQvyHMKffwhW84EJuSiAwQwuSHBgghROg4B2plxwwQEXalfhh9MUYgiIJJZo4okopqjiiiy2KAwCH7koYysTzmgjKBreqKMrNezooyfo/CjkkEQWaeSRSCap5P+STDbp5JNQRinllFRWaeWVWGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26eabcMYp55x01mnnnXjmqeeefPbp55+ABirooIQWauihiCaq6KKMNuroo5BGKumklFZq6aWYZqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPFUxRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQR53yBSSnMjIAIQcCACH5BAUEAAEALGAAZwAYADIAAAf/gAGCg4IMhoeGhIqDFxcBDZCRkBcMi4oYGAqam5ssFRMIl4slpKWkHj+flQEHB4sksLGxJS81EoOtiiK7I7u+Ij1AMxWWAQI2NgLKy8swPiHExcbM1M4KFQy5C4rUzATWxNrc3QIELSs+16yu24Tk5efp4ezj3ebo6uLu5Pfy6wHtRAh61y8fvX324hkEKGjEQH4K5zFESK2gxHaDCEb8h/FhQnwX61XcqC8jRJAcRXojedDkR3/6BE57ubCdw5kjUZb0mNOfNI0of570WQwoUUtG1QmlGa3oUKVOmVqSmbQpoZtVpeFcGTRqT6hIn1pdlHXp17Eql1k0a88ZBrQBSRy+a+bjbTECW6vBdKWIAIEEgAMH1snXkixZJXaADaBglKlSHnZ8qBCKUA0WgzhpZuFCQuV1AFYJkkS6keh/lhAhOgCgtWsAgQAAIfkEBQQAAAAsYgBnAB8AOQAAB/+ADIKDhIWGhwCJiouMAA0NII+Skw0XFwyNmYkKCkidnKCgIR8VmpklqKmqqjsspo0ksbKzsgYlPwsIjSK8vb6/vh0dSkcVE6+KAsrLyzY2AgQtScXHyADM2MvRMNTW2d/b1CPf5OXR08bI5djn3a/rzO3p7/DK8tWm9fbS7vn69yL0wbs3TqA5fvP81bun7h9CfJoEMqS38GHDeOQsUmQWIIXHFAGgaVTITEWGkxlUiEQ3IaBEAio2oFRBgKBBAgJMzqw5MmI2nSdVTiS5rOPHkEN9QluXNJPEnk4dsrw4EGqjp1M3Mn3o0iC4hwW9Zmt6VWo/pdpqsrPKCBzOeGxpF2E9G3Xs2qxaa77VFrdtvL378Gr9yi3hqwSIE/NIjLgFh8IQTdGaLKvEDcOmVmlO5UEHZk2hQmPAwAlDjgoIdFmrZOnCJEuPQFyyxuhAokODaC9KnVq379/AgwsfTpy2peKZRodezikQACH5BAUEAAEALGQAZwCoARUBAAf/gAGCg4SFhoUMiYqLjI2Kh5CRkpOUlZaXmJmam5ydnp+goaKjpIINkg0NIKmsra6vDRcXDKW1tre4ubq7vL2+lAoBwYcKxcbHyMnGIR8VCL/Q0dLT1NXW1wEl2tvc3d7bHiYTz9jl5ufo6eq1JO3u7/Dx7gYlLxUT6/n6+/z90iIAAwocCBCCARQjAnboEOOECwn+IkqcSLEiIQECAmDcyLHjRoMqOBJoAYPCQ4soU6pcOc2jS44gRZI0CZGlzZs4c2p6yTPmxpElT+ocSrToTZ4vfWIEStOo06dQ+SF1qVQAU6FRs2rdGm2qx6pXa3IdS7asKK8dwc7Earat27eR/9DCNBDy51qxcPPqNSv3I12ZQfHuHUz4qUcCSNUGLsy48dC+GBU3dUy5MkrIAiSztcy5cz7MmgV7Hk3aGui/dheXXs0a14YMsGPD3gA5dOvbuEGliMC7t+8UfW3nHk7ckgXfyCNYEJkY9dK7xaNLN3Q8ee/lcoVP3168unXlwZ1bhc69fG7v1rGj1W6+fWn0ydV7Ze++Pmf4yOVPpW+/P2MBu30XAXDZiReWfwhS9ppssdEWXl3PqZbghJydBuF4ElKoYWMWAjbZhiAS1mFqH4ZoIlwjRljiiSyWlSKGK7Yoo1YvHjjjjTTWZiB5OPZ4FEaF1Mijj0SqBORFOl5oY/+RTP74oIebNSmlPxkh+SSJUU6pZURCZrjll/10GSOYZKojZpZlpllOAmyy2UILbcbZJkhxtsDBCmOqqec18vTpZz1o7imoNN8UaqgHL7iAz6CMQlOMIMpEKikGLLiAADmNZrpLKqbA4umns2gqajSOlGrqqKimquqqrLbq6quwxirrrLTWyhmntuZay6O69urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnnoIcu+uikl2766ainrvrqrLfu+uuwxy777LTXbvvtuOeu++689+7778AHL/zwxBdv/PHIJ6/88sw37zyRsnSeSOcAVG/99dhnr/323Hfv/ffghy/+E/jkl2/++einr/767Lfv/vvlBwIAIfkEBQQAAAAsYgBnAG4AMwAAB/+ADIKDhIWGh4iJiouMjYsHBwCSk5SVlpeYmZoADZ2en6ChoqOkoRenkZuqq6yUCq+wsbKztLW2CiGxJjk1Eq2/wJglw8TFxsfIycrHHjcuDMHRwCTU1dbX2Nna29gGJTsf0NLjmyIdHSIjIusj5+nq6/Hy8/T19SPqOD1ELBcMqeQCTrIhgAABAQgFEDSYsKHDhxAjRrQxpEi/fwIzShKQIMHDjhJDihRJscgMfxo1cvToEOTIlzAVVjwpLmXAmDhzNix50aZAnUBj8kTpk1zQoyQr9iw6DqlTiENrMg32tGrCqMEITAVg1SrWrVS7Pv0K9pfYsUqJlm111inZtav/2iJ9u2rDgLt4897NoDWa3KN0VUHQS3gAhKZ/gQbeNLhw3sPSEitOK3VVY8d3IfuVnHOxpsuYNYflLJQyMNCORQMjjZOsiJeoC6s2yxom2RGwMeOdzbb2S8+ZYhPmzcr3b9O/hOslHtd4UotqWSl/jNi5ROCYMui+u6G6dajI4Tb/Dh565YB9vZPfGV78pvXll7p/D9+ha5jpi9a3H37EfEz7sWfef/QFKNOABGZiIELYEbjggfJlpd+CDf7XkEEYflcSTQkqeGGG1m0YXYeUPCgiNJCQSElHLCbAQ4sttiDjjDDWaKONL7LYgg1GmIRSiipSws2QRBZpjQEaeGDCRI8ABQnAMlBGKeUx4DDppCS1hKBlLrd06WUsWprQS5NOnnJKKCCkCUIpbLYJSpqnnBckJJA4Yuedh1xZCQJ8IqAnJoEAACH5BAUEAAEALGIAYACrADoAAAf/gAGCg4SFhoeIiYqLjI2Oj4gIkgiQlZaXmJmam4uTlJygoaKjpKWmp6ipqqusra6vsLGys7S1tre4tQy7vL2+v8DBwsPDB7nHgw3Ky8zNzs/Q0dLRF9UMyLUKhArc3d7f4OHi4+TjGBg5FZ/YtyXu7/Dx8vP09fb2OyYT6+yzJP8AAwocSLCgwYMHDZTQUWGCrRGCRIjo0CEARIkjKIoYAbEUR4kBJIocSbKkyZMoN6pMSZJijBMuJNwSEMCGAAIEBNG0idOVgJ9AgwodSrSo0aNGCbSAQaGGTFw/EyQgFHVqK6RYs2rVqpRpzFxVqQqQ6nOr2bNbu1KIKaIfLbRw/+MSVfvV7Sy5eOXSfWo3Vt6/Z/f2lQW4cFbBjXIODmW4cdKla/kyormYk+PLQhFXvoq58962nBRvVtTZM+S6iUdrKo1ZsyIVEAzInk1bNgQVqhGxvuw6UYQBjAZEyH1ot+PeiCAAXzQAAnFDxhsjP6Q8uPPnYqMDnm6oOvPr2HVq335aciLvipqHHzSevFfzyZenBx++/V/uhdAnUr8+gP28nzGiHyL8rfcfXvgRMuAhBdZ3YFwJDrKgIQ1i9yCE5TUyYSEVPnchXBEK8ltww/X3IVp7dfRabLW1eFt//p1oVoiNUAZjjDJyVZ6KmohmYo46vnfjKEAGGdkjNg6pW8ORWAXIiI9KFsckUjRGOdmUR1VpJWlYPibklqt1WZSW7IHJnphzZYgMTUnCgmaaX67Z5itvDkWmmYXUmZma2CTAwyFkicKDVYO0MKhUUrVgKKKJLsqooociCimjCShK6aWYUtoCByscieclCIUq6qikklDCC059msk9rLbqqqsevOCCQ3ZxEws4IYSAq67f5Lrrr+UEiwELDfEzizKIIAuLMyCAwKyzzTT77LTTVNvABdfgsgs7xHTr7bffHgMAAKq2EggAIfkEBQQAAAAsYgBnAKgBCwEAB/+AAIKDhIWGh4iJiouMjY6PkJGODJSVlpeYmZUHkp2en6ChoqOkpaanqKmqjw2trq+wsa0XF7K0nAAICKu8vb6/wMHCw8SKCsfIycrLxxgYzDMfLhO5u8XX2Nna29zdjiXg4eLj5OXhO20u3uvs7e7v8Isk8/T19vf49BoeNzXx/wADChw4SoTBgwgTKjTYAYUBCAl7KDnzgQHBixgzaoQnoKPHjyBDdiSg4iHIIUkoWtzIsqXLl6lEypRJ0uTHIVFUwtzJs6fPQzODfqwJ4WTOij+TKl16UahTASUhELh5dCXTq1izansqNKpRnVrDih2rimtQr1TBkl3Ltu0jszP/0XrEqdatXVMj7maEK1NuR7pI9QoWlXfwQL4i/QoAbNWw48c+EYdUzBiy5csuJYOkXBWzZ08qhIgeTZq0is+lNH/kXBe160QWBsieTbv2AAuvQ6n2yDpw7t+FMgxwNCADcE+7O/ZufPy3cOLGm0dKDtXm3M7SgT9vVDw7JOrLvTsfzj26eEbgrf/Ffh71dkbd2y9KXzStb/mY3y+Kjx8R/a/39QeZforwJ2Ah/92UUoAHGkZgIgY2KEiCcy3InISCPYhIhBJS+JeFGD6m4SEcNujhYiCGKFZhiYxoSIkHnohSayra5WIhMAooY4o16hWbbUDKhluNO9LYY1uhlaak/2in9Vgkg0cmJcIoAkQJwJMXWqklZFhu6eVlXX7JVpViGhJmmWjadWaabJK1ZptwZvVmnHQqNWedePJUZA559vnTnn4GupOM7AlqaEYJJKrooow2qmhUjBrB46GUXpTPpZjSY0AJO+SQZaWgwmPOqKSK48ELNXwa6qreMOPqq8yYkEMNErBqKzyy5KprLLQwkMWtwLajybDEWhLsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8f/FGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBdu+OGIJ6744ow37vjjkEcu+eSUV2755ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst+7667DHLvvstNdu++2456777rz37vvvwAcv/PDEF2/88cgnr/zyzDfv/PPQRy/99NRXb/312Gev/fbcd+/99+CHL/4P+OSXb/756H9JAAHCrx8IACH5BAUEAAAALGIAZwDeADIAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOIDJaXmJmWB5Sdnp+goaKRFxefDaipqqsNpReco7Gys7S0GBifCrq7vCG8CiEzNRKwtcbHyMmzJczNzs8lHjc1r8rW19jZhSTc3d7fJAYaHjPV2ufo6B3rHZ4i7/Dx8u84NCYXDOn6+8kE/gSeBAgcSLCgQAIyQuDjx7DhqH8AOxmcSBChwnwOM2qMBDEgRYoWF24cSTKRP0kCCH38mFBkyZcwQa2k2BJjzJs4H82cWDOnz5+IdhrsKUgE0KM5hRYkCsAo0qcvlRJkCrUqSakDqVrd6hCrQK2KRkSAQLasWbMRRnBdi9IrU7WK9h5Aksu2biOvAsAmggCJr92/ifDqReTXUWHAiAcJvjgI7t6+iSMLWuyS0WHLkiNTton50eXMdTd7hgwasGjDpEvbPd3osyLXqq2y7ow6dmi3jGvrts2VtdPHo3mvnb0INmHhw3G7/I2IriPnyKsSDzv2rHWyaaNvZe3YU0Tt25VzBk9esfjy6M1jHWwyfeLp7pHDj897Pv3YohEguC//vH7+wnllgwz3jAcgflgNWOCB/UmlIAjmMBhbAhRWaOGFCRCQlwkQFiNhaeCE+I0HuX0YGzQoOuPBB6YsYKJqv8QYYwgfSGDgi5GxouMqleFYmiZAYmJIIAAh+QQFBAAAACxiAGcA5QAyAAAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlIUMl5iYBweVnZ6foKGihw0No4ulqaoNF62cp7CxsrOSCgqzt4S2u7wKITM1ErTDxMXGxCXJysseNzUMx9HS09SJJNfY2QYaHjPQ1eDhxCLkIsfl6OU4RSYX3+Lw8aAC9ALH9fgCBAI2Wu3v8gIKfITvXr56NvphyTKwoUNFBY0dRKiQ4cOLGAHQkzaRX79/GUOKHNYxoT93I1OqDFXyI0pGBFbKnDmo5UmANHPqJGQT5M6fO3u+BEpUplCcRZNmPMoIhYYBUKNKlaoBhdKrsI6aU6QBUlesYOdNNOlT0QBIZ8OqrcR0UVpHb+nXyiU41iWDrYniMtI7t2+itmbR+h0Mse7NEW4FE15c6CjiwI/4Mh4MOK/iyYwrI5JsGXNmw2U7w/X8+SDZoaIbcSatVvOh1a9ZE3ZtCHZt2ZRBo0b01VFv3HKZxkzkdKrxqFWB99U6T3lu03ZBDXe+XDdS6th5WndkLztp2oame8cMfrzz8uaBo08vez17zwcJELjCTwuW3e/V55O/TyH+/O3ZFMJ/AHqWwIEttICggvRoMeB1BZKWzYQGeIABgRFitsyGJXiQA4YZLtaLLyH4YsIHFbwSIm6rgABCKhccgMCKymVi4zuBAAAh+QQFBAAAACxiAGcArgESAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlI4Ml5gMB5WcnZ6foKGio6SlpqeoqQANrK0Xr5uqsrO0tba3uLm6jgq9viEsHxK7xMXGx8jJyp8lzc4eezUMy9TV1tfY2ZQk3N0GGh4s09rk5ebn6LMi6+sdFjsmF+Pp9PX29/YCAAL8/AQtRULIw0ewoMGDxfr1+xdD4DyEECNKnEhJob8WDQdS3Mix40aLAhg69EiypEl6IEVqPMmypctjKTEqWPmyps2bp2LGmPkQp8sRPoN20jlSqNGjSA8RpZm0qVObOnk+nUqVZVSmVVlmMODIQIasE5f2BGuS6yOzZBGKTcu2bT6LKv/Hup1Ll9raunjzIrurt69fW3z/nhMh+GXgwuQII7YKF2PRxZAjIwoQQNFVuZIzazZ0ebPnz4Q6gx6tWTTp04tNo17tVzVra2gbxX59yzVtXPoSbe369Tbuxjux+h5e1Tbx406NI19u9DDz50GdQ59eUzr16yetY9/eUTn372GBSwVP/uM+hXHLq5eoD/jj9fALxgx4AcCC+PjxJdi/v0WLdwLZl9+A9XRjYAkYCEfggtk448wOOSjIYD29XOdLLyGEoMAHFWA2YT2sbNcKCCA0IOGHKCqTySUptujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zxUcUYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTnzhRMgsiu1BBIAAh+QQFBAAAACxYAGcA9wAZAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWKDJaZmpucnZ6foIoNDQCYoaeoqaqrrIQKCiw1FROttba3uLglO3MYFbnAwcLDkCQkGh5zNabEzc7PtiIAERo7MxfMiQIC0N3e34vbFiQlCg3Z4Onq64XbPOTm6Ozz9M/bCfDn9fv8w/f58voJHHjqXzl9BBMq9GQw3sKHECk1RBixokVtAvAdDHixY8SJHD2KTAhypEmIJU+qJJhypct9LV/KXBdzpk1vNW/qbJZzp09gPX8KhUSgCwFBXboIKqpUUdChUBdtEIICgAghQqShELIhXEaAUcM+mlr1alYAW7s6/bpRrNtFI/9SjADQJUUKpXHnrtXo8K1fR0cbPf1LONLgwogZHU7M+NDixpAFPY7ceDLlxJYvF86s+e82AmA7iwbwOfRozaXbnkYtALTq1ZQ5w4Yqe7bQ2rZ94s6tU5xp3mJbtDhEzRo24JCRKQuJ3K8cX80hx5oVvbr169iza9/Ovbv37+AVXbgQPiwGDOVtIUAgaH16n+4BxH8v9AD9+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeSokkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCarLJXzMcsek4EAACH5BAUEAAAALC4BcAAcACAAAAdngACCg4SFhoY8h4qLjI2Oj5CRkpOUlZaXmJmam5ydhygZGRYCACqhKgACFqEoBI0OEREbpBmxGQAEG7EOjrCytLapuhG8jRtCQiqkKMgoqSrIG5ikrp7W19jZ2tuWCZ3e3OGN1ZsEgQAh+QQFBAAAACwtAXAAHQAgAAAHY4AAgoOEhYaHCYeKi4yNjo+QkZKTlJWWl5iZmpucnZYPEREOAoKgEQ+CAg6hqIwQAwMQpACvsQACArUQjbqzuqm/jA8QEA+zw8WpyK2Ys57P0NHS04MEntad2Jza1N2QiZ0JgQAh+QQFBAABACxkAGgA5gASAQAH/4ANDQGEhYaHiImKi4yNjo+QkZKTlJWWlAoKl5ucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq3Bka7huFEO4QhRvuGhnr+ocZA4T5hAwELARwAMB9+/r9KyQwQMMABQ8iXJfBgEV4hCBYpEdog0UDEieKHEmypMmTKFOqXMmypctWCV6SjCmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqDSBoaTYGDJxiAwBAqtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cOvjyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDix9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghiiiLZmcJsiJKKao4oostujiizDGKOOMNNZo44045hgIACH5BAUEAAAALHQAfQDOAB0AAAesgACCg4SFhoeIiYqLjI2Oj5CRkpONBJSXmJmam5ybEQOgFoMGoAaDFqADEZ2sra6vsIkQqaKCqQOnqRCxvL2+v4uzoYO3uaC7wMnKy52fw4KkA6aCqKCrzNjZ2q6W297f4OHi4+Tl5ufo6erp3evu7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLEiNgwYLlywaFHjgQMcOSJAENJiIAAh+QQFBAAAACwiAX0AHgAQAAAHRIACgoOEhYaHiIQGA4wFg4yMgwGQBokCkAOOgpiSnImYAY+QnaOJi4yhm6UCk4yVlrCxsrO0tba3uLm6u7y9vrkEv4KBACH5BAUEAAEALHAAfgDYACIAAAeqgAGCg4SFhoeIiYqLjI2Oj5CRkpEDlQMCigKWA5Odnp+goaKjnZiJpqSpqqusraKoh7Cus7S1tp6bsoWalre+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+TGuuXo6err7O3u7/Dx8vP09fb33wn6+/r4/v8AAwq01qBgg4EIEzFgkLDhIQAAFixwSLGixYsYM2rc+K8gR4EKFHz8FwgAOw==\"\n  }, props)), Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-r\",\n    alt: \"\",\n    src: \"data:image/svg+xml,%3Csvg fill='none' height='240' viewBox='0 0 312 240' width='312' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 0h312v240h-312z' fill='%2300a0d2'/%3E%3Crect fill='%23fff' height='108' rx='2' width='216' x='48' y='80'/%3E%3Cg stroke='%23000' stroke-width='1.5'%3E%3Cpath d='m158.917 142v-15.111'/%3E%3Cpath d='m154.472 142v-15.111'/%3E%3Cpath d='m162.333 126.75h-8.889'/%3E%3Cpath d='m153.139 130.889v4.071c-1.928-.353-3.389-2.041-3.389-4.071s1.461-3.718 3.389-4.071z' fill='%23000'/%3E%3C/g%3E%3Crect fill='%23fff' height='21' rx='1.5' stroke='%231e1e1e' width='117' x='48.5' y='53.5'/%3E%3Cpath d='m70.592 53v22' stroke='%231e1e1e'/%3E%3Cpath d='m144.432 53v22' stroke='%231e1e1e'/%3E%3Crect fill='%23333' height='8' rx='1' width='9' x='55' y='60'/%3E%3Cpath d='m150 63h2v2h-2z' fill='%23333'/%3E%3Cpath d='m154 63h2v2h-2z' fill='%23333'/%3E%3Cpath d='m158 63h2v2h-2z' fill='%23333'/%3E%3C/svg%3E\"\n  }, props)));\n};\nvar images_BlockLibraryImage = function BlockLibraryImage(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-np\",\n    alt: \"\",\n    src: \"data:image/gif;base64,R0lGODlhcALgAfYBAACg0k9PTxmXviyNr//+/xOZxB+Uuv///wOf0ACg1AGf0mBgYOLi4gybyb6+vgCg0CAgIKioqHZ2di0tLQgmMBchJBOCphSJrwFGXyEdGxc9Sh4eHgadzR9xjz8/P8zZ4C9sgYHb9laHm9j4/+3//xd0lSibwZjm/Nv///z///X//////Tyt0vL//+r///n5+f3//7HV5AAAAO/v74fL4hISElyuyjh9l0eTridviKzk+FCmwwkJCQ8PD0KdvSCUt//9/KXx/4/T7Lz////8/XyxxBB2nKHb7rvf7s/8/8bq+K+vrxaYwOjo6I+PjwCh1s/Pz6CgoF6SpfHx8fX19fz8/JXU6MT1/3bB3Iy5ypnC0bXt/9/f3/r//+T//yJ/oG+gstTy/f/9+VK73Eh9kYWuvANzmAVkgxBTaQ9eeBtdcx1thxiRuP38/wCKtgh/pASBpv/7+tTq9RKUvhCSvNzk6P37/L/P1SdFUeP0/On5/uXs8Ovx9ODo7e/u8QAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0MzUyLCAyMDIwLzAxLzMwLTE1OjUwOjM4ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMSAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OTFFQjQ2Njg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2OTFFQjQ2Nzg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU1Q0NDRDc1ODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU1Q0NDRDc2ODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQQAAQAsAAAAAHAC4AEAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8Y3FGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBceXyAAIfkEBQQAAAAsdQA4ADMAMQAAB/+AAIKDhIWGh4iHD4sPCgqLiZGSk4WOkIQJmQmUnIeam4eOCAgcpaanqKmqq6UICoYJpA1ucLW2t7i5urtwbg0Im5uOCgizcG/IycrLzM3Ob70cg8SuHLTHz9nazb2uotXY2+Li0QrCrxzh4+vO0QiF6ezy3G4c74Tx8/rI7vDq++z64fsHcJzAQfkKBqx3DyFBcT4izjsoKOE6CxF9TGTobx7GiBbkUQRgcdxHHyEX2uso7+TGlQM9ZnzZsOJDbSeNiOQYs2VGnSprkryJzIIFI0iB5kz5Jmm2kSWVZZxKterUZ1CJWt1qFStPh8+4ip3Z7qvNZ0bTqj25Vq1XmGCTfUrcCfesXJR0hUbdxjYvS3Z9g/69mJGpQbNDZUYEui6rYh+MD9dNfDcyOcR7cZIV3FNhY8xEPdObnFn0aL2hTSujmKC06tX1LgFonfo1tNgPprm2fbuugt22WSOgxdurK0LEjPFaznxXvVeVSLmZTr269evYs09vwCF3odyiWIkfr6omqErURqlfz769+/aOCgUCACH5BAUEAAEALHUAOAAzADEAAAf/gACCgwAJCYSIiYqLjI2GjZCRkoIJT0+GmJmam5ydmIsKCBwNpKWmp6ipqqUcCIoIDXRmZ7S1tre4ubpnRnMch4QJHHS0acbHyMnKy8xpZ2YNCgqDlQ2zzdjZzWdwrdRPDWfa4+TO0K7U4eXr29Acwers8sjPBe/p4vP69feU8fry+MHLB5CdQHz61Mw76I9gOTVFIipcx7DQv4dFyhSZWK5igovkIGrkSM4jyHEiNxo0Y2+gvJQkx5l0GDKjSoos+1mkidJmTG0zX5YZ+RNbUGZqkipdOnTj0qXtWiJkFrGq1YxDNV6NGFXnR57GRGYdS7bsSGZHl9ncSpbtTWVpqJU9XQqi6VylXV2yg7lSasOXPvt6PamNL06/OwGfPTwYbDbDHXPqXQe5pOSplAMznvzQrmDONSV+xky5KNDLfwuOTq06MuKvrTeTjp0tLm2jqBPfPt0AHevd7XojamDEMXBjZ9x4I8Rhzqxd0KPrOjeNkKgGcMxo3869u/fv4M24acChOqIE1xsUWM++vfv38N2TamU+USgEojjo38+/v////OEnDSGBAAAh+QQFBAABACx3ADgAMQAxAAAH/4ABgoMAg4aHiImKAQoKi4YJj5KTi42GT5SZigAPjQ8PjAiDBXOlpqeoqaqqBQUNjJ+GF2kYtba3uLm6uxhnbK+MAU8NF7Uax8jJysvMzRoYaHOijoJpztfY1xhmwIIFGNnh4s9nBRyDc+Dj6829TIbp7PLK7oIJT/Hz+vUB9/n68vgJ+gdwncAABAuKO5gwHJ47EAOeeYdO3bqHEdkxtDgO4x2JFAdyFOcRJLyRDiF+1DjxpLySLEMiRJkNpsGWFV+qNCkIQMOaO2MS+nkshsqjSJMGZSbQJ81jSqMqdSZQAVENUrMuXdaUzlMNeMKKHatyrFmqOAM41ZnxZsi17Jpsjmt61ZnchWnhXtyK923dZnfD0f1ql6/gvH+ZBc42mO1Kt0MJA4YYg6darwqF9kycOVlXyZ09IwYd+lhVzqV7CXBZmvGZ1f3wkU498dy9b61dm7MX4MzszhjeCHKUoAEbWrySK99VDlGDOWbOSJ9Ovbr169jPvCmQqFCDAkzCix9Pvjx5AeaZcFdQSBGHc5riB3iPAIB9+4EAACH5BAUEAAEALHcAOAAxADEAAAf/gACCggkJg4eIiYqLjIgJT4aNkpKFjY9PkIWam5ydnpyYlYgIHA0FAmypqqusra6uAkwNCIgcBV8YFLq7vL2+v8AUaAMNkQAJDRa6GczNzs/Q0dIbFBhsCArHTwW5FRsb0uHi0N8VFGcFHNoCFN/u7/Dx8vPvGdUC6sdsFBn0/v/z7GEw0IDQPmYAEwIU+KOgPn79FEqUx9BhgoMRJ2r8VtEgxI0gOz5ECFKjyIsfJU4gcOCAyWoNPZJUOKGly4knMU6s2fLlQIs6Vdr0SVBmxoQ8b0oUWHTkUYBJiQJNSXMozmpNUc5EanUp1qlboXZVyBTs028206pda5NAwK9Gy+Wxncv2LYaYTuXSXcuyrV28Ws9umEC4cGEPNg0r/mt259iEOaly7Xn1bmOhlL1ajotZKVmYl6tm/rw5b2efgIOK9gwZNOfVqENPZr3QtemSmlNLxl27dGDeuWUD9xc57HDGr4/T6/jooPLeRR+xe14bDT5CBdBQqDCuu/d+FMzMGtRgQK5g6NMDs45tEIIGbM5gmE+/vv37+POjMSOgQbZDCdgigAEG/GDggQgmqOCCCBogCzYPJKIAB6U0YOGFGGao4YYactDeIIEAACH5BAUEAAEALHcAOAAxADQAAAf/gACCg4SFhoeIiYIPD4qOj5AAjAAJCZKRmJmVl5SVnp+goaKhkZVPp6ipqqusqpaKCggcBbS1tre4ubRMBbwNHAiGCgoAskwlamjKy8zNzs/LaRYCHK+DwwAcTGcU3d7f4OHi4mcF2NeUDSXdFe3u7/Dx8vEUF8AA2MQKBWgUFRsAAwocSLDgwAwUzDQIdi7BE37+DEqcSBDhmV+FHEL8R7GjRIsFOGR82I+jx5MCLS4cyaQkypcAVQYjpNElTJQgRdIkGfFkFAdLTmbIOXIjSigHpuCkcHHmoJo9PSJV6hGCzKI2pSYVenWn0ZNTuTJd6TVrx7BCxzoVBNXk2a1p/5tijfqWqseuT3m6BejEgd+/fqccqAL4b9CKaufu3eDggOPHkCM/tpsycVm6ABtLjkwgMuWYeNnqJTihtGnTHw5QOX26YmhKo8GqXir38mKJaO9azvtV6+eJr9sehdtx6G7RveuKrc3bLMXcxY/DTv6ceHTmyJ1PhDKFAW2yzTHf/Bg89vjr4LOLP1+wPHX2rqULhw/8uIL59NuHvv8wjb8MMaU01IAUDUggQAmlx1YDX/xn4IMQRighgBXUgwAxhnAgADfjdOihOGsU8AQishRwgRlnpKjiiiy26KKKZlwQkiIJPMBBAzjmmKMuPOKy0BPWDDLJIAgUaeSRHCSp5B+STDaZ5IVBCtnINRhmYuWVWGap5ZZcanlOl15WOUggACH5BAUEAB8ALHgAOAAwADQAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydhggNoaKjpKWkHAiSDw0GA66vsLGysAINqY+gFxgUvL2+v8C+GBYNkKy7FcnKy8zNyxQaAgmPDQMUFRkb2tvc3d7aGRkUFwrU1hXf6erhFBYI5Y3V1+r03ezu8Izy6PX99++O9tWbEMBDPXH4Ap6rJ+GAg4PtAMZbSK/hQ3oIJeqjqM4ixIQT51V0+FHjIoEjL66LmO8kR20TYsq0KFMmt38tFaHUFuCAz59AgTK4mTFnop0begYNSsDn0JssFYrUBqFmTJpWiUYNya8jyXVFpXZN5xHj1o1TyX5dCRLt2G9litma1PkS7tp0YbnWW8AgQkmjiJD2kwv4kODB3nCKRfx3MWO8ed1uyzY5G2Vw6topKGyogYBd4UKLHk1a9IYKFKThamBBQ7DXsHl1KDDNkQJQAi5Y2M27t+/fvAUU4DDpwW0EyJMrX84cOYDalDZLn069OvLNnmxzzs69u/dD2L8rCi++vPnz6BUFAgAh+QQFBAAGACx/AEAAIgAoAAAH/4AADw8AhYKEhomKi4yDiY6MkZKGCgqTk5CQiZUIHJ6foKGiCAmahgkIDQVMrK2ur64FHAiWlZSpFmdpu7y9vr1nZkwcCbaFuBTJysvMzclpBU9PiRwFZxQZ2drb3NwbFRpMTwnUBWnYGRvq2xDqG9nu6eoaAuPUTOfy7vv8/Rv09gxxwIfNn8F+AMkJJKiPnwcGTg7+q6ew0MB8BgMciCAx4T2M/gIQ4HjQ40KQ/TSSNGjSIsOG7lR2pPixoLolUHLmPNBEJ5Qo/FoCuGhzA4MDSJMqPeAgKM2TRQ1IlSpyyVSpTgO6RMlPZsmnW9GFHDlT61CGGTeWrXiW6z6RK4D9CSUK050HKBG/mqVbV+K+uWj96q2ogIMAt4L/gi1sjUJig+DEFTOUygyFCv3a+a1AAU0BtgAUIDisobTp06hToxnQAHToaqwEyJ5Nu/ZsJgUaIGCUIIG0cb+D//YtfJzrRL2TK1/OvPel55KMQZ9Ovbr169EtYX8ufbv374oCAQAh+QQFBAAfACx/AEAAIgAoAAAH/4AAgoOEhYaHiAgNi4yNjo+OHAiEDw0GA5iZmpucmgINkwCKFxgUpqeoqaqoGBYNgpalFbO0tba3tRQaAgkADQMUFRkbxMXGx8jEGRkUFx8fv8HJ09TLFBYICtEV1N3H1tjawNze5eDZ294TAR7ezOHp3RIHDu7X6OPe8/Xd7/jS8ujZg5cvIL9q98QBpLZv4D9yxSZInLhv4kRj5xRC3BDggMePIEEywOhPo7GOIUMS8DgSY8J4xCBYlFhxJsmXBRkKrFYS5rSG/XAu/LkTIcGhyYAafaiv6LSeOactYBDBocly5oRuxJoso0+uXbWC5SlWGckNw4qlTXZNgTYBpVOWyZ1Lt+7cDRUo8BLVwIKGVYADm+pQoJcCRQIuWFjMuLHjx4wFFOBQ6MFhBJgza97MGTOAXofcih5NujRmt4hSqx6EerXr17Bjy55dqDVt17YDAQAh+QQFBAABACx4ADoAMAAyAAAH/4AAgoOEhYaHiIQKCoQPD4YJkZKTlJWWlYuNj4SRT56foKGio6GThwoIHAWrrK2uq0yvr0y0BQ0cCAmGD6lMJWpowcLDxMXGwmlfAhyIHExnFNHS09TV1tZnBZmCkg0l0RXh4uPk5eblFBe4g5IFaRQVG/Lz9PX29/UZFGbr7E8FaODhG0gwn74zDRBw+ocmXMGHAzMcTLgQoEOIGPNRQKgwU4InTBrGy0hyw8SOjD4CFFgy48ECzPytHAkxioMlLjfCrBiQ5kMoB6bkzBaTG0OWEIFSwQjhZVEAKntmBCoUo1OeSH8GHbpTplSMVLk+jZq1YFiIEnWOPerT7Fa0V/+9lt3gxIHdu3apHKiC9y5Og2qxtt3g4IDhw4gPE0C81F5cozPtFU5M2fBiw1U1EhVsb4Lnz58/BAUN+t5jqGynvkUbWO7ggWdZb3atOvPD02Rf44t9uzXkr0lX9579ey7sA41ldy2u+x5vgmmJo44MlkoTq7hTt7Tqezrw7QWzUwcfvntu8uHFf0dv2vejBCGNs5cX/dYmRwDcwcvguP88/vzRR49EaZmR0CaDNPDFfgQ26OCDED64QQXpIIDgIBwIAM01HHZozRoFPHFIKgVcYMYZKKao4oostpiiGRcsB4kCHDRg44045qjjjjnmsgsA2yAg5JBEFmnkkUYy8uMcNok06aQuTkYp5ZRUVmnllVg6yWSWXAqypSCBAAAh+QQFBAABACx3ADkAMQBAAAAH/4AAgoIJhYOHiImKiYWGiwAJT5KNlJWWl5aSkwmJCBwNBQJso6SlpqeoqAJMDQiIHAVfGBS0tba3uLm6FGgDDZyEDRa0GcXGx8jJyssbFBhsCAqQTwWzFRsby9rbyNgbFRRnBRzTAhTe6Onq6+zqGc4C5JBsFMXt9/jr7xgGDYT09vIJxLfvh7959TIMXMiu4MEEABUynOjN4b+EFDNaRBgwI8ONEDEunEDgwIGJICMynGDy5EdnBi92FMjSJEpn/WRKHFjT5cJ9OTnupNnyJr+HKkcWfXlU58qlP3EiFckT6kCgU2fm62k0aEit2FqKHUu2JYGGUp2qK8u2LFoMMf+FrmtbtqTZt3G/DvU2oa9fvx5a/h2MN+tefFyZ5k1a1aZiw08dR4ULWankqzArN/aJmbLazUYXUyV6WWDK0Vutms78mTTn1Z7lenzcena+02Btt8N9WHfh2r5/yw5+z2IkgMRvp41kLrlyNPEIFUBDoQK369gVUjDTalCDAbN2iR+vC3q0QQgasDmDob379/Djy5+PxoyABtIOJYAlwICBHwAGKOCABBYooAGsRPNAIgpw8EkDEEYo4YQUVkghB+c9ouGGHHbo4YcghijiiCSWaOKJKKao4oohKpAfiy2+CGOHlMzoIQIFmGDCODLayEgBJ1yRRBAFPAGMjz9aEcYjCEcUeSSS+jUwRgghYNGAkVAykl4BCWKZJSIKeIKhAk+yGAgAIfkEBQQAAQAsgAA+AB8ASAAAB/+AAYKDhIWGh4IbiIuMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5hwqDDw+dCgq+hMGGvI4KCAjBzMnLwg/By44cASzX2Nna1xzFiA1YSQEo5OXm5kljHNOIWAEqMAcHBATy9PTzQGHq7IUABViuyKlDsKDBggz2rUP0D4uXFl0iRlShQqJEGF74IUoA0IsKKFxgiKQC5YXIFFy4EMi48BBHhyqcQJF3oAmXFzSjRFnBEsHGjipe4JRHcqg9nhpdAqVZbx7Noz1/wqRChemUp/SAuEhq6KXHKE7sQXHCxZ4EJ0S2tuzasUuTJitY6NmB0uQeVa1cC71E4YWE3xZ+Awdu0QJF3kINxgQJMqSx48eNt2wJwqJfoQccCggw8KOz58+fBTRY9msXBw4NUqtezXrdsUXeGA0LkOC1p9mdfAHYzRtAIAAh+QQFBAAQACx/ADkAPgBoAAAH/4AAgoOEhYaHhRCKi4yNjo+QkZKNCQmTl5iZmpucnZ6foKGioxAZGaSoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e372GDw+I5ebn6IQKCgjt7u/w8fLz9PUICoLsCBwN/f7/AAMKHEhwIAcOCAQhaMBijMOHECNKnEixokUWHBIAaGBgCAoXIEOKHEmypMmTJkkkKfAkQYMBSVqsIHCgps2bBwjQzLnzpk6cQHnW/ClUJ5A4LgS0fBkTxp2nUKNKnUq1qtWpKYB4UeoSJgk+cki0GEu2rNmzaNOqJaunD4GtS/+97tmjoovdu3jz6t3Lt+9dFXW0cmVKYm4XGEETK17M+ACMLoHhdk1SeE8KxI0zawb6uM4KyYQNd0lBurTp06hTq16dogvgz4O98qkzVoXt27hz697Nu7ftPH1gx6Wc4sPV48iTQ/3QRfBwEjBgsJ5OvXppxM4nkziworv37+DDix9PHjyBFdkJb17PuCdQ9KC9sp/PHn5syvTzZ7b/HCiBKAtIsERmUCxhoAOZORAFF0sgeBN/2gXFgwdOaNYEFxg2kZkHPEQhQwA4QageUBtQqFkUDkDhRAQJLqCgBCGmJx9QVThRIYFcUDEDFZo50QQVN9ok4oxARcBiglEk6SD/YwywGAEDMcaHn3416TjDjlRyJ+OUWXYp5JbbeSnmkFzO15N7VJIZpphdqsmml26+mWWccupHp01TOKCnAy80BsWeaLb3HphAOYEhF1AcuZgEGD6ZGRcBRDqolGvadCMDUETRmAQvNLkEFH7KIOqk91VakxMSpLpAkIoFIAGqEYCaU2IEQCHDBjKQ2h9OEvz4wgyaMhagBAt86qcTLyyga4Q4QZFqqlAyNoWNqGpoJ6FsBloftnXmd2e321IKrrfcjrueiD8M4YJf7Lbr7l4wgJYuCiTUa++9+Oar77788osCEy1xwMQYNBRs8MEIJ6zwwgw3jEUDLe3TQAEUV2zxO8UYZ6zxxhw3gIBGAFQi8sgJPNFSySafbHIlKZ/Mssowj9zyzCenEzLIIwtSic4iE7LzzTz7THLOhAQCACH5BAUEABQALHIAZQDGAJwAAAf/gACCgwkUhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+YCIgGBj+mP6Spqgagra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0YmD1NXW19jZ2tvc2woK3eHi4+EJCdkP1eeCChwN7/Dx8vP09fb3+Pn6+/z9/v//EFjjUKDUgIMIEypcyLChw4cQI0qcSLGixYsTUTVIR6jBmCFDkogcSbKkyZMoU6pcybKly5cwY8p8GYQFB4EAEjxhkqQFiZ9AgwodSrSoUaItfB4FmnQpU6VOo0qd2nSq1aFVW6A4wYSDIJ0CvABZAeSA2bNo0x4goLat27dn/wmwhRt3Lt27ePPqTSt3r1+7a+euIBHEQIOvT8KO9cu4sePHkCNLzssW8ODCh3MmFrtisufPoEOLdnz5R2awnEerXs26NWnCphEr7qxWru3buOWuWJG7t+/fwIMLH068OIHdxpP3Rg4YbenTm4k0D3x8t/Xr14GMxc69u/fv4MOLH08evPby6L+f5932uWwv0tXCUEG/vv37+PPr38+/v///AAYo4IADdpECDGm5p9lsaqlwBRgikCHhhBRWaOGFGGao4YYcdujhhyCGyKEIWXihQhcInqUgaoudNZ8cZNBwxYw01mjjjTjmqOOOPPbo449ABimkj1tAaGKCsEHH4P9ZXbgAhhYkJCXllFRWaeWVWGap5ZZcdunll2B2qQIJT6rAnlkrbtaiWSqgQEYeMKTY2nRv0elWc3Hmladrj+1ZJxAqHAGGmXaluSSbburB56KMNorXCoEOeuYBhqZ2Vpsg6GGno5x2qhqkghKqYpLvrXlAm2ToQZunrLYaGqiSFkrqgpYimumqruaqa2OwiormrKjFdykKt+5q7LGPRuorpcBGBximqiIr7bTOKTtppaaiqim13CLb67XNHnpqopt2a26j38oaRGy0ZktstOfG62m6o66rZK3jFivvvuhaqy67LOIKLa78Frwavb/aW6rA7xJs8MOgIcyswu0yrC//xBh/JjG2FsOb8ceRbRwuvgODbPJjIlMcMFranuwyYykDrCbDbx7oMFrlvmwwWdY6N7KpTT4ZZQsEFm300UgnrTSBZGphps8qz4wWDF2EQUYWWwyp9dZcd+3110PqAIYUXnRxwJ4cJ6hCEkWI4PbbcMct99x012333XjnrffefPedtxQlqnAg2j87nMLSiCeu+OKM32egnAnLLG5dZKVn+eWYZ7dd5pxbvrl3n3NHZ9ptVafc6ainzlzqrLeunFukt3cznzlDttu5taNcuM4u587r7ub6zvunwA9vvGSx6yX88Rknf+zye93OPF3OT0/p7NZHflg6akIPsZ+dgt+q/3vcK+b9w+I7mv68xWev8/nVuy+/WvHPb//EkuN7//71s3b+/sSL2uQAOL/+EXB6BnSMA5zggAY60AEvQNb/PpZAv0SBBzLIoAY1yAVWRSAKIAyhCEPoAFaJ0AkSmMEBliBCCXQQee2LzBI02AMPQAEKHrAhFCLYKQL0YINA3GAAWBVEKBxgAkCMwmQqqJcNaLAGQzxAAKLYqhlY8YpYxCIViAhEIyJxg0qEoQD1B5kNQtEsUzxgXop4xCQuMYaPeYEZo5hGNd6FjV/UYBhDBsfHYDCDZ5QiFe34Fjy6UYz5M1VkFvBEOg7SUw6YgA2pxYVKcmGGRmSAJaEggz3arv+Pe7ELAb4YyDq26otUZCQQH4ku2nDSiGiZQSffOEZFSiYKE4CAI3PlgQwu4CwLdIIwhbkEXb0yLbL0pO5qiT3IeGCXroJCABbAgG6x5ZixnCUi72XLyTwTjawk5FsiIIMXnoWTxdzmwkbzTUGKky5UcEAUIDABuzggAh7ggQrVWTF2QvOdbuGkDCYAS7NkcAPp5OfKRNNOU7LqhhCNqETN2SkqQKGaaYECF6qgMVBGxgGwvGGufhjEIIaTd0yEywQb9cCWtrSg1uQjM0GzqZUCVKFSo91NWZVSle60Wz396cOCKtRXNROnAyzqoqQXwEQeVakQIypU4yXVqZqrqlb/5RZWszqtrXLVWx79Kr+8KtZdkbWsuTorWscX1rVeta1u1Spc49rVudIVrApTwELvui/36DWnfJWXWgO7VLsSNq2GPaxkKvO7mdJUsaIZLGQPltiM2dRTl6VfZd3ChQDk8LOgBa0EeMhSz4Y2tCV0n1oDUIMFuPa1sHVtAGTgBE55AAKxjS095afWDUgAL77l1AR++RYJbEBXpj2tB2rrmd7+9i7BNUtm8TJcuBhXVyQt6XNp6dTJRJcu32VUdYt73Hjus1PZDeJ2kUrGxoT3Le/l03jdcl1Opha9Jc3gemXaXcnE9yxWNMt/WzPfWG6xvjK4L6fSC8T9ftKxkQnu/3S4sAEIdHDArKluFaDA0RXWYAMOQLCCHcXgDTp4mf2N8HOXIIEmmAUKG4jxBih8YgIvYAkQkAEEnMBIDyBxAse1L6tKrMEaNzbFkPEtFVRZgwhAoQYWpnCMjbyaCdRgoFGYLW2r8AIJ8CDICR5yfmVAZb/0dgFIdAIXeskDCGCUCzku82hyuYS5iDRPCwDziBuV3Qk44Y9k7iiEkywDEJ8lyxg1CwNqIGfRFNhFZhGxmGUQgC3CWL+CRvJjNuCBKUC30aGZwAQkQOpSm1rUBxCyp34oAbs0oZegftRm24JhtNRaNUvYQA92zetebyACqQ6zpxCqlhcsINZ3USsEGv9961apulMUTUu0H6xpxwSAB6LOtra1Pcvp7qUKlgy3uCVQTl15W7ODfswMJJDbdjvh3HthwJhNbD3J+tRVVFiCvvfNb33D9Hj2lhe8Cxbwyb5q1jgzOGXTrXBjFbzh3OXmUyHOqYdbduDHsjjG+gJwhK9mfT8FOVw07hiR39TksPM4xZsq8ZVnfGTCcrmuKhVzmbsKWxjfKVM7JT2cr3znFaeNz4+FcmMVnTVHR1Itc94nyHUr6aqBer2q7Zq5jG5VVr9L1j+z9QRNHDJdd87XoUb18Y395mePbNrx13KbIxYz59ir23lKGMPEXU1ny/jXgf4WviNv72tPNuDXchlTwyCmAEl4SpgWz/jGO/7xkI+8lrzAFa98xSMhmYnmN8/5znv+86A3yRBY0ACcCIIgBsGI6lfP+ta7/vWwV4hpwEGNdgDk9rjPve53z/ve28P0gQAAIfkEBQQAAAAsaAA5ADkBHwEAB/+AAIKDhIWGh4iJigmMCYqPkJGSk5SVlpeYmZqbnJ2eg0+hT5+kpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna2Abb3t/E3eDj5Lri5ejpsOfq7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKhPRkb3NVqK9FGCUI6YSp1KtarVq1YFYd3KtavXr2DDih0bVitZq6LSQp1KiBGCBgX/4sqdS7eu3bt48+otwITJ3L57AwseTLiw4cOIEwcGLJex4sENOCBQELWRggY+sNDYzLmz58+gQ4seTbq06dOoU6tezbq169ewYWMx0GAyAMsNxiTx4oKE79/AgwsfTry48ePIkytfzry58+fQo0ufHt0FiiAmGijQCoCDgSFeVHTpokL8+PHl06svTx79evXu38tPH1/8fPrr3aMnf998f//+8ffffwLuN+B8Bh6YIHvtHeggfg9GKCGC51V4XgsoYFFAUwA0MEASLRwgIgwwiDgiiSimiGIKKrbo4oswxijjiSfKaGOJB5BY44087shjij7OmKOKQf5o5JFIImni/5JLdkHCEUw8sZSHIBLA5JVYZqnlllx26eWXYIYp5phklmnmmWimeSWJK3TRApSVJUBlCyuoaeedeOap55589unnkG2+yYQjg8x5wAp1/qnoomoSYCWTjvoZKaOUUuomlFIW+mGIKwAh5qOVhtrnpEuSuqepoqaK56VREtrhpqrGKmusoM665aQ6nlprlrmayCqHhtoq7LDEhupopL3miSqWyR7AaqaCGNpssdRWS+upYe7apbYmTuuroNC+CuKQ1pZr7rnokpvls64Gq+Wysh7Lbbr0pjlvvSY6iigBKYDbLqy3WglDCgKm18LBCCes8MIMN3zwfA5H7HB5Elds8f/FGGes8cYRU8zxxxfThyOW+q7Ar7+ajpslqSmoQIIXKMQs88w012zzzTjnrPPOPPfs889ABy300EQXvbMXJHRxb5MoRwswyY+6jAQYZIBg9dVYZ6311lx37fXXYIct9thkl2322WinrTbYImQxQgtKc8luyiHe2oUXWYBwAxhl9O3334AHLvjghBdu+OGIJ6744ow37vjjkEd+uBR6b9GCwDBeWkC47q7cAg052LAbdaSXbvrpqKeu+urIueDFFjfcMEIXMmrO+dNXCkKAFzfgEJ55FgYv/PDEF2/88cgnr/zyzDfv/PPQR+98eSRsAUIZSW85t9Mq89pFDDmcQOf/0saSn6/5IsIL9ZfqX9k+pOjjy6iOKnhBdXjaNy1u3Vn2mzeInvrTsQ4QqfjJ74AI5BKinEUCLYAgCSrIH6b+1T0sOSlvKFBBohLIwQ6ea4FucuAV+GdB/XXuShcEAQpI6MEWupBYLRMhC5m0vf1pjwQYnOELd8jDSsUQBCOUYKvodsMc9vCISFzUD4OopRqekIY4VKEOk0jFKpppiVMUkRNhtUAURnGFVgyjGMmERSHeblxdhKIRy2XANoLJjex74xjzVMYmmhB3XsSgCgw4xz4msY7rumMF86jCPfrxkIgEZAknSMQmfjGLiIwkEhWJQkFCMoVglKQmrUhJGlqy/4hS3KQo/6gCGZqRgpd85ChXycNOMo2R3EulHvnIylpWy5XfgqUNHTlLW/oSgbjU4ie9hUlI/vKY1Aqms4Y5siapEpnQPJcytzhINYYymti8ZSmBeMlP8vKa2QynsKbpzXU9U5zojBU5dflEZ64xnfAM1TqHGEtQZjKe+FTiNpkYSHbi0Zr3zKdA+TTPM8oSnANtVEJFVFBU5u+dC41omhpKxDTmy38IZRKiumjRLm30oyD9KJ44GtINarSkKE2pSlEKBCCsFKW8amZHTWTRly5ppjc1aZb29SicHmqjIvJpUPtlSjv6E406JSAMtllNmpY0TC8V6Z1IGtKdRvWqWP/NKkhjmlOr5lSlXdWSUJ06KZ9Kdaxt+mIEjUpPG/o0BUjIgRBIUKdmvk+ieErWWGnkJW8xq5nzK1H9pEAG/LHVoD/Vkgt6t8L31GdCkI2sZCdL2cpa9rKYzawKWuCCI4AgC9k7LKHkxMWkRkoFSAABDraAAi+49rWwja1sZ0vb2tr2trjNrW53y9ve+va3wA2ucHGLAiHkQAReSIHcmkZapLrPSk4C33GlQN3qWve62M2udrfL3e5697vgDa94x0ve8pr3vOj17g1UewUNLm17zeVUUrtFnhFoAQwiyK9+98vf/vr3vwAOsIAHTOACG/jACE6wghfM4AYPGAwxcIH/CmBAPvgaaqa9goGbXDfcDnv4wyAOsYhHTOLgkmDCJusSNeXbpYEVTLMwjrGMZ0zjGttYPMpF34oTO0a/ZnOv52MfLb101zDtGMh47SCSCRi/Io/JyV868nyT/MIlQxnK2RqyaCs6ZSq30MpN1jKX5EXmMg/wlFz2MhLBLGQ9mfnNZ95yPZesZnyxmchiDtidpHynPNd5ql2GX5uV5WdPTvABD9jln+1F5niFedDbKnSZ2IVoRS/6TGV2NKTH/GhRUTrR7bx0B6/c6Uin6tOWFnULSb1pPXvaX5UOtaoRyGo8t5pRqJb1rOVXa1Pb+tWHBvU/d03rUnP61nrqaK6H/01sXhvb1b72k7L9pYDtSAuwza5Xr4/961Cxq9o29HG2zbVtaHPb29S2NrPHna5yv+vZuE53qtmtbXivzN6K+ra6m0pvdLn73sjOt7x13W9r/Xt93a6Uvudd8HMd/LkB/9PCCd7wYj1c0Am3VDkr7m98Q/xcO+Z4uz2OcXOFXJRmPubFSyVpiW9c5GwkOcvRdfIDtrzjFpd5kEH+cphjeVEr37nJe66qKkQgAFFIutKXnvQm0Dvo6bt5n2quKioEQAZYz7rWt+6Ap+s86jRnpqoY0IOtywACG4AABLBeA7VvAAouXEIP5k73utv97j3YAK08vgC8y6AHXT+ABPzOg/8lALut105VFWpg9h48igBrj0L6XrgEs1v+8n/fe8AJsADMB14CmF+C1KNMdEqBvvFL2oAMJM/DJizh9bCPvexn/3rNZ3xJnb/850M/+Xgf1Zh/KnvjQaX6KIw+nw/PveV3f3nDo/v3sZrC5XuwpMhXPPmeF9HpLe98hZd+UVCYfr6Kf3x8Yl/32uf98+n5AIr3iQviT5/1G37+5ae/+YeHVvvXrSgCiP9RxXd9fJd9gqd+jAJdTbN//MYoE2B51Cd/q4dEVAAFTocvB0cAEjABGriBDSgDXUcATsCBG4h13adxsKSAwOcn4Yd6JhKAPEQAEVB2POAE2qI+5fdGX7f/JFgXeCRTdiXoe+znfqOyfVn3gFbigjvUBDygdTxIQBLgAVAYhVIYAL1XKReYJTtIQFnig/lHKChoK06wdQ8oIkhIeVsnAUziAZiXeaoCdfmyg48HKVy4fohlK02wADWwhA9IImXoQiuYdU7AJEvgBIRYiIYYiG2YgyaShVoyhzfYT4jHf6JSeXsIA33oQleHdRMwBTNncIooIoy4hTLwg4tCdbNCiakXgT30Ak6wAE4wA+6jhdTihiLyAqGIJUsoenToUMJiJajYgqr4greSLbIoQJ/IAFgHd1kifR7YhUQkbpTyiwR0iVX0iI3ydVYCgjLAA1SwMlGAdbC4i8+I/22pIo0EQI3ZFnRcAAUOIAFLuABXso4O4ARLSIXOWE/EIo0HgI7NFnRqmHUQ0AS1QgCZiHUbwACn9n3lyIYiMn9jNClx2Is6948QIAGwuCuZWJEVeI8MFyvmyI8cNC+mYo1kEnRUMAMvcC9UMAUvMCumKCsOAAETACoesAER0EMxuQE6uZM6iXY82ZM7KZO2F20u9JK2B5EkOYlruJQMKSq0mC5G2YaQkkSuR3tWSXtDeW7DCJUKCXMSGUlR6ZVfiUhhKZaz8nM8VJZmmZV9pJZrmSpo+SlxNixu+ZblIylzWSajV5d2SSlx+UJ82ZdAl5TlsmPQKJiDCZZih5iaRv+WXcmYB0iY1hKYkMknf1mUj1mZxqiY0KeZbDlHlOmZeHKZLRSaomknpOlBpullmQZzq0llrSlyr3maVHSYZjKbtIlEtjlpmSlJqUlsdDYmuGlFv7lrwSkmw5mb4pScyplNhkmOzdlHx2lkixmdkTSdYMKc1olMlCmZ27lD2ilOb9aY0BSe4TSen+lL5vmdtbSe7LlK7vmeohSf8qlJ9FmfnBmJC4if8XSfaLKb/Cks/nkmABqgLtmbAoQl2GmgHCmECXolC8qg3gd9BSqh7VmdFopOA5qhVLShHIpEHip0JfehPNeZVngAVOAAV7mir8eJHTQDLEp7XNBvIbokUKD/ekyJeTXQhPIDBcKXo1qHiONWo+nTgXh3pHa3hHqXQFfHA0iKd3ronb9EpCh6i2GygggppXbSgELqJSsYjjz0AjMwpmRapmaKksU4ofqZgnkyA8lYJvAnAwiJQFx6peB4RN8IpMHYoJK4J24qA8o4JnE6o2maLnUKJl+Kp3q6p+KIj5Xyp4EqJnE6pwd0qF+SqD2Up0DKeglpopQCqXCKdZQqP5bqpXd6AFMwA93YQpqao5zKp/vJJ6BKJpOaQKXaJYlKAGqIhqy6qK/aqB3pJ7MqqKJqqzLQpbh6qrvqQq3KlL+qpnX4qG9Kq8VKp8e6MliCqcvaq3r6rCa4puqy/yjDOpX5wgABIAEteQC1aq00SK4i8gHnSgUEoK0ywKse1KxL6a1AiFgVeibjWqgiwgBrJwMLUAXqWq2Veq0ExI61EgVLKAMTAAX0aq8dhK9rqK+liKB3MqtWwo7xuHYPGwAvsK4JG4hckIkTEAFVMAOZiKM8cHrhuK336quxQqUce3oB0ARt4ChcoHo80I5YFwAkS6r1SoSaiKMBMANQMLDKWq/MSrOqYrNvygX/iHU9YHw9u43M94+jii8N+LAbEAUOUJA8wKlUoHwx67Tcuqk1q7F2AqkxiHUSEAWMJwMewHg9EKjamHVdWy8dWANOsKrzugBCCylhKANpS7EcZP+xamd5GCtwnsoof5qJNWB4BNAEBZm3V3K4cmqsSYuoTau4CYSvHjCmBZl1j+tykSuuWucBG0lAS7ABNQAFoPJ4h9u39MKlBjSxn1ItzYqutWi0qesnUruNTmCwA1kF6YolQ+u1CjtmCxu6T4t1ZXslDou6bbu6ivKnw5slzVsvaggBUji+5OsBX9uSuqq2MysDO1qDDlC33csnxRupBvS99FJ5i5p1EvAoMluxEEuoWcIADRi/ezK/JNMl9ksvUOAEEtDADvzAENzAukhA/bu4AeCiW2J1BKwnBlyFXpLAYZS+ootATYC82/K6wOqgffaOTNfCLpx0p4fBq7YtJvL/AoyHrAlES1r6SuAqKkabv1gHjy3EBTE6e0eHdQAsaut5V6w4AT/5xFCskxMgAavqQZwLxPt7SDvMw9GabU7wpEjqARscUVR6oiSaJ2VsJlt8xobWw/SyxmzMxbw4iyXZaHG8Km4rKbHowfcmL3eMx9obL1vJaH78x2jmqL04yIScl4bcxl3cyFOax5DclpI8yWOUxpYcdoFsfnYcnZiMRLHZnJ/8oJksnJVcylU0ytUCx3apyqhcLK78ynR5yrJ8RLFcywe6ybhMybq8y5dMy76Mmb2cm8UJn8Bsl8U8SrcczLDKpsrCzLayzND8rY88zb88zNZsy8eczfJDpFI19iYRms3eDFRkEs7WLM3cTLzbnM70Qk0kwM7X7MbwnMrrPM9Dx04/MAQkAJ327EFR4wVCsCGuwgEFEAJeQDtaldAKvdAM3dAO/dAQHdESPdESDQMkkAQs0ACFgAAcIAA0cAVGE9IiPdIkXdImfdIondIhvQVjwAQNkGhaoQAczRdMIAA2fdM4ndM6vdM83dM+/dNAHdRCPdREXdRGfdRIndRKvdRK7dKSsR1mAQBSohZUXdVWfdVYndVavdVc3dVe/dVgHdZiPdZkXdZmndWOAG6GcBZs3dZu/dZwHddyPdd0/dZJcdd4bQxUYQiVltf+sNeFUGmBAAAh+QQFBAADACxkAD4AbAFCAQAH/4ADgoOEhYaHiImKhRmLjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1teuP9jb3N2P2t7h4t3g4+bn0eXo6+zH6u3w8b3v8vX2s/T3+vup+fz/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXQozgdOnUKNKnUq1qtWrTgEAyLoVq9evYMOKHUu2rNmvWs9eXcS1rVq3Vv8lPZlLt67du3jz6t3Ld65Tvwn6Ch5MuLDhw4gTKyb8d/HeRYAjO5a8N4HWy5gBKEDAoUABJqBDix5NurTp06hTq17NurXr17Bjy55Nu7bt27M9c0CgIPNlzgKw6BhOvLjx48iTK1/OvLnz59CjS59Ovbr169iza8eORcBu31o5CDiBooWK8+jTq1/Pvr379/Djy59Pv779+/jz69/Pv79//S2gcIJ34CXQgA0okNBFCinAAEMKCzLYoIQUVmjhhRhmmOGDGlLIoYQOTthhiB9u+GCJGJLYYYMnrqjiiC3CKOKKNKZY44045qjjjh12QQIKNjRgWWYJFECDCyocoCT/AQQcUIiSUEYp5ZRUVmnllVhayWSWSzbJ5ZZfepklmGOKiSWZZ5rJ5Zpstunmm3DGyaUKLtBQQAKHGOlCF3L26eefgAYq6KCEFmrooYV2UeedADxQiJEKIirppJRWaumlmGbKpo92WvYAZkXSEKmTGk3JpCmmqqnpqpSiCSinjBIJKZ+krkDARamiKqWrrPZ6KK9RqpolrEOCOquvyCaL7K3bAAung1q26SC0VxLrW6ijKqvtttxeSoqzYgo7JbV/TgsDltbKKiqtTGkSLijMdiIulF6KS66m6Rq7rpLtynPlvZnmexm27AoTLJPzdivpCitEyTCTDydcaLgK+wmx/60SQ8kwwMOS0Om1x5LqSMUIZ1wxoQw7jHHEJ7esJQEsc7nxuW0KnFbILues8848+2rzVjizCeF/RBdt9NFIJ6300kyjt+CbNgcWNJcw0OnF1VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst901kuc2vGbUT0xtJQxd0KmFFGT07fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755IODoQWSXdDc8cfqZotuC0rc0AEIZIhg+umop6766qy37vrrsMcu++y012777bjnrvvuvKtORg4d3KBEC7RuHqu+nl+pwhWi23AFCm5HL/301Fdv/fXYZw82ClfYEPwVSXJJt//dVZKAQwdWuGBe0+y37/778Me/dAsuWNEBDiTM7fHxadW9L5Z4Q0IHduCCnhnwgAjsFgxcsIMOICFzxivWwELmiDLkQAckMFkCN8jBDv6JBDrIQRmSR6WfEYxfinABGECQhBZo0IMwjKEMqdSCJIAADHuKIMj+pzwVsrBf02BVDW+IJB12rnhWotMKkwBEaQjRhjgMX7X2J8Gb8TCJPmRiE6HxRCJK0UomJJ+UlPjDXczwjGgU1BCjaETkFS9lUyJjC1n1wjTa8Y5rWsEavfDFKoWRh3AcYxZbcLIXGpJNh1xTIvE4Qz1CkY9tnOAVqyRHFdSRkZjMpK/WWER0UXH/hySMYxYtqclSmrJbnOxjCT95xCzJcYtc1BQMUhlJK4ZSkEuE5TNWNUsodnKKnHOjKwd5ymIas1ep1JwfWSlMLMmRkMeMpjQnlUxPBlOSt4xSJS85zW5600q0tCb/bIlESo6Sm99MZzrDCcxxAo2HHDvAK3XZjC6yUZxVfGe24jlPei7Dnr8EIzOxWU4q9dOfyQCoKqf0x2xC6aAIPYZCaym1SRo0ixFVxkTxSST/OVRJEM0oMTbaznxiSwXTwmIuSaLOBLJToNe0JUrjCVKMilSiq3rpMmOqz4KKcqWIaGmrhHpAna6Spyd0pgpHRtSmftOoDB0oOYe5RGg69apC/4WqlBrqU1yy0KpYDas3tRolrlL1q2JNazfJCiWzKrWqao0rAtEpJbYq6WcAYIJFf4rWL8n1rzC06wHc2kO4AvawjBTs+Pa6VRJUla6IlRNkIzumAxBgjR8drFQrmtkutMCCGJwsZUe7rcueIAdZIF4te5qlAA6wgKTVlrMmJtozkqCBD1TmTt2Z1CyZrwOXW5/8hkvc4hr3uEprAQm0cL/8iU+qrJ1TGJq3Behp77rYza52t8td7aJgC967QRgWelTeinFKKVje+XJAOsq5973wja9850vf+tq3cCAAHg7GmwL9IRVSM9XtuNLrghiAQQT3TbCCF8zgBju4wSIAQ/8MkNQg/5pXVAFeE95I0N0Oe/jDIA4xdxUkYI620k14Q66KV8ziFrcYgm4iLKFqG1caxxZRMh6UjW/MY1bluMdAnuaPBbXjIBtZUkMOVJGPzGRCJbnJbipZS1uxK0w9GcqIRNiUWeGzzXq0q1gO8wwXm1kxmzmBVz6zmg+Y5jW7WWdtfrOcKxbnOdtZWw3N8J33TGfonjSlfA70tuos6EJXitCGTvShyAxmRTsayV4+76MnnSg/S5rSmH6VpRmb6U77idGeDrWgQC3qUvcJ0aZOdVs3XWZVu/qurG60p5u0ZD6j+tWlJjWud13eKnJW1oauNaXzDGheGxuveiWBno3/jUkum8qylLo1szEt7WlPutrWdjS2LdWEKETAAeAOt7jDzYBsY0rYf9q2pKoggR7I4N3wjre8ZeAEc3dT3YeCgrvnze941xuTDpCAwAdO8IIbvOAOwOQSDi4BDwRAAlAK+MED4AGIKwvfheICD/gdgCh4PAoekAEPPh4FKGRSAv1OecotjkeUp3wDUHKCymWA51grbAP9ZvkBFiCDHhTT5TMPugx0bkeg8xvmSpK5ymv+X06zSun81jnPfX5KKszg6ljPuta3rvUXYNLo80b6AaDeb3TH2ObcgsDKozR1e/cJ7PIWO9n5zfRx/rpbKpd6z90uJ7jHW+4zr7uvv8yt/yrkne17p6zZkeV3eAN+6RdHu7ZecHgotZ3vcGr8ux+fcsGDEtiZqrySLo95N2leBpzvt+c10xvOLhtZas854qle+jadPvV0jzznFNB6j77eV3OPt95pf0ouOCEKTbhqBBbA/OYzvwaoj7jznR/71TeTW9CP+uyNCXUeLOGvIRe7lXhOc91fuNWYgsLG5z38YnJB3jWggpSmMIH62//+9v+3McOfJfJbn6AVo2/st32nFHwJFyUzIHREZ0r8hyX+Z34mdWm9UgULsH7v1n4FOG8HCCX0h38eOAH6V0wNeCUPmCwYVyU0ZnwXSICmxAAWiHpVIFcjWGWj927/N1U58/9+Q8eCprQE+7YBJieD0eeANgiBn6czOoiBxTQF4OZ14CcDE9B/IneD0eUySciDtdcnaucBWTKDXdZ06McqMHCFlpd4WdgnUPBuC4AlDPBuAUCFvXUyY7iCZUh8Z+gmTRABOCcDQUglM7AEE/BuEXCDd5eDdFiDdshjNCUpsxUnaShvazglCShvHlAFi7cpkeZ02kKGiHhki4gojdgmXvKI78YDEhCDkgiJ8geHEpgsnLhzZniHa8IACyBwUTADVkIFzCcBUVBu3HKCkvKKpFdKTQAFxniMyJiMypiMyddpxPaJyNIEHuABURAlTuBwPyd0ChhZ0FhpYPh7inZ62nj/iIDVjU4meZgGBSS3juzYjiTXh9SGjrIYj2AIevMYaMB4j1iWj/rYZPzYj0f2j4fFMIEEkGUlj29GkHJjkAcZU4VoZOYYWxGJZpkYhn81kaOFkWyGkHJVL1RSkE0GkmckkOkkkkdmkjJEkgx5Yyq5kqT1jCU2Wig5JQqJWDMJQzAZZDepMjt5VT3JQS3pkpSFaJcolOoUlE4lZUYZVfXoZkq5lA15fvYIlWKGlFQZV1Z5lWmVlVoZVrrWlXL2lZUFlkDGlWTZVGZ5lkKFakWplqWUlm6ZTjkZl1XJauBIlwHJkXjJZHC5l9LUl355TIAZmMU0mIRpSoZ5mJqUmIqJ/0mM2Zh49JiQaUeSOZloJJaJRmv3iJmW+ZJ62ZmRhZRt6UGDAJVzCZqjdZqoGZqfuZp/VZmu2UGwGZsbNJu0iUC2eZsGlJtBNpp52ZTKQgUSMAEbUJzGeZzImZzFCQEBsIFo1AQLAAHKOZ3HCQELgIu51pqYEgDjGHQ84JwzFHLdOW9vmJ3AiSwOsHkBsJ7s2Z7u+Z7rKZ5ciEZtCIXweZ/tGXvYGWqPGQXvBp5wwp01kEaPGIJs4nJcYExU0ARc0KAO+qAQygVNsIqDpp2W4p98+CfcmYgwVKBvQgAIun/jKQORWKHn6SsYCo9xsqEE+m4GuiYhKoIjWqKsqIkX+v9uKhqgsShDHvomMXpK4tmdNGqEJzZjbpKiGrqjMdSjpvduCSqj4zmkJmihlYKkfsKiaMSktuekStIEApejaRSk4yilyNKfOJqkPueblaKlB8qlB8CmdiSm2kimXyiVymKlfYKlZwSnXBKjfIpGcip0dNorZpqhV6qkHeqimeemf3pGgRp0g+pjVEopeLomDtCcUaKnM9SoSsIwXioBq+iniopJjzpzkboqhQqmVrIEG+d9UKKpPDqqVrICDrCHE2ByokpvmVSqKneq+DKpk1KpWBIB8eaqBwCrqRKK3NKjU9BuExABqPgCYMcDTpCrLxqmM9otqRolUDCNOYqhMsD/nSI3iMi6K1rGMwX6Ak6Qfe8GASUXiBdIfjIQe0/KqTLEqynnqwEDrJKCp1FggaAKJeBajVAXAeXaQTDwiNHpeC+4eQcYAewqA/Uqq3iEr/2mr1bGr4iCpDMgrvEGAQlXsAILb4HIoQhLiu9WA06woBJggQGwnwfAAEE6sbpKqtn6ixp7KClaq6UYBUuwh+FaioMYJcQKbybbQaRoijA7Aw1XjVNSBeJKs9cKqP3mAbE3bxh7KYUqrxPwpM1arN83JRGwfkfLQY/oAb64pRKrJPYaQ4+6AC8wA2+rrTlrKOB6gRSqJA6gdsZKJT6IqK1yroRir3AEJta6q/Omf+yG/7XjEpOHVreFAq41ELZTQgURoKqvCriT8pSDQrhysyUgyqgUe0di2gMA+q/xJqUaOSiFiraH2gNquqYXuIy0i4zk54ttC0NBCgFPOiUOwK5Zaynb+rppRAUNO6I14IS560Hi+bJXwgXwGryPe6K9IqxUIjEHO5YK4yDBN55O+6ajG6dDh4pXQgXcKb3RBrmEYr1vkr0bBC1c4I7yS3K9C741y0jUiEgSgL6Twpmawr5u4r7ftLwdlLZsUr9EOjCElyxF6wQR+sAQ3KBQoHYQEFbpKQPf+2j+mylNcLwjKnxYJY1nOmwVOZWTMrYfzG8eMAWYxAAbIJ3UGcPwVp4kTP+9vsIAUeAEOrzDPNzDPrzDDkC+eKSDKfxuHgCzGqy+c9YE+NnE7LkA0OqMSpyZgvtqvBlZnOtqV6ybcDbFcRK7XGwoWxzGLTPGZNxnDrnAZ4yVJbzGckVmKIUpNSknPylNdUyPdud7jmsocxwnd3xMf3xtXuzGiDnIhLyYhnzIjpnIihyZbdzIWLXBkPxNkjzJ9/bIlkxUZpzJqMrInJySnvzJOBnKoiybmFzK3lTJqFzIadyKq5xJqvzKsEzKsrybtFzLPLPJuLxot7zLOaPLvnyONhzMszzMxMxIwHzMmmbMykyZvdzMOMvM0DySzzzNCQyA1ozM1ZzNdRqBNsr/zUC5zeDcyUiVbCZsbsoalh7DBN6cQwCZzm+mKP+FBXwExoMSyCizkAmkz4LCz1fiz7PKJgBdJQPtJwVNk2eiAl6ABbzVAD4wBHzkYhI90RRd0RbdHl6QBD4gJOCBAA3AAkOAAiI90iRd0iZ90iid0iq90izd0i790jAd0zI90zRd0zZ90zid0zc9BCxQABwAHlqhAA3wAz6wA0Z91Eid1Eq91Ezd1E791FAd1VI91VRd1VZ91Vid1Vq91Vzd1VntAz/QALwB1Frh0Q3QAJ6R1mq91mzd1m791nAd13I913Rd13Z913id155x1nrd137914Ad2HZ91mKtAFxB1l3xixaKvdiM3diO/diQHdmS7RVpMSSTLRWgkk+Ivdmc3dme/dmgHdqiPdqkXdqmfdqondqqvdqs3dqu/dqwHduyPdu0Xdu2fdu4ndu6vdu83du+/dvAHdzCPdzEXdzGfdzIndzKLdy8t9zO/dzQHd3J3dzSXd2Y8QCfYt3avd3c3d2ljd3eHd7iPd60HQgAIfkEBQQABgAsYAA8AIkBVgEAB/+ABoKDhIWGhhaHiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjyiTJZKbNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl2aK4HTp1CjSp1KtarVq1izat3KtavXr2DDih1LViqAs2jTpn2SQFCCJ3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOICydQyxhAAgQNCjBhIkDA5MqTM1O2rHmzZsybQX/m3Lm06dOoU6senVq0atetSb+Wvdo07dq4c+vezbu0a9i7gfcePrlAAw4IGp992+AHjS1XokufTr269evYs2vfzr279+/gw4sfT768+fPo05s/wYIJB+UAFCBgEsSLihT48+vfz7///i4pwCDggAQK6N+BCP4HYIIM4tfFgg3m92CEFDZoYH4XTljhhvhdSCCHIIa434X6PaghgiSKqCKDXbiQBAsNKNDYYw2MgQKAAx5wQIE6FujjjzzqKOSQPf7Y4445Grkj/5ICMtnkkjA46eORUQL5ZJVSBomllVFCmSWBVAoJJpJUctlllWZOSaaYQH6Z5ptwqhmnknPWOWCAcOJ5pwotbMEEW4w9VkAILqxAgCFEJqrooow2OiQBBDgqJKRMNSPppVES4IUAgKqVAAeDkgDppaSWauqpqKaq6qqsturqq7DGKuusp64AxKadpvUpEyGIGimtwAYr7LDEFmvsscjKaiuuizHGAa8kGJrstNSiCimlqWAbEqzLctqsWs/2Km215Ja76LWHZpvutq92m2ta4Ub7q7n01muuPTpyMq2738ILraGVqmOvqvw2Fu+4QgZsirbmcHurtwb/O+/AFFds8f+wDJfjMLMRizsxkRl39Oi6BuQbkcmTbAyxsxIzGjJHIxOC8kMzR6IyWwrI6K/Hp45qr88XB03kk4kCfYDRQjdKdKw+I32pz0ur6jSR/OYMbsumoqv11lx37fXXYIct9thkl2322VrriPbabLeNrtpux/013GQrOvWQVeuM1sEfP73C34AHLvjghBduuOBAAFF44okf7vjjkEcu+eS2Kk7534xb3vjlnHfu+eeVY2456JBfe8DftT6Ms95n8W0qDA+2QMLsLsxu++2456777rz37vvvvtcO/PDEF2/88cgnr/zyzDdP+/AttNAFqnlfzbOkkRKQQgsoHGHDDj6EL/7/+OSXb/756Kev/vrst+/++/DHL//89Ndv//34k28DDVeQ0EWXpKrezuT1tAN0oQUxIEMOOlCCBjrwgRCMoAQnSMEKWvCCGMygBjfIwQ568IMgDKEIR0jCCHagAyAogn0AKCkB7g1rLoNUF0ighRNKIQZKCIMOd8jDHvrwh0AMohCHSMQiGvGISEyiEpfIxCY68YlQjCIP5YCELNygAzjwwv/6pigXtg6G54KUCnSwQCHY539JS6Ma18jGWkWKhUXb0QyTgIMOgMF/XExUwVh2PUcRgAQ4KIEW/BegiuXRbqU6ZBxJpUiQJbKNkBQa7EiQhBvkYAstWMGl9mg9Al4q/wwlGIAXjqa2SJrylKhMpQFbUEMbRGuTquvXC/t4LhioIAYdwIKvLtbIRz2Skb8sIDBVSUxypWAEJcCBJxvFyQEi7FwpUEENabDMYlrzmticFgFW4IJQFqqXzZxlNRd1wGmOM5voTKc6W0UAIJDAm89cVDi/SEtysrID1IznOvfJz37azZ3wBGcsO3bOREXTnPr0p0IXis52vnMA32zhQPlYUCIdFJ8VJVYvGcrRjvYMoBBNKNUm2kmRDumi+dwotVRKymEK86XY86hMU9XObg6ABEAQKMcoalIhoTSjMw2qUH8GBJviVKcrK2kvy4nRng71qVBFlkMDKtGdKlVSTP9NaVS3ytVkTTWkSH2XOJ26SoSytKtoTaupbPXQiDpqngBwnaOyClS12vWuEm0rWeEq10b9lKx4DaxgjwbSo1Y1qc7s5V/POtjGcvWrhn0rSROL1XvSIJOMdaxmh/pVtzJzsmNdqmUxu9nSBrazewWtY/rKKLoC1rSwlSlqwyrL1YLRnmaNrW4fC1LPMoqvvHLBRhe72+I+dbaHFSs9hXsp4hr3ubLtbWqtSllHORe62F0ociVL3dBK6rrZDe8+t/vZ7tKzrmVtambFy142kve3qo3rbRXl2vW2975Ce68848ta3KoXvwAupn67yN/5Jqq+AU4wKgesxwLXk76WRa//gidMMQaP1LzyffCBI/xaCnu4XBbGm4PRi+APm5iX0qUtQcla4hO7mKh6VTFPFSvN/774xubqbE4bCVwNW7TGWsWxkFfa2x1zF7HetS6QJTzkJsMqxELqMXrB6+QqA2ubNvXtfjHcX0VR2cpgjtUKvBBK9EqZrLDDpQ2Ea98wu1lRsFNCCXxg5hG/FplfQEEK3sxnV82wCLl8ZXJrm2H0QooENuiACqWnoRMpyESQjrSkIe2fSVv60pjOtIlWpCAEaZrSnKaQpTk96lBXGkIHKnWEMF2iTXc6BQ9SAQm2AAIQJEEFmhz0ilWqgkp2wAZJqF0LVMCnYRP72MSOnrKX/83sZi8b2ch2trSnTe1qKxva2M62tpNtbG1b+9nbDre4ty3tcY+73OZON7ajd25nq7vY6OY2u6E9b9l54Qhf6IAWpJfrIyu30K89oBKueAMwaOHgCE+4whfO8IY7/OEQj7jEJ07xilv84hjPuMY3zvGOe3zhWRDBAotAAgH1u7xItq2PqbbKEYABBDlY4AlnTvOa2/zmOM+5znfO8577/OdAD7rQh070ohv96EhPOs1jngMRxMB/k+Kxane1crzleo5HoIHWt871rnv962APu9jHTvaym/3saE+72tfO9ra7/e1wj7vXrbCFFY7M34TuMtVODrtiO+/vgA+84AdP+P/CG/7wg48eCa59n6Ox9Mw8Pjnqsgcp0ln+8pjPvOY3z/nOe/7zi2va4+3M2EyZzvFyS73qV8/61rv+9bCPvet1hLqo433XpzJ9ce82Yd4nrfZwu/2M+0x8NUK++MgP2vH57HsTA3+Ny39z8z/8fOOTPvnYp1j0s899cm2/++BH1vfDT/5hjb/86J/V+dPPfletv/3wT9X740//AF6//vin3v3zz39YctnA/ReAIvZ/VSeA/Td/Bsh/CJiA+LeADEh/DviA8BeBEsh+FFiB6HeBGEh+GriB4NeBHsh9IBiC2DeCJIh8JniCxJeCKshnLNiCbvaCMAhmMjiD/dRm5lL/g14VUzYoVDrISz04Uz9YLDgYhAs1hMEyAxIwATwwAR7whFAYhVEYAUboUtaEhLPyAgEgA1zYhV74hV7oBLtVhAqlSGRIK1gYKwxQA2DYhm0ohjLlAT0wh3RYh3Z4h3joAGcISVCAh3PIAzLQAzMgJBPgh4DYA1RYMWn4KlTQA264ADMQiTPgAFwIiZL4AjM1AW64iZwoAw7gUVDQiTIwA7+yAZ0YBS1lL4voKlvohhIwL6EoAwsAVQGwAbZ4ixAAAbe4i7zYi7YIBaAoioOoI6bIiaioiPtnMQzAia+YPbE4i1XYKLHIicN4AMW4iceofclYMRLAjEPyjNEojcIo/yTX6IbZODCryCoQ4I1CAo7huCjTuInVWI5teI6quI0Uw4abKAHfWInvCI/jSIynaDHpuCqOuI/9KItptYcMFY9uOI8DiYwEyGTUQo9fyI/t6I//mCgO2YYQaYwEiY8D04qumJDQuJEJSY3kGJHaOJEdNi2UiJAZqZBb9QJVUFodCYYfiY0haV5UR5HUso4lOZMnKVQEAAWayAOQ2CgMqVCtWI2MEgVcaI/1Mk8/+ZLTkpNciJE64o5DBQWA2IUTcJOTcgBN4ABomZZqqZZQ+VRPKSlSKQNUSS8FySoRMJRdqZFDtQBguARleQBLIIpc+Ilb9ZaOEpdzmYMiWTEOcP+QXsiVB+CVQqWJXwiHkxKYgkmYUWWYjYKYPZlyhTZ99uIEQrmVJkmLYHiOkQIFEtCarvmar8kFTXlK8/KWiuSZEgma8SKaA0MAMQmZkhlUMdmFGzAFxsWZUTmVn/lvepdfv3maUBUFBzkBwFhKaiR6vXkAyLkouNmSugmAQvOcRLlVVAAFUECW1plG2BksmbWdiuIEypmbzAmeQSOeeUmTKHkpSYmejNKNMuCX8pl39Hkx9hmZepmfjcIFXDgBklIFlMkFyymgBWgxBRqcUPU2mwWLlGmZi9IEfCkDDBqhuAdJFXqgUYWhmuUET3iNG9CWOuIAT1ianngxdRkr4rn/miaKoDrin10IAdWZioD5hTyQmHS5mOFpmuN5ocblnzXgAU5ABYyCmU0oARCqfEZan0h6n0UZVLMpVFSAiZfyAlDapep3pQSapQaKn0IlAQvQpm76pnAap3JapRkqNDXqKpHSBEuwBD96ADOwp32qSrypKJQpmJlpgWbqYYOaKIVqqJ2omeV3p8dCpsVSe4tKJAzABZq6qZzaqZ76qVCafpJ6V5aKgwxJqc6XqLEVNTraLqoKW6zaqq0yqulEMpggq/bnkvMCEbjqf985ob2KY7QarKU1rAxVfb91csQ6gL8KlJuFrPKkrMtKe686rdRXrdZKYcZ6XKeXrQ2mqx+G/6LeyqzzCazjOmHbeq5qla7qilbs2q5c9a7wGlXyOq9PVa/26oPYmq/hha/8KlP++q8dFbACe6z7WrDGRbAI608Ku7D81LAOu04QG7HpNLEUm00We7HXlLEaW0wc27Gq9LEgi0oiO7KmVLImC0kom7JstLIsa33g+rLQ5bIya6cHW7N2RbM4K6LDt7O7pbM+i443G7TxOrRES69Ge7T3mrRKq68x27SaBbRQWy1SO7X7wrRWO7BYm7UG+7Rci1dV+7WVurVi208Nmz22V7ZX67X2UgUSAAF+GLdxOwEceoNLUIhym7cTAKBAGqlkGysf6qiCCZn8pJWCy4WBKqp/+/8q0zgBjvu4kBu5khu5XMgDLpqe1uSfEDC5nBu5Qkm4isu29BKXltk3GwUpHwqpvuR4xfShietHRwOOl+qCi8tO8CmXf7m6l+KfeuhPrqsqFjpTDOCLxMuLAfB7tdsqt5uYjMW7CvW7qRK8MqWgh8uFHoCqs5q8rLK8sOK8vou4wJujM0W91esByCu65sK9r+K9/QS9qCK9HkW+h2u+Nou+5aK+rsK+/OS+p+KOv4K9SSO/gku/Vmq/5IK/raK/+8S/puKVEZCLRMpPAuyoBEyj2rsqCMwqCsye3ZosDFwqXkm6aIu56zTBhlrBPHtVFJPBq7LBV9bByPLBpBLCXAj/hwBcMSYsmCgcoCM6MCzMlP05mM8LvrkrKTQsA3VbhjksijvsneXqrMTyw47yAgvgAX3qwukkw4oCBR6wAE2gpUJCuhz1K0vciU0stAZcLVLMKFTQijXwo1iMTlrcUgTgBGG5AZ94xEmsUGXMiWd8j2lMLWtMJDdJBR7ghT0AjAQQx9kEvS/gBBsAAU8qJE1Akl0oAXo8vdVrvefbrFgZxfGpNjAqAcZJJDNwyDLQhFyYyAfAyNjkulXwwF5YA04wBUugj7KIyjIglCcpxvG7yTLwx1V5waqCv27bo5A6A5TJAw6gzJXrAK58TR/qBI2KyF1YA35ZBbfbhb1cw5q8/8nCXKSBPC3qywW6zM2D6MyBCAWRMgWorJRC/L1f6AEOAAWWHMxf3I6l2c1I/M3l28lP/MnDwr0R4JgSoMsbEAWUycpCYshfqLrrFLggyreRyZc84AR9MwWtyM977E9lHJZtGM6KOc7JsryBi8cHoM0gzYVv7Ett7IUQrU4fWgOJ2QT5vMV66csdtcRO0ATn7IUiXS7+ervXGABQyQAk2dKOpIVdGNNZTMTvm9Pe/Mtg2AN+SQBUHNIALaFQPNBeeNFAGilRUAMQQKeKwtQzKs+veymZTNVe6KNEss1dGNTeR8ypss3UCcSSEs3WNMeO0tY7Pc8u6pu4HMxb3cOjyf+FARCqCRzP7VuJsBnZkt2aH7oAv6LTHCW/C/ACecQFhWq+Nyx/dg1TCNxmfF1MdwnMX5iNmM1Q5BsFjTQDrUjXVDvapzLIpnLaxFQFEg3MC4Cerb1QCloDTp0ox3y9dhoHJI0sLDwqZ6XbxcQFezrd1F3d1r2nsjkkwc3HE2DWlxIFtE0tQx3KjZ3Wp0Uk2+1PVFDKp3LTFrzcxxKXliiJ9F3f9m3frVjcN6i8yhnahlSxDlYo3ietB9DHwFwDjO1YTSCUa518PSbgVEvgByDXqv2FibjTAZDhGr7hHN7hGn6Q4R2DAS7h9OIAVSyFKJ7iKb4ADd5Phnu4G+Dd3ff/4CR+Tf4dNC9uqD3gxaHryTc+YVVw30I+5BNo22obskZ+5CSb5Ep+skze5Cr75FDeslI+5TDr41ZetPCd5Qxb5VxewFj+5SvFwz0r5k4b5mYeVGGb5gTj5WwOyGj+5lq75XKOTWte56Vy53juqwH943suznH+52br5oK+toFe6BJL6Ih+LHq+6N966I6OsYoe6eY36ZQeLI1+6adj6ZpepnTe6Vfe56Au6Z8+6vUL6aZ+SpnuWLN7Y62+6o3V6i/26pye6tlb6rZO5iqc66kE65Hu644O7Isu7IhOAESA67z+M8eO6smeNE1C7IXOVwLQK7L+gNV+Ys697MwZKkTg/+fgd+0mlu248gSNARmEAsMCCO5DVuM+lQR/Qu6MgQAcYAJJ0G3vdu/4nu/6vu/83u/+/u8AH/ACP/AEH/Ak4AU0UAD/Jh8FMAZDgAIo4AUSP/EUX/EWf/EYn/Eav/Ec3/Ee//EgH/IiP/IgD/Ekf/Ion/Iqv/IbD/Em7wUuH/MyjwJJEAICwAGEdhYKAComYAM+//NAH/RCP/REX/RGf/RIn/RKv/RM3/RO//RQH/VSP/VUX/VWT/U+4B7JAR8AIO8NEBkFEPZiP/ZkX/Zmf/Zon/Zqv/Zs3/Zu//ZwH/dyP/d0X/d2f/d4n/d1fxwIoAA5jxYP4BhwURaEX/iGf5H4iJ/4ir/4jC8Wy9H4XGE1jvH3XF/5ln/5mJ/5mr/5nN/5nv/5oB/6oj/5j+8Uo3/6qJ/6XA8Vqt/6rv/6sB/7sj/7ntIsrE/7uJ/7k2/6ysH7aZEzwA/8uj/8xF/8xn/8yJ/8qu/7aBH8wa/80B/90j/91F/91n/92J/92r/5kr/93v/94B/+4o/53T/+rx8IACH5BAUEAAYALGAAbwCZAS0BAAf/gACCg4QJhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+UhKKEDwBPp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8C1hgqjgwoIDQVMAszNTM/QzdLTztTW19jZ2tvc3d7f4OHi4+Tl5tzQy+fr7NgFDRwIxQAPyCZCVyj6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSDDJFhsCOMwD0MBEEC9dDqwYSbKkyZMnCRBAybKly5cwY8qcSbOmzZs4c+rcybOnz58kD7RAMabBvAQFsHhRAeOAyqdPnUKdSrWq1asqD2iVqtXqVq5SsUYVCzUsWbNi0WJVe5Ut2ald/wl8fUuXqtu6ePPq3cu3b16tKVQkEXCUyZEWIb8qXsy4sePHW2FIbnpAcuPJlC1D3sy5s+fPoENHzjxZtOnTqFOrXs2aMQEgXlgQE5XgCRMdLVJsHdm6t+/fwIMLH068uHHir2MjmD2o9m0VurXyPk69uvXr2LNr3944OYvltG3rgL57Bffz2MtSz4q+/W/27kN7B19IPHnp5jfLjc9fftT1+/UnoGjwKVbggE7B9h1zgjg3XnQIRijhYwEKyJ5m71Xom4YTdqcgfc3ZB2GHJJY4YFQYbsihicbNxyAADt5XGWUs1mgjZAGuCFpWB1K4I2gp3rjjhy/GCGGQQiap5P9qPZ6H5JI4EhnecyMaqCOUWJa3mEojNWndlTVCNV1nT/bn4pQPOuZlllmOuRWXK6zJJoBwflYmf2fWR6Vod6b335yeudnlSnGC+R6gUg26mJsU7qdZj4ziSGhTWdGon5R6prmkeohyJmihinYKYKhfRdqdo5RBml9ncFIql6VRKlekiEAGBauouObq51d98nprXL5u1iuFmIa4p528daHCssw26+yz0EYrbQvSVmvttdhmq+223Hbr7bfghiuuti1Qi2252aKLbZWe5Wmspp7BoFsXJHjhBUX45qvvvvz26++/ADPkhQtMwbAqq8U2SOtngZGgRBkigCDxxBRXbPH/xRhnrPHGHHfs8ccghyzyyCSXbPLJKKdcMhlSaOFFbr+qmTCMC3sKgwpe2FBCBzmo7PPPQAct9NBEF2300RXn0EEJN2xBQhcxuzazkYHiLEUHX2CxRRIBd+3112CHLfbYBSVhBQ4l5IAbuzLLiqaMm61AAhYd3HCFC+aOq/fefPft99+ABy7433mPW269RZTwxQhQI+x2pnA/Ju8IJZSwRW5/6qr55ptLloIXO5RQRG6OL/g224vB0EULWnRggwtRcy777HPCQMIWOZCxVOkgKnwsZKqTAEYHh8lJ+/HI13gzCmSAcIUKvM/6O2RW53D5q8lnr72N1eNmaFdT10y9/xdSWN8C9tunrz6C3Z/Pmbu+wzt++ddv+f36+Oev2oHtH9y26ZBD3WKqVz8r6e+ACGwN/8inthb4z0OPe1fkHENA9yXwghgMTv/eF77pPaaC98ugCEc4vwY+UGoRjN8EGwNC45HwhTDUygYvlUKaeZCCDLyeC2PIwwzOMFYAlKAAFQPCHhrxiD8kVg2pxpkiHvGJMEyizFwQRBUO8StOhKIWfchA3JxwS0CgYu9sKL8P5tCCW0wjAqUIwSqScYWMaWEI1UjHzbERhW5k4mbkWMc+bu+OYFyi+MxIPzT68ZDHA6SBOlhGHBZyjoiMZJYUORdGwnGAZ4SkJDeZJEq+yf+SV9xKFjlJSkR5EnyCvCELM1nKVgLqlAlKZSNX+UhX2hJLsITfG0MpQ1bScVi3VFIuQdmZUW4RmMEU0jBleUki+jKZ0DTRMvM4SEeaT5PRzKZ2pjlGPZawgNoM54C4Kb1ZxvGZ4kyne8h5umKiU53w3M4wxVjOZmLxnfHMp3XYGUB31lKfAN1nFx34PiIwk5cHMGZAFyocfgrRn9dkqESH41ArQhScE81oa+ZJTVWe858aDalqKrrLixpSpCgNDUm9SciIpvSloGnf/XTJUsd0wQVgyMEJTgrTnuJQBDm4Ak/x2M1qumZ1WegAFkgQJ8Ug06fxLNAKBNMzFECvVzT/NSpjboYErFnVVQXyi1jHStaymvWsaE2rWs0aF06Bpa1lVZ0L6AYGF4QEq8T0jAvQtgOrEgoogA2sYAdL2MIa9rCInQmciJACF+igckpgSvTa+b6pXuEGHcCBErxAgs569rOgDa1oR0va0pr2tKhNrWpXy9rWuva1sI2tbGdL29h6QQtKW+pnsupRpzolBS1QAmZLMIAd2OC4yE2ucpfL3OY697nQja50p0vd6lr3utjNrna3y93ueje7PvhC2opAsNgt8qCc0czNkoAF8VauA/CNr3znS9/62ve++M2vfvfL3/76978ADrCAB0zgAhN4ZwYOcOVKgAMdPC0F5q0k/3pB0zAXKCEGGM6whjfM4Q57+MMgDrGIR0ziEpv4xChOsYpXzOIWu/jFK0bCCEiggi4g9JMTNo3qatyFHvv4x0AOspCHTOQiG/nISE6ykpfM5CY7+clQjrKUp0zlJjelS/LJq3xGg5kue/nLYA6zmMdM5jKb+cxoTrOa18zmNrv5zXCOM5zfRCAtm8YuUM1znXOs5z5fh7fm9LOghQNoe4pzh4P+kp0BiuhgYhNBhb5xMtVbmkSfJ9ILpfRTLU3oRXP606zBNKhHHWpPk/rUQ+IzqlfdLlOz+tWNWYGrYU3r3cy61rR+DT0pi+te47ijgfY1q0Ut7F4Tu9i1PjayYf+t7GUP+9bOBnWzo33qaVN71Na+9qezrW1Lc7vbg/42uP0s7nHrudzmhiq6062/R3Nn3Qx1N7Lhze6U0rvespO3maCN757eu98Z/TfAJSrwgS+04AZnNL8H1IQZOPzhEI/4DBJOO4RfpwoS2IAMNs7xjnuc41zoCsXfpySLVycKPPi4ylUe8uxB4eUwj7nMZ07zlzfB5TWHQgQcAIWv5FznPD/RwtEjgZXzYANIh8AGUi4DpDudAfpeUg9WTvWqb9wJ2Zt61XuwHwJo3Oo5co/JjeMEqgdAMRPY+MSjniWtW/3tHcd68ty+8h6I/OtVF7qqBTSDqp/9K2mXwcTXFwD/Dxj+8IhPvOIX74ElZN3qdt8K3qmud2Ab+jwL8Dva1T7yxdBd5ZHXyuRXLvRd91NCn/f437cS+MF3fiup93joDzB6lVe+qL1tT981D3jO+5HtSop9x2df+4/fvp6Sxs4SrL56rbT+9V8RPseJ//bj83pAEWD+5gUPfdhD/ivF97j1T38iKGi/99wPaaOzI/2NU9/q438ooVdzftb7XqPrx077ZfD+vFto6NsReCvXfAfwfCQEfJyzf/1HeXTWHrpmecmnfLxnf+m3PjMgAR4QAE5QBUfkAB74gSDofj4HgiTIdKUHgR0igB9HgAaoPgwweQHAgXUkgiLXHVrnFPu2/3cCQgU1MIDb53rpk3keFwEGcgABsAFK53RKqIRRcEAEQIObcYMNiB5jZxwzUHwseH/pU3sLQGdyoYJVJ3fAkX/xAYWQIYU5iIIlIgFMx3FZWIFb+HFdaCBgSHVimCFCYoaPgYZ4AoDusQQLEHhvCITbI4Qd14R3Nhxk6B566Bh8GB9V2CJv4gAbN4j484Id5wEyaCYIiB2N2BiPKHZ+GB+UKAOWeIkSMAEe4AQvgINFeESfyBih6ICj6B6leIoY1InpUwUbtwH6cQApN3uQWIvtcYs/GCa6qCZ+ZH4yMAGcwQUbNwHJWGo62CHGiH6E2CGLGE5CKAGcUXQyMIdpiP97wRYh10iB2Yg/bsVDckEFUGCIPecY7miIDhB/FmUj5+h8WthumRNDDNCGHOeNjDEDALlx4jiOyHcj+ViA+9h90OhxC9CKrrgVu9dxEQlpxIget1ghLdh9WsEAPdADG+ABEgAFVzIDITmSJSkhkWgdC9mRJrKNxyEX03g8m/h/1TghL9mQJCKTjrEAARCUQjmURFmURhkAjudtGXkeTbAESxCPW+EATimRyPgb+wd3HneHgiZrOcmSW/KKLOKToIiVZKmVfsaVamhpP7eWOXdzStmVHhlvSwlF6xiXqZaWrlSXdtlqcLmX+tSSfllKgBmYnDSYhClJ9FaT2yOW0Gf/mDHEmK/nmDAEmZ0nmS9EmSNnmYfZR5q5mXTUmZ6ZRqAZmlqUmKRpS6N5mkeUmqrZQ/emmK3phHMZm5HEmrR5mbN5m7+Xm7pZR7bZmxn0m8B5QcI5nAhUnMbZbryZnHS5nMy5ms75nK4ZndL5mNRZnbjZl9i5m9q5nb55nd4ZnOAZnsQ5nuR5nOZ5nsrZnerZnOzZntD5nvA5nfI5n9ZZn/aZnXiZn5+ZnvyZPcj5n7gSoALaKQT6lQWaJAeKoAlqIwsKlg0alv4ZoZzzoBRachN6obpioRp6IxzaoWGSoXlpcB8KojEpotoBm6eCmdC0aVlSoqxyIv2IUi6KJTC6/xUvAAUkuKM82qNQMAXJwwA9OqQ7mo0q+kI1ykH4qYhbEQVXSZYywAMScJOa8wIBAKVGZ5balKQ0tJ/ukX1YipUCyTngGKYq53hHGk4wSgCBNwFH+aZv6gEbxwNUIDuBl4FwCqeBd5CcdqMpxwNU2S6NEXhQiRxpuhlfl46dUYp8upoTsqbuB3xyIacyUKiKeKiQkainwaj5QwALEJKgGqqiOqo9YKkIeX1lyH+9QammGhwsahqaahqcmj9XaqaVypIouluxaBqsOpOY+hixKhqzOoXJU6tm2qrDuKTFsau/qBi9yjnBGhrDOhfZY6xhiqyiqKzEwayh8aybE62gMf+tr2oj1oql2EqL2joc3Aoa3qo54PoZw8oFhjemyFOuUHquVJirn7Gun9GuuvKunjGszOgB2mOvZImvl6avnsGvE3kl/oooAQKwOKIVArtxBFuttnqrEXKjDAuhrviwuCKxnFGxMnCxxZqxCPtuCtsZHUtnM+AElgqycxKxPNkYXACzXUGyJluvKIur6Socn3glcsEAEBClRLgVMtspIqsYKBelTiAXOluwPbuxK8sZ6xp2RHuISLtxKZslwUoFTiABLUeRhliJTRC1GGurXZuiVbsZjUgFS+CWi8EFtYeISYsomloFUYB3C9BzBOAAeNeDG1cDZReOWzGwUqu2Puv/pe2hh1CQdj3gBEBwMHTrfktAqTKAdXcLKIkaAUW7gmUqAxLwAk5QkOKIuGl7rItLjpfniapKk6WbiWMLBV9XqgdABZjrBJs7J1+ngm6qchtQj07xuBZ5uBabuKpLtT8bHDTYBAbLAxsIBYJbA1BJBcb6uWsLJaO3AVHAgVywAG0YADNQIVRgiKd7vKl7rRzyq13KuhF4HCIIuBznAQwQu9E4vZZqpR6XvUuCd5Fbp1/BBRgYBTpSuOdbssj7cTVgsBzHv3/WtpDhfqG7gU4hrx63Aa2qvw0sO18nAYpqKGh7sio3ASFXuCpnquzbvgkpIB8HAZZKAE7ai2O7GFUA/48cXLMja5DGi8Dp64Z1CrWCu7+ru8L9AZHpSAAMAJQzzBhVsLtssrSQEcI863ESoCFc8Lkd58CKtrzAwXE8gIiq4cRZ8rmKmsOGqxWoK8JzerSLMQPlqsXVwbFR+gGtIcZYIogLkMd6vMd83MeUesA7ezzGisGPgXFZPMSoyoiqyiQHYMdQEroZu3FoegBpPMX06yMH0LQai5GmJ3+QeAAtuxmOrKC3y8BQKqU+h74ne5GL2oNwvB4Q/BihDBmjDCVcQKS47IFyi8aqXK8U3C5cMAGvPJOx7BiRWsdcC0WVfDwMYBpUUMboyrjowXTNvBpT8LlLPKDESiBfsZB5dv+jphzJTVcFKTwnVVCr9HpuxdwYUPCkYcrGzCwB8jzP9FzP9kzPAjjMCsfFwAEFAVADpBrQAh2SNeABwps8zCjOHPe04bbOkrg9CS3ONQDGgnajfjQDUZDRGr3RHN3RGr1zElnOpISW7muiPUTSRJxuIi2YDm3SEsrPLl2hLR3TPTnTNP2oNn3TyivNOr2ePN3T6pjTQH2q5DfU6AnTRg0oFp3UCYvUTP2iQv3UCdvJ9yjVQe3UVo2hWJ3VQrLUXL3FP31uM7psXq1GejlvUf3V14HSiazWx8PWRe3WyFPWco0caV3XxgHXnozXtKPXVc3XkHikdP3V47pIVF1SgF3/cXed2K662Iz9Ho792L0x2KU51mi91fB01sVG2XRp2Zsd2Vuk2cLG2ZKdGqRd2qdx2qi9Z2G92lCi2q69W6Ad23c221mNaIsI20mN24+m27Stwm3926+NKQ9QCjUl3MP9OMWN2MjNJt6hALOx3DBiGIjR3DO7ArFBCqUAI0mBAqRj3VCiOi0wGAkwDxwgAB8hWVyqY13GGpihFZvmZaEh37hG35ITZvAdYachLySQBEVR3sVgDzRwBUlQ4AZ+4Aie4Aq+4Aze4A7+4BAe4RI+4RRe4RZ+4Rie4Rq+4Rze4R4O4TrAAkzAAQAuCg9wDBygDOrQDt2QDs/ADunADC/ulA0uvuI0Hg0snuM6vuM83uPbUOM/XuM4PuM8zgTvEA/zsNy1EQxM3uRO/uRQHuVSPuVUXuVOvhG0AQpavuVc3uVe/uVgHuZi7gmoMOYljuVonuZqvuZs3uZu/uZwHudyPud0Xud2fud4nufNceZ63ud+/ueAHuiCPuiEXuiGrueGcOiKvuiM3uiO/uiQHulonuiNHggAIfkEBQQAFAAsYABvAKYBNQEAB/+AAIKDhAmGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en56EoqIJCgAJT6mqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCwaYKpqODCQgNBUwCz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jlBQ0cCMejDw8ADT5HSV74+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjNkShg0UBDgmQAXiAgIOJISRgACFCBIjJkyhTqkxJcqXLlzBjypwJsyXNmzZv6lyZc6fPn0CD9gzKsiTRo0hhigFygEQSFg0yIkvAgUkIL10OENi6oqvXr2DBAgHLNazZs2jTql3L1mvZtm3/38KdG3brWLp48+rdu0Iu369+/4a9y5bwWsNqD3QhoaPAk4yGRDX4AZJA360HMmvezLmz58+gQWMOrXk06dOoU6tezbp1Z9OuY8ueTbu27duxUQh4fEqqsQeTh7QggLu48ePIkytfzry58+en7XrZDdm3AuADhBOHzr279+/gw4sfr3oFkOm8IxMKTmI7+ffht8JuPh++/dr179M2j17qKPbuZRagaPoVyJp8AzKXn4EMRpfgZg822Bl/1GkEoIQYZhhahPCNBgMMyS1oG4caokYhb8hcWOKKLDIo3wEfhkhii96d6J9klLVH4448rubejKhhJuJrB7IWY4/G2Whh/45AIunkk7INCd6RUNamZIpMbthklU529Zpll5G3pYYIemkkiDxe+V+Woo3JZZorfNmVlG86V2acZ/aoJo6VzfZVnYBqdiSVgXI3KJrNERobbIp+tud6bMb2Z6F1Huqdmyta6lyjrTGKaGiPDqJiayDSSempqKaaGaeamelaqIKMGhsMXdRq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzPaagrEpwGCqZ7DOE6mPcXahQgvctkDCt+CGK+645JZrLrjcnhuut+q2Wy677sYr77z01ktuuvbmq+++/PY7b7cqdFHqqmCaeF6FWPbJ2rMtuICEFllELPHEFFds8f/FGGes8cYcd+zxxyCHLPLIJJds8skopzyxFjF4QYIKIILoKqgHo7imwqrBoIIXNHxRQgkdBC300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ010CV9ggYIKrVUrK2oqoCBFByUMYAMWbLft9ttwxy333HTXbffdeOet99589+3334AHLvjghLttwwBAixCGCimsBmsCY5MGgws7lHDDES6T0K2/nHfu+eeghy766KSX3u3m8jp8Qwc4fB3maWJfS1oKKsTA9RUtwCDY7rz37vvvwAcv/PDEF/+VCkmsjkV7psaOM2kr7ExGB0K40DiC2Gev/fbcd+/99+CHL/7/+OSXb/756Kev/vrstw8+7Uhw7YXjNd8I6fOgtnBFDjd8jamqAAygqgjgAhyUIAYCS43zdGSiFhwhB2DwAtgESMEKWlArKyABFjqghRY0zmD9WRL+QJNBIUDQBSr43wVXyMISWUaDHSgCCbICQoTdjIGwI4EQOgAGF9CwhUAMIpJeuEEZ/hB69RMhDqGnQx76UIhQjOKKiBjDGSowiQlbIqia2MMjSvGLYOxQBos4QzwhMYRZ3FIJnejFMLrxjdyxTAvI2AUz0gyNN1QjF58Ixz76UUErmGMV2+goLOZRgXsk5B8XychFBZKOV8Qjn7RIQh1C0IqNzKQmDzTGQUbS/4aT1KMJwYDJTZrylJ6hohE/abNQInKUpUSlLE+pyljeEZT3o6SjLElKRc7yl36spS85s0BRshGYyGykMFlpP1HJrpI77GIypxnMTq6yhq3MpTGlSc1uhnGZ2GxmrJ65y2jy0ZvohCI4YWfISZYnkemMZxDXeUZcOhMk7zTnMOXJT1TR85bZvCcJ8nnMfhpUgP8kYTtzSVBuHvSh/rSmLRUqSW2+sqAQzWigElrIigp0m+fUqEirxFFqLfSjF3XoSFc6RInus1UnHecIy4lRltqURiWdUEytNVNqwfOmQGVRTom508jRVKVBTWqDhrqZYqY0pEqNqn6YClOPylSXPv/Vp1S3OlWXMlOJTZKjVrlKVjF5NZxgDVIgx1rWtn6Hqplxqol+6ta6QgeuB5BrDtlq174uB696ZSJf/UpY4wC2qOT0DBDoWtjG3uawVuUpVl/TglFC1bGYdSQMr8nOyBo1lZU94UszS1rRnLWz9ryqGltghRNOsLSwBVWYqJgFDzYpsPl7oBQkGNveOmq2BCCBDTgIs9sitqeeQV4OcpAEFfRFK9thlW/dWpbOwMALPlNCCtR43Ml2pgsuOJsNsHI9+czJfehNL/vOq972uve98I1vfNkLIxWQQAtpc8GYcAuaD3VBCWijgQS7cheTGO/ABzYwghfM4N8hpsEIVnD/X8B7hKAdYTjl6e6WSkUCGnQAgkrwggtGTOISm/jEKE6xilfM4ha7+MUwjrGMZ0zjGtv4xjjOsY5xLOITK6EIQSsCCverYdYsRgs5QNsXBsDkJjv5yVCOspSnTOUqW/nKWM6ylrfM5S57+ctgDrOYx0xmJ/usBDnIwgw/hdqAqtY1+rPBF4xA5zrb+c54zrOe98znPvv5z4AOtKAHTehCG/rQiE60ohfN6DtzzQZb8OFzM+zZxG4oBd5yAQqUwOlOe/rToA61qEdN6lKb+tSoTrWqV83qVrv61bCOtaxnTWtPj8AFLxMYpvgLO+KACQbP6kIKhk3sYteq2MhOtrKX/83sZjv72dCOtrSnTe1qO/tW1s62trfN7W5fW9jLBjaxhf0hr0iqyKoZjWXc86F2u/vd8I63vOdN73rb+974zre+983vfvv73wAPuMAHTu9hzztaaDrStExaaeSmcjtm8hCbpxtUd2sJN7ymuMZXUyoVxhXdGw+5kaArm8d99jMLF3lfU07R1ErWTSxX+QChFHOGu/zkMs85xkGu854niec+D7qVgC70or+K6EZP+lfTqPSm06/h3nW61D8OdY9PveewUgDOr+70rG+d60r3uqXB3nSxO5zsSTd71NFedLVbne0bdzvcuS73uU8943YXOt7z7vO9813nfv+7zAMveP+RE77wcUc64nN++MVPt/GO55KvgQj5oE4+8kevOub7rvjNDxGOlYfo2z2vU82TfvCdP31vQ696wrI+Pq3f5OtjX9fZi4kLM8i97nfP+xm8gPYWtD14GBCAHsjg+MhPvvKRHwXgV1D43lnA8qdP/eYDsQpcyL72t8/97ntf+79nIQFm8H0uQMEBXGiCZrBffihAgQvhNxD07XSAKkyA+jzogf71j/z87z8CQTQD1DeABJh8UABEElCAMrAAmiGACniADDJ/z+EBAygBnEGBMgCBUeSACtiBBoiACsiAmcGBBKiBBSKBf3UAUUCAFrgZGGiCQjQFELABNFiDNniDOJj/gxsAATBoQQlYgCJ4ACQ4gD1oHyjIHDXAghd4fEVIez9IgEE4hNTXhO9xhMrhAAXYgprxgs7HGU84gFHYgVRIHlaYHNKnhC7IhF24GV9IfWH4gA1Shshxf2i4hWq4hpnRhtP3hgU4huMhh8cBAVm4hBmIh3kYgg0ohnGYeo9VG3RYgYToh6enh8vHhyW4iKYnIQRwhpCYhoVoiJSofJZIhJh4c2NnH1hYh5nBhaCIiCOoiBHIiPaRhJ1oh58IRlDgBFHAAFohS1GwAMAYjMGIgUFIBcJ4jAtAi5IYHoB4HCtYi6t4h1FEAFXAiTzgBA/3S0twfEFIGnS4jODRjMeB/4HTp4XReItR5ATL5wDWBQUS8I7wGI/yqH5utI0LmBrfWIpu9nIsQo7KZ44HwIrTuAHLFwCeoY4eCI4WRAD22I2hkY+xmIklQokAKZDzpBXTNwEH6YHoKB6jlxwNiY/SeIKyWCAzkIzJV5EjKUQEQJDKZ5Cd4QDyOJPxSI9hFJKoAZHyV5INgpAq2ZFChJDJx47ehJOnoZMkKZE04pORCEYE8IQ8YH1FyY0iCZRGyJMMwpSeqJAVxAUREAE26U0RQJWkQRxIqR/i2BxaaYtcCXwI6ZCgQYu8GJGmeHYYspbn2Ja0FwDHh42nwQXHxwNVoI/ixI89gpcBuZJS9JFwRP8cqWiVApIZL8CXMhAAjJkcackciGmRboQgvwQFS7AETkCZlfkZVBCaESABgnh8REmX+/h1ErKZiumULyJLBECayLcBc9kZgLl8AJmUdbl2sXl8P6mX41FzQYWblbmbvKl8PeCXEpKZyyGbkLlUlylSoxkAC+AEXEAiTRAA2ikBS0AFGiKdykGdxumR10kkvQhU6/kc5pkc6NkiyKkaU6CD+JmfNAgBPAh4WGkgU5B9M8AZTcAFDBB/UCSFHHmJjPefBvKerrEdEIocCrqgU+ifSklSE0pzvdehHvqhMzCYDZqhfCehGBqcG2qIGhWfKipPLNqi6fSiMOpNrJeiFOT/mTPqJw6aTDiao+dGov3Uoz4aNjuKTEI6pE+HokhaWDK6pL/UpE4qS1AapadUo1S6okV6pVgKpFqqVK9no10KRlMapow0pmT6R2Z6pn2Upmr6RmzapmH0pnD6RXI6p1FUp3YqRHiap5SXpXzaTWpiDCj1pzYVqO8Am4TqooYkqG+WqCtlqIPqqCIFqY0qqVtqQ4xqmJaaUZSqqZv6UJ2KqJ86TXs6qqpSqqaKKqiaqpSyqqwaKK76qnUSq7LKJbRaq1Byq7jaJX66q2jaq766psAarG46rMQap8Z6rHSarMp6p8yaSs36fM8arX3KpdSaSbp6rRmSrVNUm7jKrS7k/621Cq6GJa7amnlKukJHeq6sQa7sipbT+q4U5K7yCh/0ikpgGnKx6o7g2a/++q8AG7ABIAGtKSP1uRxQsAACu7AAuwAA2HbxihsE8IwW2oHQiRzrSh4OwAMVS32/OaLpOlUHwAAc27GwyJ6zkbHj8Ygmq3zMeaKveYrigZATEJo2e7M4m7M6uwQY+LHtmbLm+h4lGwE7W7Q4S4cFa5sssqo/6LOx8YxOeyrI93aUuQRhNANGm7VLEJaEmVYM0rTFAbUWNLWLcgBVG0ZQ0LIyYLXbGrG3Aba4IbYVhHy0cba4qLZJ65qFKareAbe3IbcURLezYbdflLYtm7c7CXUS4v+3tgG4AiS4skG4UmS4Jou4wBmz+NQgjFsbjhtAkBsbhHt5QES5HWu58Kq4mkucYau6c3t8dXt8bHsAEaB/URtApFuxpnsfC7S4rPu3vfu4rju4sKsZnXtBt2uhuXuV1joem0sbxasqn+sadjuxv7tCx7ugyWuvbmsbzTsbz5sq0dsahAu1+Zoh18uR2VuF21sb3YsaMyABUpkZ34sq4RsaVOAETvAC2zG+1Wu8eFue60sb7UsaTUCHEuAe8yu1wSsgHAIFdDgBEMi/MlC7AHS+Hpi+ZNhd7xEh7cshBZx8C7AdCUwpn3u/EqCBvuYEJRuYzSfBFKwqFtyBGPyHGpz/uhMMISPrAOTpGQywmiA8mCNcKIJbBVHgkpVJlN/ZfysMnsMrv/1rQTGsgDMsHrtrw1pIHLMrAxDAjq7Sw8zHiQtAxE8MvseXAkvAssjnAU5AizIwAeb3iCUbu0EMw//btqj7taq7FcYoilOAJ1zgkjwAgNWIfAswx4CSxslXA8qJfBIQflTQhnI8xhQUxQU4xcwYwLMBtw48fRtgtX8cmGxLAC/AiQY8tsrHAxIwBQfABQuwwhuQt0vAxpF8w6NbxxjCtMRJACqMfAEABbgZAIAcygLCiZKswIEpAVzLABKgyFzbiwxAh7P8wqkSwztIgJYcjpgsG01LmlGpGRHA/8aBibhPmZKmXJndyRkmGhouHEQW7AFNMAWLjHzX/B24LAPGd3wQzBkniXw9kLtPKM11QraLss61vIfhVwWhOM81ks2x0YYSsMMxOQH9SSADTCkEUL8/SxoE3ULXe7Hyu8LyDMDLKx5PWAOxSyCl8RmGHNALDLpNrILFbLvOedKbAQVGzJoiHbIF8oMT8LLoPCYr/SYlGwVEXdRGfdRITdRIS7wxXcHJl8+g8cxDmdOYK5zgAbaXGdRc4o9qKwM8YJNaXSiU6wEDShpUQJoK3R31bIFZ3dSBAgX33NUycLFh/dbEGX4zUgUISdN667UGgtW+S8sVxABOQJOGfdhJW//XgAIF19gaS8ADfJ24Oq0fFd0aih1Gl/0mXKDQ7kfVeyuz4VHZrIGYqJTZtcfQRfKMPbAAh93aNLkALunRqESZsv14qN0a9ynX1NcDzVxBBFB+wO19T5iefeWqNq3byvfKQcQAyE3IqDfS43Ga+Dvd1F3d1n3dTjCeQtSbyB0AEK2vtx2h07QdPayf5r2DARABIqpy96q0iNfe9UrF4R3fVQLf9E3P833fvArd+g1F9t3f0PHfAO4cAj7gzFHgBq4cCJ7gyLHgDP5z/P3gwZffEu7Zfl3hzhrhGB5ADr7h+xFTWgfaHs7hIM63I66qJS7iGnewnGdVIW6XIcfiWJf/4jB+4gZbvm0mTi9u1TZ+HCqr1jTO4z3eqkGO40PetUx35CvU4Uq+dIfU5BOu4VBuqxQ+5fIt5Vb+JEye5R012Vx+KqGq4hQn4zDrH5lq4r5F5iBrM2cu5tOl5s+NqYfq5mlu5KQV5jX+5REatPiNR22e53p+IHy+0H4+54Ae6GmyqIYu5Ii+I1ve6HlV5ZDeHI/e6JWO6Jce6Jmu55v+5Z3O5SbHJDMz6U4SIwQQU5Aj6nZE6khi6gRQUfEwDwYQBCQwaaz+JjCgG9kU61VxFQl0609CHDpDAifgGP4R64LQER+BQmgC56gBb/AB7WdicY6aH7TiAkMAFTeC7KJi4QJCcAVJEO7iPu7kXu7mfu7onu7qvu7s3u7u/u7wHu/yPu/0Xu/2fu/4nu/6bu9XIAQmUAAIoBGCIA/L0AzOkA7cwAQKv/AILw4Lz/De8PANP/EUX/EWf/EYn/HQoPDr0A7vIArIjgrDMPIkX/Imf/Ion/Iqv/Is3/KpkBGZKvC9AQo0X/M2f/M4n/M6v/M8zwkv3/ORcAoyrxHGEPNDf/RIn/RKv/RM3/RO//RQH/VSP/VUX/VWf/VYn/WjYPRa3/Ve//VgH/ZiP/ZkX/Zm7/Rcf/Zqv/Zs3/Zu//ZwH/aBAAAh+QQFBAAUACxgADkArAF1AQAH/4AUgoOEhYaHggCIi4yNjo+QkZKTlJWWl5iZmpucnZ6flgmgo6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHZqsANGjSJMqXfrvh9OnUKP+YEq1qtWrWLNq3cq1q9evYMOKJZegrNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fv2oBCB5MmHCCJ4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDi26coLBpBQg4FBDAurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLhx1wUacFDACEEDAzSSeJlOvbr169iza9/Ovbv37+DDix9Pvrz58+jTq1/Pvv10FDpYFOBgmjAHASe8pCBAZKwxIkQAISAQ9AxoIBAEkDAECw2IgkgDNqDQAgwEGEKgf74QQMAKHK5gDxAdrkDAASqQcEIBT5RmWgIF0OBCFwfEGCMMMGC4k4wzJiFAiis+UYAQJMCI45BEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWRGqKwo4qG+WhFkFuWaeaZaKap5ppstunmmgQA4SWPhR1WwJhCHsChjToRueGcYA5mJ54ycjhikxXyaZKfKwDa451kKhqMhjjmw6ijdYoZqaS/UFrkoQeA+uaoZf755aOEzggDqay26iqboB6aYZKHioojja/miqSpdIYJaZ40chqNqroWe+mpmf66pIZjJTrsAeEc26ugmua5q7PCJhNjtEPyGqhgg5Jp7LjklmvuuTISk6W3qIqL7rvwUsnhmdhOQ6S6WLKbbKrx9utvkbjK6GmMA4dq67+fHowwuvr6yi+UntIo8cQUV2zx/8UYZ6zxxhx37PHHIG+cQgoTqxpwyQeErPLKIJvM8sswV5wyzAQrzGTD1Cp7iYgpd+Hzz0AHLfTQRBdt9NFIJ6300kw37fTTR48M9dRUV2311VCTDIOhAjuJM7jVRlkjBSR4oQQSaKet9tpst+3223DHLffcdNdt991456333nz37fffgL+txAgktKBCF6s++TUA4cJISRcuHOFDCUaUYPnlmGeu+eacd+7556CHLvropJdu+umop6766qy37nrnlQ+AhYRdrKB4o6c+8EDODy85NgU5WD7A8MQXb/zxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99sx/UUIHNyDRAv/iXuPOo+68u6vkiCl4gUMJOWQxggsk1G///fjnr//+/Pfv//8ADKAAB0jAAhrwgAhMoAIXyEABuoB+BfRCDETwPfFZa33m+xbjwnazFLSgCILYAglSEKISmvCEKEyhClfIwha68IUwjKEMZ0jDGtrwhjjMoQ5hCAQSoWAHJbgBClRgs09lsF2Oi0QScpADHQSJQhqKohSnSMUqWvGKWMyiFrfIxS56EYsG+6IYx0jGMprxjGhMIxoP4EEUiKADWGgBz5Z1xH1tChI06IAUvJCthwypCy2IQQkGQII5YhBTDlPfrlZAAht0QAuKXJgkJ0nJSp4JBl6wHAqKKC0NNu7/ZoKYXAxUkAJLmvKUqEwlrVbggi8YQQnlQ2T68jQvIyVqckggnyp3ycteImxDLhjAKwN2SGQlkpa2s2UoS5DLxPnymdCM5quAKUwlkOxmdTwmKCmAS11K85vgDGepWFnNa9JRlmBT1rKW2cw3cVKc8Iynuaj5SnMWc1rp7B2X2OnNcr0TR//s2s0QRdD1yfOgcCJnPZ25SnRuUJ3r4ydDEUrRioqTntacKJeyOcttdlOjFg2pSHeJUXs21JgdXSc3mdnPkbr0pZUsKUiN6NBPqvSjMM2pTn+p0Ixis6YcjOhK27nTohrVnz016SKBClFaSfSoUI2qq2T6U5TmM5LK/xxqS6XK1a6aiarntOpD9ZlVnHr1rGjNV1Jn2kkkepSlbE2rXOe60WAutKr4HCtWP/VUuvr1r7ZcK149GVSnajWugE3sWcF6T8L+CrEE66tiJztXxp40r42DbKgkS9nOetWySxWrTYVqVs+aVqoy1eziRmvY0p72tUVNbVjzyjgmkJWvh4WtbncK2o06tLa39RNnd0vckPY2sEwNbreGW9zmHvS4NBVtYXfFXOdaN5zQbasdL7jP3F73uxcV7Gwdq1yAVhe86OVldrvF0asm8REkcG1650tS8TbWrZGIL1zpy9/62tWn43UrMcu63/4a2JTrBWh79QqjAeNWvgeO8P+/EiywBbOWut6VsIb9RWGCWXi6G9UvUTdM4nd1OFQfbuoiRbzVEru4WCdeLYgDy2LNvvjGbYpxistb4RovC8dARpOOk7tXRul3lDYOspK3hNEky1jFIQaiFlpQShcHNMIOfpMXjGAEFIRqsG6lIwnyuEciLvnFWYZTClQgyAG4wJCXJW+R/aSCK+SgAzqQ45V3WktdFSxNf+bvhlSAAhzAsZCI2vGciQS5IoDvCoVTgaQnTelKW/rSmM60pjfN6U57+tOgDjWofSbqUh+uC6ZOtapXzepWh7oFXnDkDZJgZjBv10kw6IL7SvCF6Ljn18AOtrCHTexiG/vY7IHP+zr/EAMqx1K6UF6kCpJg6A7kQARSyLa2t83tbnv72+AOt7jHTe5ym/vc6E63utfN7na7+93wjje4RXCDDnTgC0cgQZI9/NsE2HbRfoJBiSYIAiYa/OAIT7jCF87whjv84RCPuMQnTvGKW/ziGM+4xjfO8Y5D/AZFGMH49o3ifv+buxgUuAuSsAUduPzlMI+5zGdO85rb/OY4z7nOd87znvv850APutCHTvSiG93mV/DCCEdE8ifzeEirYp+kW0D1qlv96ljPuta3zvWue/3rYA+72MdO9rKb/exoT7va1872rku6xQG+Na4ZqqEd2v3ueM+73vfO9777/e8oDPTtiIzy/zMbXpVOB/jhFy/JxBe+SH1mvOSRSvgmRX7ymPezoh8fYSk29/IAfanjcez54oKet5vPvOobn/rVu75fo3+97BnW+tnbflyLA67ib8/7hJr86b0PPr1qL/zi55j4xk++kJGv/OZrKfbOj/66mC/96kcJ+tbPPsQWrHvOa//70aWtv4EPfvCPPs3lT3/JoU0o9Kvf/NR/v/qxL3/507/+848//r9///3Dv/L+9379F4DZN4AEOFIjsme+ZICSl4AHeH3694DOx4AS+E0KGE8UeGMXWIGhhVkzxoHNl4EgGHwiOIK8V4ImaHsomIKyt4Is6HouWC5c4ARO4AA2eIM4mP+DDkAFLwhTMVgsMxAAPCADRFiERniERggFPSh6EYguToCEUBiFMqCELgUFS3CFWJiFWriFXIiFLzBSL9CFV+gEErAETSAjTSCGSyABTrAEPGhiTWguCyCFHlCHdTgIPGCHdcgFLzWHUviHgDgDIzUDgEiESyAjDlCIMsAA8PKDrvKESDiEi4gjXECEG2BUfqiImkiEgihShFiIhxgjiViIfAiHAOgvnxiJRFiKMVKJMnCJReUEejiLtFiLtugBbxhSqfiHoXgAowiIrHgu50dyrBIAUSiJweiKsLiESbKLUtiLv/iHwThPqed+4yKJqigDyWiJzKgkzhiF0KiI00j/eey3e7riilCIjJTIjd2IJN8IheFIio0Yh8YSBVKojjKijO3ojooYj8A4j6coZFcCiem4iuv4ivt4JO+IhP4ojQBZjt43LvZ4jAaZj+yYkESykEfYkFI4juTiiKTCAPdYka14kRiJIxpphBwZhR6Je/RoLD1Akdp4kMt4kjKSkkW4klDYksYCkqSSiUeIjyWJkEdFBUsQBQ6wgUZFBQvQlE75lBtgiDLyAU9ZlQsglML4ksVCBdhohFipj0blADVQhB5whrBFAMYoA72YJFE5k6YIkQsTAQXplkNZkznFADFphB5AJDQSATT4l4AZmE7whVYieKqUlmuJJG3JkzCm/5XGQpBF+JUmmVOQWYRUKCM0MgGb2IlVYphTopRngphMspgP6YHRFi9L0JWSSZQ7BZQ5WSSaqYmcaVSiuSSk+ZamSX7kUgUS0JaraZcwJQFQeJk4IgFWeZxNmYu0KZW2SZJZGZCUBAV5uY2sqVMf0JUyMAGg6VW1qSS3SXvQSUnTSZNHFQXYCAGMqVjdyZbOSY3hOUnjaZHVuVMzKAFRoJyvtZ6K2Z7kmJvm+C7xWZc26SQewJxKIolmCZ5waUowEKAHAJYDqiQvkJfEeSRQQIQ8UAWlKWcRGS8N6pwQGqFIAok1oKG2JCN+uJcbGmam5KAhClWll1hVMAMzwAAOkP+JEmAkL0CjXLAEBWqgCuqfHRovLjqZRxWjgIWORjgB+CkjSwCFAQB7jokuRTqf/RIik6ekROgBjGgkT3qEC9Ck7rmgLQqiRhovWCp5XMADPVADE7AASYkkqdmmHiABFYqbHIpKVQqcrGKN/EdJPgmTZioDEFAsfkoqBBAFyLmojPqUYnqCU3oufzkFODIFNBgFsEIwRnJ6ueKamxiIyheoXMWpr+KpnyqFsyl8omp4DiCYrvqqsDqYoRqpIkp6tIpWpDokaVqrn3mrZ5WrOLKrvAqB7zmsi/eD22msujV6fXQT2qVNzWoTz5pSyjp5q1qtguar2Hpg17qt6dWt3gr/Xsgarv0FruRqXeZ6rs3liMmqroCVru66W/Aar2eprfR6XfN6r6aVr/raWfzar5P1rwCbWMM4sBtWsAYrYQKbsHS1sAwrVw77sGgVsRL7WfZasZ5FsRiLWhe7sQHbsZTVrsOqsR57pCBbsn9FsiiLesW6sut6si4LsTAbsxM7szRrsS17s/Waszp7Wirbs8Zls0ALo0I7tEb1s0aLUEibtPK0tEwLT/wqsk+bSk47teBUtVYrTVibtdC0tVy7gEX7tUHLs2KbVl7bKkj6sIeqJmfLKmnLsGsLaGFbthTVtq8ltflHtnSLs2RqgXvre337UtbQjnZbJAyghojbhXc6/ySDKyOHm7iI6wAmKn2FiyMvYKqnCoVlaVHCmblQOAHp2XuVKyOd67mF6AF4O0nRaLp6WX2jewBTUIQTEAC0W7u2e7u4i7s/KgMOcKLS5Iezm7vCm7tFmKrJ97oX+oobWER+6AQU5YeYSiUOOqt66yqjOAFb0rnOi1DQWyXTm1O9uQHiO77kW77mu7jPGbjlcr3ZS4Tbe1DdK738CVOYq4noO6ZCCi/sqyXa+7xEGL1T8r30y7pTOGFzayX7e31F0r/c+7/eO799SMD3258cSoxuksBYwsDw68DyS5etKcEGTHgW3CYYfCUaLE/xG8AkCQU0OMEoDMIcdsBVUsJWcv/C8ZTCUhKgnZujLlW/iujCLlm9rULDVWLDfhsjOBwlOkyEPDxSPlyIQNyTMkwlREwlRixOSQwlSywDTSxSTwyIUdyYQgxoRlLFU3LF0QQqWfwkW9zFIfXFfxjGmjfGpGLGtCIBPbAAGnooaAxOa2wkvFkDAdClB9DGEcy6cpwrr2vHR1IFmRgAhHkAffxNf0wkXLC7NRCKhtzDMCyldDwqjFwkjnyEkBwjk/y7HHwATSABbhoBk3sAEZCXRhimm+zEnRwvi0yE2DskXLAAEiCmL5CWr1iEAcCDpxxN3UsFTiDL2RkFVTAFQLkAY6nLQrnDh2y6iTxNU4wkwoqIujz/JOZJhBDgAH0WzEUYppmIi8cMTdDrBG2JhOJbhBvQu02wu0XIitbMyYgcwuo7Kt0sit8cI0yJhAvQiVQgzHocKuncvP4rA9NsiWSInTIQADNACE7QlfjMxNfsudk8VdssJfsLBRAgz9i4AW64uwlNMKXblu/7wkZYA07whqssiTwAwDgCBbFJl/lsy/scw5/8Jux70cQ8A5dshO+8AIdQuu7b0DLAAxJgvDPgBAvwAUdCBbXsxX8oATk9nPycv+/iAIMgzDzgBAmYqMzMxTaj1C19w1uaoEpMkjuN1VDYA4c40FHY0Wj70VEyiud5p00gzG4sUEItA2sNT5XMJFf9/8ZQCAGXSQCVaZldDSboc2HrC6aPegBLEACFXSQM3cAyYNNvrdMarc96abypiYR47bbZNNkfaCy/2AMRkCXr/EyHvSSJbVGuKQGvfNMjnYSRzaLnMoobELpOMtu+BLyNmtxFmKBxrdgYCtoZac+pjah6DSWh/CTG3UtyScBHuMumPNo8XQO9K6GZON2jksvZ2b6EXbdwrIgbQJzNjdvZSdwyAonm7U7V/STXXdxLXVEsHKsAToMRQKnFCd5eTNHWXQP37Sbo7d0Z3N+TFd8VJblSwgWEjMv57STJCwGpewCdHeEGDqk/7Sap6AHDe+LCu7vjrVhVEJvQrYIZ7iTt7f+5E7DbFcUFUJDjOr7jPN7jO+4AackDbi3i/Uwul8vdUcilLyXMSB7iRO7V8cIFERAFVF7lVn7lWI7lEQAFHY5KTI7kKa2qMX5gWj0BZn7maJ7mao7mcEq9Rf63NTvicJ5Trzvnvy13dl5ZY57nVLvnfH5Kdf7neArcgt5VgV7o+JuniM63UL7oHCvnjv5cfh7pPAXplA61k37pnvzmmu5Sh97pHm3poK61mT7q6euBJ+e6XS6vq96rQJXqlNvqZynrxMrppl5Rn37r+C3qut5Lud7rsFLqwC7Gtj7smM7rxo5Kv57sw4fszG5Jy/7sTCbs0k7dzl7trHfthueZ+xf/7RlL66JL7eIK7vt6ZdwOUErp7f5K7t9+M+ae7uKO7cen7fLu08Ve774e7/gut/S+74OO5/5ugfoe8OPU7wRPwYR+8GBr8AovxQzf8HN87xAPqAM/8Z1Z8Rbv6tIF69F37vX3ZDTgBV3g8SrI7i04Il2gI+LXAD5AayACeDAfeBsS8ylUdzR/8yFi8zi/8zyf8zPPQjrfQjb/8pAjBAWgQYNxH7PTQEzf9E7/9FAf9VI/9VRf9VYf9V4QBCbQIPUBAA+QGgXAAiEQBGRf9mZ/9mif9mq/9mzf9m7/9nAf93I/93Rf93Z/93if93q/93zf935P9ieABQLQAAjQ9V6//zvOUQAGIBU/YACLz/hS4fiQP/mUX/mWf/mYn/maj/mSv/mc//ieH/qi/xSdb/mlX/mnP/pRkfqTz/qq7/qqL/oGIAAFgABIvyKp0QC6v/u83/u+//vAH/zCP/zEX/zGf/zIn/zKv/zM3/zO//zQH/3SP/3Uv/vLoQCGXx8KgP3Z3/3e//3gH/7iP/7kX/7mf/7on/7qv/7djz7s//6GAf/hv/0rcvj0P/7bf//yv//8DwgAgoOEhYaHiImKi4yNjo+ODw+QlJWWl5iHCQmZhAoKkJKGopifn52oqaqrrK2ukZOvsrOYm6qnj6SEurS9vr/AwcLDxMXGx8jJysvMzSPOz9DR0tO9uNTX2Nna29nW3N/gvODj5OXm54vi6Ovs7e6PgQAh+QQFBAAUACxgAGQAsAFKAQAH/4AUgoOEhYaETIeKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebnkwnqAOzt7uwKgwlP9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocN9CQAkcNQAncWL6ARoZNKAgwKJ79xxKMBCBwovKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKXYliy44CCBREDCmxAYshJFYAmQoEo9Wr2KaKOdACBYsGCJayU6dAwZMCR1yoOEBghVuscP/jOltBoO2BLl6CGGgAoOzYBEqfMEmS4oDhw4blKl4srG7dwy2SmOBb9pAAFI8Ra97MubPnz6BDix5NurTp06hTq17NurXr17Bjh17R1UfFRZfpyt7Nu7fv38CDCx9OnDhtFD4KMMpNgLHz58MQ176tiDn069h1SUdO3TIKutnDM0osntR228u/Ny/PfhD59qDOdzdkHX779fY9yU8PPr/4uv7pBxl3/OEX4IEIQrIfbuol6OCDiixYnXrFVWjhhZ5lZlhmjhGA4YcghhgaDDB05pZhJJI2XYEituhibBqy5aGMMf4244s4upgiZ5ntKNqKDOqW45BE9nYiazUWqWT/cDv6GBuQE/Z3SYehdWjllTeKduWGWHbp5ZdghinmmI6VFqZbY3JJJY1ktunmm3AmuaaacdbZ5WZ3rgald1JWAoRbgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumli9Z1pGp70tegJSqQQIIXKJRq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPb6qhcukNCCCimsgFqnhdRHCQk62PCFEdBGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuuehy+8UOR3ixVqAqcgdAkAZKAsYg6ear77789uvvvwAHLDC3JXQgRRgtFGtsvLbNG2WWoAEBQxcoDFKE/xLABkuCCxx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDOLKurHXiiRxQ0d3HCFCkCYhiwhzJEGRBcu3CuIC124BQQRRPxJ1dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaG/ttNZQQz21sUhfgUMJOLhQWGlDD6LsIy1sMYgLEAbezWMTt3DFFyXEQCzeBNIrCQk2lAAG0wtDvOTlmGeuOeYEkICFwUxb7lneguz9yACJq1Bikpu37vrrsAdneA4goLAWw/Ml+ykkLjwbxmGsxy788MQX/5kKKICQQxItMI6e45AA4QK03xlv/fXYFw8D8jfkcEXzuBcYif/01C+c/fnopz/k9ih0/73zuRO9uyPkG1G9+vjnr39x3HsP/miko4DpGFG/++3vgAhMIGv6977wQe8RBTSfAidIwQpuhoH/+1HjHja+6dlPghYMoQj3h0H4iS96HlSP6EbIwhYSr4QO5CAKyxc8F9rwhpmDIQA3yKd6ETCFIMShEIeoJB1q8HkyhCAQicjEJubIiKEJ4AAXEUEnWvGKGIIiaKQ4v0ZUEYtgDONvtPgZLvbJi0CsoRjXyEbSkHF0PPTUGX9IwxW28Y545MwbO2NGH1JxiXkMpCD12D7/mfCB9APkIBcpyD1yxowH6GD5GEnJPDpyM5CU5AcryUk2XlL/M33UpAE7SUorYrBEO0RiD0UZxFK6EoenxB1TJPKEKSrii6/MJSwL2cBU8oUp87DlIXCpy2Ky8JMSWuUMN2nMZooQmQNSpRz9eEtFOvOaCoSmYUK5zFFi85v60yZX4qi7Of5xkuBMZ/7EyU0l0lCd8EQfO8kpP3NW853xzKf15inNclJzmGnUp0BfyMsMRpGeeusiHT9ox4E6dEn8jF9C7QlQfD70ojks6CGTmEiLYvSjRYroCd3JUJCalEgiRSQaPXrSloYopRxdKTOdtCmX2nQ3GoKpMkmKgsPQtJU3DepqcqrRGO4UEr5LASqFytTY1HRAtEvC7Xw5UkjMzQot/1hqU7fKmqducwu0cxf83qGOiTZUMyvwnMHcBdSgAkhws+CQhyAnORJ0YazuKGvpKDQa2iQhBzkQgru6kCISGfawiE2sYhfL2MY69rGQjaxkJ0vZyaKospS9LGY3y9nEHqCzoA3tYy+bglDpoGBIUN1Ge1iaLrQgCyUoAQ1QYFcSpeC2KehCF3DL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve5v9WtcaUL3epGtwVeOAHibECC0/SxNDBIgQsi1wEcaAEJSkivetfL3va6973wja9850vf+tr3vvjNr373y9/++ve/AA7wfJFgBSl0oLy2E5IvmRKYooFXBS7QAv/PYhvbgVn4whjOsIY3zGF9xbYDOSiCu1JQpgWHpMF8BW8KIkODHQzgxTCOsYxnTOMa2/jGOM6xjnfM4x77+MdADrKQh0zkIhv5yDveARauEDouyfLEe6XoImyrghbcjGZYzrKWt8zlLnv5y2AOM8iuXDJRDeuuZ+WjvKAsQIVGQlN/wpSc50znOtv5znjOs57tPJVFxVlGx1rzO+LRZgWjxk6ITrSiF83oRjv60ZCOtKTrhCYybcZJWxS0OwjtYK56GkdN0mqmG8bmTn/61BXCdGqmw+AopxnVsI6NqgPdz3r+E664Fk8yp5nrXttn1/6MtbA3991hG3tJxT62snP/lOxlO1tErAZmLVP87GpjKNohCSa1rc1t4jS72+AGzrfDTe7djLvc6HbNudPN7lUj1NXtjjdr1i3veo/6l9metqHtze97z1Lb++63wDGp6XZw2s2+Tvhz5NPqQt9a4RCHC8NLve2BW3ybBYcHvC/OcYyTetAb7/jFsb3pkIt84CQ3uMlP3u+Ua9zhLLc4vWPO7nZG/OaKAbatcc5zuejcrDQXuM17TnSL/NzVRU+60aMp0ZUHPd4zfzq5oy51cFO96ty+OtarrXUiqXHra+w62JUt9iFxwQkLWILa1872ti9B6XAfD9NZpDkPeegFC+CBDPbO9777ve8SYMvYcVj2/xYtQe9/T3ziA//q/THA7ZCPvOSXAAUXOkDyUZBAFByAmMtHPvObx1zhP+ShKCheBhPwgOpVj/jUr94JgA5h6U9P+9rLIPAt9IDtJ4AY3dfeA6J/N8w35wBGREEzE9g754doets73++4Z6Hvac/7w0z/9MC/3NB5cYAaGB/5yhc8Dh2w+vKb//zoPz/sc7/73ts++8gWvjBx4YRGHH9GBEi+DJY/+NFcX/HVZxj/l3jwpySjhyEQYH/gt3/9RxoD+HcBeAAP6HcFWCQHeCGOcHyIoX/814CgMYF9F4EgyHcVSCTbpwszkIEL2IEe6BkjuHci+H7BV2tAlzlcoIIbGP9+LfiB7Wd9Mqh98ldxRZKCCpiDDHhFjedEM/KCqOd+vzeDTTd8mSMDRXgYHNhESShGTBiDTwiENOh0SpKA32eELLiDm7GFTkh7JTgkF2ghpjeGVqiDTAQFS+AAL7BIBCABAbCHfMiHvld9HqKHfdiH+reGzBaEAbck3rcIGhiHRzhETTB9EFB5PEIaWGEYDgCDo7EEe2eIONKGFUIAUECFitCIhnGFRPR/NTADnAEFUfCKsBiLsggFV+EhmdiEosGJMuCJLwKKoRgBe3cIpngAqChEo/h3sAcxTvB8t2dFtxiB4rcZusiLLuKLFuIAPRCMhDCMxWhDs/d3C8AZy/j/fNHHRM+4iZ0IhXTnOlUgATWwd4jHjXKIQ7oIfZyxBIOYj304jEN0jrmYjl4Yhab2OjOwBPonj4+IQ1Twjn5Hia6RhQrkj6ExjepIL8UTAHuHkGVoQw6AeHu3fq4kkaBBkQG5jsKDkTKgkU3EAHooAZV3VhDZj5r4j7tYkQ9zkRm5gmaYGiQZGs0XADbJWsSDkiq5k6chAXsXjqKBlDKglPH3hVIYOzBAlDqJRXNSSVQAAR9ZJTOwATlZkhY5PFP5lY64kUR0lYLkIVRgkPDYBJ9BAGupfz3AimB5k0NJlqeofHGxJYsUABuQjX0Hkpvhl4DJd4JpgIgYk0NClWS4/5dWwkgDKAFV4Bn6B3iaY40hwphliRGKyUbTtwELQIkQMyOVCZoOGZTThJMpuYJG15lsxAWwOQWjAZtcQAWvg5kgoplswYEXQQBcIIvAGZzCOYuuuT83UpyICZUDCTtOsIcOcJyCSItG13zMSI7RmHWJSW7UWZ22V47dhpsYskLIeUAOoI/meZ76yI/WdoJx157acHQO557y2Q3wuZxGeWzsOZ/6GQ31iXD7+Z/N0J9SBqAEegwCOp732VLgmaAYtaAM+lAO+qADFaESqk/5WaAYSgwHWqH4mZ0cOmwXmqEi+gsb+qHCRqEmmk4omqLftKIsek0u+qLNFKMyWkw0Wv+juRSiI7qj2jF3KsWjQMp9PmqXOLpVtaEcYVmkTXWkJqmkQXWjTtpJUBqllTSlVMpIVnqlg4RtlbFzQfqlQupx+NalNailLpWlZppHaJqmd7SmbMpGbvqmYhSncgpGdFqnV3SneOpEerqnTNSnfjpEgBqohOehhCpQg3qoLpSoispCjNqoIqSjYDqprVCikApPj3qpFcRFf6KpmBqEneqpKmqooopNmVqqCCSplLqqqHCgrPqqsWCpFYSWqDocpzoctFqrskOqumqjvNqrOZqYsOoJCAqiv5o+MTIOLXirwJo+zIqJEhCt0jqt1Fqt1hqtpzmrDnCt3HqtSzCZxWr/pMeKI1SAktzpfIHnDYbBlOeaeAFQBeG6pOP6IuzarrannsbJBfZ6ehHQbrdKAIAZAN06sNbqe9SIP803AQQ7sL7nnVM3ry0yA3x3h7BxjBtgQc3nlKkxjg57QwQwAyAbsiI7siQ7A1QQr+IGsSIisXsHIxaLsUlZnBzbRLdorx6Asr9xqywrA7LxshWUsawxs+a4rzVJbIgYSbuwsz27dxf7s0kZtHvXsSw0IzXbrgf7iUfLC0qbGqLjsxSUsTIbtTRLtFfbiyobIltbsUwLs00Jtc2IGPjXQlV7rmVbjWcLImn7Gl47QUC7GkK7rtFqm3JLtq2js3y3tDLQtF/7/7R+K7aHwXd0yUJzy5112yKq6gp56xp7q0B9qxp/ewCQa3mEa7TKKYQvkrmtsbkJ1Lkb67iGEbqDu6+VC213+yGoSxpweYd2dwCqi0CsKxovILiG8bmwK7mje5m1iyG3OxoRwAMbcJq9e0C/CxoRUAM84AQzQrx7F7kjNLnVObshYrgtiyehMY4y0AP8F73787svQLGaMQUL0HcB0AQEoL0ywL0i5L3MCL4gcrmtsLwZcgDmC4/Lp776A7aGQQUSwAM8IAEMIH5QoJV+VwNLYL/4G0L6+3z8+yH+ywp56yEMsAAB8JIbchjmuwGIxwOcd4wQMKtA+wJOwJB8twAfUP8FA+wB8UuCrgu62yu6slu4yXshmesAMiwBLyBB5gsBDAAFgMkDlLe2TtuUESDBiUfF1+shEVCYO1y83Xu8mSO+PGsYL1CvMMh/7DoBbsm7TTyOisu3eyfD5+sEEVCZfDeJiMEF11eOXJy/XoyawaYkW8sFldkDVHx7Csx3aIwYUADHicu2fNfAdEkAbJmUwnsY7ch3etzDsWuzQFy6iXi6hxsFHjkBtVmvMjwBF7zIfdfGnNt3C/DAm7GtS/AZTJnJ9+vDiucBTuCRf7fB1xbEFrKzORy17gsFdLyLF2wYXOCVULy4qAcFMFmJFozL4HiHRJzLnSyQpusiO8t3NcD/eVkCw4jnAbLpGVzAkKy8uowLPAG8GdO8yX4nmIJMgNncpDnSzTIwv+a8ABJQyZ1xi+nsu+vcum/7uppsvH6HvptRrr1cz0lKJDt7xXrbzG7cto17ezeyxxjsdxDABZ2RhxTo0EQK0XxHwuNpwPnTfKC5ACzd0i790jC9APpny8lcQVXrAfgLMYdHgiItlEN4uKARtyXcGSiNPwzAy0S7d7P8uAfdxVE7mXDbiszsyxcCxogb0L6L1PvqnRpNQbYoAzwQBQQA1W95AJFYtMjryTgbGwCcGkWdP7/pBHI913Rd13Y919nKw7cst998GnhH1RbSwa9w1ZzU1RUEm2bS/3k9nZpFQgBTwHf+rBpf3chpacl8V87rCcwVUgXMPAEx/dmg7dJTXUm62ANr/VHMOsBJnXhLzUIzQJuwHduyPdu/yZAay3WabSFkvNrwiL0upNqrzQMe/Z25bSFxfdfIndxzHQFp/Nu8zXcKfZ3O9qy55AQ9cN3Ynd3avd3ZXQMK65anjdrFHWvIKdThRt3Nij3ond7Ws97sXTzu/d7DE9/yHTv0Xd+3Od74naf6vd982t/+/acAHuCCOuAEXqhqfeCUdN8K/pTa/MkNDqcGHuGOOuEUHqnCOqwargquuuEebgqyeuFtxGpkamsirqbyUuJleuIS3jAqDoYsjkUkTv9ofxzjYZfiNG7iNn7jLp7jK77jMo7jPg3kQd7j7vAAAKBv4U3kzppxAIDkSs7kdurkUG6fUl7gH3fkSW7lV47g+KblSv7hYj4KE/cOVe6fY57mllDmYH4Zb6XmcJ4JbN4OZ/7mcX7nlBDiXY7lD77ke97eBfcAD/Djf+7lZj7oMF7oLcTgii4cjN7oKZvgkO7l9jzpI/Tols4bmJ7psrHpnA4bnv7p6mbhoi48oV7qepLheL7qkVCirP7qi0BwWd4O8xDlcOvnqH6IySFtgkEYeILrue4iBBAZs/4XgqEDLXBXhgEvA8XsRWp3aTUEewFM89AANoACaqEC2r7t3N7/7d7+7eAe7uI+7uRe7uZ+7uie7uq+7uze7u7+7vAe7/I+7/Tu7V0xBgXAAbMkESMxBkNQKkMR8AI/8ARf8AZ/8Aif8Aov8ACPEiiQBFjABByAAH3xEWSlAAjQAD+wAzbQ8R7/8SAf8iI/8iRf8iZ/8iif8iq/8izf8i7/8jAf8zI/8zRf8zZ/8yFvAhIPD37BYBzQAAUQ9EI/9ERf9EZ/9Eif9Eq/9Ezf9E7/9FAf9VI/9VRf9VZ/9Vif9Vq/9UbfEUmx7wanFLWuDmRf9mZ/9mif9mq/9mzf9m7/9mePD2lvD+pAD3Bf63Y/9mSf93ff937/94Af+H8v94Jf+IZ/f/hq/xfrUPFgn21i0fiQH/mSP/mUX/n7fvb/RvZ/Qfllv/m0/viWH/qiP/qkX/pkZfamn/qqv/qs3/qu//qwH/uyP/u0X/u2f/u4n/u6v/u83/u+//vAH/zCP/zEX/zGf/zIn/zKv/zM3/zOH/bPH/3SP/3UX/213/PWn/2pHwgAIfkEBQQABgAsYABkALABSAEAB/+ABoKDhIWGhAWHiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLE/tbi5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5LQJ5ejp6qQAAAlPT+vy8/SH7ff47Qgc9f3+5QIKNOCAAMC/gwjReUGhg0UBDgYZJUlIsSI0IEBWkEjCokGhBw8iMtHRoovFkyiFZVzBksCBLi10MHmS4B7IiAK8EEjJs6euA0CDAiXgRQDNiIa8ZBTKtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1bdQWQojQXKV1Btq3bt3D/48qdS7eu3btm0Z5TtNan37+18hrde6gv4MOIVwlOyzdjYr9AH6NaTDjp0ruYM2veXFfyKcpqHXtOGXk0KdCNV5hGWXp1KNSFRbueTZsRbMuqa+veLeh2IcO8g8t7SsDlVt+EgAtfXo64ca3IByln7oyz9evYnUYXNB1T8e/gw4sfT768+fPo06tfz749eE/u48ufT7++/fvmuW430F2SWYwABijggAQWaKCBLB2o4IIMNujggxBGSAQRASZI4IQRZqjhhg9OiCGAHwYYooIeUgiiiSJ6mCJGFh743QHFYbVff5O4YOONOOao44489ujjj0AGKeSQRBZppI8kkCBk/5JHNunkk0AmyeSNU+JY5Y9SKkmlllZK2aWQhHQBA4wynjVYaLlVsoUNAxjh5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6J4D2LAFCWJmRRkAIOGWiRHUVTpNDmCgoMKYVz0a6W+XUZXmIGAgMQIKqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwM46AhJg5FACDig0atWMoU61QhckFKICjCxVa+212Gar7bbcduvtt+CGK+645JZr7rnopqtuceC6BC6137rbrSAwqOCCDl+UAAajnZrJWGyjSrKFICkwlZ9VBw/1HIwvImxcjAY3DF5m5H0Fsf/C2Tk1ccQXQwWxeF19vHDHUZFMVcVBmbwxUyl0cW8OOWzRAltl+VsZqAFbkvHOPPfs8887P+sCGCXYQMIKC0fFbM6PIDEI0FBHLfXUVGdVLxIlDHB00lAtPYmbI1Qt9thkl+3zCG66gHTNeqFp6duywMDpWHJjVZwLaQPB9VNew+13K3WTFTjCQOBthAt6s31man83/g0BhbtJQrNK2+y245hrA7nhiNPsrOWMZy66NZvnvbd2oAM8+urSFBf54YmLmrqkwZxu9u24535d6bDbzlTf0PhuMMLEVyW8UMeTqfvyzA/1OuLJHwA869Qzwzv0iv9Le/XcJ3N97J+3HXr/9+QX833005ev/i/nZ39zcrKtLz8v7csuvurz569L/eEvjr/+AJwF/6SSvgAakBUDrNz9kkKEnRzwgQh8HvgIOLvfNBCCGExFArtWQfgxLYMghI8E0ddB6cQvhCjsxAb5VkLunDCFMPTOCN13uRja8BIrRN0CcXbDHlYih00poA+HuAgg/q6F/HkhEZdYCCMKRYhMjKITgwLFKC5xikCpohWHiEXpIZFGW+TiDO3nv+2FUYpj7J/2eHhGK3ZRi22M4Ru/qMQ43nCOO/SgHZmIxzKy8RLNC6QgB2m2Pq5Rjz8sHiEXychGyuVupqPh+B5huLA58pKYzKRd0Ha4tZHx/5Am/OAiBlACJKhgj9yDytWytjVJ/g8SNtCXC0wSQE3aUiuBExrRjOY5Nb4vlJPYAsy2MMuC4eeYyEymeFqizGY685nQjKY00ROUlrlAmDGb2bLoKEpFkIBoX9iCF6b1HwC1iEPoTKc618nOdrrznRpCUYbOCc96DogtKvDCFvK1ry70K4/AlEQXUICDEmDKVF6AkkIXytCGOvShEI2oRCdKUScNq1jHStbcPlmTfAR0EijAaAkORdKSmvSkKE2pSlfK0pbuyaCZ2lSZ9JIPpICREdBaU5tcytOe+vSnQA2qUFOaqEV1oWAzHUxNQ4nLLqiASajkno2SpAIxDc59S/91YS+v8h17evWrYA2rWMdK1rJ+9UVX5WhWk7hVrk7zrXCNq1znSte6zocl3omeDpXqUa3e8q+ADWzXemkyuDyqr2wVrGIXy1i82Gyta2msZCdL2a/AMap2vCxm27i0ynr2s6BlIUD9GtrSmnaynT2talf719Sy9rWwXaRrY0vb2uJutrbNrW6lhtvd+va32ektcIdLXLsIt7jITS5Zjqvc5joXOtx8rnSn66joUve62BWtHz2Y3e56l7neDS9yD4sP6RBhs+glBHnvYd70une97WCqeOfrXPjalHL0zS9w7Stf/fr3t/wl7X8HnNsAJ5bACKatgSOb4AazFrwOjrD/ZDXr3ihSuMJLhLCENyzYC2N4iB7+cA81zOES25LEJk6xI1Gs4hYPksUujvHyYCzjGpuNxjbOcdVwrOMeQ43HPXuYj20MZOxAIQA9kIGSl8zkJi85AENuMAHEMNoDj40KHnCylrcM5ShLbQZgDrOYm8CFGVBBKGJO8wzIbGapTbnKDBYbA2qw5To3ucvkCIqd97znyvJZBhIQyp8DHbUia4YKdN4yoYMSACVHwbR/jnST/cznRR9g0Lz94nmJkeU6W/oAjZbBo0sr6VLLgNJ7tjSmC61pYkAh1UwJ9ai9XLVVA8XWQDM0ZkLt6Vg7mtZiwzWuf6bruyTZzp+WNbBr/11pQTeb1XCu40+ezehfL3tqwqZ2rq07NQJoG9TWvnbUsg1raG+3v9gud7VFLW6pkRvZmY52N4Wx5GSHu90/e3evzQ1KrTKj3r5mN76Bpm9Fx/vcAp6aBNQNFGWrtrC+LbiWP+2zYtulCjyAt1AcXlooeIAHPPDAIg6AGAIsHNBVOTnFe2Zxu0RB4+ueNWihkPEl8wAKX/FHUFSeciWvnGctt8sC9h1z03aayR54Sqn1ulieU8XpP+a22E7uZHsLHLQEqDmTeaB0SbMW6lIBO7GlLjYoQKDqAZe5Z7PuZK47ZemrFTtU5M5yso+NARLwwNlRvvF7f/boS076dOnuFP/CB83uZRM7x2deiJtT1/BMgXxwEU82xfv9sx4HuQdw/nif95zvUZf38ix/9YFP3fNPR33oEW5l3JFe7aafWqidUJXZH7zfbGXG62m7mgPM4NgOoMrvlRx8fv/S38vYfWwlI5QmhLoGL5iK85UM/dsfv/W3e72IP0EFCUhgAR9fMu2d0v3vh1/J4zc+mkbv84XJevuemIGWF3A6+TuZ/lMLOme0Tw/s2n/JGxAFtvN/SrYBTsB0nKF/m8F/w4Fd5ecEUcB5UfGAETg2CqgZDLgOsYcZF5gZGbgO3mZqkbaBQUR5pieCI0iCT2SCA4eCf6aCKyhv8JdZ3DSDcdSBMJj/gyUogzZ4RiHWgyH0g0CYQTiog0boRaJ3hEo4FkW4hCrYhE64gVAYhaYnhEMIQVNIhfiWhVooblZ4hQfEhV24bGI4hrRWhmYYZWiYhj62hmyoY274hkTGgnLYhTOyaWDIRHeYhxZGh3VIhXH4hy4WiIKoYoRYiCZ2iIjIYYq4iBLWiI7oYF/Ih/oDiZGYYJZ4iQSWiZr4X5zYifr1iaBIX6I4iuJViqb4XX6YigOHiqyIXa74itQVi7IoXbRYi/W1irgIbLe4i8nVi75YXJNIifMDjME4XMZ4jAD2RcSYYczYjCCmi8rYY8k4jbo1jNBYPtiYjd1TjdZoW2/GenH2/43XFo64N47kyIvS2GMIuIjbeENs6I1cwY3lII/p+Fr2aDf3GFi0mHkuuGUhBwXjUAUSkGj/KAM1IAFVkDJGGIs0d5B25niKRXUQqXpHGIuAV5FMlmcGqZE14ISxWHNLoGYkWZIkuQRK5naCtWRlZpIuCWZNsGQguY6asWQzMBYheGqKZZNeIZOn5QDeF5RCOZRE6X3FRzWxyJNj4ZMrqWQ32RVMWVoUKYI/N3Y8yAuX5pRkEZWApZRcwZWgNZWmVpUVV4O9kJUy8JRiAZa35JVbwZaeJZalRpZ1l4RQ45ZgAZeahJdZoZeUJZeSRpdAR5OZwZc9qWSLZZhX4ZeTBf+YkSaYh2eXBKeVS4mYO0mZX2mZQCF5f+WYw6Z+kzRtmBkWjLlIz6GYVhGVnHlLnvltoAkw7jaaeamZgYWaVaGaFtlYrclw1rd+4yabX1GajmSbVIGboCdZuwlz+UeYmEGcUFEFURAF0edsOtmUaXkVUOAEEoiWQrGatpScRLeckplvwEkVLxBqATCdt0abXVmeTlEFTpCSTrCQ3LlzuclY4GlwO2aWWOmcTXGeTJaeesaef+WWDqCdTcEAGekBDFCfm3mfTXeQkJkx7ygKaKmWQTEDDfoUWOZkHnBmDlqblHlkT3aUS9CRS1YDKEmb3qlJ+TlxYpOUSuYHTBEFGbf/AE0QMB2qZAswdEr2oSHanmnJBT7aZB6wBEUqAziapMY5oS4qoTHKnHexZDQKFH6QpDUQAZ4zA0e3AFVQBUXqAVMgnI20ZAugdTIwAVvWAxEQFBFwbE1aWS+Kdvs5nj6jlGanZQHQBL6npjz6MEXqp9Upok02AcFHoki3oUGhoEzWnRA6kVBap+KIXz1jk/AZoE4Apz3gBIIqASMjlonJZBAQAQuDqPP5nvHJoo8qWJ7JA4xwnL2ZGrEpAx9wdDxwgAfAALzGZD83laGKkKfqFAzAp1ERp39ZZxsABVCwAeEZq7D5mwi5ZBCwnQcQAR1JlhT5q4r6lqoKq/i5ZR5A/6xNoAjeunrnSKk8c39T4BRN4KPp1xTGkaqDKqQYqhXG2pjz9wKFwKSrWpZ2Wqk2B3tMoay3SaBt6Z6p2a1Omkli+a5CIa8AJ6nn2lYAm6ZcUJnzWqBKRqxbQQVL9hwtyrBM1gNLwBSGAKflum3/mq4bSxzcmrG3hKIQ+ZH2mbKsKq3Uqgh7Z7P+OqkUy7Jp2Y7FarDfqZER+6A8C1gn5wH1+hSEkLSDubI745+LSbSaRJAyK4IJSZ9Iu7CYtHBeSglQG5k+O6tNe5gw+1sh+7UOaxVO4LXWIaPXibHKtbaXBKIdG6VSmzEiGRYusaIqWVzu+oRSahcZabSBl1xccP9sJUuCDommiCsDEtmYRVm5lvt9x7YBeBt7/Xh+RhuQnhW5xAeDvSi0HgNakbsBR+m4hetll/u6Q+kES7C5rLu3+ziHtnu7MpaPultavNu7oPW7wOtZwju8lFW8xjthrZu8A4a8zLtYzvu8Hba80ptf0Vu9rUW92HuK2ru9qpi73ouJ3Ru+sMif9IhCBEAEV3m+IZS+4Eu+zftYsgq/iSi/z0q/jGi/uIG/JfYo88u/j6i/OAPAG+a/90vADWbA+4vAkvhY+bAX6MjA8UtTD5xwEjzBfIUPEIyuF0yKDqzBFtzBofjB97DB88a+AGRfJozCKKTC3IGHLEyEJNwOEAz/wzGMheMrwvuVwzrsW/CVHDZ8w2E4w0AsxDL8vj08XdebxLezxExcNk78xBbIw1KsYFRcxbAVxVgsnmW7xd/bxV6cXVocxirrs0aMw+t7xik8w+4QwmT8XCr8BDnBwW/8i2wsCDlhunWsWygwEx1VXgYwEiUBL9fCLvFCAOqSyN1iyIrcyI78yJAsLoy8yIh8yJEcLpO8LpV8ydySyWbhEtCiAwXQbw3AAklwNAUyIgeiymbFIKzcyrAcy/EkT6tMywbyymOFy7MMy7isERzRAB2VAH/cDhxQACygAyjgBcq8zMzczM78zNAczdI8zdRczdZ8zdiczdq8zdzczd78+c3gHM7iPM7k7MwM4RAQQcPBXBP70AAFIADwHM/yPM/0XM/2fM/4nM/6vM/83M/+/M8AHdACPdAEXdAGfdAIndAKbc8CQRA15Q5//A7wMNEUXdEWfdEYndEavdEc3dEe/dEgHdIiPdIkXdImfdIondIqvdIsrdHD/NAaLMwyPdM0XdM2fdM4ndM6vdM83dM+/dNAHdRCPdREXdRGfdRIndQ0TRNKbdRMTdMwHdVSPdVUXdVWfdVYndVavdVc3dVe/dVgHdZiPdZkXdZRrQAKINVobdZs3dZu/dZwHddyPdd0PdbCXNd4ndd6vdd83dd+/ddvfdeArdWBAAA7\"\n  }, props)), Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-r\",\n    alt: \"\",\n    src: \"data:image/svg+xml,%3Csvg fill='none' height='240' viewBox='0 0 312 240' width='312' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 0h312v240h-312z' fill='%2300a0d2'/%3E%3Crect fill='%231e1e1e' height='21.3714' rx='2' width='21.3714' x='61' y='30'/%3E%3Cpath d='m71.75 35v11m-5.75-5.75h11' stroke='%23fff' stroke-width='1.5'/%3E%3Crect fill='%23fff' height='154' rx='2' width='210' x='51' y='57'/%3E%3Cg stroke-width='1.5'%3E%3Cpath d='m217 167v11l5-4.125 5 4.125v-11h-5z' fill='%23000' stroke='%23000'/%3E%3Cpath d='m165 169v11c0 1.105-.894 2-1.999 2-3.104 0-9.127 0-13.001 0' stroke='%23000'/%3E%3Crect height='13.5' rx='.875' stroke='%23000' width='13.5' x='147.75' y='164.75'/%3E%3Cpath d='m148 175 3.714-2 2.786 1.333 3.25-2.333 3.25 2.333' stroke='%23000' stroke-linejoin='round'/%3E%3Crect height='16.5' rx='1.25' stroke='%23000' width='16.5' x='82.75' y='164.75'/%3E%3Cpath d='m83 177 4.5714-3.333 3.4286 2.222 4-3.889 4 3.889' stroke='%23000' stroke-linejoin='round'/%3E%3C/g%3E%3Cpath clip-rule='evenodd' d='m164 117.5h-16v-1.5h16z' fill='%23000' fill-rule='evenodd'/%3E%3Cpath clip-rule='evenodd' d='m164 124.5h-8v-1.5h8z' fill='%23000' fill-rule='evenodd'/%3E%3Cpath clip-rule='evenodd' d='m164 132h-16v-1.5h16z' fill='%23000' fill-rule='evenodd'/%3E%3Ccircle cx='150' cy='124' fill='%23000' r='2'/%3E%3Cpath d='m223 116h6v6h-6z' fill='%23000'/%3E%3Cpath d='m214 116h6v6h-6z' fill='%23000'/%3E%3Cpath d='m229 116v9.999c0 3.199-2.5 2.998-4 2.999' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m220 116v9.999c0 3.199-2.5 2.998-4 2.999' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m93.9167 131v-15.111' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m89.4722 131v-15.111' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m97.3333 115.75h-8.8889' stroke='%23000' stroke-width='1.5'/%3E%3Cpath d='m88.1389 119.889v4.071c-1.9278-.353-3.3889-2.041-3.3889-4.071s1.4611-3.718 3.3889-4.071z' fill='%23000' stroke='%23000' stroke-width='1.5'/%3E%3Crect height='25' rx='3.5' stroke='%23007ca8' width='189' x='61.5' y='67.5'/%3E%3C/svg%3E\"\n  }, props)));\n};\nvar images_DocumentationImage = function DocumentationImage(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-np\",\n    alt: \"\",\n    src: \"data:image/gif;base64,R0lGODlhcALgAfYBAACg0h8fH93d3R0dHdzc3B4eHuvr6+Hh4fb29ujo6P///+Xl5f39/f/+//n5+ePj4+7u7iAdHgqcyh8bGh8cHR8dGyAcGwCg0CMbGSAeHCUcGvLy8gedzAOf0ACg1AUnMghPZyQbHACi1BwcHCoZGAGf0gCf1MPDwysrKxmJrnV1dTk5ORmWwAgmMAo6TAUtPBUhJgCh1hOZwxmXvgCi1heXwNTU1EpKSllZWYODg2dnZ7W1taamppWVlcvLyyYbGh0fIAGf0ASezgOe0h0fHhweHQ+axgCj2BeXvheCpiZofhmQtjKTsub////9/en//wKg1Em11/3////+/cPz/6n5//P//9L//8b//+H//0mSq7n1/0Kfvtj//zKmzBWeyzyt0iefxiCbwSMbFzOw2v/9+/n//1uuyf/8/RqYv1K93bnq+dD5/8z3///7+QCWxhukz1S+4Ge1z1HI8Amm2dL6/2HE5HnC2R6w363j9ZHR5qHb7nbT8Zzp/3bT7wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0MzUyLCAyMDIwLzAxLzMwLTE1OjUwOjM4ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMSAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2OTFFQjQ2QTg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2OTFFQjQ2Qjg3RTQxMUVBODRBODkxOUNBOEEwNEI0RiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjY5MUVCNDY4ODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjY5MUVCNDY5ODdFNDExRUE4NEE4OTE5Q0E4QTA0QjRGIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQQAAQAsAAAAAHAC4AEAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++/Pbr778AByzwwAQXbPDBCCes8MIMN+zwwxBHLPHEFFds8Y3FGGes8cYcd+zxxyCHLPLIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPPfs889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZ6311lx37fXXYIct9thkl2322WinrfbabLft9ttwxy333HTXbffdeOet99589+3334AHLvjghBceXyAAIfkEBQQAAAAsYAA4ACgAYAAAB/+AAIKDgiYmhIiJiouJHh6GjJGSghcAjjExjoIlnCWTnwAXnEISEkKcAJ2eoJMdb0kgIElvHauQrJIlHDNKSjMcQ7aHuIqQJh4sLi4sj8STkI4sHx8zmasXlc6LHjQzHy1LHtqg3DMt4OLjk+Xn4err3e3p74zs6PSR9u742/H3/Ir0zQNISCDBRv72HRxkcCHDhAMXNnRoCSJFQRMdZpRo8eLGgx8JhgQ4kl9JfCfppXy3Ul3LcS+1eThi7h/FmM5wEtOJiycrn+Q63hSqkSjHmgqLIo0I0mjTpRcrQvXoVGRVkldNZkW5VWVXll9dhoU5VmbZnGd3pu259mfboFNoh8ZVKi8q0E934c09Wpfq3qd95cq7xRcdYcCGhxUOd9jq0sZYHytGzHiy48GWI2MWnJhzZc+PMmuVDBry6BYwPmuMIePFC9UahdSoweGno9uOTCPSZBt3btFRgwsfThDVQuOEkBcvEQgAIfkEBQQAAgAsYAA4ACoAZAAAB/+AAoICJSWCAACDiouMghcXjY2FiB6VlpeYmR6RjImIAB4xMTSkpaanpjGVJpyHiB0cAjIsLDO2t7i5tyw1RkKtrhwySS4vH8fIycrJLy5JRsACoEZJLzARGCEaGiHaGBoY4eDg3xgFMC9JEh2NiAKhNSAt1xERGRn1Fff7+v0VFQWAtADBQkK7RAJiCHgRoYDDAgMcDoj48CHFiQUooGMCLZoADA0hVrwosWTJjR2BfcAAECLFiiYtRhyALkXKVisBkhT5cudDlB4/aMhgUaZLmCIdAo0mlOjLkUh7nnvBMSgGolGz9qRJ9SanlU5hzsT4FOPUqkyHInUptSjEpSr/h0r1CVUkXJxq1/KcaHbs3a95k7YtSbKm10hNBYvV+/OFzaAaKsyMytctxr+IryZdW7Yo5kaJR16cTPkzo5xuKUs0e/YwaM2VCZM+erkrZKybV6c+aTttWKMwAyw2vQj15s6xKxNXBFa00dlJlw9qzrgsSa5oVWoGDj2qdEE5n+rdare39gxj+dLNjd316avine9ubRW96tXXIxq+zVlxbqWOuVccS6R1t953AjQ1GE+iXYRgYvGt55l5eEn2n0k7UfRgZKOxtlhfG+JW3WwaUgiYiIzFNNOGLVWnG2sPsjQfYVnFiFt3DArWHmQ67TYXTCHGtthRwQWZ44VFTcSi/2XxsVXRfmlZGKFYo031GFPwyTbfZPoFeFtf6vXnoJdYYrVgVo1lV+GQKa5mY10e6hYdmedVFqeY9EXZ33hP0onTdpQ1+RKUcYkI5p5dqvlVlgXWheGOvlHJHoYAKppZi/7F+VSILx55XJoCMidXTEgKGaOFVPalpZWhThdYlUj2eWWdctLoYYmWgjYqjVCRdRSheJnZlq/OcRqoZZsBC1hL+fGK1JtNTkqasZ+uSiS1zmUIo4mI7fqcerBCWqiqHQIHqiFxMUuqoKDyh2aSciqbGYpypqcjtpNmWmlKJrCiq1PiLbipef12C/CtveqGL3RcXuvnskPCupa8oP2QwWg//dyDsT4a7+MxggKQ8EM524xT8snbhPONBiC3sMzLMB/zwgtLGASMMLrkrPMtvUjwCzChoCL00KWIsolHmiSt9CoeNe3001BHLfXUnLhDdSRBBBGJ1VczknXXYIct9tgCPEJ2NI8EAgAh+QQFBAACACxkADgAJAFkAAAH/4AlJQCEhYaHiImKi4yNjo+QkZKTk4KUl5iZmpSWAB6foKGio6SlpqeoqaqrrK2urJ2bsrO0mR4xMTS6u7y9vr/AwcLDxMXGx8jJxDEmtc7P0IgdHALVAjPY2drb3N3e3+Dh4uPk5ebn4TVGHB3R7u+a1EkuLx/29/j5+vv8/f7/AAMKHEiwIEAXSWpwgMewoSMPRpK8gBEBQwgNGkJo3MixY0eMGjVgEIlhpEmRHE2WFEkS5UaVJ0uGhMly5cmUJGNavEhTZcaOPVv6HImz5EiMLJMK1QDjRRIjzRxKnQogRg0BLShGiJAhw9avYClEEDt2K9muWyt0Xau2rVeza/+7uq1A9yuFuBnmpsU7l27et2P5/q2wN25fsIEND6bb1q9dwXLZ/mVbBIaLGjE8UN0ML4aAFxEKiC4wQHTp0aZTq1Y94DRq0rBNu0Z9urXs16tt465d2rXu175nj65NWzhr3a15474du3fyAhk+LMnMuTo0GjM+hAi9vLv37+BTG1/dnDzx8rtZk0+/fHzs7u5/08YdIcSHFFGt65+F/YOGDOEFqJ6A88FnoHfCubfeewSC1xuB4wlX3337VShLf/8h2GCB8R1o3HnDsYfegCGOCOKGDCoInIMTpmDhi5hgCCCKNJZY4IrmLXiijSWqyONuzoWnnHw38tgijEhKImP/jT8aGKGIT2qII4NUVinifEQ6SNqHU7pWEYVJhtnIkjXG96CVaH7H5YK5NRklchA2iSCIZ452pJh4JkImk/D5ONyJdR7XZ44c+vjbbOfBKadyaNom3515RkrInmoWaaWfjc7Jo3yIAvljp1AmF2iWWz6HqW9fuiippJSCWqmazx3Y3qazXkrrlep1iKKu7JXW4iCr5knpq8SiFkCAovrJW5bJWrrsjm2mKN6UOAbaI332pQBssGIOGyeNdF4Zboi+9RrtuWy2J+q0c8Yq4K/c4uktuLIWSSqJ6eZLJaawGVrAscXCBjC1BcIbb5gYVsBnmrjam6+7xYEa4aFSsmmt/6XsYvzeAAYfjGR/GADIr7Jy1mpyww5bnDLDK19snqusdezxi/OWjLLK+Mqa4LXm6ntynQru7DO0FGS77cwW1qzpzz3eG5zGD/8ppGzl3jguzDbuaKjMSO+n9L1VBp2m0O5qLaDTf/IKdnrMatld0fcd3bV+Sn9LaL86C211vQHrWDGgC8PM9dzVzWvcwLiuDfWnuAWAeNY+lwkcrwsOrPdwgxO+GcgzSnk535ITyqm9Vb/2uJWnnw06z6/Bra3mXmcXcsVjp0vkeIhf7rKxjwO+Jb6MFte43SyflqrcsFPFOZP8Sss6sg2fSerIDY5K+77eZZ68Q8ufPLXNN9fqL/+dlItdMrTeN52xr0ZvX7jsGTQvrvAbYp2+4gtDL7X+LNuJQdzu4wzn1qQl+cXpWegDX990RjB1UQxLzhLN8QK4mSNkJ0ML/J4CN8a/v6WtdFQrWwO7pKISzkp7FHSHBf3TuQg2MDgfEuHiXsac/NVPhjbT3bnYB8AUSmWFGBzh9XrGJ4kRrHy2IpfblgjBvfmvhz5sSN3Cd8T56ZCKo9MgEyFnNiKGx3XIi2I0pji++XUQhCbsFwGrtbsuvnBxicINGMUoxQu2sIgJdFuQ1rRGNz0PcthLYvAiVy0Jto+O8Kjb5zwnGsc5znt5zGPEZkUyJCYIWjvDFAoRyZ8LKsz/hoEc3aly9CTKuVCPEPNU2kJXgE1ychNT7J+gkNPHW1VvRcsCJaxk+byq2WaCrxyjHel1KRDyrHTPGqIQOXTLLXYQXcAM5jNiybz9XdJ5q0yfiYS0OyWCTnFrBJErpXkJMtarlChAQTepqEBFrc52UXvniBA0TnJOYk8G5CNsUNADHqBgf+IjXjy1Cc+wacyU35mjPWuRsAwWkDQo2MEJ/tlLgMrTj5lK4CC5CLVSlst4/3vdQmkhIwMSyzXprGJzjGlNJ6WROA9iad9IVjtDQnGksLSjTM2IN28aVHiLZCQv36S26200U8NRKE5zykIswnFjH61UUd951IGizFT1/2NYNJeaiYaqrpDznBwHccnL3xFUXTX95htJSL96cpUR1FTpulJjOSUaqqq7VKZZm0VWxlmvnQIbjVLfWk6dShKbDINY8PzFUyg9NWqpVBnYgmQsOx2SsIVtajO5iVZ35uyUxTMrJAM3w/W4yq2YRURcVTmA3MnPZQgc1FdvWMRdsetBqYJCajMbxGrSlZmUlNahpudMbq7zhVE6aXsGu1tIDIumAc2qLou7QbF+tXkqglRzI7Hai5qUgc3Enxane13Lgmm73B2mXq07Xs6WNbqE3OlFbSs87aLXETX7roP0Cz6Titd+6Couv+x7X7iqF8CfLVM+zQRegYYVscAN3/9sCFxgRXSXlfO14bgACVa19o+4HKJwhVUru0+ud7b0XVog0/pgDnvRZPrMkYhHbIgLk/fFfktZHFv8XsdSC8HdSRWNx6ReWZpPunrEKH+PjB7sQvdyqEVvSc+KZCS3UblXxTHTkEpI1ER5uzZOXHXJRuWJwVfDkdupj77cXGrqF8DffZNDtXlYZZJNcJcdMok1C0r+LtDP8oQuM0dJIDbvVpEnzt8Vu3nFzWJyicbkFwVCGkY9A+BrfdalEU1IZkE6GmdbZpChU2vOG5/PiR4yLXuhGuoE8y3Syxk1Zpc3yuQ2WX87RiPjCKrmP/e3UGTlWJ4tXQh87pq6MMbYVE//zWFXLXKQyfWlWB1lGlkTNr8exjWqx5pJVf9ayQP66xlVuRprv3XKESbtT22nNWmvVMmpRODnbH0cUwENTswl9qUNuz5FvyqcLaV2qWJlxGyysYn6gpkIYdsac3PVq3UWc48R5U5dZbHDzgMyt293N/G4W9g31fe++azouVbymRalN2gl++8c2zVFxHH4Urvn24u7GNwQlrNQE9dp7OZKtJPLN7Gfq+3+BlW+AL1mWAsuutuuTMfkHvik42aC/Oh7SeIlZrM/pVj6hTvAUe1SsjOuN0H/quoin9Qw58q/GEeyZRXteKlI9+xbw0rhnmsNGAWB9qsXOWNozfjP+0Tx/6+/G+fK5nUoVVooghvneHy3up69+kdIO1R3cHYSfHseMJZueK9YtSl+0l7s7PwgL35RS2RUj5fWR8b1sGf9ZGavmNernjG3f33sZY97yUyGMbVvPetzH3zU+2X1xte9XCyggRaMnvT7bgEJfnASjBwFKdjPPlKun/3qc9/62re+T7D/ffDnhPza/375za+U8Ke/++9nP/yvv5Ltj+QHJHB+pfXsmRe0wCAAGIACOIAEWIAC2AIvIFI0VnV9RwgeQA3oEIESOIEUWIEWWIEKIXn3ZQK4gAufgHa3oAwiOIIkWIImeIIl6IEaiF4c2IEfGBWvEIMyOIM0WIM2eIOEcEMBF0ALOtiDPZg8DLiC0CcmfaeDPOiDPziESogJRriETpgkTfiEUlghnRCFU3iFUlGFO4iFXNiFXviFYBiGYjiGXhgIACH5BAUEAAIALGQAOAAlAWAAAAf/gAKCg4SFhoeIiYqLjI2Oj5CRkgIAAJOXmJmam5ydnp+gnh6jpKWmp6ipqqusra6vrCahs7S1to80ubq7vL2+v8DBwsPExcIxMR63y8zNnzPQ0dLT1NXW19jZ2tvc2TUyEkKyzuTl5okf6err7O3u7/Dx8vP09fIvIEsSMeOQGBoYAgIEiAFSiIMh/gX8N0ghwoQEGQqS+OihQoENB2o4KIjgIIIaIm0MMXDhQEUFC/3TwBLkyosCW0aU2fLlSposY9ZUmDPnS5kma5bECZQnTZ0gNQL5AILFkBKRKGSYOrVCBqsVIEXYKpXqVUIVKmyN0JVq1kFnH40tWxWs1Qxb/99OJXQ1baOpWwV5xfpVkN0MhrzWHXxVsGC+cg3vrZu4cNXCfKvKDSs5LOXLiRErfvy28dQCMD4oMSKk0YACBQacRl0gE2rVrGOvhp16dezUrwdAyn37de7ZtmW/xtQbt/HWgpAPOl6cdvHjwJs7rz0bOmvbp7NPD36bO27V25kbtx0hQwsQNThEqi7c+/PnupP3Ds6evu/xze+zP3eoumpD2d13nX7YuScebeDRt52BBUoXHWzgDSigeNShVsF5M0jAiIEUdvjefO8x+CF3HFIYH3+CxOdfeyxGeJ12+DlHonUg8majhNcFYKJsAeJY43zmgZDhJCU+6J6IOx74I/97+nV3H4qFuPhdIbxJSd10BCYIYnTwvfjijN8Jx+J4VkpYXwFBDjmRaTB++J13cOY3IZNmyikmnFBGmWKYYppZpm89ehiom3S2mJ+U2PH4G5g2Xiikhp4ox8iPOB454pJOZprnnoBeNwiDAYYKoZshrkgnglWS2iWNHTJ5WpqQfjpgicP1Z6OlqvZZ6aqsSrjpcqmlCJ4hStZ2pY9kztfmb3UaWyGZMA5qorSX+uaomo9wWeqJRZ4KLIHwnZoplrX+SghycsoIoagVkltnqHxOqKx2qEpLIrWKGmsbrIiAeiKxmRLKq7I+hoess8z9m2ecTULr7JmUztpwnwyLSuv/tgfziV2QacT6aSKzZdvpwAHbVyOuCcu5aaLN6jqvvF+ibB29pxZa8cPixpnoANd6XEF2bHrI459Duzvunwma7CeC5n4sgMKczmgywwjfqfTJXo4sY66BKj0ov2v2C8mMOt558NQFA3tzr6s1/fSRaEc8Kr5Tx73q1liOGqOCW97IGtj92mznmLoajZ/LAQ9unNtRdtr1lyNH3t2yhSZsNGwBVO6l4YYKKHXPGxIMdb+IFwwz5C+3PLSvv/oHYIg3Ihh33k7aK3e8rhbpp4OsgQ7g6IowevHpxAud8ukm/wro3MpNbvfq8Co+673Q0Y5sfQ3KLLvvANpavOcws3wx/8u7tgq+pG7X97rzt4aJasYLzjx3j/YNarGiettfe2qAc3I5cEiqGocGmLVqRah1nfMXolBXtCZxrmwaI1yyrEQ02WlpfwXgXraYFqX7Aa9xt9pasUh1OS+NbXLPOaG+4sU2OFHvYarSltWYVzgAWupx1/sbhmKFgQqcL4fB+pS7/iOAxJGsV6VTmSZyxcTz/Yt+qUJesiRmsONBDHcXFJ37BBdD7qVEiMIyYvRgODzFeScAEKTY95o4ojPqyREFJCDyViS5afnNZetC2tGOJa8B6Ihc60LTDh1BxOCRr4LFSeMPpzinfHWobJ2gnGn8piLcWa2AjlwWCsVFPMHJMP+Q0QokxULVv8ClSIiO3F8VGcmoIBbxPWgc1yXLtZsoxtBWuQvfFrm2QBZWr2q6bFj2IAa3u/XPh31TlqzuSEI2BlM2yxkiakLBN/SJbHbVkuWb1ig98sUoiXWcVzFL2aZK8kpBmEASrU70y8G1LZ2xcQ1rviXCVm6SiwXInC8rZ5s/anJiAjxcH3E1gFISaRGn4RQbx0cwZzqUay+SRITKeajNZbF821Tdm1woHbPJDV6c1I9BvRc9hWHPeCWL5gV151DsrKeXnkIosfD2r/aVr1vvIxqzGuk+Vk1Uf6Cyom9GasgxFQh7whJhxiJmp6N6c3GacM/Ygrc51VEthC7/Cg8UwYRDKSJMdh61niAfBRb9yIpbi7Dm04DZ0nxx7qEt3RktERpPKjWyXsXzj7beWjS9Rm5nfMVfBMUEKxoQwqWHxZRbN5o4fBWuj0ZMW3IycaRJrHCRXnuNPgerPW2m7KQCRR1er2hF2hg0qK58W94Qi4jegNCr4QKnmIiULrVSNWs2E99CuwNBjp4tgeHSG7RcqFvYjJQ+b0wEzmKq0O689mona24nn6TCOg6LkBCFnS87qk8KUiuLD8oRJuFXMc3pkKxosSFXP5TY5dHINrKSj0bNV7KBSmKptD1ce9uXWYEdzrwp+6MD/9tVo+psNQIm6ob+16QArGAFinSs/xyHV8HlLFGM04zqTfcoXLE2qKOSk2Fsw4dX63quoIMMmr0YsYId+IAHPPDBDlaQ0MOurVzz+VYSSUTNgzbieP/FWsHA2kkAVrXANQMxY+8FuC8+jaqrxQ0hcOCDG1znBj7AQbGgG0PnJkenzF2Y2OipVBh2c5eW7DAUF7lCx26pnrFR8FrviNYwnmgFPlgBClZwgxvwmQEbWIErazpc7Rpau+9k3CnnLFrL2VKY61SsxMwk4ENXNaMcOm1b6cWaHSggATroQQMaoIIbKMABO3jWThkYWYGOL2Ri7k8YBxpBCxZaiiI2o/i4jFvP9pScUzLl+iAUgBPY4AE6OoECbv8wgB0YwAeVXmmX2/i9RCs6rUdmLAaNB1NTHdWSH+Vjfd3LGzkzemodJMQKeJADBeBgACpQAA8KkIMT8EDQqXIzU+WoxE98ELt4vGpk5cpWFOa7S2oWrq8BS+DVmPvJdMXfulfAgHn3QAEQCEAPcnDvDqr6iPvu5J6g9O9Fv1Lh6tKXbs2czWqeE4e8Njh4e5diATg5sSgzULELcAIEoOAEPlCADmzw88zxrcyLbY50tWltxiksdg0dt29fWOBnYvqx71r1dE6LSuksPTg7uIEOFNADHsTbBmHnwROdJV+UhjW71zbpfmNIwVaHc0kgNd2GaQg/MWnQaYcFuHFWcAL/FCCAATgwvNBPsIK2e/mV45YeuJTeuq4TClEfPiTc5gdTyLoayLtdnXHkXPLWOg0HQF+AjnjAgBPgYLKyPhfdQT7ilQ0b5w5rF6TH67hSyTa0rCkbHQU1Pfr8HWS1AyR3WnwAGKOdxuwUY64vX61InoPv79P6GDvqWydWFLdV7KySmgx4kBWSdAFyMIRFv/RWx5xtGb72MnP4QvARuX5CW3MAd61G5nm4T8eEcKklXcNXIlHzVHj0e+YUa4S0dpO3Re93YPmzZdkEZPaESfhXG+RHJNJWYvIzYReVSv4VIk73QXGkeScILjDnclojQQG1U2XUU7hBep61VefiHOb3/2VO821MpSm1UHoSBXApR21XhXKGlj3bxIJSo3AE9hwPtwl6B1dSuFRmNQtA2FyBpS7rhXT6RzfC5F6d12bkNlHkRiHA9l0LdoXzN4Ix+IAkZC5lxEl81x5KVU1gRlHulHd6hIAxg2LoBTIbki2vRX1uZ0CzJX82BijyYYeP1kSgZUdIVH87Rl/Td0yTVClqCHm/R4WFaHA5lidDdmNl8lP7FHXZNUV152hVQjk/xB1P2D235WumSG1KFnkkyB9SE2yMxm3zUzrxozlI+Gai131qdCCJcnwE2Ef+M4VM5CrjhkChRU8ytyg9qGQ3RClDyEurtF218XdXmImCB1DWaP+LjUVdoIhcJvcsdThp3nR/LqgxnEZCmAeDmDhDp4GMc0d7bRiFiNNKxNQw5PCNlIR1HwaPnEg4mSU8HvhVE8hKUoSP6zNXsBaL0JSPLXNjzsRaKDJo/QGC0wM9YKggBMVS4fV5DDSHjgaRUENhFYl8LadjnMiHxbQyNkWNtZV/eCiAfLgo9oSCu0KKKdcjyAiOijCA2vFjMtOD0gRVTqdKzdQ5o9Ry5JWBeIg3H8dvxQeRoUNQjxdxTymLPoiIeyIiq5WNIbVcQdlQ5VRS8cNTJwZ+KmcbGoRM8/WJpGNpeNmJjhh/K5ONy7NVVveXBoNyBLR9s1RwHpWA+1JzKVH/ehMpMtzkjzhmRrJFlJRVVF0WjyzEcDwoc0mTTIZTkKMYYtv2GvhomWtIWpuod9FHeZoIMTSJaCMpg0AUgr1XbUr5gtz4gO2olV4Jlk8ZUiTpeRjYklBShct0RUAVVCCFT7E1WnPyiM3YMr5JSMqlTugGcTW2i5Goj8YZjrFDkU33NiSTR3xlJFzITEyoRxhkZDTETw5Xc1CWjwJnVUBEhwnoTjcVhOTJTD6lUDACe80jjsBISdESl4ipVbTJi5ppYvnyiuUHQpL5nTdoUl1ZRBM6MOMZPB5Hd+21nhZVjV+4iiPqiUwnoqMFSFQIHhDqks2Sa+e3hPFRg7sXTJ+5/x7uNzlJlX0AlYFCZXf0KE4aSkdZVYwZ9S5c8iryKWy3pV5A+FXLA0YnBxtf9pk/ulP3lVdPZGNIuIRCJkqJeVfPpE5ACpdas5NAsqR3mSALxpeBg0XVATB144s8BU+1kVQLBx9rGERJZooFKlhrxlODaUAMB4aGGhvVyZ1C5lVLmUwjBlu3Y1s4CnwHEniaKHpCxS6q2DX/VCW9VYb0E5oHJzoAlkFqKk9ceWmxAzQQh6FuGaZfCo7qEzR8WmOm8k1mg6a7E0JhlYu3+VtG6owj8nBFEpG3ojaHtKe3+VQ5VY5MCUcOCKnSeXlF6oGA1Yb+t1tRRnD8iGkDQAREYP8hp/pcFYVN3Lh5fvmCyvmMkzoelvp/GAZ/00pc/BVkUzlenHagxEdFC0IERXCP47pfrBqR7Rhcolly/TVQV0OUlNpAkgWgqYmNgyWMe6V8ORVYjmOVu0OGuoeoAQuIj5Crqkgdi4icujlfDENZEnmhraoujiduZwKYzVhe4nhPRFiK9pgfidqfRwMw7Bg1NalqZcYgMGmSlyA8sXqILztkUVRStnSNASWcgvV5w/ScaOaH2OIImGEYdiEAnsG1kGEWmWEIZ1G2lOEYXyu2e2EZZoEJnVG2buEWZ+sYg7AZk+EYh5G2h2EWXHu2kRG2i4G3fpu2jYEZbLu3gWu4b5vtASHwsRMhFElBFEHRE5KbE4TAE18EuZU7E5rbuRrhCTdhuSrhuUQRuU5WFBERupirEayrEToxuTshFCZxExfhukABuaFru7drE6grEBfxAyQAA38olsTrNvZwvMibvMq7vPLQAviQHsUbvW7TDdRbvdZ7vdjrDRLAAR0gvd6bJ8YQvuI7vuRbvsOQDMrwveqLIrDQvu77vvAbv6xQCfRbv/Z7v/ibv/q7v/zbv/77vwAcwAI8wARcwAZ8wAicwAq8wAzcwA78wBAcwRI8wRRcwRZ8wRicwRq8wRzcwR78wSAcwiI8wiRcwiZ8wYEAACH5BAUEAAAALGAAMACoAWgAAAf/gACCgyUlg4eIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+WhaCjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXWsiYm19vc3YsXF9PZ3uTloB7o6err7O3u7+2C6ub09faDNPn6+/z9/v8A/4kQkS9GDA/3Eiq8NqOhw4cQI0qcSLFiQxYyJHAIsrCjR2YfQoocSbKkyZMoU4Z8ASKFDA4fY8oEpqGmzZoYMNzMqfOmhpw7e9oEOrSnTp4+e4aI0MJFCgkzo0rVlaFq1QoZsGa1yvXq1q9dsWrVGhYs2QgDYLQAUWOq27ev/wYUmFtArly6dfPStYtX71y+eO/erTsAsGC5QFzM0Eavr+PHkCNL9hv47+DJmOm6ylyZs2fPiAqEnjsa8yLOjyRf7hx4NWvKrvMOCED5b4EIEV6wONjts+/IlX7/JiX8kOjSkkMLwmu8r6LjjKADMP1c+O/CtjkXdo39MXfHgudGyKCbtzfr6NOrd65qPfPlkWNrbi6d/mfkjxPVh5+/evzu6sUWHmGvCUYBebshBI0GkLiXnnzygXbaJQ72N12F0GE4nyMb6pecfRpmh9l2q303GIADHFiegnDhh16EqHH4SoyDZPhhjfOl56Jjyk2nSYjgieidZ5cN2Nd4K04D5P+StWGYy3o4djicj8Yhp1+Vy/F334UVDljkg6y5RoEFSdqzpH9MZhbcezuyx6WOOF75JmkcShgdjzvK2QidVEbZF4BDEgnZiY6NWSY1N2p55p1p8hkcJW6C2KGiePZJ6ZZoqjlncX5a2OmIg+71mZF4IZkgoujt6agkGp4G2YyNvurqfh6GOmuFtQb42nV/NlkqguZBk8GUqXHaoHufbhKrrG1qOmEkbPZ4qXWq+ipqqLBhW9t3c6l46oKYLDtZYVky6iwsxhZLXbWp1pork90B2uu8qlknl6nBVhNrs5ltp94otL67agD8OnlhcDBG+6y41tK7a6CVlUiXt/k6M+z/kgHQFqDABivLMJMc+/ZcwR9n96WQD1uW8G3AsugMgwerK24jK1Nrim8a81rycZhOsq6516IctF3yQixkkYPh67I0O49bb7ufRCoju5O6Gmem51JZH7M5ezotlMth5+/TEjccdJPYKb1Q0yWvkvWm52o3GbRSb1rjaRFGWbPccpMY5Mpqk2PZ2dvauohhoGqY84/puhhy1XB/2rN9d0kOMiKCdQ2hygQaPShgsolH3gwVc7N5XZcCKMjKXaOX8du47Mfs155uvTPQljdK6NmzBVB0563phSTpS+tbc40oln1Yr4b9jlnrM1O9KiJdQ8p21f/SnuOov8srIKnZhi5q/2HDl74NynIhv/y1fhO4/p/cVprpKK8r7qbtP2NZ7ty5B5x7/+/Z3o1cZzahmWx8eSlf8RA1GP0th2C3EtuQnDc7utnJEriCm40qBTUNRkZjx9KU1MB0MpOBz1pj0xZh7jU68ylpetorW9A0FqESZhBgdXsc7PSENQBOzoeJYlQEg6SXvcXPabZR4Hniw7xJEWo7g/Cb82RIoz15bFkys5n2gqiwLXaMiP2CkQ3BQyglrs1atBnAISRYIOAx8Xps82LjtIS1/N1NUnYS1BGR6LkihmkuI2DZC4i3RG7FBnqk8l4BYXhFRporOqXB46R4Bq8KRrKO+ANOwXQYvqIlkv99hJtL6y5jRnP8JgA36MEJEoAABCTgBD24gSJ/KD07UqhVC/MaJ7UoSV32coD9EtS8QBfKzZXyGsLxFw58oIAG2IAHPegBD2zQAAX4AAe+e2JnyEUyOEqpbUD8oIPk2LHQcMeIvGtj5wQkSEJyQ2gnWp1tAsADBSwgBygoTBoLgIIcLKABPEBBKFvDzV/OcU0Gyx45cxjOAkCvmyGq4QQj9j1QEpOULVwgMmHDF7GhgJk9ECj85oKCHjDAByJ9ES4x2Kg7Pi5qlpRWQymYJu+dbnc1i9dtyOTO8/FtNj5wgA4cJRcIFuYGzERpUTWpiL1VEaGQg9yPQhgj2Insahb/1JWvUuiwYoqImEfiqQuZ5h1GDIAHDRiqo3wHnRUgQAFw5YFK+XcrHsL0Y7eCU2rq1B//yTF1iyTiLIcpmwhFQKwapUZOA4ADa+pABTnAQQF6sAMeWHYHJ5ClDuDKWclCzKlgjGkjFTq1XS7KgVlMVA6lQ0Exhhan5wRUdw47yLG+MBElGgAzOasAue6AAbxlgGRXANdqMuAEs7GMPA0oWqCR1koGteVCYWi7hooKRBCtKhnd49qtlpCFtU2sNYx2gwYkAK4QWAFtAoCCtyqAASugyw44u4MGyDKKEg2sdLwZPdM6ZnHwwW51HAi9INbJoE7F6Rv9OC5D9fSdzB2E/0kbC1fPymW+cFUBW1fggAwzIAdEG5wKkXVLvFpqi6gtl0t99hgIenC6mhyR8lprwBPuBXGlQuxH6HICHxSAAHDdgTI5ewIanqDCNjjB0fgLR0wai5JPloyLe5ndUQ20jyMF5ZVTqKIH98YvrkmAXHMAVwTkU5TnbWZ8CzCCHsAVBTxIQFHHyNDoMhmXenWurPbrINAKE8to82pX/9Jl20rjfY9BQA8KsIJqKkAFssGwAnLwFzLbYLIIwE4UD3hnLObVwFSzs6M2eND/NedOFV2wTrUcYp1yp9DihcZflhsZRRfmyNb0XcbS3AACEKaelO7BBkh94y5SFZx29u+qYv9soat6iG6fjhsYp/jG/IbYhBI75ngZNRgxF0YFjl7zDXirgBvMxQYOUO8OEsDaG0abTZ3Os6jjTaPMFDiYwAsPV/uSsXiB18vVcB587HICGwiivc3swWx6gID6wlXhxFVyAZLspeemlt50zSqoU2xFmc4bQzTcLqfhmUzLUCzW0HBqDxogUgw/gDYE2AEOGlBNAwRABQoYKgoaoPA1Yvznqq0biZ1sSb+yGEeH+S6gKxS4eoiYLuPOgSAorAAcEFcHAThvNZcJAdqQ2dxqjK6fm8xXJlr3tCNjlVRhzF0+fvbpqjm54PD09BMsIJ9Zj2sONkAbN8OVmXINwAKUjDT//p6dur7Us73YY3QPLjvxdmO7/JqT08QdDXTtK7Ygv+V0uBegsYuebJmfOZdx81aWK8cBbhnGCTjem6kuNXGVn4r0Xe3OYeC7vfhY03SfynguPBBuAUzfzKEWxgacJcAAcMAAHuwb6PLWnrKlxd2xb/zEv8wuOoOnTmH2/h4dCoAPECBZ5Cug64DMgaMjuwGlslnV0O9v5Cn1bot/jehgu2nD6Jw4pN3l+wEHI/bxUQ6QA2TWWwSCAsDFcw6AUoPTWrFRCvG3UvU3JfTGTvpFWCSHF10DgOXARmIjF3CmAFqHTTmDawDFVnwzgeXkeCNEWhmEKRm3Yv4BIRh4ezgW/1qOoW0Qhjqzchc4gGsHsAPStAMHAFcnIFnrYxdN9XwsuC+Q5IKPN0nGdniz03aDxj6yVWNIVDQ8uFGqQSqopEqs5EqwBHYVd1FPiGxSCCRlRyzHNnlPM2hUpIMZ2E6G9gwrU1BJRxhm9VV3uIZkd2ox04aOtFdaYn1wiBwYGCjKo3nM4xpf+EJ2OHLct1SzNnCOKIhNMzWL6IajoXh9tk2ACGYK1lUk4jewJjinEzGCpYONmCZxeDnzJoodhH91dnEbpzMMtmB9M4njhW+XeBkhlxc0lD5vOHkVyIkog4vMAnvKdouGyD1jxH+WmEjAeGhWZlS9mG/PsYfM+FzhCP97smN/fsJORkJnuoctA7KKSySMYOYbijiObDhgb0I7B5ZFH6eM09hJQ2OJvggZ2RgNI9aNTWV520eP8idEkhci2Rcz5fgpJ1J4CCRy6LhOuzOQTteEfDaHAblDCrl2triI0jd7AjSK6WRCAEmHE8lgGokq07ZOKbN0NNV4/RiSjeNpl/IsnLQ/l4h7H4mKmfGSznAdpTEAI9BRtjE2dViFpxBHH7eP88iJSpeSpXhOpOhJeIhyBGl5DLZqHtlSLIWTJAlY0LiMcHRC6xhM/vJ/GTV34EEze0F5KARaU5lJZLkeNcmPtcRFS2JIlYiDNtiSRClrSHQ4oRJ2NmYbDfL/bneClrK4j3wpYKDYkIv3j3O4ln8kPpL4lmZSiZGIPoBhmSI5i6UpmQOUVXfpV9Rxls74IkypTov5dp+zHYW5DBe0aa2BPEtZkQETfaZJgTcpnKCCiPSRLH05V2AFi0AZaChEWwCnLzpTJJiTmAzVXNgHVXSHZ/KDdgtVWtGoISiygfvXRzQFnXlomF3CmADAhO1Zio2Hl6P1mrlpXZBJewHGk3TEm6Umj1u2mfFIJP7ijr43nfuBeStjaopCg2OZl3CInSqmnQ4UILpnjZsYoJPhYOlZlJdZbNxBmjNoPZAHojEFnNGmYjZJol0ULWGUMJ+Ub2HkeRrKlc0AWo5A/zTX1h3JOUkSaKLZ6ZRcop/3k3GsyT9bY4UxNlNkI2gn05IiN6NR0X1hNx1T6kX+5Qm89EgRipotiKSIl5YaaDYVRy9SdBdQ2oP9Mj+rEzbTx6CdwjjmiFopup/3+KZcSmJ9JV3kpJSBqXma+ZWrcZvK4J+ns2k2NpXQpXbxJ6SgljW012zXJ5UjtZzXpmWW2pJ3kTOCmgzy6HGGylEL+i78UmL1SZ8rapJGCjVzaqp+EqFOo5TNo5IY6kZFJEEhtqkcGmh7uEaVQ2s/M5mraqp65WzfyWI71COnVXLsqJVuxFXJEzq4igwFWaW+mnZRUozEalciCqT6iaq/WjsUKP+NIUqD3oGV0zpMTthVBLoNXZEBgtCu8BqvYyEIFfCuZWEVjOCuAFAVg6CvoNAViBCv/YqvA8uv9gqwj+CvBxuvDNuwDguvi/CwEssVWpGwBLuv8FoBZJGx9zoWGruxViEWGfuxItsVGBBe3eATKruyLLsTOPETgvATNiEIPYEILauyNqsJN7uzPpEIPMuziwAzMgszPmuzPysUP7uyMZu0TNu0NTEITWsUSfGyKisURkEUVesTP0ACKNsiXvu1o6ASYju2ZHsSTSEDG0oL4wC2bOsMFvG2cBu3E/ESNKq2BsEYALC2bbu3xGAQfvu3gBu4gju4gvsPg1u3dhsDeKswt3zbuL8AD5AbuZIbucXAuI57uZibuZq7uZzbuZ77uaAbuqLLDaIwuqZ7upxQCIEAACH5BAUEABMALHAAOAB0AV4AAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmakyUlHp+goaKjpKWmp6ipqqusra6vsLGys7S1tretJoKdNL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXJMdgeJhPc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vPjM/b3+Pn6+/ksNUYcttEbSLCgwYMIEypcWPCDw4cQI0qcGNGFkhpDSjDcyLGjx48gwWHAoKGkhpEmTaJUSTLlypIru51sCbOlzZQ1Xd5UifPkj58ZYLxQYkRIyKNIkypdCq5CtwwVMkidKjVqVG9UoWrFmtUpN61Zw1YFG1XsWLEWIhRp4SKFBKZw/+PKnduugN0B3eze3VtgQF+9fPf6BYwX3GC74fQO9nuY7+EBkBv7jRCBAoUCQpMYkQtYcWe6oEMj/du5M+TSnlMHJqw68GLUqE/Hhg3jgxIZHmDr3s279+7CooML3wi7MWHZx4vzfu179e/Vfmvfzt28uvXSzBUP386doHHH1r/3Ndx6vDfd2V2jtysd9/X34VmT7k6/vrv08PtGNs2/vP7FjC2nHGrtUZffgc0BZ9+CDJ4jnnizJbhehBQ+RxpgBSKooYWENejhh+QU8I1z10Go4AT4DUgahBcWKNyJIMbI3YQksljhXd9JxuGF17kImnkyBhmjjib6pyJi3jxGI/+PO/qYlJLaCSkld0UaWZ2N2EkoH4mlOUmXYpFNKeZcd6VzIpcXsgilklWWiJltuMWVnXFj1qlUm20uqSWWUPbn3GBeLmUcnXYWGhKM3eR446J5MtknmroFeuhviBpq6UaPmaPeojhys+WfkGKpWoYbbojlpaiGRKln+wm4ZTiiDvhgbKSWamuaSKaqa0KwkQekp2Wet16fsYIaKl+SIqXmrswWtKaiEkYGLZNgVgtglthGCqcHhKLIDXLlDRCAfv8dNkJ4zaZrEI7/ZQncaXllW2K8r+koX7ED1BrbiIJR+2615J5m777qFnxfudk+KlkAAYDbmmyD9gtfxOxt6xv/lImOq183AfDr8GewGizyPLnyy6Vs8fII2be7aTwuwx9/Ch2GFqcG8a8goxhbzNeN7HM6+Y0rqpp+JdpuijPLrB6pc7Yq37l2oYCDDiqooAMOKKxo2qCS/ey1mQVoTPBgKVOLY5VIXylrYBlKFmBynt3Qgw0K1G133QT0cMPGLItrmjgrfy240Y7qZbKeZkO6o7xad2lx19+83c0NJ9jtgA078MDDDj4gYPcJe89mY9GDl55ysewuGTHqSh+pcoZiQw4OCjw00AACPODQsIgc48CD5w3wkDV8phd/HOpqYkd4lP+q/Om0tG0bZt9+7X7YCgIo4EAPKIwwAoso9OC5/wAr9L1c8aazHiW963s6enGMvX0veH7qpe/OgN0AgQI2rADmtYabwAroBoG9Uew36BOc/MhlrA4tz0jIYd0Bm1Qzm/0lQCvY3w6G97/9NCYAKtgfBPyXmiRBrFIJLFiNTvaw5x2ufvVTn2kKBECB6WUEKCCAAnYgNhjeJQCVsxsBsra73qAwhemak3KIBCy4/apsrTMiBJFVwTSljAf8G57fBCasv+DgbnXjwdByhsSCLfBkJhrRmbAlLSlakIHPs5/08KeXGzRAATzoQQ82l4MBoGADCEjAAmwggAVsoAEqgIwOwFg3A5bxkeexV/IY90QfvjFtPaqZ0CLImCCCkf8AAUABAxipgAb0sQB2vNsdT9C4k0FyZFP8G8tat0bEsdEuDIsiaWhorc6soJR2C54KbjCuFeDgAHesmw90h0tP8m8DCjBgsCL3SpHxLnKTjOM0RTXLa06yekXcGoFqNihv9ACP0KzbDoyTg7sloIcrcEAybYDFHvBuhU+spq5cZcv2TQA7s7JSKxeXrwqyiG43wGLdHIAC5PzybjjApV0Uyr8v2qB1+hwZJv1Uyy11VIqPWhwVp5O6m6FAARsIwBftpoLA+OBuYpTNDT4XAAQ0gIMDnWZGdSVDnf7TgVA0G7jQpiFemuiLPgjbAuyW1Lep4G4I0GLYRonHACBUdjv/tSYlFQfHSgoVOPxUmOtqRbFFrrMA57TbChqDAs/ZTQedScAdW7oDBejAMIHLqsjexyj/sCmga0vc1pBzP8BA7ak86MsKkqkAe77mAHdjZV/GlYC6+Q+LiQRMovSqLkeZ4zFkAxaiwCpa113ybEnrTNuyhdi/vLRu77znYu/G0MgEQJ4+8AtmncNZFT5odC/UaWF0aSGnqcy4qp1j0sz6l3baLaJ3ce7dclDHurW0AHWFaz57a8b8NO9XyLVRXviKT21NJ3Zh44tF9SJKu+0AMC91a90uapd2RtUudMPBETfLXUN9Zxw+Le+wAnSYoKqIdTS82YpO6gDr1bVuUWWY/ygNIF3LQualiQ2bAxSQtYHJsr+G6qdgb4W4oaIWO2Qtjg71a5dFsrRhiJ1t3Rpgz/bqdwDrbWAAQWwwEVuxm5Z0VU/fRNK0nTPDBfgjU/1SuYg6cwEFeOoDdlfPIO+Xx0HKZaMq5LYmcjVWQyaye1glv5luoKETvdsKUOCA2Lr4uS+1Z5KhGTqgYhlVIQWtvGoZUlZdcIyMw1JhA7a7ysm5ACutWw8WmeG2Rtay42qnZA945TtLCXp/miB5P3xBjh6LbY/rT/xmigASBgCydXtAXW9cAIrSdAQrOGSd0WPpQo1Yde8Jc5AhGB1ylhRIWPSBxtJaNwYkAEmJZmnYKv/HA6EJtNK19tAEc61Gdz0QV2syLX94qZtZZi+mD7XbocP2AKhmDYsCIGIPNRttSxGtONXuVxf56abA3mXQuslgY/vy2kYykNh4RKsCClgOdrd7SqYtzFBfuOmLKc3Dor7f6PS3QxQ8tW4HcJldZGzXuhaQdzU8+D5hOG0fThuwAhaoHEl6DsCsQIcUpuq4cflaBhhAAQQgIXBF7l9O+fPnPKMUplX+HaaN4zAaox1V6wZdHNEOpjg1IrR5DqLSqFGNmZp3jgAdSx0XlKQ7Pro3KGc3BmBOczuwwShXacDvGpzqdVqVaj6qy/hVit5bbVEVuRowudGNlDbQG1iBtF3/uIvpfSeve3BxdeuLRQzfrguQ1KhmNaypZ3qwUp7hheQ8wkOc8YHmKNdBjyvI86djhFOw3YnbyqlvvjsOg9GPweHGoM/PjadNMRkfGEGPOpFIynn9kG50xtRBkcBd5RDKIQ6ovTs+dcm/5RSFDyKKua15tO9rgkZf8pWPuWf/TNS7iqRnWlP/Q+XP+63LCTghz33XFQP7gVhEuHXD8UHn91B85n64hc9b5dqEJo1heh/mZWFXfBITgIWXf9KWV17WZyTGdxPSfPLXeAHkbNBXL3xjgSvCgPQhHgDWdelnKiI1MMlSDncHWgoSWkBmZx64IBy4KSMGgd71cOtBgMRn/2/g8YJ2YiV310K3Fx/pIVbtwiMniA69AmR9woOHx3clJ0NEqG2exho4+EatEW8Pw4RNCCSUFla9QQ4aSHQmh4PW5xiY5mVaOCYnxGU+CISJY4CC1YVG6HxCJi2yx2VpKCSr4zHKtxq01333omC+tyVVGIh151EOmIfoF3Y6E2DgtVXQEjlq836MV4g+9YdIQjCKGCR9lnXjJVLXVDZ5Ql5DY4mxxILhlyQuuIn2kSKIIlSX6D6cwj4zOIV6V4FHAiuLkRe8KIkLyIpUkloI6IkJEkmn9YQs5BlkCITMMXgYBYwMIoesMVynGIpw+Hn+IoMwZImo6C2JcTyMCI0L8v+KVteIqghy9KNLBiZ92rgpR4h3jXM6xyGODZI2nmh7ozg/63h72RR/3+cq2eeIJ4Ix9Ah7Q2dyEVJgRtN9YKaD/ugBXUEOZTGRZmEWZQEWBWkfFzkVGxkWXuENFRCSHjmSUMEVHdkVZHEWJxmSK0kVBdITMIkTI0ETJxGTJCET3zATGbkgNGETGAAOKpGT4kCTNIEOMVmTLsETSKmUJlEgFPGUUBmVUjmVVFmVVnmVWJmVWrmVXNmVXvmVYBmWV/kCL6AZHsAPaJmWarmWbNmWbvmWcBmXcjmXdFmXdnmXeJmXegmXNSADEtABHrCTGWUNhFmYvZANuJCYirmYjNk/mI75mJAZmZIJC5tQmZZ5mZiZmZq5mZzZmZ75maAZmqI5mqRZmpDQCaiJmqa5mqzZmq75mrBZmamZmrGZmYEAACH5BAUEABMALHAAOACRAWAAAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmalROdnp+goaKjpKWmp6ipqqusra6vsLGys7S1tq0eubq7vL23v8DBwsPExcbHyKo0y8zNzs80MR7J1NXW19jZ2scz3d7f4OA1NTISQiXb6err7O3YLx/x8vP09fb3+PgvIEvm7v8AAwq0pQEDBg0ICx5MqJChQYQLGTYsCDEhBlERPS28+OkhRYkTIW5EGCICkBb8JJgYyLKly5cTMlSQmYFmzZs0Z9rEWVOnTp44fQINmvPTz6E9bR69GSHCABgflBiRBrOq1avUCgzQWqBr161et4IN+7WsV65oyYL9NJbr2LZo/9uKTWsWbgEgMEDUoIq1r9+/oOyeHTDAk9nDZ+kKXhyWCBHBgwl3HQUZ8eDEZYvAcLF3GuDPoP1WxiyZNGa6icHCdXx6tGnFWhmj9oqXM9/QuHP/izz7tG/fqr/Krlz4E9mykEv3fnt5QO3OuqNL3+b68u/IcLNbjq16tHK3x69bv/789vTz6InZXS++ferWwOG7jzs//PHyntPr35+sev3twdF33Vtsvcbcf7RtBh1/DDYoi1wIircehPaNJ5l/FUr4Hn4OdujhKsHJFuFrxx34XoDzYfjbVhx+6OKLnaTG3ojjaWijfXPROOBdCpoH44/7qbhieyZaeFhyOqLY2/+GPeYH5JPopSbKku4JqaSUnTBGYYnxxdcilGBO91WBEbo2Y41pFUmljrOx2GSYcKZHomWEfZehcAJWWNwEpFmZImRfxinoeXvy2Zqdc6J2JZGFitgcmjUGOuikf2nH5pA5rqnnndadeehZklIqalXymaimWHUmKmNYqLIHIaKIpdolqE0iwhtcgXWHWgBuyaVmmoONCmcBMU42ZVylZfdKpkoq64l/V1raVQCEhSqKrMFOOUIBAXSLwrcBPPtshr7SJeywqBw5Hq/VJfuepjtC+h9Y1o67XWJsoaADDz5s0IACACNgAw86oIAZtbDiaey5DNvLqW+gEGuob7xyG9v/jtLO1m2XzDn3JilrFcutcRffsIMDAKescsoO7HDDYeyyWteYDddsGLfUileKzKku+hazsxL3bmKa2eYBIoWyulXFbt1wQsoN+NCDCjjccAMOKvTgAwMpn7ACWp3kvPCzYFFr85PhksIllqFwfG+VQ+YpL3kfTzkA072+FUAOKCsggApft1rxACioQADADuTQ7VyoepV2ljSfTamQkYdS6CkXzrr2jUNLVu/EJBKGwtMKLKADwncL524BOhwA8AkowCqW5IPSSLntKmaMYbmfX5whCjYAzEPsvteZY6oo8ACwDQYXsO2nldP+osSqRE8Z9asyPjOO8sEdHqC1HlKX/2FLEx48AyqoRf0Ei40QQA/LG4yoXNIzvL263vfpe7Zqz839kvhBmqJUE4CnMUAH2iHbwQpwgwWo7ASDw5a7tlI/F52mf566zCgexhv/DW17ZnKT0VDxuInlAGAqaBwHcSaAlSkgB4H5TQUFhaS3rfBOx7uU0CAVQPEdqysrQBkPfHMDFeigalbDAQ50oIMYrcCFCnDACnQlmBla8BTri1GxLjex4uwpbvX51f1qZCrPhc8Q2MIM6QhgAwIsAAIMGOIAHqCAf0HxawV4IhRPIKvuiMuKDspi/5ZEQTKVKo1zapTs5LU7rRRtQddi1bNuAMXXUSt4lZTi0hKwMq4p4P9lPFMYIMOUMDPFq1Rt06GqNmaWzxUSMztwIQSMiEcUrOCEKkMfHrWCy5Qt4HBDRA54yjLKJ4GRi2SCFsY8gbf9qeo1rEzLI6Vhq+NVDAUo64Ed67jLGAXAACprAA7AE4DDpWwDKlAAAohnL8YV00OCJFkGF0YkYC3nEzGDnubklpYeotGQrIsi8AD2rx6sbyvwU9kORqAcHKhsA9hUQBM3GLJ3euh22ULmzT5YwxR17mFt+VyxGKqVACiPj71UQALwthVK2rEB6zxMCwG2gQL4QAE8gByFLKqf/H3PehGz3Ufp1L1N2bMrn0NdYm7agwGs4KUKwAFYtkUYTKYsfQP/IKlJCUqAAsDPB/z0Ck/Po8rZlGIxEDIFvOrJOX8WQmLd2coGFJC+ApBOeGL1REoVwMfEpBNgOyhAOmua17F+KGEr/OGKFqW5LfmPseERKei6ggKASXUAOlBZTMmyAk8CjAGBW1pmUVgAhyrgcQtTjWGn450b8m+DItMgFqElQaNGqm6WK1FlGwBKFCBAZenL0lZ8uzIY8okwo1XAFCmpAOK9arViwqij2hJbL+4TX8a5mWOLGlat9M5Xlf3kV5SXMrAOJrkp6+pZcHkC5zE3dq8SDnR149p3aVSLk72vWhNpvHklSoSdsZVWQhHecRLGtCnbZVfIuzJQLpi0pQVY/8wopN/5WqVc3IXbRsNISNLEMH+ODekZ35qmAGxrrnXlFidTZlDHgXNlDWjxVhwI0a0MFjZpsXBoMmygDrZLYsN0LWQ5BzfJxmhPwTOoZBIKsAWcxaENiKXKVtqVG/yLB2BRng+MF8l46pi+rb2UmJezSDDuypUm0nJZmJsyA3tVAT64wSfqKNUC4HKcXbmpHIla4S/DZLs/bs+GPXhdoX6wLtN0UsSYxrTMOkB+VVXZEKnVwhwMwJwpC+ZND3BNrunAQn7GzTxvOJaIKTbDGO6umYfsXdxazi4RxerdcPmvmFKSAbHb6zr1mIPYpPPRzSFQqP9ymmh2kIxtM4X2EP/rXw7H6jRGhpzzChBLGzCts8AdwAnbm0fPAkwHJwTt0oK3gwvtSbXDxg2hG1mmIqHIlPhb4VjcSoj+Fpa5l+XWXRvQ3psGdwJ3fd3h+hpQ8VpMZukGzaECbcMxjwitHkWMSM1inKcRIGeYDScOGoBrsPzVhQi828AnrLGEf8bh7SYqckhWaCN1Fy70HkSbvHKDbH4FBXNNWQvbCxbirgyiXYGfA+RsctaScW7vLmRsOZbqU/ZYyL5JtLLtCz9xxobBV30L1oV34H8Z1zBFF7WZ00Q/9r32WDMyN6S22ykQYopHRhOgqab1tA2AEsGIa95X8G5ZBs4VghsOe25cdST/Z2Hx7JNFNY8T6XSpv6IAA93AOANAx5QFlltjqTzABBAAHMyVeZURPGDmucMEDlqfY+cgRrlDlpgL4nKQGSgDFMdkusamWLXPgQpQZoMpak70V0Es25vF6lgdaNSAdrnqC+B4Zc9odK9L7qODwys9AsycsPMy8ENzoVQOFUn79XFHF09hTnXH9QAIEbn2hrIGuF8Blx8MtW7KMsVFXPvb343CUk/oARleh9ISLfLRfF0mI89TFisQcAvAA1STRCrAA5jGVzeQLMgkM2OTfzAhQ2anciD2Mw7DOe5WX7+BfmLUJibzW5XEMi7DLGzHNhjYEvuHY/bEbjyjQiV4aAGS/zHIgiJGljlhwXJeoS/8knN1tAE+QDAogDAieBYvmIHXs3oXtEWpphzThSbN8h8iZYMlkiqDFgDgYoELdB1N+BL3kjRPF0YfZmgcuHhFRYJLgx3qBxylJlwUJ23hB1RjqA6MB1L7pF/6szpH1XA4xEOuFkOZkhgTVjZ6IoXOdoF56A5AM0YdNiWqQIUAcnRs2GGtVIgKtDpmw4jOVnYbeGj494jp4IGn5ygPp0KkGIpuI4kkyFaX8y7JlFdVcoim6A7NVh9AqD8x2Irk8lg8Jln2hhhik4nWIW3O5IK5SB1EFjSt0YvJEWaX2HKY6BUEOHXmJ2bN2BfCNkgHJSMUZf9fF2OJ/4NjfbRq6mJGI9QKUPhw3egS5FiO6YiHo9h2ZvhfbKUoq2aO2ViA8KKKzxiP8ih+8aJRoeMeLEeN1RiI8faPufVsDnmBlKNWBNkOuMI+noJMFTZASiOMLqeDx2cnWWhDs1hYKMeMF7kOc/iBpQJiL1kXgPhT11iG9zFi9faLOtOL/7GSOzZgp/eDtbiGZMSQx0eTEjkbriSTZYZ/I+KTAiFIhOc9pOeSwBhvx4R03NGDCMJFgohdUDkQWVR+jeiIdBgZbGGVVoiUPoOU0XZqm3OVdRiWYmk3Qolu99h2WCmGyjhzy9F/ZLaU+8gmdFkVArgqS6d4aTFhQfX/K+/Wh3+ZIRBpSPc1fv6xQRpYmMiQQ5pymX2ZHaBpkzJ4JqcyJ0BQBHAHSdfzlVA3LZ0ZhZq5mcuoiWCoOiuSK3XCFqVnknGTg0QDBMzHiX25KcnXk7Gpfw2JHD7oRRVoGuPCkYgEjKw2d7xBBJ/jExWwFEmhFEjRnd7ZnceJDTJBCtipE56QnTZBnhUACjmxE9rJE0KxEzeRndq5FD/xnvFJAU0BBEDQjqUQER8REQAKEg5BoCCREeHpDhthEAN6EA5KER5hoABqEKdgoBLRoBZREQW6oQOqoRMaAiVRBC6ABCKQoCZqC/mQoh8AAjJwNIgQDjAaozI6ozRaozZ6yaM4mqM6uqM82qM++qNAGqRCOqREGqQsMAMyIASHEAQA4AHQ8KRQGqVSOqVUWqVWeqVYmqVauqVc2qVe6qUxEANfOqZkWqbNcARhSk2GwKS90KZu+qZwGqdyOqd0Wqd2eqd4mqd6uqd82qd++qeAGqh+GqYeYAIAcAGbkKiKuqiM2qiO+qiQGqmSOqmFYAKGeqiISqmauqmc2qme+qmgGqqiOqqkWqqmeqqomqqquqqs2qqu+qqkWgIlAKu0Wqu2equ4ygiymgiBAAAh+QQFBAAPACxmADAApgFoAAAH/4APgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuSFxcAAJ6co6SlpqeoqaqrrK2OnqCirrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPkwh7n6OnnJuXt7u+sNPLz9DQx9+yNM/v8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEhxIgsZEoQEgcexI7IPID+8CEmypMmTKFOqVPkCRAojHBhlwIDBo014GDTo3Elzp4aePoHqBJpzaNFBRWsmMjrI58+iRodKogn1p9WcGQa0cJFCQj5EQCJEyHCzLEeygipkyKB2rdtBbf/bunWrNu7cu2vr5sX7Nm3eS3Pl7s0QoQCMFiBkxPAAqjGoD2YjtxtQoPIgypUrYy5wObPmzwUobwY9OjShzJgpFyqdOvMkz7BDDwACw0WNxYkyxA69G3Rv3p43l/4dfNLw2K1hD6h13DQi4cg1uxqwvLNs3tUFiUa9O3si74SoA/cd21Dz8eiPQ+c8CDURIuc1i0dPn3hy1t1TA3HBArek0fERZ5+A0pUC3nSpHHjgc8ah1tl6wV3HXXS/tTZfhPY1smBzASaX2XvdEUiaaw/INhyAFEY3wAv9eYCIUouklsuCmtBoIIb2eWijIzJesl2Bz/WWXWrUMXjIhRMimaT/iCliSOSESwoJWiHkBQehkyECxxqLizkGQAklcLKjmJFA2KN5zAH5X5VnionkmA+wBgmciWAXYH1CUocfjvV5p6RyKFbJ5Hh7yocal4w5BqZ12DGpnqDKCbmKn8UFM6aNdGIinHCryfejnkRyAiWfkI4q4HkcZnlqqZGOWCGUiGZy56DObRKoq5Bm6iOtA7pKo5xkUnKickeuSquHeA6aqpalGsJsq1dCayx3sTKCKakioqongb/+WaqFrfzKpqmEGrmaKW2WWYmuJULpLauqojasqacZOit9mcrbqmbVfifojqzdd6qeNf7YZKW3bJhkkeE9op4lyM6HIqXMAmvt/yMRRiwlvNjWymjGHJN7K6vDrthiIhUY3Cuq36E5CqjEnuvLyPGOm2zM68ocp8K4eqzptzXzem/Ihd688qrrUdZvITC67O/G3JIytM/hTityd0eqrOa6CD9HMblRx7jv2NKCTWh5VCoI9bG+Rbuv1ib7p2F1U2fJrtMXl9k1urwSymmQEk5NN9v/6twpnx0iS+9qNBsdMoXnXfaoqQLnh/hvSxdSQdCKIz0dllvPiLPYhb/csnbbpnc4w+b1HXa9N0/ea8fAkW424SRLmzlSqGeLo8UaTvpLfCp3mKvN6YYnNJudFt/zvZhymK7ZHGpHasB5Ojq29PltujuPHQ+9rP9sPwfd9t0NVijrwFVHyvD76YuXutDKfzb/q+E/bpn1jWIr+f3bgxZmvics7TmIOctA32XCczcFoq56eJOa2w62pwoKyHa9KtbGilYaKqnIMwS0Hev49ztgOPBlVvNZxKx1Kq5hq00XamDD5iSaPx3ogiWC2duyt7+dlcxKa1OElWwYmxBiUFy1QgEOcsCDHZzgBDvgQQ5wgAL2tOdpE0wP4lB4PM6lDznJ61QA1ka1RgRAbeZTlpkYSETSvI+MyjqNxrAUn8NRDlCvMqIGA9a6yqBABSdggAIGSchCOsAHKqhi/5K2GRcGCkDCUOAIC5ifz+HxdrNT1a0EEYAzTs7/OhZ0XdFESSA9IsKKYltBDxCggAYQ0gA28MEJbGCAQioAAT1Ywf3kB8YYAg5/rjNgZsYINUWA5296I5sakTOnA84tNp6k1S9zpTjMPCg+xBzju+ynL0PBhpiwsWMBtJklUx6if97UUwBysAFCHqAHVKwMOJXYgwMQEgE5ICftYhfBU54wmRsLQDOd5DCvlZEQnvxUjfYWp6dFCJwHG6bjYtdIyT0LlfIS58KAyU2jDfBkkHCXNyuzAh8Q8gQ4wF5wcLADQvpgBe0BI4nmRaJd/LOhX8QaKgA2SWPKh42OqibOOie9ZXVOmDXVqP64ZbJzUIJPg7gBBAZpgxucUUUo/7qBDQYJgRsU6Fs0XV7oxJRC9zHUogdlIVMdVjO4Gc6hcNynMlF1LK1BSaky5dy7zMlACakJB6xUQA+iOdFh9sCVCEgpkaDDS2BuqqcLtIXs0qqhwprod2QE3sccd1Rl9hKg8cKP4KAXQN+lsQB87eu+bsBKBOggqdUpG3VQ0INBIsCr12Ns3YLJW2YuVK4V8lNlddpHnt30Y1kUq6rMA7xPkadx0LtV3ZQG0oLyL6YrqGViRbO6wZmIMjoILFdXsLXRgC+0lKWht465IZ+OEpNaUpdxTuewTIkWiP96bpQ8mr02Vg641qzfC6lVXUdsLwAmbQAO7DQsARdgBQ6wpf8CfEDMpM1QrS3c1WmbBLBkNra33OFZflXXx9FpMKI76lNHw+fg4Ho2RdO027hSS0Ly5GCQPWjODW6wAhSgIAA+XsEN4kkZFUh4kDnAb8XoSLjjYjGuWjyrtZysVMoIdMobdOZ590ta/Y6qs2BzLm/pCrKJFbHAPHrTAFbQzgbw4M1OtMEOQoODI7cSx5q58ZE3QF44TnbEGZVV4wKdszq9bk0mru+Y2fpidDpHPRWNU+5EdOIe7gy9gZMubGgsiOcOoLaulHADqmhkOw+SB5ips517YEULwReAY4WYaeV6LctqmRHa65YxfTTZ8cUXrxcF82KJh6EH+rbG8M3rdUT/w+lTokC8hDzkCVhdABTkoAcEkLANeEBeKwtA27dUJA/hBcEa/efCLb5PZQXXTfVF4tgCFnHZMtlDX18NT5EDJYgBLdF5bxrNjehNqbNNyAboUl86kLAK/JpwW+pZBUPqNJnzRGVGU3C3xC0xt2Id0l3HqJ/DPRH0Nju5WRF7PhCN3cbHCc55YWaMzcapxE+gABs0nJA5aOwAAtDOQp7gqwVo6SBdiYNs/1ynHLfupAYMb5lH1kD/kVixKv7xTquccwzdppYvGqFB6HOIs9MopLUUcyuhIML5nCohCQAg6vDAlgYvzQ1siYPaMkDcfn0X1aMO2e/8+dbg66mNOskj/7KyGMOcNd5vNtvuy13S5GdrG0cFFHNJZwYHRC/A2wuJ2/GoupBJ9tNWCTnkQS44xBzr+x73PXllHQuukkpQjNk3XBnPWtj7db1fc4R1S1se37ACOK5VMwg9o2AAcy8kqt/07UISgDy1JaSPkZzuDbsb4wDWfbmebi7tRB2ISOR4yUmT0w8m+9ezp+YLN5Fs3Y6q8r9/ewIy0/xBbqDCm4k+55c9ABWEegGVkQAKwAO8UWGzdjvYBzJ+Rkn85m5HhHhA0kBRFlHjRoGJBzpVom9QcyX25nvaEmz/JjfGQRktZQPEpGeE9FrKsQKhRkg9YHWVUWoDOE5bNWeahEHtJ/9Wu0VTqldioSQvdqUmHYJukrZ3lUZvL7Yg92YnaXRMTDU/0aJSsHYowrcIyEFzJyAeK2BLcxZTA4ACLThICdByBSCDrzUAJnV0/mYzFKh1uCNSTddii6ZhkJQ1XAd4wBZrNrJ7WrJe3fRI9kN8d3hvNfRT3sd4+yJ2EVV2hYCFnpFgg8QA3eYZMlhIp4cZenZ/oZGGU+h7GtY3ofJkSSd2cKIraOSAGpdeZ6SIJuJhOAg5+FOIwAU5b9KHbmhW1MMnzcZdktZSPgAclagASQYbQmdLBOgZQneMBZBtc6YeLYc+dJKATIWE6XEiU9d2cMh65BZX7NKJyGZaMbQ/AHT/J0FYi40mQI4HhLvBaX8if5txdoVkA5cFjxKGAMcnT7WkADeAGbWkjKKUftrnWJl1fpEnZb90KbnXXkTIOKhnLDRzVDGUNJ4RU0TzaPiSYd84MKDYJ9TBaY5mfMhoS/soGw03eoW0cJSRfGxHGSiAZJYzgRw2ZhaIb9hHPPVljucYM0GIfukXkYjGhw2Zk9p4SUDoQVNIbF92Ks2GIaq2YIPweTjGMG93AFA5SGqoZ6E3AE0ZYJUmjTM5aJRTZfT1WxeZXmN5hC9pfr3HejbJkNa3hqSkZFZERjH3KSggSDk2TPk4SAagTQEwVYMlgIUkidRhUpKoGbXlAMeXcsrT/4OytjyYUj7TRYQAk3RteZalAE1AYzVcCTdlJZTGAmxmtmy7uBsm9XzAoX+DdIaq5lWq6ZJbqABqWAD2dAIeVJCth5HMRY6X5VlhVCZvwlYTNzsfdlDDYYBeRDq7lFTtYV7INkFyBJT5M4uYFWbEgSiNIQvKuRmlhlspyYWhUVsCUBnJF48FoGcqWADJB3F245X0IzV4mIqRWXUeZmtJQl84yVMH2IBKApbfUn09s0Oe5pCU1yLZeQG45imZ8WwKsAOERXCDpJi0KViiYZKkt1UQAE4tZY87uXL96Z4g9k/g4nEZmS3B85N+tja1plz2uVS5+UK3KHm4CUJV6C/4Af9qXoWJDpd8MCUIKHhSp5YZN+BKrNacHTRQuUiNrfd3IaJ4S0hisJeUlml7bJmOgROXbuNdXGl1T5IsxtOTwZU6SymLJMVKv5gZLBiPtYWaoUGPEraPlEFzfMaRaQmaBFmBGWJuNhqjZilOv9l9aRYjrNOE49dDi7R4fnqL5eaftBMflcdgoYGVxEdzhSSAw5gZxeh8slFqOReIdzqIVMqiQ1lxdSiffJNxzfNZeuNqHuOcwPcqznlFNWaNDxKHqYiBveGRUoJgCuAAnReMg9Rt1XFzoBcaNxBhFCYxoBJWLdqlSjqUukmHqFh7XvafxiRJB/ONBsafddWGB4iUWVT/l+rBZgoAAQfHoPFYGn9pS4eZXeU6icnlZUIFrZ+5YXxEn9T6pIl2iPy6ZU4yhJ0WcGT2g4q6cjPZop6iLdsSNy4SUuWlGYBVriOZqcK4G5tHSHN2AwJ4W/GjjcwKZgdLlAQan0HCi1xzry7EJhYWY4AYeUpIVNeTMdjIQaVVlu0pJPDXLvQRsa6llbY0iZ5RnqupA+2UWGWJk5qEqlB3I7GnKeX2e7HYPnUqTCB7dRMJg2P3olv6e8NBkR3zqIuAAz3HbYLZAL9ospQBoQ6weV3Ff2RaOreKsNQpkxQ0iq1TiBI4pXi6g8vpor0Uswiosu8Fiv1ZIIXLmbJRdvIz/ywlZX8LgHO48qOD9FJcOrW5R68han2naFnu96nah0xT13jz2qe9c58SR7IkdKRYa6iPk5/VuZEUh1o1ekpMFxrr1HNDlwN4x5I6kKkbkE8SQ3EgirnBNLwf6yPyBVrKxofoI7oy+ixdRiKoxK+Q54nWAyFeOCSWsx3wRyHKo0rQpgAGQACyREu2hEu6JIebsp8eS7wCiTjSVbLlZ6u2cmzHVHvOOZqP16QwOYG9hiN+GpAhxrCvUUPFUxp/dAIRZmoOcAKJhC/bMTKgO03Dy74WDI4O9inJ9acACo1w1YFStn2WB7JhxaeYNlJveUdLoqu9WTvN2ShfuERN9ERRNP9Fx5c2KvYu/lqNc+u+IQtlX+ZARnWiT6aQIuQy/umkbkkcPhjEFvxIZtYa7PjCFgQdhpYd6Bglh/up9zszb5WvtgrCMzpv3DNpz+su5wSTEnlJoqmAvwOWH5i0AtSRs0u7QxS8eCxSnZgnedhbRoiiPkyOe+eYn4i5HOyViIhxStUp3cVNpaGrE2yHXVdcrvZf7AGKFgfE+4a0y/SewInCt9aykYyWVtp7zPq8WpfELlaz3sor7BirlYt6nQUzZmJDBLPD8DZCIJqA4bd7knQkPiVb+1plnquir5aNcmzGJxy4iBs+1CWCSDq932hyIjeqhgjIqMs/0Stlv3JuecP/QoTMQLXqtykixNFZWsTnLEysceuRveOMX3Z0uhRyRvA3R0JjMA/zRaVqcVFoPqXIdLNsooD6TEaMVytUslHmQGRzyniCVimWes7qyAWpQ/cGc3XMsmGczEU5q3rFfb+VPBGdOHukvOSzUwMcihb1WD2czymLlBR1zRScSW10Npq2yjn7wv6LaRHZhiSnzQaJlgoSjvtcn7gKKCZ8pVkshEBpsv16kMmLCTntgWN1QyrMv5+hiE9ipMHrsuNEwJJwPecMXTBsct/MXOXDw2yIVIMmjVnkhMPs1uHc1BjNk/P7utHqtXNZ0lB7xn6Di6CMPywsW1uMVPq6VNgKpQC5/zKieFpbLW9lVNA7k2Zu2HdGmJAd9UjBjI2Ia0egW9MBSqPQDIH+5tIkw8Gp+tN1Xc4w7TRMHdf9urn4ZlBW7UysE9QuZyUh99UgGE71c8q0WqKS59JwHDLd+zwajc8G7NojDXLBDNDEOXULeZBN5iiCSm9aai+vW6gKrSNU2hwGLZd1K6PaSzHh2Cs3HbegGtVMPTfaUsj/pW7XSpk7pZy2ZsDD7HQtbQnWuTVclo1YbLPT+78G298gUhlLCYe8XK24I3h0DcZrbM+Zm3VHaIoNJHiqJW9rNOF2m8YDLKBAwh1e+5BXyyjjc73oJF34QQRFwC8XbccM5aVMll6u+//HaJXNGlivK6rRdx3dlKxDqVNDzU3j+OlG9uN3sJOTEUfiqr1iP6SOudriHI7GUYrg0QTfXamT9RuLG+5eBLXYStrLxHXLlNx4AA4tjHNCthiLsOa19aLDTzeczMnOR8niof2AJybiRR3hqD1Qph1voyjKTSssWb5NUCycfqfQI66z0+vG4T1TZZWH5V24t41aNUADDQsJgTEYbLEWcKHpfIEXdiEXFSAYccEIFeAXd3HqlKDqDzDqgbHqrJ4WKGMJdvHpgyEYts4Wl1Drf8ELaDEItz7quC7qeRHrtz4Jwy7soJ7qdHEXmtPsbOHqeyEWLGLpk1AVPCEVgpAT2O75FEPx7VUBFdzu7U9B7k3zAOduCeJO7t/uFOne7VbB7t6e7rUgFPLOFEgRFEGRFO5+79mu7+1O74pgFU3x7wLfFPxOFfAO7/2u70zT8BpACD0R7vne8OP+Ez/wAyFw3pLR8R7fDCvxAS6gGJf+8SZ/8tdgEBchBCWP8i4fDfUQ8zI/8zRf8zZ/8zif8zp/8/fAGAj68kAf9MmgDkSvDl5y9Eif9Eq/9Ezf9E7/9FAf9VI/9VRf9VZ/9Vif9Vq/9Vzf9V7/9WAf9mI/9mRf9mZ/9mif9mq/9mzf9m7/9nAf93I/93Rf93Z/93if93pP9kLf934vDaBACYEAACH5BAUEAAIALGIAMACuAWgAAAf/gAKCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5YAnp+coaKjpKWmp6ipqqudn56ssLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3c4mJt7i4+TDHuforq7gjEdHNPDx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEyaM4QFAiRKMahRiwWKGxYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cua8gwwkFICVcXLhgC8aGcz59ATX0YSvSDiyQ1OJjAecFTDEMaMASdSrWqIA2CMGjVwLUrVwxdQ2SA8SKJkaWfcpYIJwjGoAoV/6zKneutQoYMdu/q1Zs3b4QIQGC4QOLp5qe1g0JEKFBgQGO6kCNXG+CYMeXGji8z3kwhQoYPKVRlJjTAUOXNjVGrXs269eZSBWC5nk27tu3brAepFoS79aTesRsBH068uHHUFEJ8SBIEoinKmllHP777VHBb1LNrr27oOm/fpraLF39oPOPvjCNgWN7BOSKsmU5v1jydfPjcsszrt1+I9u/9AJpHSHH9dceZckm0B8Bz8s2HmWWqNegggN1B4p1sAWZISYYcdujhcKQVEEAB6rF30yL4QSLhhY98yKKFibyYiYse6nYaIjR2KEmO1J02QAQItndKZQMEUCSRqSW5Gv90K/L332q98EiggVOOIqWMMe7niHSaJWdii5MgWd8IIpZ2CWrluSaccahQ2KKAioA445WvMUInbpWVmKB7cdYZiZm8NdlgfXBWImdwUG7YWpN3+tcflug5OmejlPboGJBfKpKBn2GalqJuAK5oSaLWVVpon2iKkmMopnKKGqZ7KgIfJoPOx6iWkWSnioa56gpqfq1yGmmwtcEqpIWQJiLqIBLeOlucmxyHo6LESouipNRWq61xxvJ5SAaXRIcknjWeeV4jAUy67XiPrqvdltXiqFq3sn5HCaDMEoovIoSue5+71A047G2GEkwlwLYJJ++A8wbpraqprZjZqhu2e67/MAiTiiipq2T8aZZVWpwkvahMPNqAzgYIcaqzYCsApYKk60vCaQJXs5zXengayQyqhgIOOfCww9A78JADDihEiFrKwbYpLMCIjIgtzb1yDCrMLzd6M2s83wvoiGZKiEIOPjCgwNloN6CA2g74kAMK+5IWtmNyK0mdzFdT/aTHLoP84dYXi8x3o5VRsF6siWiwKZcQOrsCD2avjTYCCSywAdpoM8DDCsNqJnXEgjiGt50u0xbA54Pbhrp5q4ect5T9ta43w64nIntxl/3ocL0M8wudZaKjADnaG/Cgwg1GbobCDSrwcPnZmqMQumu/2y3j7KmcDl4h2ud4e3bf+yp4/+3swmtt1MN1v3Rmumc6CepxC4JDAmj7oAP8ERapwwmSJ4BDiEsDXuj6VaE1fUxd2xNA+PQjL4qRjk0KHI/6nkW7d/ktVJw53LHChBmJ5UBtCrABDtY3CNkN4AY2gF4OIGSrpTHrTk67kiYMZsALEYcQqGvgDXW4GqktUFgH45B89LRBRCxuSdULYAB4cDYH5EBqv9MXak6XAwecjQfwCxFlLshATKQOOD8Un/nEE0bYAS5DuSuA4dzHRVuBbTVMVEACbiCdJU3IMjcwwBUDOBumBfGLYszZqV4nJaaVD1kA+x0RH/ZH2jgmB2c7wAoYk7yBNcsyKrABAtC2wvrIB/9QyYoSIEdJyi8WToOMtBOowlYAHJgtAZOMFPuS+KDNqABzZ2sADsblL0Ryp4LlIqQDt8TDQwITiMUsZe68hLgw4YtMKKCfA+jIJR/VsQAHwOXZEoACI9HHMrx5E65Y1RtxDs6cOGsk9qAlzNQhqWvfWpSYKBPHt61gBTfAAdIag4MTFK0HAAWo0E6Qg8wEQJto40GEXsii7cQQa5xIXQFhlMxRqrOW8BTEEY7JmBEQqTIriBwu1abQAuwAoZg7QJKep00GTHJRxhxYAtFZShq20UU7umhNrSajjzKziIPYqMAOMToBxBGlCh1ADxAKQgWcYD4nxWXkSlpLfK1Tpun/pOlOVQfBGv4yRmfEXjlbNMEMfS+cWWPMT1PZyImJCAVW1OYOVKADuDEGnz7QJg9wAMUC3ECbG+CfA5IWMTvCcG9Qa2cw05pVcfpykAoso025V9barHURR0QiaiCpgKOebQeVkVljdNDUzwLQs2fDwdk6ebFaWi2s59vRVseq2Jkytna37eX1AsY9cql1d5LwUWXyugAUsFQBDCCszwTR1MGiJwDGxSUKIKAAH2yxP4acrXa3u9vG1kY3sO2iALoE3KqdBq6dLQBqVQC8wBFCASrw5nyWirklKmCwLFyfbVPBXZblFjeV7Y3E+qZVUo5PP+1rZiT62sqz6WAAqk2b/w3ko4inglMQf51cAW6pgBESKWauTVEo+ZuxioKxNZK94wF19MARm2uMjX3ZZTLaCAlxdgVFegAubzDPAugYcw14qehE5AAQEsCvqzVZiB363/46cDi83CGqxulV93KURziCDo3HOAAmNgBs9EVbD/KHiBU25nMESKiI9vhJbQnSyZO9qfVUHK83U3DKtJVzH9eo4D/97qQb2MwKcJkAsMln0LgkwKBSeDb2FgABDaBqdq1cNTgnyl2Tjik7TXzAAsE4O9nlM1AfMWTGnHQBwMsr5jzMQkTv+DG8YTR+C0C/HSw0UK+dVnhjXNt1pbg4rbvVsrDKH4PluV2/IrbOMv+zZUmc9AGbxSVoW8hZXPYgRHpUgK0bU2vqWbpSv861p2v70ZSFFbFxPk6Tkg2mA1N6vMBrNoo+elIInFek91XumfmnTQOgztUPdswmbR1lCue0xd+u1oDrTCXZkjIAi1TUaXjQgC9DFZfsraQA8L1q1OjgbP5mDAqu+MYo3zmiCS/weDKdcITlCZWUgB9nqTlaXPpANRxegF4nFscxMybDrFVS3FoOWZfzkei46TVuLSbvRUQnwipgUgCOqwAcW6beH8clAuwagGwjjzEqUNsIk1QZQu4K6XcSFNrdSaLy7ghQKDCbQgeIWp8XAAWbxCJ1Mf7zs9lAN0wc7CcnujL/m7l77drC28mrjPbTXDa41stryCsTYbQV2jFZ3yVqncoY+rI2ANS1bnuBx3IpKz2Q6Grd4ctFHO2p/ThSGzfjEZ/ftrOR1APcDGdZLaJsrloQTCw0IoLs43yPKAARLigfyeTiaNE+7dOxJkQd/l0dKmzXUE6P29+uPLMRHDph/qyIDDCgNOPyaOLfzEmT6/Skr/7bBePRJRd/ZUBmaz872z6p8xdHmg/A1WezdRFGR4lgA3EUcH5FUgaXL7xFfc/3gMfWZHB2KfqnVSugNhZmGaqGNiogCKgmNRdYWvelACHHGPzjUgxFYLHQfGY0ewRGLLKFZ/7VeETSdA9UGXHE/16XwWGS4wPZNGZEwm/a1AOZkXVJ1UIsVHoQ6CbkxITvR2nDVH80Eh02uAhv9FZ6tAE45hjopU3+JyMNwGMFsAKXYwBJk0Z0M179soRuxmk0gn1b1W5XRh+ixlYIByGupAAEYFcmpU0qJTpcuEm4ZAMil0IMMHZKEz86xV13GIUSaGBwuFM3Am/pAXOQF2Ujwlk+cIZZhzlEyAjwNQAooGoFlUZIuGRsmIoRWEFgdXqNF3GXkDybYSRxZAOT1HVAJoYPAmG4NFgrwGglRRnJM4nXp2eqCFlPaHqLuIqftliueBvvZImV5hr2RYKahzkEAECM8WNrswPzQ3Jr6F+blv+Mx1h9kShRxkh/gPROFSiHDMgYH3RFnagAdkd2SoU5NqA2DGBm+RN95ciIUrgtjdhVynYfkfJ4fzJF1PONCoAAhGB1u9gYALhN/1M3tRdFOwUbEDhDyLSMi8digDNl05MaCAl581EIcDc8aONEN3CGXHgDOXACTRU9+tWP/3iTStM0ytZp6diRAykdJakitXdNjxNXINQAELAAltNSm0NnFxmOOMkhzUhlKqcx5KgmHPk3fwSLhtI6DDYIY1M2KNVEbgM3ohMjzCd0cxaVbIkwVzlIMIUZXIlIufOORfUdPxM0QlM0RoM0cUNL4nI1StiWD6hr5+aRW2VNdXgvHST/jt9xMgXUmLXyTScZQYR5mbGFmN/GJFV4CMLFJFmWO5dkckpTHlCJme4igzcZf9tBGZ3ZHdDRQKA0i6whiyJydElIjQHJjOaCmr75VSgyjdCoRtKIbtm3X83ngkwmkoaSTD1JNb/Zhlc5b6nxmp6Cm0M5epcmfRY1lSr4iDC4m+YYROfIa5rpfqr5IZoxl+bVRxiJm9xpK4PpJ1pZHk84PsL5buXJU9eBlc9oeHbmn6z5gqWTmSDjI9ZpmvuSndp5TUOlnC7CJA1ynpXyn96xMU6Sn44onhZEoeaIHO24f6fonrWRhj+JnjWlKic6O/3JjMn5nRwaTAp3Src3KrD2/4iniZ0CapwuGKAdOoE0hIwPGqO9JHtEqkYhGifz9yJkZxuMYqHa5aEZWmzRyZtv6aSFk6TK0mma5Uh18qLrBJ1X0mbwB54N+Jz6eaU7qjJYpVWLyZjelpMfZVj5NZ/zmaZmSnh9kp7KeKQaCqPu6KPoCaWAOqRSiiU21BoJap+MsKRy6kIFQ3j0B6X76YTpaZjYp6bTt5PiZqCNpHRH+qYJOZx283q5iWVuuHTeCaC9CRz++EsMx6pmSpBounKL+l/S51Y3qoZxqSSiNaGpSidZqUpHOk5sqpp3Km4oc6aGGUj71WS3WqKGNXTTWqErOp6cGofZSp+aRqhSeaioN/+rr6KljbAX5ooXeYEXhGAX7Jqu5uqu7nqu8jqvemFE4EII9Yqv82oI9Nqve1EI/moJ/jqwBFuwBnuwCJuwBRuvd8GvCjuwDvuw58qv+uqvGtACfVYIPyAJUdEVW/EVYOEVHduxIfsVXlGyXPEeIruyLNuyLvuyMMuyjhCzNFuzNluzj3CzOkuzULGzXqGyMUsIPju0PCsARAuzP0ACGDtqktG0TjsVRfEBLfACKcC0T3u1WMsNSIAEGMECSWGHWRu2YhsN8hADZssQY5u2alsN6OABDKEOcBu3cju3dFu3dnu3eJu3eru3fNu3fvu3gBu4gju4hFu4hnu4nwAOiLtAuIzbuI77uJAbuZI7uZRbuYVhGJabuZq7uZzbuZ77uaBrtw8RuqRbuqZ7uqibup47uqrbuq77urAbu7LLunIbCAAh+QQFBAAPACxkADgArAFeAAAH/4APgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuclAAAnaGio6SlpqeoqaqrhB4en7CwrLO0tba3uLm6jDQ0Ma+7wcLDxMXGwTPJNUYSHbGggilKL8fV1tfY2cQfL0pcMxKvsB6CLoIhGhoY2uzt7u/Y6fLyGOr0GmNj8xgwL2cyJmIdKUQhQ4YKFOApXMiwoamDiCoYnEjRYIUiMJSIOURN0IACIB2KHEmyJCOQKFOq/PgR5McMGj5E6UAKZcuUHwkNGBCgwIBCLH+6U6nSpLECiVAaDdYzZYQMMoUEEYXTpcubRK3iFFqS61JcWbN+zVUgANanMjlMDbVzp023Yf+z7lyINexYsnGV3r2VNQKGFlGElKCqM29btzexvrO5l13dvJAjS55MubLlyyt9DogQogUYwaMewyXq9cFon/DCJm5s67FL1nwJ+eT8AUyHwaGQCtIqlHTcrkRhs6oat7RwU30x1L5dirhz4w9CKmxJHedxVq7lXldVl7Zt3LnrBvWdcqTPvNtrndeKub379/Djr7dJIcRy8KiqVi8NF3r6/5dkpxuApSBWgHf4icISarLpF5ZZ/l1zVVsEqjJZhai0RJsXCXJiYHUoNQXiSg4F0FR5GJ6SmXwstujiiyrV94EXNZ0nFFb7qcYSQzelmCFvEfroIXt+zViTIfPZpJn/gdLtBuOThlkn5Ck4DjglKR9tiKV0I1y15AijBclQcVdywp5eZebmlH00bokiSCiscMMNK6BwooBiEpPYmS2lSRWffmIy3wAwzeiBCQFdMKRNAeDQgw8bKCDppBv40AMOZoEUAF1W7hZoJ01+6qZbhYZxaKKOUNdbTtEpeQMPkU4q66wKbMDDDaXJ5Vyoovbq6yEqZaDcDL9AYuWCRPV0ww6zbnACDz3kkEMPPJwAwaw73KCjkmh2+uu3oj5W6Aw0kAMJsokFhUIPDDTQgAIE9KAtaTzdkIMNkzLQAwqHeLXkVeAG3Kt0KI1bbiQ7erSbWysQoMC7J+Cwq2br4XDC/6Q2rHBmkgPyKvDHU1ZlsLmpnhbURzggIOkCmAbn0YRlgYTDAZIigIMgmf4G8s5pkjayseT5pIMDkvKAQlFOIjtoASjwIKkDOvx7LNI8V13hgC39/MhHPXHVEg4MKMCACtwKSJxZKDDbgAM4KL2VZlbHTWCSWksy1yArqNwA2bxZdffLS/KUA9GTInADsGLJrbhwj1UQE7kkN+K1bkw7rADfFLeVs2rn6UArvEcredjipB83nk/CfgC5JCee10PR6Da44qAXf94DxVKWrvteHNftiJUg3RA2AjrooIIK0+5rFg8MQLCADTac4IMNBxjggA+DFIDvw7MygKtxDO4uvv9R3Pq+CKtOFsDs55Lm8NH27Etq0/qf72Ajt+PnT1LrPlUw7MG/C1MBbhA/SengIz0wQAF3cDfP0SpSDcBV+jSlvwo2hH8FMN/5CuO0BoRNVjq4AQpUFYATHEJjXAmAAGjlNAXwgGNUs6AMF5PBxwHwEUoKQKRsQL/2bWUnKqCVDRZ2HhzQSgX4gkDrZJOnGToxGPeroepueJK/DcCIl3PgpAhQtgGgQGWz0lhVeqgAaUlKYiaD2xPXeBSiaPAkrpPUCnQ4q3l5rBC3a4tmCCgrFfAxj+HLHhupNLvcDTJ7IHljIuriAwUkACQtnBQPeJI56CyAYwFYAAgLcC0fBM3/W4fMz99CmTSQOG6KkVvEW0ASqRP4hI+U2pSTehKABNBKYuzpobYutoH5AIWUf6IOMBEhooL9L5XnswoKirYbmm0Sf4d4YQ5f97SetDB0WDHLMBWUJNeEEoOKRMRoViCpHriFmpNyZUpkeYgNdG091GzACRAoR0MkbJtHwidQrBLORXaJj+4DCTllxQBsEgKWz7wKOlWwkxxISlvpOo8+zQRDQ7KRYFJcXar8BtCUNFJWOfAJO9lZCAZqpYUOCJ1DFWBHvwVyopU4zXooBMys9NOeFBtoSF0SRFnZ4DEf5d7TRrig7dkPJNQUIwabCFNVwrCpCyOUDZH5iGW60CYo/yDcpHB1lRW863MhbQkKwtYANBbgmhF9KVQnMTEoufWtcKVMlW6qkz21Uiv0e9ckhSmIa83KkyhxoAFO1EgIyK5Ha6WEa8LE1PF5yZRTjYRuPtLIwdpEi5JSYvZ42dMw7oYH77odSiIF2BUl1hK4+2RcV8va1tIVcQOgJle5psBnetEBg9jAVydlzo/U9nCC+ONrZHdaS5C0qaJLnUYbMdmv+VBTZ8UW+jxliAOYhY82iFlsz4gmPTa2uA0qpnYO6aWXRFaymqFjdoUSAISKjajMUuIVPyexFqoATB9xmDvLu7HW+ve/AIaMqqo0XFLO57UvG2ULgYsSAuy2jDyJlP80C+BMWfEgAApMaUv4OEmOIRa8kiATPm9yyuXC0UYf4aP9uLJSjA0IU/SUVQMg4ECT+mR9LS0wKEG8QRDbBMGKWJ9ZC+DVOjotAT0hxKwaYEsF4HIAKk4wdG3E4yozlz1AHsQ9hacAG7SudrzVJA+61CdEDJZr+PLeKhNn5TYjTitZFqRHtqsA0QqiszXjLiUHgGdZAbIHoZ0QBnfs5kITscRU3JpKUGC5A/rki7RawDsJzdKP6OBdBBghzBZ0T0Mbmm5jQCUOtTyIptxAZTYTyg4Y0aUevuunA0T1bAvBZk/b2iVx1vKgcEA0m/kEi7KCKHUNcbkC4EC3bENkvwr/bOs22/S8CBtRAYYmtpBiWFYH6G+Thzo4BUDNpTCkabOdXT5oAy0sKZPUCVaAzgboOkSG8EHtfM3p7Ix73DcBsoD3aDkE7GC388pZpm6w268SAKJvm2kM7+1jotDGxFc2mxfZNSskV1JTOKitpPSlaW4JmOGf3snDE+3UyGw4rwpAgA94IC1p8cAHYJxUtjweyDCB3NBYUS7JqyjSPa3yVRBk31dnfCu3pM/nqkLRzcELvIzu3KnoY3MARtCoR/lVVhCwVMv6NpkyL73KPzY3zyebrMMuKE5zqtNb9Cg1uX694VZBNFXFKTs0Hf1+cxaNSPv7Q7t/9+01hayof4fI/23Ra8qZSxbfxfuW4wJ+rWEfvCnMpiulP35R/fn7zqoid/QGuOuaX3qOGJM/9nSercWpfCHbM8rLKxrFFizb6UP8SZ+v3jKHQTGzXS/ONbe+dL0T++8kI+0mEh/2vJech3dfOnEdMxOqpTzr3XbH5A9zNDqfOyIuI3H3dNr6MQ29wLAs/KS8x/bwyb34RV/R6iuO7YksvyKiVHnp2x1wtv8++HG6kt+PL2uPEwMm0CGSZX7yEVGj5377Z0/+Jz7xpzoCSIBvZnJ891RIUnuis4CMgC4N+H51kX2v5337tm/ogmIdaH2c1nYVlDXPpwnsoRj7JGBdwz82p4Fb4zbr9+IpcEEERJBBP4BKAFACEpgIEnEQFUERRUgIR9gIRzgRFVCEFWCDEfGEUGgRB/GE4kOFEiERIfADLQA5QTiEhTAPZFiG9VCGaJiG6XCGaYgB6yCFjcCG6mBBbjgPP0ACX1guABAEawGHfigKH/ABLfACMvALe9iHf5iImpAMMyADHKB9ihiJlhADv2ACkniJmeAKrvAMnNiJnviJoBiKojiKpFiKpniKqJiKqriKrNiKrviKsBiLsjiLAIAotHiLuJiLuriLvNiLvviLwPiLfBiMxFiMxniMyJiMyriMqziMnRgIACH5BAUEABIALGQAPQCsAVkAAAf/gBISKYISGIUSGoiLjI2Oj5CRkpOUlZaXmJmam5ydnp+goZMYGqWmGqSnlzGIFBEVghGis7S1tre4ubq7vJ0ZjRW/nwEFAwXFvcnKy8zNzs/QgsbTx8THBZIlucfU3NeCx+DG39Gb49fXA+XrueqO0+zxoOfFAxEWghwdtueFA/TpuAFEJw8UtoIINY2bNtBdwoeWDjbaR4tgoYP/vKFDx9AhxEYbQyL7SBLSuYwbPZZciSiAygwfonAIYkukRpQWcdZTWbIfy5+abAodSrSo0aNIkypNei/mzFsnjTXSifJfRp49NYoECnQo16/SRhYSApWhWAk4AVKDB5aRVqxt/+MNTEkuLslpEUJsmyrQakOJV7mKpGf3I0eb4wo/lFjokK50V9OZVIxWK0fKWQcv3cy5s+fPIQHKaift4mGjVTGrZikU7mpmaikU6qCNFkrTNxuarct14OuEc6P+lstWEBjataSG/SfNI91i0LnF3blweMGqoLNr38699bHREmrbvjkYXMgR4SScFVwgQADrBW3Cjx+Sgl5czMMOtqoZcvf/Q/k2nzyhDRjNQuk5dotYG5nHmHoBrdcWPYQZ2MxCHVkoVy/+TYPCDTjoIOINKESXG28lHeWahr2khSKLu2yUlyAA1FijKNBltEIOO0CgwI9A/gjBDjmsEN10PK0Io/8u+S3Jjon23GfjjZP0x1MAOpzQQJBcctmADzpYE1A3EV7m5JlofsQfdHl9EIYHAFRyUj2OHKMDAUEyYAMPOaggogo58GADA0ESoMMj9aRUXJqMNloOXW2+GSclFeqH0gonAMnADiqUOFcBKOiwA6E/nrCCfmNGlpGjrLZ6IT1tisHKJaHxJ4gOG/zoAA8r6CTQRf+swAOpG+hQ1FpKuqrssp4wJIh9H7Awa0QhOZgDkD7cENp6IWEKZA7m+Zobs+SWa4tj006CYKLn9PAjAzmMidFhu7WXA6k9nJZYaeb26+8llSpIa3oPXqvABjjctgiZ5B0j7LdinvbivxRXbKn/dJ1QeOuPG9zQpHr+pIdWfuj0sGWQxpaZrMUsl0uXMJj8NcAKuTKAA1JWLSKhIBsYmZ9PaLUstL8HMaZIzJYdk6kC4ELIUQAoIOgQChHv0GWpZdb14NBcs+rOxxkjosOPBqgAaA498MBD1AVYfXACB9hwwAIbEEqAREtfrUOlTm/d9d+M7rvJtgHgefWPKrR3wOFBsl0AD4wTQAx/FK4M+OXwDVTB0Zj0VczYjNt8TA4HIHA4AzwY4xIOVxvw495zSob57E52VEwGAg9eQKakAtkADiuUeNEjUVflQyOEnhCymbQ3r+GaOwMszQpb7uADl4lT6DcBJwlyQ+8/9mB1/wNGUqec5c6nb5ffmWhlMA4GY7uWyIxoSyHkQfYAetP00q/+/7+ZRgVyFzNBWM0BKEAB+BRQvmrVqWgz41IPUOAABewAN94AoAZfUx1R+MgHx3AbkPJlIv9JoAEGcIlObBCkeLHQAH6JEPo2SEOWwAxgHEHBj1I3ANABKQFumQwiBoC/1z3uR56yCMhqyET20I9ztFrIDX4UrwEEIFdBStgQH7GD9yCiAPFj4AAM5jG3sK+JaEyIojjBGNAlThBF/NEOorMoRCCgeAtRAZDuVgA9KgAH/ghkGgd5FxMGRSCgO5QgWBckBOAGEiooTvxImEiG1ZGQmCTONWDRPshUsv89BVhckFTgIENK4AQhcdePtFWAT8onk7D8TdEKwMi9QUeV2PKcR4JEvo0sDYR2+tHNhBLLYrJDOQSk1gAYmQNqrKBLPgPHMyFRjysi7hpkzNHCjMlNZvyqEzs5hg4VkDp0XC9/DXqEDdDBSATWA38oWA7zuklPXjDmhgopxgcT1UcuPeCM9buGKud4jReWcIb1TGizTMRJTozjgCW6BgW5dDPlCCKeIDkGC//IDQVaEDoKDak3CwFFOQHEYCmrhgh3CFBEJIAYz1TAS6+xP4mtSqQ4nUc6D8mRmBI0Iz780R3Ts4FIjDF8Ehmfz+iS06bOAqFuYVimHHCqkQXAR6P/bOkQDdfAiaKSX04NK44wppBu9BCp0YmjApT3RUcoAAGMPB44VGlL2Yn1rpkwawFwlzHoBGBxCOjVNabIpaqmcEWiTJzDTCcAL6pnXabEq2QjkcwobsyCHTHct4BYGW6cs0sIlIbb6irDyZrWqAxt1kmWFklscqmozWnpBS+LyqTt5LS4/WJK8GnS5RWDZm9lZQFiyiUDOMg1w7yB6XqWzq3k9rlnKWnn+NnKHyWggWzliwmt65IVJMCI+rrJc8erMHPoFjoGu64gSPmO4TEiXysQZTN1Ri+LjleyaRlAQ5Hmn+ioEmGgMh2QFmATx56QgTjAar6Co5X7ntasghiD/0PfkpFJomClqMogImxgMiqixq4OvqtaFtoaXP1oAZAbYgkPcrVitUbFUA2xSDMgXXXtbE7e8ucsN+JdLpkqa+lwSYNlbNpx0Ngc2FFZDw13MgHwSUQiCpRmf2Qo7QkIQ0SeLB2PzMZw9bcYWNIS47x0gjABJmsWjV6WnSqyyqIWMd/0x8x45Dpeko1IghUZVRqm1TXj9B8z4m+tNExfcYJIRDggUYByBOTD+FmssLrPwFa84vlp+Mv9oSPfyvtopzrEzSZRFJS0mzRxCER2uuFIBzvtadawehuvfDWH+szqTMs6n0a5NbV2qutPfIrXvT6vgIKtYtAQG1FqIfSx2dWImGU7G9a0frZupZ3hzlC7lOW5dkZt68BrU9q+hKQBnI4psaTEWNYTa6K4J7UOz2j7vMB2dkgmt2jnPpvSIH72XMyoxHcXmrpNLCmVypGBghv84Ag/uL8TznDeavAXH0DEwFdSCn834hQVj2W6LM7xjnv84yAPucjhE4N0XeACU0q5ylfO8pa7/OUwj7nMZ07zmtv85jjPuc53zvOe+/znQMe5CUyAiJMH/ehIT7rSl870pjv96VCPuspLUIIaGV3qWM+61rfO9a57/es0p7rVUW6jQAAAIfkEBQQAAgAsYAA4ALABnwAAB/+AAAACAoKEh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6CZhoWDoaanqKmqq6ytrq+wmDSxtLW2t7i5urucRjIziDU1vMTFxsfIycTDys3Oz9DR0o5JhBgC1wIa2agaGtPg4eLjl9/Y3IgY6JsZhxUVqhnw5PT19uPtiPIC8O+b1wUQBbxHsKDBg44GCBwQkOEAhZzMIYOYiOIhi4swVnqYkZBGUB8baYQYUgBJkpY+KqTIclLJkiIRwUxIaaRHTBwj5ayIk2dDQgUKUCBoE9ZMoxd13lS1MulSk5lgHpX5qCUklDypxnTKNWpFlV0hNZwKDizCVWRrYuS4NmVYi2n/wzqFe4muTiJEpsZ1S5bhQI4WDnVwtM6YVbmm9qJFrLVu0Y4xDzPS+1RT3J2NoSoKiRGv0lSSK1fmmE/A4HFmaSlevHkjp6ZPQ38W3Sm1y8yPs+rCmhVrAIhBBbSLwiHI1aSrz+6SHXtpcrcyV4c+/Py2JM6ts9P0al0zYwEBAwYmbtxe7q2hqqv1uBIz5ujfZ6P/+ol3/blVM+OHD5mret3zZYcSRyEQIkRNzdhn0n8JwcbgcfdppiCA3dHXE4UVTtaVXu8VNWEs52k3lncIknjMUQ9iSBsqIb7Vn0gf5mcZiyuaqF18MhKDYiQRFNZIBbCZ12KJqjUm1WjX3bgd/3s11jZjRixh5+RV6sWoomh+pSOJj8881BZrKV7o3Y6sSFlhilJ+yV2AbK6XZIA5NTSUAGB0UMJGYT7JXJN1GZajXO95kqeNiflHk3s4akUdoU0mR9lk7UVASJ13OjKPcnwmE8CFg0Joo3RIvpbpi2+S+h2DgS6pyEAFaFRpI9mkOlGforoykH4vrdmdlxu6puNmewZ75aihAqthSgHNCd1ymJaoJqPQJgptrgI5YxehskrL2FpmXusopPZxiZq2zfoZ7SbPKsbbZde2uaCqYj5b6lN/BXSNF+X6GtKtnboEKpTzLstIQJsGLCixNVqJXHPuyoemRkHdiogXpeS76v+xzulnmJkAqxpmv/BibOpWDIWMsIRMYksura0eQrHFYpqcicRiiYworQWLrPEpRx5Cs8EXndRIzgE/1PLPKSOoENIwZnyxlxl8E4YHJpggwAWMzLNnuTNZxDQowRHp9Mj6OgY0Ipum9bVu7QqtpHy+vv2nI+EFl8E1U1d9tU4gt4Iq2azJPSzc54648tyI78VhptnqzPO/ixQQQYFTVwwzrefu1mZOafG6s7GZD95bqdMRLnhvWFnZc4YquofS5AJUfrnAoecSqMKAx+0vzyBN+JJttY8ZYcPVgmeS5JR7YPkil85OZeN9O27iw12n5PuTYmsbvbzYF0slUAL0KID/GMpfh7t5VEWPoeJYSv+86GcHfyPnn7vCvvpnO2T0pTEwMgs28pMG+05mP0/hxHOMatfh6mdAAqKleo3TFaeYFJzgKERchPifAwX4ps5hjnbDqs7aHIe/uXzMVMFK0/fepaEIto+FhqIZBmenwOmxznSIucx8XIgniBVJO1tT2ttquMCYycwqAyhNJLS2QXGgqHogbGARa/GbEy2rL02EXwGrFbGSSWQ2JeTFl8ZII3QR73Tb4diUXqSu1oxEjadKo6FAZ4kROiVs3XOeFplysD5OS1YqnBIPb2ikhC1okAqpos+kWBU85kwlvKqSHrPoR+3R0X07XOMU5Zg0JQFS/3cnK4kdGVm28ERtkujLnREZhUe4pQ5t6cEkfxD4LzJZiJSVbA2r+IFK7jxoUL+UxF9AUwsyZctbRRzk91YXspbQb4a9lGUUYylBIDJQROcLoMZy9Rz1IRF0QcLh/KITRBoWk5K562b8hgiiRqHxipYJZw61WRV5bqaV0ZRZoXKpT0IQ7ZrDC2g/a8UmKKrMjADFCL9aVQFo5pN30XIbLle5RcTxkaAoG6gtuLeITUnsbg8VIDPfuYlH3nJ0/ImcJq2pKG16sEwDTFIYQ4q5kX6Qk3Ok0PU2mcebRMlvTXxjbcoJLLisJCBfpClP4bgtkMgtVUT9k4cuikB+4geYVv/FYVBK5jwi+m2k6hRog9AJUOso0J4ETJcNEXrRalqsU//56VKdmrITSvOmPv3ctyZKzeBRyyfGe4gS8zVT612Sp9iLKihhSE8UXoxW+BOq9FxYy+N11YlnTMTX2ijJZW4Pr6TrpBWzZzheKlU5FPkn2+56Ja+Cs5IeuhldfUmkYH4KKKM87Svg6qYAgkyZc9trhmQzJLOucLFJaRlFHHq5lyKEoysrrEUZxteMuhWT0uWqRZKqW9au84ArzSyO4iresbERo1H8qwF12F1fSnejaRQuiXZiUxfhqqrmml5YBdlewL23jNMNqjivCbyUknSuwlvSVIM23/XBCa1kbe//fykaymmCprimw+K0NojhpqL0U/Q7cHcLrLmeQvTDiQNQh8sbqhaVEL9OW/GE7zFjuv4Wvdtkq1/Td9jOPcpkklEsIftL4xP3NsAvbOuAXyhkEeO0dERGrVUXHGEGB5QtC7NyY3fKnLAicmf2UW+NozwryKx4d2X9LmM3N1sHO2y+aCKzhZ/L0qzmNHtOnm59cUjcsZpYzh008Jjr0zPXksuWtmlbr/SZzUJ6LMdHRDJiiSzb/Ar0s3F7peASDeY5tofCtYKwws4s5yb/kJhbPi6eIdWxOze2dpU+KU9uR+D4Anq4u/mbjv2rYkPPedGT3aOj38xrRAsb0ANy5jnT/5wnDdc5f3kW2H4DLSAdnmfQRGFcmaIiV+B+xseaRq6r7ezVnarmx7gSo3XjOUZI0hfC74xRn2UJ77IaNMbw4pAt7xzZtDKbT7xd7WMT46C14ji/ZFz3fl5J2WMtWL0Kv6tRvZvlIb+amr5esoRIXdM0V9cuMw63f6i171lTPNOgRTFY3r2i6sT00nqq+H62fWIS0zPOweaxTlHq6y6rko/AlavFSbZrlfu53pI23uMiytazjgzdtZW1pz7dH5sfUkCO1fbgXp7RtkD8kzk3M8RTzuqTvpg93pZiye2bSdx4L69Ne5c8VUdSc48Tp63On9CL3mmyow531q6raJX8c/8QchzN7mzhPNcV9cIrqFstBap5oRtvp4/K2W2dt0Egz/d0ozDMCWSSmKcO7HUzXn7HdFZLfQc5DTea6SuktRbTrogLYG3ApgYUwvbsZJCTLdlHD/Gzf0+b13scKqBnWIc2HHrnHP7w9Uz6gIpfCduH9uS7sh7S8Q3pBJoFegl2ruFRTXFNf8j4i7a6jLhHeRZLHvnRNvPxqWtwNLafOu5ec9u/yXamnj2nycdOJGRxmMd87hOA8tdOVrZXwAEdPTcaBThE+SdzHzdZTKVmffdHaAdKQeRcGWdrdUZU2QVVkzY25vdr1CZRWKZTQhMkarVzt5WA9EdCntN+SQZ/nWT/g+tlSHqVTjOodbp3Cf1zNbeXCN/gJa3SRUloNEYTMU7oF37hhFIYhVtVhVJ4hVj4hFcIhVY4hVuIhVDYhFulP0m4hFFIhUuYhl+ohGWIhlbIhV6YhXI4h3MohloYh61ih3XohnTIhHT4hmzoEFmoh38IhoXIh3eIiF7ohnqoPw9BBEWAVIQwhNaXCB+gARkgiGMYiIioiIUIiGwYiF1EhWHYhp4Ih3dYhnjIiV6iiVVYil3YhZ14iGuoirRYh7FYi6uYiroYir1oi3KIhq7IiIb4iW34hp4oi7Z4ismYh06YAT/wAYgwChk0Ax8wBhkAhq44isboi8e4inwYjt5o/4zNCIpKOIy8CIzk6I2oeIvAKIx/SIjBWIzjGIxIqI64uIf56Ivw2I31OI99GIfhSIqp+AEscAjU6AE0MANNUAZToAAQGZESOZEUWZEWeZEYmZEauZEc2ZEe+ZEgGZIiOZIkWZImeZIomZIqaZFmYAV3IAOMoJAM6ZArWZM2eZM4mZM6uZM82ZM++ZNm0AQv6QGLIJMN+ZA/mZRKuZRM2ZRO+ZRQ+ZFBOZTUSAhGSZNRmZVauZVc2ZVeGZVTKQPKYzlYs5BH+ZVomZZquZZs2ZYKEJZEmQhlOZNT0AB2eZd4mZd6uZd82Zd++ZeAGZiCOZiEWZiGeZiImZiKuZiM2f+YjvmYkMmXcFmUC/kEblAGTpCZmrmZnNmZnvmZoBmaojmapFmapnmaqJmaqrmarNmarvmasBmbsjmbn2kGTzCURRkDMnAFT/AETfCbwBmcwjmcxFmcxnmcyJmcyrmczNmczvmc0Bmd0jmd1Fmd1nmd2JmdxZkFV2AHRhCXiuABHEAGYFCe5nme6Jme6rme7Nme7vme8Bmf8jmf9Fmf9nmf+Jmf+rmf/Nmf/vmf7kkGcHAgJfAqiFACHZCgCrqgDNqgDvqgEBqhEjqhFFqhFnqhGJqhGrqhHNqhHvqhIBqiIjqiFBoEtlegjFCgKrqiLNqiLvqiMBqjMjqjNFqjNnr/oziaozq6ozzaoz76o0AapEI6pDRqord2pEgaUpWYpEzapE76pFAapcmgN1JapVYaDSgqAFR6pVzapcWQpV4apmI6pmRapmZ6pmiapmq6pmzapm76pnAap3I6p3Rap3Z6p3iap3q6p3zap376p4AaqII6qIRaqIZ6qIiaqIq6qIzaqI76qJAaqZI6qZRaqZZ6qZiaqZq6qZzaqZ76qaAaqqI6qqRaqqZ6qqiaqqq6qqzaqq76qrAaq7I6q7Raq7Z6q7iaq7q6q7zaq776q8AarMI6rMRarMZ6rMiarMq6rMzarM76rNAardIKqwhqJ9PaqR3AARxwGteqqR2AB3jAOq3diqnfGq7j6q3aKq7nWqnVWgKC8K7wGq/yOq/0Wq/2eq/4mq/6uq/82q/++q8AG7ACO7AEW7ABGwgAIfkEBQQAAgAsYAA9ALABmgAAB/+AAoKDhIUCGBqJhouMi4qNkJGSk5SVlpeYmZqbnJ2en6ChoqEZpRmipaOqq6ytrq+wsbKztLW2t7i5uru8vb6QBcEFA8LCA6DFycrGy83Oz8TL0c/UBb+C1pTV28KG2a7TyYXhyeTTx7bN6ILEEdecxeTB8tz19vfD9Nvn3Ovv+/OcEXKmr9y3S/j8EYrGSCGsgsoGSJz4rhOzgBfxAcQIcRg1fhmhaSxWcVHHeOIGHRx0kqQoaRgJGvQIy2O/aRQEtCiJMKbPkSJhAq0HcqbNZTyx6WMn8WhCgJ+qtQxXkGGslYxWZtuZVBLElh8HhhxKtuw8nlhNTkQp0ywnhfj/ihA56nAWvUIwcw7q0BUTWKlZI178KzifvaJjbXZNq/KjUbbDamoMR2Qu4FeHA0qkcEoQX0+MZ8VDRhSy08yFY1qdJ69qaF82iZ1snbjf64aRTMfu94sftggYWkThMMQEPGy7Rm8qXZt2W9TPqV1TJ9RssEnE4F3Xphw2PuQ6hxfv2whx3UnlKu2e2tT6acPS0boPethSObD68vdSV0ivACGt3CbLeZ7QA1JHrjnm0zl3efPLe2VFgxhRA3IkzUC0CNiYRwRiomGFKEUVHT4BBDAiUOSQJwB1LNpjUmmjKPiTMrB5g5E7Fu03Voe5jSTbRswZM0CJqT2nYiOHETZj/zc9DbVhS7iktdZ2sny4CYK1UGUWRESSxeMtK301H1KS0RcdmOihE4IAYHRQwpHjLLncU2PWppud/F1jYkorjpldlQnFaeRV9bFTAI5tvgnnhkYpWedgzS2pmlXl8fYPJFMGCVSMthXJZ4ZtKbRmosjoeGed5kQoVViL2mfoPQF4xdGfmkD3GIRnZSjonRSM6marZQbT5Xv0DPsorpKymtyxlvbJloRBQSvjTwaq4yiqzFDK5q+QVKAasOpFJhayYxrb4j1L8bIns1JlGs+X7W2ZYJK6XeLuue1g4JmijOi70JfgLuRjNetSY251QAIL8KvOFGytUNfi2Z2NVAaWkf+WLnlIrjwRrOlFCQCEDAAjGZAZsF/uOZxyRBjPmNSH8EGo8mMYd0jwzHa2HDN0Cy8CVMcCeCFyyOhZeXKlx8ZLIs77nCwQw5pKqyQ5Jk5D8Y6yaSJhgcVU/TBrwAU9ciQVHN3JhPd6yq6q70ScsSSDpYqwNGhX53Z1oEhrpiD6Cl1Jez23uuPahN+aq6lKu+ea3pIWBAwwzew58zhUBc5dswJQ0PfYkGRgudle3c2a6GZmtKjRRc9IFUs6O3fiTIBrBs1DLCNpTK9ih8sk6IboTOe5I37u7DaXRmV75QJz6DvLycKeLNOFozhMZ154wDkhRwiiQcm8Xynxfb+P2T3/NooXht93FtezJ+nRH1WBBgKEYf0i2QvibWzje4XXqe8CSa6XDcpfbiiBjmh4DWJIohi0CGOze2RiO6GJCNDkZwLjFIIGyROXABnlOvNZR0zAQ98GfdYjvSXuYhdiB+SItTPIzOZwD1xPtYQxQQ9U0BAYFETJwjFClvgPXZ0qSw9Vwr5sNcUhP5pMxTiYHxgKoIjle5og5He9wGhriObYn/SUWDoXOa0ZsmLZgUJIozAmsXkpad/XyDUIKpJNQhQZYRfVqDaNoGV1T/RTaxhXx3r0qI9umRP/sFK2+MVAPUNsCB3nOBThxaKAi/QHHvNIPEypLniriggr+Pi2Nh4y/5G6M9wiPZjC8W1xdDOkS8xiV8ZaVVKQ3wMe9KhVgM4I4JOgPB4doUi3o53QjoJqWdYoCUfSpSiGGhzefIpIvmBkAH63zKUiO2VMXjYNToM8yPk+UsyiSO2XQMwk/hilRrhopT3SRA+Y1qYf3pWIgaZZ4OiEVKerEYVW9rSW8ZQZwHQibZSEA2d6SsKjWGntR3KjGRrb548wIciJf2SexN7nT0sCMqCxAUs6ASnQ2VFONbEM6DgiAc8fdseRPSwpQDuasyM9iyDpEtiEUOiuf2oKoFxM0jkqOi6cvu5RKN0F+wAGqWyGs5OXoyez2MdTqBlVcSucm6oGOp1GvvSIrP9rlG6aSMaJ8eKivWREITdKxr9YzqMDMSa4XvgTJOXHanGCI1jBGKersHSh0DAghg5RUYj2Yh1OqWb3Ynq1KXWkd7vpanSs6dNlqKypykwaYcipVNjJkSCNmKVmJPKijA7MViPxWdIGBtkVgQqj/0vGzILqiot2aIHFlGGk4plUbDWWRbYsrTSVcbCLlOSVlE2bQqoykWsxNmNWNSk3dKud2y7yt36C0DeBdLfqeumn2M3HM5lrz+M+FaDXWN5kIBkvE8bSbZwc5V0VC1fmSnVuoFlqOofLyV+OcVdnvC6qoso/8W4EoRStqKP0xl1CBRamOjVntuiW3l2a1buvJEb/bkurWOdO1WS+6GBeJRlbumQwo5DcJdbodsqE/nQaGfBXX/FaYQtPi6pCpWZgGZTE6VpIMIGLD8pEydabZpMcY52vj1Pr0yKyFjOwqzFihcQgDtEsv5XkavRK6rq0JebIGwypi2WczL682Jvnkc0RQ5wPlvQUQW/dMotZI1HITJisc1XzZUwJE1aWV3mTxE4+Eocp0WpZj++NM3W0J+AWu5ix7cXmzu6sxSaz2TBjnmleWYRe0TWUcdXlR5ALDGdqnUyuj5aihvPrzexCKJ9r5qYolagQFXO6p3Jm519zWt7ESXKrpzniUYOIRj8Huo7+ReurP6w0CDsXy6sASLGN/6HFuKGwsp+K6KSBGr5V63jYUo51KXOJ6d4NmNm7QtFsUsfrFld3ENAcNuSMvcyjgfst4zQUVvtUX8omBJ8kDJ1+xWkyGW1X3eEm8pStiWzS/C/Ye2aKQUzcQvna29qogTLCtrbkZKQY4D4DrF9P6yV34yl2Yq4yTNn9QUmbGlmzGcCbIRs+fDc3uSAteC4gxtmK88PWmz0cwqt94XK78JS1dHUm5EYrmYuW6H9e0HeB1+AQChO43vE5I9lrpkwfVeRTH5yyV94kiKHOXtZCdKrLevAlIpOHUdd2snYu51GHqJm4QjamDdLaXZezkyh5aJ6aDak7ip2hPh2ghwxUWP8HfcI8Xg1Fngm473YtOOm7a7bUBk1Qtgtc4lsS8YF/DWyLznAAm45hglrB8FVbXquMufPSzR5MpO7vH6Fu+NhVQkQvojrr/K46tKeOH0OkW2vNM3pnTR9QPjYzYqlEuj6r6nO9Y94xvp4y5yEO42jTkvWH/6WBc914kqJytiCGO4wrLl3X88KY02LlPr6ZStuOXeAYViFJCyH0oSurTAz8isXss7Eu07t/cbd7Y1ERqAMf8pBWQHcQfcR35oZQa2ZWFlMVL+FH4ABaMvJ5/VVUIKQlcydFGSR8rLBFvGRd8edWPPNePLJEYoR9FpEaIPhwuVZca0d9wXdj75dwCof/cioiaJ4iLXhhZKunUkM2E2ZkZzsSIDCxSfeHgLiWWH+2MGbldT5mKtH2YUcHbsVWOSwIa2PUHVEkdT+HcstVCL+nClsYgnX2YixWFxgIfxS4VwwDLTwRhczRgXrnP3Bjd0K4es5TWYo3fuCBhtcHQtnFho3Th74lflUYh5ICe9c3fTYYgwhmX+RngWBVeiB1iItYWNkgdEQDdghUgU4YKj6RVAnFgLmWcXBXN+DHEY6ILqCGL8cEPrdicvjyWaXmWhCVia1kfp94OUmUDtT0Khp3SY3Hi+V3i55FSi8IdsdEQMP3bsQEeG4oQgqSi0SWKjJoOfW3iqX4Csq3cVwW/09s5nLil0U+9FLcN4PmF16qdk8bZmmRiF7fdYdqeF7hEAE40ggxwAJd4AQNoAACOZAEWZAGeZAImZAKuZAM2ZAO+ZAQGZESOZEUWZEWeZEYmZEauZEciZBSYAZ5UAMx4AGL0I9dMAUB2ZEquZIs2ZIu+ZIwGZMyOZMzKQVWEJIjWZL+iJIY15M++ZMCYAV7IJIkaQgmyZNAmZRKqVtCWQNHYD1DAwAecJQNsJRWeZXS1JQjGZVSSZU0+ZVgGZZiOZZkWZZmKZFmoJVFWQheeZZu+ZZwGZdyOZdnmZZDmZOLsJMpSZd82Zd++ZeACZh2SZRcOZUzcJJ7GZiKuZiM2f+YjomRg7mVUWmYiPmYlnmZmJmZixmZUDk0U6mXmhmaojmapDmTdikDkumZbVmarNmarvmaDJmWeoCanSkyn1mZsJmburmboimbtFmYq8mbwjmcxMmXvpmathkDh4mSxdmczvmcYnmctRkylMmc0Hmd2JmdGymdwLmciamd4Bme4omQ3DmZyomb45me6gme5SkyJhADRzADWVAGU7Ce9nmfzmkGTzCbMWACUfme8dkE9ImfBFqguamf/Omfk0kDMyCg9WmgEBqhoYmgMjCd1MmgDiqhGrqhjUmhFiqVGOoGD8qhJFqic0mh/VmYITqiJtqiLjqWKKqgnomhA/qiNnr/ozLpoVwJog1aozj6o0DKkTqqoj3KokF6pEgakUO6oEWapE76pLH5BHdQoTvqATRqpFCapVCqn1P6oVbapFoaplsqpVRKpBkqpmiKpFxapgvKAlnQAFIQp3I6p3Rap3Z6p3iap3q6p3zap376p4AaqII6qIRaqIZ6qIiaqIq6qHhqBU3QpVUaAzWQBWaQllZwqZiaqZq6qZzaqZ76qaAaqqI6qqRaqqZ6qqiaqqq6qqzaqq76qrAaq52aBV1aQeZpBH2QB7q6q7zaq776q8AarMI6rMRarMZ6rMiarMq6rMzarM76rNAardI6rdQ6rH2gBhJgQzJqm0JgBDXwreAa/67iOq7kWq7meq7omq7quq7s2q7u+q7wGq/yOq/0Wq/2eq/4mq/nKgMyIAFCsKPJGQMCO7AEW7AGe7AIm7AKu7AM27AO+7AQG7ESO7EUW7EWe7EYm7Eau7Ec27DbuqMm4AEiO7IkW7Ime7Iom7Iqu7Is27Iu+7IwG7MyO7M0W7M2e7M4m7M6u7M8u7IpegEAG7RCO7REW7RGe7RIm7RKu7RM27RO+7RQG7VSO7VUW7VPewFAu6NYa7Vc27Ve+7VgG7ZiO7ZkW7ZmOzRbe7Zqu7Zs27Zu+7ZwG7dyO7d0W7d2e7d4m7ciUwIgo7d++7eAG7iC67d8O7iGe7iIq7SFm9C4jNu4jvu4kLu4kDu5dou1aUu5mJu5mru5YWu5F4CVoBu6oju6pFu6pnu6qJu6qru6rNu6rvu6sBu7sju7tFu7tnu7uJu7uru7vNu7vvu7wBu8wju8xFu8xnu8yJu8yru8zNu8zvu80Bu90ju91Fu91nu92Ju92ru9HNC93usmnBu+4ju+5FulQiAD4SoDHAC+5du+7vu+jOsBHDAH9Fu/eMC+8Ju/+ru/dCu/9Wu/+Mu/AjzABBy2HnC+6bu+/LK9DDw+3vu9fVvAEjzBZhsIACH5BAUEAAQALGAAOwCwASsBAAf/gASCg4SELCyFiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1kiYmtrq7vL2+v7q4wMPExcbHyJYFy8zNBa3PjM7Ty5/RrNe9A9TT28nSzJrZo9zVxdOx5err7O3u65vjr9wD28v27/nvlfr96uT7ejWjJQ8gukwFCQT8hc+ZN1D+IibsNBFiv09Dcn0jRM2VxI/shjmsqAikKJLinKUDlZHcxpfA6OF7KCkizEFEZqFcKWunRZBAD9pqWMCeqZ1Bk8JLtVBXR51KTXoSynGQT1X0zFEKGi8kv3LYkP2DFlVqzVBXmVIzurWnyqll/7meC3fq7aOB1uyGNZZWLFxusJRGwNAiCocgl7xCdbe1aWPFhfQuLioZK6bKVjnhLbUZ4qAQLcAcTuw0bjtS7QIw5jX2MVCEWE3LxkygMIcSGlNq3TWb6tRECfsyTSc88e6/vSF/xRv6du54q5JLTyp2qbLp+m5apftbUGghurl/w65UdetazOplDYCtLNrIyMmLLwze8zz5ju+ezz/UWQD2NeHnjy3ZAVRIc4gZd95RAjZ4UWnl/NdXcQoxGBdqC142TQSgiZagdpdIKF4i5j2liIgODghieKfdZaFsKFJHyHcrogUWgReeVSNwGfII4IsfwQbJQR3Wt6NmErWXD/8qFFLU5HbW/RJlSQremMh3JRw5yZLElDiibzWCOWSLOEa1CpZaOvLaL146WGaKnZ0EZyFtUlUAhwSA0UGWaTrZY2RwPhigmG4F+uRPbhYSQp579smioeS1lWaSEMqYF5568ukolEoRY2VeOwqlIoaQ0qaQMxEIkummy1k6j1qEDoeQe6wuh2mjtZY0nVM2kjlXgR6VGtGtmubKY3KlGetnATECJkisywq7Wp5DKAuOmTxZCySwShq6SEFgVKutroKOKxCtvk4m7TrEmqufqby+Gia3hQbKkTp4eoGru1vyO+aI4/FnrHLHFkDBol4EAYC/am566L1xBjylSN8amq//wgyrue7G5dUZF03fAgrxw/Ht2hhR7TLMsVlVCqzhnKeaiB6nKzezzWAE6FustTWv+2PF3kY7amwA73UtM/mWsHDGRPdsr5zlHofeOE43ky8AS2tbNcuNTBjofy/DC/TWPdeDsxdY+1szzT3/HDY1HpONHaDSoiwI2lmPW26w0rotD8fv2jSw4M+enTbTxG18tNyEwxfTthIdnPPhrJI8K+MEj5wiudcE10zcE3cL6SIDZHC3B3lrjfnmg0r7L9zZfFrvuopoQEAYqCu7uqtv7x7ks+kizvadi+IujMNOL+57cmBHgte0EsuWEp7GPyf8dQJSAvrTl/eDj+aN37dy/yG4p359n6DnBTjnLs/eGyjln4/48qUGVnZR9lQgSBgxyB8z/QCcDfAAJrvKmWx//VNZg6QUQKn9j2uPaiA9oGS628XgeAaU4AE1tjqihC9xVVPPbviHwYxpUG5jW2BVtiM+DVbAdiTU2wl71jJsDbAz0EPSDB0yiG2UDoHW65NcarW64e1Qg+oZBP/OZ7lzHVF6dCta15T3RB9SpnQYsKAJ/ee4VmXOefnwoD+SuKUneu8egxBDAkuwsyOZ8Y3CuqEDuwbHMGYjDWtsIxfnpUEj8g57RURO6Wy3R37VMYdynGPgDumQARQSfIyM5NDuxaQdOnIQWbzen3QnyU42SP8929DfI6lkQvl05XdR9GRSSiTKQiYPUYcUoyoFVA9CEHKUs8wRHXMpQD/CKQO3HCUkmwg5CHLQdQ98y2aImcpEHTMi+ZMEIUlCryFFsJo19F0zX5nBIbauHA3JQCZdg0jt8FI6woxOb3xYQSFtE5uwPCcqwYhMc62Jiuq4JDmP401YybOcH3xmL82Jn11WRDido1Vd5OnFI5KSLx28RyshkYHQbTMwlVwePiWopZXpcxDBzKYx3UcpaWRGoJP85gxPWp2tfa8SIV0hIJlZRm0m0pm+PGDwbuLSQoyTEJTb6N4k1VDW5XRtKeSSrFYEs3fa7BFBlemznEeQDW7UODT/6145DTo39okNRFstWDvqwZaZKnKY0ArZPv/ZSafyFJ2c+GjvSppRtj7RnRsZKJISEVNGtBOtdG2Y0IaaTMYVtamvO6tIvihW2YiQQgkdadOkSE/GAraxej1GZJX61oIGTp8/dRFgCyg6rTgrnp49Jld36tXsTXVS3IuYIxaF0oCq9bB2VehqTcnHEJKVMhlY1AwcUYcGKOC4yE2ucpfL3OY697nQja50p0vd6lr3utjNrna3y93ueve74A2vcxvQgC4MtxFsEK9618ve9rr3vfCNr3znS1/kNqAO52VEeuvL3/76978ADrCABxxd/DpivwROsIIXzOAGO/i/bJhB/wIXgeAHW/jCGM6whi0c4QNv+MMgDrGIR+xdNqTBwyROsYpXzGINmxjFLY6xjGdMY/h2mBEsqHCNd8zjHvvYuTdeRI5/TOQiG1nGQabwkZfM5CZjOMmK0LGTp0zlKs8XyomQspW3zOUub5cNiECvl8dM5jJHF8yNGLKZ18zmMUuBDUhIs5bbTOc6F1kKVIgzjuds5z77WcZ4ngHqLkDoQqj5z4hONIsDPehCDyIGOTauoidN6Q1LAc8siIEHFAHp4lb606Bu8KWpkOlNJwLSbJB0qFfNav+OutScjnSrZ03r+L5a07GuwxRUXete+7q7o64Brk/NAl3z+tfITvZ0R/+NR1MXAtXHVra0p63cYA/72bKmtra3bW1nEwLa2w73tKVgBioI29uPzra41+1rcpv72t9mwRWmwO5619rd5451F+ht736vmtxryDex9+3vgn8a4M3WN78NznBEIxzehuhCwyf+Z4Cf23wEYIHEKc5xOltc01gLOQA8AOmNd/zkZf446kQ+8pKj/OVuNkPAQS5yE8Sg5NGGuc6ZrHKW2xznOw+6k3vOcpJrfOFCTzqRiS5yoxNc6VD3MdND7vRdR/3qNZ461qqec6x7fcQWP8LKmw70r5tdxeTOw8WLXvazuz3EaV872Y/+9rp/WApWUDvN5/50u/vdwnjX+9ipXnL/pP/98Akmd97lTni6I/7xBFa84Fne8qN3HfKYn2/cPTD4rRf+8pkPvXvjvnfCz2DfoBe96sUbeMZ7/vRWX73sR7/40nve8rPP/Xpbb/vKo173wAcv7zvfctinPvjIj+7wKU9y4yf/+dhdPtudD/3qT9cMVtiD64v/e+t7/7nY137vm9/975tfueHfPvljf/72KyD94/+8+90Pf+Jzff7trz/zY0B9/H9f/9NXfv5nfQDId+w3gNVXgI0ngAj4fAp4ewyYYg4wgRRYgRZ4fA3IZQ/oeweoYgLwgSAYgiLoABlYZxt4fy0mgioYgiRYgm12gvLXYhY4gxXognQGg7hn/4PIh316IAPxxwJZ0IE6OHs86IP2x38ROISrV4Tx139KSIRW0INNmIRPGHo8KGwmsH9OWIWqd4UXxHw0UANUyIWQx4SNRng1cAVmgH1W0IZu+IZwGIdyOId0WId2eId4mId6uId82Id++IeAGIiCOIiEWIiGeIhz2ARSeIQygAVNkAWQGImSOImUWImWeImYmImauImT2ASe+ImgGIqiOIqkWIqmeIqomIqquIqs2Iqu+IqwGIuyOIu0iIqW2AV8YAQrhwuEJwFqIAfAGIzCOIzEWIzGeIzImIzKuIzM2IzO+IzQGI3SOI3UWI3WeI3YmI3aqIxgIAG7mIUhZwJCYP8EMlCO5niO6JiO6riO7NiO7viO8BiP8jiP9FiP9niP+JiP+riP/NiP/viP7ygBHUB5BFmQBnmQCJmQCrmQDNmQDvmQEBmREjmRFFmRFnmRGJmRGrmRHNmRHvmRIBmSIjmSJFmSJnmSKJmSKrmSLNmSLvmSMBmTMjmTNFmTNnmTOJmTOrmTPNmTPvmTQBmUQjmURFmURnmUSJmUSrmUTNmUTvmUUBmVUjmVVFmVVnmVWJmVWrmVXNmVXvmVYBmWYjmWZFmWZnmWaJmWarmWbNmWbvmWcBmXcjmXdFmXdnmXeJmXermXfNmXfvmXgBmYgjmYhFmYhnmYiJmYirmYjNn/mI75mJAZmZI5mZRZmZZ5mZiZmZq5mZzZmZ75maAZmqI5mqRZmqZ5mqiZmqq5mqzZmq75mrAZm7I5m7RZm7Z5m7iZm7q5m7zZm775m8AZnMI5nMRZnMZ5nMiZnMq5nMzZnM75nNAZndI5ndRZndZ5ndiZndq5ndzZnd75neAZnuI5nuRZnuZ5nuiZnuq5nuzZnu75nvAZn/I5n/RZn/Z5n/iZn/q5n/zZn/75nwAaoAI6oARaoAZ6oAiaoAq6oAzaoA76oBAaoRI6oRRaoRZ6oRiaoRq6oRzaoR76oSAaoiI6oiRaoiZ6oiiaoiq6oizaoi76ojAaozI6ozRaozZ6baM4mqM6uqM82qM++qNAGqRCOqREWqRGeqQSigtKuqRM2qRO+qRQGqVSOqVUWqVWeqVYmqVauqVc2qVe+qVgGqZiOqZS2pBkeqZomqZquqZs2qZu+qZwGqe8iKR0WqcgykZ4iqd2epV5mqcFGQgAIfkEBQQABgAsYABAALAB6QAAB/+ABoKDhIWGh4iJiouMjY6PkJGSk5SOBQMFmZqXnJkDlaChoqOkpYibmYMtgkMmpq+wsbKztImYmJ6auJe1vb6/spuYgqsGrcDIycrLope3qJ/M0tPMuoIZH4IdANTd3t/Jz57g5OWUuNHR2Qbb5u7v8ITinfTR8ff4uwURIcX4/wCl0fNkL6DBcsIy8fN3sKFDWfqEFXxIEdima+vaVdzIMVJEXRM7ihylbwAFbNq4jVzJslDIljBF2bMw6FjMmw9LosPJs9HHCBlaROFgs6fRfx/HHV0qTxfQjCqZSu32cqpVQdAwDtV4tauyXR+rel25UxAGoRw6jF3bC+wAsML/2N7cVSit3Lu/BqbCO1JcNGxb+QomlVRXgQCDRd669TRw4seQB/vVajey5ctj37691Lgy5s+gr1pAqza06dNzr5FGzbr1yJMfHLueTRseOmedS9fezRse2qK9gwuf9tvV8OPIY5WkgEGQkOTQo5sSK726dZ+KOpSIer2790FgCWnn/r18d+rm00MvOwiM+vfRB0YQBEY7/PvRKdC3j79/7YH6DRIEACYY59+BrRVASH0DFojgg5/lwgkF/YAhRAkGQqhhZC+1YCGGG4Zo2S4UflBfCSKmKBhihQR4ooowyrVLAJeU+GKMOHp12wDzGXBjjkBOdRs/JvIX5JFLbWKj/5FINmlUAC52MKCTVLYUXntSklfllhRtpkkEGBSJIpdkVrSYQiGIWeaaDmkSACZEfsjmnBSBqSadeN6DSpzj5emnOQqCx+d2fxZqDpxp/mjoossEOsg+iTLJ6KTI6DMopZjmhUoBS46Z6aezFATpB16MB4CWoKZaSUn7hFnqdqeqKmsom47qBaGz5lpJrUR6EauuwHpUUo++ohrssYns6eqvyDaryG0lFuvstIcMm6a01GbrUiFeeGCstsgOI4gGH4ThLbja7nmtCd+iG6wm0bLrLrhoknruvNNu0uu9+Dar77X89gvspvu2K3CmvAJs8MEI/1tuwAzn6nC3C0e8aP9CtkJssaxfKrwxskSaW/HHfmLcq7wkz9oxqSin/CnBaYbRMiI9ujynXj3KbGwNVCjg889ABy300EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYGz1FGU2EwWwhPEshRdZkl2322WinrfbabLft9tZdf01I2GO7bffdeOet995899003CIjQrffhBdu+OGIJ0444BoLMrjikEcu+eSUV874zlSIXfnmnHfu+edXXy545nWDbvrpqKduOdciezo36arHLvvstLd9ueuDIAF77bz37vvvSYt+iO6aA2/88cjLLrwhjyfv/PPQR7482LtHb/312N89/evFZ+/99+Bbvf3/IM2Hb/756Bc9viDEl57++/CHv74B7cdv//3Xz18+/vz33zvggjgVefbnvwIa8HQANIAABeiBGNTvgBCMYOcut8BTNfCBEsygBhM3vzRUb4MgDKHe9PdBEZrwhGkjYfdQyMIWho51jTMAAV1IwxoubX4zaIMNd8hDpcFNDIqYARt6SMQiBg1uM2CEEZdIRCQqkYlQrCHc0hDEIUbxiixEIg0SIUQsetGEWjSECWIgCCt+8YwZDGMhxlhGNLoxgmpEhBnfSEf+xfEQc6yjHuF3R0PkcY+ANJ8TFVGHQBryfINMBBtsNqlEypGRjHIkHiG5KEn6kZKGghsLFlEHTBaq/4+F6KQn/QRKQixylHmyZCFOiUo6qdKUrcRTKQfByliuaZZltCWbFIBLA9RSl1viJddmsEVFHvKY32uAE5pATEX8EZnQTJ4ymVnMQ7DgmdHM5u8aMIUsNBMR19SmOI/HzS58kxBs9OU41+m7clJRjGRUJzvnObtyJjER12wAPfeZOnsqIp/8DCjo/IlPUQKTTAQFp0EPuqWEWpMNUxCoRDnnUENcM6ITzajkyrlJZ+pToyBNXEX9+NGQmpRwIyUEQE/KUr6ldBArbalM7/ZSWs70pnbj6CKwaboN+PSnQA2qUIf6UwfgVII6dSbtBMDUpjr1qVCNalM3cNQIJtWYCv+YilSlStWqHvCqcvSZVrcK1a56tYBgxeNSycrWpxJgqmc1YFoFkU6Izo6oeM0rUI0aV/81oAFd6Oga41kHjPb1sFJzAmAF+9CSIvaxTZurStngWMhaFmmShelCGUoljsbAAwrlLJc8C1pDxOCil00tZhc7CLmhVrWwHdpf68BYi9o1trgFWgPYMIPPCrAQMc1tbuvQW29VsIHhFK5wd8sC3x73tDxVLmSZ69wFIje60n0sG5prXOtCN7u53W51Gfhd8MZWvN0lb3LNq1r0VhAA12UvbN373PXK17L0FeAYoVvZ+/ZVCmyowXgJFIPT1qG//j0rgAWcXgvyN8GQza//eikLYe1y973XnQKCK4xTCTv4ohvm8Ew9DF/oGlbEVV3wgEscXBTjVMUNLnENdOjis5K4gTXAbo1NeuMH7/ioPW7xj1saZAoP+aZFDvGRNVrkJc9UCm1gMIbL62SWSoEKUq6vjqu8T7FhecXx5bJJvZxl7wpZzAIlM5h9jOaMqjnG11Vym9n55imfec70rLOW8ezmK5d5wnyeqJ7NvOVAR3PQgDZ0QBH94UIr+piMZrGjH23ISIeZ0vO0NJUxvU5N25fT4vT0pEFdR1GTutN+XvOnTw1NU7M61FRAgqpHPTkH2NrWDHg18K4sazhvWnW3xrWufefqYSOz2MaG9Jd9/33nZJd62VOewYHl7OwvSsEM0H7uDLqg4WoH8tpr+POHuU1tb18R3OJmMbnNvUd0H8HX2+42u0tthnCvOd7lnvcS0a3qdev7jfxmtr//jcaA23ngBLd2vaVcAlipW94JV7i9vdVw9XbhrxE/o8Hre/F8Z9yGGzczwj8OxZBbHOIkL/nC+43xlEfR5OP+q8xnTvOa2/zmOM+5znfO8577/OdAD7rQh070ohv96EhPutKXrnMFrBzONJhBFtDghClY/epYz7rWt871rnv962APu9jHTvaym/3saE+72tfO9ra7/e1w53oDpDBxDHtABlh4gt73zve++/3vgA+84AdP+P/CG/7wiE+84hfP+MY7/vGQj7zkJ095wTchC1WQwYrhK4E52OHzoA+96EdP+tKb/vSoT73qV8/61rv+9bCPvexnT/va2/72uM996qMggRgLsAMSCL7wh0/84hv/+MhPvvKXbwQjLP/50I++9KdP/epb//rYz772t8/97nt/G++teAk6IITym//86E+/+tfP/va73/0c4MD750//+tv//vjPv/73z//++///ABiAAWgqFVRx73WACJiACriADNiAAkQHUOCAEjiBFFiBFniBGJiBGriBHNiBHviBIHgqF3ABCzSCIXiCDlgCdDAEDoeCLviCMBiDMjiDNKiADXeDNxgwgwZoggLEgzXogiUwBCz4g0RYhEZ4hEiogziYgzBogEkog074hFI4hVRYhVZYg4EAACH5BAUEAAQALGAAQACwASoBAAf/gASCg4SFhoMDh4qLjI2OiYyQjpMEkpSGlo+Xm5ydnp+EkJmgjZKjnKekl6meiaKDH4IdAJ2WrKyqm7i5vL27vcDBub+Lr8XDwrzEoQPNlYKxBLOgxsm+1oKm2di13N7f2KbLkeCKy+PMBAWCFi2CQybl8vOp6OD28/n6z/v5+OvqBAF0RwBesmr9EvoT5cqZwoeHcDkkhU9VRYgBn1HIEO1axHAYC2njBzKkSYrIjp1MKKpAs40dUYZaKVKlxZk0c/arRw2nz08XcxrDQDAlppVBS/3ciUgnS3okhSV9NJURwEQFIoQo6nGk0G3BbCms6hRY1YkkxbYqae4bQGiy/2iZRUTWaFO7d6OW3ctX7dG1fC+5DEWBQLRp1uqGlRq4sWNKCD0q87tU1TqsBNq9iyczk+K598AFKPBW7+fHlWsqw3m6c9uIaIESekvQIN5KrbtNqksZ9IDLYHOjVp2u68e9XpMNBs7xZl7iw1GdFB69nDZX0ANTvyqoOePq4MM/FH4dtK/e2FxeBkhUZlqwep9+8+yNuvhJpaN+jgy45/FFAQCj3jrrbHWfPKSJRN9s+SVGzoHSOcjPgs9pB99iEKaXnX2S6ZYhh/pdOEiAsTVmSYMZYgQJirfVF6GEf81X4YusYWJMiWz5pwiLr6XoI1KpfQdjdrLddcs+IM744/+S/fC4invTOcefJkzOmGR4Z8VYJWQ+UojKlUTq+BqYW5bZo4zReVkcXbghSWYviJn5n4dl8dThmWgq+WSbrJ2C41gM2cQlL3HKqeVB4+Wpp3XfIbSLQ8I5mVNpWVlAQBQcdGDmo4PqQhOH6JnoX3JCojYYARlcmummuxUpaEhvVueojV8R52eWqpWWyEaqampoaPH58+ufQVIZ6p/E3gklnUcNBkmqmPq6JXm/1jlnf4dGMiWGriKKE0DQrlotq/pw6qKEdioYJkTpSgbQW+FKO+6Bsf5Xb44xPnpvLWTV89YAFFhKAAdBkPsgnilOFSpU2ba6aDGBArnNfiLiFEH/qgMXXKbCUeqp2JWkBXDWwozK00ys/+abn6WYCgKAXPPGLObDDqvTL3rtPnYjzdnc7NPJJIXrMsw//mJ0xRYyRvK1fHaqFMJMO4bdgxLxstwAF38QLdFLprtvsTSCvaxziyS424I593n0WBt6alkhMG0tc6xfN5yRTr+5rTfHMpe9TbxzP+2tSnVHxhvSY9vdN7O7NQj4xsehQ+2rgq+r7X/cUb501M+RamuwoEfet0NXQXJxrwbTCivlM+uS87b2It40lUhvPrGf2pF56m+8Rrt4X0PKrnjwpYhDO8+/U7R77+Kmnto4k7eYuOWVU7XmsdTLWmsij08bbLI1l5r8/89GY6/a1MKPD/Ezlapqm5xqria97djmS7aIsAvkJDH2eM526zPLm0AAFq73VSl/ymLdoqaGK9iUam0KDF346icqAM6GEMzTGOSSJ6nDcYtzbKLZrGrUNcYQiDmq0qD6Vji7g1krTLijoMn6hzxqAIRlzWOhBKuFK3OpqHogTAz0QBTDQeBQXjocHuMOKL4Elqg1DVyTeV51qmwU5lJCUGESJ8TCiqAlKR+bIL+gJkMxdgsTwDGEFsdXN3xNr4ZmdBrrToOsN9GRWKnAwBb3lKYIntGFcdyh4MAXtuyBZyINAY4e91i7DQ4ugXwM4vQQmL4xKhEUzhLEIvfYRm9RDP8oF/EM/+D4Fzoeqh58i99qIsDIVh7Ei5A81yra2C8CQYICegQDG6X2QYZJ73iRLJfYhilIOR7iX6XRpSuZuBRV/tE6DHHmF81SNWLqrWSFyGUHSrBMQ/mPGx+DHu2cASmKSIQ6dIvmIMCwTR2qqZOPvB9yJna9vvDtl6UrAAVCQAB2ctOV8PQl3q4pwYAyJZKem5I/u0nKhAn0mb+cYgs91MZ3ESAC2vznFp15n9wERXLyTN52JoLLfrazm2lLGkTJWEk/WpCQJqlmQYFZNcwQYJ8m1ShDR2FQhh4FZ7870oViqJWcNqICROIpIOklrKE21GNSkp8xmaRUqUqyES3/iIIQdGqIRRbxfKvDli3QCUT6AdOSxQymT61Ko0QQBQxbVWvnzqoo90QPYeazkmkaWtWnrrSL2BTEQtn6nkautTKGq1goQwrTS1pTexbxYZBYMVhFbPJMUxrhQyO61CIl9qp5WWwxp8lSzFKVY5TslCQqS9e9NjOshgShZvHhF47y7KPZ4ulYc1u5ntaqs8djrWtwszT7pJStjX0aZcQZIscql3jQ8S27RBe2yAj3WjI9GJloWCG0PXGcr51TahsmWpcC8XOH7WtzXVuI66oOfUZ6Xkt/CMcwxses1YTgSj9ZtK86xa1GZQRSHztf+djETmYdxjfLWrwzQhGGfq1T/5LI4l7Pck66tgVbv0jYo+Oql4vmdW53k8pDiSYVRxXWZFtBZ0egzRTEBH4xXj4cSNy2YrzCk25Y7JvgdZ6UABe4gF3jO+L6kEqouhHtOeDjFRyLj8alVVKGsYTWy6FXS5UNMkXDa8dAMril9IsNfiEsmdd5ObrOmypoI0aIFM/ku4WNcS+Dl937Mk0tTeZsonhb4CSS5Ypupi5YCzkfJEc4yYMOrbGCc1CCqpkuOgbMPe22uUAf9tKY9lED0PAEuHI106AONYQ23em4ivrUqAZPA5wQ4FS7+tV7WXWrYU3rWmNE1pa2ta53nQxc/5jXwA52rzntT64J+9jI7gSpi/+d7GY7mxO5fra0mx3taVt71w2YwqyvzW1kZ3vb3Q43r339aXGbm9bkPre6bZ3udbvb1e1+t7xDHe952/uw9SZEDe7N7y3K2gtrHMS++01w9f074IIYeMEX3rd/l5vhEF+cwxeBhIhb/Ff/NvYgKn7xjm8p44uoARWkIAWPmzxFGdc4AURO8pO7/D4pVwTLS/7ymkcn5oeYuc13/hicGwIJI6c5z4deFp8XAugtJ7rSc2J0AgDAAwRAutCXTvVba9sLLyvE06Me9Kp7HSLfxrrKdf71su+j6QLvutnXLg+0J1ztbI87Nxw+drjL/e7BoLvWoU52vPudF3onxNb7/vf/wn8i8D+3u+EXfwnEH13xjI88Ixyvb8hL/vKFoHzak475zmee1V4oQd057/nSkzr0o5966Tt/etErQuqrX73buU762F9+9rC3PeuvnvVD5F73twd97w1BeOBHHg0EELvMLW/8wiNf+TlnfvP97oQmQJ/40p/+3at/fZfxPfvajzv3h+/9lYM//Gsfv8p/j/6/q//152//198f/drLX+70x77978927ru+/qrHf/1nfUPwcMUngOlHgBqlZW+3fwg4f9b3f0AmZA0YgA8Igai3fBZ4gV9nfeRXeRsIHgcwgiRYgiZ4giiYgiq4giloABxoEvlXCAcYHgJQgzZ4gziY/4M6uIM82IM76IIvCBFTUAYemHop4oNImIRKmIRAGIQKMYRFqIEhqD5LWIUC0IROmBDVFwYeYIDxtzhWuIRYmIX7sIUeYIStFIZKOIZkOA9QyIVoqEMCMAhqyIRt2A9veIZ7R3tTOBx1+IeAyIZ3CA55yDVbx373AYiKGIaCOIjeUIhSmCIkKAAsWImWeIkq2IiOiA2QCICbOHSdqH99+IkXZ4ZxSIov5wSmCH8OiIodNwVNAIesOIquyHCwKIu+94W12G+rFot6mIutuIsM14u4KIrCeHKhKIO6eIzzlowgSIvMaG/OuHnQGI3yNo0VaI0Xh43mF4zaKI1EWIyP5/+N33iN4fiLiUeO5ehuzjh4y7iO4gaJDOiO6giP5yaPFEiN9lhw3DiD+/hu3IiI/2iOvrh+7ziQ0xaQI4eQ/JZtBcmKDHlvDimOhXCQEdls3EgAFnmRyNaPG8mRwpaHXliPIOlsHkmSJZlsJ1mNKdmR52iQKNmSIfmSsyiT5raSNhmPNOmJOdltONmT3EaM6KiMMQmUtqaKDwmMLGmU7LaKSsmU1iaUMLmUUAlrUlmTVflsV8mTWYmRO2mMXemVSZmOYWmSX3l0bUCVZXlqUJgGQ7mW19aWcHmTRDgDjtAAc3lsUDgDNNAIeJmXwbaXfQmYcVmXg0mYCWmYiGltgjn/LhvwmJAZmZCJAH+5mISomNUimZr5mJRpmeXQmJ5plk3Al34ZmrUGmqbpkqN5mIbAAmygAAqQmq+Gmq35mrEpm6lGm4Zgm7iZm5ipCLzZm2z5m7UJm8I5nKu5CK5pnMcZarpZCMHZnJn2nIQQndJ5adQ5CNZ5nWuVnYKwndzJUN5JAOAZnss0nuVpnq2EnsypnuJJnLvZnu55nvAJnfI5n+tZn9UJm/zZn/75nwAaoAI6oARaoAZ6oAiaoAq6oAzaoA76oBAaoRI6oRRaoQSanTGwnBa6oRzaoR76oSAaoiI6oiRaogqAoRpqoiq6oizaoi76ojAaowJKnR6QobYp/6M4mqM6uqM82qMrKphQVwg1mqI+WqRGeqRImqQ9CqR7Z6NK+qRQGqVSOqUQ2pY0EKSD8HROSqUA6gBe6qUNwKViOqZk+qJMOjQEMKQ3WqZfCqZl+qZwGqccCqRykXVqKqd4mqd6uqcJSqdCuqV8GqiCOqhwupcxgKWDcKeEuqiM2qhIaqiIKgiK6qiUWqmWyqJnSgiTeqmc2qmeSqGZmqiA+qmkWqqmeqGGGalpOqqn2qquSqqhKqms+qq0WquNGqurSqS2uqu8uqe4uqm9GqzCSqa/OqvDeqzImqTFqqvJ2qzOuqPLuqbPOq3U6qLRWq3Ymq0mmm1dwAKHagjAqv+t4jquFMqt3qqq4Uqu6rquCsqtM/Ctf8qs7Dqv9Bqg7gqvmmqjU1Cv/Nqv/Wmu+Cqqrrmv/lqw9Aqw6GqsBruw2Yqw4KqwDBuxz+qw8SqtEnuxzkqx+SqvGNuxwqqxAmuxHjuyvdoA3RqwssqxJLuyr2qy51oIJWACEDulDMCyNsuhYXqyQFYC/xSzM3uzQHupALuzGlWjNcAGUhC0SkuqDeCyKLuqR5u0Szu1Quu0CauyVJu1gXqvVyuyWvu1e8q1D4u1YFu2b+qwPBuyZru2eoq2RfuzbBu3UXqvJsBV6Sq3eDu3U9AF71q3gqBld5u3goukGgu4cDu4iKujIJv/sl6buI6ruHv7shX7uJTro4ubq41buZrLomI7uZv7uTDauRubuaBbuiB6uYFruqrboah7uKv7uhHaumQLu7T7oLJLurWbuwt6u7rbuxJauEJWozOAu75bvAIKvKs6vMa7vO0auU8rvMTLvNLbusorvdY7oLx7vdr7n9m7vd6rAN37vdtrtQ9bA1hgBeibvuq7vuzbvu77vvAbv/I7v/Rbv/Z7v/ibv/q7v/zbv/77vwAcwAIcv2ZwBTXwtDIrA1iQBQzcwA78wBAcwRI8wRRcwRZ8wRicwRq8wRzcwR78wSAcwiI8wiRcwiZswVggAwgcAxIQBWfwwjAcwzI8wzRcpcM2fMM4nMM6vMM83MM+/MNAHMRCPMREXMRGfMRInMQ5HAUS8LQEYAJCYAQyMMVUXMVWfMVYnMVavMVc3MVe/MVgHMZiPMZkXMZmfMZonMZqvMZs3MZdbARCwBmM4AF0XMd2fMd4nMd6vMd83Md+/MeAHMiCPMiEXMiGfMiInMiKvMiM3MiOzMf4GcmSPMmUXMmWfMmYPIhBxoCZvFabfAEv8zKBAAAh+QQFBAAGACxgAEAAsAFUAQAH/4AGgoOEhYaDBYeKi4yNjo+QkImRlIqTlZiZhAWcnZ2FnqGio6SlpqeoqaqrpJqukqGDLYJDJpisr7m6u7ywn727l4KsxMXGx8jGwMueA5OzBrWunsvV1sOj17fJ3KeH3eDh4uPE2gachBnm6+y+5O/C2vCliPP299nt+q/x+/7/iy4JBMhoHq9+mfClIsivQIQQ0A7SY/hPYT6KlfpZ3Mixo8WHERvGwohRlL9WJz2qXJmMpKVfIXqZctnOZMWJ5ljq3MnzXU6aJG0SRFitG9BzCXsiOwpNmsyj7BbqIzp1FSilWFtCfekpQoamtraKDTi2bL2saHlOHaTuqdmhQ/+FugQHMK3CdVSjvpU38tpMsakCBNhoza4yvp1A5rK6N9jRvAyFyTUQ4Jthj40pTYKYubMiwZ4XH5t2ufTfqL8MxBQpNbSmUaBdF1WVseNr06lryg5NVO1u1rhL4839W561ysaLA1s12BvXyZtMNaetfJgzyNUj3d2HPfu5cqTxCUYLcICg1d7T85qOznuxYO/hM+583ZkgDOrz70KuP2nP51qFdh0nEfT3SHe1GQhUcCyN59xj0Cko4YRXMZjPaI3EZplw6XxA4YEBmoVgWeSBcpaFrS3jTH2CZODhh45sF5mCKNao0IorehUSjGT5xWN+4WhmI10GWLCjhP/9yFv/ivP5x9I/BSpZVXszwjgkg4hNUgAFSt4jJWAGAXglSuvUx8kAin1J4YjqHSbmmCFWYx4hnKmZHpuuwaknlYWF4tUHUXDQgZ2bELrVnkPCJYgFgAq6pqF5whMjonw25hWkmE5IqUrDEccjdZl6tmmJneKZHaihlkTOm6M2mWpdr3Zmqna5tZpWprPGSqKtGELoZ5cF6doYKqySKRqxwCLV5YPCxqWKhu7wimKsuTY7Gz72rWXnQGqeZu2uiOZkWpSfBlTtt1ni0oi0prHVbYTocudpbfAKyWu6lVo5b7xBxQkiu6gy82uy/IK5UkFu4lrwwpkBPI62DEe8l8PgwZqO/8SyPjrlRb5yrGoB111qAAcYl7zcTR7fRvGZXTEaqMkw00qpueEiLAoFLgYaRMw807tyzdj4mTMHO/dM0bmy/WxbOwM0/cvQgxo9FtIGK82pOfX9GWjUUgel6b56yezvb31B3fXZxVpNKc6Nco322zRPa7OXGLG9Ndx4vyRwe3yrLc6AWjua9+DTRNfXd37DMyeBZhMOMZKJc1S4uQM6Y7fgjutWXORqz9lio05ljm584XGeMjMhu8xB6KLHbPrDJ6/bCZpDF916n8Y2q1HA2xpzue32YmUJd5HhZODro/4+edy+MQNVvXciT2ngwG9jYVEd54up9KQ2br1OG3Kv/f+w4vPq+aJtA8d5v8zKimD5YbrFVvrHJnpQj/gevmSK0cLP0fneW4whkFeq031obJPyX4Q8dzm3OSaBB5NJ+zY2vv7wr34KJMWAztTAB1YIHySqif6U45P8ZbAZDqndta6HQWqIi09Uc88JeeK0+emshVmpkrwquDlJ9W+GrAAg/SQit+U9D3pkA6JpmmZDzC2nhIJgz/jU9UQeVnGE+iHdNxARLMR5y0kRhCAqnHYmNKnOgd8DoRi1GLzcvRBs5ONGGyO0tOLB7jtzCmBCBlhEHFLQjTRyVdCUCA7ADa0EYfHZk8LHu91gMYv3aNoGCRnEDgUKkbfLpCYd4YQn3HD/k6AM5SA6+UlRmlKTniTaKVd5uyeAQZWsjCXhXAlLWdrybbSs3i13GTMnCEIIuuSlMCXmSwMAc5jINFkuk8nMiC2zmdAsWC2jSc1mTbOa2MyUK4WQzW6GapveDKehninOcv6InOZM54TAqc52Soid7oxnfrZZAnna0zv0vKc+i5PPffozNP38p0AbA4YO1HOgCDVLQQ+a0IZCZaEOjShQICrRihJkCk2gqEU3qg+MapSjIF3HR0NK0mqMtKQo3cVJU8pSTay0pTCNxEtjSlNGzLSmOCVEQHPKU0PstKdANcBPg8rToRI1pzc9KkyTqtSUGrWpMH0qVFPaSTAIgaFT/41pVa+aVaQatKs4ZSpYOSrWsUrUo181K0udkNG0qhWlbC3rWx0q17kmtK52HShe8/rPvfJ1n3796z0DK1h5Eraw7jysaxDA2MY69rGQjaxkJ0vZylr2spjNLAKm6lFu/ogAoA2taEdL2tKa9rSoTa1qV8va0ArgtbCN7WsXwNmMepZHss2tbnfL29769rfADa5we0vbqUq1P8NNrnKXy9zm8ra4UD2ufpxL3epa97rQhapiQ/NaAlz3u+ANr26ze1S0YpVC3hWvetdr3QUo4L3wja9850vf+tr3vvjNr373y9/++ve/AA5wfRsQV7eykr3Vda+AF8zgBjv4wRCOsP+ACdzW854SwdQlr1ILeksMO1fDR90u2jzcXAVL+MQoTrGKVwxhCov4bCRmrolZTOMa2/jGJ3axgVcZ4+XOGMdADrKQhxxfHVvYlD3ObXqfS+QmO/nJKTbyj5JM5R6DmKgvzkyVt4zhKwc1y43hspjV62WemnfKY04zdqHM5ja7ub8NODNu1UznD3cVzHvRrJ73zOc++5myd94xYiOK50Fns9CGhqaUE93QRTMaoY5+tEAjLWl/UrrS+qSwFwSNaXtqmtOdjuenjxxqe266BABIdan3eepUA2DV8hw1rO8p61nHmq2ntvWtm5BrXZsa1L4uZ6+D7U4vkJrY4vTCq5H/nU5Nq5rZ5XQ2tM0p7WmLs9rW9maceb3sbHdz28r2trC7Le5uhrvc2cToudFNTXCTm93UXDe84/3ueTdT3va+97HzbctaGyIN/I4lgZ8w7ELUQBBSeLPCF87whjv84Qv2t8GpIIWEQ/ziGM+4xjduY4kTogYUtzjHR07ykpv85ArQNKoVAfKKo/zlMI+5zIes8noLouUin7nOd87znsMZ1882BM59TvSiG53nzra5AYZ+dAA3oOlQj7qQa87ykEv96ljP+pOpfgima/3rYA97jnG98q5bHeYLOIDa1872trvd7T8Wu9znPmCyK93rKE/72/fOd7XHne6ApzvXhX72/8Ab/vBzH/zEXY74xjse64r/eOEfT/nK9zzyg8B5wFlp7LuHfPOr7HzVGW/50pv+5Zi/+eRPz/rWYzz1S1+962dPezfDHu+1z73uaW730ed898APPouT7nvhG//4Y+e25ysO+lOK3uzMb74on0940iP/+tj/7+1ln/3ue3++27f+98c//vD/nvzox77508/+7K+//fA3/vvjT3/dNwANBC979c9f//6f/v75t3z8538ESHnzV4AIaIC9B30DmIAOKHj4R32L14ActwEWeIEYeIEO8IAcCGcRqH8TGHMZOIIWuIEdeIL4BYASKHnih4IuCHkfKIAvOINZd4A0eINGZ/+DOLiDSBeBQSCDPBiEPUhwP1h8QniEMqeDSLiEI6eETPiEr7eA+weFVLhxTliFWPhmxMeAWdiFDbeFU+iFYmh7QAeEY3iGTgaGEyh9oFSGvseGm+SGDAiHmoQGvHYBAkiHmWSHymaGaPiHQTYFZdAEYeABfgiIiFhjgkiIhmiEifiILLaIhXiIkFiJESaJjciFlriJlziIk+iInBiKC4aJlCiKpshfpAiKJ+cArMiKp/h9qQh9MocArWiCr5h9pOhqi3eLvLhfuRh0g8B9vTiM7xWLhyCMJvd0xIh8xriLy/iM8NWMLAiN1CiNmUdx1AiNkuhqwBh7FJiNoriN3Bj/guA4jLmoieXIi7+oi6rXgukYjp5oiNzYbbj3jvDIiKVoj5toje34jfqYiPzojf74j4AYkPVIkJVokNiIkPf4ibLIkKGokO4IkYgokQNJkV5okRhpiRq5kZC4jkGHBMjokWIojvM4CCI5kSRZkp7YjdeokivZhR35cgwQk5U3kyhXkzb5eDi5kyyJj4qQkhfpk0gYkEJJlGcIkqnmATFwlEj5k5M4jwDAlE75lDIZj1I5lTFwkFb5hEqplVzZlUv4lUwZlmJ5hGS5lSN5lkGYllXJll6JlVJJlWsJlziYlmZpl3fZkllZlnWplzNokvPolzAJmDSIl39pmCjolomp/5gdyJiF6ZiLKZeD2ZSNKZkOCJlDiZkJiJiRyZkP6JmbCZoEKJqkuZf4OJdq+ZmnWYCm2ZozSGFRWQKotpSrOZqwGX+yKY+06Wp0yZq5WX+kWJu+aZnAGZzxN5yVmZfI2X+72Ze32Zwn+JyqyZzSqZtsFZXLeZnXiX7UWZlv2Z2uSZnc+Ju4KZ7ep5nomYDfWZ7GeZ7rqX7ZKY/beZzx2X3tWZzWeZ/fl5+2uZ/82X2vGaD0N6AECn8GeqDsl6AKin4M2qDj96AQ6n1xlgXa6Z4ysAVPYAUc2qEe+qEgGqIiOqIkWqImeqIomqIquqIs2qIu+qIwGqMyOqM0WqM2Wv+iXXCh5WkEVXAFPvqjQBqkQjqkRFqkRnqkSJqkSrqkTNqkTvqkUBqlUjqlVFqlVnqlWHqkXYAFcJCVS8kBLMAEYjqmZFqmZnqmaJqmarqmbNqmbvqmcBqncjqndFqndnqneJqnerqnfMqmSyABXppqHSABRlCohnqoiJqoirqojNqojvqokBqpkjqplFqplnqpmJqpmrqpnNqpnvqpjyoBHRCopFqqpnqqqJqqqrqqrNqqrvqqsBqrsjqrtFqrtnqruGqqvZmrvNqrvvqrwBqswjqsxFqsvbqrxpqsyrqszNqszvqs0GqqF4CH0Vqttkqb2Iqt1rqt3Nqt3lqq05pAauH6reSKqtmareWaruq6rsQ6ruz6rvAar/I6r/Rar/Z6r/iar/q6r/zar/6qrtPqrv86sARbsAZLqgFLrakWCAAh+QQFBAABACxgAFAAsAFYAQAH/4ABgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucjAMFBQOdo6SlpqeoqaqrrK2NA7CirrO0tba3uLm6mgWCFrvAwcLDxMXCoKCyGcbMzc7P0NGFyJ8U0tfY2drbmZ+hobLc4uPk5dfhgiEt5uzt7u+qyMjp6/D29/j5jPKgERYf+gIKHGhPGUCCCBMqxGZtocOHEG15kzUgQsSLGDOOSiYvQoaDGkOKHLmv0EeSKFOS9JaMwj8wHIKonEkTYriPMGXW3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rVtyvf/eyo0Iy9CyuXgVTrQ4qEPevwQbCvILuHA7fqAEG17MjiUyxYwjl2PJV7JlcZ+8Vb7MWdq3ZJ1DY4YsujS0X4KGmDDNWpfjUJtVt56dS57iIABo66Y1T9DdALh3C49HDVQhwsOTn3Lsr6/y59CjS59Ovbr169iza9/Ovbv37+DDix9Pvrz58+jTq1/Pvr3796KnNBkMf7p8+vWj3w+APL9y+VFw0J9/wwEoIIHPGTgggroZyOB/TQT44HANKDjhbhVGeOCFwgW4IIeseQgibQpeYOKIppV4Iorxafghi5dZCGNpMs4YWo02coZjjpbtyGNkPv64WJBCFmagTkUCqSH/kkkO6WKTSooIZWRSTrlYlVb+RWSWbm3JpVtYfolXmGJ2+WSZc3mJ5llqrllWm26OBWecYc1J51d23tlVnnpuxWefWf0J6FVHDopWoYa+WcaZicq5KJmNhgVppF9NSmlXUQhxaVlRbMqpp2R1CqpYoo5q6qkqQaDqqqy26uqrsMYq66y01mrrrbjmCusGDTTQpwDABivssMQWa+yxyCar7LLMNuvss8Y+4Ouv0FZr7bXYZqvtsg8Muu234IYr7rfdAgosAeOmq+666paLKknsFuuunujGa++9+HL7Lkr5Ajsvtf0GLDC7/9I58MEIi1vwvhgFvDDDETkMsUgST6xR/8UWN9zvwxkrhHHH+SQsL8gXfUzyQiafnFDKKhPEcssCvbymyDTX/CzHaNqs887ResvzzzzjXKauRBdt9NFIJ23rBjA37fTTUEct9YhgTK1U1VYjhXXWRm3NNVFefy1U2GIDRXbZPp2NNk9qr11T227PBHfcKYHRQQl092Q33nnvtHffft8N+NuCDy534YbXjXjiJP3NOEqOPz5S5JKHRHnlGV2O+UWabw5R5547BHroCo1OOkJw13D6QE3MLYgCq+vjegCwx47P7LXb/o58ptOuOzy8L/47Qb0Pb0/xKOXONfLGu8M8OQkcIP301Fdv/fXYZ6/9AQ8wMK2nwfOtz/8DQAPrgKnhC0R++eef+vw40W8v//z0W88Aqu839T2o+TdPTv/+00YDnNA64QUQHgMsoPgOmA8AMjAbDnxgNNInQXtQsILHMyAG2RHBDRojgXsDgAg9WA4Q3k2EuSEhOS6owhUqEBFIaKE2QBdDGWIjhCgEwGpsOMMT5nCHPLyhBoMoDQJ2kIi5MOIQkRiNIzIRF058Ii2UuEB81G9+BkAbFQVyRfllsWxblOI1wijGa0SxjK44IxpVQcY1NqONbmyGGuOIijnS0RR2vCMp8qjHTvCxj5v4IyAzIchBXqKQhpwECxOZi0Uy8hZwfKQtIinJWZiwipW0JCUzyYpLctL/Fp78JC1CKUpXkLKUndykOxiwgVa68pWubIACZknLWtrylrjMpS53ycte+vKXwAymMIdJzGIa85jITKYyT3kIKSjzmchkJSynyStoWvOa2MymNrfJzW56c5fMNIQzv0nOcprznOhMpzrXqc5wCgIJVDADKkfhzgDAU57uYKc+98nPfvpznfUcxDj/SdCCGvSgCE0oNDPUu4Eq9KEQjahEJ4pOhg6xhg6lqEY3ytGOetSW9cToR0dK0pKalJ8BnScpUqrSToS0pS4loBcuClNOJHCmmKwpPWW6RJ1q4qY99SkmgJpTof6Up0U16lBlmlSlXuKmKXRqTJvghahKdRNQ/72qS+VTVa3alKtW9epTZSpWrJK1rJnIqkAcwFa2yvKkcI2rXI+p1oC01a1zzate94rLmzYVrY7wK2DHStWwDjYSdT2sJBKrWEgItrGLRSpkESvZyT7isZYNLFMze1mZGpaziGAsaEO72dEuArOmJS1VmZRaQ9yUta0lBGpjK9vS0rYQs71tAHKr2wA8wQt/be1vgzta3tLWuLoFbg57OwjlorAQqjOtX0doiOgWl6nU7e0UFuXcEhB3stulaglE6F3mCgK45i0EehFhXdAit72cRe5tgVve9AaAvt/NLBqGW1/m7he/5pVvagUsXdsyl8DXFa99ETxaA0OXClLIKP9fJ0zhCm90ujkUoQdiUAMIW/jDIA4xQhvwX9xkGAAb7rCERcziFru4myT+rYkznGIPv/jGOM5xMjFMYw7bWMdADrKQ+4rdE9c4wkNOspJzzOMcHnnFS46ylPfaZBQeecpYzrJeq6xhH0NZy2AOM0W5fAEAiEDFXxazmtdcUDKbGc1sjrOc21zkHqt4znjOMzsz5Fw7/1jPgA40N/k8XiN7Oc2CTrSihUlo7/oZyYuOtKQZzVXvFtrKh560pjetS0KfGMWZ5rSoRe1pQ8N51KieNJ9N8Oknp/rVi151q70M61oLWtam/rOtdx1nXD+a18DuNVdZnWtEB/vYSfa1k0P/TVIGIPvZMFYAVYnt6C6fGtrYTvawyXtpV2f720GG6qyvDe5yv1jcKDQRimlAbnO7O8QkLmwO1b1hGWzBCvjOt773ze9++/vfAA+4wAdO8IIb/OAIT7jCF87whjv84RCPuMQBbgYpZKHPAKB3DGRQhSx4/OMgD7nIQd6Ekpu85CNPucpXzvKWu/zlLT+5zGfeBJhngeY1hznObc7znvv85yLfOdCHTvSiG/3jJb+CF4ZwaY1LIApyiLrUp071qlv96ljPuta3zvWue/3rYA+72MdO9rKb/exoT7va1751NXyB6Z82gRAkIIO62/3ueM+73vfO9777/e+AD7zgB0/4RcIb/vCIT7ziF8/4xjv+8X83AgcuneFue+DymM+85jfP+c57/vOgD73oR0/60pv+9KhPvepXz/rWu/71sI+9501A7BwGAgAh+QQFBAABACxgAFAAsAFwAQAH/4ABgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucigUBn6CCIS2dpqeoqaqrrK2ur7CJBbMFA5+ksbm6u7y9vr/AkgOCw6PBx8jJysvMzaEhzdHS09TV1oXFnxHX3N3e3+CZoZ+z4ebn6OneoYMZ6u/w8fK6xe7z9/j5+pH1+/7/APGxC0iwoMFu2nAdXMiwoa5xoG6VckixosVOAy9q3MiRUrGOIEOGZGcrgrsoATqIXMmyYUaUKlvKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rLmPgiyYXbuQFiEKbP/jthWUMYjcu/gG6CW0bZBdvIDnFRvQN7BheBkPK57HDu7ix+GGkRPkGLJlhAEkByh8uXM1W5I5ex7NzBaoYRTspQRAujWwUNkKdWDtunavYcUiqBU0xITt37HQZi7UG7jxWKEqB/h7vLmqjKqZO5/OaXBmzjGpa8dkXXjK7eAv4S6mPLz5SZIHpz7PXhghW8qlt5+PyLtf+vgPQSScv79+YqH5J+AgexEYwG7fDUhfbN5lp2B+3pXg24P4JRaAhBSy90mBBayXoYC1fAiifbOJqCGJtJmo4oostujiizDGKOOMNNZo44045kjJFGXo6ByPPgYp5JBEdgTAkUXWdmT/ikk26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYqKJdTCMKBg4P+VGgAhyYq1KKNOgoUpIh+2UBYlP7DwKacdurpp6CGKuqopJZq6qmodurAqqy26qoDqcbK6asOfFVoFJHuI8CuvPbq66/ABivssMQWa+yxyCar7LLFXtrVrRzIhw+z1FZr7bXYZqstr7YGgKu0RVrbLa4qXXCBk+J6BW255+5DAFjpfkXuP+8KAG+1Yc0LZbxcTdGEvrqKxe9W/gKMLr5gGdzkwFwpnCTDWa0bJcRYSbwv/8LPepvrwdSOu/HCGPerMbhEUnwVtCQPaXJVQDocbshatfzxwzBn1YDFT65M1c0aV/pyxwnP/DOz+Qpdcs1buXw00PIarTLSFfc8MdQnS+3PtlhnrfXWXP/qsc/z8EpA12SXbfbZvTorstLyyOr223DHLffcdKv66tdkqq2u1ZL6hHPfPP0NuE4oD95T4Yb3xHbiNC3OOEuCP05T5JLLRHnlkPONeU2Obw5S555fxDPooVc0utOlb3R56qprzjpIiL8eUuyycyQz2LVTdHvuHZ2OO+8M+Q7856gPzxDpxgO0evIGLc88Qc4/r7zr0h8UffX7XI99Ptpvf0/33t+DfP/484xP/jvgn69O+uEksID7C8Qv//z012///fjnr//+/Pd/PwJ6+xD7wHEAtBnQgAhg0QC/UcADOpBsCWzRt/5xgHe9KxkPVFYEWTRBfxygGRlM1gZNtEBvNDCEKMzWCEVUwm6cMIUwpNYKBUi9eyQAfv7LoQ53yMMe/i+AGWqh+r5BuyFmb2RGnJ75khgOITLRGk54AqNS9sR3RDEAQqBiFbfIxSlJUQhdzMcXw6gPMJIRH2Y8RA3OGI4xImKNbPyGGwnBpDh6Y46DqKMduYHHPfrxjzBaFCDRIUiAHOCQiEykIhfJyEY68pGHXMAgIxFDYX1wko+oZLAuiclGQPL/k6AMJSMl2ck9FrKU3TglKr+hxVU2o5WuPIYqYzmNWdIyGra8JTNyqcte+vKXwHSUE4IZjWES85jITKYyl8nMZjrzmcdxgChBOUNoMgIB0/xkNa3JzW5685sOMSY4XyHOcZrznOhMZ3PAoM5VsLOdqXgnPE8hz3l2op723AQ+ESGFfDoCDU8AQwdKsIh++pMRABUoQQ+BhINGQqGIaKhDHwHRiVZimBW16CQwOtA3arQRGS0EHD+qiJASQqIkTYRJB4FSdWzgpTCN6UshUCvmrVQQLU2HTHe6AZo+76YByGlKCwHUkQ7VEEU9KiKSqlSkdlSNTXXqQqPKiH1SVaWK/xBqU4GqVaUy9aoB+OpVgQrWQZC1rGF9qiG6elSuovWsVDUmXMEqVqrWNapzbWoD0JDWqaJ1EHvt618NkVC1DlYQhfXrSd9q2MWWNa92bexhBTvZADSAowRF0mAvK1jNspSxiv3sYyWLU9BG1LRQfawQhuBR1bK2sgFwQhPAsFrYxna2tbUtZW0LWbySdrC93epv/xrclMp1uFc9bmgLYVClyhauzT3qc38r0eh6lbqCsG5bkTva5QKXu3QF71gbCwAPxIC45DUvehV7AQCIYBDaJSlmC9He92Y3qvNVhALwm9YA6JEQ+20qR/0L2/xW1sCTRfBhFWyI+H50viXwrv+DNQph78ZVsBFOMIa9G2Dn7hYRHZbuhw8R4utaWBAl3u5UNXteFPM3o56tARWkoIAa2/jGOM6xjnfM4x77+MdADrKQh0zkIhv5yEhOspKXzOQmO/nJPL7sbNUa4xnTGMpYzrKWt8zlLnv5y2AOc5ilLFBBRLjKUriymNfM5ja7+c1wjrOch0zmmGRYEOaVcZrnzOc++/nPgA40n+tM0DsHIM9WFrSiF83oRjv60Qog9IWmiug9Q/rSmM60pjd9ZEkbutJq5rSoR03qUgva05SOgZ5DbepWu/rVsMYyqgcB6ljb+ta4znWUp1voVK9a18AOtrBJLelC1HrYyE62sgP/XWxCHHvZ0I62tMHcbFqrOtHTzra2t63kauP52pbmtrjHTe4ce/vQ4GZ1udfN7mif+9ntjre8hf3udM/73vi+db1/ne9++3vU+8b2vwdOcEcHPNwFT7jC+7zvLVjh4RCPuMQnTvGKW/ziGM+4xjfO8Y57/OMgD7nIR07ykpv85ChPeca7cFMPGKEKV+iCzGdO85rb/OY4z7nOd87znvv850APutCHTvSiG/3oSE+60pfO9J1jgQyk9YAEwsCEqlv96ljPuta3zvWue/3rYA+72MdO9rKb/exoT7va1872trv97V8PgxF+2wEJGOHueM+73vfO9777/e+AD7zgB0/4KsIb/vCIT7ziF8/4xjv+8ZCPfOAlIIQT6/bymKdvuwZrLkJ0/rDmOlIgAAAh+QQFBAAPACxiAEAArgGJAQAH/4APgoOEhYaHiImKi4yNjo+QkYgDkpWWlIuYlpubmoSenJmHoIKkoaeojKaprK2Kq66GmrCxg7CYtI+5tZG7vL/AwcLDxL++xYWmuJPIpbHHD9DLzZWaH4IdANTb3NzQyNKy3Ynf342g0+OfztGC1w/Z6vKh6PPgp7nmw/m2rERE5OyJE0gwlb6CCAfKW0XrIKJ//RIya+VQIr1tpCpCGlCxXDF+r0RJMqeRWIZ3FlOqEuZpVjOOnEqqu6Xw0sqCLSmcDCYzZc9nKgOyk/jzHK+ivYIqxSl0qdJdSJ2GlEo1WdVuvqI6OqZ1VMSvI1sCc/ngXbyraIGuS2tVLauMBP/TtWU5yKw2tnirsZNLrOvQp2ANGuM5FEPewxQRKktUALErmGz9Ou402W00soMaz9w7USQ+imLHthu9M/Hlyqg/OtJscdrifU3X1hwMk1Lp1CM/Z5Zs6xbvvrlH6172eqpp2QtHY7qN2yuqehh/F2Mt+O1q6rojcxxQwDbK5uBLSQ+PPGJxvJI1s7ZA3luzAtgDS9UaPzbfm5nrl+9cdXl7+ZPBVxlkG1mnnHOx6fcKdFRpRgkF/0U4oHF6efbXbLoANw5x4wX1U4cSUngRf8L91aF6GDJFSAghIogbiIDNleKFEzmE2Xn4wSiIZiy2OKNRKulITVRk3fdhLUI2ohn/ez662GSINCVVonNJ2lPlk1jOZ94DjQXQUGCYbQggYTp9l2VMQ/p2ZoUHjpkJSDLGCZeVzsDE3JrD4clmOwRuRaKUbu5Ho6CR6WlgXFeOKBNUCN4H6I/3TGfolE4lOk+fMYUJaXBAXqVJdxSwB8YDQUxq6mEMyWjphISMWuqpsFYqXmcuEajpTLdeSumZq8Yq4k2hHZjOnNGthSmmfyI5aIS9+rqshY4OtJ2FsdFF6DwQOqttjFTu1+y2HoJbkIDkzFLkroyKG+ea326LXZ+27nkZsbtmyKy6+B6lTFYMyulkuz7lK/BjiwIYLEaqaagnwANHSRwkDq5r07UDE1Vx/1xvPnswJbgwLKsmTF4scl/6eIxWvyOnXAm5wH5Zr8owx0yYctDlarLMODeJLMrJTHvxzTmjhqyTGu8FYrTyJofIq0HHPPTLbZ67aYHJUu2nOtkKwnTTTgdKrSodRTmixNYSgl0GXKfdW4ZZJdycz4JEoLbCvvqc6yf0PtceXx3MjXCWod3YKGW/OgYfdVnD43fZUG4l1t2EQ30Okciol/jiTT/9VcfP0mMjVwFjLjp+nVD+daFxjy7ukcgdzJ/mkz+q9zCNcZy66jlDbmzpYwGdVO0PXI77Y41bPXXnxyHWXe3CD588vi5L/rdF3UXTWAQhD2GC89xT3PCOF2rfff/uHT/s9fR5NaaZToMEcdf4SSPf2ltGki4wdti5D7/xusu6tufHUxkm5DaIvu0PTzyjWP8CqC1QhMyAkfuf95LFM9/NbigWrI7djIOjCepKflOzndIYN4oMHsWDiEmSCTkFJtlVR1pVI9EKX4LCp8wQdXNpl1wYVJxgpco9dGrLDSfhOvB4pEQ2GtyYulLBLbXQRPKJ3gkvdDTOnOw8sHtZT741xBe2KYZ/EiHZaCi9FyZQZ7tLig6JRjiGta0p6XpipLazwAgWkSokqckd7YWx84HReGVUVJ2U+K/CARE2LuoiA6HIRvvhxHZa2ZgfRQPDTjlRTEgkIwhDN7bxZJH/hIdaR7N2eEHJoaNDQgrc2yKIpDnxBpWTRJ8Yx5hGaG3GWookzB7PVxSuxLGROVxWAiUjNUNWcpOBHNsXh5SWDhIKZa+Bk0CGaclqIS1SmZRND7kkR1AuM2F1RJS/Yuioa5ozjF4k5MRoxUwMfjOYtbwEUs44RbDkcp2QEhwty3WafaIpT1H8Y3bgOTvQiQduqKplF2dptV0aSp8sVEs4tRlPieXNn1OpTSw7mZofWnRzg8nU1Shpy2Qe8KQoTalKV8rSlrr0pTCNqUxnStOa2vSmOM2pTnfK05769KdADapQh0rUohr1qEhNqlKXytSmOvWpUI2qVKdK1apa9apY/82qVrfK1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98pXlG6tr1D9K2CTOoUyDDaqhT1sVSGo2KYytrFGbcAUINtUyVL2spjNrGY3y9nOevazXmWAaEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnW9oHNGCvAsitbnfL29769rfADa5wh0vc4hr3uMhNrnJ5ywDQ3nS4zXVuTaEr3ekKN7p8JYBRqbtX7Qpgu9fl63ePyt3qyrS85oUpetPr0vWyl6Xufa9K4ytflNK3vge8L37hp9/9dq+/onvsfgGMOQHjl8Bcs6zW/EsIBDdNwaRi8P8gHBy0xEq4EBTOmYUvPOHwcji/Hv4wf0Ms4v+SuMTOyzCKg6biFeOsxWwd71BhjFbdEmC5OM6xjnfM4x77WLfYzStth0zkIhv5yEhO8mlt6+ImO/nJUI6ylKdM5Spb+cpYzrKWt8zlLnv5y2AOs5jHTOYyI8LAZlYZmtMsMAgLls0DczOcU7bhOdPZsHbOs573zOc++/nPgA60oKkhhUHjq9CGFheiE72tRTMaVkhATQISsIBKW/rSmM60pjfN6U57+tOgDrWoR03qUmvaATUVbKQrc4Afu/rVsI61qxGQ6va0Wta4zrWud61bWntWu/jiNY99zVlgB1vYOia2TNf/XJnvyhhcyE52TQW86qlGO8fKxmm1pXptHGf7ptuOareX+22bhvswtx63utd97XJTNt3sjre8Y41qmjLbMZQ2tb73ze9++/vf/q73TO8t3ds+OsrnPriPptCEKCiuEAlXeIgYHgUOEFziLZpsxd+McSxpnAMc73iTKG5xkeuJ5NQ2+ZMqnnKV+4jlhoi4y5uD8pjPXEI1v/mTcq7zhTe85D1v0hNgHnQfDR3o4QG40pfO9EwnQOBvJXp45k3140LdrVIfhMzTUvWuD/fqbD16y+fm9d6Cfa1iT3HZd3t2taadPGuPO9vj+vapy13ubVdr1pvT9L77PeBy3fsDtl70/8N8fOyFT83hbZ548Aie8I3Hi+Aj73ikU548k798ZRavefBwvvO4+TzoUSN6QUB+9Eop/eBRnxfVs771D8j869Pi+tnTPvaWtz1eVH963SOE976vCvCDL5XhE38ptZ+MAw7A/OY7//nQj770p0995huAysl3DALGfWPhJgD7uIcgADyAm7gnwOBR/vz4U4OA6rv//fCP/vWnrPoaPMDRx7dI/e+f/6Bkv/8p8X8AKBH7N4ABGH6GYH8GqH8IuIBOIYAOKBAQGIHzMIEUqA4WeIHdkIEauA3JpwAdKA8fGIIY2IAkiBBOYIInSBApKHgKuIIbqIKC8IIw6IEyuHo1yP8NxpeDzcCBPPgLPviDtVCAQlgMROgY8fd+88dnQVgVSeh+S7hnU1B3RaiDVGh6VWiEN9h7WXgKTdiFXoh7IQeGwPBxY0iGvPCFaGgJHycECbiGQHiDNAiHrbCDdMgKZsh4d1iHYriHwqCGftgIRxiIoTCIhLgJgHiIiZCIingIdtiIkvCIkAgJjDiJg9CCuWeJnICJF6eJjcCJnogKoFgIcxiKjGCIeMEADuAAQdZzksgWqsiKifeKpogIlaiJt2iJqFiLtiiHvOgIuTiJwQiJtPiLhFCMxigIw9iIy6iIzXiIz0iIbZiMkXiD1LgI0RiI2eiH23iHliV712gI35j/ieG4iNZYjo54juhICE7QjXfojnQIj3Aoj2tIj2hoj2SIj2Coj13Ij1noj1V4eCWwjtgYfgNJkIpwhQhpCAq5kIbghg4ZkakAAO8jkYZAkRaJCBiZkRdZkRwpCBv5kYMQkoOAfyJpkh+JkhypkiK5jpPVkoPwkjA5kzRZkzbZCCQpkjl5kzzZkz75k0AZlJ7IhQRJlEJpjFQgBVKgAEzZlE75lFAZlVI5lVRZlVZ5lViZlVq5lVzZlV75lWAZlmI5lmRZlmYplQ3gBE1wCB4QAzWQlEt5lnI5l3RZl3Z5l3iZl3q5l3uZlk0wKoXQlm+plHxZmIZ5mIiZmIq5mIzJ/5V+CZiEIJhw2ZiUWZmWeZmYmZmU+ZgdcJCCIJmEqZmiOZqkWZqmeZqc6ZkP0JZIMJmn+ZqwGZuyOZtkmZqRGQOtGZq0uZu82Zu+iZpqCQadOZKgGZe/eZzImZzKmZepeRfj55auuZzSOZ3UWZ1W2ZyDUJzWuZ3c2Z3JaZvZCZ266Z3kWZ7mKZrg+ZniaZzn2Z7u+Z6FmZ6ruZ7wWZ/2eZ9mKZ+SaQbsiZ/++Z8AipbBOZzhWQNbYAUImqAKuqAM2qAO+qAQGqESOqEUWqEWeqEYmqEauqEc2qEe+qEgGqIiGqFmkAXCqZqraQRV0AUs2qIu+qIwGqMyOqM0WqM2eo6jOJqjOrqjPNqjPvqjQBqkQjqkRFqkRmqjWEAGQ4CiHiABXsAFUBqlUjqlVFqlVnqlWJqlWrqlXNqlXvqlYBqmYjqmZFqmZnqmaJqmaqqlXvAFS2oIHSABRjCndFqndnqneJqnerqnfNqnfvqngBqogjqohFqohnqoiJqoirqojNqofCoDRiAEJUCRFBkIACH5BAUEAAAALGMAOACtAZwBAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5yJJSWdoaKjpKWmp6ipqquNJiassLGys7S1treWMTG4vL2+v8DBwsPExcbHyMnKy8zNzs+ZPz/Q1NXW19jZ2tvc3Zst3pUF4+Tl5ufo6err47AFg+Xhke+y7PTCIZr38tv7/KP+/gkUGHCgQUwFhY2LEALcQUsJ/0V8CGDiqYQWWaFj6BBgs3XX7JGj6Eiku2AZSRpKeSydSo/uRMqcSRMdJ5YvJeGEVDMnpZ2kgMpyOOSVT5L+hD5kF6um06cbMxA1eumcs3bUoCo9amwrwkEZuB7y2hKq2LFa02L9Rfbn2bfV/9oiVGuulDmOm2zC/SpOkVyKdAPTTUWv4d5hf+EdLukSWeJE8QTlWyzvKeVZj2FqvlxVsMy9M4HpDVpXVGnOOlGb8sza7MXTqhm1nk2bNbHZBq0Kmhp7tMbavjuNtMU0NiHdvI3fAq7bbVmn85irXRVWuexVAQJApu38eW3t1sOXyt7ZHnmIzdnSPg+4AF7xgMWpA79c+vCLtTYahl/Rvv/Gc5nXS2BnZcYfYcGhYiCC9x0X2oCRHXjSbbZV9l96/1QnYVcEUpJdg+pdKOKIIG2oDImf+WJOdgGg6F9MEUh14IKyuWjjjR9K501k9HQkYYSo0fgTTRANJCRSIQI3if9JuAAYyo2wmRjOkU8Wx8uI/JzDURQcdCAlhwkeBCWJGg2yn5dfZgVNPBb5NuaDacb5yH8tDrYdkZBd2aGcSN4EXJ3czZnRm0zyqRpzjjk5lqGMokToi/Bo1eikXeUYpXyP3kjppmh5tlKmgiESEJWcMvonoIEO2eal3JBaajGeWYoioIKCiuGruEqCKpBL0rSrOo1Y2R+iuRZbWaRwGqvsb7aKuOyzpjUL5SLAQmstetLuqepa13YbYLbgunaTt6WGa66S5ObpjKznNlukqOnm1+68tfHkYrwD9kMvqIuOi2+TH+1rX6f1/ltfmCGhq6ewBmfjKmYCR3xrwxQTXKL/Kh22VrGJEndc7cYzeswvyN6K7Km6JCdTKDYmnywqryl71/LMOsa8I804V/gqmlwhvGbOH4srJ89wPcwg0GnZbGRvLSt9XF73Qoh0tj33PHXHDuZ86JXPXB2u0wpharSjXif1bLJNpRidxFWWDaLFBW+cGM7fup3qPBXbg63d0+qz8rZ3v+XzhH7+V97Ve5trtaIHywVu23xjnZtYcVOLYqTBRk7oshdDHWrdmtvtE9r5Ha2tX4CHzvZLnRPHsL1u6+TxsJZZnjTtf9/8NsS519jT2qqzCrrXFjJeZj0wwy4t3MH3nubY3ck+OGO1H/5xv743b3huxoPt/ffghy/+//jkl2/++einr/767Lfv/vvwxy///PTXb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSMMa2vCGOMyhDnfIwx768IdADCK+GmBBCBjxiEhMohKXyMQmOvGJUIyiFKdIxSpasYoGyKIWt7jFBhBRiN4SgBjHKAAHgJFcZBwjA84YxjSWkY3dcqMA1ohBOdrxjnjMox73yMc++vGPgAykIPNIxwoO8pCITKQiF8nIRrqxkHB8lhwhGUllTbKS0LokJpelyU0aq/+TE2SAI0dJylKa8pR7pGQERYnKVrrylbD0oyohyMpY2vKWuDzlLB9Yy1z68pfA/OMuHdjLYBrzmMgcZgOLicxmOtOWymQgM59JzWqSMpoLnKY1t8nNQWJTgdrspjjHSUgLhpOc6EznHM2pzna6c50VPOc75+nMbyZQnvTMZzDtiUB86vOfuOTnAf0J0IK+UqAGJKhBF2pKhHoyTaB86KvkaMYMMvSisXRoAa/I0Y569KMgDalImcjFkmpRoxJNqUpXytKWuvSlMI2pTGdK05ra9KY4zalOd8rTnvr0p0ANqlCHStSizrQBUzCqeJCq1KY69alQjapUp0rVqlr1qlj/zapWUbGAB3R1AWANq1jHStaymvWsaE2rWtfK1ra69a1wjWtcK6pAjNr1mAhg4F33+su8LpCvgL2lX+sa2MK6crAJNKxiT4lYBC72saNs7AEhS9lFStaAlc3sIS9bQM16FpCcJeBnR8tHuiZWAAQgrWrlGNoBona1sCWjaRHY1QfY9ra4lataccvb3vr2t7bVbVqB61vhGve4cp3tVn3yxeU697nQja50p0vd6lr3utjNrna3y91EIPe74A2veMfbVuWeMLYANa8J0ftP9XbXEeR073sZEd/5UqK+9pUEfvMLif3yF77jlO8I2atPAYuQwPk0cAjJy+AGO/jB5f2v/4QnTOEKW/jCGM6whjfM4Q57+MMgDrGIR1xUB0D4xCgmq1IdgGA7NrXFclwxjN0o4xmTscY2FiOOc7ziFOvWq7UlLpBTTOIiG/nISE6ykpfM5CY7+clQjrKUp0zlKlv5yljOspbJd4Aue/nLYA6zmMdM5jJ3eQFHtuYB0lzNNRvZzHCOs5zFjOYt2/nOeBYE0fLciT3z+c+ADrSgB03oQhv60IhOtKIXzehGO/oaDVCApJv76ERQutKYvsQGNs1pBS96AxDg9AY8nelSm3oSlz61qlfN6la7+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITnajpv/QBC752dTMdraro92laTe72q2m9rNLrW1rSzvb1952prsN7m+zmtpBkIcXsYtueTAg1dQ1d6vlrWpynzvc3sb2vel9anuv2t/1xne59f1vge+b4AHnN7QNXnCFc5vhCedAugc+8YOLG9MA7zfENe7wcV+74g2XeL4vXumML7zjGN/4yRHOcYQjYeV7fvnDFS4Fj/ObClKQgqR3zvOe+/znQA+60IdO9KIb/ehIT7rSl870pjv96VCPutSnTvWgI9XgHohBDXCu86p7/etgD7vYx072spv97Ge/OpcqnvWt5xztcI+73OdO97rb/e5KV7vIBdF2ruP974APvOAHT/j/v+udZ31/e+EXz/jGO/7xkD/8ILKOBL9D/vKYz7zmNy91yfM9BpVXPOdHT/rSmz7y9k5810/P+ta7/vVl9zwAVA/72tv+9rg3uuxpn/ve+/73rd+91rdgheIb//jIT77yl8/85jv/+dCPvvSnT/3qW//62M++9rfP/e57//vPz4K8PSCDKnTh/OhPv/rXz/72u//98I+//OdP//rb//74z7/+98///vv//wAYgPGHBVEgBB1QAkEwcRLgBVzQgA74gBAYgRI4gRRYgRZ4gRiYgRq4gRzYgR74gSAYgiI4giRYgiZ4ghfoBV9ggAg4cR0gAUYQgzI4gzRYgzZ4gziYKoM6uIM82IM++INAGIRCOIREWIRGeIRImIRKuIQ7KAEc8AkAAIWw9gmBAAAh+QQFBAABACxgAIAAsAFeAQAH/4ABgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuciwWCnwUUnaSlpqeoqaqrrK2ujaEBo6+0tba3uLm6u5OfAb4RvMLDxMXGx8SfAwUDv8HI0NHS09TVg8yFz4Id1t3e3+Dhlr7Ms9vi6Onq69PLzZ8Wg0Mm7PX29/inzb++hfP5AAMKHIioQD+DFDIMCkKwocOH6mL9MsQQosWLGKMx6zeoA4CMIEOKpLWMULxtH0eqXMkyk8FfA7S1nEmz5qJ3gkra3MmzZwCdPoMKVVlygLmhSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvPhKBYMa3D7AvLnz59CjS59Ovbr169iza9/Ovbt2450I2BVAXgD4TeLHlz8vubx59pDdw4+/fr5j+fYb48+/eD//xP79d1iAAhZGoGzIgXZgbAl+tiBsDXr24GsRdjahaxVydmFrGW62IWsdavbhaiFmNqJqJWJ2YmopXrYiai1a9uJpMVY2o2k1UnZjaTlOtiNpPbZXn21BRvZjgXQdiaT/XEouCVeToXkn5ZRUVmnllVhy5+SWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiihm3g6KOQRirppJRWaumlmGaq6aacdurpp6CG6oCD7pVq6qmopqrqqqy26uqrsMYq66y01lrqBowGJSuuufa0a6++xsorsDb9Smyxwh6LLKzDKtuSsc4+m2y00jJLbbWvNmthatBuy+20Ftoq7rjklmvuueiWq61mobbr7rvwxivvvPRKOuq1TCmH77789uvvvwAHLPDABBds8MGmPKDwwgw37PDDEEcs8cQUV2zx/8UYZ6zxxhwrvMC9r6Ur8sgkl2zyqwSQhwDC4qSbsgArswwOyTHL7M3IBNRsszU073zzyDr7PE3PQldDdNFDA400NUcvDU3TrZ0s9dRUVy0uAvq6tsDWXHft9ddghy322GSXbfbZaHfd8dpssx200w5lDffcdNdt991456333nz37fffgKPWQMULWJz24YgnrvjijCfOQIEMWC355JSr+riAkVeu+eZWX/6f50lx/iro+ZE+lOiumj6f6rqizirr7MEerOuqgsyf7DzRvqrtpTOle+2Q/y788K/ybl/mxCevvHvGzzf4xGlTXPgDh1M/PfSNZ7/w9RFXT730YOMeuP83co9v/vnop6/++uy37/778Mcv//z012//Y9nnr//+ZyfQPLHLI97/gBXA4Q2Qfcs74PoSiK8CCk+BjHLg7yC4KP5Z8IIXpOD9bFG+DXrwgyAMoQhHSMISmvCEKEyhClfIwha68IUgbFCRYCiJGdLQER284SkcgB0N6tAQCDiAAKzjwx8GQG45NKISqWHDJTrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYx0jGMprxjGhMoxrXyMY2uvGNcIyjHOdIxzra8Y54zKMe98jHPvrxj4AMpCAHSchCGvKQiEykIhfJyEY68pGQjKQkJ0nJSnKiImrEZCFqwEZOrhH/CWwEpSVHyI01lnKUOvSkGlWZRlGGUZOEcCUYYRlHKkhBCgrIpS53ycte+vKXwAymMIdJzGIa85jITKYyl8nMZjrzmdCMpjSn+csGTKEJhrjABQLggRjUwJa4pKY4x0nOcprznOhMpzrXuc4GOOEJAeBAAABAT21y05vgZKc+98nPfvrznwANaDLd+YQoyJOeKTFBN795S4E69KEQjahEJ+pQazbBoNygpyAUis+GUvSjIA2pSEdKUotidJ4puSdDw0nSlrr0pTCNKTSnUIaCcuCUg1ioLRUwhZ769KdADapQh0rUohr1qEhNqlKXytSmOvWpUI2qVKdK1apa9apE/63pSQvRTRZQwZ1lCKtYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate94pWN9gUp4LopgyqkIUmGPawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoHXsE66wVa4KQQZImIFqV8va1rr2tbCNrWxnS9va2va2uM2tbnfL29769rfADa5wh0vc2dZAAkEoQQBMQI9BcJQG0I2udKdL3epa97rYza52t8vd7nr3u+ANr3jHS97ymve86E2verMbgxh4wLnNJYQH5kvf+tr3vvjNr373y9/++ve/AA6wgAdM4AIb+MAITrCCF8zgBv+XEfMdoy42S6BcNVIYoRjOsIY3zOEOe/jDIA6xiEdM4hKb+MQoTrGKV8ziFrv4xTB+cSAAACH5BAUEAAYALGAAPgCwAaIBAAf/gAAABoSFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnpqChTOfpKWmp6ipqqusra6pA6+osbKHA7S2uJi3tb2mur7BlrEUBh+EHYOlwMLNzs/QnsyttNPP1YS0xwbJw9nR4LvWpOPh5r7W5Yzqmezn4e7v8vOK8fSu9u33lfn7/vCN+nn7ZyjDtk3pCBYSqNAAw4arHv4CuJCCQU3AJEKEpdEQs3IdN+prxuscLgucEopcuWhcSJb8WhIsSS4iTI83c+qc+OhlzG/GkClDmNPnzqOfjEJSygrXtm41kepkKlUmRJoOYQE1gKETNpxVw4pdhojqrq22YJod22st27IL/+O+kohrbayvFy/pwir3rasC0vwKBnf3roG8g+e5tZpY1eJ16/ayrIu2ccPHbzHXg9s3LTXLsjLy3Aw6qedpmkdWdlwIZemUnpvWAqx3dda3tD8n+jr69dHUHgvkXhpb1/C2jGNDKgA8oO2otw/6JisrN9Xm0QYEuB0JO3Huz1FJn37zuEe6GJM7owy+827CyLl3JU9flXn32Z37846/PlG2/M01yUf+JYJYgWpRdA9I7XHmUmkHIvidghQG6AhvnEmIE4YadogRh+v9JFqD8GnFi4UepihbIvf1NaJ+ApKoimsqThiMOnTxJRWGD0kmY40pgiiSYaQIt6ByyemIYv9oBhQD5IXXBHbKkuoRhWOMKwr5ZGa9hXeTSvHptuWYF1IJo1dVahVNFGTWx15k6bSYZnpt1lmnj+Y86JuZdoYl535XQkZhn4TeSKeXUNbWXU+sOcRnoUDiaeNqGjEIHoHvsPcmpJwemo2RUToaF2rv9Vcikp2mWgmoJNXF0IuzwAaWqrQa+mMjrEKH36OU8FqrYJhSOmupA9km6VW/JkvsmcMmig+qpP2HqLLUtuMOcDo2m6SDanpa7beIaskomrf5Cu65uHZkrrMkrustuhLmqpqippJFqrHw5ivWsdQJutst7mqr78DTYsmOuJMRTO+Ocwr8y3X/LqvwWAhX5RP/kQ132+vESAVcy0sQS2uqxzBdUCPJz3bHr2nQuhjSphqaTN690x38U6wZc8ylh9m2zO3Niy5F860666xnl0kJhJ7QRTcdrSQ9etfjWU7nW7GU9TRXDV9Hg4ly1ejao3SVNo8KM9gJOqxQgG71TBrGohbsM9qK/bbyimJKTDdoX4sMtDAX9733gHMnPGS9eg/ON9pKgak4xZHO2y/clwb7+NMbg3X2u1Q6jjnLVCPObtkaiv3NABGkrPGUiTe6VaApY2f6j0MHmVXqIZo0rOUF+ro5sycD5aStVGObO55Ty4qkZoKvrXYszAE2wPBMXlps61YiPTefXkOdM848H0d9/xBqwuq3ZbXzLnE8V+OrNt7BO1QA7oSQP8vd1xMNPLuZL/xc+1kDXd4I977STCN6WclAIaBCvP6hQyawIyAAt5c/0Vnwgj7qx+8GgzxD0CZbDOyX5uSBv6BJrjJL09+kMjSnzcEtef4CENOygToadcAmq3sZs7aGGpdE8ISFC2LLGmc9uRHQTeVCxA0HeMHRvcuE+0PL3SQDw6exT4gFhFXIFve+ATAHESUwAfiw98RJXYsnWlwhGVn4OQG2Z3bb4qJcDqgLBRIijI0qIf8maJUJku5DV3zdzfiowl3RS30Nax65GnSiAlAvRjos5N9GNUkHjktGVawkVswXxyYCRf+RTPyG9AjxxTDhMHSXTOKjLKQpddXrKxls150KUcqiSLGNr4whLmlnxNOs8ZS7hJakXmQWUKISGF+c3+WWycxmOvOZ0IymNKdJzWpa85rYzKY2t8nNbnrzm+AMpzjHSc5ymvOc6EynOtfJzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQAdK0IIa9KAITahCF8rQhjr0oRCNqEQnStGKWvSiGM2oRjfK0Y569KMgDalIR0rSkpr0pChNqUpXytKWuvSlMI2pTGdKCQUYoAEKFYBOd8rTnvr0p0ANqlCHStSiGvWoSE2qUpea1ATQlBACeKYAFvDUqEqVqk//heZUs6pVrHK1mVv9Kli9KtbLhbWsZiUrWgd31rWyVa1uRVtb4ypXuNLVaXO9K17tqled5bWvfuUrYBX218ESVrCG1VdhE6tYxDIWXYt9LGQdK9lvRbaylqUsZpV12c1yVrOerVVnQyta0JI2VaM9LWpN20+muva1sI2tbGdL26WyVrW4za1ud8vb3vr2t8ANrnCHS9ziGve4yE2ucpfL3OY697nQja50p0vd6lr3utjNrna3u9YplIG79fEueMdL3vKad28JSK9618ve9rp3AfCNr3znuwD32jcB9M1vfO/L3/7697/31a+ABzxfABv4wAi273nZMtQFj6XBFiVA/zkh7OCqDBWnFZYKhTN8lA1zWCce/vBNQixilpC4xCI5MYohouIVn4MAEk5Ei138jxnTeB829maCd8zjHvv4x0AOspCHjOAbs8Smi8CwkZfM5CY7+clQjrKUp0xla27gyljOspa3zOUue/nLYA6zmMdM5jKb+cxoTrOaHUDP2rr5zXCOs5znbNQNVNkZVlWqne+sihgrIs9GJYBO98znZui50IY+NKKFoehF+6LRjlaEn0sB6Ui/otKWbgWmM72KTXM6FZ4+b4wnfY9Qr5POqE61qlfNap8SOp5qjrWsZ03rWtv61rjeMps/zete+/rXwA62sIdN7GIb+9iqaMADlv/N7GYzewHOjra0p01taUO72teutra3ze1ue7vZ2XZ2uL9tbW+P+9m7HigDWv1mQbP73QJw96rlDdR0I5sRcrb3vf8cZ33vGxH5/je++y3wRQS84DImOMIBrvCFG+LgDi8ExCNugIkHdN3wzrjGN/5mf/9T2eQO+bSvfW5tw1fkKE85uFUebZKrPNwl77bHKU7zmtv85jjPuc53zvOe+/znQNcngYdO9KIb/ehITzqB8av0pg995h/luNRpS++pCwDqHrW61rceW6xLmetB9XqUwV7vSJP9p2KH8tl9mvaiNaF++Fx7T9uus7cbwH72lDtP6Y5Rvftd7rtWckj/Tnj/sPP9ok5PvOIXz/jGO/7pQY+85CdP+cpb/vKYz7zmN8/5znv+86APveirgmQEHOD0qE+96lfPeqfmHAG1dX3Oozpb2dO89KzPve5Tb/vR+/73wA++8IdP/OIb//jIT77yl8/85jv/+dCPvvSnT/3qW//62M++9rfP/e57//vgD7/4x0/+8pv//Oi/BwMYIHjQO4D9Ig6F7+U/evqL3v7pz7/+98///vv//wAYgAI4gARYgAZ4gAiYgAq4gAzYgN20RL4HgYeABMBHgb9XA52Hd4eAgZyngQ74gSA4UhboeyM4ehy4eRJoCCeoeSkYgoiGf5g3BXaHdzB4eTIId4ag/wwl+Hk66IJL1gA3+AhSoABEWIRGeIRImIRKuIRM2IRO+IRQGIVSOIVUWIVWeIVYmIVauIVc2IVeqIRAaHeLgIFSMIRfeIZomIZquIZs2IZu+IZwCIdh2Ag1QAVlGId4mId6uId82Id++IdUOIeK4AExUId3CIiImIiKuIiM2IiAGIZRwAE3RH+EaIgK0ACYmImauImc2Ime+ImgGIqiOIqkWIqmeIqomIqquIqs2Iqu+IqwGIuy+IlO8ASROIlDUYlUcIlTgIlT8IvAGIzCOIzEWIzGeIzImIzKuIzM2IzO+IzQGI3SOI3UWI3WeI3YmI3C6ARlYIuSiAiEKANb0PcET1CO5niO6JiO6riO7NiO7viO8BiP8jiP9FiP9niP+JiP+riP/NiP/viP7WgFXXCLBiAI8mcCEjAHfLCQfrCQfOAHDemQEjmRFFmRFnmREwmREqmRDwmREYmRIBmSIjmSJFmSJnmSKJmSKrmSLNmSLvmSMCmSeNABJVAI8ucBHSABMrCTPNmTPvmTQBmUQjmURFmURnmUSJmUSrmUTNmUTvmUUBmVUjmVVFmVRWkEHFCTilACQsABXvmVYBmWYjmWZFmWZnmWaJmWarmWbNmWbvmWcBmXcjmXdFmXdnmXeJmWHqgQF9CXMpNhJRCYWglGJWCQBhkIACH5BAUEAAYALBAAMABUArABAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHhFxfi5ufo6d7kBu3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYPzPHhAyLChw4cQDdCYSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybJlxJcwY8asMaOmzRkyc+rcybOnz59AgwodSrSo0aNIkyr192Gp06dQ9Wlwp6GqVQ0YqmadauAq1q1brWLI6i7r2LBV23ldy3WsWLZm/7W+TatWK1q2V8+6nfu2rtV2e/HKtfsOK1/DfMEijrsY7lV5XNWiZQwWLdW8e92WxXp5Mj0MkOWeNawZ8OPCb80G/soatOSwl0m3hVtZ7N3Qd7najsq7KICF7zJUGF4hAzzhGZILb4e8uPDhyZ0rVy69uHTq0Z9nN848e7zm0a1Dn06e+vB347Ujj46eO3cDxK0vb1fB3fX14dl3p94ef/n//jFnH3/0KXfcdtnJ5990xMGT3nkGkBeffvClByB29VVIYIQOiqcgcfiJF96EEiJXIIDVufPcfc4piGCC7hBxDznkqIMLcPEMUMCOO7qz4wD18Pjjj+/oqGM7OhYwQP+SSgrppJNAGsAjPEsSKaWQVSqZZZQ95rjkPD8yGeWVBfho5JM8Zjkkmmy2OaYBYrK5pZZVunNml0iqmWSVcaYpJ5pqpmnnmkwCGiagg74J5jtNBpomn4f6GU+bWLZZZJNPRqmnpO00RQ+NF/QmKkSuFWrqoH5SSqiYSEJ556uuFpqqo1C6iumee2Kp55mKziOrlkXmimmtpuJqaqq1zkromoYiKyyvyw77a6ORDmnkscxqeSuzd2pLa5h82imsm3LmCquSrd7araqZ/hjBe6PGy1MF6z6LLLDwPGqlj5lem227/n5rraOyQluttHR6K6bBhtrbLMLZ4uqtvr3CWSn/oHFOK3Cywz5qrp8Fcyvxw4cuaXK7F/N5srYp/6qyri5HurKxdK4rJwXy5rxTqQd3TC3KU145rqIdT+tsz+DCbO2sGSd8L7vXQvqzsuTe2yfIlQZa7Mg+Cyruo4laXe3KHEcN8bnc/luxxVwr3GjUZKdNLbTYlotkuktfnCYFFniq898QaVDB1MmGTPCbdE76tMMl96sruK9qfbW0C+vrttZixyoyywcXyznHjZtNdsAUy9013ewqvWzIMmdaj7mVz7mt675Gq3fMc3+5D498+w347w9pvGutd0up6b9N8sur5Oha/PbicyOK6ucN4954mPgQ+7ythNds87NGL742/9spI693ysGa/zTyk4+7vupGm6zx4z/LX/TRe/qKazsWAO9/Q4kznpV0FAB25chrl2pV3E5WMGPFLW8bq1zSylc3CF6vcNEi3eQmBrulORBpupuemw64qvNxL35Z85n71DY+hx1rhZRrFutkaLn6bRBNEfifDg8iO1XtTx6ha16+glazhgkxSOHDIP669rareW57hoOh2uaWJ4AFjR72O1sTZUYlkinsWyGkkgSjWC/hlQ9oQXQftliXRK4d73GwO46nOgCAHdpxH665FOY2J8S0vclfGIvelv4xJ7SxTGJJpNTQ3rdIE4ZRhFmzR88aCDa8IUxqSUPhtiiJSFqNaf9TymLYwj6GtUCu0XROyxrjHDenecyxjneMpT0wkAE2Xop64kuY9UooPywCEo5bQ9kTaQapGdYwdUeE0yjhSL/L9altyCxaBWP4TBOq0IEjO1O6vpe32ZkyfZ8DH+iiZ03DaRFpeJKlOvGRgS028JbpnJTynKQ8zxUzapbEoJHC9j6PHZObzHTTJy2lzGa6bH62O5qu4LnLiF3SoSDr1vD+BLNCkvKSj7wH6ryYO1st83xs3Nc6R1oProyum9yC5OmUdUDZSbGFCUXlIbc4znLdsH5WkyAyszhF4SWSmlOrYDWLGVOIIlCE58LkQX9oSTVirHJe2qfz2Hc/s5XpHb3/I6lWHYQvMnF0pRAtVL70pz6egpSUM7tdKSmYTWtC0Ko+HN0YnbVGBh5SilBkIdO+qkK1hhONBoufXUW21IqNL4VwrVfJJCfVCPluqyRtp9i4hCV+OfKXVJssVTsX05/qNHL9tKJIzcQomWX0ax7MIKvkwTA0MpGvq+unRe3ZL1AqtZzJVGlbSTZQqhHVmOqibJf6B9mtRsZrhoVSFU9l2b8ykZM4zdwe2zg26mEOjGBEZy4V1cNUEnWEU61hWsk10QUeM6wZrJrcPiZOnZbyus693+yaBjnBHjG3xd2qCyOopnZcsR04YO1Vt1lVip4SYhOknfPCpym8plZ9NF3c//T26M5fftdlt/TsXveq1Bkm6XWbMmPVVivGbgJ0jJqkmFmn2Lxe8i+/kN1SFgepwLHyw8AoFrB1ywY17VVTu+v1aXBNXF24vnal9pumg+Xr2phR2Gl1sgfN0ijd2HFve6zU8WtXCNpKnolvMNaveH/6X32cIFHCfZKAWztgLFpXogRzZAlLpuW7Sm2B7cPyMAMGStdCWcXNxBSqUow1QJ60w968Id0IneCLbs6TPCrgOWP3rHe90hMlyHQJwjwUepqpcAwx2aCjO81Gk7HF+PVvgfE8sbe5mc2mPa8wAatYiq4al4UkFiZV68Mrm9O3ijxjB4/8XKAd2K0e49+lO/+h6U1zuicmFdKo24yPF6bav0l21qchp+udRrjWKgum47znZCB/Ns6E+zUiaThfDm53k1MGFzzP2uPKDtrRJ7Q1FfMBZ1ybmIQ4e7Y6TcrnXg0LTOpS9cHdTLvCLTmzDicn9Ipozjwje9ZLnN9JmbXNB0a0rMzcaAoh7F0rinq559Trik1nYS6j/KjgLKrPwCzwWApO2MuqdpdiOz7/UinD1qbwgcu92HI1L68Xzzdlh3lBfT+MxFoGridfvb78zZN+dl0b6fypSSUnlb8WF/mHC/qzIlm65nfUgGQtXuYujlvNtbtirlG6yTk3GW4N7WSf7Q5ofyrxz7pk80FJbm//ccW71aYNWIaBHOx/lk2iRs2l91oX2FRHLpHZ1F3f0K7VCeppiHam2IQnNVFfB7DETgV5X9v2soLjsnSoK7XSrqXHce5ahjYbmEHf7lfqYh3BVVelBaVbYsbHyqJEHljPOS/LmxMLtQZHNOKuui8GtDSaJe8epe8eSiZBX+YCW6VMc+1xMkNetO17YupODsncpxK8xSNf5HuFzwW/rvF5Fmc5GfixgDNfh853U21HdiqkcNsiSQaYXt3lZ2A1XSNnUwhXRLT2Vqn3UJ7GNt93VPQVbusnV5bjRHV1T4CXU3w3PIwGcwRWguj3PIIVQkPyYv/3OzTQRXsHc9Pic/zC/1rZ83u8pVKjFV5uU1MO5VTuBXFbNjQbKICiNWB+dEJzNzZ3tibF52MCRXfqRUMCOFsBVVEcljkMuHwxKCozyBxGEyz8ZgAN0AD3R22+lF1+NFeqVEaBZIQqF11hdWy493EBZUjvt2Hdtoet43d1V4WDhz3xt2YOVzcIlV7eBFjA1lgoZw+PFYZ/44cD6Cv5wIb0kDyKUzpDZlPSpX1+Vy8gJl+NlGD5doSGFmznVz3q92DxlUkt1z2e+FJH4nZCh3iPpHVGh1LQZGsH5Q6bR4mAk0dVxCYFoYaXOER5h02Uh1MhpYR+KGPCZkzfFXyIlVkboy7oFGXf90wkxn5SBv8wuuNoCwglklY0bnc6HjiKWch6YtcylpNDxAg8GbKJQuQA4xhPjCJWa4he5xZN8vNHF7Va28hKtEhVW6eL9Cdn3Nh0hnhvM8Y8RiWCXFRQM8N2PKgw6yhNqodYGTlUtahQcZhP9eg/7bRtF9gONgBE0oJw3qdRqnYnPqhkKqh/VUeN5GR1OtaOEbU8jfiDZpg+UViDIrd7xtdIqHdxKASUevg9L+dbYDiFv8aI8yNHJ/k7WmN476ACEciJ2XMP3jZy4IhbXFdWgxVcA5CO3AZv3pZYpmhkaZl45feQT/dRobSJX1ds7caCR3ZhoYeXi/h6theOF5dVWSkvtBSR+QL/hswlSWNHdWipfFuoh3YZeW4FaV31lZfZhQDFNNklXErGD4qYkA1WZzIWfsD3T7H3QK34VDC0PMS0mionju3QAYkpKjdncJUkZTQGDwrgI1KmkiLWl+JnbDzHS4x0mcsTd1a5Vi+DMWGzgGQ2U4bkUu6nXo3kgKtJSQx4dCMmdVZWmuFCg08SAPWAm7nZG/TCMjXWDmp4JcOZiZFpJ9c3SV5oesVZhezzhCf2gYwWbprJYRtniUUniNqInUFUTv2QManJhWNmLYtHmL3meLdzfnVDj+uZM+xzQGAyJpoonLvjZEKlk0doaoIUl7LGOaJzn6XJbu9lT0DJf8plnkdZ/yhsiS+r2C1k1Ub0dXxIGWicIjSm93uK5ohzZyoauqGikiEt9kYBRlpAxJX4KA8CwF144meL1mgMmWjB55T4Z1t9daBm2Zc6mkHOaXuNV3hsQzTEJogah0ql51nmlU5CVqF1p5FDNZVMyhuG2GYh2g8reYhEaXuQKYRrZaZfZS/nmJnISYc+ilcrx2SXFzHYBjKvxlS1pz1fpG+zGIgxVFuyOV4kGJS21afAU0vPh4OMgp4kxJMklEwrQDSGdmcFSm94Wl2xqGCeimVBeU3+NqbDd6EwCmETloShxamUCqynF167klRQaEQMJnuwlWrEhapQITh9dov9eFpmwq3wwP8As4pFHZl8NrWdNJV1ywlMdfmGH6hrcsh7L+VRdihMeGivlll0ScZdCLWN0PWQ4uZuhFhbnmc+gXV49YmtfhpsNyCiYllt4EqoUsKqoJZP3smiarVrNIpxdfiJvWiKEvdRiqWI4CaUypRityhM0/YnwBWHatpv+NN640leModgrFd0CssbedSf/Tif+mBwLTVhhCJJnmqTF1SB2ueM1gmN+pSsdmei8yV1olij5mk7vUW1qKU5UyZRQiuXV6h8sBJSV/ii8QQvOasUZtuY4MqPOfKzRdK2pZVbvveuRwo6OxqLBVmEijRjS2unfTiZsAZyh3NE6MZiEsNPgZaalwf/dSQ7ZmiWfUzWRP1GkRGzNnR0tkdhjC4ZRm9iffkQnD83paVlVlWpOmv6W/m5p1cFq5aFb6dIai17SFWLtHB6atmmjk0VYZeje69nZAC6omdEb9S6ZR2ldLoGD5eLuUXBFbz7m/JHrvbJb1ontJ0DN5IbnaWqRhlVhtmDNjdrt/XKhW7kSeOFWazoXb7UVZnkhCsms9qJl7GFggsGkUrUQZC4lObifwagnso7KpoYqHw6seO4XysauJyFfwj8jpTpiRDKjRqZmbjTqPiKr4JHtWEUSfMWu1jYhBq3rVjncc1btI1ieJrIv/07FINjv07iA3GrD67qs+3gAwF7jab0/3bla0QASrYg9Zy9qoBRS5s2BHtk61J+FCzeSj5OGatx9WCPuW7Yp4385rRuuIwmfMJAQUsS7Lcm+7ZuG7cYxWewR7O/irEquLv4iZni9Vzml5MFOaZOqZrsOn1unCdGCUKY1a4iG2ufCbzaCWXMo37l6Q5VbMU+kUf+qrbdOwAroACM3MigmyfvQABZ+5fkeGc9uabLiltPlpFQE2+BLJIsWpyiQ68qWqxBDGiKd4xfKkS1xkJgelv/+rHud8cxKUbzMMiE7BO+9a1eXG07CKgkFsr66sFs/GivOGwnuKV+3KWnWG7mu7egTFfB2nt85EJzqLJkxayy+Z2aY7Beav+hHTgANLe/uRwUWPx+rReo+JiwXbQoirNLGvu1hdafdDfK1ZirZJyox+mobklseyynW+zFK9OGg5mkY2yBbAWqtAhaICyq4iUPsFTOPYEB7XmWbErHK9AAjszICXCMMEyA8dtTvLSGjCpKHxe2symBfGl8zMqc/Al6txa8EgbSCQVfYNW7afp3IaarPcZ237O1uEvHqRbREj0vJPxfIxyfYsm29yBpV+uyKQV09iXBtLXNyhqpEZyu1ziYX3RsBvmuLvuKFnqv7DV/SEVymjpTrcaHIPyLl/XDRTPORS0UsDwuorvOu4N4T9zMNcxiBcyyYWqoo0ae9yt/HAus4DP/rWG3b0ZsLo1pN7gop+GnwUFIXavIsoULi1i6pHPtE2r3NS6WgBWjjx35SI/sJfsSbhZroPX2bbQVodiLk9j3mKt9tEP41gPZSTvpxgizj+U1dLyZqNhIkrTLY73Lr22MsfXX2SgMTNHLfxolSGj4s8XUj8JKvx9cbJRbiMZtPd75mptFZEibKzF3kBWFzDb7t3srcX8noUuJipGrqLenzYPFahUZwMwdERu7zwgYvT9rJX9rfjU4rIBcnW0p0gSLp2U9f7OiQLfSXPn5zcOX2RL4oKt0p5tJwlu3VCApo/28eqYJgm3C2fnNE6C4Zf+Y4aipbd9YqxZEdBzYyVkS/wAmKOKgOaPUyYMX+3BN9qtPdtuykqO3+5KifcNVkqPSutMEGkzfPZDox2BjVsskXuIyUSqhK4X4cNr6IFKMyXA97YWfmVYFDq3CbHIpXp2+d9njJpe5x1OgHeH34ts83pnKCZWs1dZBhckInHECcptETeWkMqHIZYcDEXEDRMoLCd81+24Aa7o0jJC+RsRLGHokucPGObaP+MM31WUeNMTWbGLPTGU53oGpXbmlXst+DugwYcgFdoHZUg9a7pIqnoAHatnXpkcULkpN6b4LisOSCtamGJWFS607fbGn+3Z485+x5kUcaG3yyFOcNHiMxbHli9+qbhCRocpQK9vXBv9czDjC6+ivDX7n4tZlxf7jF92mRekq0Q3mNQWX7ihbmoq6ediNDvrTjZiFCE6ROB7qydlakco713rtq17RAsneyGa+F2ybXiWeDMya9YWwPh2QzuRE+8detAzxxPvvnszMLGdyFJrggyjNA6pQSKjWtmhg4f3dbyPXBP8S9NJWZG6wBAmv2JaClTJPbL7W+Xzqc1h6Km+3rfydymyk8MrbIY/Y17RGnZjz1k24S8bVwBeb0IyWU9y3pIpgFJC2L/8QtWSbNQ+kHITmrubfRNqpXLdnK8fpxvZBFCRni5Tmq2PSIXfounTgGlOuzG6Y5vbr8yzTtXnYre7dQ4eot/P/afrb9YFzqQp254Q3Z3tZ2ED4QRU3lvVGntpNzHSJ2R/pbr6bTFgdiFatrt6MJ7ktPTQ4V2Up1gfM1fQuVK2vSKjiDi6v+A1B0azMW0HHdDZ4n0GIkG+MqEK+4Lw/35ie3tRemHw1y3el/L2OUdKUnbQbherNpaGU5wXr7JDOiNHfiym7I1Nu+w7B4XnOzmM0+z269hEH7YZemQFOWKuiQcto3lg7kaX7eQr0Y/S/xBMHCAUDA4IFhoSFhomKg4eHiIORj46ElZSOiQMGm5uWh5ygnJqik4yYjYqCoaCIqa6LrAWrs7S1tre4ubq7vL2+v6EaGZCtqK7GlYOgjJ6t/4vOqZDHmc6N1oLJydOypJbe0QUBr4+jBsaF0Omdi8fE7O3RxenQmKq0xavS5bP01diX7PyhY0aw3jhsktDpMxWP3sFJ3nppi2evk7MIFjh1AMaxo8ePIEPqqlDx3ENyDD0xxLZuG7hTpaxJyzTOZEqD9eZdSgiO0C1khvjlpPgp1EmEPtcVe4fyqLyBS1c+oxSxUy2BKWcCdPeyYcyBNKUyS2pumiRtWoOG2iiyrdu3cOOy4sdPK1CVMIcyunoy0k+eYb8SSxsVbNRRXP31o4bwKLmnX/VmvYaqsst/mUIBZerUrN5zi001O+i3bE7Lj806rKkQH6cCGOXKnk27tv9RzkWXXf4WjdY7ZaZfpuuJ85nDtLgzk9pauHNz15oHUy3Y2B0kVseX16yma/X0pf3Qgsab+pRK7r5fXctanDXmbZQ3cbNNv779jhgyqC0b6fjKidUdY1FAxwnkH0WVxCIVV3kxxSCAj8QCXD4H2tSbUqNhVg0yvJFG3nulDagegU1J1lVFLSF34mE7ndJSQMwRBxpDmhU3CkEU3KfjjjzWMiKM8SgIWDvPtVhYQnh9CNGF2t3YmHsVPQScijJSSdVwMio41FkATuhdhvuskpN2jK33z5EnEgVWOxKpZxl48IVl4W/ZoNLjnXjed2Ca5fSXGFS5GXDTUj+VomGYKWL/KdpvPy56GC40ilLght3sZZWEMyqCS500YekdkCY6COKGD3pY4jUvGggZPFfCopRBzTEp6CodAJDnrbiGlCGsp8bqVH/TrQnenKb2qZ5uPekkj6KMoiipsy8euh5gm52mZWXiHfYpQhQ+2eyTqy3mzWD6nDfufzKu6Ri3NarTTT+25KgRAPTWa++9+Oar77789uvvvwAHLPDAAgsFE2XzicmLr2SZw2xTb8qZ5qn5BDjtiIp5a8/F1bZYbJjbqrghqI16lqBuESdLnl2dqTmcgYaWfJNCmCz84znyDRBBrjz3nAu9PibnSqFTvSeqo+0hVbTGjy0DYV+tLcoetWZG/2jRkIZ9Sd2QC4l1sqAsiSlxpx0qSzZK5VoqdsykscoYdayG29Pa6iL69aw+5623Lpq+mnTEI4e3mZlYXQa3eUnDV+GwfC7ZdpETtw1qhyqjWxDWlqp4m5eAepa40kWfi/bSfHLaKOORiVa1hRPu7frrGFzd1Z6ozaS15QvZfh5rDEKFVcOC2i512OFW5TBO215uGFHWresemjd7nXBwkat7M+1Pmas6gUoGRqecxPIEsyWvl2/++einr/767Lfv/vvwxy///PTXb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jB87GlghjMoAY3aJsLcv/QZzX4oAhH2L4GTIGEewshClfIwryZsIUwjKEMZ0jDGtrwhjjMoQ53yMMe+vCHQAzi+1QoxCIa8YgeISISl8jEJjrxiVCMohSnSMUqWvGKWMyiFrfIxS568YtgDKMYxxg/JZLxjPPzYBjNiMY2uk+NboyjHOdIxzra8Y54zKMe98jHPtqCjX4MpCB/AchBGvKQtSgkIhe5SEUy8pGQjKQkJ0nJSlrykpjMpCY3yclOevKToAxlXBwpSkTC8YukLKUhT6nKVh7xha6M5RNhKcta2vKWuMxlLlKpy17GkJe+DCYKgSnMYnKQmMZMpjKXycxmOvOZ0IymNHmhgGlac4D/BBCANre5zWt683/Z5KY4BfBN1yGznL4gJw9Z2cVzopMX6twhO9+5yHjyEGj0HGM4x8nPfvLzh/jMJxj36c+C+lOgCNWfPRN6n4AyVCQLfSh9HCrRj0S0ojuSAkZ/cdGN2kejHoVnSEdqvo6S9KS3MilKV8ojlbL0pfVxKUxnOhuZ0vSmb7EpTn3hzpHqtIXz3GJPQ/pTFgZ1p2EUgAKWytSmOvWpUI2qVKdK1apa9apYpSotkUpHpWb1q2ANq1jHGtatclWORT2rWnWR1rXSYqgebatbVwFXAxLUoHjNq173yte++vWvgDXoXJPoVrkOlhN1PeBdA8vYxjr2sZBl/+xhJ5tOylqWrZfNrC0Mq1mucrazoA2taDWb2NEy8KhZLK1pFYja1dLUrK4dLGxjS9va2vaIqr0tRnOrW4mqEKS95epvg0vc4hr3uMhNrnKXy9zmOve5r+MtdOHX2itKd7pvxK52t8vd7nr3uw+9LniLKd7xBrO85s3VbMWI3vTear3uja9850vf+to3oQfIr373y9/++ve/AA6wgAdM4AIb+MAITrCCF8xgBDPgvtMc54NH2t5pLjayeZ1wAatrxQoHEMMgDrGIR0xiwGqYgByGsA4lrOIvhvPCJY4xN0/cYmayuMbOvHFIPVxYcdJ4t83VsUd5vFYhb5TIajUyjv9BGdkfL7mYSn6yMKNM3wZb+cpYzrKWt8zlLhfYyb5tbjVfimQpm/mmKT6zLdOs5ja7WbhvXmaZ4/zIOdO5kXc2bgMSwOc++/nPgA60oAdN6EIb+tCITrSiF83oRjv60YU+cwNkTOlKW/rSmBasmRmQ6U57+tOglmwCp9CEd3I61KhOtapDrUBSm3rVsI61rEd85lPP+ta4zrVeZ2pn2tha18AOtq5bXeo29no2vxa2OGEMa2Yrm9LEfvWzlz3tal862uhMtrWF7extgxjb5dS2t8dNbsjWutzoTndjeV0/cav73fD+J0yPLRt3x/ve8GY3/eyNb8Z2u9+V1vf89gz/6YIb/OAIT7jCF87wQOf54RCPuMQnTvGKW/zieMa4LOmt8Y57/OPbZcAGRk7ykpv85ChPucpXzvKWu/zlMI+5zGdO85rb3AEQ53em/w3wngtgA27lOAR9/m6gr1Xo0vSr0dWK9GgqPeiWfTokS0D1EnRc6o+sutU1jnWQP7LrXq9nX5cedrHzlexlPyTY095Fno8Y7WwX5NrfnGy3E/3ul4Y73W3O9777/e+AD7zgB39ynMf98IjfbtMTL1TGO/7xkG8mcCM/yclT/vK1dDXmI6n5zXvedQ8IvehHT/rSm370C1jA6VfP+ta7/vWwj73sZ0/72s/e8KtdvFvwzvtK/yMgtrqPYu9//3kvkpj4xefi8ZPfxeUzf4vOz31Co09DNksx+Jik/gytH0XsS9LujEW+ab1vSe0/34rmB3nvfQ7+xoo/7Kq3vfznT3/ap77+r1d9/PHPf9fj/vzPxX0AOIAEuEPkV3EC+EQHSHEJWIAO+IAQGIESCEALmGcNIEcVOIE0lIEaKEMc2IEgWEOdF4JxNILe5ACplwCpt4Is2IIu+IIwGIMymAB6B1MmeE0OkGs1+FI3aE05iGs7SIIZ9IO3FoRCCBcf2AtEOGtGeIRukYS8sISy1oROGEFSGGtUWIUPhIIyOIMq2IVg2IVZqIVkWIYXB4VmWEFomIYTtP+GdGYrY+SGcQaHbAhGdFiHXnSHeLiH3dWAfPiHgBiIgjiIhFiIhniIiIhDcihlFxhHi5iIkBiJxWd5krhElFiJmJiJhQgAHhADmohEnOiJn+hEl9iBeihGpaiBpziKO9SDrNhDrviKsjiLtFiLa5WKtmhDuJiLNCQFZPWLwAhVvPg6uziMxniMyPhkfnhLCNCMzogA/wdey2hLz/iMyXiN2ChKWpeNMrSN3GgfFPWNKxSO4liO5niO6JiO6riO7NiO7viOQviIajaNSCSPZ0aP8JiP+riP/NiPO4KP/mg/AFlE9hiQtFGQs9CIBvlACrmQDvmQEPldCBmRbTGRFPn/iQN5keuTkRrZkR75kSD5ERYZkjxFkiZ5kiiZkioJcRy5krnSkj80ki6ZSDNZkzZ5kziZkwvpi8HYkz75k0AZlEI5lERZlEZ5lEg5VSZUbG4kBTyZlFAZlVI5lVRZlVZ5lUW5lG5UA1TglFj5lWAZlmI5lmRZlkoZi13UiVzplWbZlm75lnAZl3IJVUsZBRxQKwSTl3q5l3zZl37Jl50oA1tgBYRZmIZ5mIiZmIq5mIzZmI75mJAZmZI5mZRZmZZ5mZiZmZq5mZzZmZ7pmFlgl3j5l6RZmqZ5mqhpLx5gBFVwBV3wmrAZm7I5m7RZm7Z5m7iZm7q5m7zZm775m8AZWJzCOZzEWZzGeZzImZy4iQVRIAQlkJrQGZ3SOZ344gESwARakJ3auZ3c2Z3e+Z3gGZ7iOZ7kWZ7meZ7omZ7quZ7s2Z7u+Z7wGZ/yOZ/jyQUy4JzUmZ8AEwgAIfkEBQQAEAAsYwA/AKoBoQEAB/+AEIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJMAhBqMBaOkpZ2JpakFA6qtrq+wpIUFhLQQsoqxqrO6r5C2vL3CuILDsYPGw4bJrsjMz9DMhEJBhRmHrYjAp7fHzrrF0eDF5N/SuePL4dvisNrt2bXQjqqsxvLi5fi+5sjr+ooiEKr2axe3ZecQbuv2bB08ewYjRVPHkJhDeBghYmw26909fbZGDdC4cdEoZxQXXUPX8OC+YKLYESvpr1xIZQrdoepYESfDixu9PUq2L+hNo0hXcXR5spbLojOhJv0YLKm5Z6xYsZyaU1ijo/MkTp2IjORSoPEkNb0l76nJhWj/zcKTSrRmz3ZVI961qHRsWG1vuXpMe1UvXKf00t3FhJeb11NB8+YFlq+ryMdbdfrVim1uN8uphvodvZatabE+IZNerbhw5cmhA7Nu6ZqfLpKobusF2Blz7ZaxH4X6WiCARaaCf6cztdcobIMLZTadjVHsc8KE6UJP3fysctqXuB9kjmu07NLdqfPjmVs9Ut4ZqaLt9a89eO+d4B4Ont+9/+za8XeYKDH9581xmekEmoGlyAUeYkVRIp9bvHzn4HLJUeZbeortdl151fXGoF/zIcghdXJVgl9F443414lkBWgYegtGNBZxA1ZV4n7r2ZWgUC4qaA1qAFJYl4hWsVdf/40e/sgcQhCO08uF7zkZ5JV8PUhka/kxmdCO52h4Y4EBOoSWl7N9WORpPsp45F6DVdYXVQutNNRvFF6k3HfqmYTmWkDaKOd/BLI5C5W6pRXmhm6K15OSOUKVJyczYckaPkpiaqiPIOJoaY+TQfjoec7F+UoAW2kKiZ2TqvYkpJp5ZihY/GGD55kSqmmeQhANppaofE4oKFKoPtfqsWp52A6iYjoImK4mQglsm3DalWOSfJWlLKMFcolkkogJxZt1yGpyKYxPzilko96iK667Y6ZkEmemahgsadT+9GetjJWbybD0sfsqbOOCKey+n06o43nfmLqwfe/S2BapAjaZWP+0/l686y3OejTStffyW1hnBtuYLE037TTJl9GJl4o9IT8rcKSHDFdwxr9IBu1r8ZQX8psk/ywnxI6eHKNHQqMn0y8fg6g0eTT/irMlgwIoLlievqgzx6V+G2/Br9D7lZ7dpmtx1itWC9MkGWA8tWgK+zrzmmtTTHe+i4GE5Vsy2xRxdmkTHTAhxgnoJsy5bvr2v5bS1a3G0j39JbzgBt2blQkPPK3ieya+OGORzR015YPnknToXr8L30dTjm5wvVqW/armVH9ONYPQtpc6nY+X7F8uveZ9M+m7t1y6jKH67roiNuNte2bBI7yun9bWKnE/0tN4tuioq1ixyPKGuDr/qFHuvD0ibV//PObRaKR896TyFDntRAteD007OuQ+7I1/Nr5+oygWPcIRHvWtL3vHMV6lRBak+tBPd+GyG8YaUyjXAe00tunad5i0ieUdUHaVOxTginckdelHOcyanPmyBcHTwcI4mZFKhWJmtOk1wmYG/KDlSKco1cmmcJTJ2fvIN0S3xW5UtnJYyVboQ/Cxi4BXsZtxEKeI9OVQh3zin+YM40KOcAeA8yuhe7qoLCYWrYgqDFcycFNFt2ERSWjzIftsyKYgEgdMz8rSxuRWRxAej1ArM2MsssIKCryRcfYbXGnEpD3n1SZ6Y4PcIju0xUCdynLGo94FudenghgD/5KHaFvDDklCUPXIidWLm+KgU8CzzQaIRJQPBYWHjuu8w5NJiYAFSOmqzEmJWxL05WVaQzM7anFoO0QjHcnoRhnyknuCBNgV4dbMOCVSj/BLYv7IeMzZ7SaBRPTdyhKlFAqwyhrne2PUEgIoLpGiaWdUG49WJExAZco0R4nLetLEzO/9pRX2EMgzW8nPnkVqWy3zI1bEx8lKfhOXARsT1O6mry5eR6A1u+czFYgvbqLiY8EqJW0Slj0mpRBD8QkjaQgpkYGaq1TbaVcRKbIuX2rzpiIFZ2za1dEkzuklhxOEIRHRPJdqNGyz5FD4ZHm+eSpyRjBl5NFsgkZlvqahXv/85ADCgdF6GfWXUkXQHzW4KWPCrlFYfQhOlOaaWoAylXv7YQTJFiBdJuKcRgUKS0xHTa3hVFVudWo998lTsaV1NVbVDGqukpWh1syKD9RhvNxprzuprJ+E9Yl0EnsbeGInsn0lJiDRiqSREAKvEcqrSqlzq4qqTaN0lVZoj8dZ6FCxghzNIa0a6LmwDswVduVbXnMq08MiBSInpeSGTFgkVNpnhox8KxyXqCb4INAoTVPRcJtTW9RtMkBbHURyyfq+v6buuvw0X3LlRTrTdsOcRLWiYbfbyWhSFBG3fWda+aq3NDpyKONV6Bg/BNfSsUMQu0TfDFX7OzeRVmjI3d7/b/kbx/uGRDTXNOJg6ehbqJKiqy1ksCk7utNl7i6F/x0QaD9ryWhJTLDBgTEFSxy3YkI0bE2LAGo3t92c7K67JgbJW8JbE3sQmUPjVWzugvlb7U3Pv6+l6RGj1CRXHNlTw8PigIF8X0NEmLlXns91i0FIGocztsLNVOC4/LV7yqqKsFWnbtdJntzYF71PSzKsTtnkYWTFQJiNa5TEdpYgL2m4ezSuASfYoGG+M71ztFqcy0IvYNrXYlllZaD9vIoe13Apo0MqMwIASyGZ7EPIfaIgSwlRQ5R6vs31rSTXmuQv+jVSw5mmnJdL1gBCkcB9Ey+RPSi0zuULFoRO56xH/63Zq3qNUqIehWNlo1q9lrWbfvXfz+yjkVp3GLTPZlx0lCe0Ur8Z2+DetpkKQYEEh9K5kr2wgEmURxbPq0FG5i/4nnxMW/ZLzfTm6aORR1P0hlnfiObkLS/dZSgy18uOBuaamGvoyv7ajS6SIDJgOTIkZhhoO9aAKD1ttQdKbsvyXqWD1isp83r10Nzl3M3OzUMtJfWyJ7YJfGMo4gzSu+Y25lWj6+FtE/1URCB0Jo+X3eBS7i+ZbVpoKoKbSPA2HBtsrDfNs8wpfrGWuGuslHYY7s/ijvKs0bTfxy1tWTTdOJ7mKHqbfaPKKGvd2ExfrQqVve5tAh04Ar+6cHacvP8C03y3N0c3ScleF6CFlYNrxyY5X2RpMNLP7PPus0OrqW2uY3DgwSwekwe4pYhbPjXpErcRGW+2GBsdf3/fOuk9PrGzz6ylKAFq3k415dgn3sELVvyGk7I/zc/Y2SyihJ2gQSWVnflbfWczfmIZQqWWHvGzRKUNn+/30+u6xi8X4XR0XWHYp/btt1ZuM7/u++nLTsyY23RPhTFfq4P9ZcRmrxmLLb/ZRnYjpMYymeM43RFskZdNDmd89+MdRYN5tydzRLVqChd8m0N5QWFuPWMZYHMhWbRnYUVo8lcT1+J6fPc/nHdTPmdrtGV9kUB4r8NDSyZSkTZ832Z+uTVJyfH/gIpmQWwXZbuSf+1HO99jgIXCelX2VPgjRqY0REgThD0VWyMoK/t2g70nHHgEGt4TU1EIaOmxg8vSevvWN7R1RbFSheiFZzdXeeZSe6HGdifEZNkHZW/ohBY2ZTL2fDXIaLjihY3khfJ3ggfobHCXe1N1gj+ndCWFdU82fQNodwSDe9KHWKqHUoFjdONUX8lEgzjFaCOmYZkjd9hXcmEROYq4ZokQAqdTJvHThEZoctbDXqGYgiX4TzSYf02XfH7Yfi7nabzYi774i774BMA4jMRYjMaIM8J4jMq4jMzYjJOQjM4YjdI4jcsIjdR4jdiYjUZljdrYjd74jW/DjeA4/47kWI6nII7mmI7quI6NgI7s+I7wuI7uGI/0WI/dOI/2mI/62Iz4uI/++I+/2I8AOZAE6VICWZAImZAHdJAK2ZAO6S8M+ZASOZEuEZEUeZEYmZEauZEc2ZEe+ZEgGZIiOZIkWZImeZIomZIquZIs2ZIu+ZIwGZMyOZM0WZM2eZM4mZM6uZM82ZM++ZNAGZRCOZREeZEWWZRIeUhHmZRMuZBN+ZTDxY0sAJVUiUVSWZVYuT5LmZVcSSFb2ZVgyQ1fGZZkqQljWZZoWQlnmZZsCQlr2ZZwuQhvGZd0aQhzWZd4CQF3mZd0uZd8CZd++ZdsGZiCiZaEWZhkeZiICZaKuf+YXNmYjomVkBmZVDmZlPmUlnmZTJmZmomUnNmZRPmZoCmUojmaQFmapumTqJmaPLmarKmTrvmaOBmbsmmTtFmbNHmbuCmTurmbMNmbvumSwBmcLDmcxKmSxnmcKJmcymmSzNmcJPmc0CmS0jmdIFmd1umR2JmdHLmd3KmR3vmdGBme4kmR5FmeEnme6OmQ6rmeCtme7omQ8BmfBDmf9AmQ9nmf/pif+qmP/Nmf9vifAEqPAjqg8FigBsqOCJqg6rigDGqODvqgEjqhFFqhFnqhGJqhGrqhHNqhHvqhIBqiIjqiJFqiJnqiKJqiKrqieRKhLMqLLvqiPRajMhqV4Cj/ADiaozq6ozzaoz76o0AapEI6pERapEZ6pEiapEq6pD7KANdIoxKaow7wpDVKCEx6pTvqpNQIpQ+ao1o6jVzKoDhKAF8qjWG6k1iapmoapGRKpVX6OV7qpm/6NnG6pXO6OASAo2UajWdqoHkqAHvqjH06oFIqp3eaMYVqp4eKM4m6qBvZqI6akZAaqQMppH8aqJSaqZq6qZzaqZ56k04wqJ+KLKE6qhhJEKbqkKiaqgq5qqyKkK46jArwALRaq7Z6qw9wALp6ALjaq75aq7zKq786rMRarMbaq7p6rMoarLbKrLS6q9Aarcmaq8KKq9CqrLmarb56rdgKrNIarQ2Q/42lyowKsKbmeq7omq7quq7sqqOY6ozjuowN0K70Wq/2eq/4eqX32Izzmq/++q8AG7Dquq/M2K8Ce7AIm7AKy6MEK68L+7AQG7H22rDKaLASe7EYm7FJSrHHaLEa+7EgG7I4yrHG6LEie7Iou7AkW4wmm7Iu+7L5urLE2LIwW7M2m64yO4w0e7M827NLmrPAuLM+O7REG6RA+4tCW7RKu7QCcLS+mLRMG7U967S9OKvP2qzR2q3DGqzCWq3UOq1au627GrbPCrZay7VeS7bH2rXYyrbEarbF+q1Ze6tU+6oBarfvibcJKap6W5F9W5B8+7fnKLgDGbiEuwmGe7iZkP+4insJYdoACRC5kju5lFu5lnu5mJu5mru5nNu5nvu5oBu6oju6pKu55fi4Upu6MEsArNu6p8uvqhu7Nvu6BSu7tuuytOuwt7u7IZu7Fcu7wKuxvtuxwVu8Eju8JWu8yquy5Ii6y/u8AluVUAu91IuzVDm91Zu9aiq92tu97cq93hu+6Aq+4lu+aUq+5pu+RNq6rnu9pfu+8Bu/8ju/9Fu/9nu5jZu/+ru//Nu//vu/ABzAAjzADcm4BJwIZ7oBCrzADNzADvzAEBzBEjzBFFzBFnzBGJzBGrzBHNzBU0qgzqi+IuyjG1CPBiyYSFrCIOypKWzCn9rCK9ypMByPJ/z/lzN8oC98pCpMwzlspDuMwyyswy6MoRf7w+9Yw3x5w0fcw0VqxAp6oRnrxPIYwiNcxTkqxQ3qjB28xVzcxV78xWAcxmLswB/MwweMvGdct2ksqGs8jkjcxm+8xnGcxnN8xnV8wHdMwHk8wHsswGHKAAuwAAkQyIRcyIZ8yIicyIq8yIzcyIv8oGHqALsLyc3IAJPMoH98yQmaybdLycxoyZ2MyZWsyQbKybbrycsIyqcsyp9MygNqygLwpzsqy1PLyql8v7jMuY68AKj8k+Hay22sjX0cwMMMwMX8v8fsv8ncv8vMv828v8+sv9Gcv9PcuNWsuNd8uNlMuNssuN38/7ff3LfhrLfjjLflbLfn/KrpzKrrnKrtbKrvPKrx/Knz7Kn13Kn3zKn5vKn7rKn9nKn/TKkBHakD7agFvagHfagJfacLPacN/aZnagASPdEUXdETjQB+7IwTnQASHbkWzdESjdHEHMzf+NBVatI1itIyqtIvytIs6tIrCtMqKtMpStMoatMnitMmqtMlytMk6tMjCtQiKtQhStQgatQfitQeqtQdytQc6tQbCtUa+rgOUNVVTdKFQNVWXcZYrZddLcxfnY1SnaFjjaFlfaFnbaFpXaFrTaFtPaFvLaFxDcxhzad1bah3zcZ5baZ7zdd9rdd/HdiCPdiEXdiGfdiInXvYir3YjN3Yjh3ANUAFUiAFClDZln3ZmJ3Zmr3ZnN3Znv3ZoB3aoj3apF3apn3aqJ3aqr3arN3arv3am90AU9AEg+ABMRDZkw3bur3bvN3bvv3bwB3cwj3cxC3bTRAFHNABto3blE3czv3c0B3d0j3d1F3dpG3cyN0BgQAAIfkEBQQAAAAsYgA/AK4BoQEAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJNCJZ2hoqOkpaanqKmqq4wtahIdrLKztLW2t7i5kgWCrrC6wMHCw8TFtrwAA4IFEQC+xtDR0tPU1ckDyhEZz9bd3t/g4ZLKycgUzq/i6uvs7dPK5OgS7vT19vey3Pj7/P3+hvAM6ftHsKDBcOSwKTs38KDDhxCLFUAmL6LFixhZkeM1QFvDjCBDiqyEbGHFkShTqjxEMZkgC9wuXFhJs+bIib3SAZBps6dPgwUG4Bz08afRo/WUBRXkUSfSp1DVcVyKrGjUq1iNxRt6MqvXr8R4IWtmFazZs6padtzmFK3bt6n/ghZg2Bau3buYkE1ExnYe3r+ALcXrGriw4USDydY9zLgwxaDK+jaeTBlA1cWVM5+NF0+y5s9w9wryDLo0WKXY6Po1zToqxcFlW8uuybFQ7Nm4bTZdnbv3Srm2MfsenhEyNgCqiSsXKdQyL8W8l0t/yJnQ7enYCybPzp1gQJcAYArvTp4eR3LQy6u/d9zyIPHR18tn9x3+/PvqBg+9jr9/NLHh8effgMCIZt14BCY4DDkUkKbggws2B0B6EFYYDFcBImjhhqkMFpmA3D0G3jUcpgVZcPHdl9Agek00WImk4DSWfQnqZUhLMJbSEi8O9rcVizmmRUg8IIY4CDycvRhk/ydC4UROkdjZyGKLS44iFDy8bOffY0oJ8mOVqkC53IuvuQemKRvllKJ8UnpZ0pmjAHfgmuu1B15JOMIpygBabtnmMnrGSQiFBG5laKCiULTbgztShSgn2MjFDGFbEkKVko/mRSKl80k4opl2ZkqSiITit+Onzol6yVKD9ajqqzeSyimstILq3qK15gqoZXaKqSuYYnU066+vkhOAmsTWWuaxNCYLq5xEaehsphRM4Ou0Fp6KK7aZ7oXjtdxmOyK44UK4VLR0lrtkl3Oq+yiGyLqL6EaXxRfDaPJyeOWJfRKyhhT5wincGmYEfObABRtcJcIKL7wmwQ0vyXDEOU5Mcf+JFl+8YcYaV8hxxw9+DHKCIo88YMkm94dyyvetzLJ8Lr+sXswyd/cEzTVnd/PDCeeM386IQOzzzzgPvRzQhwhttHxIG6L00uo1XcjTUJMntb89V221GolQrbXOXAed9ddgdz022dPdbDbaNoed9NlsK6e22HGXTXfdabvtNNx4+6b31Hz3ndvfWAsuHeGDeG344IjUoPjisyEOgOOBQ87a3yWYIMjjll9eSOabV945aJIDwPnopK+NOm6ln756Zq2L/jplsc8uW+22e3537qXhznvqu/+uWdHC40V88XYdj/xbyi+PVvPOmwV99F9NT31W1l9/VfbaQ8V990h9D77/UeKP71P55tuEfvo0rc++Su6/j1L88otEf/0g3Y8/Rvrvb1H//oMIAAPokAES0CAGPCBBEqhAfzCwgfx4IATxIcEJ2qOCFqQHBjPYjg1ycB0e/KA4fCdC8qmuhCYMHgp7QsIVqu+ELnyhCmO4khbSEH4wvCEOZ6jDkdiwh/bLIRCDyMMhZuSHRuSfEJOoxCIyMSJIfOJDkFYCUCROdlIkCBWtGLosZmRub/MiRsC4NzFehIyAM6NF0Fg4NUJki210o0PgeEU5TjGEdpzF1eqYR4PssYt9LMgfTYfFQLZjkK4zpDsQWUhFqoORjvQHJCPZjyhSsoNLvKQ7LKlJdXDy/2UHCKUoR0nKA1RDAAXMpBRReZBPGpGVCFTlE2FZEFcCUQC0XKAsk4jLVDpxlr4Moxxz+Q9b3pCVxHTgLm8piGRWcpmvDGYZhynNNFLTj3jUnjP3MUk3bhMf3WQHLsdJznKa85zoTKc618nOdrrznfCMpzznSc96mpMRyDxIODu5yGzysxP7/Oc6AipQcRC0oN+YAgCMiVBoKJShDTXGzmIxzYga9BUUtaZFwzFRYW4UHB2tqDjtSdKSmvSkKE2pSlcKTwcY5KHQ1OE4XVoQmP6yGwr42jgZUM04riOnWptpT/nIDqBWbadDBWRRdYpLnrYyptMwKtSQ+tSbWkOqS/+jaiytWg2sGk2rtYSqNLw6NLDqkqvUIKvPzFpMsUZDrTljqzLRGlWmCsCpW/XoT+2K17DSlYZyfeZfpTFOArD0sIhNrGIXy9h00jSvIv2oNyAq2WBQtrK6uCxmcaHZzdqis56lBWhDK4vRknYVpj1tKlKr2lOwNhcMKKVsZ0vb2tr2trjNrW53y9ve+va3wA1ubftaVb2qg7gdYydy/WpccSw3ZeZ8blsHCw3pDoIAlMAuJ7Q7De4qwrsYiS4U3VrdspbTuoJtbjiIC97knne81DUGet1Lzvnu47W4sO/FxCtA8srXvPV9oz8zoV+K8XeOA8ZEgSN2YH0m+BILblj/g7HJM3dEWBPYzTCYJizIB1viwgbjsBY9XAkQg4UA7WVEir2hXAFXuB2xFa6MZ0zjGtv4xjjO8ShNPFASt5YQbCTqj4kRZKUOeRhFJuSRi5HkRC5Zj/h9siaa3Egpp4LKVg4GlrMMjCj/rgHb828xGpCAMpv5zGhOs5rXzOY2u/nNcI6znOdM5zrb+c54djMR1QsOMGusnIYl554j61z6onPQGl0Hj3+lzhX3N77FWLSu1olonx7X0OestJAv/Wd1atrInN6vp0Pi5VpIOleUJrWYiXHqWqU6f6seRqtp9eojxloYs4ZVrZvI52/k+lW7vkipafFrVQX7fy9mh59F/11YFI9z2fxL9jrInOdqW/va2M62trfNbTXbT9pcvoWPlzzuI5d7yOf+cbpbu27Vtvu07yZtvEM7b8/WOxEMeMADFrAAffv73wAP+L/5LfCCG/zgCN93wheu7wM8AALQ1ti9E9HYxgYapQmI+MUmfohiT8OdKDZAyjieEXiK3GQkD+87Tz6ylF/E5CMH93JgjnKZK4fmLbc5cXAOMpdbhOcd83lEgC5xna8jmd+0hnaJvnGjf8OkF8dl1CvOUgNonGJCB0C+B67vfjNc4F7/utjHfnCCh13hBH94zCEd7lBkHaFvL2jcBTr3f9adn8NueyTyrvdH8L3vjfg74Bch+P/BJ6Lwhj8E4hNfiMUzfhCOf/xCby35vVO+8n6/POYDr/nNE77znj886EOv+NGTvvGmPz3kU6/6ybO99YqI/ONlz3jaJ972hsf94HUPeN733fd6B37bhR9u4nPZ+FlGvpXv3sm3I+D50I++9KdP/eo/v4Rvbyz2nc5ixm7/9cOwvvjHX/3v9xr2lWC+JtV/SfZT0v2RhL8j5a9I+hvS/oHEfx/1n0flS9n/TwaA5MZ6qieA5kaAp2eA6IaApKeA6saAoeeA7AaBnieBjsAAG5CBGriBGnh1XmSBjYCBHDiCG+CBWQSC8kaBm/cKn0Bo6HcJLMhFm/aCMMh9NAgJ/GdsRzkoRzvoRj2oRj9oRkEoRkP4gTZ4g45QhCd4hEjICEooRU/4RFGYREjDEzPYhJFQhTNxhVj4CAfVhY3whWC4CGI4holQhmZ4CGiYhoWwhmw4CG74hgAQh29Ih2xoh2mIh2aoh2PIh2AoNYEAACH5BAUEAAYALLMAQABdAYIBAAf/gAaCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmLAwOanp+goaKjpKWmp4OdnAadFBaosLGys7S1tpGdgrm3vL2+v8DBiQXCxcbHyMmSBQPExBEZytLT1NWyqszEFNbc3d7fkJ3ErODl5ufd2ano7O3uvswGBfMGEe/3+Pmj46uu+v8AA05qdujCBYEIEwKkZ6+QQYUQI57LNS4aIQAAJGrcWE1VIowcQ4oMJm6XgVcjU6r8RW/cypePTO4aNy8eTEcub+pUlFNXqp47CTFrtsti0KBAD5k8asgkSqY6lwrKmZTp0qpQVVIshDUrIaINvd5MKlVsUwPbzKpdy5Wt2K5M/52pcwuTpjxnU9VeTUu3LqtVdMv2fckJbtxBQwevxKt4neDGGw2/zVYgLGSIXV1KfkmM4OWUNhEH7jyA7+eEUnM+turztETPS2Gv9ezab16x4mrWq50QaNnVOnua5r3QUGi2nekJekr8365c4lqz5dQJWnOBmm9r9zq34vWAgoFD1X3ye0Df8pB3JmTU/LvM69bipdDevTvxmxdvt6+Pn3TFuVjHnzs92SXeUYAdOCA3uSFiF3KCRMDcgueoBlkzD1LIjn950UaOW7nUp+E3xxXynFpUjahiNwqu6OKLMBIW44w01hicUDbmqOOOPPbo44885gfkkI7MROSRmbSI5P+S6THpZCRCPrkkYM9IaWUirVypZZNbdmliaV5KyViYVmITJZk7FoYmkzX5J+KaPVLnIZxIrhcAnXXSJiGeQ2IjCAUT8HmkkoK+mGKhP85UHaI++lfAcIzaKFOkjVL6o2ZVWqrpppx26umnoIYq6qiklmrqqaimquqqrLbq6quwxirrrLTWauutuOaq66689urrr8AG+6MEwvZFbLFuHYvsWsoua1azznoFbbRQTUvtUdZeq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcM8EECl0NwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPGwG/+SbceyfAwyLCKPfErJJpeCcsqjrMxyKC6//EnMMmtCc82Y3IyzJTrvTEnPPksCdNCQDE20I0YfrfTSTDft9NNQRy311FRXbfXVWGet9dZcdx3pAWCHLfbYB/AmwNlop622AGS3HbbXcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCckAN+LS5T0so1H9DiykUM0ebGVK3S5sJkntHmwnSP0ObChCzT6r6UHdLqvqQO0eq+t//M6r7HrM/uutedzu66547N7rr3f8zuuwb8zvM/H75x84sw37/zz0Efv6trUV2/99dgLQED23Hfv/ffghy/+//jkl4+9A3mjjT7e6mdVPCHvMxL/LbnPr1D77J/NwE32865/+mdb393Qtr/8CaCAA/yfAQVoNwJqaHEQJNXZCIDAghGgGhOsYLTOJon+cQN/IjGfCEdIwhKa8IQoTGH1GCi9FrrwhTCMoQxnyK7l3aMBt8ChNRQwmGYpwG1ADKIQh0jEIhrxiEhMohKXyMQmOlGHG/EhtTK3Ng1KjhA87FYVQ+LDC26Lela0HBZ54cVObZEjUjRAGaeotjBqboxabCMX4citM0aRjl+UIxrxqC07aiSNddTjHQeRxUCmzY2e4+O1/Og4RbLxkCspJOQ4KIi1sTAiHMCiEzfJyU568v+ToAylKMd2SYhkUi1QFNYp9bbKvLUSb6+8WyztNsu61ZJut5xbLuXWygZs4JfADKYwh0nMYhrzmMhMpjKXeUwE/OqVKoymNL+XgGf+w4OHsF41fbVLlWBvm73q5kq0OTdyys2ccUMn3NTpNXZ2zZ1cgyfR4idPc1GxHfWk3TT3yc+1gTNYvmSmQAdK0IIa1JjOpGGpDpY3hir0oRCNqEQnStGKWvSiGM2oRjfK0Y569KMgDalIR0rSkpr0pChNqUpXytJqQOClMI2pTGdK05ra9KY4xWkq79XPniLyXQ+BhU/xFVRUDPVeD+lpP3/qrofk9KlQjapUabrTllr1qlguzapWt8rVrnr1q2ANq1jHStaymvWslEDAJzfgNLV6kq1Pqypa3dWBjOitrhgJBAAh+QQFBAALACxnAEAAqQGZAQAH/4ALgoOEggOGiIWKi4yNhYeDA5CKkJOPlpaJlJGOi5mdnqCio46fpKakjKipq4+apaqEkp2Tla6pr7CJkraMBQULraCowrino5mHn8mxsrnDtKG7rMbP1s+Ym8HO1dHbyNPf3uLF3dTXuoMFlcALGdW95vLBxI31ubWb99CmzJyisy51w5Qv0r1lAOOVuxZP3LBi/cZ5W0gRV7sFF+H9QzdPW8KFhhA26xjQIcmRGtNxk7ZSW8Rz++xxEumPWy9eLMPljJaN3CJgGXFB7ChRJsd0PeW9RCmr5K2axkDu3KjTU0OiElfNEolSa8pXtQre8jVgHVZ1Us9uEyvUKFhwVP/PHQXI1GMpqAOhmfNal+vcY0QDpjWJEaOyBRH24lOr66pdmHTlmjw4dubZVk5tIloaF3Pgrx6F4Z17VWq50iUpWICXlHHkmxwPE+YbNy9DloNTnm759/bjonD15gb8bXhtn5XXBo26IIDrqEP1Pm0d+V9ux881s27Jlqlj072PN5OdHG5m2uLTE1pHHmv37NCvt/VOeCrp0fPe7/P8tG9+9cD9J9lvKoVyyC+IvXMSgJd11RlvyPEWnX3l1Veda5lJhw56VGFX4HvFucXcZ87gB2Ek7EFCgSIAAKASiM95SOBLBK1UUkN+iUigiMYZ5RR5ldTT42QXgojTW0TORkn/WPNdaCE1NzLSom3wBWeddgw+uRaFdflYZZOQhdglaOEdxyGGJ2JpXYYdXjQcZ1/Oh56MVZW5I0jJDEmcX9RpmKUqsgkGIS+wLaYUcf1JWBteZSGy4oJxVhjojkn6OeBY/ug55qWZ/qWpXTHZl6OWiAr4miLtsLfAo4RccAGVVYqWJpa7IRVeqJQydqZMbJbH5KyVtYZjgRUC++CTPRGjTJ8diudqpNDCwh9/YUKKTbQRBpvVpqBk5GZIjRabnkJgihmbeZ9yia1i8Mm67qXb0vKdJkfCGCOqaJEK2Kh2CuekoUO29y67yQmraKzq6mupjlYpS6yWaZUDDL/X9oYZ/7MISyMwtwOTaJmNFjO8p8jmusfxlc3uBKc0yzlEW68wvrxygPvSa/Mgq3Wss64Kz4pfjeLGCV62BpXaSTsmIkpnkBlvqV66O2eH673GeszzoPBOeHUhLdf6J9YKaw1cUlNjGrXUjU248c5Q01PsdXRWbbK2+nHMF8YLGwoNqzSfPSKD+Yg2dNy5VtX20yRXquTcS7pNXdmDHUmwW7/6rbNXUZ4dcHWHc+7b17o53q/ZIB88+eKmkooB6JaP+7eViafeN5nbJYT2Ly2r/JuJBXGWLKx5Jtp6rMvCfvK/FUc+cNnycie3KL9oynzWQZNdJ264VDA8tGx12nPG7nYc8f+dKR9jHNOf96pv77COuTa820cq/WVJkz+78U21fzrppCBNH/yFw1/JkBc/pW2GcJs51vdK9TPW5Wp6ctLH0EaCEPU9plDjcaBcaISmAu4PdvWj1Myihieu/GqC4sJEUAjSPW3xyBoXI1TRjLYflDlidfnzYLk8dT8vCcI5VouW2IKTOeQtxxJu8p4ANUY1LrVwgc/T4eFoQkANNlFNSwTcDn8yi6CYpTDPq4j+XjjFYEwMFDiE4vCChLeQrItih4pdxfJzPkjVBI5w6lzN+Ie4wuhRis1LU92YKCt7WZB6OXShvyQVQKO1bIXX+1/QJpkw/ySSHoeswB+xFcLCDVH/bp2Mov0UGUdR0vCIrPiU9yDYN7EkIygK0mEcEcg4A0knZqbaFdgeNsadXCRV30ClufJYy+Ika5NUyV0skNm0Srptl1U05UBYqT7JOU88BivlsHjpMjo2KJqNCIpq8ibL+lDGQraYVjln1yMPMWp0JsmdMrGXE4zd0W7H62aJBrjOvymxh+TcHjOm976tyc6PRHRZG2eoFqDBM1jC0KS9PLjQrhS0KBh05utCs7t9Tkd4t5qmW77oEt09RJqiKpPgChGBnPUTbfXUG+U0Kr8OQowhhBvMPBPYRyoBbVi6zGnIIOFSQqTxoQWsqC056go8cdNayDpZ5YTGMkHs1Gc+/yTgOwOqm6s28qUFC5/isPMjLAKQZoV8W9ve1J+u1WylJuVnKeWBIIyME6z+jCQ47UnJcnntqebcohXD+cyS2pGRWtTMIUk50ULE0rDMFOIeTxS8vqLUn2vlasHm6tU7VpNWTioNQLvhv1XhdYyFuigFBVs7mq6PZOOzFbu+pSqrXhanfGRTHXV1oFZo77Se28hiReZQy74rhl2qqB7ZoYpfDjeDYKMlQ0e20UUU1bjAXdDv0OmrN16wXdj9qngfRi2IjZC8rDVEXbMLVacBKqU0BWp4Y3feQy1XpnLMqz7G25jbftYd7F2kGy85p/ZER7ovyktjrbLArapRPiFDrP+oyuhe2/3prwGu7nbBy9+zbsi1ioNpiD3Z1HMZjo/5ROuWGsU3zcoyR6xk2Ma6UzwPnwIqke1wf522SbLmM8cZZts40NddgdwlkAbN76Y6GWOAuQ/ED/xg+4ASrsQAdp0QHjEvd9s5IPUStrTb8kEL+13o1neuLgZpPxF8W0vxa3P0BBMEgbzjzX5OlMIqbzuvGaJwDaDFhPhtkBu7NjgGUY0NFSGZBic7MX5sYXo28qOvzGfUpfilKEzhQryaXo3QeY3zIKmRVdvgnil1VuvIiJWDrCMcr4kiYk2zoSFNacU8lzlNDmOlP3pFfIruqp/27oM/PFqBongixEZze8n/fBRdmtXEGKqxJADNRFbj98g2FR9lSZNKNRdTn8daBRBLdyolmztxqToEteeLV4HVKhsYHvWXbclmVrtyz/9T3oBD5+Ivctreb1Ngk9iHN7gmutbZZveMzIOkWKtzNozmlc22IohVF+Ko1rYhDGEsmQUjmqsNVIqg9n05ntrwnNA8IMrKWt0BlXYRGBB0ub2Zun8mjo0kRzJ3TVfhf3H8q2x12LzJLeCdZ9MnI3eQ0ZrSxQK0lBESzfl0PcpjcNx6sGBx9tBZzuBF6vuCw2UyMnabZrNutaALtnnjtuGc61K9erFdeVvIHsxnP7HXJnYn1mB24+cK5sxIJScueYh1/6X1NiNun2R5Rxn4cw/ddbvW9dID9nNsIhzcVbyb431zamDxAkEUmADMtde9Ux/92ult7LhhmIiMZJlUfAfU37Wm+Y/HNOBgjvwlQffwneszlMIVxF3h1485H/q8Nuc6racb7/F2XuPBJ7pI8/duzGO02ayfO/CXURbcHQjA44Eb9D1PQg1OteE8z76fng/8wcYN8GFxt+CUX2LbiE38hjnEYwO9Yt06Gb4eZw/MIl0ZZSxXRxd3x1N+N4A9FTjR9yB9QmpWJCPuAjcKgUxntCr7Rywex0HfFCHWg2wCt35LpnihJYDkV3ZZVESioyH1NhW9J3miZBYDEAEb6CtTg/8jYgU1eiJaBnGB3pZLEVR1KVQt3FGA/OM1xBRYi4J9ApdpX7FTGJc5EZh7jfdJMyeC4ER4jUNjoDFybDV+J6djctUvX0dgyoZ7oCBzlHQjLJeAtndSsuWDAEUuS2NpTKhldnIxXHhw32YwFLZ7uNaFwveB9zR2ByhNuYZoFBN36GRNSBKJNSRpZdhRJcWDFOKA1TNf6YR6kbgWVZZ4R0UuI/iJlmhji+iHLUeJq2g8zXdngqRjSSdDYuh4/1R9KEceO4WJ5ZNwYqZQbSZ9xTVMvdhI7RcqD4eECvd61sdUVROAl9dzJMhtffdsRqh+7BJxWHVpdQZbp3d+ieJlUjf/de9VJPxAMKnYSoKYcezYju74jvAYj/I4j/RYj/Z4j/iYj/q4j/zYj/74jwAZkAI5kARZkAZ5kAiZkAq5kAzZkA75kBAZkRI5kRRZkRZ5kRiZkRq5kRzZkR75kSAZkiI5kiRZkiZ5kiiZkiq5kizZki75kjAZkzI5kzRZkzZ5kziZkzq5kzzZkz75k0AZlEI5lERZlEZ5lEiZlEq5lEzZlE75lFAZlVI5lVRZlVZ5lUEmAVi5lTqklVz5lcPjlWA5llEjlmR5lu9ilmi5lpGilmz5ltnhlnA5l2chl3R5l/Jgl3i5l7igl3z5l6Dgl4A5mIsgmIR5mIJgmIhJmIq5/5iA2ZiOyZeQGZmUWZmWeZmYmZmauZmc2Zme+ZmgGZqiOZqkWZqmeZqomZqquZqs2ZquiZAu8ppcGZuyWZu2eZu4mZu6uZu82Zu++ZvAGZzCOZzEWZzGeZzImZzKuZzM2ZzO+ZzQGZ3SOZ3UWZ3WeZ3YmZ3auZ3c2Z3e+Z3gGZ7iOZ7kWZ7meZ7omZ7qWZuTuZ4T2Z7uGZHwGZ8POZ/0eZ/4mZ/6uZ/82Z/++Z8AGqACOqAECpD2WaD9eKAIuo8KuqD52KCyJAASOqEUKqGpUKEYWqExmaEcKgAsCaEOao8gGqL0OKIkKo8meqLwmKIq6o4s2qLs+KIwam0yOqNZaf+jBlmjOMpeOrqjwNWjPhqkQjqkRFqkRnqkSJqkSmqTQLqkYemkUBqlUjqlVIqiVXqlWJqlWrqlXNqlXvqlYBqmYjqmZFqmZmo5HnqmarqmbEqUTdqm8/CmcGoOcjqn1VCndtqXeVpAeLqno9CnfhqY8agAwJmm+gio0EKov2moDzqohcqPiBopiuqbjIqPkRonk9qblXqPl/olmcqbmyqijrqokDqqlFqq8PipuxmqRqmqusmqRemquQmrRCmruEmrQ2mrtmmhTKmrtcmrS+mrv9qUwiqbuBqoJqmVr4KsZ6OszNqsz+o3nRqtiUmtZWmtOzOt1Kqt2IqWxZod3xr/nB06ruRaruZ6ruiaruq6ruzaru76rvBKrg7wpQQgCPUKVhM6r92KLfm6r/wqofqqmcdKlhPKAP4aLQV7sNDSrwobJwzbsFXysBCbHRI7sa6RsId5r5SJsYCpsZXJsRZ7sRJqsCH7HBXLqfIYryq7sizbsi77sjALsyR7qGcZrpvJrc+Ks8yqs8jKs4Hqs34KtHsqtHlKtHZqtHOKtPOQAEzbtE77tFAbtVI7tVRbtVZ7tVibtQnwmUpbkR57oRrqmV2bkhjKtUZ5r1+rCGnbCGUrtnPZtiV7FnAbt0Qxt3Q7D3Z7t+aQt3pbDXzbt7jwt4BLCoI7uKJQuIbbCYhL/59ru7YAubjoyQBaO7mUW7mWe7lUm7i/SZuaaw6c27mgG7ovNbZrSrpqarpnirpmqrplyrpk6rpjCrtiKrthSrtgartfirteqrtdyrtc6rtbCrxaKrxZSrxYarxXirxVqrxUyrxT6rxSCr1RKr1QSr1Oar1Lir1Kqr1Jyr1IqryYG77iO77kS74IMJfKG7Pqu77sW67nq53tG7/yy77vm51oa23z+7L1O5dTopP567L7C5f9m5P/27IB/JYDjJMFzLIHzJYJjL8LHMESbK4NTJ0TfMEYXKEVPJ3l28Ee/MEgnAABK7okXMImfMIonMIqfKTey8IrLKgv7AgtbKQzXHakNUykNzykOSykOxykPeyjP7yjyIsAB1DERnzESJzESrzETNzERWwA4pm+GZyhWxue6UsAU1yhVQyeQ+zEXvzFYKzEUGzFMVzGZnzGaJzGarzGbNzGbvzGcBzHcjzHdFzHdnzHeJzHeiyPDuAAM5vGffzHUhoIACH5BAUEAAYALGIAOACuAaEBAAf/gACCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5yaBp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6eqzBe3uBcXv8vPypvT3+Pn5tPC++v8A2+3qJ0wfq3mlAipcuBBUQFBx+OFDxpBeqooAbRF8B8tiR4Ydn2EcSbLkv1H/BriLoHEiMYMJTXp0mYujAZk4EaqyeYtgvJw8bwIdCrImTX+n8KncF4poRnYmY+Ik5ZNd0l9OqwrNyjVor4dYUXKVGrVn17G46r2cuursSaoK/3l5XNtuwIAAbom2zFv2mNZg9y6mxUiWsD1dTAG7o4oyVt6PfEvaU/vqrWKdqCJThjxSZagIGWo9LajZMrC/TfUmNez4KGnTDl095gx7L8EAAZQJtB0ZKtrJqmlv9pczdemzxrF6Va7Qs1ySooPLHilr9PPj2GVer/3VtcPsw6v3FtWwu3fi4N3CBSu2H0vfc0+n/91q+XrsnwKHvTx/qNnNqMG3GzP9WWfUgG1d5dhLyRRIH3n2xZYQb+c1mF1hEQro30WLZYZgffoxx95AGx72XVH7vTYeh9AJt6KHFdXXjIN8QVgWaKIIcpCBiNGonYs+SgZkhhIFOVtVASaWI/8A6xhn5GwsxtdeX5WVdqKU+T2pJIzcNRmllph9CWZ5Gk1H3U5xtdUVKrhhiKWXwNFY5ZhADdlhlnfaSGd6uI3YlHNwqrnnoFnNGaOe0l1JqFOhhBYonoteiF6aPc7HWFOrFZepTwG6GeajTqp3X3zHZTZlojseyuWicdZ4aWOgnhppp/yxVSuPqZ6JaJdb0UoWebIy9F6so86K6q7ItQaToCTZxV2yNRX7KbGhzmrnoGaSiSaCDxaoJ6w7YWrAsKAaay6l26EYHZGQbnmfmHkKlZun6hJ77r2qajitt9JmB+hNrfLoK7X90lmwj+su22t/9L5Z2KTaElxtkKT0SWX/uKu2SGKFEwaM77SKaixxyJQFaTFr3wbL6H+abWqry7om2K67I1P48ZPyhaiypMh+uPPBBcwL7z3k2msuXjfzyiy622LJ7tCuZsu00VrqW+rCH0/slNDirdn01LHy2wrSJxNqs8jKJi1qzVKrLaeEM0OJdbxua9q2z/kUPTLCJK/9NZihlF33xXfnK/HLhaM8d72tqqw1rq8IPnjSNU8ud+Lh7aywx7haHq/mGOnt5Y+ge87q0lGXzvDfWzr6aMS5mo64iBzLXq/XVJu9uLGqZ747x68O/Pvnw78tfMFsP95ymX3PnrDSxdtu8EGfuF4u8XHD3rPh0SsONPC9+5n9/72oi518p3YrX8BS0HbP+/YPwvwiLG2Gjw+OuZdYvs+Gms+5/+7DD4g2ZyJImWoVQzBB/qTHwJX1j1vya2AByJXA1wnwf9j7npHUxzNgjc90mNNZ2OAHQAmuDmBww+AGH8gpsFUvFRrIwPEO5zYOWupa/COZChsIGHHUSYNXC+CYDhQeE4qQcKIBx19UMzkPAmmHMyShEa1EixhmMFC0ghwLQ0izANoQbQfsmBCnyDhXyBBk1uCbuE6FEvbhDlxwy2HzYvbFo7QwdR88oTGiqEQhCcZ+ZHRYBAMJxncRMRwAfB4SkVQozd0CafszYrB+IsdqaGWGF8xYpH62C6ThLP9tV5Ri+mJhPRR6Q2074mIQq8O5OhKykDLCIni4FjuXSI+Iuotk/JInSgcW0IkslJ0qd0MUWjYsl2KEhQby0yRGNlKTvhvk25xIQNZFpn55zIkb1fiKZV6pj4KEGip7qcU5hlOXUgrIvDz5PtChh2CUOqc1uUdOeQKxjMOsiOS8F0bnJZOX0NQjGgFZTXqZ05/gmp44c5jIbspwHQ46prlqCb55Zi1lelQmOpPEsi7hxFl4JOgry1lP0pmCnevT3kad1ShVWM+ZV+yibChKz4Nm9H8Z+5VNP5nNNxoymwsVVikns01+JrGkI6Vb1XrZ01sqiKZMG6o0EeqhorZzjCL/xKEv/fjPG7oSljsVHzAjYAEYui5PP7QKVAcq0aQSMoxfdSFW6ThBqbY1MTJd63LwBUytbhKDd72jWzk6U2Y+0WqiagdKb7ere9pzbl0D4XfgwiGkumt5YmHFGd9hVSQG1S2LJSm+OqsxbqXVsufqLGm5GjjRbVSsiiQebL8Xy7DiLl8hdSxMPNvURWZSZnH1Ch8DG1Hbspar80Pts/JqztVOk5WjKCsqvGlcOxapkrPd6D4pNlW9DjaaEQyoLzVr0uwFM5SRxQhuQpvb7aW3vMTdk3Pd5lrdytW7Pv0Ee/UXXMAZFmsD9C/M+nXd02appdPtrVH9mlT2xZa/Cr7c/8GKCkX4ikmTC3ovW6d6ue8eq8LpyefNQmJf5orYw+1Tbg3FO0Q3AfTFMI6xjGdM4xrb+MY4zrGOd8zjHvv4x0AOspCHTOQiG/nISE6ykpfM5CY7+clQjrKUp0zlKlv5yljOspa3zOUue/nLYA6zmMdM5jKb+cxoTrOa18zmNrv5zXCOs5znTOc62/nOeM6znvfM5z77+c+ADrSgB03oQhv60IhOtKIXzehGO/rRkI60pCdN6Upb+tKYzrSmN83pTnv606AOtahHTepSm/rUqE61qlfN6la7+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITrayl//N7GY7+9nQjra0p03talv72tjOtra3ze1ue/vb4A63uMdN7nKb+9zoTre6183udrv73fCOt7znTe962/ve+M63vvfN7377+98AD7jAB07wghv84AhPuMIXzvCGO/zhEI+4xCdO8Ypb/OIYz7jGN87xjnv84yAPuchHTvKSm/zkKE+5ylfO8pa7/OUwj7nMZ07zmtv85jjPuc53zvOe+/znQA+60IdO9KIb/ehIT7rSl870pjv96VCPutSnTvWqW/3qWM+61rfO9a57/etgD7vYx072WAmhBGWfxdnTzva2e4NJbn8F3ONO97rb/e54z7ve9z4MAfDdFH7/OykCL3j/URC+8KA4POINoHjEN77wjxd85P8+eb5Xfu+X13vm8755vHf+7p9fvOhHT/rSm/70qE+96u2sgAe4/vWwf/0BDhD72rt+9rO/Pe5zT3vaPyD3tg/+73t/e+Hzvviw9/3vZb985jdf+A9gwL8bIIDqW//62M++9rfP/e57//vgD7/4ry99f1N//OhPv/rXz/7vl7/f52+//OdP//pX//38jr/998///msf//umf/43gAQ4fwCobwJYgAq4gOF3gPmWgAwYgRJIftM3gRZ4gQLggPgGgRjYgf2ngffGgR44gvQHgvYmgiSYgutngvWGgir4guLHgvTmgjBYg90ng/NG/4M2uIPYh4Py1gDJN3zLh3vJp3yyt3tGCH3QB3xK2IRLmITNp3y8B4Wx54N31wAK0ACjh4VaKHpcuIVZuHpiOIZkWIZmeIZomIZquIZs2IZu+IZwGIdyOId0WId2eId4mId6uId8aGoI8IeAGIiCOIiEWIiGeIiImIiKuIiM2IiO+IiQOIi5Jn4EwIOWeInf14W2homc2InqZ4U794KgqHOiiGueeIqoeINKV4pJx4pI54pHB4tGJ4uzlorpV4m2SIKjeGoCgIu5SH+++IvoF4zbt4t+GInImIzKuIzM2IzOSIia6IV9OI3UWI3WeI3YmI3auI2ZdnYlgHaL543gyJaN1egAC3CO6JiO6riO7NiOCXCO79iO8jiP9FiP9liPCUBwWKgADiCMKqgAYThw/eiPJChrFRQoA0mQHmiQCoSQCjmCB5eQD3mBEdmLE0mRBucACbCRHNmRHvmRIBmSIXmPJFmSJhmP7bh30UiOLNmSLvmSMBmTMjmTNFmTNnmTOJmTOrmTPJlrG/CTQIkAhQeUQUlygQAAIfkEBQQAAAAskABAAAIBmQEAB/+AAIKDhIWGh4iJiouMjY6PkJGSk5SVAwAFlZqbnJ2en6Chn5eZhpeiqKmqq6yti6WHpK6ztLW2t5Oyp7i8vb6/kqSyAMPAxsfIvbqYyc3Oz62wg8XQ1dbXjwMF0tjd3t+J2tzT4OXmyMKY1Ofs7a6ZBcLb4u719qvrpvf7/Jr5+f0CCoQEcKDBgwUF7TrIMOC4YvQaSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt9X/5jHLpA0uP3jx7JajO4iuX73m/tYdDBgcX0GHmRXGdphv4sXfBBcaB9ma5MeVnUnuSyyz4byNPV+Ti7izYtHNljHbhRn1s23kXENzbLr0Qtm/8nJe2Bo3L96J//oeTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBYKUgMCJKrooow26uijkEYq6aSUVmopowYExYBOAmQK1KY5daopp57+BCpOon5K6qihlurTqTelauqqqrbKKqoGNFArrrfG6mpPsIZEACWyvkqrqZcmq+yyzDZb6a/8KQCAtP9JS61/1gKYraHcduvtt+CGK+645JZr7rnopqvuuuwix8C78MYr77z01mvvvfjmq+++/Pbr778AB4yvrqw4a/DBCCes8MIMJ7sAMgLohfDD6E2cnv/FzQ3bCcbncWyex+WBTJ7I45EsnsksRbyKxvygDIrKGcEskcyIuOxJwzjnrPPOPCdM8SoCBy300ETD20DRSCctMMHtNu3001BHLTWBDCxg9dVYZ6311lx37fXXYIfNdQJil2322WgHWw8DPbft9tsNq+0O23DXbffdlMptDrV6Z8SyI3gv23dlgSs7uDmHJ/O3MYUnmzg4j5vU+KWRSzx5pZV3synNKV+edz90ey766Ahnjk3opKeuuqWmX1M12rCXTXbstNdu++1ltz717rz37vvvwAcv/PDEh3nA8cgnnzwC9CnvPPIIKCD99NRXb/312Gev/fbcd+/99+CHL/4E+OEHAgAh+QQFBAAAACyQAEAAEQGaAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJUFAAOVmpucnZ6foKGijJeZhpejqaqrrK2uk6aHpa+0tba3uKCzqLm9vr/AupizAMTBx8jJyoO7mMvP0NG4sczO0tfY2ZwFA9Ta3+DhkNze1eLn6Nel69bp7u/AmQPr3eTw9/i4xoi8+f7/wsrtA0iw4KeBBhMqXISQUL+FECEKbGcvosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q8F53LyOfGionliQD8lmInuWJCq2bf8zhoUbd+wgsHVTvhVEN69Fbn39ol3Lt7BgtIcRB06ssR+qeYYZg4Qs2SPhQosr47tc7G5nzRAvscUbzay8YuVAX5RHWXVCzmtju5aIuvbc2Qphf26H+99lwpx7v7ZdKLVwf7KbHUdO3HPm5e5MfzYOPXrr39XxKdf9PHu4bua8b+4cPLh4ca2d9TN/Htx67tTby59Pv779+/jz69/Pv7///wAGKOCABBZo4IEIJqjgggw26OCDEEYo4YQUVmjhhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbqq5YK8CRAVMHuNCxUxep07FPJ5rSsU83i9GxT0d40LVPV2nTtUtnWtK1S3dL0bVLhzjQuUuXKJEC6RbEL07lHufsSvEbJ6xK97QpLrL6/9uvvvwAHLPDABBds8MEIJ6zwwgw37PDDELdqwMQUV2zx/8UYZ6zxxhx37PHHIIcs8sgkl2yyxQ5wSIAgK1MiwMswxywzAjXKbHPMNNN48845z7jzzT37h+8rP9scdIxFz1xz0jAfDSPTTS8NtdMvQv0y1S5aLQDWUQ19kdZcswi21EyH7cnJaKet9tpst+322xOnHPHcdNdt9914n9TAA3z37fffgAcu+AMLLDD44YgnrvjijDfu+OOQQ76A3NFobfnlmGeu+eacd+455pSD+PnOoX84eswEvFw6Vl6Hc7rNqyfDgHCvyxy7uubWDvPtG+q+uzSz9+a76iMOLwDvyrQMmvHIZ8i8NA0YL/301FdvffO/7B359n4bzv33jHvvPVL45JcfuPiJTw593ok1wP778Mcv//z0128/fgfkr//+/Pfv/wIoet0BAni6AZ7IfwhM4P4WoIAGOvCBEIygBCdIwQpa8IIYzKAGN8jBDnqwg4EAACH5BAUEAAgALGIAPgCuAZ4BAAf/gBcACISFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnpiCn6KjpKWmp6ipqqusix2VA4uxrbIIs5Gzt4S6iLy6vJ++l7m9h8C0yI2xucuwu8ADwoW/kMfGxc+7xroUhRya0tai4rWP4djH5LaSxMm+0dq4meqk8Iz02IYB2/H89cr9TrWblspaOHzXAm5CCC6foYEAEyajBS0ROWYF7z00aHEVtVa3Pq5r2LGaQIgjbYU0928iJ4wQxV1UuLJcRYclS9ZMGawfw4UKx0kMek8kO5byjtb66XJcs4Qy0UWzN5TnKJQ5m5aimlXRTaVbaZrsSmnqJKZITaXzihYnQUtr/996dfiUEAULnVC2HUZ27MO5f4dKAxuY51dHXAO33au1qlvHmBhDdWa1JYJ9kuepLVx5XVy5Z4k+7vquM+HGmiG/lUwvM+LVoPPGK+CSaVSJrTlv9guasWu+Wj+nBhz0dmSNHkEOj3c4dnPTSaGLfk1dNWpPWH+6Nlo0tvTCt7st33mds/FyPgNyp4xVt/DJOk+Xl0/ePHDPQEfX/F39e3CdH6lz0XP+gbWedyMtNl9G8kXX02joQSjbgrp5J2Bx6CCoymARRcTfghg91l5W52mYVnfEWVZhMARWZpxtHZpIXWswCoZdgSDm5iFdbE2YE4fS4SXUhg6+1xeOrNQn3P+HFKHGZITINaihXjci2dhaDJXYH0krTpcibs4lh8xUI6LyYWZPUhhahEbVhx5rMt544JcPSrhmlL0AiVSa1tFWlppi2plSe4mVOFOXDlaVmE3wBTokcuvpiV1Ic7IHaJN4QrlcnCcyRydvihGJqJUpaplhoWWhBWeCo156lXV/kkYlbKBmSqqTsIYl5ZYqbdTrfYS6Cig+buIkKX6s1tlhXZ0+amaqW/EZmqnCCsQpmM2G+ul9Pnr56n9HHsvqhZr+uhdH1VqLI7rbrpmmMOTGWpu6MXorS6WCLprhj+n2e22rvGZZKnQ62mtwf9LKG2ddh5qDUI3+NvVwrdDuelz/o7zqSlmisEV6ZG8Uc2kYXQlX2yZ47j1FY3X8lfyly++KnB6EBuG7qTItRpxfq7/Zg+Z+mh5rs1wq38rjv+PBZRW7zJGJ8zQjXKyzqNOV6alpxdLMqH5Gzjxjj9yiTHVM7eaKNMAZDzq11AcT7U9vXQ+kr4U7Ciqiwi/Zffa9tNKN8pNzd0bVOWtXuTfa9e5rNseqEX54rNQqWs3Qj5fHdNPiFd6tgYsHnnPiV6/YcNv0ihVysqAyzLbGIKOu+Z2ikZ220YUUkDVItsWsnsUsx+jnXz4jDs/gxG+8OO2vyyh0hSvz3S/lpzee/DRW61309BRWL7qvyGuHt93Bkq53/7kIRs74x6WPbjA8mWNft8DA3WRWufLTz722vDtm/q/896806OJCHGkAxi4luW9ebnGZRXwDtFEpEGu/S9yZYCWpB+7mgOerH9a0pzVbOXB2scMFsSgRQQ9uJnCwK9v4PNE+DCoFhVir3Pdklr8iEfBj0APd2w5WJpnwiTu3c6HG1Gcs452PN58L2Xtuk8TNoY96wHriWCglxCN+ClUpNB4RkadDFYYNhDYc4Wp+EUDC+EaKVTwaGpkVNLZZkHwyhJcVnWgeysHwf/lK4wWxFaN2lIyNYMSi2PaYD/i5LVudIlYOM8ZBAeqROIMxlOGUpRIytgtICpJhkorCQBMu0P+RomjhIz2JP0dmkh2DE6H4bjbDN6mFifYC5NPyRpQ3XipEbHLeCouRpfMUjIKt7GKYJvcsZOkSmPb5VAlxuMtRDhKPaHTY/XA3x8Nx6I5njOUwjzcmxDTSmZGR3Zy0sz/ZwIkaWyxkG7MISrklrZIQ+5oihAROdUqnRl0zk4C8ZymzyZKYHwSlCT23w7MlzJaWYx4z7/k9Q9pQmED5je0GQBtxYTOdpRRmgJrZlArUM48cReiyIGdEOBKiALaDzANRuM8rvg4DXLxluPL0UYD2rDnAqGg1VXQVVXG0pjubj9OeWVITwcxdXmwn8Ga6teW5NKH1NCA3+1LGh7KyoIn/yoVOv5jPrLpup9IbmQ7v6AiYirROHOlql86aDWjK9KRkTUqhAKecr37HZR6d5vMYx9a0lZOUAu1e6OgkO/0ANmB8POxPgYqnJk5tMT9UW6Uo2rKADqOyZ+lrUXV2TbX5z2urxNVTLfbNXWxVbqd0j/J+hM95YHRD/+RsUtkSr5jyNLSbhWjtUgrG10xsVSEFKSfy2ta9gtaYX2wEb6962yCa838K/GfwXLnNgZkURbSsaW0JSVWSVleT0JwFb7c7w7gO85ckqqQ3a8jYJbY1kliNnrSq2hLnOmK5bmVq7RbmzxAajZ/fwqAYp+oo3F6XJEzZamB9Zt60DFgbvFhm/zTzwhiY9s24F+4jHet1LkquMUUKvoWCmbsnRCrvtZr1beE6XD537unByVwvFBWVYllO1MT2s5GEJggtx1ZpUX4MbInRx+IGHxi8GEtsfAaIOkVqVLf8ghRgIltNh6JSyY3NL4yrVxq/FOtyeprYy0YqNvIu7cnrG3OUX+uiwc6YnZkVZVFdvMndwS4m8fKYjqfk469UEMvYjS1hx+fLWjbrZG5W7Cow4NFmLGnPBlaclejrmVSClXyjC196EUUeAp1jOwqFM3IzXERLT7iZGVjdmUv5M64+AqU/1VdnTfdmhWXtMEFe5eVieGSxJpC6Sw7mqee3N1wyTUdF/jCnrf+nVLDOime9u+u/PE1TGjLZmQxpdK2RilY7N5m93i7ikXP3jNoe6NmSDDWgkZ1fArO5tBXbBz0vNiuRZDPRd84PrIuLsTBHp9CpO+QsCbZWPHbZekZWTEUM1cAnWmPes7v19ridq11fUiK/++OyVz2hRXq2paT2teBy3LOtuQvUVoF4IiwMxYY1PMBRtq0ZG7XRj7fNvgUFokAfLbnjbguWSKKS9hqo54bcggITeARx+320+SJ1O2qFcLevZTUx27V1Pc+1m1BOK2gA16qpxfFotxkX4MJXyD4W9mrHaqu09nolNSew/gR+tb+q0ucxLZmFr2dnP2cX73AOkCVZPWX/L9obSgM++8wsrsGJCxLGEQfvrLvJOawbWvIYimPd+Exwz+pawxyfUpL9Y0dazx3St4XLUY1qF3D3PNLBThZOC49jlPtQRAf3vK8RbUSLox1sXs+lW1t75eqWvGrID2oOu4omuos8dJMf8i4V//y6W9/0OF8oyLiSnUn1lrHgD7/4x0/+8pv//OhPv/rXz/72u//98I+//OdP//rb//74z7/+98///vv//wAYgAI4gARYgAZ4gAi4NhdwAQnYgA7ICQv4gBI4gZMQgRR4gRiYCBaYgRzYgR74gSAYgiI4giRYgiZ4giiYgiq4gizYgi74gjAYgzI4gzRYgzZ4gziY/4M6uIM82IM++INAGIRCOIREWIRGeIRImIRKuIRM2IRO+IRQGIVSOIVUWIVW6AkA4AFXuIWZkIVc+IVgGIZiOIZkWIZmeIZomIZquIZs2IZu+IZwGIdyOId0WId2eId4mId6uId82Id++IeAGIiCOIiEWIiGeIiImIiKuIiM2IiO+IiQGImSOImUWImWeImYmImauImc2Ime+ImgGIqiOIqkWIqmeIqomIqquIqs2Iqu+IqwGIuyOIu0WIu2eIu4mIu6uIu82Iu++ItMCACDAIwBKIzEeIzImIzKuIzMiAjG2Iz594zQOI3UWI3WeI3YmI3auI3c2I3e+I3gGI7iOP+O5FiO5niO6JiO6riO7NiO7viO8BiP8jiP9FiP9niP+JiP+riP/NiP/viPABmQAjmQBFmQBnmQCJmQCrmQDNmQDvmQEBmREjmRFFmRFnmRGJmRGrmRHNmRHvmRIBmSIjmSJFmSJnmSKJmSKrmSLNmSLvmSMBmTMjmTNFmTNnmTOJmTOrmTPNmTPvmTQBmUQjmURFmURnmUSJmUSrmUTNmUTvmUUBmVUjmVVFmVVnmVWJmVWgmFBLCVOdmVXhmWYjmWZFmWZnmWaJmWarmWbNmWbvmWcBmXcjmXdFmXdnmXeJmXermXfNmXfvmXgBmYgjmYhNmOD3CYiImYC7AAiXn/mIzZmJAZmZI5mZRZmZC5mJdpmZq5mZjZmI+5maCZmJj5maBJmqF5mpWZAEApAKzZmqx5AKvpmq0Jm1UIlvpnm6qAm+Uhm7MZm7xJmz7Jm6/pm7IJnD0pnAJgnDyJnMq5k8xJnK7ZnDr5nKaom5BgnflHncEpnNKZk9o5hKhpmg8gnqhZmuU5meSZmYp5nuzZnu7pmO9ZmZ3pmIVZn/Z5n/iZn/q5n6jRBEjpn/W0AQI6oARaoAZ6oAiaoAq6oAzaoA76oBAaoRI6oRRaoQ4ghQyAnBq6oRzaoR76oSAaoiI6oiRaoiZ6ory5ATY5oipKfwyoiyxafy9ahNiJfgJArggxWpM5SpM7OpM9KpM/GpNBCpND+oQ3KoZF2pE1qghJmoQMQAhLaoVNmoQoWqVWeqVYmqVauqUk2qJRWKFgGqZiOqZkWqZmeqYGeqH8CYQKsKZu+qZwGqdyOqd0Wqd2eqfIsJh6uqd82qd++qeLmQCAOqgLAAEOyaWySQAmagCHiqi8qagiyqgpuaUG0ACTqqWq2ZCOWqUEIKkMualVmqkMSaikWqqm+qeGKouBAAAh+QQFBAAIACxgADgAsAGoAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuckiUlCKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7igvL/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt5y0IQq0F9PXgBaYD9fT6+/7+r/4JHGiPG75zBA/SAngrYcJgCm+FCCWBVcFsDvsl1FjKn0aHIEMSBBbRVcmIIgd2vGgrpchfJU+5nPkymYZQDMf9+0izp8+cs1Q2/BkSF1GiCwUuU+osw7aYonby68nzKE2jI41dTWZVaNCu9GAVdQZV2j5UGquCXZsy4DC2Z/9HwZ0LcuHKmhCbla12cC9OuoD9Nswrl66swEx1tc0VU7C7WiLVhpSMOG7Sf1gra97MlTHLZjejdhPYj3IB05sTOzbJa3Wq1LC9CnM9mCxmc59V1UPdVWviloB3aQb+8LFY2lxp8uYdG+i8t82j15Wp7PZx69GQY9vHsypz6WFj/c4MvjxeiLGbOVVXmnvxVcOJjxWu22Hro8+PRTe+TG377/sRRhhckAUon0+QUeOcXqa8NwqA5sk2j3bwmbRYdeMlFACF9WGHSnPPcDhbZCVBGOGCh0k4oWEknchiiw7qJ9c4H/EUiolgsUafZ/O1JJ6LQObIHzJBFjkWisWUd6D/kZwNaaF0T7p4V28B5bYikkQyiaVcG+rmZIFahilmfNUV5uGVLrGyoYqiffmjgVOOKSeV0J15mWYbrrmlm0PN9dWcadaWDqAhBaBnj3xGSeiiVqYIYpYXIiBYkIlWyeilfnb0F2L6IfWhkZUyg+monNpGaoyhgskWeaeOulR6MJ6X6qeVWdTqTH1GyheBDZJS5KzX4coqqW826quvnpoVGI5TFXBooMAqyqiht4bXYGrKAqqnWNHCh2lUztJarbVmwobei7N1mFW3117aZZxzJhmYvGMiqyu7tmbq7bjBgdskpOA5Sq69xqbqGqDTUCinb8IGO9eze+JLMKG9XlPv/zUBqEupxPddnK95GjNJ3bn8yopvmP6CXO54MrkIcckUc7wyzBG/ljKjpVBLs7kyD7vzvVOKa5/QqComqogCm9xzpz/z63BPPvNqM9HYLv1n01hn/e3SWv8qbdddW90u2GQnG3XZYu9btmVU/8QjzyNmnfbMaGs6Y8v/0k3snejODXDTbaJJNjENe1ll0tBKvLbIipEZ97QvA+33preSBVPfYy8ukM7TTU6y5gNze2zI+Nn9tb5n19rzpemS/jOyht8M5cTzeo436J1LivuJb+duzSdi726n4MK7mgzwThbf3ADMrqu38o7bvuTiH5oKPaIf1yy9qtc36lj3dcsM/v/45L/Gpt/kb4y07FBxnr7ktr/POPHyD7899ydGDiv9mG/FPsr/G1qunHe/tkXHffWrH+0CZrUEji9W/Tod5jjmQCvBT20le9qpJreYCvJqffB6VCgMFcAMSu+BfxMg4lYlCwSy8Hb2Q4/4PFi0ik1vVC60iut4N8O1SdB3r5JTDsdlMbft0Ho09J+PmKY9A6rweUoSDgPLVJgbam2BSkNiE2PnuhKWJwKEC6HZmPhE8yXRiJ8rY7HyJg64PW4ru5vaDkv3lsu9KEIdm90bz6irLXKRYQX7YeV6t5aRpZCP2MNg4oi0uvPVEYsXJFwgIUmujemuWpKMoY4I6aIIrCf/dTocXSYJQkJLYZJ/aFxkneh4tSlaJI0RpBciXWlDCGpylFrK2AAltxcCtlFqYnyhX1iWHxiCMCjVayVQSBUBC+xykpSDGiy7sqYK2TFxpTKjGi95TA1a0y7Zw2MonGnFjYSucNdkSyk16DVuAglDQPxjOQuZHUcWC56zJKY72Za5W8KkcWEzBfJMiUZjhg6XwDQoIvfIT/zBDIykGOiOFBrPdGbzmdfDpz0paUJQNjSYNeRkRVf40X5CbynzxFkBV8rSlrr0pTCNqUxnStOa2vSmOM2pTnfK05769KdADapQh0rUohr1qEhNqlKXytSmTk4QTo3qT6Eq1arqlKpW/81qTbGq1a569atgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9va2va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97rYza52t8vd7nr3u+ANr3jHS97ymve86E2vetfL3va6973wja9850vf+tr3vvjNr373y9/++ve/AA6wgAdM4AIb+MAITrCCF8zgBjv4wRCOsP+EJ0zhClv4whjOsIY3zOEOe/jDIA6xiEdM4hKb+MQoTrGKV8ziFrv4xTCOsYxnTOMa2/jGOM6xjnfM4x77+MdADrKQh0zkIhv5yEhOspKXzOQmO/nJUI6ylKdM5Spb+cpYzrKWt8zlLhfQCRH1hZdTAeZRSHTMrDCBCdD8CjWz+c1wjrOc50znOtv5znjOs573zOc++/nPgA60oAdN6EIb+tCITrSiF83oRjv60ZCOtKQnTelKW/rSmM60pjfN6U57+tOgDrWoR03qUpv61KhOtapXzepWu/rVsI61rGdN61rb+ta4zrWudx3UA/j618AOtrCHTexiG/vYyE62spf/zexmO/vZ0I62sw3AYwFY+9rYzra2t83tbm+bAAnIM7bBjVhvm/vc6E63utfN7na7+93wjre8BUBuPGeb2vbGdrjzfe193/ne4tZ3wPs9cGv7287ZPjh0583whjv84Q7H97+xLXGEUxyv0s64xjfO8Y57/OMgX3bFeU3ykpv85JX9RAnWrGeVsxzlI36Cn2WeqgTY/OY4z7nOd87znvv850APutCHTvSiG/3oSE/6z//aAIg7/elQj7rUp35uAlj96kynuta3zvWue93caQMAn5r+9bKb/exoh3fYx572trv97W3POtznTve6P13uds+73veebrzz/e+A57vfA0/4rMK7ffCGT7ziuY74xTv+8RBvPOQnT3l3S77ymM98ty+v+c53ns7ZvjrW/aoApZv+9KhPvepXz/rW8xzmsI+97GdP+9rb/vbraADulbuA3vv+98APvvCHv4AEEP/4vid68Zc//AQw4MJUJwDdHQD9rUvf7dTXcd2zX+23c9/JUP++jq/fdvEvOermP//T0w9hz5ub/Q92v7fh72Dk2//++M+//pv//N2TWPfBFQgAIfkEBQQAAAAssABAAFABoAEAB/+AAIKDAAWEhQOEiQCLg42HkJGSk5SVlpeYmZqbnJ2en6ChooQFpYKGjYaQj6qPgqyuo7KztLW2t7i5o6qkjLyOiQOJv5aNsbrIycrLzM2yv7GLw76Ux4jO2Nna29y3jwOovOKDxJrS3ejp6uvoqrzWr8Wr7PT19vez5Y6M8YWR0YcKwMNHsKBBesbCnVo4Sd+8gxAjStSGyp/Fi/sGPhQ4saPHj7Uq9psETtGhYa6EgVzJsiWmViJNUotXjqPLmzhzktvpzxXHXzZV7tNJtGjEYEIDMmIl0921k0ajSq1naiRUSA6NTd3KlRsxkSVP+Xz4z2rXs2i9MXy3cBE0hvL/0sqd28ltQ7p48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnk/5JMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uijkEYq6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq6qqsturqq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgmq+yyzDbr7LPQRivttNRWa+212Gar7bbcduvtt+CGK+645JZr7rnopqvuuuy26+678MYr77z01mvvvfjmq+++Sgrg778AByzwwAQXbPDBCCes8MIMN+zwwxBHDPECZ/5Lsf+ZFlfs78UYC8BxmRujGbLGH5M5csclj3kyyB6L3DLJLqdMlMQ012zzzTjnrPPODcvM789ABy300PI1YInRR7eGtCxLM8bAAVBHLfXUVFdt9dVYZ6311lx37fXXYIct9thfN60lwgx0lTaDAq+9ldsKtq12g3JzBXeCdb9Nd8B3R9X3gXlP9beBgUs1eIGF+703wIfr1PiAiRv1uICRFzU5LgSAVzlRa2cO+cGXu9QA2aSXbvrpqKeu+upch86a2SzBronss9COi+1E56777rz3vqECDy4g/PDEF2/88cgvkEDyzA//wPPQRy/99NRXX/0CD0AAIM8BE8D99wAnQKJtAIJ4jg7DBuDOIfnpoH/2wga8r3D8Wbo/oufsnw//ieZ3Yz+W/7tSAG/UP1kMcD/gS6ACBUA//zTvgRCMIPOsR8EKWhB6C9CeloBXCaM1QAEgDKEIR0jCEprwhChMoQpXyMIWuvCFMIyhDFsYCAAh+QQFBAAAACxnAEAAmQGgAQAH/4AAgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpuVA56CAwAFnKSlpqeoqaqrrK2poYWhBbCutba3uLm6u7yJtKKGo73DxMXGx8irwoKzorS/ydHS09TVxLC0y9bb3N3e35HQhNrg5ebn6MTLzc3p7u/w8ZyyANiD4vL5+vv59Mz8AAMKdAeL3cCDCBMiewYKmMKHECOeGlWg4iFZ5CRq3Mix0ad/HUOKHGkImr92JFOqjCjMHsiVMGPKa+lLps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu27NJR+MyqDaihgqy0a//jyp1Lt1CGZaHg1t3Lt29Xixn9Cq7mlp7ewYgTKwaK4W7LwIsjL5RMmZiGQpAra7ZlD+Xmz6BDC8RQQZhp0ahTq0Z3ebXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnzU40tDqh4+DliwA6ta67wr7p2vxoyeP+u2DN5yaRNZz4vOMMgiuvZ82UYXz5d7s7q2Vfc+r35/X25px+AimGQ3UcEgscdRS8leJ2Dghl4D1oQJlZfhRhmqOGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDGKOOMNNZo44045qjjjjz26OOPQAYp5JBEFmnkkUgmqeT/kkw26eSTUEYp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66y01mrrrbjmquuuvPbq66/ABivssMQWa+yxyCar7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zx/8UYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNKQswrM7C8hysz8AC/avQvhLdq9G8Ir2r0roynavTuEJ9q9S2Ul2r1ThnrfXWXHftNVYKMBK22FyNrYnZpDRgVgMCtO3223DHLffcdNdt991456333nz37fffgP/NgFlof+i2A4SPeHjiIi5eVuEeOk4W5B1KPhblHLo9+OOKt7355J0L8PnloY8uFuYbas54iKpz3rjnq9uC9Wqtk6X26wIg/njgvPfu++/ABy/88Hyb/h3q4CBPNirKkzL27V9HL/301FdvPUQbZK/99tx37/33GyAA/nb45Jdv/vnfIwAl8ey373cCdxLwDd3w2zn7MPQ3PXf9Ue+vv9z8m5r/5nS/YuRvTvIrxwH7B8D/xS2AhyrgJhYowAY+yX0YzGDdILgk9HnwgyAMoQjHhwAFmPCEKEyhClfIwha68IUwjKEMZ0jDGtrwhjhUYSAAACH5BAUEAAYALGcAPQCpAaMBAAf/gAaCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5yOHp2goaKjpKWmp6ipqooAq66vsLGys7S1kR8GHYgDtoK8vYy/BsIDwrXGjsiVyobMpc6+u9Gw0MHJmxyHv9XAqNyE343b3YXjg+Gx6OLTk+YFw+ymxOrkoM70lviJxvz1583rjt3Txq0YJnPm4O1rt0jfIwzg/EWk5VDaQW3eIlXUiFEiv4ESA/4LqQrZxokWKZ1MKY7ZSmrxXjLclLAfSVTvVrlsqPImz3jydAJ9ZFIkJ5kakfpcBg6a02nEhnLUlBCSUquSrs7smLFUhaUw7YEde+6bwWE7Q9m0NlIs2bcs/6MqZDkXbrmlVcteTMf0bli7nQoCnupXUdFRWm0dzpR28OCnhBdGJpW3YuLEorbNQ4m4MOVxmB0L5sw5NNeQpq9RdkvUs+PXfVXDbovadTfTylLP7hUO5G5g1UzqNsrY9fDTv7MGlUpR9s2PkjvXZUvTdnKSi/cez9c2L/dnu+RmngVy+/XwtJuZXyme+HTD509p1Zfd/O/e8EnHtuobYGD7yMEFYEcFDJDTe3TF95plCTL3VnbPOZfehO4JUkBO6gyooHUINsehRxqu5uB3QIUTAFoBbngMhyH6VpM/ISr3oX6ftROciv9tJWFgLc3I2l84tgZVgx0GOV5x9iD0k/9DZxk5mX9FRokkcy46ueJR3gk54pY+UiedlFdOSaOMVr7SpGgdxQheV152yd2BFK41nZph7sdlfj358mKZY0EG5Z9jpjlkoHzW9mWCuRH5kyx0upkiJ3Aa5mehO1qTZZTB4ZcnoN1RSpVZxh3XmKKeEtrgVbwEcOKF2sVUYalYoRinfKdB6CqslR5JF6tiStnfmUfBah+wvxSIp6O4EiXnsZLNJ9WoqeimmVDRgTkSk4cZW+2dyZLJKY28JMonPY3ayWybIkG47JvdPouuIpE2xdetvW6aJIWJxIsvrbligkEG7xioILDWcvtTTrzqOeGloy3pU33l9iuxZ/hEbKj/K0w+Ci5bv5p65Ik2XcqbNwTv9UgFwryjL6Ule6vYjBYbsPK+Lmtcs81aGtxuwcllOFmjCWMM5UbhLnpJuQbFfHPOP766tMfA6ahWw9F2A3DAMi84sbkHaWqvuCOXhKStPO/M6NFSC3nmjd/Wq/TZT4uoigYoF/s2Vci1ZzJdd7cdUN/VFk1z3k23/MrM2AW7D7l6KtUkfUNvG+Rlbb4kMikQQQ2b4cH4PLWuOkteqOexbhkiwsMg/tjgDYX2+JpGZrwQ5Ebrty68qstrtt+6O40ngzh3yHbw8/LOo+hEsxlJB60YoEEGSpZJ+t7Ge7RciRenVsz0nTA/uqlsA861/4DORgM8qa2HlPm4JFYt9PF4i/4k+EzXbu/uyssvKbUsV6c/6KzD3/i6phPOoa1V/DoXV25nQGQtA1XEKxXjtna8yzWtT0SCDu9c567qCfBlOJqgAj20v7LZpmVe+6BdzHISDv5pUnjRXFzEV793tY2GABQbBlGCw6ZUTG/zy+H9SpesHlLQhnGpoQchpUBouU8tcetWfQIoIN9lL4J6Qd//qGFBFVrxhw97YUqMKMNcyS5/XuQPFpXYO20tDonx61n7qFcYI5KxeDrcIghNyJjkaWkxKRPeGi9YujsK8X+OC5se5xhHGQkuEqzKHRbJdsRFShBqxFIJfdiDrAZG7f9oDkEd15bFQih6EYx9TEq9umPI0BFxJ0FbpRXTOEA88s8/ZOwPG8dEyRGaiZafw+VMqGZLgfgybQNkDwwrhBm6GaRAAksPaEjlxPeBbZZVypOfepPCzsnGk4rrZbP29zptneWa0jTlGx/5wEB1UW5l6+bCTniqbQHRU8sk4jcHRU8xZoWdiMhANFb2Tl/x830d1Ccf84kgdM7lnhFRFzvu6MKJSFQhIkNHCwdAAURgoAKSRA+9/FLQXmnqdhbtly5rlVAtRgWggyRPGS0iruGdM4nUgBP3JLQdiGpRPd6yFThxap3G+BGjJIXdSAmz0vpNkY//+MbzpnVMoZIQUBX/c1g6EdVQ7H3oRhodUdJYBM+HonGmnYIqUBXxFfPRrqgxZU0AJFmVtY2TdRP06fCimtL3WO56sjrgPilGJb8ucSjcOBDWjJbNjMITGiEVTj3huMDA0bGRamUkFZHpHb2VlD+eFGjqsjbMGmqPZroUZ/TqMimYXouw/nRQZSa6RZ9eFqWypGYQJ7Y+PUW2sN9qZWlChtRZArdgjPNjyT7rP7f0knNy6eJfG9HWeOF2HXK6mzhjCY+9Mg2ldR1bbjc7JXHCr7hmJW/oHkmBCRxCA3PhLmWxukedXSikrzXfMdGbVNaK9bH9zWHf7klcQhLiX92900AKstwEUgxk/ZRt/36t1Q+9dum6rvTmQZWK1q2KaTTmVdwGtzfhY60nP0J1bYYtdVz+uji9+j2vJYN5vu9e2D1UqwZ8B2Es6+43wg7uq3cD6FklOhGQ9OXlhNsT1kOiFTNnzKxfOopNp9lVyqb9aQZLzKlR5VXJGHFoLQ+1t86CjU5PBaaa18zmNrv5zXCOs5znTOc62/nOeM6znvfM5z77+c+ADrSgB03oQhu6VBc4tKIXbYBEM/rRkI60pCdN6Upb+tKYzrSmN83pTnv606AOtahHTepSm/rUqE61qlfN6la7+tWwjrWsZ03rWtv61rjOta53zete+/rXwA62sIdN7GIb+9jITrayl//N7GY7+9nQjra0p03talv72tjOtra3ze1ue/vb4A63uMdN7nKb+9zoTre6183udrv73fCOt7znTe962/ve+M63vvfN7377+98AD7jAB07wghv84AhPuMIXzvCGO/zhEI+4xCdO8Ypb/OIYz7jGN87xjnv84yAPuchHTvKSm/zkKE+5ylfO8pa7/OUwj7nMZ07zmtv85jjPuc53zvOe+/znQA+60IdO9KIb/ehIT7rSl870pjv96VCPutSnTvWqW/3qWM+61rfO9a57/etgD7vYx072spv97GhPu9rXzva2u/3tcI+73OdO97rb/e54z7ve9873vvv974APvOAHT/j/whv+8IhPvOIXz/jGO/7xkI+85CdP+cov23uWfwTmM8/5znv+86AP0gUcHfrSm/70qE+96lfP+ta7/vWwj73sZ0/72tv+9rjPve53z/ve+/73wA++8IdP/OIb//jIT77yl8/85jv/+dCPvvSnT/3qW//62M++9rfP/e57//vgD7/4x0/+8pv//OhPv/rXz/72u//98I+//OdP//rb//74z7/+98///vv//wAYgAI4gARIaArgegJAKcwDAM1TdAlYKAvYgET3gKxHgatngaqHgamngUayeUbHgUHigQ6IgCTYeiBoeidYeikYeisIei34eQdYgDI4gzRYgzZ4g46XZwA6uIM82IM++INAGIRCOIREWIRGeIQJsIECsIRLOHUP+IJLwYRMaHQEUChS2ISod4VQSHlaqIRS6IVTmIVX6ISCsIU30YVi+IVpGIZ8V4WkgIanB4coOIYuh4R2eId4mId6KITiFggAIfkEBQQAAAAsYgBAAK4BoAEAB/+AAIKDhIWGh4iJiouMAAWPkJGSk5SNlpeYjpCZhJSRnKCJnqOkpaanh5uhq4OnqpmuBayztLWpsaS2oLi8qLqLvL+zsq29lAGSworJqaLKz7TEhtKCxrjQmNam2MqfwtqP2cHD4Nvc57De0+XG6IjMq5PuxdbR7Pe5ofjl8/23+9r8UbM10N87gAjxuUsIzqBBhg3PQQzn8FlBgQmxXexUi6KgDBUdTvRUaGNHcydDqlw30te3lpVWyrQnbyXMUTMX3nQZT+K4nLp2/py3E+hBkpxMivNoUyhOo02dSoXJTSnUfxFFCr36EKLKmKxc9bPKNV07m8B4ltU4Mic8ckz/v06dOpOspVJrMcbKu6wtX6HIsq41eZav2ZZ/6aKzq9PcPrdpr62LYPglw7yM31UWNfcm3M41N1umWpG0z3sWO4FevRGvaKOsY4u1KLve6NqoXxO93FHfY624g9dWXVi38ZPCkyv3LJGRYJDHBz+tnBm28F/VL90LEBhp9O8lQwMlO7zR8leazr/VXhz87vYyBTdWDzqkQkOU3cNOHLAu/fpV/abfd//tNVaBCEo14HFxgZdgRnc9SN+C8XhlH3HZlZUhbckldUp3s1EoojAg5hYZWHLBF6CF/nDH24hhTdQTAAGcqCCMBDnlTon34VjhcrdJKORQD4X3YiJDmOBj/zbjHWjbYkOW4iKQRgpGzEBJLnmaOr1xSKSTMlaj3nsCcqRlhEUdNiaZVIop3zJQopdef2eC2UtQZwqZY4F1dhXll7u496eEnBWQX59oDrrhnHJGR42ii+7iF6J+QuocpWpCGiamhWoKaGmATelpiIYdyimjo7JDXaqsGjgIdKeiOpeXrlHaqqex9vUgPW+ydeuvLOZqHqF5/skSsdzAimikknYIS4rA8imsfzEm2KSPUfIIkKnTlhSUs906t+tRAIa7lFrdsIZptNNtmY+5m6FkHLOJKuoTe2XC6yZC+laJYpzsireSsgCUUEK/85IqHUA/BrzVIgYjPI1GErvrMP+4FZ/7sMQXu+prr/rSuyKXGfPqsawdb1qyMyvPO2zKO3Fbsl0ip8YpvxjCrGrLPDuos8rR9PyX0Ilwp+vPdBJto9JQSZlhsNYhNojMGT/9IdMeIo0g1tgVUGO97SqtdZpcX1VzneqJCrNmPctbtp1zqT22NGfDKBlyd16oW83WfP3Z3UfPRbXQDTYMeHOOyub3njcS9PbjcKu779zrEV04UTOvmfV/Pr+bM8NJAUy5otpqruW/zQDT6ayGjz5k6XyzLqixUZsYuOtav6bi7Thr9zFzmTp2q42c65fv5zuzuTXYHeOLbOJuawx0uqhvjrt315O8t3fiHj75k0GbLPD/99nbG7zn/7x8MnCmVdtol8wjLX35isWnZ5HI01/u/LKhPSH+/tqd+PQHDtjpiEl3IVDl8rcxEqmOgQRUGMoiWL2FTW+AyYtc78iVPQ5qakTjOxb4uqY9mizwdt76lqUCeCSs4MZ4UcJT/A4owk+JbjUztBZmGojBWrFtZOfp3gWtF5uqhK9zajkeAudDwVHVkHaQi6IUp0jFKlrxiljMoha3yMUuevGLYAyjGMdIxjKa8YxoTKMa18jGNrrxjXCMoxznSMc62vGOeMyjHvfIxz768Y+ADKQgB0nIQhrykIhMpCIXychGOvKRkIykJCdJyUpa8pKYzKQmN8nJTnry/5OgDKUoR0nKUprylKhMpSpXycpWuvKVsIylLGdJy1ra8pa4zKUud8nLXvryl8AMpjCHScxiGvOYyEymMpfJzGY685nQjKY0p0nNalrzmtjMpja3yc1uevOb4AynOMdJznKa85zoTKc618nOdrrznfCMpzznSc962vOe+MynPvfJz376858ADahAB0rQghr0oAhNqEIXytCGOvShEI2oRCdK0Ypa9KIYzahGN8rRjnr0oyANqUhHStKSmvSkKE2pSlfKTiEcjKWncilMZ0rTmtr0pjjNqU53ytOe+vSnQA2qUIdK1KIa9ahITapSl8rUpjr1qVCNqlSnStWqWvWqWP/Nqla3ytWuevWrYA2rWMdK1rKa9axoTata18rWtrr1rXCNq1znSte62vWueM2rXvfK17769a+ADaxgB0vYwhr2sIhNrGIXy9jGOvaxkI2sZCdL2cpa9rKYzaxmN8vZznr2s6ANrWhHS9rSmva0qE2talfL2ta69rWwja1sZ0vb2tr2trjNrW53y9ve+va3wA2ucIdL3OIa97gdzZJilYvc5jr3udC9YgmUpNjpRve62M2udrfL3e5697vgDa94x0ve8pr3vOhNr3rXy972uve98I2vfOdL3/ra9774za9+98vf/vp3RA8IsIAHTGACH6DAAj7AgRHM4AY7+AEKVvBxgydMYQNDOMILDjADEiuADm8YsR0WwIdBGuISm/jEKE6xilfM4ha72MUjNmyIY1zYGXPYwzcWcY5pTFgbgxjHP9axV19M5CLzeLA+PmySEepgCVf4yQF28oAXfGAJY1jKDM4wgqk84SpD+MsTPrIsAwEAIfkEBQQAAAAscABAAMIAoAEAB/+ABYIFA4KFg4QAiouMjY6PkJGSk5SVlpeYmZqSh4iDnQWboqOkpaanqIuEnocDqa+wsbKzjau2n7S5uru8k4aCvcHCw6+tuMTIycqVnp7Lz9DEtqCJ0dbXr4idAdXY3t+kxoIB5KHg5+iXzens7ZOgna7u8+7wzvT4583H+f3X1Ib8CVy2j9/AgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3D/48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4sfT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLbo4oswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJjmPUQBMNunkk1BGKeWUVFZp5ZVYZvmkAYERwOVGBGgp5phkllnll38JgKZfagbWJmBvprlmX3GyOSdfddJ55155PhWmmYD2yeee7gRq6KGIJmpAIAAh+QQFBAAEACxgAEAAsAGgAQAH/4AEgoOEhYIDggWJg4iKho+QkZKTh5WUiJSZmpucnYQDiJifnqSSoqWXqKSnpoasqoyrj6yYoIMYBGqqjpaJtbDAhaC2ma+vwcgEx8nMnMujyc+e0pHUvc2qxofEiBQWzAOKouK82ObV59jW6eyb65q/saXEl7TN9O7oyuih6o4Fp8q1Q/bs3UBo7Ayqm6Uv2DJt++S5sscwIsWDxVwhjGiuEUeMG6NJBAlJIUlYD086vOZMozKTJ+P1G0SB2b9BAlV+7ASxok6fKH+Cm9cwZkihJV2yHLoTJtKjTjFGfUo1VauVVbO1vOcoAMecBLNNzapyLFmrYc+2E9VzJ6paXf8JBAA70GBBpfGQsu2odlLKrUeTApNmdlbhvW4teQN2M1EBgH2XNmVZeG1kWZcrSy6b7u+3wYE7W0bbV7NhkKaDKr3MlxHhzYzHYaKrdl1q1vCy3hacGDdqYcAHliu3W2vo4r5JJ++d+3jec6eQp9VW/Fi4ukxHLpd6ULrf4Mtov10d+e5zm8DFb5fnvfx67eN5vxc689Tn+K/Uzydfej//4PKBhhlz8PnHXlEG/kbfgPckKJJouh34oIMTXmVhhfn8txViC2n4XYfHIUhWdAFOQ0BNFKa4XHvZwYaVcnqxFd07tLGo4o3xqWijiZLtyOBHcPECk484FkkkUR8qKNj/kRCO9JiLGtnCZJHFTKnPXxISSGWHVlZoVpdbcvZiLBfpdF5VHGrp4T3GWAflhQCGKWeLG50554tnglkNiaHF6eedgGYElIhvGshiW9wJmqZfem6XWqN9WmJXoXT6xueflBp1IT570hQohd5ByuOo2KWYE6JWiXrWkGEuWuCnDZnEajSXEsCLV64CBmt3Ser6pHHN4VWqXq3kColXmDaq6qfL4pQpqTAmlFmrmAq4a4KoqtZrpBg+1WyTg15bqbUkySopQm6WyxOwIOImpUv6ESpuaenKmyWouiKZ76DxpuXMjNigOG+JydU78GiCjhTVjpymc9/BCQ8LsTm/akek/7mJrtXwxLX95CPDHoO737dlkVytvRy7yyPIAz0M68bM6hhyhs9G3Bp0KX9J64/+QnexmKqVqfFAAk9MTXswh6tvzFSNxWTSpphsqW5Q58ht0zXjrPQoTgnd37YvW63mW7dJHaDJh4GtErITmu0om8GO/WrK/n1cnMscN7twPSfTvW7Wb+49s99zVw0nu2smnvOzrx1u8L/TjNNvr24TPm7fIvOKMsFzq325IRX3TPjRUxlOLr7aiv7SvpwD3vknbVpdueUDKxuSNabhfhqa+2BSNO2tKy4W8DxV1jjqiXUNCQAAEL+1xHLTbnCtS2/TYMY0J8a881FyX/frrjsUe/95/fjuffDTOo9x9rwjfr7q76fPeorrg+95/NWPiX/2tuVvJPr7C+BlQme9/xhLeYO72SF+Z7nZnQ9mbDtd6iLEPgECcFXvKxuAvBY+Ce7OgxaMVgg1JzZvsWYvDhzh6FKxvhSWsIMvYeAKN6fCBIJHbS5E10wOV0PP/ayBCwIKZHwGuwfZKTc5/FoPkbcJuhjPgaFIot+kaEKepYoQQ3RJtqY2P+41ToP3WyLBCiKQtqSNhjz8HufeZRHhHdE9n0NjGpVoRBEdLUtvPBgHk6e4ReVRXYPaIYj6ZzMQFhB+XUzjpVw1qxuO7G/HA9LV7iitOFEveoBxmiMNaUNoRPL/bLAh5I0uWcjbQeuCShIeyv7IoT9iTmuBCxYrg/dJNVFxZYV6TpkUcqQ9Yol177iL/a52yueFK48cdOUcgwlDoC2Fkif7JXOMhT1isitbosTkeoRpRvhEchiClOOKrpHNJSUpL358xORe+KozhohQMnGf/oyZMGVucE17fOV8EJOrWgouEgS8HimL0shoCstM7sASGIEzK52R6ZZtvCJlJDlNYg60fVakqCojei8z1Sqe5IoiU44oTWt2jFJuslNPqMmRjymsmZTzyUX1WR32kW6YJt1oUiBaSnOCD2P2zJxEkfZMR86UnSSUaG/Os9JYJpKL9juqJf+EwioilYUw/6WPVKn6vPpMVH/ozBRPLfLPe+ZUn5V8SC3zJdV0fWmLnKoXS3GJUHJeFYOerAd1zNpMl7Z0kmHkXyq1eMh9afI71JMmL/O6pUlNVZl5miFFfPlObXqzbwUNZIm2KNhhTvY9W+2jXUtX15e6KKim/KrFUFnMkixSqGiVyOPoWdizivG2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve50I2udKdL3epa97rYza52t8vd7nr3u+ANr3jHS97ymve86E2vetfL3va6973wja9850vf+tr3vvjNr373y9/++ve/AA6wgAdM4AIb+MAITrCCF8zgBjv4wRCOsP+EJ0zhClv4whjOsIY3zOEOe/jDIA6xiEdM4hKb+MQoTrGKV8ziFrv4xTCOsYxnTOMa2/jGOM6xjnfM4x77+MdADrKQh0zkIhv5yEhOspKXzOQmO/nJUI6ylKdM5Spb+cpYzrKWt8zlLnv5y2AOs5jHTOYym/nMaE6zmtfM5ja7+c1wjrOc50znOtv5znjOs573zOc++/nPgA60oAdN6EIb+tCITrSiF83oRjv60ZCOtKQnTelKW/rSmM60pjfN6U57+tOgDrWoR03qUpv61KhOtapXzepWu/rVsI61rGdN61rb+ta4zrWud83rXvv618AOtrCHTexiG/vYyE62spf/zexmO/vZ0I62tKdN7Wpb+9rYzra2t81tQWyv25n4NrgnIe5xR6Lc5n7EBS6Q7na7+93wjre8503vetv73vjOt773ze9++/vfAA+4wAdO8IIb/OAIT7jCF87whjv84RCPuMQnTvGKW/ziGM+4xjfO8Y57/OMgD7nIR07ykpv85ChPucpXzvKWu/zlMI+5zGdO85rb/OY4z7nOd87znvv850APutCHTvSiG/3oSE+60oGL7ng3felQj7rUp071qlv96ljPuta3zvWue/3rYA+72MdO9rKbHWICsLcA0q72e7O93m+nd9znPXd51z3ed4d33t+9d3f3vd1/T3fgzT34BnEXvsGBAAA7\"\n  }, props)), Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    className: \"edit-post-welcome-guide__image edit-post-welcome-guide__image__prm-r\",\n    alt: \"\",\n    src: \"data:image/svg+xml,%3Csvg fill='none' height='240' viewBox='0 0 312 240' width='312' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m0 0h312v240h-312z' fill='%2300a0d2'/%3E%3Cpath d='m51 32c0-1.1046.8954-2 2-2h206c1.105 0 2 .8954 2 2v208h-210z' fill='%23fff'/%3E%3Cpath d='m51 32c0-1.1046.8954-2 2-2h206c1.105 0 2 .8954 2 2v40h-210z' fill='%231e1e1e'/%3E%3Cg fill='%23ddd'%3E%3Cpath d='m90 98h104v16h-104z'/%3E%3Cpath d='m90 130h126v8h-126z'/%3E%3Cpath d='m90 143h126v8h-126z'/%3E%3Cpath d='m90 156h126v8h-126z'/%3E%3Cpath d='m90 206h126v8h-126z'/%3E%3Cpath d='m90 169h126v8h-126z'/%3E%3Cpath d='m90 219h126v8h-126z'/%3E%3Cpath d='m90 182h63v8h-63z'/%3E%3Cpath d='m90 232h63v8h-63z'/%3E%3C/g%3E%3Cpath d='m82.6667 51c0-6.4284-5.2384-11.6667-11.6667-11.6667-6.44 0-11.6667 5.2383-11.6667 11.6667 0 6.44 5.2267 11.6667 11.6667 11.6667 6.4283 0 11.6667-5.2267 11.6667-11.6667zm-14.2567 6.265-3.9784-10.675c.6417-.0234 1.365-.0934 1.365-.0934.5834-.07.5134-1.3183-.07-1.295 0 0-1.6916.1284-2.765.1284-.21 0-.4316 0-.6766-.0117 1.855-2.8467 5.0633-4.69 8.715-4.69 2.7183 0 5.1916 1.015 7.0583 2.73-.7933-.1283-1.925.455-1.925 1.8433 0 .8634.525 1.5867 1.05 2.45.4084.7117.6417 1.5867.6417 2.87 0 1.7384-1.6334 5.8334-1.6334 5.8334l-3.535-9.765c.63-.0234.9567-.1984.9567-.1984.5833-.0583.5133-1.4583-.07-1.4233 0 0-1.68.14-2.7767.14-1.015 0-2.7183-.14-2.7183-.14-.5833-.035-.6533 1.4-.07 1.4233l1.0733.0934 1.47 3.9783zm11.235-6.265c.28-.7467.8633-2.1817.5017-4.9584.8166 1.505 1.2249 3.1617 1.2249 4.9584 0 3.8383-2.0183 7.28-5.1333 9.0767 1.1317-3.0217 2.2633-6.0667 3.4067-9.0767zm-13.195 9.4383c-3.4767-1.68-5.8217-5.32-5.8217-9.4383 0-1.5167.2683-2.8934.84-4.1884 1.6567 4.5384 3.3133 9.0884 4.9817 13.6267zm4.7016-7.735 3.01 8.1434c-1.0033.3383-2.0533.5249-3.1616.5249-.9217 0-1.8317-.1283-2.6717-.385.945-2.7766 1.89-5.53 2.8233-8.2833z' fill='%23fff'/%3E%3C/svg%3E\"\n  }, props)));\n};\nvar images_InserterIconImage = function InserterIconImage(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(\"img\", Object(esm_extends[\"a\" /* default */])({\n    alt: Object(external_this_wp_i18n_[\"__\"])('inserter'),\n    src: \"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='18' height='18' rx='2' fill='%231E1E1E'/%3E%3Cpath d='M9.22727 4V14M4 8.77273H14' stroke='white' stroke-width='1.5'/%3E%3C/svg%3E%0A\"\n  }, props));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/welcome-guide/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction WelcomeGuide() {\n  var isActive = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/edit-post').isFeatureActive('welcomeGuide');\n  }, []);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      toggleFeature = _useDispatch.toggleFeature;\n\n  if (!isActive) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Guide\"], {\n    className: \"edit-post-welcome-guide\",\n    contentLabel: Object(external_this_wp_i18n_[\"__\"])('Welcome to the block editor'),\n    finishButtonText: Object(external_this_wp_i18n_[\"__\"])('Get started'),\n    onFinish: function onFinish() {\n      return toggleFeature('welcomeGuide');\n    },\n    pages: [{\n      image: Object(external_this_wp_element_[\"createElement\"])(images_CanvasImage, null),\n      content: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"h1\", {\n        className: \"edit-post-welcome-guide__heading\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Welcome to the block editor')), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"edit-post-welcome-guide__text\"\n      }, Object(external_this_wp_i18n_[\"__\"])('In the WordPress editor, each paragraph, image, or video is presented as a distinct “block” of content.')))\n    }, {\n      image: Object(external_this_wp_element_[\"createElement\"])(images_EditorImage, null),\n      content: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"h1\", {\n        className: \"edit-post-welcome-guide__heading\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Make each block your own')), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"edit-post-welcome-guide__text\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Each block comes with its own set of controls for changing things like color, width, and alignment. These will show and hide automatically when you have a block selected.')))\n    }, {\n      image: Object(external_this_wp_element_[\"createElement\"])(images_BlockLibraryImage, null),\n      content: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"h1\", {\n        className: \"edit-post-welcome-guide__heading\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Get to know the block library')), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"edit-post-welcome-guide__text\"\n      }, Object(external_this_wp_element_[\"createInterpolateElement\"])(Object(external_this_wp_i18n_[\"__\"])('All of the blocks available to you live in the block library. You’ll find it wherever you see the <InserterIconImage /> icon.'), {\n        InserterIconImage: Object(external_this_wp_element_[\"createElement\"])(images_InserterIconImage, {\n          className: \"edit-post-welcome-guide__inserter-icon\"\n        })\n      })))\n    }, {\n      image: Object(external_this_wp_element_[\"createElement\"])(images_DocumentationImage, null),\n      content: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"h1\", {\n        className: \"edit-post-welcome-guide__heading\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Learn how to use the block editor')), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"edit-post-welcome-guide__text\"\n      }, Object(external_this_wp_i18n_[\"__\"])('New to the block editor? Want to learn more about using it? '), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n        href: Object(external_this_wp_i18n_[\"__\"])('https://wordpress.org/support/article/wordpress-editor/')\n      }, Object(external_this_wp_i18n_[\"__\"])(\"Here's a detailed guide.\"))))\n    }]\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/plugin-post-publish-panel/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar plugin_post_publish_panel_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('PluginPostPublishPanel'),\n    plugin_post_publish_panel_Fill = plugin_post_publish_panel_createSlotFill.Fill,\n    plugin_post_publish_panel_Slot = plugin_post_publish_panel_createSlotFill.Slot;\n\nvar plugin_post_publish_panel_PluginPostPublishPanelFill = function PluginPostPublishPanelFill(_ref) {\n  var children = _ref.children,\n      className = _ref.className,\n      title = _ref.title,\n      _ref$initialOpen = _ref.initialOpen,\n      initialOpen = _ref$initialOpen === void 0 ? false : _ref$initialOpen,\n      icon = _ref.icon;\n  return Object(external_this_wp_element_[\"createElement\"])(plugin_post_publish_panel_Fill, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    className: className,\n    initialOpen: initialOpen || !title,\n    title: title,\n    icon: icon\n  }, children));\n};\n/**\n * Renders provided content to the post-publish panel in the publish flow\n * (side panel that opens after a user publishes the post).\n *\n * @param {Object} props Component properties.\n * @param {string} [props.className] An optional class name added to the panel.\n * @param {string} [props.title] Title displayed at the top of the panel.\n * @param {boolean} [props.initialOpen=false] Whether to have the panel initially opened. When no title is provided it is always opened.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPostPublishPanel = wp.editPost.PluginPostPublishPanel;\n *\n * function MyPluginPostPublishPanel() {\n * \treturn wp.element.createElement(\n * \t\tPluginPostPublishPanel,\n * \t\t{\n * \t\t\tclassName: 'my-plugin-post-publish-panel',\n * \t\t\ttitle: __( 'My panel title' ),\n * \t\t\tinitialOpen: true,\n * \t\t},\n * \t\t__( 'My panel content' )\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginPostPublishPanel } from '@wordpress/edit-post';\n *\n * const MyPluginPostPublishPanel = () => (\n * \t<PluginPostPublishPanel\n * \t\tclassName=\"my-plugin-post-publish-panel\"\n * \t\ttitle={ __( 'My panel title' ) }\n * \t\tinitialOpen={ true }\n * \t>\n *         { __( 'My panel content' ) }\n * \t</PluginPostPublishPanel>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n\nvar PluginPostPublishPanel = Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_plugins_[\"withPluginContext\"])(function (context, ownProps) {\n  return {\n    icon: ownProps.icon || context.icon\n  };\n}))(plugin_post_publish_panel_PluginPostPublishPanelFill);\nPluginPostPublishPanel.Slot = plugin_post_publish_panel_Slot;\n/* harmony default export */ var plugin_post_publish_panel = (PluginPostPublishPanel);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/sidebar/plugin-pre-publish-panel/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar plugin_pre_publish_panel_createSlotFill = Object(external_this_wp_components_[\"createSlotFill\"])('PluginPrePublishPanel'),\n    plugin_pre_publish_panel_Fill = plugin_pre_publish_panel_createSlotFill.Fill,\n    plugin_pre_publish_panel_Slot = plugin_pre_publish_panel_createSlotFill.Slot;\n\nvar plugin_pre_publish_panel_PluginPrePublishPanelFill = function PluginPrePublishPanelFill(_ref) {\n  var children = _ref.children,\n      className = _ref.className,\n      title = _ref.title,\n      _ref$initialOpen = _ref.initialOpen,\n      initialOpen = _ref$initialOpen === void 0 ? false : _ref$initialOpen,\n      icon = _ref.icon;\n  return Object(external_this_wp_element_[\"createElement\"])(plugin_pre_publish_panel_Fill, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    className: className,\n    initialOpen: initialOpen || !title,\n    title: title,\n    icon: icon\n  }, children));\n};\n/**\n * Renders provided content to the pre-publish side panel in the publish flow\n * (side panel that opens when a user first pushes \"Publish\" from the main editor).\n *\n * @param {Object}                props                                 Component props.\n * @param {string}                [props.className]                     An optional class name added to the panel.\n * @param {string}                [props.title]                         Title displayed at the top of the panel.\n * @param {boolean}               [props.initialOpen=false]             Whether to have the panel initially opened.\n *                                                                      When no title is provided it is always opened.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/)\n *                                                                      icon slug string, or an SVG WP element, to be rendered when\n *                                                                      the sidebar is pinned to toolbar.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginPrePublishPanel = wp.editPost.PluginPrePublishPanel;\n *\n * function MyPluginPrePublishPanel() {\n * \treturn wp.element.createElement(\n * \t\tPluginPrePublishPanel,\n * \t\t{\n * \t\t\tclassName: 'my-plugin-pre-publish-panel',\n * \t\t\ttitle: __( 'My panel title' ),\n * \t\t\tinitialOpen: true,\n * \t\t},\n * \t\t__( 'My panel content' )\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginPrePublishPanel } from '@wordpress/edit-post';\n *\n * const MyPluginPrePublishPanel = () => (\n * \t<PluginPrePublishPanel\n * \t\tclassName=\"my-plugin-pre-publish-panel\"\n * \t\ttitle={ __( 'My panel title' ) }\n * \t\tinitialOpen={ true }\n * \t>\n * \t    { __( 'My panel content' ) }\n * \t</PluginPrePublishPanel>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n\nvar PluginPrePublishPanel = Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_plugins_[\"withPluginContext\"])(function (context, ownProps) {\n  return {\n    icon: ownProps.icon || context.icon\n  };\n}))(plugin_pre_publish_panel_PluginPrePublishPanelFill);\nPluginPrePublishPanel.Slot = plugin_pre_publish_panel_Slot;\n/* harmony default export */ var plugin_pre_publish_panel = (PluginPrePublishPanel);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/layout/actions-panel.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ActionsPanel(_ref) {\n  var setEntitiesSavedStatesCallback = _ref.setEntitiesSavedStatesCallback,\n      closeEntitiesSavedStates = _ref.closeEntitiesSavedStates,\n      isEntitiesSavedStatesOpen = _ref.isEntitiesSavedStatesOpen;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      closePublishSidebar = _useDispatch.closePublishSidebar,\n      togglePublishSidebar = _useDispatch.togglePublishSidebar;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      publishSidebarOpened: select('core/edit-post').isPublishSidebarOpened(),\n      hasActiveMetaboxes: select('core/edit-post').hasMetaBoxes(),\n      isSavingMetaBoxes: select('core/edit-post').isSavingMetaBoxes(),\n      hasNonPostEntityChanges: select('core/editor').hasNonPostEntityChanges()\n    };\n  }, []),\n      publishSidebarOpened = _useSelect.publishSidebarOpened,\n      hasActiveMetaboxes = _useSelect.hasActiveMetaboxes,\n      isSavingMetaBoxes = _useSelect.isSavingMetaBoxes,\n      hasNonPostEntityChanges = _useSelect.hasNonPostEntityChanges;\n\n  var openEntitiesSavedStates = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return setEntitiesSavedStatesCallback(true);\n  }, []); // It is ok for these components to be unmounted when not in visual use.\n  // We don't want more than one present at a time, decide which to render.\n\n  var unmountableContent;\n\n  if (publishSidebarOpened) {\n    unmountableContent = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostPublishPanel\"], {\n      onClose: closePublishSidebar,\n      forceIsDirty: hasActiveMetaboxes,\n      forceIsSaving: isSavingMetaBoxes,\n      PrePublishExtension: plugin_pre_publish_panel.Slot,\n      PostPublishExtension: plugin_post_publish_panel.Slot\n    });\n  } else if (hasNonPostEntityChanges) {\n    unmountableContent = Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__toggle-entities-saved-states-panel\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      isSecondary: true,\n      className: \"edit-post-layout__toggle-entities-saved-states-panel-button\",\n      onClick: openEntitiesSavedStates,\n      \"aria-expanded\": false\n    }, Object(external_this_wp_i18n_[\"__\"])('Open save panel')));\n  } else {\n    unmountableContent = Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__toggle-publish-panel\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      isSecondary: true,\n      className: \"edit-post-layout__toggle-publish-panel-button\",\n      onClick: togglePublishSidebar,\n      \"aria-expanded\": false\n    }, Object(external_this_wp_i18n_[\"__\"])('Open publish panel')));\n  } // Since EntitiesSavedStates controls its own panel, we can keep it\n  // always mounted to retain its own component state (such as checkboxes).\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"EntitiesSavedStates\"], {\n    isOpen: isEntitiesSavedStatesOpen,\n    close: closeEntitiesSavedStates\n  }), !isEntitiesSavedStatesOpen && unmountableContent);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/layout/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar interfaceLabels = {\n  leftSidebar: Object(external_this_wp_i18n_[\"__\"])('Block Library')\n};\n\nfunction Layout() {\n  var isMobileViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('medium', '<');\n  var isHugeViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('huge', '>=');\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/edit-post'),\n      openGeneralSidebar = _useDispatch.openGeneralSidebar,\n      closeGeneralSidebar = _useDispatch.closeGeneralSidebar,\n      setIsInserterOpened = _useDispatch.setIsInserterOpened;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      hasFixedToolbar: select('core/edit-post').isFeatureActive('fixedToolbar'),\n      sidebarIsOpened: !!(select('core/interface').getActiveComplementaryArea('core/edit-post') || select('core/edit-post').isPublishSidebarOpened()),\n      isFullscreenActive: select('core/edit-post').isFeatureActive('fullscreenMode'),\n      showMostUsedBlocks: select('core/edit-post').isFeatureActive('mostUsedBlocks'),\n      isInserterOpened: select('core/edit-post').isInserterOpened(),\n      mode: select('core/edit-post').getEditorMode(),\n      isRichEditingEnabled: select('core/editor').getEditorSettings().richEditingEnabled,\n      hasActiveMetaboxes: select('core/edit-post').hasMetaBoxes(),\n      previousShortcut: select('core/keyboard-shortcuts').getAllShortcutRawKeyCombinations('core/edit-post/previous-region'),\n      nextShortcut: select('core/keyboard-shortcuts').getAllShortcutRawKeyCombinations('core/edit-post/next-region')\n    };\n  }, []),\n      mode = _useSelect.mode,\n      isFullscreenActive = _useSelect.isFullscreenActive,\n      isRichEditingEnabled = _useSelect.isRichEditingEnabled,\n      sidebarIsOpened = _useSelect.sidebarIsOpened,\n      hasActiveMetaboxes = _useSelect.hasActiveMetaboxes,\n      hasFixedToolbar = _useSelect.hasFixedToolbar,\n      previousShortcut = _useSelect.previousShortcut,\n      nextShortcut = _useSelect.nextShortcut,\n      hasBlockSelected = _useSelect.hasBlockSelected,\n      showMostUsedBlocks = _useSelect.showMostUsedBlocks,\n      isInserterOpened = _useSelect.isInserterOpened;\n\n  var className = classnames_default()('edit-post-layout', 'is-mode-' + mode, {\n    'is-sidebar-opened': sidebarIsOpened,\n    'has-fixed-toolbar': hasFixedToolbar,\n    'has-metaboxes': hasActiveMetaboxes\n  });\n\n  var openSidebarPanel = function openSidebarPanel() {\n    return openGeneralSidebar(hasBlockSelected ? 'edit-post/block' : 'edit-post/document');\n  }; // Inserter and Sidebars are mutually exclusive\n\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (sidebarIsOpened && !isHugeViewport) {\n      setIsInserterOpened(false);\n    }\n  }, [sidebarIsOpened, isHugeViewport]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (isInserterOpened && !isHugeViewport) {\n      closeGeneralSidebar();\n    }\n  }, [isInserterOpened, isHugeViewport]); // Local state for save panel.\n  // Note 'thruthy' callback implies an open panel.\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      entitiesSavedStatesCallback = _useState2[0],\n      setEntitiesSavedStatesCallback = _useState2[1];\n\n  var closeEntitiesSavedStates = Object(external_this_wp_element_[\"useCallback\"])(function (arg) {\n    if (typeof entitiesSavedStatesCallback === 'function') {\n      entitiesSavedStatesCallback(arg);\n    }\n\n    setEntitiesSavedStatesCallback(false);\n  }, [entitiesSavedStatesCallback]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(fullscreen_mode, {\n    isActive: isFullscreenActive\n  }), Object(external_this_wp_element_[\"createElement\"])(browser_url, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"UnsavedChangesWarning\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"AutosaveMonitor\"], null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"LocalAutosaveMonitor\"], null), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcuts, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"EditorKeyboardShortcutsRegister\"], null), Object(external_this_wp_element_[\"createElement\"])(settings_sidebar, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FocusReturnProvider\"], null, Object(external_this_wp_element_[\"createElement\"])(interface_skeleton, {\n    className: className,\n    labels: interfaceLabels,\n    header: Object(external_this_wp_element_[\"createElement\"])(components_header, {\n      setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback\n    }),\n    leftSidebar: mode === 'visual' && isInserterOpened && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__inserter-panel\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__inserter-panel-header\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      icon: library_close[\"a\" /* default */],\n      onClick: function onClick() {\n        return setIsInserterOpened(false);\n      }\n    })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__inserter-panel-content\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalLibrary\"], {\n      showMostUsedBlocks: showMostUsedBlocks,\n      showInserterHelpPanel: true,\n      onSelect: function onSelect() {\n        if (isMobileViewport) {\n          setIsInserterOpened(false);\n        }\n      }\n    }))),\n    sidebar: (!isMobileViewport || sidebarIsOpened) && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !isMobileViewport && !sidebarIsOpened && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__toogle-sidebar-panel\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n      isSecondary: true,\n      className: \"edit-post-layout__toogle-sidebar-panel-button\",\n      onClick: openSidebarPanel,\n      \"aria-expanded\": false\n    }, hasBlockSelected ? Object(external_this_wp_i18n_[\"__\"])('Open block settings') : Object(external_this_wp_i18n_[\"__\"])('Open document settings'))), Object(external_this_wp_element_[\"createElement\"])(complementary_area.Slot, {\n      scope: \"core/edit-post\"\n    })),\n    content: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"EditorNotices\"], null), (mode === 'text' || !isRichEditingEnabled) && Object(external_this_wp_element_[\"createElement\"])(text_editor, null), isRichEditingEnabled && mode === 'visual' && Object(external_this_wp_element_[\"createElement\"])(visual_editor, null), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__metaboxes\"\n    }, Object(external_this_wp_element_[\"createElement\"])(meta_boxes, {\n      location: \"normal\"\n    }), Object(external_this_wp_element_[\"createElement\"])(meta_boxes, {\n      location: \"advanced\"\n    })), isMobileViewport && sidebarIsOpened && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ScrollLock\"], null)),\n    footer: !isMobileViewport && isRichEditingEnabled && mode === 'visual' && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"edit-post-layout__footer\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockBreadcrumb\"], null)),\n    actions: Object(external_this_wp_element_[\"createElement\"])(ActionsPanel, {\n      closeEntitiesSavedStates: closeEntitiesSavedStates,\n      isEntitiesSavedStatesOpen: entitiesSavedStatesCallback,\n      setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback\n    }),\n    shortcuts: {\n      previous: previousShortcut,\n      next: nextShortcut\n    }\n  }), Object(external_this_wp_element_[\"createElement\"])(manage_blocks_modal, null), Object(external_this_wp_element_[\"createElement\"])(options_modal, null), Object(external_this_wp_element_[\"createElement\"])(keyboard_shortcut_help_modal, null), Object(external_this_wp_element_[\"createElement\"])(WelcomeGuide, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"].Slot, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_plugins_[\"PluginArea\"], null)));\n}\n\n/* harmony default export */ var layout = (Layout);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/editor-initialization/listener-hooks.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * This listener hook monitors for block selection and triggers the appropriate\n * sidebar state.\n *\n * @param {number} postId  The current post id.\n */\n\nvar listener_hooks_useBlockSelectionListener = function useBlockSelectionListener(postId) {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      hasBlockSelection: !!select('core/block-editor').getBlockSelectionStart(),\n      isEditorSidebarOpened: select(STORE_KEY).isEditorSidebarOpened()\n    };\n  }, [postId]),\n      hasBlockSelection = _useSelect.hasBlockSelection,\n      isEditorSidebarOpened = _useSelect.isEditorSidebarOpened;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])(STORE_KEY),\n      openGeneralSidebar = _useDispatch.openGeneralSidebar;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!isEditorSidebarOpened) {\n      return;\n    }\n\n    if (hasBlockSelection) {\n      openGeneralSidebar('edit-post/block');\n    } else {\n      openGeneralSidebar('edit-post/document');\n    }\n  }, [hasBlockSelection, isEditorSidebarOpened]);\n};\n/**\n * This listener hook monitors any change in permalink and updates the view\n * post link in the admin bar.\n *\n * @param {number} postId\n */\n\nvar listener_hooks_useUpdatePostLinkListener = function useUpdatePostLinkListener(postId) {\n  var _useSelect2 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      newPermalink: select('core/editor').getCurrentPost().link\n    };\n  }, [postId]),\n      newPermalink = _useSelect2.newPermalink;\n\n  var nodeToUpdate = Object(external_this_wp_element_[\"useRef\"])();\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    nodeToUpdate.current = document.querySelector(VIEW_AS_PREVIEW_LINK_SELECTOR) || document.querySelector(VIEW_AS_LINK_SELECTOR);\n  }, [postId]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!newPermalink || !nodeToUpdate.current) {\n      return;\n    }\n\n    nodeToUpdate.current.setAttribute('href', newPermalink);\n  }, [newPermalink]);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/editor-initialization/index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Data component used for initializing the editor and re-initializes\n * when postId changes or on unmount.\n *\n * @param {number} postId  The id of the post.\n * @return {null} This is a data component so does not render any ui.\n */\n\nfunction EditorInitialization(_ref) {\n  var postId = _ref.postId;\n  listener_hooks_useBlockSelectionListener(postId);\n  listener_hooks_useUpdatePostLinkListener(postId);\n  return null;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/editor.js\n\n\n\n\n\n\n\n\n\n\n\nfunction editor_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction editor_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { editor_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { editor_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction editor_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (editor_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction editor_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nvar editor_Editor = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(Editor, _Component);\n\n  var _super = editor_createSuper(Editor);\n\n  function Editor() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, Editor);\n\n    _this = _super.apply(this, arguments);\n    _this.getEditorSettings = memize_default()(_this.getEditorSettings, {\n      maxSize: 1\n    });\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(Editor, [{\n    key: \"getEditorSettings\",\n    value: function getEditorSettings(settings, hasFixedToolbar, focusMode, hiddenBlockTypes, blockTypes, preferredStyleVariations, __experimentalLocalAutosaveInterval, __experimentalSetIsInserterOpened, updatePreferredStyleVariations, keepCaretInsideBlock) {\n      settings = editor_objectSpread({}, settings, {\n        __experimentalPreferredStyleVariations: {\n          value: preferredStyleVariations,\n          onChange: updatePreferredStyleVariations\n        },\n        hasFixedToolbar: hasFixedToolbar,\n        focusMode: focusMode,\n        __experimentalLocalAutosaveInterval: __experimentalLocalAutosaveInterval,\n        // This is marked as experimental to give time for the quick inserter to mature.\n        __experimentalSetIsInserterOpened: __experimentalSetIsInserterOpened,\n        keepCaretInsideBlock: keepCaretInsideBlock\n      }); // Omit hidden block types if exists and non-empty.\n\n      if (Object(external_this_lodash_[\"size\"])(hiddenBlockTypes) > 0) {\n        // Defer to passed setting for `allowedBlockTypes` if provided as\n        // anything other than `true` (where `true` is equivalent to allow\n        // all block types).\n        var defaultAllowedBlockTypes = true === settings.allowedBlockTypes ? Object(external_this_lodash_[\"map\"])(blockTypes, 'name') : settings.allowedBlockTypes || [];\n        settings.allowedBlockTypes = external_this_lodash_[\"without\"].apply(void 0, [defaultAllowedBlockTypes].concat(Object(toConsumableArray[\"a\" /* default */])(hiddenBlockTypes)));\n      }\n\n      return settings;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          settings = _this$props.settings,\n          hasFixedToolbar = _this$props.hasFixedToolbar,\n          focusMode = _this$props.focusMode,\n          post = _this$props.post,\n          postId = _this$props.postId,\n          initialEdits = _this$props.initialEdits,\n          onError = _this$props.onError,\n          hiddenBlockTypes = _this$props.hiddenBlockTypes,\n          blockTypes = _this$props.blockTypes,\n          preferredStyleVariations = _this$props.preferredStyleVariations,\n          __experimentalLocalAutosaveInterval = _this$props.__experimentalLocalAutosaveInterval,\n          setIsInserterOpened = _this$props.setIsInserterOpened,\n          updatePreferredStyleVariations = _this$props.updatePreferredStyleVariations,\n          keepCaretInsideBlock = _this$props.keepCaretInsideBlock,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_this$props, [\"settings\", \"hasFixedToolbar\", \"focusMode\", \"post\", \"postId\", \"initialEdits\", \"onError\", \"hiddenBlockTypes\", \"blockTypes\", \"preferredStyleVariations\", \"__experimentalLocalAutosaveInterval\", \"setIsInserterOpened\", \"updatePreferredStyleVariations\", \"keepCaretInsideBlock\"]);\n\n      if (!post) {\n        return null;\n      }\n\n      var editorSettings = this.getEditorSettings(settings, hasFixedToolbar, focusMode, hiddenBlockTypes, blockTypes, preferredStyleVariations, __experimentalLocalAutosaveInterval, setIsInserterOpened, updatePreferredStyleVariations, keepCaretInsideBlock);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"StrictMode\"], null, Object(external_this_wp_element_[\"createElement\"])(edit_post_settings.Provider, {\n        value: settings\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SlotFillProvider\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropZoneProvider\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"EditorProvider\"], Object(esm_extends[\"a\" /* default */])({\n        settings: editorSettings,\n        post: post,\n        initialEdits: initialEdits,\n        useSubRegistry: false\n      }, props), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"ErrorBoundary\"], {\n        onError: onError\n      }, Object(external_this_wp_element_[\"createElement\"])(EditorInitialization, {\n        postId: postId\n      }), Object(external_this_wp_element_[\"createElement\"])(layout, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"KeyboardShortcuts\"], {\n        shortcuts: prevent_event_discovery\n      })), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_editor_[\"PostLockedModal\"], null))))));\n    }\n  }]);\n\n  return Editor;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var editor = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var postId = _ref.postId,\n      postType = _ref.postType;\n\n  var _select = select('core/edit-post'),\n      isFeatureActive = _select.isFeatureActive,\n      getPreference = _select.getPreference,\n      __experimentalGetPreviewDeviceType = _select.__experimentalGetPreviewDeviceType;\n\n  var _select2 = select('core'),\n      getEntityRecord = _select2.getEntityRecord;\n\n  var _select3 = select('core/blocks'),\n      getBlockTypes = _select3.getBlockTypes;\n\n  return {\n    hasFixedToolbar: isFeatureActive('fixedToolbar') || __experimentalGetPreviewDeviceType() !== 'Desktop',\n    focusMode: isFeatureActive('focusMode'),\n    post: getEntityRecord('postType', postType, postId),\n    preferredStyleVariations: getPreference('preferredStyleVariations'),\n    hiddenBlockTypes: getPreference('hiddenBlockTypes'),\n    blockTypes: getBlockTypes(),\n    __experimentalLocalAutosaveInterval: getPreference('localAutosaveInterval'),\n    keepCaretInsideBlock: isFeatureActive('keepCaretInsideBlock')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/edit-post'),\n      updatePreferredStyleVariations = _dispatch.updatePreferredStyleVariations,\n      setIsInserterOpened = _dispatch.setIsInserterOpened;\n\n  return {\n    updatePreferredStyleVariations: updatePreferredStyleVariations,\n    setIsInserterOpened: setIsInserterOpened\n  };\n})])(editor_Editor));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js\nvar plugins = __webpack_require__(416);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar plugin_block_settings_menu_item_isEverySelectedBlockAllowed = function isEverySelectedBlockAllowed(selected, allowed) {\n  return Object(external_this_lodash_[\"difference\"])(selected, allowed).length === 0;\n};\n/**\n * Plugins may want to add an item to the menu either for every block\n * or only for the specific ones provided in the `allowedBlocks` component property.\n *\n * If there are multiple blocks selected the item will be rendered if every block\n * is of one allowed type (not necessarily the same).\n *\n * @param {string[]} selectedBlocks Array containing the names of the blocks selected\n * @param {string[]} allowedBlocks Array containing the names of the blocks allowed\n * @return {boolean} Whether the item will be rendered or not.\n */\n\n\nvar shouldRenderItem = function shouldRenderItem(selectedBlocks, allowedBlocks) {\n  return !Array.isArray(allowedBlocks) || plugin_block_settings_menu_item_isEverySelectedBlockAllowed(selectedBlocks, allowedBlocks);\n};\n/**\n * Renders a new item in the block settings menu.\n *\n * @param {Object}                props                 Component props.\n * @param {Array}                 [props.allowedBlocks] An array containing a list of block names for which the item should be shown. If not present, it'll be rendered for any block. If multiple blocks are selected, it'll be shown if and only if all of them are in the whitelist.\n * @param {WPBlockTypeIconRender} [props.icon]          The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element.\n * @param {string}                props.label           The menu item text.\n * @param {Function}              props.onClick         Callback function to be executed when the user click the menu item.\n * @param {boolean}               [props.small]         Whether to render the label or not.\n * @param {string}                [props.role]          The ARIA role for the menu item.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginBlockSettingsMenuItem = wp.editPost.PluginBlockSettingsMenuItem;\n *\n * function doOnClick(){\n * \t// To be called when the user clicks the menu item.\n * }\n *\n * function MyPluginBlockSettingsMenuItem() {\n * \treturn wp.element.createElement(\n * \t\tPluginBlockSettingsMenuItem,\n * \t\t{\n * \t\t\tallowedBlocks: [ 'core/paragraph' ],\n * \t\t\ticon: 'dashicon-name',\n * \t\t\tlabel: __( 'Menu item text' ),\n * \t\t\tonClick: doOnClick,\n * \t\t}\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginBlockSettingsMenuItem } from '@wordpress/edit-post';\n *\n * const doOnClick = ( ) => {\n *     // To be called when the user clicks the menu item.\n * };\n *\n * const MyPluginBlockSettingsMenuItem = () => (\n *     <PluginBlockSettingsMenuItem\n * \t\tallowedBlocks={ [ 'core/paragraph' ] }\n * \t\ticon='dashicon-name'\n * \t\tlabel={ __( 'Menu item text' ) }\n * \t\tonClick={ doOnClick } />\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n\nvar plugin_block_settings_menu_item_PluginBlockSettingsMenuItem = function PluginBlockSettingsMenuItem(_ref) {\n  var allowedBlocks = _ref.allowedBlocks,\n      icon = _ref.icon,\n      label = _ref.label,\n      onClick = _ref.onClick,\n      small = _ref.small,\n      role = _ref.role;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockSettingsMenuControls\"], null, function (_ref2) {\n    var selectedBlocks = _ref2.selectedBlocks,\n        onClose = _ref2.onClose;\n\n    if (!shouldRenderItem(selectedBlocks, allowedBlocks)) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      onClick: Object(external_this_wp_compose_[\"compose\"])(onClick, onClose),\n      icon: icon || plugins[\"a\" /* default */],\n      label: small ? label : undefined,\n      role: role\n    }, !small && label);\n  });\n};\n\n/* harmony default export */ var plugin_block_settings_menu_item = (plugin_block_settings_menu_item_PluginBlockSettingsMenuItem);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/plugin-more-menu-item/index.js\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Renders a menu item in `Plugins` group in `More Menu` drop down, and can be used to as a button or link depending on the props provided.\n * The text within the component appears as the menu item label.\n *\n * @param {Object} props Component properties.\n * @param {string} [props.href] When `href` is provided then the menu item is represented as an anchor rather than button. It corresponds to the `href` attribute of the anchor.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.\n * @param {Function} [props.onClick=noop] The callback function to be executed when the user clicks the menu item.\n * @param {...*} [props.other] Any additional props are passed through to the underlying [MenuItem](/packages/components/src/menu-item/README.md) component.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginMoreMenuItem = wp.editPost.PluginMoreMenuItem;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function onButtonClick() {\n * \talert( 'Button clicked.' );\n * }\n *\n * function MyButtonMoreMenuItem() {\n * \treturn wp.element.createElement(\n * \t\tPluginMoreMenuItem,\n * \t\t{\n * \t\t\ticon: moreIcon,\n * \t\t\tonClick: onButtonClick,\n * \t\t},\n * \t\t__( 'My button title' )\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginMoreMenuItem } from '@wordpress/edit-post';\n * import { more } from '@wordpress/icons';\n *\n * function onButtonClick() {\n * \talert( 'Button clicked.' );\n * }\n *\n * const MyButtonMoreMenuItem = () => (\n * \t<PluginMoreMenuItem\n * \t\ticon={ more }\n * \t\tonClick={ onButtonClick }\n * \t>\n * \t\t{ __( 'My button title' ) }\n * \t</PluginMoreMenuItem>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\n/* harmony default export */ var plugin_more_menu_item = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_plugins_[\"withPluginContext\"])(function (context, ownProps) {\n  return {\n    icon: ownProps.icon || context.icon,\n    name: 'core/edit-post/plugin-more-menu'\n  };\n}))(action_item));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/components/header/plugin-sidebar-more-menu-item/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Renders a menu item in `Plugins` group in `More Menu` drop down,\n * and can be used to activate the corresponding `PluginSidebar` component.\n * The text within the component appears as the menu item label.\n *\n * @param {Object} props Component props.\n * @param {string} props.target A string identifying the target sidebar you wish to be activated by this menu item. Must be the same as the `name` prop you have given to that sidebar.\n * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var __ = wp.i18n.__;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function MySidebarMoreMenuItem() {\n * \treturn wp.element.createElement(\n * \t\tPluginSidebarMoreMenuItem,\n * \t\t{\n * \t\t\ttarget: 'my-sidebar',\n * \t\t\ticon: moreIcon,\n * \t\t},\n * \t\t__( 'My sidebar title' )\n * \t)\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```jsx\n * // Using ESNext syntax\n * import { __ } from '@wordpress/i18n';\n * import { PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { more } from '@wordpress/icons';\n *\n * const MySidebarMoreMenuItem = () => (\n * \t<PluginSidebarMoreMenuItem\n * \t\ttarget=\"my-sidebar\"\n * \t\ticon={ more }\n * \t>\n * \t\t{ __( 'My sidebar title' ) }\n * \t</PluginSidebarMoreMenuItem>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nfunction PluginSidebarMoreMenuItem(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(ComplementaryAreaMoreMenuItem, Object(esm_extends[\"a\" /* default */])({\n    scope: \"core/edit-post\"\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/edit-post/build-module/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Reinitializes the editor after the user chooses to reboot the editor after\n * an unhandled error occurs, replacing previously mounted editor element using\n * an initial state from prior to the crash.\n *\n * @param {Object}  postType     Post type of the post to edit.\n * @param {Object}  postId       ID of the post to edit.\n * @param {Element} target       DOM node in which editor is rendered.\n * @param {?Object} settings     Editor settings object.\n * @param {Object}  initialEdits Programmatic edits to apply initially, to be\n *                               considered as non-user-initiated (bypass for\n *                               unsaved changes prompt).\n */\n\nfunction reinitializeEditor(postType, postId, target, settings, initialEdits) {\n  Object(external_this_wp_element_[\"unmountComponentAtNode\"])(target);\n  var reboot = reinitializeEditor.bind(null, postType, postId, target, settings, initialEdits);\n  Object(external_this_wp_element_[\"render\"])(Object(external_this_wp_element_[\"createElement\"])(editor, {\n    settings: settings,\n    onError: reboot,\n    postId: postId,\n    postType: postType,\n    initialEdits: initialEdits,\n    recovery: true\n  }), target);\n}\n/**\n * Initializes and returns an instance of Editor.\n *\n * The return value of this function is not necessary if we change where we\n * call initializeEditor(). This is due to metaBox timing.\n *\n * @param {string}  id           Unique identifier for editor instance.\n * @param {Object}  postType     Post type of the post to edit.\n * @param {Object}  postId       ID of the post to edit.\n * @param {?Object} settings     Editor settings object.\n * @param {Object}  initialEdits Programmatic edits to apply initially, to be\n *                               considered as non-user-initiated (bypass for\n *                               unsaved changes prompt).\n */\n\nfunction initializeEditor(id, postType, postId, settings, initialEdits) {\n  var target = document.getElementById(id);\n  var reboot = reinitializeEditor.bind(null, postType, postId, target, settings, initialEdits);\n  Object(external_this_wp_blockLibrary_[\"registerCoreBlocks\"])();\n\n  if (false) {} // Show a console log warning if the browser is not in Standards rendering mode.\n\n\n  var documentMode = document.compatMode === 'CSS1Compat' ? 'Standards' : 'Quirks';\n\n  if (documentMode !== 'Standards') {\n    // eslint-disable-next-line no-console\n    console.warn(\"Your browser is using Quirks Mode. \\nThis can cause rendering issues such as blocks overlaying meta boxes in the editor. Quirks Mode can be triggered by PHP errors or HTML code appearing before the opening <!DOCTYPE html>. Try checking the raw page source or your site's PHP error log and resolving errors there, removing any HTML before the doctype, or disabling plugins.\");\n  } // This is a temporary fix for a couple of issues specific to Webkit on iOS.\n  // Without this hack the browser scrolls the mobile toolbar off-screen.\n  // Once supported in Safari we can replace this in favor of preventScroll.\n  // For details see issue #18632 and PR #18686\n  // Specifically, we scroll `interface-interface-skeleton__body` to enable a fixed top toolbar.\n  // But Mobile Safari forces the `html` element to scroll upwards, hiding the toolbar.\n\n\n  var isIphone = window.navigator.userAgent.indexOf('iPhone') !== -1;\n\n  if (isIphone) {\n    window.addEventListener('scroll', function (event) {\n      var editorScrollContainer = document.getElementsByClassName('interface-interface-skeleton__body')[0];\n\n      if (event.target === document) {\n        // Scroll element into view by scrolling the editor container by the same amount\n        // that Mobile Safari tried to scroll the html element upwards.\n        if (window.scrollY > 100) {\n          editorScrollContainer.scrollTop = editorScrollContainer.scrollTop + window.scrollY;\n        } // Undo unwanted scroll on html element, but only in the visual editor.\n\n\n        if (document.getElementsByClassName('is-mode-visual')[0]) {\n          window.scrollTo(0, 0);\n        }\n      }\n    });\n  }\n\n  Object(external_this_wp_element_[\"render\"])(Object(external_this_wp_element_[\"createElement\"])(editor, {\n    settings: settings,\n    onError: reboot,\n    postId: postId,\n    postType: postType,\n    initialEdits: initialEdits\n  }), target);\n}\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 466:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(467);\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nvar _createSlotFill = Object(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__[\"createSlotFill\"])('EnablePluginDocumentSettingPanelOption'),\n    Fill = _createSlotFill.Fill,\n    Slot = _createSlotFill.Slot;\n\nvar EnablePluginDocumentSettingPanelOption = function EnablePluginDocumentSettingPanelOption(_ref) {\n  var label = _ref.label,\n      panelName = _ref.panelName;\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(Fill, null, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_index__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"], {\n    label: label,\n    panelName: panelName\n  }));\n};\n\nEnablePluginDocumentSettingPanelOption.Slot = Slot;\n/* harmony default export */ __webpack_exports__[\"a\"] = (EnablePluginDocumentSettingPanelOption);\n\n\n/***/ }),\n\n/***/ 467:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);\n/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4);\n/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(109);\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__[\"compose\"])(Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__[\"withSelect\"])(function (select, _ref) {\n  var panelName = _ref.panelName;\n\n  var _select = select('core/edit-post'),\n      isEditorPanelEnabled = _select.isEditorPanelEnabled,\n      isEditorPanelRemoved = _select.isEditorPanelRemoved;\n\n  return {\n    isRemoved: isEditorPanelRemoved(panelName),\n    isChecked: isEditorPanelEnabled(panelName)\n  };\n}), Object(_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__[\"ifCondition\"])(function (_ref2) {\n  var isRemoved = _ref2.isRemoved;\n  return !isRemoved;\n}), Object(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__[\"withDispatch\"])(function (dispatch, _ref3) {\n  var panelName = _ref3.panelName;\n  return {\n    onChange: function onChange() {\n      return dispatch('core/edit-post').toggleEditorPanelEnabled(panelName);\n    }\n  };\n}))(_base__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"]));\n\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keyboardShortcuts\"]; }());\n\n/***/ }),\n\n/***/ 48:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"a11y\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 63:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"plugins\"]; }());\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());\n\n/***/ }),\n\n/***/ 72:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"viewport\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 89:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"coreData\"]; }());\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 92:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"notices\"]; }());\n\n/***/ }),\n\n/***/ 97:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"warning\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-editor.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"editor\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 434);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blocks\"]; }());\n\n/***/ }),\n\n/***/ 104:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nfunction flattenIntoMap( map, effects ) {\n\tvar i;\n\tif ( Array.isArray( effects ) ) {\n\t\tfor ( i = 0; i < effects.length; i++ ) {\n\t\t\tflattenIntoMap( map, effects[ i ] );\n\t\t}\n\t} else {\n\t\tfor ( i in effects ) {\n\t\t\tmap[ i ] = ( map[ i ] || [] ).concat( effects[ i ] );\n\t\t}\n\t}\n}\n\nfunction refx( effects ) {\n\tvar map = {},\n\t\tmiddleware;\n\n\tflattenIntoMap( map, effects );\n\n\tmiddleware = function( store ) {\n\t\treturn function( next ) {\n\t\t\treturn function( action ) {\n\t\t\t\tvar handlers = map[ action.type ],\n\t\t\t\t\tresult = next( action ),\n\t\t\t\t\ti, handlerAction;\n\n\t\t\t\tif ( handlers ) {\n\t\t\t\t\tfor ( i = 0; i < handlers.length; i++ ) {\n\t\t\t\t\t\thandlerAction = handlers[ i ]( action, store );\n\t\t\t\t\t\tif ( handlerAction ) {\n\t\t\t\t\t\t\tstore.dispatch( handlerAction );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t};\n\t\t};\n\t};\n\n\tmiddleware.effects = map;\n\n\treturn middleware;\n}\n\nmodule.exports = refx;\n\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 129:\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(417);\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = __webpack_require__(133);\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 141:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"wordcount\"]; }());\n\n/***/ }),\n\n/***/ 145:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"mediaUtils\"]; }());\n\n/***/ }),\n\n/***/ 147:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (close);\n\n\n/***/ }),\n\n/***/ 148:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar check = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 18.6L3.5 13l1-1L9 16.4l9.5-9.9 1 1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (check);\n\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 167:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n            t[p[i]] = s[p[i]];\n    return t;\n};\nexports.__esModule = true;\nvar React = __webpack_require__(16);\nvar PropTypes = __webpack_require__(28);\nvar autosize = __webpack_require__(168);\nvar _getLineHeight = __webpack_require__(169);\nvar getLineHeight = _getLineHeight;\nvar UPDATE = 'autosize:update';\nvar DESTROY = 'autosize:destroy';\nvar RESIZED = 'autosize:resized';\n/**\n * A light replacement for built-in textarea component\n * which automaticaly adjusts its height to match the content\n */\nvar TextareaAutosize = /** @class */ (function (_super) {\n    __extends(TextareaAutosize, _super);\n    function TextareaAutosize() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.state = {\n            lineHeight: null\n        };\n        _this.dispatchEvent = function (EVENT_TYPE) {\n            var event = document.createEvent('Event');\n            event.initEvent(EVENT_TYPE, true, false);\n            _this.textarea.dispatchEvent(event);\n        };\n        _this.updateLineHeight = function () {\n            _this.setState({\n                lineHeight: getLineHeight(_this.textarea)\n            });\n        };\n        _this.onChange = function (e) {\n            var onChange = _this.props.onChange;\n            _this.currentValue = e.currentTarget.value;\n            onChange && onChange(e);\n        };\n        _this.saveDOMNodeRef = function (ref) {\n            var innerRef = _this.props.innerRef;\n            if (innerRef) {\n                innerRef(ref);\n            }\n            _this.textarea = ref;\n        };\n        _this.getLocals = function () {\n            var _a = _this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, props = __rest(_b, [\"onResize\", \"maxRows\", \"onChange\", \"style\", \"innerRef\"]), lineHeight = _a.state.lineHeight, saveDOMNodeRef = _a.saveDOMNodeRef;\n            var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;\n            return __assign({}, props, { saveDOMNodeRef: saveDOMNodeRef, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, onChange: _this.onChange });\n        };\n        return _this;\n    }\n    TextareaAutosize.prototype.componentDidMount = function () {\n        var _this = this;\n        var _a = this.props, onResize = _a.onResize, maxRows = _a.maxRows;\n        if (typeof maxRows === 'number') {\n            this.updateLineHeight();\n        }\n        /*\n          the defer is needed to:\n            - force \"autosize\" to activate the scrollbar when this.props.maxRows is passed\n            - support StyledComponents (see #71)\n        */\n        setTimeout(function () { return autosize(_this.textarea); });\n        if (onResize) {\n            this.textarea.addEventListener(RESIZED, onResize);\n        }\n    };\n    TextareaAutosize.prototype.componentWillUnmount = function () {\n        var onResize = this.props.onResize;\n        if (onResize) {\n            this.textarea.removeEventListener(RESIZED, onResize);\n        }\n        this.dispatchEvent(DESTROY);\n    };\n    TextareaAutosize.prototype.render = function () {\n        var _a = this.getLocals(), children = _a.children, saveDOMNodeRef = _a.saveDOMNodeRef, locals = __rest(_a, [\"children\", \"saveDOMNodeRef\"]);\n        return (React.createElement(\"textarea\", __assign({}, locals, { ref: saveDOMNodeRef }), children));\n    };\n    TextareaAutosize.prototype.componentDidUpdate = function (prevProps) {\n        if (this.props.value !== this.currentValue || this.props.rows !== prevProps.rows) {\n            this.dispatchEvent(UPDATE);\n        }\n    };\n    TextareaAutosize.defaultProps = {\n        rows: 1\n    };\n    TextareaAutosize.propTypes = {\n        rows: PropTypes.number,\n        maxRows: PropTypes.number,\n        onResize: PropTypes.func,\n        innerRef: PropTypes.func\n    };\n    return TextareaAutosize;\n}(React.Component));\nexports[\"default\"] = TextareaAutosize;\n\n\n/***/ }),\n\n/***/ 168:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\tautosize 4.0.2\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else { var mod; }\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});\n\n/***/ }),\n\n/***/ 169:\n/***/ (function(module, exports, __webpack_require__) {\n\n// Load in dependencies\nvar computedStyle = __webpack_require__(170);\n\n/**\n * Calculate the `line-height` of a given node\n * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.\n * @returns {Number} `line-height` of the element in pixels\n */\nfunction lineHeight(node) {\n  // Grab the line-height via style\n  var lnHeightStr = computedStyle(node, 'line-height');\n  var lnHeight = parseFloat(lnHeightStr, 10);\n\n  // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')\n  if (lnHeightStr === lnHeight + '') {\n    // Save the old lineHeight style and update the em unit to the element\n    var _lnHeightStyle = node.style.lineHeight;\n    node.style.lineHeight = lnHeightStr + 'em';\n\n    // Calculate the em based height\n    lnHeightStr = computedStyle(node, 'line-height');\n    lnHeight = parseFloat(lnHeightStr, 10);\n\n    // Revert the lineHeight style\n    if (_lnHeightStyle) {\n      node.style.lineHeight = _lnHeightStyle;\n    } else {\n      delete node.style.lineHeight;\n    }\n  }\n\n  // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)\n  // DEV: `em` units are converted to `pt` in IE6\n  // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length\n  if (lnHeightStr.indexOf('pt') !== -1) {\n    lnHeight *= 4;\n    lnHeight /= 3;\n  // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)\n  } else if (lnHeightStr.indexOf('mm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 25.4;\n  // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)\n  } else if (lnHeightStr.indexOf('cm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 2.54;\n  // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)\n  } else if (lnHeightStr.indexOf('in') !== -1) {\n    lnHeight *= 96;\n  // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)\n  } else if (lnHeightStr.indexOf('pc') !== -1) {\n    lnHeight *= 16;\n  }\n\n  // Continue our computation\n  lnHeight = Math.round(lnHeight);\n\n  // If the line-height is \"normal\", calculate by font-size\n  if (lnHeightStr === 'normal') {\n    // Create a temporary node\n    var nodeName = node.nodeName;\n    var _node = document.createElement(nodeName);\n    _node.innerHTML = '&nbsp;';\n\n    // If we have a text area, reset it to only 1 row\n    // https://github.com/twolfson/line-height/issues/4\n    if (nodeName.toUpperCase() === 'TEXTAREA') {\n      _node.setAttribute('rows', '1');\n    }\n\n    // Set the font-size of the element\n    var fontSizeStr = computedStyle(node, 'font-size');\n    _node.style.fontSize = fontSizeStr;\n\n    // Remove default padding/border which can affect offset height\n    // https://github.com/twolfson/line-height/issues/4\n    // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n    _node.style.padding = '0px';\n    _node.style.border = '0px';\n\n    // Append it to the body\n    var body = document.body;\n    body.appendChild(_node);\n\n    // Assume the line height of the element is the height\n    var height = _node.offsetHeight;\n    lnHeight = height;\n\n    // Remove our child from the DOM\n    body.removeChild(_node);\n  }\n\n  // Return the calculated height\n  return lnHeight;\n}\n\n// Export lineHeight\nmodule.exports = lineHeight;\n\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 170:\n/***/ (function(module, exports) {\n\n// This code has been refactored for 140 bytes\n// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js\nvar computedStyle = function (el, prop, getComputedStyle) {\n  getComputedStyle = window.getComputedStyle;\n\n  // In one fell swoop\n  return (\n    // If we have getComputedStyle\n    getComputedStyle ?\n      // Query it\n      // TODO: From CSS-Query notes, we might need (node, null) for FF\n      getComputedStyle(el) :\n\n    // Otherwise, we are in IE and use currentStyle\n      el.currentStyle\n  )[\n    // Switch to camelCase for CSSOM\n    // DEV: Grabbed from jQuery\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n    prop.replace(/-(\\w)/gi, function (word, letter) {\n      return letter.toUpperCase();\n    })\n  ];\n};\n\nmodule.exports = computedStyle;\n\n\n/***/ }),\n\n/***/ 171:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar closeSmall = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.9l3.3-3.4-1.1-1-3.2 3.3-3.2-3.3-1.1 1 3.3 3.4-3.5 3.6 1 1L12 13l3.5 3.5 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (closeSmall);\n\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 196:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar blockDefault = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (blockDefault);\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 28:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (false) { var throwOnDirectAccess, ReactIs; } else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = __webpack_require__(132)();\n}\n\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 294:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar layout = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M2 2h5v11H2V2zm6 0h5v5H8V2zm6 0h4v16h-4V2zM8 8h5v5H8V8zm-6 6h11v4H2v-4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (layout);\n\n\n/***/ }),\n\n/***/ 298:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar grid = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M9 9V3H3v6h6zm8 0V3h-6v6h6zm-8 8v-6H3v6h6zm8 0v-6h-6v6h6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (grid);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dataControls\"]; }());\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 417:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar BEGIN = 'BEGIN';\nvar COMMIT = 'COMMIT';\nvar REVERT = 'REVERT';\n// Array({transactionID: string or null, beforeState: {object}, action: {object}}\nvar INITIAL_OPTIMIST = [];\n\nmodule.exports = optimist;\nmodule.exports.BEGIN = BEGIN;\nmodule.exports.COMMIT = COMMIT;\nmodule.exports.REVERT = REVERT;\nfunction optimist(fn) {\n  function beginReducer(state, action) {\n    var _separateState = separateState(state);\n\n    var optimist = _separateState.optimist;\n    var innerState = _separateState.innerState;\n\n    optimist = optimist.concat([{ beforeState: innerState, action: action }]);\n    innerState = fn(innerState, action);\n    validateState(innerState, action);\n    return _extends({ optimist: optimist }, innerState);\n  }\n  function commitReducer(state, action) {\n    var _separateState2 = separateState(state);\n\n    var optimist = _separateState2.optimist;\n    var innerState = _separateState2.innerState;\n\n    var newOptimist = [],\n        started = false,\n        committed = false;\n    optimist.forEach(function (entry) {\n      if (started) {\n        if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {\n          committed = true;\n          newOptimist.push({ action: entry.action });\n        } else {\n          newOptimist.push(entry);\n        }\n      } else if (entry.beforeState && !matchesTransaction(entry.action, action.optimist.id)) {\n        started = true;\n        newOptimist.push(entry);\n      } else if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {\n        committed = true;\n      }\n    });\n    if (!committed) {\n      console.error('Cannot commit transaction with id \"' + action.optimist.id + '\" because it does not exist');\n    }\n    optimist = newOptimist;\n    return baseReducer(optimist, innerState, action);\n  }\n  function revertReducer(state, action) {\n    var _separateState3 = separateState(state);\n\n    var optimist = _separateState3.optimist;\n    var innerState = _separateState3.innerState;\n\n    var newOptimist = [],\n        started = false,\n        gotInitialState = false,\n        currentState = innerState;\n    optimist.forEach(function (entry) {\n      if (entry.beforeState && matchesTransaction(entry.action, action.optimist.id)) {\n        currentState = entry.beforeState;\n        gotInitialState = true;\n      }\n      if (!matchesTransaction(entry.action, action.optimist.id)) {\n        if (entry.beforeState) {\n          started = true;\n        }\n        if (started) {\n          if (gotInitialState && entry.beforeState) {\n            newOptimist.push({\n              beforeState: currentState,\n              action: entry.action\n            });\n          } else {\n            newOptimist.push(entry);\n          }\n        }\n        if (gotInitialState) {\n          currentState = fn(currentState, entry.action);\n          validateState(innerState, action);\n        }\n      }\n    });\n    if (!gotInitialState) {\n      console.error('Cannot revert transaction with id \"' + action.optimist.id + '\" because it does not exist');\n    }\n    optimist = newOptimist;\n    return baseReducer(optimist, currentState, action);\n  }\n  function baseReducer(optimist, innerState, action) {\n    if (optimist.length) {\n      optimist = optimist.concat([{ action: action }]);\n    }\n    innerState = fn(innerState, action);\n    validateState(innerState, action);\n    return _extends({ optimist: optimist }, innerState);\n  }\n  return function (state, action) {\n    if (action.optimist) {\n      switch (action.optimist.type) {\n        case BEGIN:\n          return beginReducer(state, action);\n        case COMMIT:\n          return commitReducer(state, action);\n        case REVERT:\n          return revertReducer(state, action);\n      }\n    }\n\n    var _separateState4 = separateState(state);\n\n    var optimist = _separateState4.optimist;\n    var innerState = _separateState4.innerState;\n\n    if (state && !optimist.length) {\n      var nextState = fn(innerState, action);\n      if (nextState === innerState) {\n        return state;\n      }\n      validateState(nextState, action);\n      return _extends({ optimist: optimist }, nextState);\n    }\n    return baseReducer(optimist, innerState, action);\n  };\n}\n\nfunction matchesTransaction(action, id) {\n  return action.optimist && action.optimist.id === id;\n}\n\nfunction validateState(newState, action) {\n  if (!newState || typeof newState !== 'object' || Array.isArray(newState)) {\n    throw new TypeError('Error while handling \"' + action.type + '\": Optimist requires that state is always a plain object.');\n  }\n}\n\nfunction separateState(state) {\n  if (!state) {\n    return { optimist: INITIAL_OPTIMIST, innerState: state };\n  } else {\n    var _state$optimist = state.optimist;\n\n    var _optimist = _state$optimist === undefined ? INITIAL_OPTIMIST : _state$optimist;\n\n    var innerState = _objectWithoutProperties(state, ['optimist']);\n\n    return { optimist: _optimist, innerState: innerState };\n  }\n}\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 434:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"userAutocompleter\", function() { return /* reexport */ autocompleters_user; });\n__webpack_require__.d(__webpack_exports__, \"AutosaveMonitor\", function() { return /* reexport */ autosave_monitor; });\n__webpack_require__.d(__webpack_exports__, \"DocumentOutline\", function() { return /* reexport */ document_outline; });\n__webpack_require__.d(__webpack_exports__, \"DocumentOutlineCheck\", function() { return /* reexport */ check; });\n__webpack_require__.d(__webpack_exports__, \"VisualEditorGlobalKeyboardShortcuts\", function() { return /* reexport */ visual_editor_shortcuts; });\n__webpack_require__.d(__webpack_exports__, \"EditorGlobalKeyboardShortcuts\", function() { return /* reexport */ EditorGlobalKeyboardShortcuts; });\n__webpack_require__.d(__webpack_exports__, \"TextEditorGlobalKeyboardShortcuts\", function() { return /* reexport */ TextEditorGlobalKeyboardShortcuts; });\n__webpack_require__.d(__webpack_exports__, \"EditorKeyboardShortcutsRegister\", function() { return /* reexport */ register_shortcuts; });\n__webpack_require__.d(__webpack_exports__, \"EditorHistoryRedo\", function() { return /* reexport */ editor_history_redo; });\n__webpack_require__.d(__webpack_exports__, \"EditorHistoryUndo\", function() { return /* reexport */ editor_history_undo; });\n__webpack_require__.d(__webpack_exports__, \"EditorNotices\", function() { return /* reexport */ editor_notices; });\n__webpack_require__.d(__webpack_exports__, \"EntitiesSavedStates\", function() { return /* reexport */ EntitiesSavedStates; });\n__webpack_require__.d(__webpack_exports__, \"ErrorBoundary\", function() { return /* reexport */ error_boundary; });\n__webpack_require__.d(__webpack_exports__, \"LocalAutosaveMonitor\", function() { return /* reexport */ local_autosave_monitor; });\n__webpack_require__.d(__webpack_exports__, \"PageAttributesCheck\", function() { return /* reexport */ page_attributes_check; });\n__webpack_require__.d(__webpack_exports__, \"PageAttributesOrder\", function() { return /* reexport */ page_attributes_order; });\n__webpack_require__.d(__webpack_exports__, \"PageAttributesParent\", function() { return /* reexport */ page_attributes_parent; });\n__webpack_require__.d(__webpack_exports__, \"PageTemplate\", function() { return /* reexport */ page_attributes_template; });\n__webpack_require__.d(__webpack_exports__, \"PostAuthor\", function() { return /* reexport */ post_author; });\n__webpack_require__.d(__webpack_exports__, \"PostAuthorCheck\", function() { return /* reexport */ post_author_check; });\n__webpack_require__.d(__webpack_exports__, \"PostComments\", function() { return /* reexport */ post_comments; });\n__webpack_require__.d(__webpack_exports__, \"PostExcerpt\", function() { return /* reexport */ post_excerpt; });\n__webpack_require__.d(__webpack_exports__, \"PostExcerptCheck\", function() { return /* reexport */ post_excerpt_check; });\n__webpack_require__.d(__webpack_exports__, \"PostFeaturedImage\", function() { return /* reexport */ post_featured_image; });\n__webpack_require__.d(__webpack_exports__, \"PostFeaturedImageCheck\", function() { return /* reexport */ post_featured_image_check; });\n__webpack_require__.d(__webpack_exports__, \"PostFormat\", function() { return /* reexport */ post_format; });\n__webpack_require__.d(__webpack_exports__, \"PostFormatCheck\", function() { return /* reexport */ post_format_check; });\n__webpack_require__.d(__webpack_exports__, \"PostLastRevision\", function() { return /* reexport */ post_last_revision; });\n__webpack_require__.d(__webpack_exports__, \"PostLastRevisionCheck\", function() { return /* reexport */ post_last_revision_check; });\n__webpack_require__.d(__webpack_exports__, \"PostLockedModal\", function() { return /* reexport */ post_locked_modal; });\n__webpack_require__.d(__webpack_exports__, \"PostPendingStatus\", function() { return /* reexport */ post_pending_status; });\n__webpack_require__.d(__webpack_exports__, \"PostPendingStatusCheck\", function() { return /* reexport */ post_pending_status_check; });\n__webpack_require__.d(__webpack_exports__, \"PostPingbacks\", function() { return /* reexport */ post_pingbacks; });\n__webpack_require__.d(__webpack_exports__, \"PostPreviewButton\", function() { return /* reexport */ post_preview_button; });\n__webpack_require__.d(__webpack_exports__, \"PostPublishButton\", function() { return /* reexport */ post_publish_button; });\n__webpack_require__.d(__webpack_exports__, \"PostPublishButtonLabel\", function() { return /* reexport */ post_publish_button_label; });\n__webpack_require__.d(__webpack_exports__, \"PostPublishPanel\", function() { return /* reexport */ post_publish_panel; });\n__webpack_require__.d(__webpack_exports__, \"PostSavedState\", function() { return /* reexport */ post_saved_state; });\n__webpack_require__.d(__webpack_exports__, \"PostSchedule\", function() { return /* reexport */ post_schedule; });\n__webpack_require__.d(__webpack_exports__, \"PostScheduleCheck\", function() { return /* reexport */ post_schedule_check; });\n__webpack_require__.d(__webpack_exports__, \"PostScheduleLabel\", function() { return /* reexport */ post_schedule_label; });\n__webpack_require__.d(__webpack_exports__, \"PostSlug\", function() { return /* reexport */ post_slug; });\n__webpack_require__.d(__webpack_exports__, \"PostSlugCheck\", function() { return /* reexport */ PostSlugCheck; });\n__webpack_require__.d(__webpack_exports__, \"PostSticky\", function() { return /* reexport */ post_sticky; });\n__webpack_require__.d(__webpack_exports__, \"PostStickyCheck\", function() { return /* reexport */ post_sticky_check; });\n__webpack_require__.d(__webpack_exports__, \"PostSwitchToDraftButton\", function() { return /* reexport */ post_switch_to_draft_button; });\n__webpack_require__.d(__webpack_exports__, \"PostTaxonomies\", function() { return /* reexport */ post_taxonomies; });\n__webpack_require__.d(__webpack_exports__, \"PostTaxonomiesCheck\", function() { return /* reexport */ post_taxonomies_check; });\n__webpack_require__.d(__webpack_exports__, \"PostTextEditor\", function() { return /* reexport */ post_text_editor; });\n__webpack_require__.d(__webpack_exports__, \"PostTitle\", function() { return /* reexport */ post_title; });\n__webpack_require__.d(__webpack_exports__, \"PostTrash\", function() { return /* reexport */ post_trash; });\n__webpack_require__.d(__webpack_exports__, \"PostTrashCheck\", function() { return /* reexport */ post_trash_check; });\n__webpack_require__.d(__webpack_exports__, \"PostTypeSupportCheck\", function() { return /* reexport */ post_type_support_check; });\n__webpack_require__.d(__webpack_exports__, \"PostVisibility\", function() { return /* reexport */ post_visibility; });\n__webpack_require__.d(__webpack_exports__, \"PostVisibilityLabel\", function() { return /* reexport */ post_visibility_label; });\n__webpack_require__.d(__webpack_exports__, \"PostVisibilityCheck\", function() { return /* reexport */ post_visibility_check; });\n__webpack_require__.d(__webpack_exports__, \"TableOfContents\", function() { return /* reexport */ table_of_contents; });\n__webpack_require__.d(__webpack_exports__, \"UnsavedChangesWarning\", function() { return /* reexport */ unsaved_changes_warning; });\n__webpack_require__.d(__webpack_exports__, \"WordCount\", function() { return /* reexport */ word_count; });\n__webpack_require__.d(__webpack_exports__, \"EditorProvider\", function() { return /* reexport */ provider; });\n__webpack_require__.d(__webpack_exports__, \"ServerSideRender\", function() { return /* reexport */ external_this_wp_serverSideRender_default.a; });\n__webpack_require__.d(__webpack_exports__, \"RichText\", function() { return /* reexport */ RichText; });\n__webpack_require__.d(__webpack_exports__, \"Autocomplete\", function() { return /* reexport */ Autocomplete; });\n__webpack_require__.d(__webpack_exports__, \"AlignmentToolbar\", function() { return /* reexport */ AlignmentToolbar; });\n__webpack_require__.d(__webpack_exports__, \"BlockAlignmentToolbar\", function() { return /* reexport */ BlockAlignmentToolbar; });\n__webpack_require__.d(__webpack_exports__, \"BlockControls\", function() { return /* reexport */ BlockControls; });\n__webpack_require__.d(__webpack_exports__, \"BlockEdit\", function() { return /* reexport */ deprecated_BlockEdit; });\n__webpack_require__.d(__webpack_exports__, \"BlockEditorKeyboardShortcuts\", function() { return /* reexport */ BlockEditorKeyboardShortcuts; });\n__webpack_require__.d(__webpack_exports__, \"BlockFormatControls\", function() { return /* reexport */ BlockFormatControls; });\n__webpack_require__.d(__webpack_exports__, \"BlockIcon\", function() { return /* reexport */ BlockIcon; });\n__webpack_require__.d(__webpack_exports__, \"BlockInspector\", function() { return /* reexport */ BlockInspector; });\n__webpack_require__.d(__webpack_exports__, \"BlockList\", function() { return /* reexport */ BlockList; });\n__webpack_require__.d(__webpack_exports__, \"BlockMover\", function() { return /* reexport */ BlockMover; });\n__webpack_require__.d(__webpack_exports__, \"BlockNavigationDropdown\", function() { return /* reexport */ BlockNavigationDropdown; });\n__webpack_require__.d(__webpack_exports__, \"BlockSelectionClearer\", function() { return /* reexport */ BlockSelectionClearer; });\n__webpack_require__.d(__webpack_exports__, \"BlockSettingsMenu\", function() { return /* reexport */ BlockSettingsMenu; });\n__webpack_require__.d(__webpack_exports__, \"BlockTitle\", function() { return /* reexport */ BlockTitle; });\n__webpack_require__.d(__webpack_exports__, \"BlockToolbar\", function() { return /* reexport */ BlockToolbar; });\n__webpack_require__.d(__webpack_exports__, \"ColorPalette\", function() { return /* reexport */ ColorPalette; });\n__webpack_require__.d(__webpack_exports__, \"ContrastChecker\", function() { return /* reexport */ ContrastChecker; });\n__webpack_require__.d(__webpack_exports__, \"CopyHandler\", function() { return /* reexport */ CopyHandler; });\n__webpack_require__.d(__webpack_exports__, \"DefaultBlockAppender\", function() { return /* reexport */ DefaultBlockAppender; });\n__webpack_require__.d(__webpack_exports__, \"FontSizePicker\", function() { return /* reexport */ FontSizePicker; });\n__webpack_require__.d(__webpack_exports__, \"Inserter\", function() { return /* reexport */ Inserter; });\n__webpack_require__.d(__webpack_exports__, \"InnerBlocks\", function() { return /* reexport */ InnerBlocks; });\n__webpack_require__.d(__webpack_exports__, \"InspectorAdvancedControls\", function() { return /* reexport */ InspectorAdvancedControls; });\n__webpack_require__.d(__webpack_exports__, \"InspectorControls\", function() { return /* reexport */ InspectorControls; });\n__webpack_require__.d(__webpack_exports__, \"PanelColorSettings\", function() { return /* reexport */ PanelColorSettings; });\n__webpack_require__.d(__webpack_exports__, \"PlainText\", function() { return /* reexport */ PlainText; });\n__webpack_require__.d(__webpack_exports__, \"RichTextShortcut\", function() { return /* reexport */ RichTextShortcut; });\n__webpack_require__.d(__webpack_exports__, \"RichTextToolbarButton\", function() { return /* reexport */ RichTextToolbarButton; });\n__webpack_require__.d(__webpack_exports__, \"__unstableRichTextInputEvent\", function() { return /* reexport */ __unstableRichTextInputEvent; });\n__webpack_require__.d(__webpack_exports__, \"MediaPlaceholder\", function() { return /* reexport */ MediaPlaceholder; });\n__webpack_require__.d(__webpack_exports__, \"MediaUpload\", function() { return /* reexport */ MediaUpload; });\n__webpack_require__.d(__webpack_exports__, \"MediaUploadCheck\", function() { return /* reexport */ MediaUploadCheck; });\n__webpack_require__.d(__webpack_exports__, \"MultiSelectScrollIntoView\", function() { return /* reexport */ MultiSelectScrollIntoView; });\n__webpack_require__.d(__webpack_exports__, \"NavigableToolbar\", function() { return /* reexport */ NavigableToolbar; });\n__webpack_require__.d(__webpack_exports__, \"ObserveTyping\", function() { return /* reexport */ ObserveTyping; });\n__webpack_require__.d(__webpack_exports__, \"PreserveScrollInReorder\", function() { return /* reexport */ PreserveScrollInReorder; });\n__webpack_require__.d(__webpack_exports__, \"SkipToSelectedBlock\", function() { return /* reexport */ SkipToSelectedBlock; });\n__webpack_require__.d(__webpack_exports__, \"URLInput\", function() { return /* reexport */ URLInput; });\n__webpack_require__.d(__webpack_exports__, \"URLInputButton\", function() { return /* reexport */ URLInputButton; });\n__webpack_require__.d(__webpack_exports__, \"URLPopover\", function() { return /* reexport */ URLPopover; });\n__webpack_require__.d(__webpack_exports__, \"Warning\", function() { return /* reexport */ Warning; });\n__webpack_require__.d(__webpack_exports__, \"WritingFlow\", function() { return /* reexport */ WritingFlow; });\n__webpack_require__.d(__webpack_exports__, \"createCustomColorsHOC\", function() { return /* reexport */ createCustomColorsHOC; });\n__webpack_require__.d(__webpack_exports__, \"getColorClassName\", function() { return /* reexport */ getColorClassName; });\n__webpack_require__.d(__webpack_exports__, \"getColorObjectByAttributeValues\", function() { return /* reexport */ getColorObjectByAttributeValues; });\n__webpack_require__.d(__webpack_exports__, \"getColorObjectByColorValue\", function() { return /* reexport */ getColorObjectByColorValue; });\n__webpack_require__.d(__webpack_exports__, \"getFontSize\", function() { return /* reexport */ getFontSize; });\n__webpack_require__.d(__webpack_exports__, \"getFontSizeClass\", function() { return /* reexport */ getFontSizeClass; });\n__webpack_require__.d(__webpack_exports__, \"withColorContext\", function() { return /* reexport */ withColorContext; });\n__webpack_require__.d(__webpack_exports__, \"withColors\", function() { return /* reexport */ withColors; });\n__webpack_require__.d(__webpack_exports__, \"withFontSizes\", function() { return /* reexport */ withFontSizes; });\n__webpack_require__.d(__webpack_exports__, \"mediaUpload\", function() { return /* reexport */ mediaUpload; });\n__webpack_require__.d(__webpack_exports__, \"cleanForSlug\", function() { return /* reexport */ cleanForSlug; });\n__webpack_require__.d(__webpack_exports__, \"storeConfig\", function() { return /* reexport */ storeConfig; });\n__webpack_require__.d(__webpack_exports__, \"transformStyles\", function() { return /* reexport */ external_this_wp_blockEditor_[\"transformStyles\"]; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"setupEditor\", function() { return setupEditor; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalTearDownEditor\", function() { return __experimentalTearDownEditor; });\n__webpack_require__.d(actions_namespaceObject, \"resetPost\", function() { return resetPost; });\n__webpack_require__.d(actions_namespaceObject, \"resetAutosave\", function() { return resetAutosave; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalRequestPostUpdateStart\", function() { return __experimentalRequestPostUpdateStart; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalRequestPostUpdateFinish\", function() { return __experimentalRequestPostUpdateFinish; });\n__webpack_require__.d(actions_namespaceObject, \"updatePost\", function() { return updatePost; });\n__webpack_require__.d(actions_namespaceObject, \"setupEditorState\", function() { return setupEditorState; });\n__webpack_require__.d(actions_namespaceObject, \"editPost\", function() { return actions_editPost; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalOptimisticUpdatePost\", function() { return __experimentalOptimisticUpdatePost; });\n__webpack_require__.d(actions_namespaceObject, \"savePost\", function() { return actions_savePost; });\n__webpack_require__.d(actions_namespaceObject, \"refreshPost\", function() { return refreshPost; });\n__webpack_require__.d(actions_namespaceObject, \"trashPost\", function() { return trashPost; });\n__webpack_require__.d(actions_namespaceObject, \"autosave\", function() { return actions_autosave; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalLocalAutosave\", function() { return actions_experimentalLocalAutosave; });\n__webpack_require__.d(actions_namespaceObject, \"redo\", function() { return actions_redo; });\n__webpack_require__.d(actions_namespaceObject, \"undo\", function() { return actions_undo; });\n__webpack_require__.d(actions_namespaceObject, \"createUndoLevel\", function() { return createUndoLevel; });\n__webpack_require__.d(actions_namespaceObject, \"updatePostLock\", function() { return updatePostLock; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalFetchReusableBlocks\", function() { return actions_experimentalFetchReusableBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalReceiveReusableBlocks\", function() { return __experimentalReceiveReusableBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalSaveReusableBlock\", function() { return __experimentalSaveReusableBlock; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalDeleteReusableBlock\", function() { return __experimentalDeleteReusableBlock; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalUpdateReusableBlock\", function() { return __experimentalUpdateReusableBlock; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalConvertBlockToStatic\", function() { return __experimentalConvertBlockToStatic; });\n__webpack_require__.d(actions_namespaceObject, \"__experimentalConvertBlockToReusable\", function() { return __experimentalConvertBlockToReusable; });\n__webpack_require__.d(actions_namespaceObject, \"enablePublishSidebar\", function() { return enablePublishSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"disablePublishSidebar\", function() { return disablePublishSidebar; });\n__webpack_require__.d(actions_namespaceObject, \"lockPostSaving\", function() { return lockPostSaving; });\n__webpack_require__.d(actions_namespaceObject, \"unlockPostSaving\", function() { return unlockPostSaving; });\n__webpack_require__.d(actions_namespaceObject, \"lockPostAutosaving\", function() { return lockPostAutosaving; });\n__webpack_require__.d(actions_namespaceObject, \"unlockPostAutosaving\", function() { return unlockPostAutosaving; });\n__webpack_require__.d(actions_namespaceObject, \"resetEditorBlocks\", function() { return actions_resetEditorBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"updateEditorSettings\", function() { return updateEditorSettings; });\n__webpack_require__.d(actions_namespaceObject, \"resetBlocks\", function() { return resetBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"receiveBlocks\", function() { return receiveBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlock\", function() { return updateBlock; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlockAttributes\", function() { return updateBlockAttributes; });\n__webpack_require__.d(actions_namespaceObject, \"selectBlock\", function() { return actions_selectBlock; });\n__webpack_require__.d(actions_namespaceObject, \"startMultiSelect\", function() { return startMultiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"stopMultiSelect\", function() { return stopMultiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"multiSelect\", function() { return multiSelect; });\n__webpack_require__.d(actions_namespaceObject, \"clearSelectedBlock\", function() { return clearSelectedBlock; });\n__webpack_require__.d(actions_namespaceObject, \"toggleSelection\", function() { return toggleSelection; });\n__webpack_require__.d(actions_namespaceObject, \"replaceBlocks\", function() { return actions_replaceBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"replaceBlock\", function() { return replaceBlock; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlocksDown\", function() { return moveBlocksDown; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlocksUp\", function() { return moveBlocksUp; });\n__webpack_require__.d(actions_namespaceObject, \"moveBlockToPosition\", function() { return moveBlockToPosition; });\n__webpack_require__.d(actions_namespaceObject, \"insertBlock\", function() { return insertBlock; });\n__webpack_require__.d(actions_namespaceObject, \"insertBlocks\", function() { return insertBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"showInsertionPoint\", function() { return showInsertionPoint; });\n__webpack_require__.d(actions_namespaceObject, \"hideInsertionPoint\", function() { return hideInsertionPoint; });\n__webpack_require__.d(actions_namespaceObject, \"setTemplateValidity\", function() { return setTemplateValidity; });\n__webpack_require__.d(actions_namespaceObject, \"synchronizeTemplate\", function() { return synchronizeTemplate; });\n__webpack_require__.d(actions_namespaceObject, \"mergeBlocks\", function() { return mergeBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlocks\", function() { return removeBlocks; });\n__webpack_require__.d(actions_namespaceObject, \"removeBlock\", function() { return removeBlock; });\n__webpack_require__.d(actions_namespaceObject, \"toggleBlockMode\", function() { return toggleBlockMode; });\n__webpack_require__.d(actions_namespaceObject, \"startTyping\", function() { return startTyping; });\n__webpack_require__.d(actions_namespaceObject, \"stopTyping\", function() { return stopTyping; });\n__webpack_require__.d(actions_namespaceObject, \"enterFormattedText\", function() { return enterFormattedText; });\n__webpack_require__.d(actions_namespaceObject, \"exitFormattedText\", function() { return exitFormattedText; });\n__webpack_require__.d(actions_namespaceObject, \"insertDefaultBlock\", function() { return insertDefaultBlock; });\n__webpack_require__.d(actions_namespaceObject, \"updateBlockListSettings\", function() { return updateBlockListSettings; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"hasEditorUndo\", function() { return hasEditorUndo; });\n__webpack_require__.d(selectors_namespaceObject, \"hasEditorRedo\", function() { return hasEditorRedo; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostNew\", function() { return isEditedPostNew; });\n__webpack_require__.d(selectors_namespaceObject, \"hasChangedContent\", function() { return hasChangedContent; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostDirty\", function() { return selectors_isEditedPostDirty; });\n__webpack_require__.d(selectors_namespaceObject, \"hasNonPostEntityChanges\", function() { return selectors_hasNonPostEntityChanges; });\n__webpack_require__.d(selectors_namespaceObject, \"isCleanNewPost\", function() { return selectors_isCleanNewPost; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPost\", function() { return selectors_getCurrentPost; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPostType\", function() { return selectors_getCurrentPostType; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPostId\", function() { return selectors_getCurrentPostId; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPostRevisionsCount\", function() { return getCurrentPostRevisionsCount; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPostLastRevisionId\", function() { return getCurrentPostLastRevisionId; });\n__webpack_require__.d(selectors_namespaceObject, \"getPostEdits\", function() { return getPostEdits; });\n__webpack_require__.d(selectors_namespaceObject, \"getReferenceByDistinctEdits\", function() { return getReferenceByDistinctEdits; });\n__webpack_require__.d(selectors_namespaceObject, \"getCurrentPostAttribute\", function() { return selectors_getCurrentPostAttribute; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditedPostAttribute\", function() { return selectors_getEditedPostAttribute; });\n__webpack_require__.d(selectors_namespaceObject, \"getAutosaveAttribute\", function() { return getAutosaveAttribute; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditedPostVisibility\", function() { return selectors_getEditedPostVisibility; });\n__webpack_require__.d(selectors_namespaceObject, \"isCurrentPostPending\", function() { return isCurrentPostPending; });\n__webpack_require__.d(selectors_namespaceObject, \"isCurrentPostPublished\", function() { return selectors_isCurrentPostPublished; });\n__webpack_require__.d(selectors_namespaceObject, \"isCurrentPostScheduled\", function() { return selectors_isCurrentPostScheduled; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostPublishable\", function() { return selectors_isEditedPostPublishable; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostSaveable\", function() { return selectors_isEditedPostSaveable; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostEmpty\", function() { return isEditedPostEmpty; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostAutosaveable\", function() { return selectors_isEditedPostAutosaveable; });\n__webpack_require__.d(selectors_namespaceObject, \"getAutosave\", function() { return getAutosave; });\n__webpack_require__.d(selectors_namespaceObject, \"hasAutosave\", function() { return hasAutosave; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostBeingScheduled\", function() { return selectors_isEditedPostBeingScheduled; });\n__webpack_require__.d(selectors_namespaceObject, \"isEditedPostDateFloating\", function() { return isEditedPostDateFloating; });\n__webpack_require__.d(selectors_namespaceObject, \"isSavingPost\", function() { return selectors_isSavingPost; });\n__webpack_require__.d(selectors_namespaceObject, \"didPostSaveRequestSucceed\", function() { return didPostSaveRequestSucceed; });\n__webpack_require__.d(selectors_namespaceObject, \"didPostSaveRequestFail\", function() { return didPostSaveRequestFail; });\n__webpack_require__.d(selectors_namespaceObject, \"isAutosavingPost\", function() { return selectors_isAutosavingPost; });\n__webpack_require__.d(selectors_namespaceObject, \"isPreviewingPost\", function() { return isPreviewingPost; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditedPostPreviewLink\", function() { return selectors_getEditedPostPreviewLink; });\n__webpack_require__.d(selectors_namespaceObject, \"getSuggestedPostFormat\", function() { return selectors_getSuggestedPostFormat; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlocksForSerialization\", function() { return getBlocksForSerialization; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditedPostContent\", function() { return getEditedPostContent; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetReusableBlock\", function() { return __experimentalGetReusableBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalIsSavingReusableBlock\", function() { return __experimentalIsSavingReusableBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalIsFetchingReusableBlock\", function() { return __experimentalIsFetchingReusableBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"__experimentalGetReusableBlocks\", function() { return selectors_experimentalGetReusableBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getStateBeforeOptimisticTransaction\", function() { return getStateBeforeOptimisticTransaction; });\n__webpack_require__.d(selectors_namespaceObject, \"isPublishingPost\", function() { return selectors_isPublishingPost; });\n__webpack_require__.d(selectors_namespaceObject, \"isPermalinkEditable\", function() { return isPermalinkEditable; });\n__webpack_require__.d(selectors_namespaceObject, \"getPermalink\", function() { return getPermalink; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditedPostSlug\", function() { return getEditedPostSlug; });\n__webpack_require__.d(selectors_namespaceObject, \"getPermalinkParts\", function() { return getPermalinkParts; });\n__webpack_require__.d(selectors_namespaceObject, \"inSomeHistory\", function() { return inSomeHistory; });\n__webpack_require__.d(selectors_namespaceObject, \"isPostLocked\", function() { return isPostLocked; });\n__webpack_require__.d(selectors_namespaceObject, \"isPostSavingLocked\", function() { return selectors_isPostSavingLocked; });\n__webpack_require__.d(selectors_namespaceObject, \"isPostAutosavingLocked\", function() { return isPostAutosavingLocked; });\n__webpack_require__.d(selectors_namespaceObject, \"isPostLockTakeover\", function() { return isPostLockTakeover; });\n__webpack_require__.d(selectors_namespaceObject, \"getPostLockUser\", function() { return getPostLockUser; });\n__webpack_require__.d(selectors_namespaceObject, \"getActivePostLock\", function() { return getActivePostLock; });\n__webpack_require__.d(selectors_namespaceObject, \"canUserUseUnfilteredHTML\", function() { return selectors_canUserUseUnfilteredHTML; });\n__webpack_require__.d(selectors_namespaceObject, \"isPublishSidebarEnabled\", function() { return selectors_isPublishSidebarEnabled; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditorBlocks\", function() { return selectors_getEditorBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditorSelectionStart\", function() { return selectors_getEditorSelectionStart; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditorSelectionEnd\", function() { return selectors_getEditorSelectionEnd; });\n__webpack_require__.d(selectors_namespaceObject, \"__unstableIsEditorReady\", function() { return __unstableIsEditorReady; });\n__webpack_require__.d(selectors_namespaceObject, \"getEditorSettings\", function() { return selectors_getEditorSettings; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockName\", function() { return getBlockName; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockValid\", function() { return isBlockValid; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockAttributes\", function() { return getBlockAttributes; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlock\", function() { return selectors_getBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlocks\", function() { return selectors_getBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"__unstableGetBlockWithoutInnerBlocks\", function() { return __unstableGetBlockWithoutInnerBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getClientIdsOfDescendants\", function() { return getClientIdsOfDescendants; });\n__webpack_require__.d(selectors_namespaceObject, \"getClientIdsWithDescendants\", function() { return getClientIdsWithDescendants; });\n__webpack_require__.d(selectors_namespaceObject, \"getGlobalBlockCount\", function() { return getGlobalBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlocksByClientId\", function() { return selectors_getBlocksByClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockCount\", function() { return getBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockSelectionStart\", function() { return getBlockSelectionStart; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockSelectionEnd\", function() { return getBlockSelectionEnd; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlockCount\", function() { return getSelectedBlockCount; });\n__webpack_require__.d(selectors_namespaceObject, \"hasSelectedBlock\", function() { return hasSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlockClientId\", function() { return getSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlock\", function() { return getSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockRootClientId\", function() { return getBlockRootClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockHierarchyRootClientId\", function() { return getBlockHierarchyRootClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getAdjacentBlockClientId\", function() { return getAdjacentBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getPreviousBlockClientId\", function() { return getPreviousBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getNextBlockClientId\", function() { return getNextBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getSelectedBlocksInitialCaretPosition\", function() { return getSelectedBlocksInitialCaretPosition; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlockClientIds\", function() { return getMultiSelectedBlockClientIds; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocks\", function() { return getMultiSelectedBlocks; });\n__webpack_require__.d(selectors_namespaceObject, \"getFirstMultiSelectedBlockClientId\", function() { return getFirstMultiSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getLastMultiSelectedBlockClientId\", function() { return getLastMultiSelectedBlockClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"isFirstMultiSelectedBlock\", function() { return isFirstMultiSelectedBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockMultiSelected\", function() { return isBlockMultiSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"isAncestorMultiSelected\", function() { return isAncestorMultiSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocksStartClientId\", function() { return getMultiSelectedBlocksStartClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getMultiSelectedBlocksEndClientId\", function() { return getMultiSelectedBlocksEndClientId; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockOrder\", function() { return getBlockOrder; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockIndex\", function() { return getBlockIndex; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockSelected\", function() { return isBlockSelected; });\n__webpack_require__.d(selectors_namespaceObject, \"hasSelectedInnerBlock\", function() { return hasSelectedInnerBlock; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockWithinSelection\", function() { return isBlockWithinSelection; });\n__webpack_require__.d(selectors_namespaceObject, \"hasMultiSelection\", function() { return hasMultiSelection; });\n__webpack_require__.d(selectors_namespaceObject, \"isMultiSelecting\", function() { return isMultiSelecting; });\n__webpack_require__.d(selectors_namespaceObject, \"isSelectionEnabled\", function() { return isSelectionEnabled; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockMode\", function() { return getBlockMode; });\n__webpack_require__.d(selectors_namespaceObject, \"isTyping\", function() { return isTyping; });\n__webpack_require__.d(selectors_namespaceObject, \"isCaretWithinFormattedText\", function() { return isCaretWithinFormattedText; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockInsertionPoint\", function() { return getBlockInsertionPoint; });\n__webpack_require__.d(selectors_namespaceObject, \"isBlockInsertionPointVisible\", function() { return isBlockInsertionPointVisible; });\n__webpack_require__.d(selectors_namespaceObject, \"isValidTemplate\", function() { return isValidTemplate; });\n__webpack_require__.d(selectors_namespaceObject, \"getTemplate\", function() { return getTemplate; });\n__webpack_require__.d(selectors_namespaceObject, \"getTemplateLock\", function() { return getTemplateLock; });\n__webpack_require__.d(selectors_namespaceObject, \"canInsertBlockType\", function() { return selectors_canInsertBlockType; });\n__webpack_require__.d(selectors_namespaceObject, \"getInserterItems\", function() { return getInserterItems; });\n__webpack_require__.d(selectors_namespaceObject, \"hasInserterItems\", function() { return hasInserterItems; });\n__webpack_require__.d(selectors_namespaceObject, \"getBlockListSettings\", function() { return getBlockListSettings; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockEditor\"]}\nvar external_this_wp_blockEditor_ = __webpack_require__(7);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blocks\"]}\nvar external_this_wp_blocks_ = __webpack_require__(10);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"coreData\"]}\nvar external_this_wp_coreData_ = __webpack_require__(89);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keyboardShortcuts\"]}\nvar external_this_wp_keyboardShortcuts_ = __webpack_require__(47);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"notices\"]}\nvar external_this_wp_notices_ = __webpack_require__(92);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"viewport\"]}\nvar external_this_wp_viewport_ = __webpack_require__(72);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dataControls\"]}\nvar external_this_wp_dataControls_ = __webpack_require__(36);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./node_modules/redux-optimist/index.js\nvar redux_optimist = __webpack_require__(129);\nvar redux_optimist_default = /*#__PURE__*/__webpack_require__.n(redux_optimist);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/defaults.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\nvar PREFERENCES_DEFAULTS = {\n  insertUsage: {},\n  // Should be kept for backward compatibility, see: https://github.com/WordPress/gutenberg/issues/14580.\n  isPublishSidebarEnabled: true\n};\n/**\n * The default post editor settings\n *\n *  allowedBlockTypes  boolean|Array Allowed block types\n *  richEditingEnabled boolean       Whether rich editing is enabled or not\n *  codeEditingEnabled boolean       Whether code editing is enabled or not\n *  enableCustomFields boolean       Whether the WordPress custom fields are enabled or not\n *  autosaveInterval   number        Autosave Interval\n *  availableTemplates array?        The available post templates\n *  disablePostFormats boolean       Whether or not the post formats are disabled\n *  allowedMimeTypes   array?        List of allowed mime types and file extensions\n *  maxUploadFileSize  number        Maximum upload file size\n */\n\nvar EDITOR_SETTINGS_DEFAULTS = _objectSpread({}, external_this_wp_blockEditor_[\"SETTINGS_DEFAULTS\"], {\n  richEditingEnabled: true,\n  codeEditingEnabled: true,\n  enableCustomFields: false\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/reducer.js\n\n\n\nfunction reducer_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction reducer_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reducer_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reducer_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Returns a post attribute value, flattening nested rendered content using its\n * raw value in place of its original object form.\n *\n * @param {*} value Original value.\n *\n * @return {*} Raw value.\n */\n\nfunction getPostRawValue(value) {\n  if (value && 'object' === Object(esm_typeof[\"a\" /* default */])(value) && 'raw' in value) {\n    return value.raw;\n  }\n\n  return value;\n}\n/**\n * Returns true if the two object arguments have the same keys, or false\n * otherwise.\n *\n * @param {Object} a First object.\n * @param {Object} b Second object.\n *\n * @return {boolean} Whether the two objects have the same keys.\n */\n\nfunction hasSameKeys(a, b) {\n  return Object(external_this_lodash_[\"isEqual\"])(Object(external_this_lodash_[\"keys\"])(a), Object(external_this_lodash_[\"keys\"])(b));\n}\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are editing the same post property, or\n * false otherwise.\n *\n * @param {Object} action         Currently dispatching action.\n * @param {Object} previousAction Previously dispatched action.\n *\n * @return {boolean} Whether actions are updating the same post property.\n */\n\nfunction isUpdatingSamePostProperty(action, previousAction) {\n  return action.type === 'EDIT_POST' && hasSameKeys(action.edits, previousAction.edits);\n}\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are modifying the same property such that\n * undo history should be batched.\n *\n * @param {Object} action         Currently dispatching action.\n * @param {Object} previousAction Previously dispatched action.\n *\n * @return {boolean} Whether to overwrite present state.\n */\n\nfunction shouldOverwriteState(action, previousAction) {\n  if (action.type === 'RESET_EDITOR_BLOCKS') {\n    return !action.shouldCreateUndoLevel;\n  }\n\n  if (!previousAction || action.type !== previousAction.type) {\n    return false;\n  }\n\n  return isUpdatingSamePostProperty(action, previousAction);\n}\nfunction reducer_postId() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SETUP_EDITOR_STATE':\n    case 'RESET_POST':\n    case 'UPDATE_POST':\n      return action.post.id;\n  }\n\n  return state;\n}\nfunction reducer_postType() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SETUP_EDITOR_STATE':\n    case 'RESET_POST':\n    case 'UPDATE_POST':\n      return action.post.type;\n  }\n\n  return state;\n}\n/**\n * Reducer returning whether the post blocks match the defined template or not.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_template() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n    isValid: true\n  };\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_TEMPLATE_VALIDITY':\n      return reducer_objectSpread({}, state, {\n        isValid: action.isValid\n      });\n  }\n\n  return state;\n}\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object}  state                 Current state.\n * @param {Object}  action                Dispatched action.\n *\n * @return {string} Updated state.\n */\n\nfunction preferences() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PREFERENCES_DEFAULTS;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ENABLE_PUBLISH_SIDEBAR':\n      return reducer_objectSpread({}, state, {\n        isPublishSidebarEnabled: true\n      });\n\n    case 'DISABLE_PUBLISH_SIDEBAR':\n      return reducer_objectSpread({}, state, {\n        isPublishSidebarEnabled: false\n      });\n  }\n\n  return state;\n}\n/**\n * Reducer returning current network request state (whether a request to\n * the WP REST API is in progress, successful, or failed).\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction saving() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'REQUEST_POST_UPDATE_START':\n    case 'REQUEST_POST_UPDATE_FINISH':\n      return {\n        pending: action.type === 'REQUEST_POST_UPDATE_START',\n        options: action.options || {}\n      };\n  }\n\n  return state;\n}\n/**\n * Post Lock State.\n *\n * @typedef {Object} PostLockState\n *\n * @property {boolean} isLocked       Whether the post is locked.\n * @property {?boolean} isTakeover     Whether the post editing has been taken over.\n * @property {?boolean} activePostLock Active post lock value.\n * @property {?Object}  user           User that took over the post.\n */\n\n/**\n * Reducer returning the post lock status.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\n\nfunction postLock() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n    isLocked: false\n  };\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'UPDATE_POST_LOCK':\n      return action.lock;\n  }\n\n  return state;\n}\n/**\n * Post saving lock.\n *\n * When post saving is locked, the post cannot be published or updated.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object}        action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\n\nfunction postSavingLock() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'LOCK_POST_SAVING':\n      return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.lockName, true));\n\n    case 'UNLOCK_POST_SAVING':\n      return Object(external_this_lodash_[\"omit\"])(state, action.lockName);\n  }\n\n  return state;\n}\n/**\n * Post autosaving lock.\n *\n * When post autosaving is locked, the post will not autosave.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object}        action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\n\nfunction postAutosavingLock() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'LOCK_POST_AUTOSAVING':\n      return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.lockName, true));\n\n    case 'UNLOCK_POST_AUTOSAVING':\n      return Object(external_this_lodash_[\"omit\"])(state, action.lockName);\n  }\n\n  return state;\n}\nvar reducer_reusableBlocks = Object(external_this_wp_data_[\"combineReducers\"])({\n  data: function data() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'RECEIVE_REUSABLE_BLOCKS':\n        {\n          return reducer_objectSpread({}, state, {}, Object(external_this_lodash_[\"keyBy\"])(action.results, 'id'));\n        }\n\n      case 'UPDATE_REUSABLE_BLOCK':\n        {\n          var id = action.id,\n              changes = action.changes;\n          return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, id, reducer_objectSpread({}, state[id], {}, changes)));\n        }\n\n      case 'SAVE_REUSABLE_BLOCK_SUCCESS':\n        {\n          var _id = action.id,\n              updatedId = action.updatedId; // If a temporary reusable block is saved, we swap the temporary id with the final one\n\n          if (_id === updatedId) {\n            return state;\n          }\n\n          var value = state[_id];\n          return reducer_objectSpread({}, Object(external_this_lodash_[\"omit\"])(state, _id), Object(defineProperty[\"a\" /* default */])({}, updatedId, reducer_objectSpread({}, value, {\n            id: updatedId\n          })));\n        }\n\n      case 'REMOVE_REUSABLE_BLOCK':\n        {\n          var _id2 = action.id;\n          return Object(external_this_lodash_[\"omit\"])(state, _id2);\n        }\n    }\n\n    return state;\n  },\n  isFetching: function isFetching() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'FETCH_REUSABLE_BLOCKS':\n        {\n          var id = action.id;\n\n          if (!id) {\n            return state;\n          }\n\n          return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, id, true));\n        }\n\n      case 'FETCH_REUSABLE_BLOCKS_SUCCESS':\n      case 'FETCH_REUSABLE_BLOCKS_FAILURE':\n        {\n          var _id3 = action.id;\n          return Object(external_this_lodash_[\"omit\"])(state, _id3);\n        }\n    }\n\n    return state;\n  },\n  isSaving: function isSaving() {\n    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var action = arguments.length > 1 ? arguments[1] : undefined;\n\n    switch (action.type) {\n      case 'SAVE_REUSABLE_BLOCK':\n        return reducer_objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.id, true));\n\n      case 'SAVE_REUSABLE_BLOCK_SUCCESS':\n      case 'SAVE_REUSABLE_BLOCK_FAILURE':\n        {\n          var id = action.id;\n          return Object(external_this_lodash_[\"omit\"])(state, id);\n        }\n    }\n\n    return state;\n  }\n});\n/**\n * Reducer returning whether the editor is ready to be rendered.\n * The editor is considered ready to be rendered once\n * the post object is loaded properly and the initial blocks parsed.\n *\n * @param {boolean} state\n * @param {Object} action\n *\n * @return {boolean} Updated state.\n */\n\nfunction reducer_isReady() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SETUP_EDITOR_STATE':\n      return true;\n\n    case 'TEAR_DOWN_EDITOR':\n      return false;\n  }\n\n  return state;\n}\n/**\n * Reducer returning the post editor setting.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_editorSettings() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EDITOR_SETTINGS_DEFAULTS;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'UPDATE_EDITOR_SETTINGS':\n      return reducer_objectSpread({}, state, {}, action.settings);\n  }\n\n  return state;\n}\n/* harmony default export */ var reducer = (redux_optimist_default()(Object(external_this_wp_data_[\"combineReducers\"])({\n  postId: reducer_postId,\n  postType: reducer_postType,\n  preferences: preferences,\n  saving: saving,\n  postLock: postLock,\n  reusableBlocks: reducer_reusableBlocks,\n  template: reducer_template,\n  postSavingLock: postSavingLock,\n  isReady: reducer_isReady,\n  editorSettings: reducer_editorSettings,\n  postAutosavingLock: postAutosavingLock\n})));\n\n// EXTERNAL MODULE: ./node_modules/refx/refx.js\nvar refx = __webpack_require__(104);\nvar refx_default = /*#__PURE__*/__webpack_require__.n(refx);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/constants.js\n/**\n * Set of post properties for which edits should assume a merging behavior,\n * assuming an object value.\n *\n * @type {Set}\n */\nvar EDIT_MERGE_PROPERTIES = new Set(['meta']);\n/**\n * Constant for the store module (or reducer) key.\n *\n * @type {string}\n */\n\nvar STORE_KEY = 'core/editor';\nvar POST_UPDATE_TRANSACTION_ID = 'post-update';\nvar SAVE_POST_NOTICE_ID = 'SAVE_POST_NOTICE_ID';\nvar TRASH_POST_NOTICE_ID = 'TRASH_POST_NOTICE_ID';\nvar PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;\nvar ONE_MINUTE_IN_MS = 60 * 1000;\nvar AUTOSAVE_PROPERTIES = ['title', 'excerpt', 'content'];\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/utils/notice-builder.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Builds the arguments for a success notification dispatch.\n *\n * @param {Object} data Incoming data to build the arguments from.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n *                 notification should be sent.\n */\n\nfunction getNotificationArgumentsForSaveSuccess(data) {\n  var previousPost = data.previousPost,\n      post = data.post,\n      postType = data.postType; // Autosaves are neither shown a notice nor redirected.\n\n  if (Object(external_this_lodash_[\"get\"])(data.options, ['isAutosave'])) {\n    return [];\n  }\n\n  var publishStatus = ['publish', 'private', 'future'];\n  var isPublished = Object(external_this_lodash_[\"includes\"])(publishStatus, previousPost.status);\n  var willPublish = Object(external_this_lodash_[\"includes\"])(publishStatus, post.status);\n  var noticeMessage;\n  var shouldShowLink = Object(external_this_lodash_[\"get\"])(postType, ['viewable'], false);\n\n  if (!isPublished && !willPublish) {\n    // If saving a non-published post, don't show notice.\n    noticeMessage = null;\n  } else if (isPublished && !willPublish) {\n    // If undoing publish status, show specific notice\n    noticeMessage = postType.labels.item_reverted_to_draft;\n    shouldShowLink = false;\n  } else if (!isPublished && willPublish) {\n    // If publishing or scheduling a post, show the corresponding\n    // publish message\n    noticeMessage = {\n      publish: postType.labels.item_published,\n      private: postType.labels.item_published_privately,\n      future: postType.labels.item_scheduled\n    }[post.status];\n  } else {\n    // Generic fallback notice\n    noticeMessage = postType.labels.item_updated;\n  }\n\n  if (noticeMessage) {\n    var actions = [];\n\n    if (shouldShowLink) {\n      actions.push({\n        label: postType.labels.view_item,\n        url: post.link\n      });\n    }\n\n    return [noticeMessage, {\n      id: SAVE_POST_NOTICE_ID,\n      type: 'snackbar',\n      actions: actions\n    }];\n  }\n\n  return [];\n}\n/**\n * Builds the fail notification arguments for dispatch.\n *\n * @param {Object} data Incoming data to build the arguments with.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n *                 notification should be sent.\n */\n\nfunction getNotificationArgumentsForSaveFail(data) {\n  var post = data.post,\n      edits = data.edits,\n      error = data.error;\n\n  if (error && 'rest_autosave_no_changes' === error.code) {\n    // Autosave requested a new autosave, but there were no changes. This shouldn't\n    // result in an error notice for the user.\n    return [];\n  }\n\n  var publishStatus = ['publish', 'private', 'future'];\n  var isPublished = publishStatus.indexOf(post.status) !== -1; // If the post was being published, we show the corresponding publish error message\n  // Unless we publish an \"updating failed\" message\n\n  var messages = {\n    publish: Object(external_this_wp_i18n_[\"__\"])('Publishing failed.'),\n    private: Object(external_this_wp_i18n_[\"__\"])('Publishing failed.'),\n    future: Object(external_this_wp_i18n_[\"__\"])('Scheduling failed.')\n  };\n  var noticeMessage = !isPublished && publishStatus.indexOf(edits.status) !== -1 ? messages[edits.status] : Object(external_this_wp_i18n_[\"__\"])('Updating failed.'); // Check if message string contains HTML. Notice text is currently only\n  // supported as plaintext, and stripping the tags may muddle the meaning.\n\n  if (error.message && !/<\\/?[^>]*>/.test(error.message)) {\n    noticeMessage = [noticeMessage, error.message].join(' ');\n  }\n\n  return [noticeMessage, {\n    id: SAVE_POST_NOTICE_ID\n  }];\n}\n/**\n * Builds the trash fail notification arguments for dispatch.\n *\n * @param {Object} data\n *\n * @return {Array} Arguments for dispatch.\n */\n\nfunction getNotificationArgumentsForTrashFail(data) {\n  return [data.error.message && data.error.code !== 'unknown_error' ? data.error.message : Object(external_this_wp_i18n_[\"__\"])('Trashing failed'), {\n    id: TRASH_POST_NOTICE_ID\n  }];\n}\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"autop\"]}\nvar external_this_wp_autop_ = __webpack_require__(96);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/utils/serialize-blocks.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Serializes blocks following backwards compatibility conventions.\n *\n * @param {Array} blocksForSerialization The blocks to serialize.\n *\n * @return {string} The blocks serialization.\n */\n\nvar serializeBlocks = memize_default()(function (blocksForSerialization) {\n  // A single unmodified default block is assumed to\n  // be equivalent to an empty post.\n  if (blocksForSerialization.length === 1 && Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])(blocksForSerialization[0])) {\n    blocksForSerialization = [];\n  }\n\n  var content = Object(external_this_wp_blocks_[\"serialize\"])(blocksForSerialization); // For compatibility, treat a post consisting of a\n  // single freeform block as legacy content and apply\n  // pre-block-editor removep'd content formatting.\n\n  if (blocksForSerialization.length === 1 && blocksForSerialization[0].name === Object(external_this_wp_blocks_[\"getFreeformContentHandlerName\"])()) {\n    content = Object(external_this_wp_autop_[\"removep\"])(content);\n  }\n\n  return content;\n}, {\n  maxSize: 1\n});\n/* harmony default export */ var serialize_blocks = (serializeBlocks);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/actions.js\n\n\n\n\nfunction actions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction actions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { actions_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { actions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar _marked = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(setupEditor),\n    _marked2 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(resetAutosave),\n    _marked3 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_editPost),\n    _marked4 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_savePost),\n    _marked5 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(refreshPost),\n    _marked6 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(trashPost),\n    _marked7 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_autosave),\n    _marked8 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_experimentalLocalAutosave),\n    _marked9 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_redo),\n    _marked10 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_undo),\n    _marked11 = /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(actions_resetEditorBlocks);\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Returns an action generator used in signalling that editor has initialized with\n * the specified post object and editor settings.\n *\n * @param {Object} post      Post object.\n * @param {Object} edits     Initial edited attributes object.\n * @param {Array?} template  Block Template.\n */\n\nfunction setupEditor(post, edits, template) {\n  var content, blocks, isNewPost;\n  return external_this_regeneratorRuntime_default.a.wrap(function setupEditor$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          // In order to ensure maximum of a single parse during setup, edits are\n          // included as part of editor setup action. Assume edited content as\n          // canonical if provided, falling back to post.\n          if (Object(external_this_lodash_[\"has\"])(edits, ['content'])) {\n            content = edits.content;\n          } else {\n            content = post.content.raw;\n          }\n\n          blocks = Object(external_this_wp_blocks_[\"parse\"])(content); // Apply a template for new posts only, if exists.\n\n          isNewPost = post.status === 'auto-draft';\n\n          if (isNewPost && template) {\n            blocks = Object(external_this_wp_blocks_[\"synchronizeBlocksWithTemplate\"])(blocks, template);\n          }\n\n          _context.next = 6;\n          return resetPost(post);\n\n        case 6:\n          _context.next = 8;\n          return {\n            type: 'SETUP_EDITOR',\n            post: post,\n            edits: edits,\n            template: template\n          };\n\n        case 8:\n          _context.next = 10;\n          return actions_resetEditorBlocks(blocks, {\n            __unstableShouldCreateUndoLevel: false\n          });\n\n        case 10:\n          _context.next = 12;\n          return setupEditorState(post);\n\n        case 12:\n          if (!(edits && Object.keys(edits).some(function (key) {\n            return edits[key] !== (Object(external_this_lodash_[\"has\"])(post, [key, 'raw']) ? post[key].raw : post[key]);\n          }))) {\n            _context.next = 15;\n            break;\n          }\n\n          _context.next = 15;\n          return actions_editPost(edits);\n\n        case 15:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked);\n}\n/**\n * Returns an action object signalling that the editor is being destroyed and\n * that any necessary state or side-effect cleanup should occur.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalTearDownEditor() {\n  return {\n    type: 'TEAR_DOWN_EDITOR'\n  };\n}\n/**\n * Returns an action object used in signalling that the latest version of the\n * post has been received, either by initialization or save.\n *\n * @param {Object} post Post object.\n *\n * @return {Object} Action object.\n */\n\nfunction resetPost(post) {\n  return {\n    type: 'RESET_POST',\n    post: post\n  };\n}\n/**\n * Returns an action object used in signalling that the latest autosave of the\n * post has been received, by initialization or autosave.\n *\n * @deprecated since 5.6. Callers should use the `receiveAutosaves( postId, autosave )`\n * \t\t\t   selector from the '@wordpress/core-data' package.\n *\n * @param {Object} newAutosave Autosave post object.\n *\n * @return {Object} Action object.\n */\n\nfunction resetAutosave(newAutosave) {\n  var postId;\n  return external_this_regeneratorRuntime_default.a.wrap(function resetAutosave$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          external_this_wp_deprecated_default()('resetAutosave action (`core/editor` store)', {\n            alternative: 'receiveAutosaves action (`core` store)',\n            plugin: 'Gutenberg'\n          });\n          _context2.next = 3;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPostId');\n\n        case 3:\n          postId = _context2.sent;\n          _context2.next = 6;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', 'receiveAutosaves', postId, newAutosave);\n\n        case 6:\n          return _context2.abrupt(\"return\", {\n            type: '__INERT__'\n          });\n\n        case 7:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2);\n}\n/**\n * Action for dispatching that a post update request has started.\n *\n * @param {Object} options\n *\n * @return {Object} An action object\n */\n\nfunction __experimentalRequestPostUpdateStart() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return {\n    type: 'REQUEST_POST_UPDATE_START',\n    options: options\n  };\n}\n/**\n * Action for dispatching that a post update request has finished.\n *\n * @param {Object} options\n *\n * @return {Object} An action object\n */\n\nfunction __experimentalRequestPostUpdateFinish() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return {\n    type: 'REQUEST_POST_UPDATE_FINISH',\n    options: options\n  };\n}\n/**\n * Returns an action object used in signalling that a patch of updates for the\n * latest version of the post have been received.\n *\n * @param {Object} edits Updated post fields.\n *\n * @return {Object} Action object.\n */\n\nfunction updatePost(edits) {\n  return {\n    type: 'UPDATE_POST',\n    edits: edits\n  };\n}\n/**\n * Returns an action object used to setup the editor state when first opening\n * an editor.\n *\n * @param {Object} post   Post object.\n *\n * @return {Object} Action object.\n */\n\nfunction setupEditorState(post) {\n  return {\n    type: 'SETUP_EDITOR_STATE',\n    post: post\n  };\n}\n/**\n * Returns an action object used in signalling that attributes of the post have\n * been edited.\n *\n * @param {Object} edits   Post attributes to edit.\n * @param {Object} options Options for the edit.\n *\n * @yield {Object} Action object or control.\n */\n\nfunction actions_editPost(edits, options) {\n  var _yield$select, id, type;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function editPost$(_context3) {\n    while (1) {\n      switch (_context3.prev = _context3.next) {\n        case 0:\n          _context3.next = 2;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 2:\n          _yield$select = _context3.sent;\n          id = _yield$select.id;\n          type = _yield$select.type;\n          _context3.next = 7;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', 'editEntityRecord', 'postType', type, id, edits, options);\n\n        case 7:\n        case \"end\":\n          return _context3.stop();\n      }\n    }\n  }, _marked3);\n}\n/**\n * Returns action object produced by the updatePost creator augmented by\n * an optimist option that signals optimistically applying updates.\n *\n * @param {Object} edits  Updated post fields.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalOptimisticUpdatePost(edits) {\n  return actions_objectSpread({}, updatePost(edits), {\n    optimist: {\n      id: POST_UPDATE_TRANSACTION_ID\n    }\n  });\n}\n/**\n * Action generator for saving the current post in the editor.\n *\n * @param {Object} options\n */\n\nfunction actions_savePost() {\n  var options,\n      edits,\n      previousRecord,\n      error,\n      args,\n      updatedRecord,\n      _args4,\n      _args5 = arguments;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function savePost$(_context4) {\n    while (1) {\n      switch (_context4.prev = _context4.next) {\n        case 0:\n          options = _args5.length > 0 && _args5[0] !== undefined ? _args5[0] : {};\n          _context4.next = 3;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'isEditedPostSaveable');\n\n        case 3:\n          if (_context4.sent) {\n            _context4.next = 5;\n            break;\n          }\n\n          return _context4.abrupt(\"return\");\n\n        case 5:\n          _context4.next = 7;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getEditedPostContent');\n\n        case 7:\n          _context4.t0 = _context4.sent;\n          edits = {\n            content: _context4.t0\n          };\n\n          if (options.isAutosave) {\n            _context4.next = 12;\n            break;\n          }\n\n          _context4.next = 12;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])(STORE_KEY, 'editPost', edits, {\n            undoIgnore: true\n          });\n\n        case 12:\n          _context4.next = 14;\n          return __experimentalRequestPostUpdateStart(options);\n\n        case 14:\n          _context4.next = 16;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 16:\n          previousRecord = _context4.sent;\n          _context4.t1 = actions_objectSpread;\n          _context4.t2 = {\n            id: previousRecord.id\n          };\n          _context4.next = 21;\n          return Object(external_this_wp_dataControls_[\"select\"])('core', 'getEntityRecordNonTransientEdits', 'postType', previousRecord.type, previousRecord.id);\n\n        case 21:\n          _context4.t3 = _context4.sent;\n          _context4.t4 = {};\n          _context4.t5 = edits;\n          edits = (0, _context4.t1)(_context4.t2, _context4.t3, _context4.t4, _context4.t5);\n          _context4.next = 27;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', 'saveEntityRecord', 'postType', previousRecord.type, edits, options);\n\n        case 27:\n          _context4.next = 29;\n          return __experimentalRequestPostUpdateFinish(options);\n\n        case 29:\n          _context4.next = 31;\n          return Object(external_this_wp_dataControls_[\"select\"])('core', 'getLastEntitySaveError', 'postType', previousRecord.type, previousRecord.id);\n\n        case 31:\n          error = _context4.sent;\n\n          if (!error) {\n            _context4.next = 39;\n            break;\n          }\n\n          args = getNotificationArgumentsForSaveFail({\n            post: previousRecord,\n            edits: edits,\n            error: error\n          });\n\n          if (!args.length) {\n            _context4.next = 37;\n            break;\n          }\n\n          _context4.next = 37;\n          return external_this_wp_dataControls_[\"dispatch\"].apply(void 0, ['core/notices', 'createErrorNotice'].concat(Object(toConsumableArray[\"a\" /* default */])(args)));\n\n        case 37:\n          _context4.next = 57;\n          break;\n\n        case 39:\n          _context4.next = 41;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 41:\n          updatedRecord = _context4.sent;\n          _context4.t6 = getNotificationArgumentsForSaveSuccess;\n          _context4.t7 = previousRecord;\n          _context4.t8 = updatedRecord;\n          _context4.next = 47;\n          return Object(external_this_wp_dataControls_[\"select\"])('core', 'getPostType', updatedRecord.type);\n\n        case 47:\n          _context4.t9 = _context4.sent;\n          _context4.t10 = options;\n          _context4.t11 = {\n            previousPost: _context4.t7,\n            post: _context4.t8,\n            postType: _context4.t9,\n            options: _context4.t10\n          };\n          _args4 = (0, _context4.t6)(_context4.t11);\n\n          if (!_args4.length) {\n            _context4.next = 54;\n            break;\n          }\n\n          _context4.next = 54;\n          return external_this_wp_dataControls_[\"dispatch\"].apply(void 0, ['core/notices', 'createSuccessNotice'].concat(Object(toConsumableArray[\"a\" /* default */])(_args4)));\n\n        case 54:\n          if (options.isAutosave) {\n            _context4.next = 57;\n            break;\n          }\n\n          _context4.next = 57;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core/block-editor', '__unstableMarkLastChangeAsPersistent');\n\n        case 57:\n        case \"end\":\n          return _context4.stop();\n      }\n    }\n  }, _marked4);\n}\n/**\n * Action generator for handling refreshing the current post.\n */\n\nfunction refreshPost() {\n  var post, postTypeSlug, postType, newPost;\n  return external_this_regeneratorRuntime_default.a.wrap(function refreshPost$(_context5) {\n    while (1) {\n      switch (_context5.prev = _context5.next) {\n        case 0:\n          _context5.next = 2;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 2:\n          post = _context5.sent;\n          _context5.next = 5;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPostType');\n\n        case 5:\n          postTypeSlug = _context5.sent;\n          _context5.next = 8;\n          return Object(external_this_wp_dataControls_[\"select\"])('core', 'getPostType', postTypeSlug);\n\n        case 8:\n          postType = _context5.sent;\n          _context5.next = 11;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            // Timestamp arg allows caller to bypass browser caching, which is\n            // expected for this specific function.\n            path: \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(post.id) + \"?context=edit&_timestamp=\".concat(Date.now())\n          });\n\n        case 11:\n          newPost = _context5.sent;\n          _context5.next = 14;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])(STORE_KEY, 'resetPost', newPost);\n\n        case 14:\n        case \"end\":\n          return _context5.stop();\n      }\n    }\n  }, _marked5);\n}\n/**\n * Action generator for trashing the current post in the editor.\n */\n\nfunction trashPost() {\n  var postTypeSlug, postType, post;\n  return external_this_regeneratorRuntime_default.a.wrap(function trashPost$(_context6) {\n    while (1) {\n      switch (_context6.prev = _context6.next) {\n        case 0:\n          _context6.next = 2;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPostType');\n\n        case 2:\n          postTypeSlug = _context6.sent;\n          _context6.next = 5;\n          return Object(external_this_wp_dataControls_[\"select\"])('core', 'getPostType', postTypeSlug);\n\n        case 5:\n          postType = _context6.sent;\n          _context6.next = 8;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core/notices', 'removeNotice', TRASH_POST_NOTICE_ID);\n\n        case 8:\n          _context6.prev = 8;\n          _context6.next = 11;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 11:\n          post = _context6.sent;\n          _context6.next = 14;\n          return Object(external_this_wp_dataControls_[\"apiFetch\"])({\n            path: \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(post.id),\n            method: 'DELETE'\n          });\n\n        case 14:\n          _context6.next = 16;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])(STORE_KEY, 'savePost');\n\n        case 16:\n          _context6.next = 22;\n          break;\n\n        case 18:\n          _context6.prev = 18;\n          _context6.t0 = _context6[\"catch\"](8);\n          _context6.next = 22;\n          return external_this_wp_dataControls_[\"dispatch\"].apply(void 0, ['core/notices', 'createErrorNotice'].concat(Object(toConsumableArray[\"a\" /* default */])(getNotificationArgumentsForTrashFail({\n            error: _context6.t0\n          }))));\n\n        case 22:\n        case \"end\":\n          return _context6.stop();\n      }\n    }\n  }, _marked6, null, [[8, 18]]);\n}\n/**\n * Action generator used in signalling that the post should autosave.\n *\n * @param {Object?} options Extra flags to identify the autosave.\n */\n\nfunction actions_autosave(options) {\n  return external_this_regeneratorRuntime_default.a.wrap(function autosave$(_context7) {\n    while (1) {\n      switch (_context7.prev = _context7.next) {\n        case 0:\n          _context7.next = 2;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])(STORE_KEY, 'savePost', actions_objectSpread({\n            isAutosave: true\n          }, options));\n\n        case 2:\n        case \"end\":\n          return _context7.stop();\n      }\n    }\n  }, _marked7);\n}\nfunction actions_experimentalLocalAutosave() {\n  var post, title, content, excerpt;\n  return external_this_regeneratorRuntime_default.a.wrap(function __experimentalLocalAutosave$(_context8) {\n    while (1) {\n      switch (_context8.prev = _context8.next) {\n        case 0:\n          _context8.next = 2;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 2:\n          post = _context8.sent;\n          _context8.next = 5;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getEditedPostAttribute', 'title');\n\n        case 5:\n          title = _context8.sent;\n          _context8.next = 8;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getEditedPostAttribute', 'content');\n\n        case 8:\n          content = _context8.sent;\n          _context8.next = 11;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getEditedPostAttribute', 'excerpt');\n\n        case 11:\n          excerpt = _context8.sent;\n          _context8.next = 14;\n          return {\n            type: 'LOCAL_AUTOSAVE_SET',\n            postId: post.id,\n            title: title,\n            content: content,\n            excerpt: excerpt\n          };\n\n        case 14:\n        case \"end\":\n          return _context8.stop();\n      }\n    }\n  }, _marked8);\n}\n/**\n * Returns an action object used in signalling that undo history should\n * restore last popped state.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_redo() {\n  return external_this_regeneratorRuntime_default.a.wrap(function redo$(_context9) {\n    while (1) {\n      switch (_context9.prev = _context9.next) {\n        case 0:\n          _context9.next = 2;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', 'redo');\n\n        case 2:\n        case \"end\":\n          return _context9.stop();\n      }\n    }\n  }, _marked9);\n}\n/**\n * Returns an action object used in signalling that undo history should pop.\n *\n * @yield {Object} Action object.\n */\n\nfunction actions_undo() {\n  return external_this_regeneratorRuntime_default.a.wrap(function undo$(_context10) {\n    while (1) {\n      switch (_context10.prev = _context10.next) {\n        case 0:\n          _context10.next = 2;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', 'undo');\n\n        case 2:\n        case \"end\":\n          return _context10.stop();\n      }\n    }\n  }, _marked10);\n}\n/**\n * Returns an action object used in signalling that undo history record should\n * be created.\n *\n * @return {Object} Action object.\n */\n\nfunction createUndoLevel() {\n  return {\n    type: 'CREATE_UNDO_LEVEL'\n  };\n}\n/**\n * Returns an action object used to lock the editor.\n *\n * @param {Object}  lock Details about the post lock status, user, and nonce.\n *\n * @return {Object} Action object.\n */\n\nfunction updatePostLock(lock) {\n  return {\n    type: 'UPDATE_POST_LOCK',\n    lock: lock\n  };\n}\n/**\n * Returns an action object used to fetch a single reusable block or all\n * reusable blocks from the REST API into the store.\n *\n * @param {?string} id If given, only a single reusable block with this ID will\n *                     be fetched.\n *\n * @return {Object} Action object.\n */\n\nfunction actions_experimentalFetchReusableBlocks(id) {\n  return {\n    type: 'FETCH_REUSABLE_BLOCKS',\n    id: id\n  };\n}\n/**\n * Returns an action object used in signalling that reusable blocks have been\n * received. `results` is an array of objects containing:\n *  - `reusableBlock` - Details about how the reusable block is persisted.\n *  - `parsedBlock` - The original block.\n *\n * @param {Object[]} results Reusable blocks received.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalReceiveReusableBlocks(results) {\n  return {\n    type: 'RECEIVE_REUSABLE_BLOCKS',\n    results: results\n  };\n}\n/**\n * Returns an action object used to save a reusable block that's in the store to\n * the REST API.\n *\n * @param {Object} id The ID of the reusable block to save.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalSaveReusableBlock(id) {\n  return {\n    type: 'SAVE_REUSABLE_BLOCK',\n    id: id\n  };\n}\n/**\n * Returns an action object used to delete a reusable block via the REST API.\n *\n * @param {number} id The ID of the reusable block to delete.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalDeleteReusableBlock(id) {\n  return {\n    type: 'DELETE_REUSABLE_BLOCK',\n    id: id\n  };\n}\n/**\n * Returns an action object used in signalling that a reusable block is\n * to be updated.\n *\n * @param {number} id      The ID of the reusable block to update.\n * @param {Object} changes The changes to apply.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalUpdateReusableBlock(id, changes) {\n  return {\n    type: 'UPDATE_REUSABLE_BLOCK',\n    id: id,\n    changes: changes\n  };\n}\n/**\n * Returns an action object used to convert a reusable block into a static\n * block.\n *\n * @param {string} clientId The client ID of the block to attach.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalConvertBlockToStatic(clientId) {\n  return {\n    type: 'CONVERT_BLOCK_TO_STATIC',\n    clientId: clientId\n  };\n}\n/**\n * Returns an action object used to convert a static block into a reusable\n * block.\n *\n * @param {string} clientIds The client IDs of the block to detach.\n *\n * @return {Object} Action object.\n */\n\nfunction __experimentalConvertBlockToReusable(clientIds) {\n  return {\n    type: 'CONVERT_BLOCK_TO_REUSABLE',\n    clientIds: Object(external_this_lodash_[\"castArray\"])(clientIds)\n  };\n}\n/**\n * Returns an action object used in signalling that the user has enabled the\n * publish sidebar.\n *\n * @return {Object} Action object\n */\n\nfunction enablePublishSidebar() {\n  return {\n    type: 'ENABLE_PUBLISH_SIDEBAR'\n  };\n}\n/**\n * Returns an action object used in signalling that the user has disabled the\n * publish sidebar.\n *\n * @return {Object} Action object\n */\n\nfunction disablePublishSidebar() {\n  return {\n    type: 'DISABLE_PUBLISH_SIDEBAR'\n  };\n}\n/**\n * Returns an action object used to signal that post saving is locked.\n *\n * @param  {string} lockName The lock name.\n *\n * @example\n * ```\n * const { subscribe } = wp.data;\n *\n * const initialPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );\n *\n * // Only allow publishing posts that are set to a future date.\n * if ( 'publish' !== initialPostStatus ) {\n *\n * \t// Track locking.\n * \tlet locked = false;\n *\n * \t// Watch for the publish event.\n * \tlet unssubscribe = subscribe( () => {\n * \t\tconst currentPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );\n * \t\tif ( 'publish' !== currentPostStatus ) {\n *\n * \t\t\t// Compare the post date to the current date, lock the post if the date isn't in the future.\n * \t\t\tconst postDate = new Date( wp.data.select( 'core/editor' ).getEditedPostAttribute( 'date' ) );\n * \t\t\tconst currentDate = new Date();\n * \t\t\tif ( postDate.getTime() <= currentDate.getTime() ) {\n * \t\t\t\tif ( ! locked ) {\n * \t\t\t\t\tlocked = true;\n * \t\t\t\t\twp.data.dispatch( 'core/editor' ).lockPostSaving( 'futurelock' );\n * \t\t\t\t}\n * \t\t\t} else {\n * \t\t\t\tif ( locked ) {\n * \t\t\t\t\tlocked = false;\n * \t\t\t\t\twp.data.dispatch( 'core/editor' ).unlockPostSaving( 'futurelock' );\n * \t\t\t\t}\n * \t\t\t}\n * \t\t}\n * \t} );\n * }\n * ```\n *\n * @return {Object} Action object\n */\n\nfunction lockPostSaving(lockName) {\n  return {\n    type: 'LOCK_POST_SAVING',\n    lockName: lockName\n  };\n}\n/**\n * Returns an action object used to signal that post saving is unlocked.\n *\n * @param  {string} lockName The lock name.\n *\n * @example\n * ```\n * // Unlock post saving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\n\nfunction unlockPostSaving(lockName) {\n  return {\n    type: 'UNLOCK_POST_SAVING',\n    lockName: lockName\n  };\n}\n/**\n * Returns an action object used to signal that post autosaving is locked.\n *\n * @param  {string} lockName The lock name.\n *\n * @example\n * ```\n * // Lock post autosaving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).lockPostAutosaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\n\nfunction lockPostAutosaving(lockName) {\n  return {\n    type: 'LOCK_POST_AUTOSAVING',\n    lockName: lockName\n  };\n}\n/**\n * Returns an action object used to signal that post autosaving is unlocked.\n *\n * @param  {string} lockName The lock name.\n *\n * @example\n * ```\n * // Unlock post saving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).unlockPostAutosaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\n\nfunction unlockPostAutosaving(lockName) {\n  return {\n    type: 'UNLOCK_POST_AUTOSAVING',\n    lockName: lockName\n  };\n}\n/**\n * Returns an action object used to signal that the blocks have been updated.\n *\n * @param {Array}   blocks  Block Array.\n * @param {?Object} options Optional options.\n *\n * @yield {Object} Action object\n */\n\nfunction actions_resetEditorBlocks(blocks) {\n  var options,\n      __unstableShouldCreateUndoLevel,\n      selectionStart,\n      selectionEnd,\n      edits,\n      _yield$select2,\n      id,\n      type,\n      noChange,\n      _args12 = arguments;\n\n  return external_this_regeneratorRuntime_default.a.wrap(function resetEditorBlocks$(_context11) {\n    while (1) {\n      switch (_context11.prev = _context11.next) {\n        case 0:\n          options = _args12.length > 1 && _args12[1] !== undefined ? _args12[1] : {};\n          __unstableShouldCreateUndoLevel = options.__unstableShouldCreateUndoLevel, selectionStart = options.selectionStart, selectionEnd = options.selectionEnd;\n          edits = {\n            blocks: blocks,\n            selectionStart: selectionStart,\n            selectionEnd: selectionEnd\n          };\n\n          if (!(__unstableShouldCreateUndoLevel !== false)) {\n            _context11.next = 19;\n            break;\n          }\n\n          _context11.next = 6;\n          return Object(external_this_wp_dataControls_[\"select\"])(STORE_KEY, 'getCurrentPost');\n\n        case 6:\n          _yield$select2 = _context11.sent;\n          id = _yield$select2.id;\n          type = _yield$select2.type;\n          _context11.next = 11;\n          return Object(external_this_wp_dataControls_[\"__unstableSyncSelect\"])('core', 'getEditedEntityRecord', 'postType', type, id);\n\n        case 11:\n          _context11.t0 = _context11.sent.blocks;\n          _context11.t1 = edits.blocks;\n          noChange = _context11.t0 === _context11.t1;\n\n          if (!noChange) {\n            _context11.next = 18;\n            break;\n          }\n\n          _context11.next = 17;\n          return Object(external_this_wp_dataControls_[\"dispatch\"])('core', '__unstableCreateUndoLevel', 'postType', type, id);\n\n        case 17:\n          return _context11.abrupt(\"return\", _context11.sent);\n\n        case 18:\n          // We create a new function here on every persistent edit\n          // to make sure the edit makes the post dirty and creates\n          // a new undo level.\n          edits.content = function (_ref) {\n            var _ref$blocks = _ref.blocks,\n                blocksForSerialization = _ref$blocks === void 0 ? [] : _ref$blocks;\n            return serialize_blocks(blocksForSerialization);\n          };\n\n        case 19:\n          return _context11.delegateYield(actions_editPost(edits), \"t2\", 20);\n\n        case 20:\n        case \"end\":\n          return _context11.stop();\n      }\n    }\n  }, _marked11);\n}\n/*\n * Returns an action object used in signalling that the post editor settings have been updated.\n *\n * @param {Object} settings Updated settings\n *\n * @return {Object} Action object\n */\n\nfunction updateEditorSettings(settings) {\n  return {\n    type: 'UPDATE_EDITOR_SETTINGS',\n    settings: settings\n  };\n}\n/**\n * Backward compatibility\n */\n\nvar actions_getBlockEditorAction = function getBlockEditorAction(name) {\n  return /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee() {\n    var _len,\n        args,\n        _key,\n        _args13 = arguments;\n\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context12) {\n      while (1) {\n        switch (_context12.prev = _context12.next) {\n          case 0:\n            external_this_wp_deprecated_default()(\"`wp.data.dispatch( 'core/editor' ).\" + name + '`', {\n              alternative: \"`wp.data.dispatch( 'core/block-editor' ).\" + name + '`'\n            });\n\n            for (_len = _args13.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n              args[_key] = _args13[_key];\n            }\n\n            _context12.next = 4;\n            return external_this_wp_dataControls_[\"dispatch\"].apply(void 0, ['core/block-editor', name].concat(args));\n\n          case 4:\n          case \"end\":\n            return _context12.stop();\n        }\n      }\n    }, _callee);\n  });\n};\n/**\n * @see resetBlocks in core/block-editor store.\n */\n\n\nvar resetBlocks = actions_getBlockEditorAction('resetBlocks');\n/**\n * @see receiveBlocks in core/block-editor store.\n */\n\nvar receiveBlocks = actions_getBlockEditorAction('receiveBlocks');\n/**\n * @see updateBlock in core/block-editor store.\n */\n\nvar updateBlock = actions_getBlockEditorAction('updateBlock');\n/**\n * @see updateBlockAttributes in core/block-editor store.\n */\n\nvar updateBlockAttributes = actions_getBlockEditorAction('updateBlockAttributes');\n/**\n * @see selectBlock in core/block-editor store.\n */\n\nvar actions_selectBlock = actions_getBlockEditorAction('selectBlock');\n/**\n * @see startMultiSelect in core/block-editor store.\n */\n\nvar startMultiSelect = actions_getBlockEditorAction('startMultiSelect');\n/**\n * @see stopMultiSelect in core/block-editor store.\n */\n\nvar stopMultiSelect = actions_getBlockEditorAction('stopMultiSelect');\n/**\n * @see multiSelect in core/block-editor store.\n */\n\nvar multiSelect = actions_getBlockEditorAction('multiSelect');\n/**\n * @see clearSelectedBlock in core/block-editor store.\n */\n\nvar clearSelectedBlock = actions_getBlockEditorAction('clearSelectedBlock');\n/**\n * @see toggleSelection in core/block-editor store.\n */\n\nvar toggleSelection = actions_getBlockEditorAction('toggleSelection');\n/**\n * @see replaceBlocks in core/block-editor store.\n */\n\nvar actions_replaceBlocks = actions_getBlockEditorAction('replaceBlocks');\n/**\n * @see replaceBlock in core/block-editor store.\n */\n\nvar replaceBlock = actions_getBlockEditorAction('replaceBlock');\n/**\n * @see moveBlocksDown in core/block-editor store.\n */\n\nvar moveBlocksDown = actions_getBlockEditorAction('moveBlocksDown');\n/**\n * @see moveBlocksUp in core/block-editor store.\n */\n\nvar moveBlocksUp = actions_getBlockEditorAction('moveBlocksUp');\n/**\n * @see moveBlockToPosition in core/block-editor store.\n */\n\nvar moveBlockToPosition = actions_getBlockEditorAction('moveBlockToPosition');\n/**\n * @see insertBlock in core/block-editor store.\n */\n\nvar insertBlock = actions_getBlockEditorAction('insertBlock');\n/**\n * @see insertBlocks in core/block-editor store.\n */\n\nvar insertBlocks = actions_getBlockEditorAction('insertBlocks');\n/**\n * @see showInsertionPoint in core/block-editor store.\n */\n\nvar showInsertionPoint = actions_getBlockEditorAction('showInsertionPoint');\n/**\n * @see hideInsertionPoint in core/block-editor store.\n */\n\nvar hideInsertionPoint = actions_getBlockEditorAction('hideInsertionPoint');\n/**\n * @see setTemplateValidity in core/block-editor store.\n */\n\nvar setTemplateValidity = actions_getBlockEditorAction('setTemplateValidity');\n/**\n * @see synchronizeTemplate in core/block-editor store.\n */\n\nvar synchronizeTemplate = actions_getBlockEditorAction('synchronizeTemplate');\n/**\n * @see mergeBlocks in core/block-editor store.\n */\n\nvar mergeBlocks = actions_getBlockEditorAction('mergeBlocks');\n/**\n * @see removeBlocks in core/block-editor store.\n */\n\nvar removeBlocks = actions_getBlockEditorAction('removeBlocks');\n/**\n * @see removeBlock in core/block-editor store.\n */\n\nvar removeBlock = actions_getBlockEditorAction('removeBlock');\n/**\n * @see toggleBlockMode in core/block-editor store.\n */\n\nvar toggleBlockMode = actions_getBlockEditorAction('toggleBlockMode');\n/**\n * @see startTyping in core/block-editor store.\n */\n\nvar startTyping = actions_getBlockEditorAction('startTyping');\n/**\n * @see stopTyping in core/block-editor store.\n */\n\nvar stopTyping = actions_getBlockEditorAction('stopTyping');\n/**\n * @see enterFormattedText in core/block-editor store.\n */\n\nvar enterFormattedText = actions_getBlockEditorAction('enterFormattedText');\n/**\n * @see exitFormattedText in core/block-editor store.\n */\n\nvar exitFormattedText = actions_getBlockEditorAction('exitFormattedText');\n/**\n * @see insertDefaultBlock in core/block-editor store.\n */\n\nvar insertDefaultBlock = actions_getBlockEditorAction('insertDefaultBlock');\n/**\n * @see updateBlockListSettings in core/block-editor store.\n */\n\nvar updateBlockListSettings = actions_getBlockEditorAction('updateBlockListSettings');\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"date\"]}\nvar external_this_wp_date_ = __webpack_require__(68);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/url.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Returns the URL of a WPAdmin Page.\n *\n * TODO: This should be moved to a module less specific to the editor.\n *\n * @param {string} page  Page to navigate to.\n * @param {Object} query Query Args.\n *\n * @return {string} WPAdmin URL.\n */\n\nfunction getWPAdminURL(page, query) {\n  return Object(external_this_wp_url_[\"addQueryArgs\"])(page, query);\n}\n/**\n * Performs some basic cleanup of a string for use as a post slug\n *\n * This replicates some of what sanitize_title() does in WordPress core, but\n * is only designed to approximate what the slug will be.\n *\n * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin\n * letters. Removes combining diacritical marks. Converts whitespace, periods,\n * and forward slashes to hyphens. Removes any remaining non-word characters\n * except hyphens. Converts remaining string to lowercase. It does not account\n * for octets, HTML entities, or other encoded characters.\n *\n * @param {string} string Title or slug to be processed\n *\n * @return {string} Processed string\n */\n\nfunction cleanForSlug(string) {\n  if (!string) {\n    return '';\n  }\n\n  return Object(external_this_lodash_[\"trim\"])(Object(external_this_lodash_[\"deburr\"])(string).replace(/[\\s\\./]+/g, '-').replace(/[^\\w-]+/g, '').toLowerCase(), '-');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/selectors.js\n\n\n\nfunction selectors_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction selectors_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { selectors_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { selectors_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/**\n * Shared reference to an empty object for cases where it is important to avoid\n * returning a new object reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n */\n\nvar EMPTY_OBJECT = {};\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n */\n\nvar EMPTY_ARRAY = [];\n/**\n * Returns true if any past editor history snapshots exist, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether undo history exists.\n */\n\nvar hasEditorUndo = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function () {\n    return select('core').hasUndo();\n  };\n});\n/**\n * Returns true if any future editor history snapshots exist, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether redo history exists.\n */\n\nvar hasEditorRedo = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function () {\n    return select('core').hasRedo();\n  };\n});\n/**\n * Returns true if the currently edited post is yet to be saved, or false if\n * the post has been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is new.\n */\n\nfunction isEditedPostNew(state) {\n  return selectors_getCurrentPost(state).status === 'auto-draft';\n}\n/**\n * Returns true if content includes unsaved changes, or false otherwise.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether content includes unsaved changes.\n */\n\nfunction hasChangedContent(state) {\n  var edits = getPostEdits(state);\n  return 'blocks' in edits || // `edits` is intended to contain only values which are different from\n  // the saved post, so the mere presence of a property is an indicator\n  // that the value is different than what is known to be saved. While\n  // content in Visual mode is represented by the blocks state, in Text\n  // mode it is tracked by `edits.content`.\n  'content' in edits;\n}\n/**\n * Returns true if there are unsaved values for the current edit session, or\n * false if the editing state matches the saved or new post.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether unsaved values exist.\n */\n\nvar selectors_isEditedPostDirty = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    // Edits should contain only fields which differ from the saved post (reset\n    // at initial load and save complete). Thus, a non-empty edits state can be\n    // inferred to contain unsaved values.\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n\n    if (select('core').hasEditsForEntityRecord('postType', postType, postId)) {\n      return true;\n    }\n\n    return false;\n  };\n});\n/**\n * Returns true if there are unsaved edits for entities other than\n * the editor's post, and false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether there are edits or not.\n */\n\nvar selectors_hasNonPostEntityChanges = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var enableFullSiteEditing = selectors_getEditorSettings(state).__experimentalEnableFullSiteEditing;\n\n    if (!enableFullSiteEditing) {\n      return false;\n    }\n\n    var dirtyEntityRecords = select('core').__experimentalGetDirtyEntityRecords();\n\n    var _getCurrentPost = selectors_getCurrentPost(state),\n        type = _getCurrentPost.type,\n        id = _getCurrentPost.id;\n\n    return Object(external_this_lodash_[\"some\"])(dirtyEntityRecords, function (entityRecord) {\n      return entityRecord.kind !== 'postType' || entityRecord.name !== type || entityRecord.key !== id;\n    });\n  };\n});\n/**\n * Returns true if there are no unsaved values for the current edit session and\n * if the currently edited post is new (has never been saved before).\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether new post and unsaved values exist.\n */\n\nfunction selectors_isCleanNewPost(state) {\n  return !selectors_isEditedPostDirty(state) && isEditedPostNew(state);\n}\n/**\n * Returns the post currently being edited in its last known saved state, not\n * including unsaved edits. Returns an object containing relevant default post\n * values if the post has not yet been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Post object.\n */\n\nvar selectors_getCurrentPost = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postId = selectors_getCurrentPostId(state);\n    var postType = selectors_getCurrentPostType(state);\n    var post = select('core').getRawEntityRecord('postType', postType, postId);\n\n    if (post) {\n      return post;\n    } // This exists for compatibility with the previous selector behavior\n    // which would guarantee an object return based on the editor reducer's\n    // default empty object state.\n\n\n    return EMPTY_OBJECT;\n  };\n});\n/**\n * Returns the post type of the post currently being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post type.\n */\n\nfunction selectors_getCurrentPostType(state) {\n  return state.postType;\n}\n/**\n * Returns the ID of the post currently being edited, or null if the post has\n * not yet been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {?number} ID of current post.\n */\n\nfunction selectors_getCurrentPostId(state) {\n  return state.postId;\n}\n/**\n * Returns the number of revisions of the post currently being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {number} Number of revisions.\n */\n\nfunction getCurrentPostRevisionsCount(state) {\n  return Object(external_this_lodash_[\"get\"])(selectors_getCurrentPost(state), ['_links', 'version-history', 0, 'count'], 0);\n}\n/**\n * Returns the last revision ID of the post currently being edited,\n * or null if the post has no revisions.\n *\n * @param {Object} state Global application state.\n *\n * @return {?number} ID of the last revision.\n */\n\nfunction getCurrentPostLastRevisionId(state) {\n  return Object(external_this_lodash_[\"get\"])(selectors_getCurrentPost(state), ['_links', 'predecessor-version', 0, 'id'], null);\n}\n/**\n * Returns any post values which have been changed in the editor but not yet\n * been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Object of key value pairs comprising unsaved edits.\n */\n\nvar getPostEdits = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    return select('core').getEntityRecordEdits('postType', postType, postId) || EMPTY_OBJECT;\n  };\n});\n/**\n * Returns a new reference when edited values have changed. This is useful in\n * inferring where an edit has been made between states by comparison of the\n * return values using strict equality.\n *\n * @deprecated since Gutenberg 6.5.0.\n *\n * @example\n *\n * ```\n * const hasEditOccurred = (\n *    getReferenceByDistinctEdits( beforeState ) !==\n *    getReferenceByDistinctEdits( afterState )\n * );\n * ```\n *\n * @param {Object} state Editor state.\n *\n * @return {*} A value whose reference will change only when an edit occurs.\n */\n\nvar getReferenceByDistinctEdits = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function ()\n  /* state */\n  {\n    external_this_wp_deprecated_default()(\"`wp.data.select( 'core/editor' ).getReferenceByDistinctEdits`\", {\n      alternative: \"`wp.data.select( 'core' ).getReferenceByDistinctEdits`\"\n    });\n    return select('core').getReferenceByDistinctEdits();\n  };\n});\n/**\n * Returns an attribute value of the saved post.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\n\nfunction selectors_getCurrentPostAttribute(state, attributeName) {\n  switch (attributeName) {\n    case 'type':\n      return selectors_getCurrentPostType(state);\n\n    case 'id':\n      return selectors_getCurrentPostId(state);\n\n    default:\n      var post = selectors_getCurrentPost(state);\n\n      if (!post.hasOwnProperty(attributeName)) {\n        break;\n      }\n\n      return getPostRawValue(post[attributeName]);\n  }\n}\n/**\n * Returns a single attribute of the post being edited, preferring the unsaved\n * edit if one exists, but merging with the attribute value for the last known\n * saved state of the post (this is needed for some nested attributes like meta).\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\n\nvar getNestedEditedPostProperty = function getNestedEditedPostProperty(state, attributeName) {\n  var edits = getPostEdits(state);\n\n  if (!edits.hasOwnProperty(attributeName)) {\n    return selectors_getCurrentPostAttribute(state, attributeName);\n  }\n\n  return selectors_objectSpread({}, selectors_getCurrentPostAttribute(state, attributeName), {}, edits[attributeName]);\n};\n/**\n * Returns a single attribute of the post being edited, preferring the unsaved\n * edit if one exists, but falling back to the attribute for the last known\n * saved state of the post.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\n\n\nfunction selectors_getEditedPostAttribute(state, attributeName) {\n  // Special cases\n  switch (attributeName) {\n    case 'content':\n      return getEditedPostContent(state);\n  } // Fall back to saved post value if not edited.\n\n\n  var edits = getPostEdits(state);\n\n  if (!edits.hasOwnProperty(attributeName)) {\n    return selectors_getCurrentPostAttribute(state, attributeName);\n  } // Merge properties are objects which contain only the patch edit in state,\n  // and thus must be merged with the current post attribute.\n\n\n  if (EDIT_MERGE_PROPERTIES.has(attributeName)) {\n    return getNestedEditedPostProperty(state, attributeName);\n  }\n\n  return edits[attributeName];\n}\n/**\n * Returns an attribute value of the current autosave revision for a post, or\n * null if there is no autosave for the post.\n *\n * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector\n * \t\t\t   from the '@wordpress/core-data' package and access properties on the returned\n * \t\t\t   autosave object using getPostRawValue.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Autosave attribute name.\n *\n * @return {*} Autosave attribute value.\n */\n\nvar getAutosaveAttribute = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state, attributeName) {\n    if (!Object(external_this_lodash_[\"includes\"])(AUTOSAVE_PROPERTIES, attributeName) && attributeName !== 'preview_link') {\n      return;\n    }\n\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    var currentUserId = Object(external_this_lodash_[\"get\"])(select('core').getCurrentUser(), ['id']);\n    var autosave = select('core').getAutosave(postType, postId, currentUserId);\n\n    if (autosave) {\n      return getPostRawValue(autosave[attributeName]);\n    }\n  };\n});\n/**\n * Returns the current visibility of the post being edited, preferring the\n * unsaved value if different than the saved post. The return value is one of\n * \"private\", \"password\", or \"public\".\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post visibility.\n */\n\nfunction selectors_getEditedPostVisibility(state) {\n  var status = selectors_getEditedPostAttribute(state, 'status');\n\n  if (status === 'private') {\n    return 'private';\n  }\n\n  var password = selectors_getEditedPostAttribute(state, 'password');\n\n  if (password) {\n    return 'password';\n  }\n\n  return 'public';\n}\n/**\n * Returns true if post is pending review.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether current post is pending review.\n */\n\nfunction isCurrentPostPending(state) {\n  return selectors_getCurrentPost(state).status === 'pending';\n}\n/**\n * Return true if the current post has already been published.\n *\n * @param {Object}  state       Global application state.\n * @param {Object?} currentPost Explicit current post for bypassing registry selector.\n *\n * @return {boolean} Whether the post has been published.\n */\n\nfunction selectors_isCurrentPostPublished(state, currentPost) {\n  var post = currentPost || selectors_getCurrentPost(state);\n  return ['publish', 'private'].indexOf(post.status) !== -1 || post.status === 'future' && !Object(external_this_wp_date_[\"isInTheFuture\"])(new Date(Number(Object(external_this_wp_date_[\"getDate\"])(post.date)) - ONE_MINUTE_IN_MS));\n}\n/**\n * Returns true if post is already scheduled.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether current post is scheduled to be posted.\n */\n\nfunction selectors_isCurrentPostScheduled(state) {\n  return selectors_getCurrentPost(state).status === 'future' && !selectors_isCurrentPostPublished(state);\n}\n/**\n * Return true if the post being edited can be published.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post can been published.\n */\n\nfunction selectors_isEditedPostPublishable(state) {\n  var post = selectors_getCurrentPost(state); // TODO: Post being publishable should be superset of condition of post\n  // being saveable. Currently this restriction is imposed at UI.\n  //\n  //  See: <PostPublishButton /> (`isButtonEnabled` assigned by `isSaveable`)\n\n  return selectors_isEditedPostDirty(state) || ['publish', 'private', 'future'].indexOf(post.status) === -1;\n}\n/**\n * Returns true if the post can be saved, or false otherwise. A post must\n * contain a title, an excerpt, or non-empty content to be valid for save.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post can be saved.\n */\n\nfunction selectors_isEditedPostSaveable(state) {\n  if (selectors_isSavingPost(state)) {\n    return false;\n  } // TODO: Post should not be saveable if not dirty. Cannot be added here at\n  // this time since posts where meta boxes are present can be saved even if\n  // the post is not dirty. Currently this restriction is imposed at UI, but\n  // should be moved here.\n  //\n  //  See: `isEditedPostPublishable` (includes `isEditedPostDirty` condition)\n  //  See: <PostSavedState /> (`forceIsDirty` prop)\n  //  See: <PostPublishButton /> (`forceIsDirty` prop)\n  //  See: https://github.com/WordPress/gutenberg/pull/4184\n\n\n  return !!selectors_getEditedPostAttribute(state, 'title') || !!selectors_getEditedPostAttribute(state, 'excerpt') || !isEditedPostEmpty(state);\n}\n/**\n * Returns true if the edited post has content. A post has content if it has at\n * least one saveable block or otherwise has a non-empty content property\n * assigned.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post has content.\n */\n\nfunction isEditedPostEmpty(state) {\n  // While the condition of truthy content string is sufficient to determine\n  // emptiness, testing saveable blocks length is a trivial operation. Since\n  // this function can be called frequently, optimize for the fast case as a\n  // condition of the mere existence of blocks. Note that the value of edited\n  // content takes precedent over block content, and must fall through to the\n  // default logic.\n  var blocks = selectors_getEditorBlocks(state);\n\n  if (blocks.length) {\n    // Pierce the abstraction of the serializer in knowing that blocks are\n    // joined with with newlines such that even if every individual block\n    // produces an empty save result, the serialized content is non-empty.\n    if (blocks.length > 1) {\n      return false;\n    } // There are two conditions under which the optimization cannot be\n    // assumed, and a fallthrough to getEditedPostContent must occur:\n    //\n    // 1. getBlocksForSerialization has special treatment in omitting a\n    //    single unmodified default block.\n    // 2. Comment delimiters are omitted for a freeform or unregistered\n    //    block in its serialization. The freeform block specifically may\n    //    produce an empty string in its saved output.\n    //\n    // For all other content, the single block is assumed to make a post\n    // non-empty, if only by virtue of its own comment delimiters.\n\n\n    var blockName = blocks[0].name;\n\n    if (blockName !== Object(external_this_wp_blocks_[\"getDefaultBlockName\"])() && blockName !== Object(external_this_wp_blocks_[\"getFreeformContentHandlerName\"])()) {\n      return false;\n    }\n  }\n\n  return !getEditedPostContent(state);\n}\n/**\n * Returns true if the post can be autosaved, or false otherwise.\n *\n * @param {Object} state    Global application state.\n * @param {Object} autosave A raw autosave object from the REST API.\n *\n * @return {boolean} Whether the post can be autosaved.\n */\n\nvar selectors_isEditedPostAutosaveable = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    // A post must contain a title, an excerpt, or non-empty content to be valid for autosaving.\n    if (!selectors_isEditedPostSaveable(state)) {\n      return false;\n    } // A post is not autosavable when there is a post autosave lock.\n\n\n    if (isPostAutosavingLocked(state)) {\n      return false;\n    }\n\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    var hasFetchedAutosave = select('core').hasFetchedAutosaves(postType, postId);\n    var currentUserId = Object(external_this_lodash_[\"get\"])(select('core').getCurrentUser(), ['id']); // Disable reason - this line causes the side-effect of fetching the autosave\n    // via a resolver, moving below the return would result in the autosave never\n    // being fetched.\n    // eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\n    var autosave = select('core').getAutosave(postType, postId, currentUserId); // If any existing autosaves have not yet been fetched, this function is\n    // unable to determine if the post is autosaveable, so return false.\n\n    if (!hasFetchedAutosave) {\n      return false;\n    } // If we don't already have an autosave, the post is autosaveable.\n\n\n    if (!autosave) {\n      return true;\n    } // To avoid an expensive content serialization, use the content dirtiness\n    // flag in place of content field comparison against the known autosave.\n    // This is not strictly accurate, and relies on a tolerance toward autosave\n    // request failures for unnecessary saves.\n\n\n    if (hasChangedContent(state)) {\n      return true;\n    } // If the title or excerpt has changed, the post is autosaveable.\n\n\n    return ['title', 'excerpt'].some(function (field) {\n      return getPostRawValue(autosave[field]) !== selectors_getEditedPostAttribute(state, field);\n    });\n  };\n});\n/**\n * Returns the current autosave, or null if one is not set (i.e. if the post\n * has yet to be autosaved, or has been saved or published since the last\n * autosave).\n *\n * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )`\n * \t\t\t   selector from the '@wordpress/core-data' package.\n *\n * @param {Object} state Editor state.\n *\n * @return {?Object} Current autosave, if exists.\n */\n\nvar getAutosave = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    external_this_wp_deprecated_default()(\"`wp.data.select( 'core/editor' ).getAutosave()`\", {\n      alternative: \"`wp.data.select( 'core' ).getAutosave( postType, postId, userId )`\",\n      plugin: 'Gutenberg'\n    });\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    var currentUserId = Object(external_this_lodash_[\"get\"])(select('core').getCurrentUser(), ['id']);\n    var autosave = select('core').getAutosave(postType, postId, currentUserId);\n    return Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"pick\"])(autosave, AUTOSAVE_PROPERTIES), getPostRawValue);\n  };\n});\n/**\n * Returns the true if there is an existing autosave, otherwise false.\n *\n * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector\n *             from the '@wordpress/core-data' package and check for a truthy value.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether there is an existing autosave.\n */\n\nvar hasAutosave = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    external_this_wp_deprecated_default()(\"`wp.data.select( 'core/editor' ).hasAutosave()`\", {\n      alternative: \"`!! wp.data.select( 'core' ).getAutosave( postType, postId, userId )`\",\n      plugin: 'Gutenberg'\n    });\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    var currentUserId = Object(external_this_lodash_[\"get\"])(select('core').getCurrentUser(), ['id']);\n    return !!select('core').getAutosave(postType, postId, currentUserId);\n  };\n});\n/**\n * Return true if the post being edited is being scheduled. Preferring the\n * unsaved status values.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post has been published.\n */\n\nfunction selectors_isEditedPostBeingScheduled(state) {\n  var date = selectors_getEditedPostAttribute(state, 'date'); // Offset the date by one minute (network latency)\n\n  var checkedDate = new Date(Number(Object(external_this_wp_date_[\"getDate\"])(date)) - ONE_MINUTE_IN_MS);\n  return Object(external_this_wp_date_[\"isInTheFuture\"])(checkedDate);\n}\n/**\n * Returns whether the current post should be considered to have a \"floating\"\n * date (i.e. that it would publish \"Immediately\" rather than at a set time).\n *\n * Unlike in the PHP backend, the REST API returns a full date string for posts\n * where the 0000-00-00T00:00:00 placeholder is present in the database. To\n * infer that a post is set to publish \"Immediately\" we check whether the date\n * and modified date are the same.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether the edited post has a floating date value.\n */\n\nfunction isEditedPostDateFloating(state) {\n  var date = selectors_getEditedPostAttribute(state, 'date');\n  var modified = selectors_getEditedPostAttribute(state, 'modified');\n  var status = selectors_getEditedPostAttribute(state, 'status');\n\n  if (status === 'draft' || status === 'auto-draft' || status === 'pending') {\n    return date === modified || date === null;\n  }\n\n  return false;\n}\n/**\n * Returns true if the post is currently being saved, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post is being saved.\n */\n\nvar selectors_isSavingPost = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    return select('core').isSavingEntityRecord('postType', postType, postId);\n  };\n});\n/**\n * Returns true if a previous post save was attempted successfully, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post was saved successfully.\n */\n\nvar didPostSaveRequestSucceed = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    return !select('core').getLastEntitySaveError('postType', postType, postId);\n  };\n});\n/**\n * Returns true if a previous post save was attempted but failed, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post save failed.\n */\n\nvar didPostSaveRequestFail = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postType = selectors_getCurrentPostType(state);\n    var postId = selectors_getCurrentPostId(state);\n    return !!select('core').getLastEntitySaveError('postType', postType, postId);\n  };\n});\n/**\n * Returns true if the post is autosaving, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is autosaving.\n */\n\nfunction selectors_isAutosavingPost(state) {\n  if (!selectors_isSavingPost(state)) {\n    return false;\n  }\n\n  return !!Object(external_this_lodash_[\"get\"])(state.saving, ['options', 'isAutosave']);\n}\n/**\n * Returns true if the post is being previewed, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is being previewed.\n */\n\nfunction isPreviewingPost(state) {\n  if (!selectors_isSavingPost(state)) {\n    return false;\n  }\n\n  return !!state.saving.options.isPreview;\n}\n/**\n * Returns the post preview link\n *\n * @param {Object} state Global application state.\n *\n * @return {string?} Preview Link.\n */\n\nfunction selectors_getEditedPostPreviewLink(state) {\n  if (state.saving.pending || selectors_isSavingPost(state)) {\n    return;\n  }\n\n  var previewLink = getAutosaveAttribute(state, 'preview_link');\n\n  if (!previewLink) {\n    previewLink = selectors_getEditedPostAttribute(state, 'link');\n\n    if (previewLink) {\n      previewLink = Object(external_this_wp_url_[\"addQueryArgs\"])(previewLink, {\n        preview: true\n      });\n    }\n  }\n\n  var featuredImageId = selectors_getEditedPostAttribute(state, 'featured_media');\n\n  if (previewLink && featuredImageId) {\n    return Object(external_this_wp_url_[\"addQueryArgs\"])(previewLink, {\n      _thumbnail_id: featuredImageId\n    });\n  }\n\n  return previewLink;\n}\n/**\n * Returns a suggested post format for the current post, inferred only if there\n * is a single block within the post and it is of a type known to match a\n * default post format. Returns null if the format cannot be determined.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Suggested post format.\n */\n\nfunction selectors_getSuggestedPostFormat(state) {\n  var blocks = selectors_getEditorBlocks(state);\n  var name; // If there is only one block in the content of the post grab its name\n  // so we can derive a suitable post format from it.\n\n  if (blocks.length === 1) {\n    name = blocks[0].name;\n  } // If there are two blocks in the content and the last one is a text blocks\n  // grab the name of the first one to also suggest a post format from it.\n\n\n  if (blocks.length === 2) {\n    if (blocks[1].name === 'core/paragraph') {\n      name = blocks[0].name;\n    }\n  } // We only convert to default post formats in core.\n\n\n  switch (name) {\n    case 'core/image':\n      return 'image';\n\n    case 'core/quote':\n    case 'core/pullquote':\n      return 'quote';\n\n    case 'core/gallery':\n      return 'gallery';\n\n    case 'core/video':\n    case 'core-embed/youtube':\n    case 'core-embed/vimeo':\n      return 'video';\n\n    case 'core/audio':\n    case 'core-embed/spotify':\n    case 'core-embed/soundcloud':\n      return 'audio';\n  }\n\n  return null;\n}\n/**\n * Returns a set of blocks which are to be used in consideration of the post's\n * generated save content.\n *\n * @deprecated since Gutenberg 6.2.0.\n *\n * @param {Object} state Editor state.\n *\n * @return {WPBlock[]} Filtered set of blocks for save.\n */\n\nfunction getBlocksForSerialization(state) {\n  external_this_wp_deprecated_default()('`core/editor` getBlocksForSerialization selector', {\n    plugin: 'Gutenberg',\n    alternative: 'getEditorBlocks',\n    hint: 'Blocks serialization pre-processing occurs at save time'\n  });\n  var blocks = state.editor.present.blocks.value; // WARNING: Any changes to the logic of this function should be verified\n  // against the implementation of isEditedPostEmpty, which bypasses this\n  // function for performance' sake, in an assumption of this current logic\n  // being irrelevant to the optimized condition of emptiness.\n  // A single unmodified default block is assumed to be equivalent to an\n  // empty post.\n\n  var isSingleUnmodifiedDefaultBlock = blocks.length === 1 && Object(external_this_wp_blocks_[\"isUnmodifiedDefaultBlock\"])(blocks[0]);\n\n  if (isSingleUnmodifiedDefaultBlock) {\n    return [];\n  }\n\n  return blocks;\n}\n/**\n * Returns the content of the post being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post content.\n */\n\nvar getEditedPostContent = Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n  return function (state) {\n    var postId = selectors_getCurrentPostId(state);\n    var postType = selectors_getCurrentPostType(state);\n    var record = select('core').getEditedEntityRecord('postType', postType, postId);\n\n    if (record) {\n      if (typeof record.content === 'function') {\n        return record.content(record);\n      } else if (record.blocks) {\n        return serialize_blocks(record.blocks);\n      } else if (record.content) {\n        return record.content;\n      }\n    }\n\n    return '';\n  };\n});\n/**\n * Returns the reusable block with the given ID.\n *\n * @param {Object}        state Global application state.\n * @param {number|string} ref   The reusable block's ID.\n *\n * @return {Object} The reusable block, or null if none exists.\n */\n\nvar __experimentalGetReusableBlock = Object(rememo[\"a\" /* default */])(function (state, ref) {\n  var block = state.reusableBlocks.data[ref];\n\n  if (!block) {\n    return null;\n  }\n\n  var isTemporary = isNaN(parseInt(ref));\n  return selectors_objectSpread({}, block, {\n    id: isTemporary ? ref : +ref,\n    isTemporary: isTemporary\n  });\n}, function (state, ref) {\n  return [state.reusableBlocks.data[ref]];\n});\n/**\n * Returns whether or not the reusable block with the given ID is being saved.\n *\n * @param {Object} state Global application state.\n * @param {string} ref   The reusable block's ID.\n *\n * @return {boolean} Whether or not the reusable block is being saved.\n */\n\nfunction __experimentalIsSavingReusableBlock(state, ref) {\n  return state.reusableBlocks.isSaving[ref] || false;\n}\n/**\n * Returns true if the reusable block with the given ID is being fetched, or\n * false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} ref   The reusable block's ID.\n *\n * @return {boolean} Whether the reusable block is being fetched.\n */\n\nfunction __experimentalIsFetchingReusableBlock(state, ref) {\n  return !!state.reusableBlocks.isFetching[ref];\n}\n/**\n * Returns an array of all reusable blocks.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} An array of all reusable blocks.\n */\n\nvar selectors_experimentalGetReusableBlocks = Object(rememo[\"a\" /* default */])(function (state) {\n  return Object(external_this_lodash_[\"map\"])(state.reusableBlocks.data, function (value, ref) {\n    return __experimentalGetReusableBlock(state, ref);\n  });\n}, function (state) {\n  return [state.reusableBlocks.data];\n});\n/**\n * Returns state object prior to a specified optimist transaction ID, or `null`\n * if the transaction corresponding to the given ID cannot be found.\n *\n * @param {Object} state         Current global application state.\n * @param {Object} transactionId Optimist transaction ID.\n *\n * @return {Object} Global application state prior to transaction.\n */\n\nfunction getStateBeforeOptimisticTransaction(state, transactionId) {\n  var transaction = Object(external_this_lodash_[\"find\"])(state.optimist, function (entry) {\n    return entry.beforeState && Object(external_this_lodash_[\"get\"])(entry.action, ['optimist', 'id']) === transactionId;\n  });\n  return transaction ? transaction.beforeState : null;\n}\n/**\n * Returns true if the post is being published, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post is being published.\n */\n\nfunction selectors_isPublishingPost(state) {\n  if (!selectors_isSavingPost(state)) {\n    return false;\n  } // Saving is optimistic, so assume that current post would be marked as\n  // published if publishing\n\n\n  if (!selectors_isCurrentPostPublished(state)) {\n    return false;\n  } // Use post update transaction ID to retrieve the state prior to the\n  // optimistic transaction\n\n\n  var stateBeforeRequest = getStateBeforeOptimisticTransaction(state, POST_UPDATE_TRANSACTION_ID); // Consider as publishing when current post prior to request was not\n  // considered published\n\n  return !!stateBeforeRequest && !selectors_isCurrentPostPublished(null, stateBeforeRequest.currentPost);\n}\n/**\n * Returns whether the permalink is editable or not.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether or not the permalink is editable.\n */\n\nfunction isPermalinkEditable(state) {\n  var permalinkTemplate = selectors_getEditedPostAttribute(state, 'permalink_template');\n  return PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);\n}\n/**\n * Returns the permalink for the post.\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} The permalink, or null if the post is not viewable.\n */\n\nfunction getPermalink(state) {\n  var permalinkParts = getPermalinkParts(state);\n\n  if (!permalinkParts) {\n    return null;\n  }\n\n  var prefix = permalinkParts.prefix,\n      postName = permalinkParts.postName,\n      suffix = permalinkParts.suffix;\n\n  if (isPermalinkEditable(state)) {\n    return prefix + postName + suffix;\n  }\n\n  return prefix;\n}\n/**\n * Returns the slug for the post being edited, preferring a manually edited\n * value if one exists, then a sanitized version of the current post title, and\n * finally the post ID.\n *\n * @param {Object} state Editor state.\n *\n * @return {string} The current slug to be displayed in the editor\n */\n\nfunction getEditedPostSlug(state) {\n  return selectors_getEditedPostAttribute(state, 'slug') || cleanForSlug(selectors_getEditedPostAttribute(state, 'title')) || selectors_getCurrentPostId(state);\n}\n/**\n * Returns the permalink for a post, split into it's three parts: the prefix,\n * the postName, and the suffix.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} An object containing the prefix, postName, and suffix for\n *                  the permalink, or null if the post is not viewable.\n */\n\nfunction getPermalinkParts(state) {\n  var permalinkTemplate = selectors_getEditedPostAttribute(state, 'permalink_template');\n\n  if (!permalinkTemplate) {\n    return null;\n  }\n\n  var postName = selectors_getEditedPostAttribute(state, 'slug') || selectors_getEditedPostAttribute(state, 'generated_slug');\n\n  var _permalinkTemplate$sp = permalinkTemplate.split(PERMALINK_POSTNAME_REGEX),\n      _permalinkTemplate$sp2 = Object(slicedToArray[\"a\" /* default */])(_permalinkTemplate$sp, 2),\n      prefix = _permalinkTemplate$sp2[0],\n      suffix = _permalinkTemplate$sp2[1];\n\n  return {\n    prefix: prefix,\n    postName: postName,\n    suffix: suffix\n  };\n}\n/**\n * Returns true if an optimistic transaction is pending commit, for which the\n * before state satisfies the given predicate function.\n *\n * @param {Object}   state     Editor state.\n * @param {Function} predicate Function given state, returning true if match.\n *\n * @return {boolean} Whether predicate matches for some history.\n */\n\nfunction inSomeHistory(state, predicate) {\n  var optimist = state.optimist; // In recursion, optimist state won't exist. Assume exhausted options.\n\n  if (!optimist) {\n    return false;\n  }\n\n  return optimist.some(function (_ref) {\n    var beforeState = _ref.beforeState;\n    return beforeState && predicate(beforeState);\n  });\n}\n/**\n * Returns whether the post is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\n\nfunction isPostLocked(state) {\n  return state.postLock.isLocked;\n}\n/**\n * Returns whether post saving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\n\nfunction selectors_isPostSavingLocked(state) {\n  return Object.keys(state.postSavingLock).length > 0;\n}\n/**\n * Returns whether post autosaving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\n\nfunction isPostAutosavingLocked(state) {\n  return Object.keys(state.postAutosavingLock).length > 0;\n}\n/**\n * Returns whether the edition of the post has been taken over.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is post lock takeover.\n */\n\nfunction isPostLockTakeover(state) {\n  return state.postLock.isTakeover;\n}\n/**\n * Returns details about the post lock user.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} A user object.\n */\n\nfunction getPostLockUser(state) {\n  return state.postLock.user;\n}\n/**\n * Returns the active post lock.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The lock object.\n */\n\nfunction getActivePostLock(state) {\n  return state.postLock.activePostLock;\n}\n/**\n * Returns whether or not the user has the unfiltered_html capability.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether the user can or can't post unfiltered HTML.\n */\n\nfunction selectors_canUserUseUnfilteredHTML(state) {\n  return Object(external_this_lodash_[\"has\"])(selectors_getCurrentPost(state), ['_links', 'wp:action-unfiltered-html']);\n}\n/**\n * Returns whether the pre-publish panel should be shown\n * or skipped when the user clicks the \"publish\" button.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the pre-publish panel should be shown or not.\n */\n\nfunction selectors_isPublishSidebarEnabled(state) {\n  if (state.preferences.hasOwnProperty('isPublishSidebarEnabled')) {\n    return state.preferences.isPublishSidebarEnabled;\n  }\n\n  return PREFERENCES_DEFAULTS.isPublishSidebarEnabled;\n}\n/**\n * Return the current block list.\n *\n * @param {Object} state\n * @return {Array} Block list.\n */\n\nfunction selectors_getEditorBlocks(state) {\n  return selectors_getEditedPostAttribute(state, 'blocks') || EMPTY_ARRAY;\n}\n/**\n * A block selection object.\n *\n * @typedef {Object} WPBlockSelection\n *\n * @property {string} clientId     A block client ID.\n * @property {string} attributeKey A block attribute key.\n * @property {number} offset       An attribute value offset, based on the rich\n *                                 text value. See `wp.richText.create`.\n */\n\n/**\n * Returns the current selection start.\n *\n * @param {Object} state\n * @return {WPBlockSelection} The selection start.\n */\n\nfunction selectors_getEditorSelectionStart(state) {\n  return selectors_getEditedPostAttribute(state, 'selectionStart');\n}\n/**\n * Returns the current selection end.\n *\n * @param {Object} state\n * @return {WPBlockSelection} The selection end.\n */\n\nfunction selectors_getEditorSelectionEnd(state) {\n  return selectors_getEditedPostAttribute(state, 'selectionEnd');\n}\n/**\n * Is the editor ready\n *\n * @param {Object} state\n * @return {boolean} is Ready.\n */\n\nfunction __unstableIsEditorReady(state) {\n  return state.isReady;\n}\n/**\n * Returns the post editor settings.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} The editor settings object.\n */\n\nfunction selectors_getEditorSettings(state) {\n  return state.editorSettings;\n}\n/*\n * Backward compatibility\n */\n\nfunction getBlockEditorSelector(name) {\n  return Object(external_this_wp_data_[\"createRegistrySelector\"])(function (select) {\n    return function (state) {\n      var _select;\n\n      external_this_wp_deprecated_default()(\"`wp.data.select( 'core/editor' ).\" + name + '`', {\n        alternative: \"`wp.data.select( 'core/block-editor' ).\" + name + '`'\n      });\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      return (_select = select('core/block-editor'))[name].apply(_select, args);\n    };\n  });\n}\n/**\n * @see getBlockName in core/block-editor store.\n */\n\n\nvar getBlockName = getBlockEditorSelector('getBlockName');\n/**\n * @see isBlockValid in core/block-editor store.\n */\n\nvar isBlockValid = getBlockEditorSelector('isBlockValid');\n/**\n * @see getBlockAttributes in core/block-editor store.\n */\n\nvar getBlockAttributes = getBlockEditorSelector('getBlockAttributes');\n/**\n * @see getBlock in core/block-editor store.\n */\n\nvar selectors_getBlock = getBlockEditorSelector('getBlock');\n/**\n * @see getBlocks in core/block-editor store.\n */\n\nvar selectors_getBlocks = getBlockEditorSelector('getBlocks');\n/**\n * @see __unstableGetBlockWithoutInnerBlocks in core/block-editor store.\n */\n\nvar __unstableGetBlockWithoutInnerBlocks = getBlockEditorSelector('__unstableGetBlockWithoutInnerBlocks');\n/**\n * @see getClientIdsOfDescendants in core/block-editor store.\n */\n\nvar getClientIdsOfDescendants = getBlockEditorSelector('getClientIdsOfDescendants');\n/**\n * @see getClientIdsWithDescendants in core/block-editor store.\n */\n\nvar getClientIdsWithDescendants = getBlockEditorSelector('getClientIdsWithDescendants');\n/**\n * @see getGlobalBlockCount in core/block-editor store.\n */\n\nvar getGlobalBlockCount = getBlockEditorSelector('getGlobalBlockCount');\n/**\n * @see getBlocksByClientId in core/block-editor store.\n */\n\nvar selectors_getBlocksByClientId = getBlockEditorSelector('getBlocksByClientId');\n/**\n * @see getBlockCount in core/block-editor store.\n */\n\nvar getBlockCount = getBlockEditorSelector('getBlockCount');\n/**\n * @see getBlockSelectionStart in core/block-editor store.\n */\n\nvar getBlockSelectionStart = getBlockEditorSelector('getBlockSelectionStart');\n/**\n * @see getBlockSelectionEnd in core/block-editor store.\n */\n\nvar getBlockSelectionEnd = getBlockEditorSelector('getBlockSelectionEnd');\n/**\n * @see getSelectedBlockCount in core/block-editor store.\n */\n\nvar getSelectedBlockCount = getBlockEditorSelector('getSelectedBlockCount');\n/**\n * @see hasSelectedBlock in core/block-editor store.\n */\n\nvar hasSelectedBlock = getBlockEditorSelector('hasSelectedBlock');\n/**\n * @see getSelectedBlockClientId in core/block-editor store.\n */\n\nvar getSelectedBlockClientId = getBlockEditorSelector('getSelectedBlockClientId');\n/**\n * @see getSelectedBlock in core/block-editor store.\n */\n\nvar getSelectedBlock = getBlockEditorSelector('getSelectedBlock');\n/**\n * @see getBlockRootClientId in core/block-editor store.\n */\n\nvar getBlockRootClientId = getBlockEditorSelector('getBlockRootClientId');\n/**\n * @see getBlockHierarchyRootClientId in core/block-editor store.\n */\n\nvar getBlockHierarchyRootClientId = getBlockEditorSelector('getBlockHierarchyRootClientId');\n/**\n * @see getAdjacentBlockClientId in core/block-editor store.\n */\n\nvar getAdjacentBlockClientId = getBlockEditorSelector('getAdjacentBlockClientId');\n/**\n * @see getPreviousBlockClientId in core/block-editor store.\n */\n\nvar getPreviousBlockClientId = getBlockEditorSelector('getPreviousBlockClientId');\n/**\n * @see getNextBlockClientId in core/block-editor store.\n */\n\nvar getNextBlockClientId = getBlockEditorSelector('getNextBlockClientId');\n/**\n * @see getSelectedBlocksInitialCaretPosition in core/block-editor store.\n */\n\nvar getSelectedBlocksInitialCaretPosition = getBlockEditorSelector('getSelectedBlocksInitialCaretPosition');\n/**\n * @see getMultiSelectedBlockClientIds in core/block-editor store.\n */\n\nvar getMultiSelectedBlockClientIds = getBlockEditorSelector('getMultiSelectedBlockClientIds');\n/**\n * @see getMultiSelectedBlocks in core/block-editor store.\n */\n\nvar getMultiSelectedBlocks = getBlockEditorSelector('getMultiSelectedBlocks');\n/**\n * @see getFirstMultiSelectedBlockClientId in core/block-editor store.\n */\n\nvar getFirstMultiSelectedBlockClientId = getBlockEditorSelector('getFirstMultiSelectedBlockClientId');\n/**\n * @see getLastMultiSelectedBlockClientId in core/block-editor store.\n */\n\nvar getLastMultiSelectedBlockClientId = getBlockEditorSelector('getLastMultiSelectedBlockClientId');\n/**\n * @see isFirstMultiSelectedBlock in core/block-editor store.\n */\n\nvar isFirstMultiSelectedBlock = getBlockEditorSelector('isFirstMultiSelectedBlock');\n/**\n * @see isBlockMultiSelected in core/block-editor store.\n */\n\nvar isBlockMultiSelected = getBlockEditorSelector('isBlockMultiSelected');\n/**\n * @see isAncestorMultiSelected in core/block-editor store.\n */\n\nvar isAncestorMultiSelected = getBlockEditorSelector('isAncestorMultiSelected');\n/**\n * @see getMultiSelectedBlocksStartClientId in core/block-editor store.\n */\n\nvar getMultiSelectedBlocksStartClientId = getBlockEditorSelector('getMultiSelectedBlocksStartClientId');\n/**\n * @see getMultiSelectedBlocksEndClientId in core/block-editor store.\n */\n\nvar getMultiSelectedBlocksEndClientId = getBlockEditorSelector('getMultiSelectedBlocksEndClientId');\n/**\n * @see getBlockOrder in core/block-editor store.\n */\n\nvar getBlockOrder = getBlockEditorSelector('getBlockOrder');\n/**\n * @see getBlockIndex in core/block-editor store.\n */\n\nvar getBlockIndex = getBlockEditorSelector('getBlockIndex');\n/**\n * @see isBlockSelected in core/block-editor store.\n */\n\nvar isBlockSelected = getBlockEditorSelector('isBlockSelected');\n/**\n * @see hasSelectedInnerBlock in core/block-editor store.\n */\n\nvar hasSelectedInnerBlock = getBlockEditorSelector('hasSelectedInnerBlock');\n/**\n * @see isBlockWithinSelection in core/block-editor store.\n */\n\nvar isBlockWithinSelection = getBlockEditorSelector('isBlockWithinSelection');\n/**\n * @see hasMultiSelection in core/block-editor store.\n */\n\nvar hasMultiSelection = getBlockEditorSelector('hasMultiSelection');\n/**\n * @see isMultiSelecting in core/block-editor store.\n */\n\nvar isMultiSelecting = getBlockEditorSelector('isMultiSelecting');\n/**\n * @see isSelectionEnabled in core/block-editor store.\n */\n\nvar isSelectionEnabled = getBlockEditorSelector('isSelectionEnabled');\n/**\n * @see getBlockMode in core/block-editor store.\n */\n\nvar getBlockMode = getBlockEditorSelector('getBlockMode');\n/**\n * @see isTyping in core/block-editor store.\n */\n\nvar isTyping = getBlockEditorSelector('isTyping');\n/**\n * @see isCaretWithinFormattedText in core/block-editor store.\n */\n\nvar isCaretWithinFormattedText = getBlockEditorSelector('isCaretWithinFormattedText');\n/**\n * @see getBlockInsertionPoint in core/block-editor store.\n */\n\nvar getBlockInsertionPoint = getBlockEditorSelector('getBlockInsertionPoint');\n/**\n * @see isBlockInsertionPointVisible in core/block-editor store.\n */\n\nvar isBlockInsertionPointVisible = getBlockEditorSelector('isBlockInsertionPointVisible');\n/**\n * @see isValidTemplate in core/block-editor store.\n */\n\nvar isValidTemplate = getBlockEditorSelector('isValidTemplate');\n/**\n * @see getTemplate in core/block-editor store.\n */\n\nvar getTemplate = getBlockEditorSelector('getTemplate');\n/**\n * @see getTemplateLock in core/block-editor store.\n */\n\nvar getTemplateLock = getBlockEditorSelector('getTemplateLock');\n/**\n * @see canInsertBlockType in core/block-editor store.\n */\n\nvar selectors_canInsertBlockType = getBlockEditorSelector('canInsertBlockType');\n/**\n * @see getInserterItems in core/block-editor store.\n */\n\nvar getInserterItems = getBlockEditorSelector('getInserterItems');\n/**\n * @see hasInserterItems in core/block-editor store.\n */\n\nvar hasInserterItems = getBlockEditorSelector('hasInserterItems');\n/**\n * @see getBlockListSettings in core/block-editor store.\n */\n\nvar getBlockListSettings = getBlockEditorSelector('getBlockListSettings');\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/effects/reusable-blocks.js\n\n\n\n\nfunction reusable_blocks_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction reusable_blocks_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { reusable_blocks_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { reusable_blocks_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n // TODO: Ideally this would be the only dispatch in scope. This requires either\n// refactoring editor actions to yielded controls, or replacing direct dispatch\n// on the editor store with action creators (e.g. `REMOVE_REUSABLE_BLOCK`).\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Module Constants\n */\n\nvar REUSABLE_BLOCK_NOTICE_ID = 'REUSABLE_BLOCK_NOTICE_ID';\n/**\n * Fetch Reusable blocks Effect Handler.\n *\n * @param {Object} action  action object.\n * @param {Object} store   Redux Store.\n */\n\nvar fetchReusableBlocks = /*#__PURE__*/function () {\n  var _ref = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(action, store) {\n    var id, dispatch, postType, posts, results;\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            id = action.id;\n            dispatch = store.dispatch; // TODO: these are potentially undefined, this fix is in place\n            // until there is a filter to not use reusable blocks if undefined\n\n            _context.next = 4;\n            return external_this_wp_apiFetch_default()({\n              path: '/wp/v2/types/wp_block'\n            });\n\n          case 4:\n            postType = _context.sent;\n\n            if (postType) {\n              _context.next = 7;\n              break;\n            }\n\n            return _context.abrupt(\"return\");\n\n          case 7:\n            _context.prev = 7;\n\n            if (!id) {\n              _context.next = 15;\n              break;\n            }\n\n            _context.next = 11;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(id)\n            });\n\n          case 11:\n            _context.t0 = _context.sent;\n            posts = [_context.t0];\n            _context.next = 18;\n            break;\n\n          case 15:\n            _context.next = 17;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/\".concat(postType.rest_base, \"?per_page=-1\")\n            });\n\n          case 17:\n            posts = _context.sent;\n\n          case 18:\n            results = Object(external_this_lodash_[\"compact\"])(Object(external_this_lodash_[\"map\"])(posts, function (post) {\n              if (post.status !== 'publish' || post.content.protected) {\n                return null;\n              }\n\n              return reusable_blocks_objectSpread({}, post, {\n                content: post.content.raw,\n                title: post.title.raw\n              });\n            }));\n\n            if (results.length) {\n              dispatch(__experimentalReceiveReusableBlocks(results));\n            }\n\n            dispatch({\n              type: 'FETCH_REUSABLE_BLOCKS_SUCCESS',\n              id: id\n            });\n            _context.next = 26;\n            break;\n\n          case 23:\n            _context.prev = 23;\n            _context.t1 = _context[\"catch\"](7);\n            dispatch({\n              type: 'FETCH_REUSABLE_BLOCKS_FAILURE',\n              id: id,\n              error: _context.t1\n            });\n\n          case 26:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, null, [[7, 23]]);\n  }));\n\n  return function fetchReusableBlocks(_x, _x2) {\n    return _ref.apply(this, arguments);\n  };\n}();\n/**\n * Save Reusable blocks Effect Handler.\n *\n * @param {Object} action  action object.\n * @param {Object} store   Redux Store.\n */\n\nvar saveReusableBlocks = /*#__PURE__*/function () {\n  var _ref2 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee2(action, store) {\n    var postType, id, dispatch, state, _getReusableBlock, title, content, isTemporary, data, path, method, updatedReusableBlock, message;\n\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee2$(_context2) {\n      while (1) {\n        switch (_context2.prev = _context2.next) {\n          case 0:\n            _context2.next = 2;\n            return external_this_wp_apiFetch_default()({\n              path: '/wp/v2/types/wp_block'\n            });\n\n          case 2:\n            postType = _context2.sent;\n\n            if (postType) {\n              _context2.next = 5;\n              break;\n            }\n\n            return _context2.abrupt(\"return\");\n\n          case 5:\n            id = action.id;\n            dispatch = store.dispatch;\n            state = store.getState();\n            _getReusableBlock = __experimentalGetReusableBlock(state, id), title = _getReusableBlock.title, content = _getReusableBlock.content, isTemporary = _getReusableBlock.isTemporary;\n            data = isTemporary ? {\n              title: title,\n              content: content,\n              status: 'publish'\n            } : {\n              id: id,\n              title: title,\n              content: content,\n              status: 'publish'\n            };\n            path = isTemporary ? \"/wp/v2/\".concat(postType.rest_base) : \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(id);\n            method = isTemporary ? 'POST' : 'PUT';\n            _context2.prev = 12;\n            _context2.next = 15;\n            return external_this_wp_apiFetch_default()({\n              path: path,\n              data: data,\n              method: method\n            });\n\n          case 15:\n            updatedReusableBlock = _context2.sent;\n            dispatch({\n              type: 'SAVE_REUSABLE_BLOCK_SUCCESS',\n              updatedId: updatedReusableBlock.id,\n              id: id\n            });\n            message = isTemporary ? Object(external_this_wp_i18n_[\"__\"])('Block created.') : Object(external_this_wp_i18n_[\"__\"])('Block updated.');\n            Object(external_this_wp_data_[\"dispatch\"])('core/notices').createSuccessNotice(message, {\n              id: REUSABLE_BLOCK_NOTICE_ID,\n              type: 'snackbar'\n            });\n\n            Object(external_this_wp_data_[\"dispatch\"])('core/block-editor').__unstableSaveReusableBlock(id, updatedReusableBlock.id);\n\n            _context2.next = 26;\n            break;\n\n          case 22:\n            _context2.prev = 22;\n            _context2.t0 = _context2[\"catch\"](12);\n            dispatch({\n              type: 'SAVE_REUSABLE_BLOCK_FAILURE',\n              id: id\n            });\n            Object(external_this_wp_data_[\"dispatch\"])('core/notices').createErrorNotice(_context2.t0.message, {\n              id: REUSABLE_BLOCK_NOTICE_ID\n            });\n\n          case 26:\n          case \"end\":\n            return _context2.stop();\n        }\n      }\n    }, _callee2, null, [[12, 22]]);\n  }));\n\n  return function saveReusableBlocks(_x3, _x4) {\n    return _ref2.apply(this, arguments);\n  };\n}();\n/**\n * Delete Reusable blocks Effect Handler.\n *\n * @param {Object} action  action object.\n * @param {Object} store   Redux Store.\n */\n\nvar deleteReusableBlocks = /*#__PURE__*/function () {\n  var _ref3 = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee3(action, store) {\n    var postType, id, getState, dispatch, reusableBlock, allBlocks, associatedBlocks, associatedBlockClientIds, transactionId, message;\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee3$(_context3) {\n      while (1) {\n        switch (_context3.prev = _context3.next) {\n          case 0:\n            _context3.next = 2;\n            return external_this_wp_apiFetch_default()({\n              path: '/wp/v2/types/wp_block'\n            });\n\n          case 2:\n            postType = _context3.sent;\n\n            if (postType) {\n              _context3.next = 5;\n              break;\n            }\n\n            return _context3.abrupt(\"return\");\n\n          case 5:\n            id = action.id;\n            getState = store.getState, dispatch = store.dispatch; // Don't allow a reusable block with a temporary ID to be deleted\n\n            reusableBlock = __experimentalGetReusableBlock(getState(), id);\n\n            if (!(!reusableBlock || reusableBlock.isTemporary)) {\n              _context3.next = 10;\n              break;\n            }\n\n            return _context3.abrupt(\"return\");\n\n          case 10:\n            // Remove any other blocks that reference this reusable block\n            allBlocks = Object(external_this_wp_data_[\"select\"])('core/block-editor').getBlocks();\n            associatedBlocks = allBlocks.filter(function (block) {\n              return Object(external_this_wp_blocks_[\"isReusableBlock\"])(block) && block.attributes.ref === id;\n            });\n            associatedBlockClientIds = associatedBlocks.map(function (block) {\n              return block.clientId;\n            });\n            transactionId = Object(external_this_lodash_[\"uniqueId\"])();\n            dispatch({\n              type: 'REMOVE_REUSABLE_BLOCK',\n              id: id,\n              optimist: {\n                type: redux_optimist[\"BEGIN\"],\n                id: transactionId\n              }\n            }); // Remove the parsed block.\n\n            if (associatedBlockClientIds.length) {\n              Object(external_this_wp_data_[\"dispatch\"])('core/block-editor').removeBlocks(associatedBlockClientIds);\n            }\n\n            _context3.prev = 16;\n            _context3.next = 19;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(id),\n              method: 'DELETE'\n            });\n\n          case 19:\n            dispatch({\n              type: 'DELETE_REUSABLE_BLOCK_SUCCESS',\n              id: id,\n              optimist: {\n                type: redux_optimist[\"COMMIT\"],\n                id: transactionId\n              }\n            });\n            message = Object(external_this_wp_i18n_[\"__\"])('Block deleted.');\n            Object(external_this_wp_data_[\"dispatch\"])('core/notices').createSuccessNotice(message, {\n              id: REUSABLE_BLOCK_NOTICE_ID,\n              type: 'snackbar'\n            });\n            _context3.next = 28;\n            break;\n\n          case 24:\n            _context3.prev = 24;\n            _context3.t0 = _context3[\"catch\"](16);\n            dispatch({\n              type: 'DELETE_REUSABLE_BLOCK_FAILURE',\n              id: id,\n              optimist: {\n                type: redux_optimist[\"REVERT\"],\n                id: transactionId\n              }\n            });\n            Object(external_this_wp_data_[\"dispatch\"])('core/notices').createErrorNotice(_context3.t0.message, {\n              id: REUSABLE_BLOCK_NOTICE_ID\n            });\n\n          case 28:\n          case \"end\":\n            return _context3.stop();\n        }\n      }\n    }, _callee3, null, [[16, 24]]);\n  }));\n\n  return function deleteReusableBlocks(_x5, _x6) {\n    return _ref3.apply(this, arguments);\n  };\n}();\n/**\n * Convert a reusable block to a static block effect handler\n *\n * @param {Object} action  action object.\n * @param {Object} store   Redux Store.\n */\n\nvar reusable_blocks_convertBlockToStatic = function convertBlockToStatic(action, store) {\n  var state = store.getState();\n  var oldBlock = Object(external_this_wp_data_[\"select\"])('core/block-editor').getBlock(action.clientId);\n  var reusableBlock = __experimentalGetReusableBlock(state, oldBlock.attributes.ref);\n  var newBlocks = Object(external_this_wp_blocks_[\"parse\"])(reusableBlock.content);\n  Object(external_this_wp_data_[\"dispatch\"])('core/block-editor').replaceBlocks(oldBlock.clientId, newBlocks);\n};\n/**\n * Convert a static block to a reusable block effect handler\n *\n * @param {Object} action  action object.\n * @param {Object} store   Redux Store.\n */\n\nvar reusable_blocks_convertBlockToReusable = function convertBlockToReusable(action, store) {\n  var dispatch = store.dispatch;\n  var reusableBlock = {\n    id: Object(external_this_lodash_[\"uniqueId\"])('reusable'),\n    title: Object(external_this_wp_i18n_[\"__\"])('Untitled Reusable Block'),\n    content: Object(external_this_wp_blocks_[\"serialize\"])(Object(external_this_wp_data_[\"select\"])('core/block-editor').getBlocksByClientId(action.clientIds))\n  };\n  dispatch(__experimentalReceiveReusableBlocks([reusableBlock]));\n  dispatch(__experimentalSaveReusableBlock(reusableBlock.id));\n  Object(external_this_wp_data_[\"dispatch\"])('core/block-editor').replaceBlocks(action.clientIds, Object(external_this_wp_blocks_[\"createBlock\"])('core/block', {\n    ref: reusableBlock.id\n  }));\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/effects.js\n/**\n * Internal dependencies\n */\n\n/* harmony default export */ var effects = ({\n  FETCH_REUSABLE_BLOCKS: function FETCH_REUSABLE_BLOCKS(action, store) {\n    fetchReusableBlocks(action, store);\n  },\n  SAVE_REUSABLE_BLOCK: function SAVE_REUSABLE_BLOCK(action, store) {\n    saveReusableBlocks(action, store);\n  },\n  DELETE_REUSABLE_BLOCK: function DELETE_REUSABLE_BLOCK(action, store) {\n    deleteReusableBlocks(action, store);\n  },\n  CONVERT_BLOCK_TO_STATIC: reusable_blocks_convertBlockToStatic,\n  CONVERT_BLOCK_TO_REUSABLE: reusable_blocks_convertBlockToReusable\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/middlewares.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Applies the custom middlewares used specifically in the editor module.\n *\n * @param {Object} store Store Object.\n *\n * @return {Object} Update Store Object.\n */\n\nfunction applyMiddlewares(store) {\n  var enhancedDispatch = function enhancedDispatch() {\n    throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n  };\n\n  var middlewareAPI = {\n    getState: store.getState,\n    dispatch: function dispatch() {\n      return enhancedDispatch.apply(void 0, arguments);\n    }\n  };\n  enhancedDispatch = refx_default()(effects)(middlewareAPI)(store.dispatch);\n  store.dispatch = enhancedDispatch;\n  return store;\n}\n\n/* harmony default export */ var middlewares = (applyMiddlewares);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/controls.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Returns a control descriptor signalling to subscribe to the registry and\n * resolve the control promise only when the next state change occurs.\n *\n * @return {Object} Control descriptor.\n */\n\nfunction awaitNextStateChange() {\n  return {\n    type: 'AWAIT_NEXT_STATE_CHANGE'\n  };\n}\n/**\n * Returns a control descriptor signalling to resolve with the current data\n * registry.\n *\n * @return {Object} Control descriptor.\n */\n\nfunction getRegistry() {\n  return {\n    type: 'GET_REGISTRY'\n  };\n}\n/**\n * Function returning a sessionStorage key to set or retrieve a given post's\n * automatic session backup.\n *\n * Keys are crucially prefixed with 'wp-autosave-' so that wp-login.php's\n * `loggedout` handler can clear sessionStorage of any user-private content.\n *\n * @see https://github.com/WordPress/wordpress-develop/blob/6dad32d2aed47e6c0cf2aee8410645f6d7aba6bd/src/wp-login.php#L103\n *\n * @param {string} postId  Post ID.\n * @return {string}        sessionStorage key\n */\n\nfunction postKey(postId) {\n  return \"wp-autosave-block-editor-post-\".concat(postId);\n}\n\nfunction localAutosaveGet(postId) {\n  return window.sessionStorage.getItem(postKey(postId));\n}\nfunction localAutosaveSet(postId, title, content, excerpt) {\n  window.sessionStorage.setItem(postKey(postId), JSON.stringify({\n    post_title: title,\n    content: content,\n    excerpt: excerpt\n  }));\n}\nfunction localAutosaveClear(postId) {\n  window.sessionStorage.removeItem(postKey(postId));\n}\nvar controls = {\n  AWAIT_NEXT_STATE_CHANGE: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function () {\n      return new Promise(function (resolve) {\n        var unsubscribe = registry.subscribe(function () {\n          unsubscribe();\n          resolve();\n        });\n      });\n    };\n  }),\n  GET_REGISTRY: Object(external_this_wp_data_[\"createRegistryControl\"])(function (registry) {\n    return function () {\n      return registry;\n    };\n  }),\n  LOCAL_AUTOSAVE_SET: function LOCAL_AUTOSAVE_SET(_ref) {\n    var postId = _ref.postId,\n        title = _ref.title,\n        content = _ref.content,\n        excerpt = _ref.excerpt;\n    localAutosaveSet(postId, title, content, excerpt);\n  }\n};\n/* harmony default export */ var store_controls = (controls);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/store/index.js\n\n\nfunction store_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction store_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { store_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { store_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n/**\n * Post editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/data/README.md#registerStore\n *\n * @type {Object}\n */\n\nvar storeConfig = {\n  reducer: reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject,\n  controls: store_objectSpread({}, external_this_wp_dataControls_[\"controls\"], {}, store_controls)\n};\nvar store_store = Object(external_this_wp_data_[\"registerStore\"])(STORE_KEY, store_objectSpread({}, storeConfig, {\n  persist: ['preferences']\n}));\nmiddlewares(store_store);\n/* harmony default export */ var build_module_store = (store_store);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/custom-sources-backwards-compatibility.js\n\n\n\n\n\n\nfunction custom_sources_backwards_compatibility_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction custom_sources_backwards_compatibility_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { custom_sources_backwards_compatibility_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { custom_sources_backwards_compatibility_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Object whose keys are the names of block attributes, where each value\n * represents the meta key to which the block attribute is intended to save.\n *\n * @see https://developer.wordpress.org/reference/functions/register_meta/\n *\n * @typedef {Object<string,string>} WPMetaAttributeMapping\n */\n\n/**\n * Given a mapping of attribute names (meta source attributes) to their\n * associated meta key, returns a higher order component that overrides its\n * `attributes` and `setAttributes` props to sync any changes with the edited\n * post's meta keys.\n *\n * @param {WPMetaAttributeMapping} metaAttributes Meta attribute mapping.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\n\nvar custom_sources_backwards_compatibility_createWithMetaAttributeSource = function createWithMetaAttributeSource(metaAttributes) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (BlockEdit) {\n    return function (_ref) {\n      var attributes = _ref.attributes,\n          _setAttributes = _ref.setAttributes,\n          props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"attributes\", \"setAttributes\"]);\n\n      var postType = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n        return select('core/editor').getCurrentPostType();\n      }, []);\n\n      var _useEntityProp = Object(external_this_wp_coreData_[\"useEntityProp\"])('postType', postType, 'meta'),\n          _useEntityProp2 = Object(slicedToArray[\"a\" /* default */])(_useEntityProp, 2),\n          meta = _useEntityProp2[0],\n          setMeta = _useEntityProp2[1];\n\n      var mergedAttributes = Object(external_this_wp_element_[\"useMemo\"])(function () {\n        return custom_sources_backwards_compatibility_objectSpread({}, attributes, {}, Object(external_this_lodash_[\"mapValues\"])(metaAttributes, function (metaKey) {\n          return meta[metaKey];\n        }));\n      }, [attributes, meta]);\n      return Object(external_this_wp_element_[\"createElement\"])(BlockEdit, Object(esm_extends[\"a\" /* default */])({\n        attributes: mergedAttributes,\n        setAttributes: function setAttributes(nextAttributes) {\n          var nextMeta = Object(external_this_lodash_[\"mapKeys\"])( // Filter to intersection of keys between the updated\n          // attributes and those with an associated meta key.\n          Object(external_this_lodash_[\"pickBy\"])(nextAttributes, function (value, key) {\n            return metaAttributes[key];\n          }), // Rename the keys to the expected meta key name.\n          function (value, attributeKey) {\n            return metaAttributes[attributeKey];\n          });\n\n          if (!Object(external_this_lodash_[\"isEmpty\"])(nextMeta)) {\n            setMeta(nextMeta);\n          }\n\n          _setAttributes(nextAttributes);\n        }\n      }, props));\n    };\n  }, 'withMetaAttributeSource');\n};\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade meta-sourced attributes to use the post's meta entity property.\n *\n * @param {WPBlockSettings} settings Registered block settings.\n *\n * @return {WPBlockSettings} Filtered block settings.\n */\n\n\nfunction shimAttributeSource(settings) {\n  /** @type {WPMetaAttributeMapping} */\n  var metaAttributes = Object(external_this_lodash_[\"mapValues\"])(Object(external_this_lodash_[\"pickBy\"])(settings.attributes, {\n    source: 'meta'\n  }), 'meta');\n\n  if (!Object(external_this_lodash_[\"isEmpty\"])(metaAttributes)) {\n    settings.edit = custom_sources_backwards_compatibility_createWithMetaAttributeSource(metaAttributes)(settings.edit);\n  }\n\n  return settings;\n}\n\nObject(external_this_wp_hooks_[\"addFilter\"])('blocks.registerBlockType', 'core/editor/custom-sources-backwards-compatibility/shim-attribute-source', shimAttributeSource); // The above filter will only capture blocks registered after the filter was\n// added. There may already be blocks registered by this point, and those must\n// be updated to apply the shim.\n//\n// The following implementation achieves this, albeit with a couple caveats:\n// - Only blocks registered on the global store will be modified.\n// - The block settings are directly mutated, since there is currently no\n//   mechanism to update an existing block registration. This is the reason for\n//   `getBlockType` separate from `getBlockTypes`, since the latter returns a\n//   _copy_ of the block registration (i.e. the mutation would not affect the\n//   actual registered block settings).\n//\n// `getBlockTypes` or `getBlockType` implementation could change in the future\n// in regards to creating settings clones, but the corresponding end-to-end\n// tests for meta blocks should cover against any potential regressions.\n//\n// In the future, we could support updating block settings, at which point this\n// implementation could use that mechanism instead.\n\nObject(external_this_wp_data_[\"select\"])('core/blocks').getBlockTypes().map(function (_ref2) {\n  var name = _ref2.name;\n  return Object(external_this_wp_data_[\"select\"])('core/blocks').getBlockType(name);\n}).forEach(shimAttributeSource);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autocompleters/user.js\n\n\n/**\n * WordPress dependencies\n */\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * A user mentions completer.\n *\n * @type {WPCompleter}\n */\n\n/* harmony default export */ var autocompleters_user = ({\n  name: 'users',\n  className: 'editor-autocompleters__user',\n  triggerPrefix: '@',\n  options: function options(search) {\n    var payload = '';\n\n    if (search) {\n      payload = '?search=' + encodeURIComponent(search);\n    }\n\n    return external_this_wp_apiFetch_default()({\n      path: '/wp/v2/users' + payload\n    });\n  },\n  isDebounced: true,\n  getOptionKeywords: function getOptionKeywords(user) {\n    return [user.slug, user.name];\n  },\n  getOptionLabel: function getOptionLabel(user) {\n    var avatar = user.avatar_urls && user.avatar_urls[24] ? Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n      key: \"avatar\",\n      className: \"editor-autocompleters__user-avatar\",\n      alt: \"\",\n      src: user.avatar_urls[24]\n    }) : Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"editor-autocompleters__no-avatar\"\n    });\n    return [avatar, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      key: \"name\",\n      className: \"editor-autocompleters__user-name\"\n    }, user.name), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      key: \"slug\",\n      className: \"editor-autocompleters__user-slug\"\n    }, user.slug)];\n  },\n  getOptionCompletion: function getOptionCompletion(user) {\n    return \"@\".concat(user.slug);\n  }\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/default-autocompleters.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction setDefaultCompleters() {\n  var completers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  // Provide copies so filters may directly modify them.\n  completers.push(Object(external_this_lodash_[\"clone\"])(autocompleters_user));\n  return completers;\n}\n\nObject(external_this_wp_hooks_[\"addFilter\"])('editor.Autocomplete.completers', 'editor/autocompleters/set-default-completers', setDefaultCompleters);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/hooks/index.js\n/**\n * Internal dependencies\n */\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autocompleters/index.js\n\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/autosave-monitor/index.js\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar autosave_monitor_AutosaveMonitor = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(AutosaveMonitor, _Component);\n\n  var _super = _createSuper(AutosaveMonitor);\n\n  function AutosaveMonitor() {\n    Object(classCallCheck[\"a\" /* default */])(this, AutosaveMonitor);\n\n    return _super.apply(this, arguments);\n  }\n\n  Object(createClass[\"a\" /* default */])(AutosaveMonitor, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props = this.props,\n          isDirty = _this$props.isDirty,\n          editsReference = _this$props.editsReference,\n          isAutosaveable = _this$props.isAutosaveable,\n          isAutosaving = _this$props.isAutosaving; // The edits reference is held for comparison to avoid scheduling an\n      // autosave if an edit has not been made since the last autosave\n      // completion. This is assigned when the autosave completes, and reset\n      // when an edit occurs.\n      //\n      // See: https://github.com/WordPress/gutenberg/issues/12318\n\n      if (editsReference !== prevProps.editsReference) {\n        this.didAutosaveForEditsReference = false;\n      }\n\n      if (!isAutosaving && prevProps.isAutosaving) {\n        this.didAutosaveForEditsReference = true;\n      }\n\n      if (prevProps.isDirty !== isDirty || prevProps.isAutosaveable !== isAutosaveable || prevProps.editsReference !== editsReference) {\n        this.toggleTimer(isDirty && isAutosaveable && !this.didAutosaveForEditsReference);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.toggleTimer(false);\n    }\n  }, {\n    key: \"toggleTimer\",\n    value: function toggleTimer(isPendingSave) {\n      var _this = this;\n\n      var _this$props2 = this.props,\n          interval = _this$props2.interval,\n          _this$props2$shouldTh = _this$props2.shouldThrottle,\n          shouldThrottle = _this$props2$shouldTh === void 0 ? false : _this$props2$shouldTh; // By default, AutosaveMonitor will wait for a pause in editing before\n      // autosaving. In other words, its action is \"debounced\".\n      //\n      // The `shouldThrottle` props allows overriding this behaviour, thus\n      // making the autosave action \"throttled\".\n\n      if (!shouldThrottle && this.pendingSave) {\n        clearTimeout(this.pendingSave);\n        delete this.pendingSave;\n      }\n\n      if (isPendingSave && !(shouldThrottle && this.pendingSave)) {\n        this.pendingSave = setTimeout(function () {\n          _this.props.autosave();\n\n          delete _this.pendingSave;\n        }, interval * 1000);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return AutosaveMonitor;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var autosave_monitor = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, ownProps) {\n  var _select = select('core'),\n      getReferenceByDistinctEdits = _select.getReferenceByDistinctEdits;\n\n  var _select2 = select('core/editor'),\n      isEditedPostDirty = _select2.isEditedPostDirty,\n      isEditedPostAutosaveable = _select2.isEditedPostAutosaveable,\n      isAutosavingPost = _select2.isAutosavingPost,\n      getEditorSettings = _select2.getEditorSettings;\n\n  var _ownProps$interval = ownProps.interval,\n      interval = _ownProps$interval === void 0 ? getEditorSettings().autosaveInterval : _ownProps$interval;\n  return {\n    isDirty: isEditedPostDirty(),\n    isAutosaveable: isEditedPostAutosaveable(),\n    editsReference: getReferenceByDistinctEdits(),\n    isAutosaving: isAutosavingPost(),\n    interval: interval\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, ownProps) {\n  return {\n    autosave: function autosave() {\n      var _ownProps$autosave = ownProps.autosave,\n          autosave = _ownProps$autosave === void 0 ? dispatch('core/editor').autosave : _ownProps$autosave;\n      autosave();\n    }\n  };\n})])(autosave_monitor_AutosaveMonitor));\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/item.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar item_TableOfContentsItem = function TableOfContentsItem(_ref) {\n  var children = _ref.children,\n      isValid = _ref.isValid,\n      level = _ref.level,\n      _ref$path = _ref.path,\n      path = _ref$path === void 0 ? [] : _ref$path,\n      href = _ref.href,\n      onSelect = _ref.onSelect;\n  return Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n    className: classnames_default()('document-outline__item', \"is-\".concat(level.toLowerCase()), {\n      'is-invalid': !isValid\n    })\n  }, Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n    href: href,\n    className: \"document-outline__button\",\n    onClick: onSelect\n  }, Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"document-outline__emdash\",\n    \"aria-hidden\": \"true\"\n  }), // path is an array of nodes that are ancestors of the heading starting in the top level node.\n  // This mapping renders each ancestor to make it easier for the user to know where the headings are nested.\n  path.map(function (_ref2, index) {\n    var clientId = _ref2.clientId;\n    return Object(external_this_wp_element_[\"createElement\"])(\"strong\", {\n      key: index,\n      className: \"document-outline__level\"\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockTitle\"], {\n      clientId: clientId\n    }));\n  }), Object(external_this_wp_element_[\"createElement\"])(\"strong\", {\n    className: \"document-outline__level\"\n  }, level), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"document-outline__item-content\"\n  }, children)));\n};\n\n/* harmony default export */ var document_outline_item = (item_TableOfContentsItem);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/index.js\n\n\n\n\nfunction document_outline_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction document_outline_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { document_outline_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { document_outline_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Module constants\n */\n\nvar emptyHeadingContent = Object(external_this_wp_element_[\"createElement\"])(\"em\", null, Object(external_this_wp_i18n_[\"__\"])('(Empty heading)'));\nvar incorrectLevelContent = [Object(external_this_wp_element_[\"createElement\"])(\"br\", {\n  key: \"incorrect-break\"\n}), Object(external_this_wp_element_[\"createElement\"])(\"em\", {\n  key: \"incorrect-message\"\n}, Object(external_this_wp_i18n_[\"__\"])('(Incorrect heading level)'))];\nvar singleH1Headings = [Object(external_this_wp_element_[\"createElement\"])(\"br\", {\n  key: \"incorrect-break-h1\"\n}), Object(external_this_wp_element_[\"createElement\"])(\"em\", {\n  key: \"incorrect-message-h1\"\n}, Object(external_this_wp_i18n_[\"__\"])('(Your theme may already use a H1 for the post title)'))];\nvar multipleH1Headings = [Object(external_this_wp_element_[\"createElement\"])(\"br\", {\n  key: \"incorrect-break-multiple-h1\"\n}), Object(external_this_wp_element_[\"createElement\"])(\"em\", {\n  key: \"incorrect-message-multiple-h1\"\n}, Object(external_this_wp_i18n_[\"__\"])('(Multiple H1 headings are not recommended)'))];\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * path    - An array of blocks that are ancestors of the heading starting from a top-level node.\n *           Can be an empty array if the heading is a top-level node (is not nested inside another block).\n * level   - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n * @param {?Array} path   An array of blocks that are ancestors of the blocks passed as blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\n\nvar document_outline_computeOutlineHeadings = function computeOutlineHeadings() {\n  var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  return Object(external_this_lodash_[\"flatMap\"])(blocks, function () {\n    var block = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    if (block.name === 'core/heading') {\n      return document_outline_objectSpread({}, block, {\n        path: path,\n        level: block.attributes.level,\n        isEmpty: isEmptyHeading(block)\n      });\n    }\n\n    return computeOutlineHeadings(block.innerBlocks, [].concat(Object(toConsumableArray[\"a\" /* default */])(path), [block]));\n  });\n};\n\nvar isEmptyHeading = function isEmptyHeading(heading) {\n  return !heading.attributes.content || heading.attributes.content.length === 0;\n};\n\nvar document_outline_DocumentOutline = function DocumentOutline(_ref) {\n  var _ref$blocks = _ref.blocks,\n      blocks = _ref$blocks === void 0 ? [] : _ref$blocks,\n      title = _ref.title,\n      onSelect = _ref.onSelect,\n      isTitleSupported = _ref.isTitleSupported,\n      hasOutlineItemsDisabled = _ref.hasOutlineItemsDisabled;\n  var headings = document_outline_computeOutlineHeadings(blocks);\n\n  if (headings.length < 1) {\n    return null;\n  }\n\n  var prevHeadingLevel = 1; // Not great but it's the simplest way to locate the title right now.\n\n  var titleNode = document.querySelector('.editor-post-title__input');\n  var hasTitle = isTitleSupported && title && titleNode;\n  var countByLevel = Object(external_this_lodash_[\"countBy\"])(headings, 'level');\n  var hasMultipleH1 = countByLevel[1] > 1;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"document-outline\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", null, hasTitle && Object(external_this_wp_element_[\"createElement\"])(document_outline_item, {\n    level: Object(external_this_wp_i18n_[\"__\"])('Title'),\n    isValid: true,\n    onSelect: onSelect,\n    href: \"#\".concat(titleNode.id),\n    isDisabled: hasOutlineItemsDisabled\n  }, title), headings.map(function (item, index) {\n    // Headings remain the same, go up by one, or down by any amount.\n    // Otherwise there are missing levels.\n    var isIncorrectLevel = item.level > prevHeadingLevel + 1;\n    var isValid = !item.isEmpty && !isIncorrectLevel && !!item.level && (item.level !== 1 || !hasMultipleH1 && !hasTitle);\n    prevHeadingLevel = item.level;\n    return Object(external_this_wp_element_[\"createElement\"])(document_outline_item, {\n      key: index,\n      level: \"H\".concat(item.level),\n      isValid: isValid,\n      path: item.path,\n      isDisabled: hasOutlineItemsDisabled,\n      href: \"#block-\".concat(item.clientId),\n      onSelect: onSelect\n    }, item.isEmpty ? emptyHeadingContent : Object(external_this_wp_richText_[\"getTextContent\"])(Object(external_this_wp_richText_[\"create\"])({\n      html: item.attributes.content\n    })), isIncorrectLevel && incorrectLevelContent, item.level === 1 && hasMultipleH1 && multipleH1Headings, hasTitle && item.level === 1 && !hasMultipleH1 && singleH1Headings);\n  })));\n};\n/* harmony default export */ var document_outline = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getBlocks = _select.getBlocks;\n\n  var _select2 = select('core/editor'),\n      getEditedPostAttribute = _select2.getEditedPostAttribute;\n\n  var _select3 = select('core'),\n      getPostType = _select3.getPostType;\n\n  var postType = getPostType(getEditedPostAttribute('type'));\n  return {\n    title: getEditedPostAttribute('title'),\n    blocks: getBlocks(),\n    isTitleSupported: Object(external_this_lodash_[\"get\"])(postType, ['supports', 'title'], false)\n  };\n}))(document_outline_DocumentOutline));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/document-outline/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction DocumentOutlineCheck(_ref) {\n  var blocks = _ref.blocks,\n      children = _ref.children;\n  var headings = Object(external_this_lodash_[\"filter\"])(blocks, function (block) {\n    return block.name === 'core/heading';\n  });\n\n  if (headings.length < 1) {\n    return null;\n  }\n\n  return children;\n}\n\n/* harmony default export */ var check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    blocks: select('core/block-editor').getBlocks()\n  };\n})(DocumentOutlineCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/save-shortcut.js\n/**\n * WordPress dependencies\n */\n\n\n\nfunction SaveShortcut() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      savePost = _useDispatch.savePost;\n\n  var isEditedPostDirty = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/editor').isEditedPostDirty;\n  }, []);\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/editor/save', function (event) {\n    event.preventDefault(); // TODO: This should be handled in the `savePost` effect in\n    // considering `isSaveable`. See note on `isEditedPostSaveable`\n    // selector about dirtiness and meta-boxes.\n    //\n    // See: `isEditedPostSaveable`\n\n    if (!isEditedPostDirty()) {\n      return;\n    }\n\n    savePost();\n  }, {\n    bindGlobal: true\n  });\n  return null;\n}\n\n/* harmony default export */ var save_shortcut = (SaveShortcut);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/visual-editor-shortcuts.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction VisualEditorGlobalKeyboardShortcuts() {\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      redo = _useDispatch.redo,\n      undo = _useDispatch.undo,\n      savePost = _useDispatch.savePost;\n\n  var isEditedPostDirty = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/editor').isEditedPostDirty;\n  }, []);\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/editor/undo', function (event) {\n    undo();\n    event.preventDefault();\n  }, {\n    bindGlobal: true\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/editor/redo', function (event) {\n    redo();\n    event.preventDefault();\n  }, {\n    bindGlobal: true\n  });\n  Object(external_this_wp_keyboardShortcuts_[\"useShortcut\"])('core/editor/save', function (event) {\n    event.preventDefault(); // TODO: This should be handled in the `savePost` effect in\n    // considering `isSaveable`. See note on `isEditedPostSaveable`\n    // selector about dirtiness and meta-boxes.\n    //\n    // See: `isEditedPostSaveable`\n\n    if (!isEditedPostDirty()) {\n      return;\n    }\n\n    savePost();\n  }, {\n    bindGlobal: true\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockEditorKeyboardShortcuts\"], null), Object(external_this_wp_element_[\"createElement\"])(save_shortcut, null));\n}\n\n/* harmony default export */ var visual_editor_shortcuts = (VisualEditorGlobalKeyboardShortcuts);\nfunction EditorGlobalKeyboardShortcuts() {\n  external_this_wp_deprecated_default()('EditorGlobalKeyboardShortcuts', {\n    alternative: 'VisualEditorGlobalKeyboardShortcuts',\n    plugin: 'Gutenberg'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(VisualEditorGlobalKeyboardShortcuts, null);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/text-editor-shortcuts.js\n\n\n/**\n * Internal dependencies\n */\n\nfunction TextEditorGlobalKeyboardShortcuts() {\n  return Object(external_this_wp_element_[\"createElement\"])(save_shortcut, null);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/register-shortcuts.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction EditorKeyboardShortcutsRegister() {\n  // Registering the shortcuts\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/keyboard-shortcuts'),\n      registerShortcut = _useDispatch.registerShortcut;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    registerShortcut({\n      name: 'core/editor/save',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Save your changes.'),\n      keyCombination: {\n        modifier: 'primary',\n        character: 's'\n      }\n    });\n    registerShortcut({\n      name: 'core/editor/undo',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Undo your last changes.'),\n      keyCombination: {\n        modifier: 'primary',\n        character: 'z'\n      }\n    });\n    registerShortcut({\n      name: 'core/editor/redo',\n      category: 'global',\n      description: Object(external_this_wp_i18n_[\"__\"])('Redo your last undo.'),\n      keyCombination: {\n        modifier: 'primaryShift',\n        character: 'z'\n      }\n    });\n  }, [registerShortcut]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockEditorKeyboardShortcuts\"].Register, null);\n}\n\n/* harmony default export */ var register_shortcuts = (EditorKeyboardShortcutsRegister);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/redo.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar redo_redo = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z\"\n}));\n/* harmony default export */ var library_redo = (redo_redo);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-history/redo.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction EditorHistoryRedo(props, ref) {\n  var hasRedo = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/editor').hasEditorRedo();\n  }, []);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      redo = _useDispatch.redo;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    ref: ref,\n    icon: library_redo,\n    label: Object(external_this_wp_i18n_[\"__\"])('Redo'),\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primaryShift('z') // If there are no redo levels we don't want to actually disable this\n    // button, because it will remove focus for keyboard users.\n    // See: https://github.com/WordPress/gutenberg/issues/3486\n    ,\n    \"aria-disabled\": !hasRedo,\n    onClick: hasRedo ? redo : undefined,\n    className: \"editor-history__redo\"\n  }));\n}\n\n/* harmony default export */ var editor_history_redo = (Object(external_this_wp_element_[\"forwardRef\"])(EditorHistoryRedo));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/undo.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar undo_undo = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z\"\n}));\n/* harmony default export */ var library_undo = (undo_undo);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-history/undo.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction EditorHistoryUndo(props, ref) {\n  var hasUndo = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/editor').hasEditorUndo();\n  }, []);\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      undo = _useDispatch.undo;\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n    ref: ref,\n    icon: library_undo,\n    label: Object(external_this_wp_i18n_[\"__\"])('Undo'),\n    shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primary('z') // If there are no undo levels we don't want to actually disable this\n    // button, because it will remove focus for keyboard users.\n    // See: https://github.com/WordPress/gutenberg/issues/3486\n    ,\n    \"aria-disabled\": !hasUndo,\n    onClick: hasUndo ? undo : undefined,\n    className: \"editor-history__undo\"\n  }));\n}\n\n/* harmony default export */ var editor_history_undo = (Object(external_this_wp_element_[\"forwardRef\"])(EditorHistoryUndo));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/template-validation-notice/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction TemplateValidationNotice(_ref) {\n  var isValid = _ref.isValid,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isValid\"]);\n\n  if (isValid) {\n    return null;\n  }\n\n  var confirmSynchronization = function confirmSynchronization() {\n    if ( // eslint-disable-next-line no-alert\n    window.confirm(Object(external_this_wp_i18n_[\"__\"])('Resetting the template may result in loss of content, do you want to continue?'))) {\n      props.synchronizeTemplate();\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n    className: \"editor-template-validation-notice\",\n    isDismissible: false,\n    status: \"warning\",\n    actions: [{\n      label: Object(external_this_wp_i18n_[\"__\"])('Keep it as is'),\n      onClick: props.resetTemplateValidity\n    }, {\n      label: Object(external_this_wp_i18n_[\"__\"])('Reset the template'),\n      onClick: confirmSynchronization,\n      isPrimary: true\n    }]\n  }, Object(external_this_wp_i18n_[\"__\"])('The content of your post doesn’t match the template assigned to your post type.'));\n}\n\n/* harmony default export */ var template_validation_notice = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    isValid: select('core/block-editor').isValidTemplate()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      setTemplateValidity = _dispatch.setTemplateValidity,\n      synchronizeTemplate = _dispatch.synchronizeTemplate;\n\n  return {\n    resetTemplateValidity: function resetTemplateValidity() {\n      return setTemplateValidity(true);\n    },\n    synchronizeTemplate: synchronizeTemplate\n  };\n})])(TemplateValidationNotice));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/editor-notices/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction EditorNotices(_ref) {\n  var notices = _ref.notices,\n      onRemove = _ref.onRemove;\n  var dismissibleNotices = Object(external_this_lodash_[\"filter\"])(notices, {\n    isDismissible: true,\n    type: 'default'\n  });\n  var nonDismissibleNotices = Object(external_this_lodash_[\"filter\"])(notices, {\n    isDismissible: false,\n    type: 'default'\n  });\n  var snackbarNotices = Object(external_this_lodash_[\"filter\"])(notices, {\n    type: 'snackbar'\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NoticeList\"], {\n    notices: nonDismissibleNotices,\n    className: \"components-editor-notices__pinned\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"NoticeList\"], {\n    notices: dismissibleNotices,\n    className: \"components-editor-notices__dismissible\",\n    onRemove: onRemove\n  }, Object(external_this_wp_element_[\"createElement\"])(template_validation_notice, null)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SnackbarList\"], {\n    notices: snackbarNotices,\n    className: \"components-editor-notices__snackbar\",\n    onRemove: onRemove\n  }));\n}\n/* harmony default export */ var editor_notices = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    notices: select('core/notices').getNotices()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onRemove: dispatch('core/notices').removeNotice\n  };\n})])(EditorNotices));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/layout.js\nvar layout = __webpack_require__(294);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/page.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar page_page = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M7 5.5h10a.5.5 0 01.5.5v12a.5.5 0 01-.5.5H7a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM17 4H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V6a2 2 0 00-2-2zm-1 3.75H8v1.5h8v-1.5zM8 11h8v1.5H8V11zm6 3.25H8v1.5h6v-1.5z\"\n}));\n/* harmony default export */ var library_page = (page_page);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/grid.js\nvar grid = __webpack_require__(298);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/block-default.js\nvar block_default = __webpack_require__(196);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-record-item.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction EntityRecordItem(_ref) {\n  var record = _ref.record,\n      checked = _ref.checked,\n      onChange = _ref.onChange,\n      closePanel = _ref.closePanel;\n  var name = record.name,\n      kind = record.kind,\n      title = record.title,\n      key = record.key;\n  var parentBlockId = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _blocks$;\n\n    // Get entity's blocks.\n    var _select$getEditedEnti = select('core').getEditedEntityRecord(kind, name, key),\n        _select$getEditedEnti2 = _select$getEditedEnti.blocks,\n        blocks = _select$getEditedEnti2 === void 0 ? [] : _select$getEditedEnti2; // Get parents of the entity's first block.\n\n\n    var parents = select('core/block-editor').getBlockParents((_blocks$ = blocks[0]) === null || _blocks$ === void 0 ? void 0 : _blocks$.clientId); // Return closest parent block's clientId.\n\n    return parents[parents.length - 1];\n  }, []);\n  var isSelected = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var selectedBlockId = select('core/block-editor').getSelectedBlockClientId();\n    return selectedBlockId === parentBlockId;\n  }, [parentBlockId]);\n  var isSelectedText = isSelected ? Object(external_this_wp_i18n_[\"__\"])('Selected') : Object(external_this_wp_i18n_[\"__\"])('Select');\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/block-editor'),\n      selectBlock = _useDispatch.selectBlock;\n\n  var selectParentBlock = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return selectBlock(parentBlockId);\n  }, [parentBlockId]);\n  var selectAndDismiss = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    selectBlock(parentBlockId);\n    closePanel();\n  }, [parentBlockId]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelRow\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    label: Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, title || Object(external_this_wp_i18n_[\"__\"])('Untitled')),\n    checked: checked,\n    onChange: onChange\n  }), parentBlockId ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: selectParentBlock,\n    className: \"entities-saved-states__find-entity\",\n    disabled: isSelected\n  }, isSelectedText), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: selectAndDismiss,\n    className: \"entities-saved-states__find-entity-small\",\n    disabled: isSelected\n  }, isSelectedText)) : null);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-type-list.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar ENTITY_NAME_ICONS = {\n  site: layout[\"a\" /* default */],\n  page: library_page,\n  post: grid[\"a\" /* default */],\n  wp_template: grid[\"a\" /* default */]\n};\nfunction EntityTypeList(_ref) {\n  var list = _ref.list,\n      unselectedEntities = _ref.unselectedEntities,\n      setUnselectedEntities = _ref.setUnselectedEntities,\n      closePanel = _ref.closePanel;\n  var firstRecord = list[0];\n  var entity = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core').getEntity(firstRecord.kind, firstRecord.name);\n  }, [firstRecord.kind, firstRecord.name]); // Set icon based on type of entity.\n\n  var name = firstRecord.name;\n  var icon = ENTITY_NAME_ICONS[name] || block_default[\"a\" /* default */];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    title: entity.label,\n    initialOpen: true,\n    icon: icon\n  }, list.map(function (record) {\n    return Object(external_this_wp_element_[\"createElement\"])(EntityRecordItem, {\n      key: record.key || 'site',\n      record: record,\n      checked: !Object(external_this_lodash_[\"some\"])(unselectedEntities, function (elt) {\n        return elt.kind === record.kind && elt.name === record.name && elt.key === record.key;\n      }),\n      onChange: function onChange(value) {\n        return setUnselectedEntities(record, value);\n      },\n      closePanel: closePanel\n    });\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/index.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar ENTITY_NAMES = {\n  wp_template_part: function wp_template_part(number) {\n    return Object(external_this_wp_i18n_[\"_n\"])('template part', 'template parts', number);\n  },\n  wp_template: function wp_template(number) {\n    return Object(external_this_wp_i18n_[\"_n\"])('template', 'templates', number);\n  },\n  post: function post(number) {\n    return Object(external_this_wp_i18n_[\"_n\"])('post', 'posts', number);\n  },\n  page: function page(number) {\n    return Object(external_this_wp_i18n_[\"_n\"])('page', 'pages', number);\n  },\n  site: function site(number) {\n    return Object(external_this_wp_i18n_[\"_n\"])('site', 'sites', number);\n  }\n};\nvar PLACEHOLDER_PHRASES = {\n  // 0 is a back up, but should never be observed.\n  0: Object(external_this_wp_i18n_[\"__\"])('There are no changes.'),\n\n  /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */\n  1: Object(external_this_wp_i18n_[\"__\"])('Changes have been made to your %s.'),\n\n  /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */\n  2: Object(external_this_wp_i18n_[\"__\"])('Changes have been made to your %1$s and %2$s.'),\n\n  /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */\n  3: Object(external_this_wp_i18n_[\"__\"])('Changes have been made to your %1$s, %2$s, and %3$s.'),\n\n  /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */\n  4: Object(external_this_wp_i18n_[\"__\"])('Changes have been made to your %1$s, %2$s, %3$s, and %4$s.'),\n\n  /* translators: placeholders represent pre-translated singular/plural entity names (page, post, template, site, etc.) */\n  5: Object(external_this_wp_i18n_[\"__\"])('Changes have been made to your %1$s, %2$s, %3$s, %4$s, and %5$s.')\n};\nfunction EntitiesSavedStates(_ref) {\n  var isOpen = _ref.isOpen,\n      close = _ref.close;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      dirtyEntityRecords: select('core').__experimentalGetDirtyEntityRecords()\n    };\n  }, []),\n      dirtyEntityRecords = _useSelect.dirtyEntityRecords;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core'),\n      saveEditedEntityRecord = _useDispatch.saveEditedEntityRecord; // To group entities by type.\n\n\n  var partitionedSavables = Object.values(Object(external_this_lodash_[\"groupBy\"])(dirtyEntityRecords, 'name')); // Get labels for text-prompt phrase.\n\n  var entityNamesForPrompt = [];\n  partitionedSavables.forEach(function (list) {\n    if (ENTITY_NAMES[list[0].name]) {\n      entityNamesForPrompt.push(ENTITY_NAMES[list[0].name](list.length));\n    }\n  }); // Get text-prompt phrase based on number of entity types changed.\n\n  var placeholderPhrase = PLACEHOLDER_PHRASES[entityNamesForPrompt.length] || // Fallback for edge case that should not be observed (more than 5 entity types edited).\n  Object(external_this_wp_i18n_[\"__\"])('Changes have been made to multiple entity types.'); // eslint-disable-next-line @wordpress/valid-sprintf\n\n\n  var promptPhrase = external_this_wp_i18n_[\"sprintf\"].apply(void 0, [placeholderPhrase].concat(entityNamesForPrompt)); // Unchecked entities to be ignored by save function.\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])([]),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      unselectedEntities = _useState2[0],\n      _setUnselectedEntities = _useState2[1];\n\n  var setUnselectedEntities = function setUnselectedEntities(_ref2, checked) {\n    var kind = _ref2.kind,\n        name = _ref2.name,\n        key = _ref2.key;\n\n    if (checked) {\n      _setUnselectedEntities(unselectedEntities.filter(function (elt) {\n        return elt.kind !== kind || elt.name !== name || elt.key !== key;\n      }));\n    } else {\n      _setUnselectedEntities([].concat(Object(toConsumableArray[\"a\" /* default */])(unselectedEntities), [{\n        kind: kind,\n        name: name,\n        key: key\n      }]));\n    }\n  };\n\n  var saveCheckedEntities = function saveCheckedEntities() {\n    var entitiesToSave = dirtyEntityRecords.filter(function (_ref3) {\n      var kind = _ref3.kind,\n          name = _ref3.name,\n          key = _ref3.key;\n      return !Object(external_this_lodash_[\"some\"])(unselectedEntities, function (elt) {\n        return elt.kind === kind && elt.name === name && elt.key === key;\n      });\n    });\n    close(entitiesToSave);\n    entitiesToSave.forEach(function (_ref4) {\n      var kind = _ref4.kind,\n          name = _ref4.name,\n          key = _ref4.key;\n      saveEditedEntityRecord(kind, name, key);\n    });\n  };\n\n  var _useState3 = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState4 = Object(slicedToArray[\"a\" /* default */])(_useState3, 2),\n      isReviewing = _useState4[0],\n      setIsReviewing = _useState4[1];\n\n  var toggleIsReviewing = function toggleIsReviewing() {\n    return setIsReviewing(function (value) {\n      return !value;\n    });\n  }; // Explicitly define this with no argument passed.  Using `close` on\n  // its own will use the event object in place of the expected saved entities.\n\n\n  var dismissPanel = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return close();\n  }, [close]);\n  return isOpen ? Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"entities-saved-states__panel\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"entities-saved-states__panel-header\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isPrimary: true,\n    disabled: dirtyEntityRecords.length - unselectedEntities.length === 0,\n    onClick: saveCheckedEntities,\n    className: \"editor-entities-saved-states__save-button\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Save')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: dismissPanel,\n    icon: library_close[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Close panel')\n  })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"entities-saved-states__text-prompt\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, Object(external_this_wp_i18n_[\"__\"])('Are you ready to save?')), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, promptPhrase), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: toggleIsReviewing,\n    isLink: true,\n    className: \"entities-saved-states__review-changes-button\"\n  }, isReviewing ? Object(external_this_wp_i18n_[\"__\"])('Hide changes.') : Object(external_this_wp_i18n_[\"__\"])('Review changes.')))), isReviewing && partitionedSavables.map(function (list) {\n    return Object(external_this_wp_element_[\"createElement\"])(EntityTypeList, {\n      key: list[0].name,\n      list: list,\n      closePanel: dismissPanel,\n      unselectedEntities: unselectedEntities,\n      setUnselectedEntities: setUnselectedEntities\n    });\n  })) : null;\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/error-boundary/index.js\n\n\n\n\n\n\n\n\nfunction error_boundary_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (error_boundary_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction error_boundary_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nvar error_boundary_ErrorBoundary = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ErrorBoundary, _Component);\n\n  var _super = error_boundary_createSuper(ErrorBoundary);\n\n  function ErrorBoundary() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ErrorBoundary);\n\n    _this = _super.apply(this, arguments);\n    _this.reboot = _this.reboot.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.getContent = _this.getContent.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      error: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ErrorBoundary, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(error) {\n      this.setState({\n        error: error\n      });\n    }\n  }, {\n    key: \"reboot\",\n    value: function reboot() {\n      this.props.onError();\n    }\n  }, {\n    key: \"getContent\",\n    value: function getContent() {\n      try {\n        // While `select` in a component is generally discouraged, it is\n        // used here because it (a) reduces the chance of data loss in the\n        // case of additional errors by performing a direct retrieval and\n        // (b) avoids the performance cost associated with unnecessary\n        // content serialization throughout the lifetime of a non-erroring\n        // application.\n        return Object(external_this_wp_data_[\"select\"])('core/editor').getEditedPostContent();\n      } catch (error) {}\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var error = this.state.error;\n\n      if (!error) {\n        return this.props.children;\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"Warning\"], {\n        className: \"editor-error-boundary\",\n        actions: [Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          key: \"recovery\",\n          onClick: this.reboot,\n          isSecondary: true\n        }, Object(external_this_wp_i18n_[\"__\"])('Attempt Recovery')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ClipboardButton\"], {\n          key: \"copy-post\",\n          text: this.getContent,\n          isSecondary: true\n        }, Object(external_this_wp_i18n_[\"__\"])('Copy Post Text')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ClipboardButton\"], {\n          key: \"copy-error\",\n          text: error.stack,\n          isSecondary: true\n        }, Object(external_this_wp_i18n_[\"__\"])('Copy Error'))]\n      }, Object(external_this_wp_i18n_[\"__\"])('The editor has encountered an unexpected error.'));\n    }\n  }]);\n\n  return ErrorBoundary;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var error_boundary = (error_boundary_ErrorBoundary);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/local-autosave-monitor/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar requestIdleCallback = window.requestIdleCallback ? window.requestIdleCallback : window.requestAnimationFrame;\n/**\n * Function which returns true if the current environment supports browser\n * sessionStorage, or false otherwise. The result of this function is cached and\n * reused in subsequent invocations.\n */\n\nvar hasSessionStorageSupport = Object(external_this_lodash_[\"once\"])(function () {\n  try {\n    // Private Browsing in Safari 10 and earlier will throw an error when\n    // attempting to set into sessionStorage. The test here is intentional in\n    // causing a thrown error as condition bailing from local autosave.\n    window.sessionStorage.setItem('__wpEditorTestSessionStorage', '');\n    window.sessionStorage.removeItem('__wpEditorTestSessionStorage');\n    return true;\n  } catch (error) {\n    return false;\n  }\n});\n/**\n * Custom hook which manages the creation of a notice prompting the user to\n * restore a local autosave, if one exists.\n */\n\nfunction useAutosaveNotice() {\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      postId: select('core/editor').getCurrentPostId(),\n      getEditedPostAttribute: select('core/editor').getEditedPostAttribute,\n      hasRemoteAutosave: !!select('core/editor').getEditorSettings().autosave\n    };\n  }, []),\n      postId = _useSelect.postId,\n      getEditedPostAttribute = _useSelect.getEditedPostAttribute,\n      hasRemoteAutosave = _useSelect.hasRemoteAutosave;\n\n  var _useDispatch = Object(external_this_wp_data_[\"useDispatch\"])('core/notices'),\n      createWarningNotice = _useDispatch.createWarningNotice,\n      removeNotice = _useDispatch.removeNotice;\n\n  var _useDispatch2 = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      editPost = _useDispatch2.editPost,\n      resetEditorBlocks = _useDispatch2.resetEditorBlocks;\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    var localAutosave = localAutosaveGet(postId);\n\n    if (!localAutosave) {\n      return;\n    }\n\n    try {\n      localAutosave = JSON.parse(localAutosave);\n    } catch (error) {\n      // Not usable if it can't be parsed.\n      return;\n    }\n\n    var _localAutosave = localAutosave,\n        title = _localAutosave.post_title,\n        content = _localAutosave.content,\n        excerpt = _localAutosave.excerpt;\n    var edits = {\n      title: title,\n      content: content,\n      excerpt: excerpt\n    };\n    {\n      // Only display a notice if there is a difference between what has been\n      // saved and that which is stored in sessionStorage.\n      var hasDifference = Object.keys(edits).some(function (key) {\n        return edits[key] !== getEditedPostAttribute(key);\n      });\n\n      if (!hasDifference) {\n        // If there is no difference, it can be safely ejected from storage.\n        localAutosaveClear(postId);\n        return;\n      }\n    }\n\n    if (hasRemoteAutosave) {\n      return;\n    }\n\n    var noticeId = Object(external_this_lodash_[\"uniqueId\"])('wpEditorAutosaveRestore');\n    createWarningNotice(Object(external_this_wp_i18n_[\"__\"])('The backup of this post in your browser is different from the version below.'), {\n      id: noticeId,\n      actions: [{\n        label: Object(external_this_wp_i18n_[\"__\"])('Restore the backup'),\n        onClick: function onClick() {\n          editPost(Object(external_this_lodash_[\"omit\"])(edits, ['content']));\n          resetEditorBlocks(Object(external_this_wp_blocks_[\"parse\"])(edits.content));\n          removeNotice(noticeId);\n        }\n      }]\n    });\n  }, [postId]);\n}\n/**\n * Custom hook which ejects a local autosave after a successful save occurs.\n */\n\n\nfunction useAutosavePurge() {\n  var _useSelect2 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      postId: select('core/editor').getCurrentPostId(),\n      isDirty: select('core/editor').isEditedPostDirty(),\n      isAutosaving: select('core/editor').isAutosavingPost(),\n      didError: select('core/editor').didPostSaveRequestFail()\n    };\n  }, []),\n      postId = _useSelect2.postId,\n      isDirty = _useSelect2.isDirty,\n      isAutosaving = _useSelect2.isAutosaving,\n      didError = _useSelect2.didError;\n\n  var lastIsDirty = Object(external_this_wp_element_[\"useRef\"])(isDirty);\n  var lastIsAutosaving = Object(external_this_wp_element_[\"useRef\"])(isAutosaving);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!didError && (lastIsAutosaving.current && !isAutosaving || lastIsDirty.current && !isDirty)) {\n      localAutosaveClear(postId);\n    }\n\n    lastIsDirty.current = isDirty;\n    lastIsAutosaving.current = isAutosaving;\n  }, [isDirty, isAutosaving, didError]);\n}\n\nfunction LocalAutosaveMonitor() {\n  var _useDispatch3 = Object(external_this_wp_data_[\"useDispatch\"])('core/editor'),\n      __experimentalLocalAutosave = _useDispatch3.__experimentalLocalAutosave;\n\n  var autosave = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    requestIdleCallback(__experimentalLocalAutosave);\n  }, []);\n  useAutosaveNotice();\n  useAutosavePurge();\n\n  var _useSelect3 = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return {\n      localAutosaveInterval: select('core/editor').getEditorSettings().__experimentalLocalAutosaveInterval\n    };\n  }, []),\n      localAutosaveInterval = _useSelect3.localAutosaveInterval;\n\n  return Object(external_this_wp_element_[\"createElement\"])(autosave_monitor, {\n    interval: localAutosaveInterval,\n    autosave: autosave,\n    shouldThrottle: true\n  });\n}\n\n/* harmony default export */ var local_autosave_monitor = (Object(external_this_wp_compose_[\"ifCondition\"])(hasSessionStorageSupport)(LocalAutosaveMonitor));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction PageAttributesCheck(_ref) {\n  var availableTemplates = _ref.availableTemplates,\n      postType = _ref.postType,\n      children = _ref.children;\n  var supportsPageAttributes = Object(external_this_lodash_[\"get\"])(postType, ['supports', 'page-attributes'], false); // Only render fields if post type supports page attributes or available templates exist.\n\n  if (!supportsPageAttributes && Object(external_this_lodash_[\"isEmpty\"])(availableTemplates)) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var page_attributes_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getEditorSettings = _select.getEditorSettings;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  var _getEditorSettings = getEditorSettings(),\n      availableTemplates = _getEditorSettings.availableTemplates;\n\n  return {\n    postType: getPostType(getEditedPostAttribute('type')),\n    availableTemplates: availableTemplates\n  };\n})(PageAttributesCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-type-support-check/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object}    props             Props.\n * @param {string}    [props.postType]  Current post type.\n * @param {WPElement} props.children    Children to be rendered if post\n *                                                                   type supports.\n * @param {(string|string[])}                      props.supportKeys String or string array of keys\n *                                                                   to test.\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nfunction PostTypeSupportCheck(_ref) {\n  var postType = _ref.postType,\n      children = _ref.children,\n      supportKeys = _ref.supportKeys;\n  var isSupported = true;\n\n  if (postType) {\n    isSupported = Object(external_this_lodash_[\"some\"])(Object(external_this_lodash_[\"castArray\"])(supportKeys), function (key) {\n      return !!postType.supports[key];\n    });\n  }\n\n  if (!isSupported) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var post_type_support_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  return {\n    postType: getPostType(getEditedPostAttribute('type'))\n  };\n})(PostTypeSupportCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/order.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar PageAttributesOrder = Object(external_this_wp_compose_[\"withState\"])({\n  orderInput: null\n})(function (_ref) {\n  var onUpdateOrder = _ref.onUpdateOrder,\n      _ref$order = _ref.order,\n      order = _ref$order === void 0 ? 0 : _ref$order,\n      orderInput = _ref.orderInput,\n      setState = _ref.setState;\n\n  var setUpdatedOrder = function setUpdatedOrder(value) {\n    setState({\n      orderInput: value\n    });\n    var newOrder = Number(value);\n\n    if (Number.isInteger(newOrder) && Object(external_this_lodash_[\"invoke\"])(value, ['trim']) !== '') {\n      onUpdateOrder(Number(value));\n    }\n  };\n\n  var value = orderInput === null ? order : orderInput;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n    className: \"editor-page-attributes__order\",\n    type: \"number\",\n    label: Object(external_this_wp_i18n_[\"__\"])('Order'),\n    value: value,\n    onChange: setUpdatedOrder,\n    size: 6,\n    onBlur: function onBlur() {\n      setState({\n        orderInput: null\n      });\n    }\n  });\n});\n\nfunction PageAttributesOrderWithChecks(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, {\n    supportKeys: \"page-attributes\"\n  }, Object(external_this_wp_element_[\"createElement\"])(PageAttributesOrder, props));\n}\n\n/* harmony default export */ var page_attributes_order = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    order: select('core/editor').getEditedPostAttribute('menu_order')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateOrder: function onUpdateOrder(order) {\n      dispatch('core/editor').editPost({\n        menu_order: order\n      });\n    }\n  };\n})])(PageAttributesOrderWithChecks));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/terms.js\n\n\nfunction terms_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction terms_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { terms_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { terms_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Returns terms in a tree form.\n *\n * @param {Array} flatTerms  Array of terms in flat format.\n *\n * @return {Array} Array of terms in tree format.\n */\n\nfunction buildTermsTree(flatTerms) {\n  var flatTermsWithParentAndChildren = flatTerms.map(function (term) {\n    return terms_objectSpread({\n      children: [],\n      parent: null\n    }, term);\n  });\n  var termsByParent = Object(external_this_lodash_[\"groupBy\"])(flatTermsWithParentAndChildren, 'parent');\n\n  if (termsByParent.null && termsByParent.null.length) {\n    return flatTermsWithParentAndChildren;\n  }\n\n  var fillWithChildren = function fillWithChildren(terms) {\n    return terms.map(function (term) {\n      var children = termsByParent[term.id];\n      return terms_objectSpread({}, term, {\n        children: children && children.length ? fillWithChildren(children) : []\n      });\n    });\n  };\n\n  return fillWithChildren(termsByParent['0'] || []);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/parent.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction PageAttributesParent(_ref) {\n  var parent = _ref.parent,\n      postType = _ref.postType,\n      items = _ref.items,\n      onUpdateParent = _ref.onUpdateParent;\n  var isHierarchical = Object(external_this_lodash_[\"get\"])(postType, ['hierarchical'], false);\n  var parentPageLabel = Object(external_this_lodash_[\"get\"])(postType, ['labels', 'parent_item_colon']);\n  var pageItems = items || [];\n\n  if (!isHierarchical || !parentPageLabel || !pageItems.length) {\n    return null;\n  }\n\n  var pagesTree = buildTermsTree(pageItems.map(function (item) {\n    return {\n      id: item.id,\n      parent: item.parent,\n      name: item.title && item.title.raw ? item.title.raw : \"#\".concat(item.id, \" (\").concat(Object(external_this_wp_i18n_[\"__\"])('no title'), \")\")\n    };\n  }));\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TreeSelect\"], {\n    className: \"editor-page-attributes__parent\",\n    label: parentPageLabel,\n    noOptionLabel: \"(\".concat(Object(external_this_wp_i18n_[\"__\"])('no parent'), \")\"),\n    tree: pagesTree,\n    selectedId: parent,\n    onChange: onUpdateParent\n  });\n}\nvar applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core'),\n      getPostType = _select.getPostType,\n      getEntityRecords = _select.getEntityRecords;\n\n  var _select2 = select('core/editor'),\n      getCurrentPostId = _select2.getCurrentPostId,\n      getEditedPostAttribute = _select2.getEditedPostAttribute;\n\n  var postTypeSlug = getEditedPostAttribute('type');\n  var postType = getPostType(postTypeSlug);\n  var postId = getCurrentPostId();\n  var isHierarchical = Object(external_this_lodash_[\"get\"])(postType, ['hierarchical'], false);\n  var query = {\n    per_page: -1,\n    exclude: postId,\n    parent_exclude: postId,\n    orderby: 'menu_order',\n    order: 'asc'\n  };\n  return {\n    parent: getEditedPostAttribute('parent'),\n    items: isHierarchical ? getEntityRecords('postType', postTypeSlug, query) : [],\n    postType: postType\n  };\n});\nvar applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost;\n\n  return {\n    onUpdateParent: function onUpdateParent(parent) {\n      editPost({\n        parent: parent || 0\n      });\n    }\n  };\n});\n/* harmony default export */ var page_attributes_parent = (Object(external_this_wp_compose_[\"compose\"])([applyWithSelect, applyWithDispatch])(PageAttributesParent));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/page-attributes/template.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PageTemplate(_ref) {\n  var availableTemplates = _ref.availableTemplates,\n      selectedTemplate = _ref.selectedTemplate,\n      onUpdate = _ref.onUpdate;\n\n  if (Object(external_this_lodash_[\"isEmpty\"])(availableTemplates)) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Template:'),\n    value: selectedTemplate,\n    onChange: onUpdate,\n    className: \"editor-page-attributes__template\",\n    options: Object(external_this_lodash_[\"map\"])(availableTemplates, function (templateName, templateSlug) {\n      return {\n        value: templateSlug,\n        label: templateName\n      };\n    })\n  });\n}\n/* harmony default export */ var page_attributes_template = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getEditorSettings = _select.getEditorSettings;\n\n  var _getEditorSettings = getEditorSettings(),\n      availableTemplates = _getEditorSettings.availableTemplates;\n\n  return {\n    selectedTemplate: getEditedPostAttribute('template'),\n    availableTemplates: availableTemplates\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdate: function onUpdate(templateSlug) {\n      dispatch('core/editor').editPost({\n        template: templateSlug || ''\n      });\n    }\n  };\n}))(PageTemplate));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"htmlEntities\"]}\nvar external_this_wp_htmlEntities_ = __webpack_require__(62);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-author/check.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction PostAuthorCheck(_ref) {\n  var hasAssignAuthorAction = _ref.hasAssignAuthorAction,\n      authors = _ref.authors,\n      children = _ref.children;\n\n  if (!hasAssignAuthorAction || authors.length < 2) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, {\n    supportKeys: \"author\"\n  }, children);\n}\n/* harmony default export */ var post_author_check = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var post = select('core/editor').getCurrentPost();\n  return {\n    hasAssignAuthorAction: Object(external_this_lodash_[\"get\"])(post, ['_links', 'wp:action-assign-author'], false),\n    postType: select('core/editor').getCurrentPostType(),\n    authors: select('core').getAuthors()\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(PostAuthorCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-author/index.js\n\n\n\n\n\n\n\n\nfunction post_author_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_author_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_author_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar post_author_PostAuthor = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostAuthor, _Component);\n\n  var _super = post_author_createSuper(PostAuthor);\n\n  function PostAuthor() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostAuthor);\n\n    _this = _super.apply(this, arguments);\n    _this.setAuthorId = _this.setAuthorId.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostAuthor, [{\n    key: \"setAuthorId\",\n    value: function setAuthorId(event) {\n      var onUpdateAuthor = this.props.onUpdateAuthor;\n      var value = event.target.value;\n      onUpdateAuthor(Number(value));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          postAuthor = _this$props.postAuthor,\n          instanceId = _this$props.instanceId,\n          authors = _this$props.authors;\n      var selectId = 'post-author-selector-' + instanceId; // Disable reason: A select with an onchange throws a warning\n\n      /* eslint-disable jsx-a11y/no-onchange */\n\n      return Object(external_this_wp_element_[\"createElement\"])(post_author_check, null, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: selectId\n      }, Object(external_this_wp_i18n_[\"__\"])('Author')), Object(external_this_wp_element_[\"createElement\"])(\"select\", {\n        id: selectId,\n        value: postAuthor,\n        onChange: this.setAuthorId,\n        className: \"editor-post-author__select\"\n      }, authors.map(function (author) {\n        return Object(external_this_wp_element_[\"createElement\"])(\"option\", {\n          key: author.id,\n          value: author.id\n        }, Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(author.name));\n      })));\n      /* eslint-enable jsx-a11y/no-onchange */\n    }\n  }]);\n\n  return PostAuthor;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_author = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    postAuthor: select('core/editor').getEditedPostAttribute('author'),\n    authors: select('core').getAuthors()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateAuthor: function onUpdateAuthor(author) {\n      dispatch('core/editor').editPost({\n        author: author\n      });\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(post_author_PostAuthor));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-comments/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PostComments(_ref) {\n  var _ref$commentStatus = _ref.commentStatus,\n      commentStatus = _ref$commentStatus === void 0 ? 'open' : _ref$commentStatus,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"commentStatus\"]);\n\n  var onToggleComments = function onToggleComments() {\n    return props.editPost({\n      comment_status: commentStatus === 'open' ? 'closed' : 'open'\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Allow comments'),\n    checked: commentStatus === 'open',\n    onChange: onToggleComments\n  });\n}\n\n/* harmony default export */ var post_comments = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    commentStatus: select('core/editor').getEditedPostAttribute('comment_status')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    editPost: dispatch('core/editor').editPost\n  };\n})])(PostComments));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-excerpt/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PostExcerpt(_ref) {\n  var excerpt = _ref.excerpt,\n      onUpdateExcerpt = _ref.onUpdateExcerpt;\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-excerpt\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextareaControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Write an excerpt (optional)'),\n    className: \"editor-post-excerpt__textarea\",\n    onChange: function onChange(value) {\n      return onUpdateExcerpt(value);\n    },\n    value: excerpt\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ExternalLink\"], {\n    href: Object(external_this_wp_i18n_[\"__\"])('https://wordpress.org/support/article/excerpt/')\n  }, Object(external_this_wp_i18n_[\"__\"])('Learn more about manual excerpts')));\n}\n\n/* harmony default export */ var post_excerpt = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    excerpt: select('core/editor').getEditedPostAttribute('excerpt')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateExcerpt: function onUpdateExcerpt(excerpt) {\n      dispatch('core/editor').editPost({\n        excerpt: excerpt\n      });\n    }\n  };\n})])(PostExcerpt));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-excerpt/check.js\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction PostExcerptCheck(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, Object(esm_extends[\"a\" /* default */])({}, props, {\n    supportKeys: \"excerpt\"\n  }));\n}\n\n/* harmony default export */ var post_excerpt_check = (PostExcerptCheck);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/theme-support-check/index.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\nfunction ThemeSupportCheck(_ref) {\n  var themeSupports = _ref.themeSupports,\n      children = _ref.children,\n      postType = _ref.postType,\n      supportKeys = _ref.supportKeys;\n  var isSupported = Object(external_this_lodash_[\"some\"])(Object(external_this_lodash_[\"castArray\"])(supportKeys), function (key) {\n    var supported = Object(external_this_lodash_[\"get\"])(themeSupports, [key], false); // 'post-thumbnails' can be boolean or an array of post types.\n    // In the latter case, we need to verify `postType` exists\n    // within `supported`. If `postType` isn't passed, then the check\n    // should fail.\n\n    if ('post-thumbnails' === key && Object(external_this_lodash_[\"isArray\"])(supported)) {\n      return Object(external_this_lodash_[\"includes\"])(supported, postType);\n    }\n\n    return supported;\n  });\n\n  if (!isSupported) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var theme_support_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core'),\n      getThemeSupports = _select.getThemeSupports;\n\n  var _select2 = select('core/editor'),\n      getEditedPostAttribute = _select2.getEditedPostAttribute;\n\n  return {\n    postType: getEditedPostAttribute('type'),\n    themeSupports: getThemeSupports()\n  };\n})(ThemeSupportCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-featured-image/check.js\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PostFeaturedImageCheck(props) {\n  return Object(external_this_wp_element_[\"createElement\"])(theme_support_check, {\n    supportKeys: \"post-thumbnails\"\n  }, Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, Object(esm_extends[\"a\" /* default */])({}, props, {\n    supportKeys: \"thumbnail\"\n  })));\n}\n\n/* harmony default export */ var post_featured_image_check = (PostFeaturedImageCheck);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-featured-image/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar ALLOWED_MEDIA_TYPES = ['image']; // Used when labels from post type were not yet loaded or when they are not present.\n\nvar DEFAULT_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_[\"__\"])('Featured image');\n\nvar DEFAULT_SET_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_[\"__\"])('Set featured image');\n\nvar DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = Object(external_this_wp_i18n_[\"__\"])('Remove image');\n\nfunction PostFeaturedImage(_ref) {\n  var currentPostId = _ref.currentPostId,\n      featuredImageId = _ref.featuredImageId,\n      onUpdateImage = _ref.onUpdateImage,\n      onDropImage = _ref.onDropImage,\n      onRemoveImage = _ref.onRemoveImage,\n      media = _ref.media,\n      postType = _ref.postType,\n      noticeUI = _ref.noticeUI;\n  var postLabel = Object(external_this_lodash_[\"get\"])(postType, ['labels'], {});\n  var instructions = Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('To edit the featured image, you need permission to upload media.'));\n  var mediaWidth, mediaHeight, mediaSourceUrl;\n\n  if (media) {\n    var mediaSize = Object(external_this_wp_hooks_[\"applyFilters\"])('editor.PostFeaturedImage.imageSize', 'post-thumbnail', media.id, currentPostId);\n\n    if (Object(external_this_lodash_[\"has\"])(media, ['media_details', 'sizes', mediaSize])) {\n      // use mediaSize when available\n      mediaWidth = media.media_details.sizes[mediaSize].width;\n      mediaHeight = media.media_details.sizes[mediaSize].height;\n      mediaSourceUrl = media.media_details.sizes[mediaSize].source_url;\n    } else {\n      // get fallbackMediaSize if mediaSize is not available\n      var fallbackMediaSize = Object(external_this_wp_hooks_[\"applyFilters\"])('editor.PostFeaturedImage.imageSize', 'thumbnail', media.id, currentPostId);\n\n      if (Object(external_this_lodash_[\"has\"])(media, ['media_details', 'sizes', fallbackMediaSize])) {\n        // use fallbackMediaSize when mediaSize is not available\n        mediaWidth = media.media_details.sizes[fallbackMediaSize].width;\n        mediaHeight = media.media_details.sizes[fallbackMediaSize].height;\n        mediaSourceUrl = media.media_details.sizes[fallbackMediaSize].source_url;\n      } else {\n        // use full image size when mediaFallbackSize and mediaSize are not available\n        mediaWidth = media.media_details.width;\n        mediaHeight = media.media_details.height;\n        mediaSourceUrl = media.source_url;\n      }\n    }\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(post_featured_image_check, null, noticeUI, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-featured-image\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUploadCheck\"], {\n    fallback: instructions\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUpload\"], {\n    title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,\n    onSelect: onUpdateImage,\n    unstableFeaturedImageFlow: true,\n    allowedTypes: ALLOWED_MEDIA_TYPES,\n    modalClass: !featuredImageId ? 'editor-post-featured-image__media-modal' : 'editor-post-featured-image__media-modal',\n    render: function render(_ref2) {\n      var open = _ref2.open;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-featured-image__container\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: !featuredImageId ? 'editor-post-featured-image__toggle' : 'editor-post-featured-image__preview',\n        onClick: open,\n        \"aria-label\": !featuredImageId ? null : Object(external_this_wp_i18n_[\"__\"])('Edit or update the image')\n      }, !!featuredImageId && media && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ResponsiveWrapper\"], {\n        naturalWidth: mediaWidth,\n        naturalHeight: mediaHeight,\n        isInline: true\n      }, Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: mediaSourceUrl,\n        alt: \"\"\n      })), !!featuredImageId && !media && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null), !featuredImageId && (postLabel.set_featured_image || DEFAULT_SET_FEATURE_IMAGE_LABEL)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DropZone\"], {\n        onFilesDrop: onDropImage\n      }));\n    },\n    value: featuredImageId\n  })), !!featuredImageId && media && !media.isLoading && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUploadCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUpload\"], {\n    title: postLabel.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,\n    onSelect: onUpdateImage,\n    unstableFeaturedImageFlow: true,\n    allowedTypes: ALLOWED_MEDIA_TYPES,\n    modalClass: \"editor-post-featured-image__media-modal\",\n    render: function render(_ref3) {\n      var open = _ref3.open;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        onClick: open,\n        isSecondary: true\n      }, Object(external_this_wp_i18n_[\"__\"])('Replace Image'));\n    }\n  })), !!featuredImageId && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUploadCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    onClick: onRemoveImage,\n    isLink: true,\n    isDestructive: true\n  }, postLabel.remove_featured_image || DEFAULT_REMOVE_FEATURE_IMAGE_LABEL))));\n}\n\nvar post_featured_image_applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core'),\n      getMedia = _select.getMedia,\n      getPostType = _select.getPostType;\n\n  var _select2 = select('core/editor'),\n      getCurrentPostId = _select2.getCurrentPostId,\n      getEditedPostAttribute = _select2.getEditedPostAttribute;\n\n  var featuredImageId = getEditedPostAttribute('featured_media');\n  return {\n    media: featuredImageId ? getMedia(featuredImageId) : null,\n    currentPostId: getCurrentPostId(),\n    postType: getPostType(getEditedPostAttribute('type')),\n    featuredImageId: featuredImageId\n  };\n});\nvar post_featured_image_applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref4, _ref5) {\n  var noticeOperations = _ref4.noticeOperations;\n  var select = _ref5.select;\n\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost;\n\n  return {\n    onUpdateImage: function onUpdateImage(image) {\n      editPost({\n        featured_media: image.id\n      });\n    },\n    onDropImage: function onDropImage(filesList) {\n      select('core/block-editor').getSettings().mediaUpload({\n        allowedTypes: ['image'],\n        filesList: filesList,\n        onFileChange: function onFileChange(_ref6) {\n          var _ref7 = Object(slicedToArray[\"a\" /* default */])(_ref6, 1),\n              image = _ref7[0];\n\n          editPost({\n            featured_media: image.id\n          });\n        },\n        onError: function onError(message) {\n          noticeOperations.removeAllNotices();\n          noticeOperations.createErrorNotice(message);\n        }\n      });\n    },\n    onRemoveImage: function onRemoveImage() {\n      editPost({\n        featured_media: 0\n      });\n    }\n  };\n});\n/* harmony default export */ var post_featured_image = (Object(external_this_wp_compose_[\"compose\"])(external_this_wp_components_[\"withNotices\"], post_featured_image_applyWithSelect, post_featured_image_applyWithDispatch, Object(external_this_wp_components_[\"withFilters\"])('editor.PostFeaturedImage'))(PostFeaturedImage));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-format/check.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PostFormatCheck(_ref) {\n  var disablePostFormats = _ref.disablePostFormats,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"disablePostFormats\"]);\n\n  return !disablePostFormats && Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, Object(esm_extends[\"a\" /* default */])({}, props, {\n    supportKeys: \"post-formats\"\n  }));\n}\n\n/* harmony default export */ var post_format_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var editorSettings = select('core/editor').getEditorSettings();\n  return {\n    disablePostFormats: editorSettings.disablePostFormats\n  };\n})(PostFormatCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-format/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar POST_FORMATS = [{\n  id: 'aside',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Aside')\n}, {\n  id: 'gallery',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Gallery')\n}, {\n  id: 'link',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Link')\n}, {\n  id: 'image',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Image')\n}, {\n  id: 'quote',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Quote')\n}, {\n  id: 'standard',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Standard')\n}, {\n  id: 'status',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Status')\n}, {\n  id: 'video',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Video')\n}, {\n  id: 'audio',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Audio')\n}, {\n  id: 'chat',\n  caption: Object(external_this_wp_i18n_[\"__\"])('Chat')\n}];\n\nfunction PostFormat(_ref) {\n  var onUpdatePostFormat = _ref.onUpdatePostFormat,\n      _ref$postFormat = _ref.postFormat,\n      postFormat = _ref$postFormat === void 0 ? 'standard' : _ref$postFormat,\n      supportedFormats = _ref.supportedFormats,\n      suggestedFormat = _ref.suggestedFormat,\n      instanceId = _ref.instanceId;\n  var postFormatSelectorId = 'post-format-selector-' + instanceId;\n  var formats = POST_FORMATS.filter(function (format) {\n    return Object(external_this_lodash_[\"includes\"])(supportedFormats, format.id);\n  });\n  var suggestion = Object(external_this_lodash_[\"find\"])(formats, function (format) {\n    return format.id === suggestedFormat;\n  }); // Disable reason: We need to change the value immiediately to show/hide the suggestion if needed\n\n  return Object(external_this_wp_element_[\"createElement\"])(post_format_check, null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-format\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-format__content\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n    htmlFor: postFormatSelectorId\n  }, Object(external_this_wp_i18n_[\"__\"])('Post Format')), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SelectControl\"], {\n    value: postFormat,\n    onChange: function onChange(format) {\n      return onUpdatePostFormat(format);\n    },\n    id: postFormatSelectorId,\n    options: formats.map(function (format) {\n      return {\n        label: format.caption,\n        value: format.id\n      };\n    })\n  })), suggestion && suggestion.id !== postFormat && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-format__suggestion\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Suggestion:'), ' ', Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isLink: true,\n    onClick: function onClick() {\n      return onUpdatePostFormat(suggestion.id);\n    }\n  }, suggestion.caption))));\n}\n\n/* harmony default export */ var post_format = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getSuggestedPostFormat = _select.getSuggestedPostFormat;\n\n  var postFormat = getEditedPostAttribute('format');\n  var themeSupports = select('core').getThemeSupports(); // Ensure current format is always in the set.\n  // The current format may not be a format supported by the theme.\n\n  var supportedFormats = Object(external_this_lodash_[\"union\"])([postFormat], Object(external_this_lodash_[\"get\"])(themeSupports, ['formats'], []));\n  return {\n    postFormat: postFormat,\n    supportedFormats: supportedFormats,\n    suggestedFormat: getSuggestedPostFormat()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdatePostFormat: function onUpdatePostFormat(postFormat) {\n      dispatch('core/editor').editPost({\n        format: postFormat\n      });\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(PostFormat));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/backup.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar backup = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M13.65 2.88c3.93 2.01 5.48 6.84 3.47 10.77s-6.83 5.48-10.77 3.47c-1.87-.96-3.2-2.56-3.86-4.4l1.64-1.03c.45 1.57 1.52 2.95 3.08 3.76 3.01 1.54 6.69.35 8.23-2.66 1.55-3.01.36-6.69-2.65-8.24C9.78 3.01 6.1 4.2 4.56 7.21l1.88.97-4.95 3.08-.39-5.82 1.78.91C4.9 2.4 9.75.89 13.65 2.88zm-4.36 7.83C9.11 10.53 9 10.28 9 10c0-.07.03-.12.04-.19h-.01L10 5l.97 4.81L14 13l-4.5-2.12.02-.02c-.08-.04-.16-.09-.23-.15z\"\n}));\n/* harmony default export */ var library_backup = (backup);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-last-revision/check.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\nfunction PostLastRevisionCheck(_ref) {\n  var lastRevisionId = _ref.lastRevisionId,\n      revisionsCount = _ref.revisionsCount,\n      children = _ref.children;\n\n  if (!lastRevisionId || revisionsCount < 2) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, {\n    supportKeys: \"revisions\"\n  }, children);\n}\n/* harmony default export */ var post_last_revision_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPostLastRevisionId = _select.getCurrentPostLastRevisionId,\n      getCurrentPostRevisionsCount = _select.getCurrentPostRevisionsCount;\n\n  return {\n    lastRevisionId: getCurrentPostLastRevisionId(),\n    revisionsCount: getCurrentPostRevisionsCount()\n  };\n})(PostLastRevisionCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-last-revision/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction LastRevision(_ref) {\n  var lastRevisionId = _ref.lastRevisionId,\n      revisionsCount = _ref.revisionsCount;\n  return Object(external_this_wp_element_[\"createElement\"])(post_last_revision_check, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    href: getWPAdminURL('revision.php', {\n      revision: lastRevisionId,\n      gutenberg: true\n    }),\n    className: \"editor-post-last-revision__title\",\n    icon: library_backup\n  }, Object(external_this_wp_i18n_[\"sprintf\"])(\n  /* translators: %d: number of revisions */\n  Object(external_this_wp_i18n_[\"_n\"])('%d Revision', '%d Revisions', revisionsCount), revisionsCount)));\n}\n\n/* harmony default export */ var post_last_revision = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPostLastRevisionId = _select.getCurrentPostLastRevisionId,\n      getCurrentPostRevisionsCount = _select.getCurrentPostRevisionsCount;\n\n  return {\n    lastRevisionId: getCurrentPostLastRevisionId(),\n    revisionsCount: getCurrentPostRevisionsCount()\n  };\n})(LastRevision));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-preview-button/index.js\n\n\n\n\n\n\n\n\nfunction post_preview_button_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_preview_button_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_preview_button_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\nfunction writeInterstitialMessage(targetDocument) {\n  var markup = Object(external_this_wp_element_[\"renderToString\"])(Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-preview-button__interstitial-message\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 96 96\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    className: \"outer\",\n    d: \"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\",\n    fill: \"none\"\n  }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n    className: \"inner\",\n    d: \"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\",\n    fill: \"none\"\n  })), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('Generating preview…'))));\n  markup += \"\\n\\t\\t<style>\\n\\t\\t\\tbody {\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t}\\n\\t\\t\\t.editor-post-preview-button__interstitial-message {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\tjustify-content: center;\\n\\t\\t\\t\\theight: 100vh;\\n\\t\\t\\t\\twidth: 100vw;\\n\\t\\t\\t}\\n\\t\\t\\t@-webkit-keyframes paint {\\n\\t\\t\\t\\t0% {\\n\\t\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t@-moz-keyframes paint {\\n\\t\\t\\t\\t0% {\\n\\t\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t@-o-keyframes paint {\\n\\t\\t\\t\\t0% {\\n\\t\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t@keyframes paint {\\n\\t\\t\\t\\t0% {\\n\\t\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t.editor-post-preview-button__interstitial-message svg {\\n\\t\\t\\t\\twidth: 192px;\\n\\t\\t\\t\\theight: 192px;\\n\\t\\t\\t\\tstroke: #555d66;\\n\\t\\t\\t\\tstroke-width: 0.75;\\n\\t\\t\\t}\\n\\t\\t\\t.editor-post-preview-button__interstitial-message svg .outer,\\n\\t\\t\\t.editor-post-preview-button__interstitial-message svg .inner {\\n\\t\\t\\t\\tstroke-dasharray: 280;\\n\\t\\t\\t\\tstroke-dashoffset: 280;\\n\\t\\t\\t\\t-webkit-animation: paint 1.5s ease infinite alternate;\\n\\t\\t\\t\\t-moz-animation: paint 1.5s ease infinite alternate;\\n\\t\\t\\t\\t-o-animation: paint 1.5s ease infinite alternate;\\n\\t\\t\\t\\tanimation: paint 1.5s ease infinite alternate;\\n\\t\\t\\t}\\n\\t\\t\\tp {\\n\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\tfont-family: -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \\\"Helvetica Neue\\\", sans-serif;\\n\\t\\t\\t}\\n\\t\\t</style>\\n\\t\";\n  /**\n   * Filters the interstitial message shown when generating previews.\n   *\n   * @param {string} markup The preview interstitial markup.\n   */\n\n  markup = Object(external_this_wp_hooks_[\"applyFilters\"])('editor.PostPreview.interstitialMarkup', markup);\n  targetDocument.write(markup);\n  targetDocument.title = Object(external_this_wp_i18n_[\"__\"])('Generating preview…');\n  targetDocument.close();\n}\n\nvar post_preview_button_PostPreviewButton = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostPreviewButton, _Component);\n\n  var _super = post_preview_button_createSuper(PostPreviewButton);\n\n  function PostPreviewButton() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostPreviewButton);\n\n    _this = _super.apply(this, arguments);\n    _this.buttonRef = Object(external_this_wp_element_[\"createRef\"])();\n    _this.openPreviewWindow = _this.openPreviewWindow.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostPreviewButton, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var previewLink = this.props.previewLink; // This relies on the window being responsible to unset itself when\n      // navigation occurs or a new preview window is opened, to avoid\n      // unintentional forceful redirects.\n\n      if (previewLink && !prevProps.previewLink) {\n        this.setPreviewWindowLink(previewLink);\n      }\n    }\n    /**\n     * Sets the preview window's location to the given URL, if a preview window\n     * exists and is not closed.\n     *\n     * @param {string} url URL to assign as preview window location.\n     */\n\n  }, {\n    key: \"setPreviewWindowLink\",\n    value: function setPreviewWindowLink(url) {\n      var previewWindow = this.previewWindow;\n\n      if (previewWindow && !previewWindow.closed) {\n        previewWindow.location = url;\n\n        if (this.buttonRef.current) {\n          this.buttonRef.current.focus();\n        }\n      }\n    }\n  }, {\n    key: \"getWindowTarget\",\n    value: function getWindowTarget() {\n      var postId = this.props.postId;\n      return \"wp-preview-\".concat(postId);\n    }\n  }, {\n    key: \"openPreviewWindow\",\n    value: function openPreviewWindow(event) {\n      // Our Preview button has its 'href' and 'target' set correctly for a11y\n      // purposes. Unfortunately, though, we can't rely on the default 'click'\n      // handler since sometimes it incorrectly opens a new tab instead of reusing\n      // the existing one.\n      // https://github.com/WordPress/gutenberg/pull/8330\n      event.preventDefault(); // Open up a Preview tab if needed. This is where we'll show the preview.\n\n      if (!this.previewWindow || this.previewWindow.closed) {\n        this.previewWindow = window.open('', this.getWindowTarget());\n      } // Focus the Preview tab. This might not do anything, depending on the browser's\n      // and user's preferences.\n      // https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\n\n      this.previewWindow.focus(); // If we don't need to autosave the post before previewing, then we simply\n      // load the Preview URL in the Preview tab.\n\n      if (!this.props.isAutosaveable) {\n        this.setPreviewWindowLink(event.target.href);\n        return;\n      } // Request an autosave. This happens asynchronously and causes the component\n      // to update when finished.\n\n\n      if (this.props.isDraft) {\n        this.props.savePost({\n          isPreview: true\n        });\n      } else {\n        this.props.autosave({\n          isPreview: true\n        });\n      } // Display a 'Generating preview' message in the Preview tab while we wait for the\n      // autosave to finish.\n\n\n      writeInterstitialMessage(this.previewWindow.document);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          previewLink = _this$props.previewLink,\n          currentPostLink = _this$props.currentPostLink,\n          isSaveable = _this$props.isSaveable; // Link to the `?preview=true` URL if we have it, since this lets us see\n      // changes that were autosaved since the post was last published. Otherwise,\n      // just link to the post's URL.\n\n      var href = previewLink || currentPostLink;\n      var classNames = classnames_default()({\n        'editor-post-preview': !this.props.className\n      }, this.props.className);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isTertiary: !this.props.className,\n        className: classNames,\n        href: href,\n        target: this.getWindowTarget(),\n        disabled: !isSaveable,\n        onClick: this.openPreviewWindow,\n        ref: this.buttonRef\n      }, this.props.textContent ? this.props.textContent : Object(external_this_wp_i18n_[\"_x\"])('Preview', 'imperative verb'), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"span\"\n      },\n      /* translators: accessibility text */\n      Object(external_this_wp_i18n_[\"__\"])('(opens in a new tab)')));\n    }\n  }]);\n\n  return PostPreviewButton;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_preview_button = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var forcePreviewLink = _ref.forcePreviewLink,\n      forceIsAutosaveable = _ref.forceIsAutosaveable;\n\n  var _select = select('core/editor'),\n      getCurrentPostId = _select.getCurrentPostId,\n      getCurrentPostAttribute = _select.getCurrentPostAttribute,\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      isEditedPostSaveable = _select.isEditedPostSaveable,\n      isEditedPostAutosaveable = _select.isEditedPostAutosaveable,\n      getEditedPostPreviewLink = _select.getEditedPostPreviewLink;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  var previewLink = getEditedPostPreviewLink();\n  var postType = getPostType(getEditedPostAttribute('type'));\n  return {\n    postId: getCurrentPostId(),\n    currentPostLink: getCurrentPostAttribute('link'),\n    previewLink: forcePreviewLink !== undefined ? forcePreviewLink : previewLink,\n    isSaveable: isEditedPostSaveable(),\n    isAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),\n    isViewable: Object(external_this_lodash_[\"get\"])(postType, ['viewable'], false),\n    isDraft: ['draft', 'auto-draft'].indexOf(getEditedPostAttribute('status')) !== -1\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    autosave: dispatch('core/editor').autosave,\n    savePost: dispatch('core/editor').savePost\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref2) {\n  var isViewable = _ref2.isViewable;\n  return isViewable;\n})])(post_preview_button_PostPreviewButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-locked-modal/index.js\n\n\n\n\n\n\n\n\nfunction post_locked_modal_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_locked_modal_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_locked_modal_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar post_locked_modal_PostLockedModal = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostLockedModal, _Component);\n\n  var _super = post_locked_modal_createSuper(PostLockedModal);\n\n  function PostLockedModal() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostLockedModal);\n\n    _this = _super.apply(this, arguments);\n    _this.sendPostLock = _this.sendPostLock.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.receivePostLock = _this.receivePostLock.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.releasePostLock = _this.releasePostLock.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostLockedModal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var hookName = this.getHookName(); // Details on these events on the Heartbeat API docs\n      // https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\n      Object(external_this_wp_hooks_[\"addAction\"])('heartbeat.send', hookName, this.sendPostLock);\n      Object(external_this_wp_hooks_[\"addAction\"])('heartbeat.tick', hookName, this.receivePostLock);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      var hookName = this.getHookName();\n      Object(external_this_wp_hooks_[\"removeAction\"])('heartbeat.send', hookName);\n      Object(external_this_wp_hooks_[\"removeAction\"])('heartbeat.tick', hookName);\n    }\n    /**\n     * Returns a `@wordpress/hooks` hook name specific to the instance of the\n     * component.\n     *\n     * @return {string} Hook name prefix.\n     */\n\n  }, {\n    key: \"getHookName\",\n    value: function getHookName() {\n      var instanceId = this.props.instanceId;\n      return 'core/editor/post-locked-modal-' + instanceId;\n    }\n    /**\n     * Keep the lock refreshed.\n     *\n     * When the user does not send a heartbeat in a heartbeat-tick\n     * the user is no longer editing and another user can start editing.\n     *\n     * @param {Object} data Data to send in the heartbeat request.\n     */\n\n  }, {\n    key: \"sendPostLock\",\n    value: function sendPostLock(data) {\n      var _this$props = this.props,\n          isLocked = _this$props.isLocked,\n          activePostLock = _this$props.activePostLock,\n          postId = _this$props.postId;\n\n      if (isLocked) {\n        return;\n      }\n\n      data['wp-refresh-post-lock'] = {\n        lock: activePostLock,\n        post_id: postId\n      };\n    }\n    /**\n     * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n     *\n     * @param {Object} data Data received in the heartbeat request\n     */\n\n  }, {\n    key: \"receivePostLock\",\n    value: function receivePostLock(data) {\n      if (!data['wp-refresh-post-lock']) {\n        return;\n      }\n\n      var _this$props2 = this.props,\n          autosave = _this$props2.autosave,\n          updatePostLock = _this$props2.updatePostLock;\n      var received = data['wp-refresh-post-lock'];\n\n      if (received.lock_error) {\n        // Auto save and display the takeover modal.\n        autosave();\n        updatePostLock({\n          isLocked: true,\n          isTakeover: true,\n          user: {\n            avatar: received.lock_error.avatar_src\n          }\n        });\n      } else if (received.new_lock) {\n        updatePostLock({\n          isLocked: false,\n          activePostLock: received.new_lock\n        });\n      }\n    }\n    /**\n     * Unlock the post before the window is exited.\n     */\n\n  }, {\n    key: \"releasePostLock\",\n    value: function releasePostLock() {\n      var _this$props3 = this.props,\n          isLocked = _this$props3.isLocked,\n          activePostLock = _this$props3.activePostLock,\n          postLockUtils = _this$props3.postLockUtils,\n          postId = _this$props3.postId;\n\n      if (isLocked || !activePostLock) {\n        return;\n      }\n\n      var data = new window.FormData();\n      data.append('action', 'wp-remove-post-lock');\n      data.append('_wpnonce', postLockUtils.unlockNonce);\n      data.append('post_ID', postId);\n      data.append('active_post_lock', activePostLock);\n\n      if (window.navigator.sendBeacon) {\n        window.navigator.sendBeacon(postLockUtils.ajaxUrl, data);\n      } else {\n        var xhr = new window.XMLHttpRequest();\n        xhr.open('POST', postLockUtils.ajaxUrl, false);\n        xhr.send(data);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props4 = this.props,\n          user = _this$props4.user,\n          postId = _this$props4.postId,\n          isLocked = _this$props4.isLocked,\n          isTakeover = _this$props4.isTakeover,\n          postLockUtils = _this$props4.postLockUtils,\n          postType = _this$props4.postType;\n\n      if (!isLocked) {\n        return null;\n      }\n\n      var userDisplayName = user.name;\n      var userAvatar = user.avatar;\n      var unlockUrl = Object(external_this_wp_url_[\"addQueryArgs\"])('post.php', {\n        'get-post-lock': '1',\n        lockKey: true,\n        post: postId,\n        action: 'edit',\n        _wpnonce: postLockUtils.nonce\n      });\n      var allPostsUrl = getWPAdminURL('edit.php', {\n        post_type: Object(external_this_lodash_[\"get\"])(postType, ['slug'])\n      });\n\n      var allPostsLabel = Object(external_this_wp_i18n_[\"__\"])('Exit the Editor');\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Modal\"], {\n        title: isTakeover ? Object(external_this_wp_i18n_[\"__\"])('Someone else has taken over this post.') : Object(external_this_wp_i18n_[\"__\"])('This post is already being edited.'),\n        focusOnMount: true,\n        shouldCloseOnClickOutside: false,\n        shouldCloseOnEsc: false,\n        isDismissible: false,\n        className: \"editor-post-locked-modal\"\n      }, !!userAvatar && Object(external_this_wp_element_[\"createElement\"])(\"img\", {\n        src: userAvatar,\n        alt: Object(external_this_wp_i18n_[\"__\"])('Avatar'),\n        className: \"editor-post-locked-modal__avatar\"\n      }), !!isTakeover && Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(\"div\", null, userDisplayName ? Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: user's display name */\n      Object(external_this_wp_i18n_[\"__\"])('%s now has editing control of this post. Don’t worry, your changes up to this moment have been saved.'), userDisplayName) : Object(external_this_wp_i18n_[\"__\"])('Another user now has editing control of this post. Don’t worry, your changes up to this moment have been saved.')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-locked-modal__buttons\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isPrimary: true,\n        href: allPostsUrl\n      }, allPostsLabel))), !isTakeover && Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(\"div\", null, userDisplayName ? Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: user's display name */\n      Object(external_this_wp_i18n_[\"__\"])('%s is currently working on this post, which means you cannot make changes, unless you take over.'), userDisplayName) : Object(external_this_wp_i18n_[\"__\"])('Another user is currently working on this post, which means you cannot make changes, unless you take over.')), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-locked-modal__buttons\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isSecondary: true,\n        href: allPostsUrl\n      }, allPostsLabel), Object(external_this_wp_element_[\"createElement\"])(post_preview_button, null), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isPrimary: true,\n        href: unlockUrl\n      }, Object(external_this_wp_i18n_[\"__\"])('Take Over')))));\n    }\n  }]);\n\n  return PostLockedModal;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var post_locked_modal = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isPostLocked = _select.isPostLocked,\n      isPostLockTakeover = _select.isPostLockTakeover,\n      getPostLockUser = _select.getPostLockUser,\n      getCurrentPostId = _select.getCurrentPostId,\n      getActivePostLock = _select.getActivePostLock,\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getEditorSettings = _select.getEditorSettings;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  return {\n    isLocked: isPostLocked(),\n    isTakeover: isPostLockTakeover(),\n    user: getPostLockUser(),\n    postId: getCurrentPostId(),\n    postLockUtils: getEditorSettings().postLockUtils,\n    activePostLock: getActivePostLock(),\n    postType: getPostType(getEditedPostAttribute('type'))\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      autosave = _dispatch.autosave,\n      updatePostLock = _dispatch.updatePostLock;\n\n  return {\n    autosave: autosave,\n    updatePostLock: updatePostLock\n  };\n}), external_this_wp_compose_[\"withInstanceId\"], Object(external_this_wp_compose_[\"withGlobalEvents\"])({\n  beforeunload: 'releasePostLock'\n}))(post_locked_modal_PostLockedModal));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-pending-status/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostPendingStatusCheck(_ref) {\n  var hasPublishAction = _ref.hasPublishAction,\n      isPublished = _ref.isPublished,\n      children = _ref.children;\n\n  if (isPublished || !hasPublishAction) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var post_pending_status_check = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      getCurrentPostType = _select.getCurrentPostType,\n      getCurrentPost = _select.getCurrentPost;\n\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    isPublished: isCurrentPostPublished(),\n    postType: getCurrentPostType()\n  };\n}))(PostPendingStatusCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-pending-status/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction PostPendingStatus(_ref) {\n  var status = _ref.status,\n      onUpdateStatus = _ref.onUpdateStatus;\n\n  var togglePendingStatus = function togglePendingStatus() {\n    var updatedStatus = status === 'pending' ? 'draft' : 'pending';\n    onUpdateStatus(updatedStatus);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(post_pending_status_check, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Pending review'),\n    checked: status === 'pending',\n    onChange: togglePendingStatus\n  }));\n}\n/* harmony default export */ var post_pending_status = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    status: select('core/editor').getEditedPostAttribute('status')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateStatus: function onUpdateStatus(status) {\n      dispatch('core/editor').editPost({\n        status: status\n      });\n    }\n  };\n}))(PostPendingStatus));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-pingbacks/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PostPingbacks(_ref) {\n  var _ref$pingStatus = _ref.pingStatus,\n      pingStatus = _ref$pingStatus === void 0 ? 'open' : _ref$pingStatus,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"pingStatus\"]);\n\n  var onTogglePingback = function onTogglePingback() {\n    return props.editPost({\n      ping_status: pingStatus === 'open' ? 'closed' : 'open'\n    });\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Allow pingbacks & trackbacks'),\n    checked: pingStatus === 'open',\n    onChange: onTogglePingback\n  });\n}\n\n/* harmony default export */ var post_pingbacks = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    pingStatus: select('core/editor').getEditedPostAttribute('ping_status')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    editPost: dispatch('core/editor').editPost\n  };\n})])(PostPingbacks));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-button/label.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction PublishButtonLabel(_ref) {\n  var isPublished = _ref.isPublished,\n      isBeingScheduled = _ref.isBeingScheduled,\n      isSaving = _ref.isSaving,\n      isPublishing = _ref.isPublishing,\n      hasPublishAction = _ref.hasPublishAction,\n      isAutosaving = _ref.isAutosaving,\n      hasNonPostEntityChanges = _ref.hasNonPostEntityChanges;\n\n  if (isPublishing) {\n    return Object(external_this_wp_i18n_[\"__\"])('Publishing…');\n  } else if (isPublished && isSaving && !isAutosaving) {\n    return Object(external_this_wp_i18n_[\"__\"])('Updating…');\n  } else if (isBeingScheduled && isSaving && !isAutosaving) {\n    return Object(external_this_wp_i18n_[\"__\"])('Scheduling…');\n  }\n\n  if (!hasPublishAction) {\n    return hasNonPostEntityChanges ? Object(external_this_wp_i18n_[\"__\"])('Submit for Review…') : Object(external_this_wp_i18n_[\"__\"])('Submit for Review');\n  } else if (isPublished) {\n    return hasNonPostEntityChanges ? Object(external_this_wp_i18n_[\"__\"])('Update…') : Object(external_this_wp_i18n_[\"__\"])('Update');\n  } else if (isBeingScheduled) {\n    return hasNonPostEntityChanges ? Object(external_this_wp_i18n_[\"__\"])('Schedule…') : Object(external_this_wp_i18n_[\"__\"])('Schedule');\n  }\n\n  return Object(external_this_wp_i18n_[\"__\"])('Publish');\n}\n/* harmony default export */ var post_publish_button_label = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var forceIsSaving = _ref2.forceIsSaving;\n\n  var _select = select('core/editor'),\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      isEditedPostBeingScheduled = _select.isEditedPostBeingScheduled,\n      isSavingPost = _select.isSavingPost,\n      isPublishingPost = _select.isPublishingPost,\n      getCurrentPost = _select.getCurrentPost,\n      getCurrentPostType = _select.getCurrentPostType,\n      isAutosavingPost = _select.isAutosavingPost;\n\n  return {\n    isPublished: isCurrentPostPublished(),\n    isBeingScheduled: isEditedPostBeingScheduled(),\n    isSaving: forceIsSaving || isSavingPost(),\n    isPublishing: isPublishingPost(),\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    postType: getCurrentPostType(),\n    isAutosaving: isAutosavingPost()\n  };\n})])(PublishButtonLabel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-button/index.js\n\n\n\n\n\n\n\n\n\nfunction post_publish_button_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_publish_button_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_publish_button_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar post_publish_button_PostPublishButton = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostPublishButton, _Component);\n\n  var _super = post_publish_button_createSuper(PostPublishButton);\n\n  function PostPublishButton(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostPublishButton);\n\n    _this = _super.call(this, props);\n    _this.buttonNode = Object(external_this_wp_element_[\"createRef\"])();\n    _this.createOnClick = _this.createOnClick.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.closeEntitiesSavedStates = _this.closeEntitiesSavedStates.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      entitiesSavedStatesCallback: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostPublishButton, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.focusOnMount) {\n        this.buttonNode.current.focus();\n      }\n    }\n  }, {\n    key: \"createOnClick\",\n    value: function createOnClick(callback) {\n      var _this2 = this;\n\n      return function () {\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n\n        var hasNonPostEntityChanges = _this2.props.hasNonPostEntityChanges;\n\n        if (hasNonPostEntityChanges) {\n          // The modal for multiple entity saving will open,\n          // hold the callback for saving/publishing the post\n          // so that we can call it if the post entity is checked.\n          _this2.setState({\n            entitiesSavedStatesCallback: function entitiesSavedStatesCallback() {\n              return callback.apply(void 0, args);\n            }\n          }); // Open the save panel by setting its callback.\n          // To set a function on the useState hook, we must set it\n          // with another function (() => myFunction). Passing the\n          // function on its own will cause an error when called.\n\n\n          _this2.props.setEntitiesSavedStatesCallback(function () {\n            return _this2.closeEntitiesSavedStates;\n          });\n\n          return external_this_lodash_[\"noop\"];\n        }\n\n        return callback.apply(void 0, args);\n      };\n    }\n  }, {\n    key: \"closeEntitiesSavedStates\",\n    value: function closeEntitiesSavedStates(savedEntities) {\n      var _this$props = this.props,\n          postType = _this$props.postType,\n          postId = _this$props.postId;\n      var entitiesSavedStatesCallback = this.state.entitiesSavedStatesCallback;\n      this.setState({\n        entitiesSavedStatesCallback: false\n      }, function () {\n        if (savedEntities && Object(external_this_lodash_[\"some\"])(savedEntities, function (elt) {\n          return elt.kind === 'postType' && elt.name === postType && elt.key === postId;\n        })) {\n          // The post entity was checked, call the held callback from `createOnClick`.\n          entitiesSavedStatesCallback();\n        }\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          forceIsDirty = _this$props2.forceIsDirty,\n          forceIsSaving = _this$props2.forceIsSaving,\n          hasPublishAction = _this$props2.hasPublishAction,\n          isBeingScheduled = _this$props2.isBeingScheduled,\n          isOpen = _this$props2.isOpen,\n          isPostSavingLocked = _this$props2.isPostSavingLocked,\n          isPublishable = _this$props2.isPublishable,\n          isPublished = _this$props2.isPublished,\n          isSaveable = _this$props2.isSaveable,\n          isSaving = _this$props2.isSaving,\n          isToggle = _this$props2.isToggle,\n          onSave = _this$props2.onSave,\n          onStatusChange = _this$props2.onStatusChange,\n          _this$props2$onSubmit = _this$props2.onSubmit,\n          onSubmit = _this$props2$onSubmit === void 0 ? external_this_lodash_[\"noop\"] : _this$props2$onSubmit,\n          onToggle = _this$props2.onToggle,\n          visibility = _this$props2.visibility,\n          hasNonPostEntityChanges = _this$props2.hasNonPostEntityChanges;\n      var isButtonDisabled = isSaving || forceIsSaving || !isSaveable || isPostSavingLocked || !isPublishable && !forceIsDirty;\n      var isToggleDisabled = isPublished || isSaving || forceIsSaving || !isSaveable || !isPublishable && !forceIsDirty;\n      var publishStatus;\n\n      if (!hasPublishAction) {\n        publishStatus = 'pending';\n      } else if (visibility === 'private') {\n        publishStatus = 'private';\n      } else if (isBeingScheduled) {\n        publishStatus = 'future';\n      } else {\n        publishStatus = 'publish';\n      }\n\n      var onClickButton = function onClickButton() {\n        if (isButtonDisabled) {\n          return;\n        }\n\n        onSubmit();\n        onStatusChange(publishStatus);\n        onSave();\n      };\n\n      var onClickToggle = function onClickToggle() {\n        if (isToggleDisabled) {\n          return;\n        }\n\n        onToggle();\n      };\n\n      var buttonProps = {\n        'aria-disabled': isButtonDisabled && !hasNonPostEntityChanges,\n        className: 'editor-post-publish-button',\n        isBusy: isSaving && isPublished,\n        isPrimary: true,\n        onClick: this.createOnClick(onClickButton)\n      };\n      var toggleProps = {\n        'aria-disabled': isToggleDisabled && !hasNonPostEntityChanges,\n        'aria-expanded': isOpen,\n        className: 'editor-post-publish-panel__toggle',\n        isBusy: isSaving && isPublished,\n        isPrimary: true,\n        onClick: this.createOnClick(onClickToggle)\n      };\n      var toggleChildren = isBeingScheduled ? Object(external_this_wp_i18n_[\"__\"])('Schedule…') : Object(external_this_wp_i18n_[\"__\"])('Publish');\n      var buttonChildren = Object(external_this_wp_element_[\"createElement\"])(post_publish_button_label, {\n        forceIsSaving: forceIsSaving,\n        hasNonPostEntityChanges: hasNonPostEntityChanges\n      });\n      var componentProps = isToggle ? toggleProps : buttonProps;\n      var componentChildren = isToggle ? toggleChildren : buttonChildren;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({\n        ref: this.buttonNode\n      }, componentProps, {\n        className: classnames_default()(componentProps.className, 'editor-post-publish-button__button', {\n          'has-changes-dot': hasNonPostEntityChanges\n        })\n      }), componentChildren));\n    }\n  }]);\n\n  return PostPublishButton;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_publish_button = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isSavingPost = _select.isSavingPost,\n      isEditedPostBeingScheduled = _select.isEditedPostBeingScheduled,\n      getEditedPostVisibility = _select.getEditedPostVisibility,\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      isEditedPostSaveable = _select.isEditedPostSaveable,\n      isEditedPostPublishable = _select.isEditedPostPublishable,\n      isPostSavingLocked = _select.isPostSavingLocked,\n      getCurrentPost = _select.getCurrentPost,\n      getCurrentPostType = _select.getCurrentPostType,\n      getCurrentPostId = _select.getCurrentPostId,\n      hasNonPostEntityChanges = _select.hasNonPostEntityChanges;\n\n  return {\n    isSaving: isSavingPost(),\n    isBeingScheduled: isEditedPostBeingScheduled(),\n    visibility: getEditedPostVisibility(),\n    isSaveable: isEditedPostSaveable(),\n    isPostSavingLocked: isPostSavingLocked(),\n    isPublishable: isEditedPostPublishable(),\n    isPublished: isCurrentPostPublished(),\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    postType: getCurrentPostType(),\n    postId: getCurrentPostId(),\n    hasNonPostEntityChanges: hasNonPostEntityChanges()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost,\n      savePost = _dispatch.savePost;\n\n  return {\n    onStatusChange: function onStatusChange(status) {\n      return editPost({\n        status: status\n      }, {\n        undoIgnore: true\n      });\n    },\n    onSave: savePost\n  };\n})])(post_publish_button_PostPublishButton));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close-small.js\nvar close_small = __webpack_require__(171);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-visibility/utils.js\n/**\n * WordPress dependencies\n */\n\nvar visibilityOptions = [{\n  value: 'public',\n  label: Object(external_this_wp_i18n_[\"__\"])('Public'),\n  info: Object(external_this_wp_i18n_[\"__\"])('Visible to everyone.')\n}, {\n  value: 'private',\n  label: Object(external_this_wp_i18n_[\"__\"])('Private'),\n  info: Object(external_this_wp_i18n_[\"__\"])('Only visible to site admins and editors.')\n}, {\n  value: 'password',\n  label: Object(external_this_wp_i18n_[\"__\"])('Password Protected'),\n  info: Object(external_this_wp_i18n_[\"__\"])('Protected with a password you choose. Only those with the password can view this post.')\n}];\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-visibility/index.js\n\n\n\n\n\n\n\n\nfunction post_visibility_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_visibility_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_visibility_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar post_visibility_PostVisibility = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostVisibility, _Component);\n\n  var _super = post_visibility_createSuper(PostVisibility);\n\n  function PostVisibility(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostVisibility);\n\n    _this = _super.apply(this, arguments);\n    _this.setPublic = _this.setPublic.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setPrivate = _this.setPrivate.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setPasswordProtected = _this.setPasswordProtected.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.updatePassword = _this.updatePassword.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      hasPassword: !!props.password\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostVisibility, [{\n    key: \"setPublic\",\n    value: function setPublic() {\n      var _this$props = this.props,\n          visibility = _this$props.visibility,\n          onUpdateVisibility = _this$props.onUpdateVisibility,\n          status = _this$props.status;\n      onUpdateVisibility(visibility === 'private' ? 'draft' : status);\n      this.setState({\n        hasPassword: false\n      });\n    }\n  }, {\n    key: \"setPrivate\",\n    value: function setPrivate() {\n      if ( // eslint-disable-next-line no-alert\n      !window.confirm(Object(external_this_wp_i18n_[\"__\"])('Would you like to privately publish this post now?'))) {\n        return;\n      }\n\n      var _this$props2 = this.props,\n          onUpdateVisibility = _this$props2.onUpdateVisibility,\n          onSave = _this$props2.onSave;\n      onUpdateVisibility('private');\n      this.setState({\n        hasPassword: false\n      });\n      onSave();\n    }\n  }, {\n    key: \"setPasswordProtected\",\n    value: function setPasswordProtected() {\n      var _this$props3 = this.props,\n          visibility = _this$props3.visibility,\n          onUpdateVisibility = _this$props3.onUpdateVisibility,\n          status = _this$props3.status,\n          password = _this$props3.password;\n      onUpdateVisibility(visibility === 'private' ? 'draft' : status, password || '');\n      this.setState({\n        hasPassword: true\n      });\n    }\n  }, {\n    key: \"updatePassword\",\n    value: function updatePassword(event) {\n      var _this$props4 = this.props,\n          status = _this$props4.status,\n          onUpdateVisibility = _this$props4.onUpdateVisibility;\n      onUpdateVisibility(status, event.target.value);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props5 = this.props,\n          visibility = _this$props5.visibility,\n          password = _this$props5.password,\n          instanceId = _this$props5.instanceId;\n      var visibilityHandlers = {\n        public: {\n          onSelect: this.setPublic,\n          checked: visibility === 'public' && !this.state.hasPassword\n        },\n        private: {\n          onSelect: this.setPrivate,\n          checked: visibility === 'private'\n        },\n        password: {\n          onSelect: this.setPasswordProtected,\n          checked: this.state.hasPassword\n        }\n      };\n      return [Object(external_this_wp_element_[\"createElement\"])(\"fieldset\", {\n        key: \"visibility-selector\",\n        className: \"editor-post-visibility__dialog-fieldset\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"legend\", {\n        className: \"editor-post-visibility__dialog-legend\"\n      }, Object(external_this_wp_i18n_[\"__\"])('Post Visibility')), visibilityOptions.map(function (_ref) {\n        var value = _ref.value,\n            label = _ref.label,\n            info = _ref.info;\n        return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          key: value,\n          className: \"editor-post-visibility__choice\"\n        }, Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n          type: \"radio\",\n          name: \"editor-post-visibility__setting-\".concat(instanceId),\n          value: value,\n          onChange: visibilityHandlers[value].onSelect,\n          checked: visibilityHandlers[value].checked,\n          id: \"editor-post-\".concat(value, \"-\").concat(instanceId),\n          \"aria-describedby\": \"editor-post-\".concat(value, \"-\").concat(instanceId, \"-description\"),\n          className: \"editor-post-visibility__dialog-radio\"\n        }), Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n          htmlFor: \"editor-post-\".concat(value, \"-\").concat(instanceId),\n          className: \"editor-post-visibility__dialog-label\"\n        }, label), Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n          id: \"editor-post-\".concat(value, \"-\").concat(instanceId, \"-description\"),\n          className: \"editor-post-visibility__dialog-info\"\n        }, info));\n      })), this.state.hasPassword && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-visibility__dialog-password\",\n        key: \"password-selector\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"label\",\n        htmlFor: \"editor-post-visibility__dialog-password-input-\".concat(instanceId)\n      }, Object(external_this_wp_i18n_[\"__\"])('Create password')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        className: \"editor-post-visibility__dialog-password-input\",\n        id: \"editor-post-visibility__dialog-password-input-\".concat(instanceId),\n        type: \"text\",\n        onChange: this.updatePassword,\n        value: password,\n        placeholder: Object(external_this_wp_i18n_[\"__\"])('Use a secure password')\n      }))];\n    }\n  }]);\n\n  return PostVisibility;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_visibility = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getEditedPostVisibility = _select.getEditedPostVisibility;\n\n  return {\n    status: getEditedPostAttribute('status'),\n    visibility: getEditedPostVisibility(),\n    password: getEditedPostAttribute('password')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      savePost = _dispatch.savePost,\n      editPost = _dispatch.editPost;\n\n  return {\n    onSave: savePost,\n    onUpdateVisibility: function onUpdateVisibility(status) {\n      var password = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      editPost({\n        status: status,\n        password: password\n      });\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(post_visibility_PostVisibility));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-visibility/label.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PostVisibilityLabel(_ref) {\n  var visibility = _ref.visibility;\n\n  var getVisibilityLabel = function getVisibilityLabel() {\n    return Object(external_this_lodash_[\"find\"])(visibilityOptions, {\n      value: visibility\n    }).label;\n  };\n\n  return getVisibilityLabel(visibility);\n}\n\n/* harmony default export */ var post_visibility_label = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    visibility: select('core/editor').getEditedPostVisibility()\n  };\n})(PostVisibilityLabel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-schedule/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction PostSchedule(_ref) {\n  var date = _ref.date,\n      onUpdateDate = _ref.onUpdateDate;\n\n  var onChange = function onChange(newDate) {\n    onUpdateDate(newDate);\n    document.activeElement.blur();\n  };\n\n  var settings = Object(external_this_wp_date_[\"__experimentalGetSettings\"])(); // To know if the current timezone is a 12 hour time with look for \"a\" in the time format\n  // We also make sure this a is not escaped by a \"/\"\n\n\n  var is12HourTime = /a(?!\\\\)/i.test(settings.formats.time.toLowerCase() // Test only the lower case a\n  .replace(/\\\\\\\\/g, '') // Replace \"//\" with empty strings\n  .split('').reverse().join('') // Reverse the string and test for \"a\" not followed by a slash\n  );\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"DateTimePicker\"], {\n    key: \"date-time-picker\",\n    currentDate: date,\n    onChange: onChange,\n    is12Hour: is12HourTime\n  });\n}\n/* harmony default export */ var post_schedule = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    date: select('core/editor').getEditedPostAttribute('date')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateDate: function onUpdateDate(date) {\n      dispatch('core/editor').editPost({\n        date: date\n      });\n    }\n  };\n})])(PostSchedule));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-schedule/label.js\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostScheduleLabel(_ref) {\n  var date = _ref.date,\n      isFloating = _ref.isFloating;\n\n  var settings = Object(external_this_wp_date_[\"__experimentalGetSettings\"])();\n\n  return date && !isFloating ? Object(external_this_wp_date_[\"dateI18n\"])(\"\".concat(settings.formats.date, \" \").concat(settings.formats.time), date) : Object(external_this_wp_i18n_[\"__\"])('Immediately');\n}\n/* harmony default export */ var post_schedule_label = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    date: select('core/editor').getEditedPostAttribute('date'),\n    isFloating: select('core/editor').isEditedPostDateFloating()\n  };\n})(PostScheduleLabel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/flat-term-selector.js\n\n\n\n\n\n\n\n\n\nfunction flat_term_selector_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (flat_term_selector_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction flat_term_selector_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction flat_term_selector_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction flat_term_selector_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { flat_term_selector_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { flat_term_selector_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Module constants\n */\n\nvar DEFAULT_QUERY = {\n  per_page: -1,\n  orderby: 'count',\n  order: 'desc',\n  _fields: 'id,name'\n};\nvar MAX_TERMS_SUGGESTIONS = 20;\n\nvar isSameTermName = function isSameTermName(termA, termB) {\n  return termA.toLowerCase() === termB.toLowerCase();\n};\n/**\n * Returns a term object with name unescaped.\n * The unescape of the name property is done using lodash unescape function.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\n\n\nvar flat_term_selector_unescapeTerm = function unescapeTerm(term) {\n  return flat_term_selector_objectSpread({}, term, {\n    name: Object(external_this_lodash_[\"unescape\"])(term.name)\n  });\n};\n/**\n * Returns an array of term objects with names unescaped.\n * The unescape of each term is performed using the unescapeTerm function.\n *\n * @param {Object[]} terms Array of term objects to unescape.\n *\n * @return {Object[]} Array of term objects unescaped.\n */\n\n\nvar flat_term_selector_unescapeTerms = function unescapeTerms(terms) {\n  return Object(external_this_lodash_[\"map\"])(terms, flat_term_selector_unescapeTerm);\n};\n\nvar flat_term_selector_FlatTermSelector = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(FlatTermSelector, _Component);\n\n  var _super = flat_term_selector_createSuper(FlatTermSelector);\n\n  function FlatTermSelector() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, FlatTermSelector);\n\n    _this = _super.apply(this, arguments);\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.searchTerms = Object(external_this_lodash_[\"throttle\"])(_this.searchTerms.bind(Object(assertThisInitialized[\"a\" /* default */])(_this)), 500);\n    _this.findOrCreateTerm = _this.findOrCreateTerm.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      loading: !Object(external_this_lodash_[\"isEmpty\"])(_this.props.terms),\n      availableTerms: [],\n      selectedTerms: []\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(FlatTermSelector, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      if (!Object(external_this_lodash_[\"isEmpty\"])(this.props.terms)) {\n        this.initRequest = this.fetchTerms({\n          include: this.props.terms.join(','),\n          per_page: -1\n        });\n        this.initRequest.then(function () {\n          _this2.setState({\n            loading: false\n          });\n        }, function (xhr) {\n          if (xhr.statusText === 'abort') {\n            return;\n          }\n\n          _this2.setState({\n            loading: false\n          });\n        });\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      Object(external_this_lodash_[\"invoke\"])(this.initRequest, ['abort']);\n      Object(external_this_lodash_[\"invoke\"])(this.searchRequest, ['abort']);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (prevProps.terms !== this.props.terms) {\n        this.updateSelectedTerms(this.props.terms);\n      }\n    }\n  }, {\n    key: \"fetchTerms\",\n    value: function fetchTerms() {\n      var _this3 = this;\n\n      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var taxonomy = this.props.taxonomy;\n\n      var query = flat_term_selector_objectSpread({}, DEFAULT_QUERY, {}, params);\n\n      var request = external_this_wp_apiFetch_default()({\n        path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/\".concat(taxonomy.rest_base), query)\n      });\n      request.then(flat_term_selector_unescapeTerms).then(function (terms) {\n        _this3.setState(function (state) {\n          return {\n            availableTerms: state.availableTerms.concat(terms.filter(function (term) {\n              return !Object(external_this_lodash_[\"find\"])(state.availableTerms, function (availableTerm) {\n                return availableTerm.id === term.id;\n              });\n            }))\n          };\n        });\n\n        _this3.updateSelectedTerms(_this3.props.terms);\n      });\n      return request;\n    }\n  }, {\n    key: \"updateSelectedTerms\",\n    value: function updateSelectedTerms() {\n      var _this4 = this;\n\n      var terms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var selectedTerms = terms.reduce(function (accumulator, termId) {\n        var termObject = Object(external_this_lodash_[\"find\"])(_this4.state.availableTerms, function (term) {\n          return term.id === termId;\n        });\n\n        if (termObject) {\n          accumulator.push(termObject.name);\n        }\n\n        return accumulator;\n      }, []);\n      this.setState({\n        selectedTerms: selectedTerms\n      });\n    }\n  }, {\n    key: \"findOrCreateTerm\",\n    value: function findOrCreateTerm(termName) {\n      var _this5 = this;\n\n      var taxonomy = this.props.taxonomy;\n      var termNameEscaped = Object(external_this_lodash_[\"escape\"])(termName); // Tries to create a term or fetch it if it already exists.\n\n      return external_this_wp_apiFetch_default()({\n        path: \"/wp/v2/\".concat(taxonomy.rest_base),\n        method: 'POST',\n        data: {\n          name: termNameEscaped\n        }\n      }).catch(function (error) {\n        var errorCode = error.code;\n\n        if (errorCode === 'term_exists') {\n          // If the terms exist, fetch it instead of creating a new one.\n          _this5.addRequest = external_this_wp_apiFetch_default()({\n            path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/\".concat(taxonomy.rest_base), flat_term_selector_objectSpread({}, DEFAULT_QUERY, {\n              search: termNameEscaped\n            }))\n          }).then(flat_term_selector_unescapeTerms);\n          return _this5.addRequest.then(function (searchResult) {\n            return Object(external_this_lodash_[\"find\"])(searchResult, function (result) {\n              return isSameTermName(result.name, termName);\n            });\n          });\n        }\n\n        return Promise.reject(error);\n      }).then(flat_term_selector_unescapeTerm);\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(termNames) {\n      var _this6 = this;\n\n      var uniqueTerms = Object(external_this_lodash_[\"uniqBy\"])(termNames, function (term) {\n        return term.toLowerCase();\n      });\n      this.setState({\n        selectedTerms: uniqueTerms\n      });\n      var newTermNames = uniqueTerms.filter(function (termName) {\n        return !Object(external_this_lodash_[\"find\"])(_this6.state.availableTerms, function (term) {\n          return isSameTermName(term.name, termName);\n        });\n      });\n\n      var termNamesToIds = function termNamesToIds(names, availableTerms) {\n        return names.map(function (termName) {\n          return Object(external_this_lodash_[\"find\"])(availableTerms, function (term) {\n            return isSameTermName(term.name, termName);\n          }).id;\n        });\n      };\n\n      if (newTermNames.length === 0) {\n        return this.props.onUpdateTerms(termNamesToIds(uniqueTerms, this.state.availableTerms), this.props.taxonomy.rest_base);\n      }\n\n      Promise.all(newTermNames.map(this.findOrCreateTerm)).then(function (newTerms) {\n        var newAvailableTerms = _this6.state.availableTerms.concat(newTerms);\n\n        _this6.setState({\n          availableTerms: newAvailableTerms\n        });\n\n        return _this6.props.onUpdateTerms(termNamesToIds(uniqueTerms, newAvailableTerms), _this6.props.taxonomy.rest_base);\n      });\n    }\n  }, {\n    key: \"searchTerms\",\n    value: function searchTerms() {\n      var search = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      Object(external_this_lodash_[\"invoke\"])(this.searchRequest, ['abort']);\n      this.searchRequest = this.fetchTerms({\n        search: search\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          slug = _this$props.slug,\n          taxonomy = _this$props.taxonomy,\n          hasAssignAction = _this$props.hasAssignAction;\n\n      if (!hasAssignAction) {\n        return null;\n      }\n\n      var _this$state = this.state,\n          loading = _this$state.loading,\n          availableTerms = _this$state.availableTerms,\n          selectedTerms = _this$state.selectedTerms;\n      var termNames = availableTerms.map(function (term) {\n        return term.name;\n      });\n      var newTermLabel = Object(external_this_lodash_[\"get\"])(taxonomy, ['labels', 'add_new_item'], slug === 'post_tag' ? Object(external_this_wp_i18n_[\"__\"])('Add new tag') : Object(external_this_wp_i18n_[\"__\"])('Add new Term'));\n      var singularName = Object(external_this_lodash_[\"get\"])(taxonomy, ['labels', 'singular_name'], slug === 'post_tag' ? Object(external_this_wp_i18n_[\"__\"])('Tag') : Object(external_this_wp_i18n_[\"__\"])('Term'));\n      var termAddedLabel = Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: term name. */\n      Object(external_this_wp_i18n_[\"_x\"])('%s added', 'term'), singularName);\n      var termRemovedLabel = Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: term name. */\n      Object(external_this_wp_i18n_[\"_x\"])('%s removed', 'term'), singularName);\n      var removeTermLabel = Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %s: term name. */\n      Object(external_this_wp_i18n_[\"_x\"])('Remove %s', 'term'), singularName);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"FormTokenField\"], {\n        value: selectedTerms,\n        suggestions: termNames,\n        onChange: this.onChange,\n        onInputChange: this.searchTerms,\n        maxSuggestions: MAX_TERMS_SUGGESTIONS,\n        disabled: loading,\n        label: newTermLabel,\n        messages: {\n          added: termAddedLabel,\n          removed: termRemovedLabel,\n          remove: removeTermLabel\n        }\n      });\n    }\n  }]);\n\n  return FlatTermSelector;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var flat_term_selector = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var slug = _ref.slug;\n\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost;\n\n  var _select2 = select('core'),\n      getTaxonomy = _select2.getTaxonomy;\n\n  var taxonomy = getTaxonomy(slug);\n  return {\n    hasCreateAction: taxonomy ? Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-create-' + taxonomy.rest_base], false) : false,\n    hasAssignAction: taxonomy ? Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-assign-' + taxonomy.rest_base], false) : false,\n    terms: taxonomy ? select('core/editor').getEditedPostAttribute(taxonomy.rest_base) : [],\n    taxonomy: taxonomy\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateTerms: function onUpdateTerms(terms, restBase) {\n      dispatch('core/editor').editPost(Object(defineProperty[\"a\" /* default */])({}, restBase, terms));\n    }\n  };\n}), Object(external_this_wp_components_[\"withFilters\"])('editor.PostTaxonomyType'))(flat_term_selector_FlatTermSelector));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-tags-panel.js\n\n\n\n\n\n\n\nfunction maybe_tags_panel_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (maybe_tags_panel_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction maybe_tags_panel_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar maybe_tags_panel_TagsPanel = function TagsPanel() {\n  var panelBodyTitle = [Object(external_this_wp_i18n_[\"__\"])('Suggestion:'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"editor-post-publish-panel__link\",\n    key: \"label\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Add tags'))];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    initialOpen: false,\n    title: panelBodyTitle\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('Tags help users and search engines navigate your site and find your content. Add a few keywords to describe your post.')), Object(external_this_wp_element_[\"createElement\"])(flat_term_selector, {\n    slug: 'post_tag'\n  }));\n};\n\nvar maybe_tags_panel_MaybeTagsPanel = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MaybeTagsPanel, _Component);\n\n  var _super = maybe_tags_panel_createSuper(MaybeTagsPanel);\n\n  function MaybeTagsPanel(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, MaybeTagsPanel);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      hadTagsWhenOpeningThePanel: props.hasTags\n    };\n    return _this;\n  }\n  /*\n   * We only want to show the tag panel if the post didn't have\n   * any tags when the user hit the Publish button.\n   *\n   * We can't use the prop.hasTags because it'll change to true\n   * if the user adds a new tag within the pre-publish panel.\n   * This would force a re-render and a new prop.hasTags check,\n   * hiding this panel and keeping the user from adding\n   * more than one tag.\n   */\n\n\n  Object(createClass[\"a\" /* default */])(MaybeTagsPanel, [{\n    key: \"render\",\n    value: function render() {\n      if (!this.state.hadTagsWhenOpeningThePanel) {\n        return Object(external_this_wp_element_[\"createElement\"])(maybe_tags_panel_TagsPanel, null);\n      }\n\n      return null;\n    }\n  }]);\n\n  return MaybeTagsPanel;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var maybe_tags_panel = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var postType = select('core/editor').getCurrentPostType();\n  var tagsTaxonomy = select('core').getTaxonomy('post_tag');\n  var tags = tagsTaxonomy && select('core/editor').getEditedPostAttribute(tagsTaxonomy.rest_base);\n  return {\n    areTagsFetched: tagsTaxonomy !== undefined,\n    isPostTypeSupported: tagsTaxonomy && Object(external_this_lodash_[\"some\"])(tagsTaxonomy.types, function (type) {\n      return type === postType;\n    }),\n    hasTags: tags && tags.length\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref) {\n  var areTagsFetched = _ref.areTagsFetched,\n      isPostTypeSupported = _ref.isPostTypeSupported;\n  return isPostTypeSupported && areTagsFetched;\n}))(maybe_tags_panel_MaybeTagsPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-post-format-panel.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar maybe_post_format_panel_PostFormatSuggestion = function PostFormatSuggestion(_ref) {\n  var suggestedPostFormat = _ref.suggestedPostFormat,\n      suggestionText = _ref.suggestionText,\n      onUpdatePostFormat = _ref.onUpdatePostFormat;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isLink: true,\n    onClick: function onClick() {\n      return onUpdatePostFormat(suggestedPostFormat);\n    }\n  }, suggestionText);\n};\n\nvar maybe_post_format_panel_PostFormatPanel = function PostFormatPanel(_ref2) {\n  var suggestion = _ref2.suggestion,\n      onUpdatePostFormat = _ref2.onUpdatePostFormat;\n  var panelBodyTitle = [Object(external_this_wp_i18n_[\"__\"])('Suggestion:'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"editor-post-publish-panel__link\",\n    key: \"label\"\n  }, Object(external_this_wp_i18n_[\"__\"])('Use a post format'))];\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    initialOpen: false,\n    title: panelBodyTitle\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_i18n_[\"__\"])('Your theme uses post formats to highlight different kinds of content, like images or videos. Apply a post format to see this special styling.')), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_element_[\"createElement\"])(maybe_post_format_panel_PostFormatSuggestion, {\n    onUpdatePostFormat: onUpdatePostFormat,\n    suggestedPostFormat: suggestion.id,\n    suggestionText: Object(external_this_wp_i18n_[\"sprintf\"])(\n    /* translators: %s: post format */\n    Object(external_this_wp_i18n_[\"__\"])('Apply the \"%1$s\" format.'), suggestion.caption)\n  })));\n};\n\nvar maybe_post_format_panel_getSuggestion = function getSuggestion(supportedFormats, suggestedPostFormat) {\n  var formats = POST_FORMATS.filter(function (format) {\n    return Object(external_this_lodash_[\"includes\"])(supportedFormats, format.id);\n  });\n  return Object(external_this_lodash_[\"find\"])(formats, function (format) {\n    return format.id === suggestedPostFormat;\n  });\n};\n\n/* harmony default export */ var maybe_post_format_panel = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getSuggestedPostFormat = _select.getSuggestedPostFormat;\n\n  var supportedFormats = Object(external_this_lodash_[\"get\"])(select('core').getThemeSupports(), ['formats'], []);\n  return {\n    currentPostFormat: getEditedPostAttribute('format'),\n    suggestion: maybe_post_format_panel_getSuggestion(supportedFormats, getSuggestedPostFormat())\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdatePostFormat: function onUpdatePostFormat(postFormat) {\n      dispatch('core/editor').editPost({\n        format: postFormat\n      });\n    }\n  };\n}), Object(external_this_wp_compose_[\"ifCondition\"])(function (_ref3) {\n  var suggestion = _ref3.suggestion,\n      currentPostFormat = _ref3.currentPostFormat;\n  return suggestion && suggestion.id !== currentPostFormat;\n}))(maybe_post_format_panel_PostFormatPanel));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/prepublish.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\nfunction PostPublishPanelPrepublish(_ref) {\n  var hasPublishAction = _ref.hasPublishAction,\n      isBeingScheduled = _ref.isBeingScheduled,\n      children = _ref.children;\n  var prePublishTitle, prePublishBodyText;\n\n  if (!hasPublishAction) {\n    prePublishTitle = Object(external_this_wp_i18n_[\"__\"])('Are you ready to submit for review?');\n    prePublishBodyText = Object(external_this_wp_i18n_[\"__\"])('When you’re ready, submit your work for review, and an Editor will be able to approve it for you.');\n  } else if (isBeingScheduled) {\n    prePublishTitle = Object(external_this_wp_i18n_[\"__\"])('Are you ready to schedule?');\n    prePublishBodyText = Object(external_this_wp_i18n_[\"__\"])('Your work will be published at the specified date and time.');\n  } else {\n    prePublishTitle = Object(external_this_wp_i18n_[\"__\"])('Are you ready to publish?');\n    prePublishBodyText = Object(external_this_wp_i18n_[\"__\"])('Double-check your settings before publishing.');\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n    className: \"editor-post-publish-panel__prepublish\"\n  }, Object(external_this_wp_element_[\"createElement\"])(\"div\", null, Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, prePublishTitle)), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, prePublishBodyText), hasPublishAction && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    initialOpen: false,\n    title: [Object(external_this_wp_i18n_[\"__\"])('Visibility:'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"editor-post-publish-panel__link\",\n      key: \"label\"\n    }, Object(external_this_wp_element_[\"createElement\"])(post_visibility_label, null))]\n  }, Object(external_this_wp_element_[\"createElement\"])(post_visibility, null)), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n    initialOpen: false,\n    title: [Object(external_this_wp_i18n_[\"__\"])('Publish:'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"editor-post-publish-panel__link\",\n      key: \"label\"\n    }, Object(external_this_wp_element_[\"createElement\"])(post_schedule_label, null))]\n  }, Object(external_this_wp_element_[\"createElement\"])(post_schedule, null))), Object(external_this_wp_element_[\"createElement\"])(maybe_post_format_panel, null), Object(external_this_wp_element_[\"createElement\"])(maybe_tags_panel, null), children);\n}\n\n/* harmony default export */ var prepublish = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost,\n      isEditedPostBeingScheduled = _select.isEditedPostBeingScheduled;\n\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    isBeingScheduled: isEditedPostBeingScheduled()\n  };\n})(PostPublishPanelPrepublish));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/postpublish.js\n\n\n\n\n\n\n\n\nfunction postpublish_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (postpublish_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction postpublish_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar POSTNAME = '%postname%';\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post         Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nvar getFuturePostUrl = function getFuturePostUrl(post) {\n  var slug = post.slug;\n\n  if (post.permalink_template.includes(POSTNAME)) {\n    return post.permalink_template.replace(POSTNAME, slug);\n  }\n\n  return post.permalink_template;\n};\n\nvar postpublish_PostPublishPanelPostpublish = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostPublishPanelPostpublish, _Component);\n\n  var _super = postpublish_createSuper(PostPublishPanelPostpublish);\n\n  function PostPublishPanelPostpublish() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostPublishPanelPostpublish);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      showCopyConfirmation: false\n    };\n    _this.onCopy = _this.onCopy.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelectInput = _this.onSelectInput.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.postLink = Object(external_this_wp_element_[\"createRef\"])();\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostPublishPanelPostpublish, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.focusOnMount) {\n        this.postLink.current.focus();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      clearTimeout(this.dismissCopyConfirmation);\n    }\n  }, {\n    key: \"onCopy\",\n    value: function onCopy() {\n      var _this2 = this;\n\n      this.setState({\n        showCopyConfirmation: true\n      });\n      clearTimeout(this.dismissCopyConfirmation);\n      this.dismissCopyConfirmation = setTimeout(function () {\n        _this2.setState({\n          showCopyConfirmation: false\n        });\n      }, 4000);\n    }\n  }, {\n    key: \"onSelectInput\",\n    value: function onSelectInput(event) {\n      event.target.select();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          children = _this$props.children,\n          isScheduled = _this$props.isScheduled,\n          post = _this$props.post,\n          postType = _this$props.postType;\n      var postLabel = Object(external_this_lodash_[\"get\"])(postType, ['labels', 'singular_name']);\n      var viewPostLabel = Object(external_this_lodash_[\"get\"])(postType, ['labels', 'view_item']);\n      var link = post.status === 'future' ? getFuturePostUrl(post) : post.link;\n      var postPublishNonLinkHeader = isScheduled ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_i18n_[\"__\"])('is now scheduled. It will go live on'), ' ', Object(external_this_wp_element_[\"createElement\"])(post_schedule_label, null), \".\") : Object(external_this_wp_i18n_[\"__\"])('is now live.');\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"post-publish-panel__postpublish\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], {\n        className: \"post-publish-panel__postpublish-header\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"a\", {\n        ref: this.postLink,\n        href: link\n      }, Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(post.title) || Object(external_this_wp_i18n_[\"__\"])('(no title)')), ' ', postPublishNonLinkHeader), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"PanelBody\"], null, Object(external_this_wp_element_[\"createElement\"])(\"p\", {\n        className: \"post-publish-panel__postpublish-subheader\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"strong\", null, Object(external_this_wp_i18n_[\"__\"])('What’s next?'))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n        className: \"post-publish-panel__postpublish-post-address\",\n        readOnly: true,\n        label: Object(external_this_wp_i18n_[\"sprintf\"])(\n        /* translators: %s: post type singular name */\n        Object(external_this_wp_i18n_[\"__\"])('%s address'), postLabel),\n        value: Object(external_this_wp_url_[\"safeDecodeURIComponent\"])(link),\n        onFocus: this.onSelectInput\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"post-publish-panel__postpublish-buttons\"\n      }, !isScheduled && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isSecondary: true,\n        href: link\n      }, viewPostLabel), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"ClipboardButton\"], {\n        isSecondary: true,\n        text: link,\n        onCopy: this.onCopy\n      }, this.state.showCopyConfirmation ? Object(external_this_wp_i18n_[\"__\"])('Copied!') : Object(external_this_wp_i18n_[\"__\"])('Copy Link')))), children);\n    }\n  }]);\n\n  return PostPublishPanelPostpublish;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var postpublish = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      getCurrentPost = _select.getCurrentPost,\n      isCurrentPostScheduled = _select.isCurrentPostScheduled;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType;\n\n  return {\n    post: getCurrentPost(),\n    postType: getPostType(getEditedPostAttribute('type')),\n    isScheduled: isCurrentPostScheduled()\n  };\n})(postpublish_PostPublishPanelPostpublish));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/index.js\n\n\n\n\n\n\n\n\n\n\nfunction post_publish_panel_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_publish_panel_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_publish_panel_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar post_publish_panel_PostPublishPanel = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostPublishPanel, _Component);\n\n  var _super = post_publish_panel_createSuper(PostPublishPanel);\n\n  function PostPublishPanel() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostPublishPanel);\n\n    _this = _super.apply(this, arguments);\n    _this.onSubmit = _this.onSubmit.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostPublishPanel, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      // Automatically collapse the publish sidebar when a post\n      // is published and the user makes an edit.\n      if (prevProps.isPublished && !this.props.isSaving && this.props.isDirty) {\n        this.props.onClose();\n      }\n    }\n  }, {\n    key: \"onSubmit\",\n    value: function onSubmit() {\n      var _this$props = this.props,\n          onClose = _this$props.onClose,\n          hasPublishAction = _this$props.hasPublishAction,\n          isPostTypeViewable = _this$props.isPostTypeViewable;\n\n      if (!hasPublishAction || !isPostTypeViewable) {\n        onClose();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          forceIsDirty = _this$props2.forceIsDirty,\n          forceIsSaving = _this$props2.forceIsSaving,\n          isBeingScheduled = _this$props2.isBeingScheduled,\n          isPublished = _this$props2.isPublished,\n          isPublishSidebarEnabled = _this$props2.isPublishSidebarEnabled,\n          isScheduled = _this$props2.isScheduled,\n          isSaving = _this$props2.isSaving,\n          onClose = _this$props2.onClose,\n          onTogglePublishSidebar = _this$props2.onTogglePublishSidebar,\n          PostPublishExtension = _this$props2.PostPublishExtension,\n          PrePublishExtension = _this$props2.PrePublishExtension,\n          additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(_this$props2, [\"forceIsDirty\", \"forceIsSaving\", \"isBeingScheduled\", \"isPublished\", \"isPublishSidebarEnabled\", \"isScheduled\", \"isSaving\", \"onClose\", \"onTogglePublishSidebar\", \"PostPublishExtension\", \"PrePublishExtension\"]);\n\n      var propsForPanel = Object(external_this_lodash_[\"omit\"])(additionalProps, ['hasPublishAction', 'isDirty', 'isPostTypeViewable']);\n      var isPublishedOrScheduled = isPublished || isScheduled && isBeingScheduled;\n      var isPrePublish = !isPublishedOrScheduled && !isSaving;\n      var isPostPublish = isPublishedOrScheduled && !isSaving;\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", Object(esm_extends[\"a\" /* default */])({\n        className: \"editor-post-publish-panel\"\n      }, propsForPanel), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-publish-panel__header\"\n      }, isPostPublish ? Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        onClick: onClose,\n        icon: close_small[\"a\" /* default */],\n        label: Object(external_this_wp_i18n_[\"__\"])('Close panel')\n      }) : Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-publish-panel__header-publish-button\"\n      }, Object(external_this_wp_element_[\"createElement\"])(post_publish_button, {\n        focusOnMount: true,\n        onSubmit: this.onSubmit,\n        forceIsDirty: forceIsDirty,\n        forceIsSaving: forceIsSaving\n      })), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-publish-panel__header-cancel-button\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        onClick: onClose,\n        label: Object(external_this_wp_i18n_[\"__\"])('Close panel'),\n        isSecondary: true\n      }, Object(external_this_wp_i18n_[\"__\"])('Cancel'))))), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-publish-panel__content\"\n      }, isPrePublish && Object(external_this_wp_element_[\"createElement\"])(prepublish, null, PrePublishExtension && Object(external_this_wp_element_[\"createElement\"])(PrePublishExtension, null)), isPostPublish && Object(external_this_wp_element_[\"createElement\"])(postpublish, {\n        focusOnMount: true\n      }, PostPublishExtension && Object(external_this_wp_element_[\"createElement\"])(PostPublishExtension, null)), isSaving && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null)), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-publish-panel__footer\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n        label: Object(external_this_wp_i18n_[\"__\"])('Always show pre-publish checks.'),\n        checked: isPublishSidebarEnabled,\n        onChange: onTogglePublishSidebar\n      })));\n    }\n  }]);\n\n  return PostPublishPanel;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_publish_panel = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core'),\n      getPostType = _select.getPostType;\n\n  var _select2 = select('core/editor'),\n      getCurrentPost = _select2.getCurrentPost,\n      getEditedPostAttribute = _select2.getEditedPostAttribute,\n      isCurrentPostPublished = _select2.isCurrentPostPublished,\n      isCurrentPostScheduled = _select2.isCurrentPostScheduled,\n      isEditedPostBeingScheduled = _select2.isEditedPostBeingScheduled,\n      isEditedPostDirty = _select2.isEditedPostDirty,\n      isSavingPost = _select2.isSavingPost;\n\n  var _select3 = select('core/editor'),\n      isPublishSidebarEnabled = _select3.isPublishSidebarEnabled;\n\n  var postType = getPostType(getEditedPostAttribute('type'));\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    isPostTypeViewable: Object(external_this_lodash_[\"get\"])(postType, ['viewable'], false),\n    isBeingScheduled: isEditedPostBeingScheduled(),\n    isDirty: isEditedPostDirty(),\n    isPublished: isCurrentPostPublished(),\n    isPublishSidebarEnabled: isPublishSidebarEnabled(),\n    isSaving: isSavingPost(),\n    isScheduled: isCurrentPostScheduled()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref) {\n  var isPublishSidebarEnabled = _ref.isPublishSidebarEnabled;\n\n  var _dispatch = dispatch('core/editor'),\n      disablePublishSidebar = _dispatch.disablePublishSidebar,\n      enablePublishSidebar = _dispatch.enablePublishSidebar;\n\n  return {\n    onTogglePublishSidebar: function onTogglePublishSidebar() {\n      if (isPublishSidebarEnabled) {\n        disablePublishSidebar();\n      } else {\n        enablePublishSidebar();\n      }\n    }\n  };\n}), external_this_wp_components_[\"withFocusReturn\"], external_this_wp_components_[\"withConstrainedTabbing\"]])(post_publish_panel_PostPublishPanel));\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar build_module_icon = __webpack_require__(131);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cloud.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar cloud = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M14.9 9c1.8.2 3.1 1.7 3.1 3.5 0 1.9-1.6 3.5-3.5 3.5h-10C2.6 16 1 14.4 1 12.5 1 10.7 2.3 9.3 4.1 9 4 8.9 4 8.7 4 8.5 4 7.1 5.1 6 6.5 6c.3 0 .7.1.9.2C8.1 4.9 9.4 4 11 4c2.2 0 4 1.8 4 4 0 .4-.1.7-.1 1z\"\n}));\n/* harmony default export */ var library_cloud = (cloud);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/check.js\nvar library_check = __webpack_require__(148);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/cloud-upload.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar cloudUpload = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M14.8 9c.1-.3.2-.6.2-1 0-2.2-1.8-4-4-4-1.5 0-2.9.9-3.5 2.2-.3-.1-.7-.2-1-.2C5.1 6 4 7.1 4 8.5c0 .2 0 .4.1.5-1.8.3-3.1 1.7-3.1 3.5C1 14.4 2.6 16 4.5 16H8v-3H5l4.5-4.5L14 13h-3v3h3.5c1.9 0 3.5-1.6 3.5-3.5 0-1.8-1.4-3.3-3.2-3.5z\"\n}));\n/* harmony default export */ var cloud_upload = (cloudUpload);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-switch-to-draft-button/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PostSwitchToDraftButton(_ref) {\n  var isSaving = _ref.isSaving,\n      isPublished = _ref.isPublished,\n      isScheduled = _ref.isScheduled,\n      onClick = _ref.onClick;\n  var isMobileViewport = Object(external_this_wp_compose_[\"useViewportMatch\"])('small', '<');\n\n  if (!isPublished && !isScheduled) {\n    return null;\n  }\n\n  var onSwitch = function onSwitch() {\n    var alertMessage;\n\n    if (isPublished) {\n      alertMessage = Object(external_this_wp_i18n_[\"__\"])('Are you sure you want to unpublish this post?');\n    } else if (isScheduled) {\n      alertMessage = Object(external_this_wp_i18n_[\"__\"])('Are you sure you want to unschedule this post?');\n    } // eslint-disable-next-line no-alert\n\n\n    if (window.confirm(alertMessage)) {\n      onClick();\n    }\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"editor-post-switch-to-draft\",\n    onClick: onSwitch,\n    disabled: isSaving,\n    isTertiary: true\n  }, isMobileViewport ? Object(external_this_wp_i18n_[\"__\"])('Draft') : Object(external_this_wp_i18n_[\"__\"])('Switch to draft'));\n}\n\n/* harmony default export */ var post_switch_to_draft_button = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isSavingPost = _select.isSavingPost,\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      isCurrentPostScheduled = _select.isCurrentPostScheduled;\n\n  return {\n    isSaving: isSavingPost(),\n    isPublished: isCurrentPostPublished(),\n    isScheduled: isCurrentPostScheduled()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost,\n      savePost = _dispatch.savePost;\n\n  return {\n    onClick: function onClick() {\n      editPost({\n        status: 'draft'\n      });\n      savePost();\n    }\n  };\n})])(PostSwitchToDraftButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-saved-state/index.js\n\n\n\n\n\n\n\nfunction post_saved_state_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_saved_state_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_saved_state_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Component showing whether the post is saved or not and displaying save links.\n *\n * @param   {Object}    Props Component Props.\n */\n\nvar post_saved_state_PostSavedState = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostSavedState, _Component);\n\n  var _super = post_saved_state_createSuper(PostSavedState);\n\n  function PostSavedState() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostSavedState);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      forceSavedMessage: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostSavedState, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this2 = this;\n\n      if (prevProps.isSaving && !this.props.isSaving) {\n        this.setState({\n          forceSavedMessage: true\n        });\n        this.props.setTimeout(function () {\n          _this2.setState({\n            forceSavedMessage: false\n          });\n        }, 1000);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          hasPublishAction = _this$props.hasPublishAction,\n          isNew = _this$props.isNew,\n          isScheduled = _this$props.isScheduled,\n          isPublished = _this$props.isPublished,\n          isDirty = _this$props.isDirty,\n          isSaving = _this$props.isSaving,\n          isSaveable = _this$props.isSaveable,\n          onSave = _this$props.onSave,\n          isAutosaving = _this$props.isAutosaving,\n          isPending = _this$props.isPending,\n          isLargeViewport = _this$props.isLargeViewport;\n      var forceSavedMessage = this.state.forceSavedMessage;\n\n      if (isSaving) {\n        // TODO: Classes generation should be common across all return\n        // paths of this function, including proper naming convention for\n        // the \"Save Draft\" button.\n        var classes = classnames_default()('editor-post-saved-state', 'is-saving', {\n          'is-autosaving': isAutosaving\n        });\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Animate\"], {\n          type: \"loading\"\n        }, function (_ref) {\n          var animateClassName = _ref.className;\n          return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n            className: classnames_default()(classes, animateClassName)\n          }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n            icon: library_cloud\n          }), isAutosaving ? Object(external_this_wp_i18n_[\"__\"])('Autosaving') : Object(external_this_wp_i18n_[\"__\"])('Saving'));\n        });\n      }\n\n      if (isPublished || isScheduled) {\n        return Object(external_this_wp_element_[\"createElement\"])(post_switch_to_draft_button, null);\n      }\n\n      if (!isSaveable) {\n        return null;\n      }\n\n      if (forceSavedMessage || !isNew && !isDirty) {\n        return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n          className: \"editor-post-saved-state is-saved\"\n        }, Object(external_this_wp_element_[\"createElement\"])(build_module_icon[\"a\" /* default */], {\n          icon: library_check[\"a\" /* default */]\n        }), Object(external_this_wp_i18n_[\"__\"])('Saved'));\n      } // Once the post has been submitted for review this button\n      // is not needed for the contributor role.\n\n\n      if (!hasPublishAction && isPending) {\n        return null;\n      }\n\n      var label = isPending ? Object(external_this_wp_i18n_[\"__\"])('Save as pending') : Object(external_this_wp_i18n_[\"__\"])('Save draft');\n\n      if (!isLargeViewport) {\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          className: \"editor-post-save-draft\",\n          label: label,\n          onClick: function onClick() {\n            return onSave();\n          },\n          shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primary('s'),\n          icon: cloud_upload\n        });\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        className: \"editor-post-save-draft\",\n        onClick: function onClick() {\n          return onSave();\n        },\n        shortcut: external_this_wp_keycodes_[\"displayShortcut\"].primary('s'),\n        isTertiary: true\n      }, label);\n    }\n  }]);\n\n  return PostSavedState;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_saved_state = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var _getCurrentPost$_link, _getCurrentPost, _getCurrentPost$_link2;\n\n  var forceIsDirty = _ref2.forceIsDirty,\n      forceIsSaving = _ref2.forceIsSaving;\n\n  var _select = select('core/editor'),\n      isEditedPostNew = _select.isEditedPostNew,\n      isCurrentPostPublished = _select.isCurrentPostPublished,\n      isCurrentPostScheduled = _select.isCurrentPostScheduled,\n      isEditedPostDirty = _select.isEditedPostDirty,\n      isSavingPost = _select.isSavingPost,\n      isEditedPostSaveable = _select.isEditedPostSaveable,\n      getCurrentPost = _select.getCurrentPost,\n      isAutosavingPost = _select.isAutosavingPost,\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  return {\n    hasPublishAction: (_getCurrentPost$_link = (_getCurrentPost = getCurrentPost()) === null || _getCurrentPost === void 0 ? void 0 : (_getCurrentPost$_link2 = _getCurrentPost['_links']) === null || _getCurrentPost$_link2 === void 0 ? void 0 : _getCurrentPost$_link2['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,\n    isNew: isEditedPostNew(),\n    isPublished: isCurrentPostPublished(),\n    isScheduled: isCurrentPostScheduled(),\n    isDirty: forceIsDirty || isEditedPostDirty(),\n    isSaving: forceIsSaving || isSavingPost(),\n    isSaveable: isEditedPostSaveable(),\n    isAutosaving: isAutosavingPost(),\n    isPending: 'pending' === getEditedPostAttribute('status')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onSave: dispatch('core/editor').savePost\n  };\n}), external_this_wp_compose_[\"withSafeTimeout\"], Object(external_this_wp_viewport_[\"withViewportMatch\"])({\n  isLargeViewport: 'small'\n})])(post_saved_state_PostSavedState));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-schedule/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostScheduleCheck(_ref) {\n  var hasPublishAction = _ref.hasPublishAction,\n      children = _ref.children;\n\n  if (!hasPublishAction) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var post_schedule_check = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost,\n      getCurrentPostType = _select.getCurrentPostType;\n\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    postType: getCurrentPostType()\n  };\n})])(PostScheduleCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-slug/check.js\n\n\n/**\n * Internal dependencies\n */\n\nfunction PostSlugCheck(_ref) {\n  var children = _ref.children;\n  return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, {\n    supportKeys: \"slug\"\n  }, children);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-slug/index.js\n\n\n\n\n\n\n\n\nfunction post_slug_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_slug_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_slug_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar post_slug_PostSlug = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostSlug, _Component);\n\n  var _super = post_slug_createSuper(PostSlug);\n\n  function PostSlug(_ref) {\n    var _this;\n\n    var postSlug = _ref.postSlug,\n        postTitle = _ref.postTitle,\n        postID = _ref.postID;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostSlug);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      editedSlug: Object(external_this_wp_url_[\"safeDecodeURIComponent\"])(postSlug) || cleanForSlug(postTitle) || postID\n    };\n    _this.setSlug = _this.setSlug.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostSlug, [{\n    key: \"setSlug\",\n    value: function setSlug(event) {\n      var _this$props = this.props,\n          postSlug = _this$props.postSlug,\n          onUpdateSlug = _this$props.onUpdateSlug;\n      var value = event.target.value;\n      var editedSlug = cleanForSlug(value);\n\n      if (editedSlug === postSlug) {\n        return;\n      }\n\n      onUpdateSlug(editedSlug);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var instanceId = this.props.instanceId;\n      var editedSlug = this.state.editedSlug;\n      var inputId = 'editor-post-slug-' + instanceId;\n      return Object(external_this_wp_element_[\"createElement\"])(PostSlugCheck, null, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: inputId\n      }, Object(external_this_wp_i18n_[\"__\"])('Slug')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        type: \"text\",\n        id: inputId,\n        value: editedSlug,\n        onChange: function onChange(event) {\n          return _this2.setState({\n            editedSlug: event.target.value\n          });\n        },\n        onBlur: this.setSlug,\n        className: \"editor-post-slug__input\"\n      }));\n    }\n  }]);\n\n  return PostSlug;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_slug = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost,\n      getEditedPostAttribute = _select.getEditedPostAttribute;\n\n  var _getCurrentPost = getCurrentPost(),\n      id = _getCurrentPost.id;\n\n  return {\n    postSlug: getEditedPostAttribute('slug'),\n    postTitle: getEditedPostAttribute('title'),\n    postID: id\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost;\n\n  return {\n    onUpdateSlug: function onUpdateSlug(slug) {\n      editPost({\n        slug: slug\n      });\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(post_slug_PostSlug));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-sticky/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostStickyCheck(_ref) {\n  var hasStickyAction = _ref.hasStickyAction,\n      postType = _ref.postType,\n      children = _ref.children;\n\n  if (postType !== 'post' || !hasStickyAction) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var post_sticky_check = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var post = select('core/editor').getCurrentPost();\n  return {\n    hasStickyAction: Object(external_this_lodash_[\"get\"])(post, ['_links', 'wp:action-sticky'], false),\n    postType: select('core/editor').getCurrentPostType()\n  };\n})])(PostStickyCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-sticky/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nfunction PostSticky(_ref) {\n  var onUpdateSticky = _ref.onUpdateSticky,\n      _ref$postSticky = _ref.postSticky,\n      postSticky = _ref$postSticky === void 0 ? false : _ref$postSticky;\n  return Object(external_this_wp_element_[\"createElement\"])(post_sticky_check, null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n    label: Object(external_this_wp_i18n_[\"__\"])('Stick to the top of the blog'),\n    checked: postSticky,\n    onChange: function onChange() {\n      return onUpdateSticky(!postSticky);\n    }\n  }));\n}\n/* harmony default export */ var post_sticky = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    postSticky: select('core/editor').getEditedPostAttribute('sticky')\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateSticky: function onUpdateSticky(postSticky) {\n      dispatch('core/editor').editPost({\n        sticky: postSticky\n      });\n    }\n  };\n})])(PostSticky));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/hierarchical-term-selector.js\n\n\n\n\n\n\n\n\n\n\nfunction hierarchical_term_selector_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction hierarchical_term_selector_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { hierarchical_term_selector_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { hierarchical_term_selector_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction hierarchical_term_selector_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (hierarchical_term_selector_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction hierarchical_term_selector_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Module Constants\n */\n\nvar hierarchical_term_selector_DEFAULT_QUERY = {\n  per_page: -1,\n  orderby: 'name',\n  order: 'asc',\n  _fields: 'id,name,parent'\n};\nvar MIN_TERMS_COUNT_FOR_FILTER = 8;\n\nvar hierarchical_term_selector_HierarchicalTermSelector = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(HierarchicalTermSelector, _Component);\n\n  var _super = hierarchical_term_selector_createSuper(HierarchicalTermSelector);\n\n  function HierarchicalTermSelector() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, HierarchicalTermSelector);\n\n    _this = _super.apply(this, arguments);\n    _this.findTerm = _this.findTerm.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeFormName = _this.onChangeFormName.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onChangeFormParent = _this.onChangeFormParent.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onAddTerm = _this.onAddTerm.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onToggleForm = _this.onToggleForm.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.setFilterValue = _this.setFilterValue.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.sortBySelected = _this.sortBySelected.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      loading: true,\n      availableTermsTree: [],\n      availableTerms: [],\n      adding: false,\n      formName: '',\n      formParent: '',\n      showForm: false,\n      filterValue: '',\n      filteredTermsTree: []\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(HierarchicalTermSelector, [{\n    key: \"onChange\",\n    value: function onChange(termId) {\n      var _this$props = this.props,\n          onUpdateTerms = _this$props.onUpdateTerms,\n          _this$props$terms = _this$props.terms,\n          terms = _this$props$terms === void 0 ? [] : _this$props$terms,\n          taxonomy = _this$props.taxonomy;\n      var hasTerm = terms.indexOf(termId) !== -1;\n      var newTerms = hasTerm ? Object(external_this_lodash_[\"without\"])(terms, termId) : [].concat(Object(toConsumableArray[\"a\" /* default */])(terms), [termId]);\n      onUpdateTerms(newTerms, taxonomy.rest_base);\n    }\n  }, {\n    key: \"onChangeFormName\",\n    value: function onChangeFormName(event) {\n      var newValue = event.target.value.trim() === '' ? '' : event.target.value;\n      this.setState({\n        formName: newValue\n      });\n    }\n  }, {\n    key: \"onChangeFormParent\",\n    value: function onChangeFormParent(newParent) {\n      this.setState({\n        formParent: newParent\n      });\n    }\n  }, {\n    key: \"onToggleForm\",\n    value: function onToggleForm() {\n      this.setState(function (state) {\n        return {\n          showForm: !state.showForm\n        };\n      });\n    }\n  }, {\n    key: \"findTerm\",\n    value: function findTerm(terms, parent, name) {\n      return Object(external_this_lodash_[\"find\"])(terms, function (term) {\n        return (!term.parent && !parent || parseInt(term.parent) === parseInt(parent)) && term.name.toLowerCase() === name.toLowerCase();\n      });\n    }\n  }, {\n    key: \"onAddTerm\",\n    value: function onAddTerm(event) {\n      var _this2 = this;\n\n      event.preventDefault();\n      var _this$props2 = this.props,\n          onUpdateTerms = _this$props2.onUpdateTerms,\n          taxonomy = _this$props2.taxonomy,\n          terms = _this$props2.terms,\n          slug = _this$props2.slug;\n      var _this$state = this.state,\n          formName = _this$state.formName,\n          formParent = _this$state.formParent,\n          adding = _this$state.adding,\n          availableTerms = _this$state.availableTerms;\n\n      if (formName === '' || adding) {\n        return;\n      } // check if the term we are adding already exists\n\n\n      var existingTerm = this.findTerm(availableTerms, formParent, formName);\n\n      if (existingTerm) {\n        // if the term we are adding exists but is not selected select it\n        if (!Object(external_this_lodash_[\"some\"])(terms, function (term) {\n          return term === existingTerm.id;\n        })) {\n          onUpdateTerms([].concat(Object(toConsumableArray[\"a\" /* default */])(terms), [existingTerm.id]), taxonomy.rest_base);\n        }\n\n        this.setState({\n          formName: '',\n          formParent: ''\n        });\n        return;\n      }\n\n      this.setState({\n        adding: true\n      });\n      this.addRequest = external_this_wp_apiFetch_default()({\n        path: \"/wp/v2/\".concat(taxonomy.rest_base),\n        method: 'POST',\n        data: {\n          name: formName,\n          parent: formParent ? formParent : undefined\n        }\n      }); // Tries to create a term or fetch it if it already exists\n\n      var findOrCreatePromise = this.addRequest.catch(function (error) {\n        var errorCode = error.code;\n\n        if (errorCode === 'term_exists') {\n          // search the new category created since last fetch\n          _this2.addRequest = external_this_wp_apiFetch_default()({\n            path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/\".concat(taxonomy.rest_base), hierarchical_term_selector_objectSpread({}, hierarchical_term_selector_DEFAULT_QUERY, {\n              parent: formParent || 0,\n              search: formName\n            }))\n          });\n          return _this2.addRequest.then(function (searchResult) {\n            return _this2.findTerm(searchResult, formParent, formName);\n          });\n        }\n\n        return Promise.reject(error);\n      });\n      findOrCreatePromise.then(function (term) {\n        var hasTerm = !!Object(external_this_lodash_[\"find\"])(_this2.state.availableTerms, function (availableTerm) {\n          return availableTerm.id === term.id;\n        });\n        var newAvailableTerms = hasTerm ? _this2.state.availableTerms : [term].concat(Object(toConsumableArray[\"a\" /* default */])(_this2.state.availableTerms));\n        var termAddedMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n        /* translators: %s: taxonomy name */\n        Object(external_this_wp_i18n_[\"_x\"])('%s added', 'term'), Object(external_this_lodash_[\"get\"])(_this2.props.taxonomy, ['labels', 'singular_name'], slug === 'category' ? Object(external_this_wp_i18n_[\"__\"])('Category') : Object(external_this_wp_i18n_[\"__\"])('Term')));\n\n        _this2.props.speak(termAddedMessage, 'assertive');\n\n        _this2.addRequest = null;\n\n        _this2.setState({\n          adding: false,\n          formName: '',\n          formParent: '',\n          availableTerms: newAvailableTerms,\n          availableTermsTree: _this2.sortBySelected(buildTermsTree(newAvailableTerms))\n        });\n\n        onUpdateTerms([].concat(Object(toConsumableArray[\"a\" /* default */])(terms), [term.id]), taxonomy.rest_base);\n      }, function (xhr) {\n        if (xhr.statusText === 'abort') {\n          return;\n        }\n\n        _this2.addRequest = null;\n\n        _this2.setState({\n          adding: false\n        });\n      });\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.fetchTerms();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      Object(external_this_lodash_[\"invoke\"])(this.fetchRequest, ['abort']);\n      Object(external_this_lodash_[\"invoke\"])(this.addRequest, ['abort']);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.taxonomy !== prevProps.taxonomy) {\n        this.fetchTerms();\n      }\n    }\n  }, {\n    key: \"fetchTerms\",\n    value: function fetchTerms() {\n      var _this3 = this;\n\n      var taxonomy = this.props.taxonomy;\n\n      if (!taxonomy) {\n        return;\n      }\n\n      this.fetchRequest = external_this_wp_apiFetch_default()({\n        path: Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/\".concat(taxonomy.rest_base), hierarchical_term_selector_DEFAULT_QUERY)\n      });\n      this.fetchRequest.then(function (terms) {\n        // resolve\n        var availableTermsTree = _this3.sortBySelected(buildTermsTree(terms));\n\n        _this3.fetchRequest = null;\n\n        _this3.setState({\n          loading: false,\n          availableTermsTree: availableTermsTree,\n          availableTerms: terms\n        });\n      }, function (xhr) {\n        // reject\n        if (xhr.statusText === 'abort') {\n          return;\n        }\n\n        _this3.fetchRequest = null;\n\n        _this3.setState({\n          loading: false\n        });\n      });\n    }\n  }, {\n    key: \"sortBySelected\",\n    value: function sortBySelected(termsTree) {\n      var terms = this.props.terms;\n\n      var treeHasSelection = function treeHasSelection(termTree) {\n        if (terms.indexOf(termTree.id) !== -1) {\n          return true;\n        }\n\n        if (undefined === termTree.children) {\n          return false;\n        }\n\n        var anyChildIsSelected = termTree.children.map(treeHasSelection).filter(function (child) {\n          return child;\n        }).length > 0;\n\n        if (anyChildIsSelected) {\n          return true;\n        }\n\n        return false;\n      };\n\n      var termOrChildIsSelected = function termOrChildIsSelected(termA, termB) {\n        var termASelected = treeHasSelection(termA);\n        var termBSelected = treeHasSelection(termB);\n\n        if (termASelected === termBSelected) {\n          return 0;\n        }\n\n        if (termASelected && !termBSelected) {\n          return -1;\n        }\n\n        if (!termASelected && termBSelected) {\n          return 1;\n        }\n\n        return 0;\n      };\n\n      termsTree.sort(termOrChildIsSelected);\n      return termsTree;\n    }\n  }, {\n    key: \"setFilterValue\",\n    value: function setFilterValue(event) {\n      var availableTermsTree = this.state.availableTermsTree;\n      var filterValue = event.target.value;\n      var filteredTermsTree = availableTermsTree.map(this.getFilterMatcher(filterValue)).filter(function (term) {\n        return term;\n      });\n\n      var getResultCount = function getResultCount(terms) {\n        var count = 0;\n\n        for (var i = 0; i < terms.length; i++) {\n          count++;\n\n          if (undefined !== terms[i].children) {\n            count += getResultCount(terms[i].children);\n          }\n        }\n\n        return count;\n      };\n\n      this.setState({\n        filterValue: filterValue,\n        filteredTermsTree: filteredTermsTree\n      });\n      var resultCount = getResultCount(filteredTermsTree);\n      var resultsFoundMessage = Object(external_this_wp_i18n_[\"sprintf\"])(\n      /* translators: %d: number of results */\n      Object(external_this_wp_i18n_[\"_n\"])('%d result found.', '%d results found.', resultCount), resultCount);\n      this.props.debouncedSpeak(resultsFoundMessage, 'assertive');\n    }\n  }, {\n    key: \"getFilterMatcher\",\n    value: function getFilterMatcher(filterValue) {\n      var matchTermsForFilter = function matchTermsForFilter(originalTerm) {\n        if ('' === filterValue) {\n          return originalTerm;\n        } // Shallow clone, because we'll be filtering the term's children and\n        // don't want to modify the original term.\n\n\n        var term = hierarchical_term_selector_objectSpread({}, originalTerm); // Map and filter the children, recursive so we deal with grandchildren\n        // and any deeper levels.\n\n\n        if (term.children.length > 0) {\n          term.children = term.children.map(matchTermsForFilter).filter(function (child) {\n            return child;\n          });\n        } // If the term's name contains the filterValue, or it has children\n        // (i.e. some child matched at some point in the tree) then return it.\n\n\n        if (-1 !== term.name.toLowerCase().indexOf(filterValue.toLowerCase()) || term.children.length > 0) {\n          return term;\n        } // Otherwise, return false. After mapping, the list of terms will need\n        // to have false values filtered out.\n\n\n        return false;\n      };\n\n      return matchTermsForFilter;\n    }\n  }, {\n    key: \"renderTerms\",\n    value: function renderTerms(renderedTerms) {\n      var _this4 = this;\n\n      var _this$props$terms2 = this.props.terms,\n          terms = _this$props$terms2 === void 0 ? [] : _this$props$terms2;\n      return renderedTerms.map(function (term) {\n        return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          key: term.id,\n          className: \"editor-post-taxonomies__hierarchical-terms-choice\"\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"CheckboxControl\"], {\n          checked: terms.indexOf(term.id) !== -1,\n          onChange: function onChange() {\n            var termId = parseInt(term.id, 10);\n\n            _this4.onChange(termId);\n          },\n          label: Object(external_this_lodash_[\"unescape\"])(term.name)\n        }), !!term.children.length && Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n          className: \"editor-post-taxonomies__hierarchical-terms-subchoices\"\n        }, _this4.renderTerms(term.children)));\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props3 = this.props,\n          slug = _this$props3.slug,\n          taxonomy = _this$props3.taxonomy,\n          instanceId = _this$props3.instanceId,\n          hasCreateAction = _this$props3.hasCreateAction,\n          hasAssignAction = _this$props3.hasAssignAction;\n\n      if (!hasAssignAction) {\n        return null;\n      }\n\n      var _this$state2 = this.state,\n          availableTermsTree = _this$state2.availableTermsTree,\n          availableTerms = _this$state2.availableTerms,\n          filteredTermsTree = _this$state2.filteredTermsTree,\n          formName = _this$state2.formName,\n          formParent = _this$state2.formParent,\n          loading = _this$state2.loading,\n          showForm = _this$state2.showForm,\n          filterValue = _this$state2.filterValue;\n\n      var labelWithFallback = function labelWithFallback(labelProperty, fallbackIsCategory, fallbackIsNotCategory) {\n        return Object(external_this_lodash_[\"get\"])(taxonomy, ['labels', labelProperty], slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory);\n      };\n\n      var newTermButtonLabel = labelWithFallback('add_new_item', Object(external_this_wp_i18n_[\"__\"])('Add new category'), Object(external_this_wp_i18n_[\"__\"])('Add new term'));\n      var newTermLabel = labelWithFallback('new_item_name', Object(external_this_wp_i18n_[\"__\"])('Add new category'), Object(external_this_wp_i18n_[\"__\"])('Add new term'));\n      var parentSelectLabel = labelWithFallback('parent_item', Object(external_this_wp_i18n_[\"__\"])('Parent Category'), Object(external_this_wp_i18n_[\"__\"])('Parent Term'));\n      var noParentOption = \"\\u2014 \".concat(parentSelectLabel, \" \\u2014\");\n      var newTermSubmitLabel = newTermButtonLabel;\n      var inputId = \"editor-post-taxonomies__hierarchical-terms-input-\".concat(instanceId);\n      var filterInputId = \"editor-post-taxonomies__hierarchical-terms-filter-\".concat(instanceId);\n      var filterLabel = Object(external_this_lodash_[\"get\"])(this.props.taxonomy, ['labels', 'search_items'], Object(external_this_wp_i18n_[\"__\"])('Search Terms'));\n      var groupLabel = Object(external_this_lodash_[\"get\"])(this.props.taxonomy, ['name'], Object(external_this_wp_i18n_[\"__\"])('Terms'));\n      var showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n      return [showFilter && Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        key: \"filter-label\",\n        htmlFor: filterInputId\n      }, filterLabel), showFilter && Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        type: \"search\",\n        id: filterInputId,\n        value: filterValue,\n        onChange: this.setFilterValue,\n        className: \"editor-post-taxonomies__hierarchical-terms-filter\",\n        key: \"term-filter-input\"\n      }), Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: \"editor-post-taxonomies__hierarchical-terms-list\",\n        key: \"term-list\",\n        tabIndex: \"0\",\n        role: \"group\",\n        \"aria-label\": groupLabel\n      }, this.renderTerms('' !== filterValue ? filteredTermsTree : availableTermsTree)), !loading && hasCreateAction && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        key: \"term-add-button\",\n        onClick: this.onToggleForm,\n        className: \"editor-post-taxonomies__hierarchical-terms-add\",\n        \"aria-expanded\": showForm,\n        isLink: true\n      }, newTermButtonLabel), showForm && Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n        onSubmit: this.onAddTerm,\n        key: \"hierarchical-terms-form\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: inputId,\n        className: \"editor-post-taxonomies__hierarchical-terms-label\"\n      }, newTermLabel), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        type: \"text\",\n        id: inputId,\n        className: \"editor-post-taxonomies__hierarchical-terms-input\",\n        value: formName,\n        onChange: this.onChangeFormName,\n        required: true\n      }), !!availableTerms.length && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TreeSelect\"], {\n        label: parentSelectLabel,\n        noOptionLabel: noParentOption,\n        onChange: this.onChangeFormParent,\n        selectedId: formParent,\n        tree: availableTermsTree\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        isSecondary: true,\n        type: \"submit\",\n        className: \"editor-post-taxonomies__hierarchical-terms-submit\"\n      }, newTermSubmitLabel))];\n    }\n  }]);\n\n  return HierarchicalTermSelector;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var hierarchical_term_selector = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref) {\n  var slug = _ref.slug;\n\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost;\n\n  var _select2 = select('core'),\n      getTaxonomy = _select2.getTaxonomy;\n\n  var taxonomy = getTaxonomy(slug);\n  return {\n    hasCreateAction: taxonomy ? Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-create-' + taxonomy.rest_base], false) : false,\n    hasAssignAction: taxonomy ? Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-assign-' + taxonomy.rest_base], false) : false,\n    terms: taxonomy ? select('core/editor').getEditedPostAttribute(taxonomy.rest_base) : [],\n    taxonomy: taxonomy\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    onUpdateTerms: function onUpdateTerms(terms, restBase) {\n      dispatch('core/editor').editPost(Object(defineProperty[\"a\" /* default */])({}, restBase, terms));\n    }\n  };\n}), external_this_wp_components_[\"withSpokenMessages\"], external_this_wp_compose_[\"withInstanceId\"], Object(external_this_wp_components_[\"withFilters\"])('editor.PostTaxonomyType')])(hierarchical_term_selector_HierarchicalTermSelector));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction PostTaxonomies(_ref) {\n  var postType = _ref.postType,\n      taxonomies = _ref.taxonomies,\n      _ref$taxonomyWrapper = _ref.taxonomyWrapper,\n      taxonomyWrapper = _ref$taxonomyWrapper === void 0 ? external_this_lodash_[\"identity\"] : _ref$taxonomyWrapper;\n  var availableTaxonomies = Object(external_this_lodash_[\"filter\"])(taxonomies, function (taxonomy) {\n    return Object(external_this_lodash_[\"includes\"])(taxonomy.types, postType);\n  });\n  var visibleTaxonomies = Object(external_this_lodash_[\"filter\"])(availableTaxonomies, function (taxonomy) {\n    return taxonomy.visibility.show_ui;\n  });\n  return visibleTaxonomies.map(function (taxonomy) {\n    var TaxonomyComponent = taxonomy.hierarchical ? hierarchical_term_selector : flat_term_selector;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], {\n      key: \"taxonomy-\".concat(taxonomy.slug)\n    }, taxonomyWrapper(Object(external_this_wp_element_[\"createElement\"])(TaxonomyComponent, {\n      slug: taxonomy.slug\n    }), taxonomy));\n  });\n}\n/* harmony default export */ var post_taxonomies = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    postType: select('core/editor').getCurrentPostType(),\n    taxonomies: select('core').getTaxonomies({\n      per_page: -1\n    })\n  };\n})])(PostTaxonomies));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostTaxonomiesCheck(_ref) {\n  var postType = _ref.postType,\n      taxonomies = _ref.taxonomies,\n      children = _ref.children;\n  var hasTaxonomies = Object(external_this_lodash_[\"some\"])(taxonomies, function (taxonomy) {\n    return Object(external_this_lodash_[\"includes\"])(taxonomy.types, postType);\n  });\n\n  if (!hasTaxonomies) {\n    return null;\n  }\n\n  return children;\n}\n/* harmony default export */ var post_taxonomies_check = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    postType: select('core/editor').getCurrentPostType(),\n    taxonomies: select('core').getTaxonomies({\n      per_page: -1\n    })\n  };\n})])(PostTaxonomiesCheck));\n\n// EXTERNAL MODULE: ./node_modules/react-autosize-textarea/lib/index.js\nvar lib = __webpack_require__(88);\nvar lib_default = /*#__PURE__*/__webpack_require__.n(lib);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-text-editor/index.js\n\n\n\n\n\n\n\n\nfunction post_text_editor_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_text_editor_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_text_editor_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nvar post_text_editor_PostTextEditor = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostTextEditor, _Component);\n\n  var _super = post_text_editor_createSuper(PostTextEditor);\n\n  function PostTextEditor() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostTextEditor);\n\n    _this = _super.apply(this, arguments);\n    _this.edit = _this.edit.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.stopEditing = _this.stopEditing.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {};\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostTextEditor, [{\n    key: \"edit\",\n\n    /**\n     * Handles a textarea change event to notify the onChange prop callback and\n     * reflect the new value in the component's own state. This marks the start\n     * of the user's edits, if not already changed, preventing future props\n     * changes to value from replacing the rendered value. This is expected to\n     * be followed by a reset to dirty state via `stopEditing`.\n     *\n     * @see stopEditing\n     *\n     * @param {Event} event Change event.\n     */\n    value: function edit(event) {\n      var value = event.target.value;\n      this.props.onChange(value);\n      this.setState({\n        value: value,\n        isDirty: true\n      });\n    }\n    /**\n     * Function called when the user has completed their edits, responsible for\n     * ensuring that changes, if made, are surfaced to the onPersist prop\n     * callback and resetting dirty state.\n     */\n\n  }, {\n    key: \"stopEditing\",\n    value: function stopEditing() {\n      if (this.state.isDirty) {\n        this.props.onPersist(this.state.value);\n        this.setState({\n          isDirty: false\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var value = this.state.value;\n      var instanceId = this.props.instanceId;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"label\",\n        htmlFor: \"post-content-\".concat(instanceId)\n      }, Object(external_this_wp_i18n_[\"__\"])('Type text or HTML')), Object(external_this_wp_element_[\"createElement\"])(lib_default.a, {\n        autoComplete: \"off\",\n        dir: \"auto\",\n        value: value,\n        onChange: this.edit,\n        onBlur: this.stopEditing,\n        className: \"editor-post-text-editor\",\n        id: \"post-content-\".concat(instanceId),\n        placeholder: Object(external_this_wp_i18n_[\"__\"])('Start writing with text or HTML')\n      }));\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      if (state.isDirty) {\n        return null;\n      }\n\n      return {\n        value: props.value,\n        isDirty: false\n      };\n    }\n  }]);\n\n  return PostTextEditor;\n}(external_this_wp_element_[\"Component\"]);\n/* harmony default export */ var post_text_editor = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostContent = _select.getEditedPostContent;\n\n  return {\n    value: getEditedPostContent()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      editPost = _dispatch.editPost,\n      resetEditorBlocks = _dispatch.resetEditorBlocks;\n\n  return {\n    onChange: function onChange(content) {\n      editPost({\n        content: content\n      });\n    },\n    onPersist: function onPersist(content) {\n      var blocks = Object(external_this_wp_blocks_[\"parse\"])(content);\n      resetEditorBlocks(blocks);\n    }\n  };\n}), external_this_wp_compose_[\"withInstanceId\"]])(post_text_editor_PostTextEditor));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-title/index.js\n\n\n\n\n\n\n\n\n\nfunction post_title_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (post_title_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction post_title_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Constants\n */\n\nvar REGEXP_NEWLINES = /[\\r\\n]+/g;\n\nvar post_title_PostTitle = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PostTitle, _Component);\n\n  var _super = post_title_createSuper(PostTitle);\n\n  function PostTitle() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PostTitle);\n\n    _this = _super.apply(this, arguments);\n    _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelect = _this.onSelect.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUnselect = _this.onUnselect.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onPaste = _this.onPaste.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = {\n      isSelected: false\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PostTitle, [{\n    key: \"onSelect\",\n    value: function onSelect() {\n      this.setState({\n        isSelected: true\n      });\n      this.props.clearSelectedBlock();\n    }\n  }, {\n    key: \"onUnselect\",\n    value: function onUnselect() {\n      this.setState({\n        isSelected: false\n      });\n    }\n  }, {\n    key: \"onChange\",\n    value: function onChange(event) {\n      var newTitle = event.target.value.replace(REGEXP_NEWLINES, ' ');\n      this.props.onUpdate(newTitle);\n    }\n  }, {\n    key: \"onKeyDown\",\n    value: function onKeyDown(event) {\n      if (event.keyCode === external_this_wp_keycodes_[\"ENTER\"]) {\n        event.preventDefault();\n        this.props.onEnterPress();\n      }\n    }\n  }, {\n    key: \"onPaste\",\n    value: function onPaste(event) {\n      var _this$props = this.props,\n          title = _this$props.title,\n          onInsertBlockAfter = _this$props.onInsertBlockAfter,\n          onUpdate = _this$props.onUpdate;\n      var clipboardData = event.clipboardData;\n      var plainText = '';\n      var html = ''; // IE11 only supports `Text` as an argument for `getData` and will\n      // otherwise throw an invalid argument error, so we try the standard\n      // arguments first, then fallback to `Text` if they fail.\n\n      try {\n        plainText = clipboardData.getData('text/plain');\n        html = clipboardData.getData('text/html');\n      } catch (error1) {\n        try {\n          html = clipboardData.getData('Text');\n        } catch (error2) {\n          // Some browsers like UC Browser paste plain text by default and\n          // don't support clipboardData at all, so allow default\n          // behaviour.\n          return;\n        }\n      } // Allows us to ask for this information when we get a report.\n\n\n      window.console.log('Received HTML:\\n\\n', html);\n      window.console.log('Received plain text:\\n\\n', plainText);\n      var content = Object(external_this_wp_blocks_[\"pasteHandler\"])({\n        HTML: html,\n        plainText: plainText\n      });\n\n      if (typeof content !== 'string' && content.length) {\n        event.preventDefault();\n\n        var _content = Object(slicedToArray[\"a\" /* default */])(content, 1),\n            firstBlock = _content[0];\n\n        if (!title && (firstBlock.name === 'core/heading' || firstBlock.name === 'core/paragraph')) {\n          onUpdate(firstBlock.attributes.content);\n          onInsertBlockAfter(content.slice(1));\n        } else {\n          onInsertBlockAfter(content);\n        }\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props2 = this.props,\n          hasFixedToolbar = _this$props2.hasFixedToolbar,\n          isCleanNewPost = _this$props2.isCleanNewPost,\n          isFocusMode = _this$props2.isFocusMode,\n          instanceId = _this$props2.instanceId,\n          placeholder = _this$props2.placeholder,\n          title = _this$props2.title;\n      var isSelected = this.state.isSelected; // The wp-block className is important for editor styles.\n      // This same block is used in both the visual and the code editor.\n\n      var className = classnames_default()('wp-block editor-post-title editor-post-title__block', {\n        'is-selected': isSelected,\n        'is-focus-mode': isFocusMode,\n        'has-fixed-toolbar': hasFixedToolbar\n      });\n      var decodedPlaceholder = Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(placeholder);\n      return Object(external_this_wp_element_[\"createElement\"])(post_type_support_check, {\n        supportKeys: \"title\"\n      }, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        className: className\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"VisuallyHidden\"], {\n        as: \"label\",\n        htmlFor: \"post-title-\".concat(instanceId)\n      }, decodedPlaceholder || Object(external_this_wp_i18n_[\"__\"])('Add title')), Object(external_this_wp_element_[\"createElement\"])(lib_default.a, {\n        id: \"post-title-\".concat(instanceId),\n        className: \"editor-post-title__input\",\n        value: title,\n        onChange: this.onChange,\n        placeholder: decodedPlaceholder || Object(external_this_wp_i18n_[\"__\"])('Add title'),\n        onFocus: this.onSelect,\n        onBlur: this.onUnselect,\n        onKeyDown: this.onKeyDown,\n        onKeyPress: this.onUnselect,\n        onPaste: this.onPaste\n        /*\n        \tOnly autofocus the title when the post is entirely empty.\n        \tThis should only happen for a new post, which means we\n        \tfocus the title on new post so the author can start typing\n        \tright away, without needing to click anything.\n        */\n\n        /* eslint-disable jsx-a11y/no-autofocus */\n        ,\n        autoFocus: (document.body === document.activeElement || !document.activeElement) && isCleanNewPost\n        /* eslint-enable jsx-a11y/no-autofocus */\n\n      })));\n    }\n  }]);\n\n  return PostTitle;\n}(external_this_wp_element_[\"Component\"]);\n\nvar post_title_applyWithSelect = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getEditedPostAttribute = _select.getEditedPostAttribute,\n      isCleanNewPost = _select.isCleanNewPost;\n\n  var _select2 = select('core/block-editor'),\n      getSettings = _select2.getSettings;\n\n  var _getSettings = getSettings(),\n      titlePlaceholder = _getSettings.titlePlaceholder,\n      focusMode = _getSettings.focusMode,\n      hasFixedToolbar = _getSettings.hasFixedToolbar;\n\n  return {\n    isCleanNewPost: isCleanNewPost(),\n    title: getEditedPostAttribute('title'),\n    placeholder: titlePlaceholder,\n    isFocusMode: focusMode,\n    hasFixedToolbar: hasFixedToolbar\n  };\n});\nvar post_title_applyWithDispatch = Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/block-editor'),\n      insertDefaultBlock = _dispatch.insertDefaultBlock,\n      clearSelectedBlock = _dispatch.clearSelectedBlock,\n      insertBlocks = _dispatch.insertBlocks;\n\n  var _dispatch2 = dispatch('core/editor'),\n      editPost = _dispatch2.editPost;\n\n  return {\n    onEnterPress: function onEnterPress() {\n      insertDefaultBlock(undefined, undefined, 0);\n    },\n    onInsertBlockAfter: function onInsertBlockAfter(blocks) {\n      insertBlocks(blocks, 0);\n    },\n    onUpdate: function onUpdate(title) {\n      editPost({\n        title: title\n      });\n    },\n    clearSelectedBlock: clearSelectedBlock\n  };\n});\n/* harmony default export */ var post_title = (Object(external_this_wp_compose_[\"compose\"])(post_title_applyWithSelect, post_title_applyWithDispatch, external_this_wp_compose_[\"withInstanceId\"])(post_title_PostTitle));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-trash/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction PostTrash(_ref) {\n  var isNew = _ref.isNew,\n      postId = _ref.postId,\n      postType = _ref.postType,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"isNew\", \"postId\", \"postType\"]);\n\n  if (isNew || !postId) {\n    return null;\n  }\n\n  var onClick = function onClick() {\n    return props.trashPost(postId, postType);\n  };\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"editor-post-trash\",\n    isDestructive: true,\n    isTertiary: true,\n    onClick: onClick\n  }, Object(external_this_wp_i18n_[\"__\"])('Move to trash'));\n}\n\n/* harmony default export */ var post_trash = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isEditedPostNew = _select.isEditedPostNew,\n      getCurrentPostId = _select.getCurrentPostId,\n      getCurrentPostType = _select.getCurrentPostType;\n\n  return {\n    isNew: isEditedPostNew(),\n    postId: getCurrentPostId(),\n    postType: getCurrentPostType()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  return {\n    trashPost: dispatch('core/editor').trashPost\n  };\n})])(PostTrash));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-trash/check.js\n/**\n * WordPress dependencies\n */\n\n\nfunction PostTrashCheck(_ref) {\n  var isNew = _ref.isNew,\n      postId = _ref.postId,\n      canUserDelete = _ref.canUserDelete,\n      children = _ref.children;\n\n  if (isNew || !postId || !canUserDelete) {\n    return null;\n  }\n\n  return children;\n}\n\n/* harmony default export */ var post_trash_check = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      isEditedPostNew = _select.isEditedPostNew,\n      getCurrentPostId = _select.getCurrentPostId,\n      getCurrentPostType = _select.getCurrentPostType;\n\n  var _select2 = select('core'),\n      getPostType = _select2.getPostType,\n      canUser = _select2.canUser;\n\n  var postId = getCurrentPostId();\n  var postType = getPostType(getCurrentPostType());\n  var resource = (postType === null || postType === void 0 ? void 0 : postType['rest_base']) || '';\n  return {\n    isNew: isEditedPostNew(),\n    postId: postId,\n    canUserDelete: postId && resource ? canUser('delete', resource, postId) : false\n  };\n})(PostTrashCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/post-visibility/check.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nfunction PostVisibilityCheck(_ref) {\n  var hasPublishAction = _ref.hasPublishAction,\n      render = _ref.render;\n  var canEdit = hasPublishAction;\n  return render({\n    canEdit: canEdit\n  });\n}\n/* harmony default export */ var post_visibility_check = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      getCurrentPost = _select.getCurrentPost,\n      getCurrentPostType = _select.getCurrentPostType;\n\n  return {\n    hasPublishAction: Object(external_this_lodash_[\"get\"])(getCurrentPost(), ['_links', 'wp:action-publish'], false),\n    postType: getCurrentPostType()\n  };\n})])(PostVisibilityCheck));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/info.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar info_info = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z\"\n}));\n/* harmony default export */ var library_info = (info_info);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"wordcount\"]}\nvar external_this_wp_wordcount_ = __webpack_require__(141);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/word-count/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction WordCount(_ref) {\n  var content = _ref.content;\n\n  /*\n   * translators: If your word count is based on single characters (e.g. East Asian characters),\n   * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n   * Do not translate into your own language.\n   */\n  var wordCountType = Object(external_this_wp_i18n_[\"_x\"])('words', 'Word count type. Do not translate!');\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n    className: \"word-count\"\n  }, Object(external_this_wp_wordcount_[\"count\"])(content, wordCountType));\n}\n\n/* harmony default export */ var word_count = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    content: select('core/editor').getEditedPostAttribute('content')\n  };\n})(WordCount));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/table-of-contents/panel.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction TableOfContentsPanel(_ref) {\n  var hasOutlineItemsDisabled = _ref.hasOutlineItemsDisabled,\n      onRequestClose = _ref.onRequestClose;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getGlobalBlockCount = _select.getGlobalBlockCount;\n\n    return {\n      headingCount: getGlobalBlockCount('core/heading'),\n      paragraphCount: getGlobalBlockCount('core/paragraph'),\n      numberOfBlocks: getGlobalBlockCount()\n    };\n  }, []),\n      headingCount = _useSelect.headingCount,\n      paragraphCount = _useSelect.paragraphCount,\n      numberOfBlocks = _useSelect.numberOfBlocks;\n\n  return (\n    /*\n     * Disable reason: The `list` ARIA role is redundant but\n     * Safari+VoiceOver won't announce the list otherwise.\n     */\n\n    /* eslint-disable jsx-a11y/no-redundant-roles */\n    Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n      className: \"table-of-contents__wrapper\",\n      role: \"note\",\n      \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Document Statistics'),\n      tabIndex: \"0\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"ul\", {\n      role: \"list\",\n      className: \"table-of-contents__counts\"\n    }, Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      className: \"table-of-contents__count\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Words'), Object(external_this_wp_element_[\"createElement\"])(word_count, null)), Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      className: \"table-of-contents__count\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Headings'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"table-of-contents__number\"\n    }, headingCount)), Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      className: \"table-of-contents__count\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Paragraphs'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"table-of-contents__number\"\n    }, paragraphCount)), Object(external_this_wp_element_[\"createElement\"])(\"li\", {\n      className: \"table-of-contents__count\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Blocks'), Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"table-of-contents__number\"\n    }, numberOfBlocks)))), headingCount > 0 && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(\"hr\", null), Object(external_this_wp_element_[\"createElement\"])(\"h2\", {\n      className: \"table-of-contents__title\"\n    }, Object(external_this_wp_i18n_[\"__\"])('Document Outline')), Object(external_this_wp_element_[\"createElement\"])(document_outline, {\n      onSelect: onRequestClose,\n      hasOutlineItemsDisabled: hasOutlineItemsDisabled\n    })))\n    /* eslint-enable jsx-a11y/no-redundant-roles */\n\n  );\n}\n\n/* harmony default export */ var panel = (TableOfContentsPanel);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/table-of-contents/index.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction TableOfContents(_ref, ref) {\n  var hasOutlineItemsDisabled = _ref.hasOutlineItemsDisabled,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"hasOutlineItemsDisabled\"]);\n\n  var hasBlocks = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return !!select('core/block-editor').getBlockCount();\n  }, []);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    position: \"bottom\",\n    className: \"table-of-contents\",\n    contentClassName: \"table-of-contents__popover\",\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], Object(esm_extends[\"a\" /* default */])({}, props, {\n        ref: ref,\n        onClick: hasBlocks ? onToggle : undefined,\n        icon: library_info,\n        \"aria-expanded\": isOpen,\n        label: Object(external_this_wp_i18n_[\"__\"])('Content structure'),\n        tooltipPosition: \"bottom\",\n        \"aria-disabled\": !hasBlocks\n      }));\n    },\n    renderContent: function renderContent(_ref3) {\n      var onClose = _ref3.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(panel, {\n        onRequestClose: onClose,\n        hasOutlineItemsDisabled: hasOutlineItemsDisabled\n      });\n    }\n  });\n}\n\n/* harmony default export */ var table_of_contents = (Object(external_this_wp_element_[\"forwardRef\"])(TableOfContents));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/unsaved-changes-warning/index.js\n\n\n\n\n\n\n\nfunction unsaved_changes_warning_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (unsaved_changes_warning_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction unsaved_changes_warning_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar unsaved_changes_warning_UnsavedChangesWarning = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(UnsavedChangesWarning, _Component);\n\n  var _super = unsaved_changes_warning_createSuper(UnsavedChangesWarning);\n\n  function UnsavedChangesWarning() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, UnsavedChangesWarning);\n\n    _this = _super.apply(this, arguments);\n    _this.warnIfUnsavedChanges = _this.warnIfUnsavedChanges.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(UnsavedChangesWarning, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      window.addEventListener('beforeunload', this.warnIfUnsavedChanges);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.removeEventListener('beforeunload', this.warnIfUnsavedChanges);\n    }\n    /**\n     * Warns the user if there are unsaved changes before leaving the editor.\n     *\n     * @param {Event} event `beforeunload` event.\n     *\n     * @return {?string} Warning prompt message, if unsaved changes exist.\n     */\n\n  }, {\n    key: \"warnIfUnsavedChanges\",\n    value: function warnIfUnsavedChanges(event) {\n      var isEditedPostDirty = this.props.isEditedPostDirty;\n\n      if (isEditedPostDirty()) {\n        event.returnValue = Object(external_this_wp_i18n_[\"__\"])('You have unsaved changes. If you proceed, they will be lost.');\n        return event.returnValue;\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return null;\n    }\n  }]);\n\n  return UnsavedChangesWarning;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var unsaved_changes_warning = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  return {\n    // We need to call the selector directly in the listener to avoid race\n    // conditions with `BrowserURL` where `componentDidUpdate` gets the\n    // new value of `isEditedPostDirty` before this component does,\n    // causing this component to incorrectly think a trashed post is still dirty.\n    isEditedPostDirty: select('core/editor').isEditedPostDirty\n  };\n})(unsaved_changes_warning_UnsavedChangesWarning));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/provider/with-registry-provider.js\n\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar withRegistryProvider = Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n  return Object(external_this_wp_data_[\"withRegistry\"])(function (props) {\n    var _props$useSubRegistry = props.useSubRegistry,\n        useSubRegistry = _props$useSubRegistry === void 0 ? true : _props$useSubRegistry,\n        registry = props.registry,\n        additionalProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"useSubRegistry\", \"registry\"]);\n\n    if (!useSubRegistry) {\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, additionalProps);\n    }\n\n    var _useState = Object(external_this_wp_element_[\"useState\"])(null),\n        _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n        subRegistry = _useState2[0],\n        setSubRegistry = _useState2[1];\n\n    Object(external_this_wp_element_[\"useEffect\"])(function () {\n      var newRegistry = Object(external_this_wp_data_[\"createRegistry\"])({\n        'core/block-editor': external_this_wp_blockEditor_[\"storeConfig\"]\n      }, registry);\n      var store = newRegistry.registerStore('core/editor', storeConfig); // This should be removed after the refactoring of the effects to controls.\n\n      middlewares(store);\n      setSubRegistry(newRegistry);\n    }, [registry]);\n\n    if (!subRegistry) {\n      return null;\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_data_[\"RegistryProvider\"], {\n      value: subRegistry\n    }, Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, additionalProps));\n  });\n}, 'withRegistryProvider');\n/* harmony default export */ var with_registry_provider = (withRegistryProvider);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"mediaUtils\"]}\nvar external_this_wp_mediaUtils_ = __webpack_require__(145);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/media-upload/index.js\n\n\nfunction media_upload_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction media_upload_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { media_upload_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { media_upload_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Upload a media file when the file upload button is activated.\n * Wrapper around mediaUpload() that injects the current post ID.\n *\n * @param   {Object}   $0                   Parameters object passed to the function.\n * @param   {?Object}  $0.additionalData    Additional data to include in the request.\n * @param   {string}   $0.allowedTypes      Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param   {Array}    $0.filesList         List of files.\n * @param   {?number}  $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.\n * @param   {Function} $0.onError           Function called when an error happens.\n * @param   {Function} $0.onFileChange      Function called each time a file or a temporary representation of the file is available.\n */\n\nfunction mediaUpload(_ref) {\n  var _ref$additionalData = _ref.additionalData,\n      additionalData = _ref$additionalData === void 0 ? {} : _ref$additionalData,\n      allowedTypes = _ref.allowedTypes,\n      filesList = _ref.filesList,\n      maxUploadFileSize = _ref.maxUploadFileSize,\n      _ref$onError = _ref.onError,\n      _onError = _ref$onError === void 0 ? external_this_lodash_[\"noop\"] : _ref$onError,\n      onFileChange = _ref.onFileChange;\n\n  var _select = Object(external_this_wp_data_[\"select\"])('core/editor'),\n      getCurrentPostId = _select.getCurrentPostId,\n      getEditorSettings = _select.getEditorSettings;\n\n  var wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;\n  maxUploadFileSize = maxUploadFileSize || getEditorSettings().maxUploadFileSize;\n  Object(external_this_wp_mediaUtils_[\"uploadMedia\"])({\n    allowedTypes: allowedTypes,\n    filesList: filesList,\n    onFileChange: onFileChange,\n    additionalData: media_upload_objectSpread({\n      post: getCurrentPostId()\n    }, additionalData),\n    maxUploadFileSize: maxUploadFileSize,\n    onError: function onError(_ref2) {\n      var message = _ref2.message;\n      return _onError(message);\n    },\n    wpAllowedMimeTypes: wpAllowedMimeTypes\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/reusable-blocks-buttons/reusable-block-convert-button.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction ReusableBlockConvertButton(_ref) {\n  var isVisible = _ref.isVisible,\n      isReusable = _ref.isReusable,\n      onConvertToStatic = _ref.onConvertToStatic,\n      onConvertToReusable = _ref.onConvertToReusable;\n\n  if (!isVisible) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockSettingsMenuControls\"], null, function (_ref2) {\n    var onClose = _ref2.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, !isReusable && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      onClick: function onClick() {\n        onConvertToReusable();\n        onClose();\n      }\n    }, Object(external_this_wp_i18n_[\"__\"])('Add to Reusable blocks')), isReusable && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      onClick: function onClick() {\n        onConvertToStatic();\n        onClose();\n      }\n    }, Object(external_this_wp_i18n_[\"__\"])('Convert to Regular Block')));\n  });\n}\n/* harmony default export */ var reusable_block_convert_button = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref3) {\n  var clientIds = _ref3.clientIds;\n\n  var _select = select('core/block-editor'),\n      getBlocksByClientId = _select.getBlocksByClientId,\n      canInsertBlockType = _select.canInsertBlockType;\n\n  var _select2 = select('core/editor'),\n      getReusableBlock = _select2.__experimentalGetReusableBlock;\n\n  var _select3 = select('core'),\n      canUser = _select3.canUser;\n\n  var blocks = getBlocksByClientId(clientIds);\n  var isReusable = blocks.length === 1 && blocks[0] && Object(external_this_wp_blocks_[\"isReusableBlock\"])(blocks[0]) && !!getReusableBlock(blocks[0].attributes.ref); // Show 'Convert to Regular Block' when selected block is a reusable block\n\n  var isVisible = isReusable || // Hide 'Add to Reusable blocks' when reusable blocks are disabled\n  canInsertBlockType('core/block') && Object(external_this_lodash_[\"every\"])(blocks, function (block) {\n    return (// Guard against the case where a regular block has *just* been converted\n      !!block && // Hide 'Add to Reusable blocks' on invalid blocks\n      block.isValid && // Hide 'Add to Reusable blocks' when block doesn't support being made reusable\n      Object(external_this_wp_blocks_[\"hasBlockSupport\"])(block.name, 'reusable', true)\n    );\n  }) && // Hide 'Add to Reusable blocks' when current doesn't have permission to do that\n  !!canUser('create', 'blocks');\n  return {\n    isReusable: isReusable,\n    isVisible: isVisible\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref4) {\n  var clientIds = _ref4.clientIds;\n\n  var _dispatch = dispatch('core/editor'),\n      convertBlockToReusable = _dispatch.__experimentalConvertBlockToReusable,\n      convertBlockToStatic = _dispatch.__experimentalConvertBlockToStatic;\n\n  return {\n    onConvertToStatic: function onConvertToStatic() {\n      convertBlockToStatic(clientIds[0]);\n    },\n    onConvertToReusable: function onConvertToReusable() {\n      convertBlockToReusable(clientIds);\n    }\n  };\n})])(ReusableBlockConvertButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/reusable-blocks-buttons/reusable-block-delete-button.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction ReusableBlockDeleteButton(_ref) {\n  var isVisible = _ref.isVisible,\n      isDisabled = _ref.isDisabled,\n      onDelete = _ref.onDelete;\n\n  if (!isVisible) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockSettingsMenuControls\"], null, function (_ref2) {\n    var onClose = _ref2.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      disabled: isDisabled,\n      onClick: function onClick() {\n        var hasConfirmed = onDelete();\n\n        if (hasConfirmed) {\n          onClose();\n        }\n      }\n    }, Object(external_this_wp_i18n_[\"__\"])('Remove from Reusable blocks'));\n  });\n}\n/* harmony default export */ var reusable_block_delete_button = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref3) {\n  var clientId = _ref3.clientId;\n\n  var _select = select('core/block-editor'),\n      getBlock = _select.getBlock;\n\n  var _select2 = select('core'),\n      canUser = _select2.canUser;\n\n  var _select3 = select('core/editor'),\n      getReusableBlock = _select3.__experimentalGetReusableBlock;\n\n  var block = getBlock(clientId);\n  var reusableBlock = block && Object(external_this_wp_blocks_[\"isReusableBlock\"])(block) ? getReusableBlock(block.attributes.ref) : null;\n  return {\n    isVisible: !!reusableBlock && (reusableBlock.isTemporary || !!canUser('delete', 'blocks', reusableBlock.id)),\n    isDisabled: reusableBlock && reusableBlock.isTemporary\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref4, _ref5) {\n  var clientId = _ref4.clientId;\n  var select = _ref5.select;\n\n  var _dispatch = dispatch('core/editor'),\n      deleteReusableBlock = _dispatch.__experimentalDeleteReusableBlock;\n\n  var _select4 = select('core/block-editor'),\n      getBlock = _select4.getBlock;\n\n  return {\n    onDelete: function onDelete() {\n      // TODO: Make this a <Confirm /> component or similar\n      // eslint-disable-next-line no-alert\n      var hasConfirmed = window.confirm( // eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n      Object(external_this_wp_i18n_[\"__\"])('Are you sure you want to delete this Reusable Block?\\n\\n' + 'It will be permanently removed from all posts and pages that use it.'));\n\n      if (hasConfirmed) {\n        var block = getBlock(clientId);\n        deleteReusableBlock(block.attributes.ref);\n      }\n\n      return hasConfirmed;\n    }\n  };\n})])(ReusableBlockDeleteButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/reusable-blocks-buttons/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nfunction ReusableBlocksButtons(_ref) {\n  var clientIds = _ref.clientIds;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(reusable_block_convert_button, {\n    clientIds: clientIds\n  }), clientIds.length === 1 && Object(external_this_wp_element_[\"createElement\"])(reusable_block_delete_button, {\n    clientId: clientIds[0]\n  }));\n}\n\n/* harmony default export */ var reusable_blocks_buttons = (Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getSelectedBlockClientIds = _select.getSelectedBlockClientIds;\n\n  return {\n    clientIds: getSelectedBlockClientIds()\n  };\n})(ReusableBlocksButtons));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/convert-to-group-buttons/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction ConvertToGroupButton(_ref) {\n  var onConvertToGroup = _ref.onConvertToGroup,\n      onConvertFromGroup = _ref.onConvertFromGroup,\n      _ref$isGroupable = _ref.isGroupable,\n      isGroupable = _ref$isGroupable === void 0 ? false : _ref$isGroupable,\n      _ref$isUngroupable = _ref.isUngroupable,\n      isUngroupable = _ref$isUngroupable === void 0 ? false : _ref$isUngroupable;\n\n  if (!isGroupable && !isUngroupable) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockSettingsMenuControls\"], null, function (_ref2) {\n    var onClose = _ref2.onClose;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, isGroupable && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      onClick: function onClick() {\n        onConvertToGroup();\n        onClose();\n      }\n    }, Object(external_this_wp_i18n_[\"_x\"])('Group', 'verb')), isUngroupable && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"MenuItem\"], {\n      onClick: function onClick() {\n        onConvertFromGroup();\n        onClose();\n      }\n    }, Object(external_this_wp_i18n_[\"_x\"])('Ungroup', 'Ungrouping blocks from within a Group block back into individual blocks within the Editor ')));\n  });\n}\n/* harmony default export */ var convert_to_group_buttons = (Object(external_this_wp_compose_[\"compose\"])([Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/block-editor'),\n      getBlockRootClientId = _select.getBlockRootClientId,\n      getBlocksByClientId = _select.getBlocksByClientId,\n      canInsertBlockType = _select.canInsertBlockType,\n      getSelectedBlockClientIds = _select.getSelectedBlockClientIds;\n\n  var _select2 = select('core/blocks'),\n      getGroupingBlockName = _select2.getGroupingBlockName;\n\n  var clientIds = getSelectedBlockClientIds();\n  var groupingBlockName = getGroupingBlockName();\n  var rootClientId = clientIds && clientIds.length > 0 ? getBlockRootClientId(clientIds[0]) : undefined;\n  var groupingBlockAvailable = canInsertBlockType(groupingBlockName, rootClientId);\n  var blocksSelection = getBlocksByClientId(clientIds);\n  var isSingleGroupingBlock = blocksSelection.length === 1 && blocksSelection[0] && blocksSelection[0].name === groupingBlockName; // Do we have\n  // 1. Grouping block available to be inserted?\n  // 2. One or more blocks selected\n  // (we allow single Blocks to become groups unless\n  // they are a soltiary group block themselves)\n\n  var isGroupable = groupingBlockAvailable && blocksSelection.length && !isSingleGroupingBlock; // Do we have a single Group Block selected and does that group have inner blocks?\n\n  var isUngroupable = isSingleGroupingBlock && !!blocksSelection[0].innerBlocks.length;\n  return {\n    clientIds: clientIds,\n    isGroupable: isGroupable,\n    isUngroupable: isUngroupable,\n    blocksSelection: blocksSelection,\n    groupingBlockName: groupingBlockName\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref3) {\n  var clientIds = _ref3.clientIds,\n      _ref3$blocksSelection = _ref3.blocksSelection,\n      blocksSelection = _ref3$blocksSelection === void 0 ? [] : _ref3$blocksSelection,\n      groupingBlockName = _ref3.groupingBlockName;\n\n  var _dispatch = dispatch('core/block-editor'),\n      replaceBlocks = _dispatch.replaceBlocks;\n\n  return {\n    onConvertToGroup: function onConvertToGroup() {\n      // Activate the `transform` on the Grouping Block which does the conversion\n      var newBlocks = Object(external_this_wp_blocks_[\"switchToBlockType\"])(blocksSelection, groupingBlockName);\n\n      if (newBlocks) {\n        replaceBlocks(clientIds, newBlocks);\n      }\n    },\n    onConvertFromGroup: function onConvertFromGroup() {\n      var innerBlocks = blocksSelection[0].innerBlocks;\n\n      if (!innerBlocks.length) {\n        return;\n      }\n\n      replaceBlocks(clientIds, innerBlocks);\n    }\n  };\n})])(ConvertToGroupButton));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/provider/index.js\n\n\n\n\n\n\n\n\n\n\nfunction provider_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction provider_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { provider_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { provider_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction provider_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (provider_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction provider_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Fetches link suggestions from the API. This function is an exact copy of a function found at:\n *\n * wordpress/editor/src/components/provider/index.js\n *\n * It seems like there is no suitable package to import this from. Ideally it would be either part of core-data.\n * Until we refactor it, just copying the code is the simplest solution.\n *\n * @param {Object} search\n * @param {number} perPage\n * @return {Promise<Object[]>} List of suggestions\n */\n\nvar fetchLinkSuggestions = /*#__PURE__*/function () {\n  var _ref = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(search) {\n    var _ref2,\n        _ref2$perPage,\n        perPage,\n        posts,\n        _args = arguments;\n\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _ref2 = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, _ref2$perPage = _ref2.perPage, perPage = _ref2$perPage === void 0 ? 20 : _ref2$perPage;\n            _context.next = 3;\n            return external_this_wp_apiFetch_default()({\n              path: Object(external_this_wp_url_[\"addQueryArgs\"])('/wp/v2/search', {\n                search: search,\n                per_page: perPage,\n                type: 'post'\n              })\n            });\n\n          case 3:\n            posts = _context.sent;\n            return _context.abrupt(\"return\", Object(external_this_lodash_[\"map\"])(posts, function (post) {\n              return {\n                id: post.id,\n                url: post.url,\n                title: Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(post.title) || Object(external_this_wp_i18n_[\"__\"])('(no title)'),\n                type: post.subtype || post.type\n              };\n            }));\n\n          case 5:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n\n  return function fetchLinkSuggestions(_x) {\n    return _ref.apply(this, arguments);\n  };\n}();\n\nvar provider_EditorProvider = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(EditorProvider, _Component);\n\n  var _super = provider_createSuper(EditorProvider);\n\n  function EditorProvider(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, EditorProvider);\n\n    _this = _super.apply(this, arguments);\n    _this.getBlockEditorSettings = memize_default()(_this.getBlockEditorSettings, {\n      maxSize: 1\n    });\n    _this.getDefaultBlockContext = memize_default()(_this.getDefaultBlockContext, {\n      maxSize: 1\n    }); // Assume that we don't need to initialize in the case of an error recovery.\n\n    if (props.recovery) {\n      return Object(possibleConstructorReturn[\"a\" /* default */])(_this);\n    }\n\n    props.updatePostLock(props.settings.postLock);\n    props.setupEditor(props.post, props.initialEdits, props.settings.template);\n\n    if (props.settings.autosave) {\n      props.createWarningNotice(Object(external_this_wp_i18n_[\"__\"])('There is an autosave of this post that is more recent than the version below.'), {\n        id: 'autosave-exists',\n        actions: [{\n          label: Object(external_this_wp_i18n_[\"__\"])('View the autosave'),\n          url: props.settings.autosave.editLink\n        }]\n      });\n    }\n\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(EditorProvider, [{\n    key: \"getBlockEditorSettings\",\n    value: function getBlockEditorSettings(settings, reusableBlocks, __experimentalFetchReusableBlocks, hasUploadPermissions, canUserUseUnfilteredHTML, undo, shouldInsertAtTheTop) {\n      return provider_objectSpread({}, Object(external_this_lodash_[\"pick\"])(settings, ['__experimentalBlockDirectory', '__experimentalBlockPatterns', '__experimentalBlockPatternCategories', '__experimentalDisableCustomUnits', '__experimentalDisableCustomLineHeight', '__experimentalEnableCustomSpacing', '__experimentalEnableLegacyWidgetBlock', '__experimentalEnableLinkColor', '__experimentalEnableFullSiteEditing', '__experimentalEnableFullSiteEditingDemo', '__experimentalFeatures', '__experimentalGlobalStylesUserEntityId', '__experimentalGlobalStylesBase', '__experimentalPreferredStyleVariations', '__experimentalSetIsInserterOpened', 'alignWide', 'allowedBlockTypes', 'availableLegacyWidgets', 'bodyPlaceholder', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomGradients', 'focusMode', 'fontSizes', 'gradients', 'hasFixedToolbar', 'hasPermissionsToManageWidgets', 'imageSizes', 'imageDimensions', 'isRTL', 'keepCaretInsideBlock', 'maxWidth', 'onUpdateDefaultBlockStyles', 'styles', 'template', 'templateLock', 'titlePlaceholder']), {\n        mediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n        __experimentalReusableBlocks: reusableBlocks,\n        __experimentalFetchReusableBlocks: __experimentalFetchReusableBlocks,\n        __experimentalFetchLinkSuggestions: fetchLinkSuggestions,\n        __experimentalCanUserUseUnfilteredHTML: canUserUseUnfilteredHTML,\n        __experimentalUndo: undo,\n        __experimentalShouldInsertAtTheTop: shouldInsertAtTheTop\n      });\n    }\n  }, {\n    key: \"getDefaultBlockContext\",\n    value: function getDefaultBlockContext(postId, postType) {\n      return {\n        postId: postId,\n        postType: postType\n      };\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.props.updateEditorSettings(this.props.settings);\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (this.props.settings !== prevProps.settings) {\n        this.props.updateEditorSettings(this.props.settings);\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.props.tearDownEditor();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          canUserUseUnfilteredHTML = _this$props.canUserUseUnfilteredHTML,\n          children = _this$props.children,\n          post = _this$props.post,\n          blocks = _this$props.blocks,\n          resetEditorBlocks = _this$props.resetEditorBlocks,\n          selectionStart = _this$props.selectionStart,\n          selectionEnd = _this$props.selectionEnd,\n          isReady = _this$props.isReady,\n          settings = _this$props.settings,\n          reusableBlocks = _this$props.reusableBlocks,\n          resetEditorBlocksWithoutUndoLevel = _this$props.resetEditorBlocksWithoutUndoLevel,\n          hasUploadPermissions = _this$props.hasUploadPermissions,\n          isPostTitleSelected = _this$props.isPostTitleSelected,\n          __experimentalFetchReusableBlocks = _this$props.__experimentalFetchReusableBlocks,\n          undo = _this$props.undo;\n\n      if (!isReady) {\n        return null;\n      }\n\n      var editorSettings = this.getBlockEditorSettings(settings, reusableBlocks, __experimentalFetchReusableBlocks, hasUploadPermissions, canUserUseUnfilteredHTML, undo, isPostTitleSelected);\n      var defaultBlockContext = this.getDefaultBlockContext(post.id, post.type);\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__unstableEditorStyles\"], {\n        styles: settings.styles\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_coreData_[\"EntityProvider\"], {\n        kind: \"root\",\n        type: \"site\"\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_coreData_[\"EntityProvider\"], {\n        kind: \"postType\",\n        type: post.type,\n        id: post.id\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockContextProvider\"], {\n        value: defaultBlockContext\n      }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"BlockEditorProvider\"], {\n        value: blocks,\n        onInput: resetEditorBlocksWithoutUndoLevel,\n        onChange: resetEditorBlocks,\n        selectionStart: selectionStart,\n        selectionEnd: selectionEnd,\n        settings: editorSettings,\n        useSubRegistry: false\n      }, children, Object(external_this_wp_element_[\"createElement\"])(reusable_blocks_buttons, null), Object(external_this_wp_element_[\"createElement\"])(convert_to_group_buttons, null))))));\n    }\n  }]);\n\n  return EditorProvider;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var provider = (Object(external_this_wp_compose_[\"compose\"])([with_registry_provider, Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var _select = select('core/editor'),\n      canUserUseUnfilteredHTML = _select.canUserUseUnfilteredHTML,\n      isEditorReady = _select.__unstableIsEditorReady,\n      getEditorBlocks = _select.getEditorBlocks,\n      getEditorSelectionStart = _select.getEditorSelectionStart,\n      getEditorSelectionEnd = _select.getEditorSelectionEnd,\n      __experimentalGetReusableBlocks = _select.__experimentalGetReusableBlocks,\n      isPostTitleSelected = _select.isPostTitleSelected;\n\n  var _select2 = select('core'),\n      canUser = _select2.canUser;\n\n  return {\n    canUserUseUnfilteredHTML: canUserUseUnfilteredHTML(),\n    isReady: isEditorReady(),\n    blocks: getEditorBlocks(),\n    selectionStart: getEditorSelectionStart(),\n    selectionEnd: getEditorSelectionEnd(),\n    reusableBlocks: __experimentalGetReusableBlocks(),\n    hasUploadPermissions: Object(external_this_lodash_[\"defaultTo\"])(canUser('create', 'media'), true),\n    // This selector is only defined on mobile.\n    isPostTitleSelected: isPostTitleSelected && isPostTitleSelected()\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch) {\n  var _dispatch = dispatch('core/editor'),\n      setupEditor = _dispatch.setupEditor,\n      updatePostLock = _dispatch.updatePostLock,\n      resetEditorBlocks = _dispatch.resetEditorBlocks,\n      updateEditorSettings = _dispatch.updateEditorSettings,\n      __experimentalFetchReusableBlocks = _dispatch.__experimentalFetchReusableBlocks,\n      __experimentalTearDownEditor = _dispatch.__experimentalTearDownEditor,\n      undo = _dispatch.undo;\n\n  var _dispatch2 = dispatch('core/notices'),\n      createWarningNotice = _dispatch2.createWarningNotice;\n\n  return {\n    setupEditor: setupEditor,\n    updatePostLock: updatePostLock,\n    createWarningNotice: createWarningNotice,\n    resetEditorBlocks: resetEditorBlocks,\n    updateEditorSettings: updateEditorSettings,\n    resetEditorBlocksWithoutUndoLevel: function resetEditorBlocksWithoutUndoLevel(blocks, options) {\n      resetEditorBlocks(blocks, provider_objectSpread({}, options, {\n        __unstableShouldCreateUndoLevel: false\n      }));\n    },\n    tearDownEditor: __experimentalTearDownEditor,\n    __experimentalFetchReusableBlocks: __experimentalFetchReusableBlocks,\n    undo: undo\n  };\n})])(provider_EditorProvider));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"serverSideRender\"]}\nvar external_this_wp_serverSideRender_ = __webpack_require__(74);\nvar external_this_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_serverSideRender_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/deprecated.js\n\n\n// Block Creation Components\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\nfunction deprecateComponent(name, Wrapped) {\n  var staticsToHoist = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n  var Component = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n    external_this_wp_deprecated_default()('wp.editor.' + name, {\n      alternative: 'wp.blockEditor.' + name\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(Wrapped, Object(esm_extends[\"a\" /* default */])({\n      ref: ref\n    }, props));\n  });\n  staticsToHoist.forEach(function (staticName) {\n    Component[staticName] = deprecateComponent(name + '.' + staticName, Wrapped[staticName]);\n  });\n  return Component;\n}\n\nfunction deprecateFunction(name, func) {\n  return function () {\n    external_this_wp_deprecated_default()('wp.editor.' + name, {\n      alternative: 'wp.blockEditor.' + name\n    });\n    return func.apply(void 0, arguments);\n  };\n}\n\nvar RichText = deprecateComponent('RichText', external_this_wp_blockEditor_[\"RichText\"], ['Content']);\nRichText.isEmpty = deprecateFunction('RichText.isEmpty', external_this_wp_blockEditor_[\"RichText\"].isEmpty);\n\nvar Autocomplete = deprecateComponent('Autocomplete', external_this_wp_blockEditor_[\"Autocomplete\"]);\nvar AlignmentToolbar = deprecateComponent('AlignmentToolbar', external_this_wp_blockEditor_[\"AlignmentToolbar\"]);\nvar BlockAlignmentToolbar = deprecateComponent('BlockAlignmentToolbar', external_this_wp_blockEditor_[\"BlockAlignmentToolbar\"]);\nvar BlockControls = deprecateComponent('BlockControls', external_this_wp_blockEditor_[\"BlockControls\"], ['Slot']);\nvar deprecated_BlockEdit = deprecateComponent('BlockEdit', external_this_wp_blockEditor_[\"BlockEdit\"]);\nvar BlockEditorKeyboardShortcuts = deprecateComponent('BlockEditorKeyboardShortcuts', external_this_wp_blockEditor_[\"BlockEditorKeyboardShortcuts\"]);\nvar BlockFormatControls = deprecateComponent('BlockFormatControls', external_this_wp_blockEditor_[\"BlockFormatControls\"], ['Slot']);\nvar BlockIcon = deprecateComponent('BlockIcon', external_this_wp_blockEditor_[\"BlockIcon\"]);\nvar BlockInspector = deprecateComponent('BlockInspector', external_this_wp_blockEditor_[\"BlockInspector\"]);\nvar BlockList = deprecateComponent('BlockList', external_this_wp_blockEditor_[\"BlockList\"]);\nvar BlockMover = deprecateComponent('BlockMover', external_this_wp_blockEditor_[\"BlockMover\"]);\nvar BlockNavigationDropdown = deprecateComponent('BlockNavigationDropdown', external_this_wp_blockEditor_[\"BlockNavigationDropdown\"]);\nvar BlockSelectionClearer = deprecateComponent('BlockSelectionClearer', external_this_wp_blockEditor_[\"BlockSelectionClearer\"]);\nvar BlockSettingsMenu = deprecateComponent('BlockSettingsMenu', external_this_wp_blockEditor_[\"BlockSettingsMenu\"]);\nvar BlockTitle = deprecateComponent('BlockTitle', external_this_wp_blockEditor_[\"BlockTitle\"]);\nvar BlockToolbar = deprecateComponent('BlockToolbar', external_this_wp_blockEditor_[\"BlockToolbar\"]);\nvar ColorPalette = deprecateComponent('ColorPalette', external_this_wp_blockEditor_[\"ColorPalette\"]);\nvar ContrastChecker = deprecateComponent('ContrastChecker', external_this_wp_blockEditor_[\"ContrastChecker\"]);\nvar CopyHandler = deprecateComponent('CopyHandler', external_this_wp_blockEditor_[\"CopyHandler\"]);\nvar DefaultBlockAppender = deprecateComponent('DefaultBlockAppender', external_this_wp_blockEditor_[\"DefaultBlockAppender\"]);\nvar FontSizePicker = deprecateComponent('FontSizePicker', external_this_wp_blockEditor_[\"FontSizePicker\"]);\nvar Inserter = deprecateComponent('Inserter', external_this_wp_blockEditor_[\"Inserter\"]);\nvar InnerBlocks = deprecateComponent('InnerBlocks', external_this_wp_blockEditor_[\"InnerBlocks\"], ['ButtonBlockAppender', 'DefaultBlockAppender', 'Content']);\nvar InspectorAdvancedControls = deprecateComponent('InspectorAdvancedControls', external_this_wp_blockEditor_[\"InspectorAdvancedControls\"], ['Slot']);\nvar InspectorControls = deprecateComponent('InspectorControls', external_this_wp_blockEditor_[\"InspectorControls\"], ['Slot']);\nvar PanelColorSettings = deprecateComponent('PanelColorSettings', external_this_wp_blockEditor_[\"PanelColorSettings\"]);\nvar PlainText = deprecateComponent('PlainText', external_this_wp_blockEditor_[\"PlainText\"]);\nvar RichTextShortcut = deprecateComponent('RichTextShortcut', external_this_wp_blockEditor_[\"RichTextShortcut\"]);\nvar RichTextToolbarButton = deprecateComponent('RichTextToolbarButton', external_this_wp_blockEditor_[\"RichTextToolbarButton\"]);\nvar __unstableRichTextInputEvent = deprecateComponent('__unstableRichTextInputEvent', external_this_wp_blockEditor_[\"__unstableRichTextInputEvent\"]);\nvar MediaPlaceholder = deprecateComponent('MediaPlaceholder', external_this_wp_blockEditor_[\"MediaPlaceholder\"]);\nvar MediaUpload = deprecateComponent('MediaUpload', external_this_wp_blockEditor_[\"MediaUpload\"]);\nvar MediaUploadCheck = deprecateComponent('MediaUploadCheck', external_this_wp_blockEditor_[\"MediaUploadCheck\"]);\nvar MultiSelectScrollIntoView = deprecateComponent('MultiSelectScrollIntoView', external_this_wp_blockEditor_[\"MultiSelectScrollIntoView\"]);\nvar NavigableToolbar = deprecateComponent('NavigableToolbar', external_this_wp_blockEditor_[\"NavigableToolbar\"]);\nvar ObserveTyping = deprecateComponent('ObserveTyping', external_this_wp_blockEditor_[\"ObserveTyping\"]);\nvar PreserveScrollInReorder = deprecateComponent('PreserveScrollInReorder', external_this_wp_blockEditor_[\"PreserveScrollInReorder\"]);\nvar SkipToSelectedBlock = deprecateComponent('SkipToSelectedBlock', external_this_wp_blockEditor_[\"SkipToSelectedBlock\"]);\nvar URLInput = deprecateComponent('URLInput', external_this_wp_blockEditor_[\"URLInput\"]);\nvar URLInputButton = deprecateComponent('URLInputButton', external_this_wp_blockEditor_[\"URLInputButton\"]);\nvar URLPopover = deprecateComponent('URLPopover', external_this_wp_blockEditor_[\"URLPopover\"]);\nvar Warning = deprecateComponent('Warning', external_this_wp_blockEditor_[\"Warning\"]);\nvar WritingFlow = deprecateComponent('WritingFlow', external_this_wp_blockEditor_[\"WritingFlow\"]);\nvar createCustomColorsHOC = deprecateFunction('createCustomColorsHOC', external_this_wp_blockEditor_[\"createCustomColorsHOC\"]);\nvar getColorClassName = deprecateFunction('getColorClassName', external_this_wp_blockEditor_[\"getColorClassName\"]);\nvar getColorObjectByAttributeValues = deprecateFunction('getColorObjectByAttributeValues', external_this_wp_blockEditor_[\"getColorObjectByAttributeValues\"]);\nvar getColorObjectByColorValue = deprecateFunction('getColorObjectByColorValue', external_this_wp_blockEditor_[\"getColorObjectByColorValue\"]);\nvar getFontSize = deprecateFunction('getFontSize', external_this_wp_blockEditor_[\"getFontSize\"]);\nvar getFontSizeClass = deprecateFunction('getFontSizeClass', external_this_wp_blockEditor_[\"getFontSizeClass\"]);\nvar withColorContext = deprecateFunction('withColorContext', external_this_wp_blockEditor_[\"withColorContext\"]);\nvar withColors = deprecateFunction('withColors', external_this_wp_blockEditor_[\"withColors\"]);\nvar withFontSizes = deprecateFunction('withFontSizes', external_this_wp_blockEditor_[\"withFontSizes\"]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/components/index.js\n// Block Creation Components\n // Post Related Components\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // State Related Components\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/utils/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/editor/build-module/index.js\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n/*\n * Backward compatibility\n */\n\n\n\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 47:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keyboardShortcuts\"]; }());\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 62:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"htmlEntities\"]; }());\n\n/***/ }),\n\n/***/ 68:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"date\"]; }());\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());\n\n/***/ }),\n\n/***/ 72:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"viewport\"]; }());\n\n/***/ }),\n\n/***/ 74:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"serverSideRender\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 88:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar TextareaAutosize_1 = __webpack_require__(167);\nexports[\"default\"] = TextareaAutosize_1[\"default\"];\n\n\n/***/ }),\n\n/***/ 89:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"coreData\"]; }());\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ }),\n\n/***/ 92:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"notices\"]; }());\n\n/***/ }),\n\n/***/ 96:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"autop\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-element.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"element\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 449);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 138:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"ReactDOM\"]; }());\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"React\"]; }());\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 449:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"createInterpolateElement\", function() { return /* reexport */ create_interpolate_element; });\n__webpack_require__.d(__webpack_exports__, \"Children\", function() { return /* reexport */ external_this_React_[\"Children\"]; });\n__webpack_require__.d(__webpack_exports__, \"cloneElement\", function() { return /* reexport */ external_this_React_[\"cloneElement\"]; });\n__webpack_require__.d(__webpack_exports__, \"Component\", function() { return /* reexport */ external_this_React_[\"Component\"]; });\n__webpack_require__.d(__webpack_exports__, \"createContext\", function() { return /* reexport */ external_this_React_[\"createContext\"]; });\n__webpack_require__.d(__webpack_exports__, \"createElement\", function() { return /* reexport */ external_this_React_[\"createElement\"]; });\n__webpack_require__.d(__webpack_exports__, \"createRef\", function() { return /* reexport */ external_this_React_[\"createRef\"]; });\n__webpack_require__.d(__webpack_exports__, \"forwardRef\", function() { return /* reexport */ external_this_React_[\"forwardRef\"]; });\n__webpack_require__.d(__webpack_exports__, \"Fragment\", function() { return /* reexport */ external_this_React_[\"Fragment\"]; });\n__webpack_require__.d(__webpack_exports__, \"isValidElement\", function() { return /* reexport */ external_this_React_[\"isValidElement\"]; });\n__webpack_require__.d(__webpack_exports__, \"memo\", function() { return /* reexport */ external_this_React_[\"memo\"]; });\n__webpack_require__.d(__webpack_exports__, \"StrictMode\", function() { return /* reexport */ external_this_React_[\"StrictMode\"]; });\n__webpack_require__.d(__webpack_exports__, \"useCallback\", function() { return /* reexport */ external_this_React_[\"useCallback\"]; });\n__webpack_require__.d(__webpack_exports__, \"useContext\", function() { return /* reexport */ external_this_React_[\"useContext\"]; });\n__webpack_require__.d(__webpack_exports__, \"useDebugValue\", function() { return /* reexport */ external_this_React_[\"useDebugValue\"]; });\n__webpack_require__.d(__webpack_exports__, \"useEffect\", function() { return /* reexport */ external_this_React_[\"useEffect\"]; });\n__webpack_require__.d(__webpack_exports__, \"useImperativeHandle\", function() { return /* reexport */ external_this_React_[\"useImperativeHandle\"]; });\n__webpack_require__.d(__webpack_exports__, \"useLayoutEffect\", function() { return /* reexport */ external_this_React_[\"useLayoutEffect\"]; });\n__webpack_require__.d(__webpack_exports__, \"useMemo\", function() { return /* reexport */ external_this_React_[\"useMemo\"]; });\n__webpack_require__.d(__webpack_exports__, \"useReducer\", function() { return /* reexport */ external_this_React_[\"useReducer\"]; });\n__webpack_require__.d(__webpack_exports__, \"useRef\", function() { return /* reexport */ external_this_React_[\"useRef\"]; });\n__webpack_require__.d(__webpack_exports__, \"useState\", function() { return /* reexport */ external_this_React_[\"useState\"]; });\n__webpack_require__.d(__webpack_exports__, \"lazy\", function() { return /* reexport */ external_this_React_[\"lazy\"]; });\n__webpack_require__.d(__webpack_exports__, \"Suspense\", function() { return /* reexport */ external_this_React_[\"Suspense\"]; });\n__webpack_require__.d(__webpack_exports__, \"concatChildren\", function() { return /* reexport */ concatChildren; });\n__webpack_require__.d(__webpack_exports__, \"switchChildrenNodeName\", function() { return /* reexport */ switchChildrenNodeName; });\n__webpack_require__.d(__webpack_exports__, \"createPortal\", function() { return /* reexport */ external_this_ReactDOM_[\"createPortal\"]; });\n__webpack_require__.d(__webpack_exports__, \"findDOMNode\", function() { return /* reexport */ external_this_ReactDOM_[\"findDOMNode\"]; });\n__webpack_require__.d(__webpack_exports__, \"render\", function() { return /* reexport */ external_this_ReactDOM_[\"render\"]; });\n__webpack_require__.d(__webpack_exports__, \"unmountComponentAtNode\", function() { return /* reexport */ external_this_ReactDOM_[\"unmountComponentAtNode\"]; });\n__webpack_require__.d(__webpack_exports__, \"isEmptyElement\", function() { return /* reexport */ utils_isEmptyElement; });\n__webpack_require__.d(__webpack_exports__, \"Platform\", function() { return /* reexport */ platform; });\n__webpack_require__.d(__webpack_exports__, \"renderToString\", function() { return /* reexport */ serialize; });\n__webpack_require__.d(__webpack_exports__, \"RawHTML\", function() { return /* reexport */ RawHTML; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":\"React\"}\nvar external_this_React_ = __webpack_require__(16);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/create-interpolate-element.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nvar indoc, offset, output, stack;\n/**\n * Matches tags in the localized string\n *\n * This is used for extracting the tag pattern groups for parsing the localized\n * string and along with the map converting it to a react element.\n *\n * There are four references extracted using this tokenizer:\n *\n * match: Full match of the tag (i.e. <strong>, </strong>, <br/>)\n * isClosing: The closing slash, it it exists.\n * name: The name portion of the tag (strong, br) (if )\n * isSelfClosed: The slash on a self closing tag, if it exists.\n *\n * @type {RegExp}\n */\n\nvar tokenizer = /<(\\/)?(\\w+)\\s*(\\/)?>/g;\n/**\n * The stack frame tracking parse progress.\n *\n * @typedef Frame\n *\n * @property {WPElement} element            A parent element which may still have\n * @property {number}    tokenStart         Offset at which parent element first\n *                                          appears.\n * @property {number}    tokenLength        Length of string marking start of parent\n *                                          element.\n * @property {number}    [prevOffset]       Running offset at which parsing should\n *                                          continue.\n * @property {number}    [leadingTextStart] Offset at which last closing element\n *                                          finished, used for finding text between\n *                                          elements.\n * @property {WPElement[]} children         Children.\n */\n\n/**\n * Tracks recursive-descent parse state.\n *\n * This is a Stack frame holding parent elements until all children have been\n * parsed.\n *\n * @private\n * @param {WPElement} element            A parent element which may still have\n *                                       nested children not yet parsed.\n * @param {number}    tokenStart         Offset at which parent element first\n *                                       appears.\n * @param {number}    tokenLength        Length of string marking start of parent\n *                                       element.\n * @param {number}    [prevOffset]       Running offset at which parsing should\n *                                       continue.\n * @param {number}    [leadingTextStart] Offset at which last closing element\n *                                       finished, used for finding text between\n *                                       elements.\n *\n * @return {Frame} The stack frame tracking parse progress.\n */\n\nfunction createFrame(element, tokenStart, tokenLength, prevOffset, leadingTextStart) {\n  return {\n    element: element,\n    tokenStart: tokenStart,\n    tokenLength: tokenLength,\n    prevOffset: prevOffset,\n    leadingTextStart: leadingTextStart,\n    children: []\n  };\n}\n/**\n * This function creates an interpolated element from a passed in string with\n * specific tags matching how the string should be converted to an element via\n * the conversion map value.\n *\n * @example\n * For example, for the given string:\n *\n * \"This is a <span>string</span> with <a>a link</a> and a self-closing\n * <CustomComponentB/> tag\"\n *\n * You would have something like this as the conversionMap value:\n *\n * ```js\n * {\n *     span: <span />,\n *     a: <a href={ 'https://github.com' } />,\n *     CustomComponentB: <CustomComponent />,\n * }\n * ```\n *\n * @param {string}  interpolatedString  The interpolation string to be parsed.\n * @param {Object}  conversionMap       The map used to convert the string to\n *                                      a react element.\n * @throws {TypeError}\n * @return {WPElement}  A wp element.\n */\n\n\nvar create_interpolate_element_createInterpolateElement = function createInterpolateElement(interpolatedString, conversionMap) {\n  indoc = interpolatedString;\n  offset = 0;\n  output = [];\n  stack = [];\n  tokenizer.lastIndex = 0;\n\n  if (!create_interpolate_element_isValidConversionMap(conversionMap)) {\n    throw new TypeError('The conversionMap provided is not valid. It must be an object with values that are WPElements');\n  }\n\n  do {// twiddle our thumbs\n  } while (proceed(conversionMap));\n\n  return external_this_React_[\"createElement\"].apply(void 0, [external_this_React_[\"Fragment\"], null].concat(Object(toConsumableArray[\"a\" /* default */])(output)));\n};\n/**\n * Validate conversion map.\n *\n * A map is considered valid if it's an object and every value in the object\n * is a WPElement\n *\n * @private\n *\n * @param {Object} conversionMap  The map being validated.\n *\n * @return {boolean}  True means the map is valid.\n */\n\n\nvar create_interpolate_element_isValidConversionMap = function isValidConversionMap(conversionMap) {\n  var isObject = Object(esm_typeof[\"a\" /* default */])(conversionMap) === 'object';\n  var values = isObject && Object.values(conversionMap);\n  return isObject && values.length && values.every(function (element) {\n    return Object(external_this_React_[\"isValidElement\"])(element);\n  });\n};\n/**\n * This is the iterator over the matches in the string.\n *\n * @private\n *\n * @param {Object} conversionMap The conversion map for the string.\n *\n * @return {boolean} true for continuing to iterate, false for finished.\n */\n\n\nfunction proceed(conversionMap) {\n  var next = nextToken();\n\n  var _next = Object(slicedToArray[\"a\" /* default */])(next, 4),\n      tokenType = _next[0],\n      name = _next[1],\n      startOffset = _next[2],\n      tokenLength = _next[3];\n\n  var stackDepth = stack.length;\n  var leadingTextStart = startOffset > offset ? offset : null;\n\n  if (!conversionMap[name]) {\n    addText();\n    return false;\n  }\n\n  switch (tokenType) {\n    case 'no-more-tokens':\n      if (stackDepth !== 0) {\n        var _stack$pop = stack.pop(),\n            stackLeadingText = _stack$pop.leadingTextStart,\n            tokenStart = _stack$pop.tokenStart;\n\n        output.push(indoc.substr(stackLeadingText, tokenStart));\n      }\n\n      addText();\n      return false;\n\n    case 'self-closed':\n      if (0 === stackDepth) {\n        if (null !== leadingTextStart) {\n          output.push(indoc.substr(leadingTextStart, startOffset - leadingTextStart));\n        }\n\n        output.push(conversionMap[name]);\n        offset = startOffset + tokenLength;\n        return true;\n      } // otherwise we found an inner element\n\n\n      addChild(createFrame(conversionMap[name], startOffset, tokenLength));\n      offset = startOffset + tokenLength;\n      return true;\n\n    case 'opener':\n      stack.push(createFrame(conversionMap[name], startOffset, tokenLength, startOffset + tokenLength, leadingTextStart));\n      offset = startOffset + tokenLength;\n      return true;\n\n    case 'closer':\n      // if we're not nesting then this is easy - close the block\n      if (1 === stackDepth) {\n        closeOuterElement(startOffset);\n        offset = startOffset + tokenLength;\n        return true;\n      } // otherwise we're nested and we have to close out the current\n      // block and add it as a innerBlock to the parent\n\n\n      var stackTop = stack.pop();\n      var text = indoc.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset);\n      stackTop.children.push(text);\n      stackTop.prevOffset = startOffset + tokenLength;\n      var frame = createFrame(stackTop.element, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength);\n      frame.children = stackTop.children;\n      addChild(frame);\n      offset = startOffset + tokenLength;\n      return true;\n\n    default:\n      addText();\n      return false;\n  }\n}\n/**\n * Grabs the next token match in the string and returns it's details.\n *\n * @private\n *\n * @return {Array}  An array of details for the token matched.\n */\n\n\nfunction nextToken() {\n  var matches = tokenizer.exec(indoc); // we have no more tokens\n\n  if (null === matches) {\n    return ['no-more-tokens'];\n  }\n\n  var startedAt = matches.index;\n\n  var _matches = Object(slicedToArray[\"a\" /* default */])(matches, 4),\n      match = _matches[0],\n      isClosing = _matches[1],\n      name = _matches[2],\n      isSelfClosed = _matches[3];\n\n  var length = match.length;\n\n  if (isSelfClosed) {\n    return ['self-closed', name, startedAt, length];\n  }\n\n  if (isClosing) {\n    return ['closer', name, startedAt, length];\n  }\n\n  return ['opener', name, startedAt, length];\n}\n/**\n * Pushes text extracted from the indoc string to the output stack given the\n * current rawLength value and offset (if rawLength is provided ) or the\n * indoc.length and offset.\n *\n * @private\n */\n\n\nfunction addText() {\n  var length = indoc.length - offset;\n\n  if (0 === length) {\n    return;\n  }\n\n  output.push(indoc.substr(offset, length));\n}\n/**\n * Pushes a child element to the associated parent element's children for the\n * parent currently active in the stack.\n *\n * @private\n *\n * @param {Frame}    frame       The Frame containing the child element and it's\n *                               token information.\n */\n\n\nfunction addChild(frame) {\n  var element = frame.element,\n      tokenStart = frame.tokenStart,\n      tokenLength = frame.tokenLength,\n      prevOffset = frame.prevOffset,\n      children = frame.children;\n  var parent = stack[stack.length - 1];\n  var text = indoc.substr(parent.prevOffset, tokenStart - parent.prevOffset);\n\n  if (text) {\n    parent.children.push(text);\n  }\n\n  parent.children.push(external_this_React_[\"cloneElement\"].apply(void 0, [element, null].concat(Object(toConsumableArray[\"a\" /* default */])(children))));\n  parent.prevOffset = prevOffset ? prevOffset : tokenStart + tokenLength;\n}\n/**\n * This is called for closing tags. It creates the element currently active in\n * the stack.\n *\n * @private\n *\n * @param {number} endOffset Offset at which the closing tag for the element\n *                           begins in the string. If this is greater than the\n *                           prevOffset attached to the element, then this\n *                           helps capture any remaining nested text nodes in\n *                           the element.\n */\n\n\nfunction closeOuterElement(endOffset) {\n  var _stack$pop2 = stack.pop(),\n      element = _stack$pop2.element,\n      leadingTextStart = _stack$pop2.leadingTextStart,\n      prevOffset = _stack$pop2.prevOffset,\n      tokenStart = _stack$pop2.tokenStart,\n      children = _stack$pop2.children;\n\n  var text = endOffset ? indoc.substr(prevOffset, endOffset - prevOffset) : indoc.substr(prevOffset);\n\n  if (text) {\n    children.push(text);\n  }\n\n  if (null !== leadingTextStart) {\n    output.push(indoc.substr(leadingTextStart, tokenStart - leadingTextStart));\n  }\n\n  output.push(external_this_React_[\"cloneElement\"].apply(void 0, [element, null].concat(Object(toConsumableArray[\"a\" /* default */])(children))));\n}\n\n/* harmony default export */ var create_interpolate_element = (create_interpolate_element_createInterpolateElement);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/react.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * Object containing a React element.\n *\n * @typedef {import('react').ReactElement} WPElement\n */\n\n/**\n * Object containing a React component.\n *\n * @typedef {import('react').ComponentType} WPComponent\n */\n\n/**\n * Object containing a React synthetic event.\n *\n * @typedef {import('react').SyntheticEvent} WPSyntheticEvent\n */\n\n/**\n * Object that provides utilities for dealing with React children.\n */\n\n\n/**\n * Creates a copy of an element with extended props.\n *\n * @param {WPElement} element Element\n * @param {?Object}   props   Props to apply to cloned element\n *\n * @return {WPElement} Cloned element.\n */\n\n\n/**\n * A base class to create WordPress Components (Refs, state and lifecycle hooks)\n */\n\n\n/**\n * Creates a context object containing two components: a provider and consumer.\n *\n * @param {Object} defaultValue A default data stored in the context.\n *\n * @return {Object} Context object.\n */\n\n\n/**\n * Returns a new element of given type. Type can be either a string tag name or\n * another function which itself returns an element.\n *\n * @param {?(string|Function)} type     Tag name or element creator\n * @param {Object}             props    Element properties, either attribute\n *                                      set to apply to DOM node or values to\n *                                      pass through to element creator\n * @param {...WPElement}       children Descendant elements\n *\n * @return {WPElement} Element.\n */\n\n\n/**\n * Returns an object tracking a reference to a rendered element via its\n * `current` property as either a DOMElement or Element, dependent upon the\n * type of element rendered with the ref attribute.\n *\n * @return {Object} Ref object.\n */\n\n\n/**\n * Component enhancer used to enable passing a ref to its wrapped component.\n * Pass a function argument which receives `props` and `ref` as its arguments,\n * returning an element using the forwarded ref. The return value is a new\n * component which forwards its ref.\n *\n * @param {Function} forwarder Function passed `props` and `ref`, expected to\n *                             return an element.\n *\n * @return {WPComponent} Enhanced component.\n */\n\n\n/**\n * A component which renders its children without any wrapping element.\n */\n\n\n/**\n * Checks if an object is a valid WPElement.\n *\n * @param {Object} objectToCheck The object to be checked.\n *\n * @return {boolean} true if objectToTest is a valid WPElement and false otherwise.\n */\n\n\n/**\n * @see https://reactjs.org/docs/react-api.html#reactmemo\n */\n\n\n/**\n * Component that activates additional checks and warnings for its descendants.\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usecallback\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usecontext\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usedebugvalue\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#useeffect\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#useimperativehandle\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usememo\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usereducer\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n */\n\n\n/**\n * @see https://reactjs.org/docs/hooks-reference.html#usestate\n */\n\n\n/**\n * @see https://reactjs.org/docs/react-api.html#reactlazy\n */\n\n\n/**\n * @see https://reactjs.org/docs/react-api.html#reactsuspense\n */\n\n\n/**\n * Concatenate two or more React children objects.\n *\n * @param {...?Object} childrenArguments Array of children arguments (array of arrays/strings/objects) to concatenate.\n *\n * @return {Array} The concatenated value.\n */\n\nfunction concatChildren() {\n  for (var _len = arguments.length, childrenArguments = new Array(_len), _key = 0; _key < _len; _key++) {\n    childrenArguments[_key] = arguments[_key];\n  }\n\n  return childrenArguments.reduce(function (accumulator, children, i) {\n    external_this_React_[\"Children\"].forEach(children, function (child, j) {\n      if (child && 'string' !== typeof child) {\n        child = Object(external_this_React_[\"cloneElement\"])(child, {\n          key: [i, j].join()\n        });\n      }\n\n      accumulator.push(child);\n    });\n    return accumulator;\n  }, []);\n}\n/**\n * Switches the nodeName of all the elements in the children object.\n *\n * @param {?Object} children Children object.\n * @param {string}  nodeName Node name.\n *\n * @return {?Object} The updated children object.\n */\n\nfunction switchChildrenNodeName(children, nodeName) {\n  return children && external_this_React_[\"Children\"].map(children, function (elt, index) {\n    if (Object(external_this_lodash_[\"isString\"])(elt)) {\n      return Object(external_this_React_[\"createElement\"])(nodeName, {\n        key: index\n      }, elt);\n    }\n\n    var _elt$props = elt.props,\n        childrenProp = _elt$props.children,\n        props = Object(objectWithoutProperties[\"a\" /* default */])(_elt$props, [\"children\"]);\n\n    return Object(external_this_React_[\"createElement\"])(nodeName, _objectSpread({\n      key: index\n    }, props), childrenProp);\n  });\n}\n\n// EXTERNAL MODULE: external {\"this\":\"ReactDOM\"}\nvar external_this_ReactDOM_ = __webpack_require__(138);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/react-platform.js\n/**\n * External dependencies\n */\n\n/**\n * Creates a portal into which a component can be rendered.\n *\n * @see https://github.com/facebook/react/issues/10309#issuecomment-318433235\n *\n * @param {import('./react').WPElement}   child     Any renderable child, such as an element,\n *                                string, or fragment.\n * @param {HTMLElement} container DOM node into which element should be rendered.\n */\n\n\n/**\n * Finds the dom node of a React component.\n *\n * @param {import('./react').WPComponent} component Component's instance.\n */\n\n\n/**\n * Renders a given element into the target DOM node.\n *\n * @param {import('./react').WPElement}   element Element to render.\n * @param {HTMLElement} target  DOM node into which element should be rendered.\n */\n\n\n/**\n * Removes any mounted element from the target DOM node.\n *\n * @param {Element} target DOM node in which element is to be removed\n */\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/utils.js\n/**\n * External dependencies\n */\n\n/**\n * Checks if the provided WP element is empty.\n *\n * @param {*} element WP element to check.\n * @return {boolean} True when an element is considered empty.\n */\n\nvar utils_isEmptyElement = function isEmptyElement(element) {\n  if (Object(external_this_lodash_[\"isNumber\"])(element)) {\n    return false;\n  }\n\n  if (Object(external_this_lodash_[\"isString\"])(element) || Object(external_this_lodash_[\"isArray\"])(element)) {\n    return !element.length;\n  }\n\n  return !element;\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/platform.js\n/**\n * Parts of this source were derived and modified from react-native-web,\n * released under the MIT license.\n *\n * Copyright (c) 2016-present, Nicolas Gallagher.\n * Copyright (c) 2015-present, Facebook, Inc.\n *\n */\nvar Platform = {\n  OS: 'web',\n  select: function select(spec) {\n    return 'web' in spec ? spec.web : spec.default;\n  }\n};\n/**\n * Component used to detect the current Platform being used.\n * Use Platform.OS === 'web' to detect if running on web enviroment.\n *\n * This is the same concept as the React Native implementation.\n *\n * @see https://facebook.github.io/react-native/docs/platform-specific-code#platform-module\n *\n * Here is an example of how to use the select method:\n * @example\n * ```js\n * import { Platform } from '@wordpress/element';\n *\n * const placeholderLabel = Platform.select( {\n *   native: __( 'Add media' ),\n *   web: __( 'Drag images, upload new ones or select files from your library.' ),\n * } );\n * ```\n */\n\n/* harmony default export */ var platform = (Platform);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"escapeHtml\"]}\nvar external_this_wp_escapeHtml_ = __webpack_require__(79);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/raw-html.js\n\n\n\nfunction raw_html_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction raw_html_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { raw_html_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { raw_html_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{children: string} & import('react').ComponentPropsWithoutRef<'div'>} RawHTMLProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Component used as equivalent of Fragment with unescaped HTML, in cases where\n * it is desirable to render dangerous HTML without needing a wrapper element.\n * To preserve additional props, a `div` wrapper _will_ be created if any props\n * aside from `children` are passed.\n *\n * @param {RawHTMLProps} props Children should be a string of HTML. Other props\n *                             will be passed through to div wrapper.\n *\n * @return {JSX.Element} Dangerously-rendering component.\n */\n\nfunction RawHTML(_ref) {\n  var children = _ref.children,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"children\"]);\n\n  // The DIV wrapper will be stripped by serializer, unless there are\n  // non-children props present.\n  return Object(external_this_React_[\"createElement\"])('div', raw_html_objectSpread({\n    dangerouslySetInnerHTML: {\n      __html: children\n    }\n  }, props));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/serialize.js\n\n\n\n\nfunction serialize_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction serialize_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { serialize_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { serialize_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Parts of this source were derived and modified from fast-react-render,\n * released under the MIT license.\n *\n * https://github.com/alt-j/fast-react-render\n *\n * Copyright (c) 2016 Andrey Morozov\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/** @typedef {import('./react').WPElement} WPElement */\n\nvar _createContext = Object(external_this_React_[\"createContext\"])(undefined),\n    Provider = _createContext.Provider,\n    Consumer = _createContext.Consumer;\n\nvar ForwardRef = Object(external_this_React_[\"forwardRef\"])(function () {\n  return null;\n});\n/**\n * Valid attribute types.\n *\n * @type {Set<string>}\n */\n\nvar ATTRIBUTES_TYPES = new Set(['string', 'boolean', 'number']);\n/**\n * Element tags which can be self-closing.\n *\n * @type {Set<string>}\n */\n\nvar SELF_CLOSING_TAGS = new Set(['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']);\n/**\n * Boolean attributes are attributes whose presence as being assigned is\n * meaningful, even if only empty.\n *\n * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#boolean-attributes\n * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n *\n * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ]\n *     .filter( ( tr ) => tr.lastChild.textContent.indexOf( 'Boolean attribute' ) !== -1 )\n *     .reduce( ( result, tr ) => Object.assign( result, {\n *         [ tr.firstChild.textContent.trim() ]: true\n *     } ), {} ) ).sort();\n *\n * @type {Set<string>}\n */\n\nvar BOOLEAN_ATTRIBUTES = new Set(['allowfullscreen', 'allowpaymentrequest', 'allowusermedia', 'async', 'autofocus', 'autoplay', 'checked', 'controls', 'default', 'defer', 'disabled', 'download', 'formnovalidate', 'hidden', 'ismap', 'itemscope', 'loop', 'multiple', 'muted', 'nomodule', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'selected', 'typemustmatch']);\n/**\n * Enumerated attributes are attributes which must be of a specific value form.\n * Like boolean attributes, these are meaningful if specified, even if not of a\n * valid enumerated value.\n *\n * See: https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#enumerated-attribute\n * Extracted from: https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n *\n * Object.keys( [ ...document.querySelectorAll( '#attributes-1 > tbody > tr' ) ]\n *     .filter( ( tr ) => /^(\"(.+?)\";?\\s*)+/.test( tr.lastChild.textContent.trim() ) )\n *     .reduce( ( result, tr ) => Object.assign( result, {\n *         [ tr.firstChild.textContent.trim() ]: true\n *     } ), {} ) ).sort();\n *\n * Some notable omissions:\n *\n *  - `alt`: https://blog.whatwg.org/omit-alt\n *\n * @type {Set<string>}\n */\n\nvar ENUMERATED_ATTRIBUTES = new Set(['autocapitalize', 'autocomplete', 'charset', 'contenteditable', 'crossorigin', 'decoding', 'dir', 'draggable', 'enctype', 'formenctype', 'formmethod', 'http-equiv', 'inputmode', 'kind', 'method', 'preload', 'scope', 'shape', 'spellcheck', 'translate', 'type', 'wrap']);\n/**\n * Set of CSS style properties which support assignment of unitless numbers.\n * Used in rendering of style properties, where `px` unit is assumed unless\n * property is included in this set or value is zero.\n *\n * Generated via:\n *\n * Object.entries( document.createElement( 'div' ).style )\n *     .filter( ( [ key ] ) => (\n *         ! /^(webkit|ms|moz)/.test( key ) &&\n *         ( e.style[ key ] = 10 ) &&\n *         e.style[ key ] === '10'\n *     ) )\n *     .map( ( [ key ] ) => key )\n *     .sort();\n *\n * @type {Set<string>}\n */\n\nvar CSS_PROPERTIES_SUPPORTS_UNITLESS = new Set(['animation', 'animationIterationCount', 'baselineShift', 'borderImageOutset', 'borderImageSlice', 'borderImageWidth', 'columnCount', 'cx', 'cy', 'fillOpacity', 'flexGrow', 'flexShrink', 'floodOpacity', 'fontWeight', 'gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart', 'lineHeight', 'opacity', 'order', 'orphans', 'r', 'rx', 'ry', 'shapeImageThreshold', 'stopOpacity', 'strokeDasharray', 'strokeDashoffset', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'tabSize', 'widows', 'x', 'y', 'zIndex', 'zoom']);\n/**\n * Returns true if the specified string is prefixed by one of an array of\n * possible prefixes.\n *\n * @param {string}   string   String to check.\n * @param {string[]} prefixes Possible prefixes.\n *\n * @return {boolean} Whether string has prefix.\n */\n\nfunction hasPrefix(string, prefixes) {\n  return prefixes.some(function (prefix) {\n    return string.indexOf(prefix) === 0;\n  });\n}\n/**\n * Returns true if the given prop name should be ignored in attributes\n * serialization, or false otherwise.\n *\n * @param {string} attribute Attribute to check.\n *\n * @return {boolean} Whether attribute should be ignored.\n */\n\nfunction isInternalAttribute(attribute) {\n  return 'key' === attribute || 'children' === attribute;\n}\n/**\n * Returns the normal form of the element's attribute value for HTML.\n *\n * @param {string} attribute Attribute name.\n * @param {*}      value     Non-normalized attribute value.\n *\n * @return {*} Normalized attribute value.\n */\n\n\nfunction getNormalAttributeValue(attribute, value) {\n  switch (attribute) {\n    case 'style':\n      return renderStyle(value);\n  }\n\n  return value;\n}\n/**\n * Returns the normal form of the element's attribute name for HTML.\n *\n * @param {string} attribute Non-normalized attribute name.\n *\n * @return {string} Normalized attribute name.\n */\n\n\nfunction getNormalAttributeName(attribute) {\n  switch (attribute) {\n    case 'htmlFor':\n      return 'for';\n\n    case 'className':\n      return 'class';\n  }\n\n  return attribute.toLowerCase();\n}\n/**\n * Returns the normal form of the style property name for HTML.\n *\n * - Converts property names to kebab-case, e.g. 'backgroundColor' → 'background-color'\n * - Leaves custom attributes alone, e.g. '--myBackgroundColor' → '--myBackgroundColor'\n * - Converts vendor-prefixed property names to -kebab-case, e.g. 'MozTransform' → '-moz-transform'\n *\n * @param {string} property Property name.\n *\n * @return {string} Normalized property name.\n */\n\n\nfunction getNormalStylePropertyName(property) {\n  if (Object(external_this_lodash_[\"startsWith\"])(property, '--')) {\n    return property;\n  }\n\n  if (hasPrefix(property, ['ms', 'O', 'Moz', 'Webkit'])) {\n    return '-' + Object(external_this_lodash_[\"kebabCase\"])(property);\n  }\n\n  return Object(external_this_lodash_[\"kebabCase\"])(property);\n}\n/**\n * Returns the normal form of the style property value for HTML. Appends a\n * default pixel unit if numeric, not a unitless property, and not zero.\n *\n * @param {string} property Property name.\n * @param {*}      value    Non-normalized property value.\n *\n * @return {*} Normalized property value.\n */\n\n\nfunction getNormalStylePropertyValue(property, value) {\n  if (typeof value === 'number' && 0 !== value && !CSS_PROPERTIES_SUPPORTS_UNITLESS.has(property)) {\n    return value + 'px';\n  }\n\n  return value;\n}\n/**\n * Serializes a React element to string.\n *\n * @param {import('react').ReactNode} element         Element to serialize.\n * @param {Object}                    [context]       Context object.\n * @param {Object}                    [legacyContext] Legacy context object.\n *\n * @return {string} Serialized element.\n */\n\n\nfunction renderElement(element, context) {\n  var legacyContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (null === element || undefined === element || false === element) {\n    return '';\n  }\n\n  if (Array.isArray(element)) {\n    return renderChildren(element, context, legacyContext);\n  }\n\n  switch (Object(esm_typeof[\"a\" /* default */])(element)) {\n    case 'string':\n      return Object(external_this_wp_escapeHtml_[\"escapeHTML\"])(element);\n\n    case 'number':\n      return element.toString();\n  }\n\n  var type =\n  /** @type {{type?: any, props?: any}} */\n  element.type,\n      props = element.props;\n\n  switch (type) {\n    case external_this_React_[\"StrictMode\"]:\n    case external_this_React_[\"Fragment\"]:\n      return renderChildren(props.children, context, legacyContext);\n\n    case RawHTML:\n      var children = props.children,\n          wrapperProps = Object(objectWithoutProperties[\"a\" /* default */])(props, [\"children\"]);\n\n      return renderNativeComponent(Object(external_this_lodash_[\"isEmpty\"])(wrapperProps) ? null : 'div', serialize_objectSpread({}, wrapperProps, {\n        dangerouslySetInnerHTML: {\n          __html: children\n        }\n      }), context, legacyContext);\n  }\n\n  switch (Object(esm_typeof[\"a\" /* default */])(type)) {\n    case 'string':\n      return renderNativeComponent(type, props, context, legacyContext);\n\n    case 'function':\n      if (type.prototype && typeof type.prototype.render === 'function') {\n        return renderComponent(type, props, context, legacyContext);\n      }\n\n      return renderElement(type(props, legacyContext), context, legacyContext);\n  }\n\n  switch (type && type.$$typeof) {\n    case Provider.$$typeof:\n      return renderChildren(props.children, props.value, legacyContext);\n\n    case Consumer.$$typeof:\n      return renderElement(props.children(context || type._currentValue), context, legacyContext);\n\n    case ForwardRef.$$typeof:\n      return renderElement(type.render(props), context, legacyContext);\n  }\n\n  return '';\n}\n/**\n * Serializes a native component type to string.\n *\n * @param {?string} type            Native component type to serialize, or null if\n *                                  rendering as fragment of children content.\n * @param {Object}  props           Props object.\n * @param {Object}  [context]       Context object.\n * @param {Object}  [legacyContext] Legacy context object.\n *\n * @return {string} Serialized element.\n */\n\nfunction renderNativeComponent(type, props, context) {\n  var legacyContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var content = '';\n\n  if (type === 'textarea' && props.hasOwnProperty('value')) {\n    // Textarea children can be assigned as value prop. If it is, render in\n    // place of children. Ensure to omit so it is not assigned as attribute\n    // as well.\n    content = renderChildren(props.value, context, legacyContext);\n    props = Object(external_this_lodash_[\"omit\"])(props, 'value');\n  } else if (props.dangerouslySetInnerHTML && typeof props.dangerouslySetInnerHTML.__html === 'string') {\n    // Dangerous content is left unescaped.\n    content = props.dangerouslySetInnerHTML.__html;\n  } else if (typeof props.children !== 'undefined') {\n    content = renderChildren(props.children, context, legacyContext);\n  }\n\n  if (!type) {\n    return content;\n  }\n\n  var attributes = renderAttributes(props);\n\n  if (SELF_CLOSING_TAGS.has(type)) {\n    return '<' + type + attributes + '/>';\n  }\n\n  return '<' + type + attributes + '>' + content + '</' + type + '>';\n}\n/** @typedef {import('./react').WPComponent} WPComponent */\n\n/**\n * Serializes a non-native component type to string.\n *\n * @param {WPComponent} Component       Component type to serialize.\n * @param {Object}      props           Props object.\n * @param {Object}      [context]       Context object.\n * @param {Object}      [legacyContext] Legacy context object.\n *\n * @return {string} Serialized element\n */\n\nfunction renderComponent(Component, props, context) {\n  var legacyContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var instance = new\n  /** @type {import('react').ComponentClass} */\n  Component(props, legacyContext);\n\n  if (typeof // Ignore reason: Current prettier reformats parens and mangles type assertion\n  // prettier-ignore\n\n  /** @type {{getChildContext?: () => unknown}} */\n  instance.getChildContext === 'function') {\n    Object.assign(legacyContext,\n    /** @type {{getChildContext?: () => unknown}} */\n    instance.getChildContext());\n  }\n\n  var html = renderElement(instance.render(), context, legacyContext);\n  return html;\n}\n/**\n * Serializes an array of children to string.\n *\n * @param {import('react').ReactNodeArray} children        Children to serialize.\n * @param {Object}                         [context]       Context object.\n * @param {Object}                         [legacyContext] Legacy context object.\n *\n * @return {string} Serialized children.\n */\n\nfunction renderChildren(children, context) {\n  var legacyContext = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var result = '';\n  children = Object(external_this_lodash_[\"castArray\"])(children);\n\n  for (var i = 0; i < children.length; i++) {\n    var child = children[i];\n    result += renderElement(child, context, legacyContext);\n  }\n\n  return result;\n}\n/**\n * Renders a props object as a string of HTML attributes.\n *\n * @param {Object} props Props object.\n *\n * @return {string} Attributes string.\n */\n\n\nfunction renderAttributes(props) {\n  var result = '';\n\n  for (var key in props) {\n    var attribute = getNormalAttributeName(key);\n\n    if (!Object(external_this_wp_escapeHtml_[\"isValidAttributeName\"])(attribute)) {\n      continue;\n    }\n\n    var value = getNormalAttributeValue(key, props[key]); // If value is not of serializeable type, skip.\n\n    if (!ATTRIBUTES_TYPES.has(Object(esm_typeof[\"a\" /* default */])(value))) {\n      continue;\n    } // Don't render internal attribute names.\n\n\n    if (isInternalAttribute(key)) {\n      continue;\n    }\n\n    var isBooleanAttribute = BOOLEAN_ATTRIBUTES.has(attribute); // Boolean attribute should be omitted outright if its value is false.\n\n    if (isBooleanAttribute && value === false) {\n      continue;\n    }\n\n    var isMeaningfulAttribute = isBooleanAttribute || hasPrefix(key, ['data-', 'aria-']) || ENUMERATED_ATTRIBUTES.has(attribute); // Only write boolean value as attribute if meaningful.\n\n    if (typeof value === 'boolean' && !isMeaningfulAttribute) {\n      continue;\n    }\n\n    result += ' ' + attribute; // Boolean attributes should write attribute name, but without value.\n    // Mere presence of attribute name is effective truthiness.\n\n    if (isBooleanAttribute) {\n      continue;\n    }\n\n    if (typeof value === 'string') {\n      value = Object(external_this_wp_escapeHtml_[\"escapeAttribute\"])(value);\n    }\n\n    result += '=\"' + value + '\"';\n  }\n\n  return result;\n}\n/**\n * Renders a style object as a string attribute value.\n *\n * @param {Object} style Style object.\n *\n * @return {string} Style attribute value.\n */\n\nfunction renderStyle(style) {\n  // Only generate from object, e.g. tolerate string value.\n  if (!Object(external_this_lodash_[\"isPlainObject\"])(style)) {\n    return style;\n  }\n\n  var result;\n\n  for (var property in style) {\n    var value = style[property];\n\n    if (null === value || undefined === value) {\n      continue;\n    }\n\n    if (result) {\n      result += ';';\n    } else {\n      result = '';\n    }\n\n    var normalName = getNormalStylePropertyName(property);\n    var normalValue = getNormalStylePropertyValue(property, value);\n    result += normalName + ':' + normalValue;\n  }\n\n  return result;\n}\n/* harmony default export */ var serialize = (renderElement);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/element/build-module/index.js\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 79:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"escapeHtml\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-escape-html.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"escapeHtml\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 461);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 461:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"escapeAmpersand\", function() { return /* binding */ escapeAmpersand; });\n__webpack_require__.d(__webpack_exports__, \"escapeQuotationMark\", function() { return /* binding */ escapeQuotationMark; });\n__webpack_require__.d(__webpack_exports__, \"escapeLessThan\", function() { return /* binding */ escapeLessThan; });\n__webpack_require__.d(__webpack_exports__, \"escapeAttribute\", function() { return /* binding */ escapeAttribute; });\n__webpack_require__.d(__webpack_exports__, \"escapeHTML\", function() { return /* binding */ escapeHTML; });\n__webpack_require__.d(__webpack_exports__, \"escapeEditableHTML\", function() { return /* binding */ escapeEditableHTML; });\n__webpack_require__.d(__webpack_exports__, \"isValidAttributeName\", function() { return /* binding */ isValidAttributeName; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/escape-greater.js\n/**\n * Returns a string with greater-than sign replaced.\n *\n * Note that if a resolution for Trac#45387 comes to fruition, it is no longer\n * necessary for `__unstableEscapeGreaterThan` to exist.\n *\n * See: https://core.trac.wordpress.org/ticket/45387\n *\n * @param {string} value Original string.\n *\n * @return {string} Escaped string.\n */\nfunction __unstableEscapeGreaterThan(value) {\n  return value.replace(/>/g, '&gt;');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/escape-html/build-module/index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Regular expression matching invalid attribute names.\n *\n * \"Attribute names must consist of one or more characters other than controls,\n * U+0020 SPACE, U+0022 (\"), U+0027 ('), U+003E (>), U+002F (/), U+003D (=),\n * and noncharacters.\"\n *\n * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n *\n * @type {RegExp}\n */\n\nvar REGEXP_INVALID_ATTRIBUTE_NAME = /[\\u007F-\\u009F \"'>/=\"\\uFDD0-\\uFDEF]/;\n/**\n * Returns a string with ampersands escaped. Note that this is an imperfect\n * implementation, where only ampersands which do not appear as a pattern of\n * named, decimal, or hexadecimal character references are escaped. Invalid\n * named references (i.e. ambiguous ampersand) are are still permitted.\n *\n * @see https://w3c.github.io/html/syntax.html#character-references\n * @see https://w3c.github.io/html/syntax.html#ambiguous-ampersand\n * @see https://w3c.github.io/html/syntax.html#named-character-references\n *\n * @param {string} value Original string.\n *\n * @return {string} Escaped string.\n */\n\nfunction escapeAmpersand(value) {\n  return value.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi, '&amp;');\n}\n/**\n * Returns a string with quotation marks replaced.\n *\n * @param {string} value Original string.\n *\n * @return {string} Escaped string.\n */\n\nfunction escapeQuotationMark(value) {\n  return value.replace(/\"/g, '&quot;');\n}\n/**\n * Returns a string with less-than sign replaced.\n *\n * @param {string} value Original string.\n *\n * @return {string} Escaped string.\n */\n\nfunction escapeLessThan(value) {\n  return value.replace(/</g, '&lt;');\n}\n/**\n * Returns an escaped attribute value.\n *\n * @see https://w3c.github.io/html/syntax.html#elements-attributes\n *\n * \"[...] the text cannot contain an ambiguous ampersand [...] must not contain\n * any literal U+0022 QUOTATION MARK characters (\")\"\n *\n * Note we also escape the greater than symbol, as this is used by wptexturize to\n * split HTML strings. This is a WordPress specific fix\n *\n * Note that if a resolution for Trac#45387 comes to fruition, it is no longer\n * necessary for `__unstableEscapeGreaterThan` to be used.\n *\n * See: https://core.trac.wordpress.org/ticket/45387\n *\n * @param {string} value Attribute value.\n *\n * @return {string} Escaped attribute value.\n */\n\nfunction escapeAttribute(value) {\n  return __unstableEscapeGreaterThan(escapeQuotationMark(escapeAmpersand(value)));\n}\n/**\n * Returns an escaped HTML element value.\n *\n * @see https://w3c.github.io/html/syntax.html#writing-html-documents-elements\n *\n * \"the text must not contain the character U+003C LESS-THAN SIGN (<) or an\n * ambiguous ampersand.\"\n *\n * @param {string} value Element value.\n *\n * @return {string} Escaped HTML element value.\n */\n\nfunction escapeHTML(value) {\n  return escapeLessThan(escapeAmpersand(value));\n}\n/**\n * Returns an escaped Editable HTML element value. This is different from\n * `escapeHTML`, because for editable HTML, ALL ampersands must be escaped in\n * order to render the content correctly on the page.\n *\n * @param {string} value Element value.\n *\n * @return {string} Escaped HTML element value.\n */\n\nfunction escapeEditableHTML(value) {\n  return escapeLessThan(value.replace(/&/g, '&amp;'));\n}\n/**\n * Returns true if the given attribute name is valid, or false otherwise.\n *\n * @param {string} name Attribute name to test.\n *\n * @return {boolean} Whether attribute is valid.\n */\n\nfunction isValidAttributeName(name) {\n  return !REGEXP_INVALID_ATTRIBUTE_NAME.test(name);\n}\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-format-library.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"formatLibrary\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 442);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('react').ComponentPropsWithoutRef<'SVG'>} IconProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\n\nfunction Icon(_ref) {\n  var icon = _ref.icon,\n      _ref$size = _ref.size,\n      size = _ref$size === void 0 ? 24 : _ref$size,\n      props = Object(_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(_ref, [\"icon\", \"size\"]);\n\n  return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__[\"cloneElement\"])(icon, _objectSpread({\n    width: size,\n    height: size\n  }, props));\n}\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Icon);\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 174:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar link = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (link);\n\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 197:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar keyboardReturn = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M16 4h2v9H7v3l-5-4 5-4v3h9V4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (keyboardReturn);\n\n\n/***/ }),\n\n/***/ 199:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar linkOff = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M15.6 7.3h-.7l1.6-3.5-.9-.4-3.9 8.5H9v1.5h2l-1.3 2.8H8.4c-2 0-3.7-1.7-3.7-3.7s1.7-3.7 3.7-3.7H10V7.3H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H9l-1.4 3.2.9.4 5.7-12.5h1.4c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.9 0 5.2-2.3 5.2-5.2 0-2.9-2.4-5.2-5.2-5.2z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (linkOff);\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"richText\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 297:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar code = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  viewBox: \"0 0 24 24\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (code);\n\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 31:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"dom\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 406:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar textColor = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"-2 -2 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13.23 15h1.9L11 4H9L5 15h1.88l1.07-3h4.18zm-1.53-4.54H8.51L10 5.6z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (textColor);\n\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 442:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"richText\"]}\nvar external_this_wp_richText_ = __webpack_require__(24);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blockEditor\"]}\nvar external_this_wp_blockEditor_ = __webpack_require__(7);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"primitives\"]}\nvar external_this_wp_primitives_ = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-bold.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatBold = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M14.7 11.3c1-.6 1.5-1.6 1.5-3 0-2.3-1.3-3.4-4-3.4H7v14h5.8c1.4 0 2.5-.3 3.3-1 .8-.7 1.2-1.7 1.2-2.9.1-1.9-.8-3.1-2.6-3.7zm-5.1-4h2.3c.6 0 1.1.1 1.4.4.3.3.5.7.5 1.2s-.2 1-.5 1.2c-.3.3-.8.4-1.4.4H9.6V7.3zm4.6 9c-.4.3-1 .4-1.7.4H9.6v-3.9h2.9c.7 0 1.3.2 1.7.5.4.3.6.8.6 1.5s-.2 1.2-.6 1.5z\"\n}));\n/* harmony default export */ var format_bold = (formatBold);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/bold/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar bold_name = 'core/bold';\n\nvar title = Object(external_this_wp_i18n_[\"__\"])('Bold');\n\nvar bold = {\n  name: bold_name,\n  title: title,\n  tagName: 'strong',\n  className: null,\n  edit: function edit(_ref) {\n    var isActive = _ref.isActive,\n        value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus;\n\n    function onToggle() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: bold_name\n      }));\n    }\n\n    function onClick() {\n      onToggle();\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"b\",\n      onUse: onToggle\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      name: \"bold\",\n      icon: format_bold,\n      title: title,\n      onClick: onClick,\n      isActive: isActive,\n      shortcutType: \"primary\",\n      shortcutCharacter: \"b\"\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__unstableRichTextInputEvent\"], {\n      inputType: \"formatBold\",\n      onInput: onToggle\n    }));\n  }\n};\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/code.js\nvar code = __webpack_require__(297);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/code/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar code_name = 'core/code';\n\nvar code_title = Object(external_this_wp_i18n_[\"__\"])('Inline Code');\n\nvar code_code = {\n  name: code_name,\n  title: code_title,\n  tagName: 'code',\n  className: null,\n  __unstableInputRule: function __unstableInputRule(value) {\n    var BACKTICK = '`';\n    var _value = value,\n        start = _value.start,\n        text = _value.text;\n    var characterBefore = text.slice(start - 1, start); // Quick check the text for the necessary character.\n\n    if (characterBefore !== BACKTICK) {\n      return value;\n    }\n\n    var textBefore = text.slice(0, start - 1);\n    var indexBefore = textBefore.lastIndexOf(BACKTICK);\n\n    if (indexBefore === -1) {\n      return value;\n    }\n\n    var startIndex = indexBefore;\n    var endIndex = start - 2;\n\n    if (startIndex === endIndex) {\n      return value;\n    }\n\n    value = Object(external_this_wp_richText_[\"remove\"])(value, startIndex, startIndex + 1);\n    value = Object(external_this_wp_richText_[\"remove\"])(value, endIndex, endIndex + 1);\n    value = Object(external_this_wp_richText_[\"applyFormat\"])(value, {\n      type: code_name\n    }, startIndex, endIndex);\n    return value;\n  },\n  edit: function edit(_ref) {\n    var value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus,\n        isActive = _ref.isActive;\n\n    function onClick() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: code_name\n      }));\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      icon: code[\"a\" /* default */],\n      title: code_title,\n      onClick: onClick,\n      isActive: isActive\n    });\n  }\n};\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js\nvar keyboard_return = __webpack_require__(197);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/image/index.js\n\n\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nvar ALLOWED_MEDIA_TYPES = ['image'];\nvar image_name = 'core/image';\n\nvar image_title = Object(external_this_wp_i18n_[\"__\"])('Inline image');\n\nvar stopKeyPropagation = function stopKeyPropagation(event) {\n  return event.stopPropagation();\n};\n\nfunction getRange() {\n  var selection = window.getSelection();\n  return selection.rangeCount ? selection.getRangeAt(0) : null;\n}\n\nvar image_image = {\n  name: image_name,\n  title: image_title,\n  keywords: [Object(external_this_wp_i18n_[\"__\"])('photo'), Object(external_this_wp_i18n_[\"__\"])('media')],\n  object: true,\n  tagName: 'img',\n  className: null,\n  attributes: {\n    className: 'class',\n    style: 'style',\n    url: 'src',\n    alt: 'alt'\n  },\n  edit: /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(ImageEdit, _Component);\n\n    var _super = _createSuper(ImageEdit);\n\n    function ImageEdit() {\n      var _this;\n\n      Object(classCallCheck[\"a\" /* default */])(this, ImageEdit);\n\n      _this = _super.apply(this, arguments);\n      _this.onChange = _this.onChange.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.onKeyDown = _this.onKeyDown.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.openModal = _this.openModal.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.closeModal = _this.closeModal.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.anchorRef = null;\n      _this.state = {\n        modal: false\n      };\n      return _this;\n    }\n\n    Object(createClass[\"a\" /* default */])(ImageEdit, [{\n      key: \"onChange\",\n      value: function onChange(width) {\n        this.setState({\n          width: width\n        });\n      }\n    }, {\n      key: \"onKeyDown\",\n      value: function onKeyDown(event) {\n        if ([external_this_wp_keycodes_[\"LEFT\"], external_this_wp_keycodes_[\"DOWN\"], external_this_wp_keycodes_[\"RIGHT\"], external_this_wp_keycodes_[\"UP\"], external_this_wp_keycodes_[\"BACKSPACE\"], external_this_wp_keycodes_[\"ENTER\"]].indexOf(event.keyCode) > -1) {\n          // Stop the key event from propagating up to ObserveTyping.startTypingInTextField.\n          event.stopPropagation();\n        }\n      }\n    }, {\n      key: \"openModal\",\n      value: function openModal() {\n        this.setState({\n          modal: true\n        });\n      }\n    }, {\n      key: \"closeModal\",\n      value: function closeModal() {\n        this.setState({\n          modal: false\n        });\n      }\n    }, {\n      key: \"componentDidMount\",\n      value: function componentDidMount() {\n        this.anchorRef = getRange();\n      }\n    }, {\n      key: \"componentDidUpdate\",\n      value: function componentDidUpdate(prevProps) {\n        // When the popover is open or when the selected image changes,\n        // update the anchorRef.\n        if (!prevProps.isObjectActive && this.props.isObjectActive || prevProps.activeObjectAttributes.url !== this.props.activeObjectAttributes.url) {\n          this.anchorRef = getRange();\n        }\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var _this2 = this;\n\n        var _this$props = this.props,\n            value = _this$props.value,\n            onChange = _this$props.onChange,\n            onFocus = _this$props.onFocus,\n            isObjectActive = _this$props.isObjectActive,\n            activeObjectAttributes = _this$props.activeObjectAttributes;\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUploadCheck\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n          icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"SVG\"], {\n            xmlns: \"http://www.w3.org/2000/svg\",\n            viewBox: \"0 0 24 24\"\n          }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Path\"], {\n            d: \"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\"\n          })),\n          title: image_title,\n          onClick: this.openModal,\n          isActive: isObjectActive\n        }), this.state.modal && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"MediaUpload\"], {\n          allowedTypes: ALLOWED_MEDIA_TYPES,\n          onSelect: function onSelect(_ref) {\n            var id = _ref.id,\n                url = _ref.url,\n                alt = _ref.alt,\n                width = _ref.width;\n\n            _this2.closeModal();\n\n            onChange(Object(external_this_wp_richText_[\"insertObject\"])(value, {\n              type: image_name,\n              attributes: {\n                className: \"wp-image-\".concat(id),\n                style: \"width: \".concat(Math.min(width, 150), \"px;\"),\n                url: url,\n                alt: alt\n              }\n            }));\n            onFocus();\n          },\n          onClose: this.closeModal,\n          render: function render(_ref2) {\n            var open = _ref2.open;\n            open();\n            return null;\n          }\n        }), isObjectActive && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n          position: \"bottom center\",\n          focusOnMount: false,\n          anchorRef: this.anchorRef\n        }, Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n          className: \"block-editor-format-toolbar__image-container-content\",\n          onKeyPress: stopKeyPropagation,\n          onKeyDown: this.onKeyDown,\n          onSubmit: function onSubmit(event) {\n            var newReplacements = value.replacements.slice();\n            newReplacements[value.start] = {\n              type: image_name,\n              attributes: _objectSpread({}, activeObjectAttributes, {\n                style: \"width: \".concat(_this2.state.width, \"px;\")\n              })\n            };\n            onChange(_objectSpread({}, value, {\n              replacements: newReplacements\n            }));\n            event.preventDefault();\n          }\n        }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"TextControl\"], {\n          className: \"block-editor-format-toolbar__image-container-value\",\n          type: \"number\",\n          label: Object(external_this_wp_i18n_[\"__\"])('Width'),\n          value: this.state.width,\n          min: 1,\n          onChange: this.onChange\n        }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n          icon: keyboard_return[\"a\" /* default */],\n          label: Object(external_this_wp_i18n_[\"__\"])('Apply'),\n          type: \"submit\"\n        }))));\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(props, state) {\n        var style = props.activeObjectAttributes.style;\n\n        if (style === state.previousStyle) {\n          return null;\n        }\n\n        if (!style) {\n          return {\n            width: undefined,\n            previousStyle: style\n          };\n        }\n\n        return {\n          width: style.replace(/\\D/g, ''),\n          previousStyle: style\n        };\n      }\n    }]);\n\n    return ImageEdit;\n  }(external_this_wp_element_[\"Component\"])\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-italic.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatItalic = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M12.5 5L10 19h1.9l2.5-14z\"\n}));\n/* harmony default export */ var format_italic = (formatItalic);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/italic/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar italic_name = 'core/italic';\n\nvar italic_title = Object(external_this_wp_i18n_[\"__\"])('Italic');\n\nvar italic = {\n  name: italic_name,\n  title: italic_title,\n  tagName: 'em',\n  className: null,\n  edit: function edit(_ref) {\n    var isActive = _ref.isActive,\n        value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus;\n\n    function onToggle() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: italic_name\n      }));\n    }\n\n    function onClick() {\n      onToggle();\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"i\",\n      onUse: onToggle\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      name: \"italic\",\n      icon: format_italic,\n      title: italic_title,\n      onClick: onClick,\n      isActive: isActive,\n      shortcutType: \"primary\",\n      shortcutCharacter: \"i\"\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__unstableRichTextInputEvent\"], {\n      inputType: \"formatItalic\",\n      onInput: onToggle\n    }));\n  }\n};\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"htmlEntities\"]}\nvar external_this_wp_htmlEntities_ = __webpack_require__(62);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link-off.js\nvar link_off = __webpack_require__(199);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/link.js\nvar library_link = __webpack_require__(174);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/utils.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Check for issues with the provided href.\n *\n * @param {string} href The href.\n *\n * @return {boolean} Is the href invalid?\n */\n\nfunction isValidHref(href) {\n  if (!href) {\n    return false;\n  }\n\n  var trimmedHref = href.trim();\n\n  if (!trimmedHref) {\n    return false;\n  } // Does the href start with something that looks like a URL protocol?\n\n\n  if (/^\\S+:/.test(trimmedHref)) {\n    var protocol = Object(external_this_wp_url_[\"getProtocol\"])(trimmedHref);\n\n    if (!Object(external_this_wp_url_[\"isValidProtocol\"])(protocol)) {\n      return false;\n    } // Add some extra checks for http(s) URIs, since these are the most common use-case.\n    // This ensures URIs with an http protocol have exactly two forward slashes following the protocol.\n\n\n    if (Object(external_this_lodash_[\"startsWith\"])(protocol, 'http') && !/^https?:\\/\\/[^\\/\\s]/i.test(trimmedHref)) {\n      return false;\n    }\n\n    var authority = Object(external_this_wp_url_[\"getAuthority\"])(trimmedHref);\n\n    if (!Object(external_this_wp_url_[\"isValidAuthority\"])(authority)) {\n      return false;\n    }\n\n    var path = Object(external_this_wp_url_[\"getPath\"])(trimmedHref);\n\n    if (path && !Object(external_this_wp_url_[\"isValidPath\"])(path)) {\n      return false;\n    }\n\n    var queryString = Object(external_this_wp_url_[\"getQueryString\"])(trimmedHref);\n\n    if (queryString && !Object(external_this_wp_url_[\"isValidQueryString\"])(queryString)) {\n      return false;\n    }\n\n    var fragment = Object(external_this_wp_url_[\"getFragment\"])(trimmedHref);\n\n    if (fragment && !Object(external_this_wp_url_[\"isValidFragment\"])(fragment)) {\n      return false;\n    }\n  } // Validate anchor links.\n\n\n  if (Object(external_this_lodash_[\"startsWith\"])(trimmedHref, '#') && !Object(external_this_wp_url_[\"isValidFragment\"])(trimmedHref)) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Generates the format object that will be applied to the link text.\n *\n * @param {Object}  options\n * @param {string}  options.url              The href of the link.\n * @param {string}  options.type             The type of the link.\n * @param {string}  options.id               The ID of the link.\n * @param {boolean} options.opensInNewWindow Whether this link will open in a new window.\n *\n * @return {Object} The final format object.\n */\n\nfunction createLinkFormat(_ref) {\n  var url = _ref.url,\n      type = _ref.type,\n      id = _ref.id,\n      opensInNewWindow = _ref.opensInNewWindow;\n  var format = {\n    type: 'core/link',\n    attributes: {\n      url: url\n    }\n  };\n  if (type) format.attributes.type = type;\n  if (id) format.attributes.id = id;\n\n  if (opensInNewWindow) {\n    format.attributes.target = '_blank';\n    format.attributes.rel = 'noreferrer noopener';\n  }\n\n  return format;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/inline.js\n\n\n\n\nfunction inline_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction inline_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { inline_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { inline_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction InlineLinkUI(_ref) {\n  var isActive = _ref.isActive,\n      activeAttributes = _ref.activeAttributes,\n      addingLink = _ref.addingLink,\n      value = _ref.value,\n      onChange = _ref.onChange,\n      speak = _ref.speak,\n      stopAddingLink = _ref.stopAddingLink;\n\n  /**\n   * A unique key is generated when switching between editing and not editing\n   * a link, based on:\n   *\n   * - This component may be rendered _either_ when a link is active _or_\n   *   when adding or editing a link.\n   * - It's only desirable to shift focus into the Popover when explicitly\n   *   adding or editing a link, not when in the inline boundary of a link.\n   * - Focus behavior can only be controlled on a Popover at the time it\n   *   mounts, so a new instance of the component must be mounted to\n   *   programmatically enact the focusOnMount behavior.\n   *\n   * @type {string}\n   */\n  var mountingKey = Object(external_this_wp_element_[\"useMemo\"])(external_this_lodash_[\"uniqueId\"], [addingLink]);\n  /**\n   * Pending settings to be applied to the next link. When inserting a new\n   * link, toggle values cannot be applied immediately, because there is not\n   * yet a link for them to apply to. Thus, they are maintained in a state\n   * value until the time that the link can be inserted or edited.\n   *\n   * @type {[Object|undefined,Function]}\n   */\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      nextLinkValue = _useState2[0],\n      setNextLinkValue = _useState2[1];\n\n  var anchorRef = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var selection = window.getSelection();\n\n    if (!selection.rangeCount) {\n      return;\n    }\n\n    var range = selection.getRangeAt(0);\n\n    if (addingLink && !isActive) {\n      return range;\n    }\n\n    var element = range.startContainer; // If the caret is right before the element, select the next element.\n\n    element = element.nextElementSibling || element;\n\n    while (element.nodeType !== window.Node.ELEMENT_NODE) {\n      element = element.parentNode;\n    }\n\n    return element.closest('a');\n  }, [addingLink, value.start, value.end]);\n\n  var linkValue = inline_objectSpread({\n    url: activeAttributes.url,\n    type: activeAttributes.type,\n    id: activeAttributes.id,\n    opensInNewTab: activeAttributes.target === '_blank'\n  }, nextLinkValue);\n\n  function onChangeLink(nextValue) {\n    // Merge with values from state, both for the purpose of assigning the\n    // next state value, and for use in constructing the new link format if\n    // the link is ready to be applied.\n    nextValue = inline_objectSpread({}, nextLinkValue, {}, nextValue); // LinkControl calls `onChange` immediately upon the toggling a setting.\n\n    var didToggleSetting = linkValue.opensInNewTab !== nextValue.opensInNewTab && linkValue.url === nextValue.url; // If change handler was called as a result of a settings change during\n    // link insertion, it must be held in state until the link is ready to\n    // be applied.\n\n    var didToggleSettingForNewLink = didToggleSetting && nextValue.url === undefined; // If link will be assigned, the state value can be considered flushed.\n    // Otherwise, persist the pending changes.\n\n    setNextLinkValue(didToggleSettingForNewLink ? nextValue : undefined);\n\n    if (didToggleSettingForNewLink) {\n      return;\n    }\n\n    var newUrl = Object(external_this_wp_url_[\"prependHTTP\"])(nextValue.url);\n    var format = createLinkFormat({\n      url: newUrl,\n      type: nextValue.type,\n      id: nextValue.id !== undefined && nextValue.id !== null ? String(nextValue.id) : undefined,\n      opensInNewWindow: nextValue.opensInNewTab\n    });\n\n    if (Object(external_this_wp_richText_[\"isCollapsed\"])(value) && !isActive) {\n      var newText = nextValue.title || newUrl;\n      var toInsert = Object(external_this_wp_richText_[\"applyFormat\"])(Object(external_this_wp_richText_[\"create\"])({\n        text: newText\n      }), format, 0, newText.length);\n      onChange(Object(external_this_wp_richText_[\"insert\"])(value, toInsert));\n    } else {\n      var newValue = Object(external_this_wp_richText_[\"applyFormat\"])(value, format);\n      newValue.start = newValue.end;\n      newValue.activeFormats = [];\n      onChange(newValue);\n    } // Focus should only be shifted back to the formatted segment when the\n    // URL is submitted.\n\n\n    if (!didToggleSetting) {\n      stopAddingLink();\n    }\n\n    if (!isValidHref(newUrl)) {\n      speak(Object(external_this_wp_i18n_[\"__\"])('Warning: the link has been inserted but may have errors. Please test it.'), 'assertive');\n    } else if (isActive) {\n      speak(Object(external_this_wp_i18n_[\"__\"])('Link edited.'), 'assertive');\n    } else {\n      speak(Object(external_this_wp_i18n_[\"__\"])('Link inserted.'), 'assertive');\n    }\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    key: mountingKey,\n    anchorRef: anchorRef,\n    focusOnMount: addingLink ? 'firstElement' : false,\n    onClose: stopAddingLink,\n    position: \"bottom center\"\n  }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__experimentalLinkControl\"], {\n    value: linkValue,\n    onChange: onChangeLink,\n    forceIsEditingLink: addingLink\n  }));\n}\n\n/* harmony default export */ var inline = (Object(external_this_wp_components_[\"withSpokenMessages\"])(InlineLinkUI));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/link/index.js\n\n\n\n\n\n\n\n\nfunction link_createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (link_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction link_isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar link_name = 'core/link';\n\nvar link_title = Object(external_this_wp_i18n_[\"__\"])('Link');\n\nvar link_link = {\n  name: link_name,\n  title: link_title,\n  tagName: 'a',\n  className: null,\n  attributes: {\n    url: 'href',\n    type: 'data-type',\n    id: 'data-id',\n    target: 'target'\n  },\n  __unstablePasteRule: function __unstablePasteRule(value, _ref) {\n    var html = _ref.html,\n        plainText = _ref.plainText;\n\n    if (Object(external_this_wp_richText_[\"isCollapsed\"])(value)) {\n      return value;\n    }\n\n    var pastedText = (html || plainText).replace(/<[^>]+>/g, '').trim(); // A URL was pasted, turn the selection into a link\n\n    if (!Object(external_this_wp_url_[\"isURL\"])(pastedText)) {\n      return value;\n    } // Allows us to ask for this information when we get a report.\n\n\n    window.console.log('Created link:\\n\\n', pastedText);\n    return Object(external_this_wp_richText_[\"applyFormat\"])(value, {\n      type: link_name,\n      attributes: {\n        url: Object(external_this_wp_htmlEntities_[\"decodeEntities\"])(pastedText)\n      }\n    });\n  },\n  edit: Object(external_this_wp_components_[\"withSpokenMessages\"])( /*#__PURE__*/function (_Component) {\n    Object(inherits[\"a\" /* default */])(LinkEdit, _Component);\n\n    var _super = link_createSuper(LinkEdit);\n\n    function LinkEdit() {\n      var _this;\n\n      Object(classCallCheck[\"a\" /* default */])(this, LinkEdit);\n\n      _this = _super.apply(this, arguments);\n      _this.addLink = _this.addLink.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.stopAddingLink = _this.stopAddingLink.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.onRemoveFormat = _this.onRemoveFormat.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n      _this.state = {\n        addingLink: false\n      };\n      return _this;\n    }\n\n    Object(createClass[\"a\" /* default */])(LinkEdit, [{\n      key: \"addLink\",\n      value: function addLink() {\n        var _this$props = this.props,\n            value = _this$props.value,\n            onChange = _this$props.onChange;\n        var text = Object(external_this_wp_richText_[\"getTextContent\"])(Object(external_this_wp_richText_[\"slice\"])(value));\n\n        if (text && Object(external_this_wp_url_[\"isURL\"])(text)) {\n          onChange(Object(external_this_wp_richText_[\"applyFormat\"])(value, {\n            type: link_name,\n            attributes: {\n              url: text\n            }\n          }));\n        } else if (text && Object(external_this_wp_url_[\"isEmail\"])(text)) {\n          onChange(Object(external_this_wp_richText_[\"applyFormat\"])(value, {\n            type: link_name,\n            attributes: {\n              url: \"mailto:\".concat(text)\n            }\n          }));\n        } else {\n          this.setState({\n            addingLink: true\n          });\n        }\n      }\n    }, {\n      key: \"stopAddingLink\",\n      value: function stopAddingLink() {\n        this.setState({\n          addingLink: false\n        });\n        this.props.onFocus();\n      }\n    }, {\n      key: \"onRemoveFormat\",\n      value: function onRemoveFormat() {\n        var _this$props2 = this.props,\n            value = _this$props2.value,\n            onChange = _this$props2.onChange,\n            speak = _this$props2.speak;\n        onChange(Object(external_this_wp_richText_[\"removeFormat\"])(value, link_name));\n        speak(Object(external_this_wp_i18n_[\"__\"])('Link removed.'), 'assertive');\n      }\n    }, {\n      key: \"render\",\n      value: function render() {\n        var _this$props3 = this.props,\n            isActive = _this$props3.isActive,\n            activeAttributes = _this$props3.activeAttributes,\n            value = _this$props3.value,\n            onChange = _this$props3.onChange;\n        return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n          type: \"primary\",\n          character: \"k\",\n          onUse: this.addLink\n        }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n          type: \"primaryShift\",\n          character: \"k\",\n          onUse: this.onRemoveFormat\n        }), isActive && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n          name: \"link\",\n          icon: link_off[\"a\" /* default */],\n          title: Object(external_this_wp_i18n_[\"__\"])('Unlink'),\n          onClick: this.onRemoveFormat,\n          isActive: isActive,\n          shortcutType: \"primaryShift\",\n          shortcutCharacter: \"k\"\n        }), !isActive && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n          name: \"link\",\n          icon: library_link[\"a\" /* default */],\n          title: link_title,\n          onClick: this.addLink,\n          isActive: isActive,\n          shortcutType: \"primary\",\n          shortcutCharacter: \"k\"\n        }), (this.state.addingLink || isActive) && Object(external_this_wp_element_[\"createElement\"])(inline, {\n          addingLink: this.state.addingLink,\n          stopAddingLink: this.stopAddingLink,\n          isActive: isActive,\n          activeAttributes: activeAttributes,\n          value: value,\n          onChange: onChange\n        }));\n      }\n    }]);\n\n    return LinkEdit;\n  }(external_this_wp_element_[\"Component\"]))\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/format-strikethrough.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar formatStrikethrough = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M9.1 9v-.5c0-.6.2-1.1.7-1.4.5-.3 1.2-.5 2-.5.7 0 1.4.1 2.1.3.7.2 1.4.5 2.1.9l.2-1.9c-.6-.3-1.2-.5-1.9-.7-.8-.1-1.6-.2-2.4-.2-1.5 0-2.7.3-3.6 1-.8.7-1.2 1.5-1.2 2.6V9h2zM20 12H4v1h8.3c.3.1.6.2.8.3.5.2.9.5 1.1.8.3.3.4.7.4 1.2 0 .7-.2 1.1-.8 1.5-.5.3-1.2.5-2.1.5-.8 0-1.6-.1-2.4-.3-.8-.2-1.5-.5-2.2-.8L7 18.1c.5.2 1.2.4 2 .6.8.2 1.6.3 2.4.3 1.7 0 3-.3 3.9-1 .9-.7 1.3-1.6 1.3-2.8 0-.9-.2-1.7-.7-2.2H20v-1z\"\n}));\n/* harmony default export */ var format_strikethrough = (formatStrikethrough);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/strikethrough/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar strikethrough_name = 'core/strikethrough';\n\nvar strikethrough_title = Object(external_this_wp_i18n_[\"__\"])('Strikethrough');\n\nvar strikethrough = {\n  name: strikethrough_name,\n  title: strikethrough_title,\n  tagName: 's',\n  className: null,\n  edit: function edit(_ref) {\n    var isActive = _ref.isActive,\n        value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus;\n\n    function onClick() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: strikethrough_name\n      }));\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      icon: format_strikethrough,\n      title: strikethrough_title,\n      onClick: onClick,\n      isActive: isActive\n    });\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/underline/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar underline_name = 'core/underline';\nvar underline = {\n  name: underline_name,\n  title: Object(external_this_wp_i18n_[\"__\"])('Underline'),\n  tagName: 'span',\n  className: null,\n  attributes: {\n    style: 'style'\n  },\n  edit: function edit(_ref) {\n    var value = _ref.value,\n        onChange = _ref.onChange;\n\n    var onToggle = function onToggle() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: underline_name,\n        attributes: {\n          style: 'text-decoration: underline;'\n        }\n      }));\n    };\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextShortcut\"], {\n      type: \"primary\",\n      character: \"u\",\n      onUse: onToggle\n    }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"__unstableRichTextInputEvent\"], {\n      inputType: \"formatUnderline\",\n      onInput: onToggle\n    }));\n  }\n};\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js\nvar icon = __webpack_require__(131);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/text-color.js\nvar text_color = __webpack_require__(406);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"dom\"]}\nvar external_this_wp_dom_ = __webpack_require__(31);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/text-color/inline.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction getActiveColor(formatName, formatValue, colors) {\n  var activeColorFormat = Object(external_this_wp_richText_[\"getActiveFormat\"])(formatValue, formatName);\n\n  if (!activeColorFormat) {\n    return;\n  }\n\n  var styleColor = activeColorFormat.attributes.style;\n\n  if (styleColor) {\n    return styleColor.replace(new RegExp(\"^color:\\\\s*\"), '');\n  }\n\n  var currentClass = activeColorFormat.attributes.class;\n\n  if (currentClass) {\n    var colorSlug = currentClass.replace(/.*has-(.*?)-color.*/, '$1');\n    return Object(external_this_wp_blockEditor_[\"getColorObjectByAttributeValues\"])(colors, colorSlug).color;\n  }\n}\n\nvar inline_ColorPopoverAtLink = function ColorPopoverAtLink(_ref) {\n  var addingColor = _ref.addingColor,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"addingColor\"]);\n\n  // There is no way to open a text formatter popover when another one is mounted.\n  // The first popover will always be dismounted when a click outside happens, so we can store the\n  // anchor Rect during the lifetime of the component.\n  var anchorRect = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var selection = window.getSelection();\n    var range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;\n\n    if (!range) {\n      return;\n    }\n\n    if (addingColor) {\n      return Object(external_this_wp_dom_[\"getRectangleFromRange\"])(range);\n    }\n\n    var element = range.startContainer; // If the caret is right before the element, select the next element.\n\n    element = element.nextElementSibling || element;\n\n    while (element.nodeType !== window.Node.ELEMENT_NODE) {\n      element = element.parentNode;\n    }\n\n    var closest = element.closest('span');\n\n    if (closest) {\n      return closest.getBoundingClientRect();\n    }\n  }, []);\n\n  if (!anchorRect) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"URLPopover\"], Object(esm_extends[\"a\" /* default */])({\n    anchorRect: anchorRect\n  }, props));\n};\n\nvar inline_ColorPicker = function ColorPicker(_ref2) {\n  var name = _ref2.name,\n      value = _ref2.value,\n      onChange = _ref2.onChange;\n  var colors = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var _select = select('core/block-editor'),\n        getSettings = _select.getSettings;\n\n    return Object(external_this_lodash_[\"get\"])(getSettings(), ['colors'], []);\n  });\n  var onColorChange = Object(external_this_wp_element_[\"useCallback\"])(function (color) {\n    if (color) {\n      var colorObject = Object(external_this_wp_blockEditor_[\"getColorObjectByColorValue\"])(colors, color);\n      onChange(Object(external_this_wp_richText_[\"applyFormat\"])(value, {\n        type: name,\n        attributes: colorObject ? {\n          class: Object(external_this_wp_blockEditor_[\"getColorClassName\"])('color', colorObject.slug)\n        } : {\n          style: \"color:\".concat(color)\n        }\n      }));\n    } else {\n      onChange(Object(external_this_wp_richText_[\"removeFormat\"])(value, name));\n    }\n  }, [colors, onChange]);\n  var activeColor = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    return getActiveColor(name, value, colors);\n  }, [name, value, colors]);\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"ColorPalette\"], {\n    value: activeColor,\n    onChange: onColorChange\n  });\n};\n\nvar inline_InlineColorUI = function InlineColorUI(_ref3) {\n  var name = _ref3.name,\n      value = _ref3.value,\n      onChange = _ref3.onChange,\n      onClose = _ref3.onClose,\n      isActive = _ref3.isActive,\n      addingColor = _ref3.addingColor;\n  return Object(external_this_wp_element_[\"createElement\"])(inline_ColorPopoverAtLink, {\n    value: value,\n    isActive: isActive,\n    addingColor: addingColor,\n    onClose: onClose,\n    className: \"components-inline-color-popover\"\n  }, Object(external_this_wp_element_[\"createElement\"])(inline_ColorPicker, {\n    name: name,\n    value: value,\n    onChange: onChange\n  }));\n};\n\n/* harmony default export */ var text_color_inline = (Object(external_this_wp_components_[\"withSpokenMessages\"])(inline_InlineColorUI));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/text-color/index.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\nvar text_color_name = 'core/text-color';\n\nvar text_color_title = Object(external_this_wp_i18n_[\"__\"])('Text Color');\n\nvar EMPTY_ARRAY = [];\n\nfunction TextColorEdit(_ref) {\n  var value = _ref.value,\n      onChange = _ref.onChange,\n      isActive = _ref.isActive,\n      activeAttributes = _ref.activeAttributes;\n\n  var _useSelect = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    var blockEditorSelect = select('core/block-editor');\n    var settings;\n\n    if (blockEditorSelect && blockEditorSelect.getSettings) {\n      settings = blockEditorSelect.getSettings();\n    } else {\n      settings = {};\n    }\n\n    return {\n      colors: Object(external_this_lodash_[\"get\"])(settings, ['colors'], EMPTY_ARRAY),\n      disableCustomColors: settings.disableCustomColors\n    };\n  }),\n      colors = _useSelect.colors,\n      disableCustomColors = _useSelect.disableCustomColors;\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(false),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      isAddingColor = _useState2[0],\n      setIsAddingColor = _useState2[1];\n\n  var enableIsAddingColor = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return setIsAddingColor(true);\n  }, [setIsAddingColor]);\n  var disableIsAddingColor = Object(external_this_wp_element_[\"useCallback\"])(function () {\n    return setIsAddingColor(false);\n  }, [setIsAddingColor]);\n  var colorIndicatorStyle = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var activeColor = getActiveColor(text_color_name, value, colors);\n\n    if (!activeColor) {\n      return undefined;\n    }\n\n    return {\n      backgroundColor: activeColor\n    };\n  }, [value, colors]);\n  var hasColorsToChoose = !Object(external_this_lodash_[\"isEmpty\"])(colors) || disableCustomColors !== true;\n\n  if (!hasColorsToChoose && !isActive) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n    key: isActive ? 'text-color' : 'text-color-not-active',\n    className: \"format-library-text-color-button\",\n    name: isActive ? 'text-color' : undefined,\n    icon: Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, Object(external_this_wp_element_[\"createElement\"])(icon[\"a\" /* default */], {\n      icon: text_color[\"a\" /* default */]\n    }), isActive && Object(external_this_wp_element_[\"createElement\"])(\"span\", {\n      className: \"format-library-text-color-button__indicator\",\n      style: colorIndicatorStyle\n    })),\n    title: text_color_title // If has no colors to choose but a color is active remove the color onClick\n    ,\n    onClick: hasColorsToChoose ? enableIsAddingColor : function () {\n      return onChange(Object(external_this_wp_richText_[\"removeFormat\"])(value, text_color_name));\n    }\n  }), isAddingColor && Object(external_this_wp_element_[\"createElement\"])(text_color_inline, {\n    name: text_color_name,\n    addingColor: isAddingColor,\n    onClose: disableIsAddingColor,\n    isActive: isActive,\n    activeAttributes: activeAttributes,\n    value: value,\n    onChange: onChange\n  }));\n}\n\nvar textColor = {\n  name: text_color_name,\n  title: text_color_title,\n  tagName: 'span',\n  className: 'has-inline-color',\n  attributes: {\n    style: 'style',\n    class: 'class'\n  },\n  edit: TextColorEdit\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/subscript.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar subscript = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M16.9 18.3l.8-1.2c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.1-.3-.4-.5-.6-.7-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.2 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3L15 19.4h4.3v-1.2h-2.4zM14.1 7.2h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z\"\n}));\n/* harmony default export */ var library_subscript = (subscript);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/subscript/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar subscript_name = 'core/subscript';\n\nvar subscript_title = Object(external_this_wp_i18n_[\"__\"])('Subscript');\n\nvar subscript_subscript = {\n  name: subscript_name,\n  title: subscript_title,\n  tagName: 'sub',\n  className: null,\n  edit: function edit(_ref) {\n    var isActive = _ref.isActive,\n        value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus;\n\n    function onToggle() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: subscript_name\n      }));\n    }\n\n    function onClick() {\n      onToggle();\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      icon: library_subscript,\n      title: subscript_title,\n      onClick: onClick,\n      isActive: isActive\n    });\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/superscript.js\n\n\n/**\n * WordPress dependencies\n */\n\nvar superscript = Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_primitives_[\"Path\"], {\n  d: \"M16.9 10.3l.8-1.3c.4-.6.7-1.2.9-1.6.2-.4.3-.8.3-1.2 0-.3-.1-.7-.2-1-.2-.2-.4-.4-.7-.6-.3-.2-.6-.3-1-.3s-.8.1-1.1.2c-.3.1-.7.3-1 .6l.1 1.3c.3-.3.5-.5.8-.6s.6-.2.9-.2c.3 0 .5.1.7.2.2.2.2.4.2.7 0 .3-.1.5-.2.8-.1.3-.4.7-.8 1.3l-1.8 2.8h4.3v-1.2h-2.2zm-2.8-3.1h-2L9.5 11 6.9 7.2h-2l3.6 5.3L4.7 18h2l2.7-4 2.7 4h2l-3.8-5.5 3.8-5.3z\"\n}));\n/* harmony default export */ var library_superscript = (superscript);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/superscript/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nvar superscript_name = 'core/superscript';\n\nvar superscript_title = Object(external_this_wp_i18n_[\"__\"])('Superscript');\n\nvar superscript_superscript = {\n  name: superscript_name,\n  title: superscript_title,\n  tagName: 'sup',\n  className: null,\n  edit: function edit(_ref) {\n    var isActive = _ref.isActive,\n        value = _ref.value,\n        onChange = _ref.onChange,\n        onFocus = _ref.onFocus;\n\n    function onToggle() {\n      onChange(Object(external_this_wp_richText_[\"toggleFormat\"])(value, {\n        type: superscript_name\n      }));\n    }\n\n    function onClick() {\n      onToggle();\n      onFocus();\n    }\n\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_blockEditor_[\"RichTextToolbarButton\"], {\n      icon: library_superscript,\n      title: superscript_title,\n      onClick: onClick,\n      isActive: isActive\n    });\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/default-formats.js\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var default_formats = ([bold, code_code, image_image, italic, link_link, strikethrough, underline, textColor, subscript_subscript, superscript_superscript]);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/format-library/build-module/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\ndefault_formats.forEach(function (_ref) {\n  var name = _ref.name,\n      settings = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"name\"]);\n\n  return Object(external_this_wp_richText_[\"registerFormatType\"])(name, settings);\n});\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 62:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"htmlEntities\"]; }());\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blockEditor\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-hooks.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"hooks\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 445);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 445:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"createHooks\", function() { return /* reexport */ build_module_createHooks; });\n__webpack_require__.d(__webpack_exports__, \"addAction\", function() { return /* binding */ addAction; });\n__webpack_require__.d(__webpack_exports__, \"addFilter\", function() { return /* binding */ addFilter; });\n__webpack_require__.d(__webpack_exports__, \"removeAction\", function() { return /* binding */ removeAction; });\n__webpack_require__.d(__webpack_exports__, \"removeFilter\", function() { return /* binding */ removeFilter; });\n__webpack_require__.d(__webpack_exports__, \"hasAction\", function() { return /* binding */ hasAction; });\n__webpack_require__.d(__webpack_exports__, \"hasFilter\", function() { return /* binding */ hasFilter; });\n__webpack_require__.d(__webpack_exports__, \"removeAllActions\", function() { return /* binding */ removeAllActions; });\n__webpack_require__.d(__webpack_exports__, \"removeAllFilters\", function() { return /* binding */ removeAllFilters; });\n__webpack_require__.d(__webpack_exports__, \"doAction\", function() { return /* binding */ doAction; });\n__webpack_require__.d(__webpack_exports__, \"applyFilters\", function() { return /* binding */ applyFilters; });\n__webpack_require__.d(__webpack_exports__, \"currentAction\", function() { return /* binding */ currentAction; });\n__webpack_require__.d(__webpack_exports__, \"currentFilter\", function() { return /* binding */ currentFilter; });\n__webpack_require__.d(__webpack_exports__, \"doingAction\", function() { return /* binding */ doingAction; });\n__webpack_require__.d(__webpack_exports__, \"doingFilter\", function() { return /* binding */ doingFilter; });\n__webpack_require__.d(__webpack_exports__, \"didAction\", function() { return /* binding */ didAction; });\n__webpack_require__.d(__webpack_exports__, \"didFilter\", function() { return /* binding */ didFilter; });\n__webpack_require__.d(__webpack_exports__, \"actions\", function() { return /* binding */ build_module_actions; });\n__webpack_require__.d(__webpack_exports__, \"filters\", function() { return /* binding */ build_module_filters; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/validateNamespace.js\n/**\n * Validate a namespace string.\n *\n * @param  {string} namespace The namespace to validate - should take the form\n *                            `vendor/plugin/function`.\n *\n * @return {boolean}             Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n  if ('string' !== typeof namespace || '' === namespace) {\n    // eslint-disable-next-line no-console\n    console.error('The namespace must be a non-empty string.');\n    return false;\n  }\n\n  if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n    // eslint-disable-next-line no-console\n    console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n    return false;\n  }\n\n  return true;\n}\n\n/* harmony default export */ var build_module_validateNamespace = (validateNamespace);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/validateHookName.js\n/**\n * Validate a hookName string.\n *\n * @param  {string} hookName The hook name to validate. Should be a non empty string containing\n *                           only numbers, letters, dashes, periods and underscores. Also,\n *                           the hook name cannot begin with `__`.\n *\n * @return {boolean}            Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n  if ('string' !== typeof hookName || '' === hookName) {\n    // eslint-disable-next-line no-console\n    console.error('The hook name must be a non-empty string.');\n    return false;\n  }\n\n  if (/^__/.test(hookName)) {\n    // eslint-disable-next-line no-console\n    console.error('The hook name cannot begin with `__`.');\n    return false;\n  }\n\n  if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n    // eslint-disable-next-line no-console\n    console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n    return false;\n  }\n\n  return true;\n}\n\n/* harmony default export */ var build_module_validateHookName = (validateHookName);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createAddHook.js\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param  {Object}   hooks Stored hooks, keyed by hook name.\n *\n * @return {Function}       Function that adds a new hook.\n */\n\nfunction createAddHook(hooks) {\n  /**\n   * Adds the hook to the appropriate hooks container.\n   *\n   * @param {string}   hookName  Name of hook to add\n   * @param {string}   namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n   * @param {Function} callback  Function to call when the hook is run\n   * @param {?number}  priority  Priority of this hook (default=10)\n   */\n  return function addHook(hookName, namespace, callback) {\n    var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n\n    if (!build_module_validateHookName(hookName)) {\n      return;\n    }\n\n    if (!build_module_validateNamespace(namespace)) {\n      return;\n    }\n\n    if ('function' !== typeof callback) {\n      // eslint-disable-next-line no-console\n      console.error('The hook callback must be a function.');\n      return;\n    } // Validate numeric priority\n\n\n    if ('number' !== typeof priority) {\n      // eslint-disable-next-line no-console\n      console.error('If specified, the hook priority must be a number.');\n      return;\n    }\n\n    var handler = {\n      callback: callback,\n      priority: priority,\n      namespace: namespace\n    };\n\n    if (hooks[hookName]) {\n      // Find the correct insert index of the new hook.\n      var handlers = hooks[hookName].handlers;\n      var i;\n\n      for (i = handlers.length; i > 0; i--) {\n        if (priority >= handlers[i - 1].priority) {\n          break;\n        }\n      }\n\n      if (i === handlers.length) {\n        // If append, operate via direct assignment.\n        handlers[i] = handler;\n      } else {\n        // Otherwise, insert before index via splice.\n        handlers.splice(i, 0, handler);\n      } // We may also be currently executing this hook.  If the callback\n      // we're adding would come after the current callback, there's no\n      // problem; otherwise we need to increase the execution index of\n      // any other runs by 1 to account for the added element.\n\n\n      (hooks.__current || []).forEach(function (hookInfo) {\n        if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n          hookInfo.currentIndex++;\n        }\n      });\n    } else {\n      // This is the first hook of its type.\n      hooks[hookName] = {\n        handlers: [handler],\n        runs: 0\n      };\n    }\n\n    if (hookName !== 'hookAdded') {\n      doAction('hookAdded', hookName, namespace, callback, priority);\n    }\n  };\n}\n\n/* harmony default export */ var build_module_createAddHook = (createAddHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param  {Object}   hooks      Stored hooks, keyed by hook name.\n * @param  {boolean}     removeAll  Whether to remove all callbacks for a hookName, without regard to namespace. Used to create `removeAll*` functions.\n *\n * @return {Function}            Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, removeAll) {\n  /**\n   * Removes the specified callback (or all callbacks) from the hook with a\n   * given hookName and namespace.\n   *\n   * @param {string}    hookName  The name of the hook to modify.\n   * @param {string}    namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n   *\n   * @return {number}             The number of callbacks removed.\n   */\n  return function removeHook(hookName, namespace) {\n    if (!build_module_validateHookName(hookName)) {\n      return;\n    }\n\n    if (!removeAll && !build_module_validateNamespace(namespace)) {\n      return;\n    } // Bail if no hooks exist by this name\n\n\n    if (!hooks[hookName]) {\n      return 0;\n    }\n\n    var handlersRemoved = 0;\n\n    if (removeAll) {\n      handlersRemoved = hooks[hookName].handlers.length;\n      hooks[hookName] = {\n        runs: hooks[hookName].runs,\n        handlers: []\n      };\n    } else {\n      // Try to find the specified callback to remove.\n      var handlers = hooks[hookName].handlers;\n\n      var _loop = function _loop(i) {\n        if (handlers[i].namespace === namespace) {\n          handlers.splice(i, 1);\n          handlersRemoved++; // This callback may also be part of a hook that is\n          // currently executing.  If the callback we're removing\n          // comes after the current callback, there's no problem;\n          // otherwise we need to decrease the execution index of any\n          // other runs by 1 to account for the removed element.\n\n          (hooks.__current || []).forEach(function (hookInfo) {\n            if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n              hookInfo.currentIndex--;\n            }\n          });\n        }\n      };\n\n      for (var i = handlers.length - 1; i >= 0; i--) {\n        _loop(i);\n      }\n    }\n\n    if (hookName !== 'hookRemoved') {\n      doAction('hookRemoved', hookName, namespace);\n    }\n\n    return handlersRemoved;\n  };\n}\n\n/* harmony default export */ var build_module_createRemoveHook = (createRemoveHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHasHook.js\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param  {Object}   hooks Stored hooks, keyed by hook name.\n *\n * @return {Function}       Function that returns whether any handlers are\n *                          attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks) {\n  /**\n   * Returns whether any handlers are attached for the given hookName and optional namespace.\n   *\n   * @param {string}  hookName  The name of the hook to check for.\n   * @param {?string} namespace Optional. The unique namespace identifying the callback\n   *                                      in the form `vendor/plugin/function`.\n   *\n   * @return {boolean} Whether there are handlers that are attached to the given hook.\n   */\n  return function hasHook(hookName, namespace) {\n    // Use the namespace if provided.\n    if ('undefined' !== typeof namespace) {\n      return hookName in hooks && hooks[hookName].handlers.some(function (hook) {\n        return hook.namespace === namespace;\n      });\n    }\n\n    return hookName in hooks;\n  };\n}\n\n/* harmony default export */ var build_module_createHasHook = (createHasHook);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createRunHook.js\n\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param  {Object}   hooks          Stored hooks, keyed by hook name.\n * @param  {?boolean}    returnFirstArg Whether each hook callback is expected to\n *                                   return its first argument.\n *\n * @return {Function}                Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, returnFirstArg) {\n  /**\n   * Runs all callbacks for the specified hook.\n   *\n   * @param  {string} hookName The name of the hook to run.\n   * @param  {...*}   args     Arguments to pass to the hook callbacks.\n   *\n   * @return {*}               Return value of runner, if applicable.\n   */\n  return function runHooks(hookName) {\n    if (!hooks[hookName]) {\n      hooks[hookName] = {\n        handlers: [],\n        runs: 0\n      };\n    }\n\n    hooks[hookName].runs++;\n    var handlers = hooks[hookName].handlers; // The following code is stripped from production builds.\n\n    if (false) {}\n\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    if (!handlers || !handlers.length) {\n      return returnFirstArg ? args[0] : undefined;\n    }\n\n    var hookInfo = {\n      name: hookName,\n      currentIndex: 0\n    };\n\n    hooks.__current.push(hookInfo);\n\n    while (hookInfo.currentIndex < handlers.length) {\n      var handler = handlers[hookInfo.currentIndex];\n      var result = handler.callback.apply(null, args);\n\n      if (returnFirstArg) {\n        args[0] = result;\n      }\n\n      hookInfo.currentIndex++;\n    }\n\n    hooks.__current.pop();\n\n    if (returnFirstArg) {\n      return args[0];\n    }\n  };\n}\n\n/* harmony default export */ var build_module_createRunHook = (createRunHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js\n/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param  {Object}   hooks          Stored hooks, keyed by hook name.\n *\n * @return {Function}                Function that returns the current hook.\n */\nfunction createCurrentHook(hooks) {\n  /**\n   * Returns the name of the currently running hook, or `null` if no hook of\n   * the given type is currently running.\n   *\n   * @return {?string}             The name of the currently running hook, or\n   *                               `null` if no hook is currently running.\n   */\n  return function currentHook() {\n    if (!hooks.__current || !hooks.__current.length) {\n      return null;\n    }\n\n    return hooks.__current[hooks.__current.length - 1].name;\n  };\n}\n\n/* harmony default export */ var build_module_createCurrentHook = (createCurrentHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDoingHook.js\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param  {Object}   hooks Stored hooks, keyed by hook name.\n *\n * @return {Function}       Function that returns whether a hook is currently\n *                          being executed.\n */\nfunction createDoingHook(hooks) {\n  /**\n   * Returns whether a hook is currently being executed.\n   *\n   * @param  {?string} hookName The name of the hook to check for.  If\n   *                            omitted, will check for any hook being executed.\n   *\n   * @return {boolean}             Whether the hook is being executed.\n   */\n  return function doingHook(hookName) {\n    // If the hookName was not passed, check for any current hook.\n    if ('undefined' === typeof hookName) {\n      return 'undefined' !== typeof hooks.__current[0];\n    } // Return the __current hook.\n\n\n    return hooks.__current[0] ? hookName === hooks.__current[0].name : false;\n  };\n}\n\n/* harmony default export */ var build_module_createDoingHook = (createDoingHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createDidHook.js\n/**\n * Internal dependencies\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param  {Object}   hooks Stored hooks, keyed by hook name.\n *\n * @return {Function}       Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks) {\n  /**\n   * Returns the number of times an action has been fired.\n   *\n   * @param  {string} hookName The hook name to check.\n   *\n   * @return {number}          The number of times the hook has run.\n   */\n  return function didHook(hookName) {\n    if (!build_module_validateHookName(hookName)) {\n      return;\n    }\n\n    return hooks[hookName] && hooks[hookName].runs ? hooks[hookName].runs : 0;\n  };\n}\n\n/* harmony default export */ var build_module_createDidHook = (createDidHook);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/createHooks.js\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Object} Object that contains all hooks.\n */\n\nfunction createHooks() {\n  var actions = Object.create(null);\n  var filters = Object.create(null);\n  actions.__current = [];\n  filters.__current = [];\n  return {\n    addAction: build_module_createAddHook(actions),\n    addFilter: build_module_createAddHook(filters),\n    removeAction: build_module_createRemoveHook(actions),\n    removeFilter: build_module_createRemoveHook(filters),\n    hasAction: build_module_createHasHook(actions),\n    hasFilter: build_module_createHasHook(filters),\n    removeAllActions: build_module_createRemoveHook(actions, true),\n    removeAllFilters: build_module_createRemoveHook(filters, true),\n    doAction: build_module_createRunHook(actions),\n    applyFilters: build_module_createRunHook(filters, true),\n    currentAction: build_module_createCurrentHook(actions),\n    currentFilter: build_module_createCurrentHook(filters),\n    doingAction: build_module_createDoingHook(actions),\n    doingFilter: build_module_createDoingHook(filters),\n    didAction: build_module_createDidHook(actions),\n    didFilter: build_module_createDidHook(filters),\n    actions: actions,\n    filters: filters\n  };\n}\n\n/* harmony default export */ var build_module_createHooks = (createHooks);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/hooks/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\nvar _createHooks = build_module_createHooks(),\n    addAction = _createHooks.addAction,\n    addFilter = _createHooks.addFilter,\n    removeAction = _createHooks.removeAction,\n    removeFilter = _createHooks.removeFilter,\n    hasAction = _createHooks.hasAction,\n    hasFilter = _createHooks.hasFilter,\n    removeAllActions = _createHooks.removeAllActions,\n    removeAllFilters = _createHooks.removeAllFilters,\n    doAction = _createHooks.doAction,\n    applyFilters = _createHooks.applyFilters,\n    currentAction = _createHooks.currentAction,\n    currentFilter = _createHooks.currentFilter,\n    doingAction = _createHooks.doingAction,\n    doingFilter = _createHooks.doingFilter,\n    didAction = _createHooks.didAction,\n    didFilter = _createHooks.didFilter,\n    build_module_actions = _createHooks.actions,\n    build_module_filters = _createHooks.filters;\n\n\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-html-entities.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"htmlEntities\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 418);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 418:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"decodeEntities\", function() { return decodeEntities; });\n/** @type {HTMLTextAreaElement} */\nvar _decodeTextArea;\n/**\n * Decodes the HTML entities from a given string.\n *\n * @param {string} html String that contain HTML entities.\n *\n * @example\n * ```js\n * const result = decodeEntities( '&aacute;' );\n * console.log( result ); // result will be \"á\"\n * ```\n *\n * @return {string} The decoded string.\n */\n\n\nfunction decodeEntities(html) {\n  // not a string, or no entities to decode\n  if ('string' !== typeof html || -1 === html.indexOf('&')) {\n    return html;\n  } // create a textarea for decoding entities, that we can reuse\n\n\n  if (undefined === _decodeTextArea) {\n    if (document.implementation && document.implementation.createHTMLDocument) {\n      _decodeTextArea = document.implementation.createHTMLDocument('').createElement('textarea');\n    } else {\n      _decodeTextArea = document.createElement('textarea');\n    }\n  }\n\n  _decodeTextArea.innerHTML = html;\n  var decoded = _decodeTextArea.textContent;\n  _decodeTextArea.innerHTML = '';\n  /**\n   * Cast to string, HTMLTextAreaElement should always have `string` textContent.\n   *\n   * > The `textContent` property of the `Node` interface represents the text content of the\n   * > node and its descendants.\n   * >\n   * > Value: A string or `null`\n   * >\n   * > * If the node is a `document` or a Doctype, `textContent` returns `null`.\n   * > * If the node is a CDATA section, comment, processing instruction, or text node,\n   * >   textContent returns the text inside the node, i.e., the `Node.nodeValue`.\n   * > * For other node types, `textContent returns the concatenation of the textContent of\n   * >   every child node, excluding comments and processing instructions. (This is an empty\n   * >   string if the node has no children.)\n   *\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent\n   */\n\n  return (\n    /** @type {string} */\n    decoded\n  );\n}\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-i18n.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"i18n\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 448);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 191:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */\n\n!function() {\n    'use strict'\n\n    var re = {\n        not_string: /[^s]/,\n        not_bool: /[^t]/,\n        not_type: /[^T]/,\n        not_primitive: /[^v]/,\n        number: /[diefg]/,\n        numeric_arg: /[bcdiefguxX]/,\n        json: /[j]/,\n        not_json: /[^j]/,\n        text: /^[^\\x25]+/,\n        modulo: /^\\x25{2}/,\n        placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n        key: /^([a-z_][a-z_\\d]*)/i,\n        key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n        index_access: /^\\[(\\d+)\\]/,\n        sign: /^[+-]/\n    }\n\n    function sprintf(key) {\n        // `arguments` is not an array, but should be fine for this call\n        return sprintf_format(sprintf_parse(key), arguments)\n    }\n\n    function vsprintf(fmt, argv) {\n        return sprintf.apply(null, [fmt].concat(argv || []))\n    }\n\n    function sprintf_format(parse_tree, argv) {\n        var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n        for (i = 0; i < tree_length; i++) {\n            if (typeof parse_tree[i] === 'string') {\n                output += parse_tree[i]\n            }\n            else if (typeof parse_tree[i] === 'object') {\n                ph = parse_tree[i] // convenience purposes only\n                if (ph.keys) { // keyword argument\n                    arg = argv[cursor]\n                    for (k = 0; k < ph.keys.length; k++) {\n                        if (arg == undefined) {\n                            throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n                        }\n                        arg = arg[ph.keys[k]]\n                    }\n                }\n                else if (ph.param_no) { // positional argument (explicit)\n                    arg = argv[ph.param_no]\n                }\n                else { // positional argument (implicit)\n                    arg = argv[cursor++]\n                }\n\n                if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n                    arg = arg()\n                }\n\n                if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n                    throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n                }\n\n                if (re.number.test(ph.type)) {\n                    is_positive = arg >= 0\n                }\n\n                switch (ph.type) {\n                    case 'b':\n                        arg = parseInt(arg, 10).toString(2)\n                        break\n                    case 'c':\n                        arg = String.fromCharCode(parseInt(arg, 10))\n                        break\n                    case 'd':\n                    case 'i':\n                        arg = parseInt(arg, 10)\n                        break\n                    case 'j':\n                        arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n                        break\n                    case 'e':\n                        arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n                        break\n                    case 'f':\n                        arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n                        break\n                    case 'g':\n                        arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n                        break\n                    case 'o':\n                        arg = (parseInt(arg, 10) >>> 0).toString(8)\n                        break\n                    case 's':\n                        arg = String(arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 't':\n                        arg = String(!!arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'T':\n                        arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'u':\n                        arg = parseInt(arg, 10) >>> 0\n                        break\n                    case 'v':\n                        arg = arg.valueOf()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'x':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16)\n                        break\n                    case 'X':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n                        break\n                }\n                if (re.json.test(ph.type)) {\n                    output += arg\n                }\n                else {\n                    if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n                        sign = is_positive ? '+' : '-'\n                        arg = arg.toString().replace(re.sign, '')\n                    }\n                    else {\n                        sign = ''\n                    }\n                    pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n                    pad_length = ph.width - (sign + arg).length\n                    pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n                    output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n                }\n            }\n        }\n        return output\n    }\n\n    var sprintf_cache = Object.create(null)\n\n    function sprintf_parse(fmt) {\n        if (sprintf_cache[fmt]) {\n            return sprintf_cache[fmt]\n        }\n\n        var _fmt = fmt, match, parse_tree = [], arg_names = 0\n        while (_fmt) {\n            if ((match = re.text.exec(_fmt)) !== null) {\n                parse_tree.push(match[0])\n            }\n            else if ((match = re.modulo.exec(_fmt)) !== null) {\n                parse_tree.push('%')\n            }\n            else if ((match = re.placeholder.exec(_fmt)) !== null) {\n                if (match[2]) {\n                    arg_names |= 1\n                    var field_list = [], replacement_field = match[2], field_match = []\n                    if ((field_match = re.key.exec(replacement_field)) !== null) {\n                        field_list.push(field_match[1])\n                        while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n                            if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else {\n                                throw new SyntaxError('[sprintf] failed to parse named argument key')\n                            }\n                        }\n                    }\n                    else {\n                        throw new SyntaxError('[sprintf] failed to parse named argument key')\n                    }\n                    match[2] = field_list\n                }\n                else {\n                    arg_names |= 2\n                }\n                if (arg_names === 3) {\n                    throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n                }\n\n                parse_tree.push(\n                    {\n                        placeholder: match[0],\n                        param_no:    match[1],\n                        keys:        match[2],\n                        sign:        match[3],\n                        pad_char:    match[4],\n                        align:       match[5],\n                        width:       match[6],\n                        precision:   match[7],\n                        type:        match[8]\n                    }\n                )\n            }\n            else {\n                throw new SyntaxError('[sprintf] unexpected placeholder')\n            }\n            _fmt = _fmt.substring(match[0].length)\n        }\n        return sprintf_cache[fmt] = parse_tree\n    }\n\n    /**\n     * export to either browser or node.js\n     */\n    /* eslint-disable quote-props */\n    if (true) {\n        exports['sprintf'] = sprintf\n        exports['vsprintf'] = vsprintf\n    }\n    if (typeof window !== 'undefined') {\n        window['sprintf'] = sprintf\n        window['vsprintf'] = vsprintf\n\n        if (true) {\n            !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n                return {\n                    'sprintf': sprintf,\n                    'vsprintf': vsprintf\n                }\n            }).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n        }\n    }\n    /* eslint-enable quote-props */\n}(); // eslint-disable-line\n\n\n/***/ }),\n\n/***/ 448:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"sprintf\", function() { return /* reexport */ sprintf_sprintf; });\n__webpack_require__.d(__webpack_exports__, \"createI18n\", function() { return /* reexport */ create_i18n_createI18n; });\n__webpack_require__.d(__webpack_exports__, \"setLocaleData\", function() { return /* reexport */ default_i18n_setLocaleData; });\n__webpack_require__.d(__webpack_exports__, \"__\", function() { return /* reexport */ default_i18n_; });\n__webpack_require__.d(__webpack_exports__, \"_x\", function() { return /* reexport */ default_i18n_x; });\n__webpack_require__.d(__webpack_exports__, \"_n\", function() { return /* reexport */ default_i18n_n; });\n__webpack_require__.d(__webpack_exports__, \"_nx\", function() { return /* reexport */ default_i18n_nx; });\n__webpack_require__.d(__webpack_exports__, \"isRTL\", function() { return /* reexport */ default_i18n_isRTL; });\n\n// EXTERNAL MODULE: ./node_modules/memize/index.js\nvar memize = __webpack_require__(50);\nvar memize_default = /*#__PURE__*/__webpack_require__.n(memize);\n\n// EXTERNAL MODULE: ./node_modules/sprintf-js/src/sprintf.js\nvar sprintf = __webpack_require__(191);\nvar sprintf_default = /*#__PURE__*/__webpack_require__.n(sprintf);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/i18n/build-module/sprintf.js\n/**\n * External dependencies\n */\n\n\n/**\n * Log to console, once per message; or more precisely, per referentially equal\n * argument set. Because Jed throws errors, we log these to the console instead\n * to avoid crashing the application.\n *\n * @param {...*} args Arguments to pass to `console.error`\n */\n\nvar logErrorOnce = memize_default()(console.error); // eslint-disable-line no-console\n\n/**\n * Returns a formatted string. If an error occurs in applying the format, the\n * original format string is returned.\n *\n * @param {string}    format The format of the string to generate.\n * @param {...*} args Arguments to apply to the format.\n *\n * @see http://www.diveintojavascript.com/projects/javascript-sprintf\n *\n * @return {string} The formatted string.\n */\n\nfunction sprintf_sprintf(format) {\n  try {\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    return sprintf_default.a.sprintf.apply(sprintf_default.a, [format].concat(args));\n  } catch (error) {\n    logErrorOnce('sprintf error: \\n\\n' + error.toString());\n    return format;\n  }\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/@tannin/postfix/index.js\nvar PRECEDENCE, OPENERS, TERMINATORS, PATTERN;\n\n/**\n * Operator precedence mapping.\n *\n * @type {Object}\n */\nPRECEDENCE = {\n\t'(': 9,\n\t'!': 8,\n\t'*': 7,\n\t'/': 7,\n\t'%': 7,\n\t'+': 6,\n\t'-': 6,\n\t'<': 5,\n\t'<=': 5,\n\t'>': 5,\n\t'>=': 5,\n\t'==': 4,\n\t'!=': 4,\n\t'&&': 3,\n\t'||': 2,\n\t'?': 1,\n\t'?:': 1,\n};\n\n/**\n * Characters which signal pair opening, to be terminated by terminators.\n *\n * @type {string[]}\n */\nOPENERS = [ '(', '?' ];\n\n/**\n * Characters which signal pair termination, the value an array with the\n * opener as its first member. The second member is an optional operator\n * replacement to push to the stack.\n *\n * @type {string[]}\n */\nTERMINATORS = {\n\t')': [ '(' ],\n\t':': [ '?', '?:' ],\n};\n\n/**\n * Pattern matching operators and openers.\n *\n * @type {RegExp}\n */\nPATTERN = /<=|>=|==|!=|&&|\\|\\||\\?:|\\(|!|\\*|\\/|%|\\+|-|<|>|\\?|\\)|:/;\n\n/**\n * Given a C expression, returns the equivalent postfix (Reverse Polish)\n * notation terms as an array.\n *\n * If a postfix string is desired, simply `.join( ' ' )` the result.\n *\n * @example\n *\n * ```js\n * import postfix from '@tannin/postfix';\n *\n * postfix( 'n > 1' );\n * // ⇒ [ 'n', '1', '>' ]\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {string[]} Postfix terms.\n */\nfunction postfix( expression ) {\n\tvar terms = [],\n\t\tstack = [],\n\t\tmatch, operator, term, element;\n\n\twhile ( ( match = expression.match( PATTERN ) ) ) {\n\t\toperator = match[ 0 ];\n\n\t\t// Term is the string preceding the operator match. It may contain\n\t\t// whitespace, and may be empty (if operator is at beginning).\n\t\tterm = expression.substr( 0, match.index ).trim();\n\t\tif ( term ) {\n\t\t\tterms.push( term );\n\t\t}\n\n\t\twhile ( ( element = stack.pop() ) ) {\n\t\t\tif ( TERMINATORS[ operator ] ) {\n\t\t\t\tif ( TERMINATORS[ operator ][ 0 ] === element ) {\n\t\t\t\t\t// Substitution works here under assumption that because\n\t\t\t\t\t// the assigned operator will no longer be a terminator, it\n\t\t\t\t\t// will be pushed to the stack during the condition below.\n\t\t\t\t\toperator = TERMINATORS[ operator ][ 1 ] || operator;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if ( OPENERS.indexOf( element ) >= 0 || PRECEDENCE[ element ] < PRECEDENCE[ operator ] ) {\n\t\t\t\t// Push to stack if either an opener or when pop reveals an\n\t\t\t\t// element of lower precedence.\n\t\t\t\tstack.push( element );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// For each popped from stack, push to terms.\n\t\t\tterms.push( element );\n\t\t}\n\n\t\tif ( ! TERMINATORS[ operator ] ) {\n\t\t\tstack.push( operator );\n\t\t}\n\n\t\t// Slice matched fragment from expression to continue match.\n\t\texpression = expression.substr( match.index + operator.length );\n\t}\n\n\t// Push remainder of operand, if exists, to terms.\n\texpression = expression.trim();\n\tif ( expression ) {\n\t\tterms.push( expression );\n\t}\n\n\t// Pop remaining items from stack into terms.\n\treturn terms.concat( stack.reverse() );\n}\n\n// CONCATENATED MODULE: ./node_modules/@tannin/evaluate/index.js\n/**\n * Operator callback functions.\n *\n * @type {Object}\n */\nvar OPERATORS = {\n\t'!': function( a ) {\n\t\treturn ! a;\n\t},\n\t'*': function( a, b ) {\n\t\treturn a * b;\n\t},\n\t'/': function( a, b ) {\n\t\treturn a / b;\n\t},\n\t'%': function( a, b ) {\n\t\treturn a % b;\n\t},\n\t'+': function( a, b ) {\n\t\treturn a + b;\n\t},\n\t'-': function( a, b ) {\n\t\treturn a - b;\n\t},\n\t'<': function( a, b ) {\n\t\treturn a < b;\n\t},\n\t'<=': function( a, b ) {\n\t\treturn a <= b;\n\t},\n\t'>': function( a, b ) {\n\t\treturn a > b;\n\t},\n\t'>=': function( a, b ) {\n\t\treturn a >= b;\n\t},\n\t'==': function( a, b ) {\n\t\treturn a === b;\n\t},\n\t'!=': function( a, b ) {\n\t\treturn a !== b;\n\t},\n\t'&&': function( a, b ) {\n\t\treturn a && b;\n\t},\n\t'||': function( a, b ) {\n\t\treturn a || b;\n\t},\n\t'?:': function( a, b, c ) {\n\t\tif ( a ) {\n\t\t\tthrow b;\n\t\t}\n\n\t\treturn c;\n\t},\n};\n\n/**\n * Given an array of postfix terms and operand variables, returns the result of\n * the postfix evaluation.\n *\n * @example\n *\n * ```js\n * import evaluate from '@tannin/evaluate';\n *\n * // 3 + 4 * 5 / 6 ⇒ '3 4 5 * 6 / +'\n * const terms = [ '3', '4', '5', '*', '6', '/', '+' ];\n *\n * evaluate( terms, {} );\n * // ⇒ 6.333333333333334\n * ```\n *\n * @param {string[]} postfix   Postfix terms.\n * @param {Object}   variables Operand variables.\n *\n * @return {*} Result of evaluation.\n */\nfunction evaluate_evaluate( postfix, variables ) {\n\tvar stack = [],\n\t\ti, j, args, getOperatorResult, term, value;\n\n\tfor ( i = 0; i < postfix.length; i++ ) {\n\t\tterm = postfix[ i ];\n\n\t\tgetOperatorResult = OPERATORS[ term ];\n\t\tif ( getOperatorResult ) {\n\t\t\t// Pop from stack by number of function arguments.\n\t\t\tj = getOperatorResult.length;\n\t\t\targs = Array( j );\n\t\t\twhile ( j-- ) {\n\t\t\t\targs[ j ] = stack.pop();\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tvalue = getOperatorResult.apply( null, args );\n\t\t\t} catch ( earlyReturn ) {\n\t\t\t\treturn earlyReturn;\n\t\t\t}\n\t\t} else if ( variables.hasOwnProperty( term ) ) {\n\t\t\tvalue = variables[ term ];\n\t\t} else {\n\t\t\tvalue = +term;\n\t\t}\n\n\t\tstack.push( value );\n\t}\n\n\treturn stack[ 0 ];\n}\n\n// CONCATENATED MODULE: ./node_modules/@tannin/compile/index.js\n\n\n\n/**\n * Given a C expression, returns a function which can be called to evaluate its\n * result.\n *\n * @example\n *\n * ```js\n * import compile from '@tannin/compile';\n *\n * const evaluate = compile( 'n > 1' );\n *\n * evaluate( { n: 2 } );\n * // ⇒ true\n * ```\n *\n * @param {string} expression C expression.\n *\n * @return {(variables?:{[variable:string]:*})=>*} Compiled evaluator.\n */\nfunction compile( expression ) {\n\tvar terms = postfix( expression );\n\n\treturn function( variables ) {\n\t\treturn evaluate_evaluate( terms, variables );\n\t};\n}\n\n// CONCATENATED MODULE: ./node_modules/@tannin/plural-forms/index.js\n\n\n/**\n * Given a C expression, returns a function which, when called with a value,\n * evaluates the result with the value assumed to be the \"n\" variable of the\n * expression. The result will be coerced to its numeric equivalent.\n *\n * @param {string} expression C expression.\n *\n * @return {Function} Evaluator function.\n */\nfunction pluralForms( expression ) {\n\tvar evaluate = compile( expression );\n\n\treturn function( n ) {\n\t\treturn +evaluate( { n: n } );\n\t};\n}\n\n// CONCATENATED MODULE: ./node_modules/tannin/index.js\n\n\n/**\n * Tannin constructor options.\n *\n * @typedef {Object} TanninOptions\n *\n * @property {string}   [contextDelimiter] Joiner in string lookup with context.\n * @property {Function} [onMissingKey]     Callback to invoke when key missing.\n */\n\n/**\n * Domain metadata.\n *\n * @typedef {Object} TanninDomainMetadata\n *\n * @property {string}            [domain]       Domain name.\n * @property {string}            [lang]         Language code.\n * @property {(string|Function)} [plural_forms] Plural forms expression or\n *                                              function evaluator.\n */\n\n/**\n * Domain translation pair respectively representing the singular and plural\n * translation.\n *\n * @typedef {[string,string]} TanninTranslation\n */\n\n/**\n * Locale data domain. The key is used as reference for lookup, the value an\n * array of two string entries respectively representing the singular and plural\n * translation.\n *\n * @typedef {{[key:string]:TanninDomainMetadata|TanninTranslation,'':TanninDomainMetadata|TanninTranslation}} TanninLocaleDomain\n */\n\n/**\n * Jed-formatted locale data.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @typedef {{[domain:string]:TanninLocaleDomain}} TanninLocaleData\n */\n\n/**\n * Default Tannin constructor options.\n *\n * @type {TanninOptions}\n */\nvar DEFAULT_OPTIONS = {\n\tcontextDelimiter: '\\u0004',\n\tonMissingKey: null,\n};\n\n/**\n * Given a specific locale data's config `plural_forms` value, returns the\n * expression.\n *\n * @example\n *\n * ```\n * getPluralExpression( 'nplurals=2; plural=(n != 1);' ) === '(n != 1)'\n * ```\n *\n * @param {string} pf Locale data plural forms.\n *\n * @return {string} Plural forms expression.\n */\nfunction getPluralExpression( pf ) {\n\tvar parts, i, part;\n\n\tparts = pf.split( ';' );\n\n\tfor ( i = 0; i < parts.length; i++ ) {\n\t\tpart = parts[ i ].trim();\n\t\tif ( part.indexOf( 'plural=' ) === 0 ) {\n\t\t\treturn part.substr( 7 );\n\t\t}\n\t}\n}\n\n/**\n * Tannin constructor.\n *\n * @class\n *\n * @param {TanninLocaleData} data      Jed-formatted locale data.\n * @param {TanninOptions}    [options] Tannin options.\n */\nfunction Tannin( data, options ) {\n\tvar key;\n\n\t/**\n\t * Jed-formatted locale data.\n\t *\n\t * @name Tannin#data\n\t * @type {TanninLocaleData}\n\t */\n\tthis.data = data;\n\n\t/**\n\t * Plural forms function cache, keyed by plural forms string.\n\t *\n\t * @name Tannin#pluralForms\n\t * @type {Object<string,Function>}\n\t */\n\tthis.pluralForms = {};\n\n\t/**\n\t * Effective options for instance, including defaults.\n\t *\n\t * @name Tannin#options\n\t * @type {TanninOptions}\n\t */\n\tthis.options = {};\n\n\tfor ( key in DEFAULT_OPTIONS ) {\n\t\tthis.options[ key ] = options !== undefined && key in options\n\t\t\t? options[ key ]\n\t\t\t: DEFAULT_OPTIONS[ key ];\n\t}\n}\n\n/**\n * Returns the plural form index for the given domain and value.\n *\n * @param {string} domain Domain on which to calculate plural form.\n * @param {number} n      Value for which plural form is to be calculated.\n *\n * @return {number} Plural form index.\n */\nTannin.prototype.getPluralForm = function( domain, n ) {\n\tvar getPluralForm = this.pluralForms[ domain ],\n\t\tconfig, plural, pf;\n\n\tif ( ! getPluralForm ) {\n\t\tconfig = this.data[ domain ][ '' ];\n\n\t\tpf = (\n\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t// @ts-ignore\n\t\t\tconfig.plural_forms\n\t\t);\n\n\t\tif ( typeof pf !== 'function' ) {\n\t\t\tplural = getPluralExpression(\n\t\t\t\tconfig[ 'Plural-Forms' ] ||\n\t\t\t\tconfig[ 'plural-forms' ] ||\n\t\t\t\t// Ignore reason: As known, there's no way to document the empty\n\t\t\t\t// string property on a key to guarantee this as metadata.\n\t\t\t\t// @ts-ignore\n\t\t\t\tconfig.plural_forms\n\t\t\t);\n\n\t\t\tpf = pluralForms( plural );\n\t\t}\n\n\t\tgetPluralForm = this.pluralForms[ domain ] = pf;\n\t}\n\n\treturn getPluralForm( n );\n};\n\n/**\n * Translate a string.\n *\n * @param {string}      domain   Translation domain.\n * @param {string|void} context  Context distinguishing terms of the same name.\n * @param {string}      singular Primary key for translation lookup.\n * @param {string=}     plural   Fallback value used for non-zero plural\n *                               form index.\n * @param {number=}     n        Value to use in calculating plural form.\n *\n * @return {string} Translated string.\n */\nTannin.prototype.dcnpgettext = function( domain, context, singular, plural, n ) {\n\tvar index, key, entry;\n\n\tif ( n === undefined ) {\n\t\t// Default to singular.\n\t\tindex = 0;\n\t} else {\n\t\t// Find index by evaluating plural form for value.\n\t\tindex = this.getPluralForm( domain, n );\n\t}\n\n\tkey = singular;\n\n\t// If provided, context is prepended to key with delimiter.\n\tif ( context ) {\n\t\tkey = context + this.options.contextDelimiter + singular;\n\t}\n\n\tentry = this.data[ domain ][ key ];\n\n\t// Verify not only that entry exists, but that the intended index is within\n\t// range and non-empty.\n\tif ( entry && entry[ index ] ) {\n\t\treturn entry[ index ];\n\t}\n\n\tif ( this.options.onMissingKey ) {\n\t\tthis.options.onMissingKey( singular, domain );\n\t}\n\n\t// If entry not found, fall back to singular vs. plural with zero index\n\t// representing the singular value.\n\treturn index === 0 ? singular : plural;\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/i18n/build-module/create-i18n.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * @typedef {Record<string,any>} LocaleData\n */\n\n/**\n * Default locale data to use for Tannin domain when not otherwise provided.\n * Assumes an English plural forms expression.\n *\n * @type {LocaleData}\n */\n\nvar DEFAULT_LOCALE_DATA = {\n  '': {\n    /** @param {number} n */\n    plural_forms: function plural_forms(n) {\n      return n === 1 ? 0 : 1;\n    }\n  }\n};\n/**\n * An i18n instance\n *\n * @typedef {Object} I18n\n * @property {Function} setLocaleData Merges locale data into the Tannin instance by domain. Accepts data in a\n *                                    Jed-formatted JSON object shape.\n * @property {Function} __            Retrieve the translation of text.\n * @property {Function} _x            Retrieve translated string with gettext context.\n * @property {Function} _n            Translates and retrieves the singular or plural form based on the supplied\n *                                    number.\n * @property {Function} _nx           Translates and retrieves the singular or plural form based on the supplied\n *                                    number, with gettext context.\n * @property {Function} isRTL         Check if current locale is RTL.\n */\n\n/**\n * Create an i18n instance\n *\n * @param {LocaleData} [initialData]    Locale data configuration.\n * @param {string}     [initialDomain]  Domain for which configuration applies.\n * @return {I18n}                       I18n instance\n */\n\nvar create_i18n_createI18n = function createI18n(initialData, initialDomain) {\n  /**\n   * The underlying instance of Tannin to which exported functions interface.\n   *\n   * @type {Tannin}\n   */\n  var tannin = new Tannin({});\n  /**\n   * Merges locale data into the Tannin instance by domain. Accepts data in a\n   * Jed-formatted JSON object shape.\n   *\n   * @see http://messageformat.github.io/Jed/\n   *\n   * @param {LocaleData} [data]   Locale data configuration.\n   * @param {string}     [domain] Domain for which configuration applies.\n   */\n\n  var setLocaleData = function setLocaleData(data) {\n    var domain = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n    tannin.data[domain] = _objectSpread({}, DEFAULT_LOCALE_DATA, {}, tannin.data[domain], {}, data); // Populate default domain configuration (supported locale date which omits\n    // a plural forms expression).\n\n    tannin.data[domain][''] = _objectSpread({}, DEFAULT_LOCALE_DATA[''], {}, tannin.data[domain]['']);\n  };\n  /**\n   * Wrapper for Tannin's `dcnpgettext`. Populates default locale data if not\n   * otherwise previously assigned.\n   *\n   * @param {string|undefined} domain   Domain to retrieve the translated text.\n   * @param {string|undefined} context  Context information for the translators.\n   * @param {string}           single   Text to translate if non-plural. Used as\n   *                                    fallback return value on a caught error.\n   * @param {string}           [plural] The text to be used if the number is\n   *                                    plural.\n   * @param {number}           [number] The number to compare against to use\n   *                                    either the singular or plural form.\n   *\n   * @return {string} The translated string.\n   */\n\n\n  var dcnpgettext = function dcnpgettext() {\n    var domain = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n    var context = arguments.length > 1 ? arguments[1] : undefined;\n    var single = arguments.length > 2 ? arguments[2] : undefined;\n    var plural = arguments.length > 3 ? arguments[3] : undefined;\n    var number = arguments.length > 4 ? arguments[4] : undefined;\n\n    if (!tannin.data[domain]) {\n      setLocaleData(undefined, domain);\n    }\n\n    return tannin.dcnpgettext(domain, context, single, plural, number);\n  };\n  /**\n   * Retrieve the translation of text.\n   *\n   * @see https://developer.wordpress.org/reference/functions/__/\n   *\n   * @param {string} text     Text to translate.\n   * @param {string} [domain] Domain to retrieve the translated text.\n   *\n   * @return {string} Translated text.\n   */\n\n\n  var __ = function __(text, domain) {\n    return dcnpgettext(domain, undefined, text);\n  };\n  /**\n   * Retrieve translated string with gettext context.\n   *\n   * @see https://developer.wordpress.org/reference/functions/_x/\n   *\n   * @param {string} text     Text to translate.\n   * @param {string} context  Context information for the translators.\n   * @param {string} [domain] Domain to retrieve the translated text.\n   *\n   * @return {string} Translated context string without pipe.\n   */\n\n\n  var _x = function _x(text, context, domain) {\n    return dcnpgettext(domain, context, text);\n  };\n  /**\n   * Translates and retrieves the singular or plural form based on the supplied\n   * number.\n   *\n   * @see https://developer.wordpress.org/reference/functions/_n/\n   *\n   * @param {string} single   The text to be used if the number is singular.\n   * @param {string} plural   The text to be used if the number is plural.\n   * @param {number} number   The number to compare against to use either the\n   *                          singular or plural form.\n   * @param {string} [domain] Domain to retrieve the translated text.\n   *\n   * @return {string} The translated singular or plural form.\n   */\n\n\n  var _n = function _n(single, plural, number, domain) {\n    return dcnpgettext(domain, undefined, single, plural, number);\n  };\n  /**\n   * Translates and retrieves the singular or plural form based on the supplied\n   * number, with gettext context.\n   *\n   * @see https://developer.wordpress.org/reference/functions/_nx/\n   *\n   * @param {string} single   The text to be used if the number is singular.\n   * @param {string} plural   The text to be used if the number is plural.\n   * @param {number} number   The number to compare against to use either the\n   *                          singular or plural form.\n   * @param {string} context  Context information for the translators.\n   * @param {string} [domain] Domain to retrieve the translated text.\n   *\n   * @return {string} The translated singular or plural form.\n   */\n\n\n  var _nx = function _nx(single, plural, number, context, domain) {\n    return dcnpgettext(domain, context, single, plural, number);\n  };\n  /**\n   * Check if current locale is RTL.\n   *\n   * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n   * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n   * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n   * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n   *\n   * @return {boolean} Whether locale is RTL.\n   */\n\n\n  var isRTL = function isRTL() {\n    return 'rtl' === _x('ltr', 'text direction');\n  };\n\n  if (initialData) {\n    setLocaleData(initialData, initialDomain);\n  }\n\n  return {\n    setLocaleData: setLocaleData,\n    __: __,\n    _x: _x,\n    _n: _n,\n    _nx: _nx,\n    isRTL: isRTL\n  };\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/i18n/build-module/default-i18n.js\n/**\n * Internal dependencies\n */\n\nvar i18n = create_i18n_createI18n();\n/*\n * Comments in this file are duplicated from ./i18n due to\n * https://github.com/WordPress/gutenberg/pull/20318#issuecomment-590837722\n */\n\n/**\n * @typedef {import('./create-i18n').LocaleData} LocaleData\n */\n\n/**\n * Merges locale data into the Tannin instance by domain. Accepts data in a\n * Jed-formatted JSON object shape.\n *\n * @see http://messageformat.github.io/Jed/\n *\n * @param {LocaleData} [data]   Locale data configuration.\n * @param {string}     [domain] Domain for which configuration applies.\n */\n\nvar default_i18n_setLocaleData = i18n.setLocaleData.bind(i18n);\n/**\n * Retrieve the translation of text.\n *\n * @see https://developer.wordpress.org/reference/functions/__/\n *\n * @param {string} text     Text to translate.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated text.\n */\n\nvar default_i18n_ = i18n.__.bind(i18n);\n/**\n * Retrieve translated string with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_x/\n *\n * @param {string} text     Text to translate.\n * @param {string} context  Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} Translated context string without pipe.\n */\n\nvar default_i18n_x = i18n._x.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number.\n *\n * @see https://developer.wordpress.org/reference/functions/_n/\n *\n * @param {string} single   The text to be used if the number is singular.\n * @param {string} plural   The text to be used if the number is plural.\n * @param {number} number   The number to compare against to use either the\n *                          singular or plural form.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nvar default_i18n_n = i18n._n.bind(i18n);\n/**\n * Translates and retrieves the singular or plural form based on the supplied\n * number, with gettext context.\n *\n * @see https://developer.wordpress.org/reference/functions/_nx/\n *\n * @param {string} single   The text to be used if the number is singular.\n * @param {string} plural   The text to be used if the number is plural.\n * @param {number} number   The number to compare against to use either the\n *                          singular or plural form.\n * @param {string} context  Context information for the translators.\n * @param {string} [domain] Domain to retrieve the translated text.\n *\n * @return {string} The translated singular or plural form.\n */\n\nvar default_i18n_nx = i18n._nx.bind(i18n);\n/**\n * Check if current locale is RTL.\n *\n * **RTL (Right To Left)** is a locale property indicating that text is written from right to left.\n * For example, the `he` locale (for Hebrew) specifies right-to-left. Arabic (ar) is another common\n * language written RTL. The opposite of RTL, LTR (Left To Right) is used in other languages,\n * including English (`en`, `en-US`, `en-GB`, etc.), Spanish (`es`), and French (`fr`).\n *\n * @return {boolean} Whether locale is RTL.\n */\n\nvar default_i18n_isRTL = i18n.isRTL.bind(i18n);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/i18n/build-module/index.js\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-is-shallow-equal.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"isShallowEqual\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 419);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 419:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Internal dependencies;\n */\nvar isShallowEqualObjects = __webpack_require__( 420 );\nvar isShallowEqualArrays = __webpack_require__( 421 );\n\nvar isArray = Array.isArray;\n\n/**\n * @typedef {Record<string, any>} ComparableObject\n */\n\n/**\n * Returns true if the two arrays or objects are shallow equal, or false\n * otherwise.\n *\n * @param {any[]|ComparableObject} a First object or array to compare.\n * @param {any[]|ComparableObject} b Second object or array to compare.\n *\n * @return {boolean} Whether the two values are shallow equal.\n */\nfunction isShallowEqual( a, b ) {\n\tif ( a && b ) {\n\t\tif ( a.constructor === Object && b.constructor === Object ) {\n\t\t\treturn isShallowEqualObjects( a, b );\n\t\t} else if ( isArray( a ) && isArray( b ) ) {\n\t\t\treturn isShallowEqualArrays( a, b );\n\t\t}\n\t}\n\n\treturn a === b;\n}\n\nmodule.exports = isShallowEqual;\nmodule.exports.isShallowEqualObjects = isShallowEqualObjects;\nmodule.exports.isShallowEqualArrays = isShallowEqualArrays;\n\n\n/***/ }),\n\n/***/ 420:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar keys = Object.keys;\n\n/**\n * Returns true if the two objects are shallow equal, or false otherwise.\n *\n * @param {import('.').ComparableObject} a First object to compare.\n * @param {import('.').ComparableObject} b Second object to compare.\n *\n * @return {boolean} Whether the two objects are shallow equal.\n */\nfunction isShallowEqualObjects( a, b ) {\n\tvar aKeys, bKeys, i, key, aValue;\n\n\tif ( a === b ) {\n\t\treturn true;\n\t}\n\n\taKeys = keys( a );\n\tbKeys = keys( b );\n\n\tif ( aKeys.length !== bKeys.length ) {\n\t\treturn false;\n\t}\n\n\ti = 0;\n\n\twhile ( i < aKeys.length ) {\n\t\tkey = aKeys[ i ];\n\t\taValue = a[ key ];\n\n\t\tif (\n\t\t\t// In iterating only the keys of the first object after verifying\n\t\t\t// equal lengths, account for the case that an explicit `undefined`\n\t\t\t// value in the first is implicitly undefined in the second.\n\t\t\t//\n\t\t\t// Example: isShallowEqualObjects( { a: undefined }, { b: 5 } )\n\t\t\t( aValue === undefined && ! b.hasOwnProperty( key ) ) ||\n\t\t\taValue !== b[ key ]\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\ti++;\n\t}\n\n\treturn true;\n}\n\nmodule.exports = isShallowEqualObjects;\n\n\n/***/ }),\n\n/***/ 421:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Returns true if the two arrays are shallow equal, or false otherwise.\n *\n * @param {any[]} a First array to compare.\n * @param {any[]} b Second array to compare.\n *\n * @return {boolean} Whether the two arrays are shallow equal.\n */\nfunction isShallowEqualArrays( a, b ) {\n\tvar i;\n\n\tif ( a === b ) {\n\t\treturn true;\n\t}\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = 0; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nmodule.exports = isShallowEqualArrays;\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-keyboard-shortcuts.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"keyboardShortcuts\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 452);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 452:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"useShortcut\", function() { return /* reexport */ use_shortcut; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"registerShortcut\", function() { return registerShortcut; });\n__webpack_require__.d(actions_namespaceObject, \"unregisterShortcut\", function() { return unregisterShortcut; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getShortcutKeyCombination\", function() { return getShortcutKeyCombination; });\n__webpack_require__.d(selectors_namespaceObject, \"getShortcutRepresentation\", function() { return getShortcutRepresentation; });\n__webpack_require__.d(selectors_namespaceObject, \"getShortcutDescription\", function() { return getShortcutDescription; });\n__webpack_require__.d(selectors_namespaceObject, \"getShortcutAliases\", function() { return getShortcutAliases; });\n__webpack_require__.d(selectors_namespaceObject, \"getAllShortcutRawKeyCombinations\", function() { return getAllShortcutRawKeyCombinations; });\n__webpack_require__.d(selectors_namespaceObject, \"getCategoryShortcuts\", function() { return getCategoryShortcuts; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/reducer.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Reducer returning the registered shortcuts\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'REGISTER_SHORTCUT':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.name, {\n        category: action.category,\n        keyCombination: action.keyCombination,\n        aliases: action.aliases,\n        description: action.description\n      }));\n\n    case 'UNREGISTER_SHORTCUT':\n      return Object(external_this_lodash_[\"omit\"])(state, action.name);\n  }\n\n  return state;\n}\n\n/* harmony default export */ var store_reducer = (reducer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/actions.js\n/** @typedef {import('@wordpress/keycodes').WPKeycodeModifier} WPKeycodeModifier */\n\n/**\n * Keyboard key combination.\n *\n * @typedef {Object} WPShortcutKeyCombination\n *\n * @property {string}                      character Character.\n * @property {WPKeycodeModifier|undefined} modifier  Modifier.\n */\n\n/**\n * Configuration of a registered keyboard shortcut.\n *\n * @typedef {Object} WPShortcutConfig\n *\n * @property {string}                     name           Shortcut name.\n * @property {string}                     category       Shortcut category.\n * @property {string}                     description    Shortcut description.\n * @property {WPShortcutKeyCombination}   keyCombination Shortcut key combination.\n * @property {WPShortcutKeyCombination[]} [aliases]      Shortcut aliases.\n */\n\n/**\n * Returns an action object used to register a new keyboard shortcut.\n *\n * @param {WPShortcutConfig} config Shortcut config.\n *\n * @return {Object} action.\n */\nfunction registerShortcut(_ref) {\n  var name = _ref.name,\n      category = _ref.category,\n      description = _ref.description,\n      keyCombination = _ref.keyCombination,\n      aliases = _ref.aliases;\n  return {\n    type: 'REGISTER_SHORTCUT',\n    name: name,\n    category: category,\n    keyCombination: keyCombination,\n    aliases: aliases,\n    description: description\n  };\n}\n/**\n * Returns an action object used to unregister a keyboard shortcut.\n *\n * @param {string} name Shortcut name.\n *\n * @return {Object} action.\n */\n\nfunction unregisterShortcut(name) {\n  return {\n    type: 'UNREGISTER_SHORTCUT',\n    name: name\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/selectors.js\n\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n/** @typedef {import('./actions').WPShortcutKeyCombination} WPShortcutKeyCombination */\n\n/** @typedef {import('@wordpress/keycodes').WPKeycodeHandlerByModifier} WPKeycodeHandlerByModifier */\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\n\nvar EMPTY_ARRAY = [];\n/**\n * Shortcut formatting methods.\n *\n * @property {WPKeycodeHandlerByModifier} display     Display formatting.\n * @property {WPKeycodeHandlerByModifier} rawShortcut Raw shortcut formatting.\n * @property {WPKeycodeHandlerByModifier} ariaLabel   ARIA label formatting.\n */\n\nvar FORMATTING_METHODS = {\n  display: external_this_wp_keycodes_[\"displayShortcut\"],\n  raw: external_this_wp_keycodes_[\"rawShortcut\"],\n  ariaLabel: external_this_wp_keycodes_[\"shortcutAriaLabel\"]\n};\n/**\n * Returns a string representing the key combination.\n *\n * @param {?WPShortcutKeyCombination} shortcut       Key combination.\n * @param {keyof FORMATTING_METHODS}  representation Type of representation\n *                                                   (display, raw, ariaLabel).\n *\n * @return {string?} Shortcut representation.\n */\n\nfunction getKeyCombinationRepresentation(shortcut, representation) {\n  if (!shortcut) {\n    return null;\n  }\n\n  return shortcut.modifier ? FORMATTING_METHODS[representation][shortcut.modifier](shortcut.character) : shortcut.character;\n}\n/**\n * Returns the main key combination for a given shortcut name.\n *\n * @param {Object} state Global state.\n * @param {string} name  Shortcut name.\n *\n * @return {WPShortcutKeyCombination?} Key combination.\n */\n\n\nfunction getShortcutKeyCombination(state, name) {\n  return state[name] ? state[name].keyCombination : null;\n}\n/**\n * Returns a string representing the main key combination for a given shortcut name.\n *\n * @param {Object}                   state          Global state.\n * @param {string}                   name           Shortcut name.\n * @param {keyof FORMATTING_METHODS} representation Type of representation\n *                                                  (display, raw, ariaLabel).\n *\n * @return {string?} Shortcut representation.\n */\n\nfunction getShortcutRepresentation(state, name) {\n  var representation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'display';\n  var shortcut = getShortcutKeyCombination(state, name);\n  return getKeyCombinationRepresentation(shortcut, representation);\n}\n/**\n * Returns the shortcut description given its name.\n *\n * @param {Object} state Global state.\n * @param {string} name  Shortcut name.\n *\n * @return {string?} Shortcut description.\n */\n\nfunction getShortcutDescription(state, name) {\n  return state[name] ? state[name].description : null;\n}\n/**\n * Returns the aliases for a given shortcut name.\n *\n * @param {Object} state Global state.\n * @param {string} name  Shortcut name.\n *\n * @return {WPShortcutKeyCombination[]} Key combinations.\n */\n\nfunction getShortcutAliases(state, name) {\n  return state[name] && state[name].aliases ? state[name].aliases : EMPTY_ARRAY;\n}\n/**\n * Returns the raw representation of all the keyboard combinations of a given shortcut name.\n *\n * @param {Object} state Global state.\n * @param {string} name  Shortcut name.\n *\n * @return {string[]} Shortcuts.\n */\n\nvar getAllShortcutRawKeyCombinations = Object(rememo[\"a\" /* default */])(function (state, name) {\n  return Object(external_this_lodash_[\"compact\"])([getKeyCombinationRepresentation(getShortcutKeyCombination(state, name), 'raw')].concat(Object(toConsumableArray[\"a\" /* default */])(getShortcutAliases(state, name).map(function (combination) {\n    return getKeyCombinationRepresentation(combination, 'raw');\n  }))));\n}, function (state, name) {\n  return [state[name]];\n});\n/**\n * Returns the shortcut names list for a given category name.\n *\n * @param {Object} state Global state.\n * @param {string} name  Category name.\n *\n * @return {string[]} Shortcut names.\n */\n\nvar getCategoryShortcuts = Object(rememo[\"a\" /* default */])(function (state, categoryName) {\n  return Object.entries(state).filter(function (_ref) {\n    var _ref2 = Object(slicedToArray[\"a\" /* default */])(_ref, 2),\n        shortcut = _ref2[1];\n\n    return shortcut.category === categoryName;\n  }).map(function (_ref3) {\n    var _ref4 = Object(slicedToArray[\"a\" /* default */])(_ref3, 1),\n        name = _ref4[0];\n\n    return name;\n  });\n}, function (state) {\n  return [state];\n});\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/* harmony default export */ var store = (Object(external_this_wp_data_[\"registerStore\"])('core/keyboard-shortcuts', {\n  reducer: store_reducer,\n  actions: actions_namespaceObject,\n  selectors: selectors_namespaceObject\n}));\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/hooks/use-shortcut.js\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Attach a keyboard shortcut handler.\n *\n * @param {string} name       Shortcut name.\n * @param {Function} callback Shortcut callback.\n * @param {Object} options    Shortcut options.\n */\n\nfunction useShortcut(name, callback, options) {\n  var shortcuts = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n    return select('core/keyboard-shortcuts').getAllShortcutRawKeyCombinations(name);\n  }, [name]);\n  Object(external_this_wp_compose_[\"useKeyboardShortcut\"])(shortcuts, callback, options);\n}\n\n/* harmony default export */ var use_shortcut = (useShortcut);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keyboard-shortcuts/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-keycodes.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"keycodes\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 462);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 462:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"BACKSPACE\", function() { return /* binding */ BACKSPACE; });\n__webpack_require__.d(__webpack_exports__, \"TAB\", function() { return /* binding */ TAB; });\n__webpack_require__.d(__webpack_exports__, \"ENTER\", function() { return /* binding */ ENTER; });\n__webpack_require__.d(__webpack_exports__, \"ESCAPE\", function() { return /* binding */ ESCAPE; });\n__webpack_require__.d(__webpack_exports__, \"SPACE\", function() { return /* binding */ SPACE; });\n__webpack_require__.d(__webpack_exports__, \"LEFT\", function() { return /* binding */ LEFT; });\n__webpack_require__.d(__webpack_exports__, \"UP\", function() { return /* binding */ UP; });\n__webpack_require__.d(__webpack_exports__, \"RIGHT\", function() { return /* binding */ RIGHT; });\n__webpack_require__.d(__webpack_exports__, \"DOWN\", function() { return /* binding */ DOWN; });\n__webpack_require__.d(__webpack_exports__, \"DELETE\", function() { return /* binding */ DELETE; });\n__webpack_require__.d(__webpack_exports__, \"F10\", function() { return /* binding */ F10; });\n__webpack_require__.d(__webpack_exports__, \"ALT\", function() { return /* binding */ ALT; });\n__webpack_require__.d(__webpack_exports__, \"CTRL\", function() { return /* binding */ CTRL; });\n__webpack_require__.d(__webpack_exports__, \"COMMAND\", function() { return /* binding */ COMMAND; });\n__webpack_require__.d(__webpack_exports__, \"SHIFT\", function() { return /* binding */ SHIFT; });\n__webpack_require__.d(__webpack_exports__, \"ZERO\", function() { return /* binding */ ZERO; });\n__webpack_require__.d(__webpack_exports__, \"modifiers\", function() { return /* binding */ modifiers; });\n__webpack_require__.d(__webpack_exports__, \"rawShortcut\", function() { return /* binding */ rawShortcut; });\n__webpack_require__.d(__webpack_exports__, \"displayShortcutList\", function() { return /* binding */ displayShortcutList; });\n__webpack_require__.d(__webpack_exports__, \"displayShortcut\", function() { return /* binding */ displayShortcut; });\n__webpack_require__.d(__webpack_exports__, \"shortcutAriaLabel\", function() { return /* binding */ shortcutAriaLabel; });\n__webpack_require__.d(__webpack_exports__, \"isKeyboardEvent\", function() { return /* binding */ isKeyboardEvent; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keycodes/build-module/platform.js\n/**\n * External dependencies\n */\n\n/**\n * Return true if platform is MacOS.\n *\n * @param {Object} _window   window object by default; used for DI testing.\n *\n * @return {boolean}         True if MacOS; false otherwise.\n */\n\nfunction isAppleOS() {\n  var _window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n\n  var platform = _window.navigator.platform;\n  return platform.indexOf('Mac') !== -1 || Object(external_this_lodash_[\"includes\"])(['iPad', 'iPhone'], platform);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/keycodes/build-module/index.js\n\n\n\n/**\n * Note: The order of the modifier keys in many of the [foo]Shortcut()\n * functions in this file are intentional and should not be changed. They're\n * designed to fit with the standard menu keyboard shortcuts shown in the\n * user's platform.\n *\n * For example, on MacOS menu shortcuts will place Shift before Command, but\n * on Windows Control will usually come first. So don't provide your own\n * shortcut combos directly to keyboardShortcut().\n */\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * @typedef {'primary'|'primaryShift'|'primaryAlt'|'secondary'|'access'|'ctrl'|'alt'|'ctrlShift'|'shift'|'shiftAlt'} WPKeycodeModifier\n */\n\n/**\n * An object of handler functions for each of the possible modifier\n * combinations. A handler will return a value for a given key.\n *\n * @typedef {Record<WPKeycodeModifier, (key:string)=>any>} WPKeycodeHandlerByModifier\n */\n\n/**\n * Keycode for BACKSPACE key.\n */\n\nvar BACKSPACE = 8;\n/**\n * Keycode for TAB key.\n */\n\nvar TAB = 9;\n/**\n * Keycode for ENTER key.\n */\n\nvar ENTER = 13;\n/**\n * Keycode for ESCAPE key.\n */\n\nvar ESCAPE = 27;\n/**\n * Keycode for SPACE key.\n */\n\nvar SPACE = 32;\n/**\n * Keycode for LEFT key.\n */\n\nvar LEFT = 37;\n/**\n * Keycode for UP key.\n */\n\nvar UP = 38;\n/**\n * Keycode for RIGHT key.\n */\n\nvar RIGHT = 39;\n/**\n * Keycode for DOWN key.\n */\n\nvar DOWN = 40;\n/**\n * Keycode for DELETE key.\n */\n\nvar DELETE = 46;\n/**\n * Keycode for F10 key.\n */\n\nvar F10 = 121;\n/**\n * Keycode for ALT key.\n */\n\nvar ALT = 'alt';\n/**\n * Keycode for CTRL key.\n */\n\nvar CTRL = 'ctrl';\n/**\n * Keycode for COMMAND/META key.\n */\n\nvar COMMAND = 'meta';\n/**\n * Keycode for SHIFT key.\n */\n\nvar SHIFT = 'shift';\n/**\n * Keycode for ZERO key.\n */\n\nvar ZERO = 48;\n/**\n * Object that contains functions that return the available modifier\n * depending on platform.\n *\n * - `primary`: takes a isApple function as a parameter.\n * - `primaryShift`: takes a isApple function as a parameter.\n * - `primaryAlt`: takes a isApple function as a parameter.\n * - `secondary`: takes a isApple function as a parameter.\n * - `access`: takes a isApple function as a parameter.\n * - `ctrl`\n * - `alt`\n * - `ctrlShift`\n * - `shift`\n * - `shiftAlt`\n */\n\nvar modifiers = {\n  primary: function primary(_isApple) {\n    return _isApple() ? [COMMAND] : [CTRL];\n  },\n  primaryShift: function primaryShift(_isApple) {\n    return _isApple() ? [SHIFT, COMMAND] : [CTRL, SHIFT];\n  },\n  primaryAlt: function primaryAlt(_isApple) {\n    return _isApple() ? [ALT, COMMAND] : [CTRL, ALT];\n  },\n  secondary: function secondary(_isApple) {\n    return _isApple() ? [SHIFT, ALT, COMMAND] : [CTRL, SHIFT, ALT];\n  },\n  access: function access(_isApple) {\n    return _isApple() ? [CTRL, ALT] : [SHIFT, ALT];\n  },\n  ctrl: function ctrl() {\n    return [CTRL];\n  },\n  alt: function alt() {\n    return [ALT];\n  },\n  ctrlShift: function ctrlShift() {\n    return [CTRL, SHIFT];\n  },\n  shift: function shift() {\n    return [SHIFT];\n  },\n  shiftAlt: function shiftAlt() {\n    return [SHIFT, ALT];\n  }\n};\n/**\n * An object that contains functions to get raw shortcuts.\n * E.g. rawShortcut.primary( 'm' ) will return 'meta+m' on Mac.\n * These are intended for user with the KeyboardShortcuts component or TinyMCE.\n *\n * @type {WPKeycodeHandlerByModifier} Keyed map of functions to raw shortcuts.\n */\n\nvar rawShortcut = Object(external_this_lodash_[\"mapValues\"])(modifiers, function (modifier) {\n  return function (character) {\n    var _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;\n\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(modifier(_isApple)), [character.toLowerCase()]).join('+');\n  };\n});\n/**\n * Return an array of the parts of a keyboard shortcut chord for display\n * E.g displayShortcutList.primary( 'm' ) will return [ '⌘', 'M' ] on Mac.\n *\n * @type {WPKeycodeHandlerByModifier} Keyed map of functions to shortcut\n *                                    sequences.\n */\n\nvar displayShortcutList = Object(external_this_lodash_[\"mapValues\"])(modifiers, function (modifier) {\n  return function (character) {\n    var _replacementKeyMap;\n\n    var _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;\n\n    var isApple = _isApple();\n\n    var replacementKeyMap = (_replacementKeyMap = {}, Object(defineProperty[\"a\" /* default */])(_replacementKeyMap, ALT, isApple ? '⌥' : 'Alt'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap, CTRL, isApple ? '^' : 'Ctrl'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap, COMMAND, '⌘'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap, SHIFT, isApple ? '⇧' : 'Shift'), _replacementKeyMap);\n    var modifierKeys = modifier(_isApple).reduce(function (accumulator, key) {\n      var replacementKey = Object(external_this_lodash_[\"get\"])(replacementKeyMap, key, key); // If on the Mac, adhere to platform convention and don't show plus between keys.\n\n      if (isApple) {\n        return [].concat(Object(toConsumableArray[\"a\" /* default */])(accumulator), [replacementKey]);\n      }\n\n      return [].concat(Object(toConsumableArray[\"a\" /* default */])(accumulator), [replacementKey, '+']);\n    }, []);\n    var capitalizedCharacter = Object(external_this_lodash_[\"capitalize\"])(character);\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(modifierKeys), [capitalizedCharacter]);\n  };\n});\n/**\n * An object that contains functions to display shortcuts.\n * E.g. displayShortcut.primary( 'm' ) will return '⌘M' on Mac.\n *\n * @type {WPKeycodeHandlerByModifier} Keyed map of functions to display\n *                                    shortcuts.\n */\n\nvar displayShortcut = Object(external_this_lodash_[\"mapValues\"])(displayShortcutList, function (shortcutList) {\n  return function (character) {\n    var _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;\n\n    return shortcutList(character, _isApple).join('');\n  };\n});\n/**\n * An object that contains functions to return an aria label for a keyboard shortcut.\n * E.g. shortcutAriaLabel.primary( '.' ) will return 'Command + Period' on Mac.\n *\n * @type {WPKeycodeHandlerByModifier} Keyed map of functions to shortcut ARIA\n *                                    labels.\n */\n\nvar shortcutAriaLabel = Object(external_this_lodash_[\"mapValues\"])(modifiers, function (modifier) {\n  return function (character) {\n    var _replacementKeyMap2;\n\n    var _isApple = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : isAppleOS;\n\n    var isApple = _isApple();\n\n    var replacementKeyMap = (_replacementKeyMap2 = {}, Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, SHIFT, 'Shift'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, COMMAND, isApple ? 'Command' : 'Control'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, CTRL, 'Control'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, ALT, isApple ? 'Option' : 'Alt'), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, ',', Object(external_this_wp_i18n_[\"__\"])('Comma')), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, '.', Object(external_this_wp_i18n_[\"__\"])('Period')), Object(defineProperty[\"a\" /* default */])(_replacementKeyMap2, '`', Object(external_this_wp_i18n_[\"__\"])('Backtick')), _replacementKeyMap2);\n    return [].concat(Object(toConsumableArray[\"a\" /* default */])(modifier(_isApple)), [character]).map(function (key) {\n      return Object(external_this_lodash_[\"capitalize\"])(Object(external_this_lodash_[\"get\"])(replacementKeyMap, key, key));\n    }).join(isApple ? ' ' : ' + ');\n  };\n});\n/**\n * From a given KeyboardEvent, returns an array of active modifier constants for\n * the event.\n *\n * @param {KeyboardEvent} event Keyboard event.\n *\n * @return {Array<ALT|CTRL|COMMAND|SHIFT>} Active modifier constants.\n */\n\nfunction getEventModifiers(event) {\n  return [ALT, CTRL, COMMAND, SHIFT].filter(function (key) {\n    return event[\"\".concat(key, \"Key\")];\n  });\n}\n/**\n * An object that contains functions to check if a keyboard event matches a\n * predefined shortcut combination.\n * E.g. isKeyboardEvent.primary( event, 'm' ) will return true if the event\n * signals pressing ⌘M.\n *\n * @type {WPKeycodeHandlerByModifier} Keyed map of functions to match events.\n */\n\n\nvar isKeyboardEvent = Object(external_this_lodash_[\"mapValues\"])(modifiers, function (getModifiers) {\n  return function (event, character) {\n    var _isApple = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : isAppleOS;\n\n    var mods = getModifiers(_isApple);\n    var eventMods = getEventModifiers(event);\n\n    if (Object(external_this_lodash_[\"xor\"])(mods, eventMods).length) {\n      return false;\n    }\n\n    if (!character) {\n      return Object(external_this_lodash_[\"includes\"])(mods, event.key.toLowerCase());\n    }\n\n    return event.key === character;\n  };\n});\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-list-reusable-blocks.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"listReusableBlocks\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 453);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 453:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/file.js\n/**\n * Downloads a file.\n *\n * @param {string} fileName    File Name.\n * @param {string} content     File Content.\n * @param {string} contentType File mime type.\n */\nfunction download(fileName, content, contentType) {\n  var file = new window.Blob([content], {\n    type: contentType\n  }); // IE11 can't use the click to download technique\n  // we use a specific IE11 technique instead.\n\n  if (window.navigator.msSaveOrOpenBlob) {\n    window.navigator.msSaveOrOpenBlob(file, fileName);\n  } else {\n    var a = document.createElement('a');\n    a.href = URL.createObjectURL(file);\n    a.download = fileName;\n    a.style.display = 'none';\n    document.body.appendChild(a);\n    a.click();\n    document.body.removeChild(a);\n  }\n}\n/**\n * Reads the textual content of the given file.\n *\n * @param  {File} file        File.\n * @return {Promise<string>}  Content of the file.\n */\n\nfunction readTextFile(file) {\n  var reader = new window.FileReader();\n  return new Promise(function (resolve) {\n    reader.onload = function () {\n      resolve(reader.result);\n    };\n\n    reader.readAsText(file);\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/export.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Export a reusable block as a JSON file.\n *\n * @param {number} id\n */\n\nfunction exportReusableBlock(_x) {\n  return _exportReusableBlock.apply(this, arguments);\n}\n\nfunction _exportReusableBlock() {\n  _exportReusableBlock = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(id) {\n    var postType, post, title, content, fileContent, fileName;\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/types/wp_block\"\n            });\n\n          case 2:\n            postType = _context.sent;\n            _context.next = 5;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/\".concat(postType.rest_base, \"/\").concat(id, \"?context=edit\")\n            });\n\n          case 5:\n            post = _context.sent;\n            title = post.title.raw;\n            content = post.content.raw;\n            fileContent = JSON.stringify({\n              __file: 'wp_block',\n              title: title,\n              content: content\n            }, null, 2);\n            fileName = Object(external_this_lodash_[\"kebabCase\"])(title) + '.json';\n            download(fileName, fileContent, 'application/json');\n\n          case 11:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee);\n  }));\n  return _exportReusableBlock.apply(this, arguments);\n}\n\n/* harmony default export */ var utils_export = (exportReusableBlock);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/utils/import.js\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Import a reusable block from a JSON file.\n *\n * @param {File}     file File.\n * @return {Promise} Promise returning the imported reusable block.\n */\n\nfunction importReusableBlock(_x) {\n  return _importReusableBlock.apply(this, arguments);\n}\n\nfunction _importReusableBlock() {\n  _importReusableBlock = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(file) {\n    var fileContent, parsedContent, postType, reusableBlock;\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            _context.next = 2;\n            return readTextFile(file);\n\n          case 2:\n            fileContent = _context.sent;\n            _context.prev = 3;\n            parsedContent = JSON.parse(fileContent);\n            _context.next = 10;\n            break;\n\n          case 7:\n            _context.prev = 7;\n            _context.t0 = _context[\"catch\"](3);\n            throw new Error('Invalid JSON file');\n\n          case 10:\n            if (!(parsedContent.__file !== 'wp_block' || !parsedContent.title || !parsedContent.content || !Object(external_this_lodash_[\"isString\"])(parsedContent.title) || !Object(external_this_lodash_[\"isString\"])(parsedContent.content))) {\n              _context.next = 12;\n              break;\n            }\n\n            throw new Error('Invalid Reusable Block JSON file');\n\n          case 12:\n            _context.next = 14;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/types/wp_block\"\n            });\n\n          case 14:\n            postType = _context.sent;\n            _context.next = 17;\n            return external_this_wp_apiFetch_default()({\n              path: \"/wp/v2/\".concat(postType.rest_base),\n              data: {\n                title: parsedContent.title,\n                content: parsedContent.content,\n                status: 'publish'\n              },\n              method: 'POST'\n            });\n\n          case 17:\n            reusableBlock = _context.sent;\n            return _context.abrupt(\"return\", reusableBlock);\n\n          case 19:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, null, [[3, 7]]);\n  }));\n  return _importReusableBlock.apply(this, arguments);\n}\n\n/* harmony default export */ var utils_import = (importReusableBlock);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-form/index.js\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nvar import_form_ImportForm = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ImportForm, _Component);\n\n  var _super = _createSuper(ImportForm);\n\n  function ImportForm() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ImportForm);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      isLoading: false,\n      error: null,\n      file: null\n    };\n    _this.isStillMounted = true;\n    _this.onChangeFile = _this.onChangeFile.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSubmit = _this.onSubmit.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ImportForm, [{\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.isStillMounted = false;\n    }\n  }, {\n    key: \"onChangeFile\",\n    value: function onChangeFile(event) {\n      this.setState({\n        file: event.target.files[0]\n      });\n    }\n  }, {\n    key: \"onSubmit\",\n    value: function onSubmit(event) {\n      var _this2 = this;\n\n      event.preventDefault();\n      var file = this.state.file;\n      var onUpload = this.props.onUpload;\n\n      if (!file) {\n        return;\n      }\n\n      this.setState({\n        isLoading: true\n      });\n      utils_import(file).then(function (reusableBlock) {\n        if (!_this2.isStillMounted) {\n          return;\n        }\n\n        _this2.setState({\n          isLoading: false\n        });\n\n        onUpload(reusableBlock);\n      }).catch(function (error) {\n        if (!_this2.isStillMounted) {\n          return;\n        }\n\n        var uiMessage;\n\n        switch (error.message) {\n          case 'Invalid JSON file':\n            uiMessage = Object(external_this_wp_i18n_[\"__\"])('Invalid JSON file');\n            break;\n\n          case 'Invalid Reusable Block JSON file':\n            uiMessage = Object(external_this_wp_i18n_[\"__\"])('Invalid Reusable Block JSON file');\n            break;\n\n          default:\n            uiMessage = Object(external_this_wp_i18n_[\"__\"])('Unknown error');\n        }\n\n        _this2.setState({\n          isLoading: false,\n          error: uiMessage\n        });\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var instanceId = this.props.instanceId;\n      var _this$state = this.state,\n          file = _this$state.file,\n          isLoading = _this$state.isLoading,\n          error = _this$state.error;\n      var inputId = 'list-reusable-blocks-import-form-' + instanceId;\n      return Object(external_this_wp_element_[\"createElement\"])(\"form\", {\n        className: \"list-reusable-blocks-import-form\",\n        onSubmit: this.onSubmit\n      }, error && Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Notice\"], {\n        status: \"error\"\n      }, error), Object(external_this_wp_element_[\"createElement\"])(\"label\", {\n        htmlFor: inputId,\n        className: \"list-reusable-blocks-import-form__label\"\n      }, Object(external_this_wp_i18n_[\"__\"])('File')), Object(external_this_wp_element_[\"createElement\"])(\"input\", {\n        id: inputId,\n        type: \"file\",\n        onChange: this.onChangeFile\n      }), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        type: \"submit\",\n        isBusy: isLoading,\n        disabled: !file || isLoading,\n        isSecondary: true,\n        className: \"list-reusable-blocks-import-form__button\"\n      }, Object(external_this_wp_i18n_[\"_x\"])('Import', 'button label')));\n    }\n  }]);\n\n  return ImportForm;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var import_form = (Object(external_this_wp_compose_[\"withInstanceId\"])(import_form_ImportForm));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/components/import-dropdown/index.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction ImportDropdown(_ref) {\n  var onUpload = _ref.onUpload;\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Dropdown\"], {\n    position: \"bottom right\",\n    contentClassName: \"list-reusable-blocks-import-dropdown__content\",\n    renderToggle: function renderToggle(_ref2) {\n      var isOpen = _ref2.isOpen,\n          onToggle = _ref2.onToggle;\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n        \"aria-expanded\": isOpen,\n        onClick: onToggle,\n        isPrimary: true\n      }, Object(external_this_wp_i18n_[\"__\"])('Import from JSON'));\n    },\n    renderContent: function renderContent(_ref3) {\n      var onClose = _ref3.onClose;\n      return Object(external_this_wp_element_[\"createElement\"])(import_form, {\n        onUpload: Object(external_this_lodash_[\"flow\"])(onClose, onUpload)\n      });\n    }\n  });\n}\n\n/* harmony default export */ var import_dropdown = (ImportDropdown);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/list-reusable-blocks/build-module/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Internal dependencies\n */\n\n\n // Setup Export Links\n\ndocument.body.addEventListener('click', function (event) {\n  if (!event.target.classList.contains('wp-list-reusable-blocks__export')) {\n    return;\n  }\n\n  event.preventDefault();\n  utils_export(event.target.dataset.id);\n}); // Setup Import Form\n\ndocument.addEventListener('DOMContentLoaded', function () {\n  var button = document.querySelector('.page-title-action');\n\n  if (!button) {\n    return;\n  }\n\n  var showNotice = function showNotice() {\n    var notice = document.createElement('div');\n    notice.className = 'notice notice-success is-dismissible';\n    notice.innerHTML = \"<p>\".concat(Object(external_this_wp_i18n_[\"__\"])('Reusable block imported successfully!'), \"</p>\");\n    var headerEnd = document.querySelector('.wp-header-end');\n\n    if (!headerEnd) {\n      return;\n    }\n\n    headerEnd.parentNode.insertBefore(notice, headerEnd);\n  };\n\n  var container = document.createElement('div');\n  container.className = 'list-reusable-blocks__container';\n  button.parentNode.insertBefore(container, button);\n  Object(external_this_wp_element_[\"render\"])(Object(external_this_wp_element_[\"createElement\"])(import_dropdown, {\n    onUpload: showNotice\n  }), container);\n});\n\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-media-utils.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"mediaUtils\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 456);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 44:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"blob\"]; }());\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 456:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"MediaUpload\", function() { return /* reexport */ media_upload; });\n__webpack_require__.d(__webpack_exports__, \"uploadMedia\", function() { return /* reexport */ uploadMedia; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/components/media-upload/index.js\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar _window = window,\n    wp = _window.wp;\nvar DEFAULT_EMPTY_GALLERY = [];\n/**\n * Prepares the Featured Image toolbars and frames.\n *\n * @return {wp.media.view.MediaFrame.Select} The default media workflow.\n */\n\nvar getFeaturedImageMediaFrame = function getFeaturedImageMediaFrame() {\n  return wp.media.view.MediaFrame.Select.extend({\n    /**\n     * Enables the Set Featured Image Button.\n     *\n     * @param {Object} toolbar toolbar for featured image state\n     * @return {void}\n     */\n    featuredImageToolbar: function featuredImageToolbar(toolbar) {\n      this.createSelectToolbar(toolbar, {\n        text: wp.media.view.l10n.setFeaturedImage,\n        state: this.options.state\n      });\n    },\n\n    /**\n     * Handle the edit state requirements of selected media item.\n     *\n     * @return {void}\n     */\n    editState: function editState() {\n      var selection = this.state('featured-image').get('selection');\n      var view = new wp.media.view.EditImage({\n        model: selection.single(),\n        controller: this\n      }).render(); // Set the view to the EditImage frame using the selected image.\n\n      this.content.set(view); // After bringing in the frame, load the actual editor via an ajax call.\n\n      view.loadEditor();\n    },\n\n    /**\n     * Create the default states.\n     *\n     * @return {void}\n     */\n    createStates: function createStates() {\n      this.on('toolbar:create:featured-image', this.featuredImageToolbar, this);\n      this.on('content:render:edit-image', this.editState, this);\n      this.states.add([new wp.media.controller.FeaturedImage(), new wp.media.controller.EditImage({\n        model: this.options.editImage\n      })]);\n    }\n  });\n};\n/**\n * Prepares the Gallery toolbars and frames.\n *\n * @return {wp.media.view.MediaFrame.Post} The default media workflow.\n */\n\n\nvar media_upload_getGalleryDetailsMediaFrame = function getGalleryDetailsMediaFrame() {\n  /**\n   * Custom gallery details frame.\n   *\n   * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js\n   * @class GalleryDetailsMediaFrame\n   * @class\n   */\n  return wp.media.view.MediaFrame.Post.extend({\n    /**\n     * Set up gallery toolbar.\n     *\n     * @return {void}\n     */\n    galleryToolbar: function galleryToolbar() {\n      var editing = this.state().get('editing');\n      this.toolbar.set(new wp.media.view.Toolbar({\n        controller: this,\n        items: {\n          insert: {\n            style: 'primary',\n            text: editing ? wp.media.view.l10n.updateGallery : wp.media.view.l10n.insertGallery,\n            priority: 80,\n            requires: {\n              library: true\n            },\n\n            /**\n             * @fires wp.media.controller.State#update\n             */\n            click: function click() {\n              var controller = this.controller,\n                  state = controller.state();\n              controller.close();\n              state.trigger('update', state.get('library')); // Restore and reset the default state.\n\n              controller.setState(controller.options.state);\n              controller.reset();\n            }\n          }\n        }\n      }));\n    },\n\n    /**\n     * Handle the edit state requirements of selected media item.\n     *\n     * @return {void}\n     */\n    editState: function editState() {\n      var selection = this.state('gallery').get('selection');\n      var view = new wp.media.view.EditImage({\n        model: selection.single(),\n        controller: this\n      }).render(); // Set the view to the EditImage frame using the selected image.\n\n      this.content.set(view); // After bringing in the frame, load the actual editor via an ajax call.\n\n      view.loadEditor();\n    },\n\n    /**\n     * Create the default states.\n     *\n     * @return {void}\n     */\n    createStates: function createStates() {\n      this.on('toolbar:create:main-gallery', this.galleryToolbar, this);\n      this.on('content:render:edit-image', this.editState, this);\n      this.states.add([new wp.media.controller.Library({\n        id: 'gallery',\n        title: wp.media.view.l10n.createGalleryTitle,\n        priority: 40,\n        toolbar: 'main-gallery',\n        filterable: 'uploaded',\n        multiple: 'add',\n        editable: false,\n        library: wp.media.query(Object(external_this_lodash_[\"defaults\"])({\n          type: 'image'\n        }, this.options.library))\n      }), new wp.media.controller.EditImage({\n        model: this.options.editImage\n      }), new wp.media.controller.GalleryEdit({\n        library: this.options.selection,\n        editing: this.options.editing,\n        menu: 'gallery',\n        displaySettings: false,\n        multiple: true\n      }), new wp.media.controller.GalleryAdd()]);\n    }\n  });\n}; // the media library image object contains numerous attributes\n// we only need this set to display the image in the library\n\n\nvar media_upload_slimImageObject = function slimImageObject(img) {\n  var attrSet = ['sizes', 'mime', 'type', 'subtype', 'id', 'url', 'alt', 'link', 'caption'];\n  return Object(external_this_lodash_[\"pick\"])(img, attrSet);\n};\n\nvar getAttachmentsCollection = function getAttachmentsCollection(ids) {\n  return wp.media.query({\n    order: 'ASC',\n    orderby: 'post__in',\n    post__in: ids,\n    posts_per_page: -1,\n    query: true,\n    type: 'image'\n  });\n};\n\nvar media_upload_MediaUpload = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(MediaUpload, _Component);\n\n  var _super = _createSuper(MediaUpload);\n\n  function MediaUpload(_ref) {\n    var _this;\n\n    var allowedTypes = _ref.allowedTypes,\n        _ref$gallery = _ref.gallery,\n        gallery = _ref$gallery === void 0 ? false : _ref$gallery,\n        _ref$unstableFeatured = _ref.unstableFeaturedImageFlow,\n        unstableFeaturedImageFlow = _ref$unstableFeatured === void 0 ? false : _ref$unstableFeatured,\n        modalClass = _ref.modalClass,\n        _ref$multiple = _ref.multiple,\n        multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n        _ref$title = _ref.title,\n        title = _ref$title === void 0 ? Object(external_this_wp_i18n_[\"__\"])('Select or Upload Media') : _ref$title;\n\n    Object(classCallCheck[\"a\" /* default */])(this, MediaUpload);\n\n    _this = _super.apply(this, arguments);\n    _this.openModal = _this.openModal.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onOpen = _this.onOpen.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onSelect = _this.onSelect.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onUpdate = _this.onUpdate.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.onClose = _this.onClose.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n\n    if (gallery) {\n      _this.buildAndSetGalleryFrame();\n    } else {\n      var frameConfig = {\n        title: title,\n        multiple: multiple\n      };\n\n      if (!!allowedTypes) {\n        frameConfig.library = {\n          type: allowedTypes\n        };\n      }\n\n      _this.frame = wp.media(frameConfig);\n    }\n\n    if (modalClass) {\n      _this.frame.$el.addClass(modalClass);\n    }\n\n    if (unstableFeaturedImageFlow) {\n      _this.buildAndSetFeatureImageFrame();\n    }\n\n    _this.initializeListeners();\n\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(MediaUpload, [{\n    key: \"initializeListeners\",\n    value: function initializeListeners() {\n      // When an image is selected in the media frame...\n      this.frame.on('select', this.onSelect);\n      this.frame.on('update', this.onUpdate);\n      this.frame.on('open', this.onOpen);\n      this.frame.on('close', this.onClose);\n    }\n    /**\n     * Sets the Gallery frame and initializes listeners.\n     *\n     * @return {void}\n     */\n\n  }, {\n    key: \"buildAndSetGalleryFrame\",\n    value: function buildAndSetGalleryFrame() {\n      var _this$props = this.props,\n          _this$props$addToGall = _this$props.addToGallery,\n          addToGallery = _this$props$addToGall === void 0 ? false : _this$props$addToGall,\n          allowedTypes = _this$props.allowedTypes,\n          _this$props$multiple = _this$props.multiple,\n          multiple = _this$props$multiple === void 0 ? false : _this$props$multiple,\n          _this$props$value = _this$props.value,\n          value = _this$props$value === void 0 ? DEFAULT_EMPTY_GALLERY : _this$props$value; // If the value did not changed there is no need to rebuild the frame,\n      // we can continue to use the existing one.\n\n      if (value === this.lastGalleryValue) {\n        return;\n      }\n\n      this.lastGalleryValue = value; // If a frame already existed remove it.\n\n      if (this.frame) {\n        this.frame.remove();\n      }\n\n      var currentState;\n\n      if (addToGallery) {\n        currentState = 'gallery-library';\n      } else {\n        currentState = value && value.length ? 'gallery-edit' : 'gallery';\n      }\n\n      if (!this.GalleryDetailsMediaFrame) {\n        this.GalleryDetailsMediaFrame = media_upload_getGalleryDetailsMediaFrame();\n      }\n\n      var attachments = getAttachmentsCollection(value);\n      var selection = new wp.media.model.Selection(attachments.models, {\n        props: attachments.props.toJSON(),\n        multiple: multiple\n      });\n      this.frame = new this.GalleryDetailsMediaFrame({\n        mimeType: allowedTypes,\n        state: currentState,\n        multiple: multiple,\n        selection: selection,\n        editing: value && value.length ? true : false\n      });\n      wp.media.frame = this.frame;\n      this.initializeListeners();\n    }\n    /**\n     * Initializes the Media Library requirements for the featured image flow.\n     *\n     * @return {void}\n     */\n\n  }, {\n    key: \"buildAndSetFeatureImageFrame\",\n    value: function buildAndSetFeatureImageFrame() {\n      var featuredImageFrame = getFeaturedImageMediaFrame();\n      var attachments = getAttachmentsCollection(this.props.value);\n      var selection = new wp.media.model.Selection(attachments.models, {\n        props: attachments.props.toJSON()\n      });\n      this.frame = new featuredImageFrame({\n        mimeType: this.props.allowedTypes,\n        state: 'featured-image',\n        multiple: this.props.multiple,\n        selection: selection,\n        editing: this.props.value ? true : false\n      });\n      wp.media.frame = this.frame;\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.frame.remove();\n    }\n  }, {\n    key: \"onUpdate\",\n    value: function onUpdate(selections) {\n      var _this$props2 = this.props,\n          onSelect = _this$props2.onSelect,\n          _this$props2$multiple = _this$props2.multiple,\n          multiple = _this$props2$multiple === void 0 ? false : _this$props2$multiple;\n      var state = this.frame.state();\n      var selectedImages = selections || state.get('selection');\n\n      if (!selectedImages || !selectedImages.models.length) {\n        return;\n      }\n\n      if (multiple) {\n        onSelect(selectedImages.models.map(function (model) {\n          return media_upload_slimImageObject(model.toJSON());\n        }));\n      } else {\n        onSelect(media_upload_slimImageObject(selectedImages.models[0].toJSON()));\n      }\n    }\n  }, {\n    key: \"onSelect\",\n    value: function onSelect() {\n      var _this$props3 = this.props,\n          onSelect = _this$props3.onSelect,\n          _this$props3$multiple = _this$props3.multiple,\n          multiple = _this$props3$multiple === void 0 ? false : _this$props3$multiple; // Get media attachment details from the frame state\n\n      var attachment = this.frame.state().get('selection').toJSON();\n      onSelect(multiple ? attachment : attachment[0]);\n    }\n  }, {\n    key: \"onOpen\",\n    value: function onOpen() {\n      this.updateCollection();\n\n      if (!this.props.value) {\n        return;\n      }\n\n      if (!this.props.gallery) {\n        var selection = this.frame.state().get('selection');\n        Object(external_this_lodash_[\"castArray\"])(this.props.value).forEach(function (id) {\n          selection.add(wp.media.attachment(id));\n        });\n      } // load the images so they are available in the media modal.\n\n\n      getAttachmentsCollection(Object(external_this_lodash_[\"castArray\"])(this.props.value)).more();\n    }\n  }, {\n    key: \"onClose\",\n    value: function onClose() {\n      var onClose = this.props.onClose;\n\n      if (onClose) {\n        onClose();\n      }\n    }\n  }, {\n    key: \"updateCollection\",\n    value: function updateCollection() {\n      var frameContent = this.frame.content.get();\n\n      if (frameContent && frameContent.collection) {\n        var collection = frameContent.collection; // clean all attachments we have in memory.\n\n        collection.toArray().forEach(function (model) {\n          return model.trigger('destroy', model);\n        }); // reset has more flag, if library had small amount of items all items may have been loaded before.\n\n        collection.mirroring._hasMore = true; // request items\n\n        collection.more();\n      }\n    }\n  }, {\n    key: \"openModal\",\n    value: function openModal() {\n      if (this.props.gallery) {\n        this.buildAndSetGalleryFrame();\n      }\n\n      this.frame.open();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return this.props.render({\n        open: this.openModal\n      });\n    }\n  }]);\n\n  return MediaUpload;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var media_upload = (media_upload_MediaUpload);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/components/index.js\n\n\n// EXTERNAL MODULE: external {\"this\":\"regeneratorRuntime\"}\nvar external_this_regeneratorRuntime_ = __webpack_require__(23);\nvar external_this_regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(external_this_regeneratorRuntime_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\nvar asyncToGenerator = __webpack_require__(46);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"blob\"]}\nvar external_this_wp_blob_ = __webpack_require__(44);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/utils/upload-media.js\n\n\n\n\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Browsers may use unexpected mime types, and they differ from browser to browser.\n * This function computes a flexible array of mime types from the mime type structured provided by the server.\n * Converts { jpg|jpeg|jpe: \"image/jpeg\" } into [ \"image/jpeg\", \"image/jpg\", \"image/jpeg\", \"image/jpe\" ]\n * The computation of this array instead of directly using the object,\n * solves the problem in chrome where mp3 files have audio/mp3 as mime type instead of audio/mpeg.\n * https://bugs.chromium.org/p/chromium/issues/detail?id=227004\n *\n * @param {?Object} wpMimeTypesObject Mime type object received from the server.\n *                                    Extensions are keys separated by '|' and values are mime types associated with an extension.\n *\n * @return {?Array} An array of mime types or the parameter passed if it was \"falsy\".\n */\n\nfunction getMimeTypesArray(wpMimeTypesObject) {\n  if (!wpMimeTypesObject) {\n    return wpMimeTypesObject;\n  }\n\n  return Object(external_this_lodash_[\"flatMap\"])(wpMimeTypesObject, function (mime, extensionsString) {\n    var _mime$split = mime.split('/'),\n        _mime$split2 = Object(slicedToArray[\"a\" /* default */])(_mime$split, 1),\n        type = _mime$split2[0];\n\n    var extensions = extensionsString.split('|');\n    return [mime].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"map\"])(extensions, function (extension) {\n      return \"\".concat(type, \"/\").concat(extension);\n    })));\n  });\n}\n/**\n *\tMedia Upload is used by audio, image, gallery, video, and file blocks to\n *\thandle uploading a media file when a file upload button is activated.\n *\n *\tTODO: future enhancement to add an upload indicator.\n *\n * @param   {Object}   $0                    Parameters object passed to the function.\n * @param   {?Array}   $0.allowedTypes       Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param   {?Object}  $0.additionalData     Additional data to include in the request.\n * @param   {Array}    $0.filesList          List of files.\n * @param   {?number}  $0.maxUploadFileSize  Maximum upload size in bytes allowed for the site.\n * @param   {Function} $0.onError            Function called when an error happens.\n * @param   {Function} $0.onFileChange       Function called each time a file or a temporary representation of the file is available.\n * @param   {?Object}  $0.wpAllowedMimeTypes List of allowed mime types and file extensions.\n */\n\nfunction uploadMedia(_x) {\n  return _uploadMedia.apply(this, arguments);\n}\n/**\n * @param {File}    file           Media File to Save.\n * @param {?Object} additionalData Additional data to include in the request.\n *\n * @return {Promise} Media Object Promise.\n */\n\nfunction _uploadMedia() {\n  _uploadMedia = Object(asyncToGenerator[\"a\" /* default */])( /*#__PURE__*/external_this_regeneratorRuntime_default.a.mark(function _callee(_ref) {\n    var allowedTypes, _ref$additionalData, additionalData, filesList, maxUploadFileSize, _ref$onError, onError, onFileChange, _ref$wpAllowedMimeTyp, wpAllowedMimeTypes, files, filesSet, setAndUpdateFiles, isAllowedType, allowedMimeTypesForUser, isAllowedMimeTypeForUser, triggerError, validFiles, _iterator, _step, _mediaFile, idx, mediaFile, savedMedia, mediaObject, message;\n\n    return external_this_regeneratorRuntime_default.a.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            allowedTypes = _ref.allowedTypes, _ref$additionalData = _ref.additionalData, additionalData = _ref$additionalData === void 0 ? {} : _ref$additionalData, filesList = _ref.filesList, maxUploadFileSize = _ref.maxUploadFileSize, _ref$onError = _ref.onError, onError = _ref$onError === void 0 ? external_this_lodash_[\"noop\"] : _ref$onError, onFileChange = _ref.onFileChange, _ref$wpAllowedMimeTyp = _ref.wpAllowedMimeTypes, wpAllowedMimeTypes = _ref$wpAllowedMimeTyp === void 0 ? null : _ref$wpAllowedMimeTyp;\n            // Cast filesList to array\n            files = Object(toConsumableArray[\"a\" /* default */])(filesList);\n            filesSet = [];\n\n            setAndUpdateFiles = function setAndUpdateFiles(idx, value) {\n              Object(external_this_wp_blob_[\"revokeBlobURL\"])(Object(external_this_lodash_[\"get\"])(filesSet, [idx, 'url']));\n              filesSet[idx] = value;\n              onFileChange(Object(external_this_lodash_[\"compact\"])(filesSet));\n            }; // Allowed type specified by consumer\n\n\n            isAllowedType = function isAllowedType(fileType) {\n              if (!allowedTypes) {\n                return true;\n              }\n\n              return Object(external_this_lodash_[\"some\"])(allowedTypes, function (allowedType) {\n                // If a complete mimetype is specified verify if it matches exactly the mime type of the file.\n                if (Object(external_this_lodash_[\"includes\"])(allowedType, '/')) {\n                  return allowedType === fileType;\n                } // Otherwise a general mime type is used and we should verify if the file mimetype starts with it.\n\n\n                return Object(external_this_lodash_[\"startsWith\"])(fileType, \"\".concat(allowedType, \"/\"));\n              });\n            }; // Allowed types for the current WP_User\n\n\n            allowedMimeTypesForUser = getMimeTypesArray(wpAllowedMimeTypes);\n\n            isAllowedMimeTypeForUser = function isAllowedMimeTypeForUser(fileType) {\n              return Object(external_this_lodash_[\"includes\"])(allowedMimeTypesForUser, fileType);\n            }; // Build the error message including the filename\n\n\n            triggerError = function triggerError(error) {\n              error.message = [Object(external_this_wp_element_[\"createElement\"])(\"strong\", {\n                key: \"filename\"\n              }, error.file.name), ': ', error.message];\n              onError(error);\n            };\n\n            validFiles = [];\n            _iterator = _createForOfIteratorHelper(files);\n            _context.prev = 10;\n\n            _iterator.s();\n\n          case 12:\n            if ((_step = _iterator.n()).done) {\n              _context.next = 31;\n              break;\n            }\n\n            _mediaFile = _step.value;\n\n            if (!(allowedMimeTypesForUser && _mediaFile.type && !isAllowedMimeTypeForUser(_mediaFile.type))) {\n              _context.next = 17;\n              break;\n            }\n\n            triggerError({\n              code: 'MIME_TYPE_NOT_ALLOWED_FOR_USER',\n              message: Object(external_this_wp_i18n_[\"__\"])('Sorry, this file type is not permitted for security reasons.'),\n              file: _mediaFile\n            });\n            return _context.abrupt(\"continue\", 29);\n\n          case 17:\n            if (!(_mediaFile.type && !isAllowedType(_mediaFile.type))) {\n              _context.next = 20;\n              break;\n            }\n\n            triggerError({\n              code: 'MIME_TYPE_NOT_SUPPORTED',\n              message: Object(external_this_wp_i18n_[\"__\"])('Sorry, this file type is not supported here.'),\n              file: _mediaFile\n            });\n            return _context.abrupt(\"continue\", 29);\n\n          case 20:\n            if (!(maxUploadFileSize && _mediaFile.size > maxUploadFileSize)) {\n              _context.next = 23;\n              break;\n            }\n\n            triggerError({\n              code: 'SIZE_ABOVE_LIMIT',\n              message: Object(external_this_wp_i18n_[\"__\"])('This file exceeds the maximum upload size for this site.'),\n              file: _mediaFile\n            });\n            return _context.abrupt(\"continue\", 29);\n\n          case 23:\n            if (!(_mediaFile.size <= 0)) {\n              _context.next = 26;\n              break;\n            }\n\n            triggerError({\n              code: 'EMPTY_FILE',\n              message: Object(external_this_wp_i18n_[\"__\"])('This file is empty.'),\n              file: _mediaFile\n            });\n            return _context.abrupt(\"continue\", 29);\n\n          case 26:\n            validFiles.push(_mediaFile); // Set temporary URL to create placeholder media file, this is replaced\n            // with final file from media gallery when upload is `done` below\n\n            filesSet.push({\n              url: Object(external_this_wp_blob_[\"createBlobURL\"])(_mediaFile)\n            });\n            onFileChange(filesSet);\n\n          case 29:\n            _context.next = 12;\n            break;\n\n          case 31:\n            _context.next = 36;\n            break;\n\n          case 33:\n            _context.prev = 33;\n            _context.t0 = _context[\"catch\"](10);\n\n            _iterator.e(_context.t0);\n\n          case 36:\n            _context.prev = 36;\n\n            _iterator.f();\n\n            return _context.finish(36);\n\n          case 39:\n            idx = 0;\n\n          case 40:\n            if (!(idx < validFiles.length)) {\n              _context.next = 59;\n              break;\n            }\n\n            mediaFile = validFiles[idx];\n            _context.prev = 42;\n            _context.next = 45;\n            return createMediaFromFile(mediaFile, additionalData);\n\n          case 45:\n            savedMedia = _context.sent;\n            mediaObject = _objectSpread({}, Object(external_this_lodash_[\"omit\"])(savedMedia, ['alt_text', 'source_url']), {\n              alt: savedMedia.alt_text,\n              caption: Object(external_this_lodash_[\"get\"])(savedMedia, ['caption', 'raw'], ''),\n              title: savedMedia.title.raw,\n              url: savedMedia.source_url\n            });\n            setAndUpdateFiles(idx, mediaObject);\n            _context.next = 56;\n            break;\n\n          case 50:\n            _context.prev = 50;\n            _context.t1 = _context[\"catch\"](42);\n            // Reset to empty on failure.\n            setAndUpdateFiles(idx, null);\n            message = void 0;\n\n            if (Object(external_this_lodash_[\"has\"])(_context.t1, ['message'])) {\n              message = Object(external_this_lodash_[\"get\"])(_context.t1, ['message']);\n            } else {\n              message = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: file name\n              Object(external_this_wp_i18n_[\"__\"])('Error while uploading file %s to the media library.'), mediaFile.name);\n            }\n\n            onError({\n              code: 'GENERAL',\n              message: message,\n              file: mediaFile\n            });\n\n          case 56:\n            ++idx;\n            _context.next = 40;\n            break;\n\n          case 59:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, null, [[10, 33, 36, 39], [42, 50]]);\n  }));\n  return _uploadMedia.apply(this, arguments);\n}\n\nfunction createMediaFromFile(file, additionalData) {\n  // Create upload payload\n  var data = new window.FormData();\n  data.append('file', file, file.name || file.type.replace('/', '.'));\n  Object(external_this_lodash_[\"forEach\"])(additionalData, function (value, key) {\n    return data.append(key, value);\n  });\n  return external_this_wp_apiFetch_default()({\n    path: '/wp/v2/media',\n    body: data,\n    method: 'POST'\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/utils/index.js\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/media-utils/build-module/index.js\n\n\n\n\n/***/ }),\n\n/***/ 46:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _asyncToGenerator; });\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n  try {\n    var info = gen[key](arg);\n    var value = info.value;\n  } catch (error) {\n    reject(error);\n    return;\n  }\n\n  if (info.done) {\n    resolve(value);\n  } else {\n    Promise.resolve(value).then(_next, _throw);\n  }\n}\n\nfunction _asyncToGenerator(fn) {\n  return function () {\n    var self = this,\n        args = arguments;\n    return new Promise(function (resolve, reject) {\n      var gen = fn.apply(self, args);\n\n      function _next(value) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n      }\n\n      function _throw(err) {\n        asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n      }\n\n      _next(undefined);\n    });\n  };\n}\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-notices.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"notices\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 451);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 451:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"createNotice\", function() { return createNotice; });\n__webpack_require__.d(actions_namespaceObject, \"createSuccessNotice\", function() { return createSuccessNotice; });\n__webpack_require__.d(actions_namespaceObject, \"createInfoNotice\", function() { return createInfoNotice; });\n__webpack_require__.d(actions_namespaceObject, \"createErrorNotice\", function() { return createErrorNotice; });\n__webpack_require__.d(actions_namespaceObject, \"createWarningNotice\", function() { return createWarningNotice; });\n__webpack_require__.d(actions_namespaceObject, \"removeNotice\", function() { return removeNotice; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/notices/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getNotices\", function() { return getNotices; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/utils/on-sub-key.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Higher-order reducer creator which creates a combined reducer object, keyed\n * by a property on the action object.\n *\n * @param {string} actionProperty Action property by which to key object.\n *\n * @return {Function} Higher-order reducer.\n */\nvar on_sub_key_onSubKey = function onSubKey(actionProperty) {\n  return function (reducer) {\n    return function () {\n      var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var action = arguments.length > 1 ? arguments[1] : undefined;\n      // Retrieve subkey from action. Do not track if undefined; useful for cases\n      // where reducer is scoped by action shape.\n      var key = action[actionProperty];\n\n      if (key === undefined) {\n        return state;\n      } // Avoid updating state if unchanged. Note that this also accounts for a\n      // reducer which returns undefined on a key which is not yet tracked.\n\n\n      var nextKeyState = reducer(state[key], action);\n\n      if (nextKeyState === state[key]) {\n        return state;\n      }\n\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, key, nextKeyState));\n    };\n  };\n};\n/* harmony default export */ var on_sub_key = (on_sub_key_onSubKey);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/reducer.js\n\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Reducer returning the next notices state. The notices state is an object\n * where each key is a context, its value an array of notice objects.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nvar notices = on_sub_key('context')(function () {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'CREATE_NOTICE':\n      // Avoid duplicates on ID.\n      return [].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"reject\"])(state, {\n        id: action.notice.id\n      })), [action.notice]);\n\n    case 'REMOVE_NOTICE':\n      return Object(external_this_lodash_[\"reject\"])(state, {\n        id: action.id\n      });\n  }\n\n  return state;\n});\n/* harmony default export */ var store_reducer = (notices);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/constants.js\n/**\n * Default context to use for notice grouping when not otherwise specified. Its\n * specific value doesn't hold much meaning, but it must be reasonably unique\n * and, more importantly, referenced consistently in the store implementation.\n *\n * @type {string}\n */\nvar DEFAULT_CONTEXT = 'global';\n/**\n * Default notice status.\n *\n * @type {string}\n */\n\nvar DEFAULT_STATUS = 'info';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/actions.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * @typedef {Object} WPNoticeAction Object describing a user action option associated with a notice.\n *\n * @property {string}    label    Message to use as action label.\n * @property {?string}   url      Optional URL of resource if action incurs\n *                                browser navigation.\n * @property {?Function} onClick  Optional function to invoke when action is\n *                                triggered by user.\n *\n */\n\n/**\n * Returns an action object used in signalling that a notice is to be created.\n *\n * @param {string}                [status='info']              Notice status.\n * @param {string}                content                      Notice message.\n * @param {Object}                [options]                    Notice options.\n * @param {string}                [options.context='global']   Context under which to\n *                                                             group notice.\n * @param {string}                [options.id]                 Identifier for notice.\n *                                                             Automatically assigned\n *                                                             if not specified.\n * @param {boolean}               [options.isDismissible=true] Whether the notice can\n *                                                             be dismissed by user.\n * @param {string}                [options.type='default']     Type of notice, one of\n *                                                             `default`, or `snackbar`.\n * @param {boolean}               [options.speak=true]         Whether the notice\n *                                                             content should be\n *                                                             announced to screen\n *                                                             readers.\n * @param {Array<WPNoticeAction>} [options.actions]            User actions to be\n *                                                             presented with notice.\n *\n * @return {Object} Action object.\n */\n\nfunction createNotice() {\n  var status = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATUS;\n  var content = arguments.length > 1 ? arguments[1] : undefined;\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _options$speak = options.speak,\n      speak = _options$speak === void 0 ? true : _options$speak,\n      _options$isDismissibl = options.isDismissible,\n      isDismissible = _options$isDismissibl === void 0 ? true : _options$isDismissibl,\n      _options$context = options.context,\n      context = _options$context === void 0 ? DEFAULT_CONTEXT : _options$context,\n      _options$id = options.id,\n      id = _options$id === void 0 ? Object(external_this_lodash_[\"uniqueId\"])(context) : _options$id,\n      _options$actions = options.actions,\n      actions = _options$actions === void 0 ? [] : _options$actions,\n      _options$type = options.type,\n      type = _options$type === void 0 ? 'default' : _options$type,\n      __unstableHTML = options.__unstableHTML; // The supported value shape of content is currently limited to plain text\n  // strings. To avoid setting expectation that e.g. a WPElement could be\n  // supported, cast to a string.\n\n  content = String(content);\n  return {\n    type: 'CREATE_NOTICE',\n    context: context,\n    notice: {\n      id: id,\n      status: status,\n      content: content,\n      spokenMessage: speak ? content : null,\n      __unstableHTML: __unstableHTML,\n      isDismissible: isDismissible,\n      actions: actions,\n      type: type\n    }\n  };\n}\n/**\n * Returns an action object used in signalling that a success notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param {string} content   Notice message.\n * @param {Object} [options] Optional notice options.\n *\n * @return {Object} Action object.\n */\n\nfunction createSuccessNotice(content, options) {\n  return createNotice('success', content, options);\n}\n/**\n * Returns an action object used in signalling that an info notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param {string} content   Notice message.\n * @param {Object} [options] Optional notice options.\n *\n * @return {Object} Action object.\n */\n\nfunction createInfoNotice(content, options) {\n  return createNotice('info', content, options);\n}\n/**\n * Returns an action object used in signalling that an error notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param {string} content   Notice message.\n * @param {Object} [options] Optional notice options.\n *\n * @return {Object} Action object.\n */\n\nfunction createErrorNotice(content, options) {\n  return createNotice('error', content, options);\n}\n/**\n * Returns an action object used in signalling that a warning notice is to be\n * created. Refer to `createNotice` for options documentation.\n *\n * @see createNotice\n *\n * @param {string} content   Notice message.\n * @param {Object} [options] Optional notice options.\n *\n * @return {Object} Action object.\n */\n\nfunction createWarningNotice(content, options) {\n  return createNotice('warning', content, options);\n}\n/**\n * Returns an action object used in signalling that a notice is to be removed.\n *\n * @param {string} id                 Notice unique identifier.\n * @param {string} [context='global'] Optional context (grouping) in which the notice is\n *                                    intended to appear. Defaults to default context.\n *\n * @return {Object} Action object.\n */\n\nfunction removeNotice(id) {\n  var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;\n  return {\n    type: 'REMOVE_NOTICE',\n    id: id,\n    context: context\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/selectors.js\n/**\n * Internal dependencies\n */\n\n/** @typedef {import('./actions').WPNoticeAction} WPNoticeAction */\n\n/**\n * The default empty set of notices to return when there are no notices\n * assigned for a given notices context. This can occur if the getNotices\n * selector is called without a notice ever having been created for the\n * context. A shared value is used to ensure referential equality between\n * sequential selector calls, since otherwise `[] !== []`.\n *\n * @type {Array}\n */\n\nvar DEFAULT_NOTICES = [];\n/**\n * @typedef {Object} WPNotice Notice object.\n *\n * @property {string}  id               Unique identifier of notice.\n * @property {string}  status           Status of notice, one of `success`,\n *                                      `info`, `error`, or `warning`. Defaults\n *                                      to `info`.\n * @property {string}  content          Notice message.\n * @property {string}  spokenMessage    Audibly announced message text used by\n *                                      assistive technologies.\n * @property {string}  __unstableHTML   Notice message as raw HTML. Intended to\n *                                      serve primarily for compatibility of\n *                                      server-rendered notices, and SHOULD NOT\n *                                      be used for notices. It is subject to\n *                                      removal without notice.\n * @property {boolean} isDismissible    Whether the notice can be dismissed by\n *                                      user. Defaults to `true`.\n * @property {string}  type             Type of notice, one of `default`,\n *                                      or `snackbar`. Defaults to `default`.\n * @property {boolean} speak            Whether the notice content should be\n *                                      announced to screen readers. Defaults to\n *                                      `true`.\n * @property {WPNoticeAction[]} actions User actions to present with notice.\n *\n */\n\n/**\n * Returns all notices as an array, optionally for a given context. Defaults to\n * the global context.\n *\n * @param {Object}  state   Notices state.\n * @param {?string} context Optional grouping context.\n *\n * @return {WPNotice[]} Array of notices.\n */\n\nfunction getNotices(state) {\n  var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_CONTEXT;\n  return state[context] || DEFAULT_NOTICES;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/* harmony default export */ var store = (Object(external_this_wp_data_[\"registerStore\"])('core/notices', {\n  reducer: store_reducer,\n  actions: actions_namespaceObject,\n  selectors: selectors_namespaceObject\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/notices/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-nux.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"nux\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 454);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 147:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar close = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (close);\n\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 454:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"DotTip\", function() { return /* reexport */ dot_tip; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/nux/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"triggerGuide\", function() { return triggerGuide; });\n__webpack_require__.d(actions_namespaceObject, \"dismissTip\", function() { return dismissTip; });\n__webpack_require__.d(actions_namespaceObject, \"disableTips\", function() { return disableTips; });\n__webpack_require__.d(actions_namespaceObject, \"enableTips\", function() { return enableTips; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/nux/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getAssociatedGuide\", function() { return getAssociatedGuide; });\n__webpack_require__.d(selectors_namespaceObject, \"isTipVisible\", function() { return isTipVisible; });\n__webpack_require__.d(selectors_namespaceObject, \"areTipsEnabled\", function() { return selectors_areTipsEnabled; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/reducer.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Reducer that tracks which tips are in a guide. Each guide is represented by\n * an array which contains the tip identifiers contained within that guide.\n *\n * @param {Array} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Array} Updated state.\n */\n\nfunction guides() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'TRIGGER_GUIDE':\n      return [].concat(Object(toConsumableArray[\"a\" /* default */])(state), [action.tipIds]);\n  }\n\n  return state;\n}\n/**\n * Reducer that tracks whether or not tips are globally enabled.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\n\nfunction areTipsEnabled() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'DISABLE_TIPS':\n      return false;\n\n    case 'ENABLE_TIPS':\n      return true;\n  }\n\n  return state;\n}\n/**\n * Reducer that tracks which tips have been dismissed. If the state object\n * contains a tip identifier, then that tip is dismissed.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction dismissedTips() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'DISMISS_TIP':\n      return _objectSpread({}, state, Object(defineProperty[\"a\" /* default */])({}, action.id, true));\n\n    case 'ENABLE_TIPS':\n      return {};\n  }\n\n  return state;\n}\nvar preferences = Object(external_this_wp_data_[\"combineReducers\"])({\n  areTipsEnabled: areTipsEnabled,\n  dismissedTips: dismissedTips\n});\n/* harmony default export */ var reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  guides: guides,\n  preferences: preferences\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/actions.js\n/**\n * Returns an action object that, when dispatched, presents a guide that takes\n * the user through a series of tips step by step.\n *\n * @param {string[]} tipIds Which tips to show in the guide.\n *\n * @return {Object} Action object.\n */\nfunction triggerGuide(tipIds) {\n  return {\n    type: 'TRIGGER_GUIDE',\n    tipIds: tipIds\n  };\n}\n/**\n * Returns an action object that, when dispatched, dismisses the given tip. A\n * dismissed tip will not show again.\n *\n * @param {string} id The tip to dismiss.\n *\n * @return {Object} Action object.\n */\n\nfunction dismissTip(id) {\n  return {\n    type: 'DISMISS_TIP',\n    id: id\n  };\n}\n/**\n * Returns an action object that, when dispatched, prevents all tips from\n * showing again.\n *\n * @return {Object} Action object.\n */\n\nfunction disableTips() {\n  return {\n    type: 'DISABLE_TIPS'\n  };\n}\n/**\n * Returns an action object that, when dispatched, makes all tips show again.\n *\n * @return {Object} Action object.\n */\n\nfunction enableTips() {\n  return {\n    type: 'ENABLE_TIPS'\n  };\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/selectors.js\n\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * An object containing information about a guide.\n *\n * @typedef {Object} NUXGuideInfo\n * @property {string[]} tipIds       Which tips the guide contains.\n * @property {?string}  currentTipId The guide's currently showing tip.\n * @property {?string}  nextTipId    The guide's next tip to show.\n */\n\n/**\n * Returns an object describing the guide, if any, that the given tip is a part\n * of.\n *\n * @param {Object} state Global application state.\n * @param {string} tipId The tip to query.\n *\n * @return {?NUXGuideInfo} Information about the associated guide.\n */\n\nvar getAssociatedGuide = Object(rememo[\"a\" /* default */])(function (state, tipId) {\n  var _iterator = _createForOfIteratorHelper(state.guides),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var tipIds = _step.value;\n\n      if (Object(external_this_lodash_[\"includes\"])(tipIds, tipId)) {\n        var nonDismissedTips = Object(external_this_lodash_[\"difference\"])(tipIds, Object(external_this_lodash_[\"keys\"])(state.preferences.dismissedTips));\n\n        var _nonDismissedTips = Object(slicedToArray[\"a\" /* default */])(nonDismissedTips, 2),\n            _nonDismissedTips$ = _nonDismissedTips[0],\n            currentTipId = _nonDismissedTips$ === void 0 ? null : _nonDismissedTips$,\n            _nonDismissedTips$2 = _nonDismissedTips[1],\n            nextTipId = _nonDismissedTips$2 === void 0 ? null : _nonDismissedTips$2;\n\n        return {\n          tipIds: tipIds,\n          currentTipId: currentTipId,\n          nextTipId: nextTipId\n        };\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return null;\n}, function (state) {\n  return [state.guides, state.preferences.dismissedTips];\n});\n/**\n * Determines whether or not the given tip is showing. Tips are hidden if they\n * are disabled, have been dismissed, or are not the current tip in any\n * guide that they have been added to.\n *\n * @param {Object} state Global application state.\n * @param {string} tipId The tip to query.\n *\n * @return {boolean} Whether or not the given tip is showing.\n */\n\nfunction isTipVisible(state, tipId) {\n  if (!state.preferences.areTipsEnabled) {\n    return false;\n  }\n\n  if (Object(external_this_lodash_[\"has\"])(state.preferences.dismissedTips, [tipId])) {\n    return false;\n  }\n\n  var associatedGuide = getAssociatedGuide(state, tipId);\n\n  if (associatedGuide && associatedGuide.currentTipId !== tipId) {\n    return false;\n  }\n\n  return true;\n}\n/**\n * Returns whether or not tips are globally enabled.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether tips are globally enabled.\n */\n\nfunction selectors_areTipsEnabled(state) {\n  return state.preferences.areTipsEnabled;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nvar store = Object(external_this_wp_data_[\"registerStore\"])('core/nux', {\n  reducer: reducer,\n  actions: actions_namespaceObject,\n  selectors: selectors_namespaceObject,\n  persist: ['preferences']\n});\n/* harmony default export */ var build_module_store = (store);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/close.js\nvar library_close = __webpack_require__(147);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/components/dot-tip/index.js\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\n\nfunction onClick(event) {\n  // Tips are often nested within buttons. We stop propagation so that clicking\n  // on a tip doesn't result in the button being clicked.\n  event.stopPropagation();\n}\n\nfunction DotTip(_ref) {\n  var _ref$position = _ref.position,\n      position = _ref$position === void 0 ? 'middle right' : _ref$position,\n      children = _ref.children,\n      isVisible = _ref.isVisible,\n      hasNextTip = _ref.hasNextTip,\n      onDismiss = _ref.onDismiss,\n      onDisable = _ref.onDisable;\n  var anchorParent = Object(external_this_wp_element_[\"useRef\"])(null);\n  var onFocusOutsideCallback = Object(external_this_wp_element_[\"useCallback\"])(function (event) {\n    if (!anchorParent.current) {\n      return;\n    }\n\n    if (anchorParent.current.contains(event.relatedTarget)) {\n      return;\n    }\n\n    onDisable();\n  }, [onDisable, anchorParent]);\n\n  if (!isVisible) {\n    return null;\n  }\n\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Popover\"], {\n    className: \"nux-dot-tip\",\n    position: position,\n    noArrow: true,\n    focusOnMount: \"container\",\n    shouldAnchorIncludePadding: true,\n    role: \"dialog\",\n    \"aria-label\": Object(external_this_wp_i18n_[\"__\"])('Editor tips'),\n    onClick: onClick,\n    onFocusOutside: onFocusOutsideCallback\n  }, Object(external_this_wp_element_[\"createElement\"])(\"p\", null, children), Object(external_this_wp_element_[\"createElement\"])(\"p\", null, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    isLink: true,\n    onClick: onDismiss\n  }, hasNextTip ? Object(external_this_wp_i18n_[\"__\"])('See next tip') : Object(external_this_wp_i18n_[\"__\"])('Got it'))), Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Button\"], {\n    className: \"nux-dot-tip__disable\",\n    icon: library_close[\"a\" /* default */],\n    label: Object(external_this_wp_i18n_[\"__\"])('Disable tips'),\n    onClick: onDisable\n  }));\n}\n/* harmony default export */ var dot_tip = (Object(external_this_wp_compose_[\"compose\"])(Object(external_this_wp_data_[\"withSelect\"])(function (select, _ref2) {\n  var tipId = _ref2.tipId;\n\n  var _select = select('core/nux'),\n      isTipVisible = _select.isTipVisible,\n      getAssociatedGuide = _select.getAssociatedGuide;\n\n  var associatedGuide = getAssociatedGuide(tipId);\n  return {\n    isVisible: isTipVisible(tipId),\n    hasNextTip: !!(associatedGuide && associatedGuide.nextTipId)\n  };\n}), Object(external_this_wp_data_[\"withDispatch\"])(function (dispatch, _ref3) {\n  var tipId = _ref3.tipId;\n\n  var _dispatch = dispatch('core/nux'),\n      dismissTip = _dispatch.dismissTip,\n      disableTips = _dispatch.disableTips;\n\n  return {\n    onDismiss: function onDismiss() {\n      dismissTip(tipId);\n    },\n    onDisable: function onDisable() {\n      disableTips();\n    }\n  };\n}))(DotTip));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/nux/build-module/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nexternal_this_wp_deprecated_default()('wp.nux', {\n  hint: 'wp.components.Guide can be used to show a user guide.'\n});\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-plugins.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"plugins\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 457);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 32:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"hooks\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 416:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0);\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6);\n/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);\n\n\n/**\n * WordPress dependencies\n */\n\nvar plugins = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"SVG\"], {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 24 24\"\n}, Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__[\"createElement\"])(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__[\"Path\"], {\n  d: \"M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z\"\n}));\n/* harmony default export */ __webpack_exports__[\"a\"] = (plugins);\n\n\n/***/ }),\n\n/***/ 457:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"PluginArea\", function() { return /* reexport */ plugin_area; });\n__webpack_require__.d(__webpack_exports__, \"withPluginContext\", function() { return /* reexport */ plugin_context_withPluginContext; });\n__webpack_require__.d(__webpack_exports__, \"registerPlugin\", function() { return /* reexport */ registerPlugin; });\n__webpack_require__.d(__webpack_exports__, \"unregisterPlugin\", function() { return /* reexport */ unregisterPlugin; });\n__webpack_require__.d(__webpack_exports__, \"getPlugin\", function() { return /* reexport */ getPlugin; });\n__webpack_require__.d(__webpack_exports__, \"getPlugins\", function() { return /* reexport */ getPlugins; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\nvar assertThisInitialized = __webpack_require__(12);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"hooks\"]}\nvar external_this_wp_hooks_ = __webpack_require__(32);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-context/index.js\n\n\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar _createContext = Object(external_this_wp_element_[\"createContext\"])({\n  name: null,\n  icon: null\n}),\n    Consumer = _createContext.Consumer,\n    Provider = _createContext.Provider;\n\n\n/**\n * A Higher Order Component used to inject Plugin context to the\n * wrapped component.\n *\n * @param {Function} mapContextToProps Function called on every context change,\n *                                     expected to return object of props to\n *                                     merge with the component's own props.\n *\n * @return {WPComponent} Enhanced component with injected context as props.\n */\n\nvar plugin_context_withPluginContext = function withPluginContext(mapContextToProps) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (OriginalComponent) {\n    return function (props) {\n      return Object(external_this_wp_element_[\"createElement\"])(Consumer, null, function (context) {\n        return Object(external_this_wp_element_[\"createElement\"])(OriginalComponent, Object(esm_extends[\"a\" /* default */])({}, props, mapContextToProps(context, props)));\n      });\n    };\n  }, 'withPluginContext');\n};\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/plugins.js\nvar plugins = __webpack_require__(416);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/api/index.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/* eslint no-console: [ 'error', { allow: [ 'error' ] } ] */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * External dependencies\n */\n\n\n/**\n * Defined behavior of a plugin type.\n *\n * @typedef {Object} WPPlugin\n *\n * @property {string}                    name   A string identifying the plugin. Must be\n *                                              unique across all registered plugins.\n *                                              unique across all registered plugins.\n * @property {string|WPElement|Function} icon   An icon to be shown in the UI. It can\n *                                              be a slug of the Dashicon, or an element\n *                                              (or function returning an element) if you\n *                                              choose to render your own SVG.\n * @property {Function}                  render A component containing the UI elements\n *                                              to be rendered.\n */\n\n/**\n * Plugin definitions keyed by plugin name.\n *\n * @type {Object.<string,WPPlugin>}\n */\n\nvar api_plugins = {};\n/**\n * Registers a plugin to the editor.\n *\n * @param {string}   name     A string identifying the plugin.Must be\n *                            unique across all registered plugins.\n * @param {WPPlugin} settings The settings for this plugin.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var Fragment = wp.element.Fragment;\n * var PluginSidebar = wp.editPost.PluginSidebar;\n * var PluginSidebarMoreMenuItem = wp.editPost.PluginSidebarMoreMenuItem;\n * var registerPlugin = wp.plugins.registerPlugin;\n * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.\n *\n * function Component() {\n * \treturn el(\n * \t\tFragment,\n * \t\t{},\n * \t\tel(\n * \t\t\tPluginSidebarMoreMenuItem,\n * \t\t\t{\n * \t\t\t\ttarget: 'sidebar-name',\n * \t\t\t},\n * \t\t\t'My Sidebar'\n * \t\t),\n * \t\tel(\n * \t\t\tPluginSidebar,\n * \t\t\t{\n * \t\t\t\tname: 'sidebar-name',\n * \t\t\t\ttitle: 'My Sidebar',\n * \t\t\t},\n * \t\t\t'Content of the sidebar'\n * \t\t)\n * \t);\n * }\n * registerPlugin( 'plugin-name', {\n * \ticon: moreIcon,\n * \trender: Component,\n * } );\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```js\n * // Using ESNext syntax\n * import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/edit-post';\n * import { registerPlugin } from '@wordpress/plugins';\n * import { more } from '@wordpress/icons';\n *\n * const Component = () => (\n * \t<>\n * \t\t<PluginSidebarMoreMenuItem\n * \t\t\ttarget=\"sidebar-name\"\n * \t\t>\n * \t\t\tMy Sidebar\n * \t\t</PluginSidebarMoreMenuItem>\n * \t\t<PluginSidebar\n * \t\t\tname=\"sidebar-name\"\n * \t\t\ttitle=\"My Sidebar\"\n * \t\t>\n * \t\t\tContent of the sidebar\n * \t\t</PluginSidebar>\n * \t</>\n * );\n *\n * registerPlugin( 'plugin-name', {\n * \ticon: more,\n * \trender: Component,\n * } );\n * ```\n *\n * @return {WPPlugin} The final plugin settings object.\n */\n\nfunction registerPlugin(name, settings) {\n  if (Object(esm_typeof[\"a\" /* default */])(settings) !== 'object') {\n    console.error('No settings object provided!');\n    return null;\n  }\n\n  if (typeof name !== 'string') {\n    console.error('Plugin names must be strings.');\n    return null;\n  }\n\n  if (!/^[a-z][a-z0-9-]*$/.test(name)) {\n    console.error('Plugin names must include only lowercase alphanumeric characters or dashes, and start with a letter. Example: \"my-plugin\".');\n    return null;\n  }\n\n  if (api_plugins[name]) {\n    console.error(\"Plugin \\\"\".concat(name, \"\\\" is already registered.\"));\n  }\n\n  settings = Object(external_this_wp_hooks_[\"applyFilters\"])('plugins.registerPlugin', settings, name);\n\n  if (!Object(external_this_lodash_[\"isFunction\"])(settings.render)) {\n    console.error('The \"render\" property must be specified and must be a valid function.');\n    return null;\n  }\n\n  api_plugins[name] = _objectSpread({\n    name: name,\n    icon: plugins[\"a\" /* default */]\n  }, settings);\n  Object(external_this_wp_hooks_[\"doAction\"])('plugins.pluginRegistered', settings, name);\n  return settings;\n}\n/**\n * Unregisters a plugin by name.\n *\n * @param {string} name Plugin name.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var unregisterPlugin = wp.plugins.unregisterPlugin;\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```js\n * // Using ESNext syntax\n * import { unregisterPlugin } from '@wordpress/plugins';\n *\n * unregisterPlugin( 'plugin-name' );\n * ```\n *\n * @return {?WPPlugin} The previous plugin settings object, if it has been\n *                     successfully unregistered; otherwise `undefined`.\n */\n\nfunction unregisterPlugin(name) {\n  if (!api_plugins[name]) {\n    console.error('Plugin \"' + name + '\" is not registered.');\n    return;\n  }\n\n  var oldPlugin = api_plugins[name];\n  delete api_plugins[name];\n  Object(external_this_wp_hooks_[\"doAction\"])('plugins.pluginUnregistered', oldPlugin, name);\n  return oldPlugin;\n}\n/**\n * Returns a registered plugin settings.\n *\n * @param {string} name Plugin name.\n *\n * @return {?WPPlugin} Plugin setting.\n */\n\nfunction getPlugin(name) {\n  return api_plugins[name];\n}\n/**\n * Returns all registered plugins.\n *\n * @return {WPPlugin[]} Plugin settings.\n */\n\nfunction getPlugins() {\n  return Object.values(api_plugins);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/plugin-area/index.js\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * A component that renders all plugin fills in a hidden div.\n *\n * @example\n * <caption>ES5</caption>\n * ```js\n * // Using ES5 syntax\n * var el = wp.element.createElement;\n * var PluginArea = wp.plugins.PluginArea;\n *\n * function Layout() {\n * \treturn el(\n * \t\t'div',\n * \t\t{},\n * \t\t'Content of the page',\n * \t\tPluginArea\n * \t);\n * }\n * ```\n *\n * @example\n * <caption>ESNext</caption>\n * ```js\n * // Using ESNext syntax\n * import { PluginArea } from '@wordpress/plugins';\n *\n * const Layout = () => (\n * \t<div>\n * \t\tContent of the page\n * \t\t<PluginArea />\n * \t</div>\n * );\n * ```\n *\n * @return {WPComponent} The component to be rendered.\n */\n\nvar plugin_area_PluginArea = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(PluginArea, _Component);\n\n  var _super = _createSuper(PluginArea);\n\n  function PluginArea() {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, PluginArea);\n\n    _this = _super.apply(this, arguments);\n    _this.setPlugins = _this.setPlugins.bind(Object(assertThisInitialized[\"a\" /* default */])(_this));\n    _this.state = _this.getCurrentPluginsState();\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(PluginArea, [{\n    key: \"getCurrentPluginsState\",\n    value: function getCurrentPluginsState() {\n      return {\n        plugins: Object(external_this_lodash_[\"map\"])(getPlugins(), function (_ref) {\n          var icon = _ref.icon,\n              name = _ref.name,\n              render = _ref.render;\n          return {\n            Plugin: render,\n            context: {\n              name: name,\n              icon: icon\n            }\n          };\n        })\n      };\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      Object(external_this_wp_hooks_[\"addAction\"])('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered', this.setPlugins);\n      Object(external_this_wp_hooks_[\"addAction\"])('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered', this.setPlugins);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      Object(external_this_wp_hooks_[\"removeAction\"])('plugins.pluginRegistered', 'core/plugins/plugin-area/plugins-registered');\n      Object(external_this_wp_hooks_[\"removeAction\"])('plugins.pluginUnregistered', 'core/plugins/plugin-area/plugins-unregistered');\n    }\n  }, {\n    key: \"setPlugins\",\n    value: function setPlugins() {\n      this.setState(this.getCurrentPluginsState);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return Object(external_this_wp_element_[\"createElement\"])(\"div\", {\n        style: {\n          display: 'none'\n        }\n      }, Object(external_this_lodash_[\"map\"])(this.state.plugins, function (_ref2) {\n        var context = _ref2.context,\n            Plugin = _ref2.Plugin;\n        return Object(external_this_wp_element_[\"createElement\"])(Provider, {\n          key: context.name,\n          value: context\n        }, Object(external_this_wp_element_[\"createElement\"])(Plugin, null));\n      }));\n    }\n  }]);\n\n  return PluginArea;\n}(external_this_wp_element_[\"Component\"]);\n\n/* harmony default export */ var plugin_area = (plugin_area_PluginArea);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/components/index.js\n\n\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/plugins/build-module/index.js\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"primitives\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-primitives.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"primitives\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 459);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 459:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"Circle\", function() { return /* reexport */ svg_Circle; });\n__webpack_require__.d(__webpack_exports__, \"G\", function() { return /* reexport */ svg_G; });\n__webpack_require__.d(__webpack_exports__, \"Path\", function() { return /* reexport */ svg_Path; });\n__webpack_require__.d(__webpack_exports__, \"Polygon\", function() { return /* reexport */ svg_Polygon; });\n__webpack_require__.d(__webpack_exports__, \"Rect\", function() { return /* reexport */ svg_Rect; });\n__webpack_require__.d(__webpack_exports__, \"Defs\", function() { return /* reexport */ svg_Defs; });\n__webpack_require__.d(__webpack_exports__, \"RadialGradient\", function() { return /* reexport */ svg_RadialGradient; });\n__webpack_require__.d(__webpack_exports__, \"LinearGradient\", function() { return /* reexport */ svg_LinearGradient; });\n__webpack_require__.d(__webpack_exports__, \"Stop\", function() { return /* reexport */ svg_Stop; });\n__webpack_require__.d(__webpack_exports__, \"SVG\", function() { return /* reexport */ svg_SVG; });\n__webpack_require__.d(__webpack_exports__, \"HorizontalRule\", function() { return /* reexport */ HorizontalRule; });\n__webpack_require__.d(__webpack_exports__, \"BlockQuotation\", function() { return /* reexport */ BlockQuotation; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/primitives/build-module/svg/index.js\n\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n // Disable reason: JSDoc linter doesn't seem to parse the union (`&`) correctly.\n\n/* eslint-disable jsdoc/valid-types */\n\n/** @typedef {{isPressed?: boolean} & import('react').ComponentPropsWithoutRef<'svg'>} SVGProps */\n\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @param {import('react').ComponentPropsWithoutRef<'circle'>} props\n *\n * @return {JSX.Element} Circle component\n */\n\nvar svg_Circle = function Circle(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('circle', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'g'>} props\n *\n * @return {JSX.Element} G component\n */\n\nvar svg_G = function G(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('g', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'path'>} props\n *\n * @return {JSX.Element} Path component\n */\n\nvar svg_Path = function Path(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('path', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'polygon'>} props\n *\n * @return {JSX.Element} Polygon component\n */\n\nvar svg_Polygon = function Polygon(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('polygon', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'rect'>} props\n *\n * @return {JSX.Element} Rect component\n */\n\nvar svg_Rect = function Rect(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('rect', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'defs'>} props\n *\n * @return {JSX.Element} Defs component\n */\n\nvar svg_Defs = function Defs(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('defs', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'radialGradient'>} props\n *\n * @return {JSX.Element} RadialGradient component\n */\n\nvar svg_RadialGradient = function RadialGradient(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('radialGradient', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'linearGradient'>} props\n *\n * @return {JSX.Element} LinearGradient component\n */\n\nvar svg_LinearGradient = function LinearGradient(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('linearGradient', props);\n};\n/**\n * @param {import('react').ComponentPropsWithoutRef<'stop'>} props\n *\n * @return {JSX.Element} Stop component\n */\n\nvar svg_Stop = function Stop(props) {\n  return Object(external_this_wp_element_[\"createElement\"])('stop', props);\n};\n/**\n *\n * @param {SVGProps} props isPressed indicates whether the SVG should appear as pressed.\n *                         Other props will be passed through to svg component.\n *\n * @return {JSX.Element} Stop component\n */\n\nvar svg_SVG = function SVG(_ref) {\n  var className = _ref.className,\n      isPressed = _ref.isPressed,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"className\", \"isPressed\"]);\n\n  var appliedProps = _objectSpread({}, props, {\n    className: classnames_default()(className, {\n      'is-pressed': isPressed\n    }) || undefined,\n    role: 'img',\n    'aria-hidden': true,\n    focusable: false\n  }); // Disable reason: We need to have a way to render HTML tag for web.\n  // eslint-disable-next-line react/forbid-elements\n\n\n  return Object(external_this_wp_element_[\"createElement\"])(\"svg\", appliedProps);\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/primitives/build-module/horizontal-rule/index.js\nvar HorizontalRule = 'hr';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/primitives/build-module/block-quotation/index.js\nvar BlockQuotation = 'blockquote';\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/primitives/build-module/index.js\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-priority-queue.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"priorityQueue\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 463);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 463:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"createQueue\", function() { return /* binding */ build_module_createQueue; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/priority-queue/build-module/request-idle-callback.js\n/**\n * @typedef {( timeOrDeadline: IdleDeadline | number ) => void} Callback\n */\n\n/**\n * @return {(callback: Callback) => void} RequestIdleCallback\n */\nfunction createRequestIdleCallback() {\n  if (typeof window === 'undefined') {\n    return function (callback) {\n      setTimeout(function () {\n        return callback(Date.now());\n      }, 0);\n    };\n  }\n\n  return window.requestIdleCallback || window.requestAnimationFrame;\n}\n/* harmony default export */ var request_idle_callback = (createRequestIdleCallback());\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/priority-queue/build-module/index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Enqueued callback to invoke once idle time permits.\n *\n * @typedef {()=>void} WPPriorityQueueCallback\n */\n\n/**\n * An object used to associate callbacks in a particular context grouping.\n *\n * @typedef {{}} WPPriorityQueueContext\n */\n\n/**\n * Function to add callback to priority queue.\n *\n * @typedef {(element:WPPriorityQueueContext,item:WPPriorityQueueCallback)=>void} WPPriorityQueueAdd\n */\n\n/**\n * Function to flush callbacks from priority queue.\n *\n * @typedef {(element:WPPriorityQueueContext)=>boolean} WPPriorityQueueFlush\n */\n\n/**\n * Reset the queue.\n *\n * @typedef {()=>void} WPPriorityQueueReset\n */\n\n/**\n * Priority queue instance.\n *\n * @typedef {Object} WPPriorityQueue\n *\n * @property {WPPriorityQueueAdd}   add   Add callback to queue for context.\n * @property {WPPriorityQueueFlush} flush Flush queue for context.\n * @property {WPPriorityQueueReset} reset Reset queue.\n */\n\n/**\n * Creates a context-aware queue that only executes\n * the last task of a given context.\n *\n * @example\n *```js\n * import { createQueue } from '@wordpress/priority-queue';\n *\n * const queue = createQueue();\n *\n * // Context objects.\n * const ctx1 = {};\n * const ctx2 = {};\n *\n * // For a given context in the queue, only the last callback is executed.\n * queue.add( ctx1, () => console.log( 'This will be printed first' ) );\n * queue.add( ctx2, () => console.log( 'This won\\'t be printed' ) );\n * queue.add( ctx2, () => console.log( 'This will be printed second' ) );\n *```\n *\n * @return {WPPriorityQueue} Queue object with `add`, `flush` and `reset` methods.\n */\n\nvar build_module_createQueue = function createQueue() {\n  /** @type {WPPriorityQueueContext[]} */\n  var waitingList = [];\n  /** @type {WeakMap<WPPriorityQueueContext,WPPriorityQueueCallback>} */\n\n  var elementsMap = new WeakMap();\n  var isRunning = false;\n  /* eslint-disable jsdoc/valid-types */\n\n  /**\n   * Callback to process as much queue as time permits.\n   *\n   * @param {IdleDeadline|number} deadline Idle callback deadline object, or\n   *                                       animation frame timestamp.\n   */\n\n  /* eslint-enable */\n\n  var runWaitingList = function runWaitingList(deadline) {\n    var hasTimeRemaining = typeof deadline === 'number' ? function () {\n      return false;\n    } : function () {\n      return deadline.timeRemaining() > 0;\n    };\n\n    do {\n      if (waitingList.length === 0) {\n        isRunning = false;\n        return;\n      }\n\n      var nextElement =\n      /** @type {WPPriorityQueueContext} */\n      waitingList.shift();\n      var callback =\n      /** @type {WPPriorityQueueCallback} */\n      elementsMap.get(nextElement);\n      callback();\n      elementsMap.delete(nextElement);\n    } while (hasTimeRemaining());\n\n    request_idle_callback(runWaitingList);\n  };\n  /**\n   * Add a callback to the queue for a given context.\n   *\n   * @type {WPPriorityQueueAdd}\n   *\n   * @param {WPPriorityQueueContext}  element Context object.\n   * @param {WPPriorityQueueCallback} item    Callback function.\n   */\n\n\n  var add = function add(element, item) {\n    if (!elementsMap.has(element)) {\n      waitingList.push(element);\n    }\n\n    elementsMap.set(element, item);\n\n    if (!isRunning) {\n      isRunning = true;\n      request_idle_callback(runWaitingList);\n    }\n  };\n  /**\n   * Flushes queue for a given context, returning true if the flush was\n   * performed, or false if there is no queue for the given context.\n   *\n   * @type {WPPriorityQueueFlush}\n   *\n   * @param {WPPriorityQueueContext} element Context object.\n   *\n   * @return {boolean} Whether flush was performed.\n   */\n\n\n  var flush = function flush(element) {\n    if (!elementsMap.has(element)) {\n      return false;\n    }\n\n    var index = waitingList.indexOf(element);\n    waitingList.splice(index, 1);\n    var callback =\n    /** @type {WPPriorityQueueCallback} */\n    elementsMap.get(element);\n    elementsMap.delete(element);\n    callback();\n    return true;\n  };\n  /**\n   * Reset the queue without running the pending callbacks.\n   *\n   * @type {WPPriorityQueueReset}\n   */\n\n\n  var reset = function reset() {\n    waitingList = [];\n    elementsMap = new WeakMap();\n    isRunning = false;\n  };\n\n  return {\n    add: add,\n    flush: flush,\n    reset: reset\n  };\n};\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-redux-routine.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"reduxRoutine\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 460);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 152:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _keys = __webpack_require__(251);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar is = {\n  obj: function obj(value) {\n    return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !!value;\n  },\n  all: function all(value) {\n    return is.obj(value) && value.type === _keys2.default.all;\n  },\n  error: function error(value) {\n    return is.obj(value) && value.type === _keys2.default.error;\n  },\n  array: Array.isArray,\n  func: function func(value) {\n    return typeof value === 'function';\n  },\n  promise: function promise(value) {\n    return value && is.func(value.then);\n  },\n  iterator: function iterator(value) {\n    return value && is.func(value.next) && is.func(value.throw);\n  },\n  fork: function fork(value) {\n    return is.obj(value) && value.type === _keys2.default.fork;\n  },\n  join: function join(value) {\n    return is.obj(value) && value.type === _keys2.default.join;\n  },\n  race: function race(value) {\n    return is.obj(value) && value.type === _keys2.default.race;\n  },\n  call: function call(value) {\n    return is.obj(value) && value.type === _keys2.default.call;\n  },\n  cps: function cps(value) {\n    return is.obj(value) && value.type === _keys2.default.cps;\n  },\n  subscribe: function subscribe(value) {\n    return is.obj(value) && value.type === _keys2.default.subscribe;\n  },\n  channel: function channel(value) {\n    return is.obj(value) && is.func(value.subscribe);\n  }\n};\n\nexports.default = is;\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 250:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.createChannel = exports.subscribe = exports.cps = exports.apply = exports.call = exports.invoke = exports.delay = exports.race = exports.join = exports.fork = exports.error = exports.all = undefined;\n\nvar _keys = __webpack_require__(251);\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar all = exports.all = function all(value) {\n  return {\n    type: _keys2.default.all,\n    value: value\n  };\n};\n\nvar error = exports.error = function error(err) {\n  return {\n    type: _keys2.default.error,\n    error: err\n  };\n};\n\nvar fork = exports.fork = function fork(iterator) {\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  return {\n    type: _keys2.default.fork,\n    iterator: iterator,\n    args: args\n  };\n};\n\nvar join = exports.join = function join(task) {\n  return {\n    type: _keys2.default.join,\n    task: task\n  };\n};\n\nvar race = exports.race = function race(competitors) {\n  return {\n    type: _keys2.default.race,\n    competitors: competitors\n  };\n};\n\nvar delay = exports.delay = function delay(timeout) {\n  return new Promise(function (resolve) {\n    setTimeout(function () {\n      return resolve(true);\n    }, timeout);\n  });\n};\n\nvar invoke = exports.invoke = function invoke(func) {\n  for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    args[_key2 - 1] = arguments[_key2];\n  }\n\n  return {\n    type: _keys2.default.call,\n    func: func,\n    context: null,\n    args: args\n  };\n};\n\nvar call = exports.call = function call(func, context) {\n  for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n    args[_key3 - 2] = arguments[_key3];\n  }\n\n  return {\n    type: _keys2.default.call,\n    func: func,\n    context: context,\n    args: args\n  };\n};\n\nvar apply = exports.apply = function apply(func, context, args) {\n  return {\n    type: _keys2.default.call,\n    func: func,\n    context: context,\n    args: args\n  };\n};\n\nvar cps = exports.cps = function cps(func) {\n  for (var _len4 = arguments.length, args = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n    args[_key4 - 1] = arguments[_key4];\n  }\n\n  return {\n    type: _keys2.default.cps,\n    func: func,\n    args: args\n  };\n};\n\nvar subscribe = exports.subscribe = function subscribe(channel) {\n  return {\n    type: _keys2.default.subscribe,\n    channel: channel\n  };\n};\n\nvar createChannel = exports.createChannel = function createChannel(callback) {\n  var listeners = [];\n  var subscribe = function subscribe(l) {\n    listeners.push(l);\n    return function () {\n      return listeners.splice(listeners.indexOf(l), 1);\n    };\n  };\n  var next = function next(val) {\n    return listeners.forEach(function (l) {\n      return l(val);\n    });\n  };\n  callback(next);\n\n  return {\n    subscribe: subscribe\n  };\n};\n\n/***/ }),\n\n/***/ 251:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar keys = {\n  all: Symbol('all'),\n  error: Symbol('error'),\n  fork: Symbol('fork'),\n  join: Symbol('join'),\n  race: Symbol('race'),\n  call: Symbol('call'),\n  cps: Symbol('cps'),\n  subscribe: Symbol('subscribe')\n};\n\nexports.default = keys;\n\n/***/ }),\n\n/***/ 272:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.wrapControls = exports.asyncControls = exports.create = undefined;\n\nvar _helpers = __webpack_require__(250);\n\nObject.keys(_helpers).forEach(function (key) {\n  if (key === \"default\") return;\n  Object.defineProperty(exports, key, {\n    enumerable: true,\n    get: function get() {\n      return _helpers[key];\n    }\n  });\n});\n\nvar _create = __webpack_require__(422);\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _async = __webpack_require__(424);\n\nvar _async2 = _interopRequireDefault(_async);\n\nvar _wrap = __webpack_require__(426);\n\nvar _wrap2 = _interopRequireDefault(_wrap);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.create = _create2.default;\nexports.asyncControls = _async2.default;\nexports.wrapControls = _wrap2.default;\n\n/***/ }),\n\n/***/ 273:\n/***/ (function(module, exports) {\n\nmodule.exports = isPromise;\nmodule.exports.default = isPromise;\n\nfunction isPromise(obj) {\n  return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n}\n\n\n/***/ }),\n\n/***/ 422:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _builtin = __webpack_require__(423);\n\nvar _builtin2 = _interopRequireDefault(_builtin);\n\nvar _is = __webpack_require__(152);\n\nvar _is2 = _interopRequireDefault(_is);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar create = function create() {\n  var userControls = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n\n  var controls = [].concat(_toConsumableArray(userControls), _toConsumableArray(_builtin2.default));\n\n  var runtime = function runtime(input) {\n    var success = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];\n    var error = arguments.length <= 2 || arguments[2] === undefined ? function () {} : arguments[2];\n\n    var iterate = function iterate(gen) {\n      var yieldValue = function yieldValue(isError) {\n        return function (ret) {\n          try {\n            var _ref = isError ? gen.throw(ret) : gen.next(ret);\n\n            var value = _ref.value;\n            var done = _ref.done;\n\n            if (done) return success(value);\n            next(value);\n          } catch (e) {\n            return error(e);\n          }\n        };\n      };\n\n      var next = function next(ret) {\n        controls.some(function (control) {\n          return control(ret, next, runtime, yieldValue(false), yieldValue(true));\n        });\n      };\n\n      yieldValue(false)();\n    };\n\n    var iterator = _is2.default.iterator(input) ? input : regeneratorRuntime.mark(function _callee() {\n      return regeneratorRuntime.wrap(function _callee$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _context.next = 2;\n              return input;\n\n            case 2:\n              return _context.abrupt('return', _context.sent);\n\n            case 3:\n            case 'end':\n              return _context.stop();\n          }\n        }\n      }, _callee, this);\n    })();\n\n    iterate(iterator, success, error);\n  };\n\n  return runtime;\n};\n\nexports.default = create;\n\n/***/ }),\n\n/***/ 423:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.iterator = exports.array = exports.object = exports.error = exports.any = undefined;\n\nvar _is = __webpack_require__(152);\n\nvar _is2 = _interopRequireDefault(_is);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar any = exports.any = function any(value, next, rungen, yieldNext) {\n  yieldNext(value);\n  return true;\n};\n\nvar error = exports.error = function error(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.error(value)) return false;\n  raiseNext(value.error);\n  return true;\n};\n\nvar object = exports.object = function object(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.all(value) || !_is2.default.obj(value.value)) return false;\n  var result = {};\n  var keys = Object.keys(value.value);\n  var count = 0;\n  var hasError = false;\n  var gotResultSuccess = function gotResultSuccess(key, ret) {\n    if (hasError) return;\n    result[key] = ret;\n    count++;\n    if (count === keys.length) {\n      yieldNext(result);\n    }\n  };\n\n  var gotResultError = function gotResultError(key, error) {\n    if (hasError) return;\n    hasError = true;\n    raiseNext(error);\n  };\n\n  keys.map(function (key) {\n    rungen(value.value[key], function (ret) {\n      return gotResultSuccess(key, ret);\n    }, function (err) {\n      return gotResultError(key, err);\n    });\n  });\n\n  return true;\n};\n\nvar array = exports.array = function array(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.all(value) || !_is2.default.array(value.value)) return false;\n  var result = [];\n  var count = 0;\n  var hasError = false;\n  var gotResultSuccess = function gotResultSuccess(key, ret) {\n    if (hasError) return;\n    result[key] = ret;\n    count++;\n    if (count === value.value.length) {\n      yieldNext(result);\n    }\n  };\n\n  var gotResultError = function gotResultError(key, error) {\n    if (hasError) return;\n    hasError = true;\n    raiseNext(error);\n  };\n\n  value.value.map(function (v, key) {\n    rungen(v, function (ret) {\n      return gotResultSuccess(key, ret);\n    }, function (err) {\n      return gotResultError(key, err);\n    });\n  });\n\n  return true;\n};\n\nvar iterator = exports.iterator = function iterator(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.iterator(value)) return false;\n  rungen(value, next, raiseNext);\n  return true;\n};\n\nexports.default = [error, iterator, array, object, any];\n\n/***/ }),\n\n/***/ 424:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.race = exports.join = exports.fork = exports.promise = undefined;\n\nvar _is = __webpack_require__(152);\n\nvar _is2 = _interopRequireDefault(_is);\n\nvar _helpers = __webpack_require__(250);\n\nvar _dispatcher = __webpack_require__(425);\n\nvar _dispatcher2 = _interopRequireDefault(_dispatcher);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar promise = exports.promise = function promise(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.promise(value)) return false;\n  value.then(next, raiseNext);\n  return true;\n};\n\nvar forkedTasks = new Map();\nvar fork = exports.fork = function fork(value, next, rungen) {\n  if (!_is2.default.fork(value)) return false;\n  var task = Symbol('fork');\n  var dispatcher = (0, _dispatcher2.default)();\n  forkedTasks.set(task, dispatcher);\n  rungen(value.iterator.apply(null, value.args), function (result) {\n    return dispatcher.dispatch(result);\n  }, function (err) {\n    return dispatcher.dispatch((0, _helpers.error)(err));\n  });\n  var unsubscribe = dispatcher.subscribe(function () {\n    unsubscribe();\n    forkedTasks.delete(task);\n  });\n  next(task);\n  return true;\n};\n\nvar join = exports.join = function join(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.join(value)) return false;\n  var dispatcher = forkedTasks.get(value.task);\n  if (!dispatcher) {\n    raiseNext('join error : task not found');\n  } else {\n    (function () {\n      var unsubscribe = dispatcher.subscribe(function (result) {\n        unsubscribe();\n        next(result);\n      });\n    })();\n  }\n  return true;\n};\n\nvar race = exports.race = function race(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.race(value)) return false;\n  var finished = false;\n  var success = function success(result, k, v) {\n    if (finished) return;\n    finished = true;\n    result[k] = v;\n    next(result);\n  };\n\n  var fail = function fail(err) {\n    if (finished) return;\n    raiseNext(err);\n  };\n  if (_is2.default.array(value.competitors)) {\n    (function () {\n      var result = value.competitors.map(function () {\n        return false;\n      });\n      value.competitors.forEach(function (competitor, index) {\n        rungen(competitor, function (output) {\n          return success(result, index, output);\n        }, fail);\n      });\n    })();\n  } else {\n    (function () {\n      var result = Object.keys(value.competitors).reduce(function (p, c) {\n        p[c] = false;\n        return p;\n      }, {});\n      Object.keys(value.competitors).forEach(function (index) {\n        rungen(value.competitors[index], function (output) {\n          return success(result, index, output);\n        }, fail);\n      });\n    })();\n  }\n  return true;\n};\n\nvar subscribe = function subscribe(value, next) {\n  if (!_is2.default.subscribe(value)) return false;\n  if (!_is2.default.channel(value.channel)) {\n    throw new Error('the first argument of \"subscribe\" must be a valid channel');\n  }\n  var unsubscribe = value.channel.subscribe(function (ret) {\n    unsubscribe && unsubscribe();\n    next(ret);\n  });\n\n  return true;\n};\n\nexports.default = [promise, fork, join, race, subscribe];\n\n/***/ }),\n\n/***/ 425:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nvar createDispatcher = function createDispatcher() {\n  var listeners = [];\n\n  return {\n    subscribe: function subscribe(listener) {\n      listeners.push(listener);\n      return function () {\n        listeners = listeners.filter(function (l) {\n          return l !== listener;\n        });\n      };\n    },\n    dispatch: function dispatch(action) {\n      listeners.slice().forEach(function (listener) {\n        return listener(action);\n      });\n    }\n  };\n};\n\nexports.default = createDispatcher;\n\n/***/ }),\n\n/***/ 426:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.cps = exports.call = undefined;\n\nvar _is = __webpack_require__(152);\n\nvar _is2 = _interopRequireDefault(_is);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar call = exports.call = function call(value, next, rungen, yieldNext, raiseNext) {\n  if (!_is2.default.call(value)) return false;\n  try {\n    next(value.func.apply(value.context, value.args));\n  } catch (err) {\n    raiseNext(err);\n  }\n  return true;\n};\n\nvar cps = exports.cps = function cps(value, next, rungen, yieldNext, raiseNext) {\n  var _value$func;\n\n  if (!_is2.default.cps(value)) return false;\n  (_value$func = value.func).call.apply(_value$func, [null].concat(_toConsumableArray(value.args), [function (err, result) {\n    if (err) raiseNext(err);else next(result);\n  }]));\n  return true;\n};\n\nexports.default = [call, cps];\n\n/***/ }),\n\n/***/ 460:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"default\", function() { return /* binding */ createMiddleware; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/is-generator.js\n/**\n * Returns true if the given object is a generator, or false otherwise.\n *\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects\n *\n * @param {*} object Object to test.\n *\n * @return {boolean} Whether object is a generator.\n */\nfunction isGenerator(object) {\n  // Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.\n  // These checks seem to be compatible with several generator helpers as well as the native implementation.\n  return !!object && typeof object[Symbol.iterator] === 'function' && typeof object.next === 'function';\n}\n\n// EXTERNAL MODULE: ./node_modules/rungen/dist/index.js\nvar dist = __webpack_require__(272);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./node_modules/@wordpress/redux-routine/node_modules/is-promise/index.js\nvar is_promise = __webpack_require__(273);\nvar is_promise_default = /*#__PURE__*/__webpack_require__.n(is_promise);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/is-action.js\n/**\n * External dependencies\n */\n\n/**\n * Returns true if the given object quacks like an action.\n *\n * @param {*} object Object to test\n *\n * @return {boolean}  Whether object is an action.\n */\n\nfunction isAction(object) {\n  return Object(external_this_lodash_[\"isPlainObject\"])(object) && Object(external_this_lodash_[\"isString\"])(object.type);\n}\n/**\n * Returns true if the given object quacks like an action and has a specific\n * action type\n *\n * @param {*}      object       Object to test\n * @param {string} expectedType The expected type for the action.\n *\n * @return {boolean} Whether object is an action and is of specific type.\n */\n\nfunction isActionOfType(object, expectedType) {\n  return isAction(object) && object.type === expectedType;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/runtime.js\n/**\n * External dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Create a co-routine runtime.\n *\n * @param {Object}    controls Object of control handlers.\n * @param {Function}  dispatch Unhandled action dispatch.\n *\n * @return {Function} co-routine runtime\n */\n\nfunction createRuntime() {\n  var controls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var dispatch = arguments.length > 1 ? arguments[1] : undefined;\n  var rungenControls = Object(external_this_lodash_[\"map\"])(controls, function (control, actionType) {\n    return function (value, next, iterate, yieldNext, yieldError) {\n      if (!isActionOfType(value, actionType)) {\n        return false;\n      }\n\n      var routine = control(value);\n\n      if (is_promise_default()(routine)) {\n        // Async control routine awaits resolution.\n        routine.then(yieldNext, yieldError);\n      } else {\n        yieldNext(routine);\n      }\n\n      return true;\n    };\n  });\n\n  var unhandledActionControl = function unhandledActionControl(value, next) {\n    if (!isAction(value)) {\n      return false;\n    }\n\n    dispatch(value);\n    next();\n    return true;\n  };\n\n  rungenControls.push(unhandledActionControl);\n  var rungenRuntime = Object(dist[\"create\"])(rungenControls);\n  return function (action) {\n    return new Promise(function (resolve, reject) {\n      return rungenRuntime(action, function (result) {\n        if (isAction(result)) {\n          dispatch(result);\n        }\n\n        resolve(result);\n      }, reject);\n    });\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/redux-routine/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Creates a Redux middleware, given an object of controls where each key is an\n * action type for which to act upon, the value a function which returns either\n * a promise which is to resolve when evaluation of the action should continue,\n * or a value. The value or resolved promise value is assigned on the return\n * value of the yield assignment. If the control handler returns undefined, the\n * execution is not continued.\n *\n * @param {Object} controls Object of control handlers.\n *\n * @return {Function} Co-routine runtime\n */\n\nfunction createMiddleware() {\n  var controls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (store) {\n    var runtime = createRuntime(controls, store.dispatch);\n    return function (next) {\n      return function (action) {\n        if (!isGenerator(action)) {\n          return next(action);\n        }\n\n        return runtime(action);\n      };\n    };\n  };\n}\n\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-rich-text.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"richText\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 436);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 11:\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n  Copyright (c) 2017 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( true && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (true) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn classNames;\n\t\t}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n}());\n\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _toConsumableArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nvar arrayLikeToArray = __webpack_require__(26);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return Object(arrayLikeToArray[\"a\" /* default */])(arr);\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nvar iterableToArray = __webpack_require__(35);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || Object(iterableToArray[\"a\" /* default */])(arr) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr) || _nonIterableSpread();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 21:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"keycodes\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 42:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n\nvar LEAF_KEY, hasWeakMap;\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {Object}\n */\nLEAF_KEY = {};\n\n/**\n * Whether environment supports WeakMap.\n *\n * @type {boolean}\n */\nhasWeakMap = typeof WeakMap !== 'undefined';\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @param {*} value Value to return.\n *\n * @return {Array} Value returned as entry in array.\n */\nfunction arrayOf( value ) {\n\treturn [ value ];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike( value ) {\n\treturn !! value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Object} Cache object.\n */\nfunction createCache() {\n\tvar cache = {\n\t\tclear: function() {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {Array}  a         First array.\n * @param {Array}  b         Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual( a, b, fromIndex ) {\n\tvar i;\n\n\tif ( a.length !== b.length ) {\n\t\treturn false;\n\t}\n\n\tfor ( i = fromIndex; i < a.length; i++ ) {\n\t\tif ( a[ i ] !== b[ i ] ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @param {Function} selector      Selector function.\n * @param {Function} getDependants Dependant getter returning an immutable\n *                                 reference or array of reference used in\n *                                 cache bust consideration.\n *\n * @return {Function} Memoized selector.\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function( selector, getDependants ) {\n\tvar rootCache, getCache;\n\n\t// Use object source as dependant if getter not provided\n\tif ( ! getDependants ) {\n\t\tgetDependants = arrayOf;\n\t}\n\n\t/**\n\t * Returns the root cache. If WeakMap is supported, this is assigned to the\n\t * root WeakMap cache set, otherwise it is a shared instance of the default\n\t * cache object.\n\t *\n\t * @return {(WeakMap|Object)} Root cache object.\n\t */\n\tfunction getRootCache() {\n\t\treturn rootCache;\n\t}\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {Array} dependants Selector dependants.\n\t *\n\t * @return {Object} Cache object.\n\t */\n\tfunction getWeakMapCache( dependants ) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti, dependant, map, cache;\n\n\t\tfor ( i = 0; i < dependants.length; i++ ) {\n\t\t\tdependant = dependants[ i ];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif ( ! isObjectLike( dependant ) ) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif ( caches.has( dependant ) ) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get( dependant );\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set( dependant, map );\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif ( ! caches.has( LEAF_KEY ) ) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set( LEAF_KEY, cache );\n\t\t}\n\n\t\treturn caches.get( LEAF_KEY );\n\t}\n\n\t// Assign cache handler by availability of WeakMap\n\tgetCache = hasWeakMap ? getWeakMapCache : getRootCache;\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = hasWeakMap ? new WeakMap() : createCache();\n\t}\n\n\t// eslint-disable-next-line jsdoc/check-param-names\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {Object} source    Source object for derivation.\n\t * @param {...*}   extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\tfunction callSelector( /* source, ...extraArgs */ ) {\n\t\tvar len = arguments.length,\n\t\t\tcache, node, i, args, dependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tdependants = getDependants.apply( null, args );\n\t\tcache = getCache( dependants );\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type or lack\n\t\t// of WeakMap support), shallow compare against last dependants and, if\n\t\t// references have changed, destroy cache to recalculate result.\n\t\tif ( ! cache.isUniqueByDependants ) {\n\t\t\tif ( cache.lastDependants && ! isShallowEqual( dependants, cache.lastDependants, 0 ) ) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile ( node ) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif ( ! isShallowEqual( node.args, args, 1 ) ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== cache.head ) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\tcache.head.prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = {\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply( null, args ),\n\t\t};\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[ 0 ] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( cache.head ) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = getDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn callSelector;\n});\n\n\n/***/ }),\n\n/***/ 436:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"applyFormat\", function() { return /* reexport */ applyFormat; });\n__webpack_require__.d(__webpack_exports__, \"concat\", function() { return /* reexport */ concat; });\n__webpack_require__.d(__webpack_exports__, \"create\", function() { return /* reexport */ create; });\n__webpack_require__.d(__webpack_exports__, \"getActiveFormat\", function() { return /* reexport */ getActiveFormat; });\n__webpack_require__.d(__webpack_exports__, \"getActiveObject\", function() { return /* reexport */ getActiveObject; });\n__webpack_require__.d(__webpack_exports__, \"getTextContent\", function() { return /* reexport */ getTextContent; });\n__webpack_require__.d(__webpack_exports__, \"__unstableIsListRootSelected\", function() { return /* reexport */ isListRootSelected; });\n__webpack_require__.d(__webpack_exports__, \"__unstableIsActiveListType\", function() { return /* reexport */ isActiveListType; });\n__webpack_require__.d(__webpack_exports__, \"isCollapsed\", function() { return /* reexport */ isCollapsed; });\n__webpack_require__.d(__webpack_exports__, \"isEmpty\", function() { return /* reexport */ isEmpty; });\n__webpack_require__.d(__webpack_exports__, \"__unstableIsEmptyLine\", function() { return /* reexport */ isEmptyLine; });\n__webpack_require__.d(__webpack_exports__, \"join\", function() { return /* reexport */ join; });\n__webpack_require__.d(__webpack_exports__, \"registerFormatType\", function() { return /* reexport */ registerFormatType; });\n__webpack_require__.d(__webpack_exports__, \"removeFormat\", function() { return /* reexport */ removeFormat; });\n__webpack_require__.d(__webpack_exports__, \"remove\", function() { return /* reexport */ remove_remove; });\n__webpack_require__.d(__webpack_exports__, \"replace\", function() { return /* reexport */ replace_replace; });\n__webpack_require__.d(__webpack_exports__, \"insert\", function() { return /* reexport */ insert; });\n__webpack_require__.d(__webpack_exports__, \"__unstableInsertLineSeparator\", function() { return /* reexport */ insertLineSeparator; });\n__webpack_require__.d(__webpack_exports__, \"__unstableRemoveLineSeparator\", function() { return /* reexport */ removeLineSeparator; });\n__webpack_require__.d(__webpack_exports__, \"insertObject\", function() { return /* reexport */ insertObject; });\n__webpack_require__.d(__webpack_exports__, \"slice\", function() { return /* reexport */ slice; });\n__webpack_require__.d(__webpack_exports__, \"split\", function() { return /* reexport */ split; });\n__webpack_require__.d(__webpack_exports__, \"__unstableToDom\", function() { return /* reexport */ toDom; });\n__webpack_require__.d(__webpack_exports__, \"toHTMLString\", function() { return /* reexport */ toHTMLString; });\n__webpack_require__.d(__webpack_exports__, \"toggleFormat\", function() { return /* reexport */ toggleFormat; });\n__webpack_require__.d(__webpack_exports__, \"__UNSTABLE_LINE_SEPARATOR\", function() { return /* reexport */ LINE_SEPARATOR; });\n__webpack_require__.d(__webpack_exports__, \"unregisterFormatType\", function() { return /* reexport */ unregisterFormatType; });\n__webpack_require__.d(__webpack_exports__, \"__unstableCanIndentListItems\", function() { return /* reexport */ canIndentListItems; });\n__webpack_require__.d(__webpack_exports__, \"__unstableCanOutdentListItems\", function() { return /* reexport */ canOutdentListItems; });\n__webpack_require__.d(__webpack_exports__, \"__unstableIndentListItems\", function() { return /* reexport */ indentListItems; });\n__webpack_require__.d(__webpack_exports__, \"__unstableOutdentListItems\", function() { return /* reexport */ outdentListItems; });\n__webpack_require__.d(__webpack_exports__, \"__unstableChangeListType\", function() { return /* reexport */ changeListType; });\n__webpack_require__.d(__webpack_exports__, \"__unstableCreateElement\", function() { return /* reexport */ createElement; });\n__webpack_require__.d(__webpack_exports__, \"__experimentalRichText\", function() { return /* reexport */ component; });\n__webpack_require__.d(__webpack_exports__, \"__unstableFormatEdit\", function() { return /* reexport */ FormatEdit; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/rich-text/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"getFormatTypes\", function() { return getFormatTypes; });\n__webpack_require__.d(selectors_namespaceObject, \"getFormatType\", function() { return getFormatType; });\n__webpack_require__.d(selectors_namespaceObject, \"getFormatTypeForBareElement\", function() { return getFormatTypeForBareElement; });\n__webpack_require__.d(selectors_namespaceObject, \"getFormatTypeForClassName\", function() { return getFormatTypeForClassName; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/rich-text/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"addFormatTypes\", function() { return addFormatTypes; });\n__webpack_require__.d(actions_namespaceObject, \"removeFormatTypes\", function() { return removeFormatTypes; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/reducer.js\n\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Reducer managing the format types\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\n\nfunction reducer_formatTypes() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'ADD_FORMAT_TYPES':\n      return _objectSpread({}, state, {}, Object(external_this_lodash_[\"keyBy\"])(action.formatTypes, 'name'));\n\n    case 'REMOVE_FORMAT_TYPES':\n      return Object(external_this_lodash_[\"omit\"])(state, action.names);\n  }\n\n  return state;\n}\n/* harmony default export */ var reducer = (Object(external_this_wp_data_[\"combineReducers\"])({\n  formatTypes: reducer_formatTypes\n}));\n\n// EXTERNAL MODULE: ./node_modules/rememo/es/rememo.js\nvar rememo = __webpack_require__(42);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/selectors.js\n/**\n * External dependencies\n */\n\n\n/**\n * Returns all the available format types.\n *\n * @param {Object} state Data state.\n *\n * @return {Array} Format types.\n */\n\nvar getFormatTypes = Object(rememo[\"a\" /* default */])(function (state) {\n  return Object.values(state.formatTypes);\n}, function (state) {\n  return [state.formatTypes];\n});\n/**\n * Returns a format type by name.\n *\n * @param {Object} state Data state.\n * @param {string} name Format type name.\n *\n * @return {Object?} Format type.\n */\n\nfunction getFormatType(state, name) {\n  return state.formatTypes[name];\n}\n/**\n * Gets the format type, if any, that can handle a bare element (without a\n * data-format-type attribute), given the tag name of this element.\n *\n * @param {Object} state              Data state.\n * @param {string} bareElementTagName The tag name of the element to find a\n *                                    format type for.\n * @return {?Object} Format type.\n */\n\nfunction getFormatTypeForBareElement(state, bareElementTagName) {\n  return Object(external_this_lodash_[\"find\"])(getFormatTypes(state), function (_ref) {\n    var className = _ref.className,\n        tagName = _ref.tagName;\n    return className === null && bareElementTagName === tagName;\n  });\n}\n/**\n * Gets the format type, if any, that can handle an element, given its classes.\n *\n * @param {Object} state            Data state.\n * @param {string} elementClassName The classes of the element to find a format\n *                                  type for.\n * @return {?Object} Format type.\n */\n\nfunction getFormatTypeForClassName(state, elementClassName) {\n  return Object(external_this_lodash_[\"find\"])(getFormatTypes(state), function (_ref2) {\n    var className = _ref2.className;\n\n    if (className === null) {\n      return false;\n    }\n\n    return \" \".concat(elementClassName, \" \").indexOf(\" \".concat(className, \" \")) >= 0;\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/actions.js\n/**\n * External dependencies\n */\n\n/**\n * Returns an action object used in signalling that format types have been\n * added.\n *\n * @param {Array|Object} formatTypes Format types received.\n *\n * @return {Object} Action object.\n */\n\nfunction addFormatTypes(formatTypes) {\n  return {\n    type: 'ADD_FORMAT_TYPES',\n    formatTypes: Object(external_this_lodash_[\"castArray\"])(formatTypes)\n  };\n}\n/**\n * Returns an action object used to remove a registered format type.\n *\n * @param {string|Array} names Format name.\n *\n * @return {Object} Action object.\n */\n\nfunction removeFormatTypes(names) {\n  return {\n    type: 'REMOVE_FORMAT_TYPES',\n    names: Object(external_this_lodash_[\"castArray\"])(names)\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\nObject(external_this_wp_data_[\"registerStore\"])('core/rich-text', {\n  reducer: reducer,\n  selectors: selectors_namespaceObject,\n  actions: actions_namespaceObject\n});\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js + 2 modules\nvar toConsumableArray = __webpack_require__(17);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-format-equal.js\n/**\n * Optimised equality check for format objects.\n *\n * @param {?Object} format1 Format to compare.\n * @param {?Object} format2 Format to compare.\n *\n * @return {boolean} True if formats are equal, false if not.\n */\nfunction isFormatEqual(format1, format2) {\n  // Both not defined.\n  if (format1 === format2) {\n    return true;\n  } // Either not defined.\n\n\n  if (!format1 || !format2) {\n    return false;\n  }\n\n  if (format1.type !== format2.type) {\n    return false;\n  }\n\n  var attributes1 = format1.attributes;\n  var attributes2 = format2.attributes; // Both not defined.\n\n  if (attributes1 === attributes2) {\n    return true;\n  } // Either not defined.\n\n\n  if (!attributes1 || !attributes2) {\n    return false;\n  }\n\n  var keys1 = Object.keys(attributes1);\n  var keys2 = Object.keys(attributes2);\n\n  if (keys1.length !== keys2.length) {\n    return false;\n  }\n\n  var length = keys1.length; // Optimise for speed.\n\n  for (var i = 0; i < length; i++) {\n    var name = keys1[i];\n\n    if (attributes1[name] !== attributes2[name]) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/normalise-formats.js\n\n\nfunction normalise_formats_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction normalise_formats_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { normalise_formats_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { normalise_formats_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n/**\n * Normalises formats: ensures subsequent adjacent equal formats have the same\n * reference.\n *\n * @param {Object} value Value to normalise formats of.\n *\n * @return {Object} New value with normalised formats.\n */\n\nfunction normaliseFormats(value) {\n  var newFormats = value.formats.slice();\n  newFormats.forEach(function (formatsAtIndex, index) {\n    var formatsAtPreviousIndex = newFormats[index - 1];\n\n    if (formatsAtPreviousIndex) {\n      var newFormatsAtIndex = formatsAtIndex.slice();\n      newFormatsAtIndex.forEach(function (format, formatIndex) {\n        var previousFormat = formatsAtPreviousIndex[formatIndex];\n\n        if (isFormatEqual(format, previousFormat)) {\n          newFormatsAtIndex[formatIndex] = previousFormat;\n        }\n      });\n      newFormats[index] = newFormatsAtIndex;\n    }\n  });\n  return normalise_formats_objectSpread({}, value, {\n    formats: newFormats\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/apply-format.js\n\n\n\nfunction apply_format_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction apply_format_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { apply_format_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { apply_format_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\nfunction replace(array, index, value) {\n  array = array.slice();\n  array[index] = value;\n  return array;\n}\n/**\n * Apply a format object to a Rich Text value from the given `startIndex` to the\n * given `endIndex`. Indices are retrieved from the selection if none are\n * provided.\n *\n * @param {Object} value        Value to modify.\n * @param {Object} format       Format to apply.\n * @param {number} [startIndex] Start index.\n * @param {number} [endIndex]   End index.\n *\n * @return {Object} A new value with the format applied.\n */\n\n\nfunction applyFormat(value, format) {\n  var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.start;\n  var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : value.end;\n  var formats = value.formats,\n      activeFormats = value.activeFormats;\n  var newFormats = formats.slice(); // The selection is collapsed.\n\n  if (startIndex === endIndex) {\n    var startFormat = Object(external_this_lodash_[\"find\"])(newFormats[startIndex], {\n      type: format.type\n    }); // If the caret is at a format of the same type, expand start and end to\n    // the edges of the format. This is useful to apply new attributes.\n\n    if (startFormat) {\n      var index = newFormats[startIndex].indexOf(startFormat);\n\n      while (newFormats[startIndex] && newFormats[startIndex][index] === startFormat) {\n        newFormats[startIndex] = replace(newFormats[startIndex], index, format);\n        startIndex--;\n      }\n\n      endIndex++;\n\n      while (newFormats[endIndex] && newFormats[endIndex][index] === startFormat) {\n        newFormats[endIndex] = replace(newFormats[endIndex], index, format);\n        endIndex++;\n      }\n    }\n  } else {\n    // Determine the highest position the new format can be inserted at.\n    var position = +Infinity;\n\n    for (var _index = startIndex; _index < endIndex; _index++) {\n      if (newFormats[_index]) {\n        newFormats[_index] = newFormats[_index].filter(function (_ref) {\n          var type = _ref.type;\n          return type !== format.type;\n        });\n        var length = newFormats[_index].length;\n\n        if (length < position) {\n          position = length;\n        }\n      } else {\n        newFormats[_index] = [];\n        position = 0;\n      }\n    }\n\n    for (var _index2 = startIndex; _index2 < endIndex; _index2++) {\n      newFormats[_index2].splice(position, 0, format);\n    }\n  }\n\n  return normaliseFormats(apply_format_objectSpread({}, value, {\n    formats: newFormats,\n    // Always revise active formats. This serves as a placeholder for new\n    // inputs with the format so new input appears with the format applied,\n    // and ensures a format of the same type uses the latest values.\n    activeFormats: [].concat(Object(toConsumableArray[\"a\" /* default */])(Object(external_this_lodash_[\"reject\"])(activeFormats, {\n      type: format.type\n    })), [format])\n  }));\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js\nvar esm_typeof = __webpack_require__(40);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create-element.js\n/**\n * Parse the given HTML into a body element.\n *\n * Note: The current implementation will return a shared reference, reset on\n * each call to `createElement`. Therefore, you should not hold a reference to\n * the value to operate upon asynchronously, as it may have unexpected results.\n *\n * @param {HTMLDocument} document The HTML document to use to parse.\n * @param {string}       html     The HTML to parse.\n *\n * @return {HTMLBodyElement} Body element with parsed HTML.\n */\nfunction createElement(_ref, html) {\n  var implementation = _ref.implementation;\n\n  // Because `createHTMLDocument` is an expensive operation, and with this\n  // function being internal to `rich-text` (full control in avoiding a risk\n  // of asynchronous operations on the shared reference), a single document\n  // is reused and reset for each call to the function.\n  if (!createElement.body) {\n    createElement.body = implementation.createHTMLDocument('').body;\n  }\n\n  createElement.body.innerHTML = html;\n  return createElement.body;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/special-characters.js\n/**\n * Line separator character, used for multiline text.\n */\nvar LINE_SEPARATOR = \"\\u2028\";\n/**\n * Object replacement character, used as a placeholder for objects.\n */\n\nvar OBJECT_REPLACEMENT_CHARACTER = \"\\uFFFC\";\n/**\n * Zero width non-breaking space, used as padding in the editable DOM tree when\n * it is empty otherwise.\n */\n\nvar ZWNBSP = \"\\uFEFF\";\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/create.js\n\n\n\n\nfunction create_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction create_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { create_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { create_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\nfunction createEmptyValue() {\n  return {\n    formats: [],\n    replacements: [],\n    text: ''\n  };\n}\n\nfunction simpleFindKey(object, value) {\n  for (var key in object) {\n    if (object[key] === value) {\n      return key;\n    }\n  }\n}\n\nfunction toFormat(_ref) {\n  var type = _ref.type,\n      attributes = _ref.attributes;\n  var formatType;\n\n  if (attributes && attributes.class) {\n    formatType = Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatTypeForClassName(attributes.class);\n\n    if (formatType) {\n      // Preserve any additional classes.\n      attributes.class = \" \".concat(attributes.class, \" \").replace(\" \".concat(formatType.className, \" \"), ' ').trim();\n\n      if (!attributes.class) {\n        delete attributes.class;\n      }\n    }\n  }\n\n  if (!formatType) {\n    formatType = Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatTypeForBareElement(type);\n  }\n\n  if (!formatType) {\n    return attributes ? {\n      type: type,\n      attributes: attributes\n    } : {\n      type: type\n    };\n  }\n\n  if (formatType.__experimentalCreatePrepareEditableTree && !formatType.__experimentalCreateOnChangeEditableValue) {\n    return null;\n  }\n\n  if (!attributes) {\n    return {\n      type: formatType.name\n    };\n  }\n\n  var registeredAttributes = {};\n  var unregisteredAttributes = {};\n\n  for (var name in attributes) {\n    var key = simpleFindKey(formatType.attributes, name);\n\n    if (key) {\n      registeredAttributes[key] = attributes[name];\n    } else {\n      unregisteredAttributes[name] = attributes[name];\n    }\n  }\n\n  return {\n    type: formatType.name,\n    attributes: registeredAttributes,\n    unregisteredAttributes: unregisteredAttributes\n  };\n}\n/**\n * Create a RichText value from an `Element` tree (DOM), an HTML string or a\n * plain text string, with optionally a `Range` object to set the selection. If\n * called without any input, an empty value will be created. If\n * `multilineTag` is provided, any content of direct children whose type matches\n * `multilineTag` will be separated by two newlines. The optional functions can\n * be used to filter out content.\n *\n * A value will have the following shape, which you are strongly encouraged not\n * to modify without the use of helper functions:\n *\n * ```js\n * {\n *   text: string,\n *   formats: Array,\n *   replacements: Array,\n *   ?start: number,\n *   ?end: number,\n * }\n * ```\n *\n * As you can see, text and formatting are separated. `text` holds the text,\n * including any replacement characters for objects and lines. `formats`,\n * `objects` and `lines` are all sparse arrays of the same length as `text`. It\n * holds information about the formatting at the relevant text indices. Finally\n * `start` and `end` state which text indices are selected. They are only\n * provided if a `Range` was given.\n *\n * @param {Object}  [$1]                      Optional named arguments.\n * @param {Element} [$1.element]              Element to create value from.\n * @param {string}  [$1.text]                 Text to create value from.\n * @param {string}  [$1.html]                 HTML to create value from.\n * @param {Range}   [$1.range]                Range to create value from.\n * @param {string}  [$1.multilineTag]         Multiline tag if the structure is\n *                                            multiline.\n * @param {Array}   [$1.multilineWrapperTags] Tags where lines can be found if\n *                                            nesting is possible.\n * @param {?boolean} [$1.preserveWhiteSpace]  Whether or not to collapse white\n *                                            space characters.\n *\n * @return {Object} A rich text value.\n */\n\n\nfunction create() {\n  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n      element = _ref2.element,\n      text = _ref2.text,\n      html = _ref2.html,\n      range = _ref2.range,\n      multilineTag = _ref2.multilineTag,\n      multilineWrapperTags = _ref2.multilineWrapperTags,\n      isEditableTree = _ref2.__unstableIsEditableTree,\n      preserveWhiteSpace = _ref2.preserveWhiteSpace;\n\n  if (typeof text === 'string' && text.length > 0) {\n    return {\n      formats: Array(text.length),\n      replacements: Array(text.length),\n      text: text\n    };\n  }\n\n  if (typeof html === 'string' && html.length > 0) {\n    // It does not matter which document this is, we're just using it to\n    // parse.\n    element = createElement(document, html);\n  }\n\n  if (Object(esm_typeof[\"a\" /* default */])(element) !== 'object') {\n    return createEmptyValue();\n  }\n\n  if (!multilineTag) {\n    return createFromElement({\n      element: element,\n      range: range,\n      isEditableTree: isEditableTree,\n      preserveWhiteSpace: preserveWhiteSpace\n    });\n  }\n\n  return createFromMultilineElement({\n    element: element,\n    range: range,\n    multilineTag: multilineTag,\n    multilineWrapperTags: multilineWrapperTags,\n    isEditableTree: isEditableTree,\n    preserveWhiteSpace: preserveWhiteSpace\n  });\n}\n/**\n * Helper to accumulate the value's selection start and end from the current\n * node and range.\n *\n * @param {Object} accumulator Object to accumulate into.\n * @param {Node}   node        Node to create value with.\n * @param {Range}  range       Range to create value with.\n * @param {Object} value       Value that is being accumulated.\n */\n\nfunction accumulateSelection(accumulator, node, range, value) {\n  if (!range) {\n    return;\n  }\n\n  var parentNode = node.parentNode;\n  var startContainer = range.startContainer,\n      startOffset = range.startOffset,\n      endContainer = range.endContainer,\n      endOffset = range.endOffset;\n  var currentLength = accumulator.text.length; // Selection can be extracted from value.\n\n  if (value.start !== undefined) {\n    accumulator.start = currentLength + value.start; // Range indicates that the current node has selection.\n  } else if (node === startContainer && node.nodeType === node.TEXT_NODE) {\n    accumulator.start = currentLength + startOffset; // Range indicates that the current node is selected.\n  } else if (parentNode === startContainer && node === startContainer.childNodes[startOffset]) {\n    accumulator.start = currentLength; // Range indicates that the selection is after the current node.\n  } else if (parentNode === startContainer && node === startContainer.childNodes[startOffset - 1]) {\n    accumulator.start = currentLength + value.text.length; // Fallback if no child inside handled the selection.\n  } else if (node === startContainer) {\n    accumulator.start = currentLength;\n  } // Selection can be extracted from value.\n\n\n  if (value.end !== undefined) {\n    accumulator.end = currentLength + value.end; // Range indicates that the current node has selection.\n  } else if (node === endContainer && node.nodeType === node.TEXT_NODE) {\n    accumulator.end = currentLength + endOffset; // Range indicates that the current node is selected.\n  } else if (parentNode === endContainer && node === endContainer.childNodes[endOffset - 1]) {\n    accumulator.end = currentLength + value.text.length; // Range indicates that the selection is before the current node.\n  } else if (parentNode === endContainer && node === endContainer.childNodes[endOffset]) {\n    accumulator.end = currentLength; // Fallback if no child inside handled the selection.\n  } else if (node === endContainer) {\n    accumulator.end = currentLength + endOffset;\n  }\n}\n/**\n * Adjusts the start and end offsets from a range based on a text filter.\n *\n * @param {Node}     node   Node of which the text should be filtered.\n * @param {Range}    range  The range to filter.\n * @param {Function} filter Function to use to filter the text.\n *\n * @return {?Object} Object containing range properties.\n */\n\n\nfunction filterRange(node, range, filter) {\n  if (!range) {\n    return;\n  }\n\n  var startContainer = range.startContainer,\n      endContainer = range.endContainer;\n  var startOffset = range.startOffset,\n      endOffset = range.endOffset;\n\n  if (node === startContainer) {\n    startOffset = filter(node.nodeValue.slice(0, startOffset)).length;\n  }\n\n  if (node === endContainer) {\n    endOffset = filter(node.nodeValue.slice(0, endOffset)).length;\n  }\n\n  return {\n    startContainer: startContainer,\n    startOffset: startOffset,\n    endContainer: endContainer,\n    endOffset: endOffset\n  };\n}\n/**\n * Collapse any whitespace used for HTML formatting to one space character,\n * because it will also be displayed as such by the browser.\n *\n * @param {string} string\n */\n\n\nfunction collapseWhiteSpace(string) {\n  return string.replace(/[\\n\\r\\t]+/g, ' ');\n}\n\nvar ZWNBSPRegExp = new RegExp(ZWNBSP, 'g');\n/**\n * Removes padding (zero width non breaking spaces) added by `toTree`.\n *\n * @param {string} string\n */\n\nfunction removePadding(string) {\n  return string.replace(ZWNBSPRegExp, '');\n}\n/**\n * Creates a Rich Text value from a DOM element and range.\n *\n * @param {Object}    $1                      Named argements.\n * @param {?Element}  $1.element              Element to create value from.\n * @param {?Range}    $1.range                Range to create value from.\n * @param {?string}   $1.multilineTag         Multiline tag if the structure is\n *                                            multiline.\n * @param {?Array}    $1.multilineWrapperTags Tags where lines can be found if\n *                                            nesting is possible.\n * @param {?boolean} $1.preserveWhiteSpace    Whether or not to collapse white\n *                                            space characters.\n *\n * @return {Object} A rich text value.\n */\n\n\nfunction createFromElement(_ref3) {\n  var element = _ref3.element,\n      range = _ref3.range,\n      multilineTag = _ref3.multilineTag,\n      multilineWrapperTags = _ref3.multilineWrapperTags,\n      _ref3$currentWrapperT = _ref3.currentWrapperTags,\n      currentWrapperTags = _ref3$currentWrapperT === void 0 ? [] : _ref3$currentWrapperT,\n      isEditableTree = _ref3.isEditableTree,\n      preserveWhiteSpace = _ref3.preserveWhiteSpace;\n  var accumulator = createEmptyValue();\n\n  if (!element) {\n    return accumulator;\n  }\n\n  if (!element.hasChildNodes()) {\n    accumulateSelection(accumulator, element, range, createEmptyValue());\n    return accumulator;\n  }\n\n  var length = element.childNodes.length; // Optimise for speed.\n\n  var _loop = function _loop(index) {\n    var node = element.childNodes[index];\n    var type = node.nodeName.toLowerCase();\n\n    if (node.nodeType === node.TEXT_NODE) {\n      var filter = removePadding;\n\n      if (!preserveWhiteSpace) {\n        filter = function filter(string) {\n          return removePadding(collapseWhiteSpace(string));\n        };\n      }\n\n      var text = filter(node.nodeValue);\n      range = filterRange(node, range, filter);\n      accumulateSelection(accumulator, node, range, {\n        text: text\n      }); // Create a sparse array of the same length as `text`, in which\n      // formats can be added.\n\n      accumulator.formats.length += text.length;\n      accumulator.replacements.length += text.length;\n      accumulator.text += text;\n      return \"continue\";\n    }\n\n    if (node.nodeType !== node.ELEMENT_NODE) {\n      return \"continue\";\n    }\n\n    if (isEditableTree && ( // Ignore any placeholders.\n    node.getAttribute('data-rich-text-placeholder') || // Ignore any line breaks that are not inserted by us.\n    type === 'br' && !node.getAttribute('data-rich-text-line-break'))) {\n      accumulateSelection(accumulator, node, range, createEmptyValue());\n      return \"continue\";\n    }\n\n    if (type === 'br') {\n      accumulateSelection(accumulator, node, range, createEmptyValue());\n      mergePair(accumulator, create({\n        text: '\\n'\n      }));\n      return \"continue\";\n    }\n\n    var lastFormats = accumulator.formats[accumulator.formats.length - 1];\n    var lastFormat = lastFormats && lastFormats[lastFormats.length - 1];\n    var newFormat = toFormat({\n      type: type,\n      attributes: getAttributes({\n        element: node\n      })\n    });\n    var format = isFormatEqual(newFormat, lastFormat) ? lastFormat : newFormat;\n\n    if (multilineWrapperTags && multilineWrapperTags.indexOf(type) !== -1) {\n      var _value = createFromMultilineElement({\n        element: node,\n        range: range,\n        multilineTag: multilineTag,\n        multilineWrapperTags: multilineWrapperTags,\n        currentWrapperTags: [].concat(Object(toConsumableArray[\"a\" /* default */])(currentWrapperTags), [format]),\n        isEditableTree: isEditableTree,\n        preserveWhiteSpace: preserveWhiteSpace\n      });\n\n      accumulateSelection(accumulator, node, range, _value);\n      mergePair(accumulator, _value);\n      return \"continue\";\n    }\n\n    var value = createFromElement({\n      element: node,\n      range: range,\n      multilineTag: multilineTag,\n      multilineWrapperTags: multilineWrapperTags,\n      isEditableTree: isEditableTree,\n      preserveWhiteSpace: preserveWhiteSpace\n    });\n    accumulateSelection(accumulator, node, range, value);\n\n    if (!format) {\n      mergePair(accumulator, value);\n    } else if (value.text.length === 0) {\n      if (format.attributes) {\n        mergePair(accumulator, {\n          formats: [,],\n          replacements: [format],\n          text: OBJECT_REPLACEMENT_CHARACTER\n        });\n      }\n    } else {\n      // Indices should share a reference to the same formats array.\n      // Only create a new reference if `formats` changes.\n      function mergeFormats(formats) {\n        if (mergeFormats.formats === formats) {\n          return mergeFormats.newFormats;\n        }\n\n        var newFormats = formats ? [format].concat(Object(toConsumableArray[\"a\" /* default */])(formats)) : [format];\n        mergeFormats.formats = formats;\n        mergeFormats.newFormats = newFormats;\n        return newFormats;\n      } // Since the formats parameter can be `undefined`, preset\n      // `mergeFormats` with a new reference.\n\n\n      mergeFormats.newFormats = [format];\n      mergePair(accumulator, create_objectSpread({}, value, {\n        formats: Array.from(value.formats, mergeFormats)\n      }));\n    }\n  };\n\n  for (var index = 0; index < length; index++) {\n    var _ret = _loop(index);\n\n    if (_ret === \"continue\") continue;\n  }\n\n  return accumulator;\n}\n/**\n * Creates a rich text value from a DOM element and range that should be\n * multiline.\n *\n * @param {Object}   $1                      Named argements.\n * @param {?Element} $1.element              Element to create value from.\n * @param {?Range}   $1.range                Range to create value from.\n * @param {?string}  $1.multilineTag         Multiline tag if the structure is\n *                                           multiline.\n * @param {?Array}   $1.multilineWrapperTags Tags where lines can be found if\n *                                           nesting is possible.\n * @param {boolean}  $1.currentWrapperTags   Whether to prepend a line\n *                                           separator.\n * @param {?boolean} $1.preserveWhiteSpace   Whether or not to collapse white\n *                                           space characters.\n *\n * @return {Object} A rich text value.\n */\n\n\nfunction createFromMultilineElement(_ref4) {\n  var element = _ref4.element,\n      range = _ref4.range,\n      multilineTag = _ref4.multilineTag,\n      multilineWrapperTags = _ref4.multilineWrapperTags,\n      _ref4$currentWrapperT = _ref4.currentWrapperTags,\n      currentWrapperTags = _ref4$currentWrapperT === void 0 ? [] : _ref4$currentWrapperT,\n      isEditableTree = _ref4.isEditableTree,\n      preserveWhiteSpace = _ref4.preserveWhiteSpace;\n  var accumulator = createEmptyValue();\n\n  if (!element || !element.hasChildNodes()) {\n    return accumulator;\n  }\n\n  var length = element.children.length; // Optimise for speed.\n\n  for (var index = 0; index < length; index++) {\n    var node = element.children[index];\n\n    if (node.nodeName.toLowerCase() !== multilineTag) {\n      continue;\n    }\n\n    var value = createFromElement({\n      element: node,\n      range: range,\n      multilineTag: multilineTag,\n      multilineWrapperTags: multilineWrapperTags,\n      currentWrapperTags: currentWrapperTags,\n      isEditableTree: isEditableTree,\n      preserveWhiteSpace: preserveWhiteSpace\n    }); // Multiline value text should be separated by a line separator.\n\n    if (index !== 0 || currentWrapperTags.length > 0) {\n      mergePair(accumulator, {\n        formats: [,],\n        replacements: currentWrapperTags.length > 0 ? [currentWrapperTags] : [,],\n        text: LINE_SEPARATOR\n      });\n    }\n\n    accumulateSelection(accumulator, node, range, value);\n    mergePair(accumulator, value);\n  }\n\n  return accumulator;\n}\n/**\n * Gets the attributes of an element in object shape.\n *\n * @param {Object}    $1                 Named argements.\n * @param {Element}   $1.element         Element to get attributes from.\n *\n * @return {?Object} Attribute object or `undefined` if the element has no\n *                   attributes.\n */\n\n\nfunction getAttributes(_ref5) {\n  var element = _ref5.element;\n\n  if (!element.hasAttributes()) {\n    return;\n  }\n\n  var length = element.attributes.length;\n  var accumulator; // Optimise for speed.\n\n  for (var i = 0; i < length; i++) {\n    var _element$attributes$i = element.attributes[i],\n        name = _element$attributes$i.name,\n        value = _element$attributes$i.value;\n\n    if (name.indexOf('data-rich-text-') === 0) {\n      continue;\n    }\n\n    accumulator = accumulator || {};\n    accumulator[name] = value;\n  }\n\n  return accumulator;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/concat.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Concats a pair of rich text values. Not that this mutates `a` and does NOT\n * normalise formats!\n *\n * @param  {Object} a Value to mutate.\n * @param  {Object} b Value to add read from.\n *\n * @return {Object} `a`, mutated.\n */\n\nfunction mergePair(a, b) {\n  a.formats = a.formats.concat(b.formats);\n  a.replacements = a.replacements.concat(b.replacements);\n  a.text += b.text;\n  return a;\n}\n/**\n * Combine all Rich Text values into one. This is similar to\n * `String.prototype.concat`.\n *\n * @param {...Object} values Objects to combine.\n *\n * @return {Object} A new value combining all given records.\n */\n\nfunction concat() {\n  for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n    values[_key] = arguments[_key];\n  }\n\n  return normaliseFormats(values.reduce(mergePair, create()));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-formats.js\n/**\n * Gets the all format objects at the start of the selection.\n *\n * @param {Object}        value                Value to inspect.\n * @param {Array<Array>}  value.formats        Formats object data values.\n * @param {number}        value.start          Index to start from.\n * @param {number}        value.end            Index to end.\n * @param {Array}         value.activeFormats  Array to return if there are active formats.\n * @param {Array}         EMPTY_ACTIVE_FORMATS Array to return if there are no active\n *                                             formats.\n *\n * @return {?Object} Active format objects.\n */\nfunction getActiveFormats(_ref) {\n  var formats = _ref.formats,\n      start = _ref.start,\n      end = _ref.end,\n      activeFormats = _ref.activeFormats;\n  var EMPTY_ACTIVE_FORMATS = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n  if (start === undefined) {\n    return EMPTY_ACTIVE_FORMATS;\n  }\n\n  if (start === end) {\n    // For a collapsed caret, it is possible to override the active formats.\n    if (activeFormats) {\n      return activeFormats;\n    }\n\n    var formatsBefore = formats[start - 1] || EMPTY_ACTIVE_FORMATS;\n    var formatsAfter = formats[start] || EMPTY_ACTIVE_FORMATS; // By default, select the lowest amount of formats possible (which means\n    // the caret is positioned outside the format boundary). The user can\n    // then use arrow keys to define `activeFormats`.\n\n    if (formatsBefore.length < formatsAfter.length) {\n      return formatsBefore;\n    }\n\n    return formatsAfter;\n  }\n\n  return formats[start] || EMPTY_ACTIVE_FORMATS;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-format.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Gets the format object by type at the start of the selection. This can be\n * used to get e.g. the URL of a link format at the current selection, but also\n * to check if a format is active at the selection. Returns undefined if there\n * is no format at the selection.\n *\n * @param {Object} value      Value to inspect.\n * @param {string} formatType Format type to look for.\n *\n * @return {Object|undefined} Active format object of the specified type, or undefined.\n */\n\nfunction getActiveFormat(value, formatType) {\n  return Object(external_this_lodash_[\"find\"])(getActiveFormats(value), {\n    type: formatType\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-active-object.js\n/**\n * Internal dependencies\n */\n\n/**\n * Gets the active object, if there is any.\n *\n * @param {Object} value Value to inspect.\n *\n * @return {?Object} Active object, or undefined.\n */\n\nfunction getActiveObject(_ref) {\n  var start = _ref.start,\n      end = _ref.end,\n      replacements = _ref.replacements,\n      text = _ref.text;\n\n  if (start + 1 !== end || text[start] !== OBJECT_REPLACEMENT_CHARACTER) {\n    return;\n  }\n\n  return replacements[start];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-text-content.js\n/**\n * Get the textual content of a Rich Text value. This is similar to\n * `Element.textContent`.\n *\n * @param {Object} value Value to use.\n *\n * @return {string} The text content.\n */\nfunction getTextContent(_ref) {\n  var text = _ref.text;\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-line-index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Gets the currently selected line index, or the first line index if the\n * selection spans over multiple items.\n *\n * @param {Object}  value      Value to get the line index from.\n * @param {boolean} startIndex Optional index that should be contained by the\n *                             line. Defaults to the selection start of the\n *                             value.\n *\n * @return {?boolean} The line index. Undefined if not found.\n */\n\nfunction getLineIndex(_ref) {\n  var start = _ref.start,\n      text = _ref.text;\n  var startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start;\n  var index = startIndex;\n\n  while (index--) {\n    if (text[index] === LINE_SEPARATOR) {\n      return index;\n    }\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-list-root-selected.js\n/**\n * Internal dependencies\n */\n\n/**\n * Whether or not the root list is selected.\n *\n * @param {Object} value The value to check.\n *\n * @return {boolean} True if the root list or nothing is selected, false if an\n *                   inner list is selected.\n */\n\nfunction isListRootSelected(value) {\n  var replacements = value.replacements,\n      start = value.start;\n  var lineIndex = getLineIndex(value, start);\n  var replacement = replacements[lineIndex];\n  return !replacement || replacement.length < 1;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-active-list-type.js\n/**\n * Internal dependencies\n */\n\n/**\n * Wether or not the selected list has the given tag name.\n *\n * @param {Object}  value    The value to check.\n * @param {string}  type     The tag name the list should have.\n * @param {string}  rootType The current root tag name, to compare with in case\n *                           nothing is selected.\n *\n * @return {boolean} True if the current list type matches `type`, false if not.\n */\n\nfunction isActiveListType(value, type, rootType) {\n  var replacements = value.replacements,\n      start = value.start;\n  var lineIndex = getLineIndex(value, start);\n  var replacement = replacements[lineIndex];\n\n  if (!replacement || replacement.length === 0) {\n    return type === rootType;\n  }\n\n  var lastFormat = replacement[replacement.length - 1];\n  return lastFormat.type === type;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-collapsed.js\n/**\n * Check if the selection of a Rich Text value is collapsed or not. Collapsed\n * means that no characters are selected, but there is a caret present. If there\n * is no selection, `undefined` will be returned. This is similar to\n * `window.getSelection().isCollapsed()`.\n *\n * @param {Object} value The rich text value to check.\n *\n * @return {boolean|undefined} True if the selection is collapsed, false if not,\n *                             undefined if there is no selection.\n */\nfunction isCollapsed(_ref) {\n  var start = _ref.start,\n      end = _ref.end;\n\n  if (start === undefined || end === undefined) {\n    return;\n  }\n\n  return start === end;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/is-empty.js\n/**\n * Internal dependencies\n */\n\n/**\n * Check if a Rich Text value is Empty, meaning it contains no text or any\n * objects (such as images).\n *\n * @param {Object} value Value to use.\n *\n * @return {boolean} True if the value is empty, false if not.\n */\n\nfunction isEmpty(_ref) {\n  var text = _ref.text;\n  return text.length === 0;\n}\n/**\n * Check if the current collapsed selection is on an empty line in case of a\n * multiline value.\n *\n * @param  {Object} value Value te check.\n *\n * @return {boolean} True if the line is empty, false if not.\n */\n\nfunction isEmptyLine(_ref2) {\n  var text = _ref2.text,\n      start = _ref2.start,\n      end = _ref2.end;\n\n  if (start !== end) {\n    return false;\n  }\n\n  if (text.length === 0) {\n    return true;\n  }\n\n  if (start === 0 && text.slice(0, 1) === LINE_SEPARATOR) {\n    return true;\n  }\n\n  if (start === text.length && text.slice(-1) === LINE_SEPARATOR) {\n    return true;\n  }\n\n  return text.slice(start - 1, end + 1) === \"\".concat(LINE_SEPARATOR).concat(LINE_SEPARATOR);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/join.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Combine an array of Rich Text values into one, optionally separated by\n * `separator`, which can be a Rich Text value, HTML string, or plain text\n * string. This is similar to `Array.prototype.join`.\n *\n * @param {Array<Object>} values      An array of values to join.\n * @param {string|Object} [separator] Separator string or value.\n *\n * @return {Object} A new combined value.\n */\n\nfunction join(values) {\n  var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n  if (typeof separator === 'string') {\n    separator = create({\n      text: separator\n    });\n  }\n\n  return normaliseFormats(values.reduce(function (accumlator, _ref) {\n    var formats = _ref.formats,\n        replacements = _ref.replacements,\n        text = _ref.text;\n    return {\n      formats: accumlator.formats.concat(separator.formats, formats),\n      replacements: accumlator.replacements.concat(separator.replacements, replacements),\n      text: accumlator.text + separator.text + text\n    };\n  }));\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/register-format-type.js\n\n\nfunction register_format_type_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction register_format_type_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { register_format_type_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { register_format_type_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n/**\n * @typedef {Object} WPFormat\n *\n * @property {string}   name        A string identifying the format. Must be\n *                                  unique across all registered formats.\n * @property {string}   tagName     The HTML tag this format will wrap the\n *                                  selection with.\n * @property {string}   [className] A class to match the format.\n * @property {string}   title       Name of the format.\n * @property {Function} edit        Should return a component for the user to\n *                                  interact with the new registered format.\n */\n\n/**\n * Registers a new format provided a unique name and an object defining its\n * behavior.\n *\n * @param {string}   name                 Format name.\n * @param {WPFormat} settings             Format settings.\n *\n * @return {WPFormat|undefined} The format, if it has been successfully registered;\n *                              otherwise `undefined`.\n */\n\nfunction registerFormatType(name, settings) {\n  settings = register_format_type_objectSpread({\n    name: name\n  }, settings);\n\n  if (typeof settings.name !== 'string') {\n    window.console.error('Format names must be strings.');\n    return;\n  }\n\n  if (!/^[a-z][a-z0-9-]*\\/[a-z][a-z0-9-]*$/.test(settings.name)) {\n    window.console.error('Format names must contain a namespace prefix, include only lowercase alphanumeric characters or dashes, and start with a letter. Example: my-plugin/my-custom-format');\n    return;\n  }\n\n  if (Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatType(settings.name)) {\n    window.console.error('Format \"' + settings.name + '\" is already registered.');\n    return;\n  }\n\n  if (typeof settings.tagName !== 'string' || settings.tagName === '') {\n    window.console.error('Format tag names must be a string.');\n    return;\n  }\n\n  if ((typeof settings.className !== 'string' || settings.className === '') && settings.className !== null) {\n    window.console.error('Format class names must be a string, or null to handle bare elements.');\n    return;\n  }\n\n  if (!/^[_a-zA-Z]+[a-zA-Z0-9-]*$/.test(settings.className)) {\n    window.console.error('A class name must begin with a letter, followed by any number of hyphens, letters, or numbers.');\n    return;\n  }\n\n  if (settings.className === null) {\n    var formatTypeForBareElement = Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatTypeForBareElement(settings.tagName);\n\n    if (formatTypeForBareElement) {\n      window.console.error(\"Format \\\"\".concat(formatTypeForBareElement.name, \"\\\" is already registered to handle bare tag name \\\"\").concat(settings.tagName, \"\\\".\"));\n      return;\n    }\n  } else {\n    var formatTypeForClassName = Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatTypeForClassName(settings.className);\n\n    if (formatTypeForClassName) {\n      window.console.error(\"Format \\\"\".concat(formatTypeForClassName.name, \"\\\" is already registered to handle class name \\\"\").concat(settings.className, \"\\\".\"));\n      return;\n    }\n  }\n\n  if (!('title' in settings) || settings.title === '') {\n    window.console.error('The format \"' + settings.name + '\" must have a title.');\n    return;\n  }\n\n  if ('keywords' in settings && settings.keywords.length > 3) {\n    window.console.error('The format \"' + settings.name + '\" can have a maximum of 3 keywords.');\n    return;\n  }\n\n  if (typeof settings.title !== 'string') {\n    window.console.error('Format titles must be strings.');\n    return;\n  }\n\n  Object(external_this_wp_data_[\"dispatch\"])('core/rich-text').addFormatTypes(settings);\n  return settings;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/remove-format.js\n\n\nfunction remove_format_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction remove_format_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { remove_format_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { remove_format_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Remove any format object from a Rich Text value by type from the given\n * `startIndex` to the given `endIndex`. Indices are retrieved from the\n * selection if none are provided.\n *\n * @param {Object} value        Value to modify.\n * @param {string} formatType   Format type to remove.\n * @param {number} [startIndex] Start index.\n * @param {number} [endIndex]   End index.\n *\n * @return {Object} A new value with the format applied.\n */\n\nfunction removeFormat(value, formatType) {\n  var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.start;\n  var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : value.end;\n  var formats = value.formats,\n      activeFormats = value.activeFormats;\n  var newFormats = formats.slice(); // If the selection is collapsed, expand start and end to the edges of the\n  // format.\n\n  if (startIndex === endIndex) {\n    var format = Object(external_this_lodash_[\"find\"])(newFormats[startIndex], {\n      type: formatType\n    });\n\n    if (format) {\n      while (Object(external_this_lodash_[\"find\"])(newFormats[startIndex], format)) {\n        filterFormats(newFormats, startIndex, formatType);\n        startIndex--;\n      }\n\n      endIndex++;\n\n      while (Object(external_this_lodash_[\"find\"])(newFormats[endIndex], format)) {\n        filterFormats(newFormats, endIndex, formatType);\n        endIndex++;\n      }\n    }\n  } else {\n    for (var i = startIndex; i < endIndex; i++) {\n      if (newFormats[i]) {\n        filterFormats(newFormats, i, formatType);\n      }\n    }\n  }\n\n  return normaliseFormats(remove_format_objectSpread({}, value, {\n    formats: newFormats,\n    activeFormats: Object(external_this_lodash_[\"reject\"])(activeFormats, {\n      type: formatType\n    })\n  }));\n}\n\nfunction filterFormats(formats, index, formatType) {\n  var newFormats = formats[index].filter(function (_ref) {\n    var type = _ref.type;\n    return type !== formatType;\n  });\n\n  if (newFormats.length) {\n    formats[index] = newFormats;\n  } else {\n    delete formats[index];\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Insert a Rich Text value, an HTML string, or a plain text string, into a\n * Rich Text value at the given `startIndex`. Any content between `startIndex`\n * and `endIndex` will be removed. Indices are retrieved from the selection if\n * none are provided.\n *\n * @param {Object}        value         Value to modify.\n * @param {Object|string} valueToInsert Value to insert.\n * @param {number}        [startIndex]  Start index.\n * @param {number}        [endIndex]    End index.\n *\n * @return {Object} A new value with the value inserted.\n */\n\nfunction insert(value, valueToInsert) {\n  var startIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.start;\n  var endIndex = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : value.end;\n  var formats = value.formats,\n      replacements = value.replacements,\n      text = value.text;\n\n  if (typeof valueToInsert === 'string') {\n    valueToInsert = create({\n      text: valueToInsert\n    });\n  }\n\n  var index = startIndex + valueToInsert.text.length;\n  return normaliseFormats({\n    formats: formats.slice(0, startIndex).concat(valueToInsert.formats, formats.slice(endIndex)),\n    replacements: replacements.slice(0, startIndex).concat(valueToInsert.replacements, replacements.slice(endIndex)),\n    text: text.slice(0, startIndex) + valueToInsert.text + text.slice(endIndex),\n    start: index,\n    end: index\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/remove.js\n/**\n * Internal dependencies\n */\n\n\n/**\n * Remove content from a Rich Text value between the given `startIndex` and\n * `endIndex`. Indices are retrieved from the selection if none are provided.\n *\n * @param {Object} value        Value to modify.\n * @param {number} [startIndex] Start index.\n * @param {number} [endIndex]   End index.\n *\n * @return {Object} A new value with the content removed.\n */\n\nfunction remove_remove(value, startIndex, endIndex) {\n  return insert(value, create(), startIndex, endIndex);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/replace.js\n\n\n/**\n * Internal dependencies\n */\n\n/**\n * Search a Rich Text value and replace the match(es) with `replacement`. This\n * is similar to `String.prototype.replace`.\n *\n * @param {Object}         value        The value to modify.\n * @param {RegExp|string}  pattern      A RegExp object or literal. Can also be\n *                                      a string. It is treated as a verbatim\n *                                      string and is not interpreted as a\n *                                      regular expression. Only the first\n *                                      occurrence will be replaced.\n * @param {Function|string} replacement The match or matches are replaced with\n *                                      the specified or the value returned by\n *                                      the specified function.\n *\n * @return {Object} A new value with replacements applied.\n */\n\nfunction replace_replace(_ref, pattern, replacement) {\n  var formats = _ref.formats,\n      replacements = _ref.replacements,\n      text = _ref.text,\n      start = _ref.start,\n      end = _ref.end;\n  text = text.replace(pattern, function (match) {\n    for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      rest[_key - 1] = arguments[_key];\n    }\n\n    var offset = rest[rest.length - 2];\n    var newText = replacement;\n    var newFormats;\n    var newReplacements;\n\n    if (typeof newText === 'function') {\n      newText = replacement.apply(void 0, [match].concat(rest));\n    }\n\n    if (Object(esm_typeof[\"a\" /* default */])(newText) === 'object') {\n      newFormats = newText.formats;\n      newReplacements = newText.replacements;\n      newText = newText.text;\n    } else {\n      newFormats = Array(newText.length);\n      newReplacements = Array(newText.length);\n\n      if (formats[offset]) {\n        newFormats = newFormats.fill(formats[offset]);\n      }\n    }\n\n    formats = formats.slice(0, offset).concat(newFormats, formats.slice(offset + match.length));\n    replacements = replacements.slice(0, offset).concat(newReplacements, replacements.slice(offset + match.length));\n\n    if (start) {\n      start = end = offset + newText.length;\n    }\n\n    return newText;\n  });\n  return normaliseFormats({\n    formats: formats,\n    replacements: replacements,\n    text: text,\n    start: start,\n    end: end\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert-line-separator.js\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Insert a line break character into a Rich Text value at the given\n * `startIndex`. Any content between `startIndex` and `endIndex` will be\n * removed. Indices are retrieved from the selection if none are provided.\n *\n * @param {Object} value        Value to modify.\n * @param {number} [startIndex] Start index.\n * @param {number} [endIndex]   End index.\n *\n * @return {Object} A new value with the value inserted.\n */\n\nfunction insertLineSeparator(value) {\n  var startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : value.start;\n  var endIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.end;\n  var beforeText = getTextContent(value).slice(0, startIndex);\n  var previousLineSeparatorIndex = beforeText.lastIndexOf(LINE_SEPARATOR);\n  var previousLineSeparatorFormats = value.replacements[previousLineSeparatorIndex];\n  var replacements = [,];\n\n  if (previousLineSeparatorFormats) {\n    replacements = [previousLineSeparatorFormats];\n  }\n\n  var valueToInsert = {\n    formats: [,],\n    replacements: replacements,\n    text: LINE_SEPARATOR\n  };\n  return insert(value, valueToInsert, startIndex, endIndex);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/remove-line-separator.js\n\n\nfunction remove_line_separator_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction remove_line_separator_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { remove_line_separator_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { remove_line_separator_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Removes a line separator character, if existing, from a Rich Text value at the current\n * indices. If no line separator exists on the indices it will return undefined.\n *\n * @param {Object} value Value to modify.\n * @param {boolean} backward indicates if are removing from the start index or the end index.\n *\n * @return {Object|undefined} A new value with the line separator removed. Or undefined if no line separator is found on the position.\n */\n\nfunction removeLineSeparator(value) {\n  var backward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var replacements = value.replacements,\n      text = value.text,\n      start = value.start,\n      end = value.end;\n  var collapsed = isCollapsed(value);\n  var index = start - 1;\n  var removeStart = collapsed ? start - 1 : start;\n  var removeEnd = end;\n\n  if (!backward) {\n    index = end;\n    removeStart = start;\n    removeEnd = collapsed ? end + 1 : end;\n  }\n\n  if (text[index] !== LINE_SEPARATOR) {\n    return;\n  }\n\n  var newValue; // If the line separator that is about te be removed\n  // contains wrappers, remove the wrappers first.\n\n  if (collapsed && replacements[index] && replacements[index].length) {\n    var newReplacements = replacements.slice();\n    newReplacements[index] = replacements[index].slice(0, -1);\n    newValue = remove_line_separator_objectSpread({}, value, {\n      replacements: newReplacements\n    });\n  } else {\n    newValue = remove_remove(value, removeStart, removeEnd);\n  }\n\n  return newValue;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/insert-object.js\n/**\n * Internal dependencies\n */\n\nvar insert_object_OBJECT_REPLACEMENT_CHARACTER = \"\\uFFFC\";\n/**\n * Insert a format as an object into a Rich Text value at the given\n * `startIndex`. Any content between `startIndex` and `endIndex` will be\n * removed. Indices are retrieved from the selection if none are provided.\n *\n * @param {Object} value          Value to modify.\n * @param {Object} formatToInsert Format to insert as object.\n * @param {number} [startIndex]   Start index.\n * @param {number} [endIndex]     End index.\n *\n * @return {Object} A new value with the object inserted.\n */\n\nfunction insertObject(value, formatToInsert, startIndex, endIndex) {\n  var valueToInsert = {\n    formats: [,],\n    replacements: [formatToInsert],\n    text: insert_object_OBJECT_REPLACEMENT_CHARACTER\n  };\n  return insert(value, valueToInsert, startIndex, endIndex);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/slice.js\n\n\nfunction slice_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction slice_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { slice_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { slice_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Slice a Rich Text value from `startIndex` to `endIndex`. Indices are\n * retrieved from the selection if none are provided. This is similar to\n * `String.prototype.slice`.\n *\n * @param {Object} value        Value to modify.\n * @param {number} [startIndex] Start index.\n * @param {number} [endIndex]   End index.\n *\n * @return {Object} A new extracted value.\n */\nfunction slice(value) {\n  var startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : value.start;\n  var endIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : value.end;\n  var formats = value.formats,\n      replacements = value.replacements,\n      text = value.text;\n\n  if (startIndex === undefined || endIndex === undefined) {\n    return slice_objectSpread({}, value);\n  }\n\n  return {\n    formats: formats.slice(startIndex, endIndex),\n    replacements: replacements.slice(startIndex, endIndex),\n    text: text.slice(startIndex, endIndex)\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/split.js\n/**\n * Internal dependencies\n */\n\n/**\n * Split a Rich Text value in two at the given `startIndex` and `endIndex`, or\n * split at the given separator. This is similar to `String.prototype.split`.\n * Indices are retrieved from the selection if none are provided.\n *\n * @param {Object}        value\n * @param {Object[]}      value.formats\n * @param {Object[]}      value.replacements\n * @param {string}        value.text\n * @param {number}        value.start\n * @param {number}        value.end\n * @param {number|string} [string] Start index, or string at which to split.\n *\n * @return {Array} An array of new values.\n */\n\nfunction split(_ref, string) {\n  var formats = _ref.formats,\n      replacements = _ref.replacements,\n      text = _ref.text,\n      start = _ref.start,\n      end = _ref.end;\n\n  if (typeof string !== 'string') {\n    return splitAtSelection.apply(void 0, arguments);\n  }\n\n  var nextStart = 0;\n  return text.split(string).map(function (substring) {\n    var startIndex = nextStart;\n    var value = {\n      formats: formats.slice(startIndex, startIndex + substring.length),\n      replacements: replacements.slice(startIndex, startIndex + substring.length),\n      text: substring\n    };\n    nextStart += string.length + substring.length;\n\n    if (start !== undefined && end !== undefined) {\n      if (start >= startIndex && start < nextStart) {\n        value.start = start - startIndex;\n      } else if (start < startIndex && end > startIndex) {\n        value.start = 0;\n      }\n\n      if (end >= startIndex && end < nextStart) {\n        value.end = end - startIndex;\n      } else if (start < nextStart && end > nextStart) {\n        value.end = substring.length;\n      }\n    }\n\n    return value;\n  });\n}\n\nfunction splitAtSelection(_ref2) {\n  var formats = _ref2.formats,\n      replacements = _ref2.replacements,\n      text = _ref2.text,\n      start = _ref2.start,\n      end = _ref2.end;\n  var startIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : start;\n  var endIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : end;\n  var before = {\n    formats: formats.slice(0, startIndex),\n    replacements: replacements.slice(0, startIndex),\n    text: text.slice(0, startIndex)\n  };\n  var after = {\n    formats: formats.slice(endIndex),\n    replacements: replacements.slice(endIndex),\n    text: text.slice(endIndex),\n    start: 0,\n    end: 0\n  };\n  return [// Ensure newlines are trimmed.\n  replace_replace(before, /\\u2028+$/, ''), replace_replace(after, /^\\u2028+/, '')];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-format-type.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Returns a registered format type.\n *\n * @param {string} name Format name.\n *\n * @return {?Object} Format type.\n */\n\nfunction get_format_type_getFormatType(name) {\n  return Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatType(name);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-tree.js\n\n\n\nfunction to_tree_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction to_tree_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { to_tree_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { to_tree_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Converts a format object to information that can be used to create an element\n * from (type, attributes and object).\n *\n * @param  {Object}  $1                        Named parameters.\n * @param  {string}  $1.type                   The format type.\n * @param  {Object}  $1.attributes             The format attributes.\n * @param  {Object}  $1.unregisteredAttributes The unregistered format\n *                                             attributes.\n * @param  {boolean} $1.object                 Wether or not it is an object\n *                                             format.\n * @param  {boolean} $1.boundaryClass          Wether or not to apply a boundary\n *                                             class.\n * @return {Object}                            Information to be used for\n *                                             element creation.\n */\n\nfunction fromFormat(_ref) {\n  var type = _ref.type,\n      attributes = _ref.attributes,\n      unregisteredAttributes = _ref.unregisteredAttributes,\n      object = _ref.object,\n      boundaryClass = _ref.boundaryClass;\n  var formatType = get_format_type_getFormatType(type);\n  var elementAttributes = {};\n\n  if (boundaryClass) {\n    elementAttributes['data-rich-text-format-boundary'] = 'true';\n  }\n\n  if (!formatType) {\n    if (attributes) {\n      elementAttributes = to_tree_objectSpread({}, attributes, {}, elementAttributes);\n    }\n\n    return {\n      type: type,\n      attributes: elementAttributes,\n      object: object\n    };\n  }\n\n  elementAttributes = to_tree_objectSpread({}, unregisteredAttributes, {}, elementAttributes);\n\n  for (var name in attributes) {\n    var key = formatType.attributes ? formatType.attributes[name] : false;\n\n    if (key) {\n      elementAttributes[key] = attributes[name];\n    } else {\n      elementAttributes[name] = attributes[name];\n    }\n  }\n\n  if (formatType.className) {\n    if (elementAttributes.class) {\n      elementAttributes.class = \"\".concat(formatType.className, \" \").concat(elementAttributes.class);\n    } else {\n      elementAttributes.class = formatType.className;\n    }\n  }\n\n  return {\n    type: formatType.tagName,\n    object: formatType.object,\n    attributes: elementAttributes\n  };\n}\n/**\n * Checks if both arrays of formats up until a certain index are equal.\n *\n * @param {Array}  a     Array of formats to compare.\n * @param {Array}  b     Array of formats to compare.\n * @param {number} index Index to check until.\n */\n\n\nfunction isEqualUntil(a, b, index) {\n  do {\n    if (a[index] !== b[index]) {\n      return false;\n    }\n  } while (index--);\n\n  return true;\n}\n\nfunction toTree(_ref2) {\n  var value = _ref2.value,\n      multilineTag = _ref2.multilineTag,\n      preserveWhiteSpace = _ref2.preserveWhiteSpace,\n      createEmpty = _ref2.createEmpty,\n      append = _ref2.append,\n      getLastChild = _ref2.getLastChild,\n      getParent = _ref2.getParent,\n      isText = _ref2.isText,\n      getText = _ref2.getText,\n      remove = _ref2.remove,\n      appendText = _ref2.appendText,\n      onStartIndex = _ref2.onStartIndex,\n      onEndIndex = _ref2.onEndIndex,\n      isEditableTree = _ref2.isEditableTree,\n      placeholder = _ref2.placeholder;\n  var formats = value.formats,\n      replacements = value.replacements,\n      text = value.text,\n      start = value.start,\n      end = value.end;\n  var formatsLength = formats.length + 1;\n  var tree = createEmpty();\n  var multilineFormat = {\n    type: multilineTag\n  };\n  var activeFormats = getActiveFormats(value);\n  var deepestActiveFormat = activeFormats[activeFormats.length - 1];\n  var lastSeparatorFormats;\n  var lastCharacterFormats;\n  var lastCharacter; // If we're building a multiline tree, start off with a multiline element.\n\n  if (multilineTag) {\n    append(append(tree, {\n      type: multilineTag\n    }), '');\n    lastCharacterFormats = lastSeparatorFormats = [multilineFormat];\n  } else {\n    append(tree, '');\n  }\n\n  var _loop = function _loop(i) {\n    var character = text.charAt(i);\n    var shouldInsertPadding = isEditableTree && ( // Pad the line if the line is empty.\n    !lastCharacter || lastCharacter === LINE_SEPARATOR || // Pad the line if the previous character is a line break, otherwise\n    // the line break won't be visible.\n    lastCharacter === '\\n');\n    var characterFormats = formats[i]; // Set multiline tags in queue for building the tree.\n\n    if (multilineTag) {\n      if (character === LINE_SEPARATOR) {\n        characterFormats = lastSeparatorFormats = (replacements[i] || []).reduce(function (accumulator, format) {\n          accumulator.push(format, multilineFormat);\n          return accumulator;\n        }, [multilineFormat]);\n      } else {\n        characterFormats = [].concat(Object(toConsumableArray[\"a\" /* default */])(lastSeparatorFormats), Object(toConsumableArray[\"a\" /* default */])(characterFormats || []));\n      }\n    }\n\n    var pointer = getLastChild(tree);\n\n    if (shouldInsertPadding && character === LINE_SEPARATOR) {\n      var node = pointer;\n\n      while (!isText(node)) {\n        node = getLastChild(node);\n      }\n\n      append(getParent(node), ZWNBSP);\n    } // Set selection for the start of line.\n\n\n    if (lastCharacter === LINE_SEPARATOR) {\n      var _node = pointer;\n\n      while (!isText(_node)) {\n        _node = getLastChild(_node);\n      }\n\n      if (onStartIndex && start === i) {\n        onStartIndex(tree, _node);\n      }\n\n      if (onEndIndex && end === i) {\n        onEndIndex(tree, _node);\n      }\n    }\n\n    if (characterFormats) {\n      characterFormats.forEach(function (format, formatIndex) {\n        if (pointer && lastCharacterFormats && // Reuse the last element if all formats remain the same.\n        isEqualUntil(characterFormats, lastCharacterFormats, formatIndex) && ( // Do not reuse the last element if the character is a\n        // line separator.\n        character !== LINE_SEPARATOR || characterFormats.length - 1 !== formatIndex)) {\n          pointer = getLastChild(pointer);\n          return;\n        }\n\n        var type = format.type,\n            attributes = format.attributes,\n            unregisteredAttributes = format.unregisteredAttributes;\n        var boundaryClass = isEditableTree && character !== LINE_SEPARATOR && format === deepestActiveFormat;\n        var parent = getParent(pointer);\n        var newNode = append(parent, fromFormat({\n          type: type,\n          attributes: attributes,\n          unregisteredAttributes: unregisteredAttributes,\n          boundaryClass: boundaryClass\n        }));\n\n        if (isText(pointer) && getText(pointer).length === 0) {\n          remove(pointer);\n        }\n\n        pointer = append(newNode, '');\n      });\n    } // No need for further processing if the character is a line separator.\n\n\n    if (character === LINE_SEPARATOR) {\n      lastCharacterFormats = characterFormats;\n      lastCharacter = character;\n      return \"continue\";\n    } // If there is selection at 0, handle it before characters are inserted.\n\n\n    if (i === 0) {\n      if (onStartIndex && start === 0) {\n        onStartIndex(tree, pointer);\n      }\n\n      if (onEndIndex && end === 0) {\n        onEndIndex(tree, pointer);\n      }\n    }\n\n    if (character === OBJECT_REPLACEMENT_CHARACTER) {\n      pointer = append(getParent(pointer), fromFormat(to_tree_objectSpread({}, replacements[i], {\n        object: true\n      }))); // Ensure pointer is text node.\n\n      pointer = append(getParent(pointer), '');\n    } else if (!preserveWhiteSpace && character === '\\n') {\n      pointer = append(getParent(pointer), {\n        type: 'br',\n        attributes: isEditableTree ? {\n          'data-rich-text-line-break': 'true'\n        } : undefined,\n        object: true\n      }); // Ensure pointer is text node.\n\n      pointer = append(getParent(pointer), '');\n    } else if (!isText(pointer)) {\n      pointer = append(getParent(pointer), character);\n    } else {\n      appendText(pointer, character);\n    }\n\n    if (onStartIndex && start === i + 1) {\n      onStartIndex(tree, pointer);\n    }\n\n    if (onEndIndex && end === i + 1) {\n      onEndIndex(tree, pointer);\n    }\n\n    if (shouldInsertPadding && i === text.length) {\n      append(getParent(pointer), ZWNBSP);\n\n      if (placeholder && text.length === 0) {\n        append(getParent(pointer), {\n          type: 'span',\n          attributes: {\n            'data-rich-text-placeholder': placeholder,\n            // Necessary to prevent the placeholder from catching\n            // selection. The placeholder is also not editable after\n            // all.\n            contenteditable: 'false'\n          }\n        });\n      }\n    }\n\n    lastCharacterFormats = characterFormats;\n    lastCharacter = character;\n  };\n\n  for (var i = 0; i < formatsLength; i++) {\n    var _ret = _loop(i);\n\n    if (_ret === \"continue\") continue;\n  }\n\n  return tree;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-dom.js\n\n\n\nfunction to_dom_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction to_dom_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { to_dom_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { to_dom_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Creates a path as an array of indices from the given root node to the given\n * node.\n *\n * @param {Node}        node     Node to find the path of.\n * @param {HTMLElement} rootNode Root node to find the path from.\n * @param {Array}       path     Initial path to build on.\n *\n * @return {Array} The path from the root node to the node.\n */\n\nfunction createPathToNode(node, rootNode, path) {\n  var parentNode = node.parentNode;\n  var i = 0;\n\n  while (node = node.previousSibling) {\n    i++;\n  }\n\n  path = [i].concat(Object(toConsumableArray[\"a\" /* default */])(path));\n\n  if (parentNode !== rootNode) {\n    path = createPathToNode(parentNode, rootNode, path);\n  }\n\n  return path;\n}\n/**\n * Gets a node given a path (array of indices) from the given node.\n *\n * @param {HTMLElement} node Root node to find the wanted node in.\n * @param {Array}       path Path (indices) to the wanted node.\n *\n * @return {Object} Object with the found node and the remaining offset (if any).\n */\n\n\nfunction getNodeByPath(node, path) {\n  path = Object(toConsumableArray[\"a\" /* default */])(path);\n\n  while (node && path.length > 1) {\n    node = node.childNodes[path.shift()];\n  }\n\n  return {\n    node: node,\n    offset: path[0]\n  };\n}\n\nfunction to_dom_append(element, child) {\n  if (typeof child === 'string') {\n    child = element.ownerDocument.createTextNode(child);\n  }\n\n  var _child = child,\n      type = _child.type,\n      attributes = _child.attributes;\n\n  if (type) {\n    child = element.ownerDocument.createElement(type);\n\n    for (var key in attributes) {\n      child.setAttribute(key, attributes[key]);\n    }\n  }\n\n  return element.appendChild(child);\n}\n\nfunction to_dom_appendText(node, text) {\n  node.appendData(text);\n}\n\nfunction to_dom_getLastChild(_ref) {\n  var lastChild = _ref.lastChild;\n  return lastChild;\n}\n\nfunction to_dom_getParent(_ref2) {\n  var parentNode = _ref2.parentNode;\n  return parentNode;\n}\n\nfunction to_dom_isText(node) {\n  return node.nodeType === node.TEXT_NODE;\n}\n\nfunction to_dom_getText(_ref3) {\n  var nodeValue = _ref3.nodeValue;\n  return nodeValue;\n}\n\nfunction to_dom_remove(node) {\n  return node.parentNode.removeChild(node);\n}\n\nfunction toDom(_ref4) {\n  var value = _ref4.value,\n      multilineTag = _ref4.multilineTag,\n      prepareEditableTree = _ref4.prepareEditableTree,\n      _ref4$isEditableTree = _ref4.isEditableTree,\n      isEditableTree = _ref4$isEditableTree === void 0 ? true : _ref4$isEditableTree,\n      placeholder = _ref4.placeholder,\n      _ref4$doc = _ref4.doc,\n      doc = _ref4$doc === void 0 ? document : _ref4$doc;\n  var startPath = [];\n  var endPath = [];\n\n  if (prepareEditableTree) {\n    value = to_dom_objectSpread({}, value, {\n      formats: prepareEditableTree(value)\n    });\n  }\n  /**\n   * Returns a new instance of a DOM tree upon which RichText operations can be\n   * applied.\n   *\n   * Note: The current implementation will return a shared reference, reset on\n   * each call to `createEmpty`. Therefore, you should not hold a reference to\n   * the value to operate upon asynchronously, as it may have unexpected results.\n   *\n   * @return {Object} RichText tree.\n   */\n\n\n  var createEmpty = function createEmpty() {\n    return createElement(doc, '');\n  };\n\n  var tree = toTree({\n    value: value,\n    multilineTag: multilineTag,\n    createEmpty: createEmpty,\n    append: to_dom_append,\n    getLastChild: to_dom_getLastChild,\n    getParent: to_dom_getParent,\n    isText: to_dom_isText,\n    getText: to_dom_getText,\n    remove: to_dom_remove,\n    appendText: to_dom_appendText,\n    onStartIndex: function onStartIndex(body, pointer) {\n      startPath = createPathToNode(pointer, body, [pointer.nodeValue.length]);\n    },\n    onEndIndex: function onEndIndex(body, pointer) {\n      endPath = createPathToNode(pointer, body, [pointer.nodeValue.length]);\n    },\n    isEditableTree: isEditableTree,\n    placeholder: placeholder\n  });\n  return {\n    body: tree,\n    selection: {\n      startPath: startPath,\n      endPath: endPath\n    }\n  };\n}\n/**\n * Create an `Element` tree from a Rich Text value and applies the difference to\n * the `Element` tree contained by `current`. If a `multilineTag` is provided,\n * text separated by two new lines will be wrapped in an `Element` of that type.\n *\n * @param {Object}      $1                        Named arguments.\n * @param {Object}      $1.value                  Value to apply.\n * @param {HTMLElement} $1.current                The live root node to apply the element tree to.\n * @param {string}      [$1.multilineTag]         Multiline tag.\n * @param {Array}       [$1.multilineWrapperTags] Tags where lines can be found if nesting is possible.\n */\n\nfunction apply(_ref5) {\n  var value = _ref5.value,\n      current = _ref5.current,\n      multilineTag = _ref5.multilineTag,\n      prepareEditableTree = _ref5.prepareEditableTree,\n      __unstableDomOnly = _ref5.__unstableDomOnly,\n      placeholder = _ref5.placeholder;\n\n  // Construct a new element tree in memory.\n  var _toDom = toDom({\n    value: value,\n    multilineTag: multilineTag,\n    prepareEditableTree: prepareEditableTree,\n    placeholder: placeholder,\n    doc: current.ownerDocument\n  }),\n      body = _toDom.body,\n      selection = _toDom.selection;\n\n  applyValue(body, current);\n\n  if (value.start !== undefined && !__unstableDomOnly) {\n    applySelection(selection, current);\n  }\n}\nfunction applyValue(future, current) {\n  var i = 0;\n  var futureChild;\n\n  while (futureChild = future.firstChild) {\n    var currentChild = current.childNodes[i];\n\n    if (!currentChild) {\n      current.appendChild(futureChild);\n    } else if (!currentChild.isEqualNode(futureChild)) {\n      if (currentChild.nodeName !== futureChild.nodeName || currentChild.nodeType === currentChild.TEXT_NODE && currentChild.data !== futureChild.data) {\n        current.replaceChild(futureChild, currentChild);\n      } else {\n        var currentAttributes = currentChild.attributes;\n        var futureAttributes = futureChild.attributes;\n\n        if (currentAttributes) {\n          var ii = currentAttributes.length; // Reverse loop because `removeAttribute` on `currentChild`\n          // changes `currentAttributes`.\n\n          while (ii--) {\n            var name = currentAttributes[ii].name;\n\n            if (!futureChild.getAttribute(name)) {\n              currentChild.removeAttribute(name);\n            }\n          }\n        }\n\n        if (futureAttributes) {\n          for (var _ii = 0; _ii < futureAttributes.length; _ii++) {\n            var _futureAttributes$_ii = futureAttributes[_ii],\n                _name = _futureAttributes$_ii.name,\n                value = _futureAttributes$_ii.value;\n\n            if (currentChild.getAttribute(_name) !== value) {\n              currentChild.setAttribute(_name, value);\n            }\n          }\n        }\n\n        applyValue(futureChild, currentChild);\n        future.removeChild(futureChild);\n      }\n    } else {\n      future.removeChild(futureChild);\n    }\n\n    i++;\n  }\n\n  while (current.childNodes[i]) {\n    current.removeChild(current.childNodes[i]);\n  }\n}\n/**\n * Returns true if two ranges are equal, or false otherwise. Ranges are\n * considered equal if their start and end occur in the same container and\n * offset.\n *\n * @param {Range} a First range object to test.\n * @param {Range} b First range object to test.\n *\n * @return {boolean} Whether the two ranges are equal.\n */\n\nfunction isRangeEqual(a, b) {\n  return a.startContainer === b.startContainer && a.startOffset === b.startOffset && a.endContainer === b.endContainer && a.endOffset === b.endOffset;\n}\n\nfunction applySelection(_ref6, current) {\n  var startPath = _ref6.startPath,\n      endPath = _ref6.endPath;\n\n  var _getNodeByPath = getNodeByPath(current, startPath),\n      startContainer = _getNodeByPath.node,\n      startOffset = _getNodeByPath.offset;\n\n  var _getNodeByPath2 = getNodeByPath(current, endPath),\n      endContainer = _getNodeByPath2.node,\n      endOffset = _getNodeByPath2.offset;\n\n  var ownerDocument = current.ownerDocument;\n  var defaultView = ownerDocument.defaultView;\n  var selection = defaultView.getSelection();\n  var range = ownerDocument.createRange();\n  range.setStart(startContainer, startOffset);\n  range.setEnd(endContainer, endOffset);\n  var activeElement = ownerDocument.activeElement;\n\n  if (selection.rangeCount > 0) {\n    // If the to be added range and the live range are the same, there's no\n    // need to remove the live range and add the equivalent range.\n    if (isRangeEqual(range, selection.getRangeAt(0))) {\n      return;\n    }\n\n    selection.removeAllRanges();\n  }\n\n  selection.addRange(range); // This function is not intended to cause a shift in focus. Since the above\n  // selection manipulations may shift focus, ensure that focus is restored to\n  // its previous state.\n\n  if (activeElement !== ownerDocument.activeElement) {\n    // The `instanceof` checks protect against edge cases where the focused\n    // element is not of the interface HTMLElement (does not have a `focus`\n    // or `blur` property).\n    //\n    // See: https://github.com/Microsoft/TypeScript/issues/5901#issuecomment-431649653\n    if (activeElement instanceof defaultView.HTMLElement) {\n      activeElement.focus();\n    }\n  }\n}\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"escapeHtml\"]}\nvar external_this_wp_escapeHtml_ = __webpack_require__(79);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/to-html-string.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Create an HTML string from a Rich Text value. If a `multilineTag` is\n * provided, text separated by a line separator will be wrapped in it.\n *\n * @param {Object}   $1                      Named argements.\n * @param {Object}   $1.value                Rich text value.\n * @param {string}   [$1.multilineTag]       Multiline tag.\n * @param {?boolean} [$1.preserveWhiteSpace] Whether or not to use newline\n *                                           characters for line breaks.\n *\n * @return {string} HTML string.\n */\n\nfunction toHTMLString(_ref) {\n  var value = _ref.value,\n      multilineTag = _ref.multilineTag,\n      preserveWhiteSpace = _ref.preserveWhiteSpace;\n  var tree = toTree({\n    value: value,\n    multilineTag: multilineTag,\n    preserveWhiteSpace: preserveWhiteSpace,\n    createEmpty: to_html_string_createEmpty,\n    append: to_html_string_append,\n    getLastChild: to_html_string_getLastChild,\n    getParent: to_html_string_getParent,\n    isText: to_html_string_isText,\n    getText: to_html_string_getText,\n    remove: to_html_string_remove,\n    appendText: to_html_string_appendText\n  });\n  return createChildrenHTML(tree.children);\n}\n\nfunction to_html_string_createEmpty() {\n  return {};\n}\n\nfunction to_html_string_getLastChild(_ref2) {\n  var children = _ref2.children;\n  return children && children[children.length - 1];\n}\n\nfunction to_html_string_append(parent, object) {\n  if (typeof object === 'string') {\n    object = {\n      text: object\n    };\n  }\n\n  object.parent = parent;\n  parent.children = parent.children || [];\n  parent.children.push(object);\n  return object;\n}\n\nfunction to_html_string_appendText(object, text) {\n  object.text += text;\n}\n\nfunction to_html_string_getParent(_ref3) {\n  var parent = _ref3.parent;\n  return parent;\n}\n\nfunction to_html_string_isText(_ref4) {\n  var text = _ref4.text;\n  return typeof text === 'string';\n}\n\nfunction to_html_string_getText(_ref5) {\n  var text = _ref5.text;\n  return text;\n}\n\nfunction to_html_string_remove(object) {\n  var index = object.parent.children.indexOf(object);\n\n  if (index !== -1) {\n    object.parent.children.splice(index, 1);\n  }\n\n  return object;\n}\n\nfunction createElementHTML(_ref6) {\n  var type = _ref6.type,\n      attributes = _ref6.attributes,\n      object = _ref6.object,\n      children = _ref6.children;\n  var attributeString = '';\n\n  for (var key in attributes) {\n    if (!Object(external_this_wp_escapeHtml_[\"isValidAttributeName\"])(key)) {\n      continue;\n    }\n\n    attributeString += \" \".concat(key, \"=\\\"\").concat(Object(external_this_wp_escapeHtml_[\"escapeAttribute\"])(attributes[key]), \"\\\"\");\n  }\n\n  if (object) {\n    return \"<\".concat(type).concat(attributeString, \">\");\n  }\n\n  return \"<\".concat(type).concat(attributeString, \">\").concat(createChildrenHTML(children), \"</\").concat(type, \">\");\n}\n\nfunction createChildrenHTML() {\n  var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return children.map(function (child) {\n    return child.text === undefined ? createElementHTML(child) : Object(external_this_wp_escapeHtml_[\"escapeEditableHTML\"])(child.text);\n  }).join('');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/toggle-format.js\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Toggles a format object to a Rich Text value at the current selection.\n *\n * @param {Object} value  Value to modify.\n * @param {Object} format Format to apply or remove.\n *\n * @return {Object} A new value with the format applied or removed.\n */\n\nfunction toggleFormat(value, format) {\n  if (getActiveFormat(value, format.type)) {\n    return removeFormat(value, format.type);\n  }\n\n  return applyFormat(value, format);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/unregister-format-type.js\n/**\n * WordPress dependencies\n */\n\n/** @typedef {import('./register-format-type').WPFormat} WPFormat */\n\n/**\n * Unregisters a format.\n *\n * @param {string} name Format name.\n *\n * @return {WPFormat|undefined} The previous format value, if it has been successfully\n *                              unregistered; otherwise `undefined`.\n */\n\nfunction unregisterFormatType(name) {\n  var oldFormat = Object(external_this_wp_data_[\"select\"])('core/rich-text').getFormatType(name);\n\n  if (!oldFormat) {\n    window.console.error(\"Format \".concat(name, \" is not registered.\"));\n    return;\n  }\n\n  Object(external_this_wp_data_[\"dispatch\"])('core/rich-text').removeFormatTypes(name);\n  return oldFormat;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/can-indent-list-items.js\n/**\n * Internal dependencies\n */\n\n/**\n * Checks if the selected list item can be indented.\n *\n * @param {Object} value Value to check.\n *\n * @return {boolean} Whether or not the selected list item can be indented.\n */\n\nfunction canIndentListItems(value) {\n  var lineIndex = getLineIndex(value); // There is only one line, so the line cannot be indented.\n\n  if (lineIndex === undefined) {\n    return false;\n  }\n\n  var replacements = value.replacements;\n  var previousLineIndex = getLineIndex(value, lineIndex);\n  var formatsAtLineIndex = replacements[lineIndex] || [];\n  var formatsAtPreviousLineIndex = replacements[previousLineIndex] || []; // If the indentation of the current line is greater than previous line,\n  // then the line cannot be furter indented.\n\n  return formatsAtLineIndex.length <= formatsAtPreviousLineIndex.length;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/can-outdent-list-items.js\n/**\n * Internal dependencies\n */\n\n/**\n * Checks if the selected list item can be outdented.\n *\n * @param {Object} value Value to check.\n *\n * @return {boolean} Whether or not the selected list item can be outdented.\n */\n\nfunction canOutdentListItems(value) {\n  var replacements = value.replacements,\n      start = value.start;\n  var startingLineIndex = getLineIndex(value, start);\n  return replacements[startingLineIndex] !== undefined;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/indent-list-items.js\n\n\nfunction indent_list_items_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction indent_list_items_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { indent_list_items_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { indent_list_items_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Gets the line index of the first previous list item with higher indentation.\n *\n * @param {Object} value      Value to search.\n * @param {number} lineIndex  Line index of the list item to compare with.\n *\n * @return {boolean} The line index.\n */\n\nfunction getTargetLevelLineIndex(_ref, lineIndex) {\n  var text = _ref.text,\n      replacements = _ref.replacements;\n  var startFormats = replacements[lineIndex] || [];\n  var index = lineIndex;\n\n  while (index-- >= 0) {\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    }\n\n    var formatsAtIndex = replacements[index] || []; // Return the first line index that is one level higher. If the level is\n    // lower or equal, there is no result.\n\n    if (formatsAtIndex.length === startFormats.length + 1) {\n      return index;\n    } else if (formatsAtIndex.length <= startFormats.length) {\n      return;\n    }\n  }\n}\n/**\n * Indents any selected list items if possible.\n *\n * @param {Object} value      Value to change.\n * @param {Object} rootFormat Root format.\n *\n * @return {Object} The changed value.\n */\n\n\nfunction indentListItems(value, rootFormat) {\n  if (!canIndentListItems(value)) {\n    return value;\n  }\n\n  var lineIndex = getLineIndex(value);\n  var previousLineIndex = getLineIndex(value, lineIndex);\n  var text = value.text,\n      replacements = value.replacements,\n      end = value.end;\n  var newFormats = replacements.slice();\n  var targetLevelLineIndex = getTargetLevelLineIndex(value, lineIndex);\n\n  for (var index = lineIndex; index < end; index++) {\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    } // Get the previous list, and if there's a child list, take over the\n    // formats. If not, duplicate the last level and create a new level.\n\n\n    if (targetLevelLineIndex) {\n      var targetFormats = replacements[targetLevelLineIndex] || [];\n      newFormats[index] = targetFormats.concat((newFormats[index] || []).slice(targetFormats.length - 1));\n    } else {\n      var _targetFormats = replacements[previousLineIndex] || [];\n\n      var lastformat = _targetFormats[_targetFormats.length - 1] || rootFormat;\n      newFormats[index] = _targetFormats.concat([lastformat], (newFormats[index] || []).slice(_targetFormats.length));\n    }\n  }\n\n  return indent_list_items_objectSpread({}, value, {\n    replacements: newFormats\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-parent-line-index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Gets the index of the first parent list. To get the parent list formats, we\n * go through every list item until we find one with exactly one format type\n * less.\n *\n * @param {Object} value     Value to search.\n * @param {number} lineIndex Line index of a child list item.\n *\n * @return {Array} The parent list line index.\n */\n\nfunction getParentLineIndex(_ref, lineIndex) {\n  var text = _ref.text,\n      replacements = _ref.replacements;\n  var startFormats = replacements[lineIndex] || [];\n  var index = lineIndex;\n\n  while (index-- >= 0) {\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    }\n\n    var formatsAtIndex = replacements[index] || [];\n\n    if (formatsAtIndex.length === startFormats.length - 1) {\n      return index;\n    }\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/get-last-child-index.js\n/**\n * Internal dependencies\n */\n\n/**\n * Gets the line index of the last child in the list.\n *\n * @param {Object} value     Value to search.\n * @param {number} lineIndex Line index of a list item in the list.\n *\n * @return {Array} The index of the last child.\n */\n\nfunction getLastChildIndex(_ref, lineIndex) {\n  var text = _ref.text,\n      replacements = _ref.replacements;\n  var lineFormats = replacements[lineIndex] || []; // Use the given line index in case there are no next children.\n\n  var childIndex = lineIndex; // `lineIndex` could be `undefined` if it's the first line.\n\n  for (var index = lineIndex || 0; index < text.length; index++) {\n    // We're only interested in line indices.\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    }\n\n    var formatsAtIndex = replacements[index] || []; // If the amout of formats is equal or more, store it, then return the\n    // last one if the amount of formats is less.\n\n    if (formatsAtIndex.length >= lineFormats.length) {\n      childIndex = index;\n    } else {\n      return childIndex;\n    }\n  } // If the end of the text is reached, return the last child index.\n\n\n  return childIndex;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/outdent-list-items.js\n\n\nfunction outdent_list_items_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction outdent_list_items_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { outdent_list_items_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { outdent_list_items_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n/**\n * Outdents any selected list items if possible.\n *\n * @param {Object} value Value to change.\n *\n * @return {Object} The changed value.\n */\n\nfunction outdentListItems(value) {\n  if (!canOutdentListItems(value)) {\n    return value;\n  }\n\n  var text = value.text,\n      replacements = value.replacements,\n      start = value.start,\n      end = value.end;\n  var startingLineIndex = getLineIndex(value, start);\n  var newFormats = replacements.slice(0);\n  var parentFormats = replacements[getParentLineIndex(value, startingLineIndex)] || [];\n  var endingLineIndex = getLineIndex(value, end);\n  var lastChildIndex = getLastChildIndex(value, endingLineIndex); // Outdent all list items from the starting line index until the last child\n  // index of the ending list. All children of the ending list need to be\n  // outdented, otherwise they'll be orphaned.\n\n  for (var index = startingLineIndex; index <= lastChildIndex; index++) {\n    // Skip indices that are not line separators.\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    } // In the case of level 0, the formats at the index are undefined.\n\n\n    var currentFormats = newFormats[index] || []; // Omit the indentation level where the selection starts.\n\n    newFormats[index] = parentFormats.concat(currentFormats.slice(parentFormats.length + 1));\n\n    if (newFormats[index].length === 0) {\n      delete newFormats[index];\n    }\n  }\n\n  return outdent_list_items_objectSpread({}, value, {\n    replacements: newFormats\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/change-list-type.js\n\n\nfunction change_list_type_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction change_list_type_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { change_list_type_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { change_list_type_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Changes the list type of the selected indented list, if any. Looks at the\n * currently selected list item and takes the parent list, then changes the list\n * type of this list. When multiple lines are selected, the parent lists are\n * takes and changed.\n *\n * @param {Object} value     Value to change.\n * @param {Object} newFormat The new list format object. Choose between\n *                           `{ type: 'ol' }` and `{ type: 'ul' }`.\n *\n * @return {Object} The changed value.\n */\n\nfunction changeListType(value, newFormat) {\n  var text = value.text,\n      replacements = value.replacements,\n      start = value.start,\n      end = value.end;\n  var startingLineIndex = getLineIndex(value, start);\n  var startLineFormats = replacements[startingLineIndex] || [];\n  var endLineFormats = replacements[getLineIndex(value, end)] || [];\n  var startIndex = getParentLineIndex(value, startingLineIndex);\n  var newReplacements = replacements.slice();\n  var startCount = startLineFormats.length - 1;\n  var endCount = endLineFormats.length - 1;\n  var changed;\n\n  for (var index = startIndex + 1 || 0; index < text.length; index++) {\n    if (text[index] !== LINE_SEPARATOR) {\n      continue;\n    }\n\n    if ((newReplacements[index] || []).length <= startCount) {\n      break;\n    }\n\n    if (!newReplacements[index]) {\n      continue;\n    }\n\n    changed = true;\n    newReplacements[index] = newReplacements[index].map(function (format, i) {\n      return i < startCount || i > endCount ? format : newFormat;\n    });\n  }\n\n  if (!changed) {\n    return value;\n  }\n\n  return change_list_type_objectSpread({}, value, {\n    replacements: newReplacements\n  });\n}\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./node_modules/classnames/index.js\nvar classnames = __webpack_require__(11);\nvar classnames_default = /*#__PURE__*/__webpack_require__.n(classnames);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"keycodes\"]}\nvar external_this_wp_keycodes_ = __webpack_require__(21);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/component/format-edit.js\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Set of all interactive content tags.\n *\n * @see https://html.spec.whatwg.org/multipage/dom.html#interactive-content\n */\n\nvar interactiveContentTags = new Set(['a', 'audio', 'button', 'details', 'embed', 'iframe', 'input', 'label', 'select', 'textarea', 'video']);\nfunction FormatEdit(_ref) {\n  var formatTypes = _ref.formatTypes,\n      onChange = _ref.onChange,\n      onFocus = _ref.onFocus,\n      value = _ref.value,\n      allowedFormats = _ref.allowedFormats,\n      withoutInteractiveFormatting = _ref.withoutInteractiveFormatting;\n  return formatTypes.map(function (_ref2) {\n    var name = _ref2.name,\n        Edit = _ref2.edit,\n        tagName = _ref2.tagName;\n\n    if (!Edit) {\n      return null;\n    }\n\n    if (allowedFormats && allowedFormats.indexOf(name) === -1) {\n      return null;\n    }\n\n    if (withoutInteractiveFormatting && interactiveContentTags.has(tagName)) {\n      return null;\n    }\n\n    var activeFormat = getActiveFormat(value, name);\n    var isActive = activeFormat !== undefined;\n    var activeObject = getActiveObject(value);\n    var isObjectActive = activeObject !== undefined && activeObject.type === name;\n    return Object(external_this_wp_element_[\"createElement\"])(Edit, {\n      key: name,\n      isActive: isActive,\n      activeAttributes: isActive ? activeFormat.attributes || {} : {},\n      isObjectActive: isObjectActive,\n      activeObjectAttributes: isObjectActive ? activeObject.attributes || {} : {},\n      value: value,\n      onChange: onChange,\n      onFocus: onFocus\n    });\n  });\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/update-formats.js\n/**\n * Internal dependencies\n */\n\n/**\n * Efficiently updates all the formats from `start` (including) until `end`\n * (excluding) with the active formats. Mutates `value`.\n *\n * @param  {Object} $1         Named paramentes.\n * @param  {Object} $1.value   Value te update.\n * @param  {number} $1.start   Index to update from.\n * @param  {number} $1.end     Index to update until.\n * @param  {Array}  $1.formats Replacement formats.\n *\n * @return {Object} Mutated value.\n */\n\nfunction updateFormats(_ref) {\n  var value = _ref.value,\n      start = _ref.start,\n      end = _ref.end,\n      formats = _ref.formats;\n  var formatsBefore = value.formats[start - 1] || [];\n  var formatsAfter = value.formats[end] || []; // First, fix the references. If any format right before or after are\n  // equal, the replacement format should use the same reference.\n\n  value.activeFormats = formats.map(function (format, index) {\n    if (formatsBefore[index]) {\n      if (isFormatEqual(format, formatsBefore[index])) {\n        return formatsBefore[index];\n      }\n    } else if (formatsAfter[index]) {\n      if (isFormatEqual(format, formatsAfter[index])) {\n        return formatsAfter[index];\n      }\n    }\n\n    return format;\n  });\n\n  while (--end >= start) {\n    if (value.activeFormats.length > 0) {\n      value.formats[end] = value.activeFormats;\n    } else {\n      delete value.formats[end];\n    }\n  }\n\n  return value;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/component/with-format-types.js\n\n\n\n\nfunction with_format_types_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction with_format_types_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { with_format_types_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { with_format_types_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\nfunction formatTypesSelector(select) {\n  return select('core/rich-text').getFormatTypes();\n}\n/**\n * This higher-order component provides RichText with the `formatTypes` prop\n * and its derived props from experimental format type settings.\n *\n * @param {WPComponent} RichText The rich text component to add props for.\n *\n * @return {WPComponent} New enhanced component.\n */\n\n\nfunction withFormatTypes(RichText) {\n  return function WithFormatTypes(props) {\n    var clientId = props.clientId,\n        identifier = props.identifier;\n    var formatTypes = Object(external_this_wp_data_[\"useSelect\"])(formatTypesSelector, []);\n    var selectProps = Object(external_this_wp_data_[\"useSelect\"])(function (select) {\n      return formatTypes.reduce(function (acc, settings) {\n        if (!settings.__experimentalGetPropsForEditableTreePreparation) {\n          return acc;\n        }\n\n        var selectPrefix = \"format_prepare_props_(\".concat(settings.name, \")_\");\n        return with_format_types_objectSpread({}, acc, {}, Object(external_this_lodash_[\"mapKeys\"])(settings.__experimentalGetPropsForEditableTreePreparation(select, {\n          richTextIdentifier: identifier,\n          blockClientId: clientId\n        }), function (value, key) {\n          return selectPrefix + key;\n        }));\n      }, {});\n    }, [formatTypes, clientId, identifier]);\n\n    var dispatchProps = Object(external_this_wp_data_[\"__unstableUseDispatchWithMap\"])(function (dispatch) {\n      return formatTypes.reduce(function (acc, settings) {\n        if (!settings.__experimentalGetPropsForEditableTreeChangeHandler) {\n          return acc;\n        }\n\n        var dispatchPrefix = \"format_on_change_props_(\".concat(settings.name, \")_\");\n        return with_format_types_objectSpread({}, acc, {}, Object(external_this_lodash_[\"mapKeys\"])(settings.__experimentalGetPropsForEditableTreeChangeHandler(dispatch, {\n          richTextIdentifier: identifier,\n          blockClientId: clientId\n        }), function (value, key) {\n          return dispatchPrefix + key;\n        }));\n      }, {});\n    }, [formatTypes, clientId, identifier]);\n\n    var newProps = Object(external_this_wp_element_[\"useMemo\"])(function () {\n      return formatTypes.reduce(function (acc, settings) {\n        if (!settings.__experimentalCreatePrepareEditableTree) {\n          return acc;\n        }\n\n        var args = {\n          richTextIdentifier: identifier,\n          blockClientId: clientId\n        };\n\n        var combined = with_format_types_objectSpread({}, selectProps, {}, dispatchProps);\n\n        var name = settings.name;\n        var selectPrefix = \"format_prepare_props_(\".concat(name, \")_\");\n        var dispatchPrefix = \"format_on_change_props_(\".concat(name, \")_\");\n        var propsByPrefix = Object.keys(combined).reduce(function (accumulator, key) {\n          if (key.startsWith(selectPrefix)) {\n            accumulator[key.slice(selectPrefix.length)] = combined[key];\n          }\n\n          if (key.startsWith(dispatchPrefix)) {\n            accumulator[key.slice(dispatchPrefix.length)] = combined[key];\n          }\n\n          return accumulator;\n        }, {});\n\n        if (settings.__experimentalCreateOnChangeEditableValue) {\n          var _objectSpread2;\n\n          return with_format_types_objectSpread({}, acc, (_objectSpread2 = {}, Object(defineProperty[\"a\" /* default */])(_objectSpread2, \"format_value_functions_(\".concat(name, \")\"), settings.__experimentalCreatePrepareEditableTree(propsByPrefix, args)), Object(defineProperty[\"a\" /* default */])(_objectSpread2, \"format_on_change_functions_(\".concat(name, \")\"), settings.__experimentalCreateOnChangeEditableValue(propsByPrefix, args)), _objectSpread2));\n        }\n\n        return with_format_types_objectSpread({}, acc, Object(defineProperty[\"a\" /* default */])({}, \"format_prepare_functions_(\".concat(name, \")\"), settings.__experimentalCreatePrepareEditableTree(propsByPrefix, args)));\n      }, {});\n    }, [formatTypes, clientId, identifier, selectProps, dispatchProps]);\n    return Object(external_this_wp_element_[\"createElement\"])(RichText, Object(esm_extends[\"a\" /* default */])({}, props, selectProps, newProps, {\n      formatTypes: formatTypes\n    }));\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/component/use-boundary-style.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Calculates and renders the format boundary style when the active formats\n * change.\n */\n\nfunction useBoundaryStyle(_ref) {\n  var activeFormats = _ref.activeFormats,\n      ref = _ref.ref;\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    // There's no need to recalculate the boundary styles if no formats are\n    // active, because no boundary styles will be visible.\n    if (!activeFormats || !activeFormats.length) {\n      return;\n    }\n\n    var boundarySelector = '*[data-rich-text-format-boundary]';\n    var element = ref.current.querySelector(boundarySelector);\n\n    if (!element) {\n      return;\n    }\n\n    var ownerDocument = element.ownerDocument;\n    var defaultView = ownerDocument.defaultView;\n    var computedStyle = defaultView.getComputedStyle(element);\n    var newColor = computedStyle.color.replace(')', ', 0.2)').replace('rgb', 'rgba');\n    var selector = \".rich-text:focus \".concat(boundarySelector);\n    var rule = \"background-color: \".concat(newColor);\n    var style = \"\".concat(selector, \" {\").concat(rule, \"}\");\n    var globalStyleId = 'rich-text-boundary-style';\n    var globalStyle = ownerDocument.getElementById(globalStyleId);\n\n    if (!globalStyle) {\n      globalStyle = ownerDocument.createElement('style');\n      globalStyle.id = globalStyleId;\n      ownerDocument.head.appendChild(globalStyle);\n    }\n\n    if (globalStyle.innerHTML !== style) {\n      globalStyle.innerHTML = style;\n    }\n  }, [activeFormats]);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/component/use-inline-warning.js\n/**\n * WordPress dependencies\n */\n\nfunction useInlineWarning(_ref) {\n  var ref = _ref.ref;\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (false) { var computedStyle, defaultView, target; }\n  }, []);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/component/index.js\n\n\n\n\n\n\nfunction component_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction component_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { component_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { component_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/** @typedef {import('@wordpress/element').WPSyntheticEvent} WPSyntheticEvent */\n\n/**\n * All inserting input types that would insert HTML into the DOM.\n *\n * @see https://www.w3.org/TR/input-events-2/#interface-InputEvent-Attributes\n *\n * @type {Set}\n */\n\nvar INSERTION_INPUT_TYPES_TO_IGNORE = new Set(['insertParagraph', 'insertOrderedList', 'insertUnorderedList', 'insertHorizontalRule', 'insertLink']);\n/**\n * In HTML, leading and trailing spaces are not visible, and multiple spaces\n * elsewhere are visually reduced to one space. This rule prevents spaces from\n * collapsing so all space is visible in the editor and can be removed. It also\n * prevents some browsers from inserting non-breaking spaces at the end of a\n * line to prevent the space from visually disappearing. Sometimes these non\n * breaking spaces can linger in the editor causing unwanted non breaking spaces\n * in between words. If also prevent Firefox from inserting a trailing `br` node\n * to visualise any trailing space, causing the element to be saved.\n *\n * > Authors are encouraged to set the 'white-space' property on editing hosts\n * > and on markup that was originally created through these editing mechanisms\n * > to the value 'pre-wrap'. Default HTML whitespace handling is not well\n * > suited to WYSIWYG editing, and line wrapping will not work correctly in\n * > some corner cases if 'white-space' is left at its default value.\n *\n * https://html.spec.whatwg.org/multipage/interaction.html#best-practices-for-in-page-editors\n *\n * @type {string}\n */\n\nvar whiteSpace = 'pre-wrap';\n/**\n * Default style object for the editable element.\n *\n * @type {Object<string,string>}\n */\n\nvar defaultStyle = {\n  whiteSpace: whiteSpace\n};\nvar EMPTY_ACTIVE_FORMATS = [];\n\nfunction createPrepareEditableTree(props, prefix) {\n  var fns = Object.keys(props).reduce(function (accumulator, key) {\n    if (key.startsWith(prefix)) {\n      accumulator.push(props[key]);\n    }\n\n    return accumulator;\n  }, []);\n  return function (value) {\n    return fns.reduce(function (accumulator, fn) {\n      return fn(accumulator, value.text);\n    }, value.formats);\n  };\n}\n/**\n * If the selection is set on the placeholder element, collapse the selection to\n * the start (before the placeholder).\n *\n * @param {Window} defaultView\n */\n\n\nfunction fixPlaceholderSelection(defaultView) {\n  var selection = defaultView.getSelection();\n  var anchorNode = selection.anchorNode,\n      anchorOffset = selection.anchorOffset;\n\n  if (anchorNode.nodeType !== anchorNode.ELEMENT_NODE) {\n    return;\n  }\n\n  var targetNode = anchorNode.childNodes[anchorOffset];\n\n  if (!targetNode || targetNode.nodeType !== targetNode.ELEMENT_NODE || !targetNode.getAttribute('data-rich-text-placeholder')) {\n    return;\n  }\n\n  selection.collapseToStart();\n}\n\nfunction component_RichText(_ref) {\n  var _ref$tagName = _ref.tagName,\n      TagName = _ref$tagName === void 0 ? 'div' : _ref$tagName,\n      _ref$value = _ref.value,\n      value = _ref$value === void 0 ? '' : _ref$value,\n      selectionStart = _ref.selectionStart,\n      selectionEnd = _ref.selectionEnd,\n      children = _ref.children,\n      allowedFormats = _ref.allowedFormats,\n      withoutInteractiveFormatting = _ref.withoutInteractiveFormatting,\n      formatTypes = _ref.formatTypes,\n      style = _ref.style,\n      className = _ref.className,\n      placeholder = _ref.placeholder,\n      disabled = _ref.disabled,\n      preserveWhiteSpace = _ref.preserveWhiteSpace,\n      onPaste = _ref.onPaste,\n      _ref$format = _ref.format,\n      format = _ref$format === void 0 ? 'string' : _ref$format,\n      onDelete = _ref.onDelete,\n      onEnter = _ref.onEnter,\n      onSelectionChange = _ref.onSelectionChange,\n      onChange = _ref.onChange,\n      onFocus = _ref.unstableOnFocus,\n      setFocusedElement = _ref.setFocusedElement,\n      instanceId = _ref.instanceId,\n      multilineTag = _ref.__unstableMultilineTag,\n      multilineRootTag = _ref.__unstableMultilineRootTag,\n      disableFormats = _ref.__unstableDisableFormats,\n      didAutomaticChange = _ref.__unstableDidAutomaticChange,\n      inputRule = _ref.__unstableInputRule,\n      markAutomaticChange = _ref.__unstableMarkAutomaticChange,\n      allowPrefixTransformations = _ref.__unstableAllowPrefixTransformations,\n      undo = _ref.__unstableUndo,\n      isCaretWithinFormattedText = _ref.__unstableIsCaretWithinFormattedText,\n      onEnterFormattedText = _ref.__unstableOnEnterFormattedText,\n      onExitFormattedText = _ref.__unstableOnExitFormattedText,\n      onCreateUndoLevel = _ref.__unstableOnCreateUndoLevel,\n      isSelected = _ref.__unstableIsSelected,\n      ref = _ref.forwardedRef,\n      remainingProps = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"tagName\", \"value\", \"selectionStart\", \"selectionEnd\", \"children\", \"allowedFormats\", \"withoutInteractiveFormatting\", \"formatTypes\", \"style\", \"className\", \"placeholder\", \"disabled\", \"preserveWhiteSpace\", \"onPaste\", \"format\", \"onDelete\", \"onEnter\", \"onSelectionChange\", \"onChange\", \"unstableOnFocus\", \"setFocusedElement\", \"instanceId\", \"__unstableMultilineTag\", \"__unstableMultilineRootTag\", \"__unstableDisableFormats\", \"__unstableDidAutomaticChange\", \"__unstableInputRule\", \"__unstableMarkAutomaticChange\", \"__unstableAllowPrefixTransformations\", \"__unstableUndo\", \"__unstableIsCaretWithinFormattedText\", \"__unstableOnEnterFormattedText\", \"__unstableOnExitFormattedText\", \"__unstableOnCreateUndoLevel\", \"__unstableIsSelected\", \"forwardedRef\"]);\n\n  var _useState = Object(external_this_wp_element_[\"useState\"])(),\n      _useState2 = Object(slicedToArray[\"a\" /* default */])(_useState, 2),\n      _useState2$ = _useState2[0],\n      activeFormats = _useState2$ === void 0 ? [] : _useState2$,\n      setActiveFormats = _useState2[1];\n\n  function getDoc() {\n    return ref.current.ownerDocument;\n  }\n\n  function getWin() {\n    return getDoc().defaultView;\n  }\n  /**\n   * Converts the outside data structure to our internal representation.\n   *\n   * @param {*} string The outside value, data type depends on props.\n   *\n   * @return {Object} An internal rich-text value.\n   */\n\n\n  function formatToValue(string) {\n    if (disableFormats) {\n      return {\n        text: string,\n        formats: Array(string.length),\n        replacements: Array(string.length)\n      };\n    }\n\n    if (format !== 'string') {\n      return string;\n    }\n\n    var prepare = createPrepareEditableTree(remainingProps, 'format_value_functions');\n    var result = create({\n      html: string,\n      multilineTag: multilineTag,\n      multilineWrapperTags: multilineTag === 'li' ? ['ul', 'ol'] : undefined,\n      preserveWhiteSpace: preserveWhiteSpace\n    });\n    result.formats = prepare(result);\n    return result;\n  }\n  /**\n   * Removes editor only formats from the value.\n   *\n   * Editor only formats are applied using `prepareEditableTree`, so we need to\n   * remove them before converting the internal state\n   *\n   * @param {Object} val The internal rich-text value.\n   *\n   * @return {Object} A new rich-text value.\n   */\n\n\n  function removeEditorOnlyFormats(val) {\n    formatTypes.forEach(function (formatType) {\n      // Remove formats created by prepareEditableTree, because they are editor only.\n      if (formatType.__experimentalCreatePrepareEditableTree) {\n        val = removeFormat(val, formatType.name, 0, val.text.length);\n      }\n    });\n    return val;\n  }\n  /**\n   * Converts the internal value to the external data format.\n   *\n   * @param {Object} val The internal rich-text value.\n   *\n   * @return {*} The external data format, data type depends on props.\n   */\n\n\n  function valueToFormat(val) {\n    if (disableFormats) {\n      return val.text;\n    }\n\n    val = removeEditorOnlyFormats(val);\n\n    if (format !== 'string') {\n      return;\n    }\n\n    return toHTMLString({\n      value: val,\n      multilineTag: multilineTag,\n      preserveWhiteSpace: preserveWhiteSpace\n    });\n  } // Internal values are updated synchronously, unlike props and state.\n\n\n  var _value = Object(external_this_wp_element_[\"useRef\"])(value);\n\n  var record = Object(external_this_wp_element_[\"useRef\"])(Object(external_this_wp_element_[\"useMemo\"])(function () {\n    var initialRecord = formatToValue(value);\n    initialRecord.start = selectionStart;\n    initialRecord.end = selectionEnd;\n    return initialRecord;\n  }, []));\n\n  function createRecord() {\n    var selection = getWin().getSelection();\n    var range = selection.rangeCount > 0 ? selection.getRangeAt(0) : null;\n    return create({\n      element: ref.current,\n      range: range,\n      multilineTag: multilineTag,\n      multilineWrapperTags: multilineTag === 'li' ? ['ul', 'ol'] : undefined,\n      __unstableIsEditableTree: true,\n      preserveWhiteSpace: preserveWhiteSpace\n    });\n  }\n\n  function applyRecord(newRecord) {\n    var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        domOnly = _ref2.domOnly;\n\n    apply({\n      value: newRecord,\n      current: ref.current,\n      multilineTag: multilineTag,\n      multilineWrapperTags: multilineTag === 'li' ? ['ul', 'ol'] : undefined,\n      prepareEditableTree: createPrepareEditableTree(remainingProps, 'format_prepare_functions'),\n      __unstableDomOnly: domOnly,\n      placeholder: placeholder\n    });\n  }\n  /**\n   * Handles a paste event.\n   *\n   * Saves the pasted data as plain text in `pastedPlainText`.\n   *\n   * @param {ClipboardEvent} event The paste event.\n   */\n\n\n  function handlePaste(event) {\n    if (!isSelected) {\n      event.preventDefault();\n      return;\n    }\n\n    var clipboardData = event.clipboardData;\n    var items = clipboardData.items,\n        files = clipboardData.files; // In Edge these properties can be null instead of undefined, so a more\n    // rigorous test is required over using default values.\n\n    items = Object(external_this_lodash_[\"isNil\"])(items) ? [] : items;\n    files = Object(external_this_lodash_[\"isNil\"])(files) ? [] : files;\n    var plainText = '';\n    var html = ''; // IE11 only supports `Text` as an argument for `getData` and will\n    // otherwise throw an invalid argument error, so we try the standard\n    // arguments first, then fallback to `Text` if they fail.\n\n    try {\n      plainText = clipboardData.getData('text/plain');\n      html = clipboardData.getData('text/html');\n    } catch (error1) {\n      try {\n        html = clipboardData.getData('Text');\n      } catch (error2) {\n        // Some browsers like UC Browser paste plain text by default and\n        // don't support clipboardData at all, so allow default\n        // behaviour.\n        return;\n      }\n    }\n\n    event.preventDefault(); // Allows us to ask for this information when we get a report.\n\n    window.console.log('Received HTML:\\n\\n', html);\n    window.console.log('Received plain text:\\n\\n', plainText);\n\n    if (disableFormats) {\n      handleChange(insert(record.current, plainText));\n      return;\n    }\n\n    var transformed = formatTypes.reduce(function (accumlator, _ref3) {\n      var __unstablePasteRule = _ref3.__unstablePasteRule;\n\n      // Only allow one transform.\n      if (__unstablePasteRule && accumlator === record.current) {\n        accumlator = __unstablePasteRule(record.current, {\n          html: html,\n          plainText: plainText\n        });\n      }\n\n      return accumlator;\n    }, record.current);\n\n    if (transformed !== record.current) {\n      handleChange(transformed);\n      return;\n    }\n\n    if (onPaste) {\n      files = Array.from(files);\n      Array.from(items).forEach(function (item) {\n        if (!item.getAsFile) {\n          return;\n        }\n\n        var file = item.getAsFile();\n\n        if (!file) {\n          return;\n        }\n\n        var name = file.name,\n            type = file.type,\n            size = file.size;\n\n        if (!Object(external_this_lodash_[\"find\"])(files, {\n          name: name,\n          type: type,\n          size: size\n        })) {\n          files.push(file);\n        }\n      });\n      onPaste({\n        value: removeEditorOnlyFormats(record.current),\n        onChange: handleChange,\n        html: html,\n        plainText: plainText,\n        files: files,\n        activeFormats: activeFormats\n      });\n    }\n  }\n  /**\n   * Handles delete on keydown:\n   * - outdent list items,\n   * - delete content if everything is selected,\n   * - trigger the onDelete prop when selection is uncollapsed and at an edge.\n   *\n   * @param {WPSyntheticEvent} event A synthetic keyboard event.\n   */\n\n\n  function handleDelete(event) {\n    var keyCode = event.keyCode;\n\n    if (keyCode !== external_this_wp_keycodes_[\"DELETE\"] && keyCode !== external_this_wp_keycodes_[\"BACKSPACE\"] && keyCode !== external_this_wp_keycodes_[\"ESCAPE\"]) {\n      return;\n    }\n\n    if (didAutomaticChange) {\n      event.preventDefault();\n      undo();\n      return;\n    }\n\n    if (keyCode === external_this_wp_keycodes_[\"ESCAPE\"]) {\n      return;\n    }\n\n    var currentValue = createRecord();\n    var start = currentValue.start,\n        end = currentValue.end,\n        text = currentValue.text;\n    var isReverse = keyCode === external_this_wp_keycodes_[\"BACKSPACE\"]; // Always handle full content deletion ourselves.\n\n    if (start === 0 && end !== 0 && end === text.length) {\n      handleChange(remove_remove(currentValue));\n      event.preventDefault();\n      return;\n    }\n\n    if (multilineTag) {\n      var newValue; // Check to see if we should remove the first item if empty.\n\n      if (isReverse && currentValue.start === 0 && currentValue.end === 0 && isEmptyLine(currentValue)) {\n        newValue = removeLineSeparator(currentValue, !isReverse);\n      } else {\n        newValue = removeLineSeparator(currentValue, isReverse);\n      }\n\n      if (newValue) {\n        handleChange(newValue);\n        event.preventDefault();\n        return;\n      }\n    } // Only process delete if the key press occurs at an uncollapsed edge.\n\n\n    if (!onDelete || !isCollapsed(currentValue) || activeFormats.length || isReverse && start !== 0 || !isReverse && end !== text.length) {\n      return;\n    }\n\n    onDelete({\n      isReverse: isReverse,\n      value: currentValue\n    });\n    event.preventDefault();\n  }\n  /**\n   * Triggers the `onEnter` prop on keydown.\n   *\n   * @param {WPSyntheticEvent} event A synthetic keyboard event.\n   */\n\n\n  function handleEnter(event) {\n    if (event.keyCode !== external_this_wp_keycodes_[\"ENTER\"]) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (!onEnter) {\n      return;\n    }\n\n    onEnter({\n      value: removeEditorOnlyFormats(createRecord()),\n      onChange: handleChange,\n      shiftKey: event.shiftKey\n    });\n  }\n  /**\n   * Indents list items on space keydown.\n   *\n   * @param {WPSyntheticEvent} event A synthetic keyboard event.\n   */\n\n\n  function handleSpace(event) {\n    var keyCode = event.keyCode,\n        shiftKey = event.shiftKey,\n        altKey = event.altKey,\n        metaKey = event.metaKey,\n        ctrlKey = event.ctrlKey;\n\n    if ( // Only override when no modifiers are pressed.\n    shiftKey || altKey || metaKey || ctrlKey || keyCode !== external_this_wp_keycodes_[\"SPACE\"] || multilineTag !== 'li') {\n      return;\n    }\n\n    var currentValue = createRecord();\n\n    if (!isCollapsed(currentValue)) {\n      return;\n    }\n\n    var text = currentValue.text,\n        start = currentValue.start;\n    var characterBefore = text[start - 1]; // The caret must be at the start of a line.\n\n    if (characterBefore && characterBefore !== LINE_SEPARATOR) {\n      return;\n    }\n\n    handleChange(indentListItems(currentValue, {\n      type: multilineRootTag\n    }));\n    event.preventDefault();\n  }\n  /**\n   * Handles horizontal keyboard navigation when no modifiers are pressed. The\n   * navigation is handled separately to move correctly around format\n   * boundaries.\n   *\n   * @param {WPSyntheticEvent} event A synthetic keyboard event.\n   */\n\n\n  function handleHorizontalNavigation(event) {\n    var keyCode = event.keyCode,\n        shiftKey = event.shiftKey,\n        altKey = event.altKey,\n        metaKey = event.metaKey,\n        ctrlKey = event.ctrlKey;\n\n    if ( // Only override left and right keys without modifiers pressed.\n    shiftKey || altKey || metaKey || ctrlKey || keyCode !== external_this_wp_keycodes_[\"LEFT\"] && keyCode !== external_this_wp_keycodes_[\"RIGHT\"]) {\n      return;\n    }\n\n    var _record$current = record.current,\n        text = _record$current.text,\n        formats = _record$current.formats,\n        start = _record$current.start,\n        end = _record$current.end,\n        _record$current$activ = _record$current.activeFormats,\n        currentActiveFormats = _record$current$activ === void 0 ? [] : _record$current$activ;\n    var collapsed = isCollapsed(record.current); // To do: ideally, we should look at visual position instead.\n\n    var _getWin$getComputedSt = getWin().getComputedStyle(ref.current),\n        direction = _getWin$getComputedSt.direction;\n\n    var reverseKey = direction === 'rtl' ? external_this_wp_keycodes_[\"RIGHT\"] : external_this_wp_keycodes_[\"LEFT\"];\n    var isReverse = event.keyCode === reverseKey; // If the selection is collapsed and at the very start, do nothing if\n    // navigating backward.\n    // If the selection is collapsed and at the very end, do nothing if\n    // navigating forward.\n\n    if (collapsed && currentActiveFormats.length === 0) {\n      if (start === 0 && isReverse) {\n        return;\n      }\n\n      if (end === text.length && !isReverse) {\n        return;\n      }\n    } // If the selection is not collapsed, let the browser handle collapsing\n    // the selection for now. Later we could expand this logic to set\n    // boundary positions if needed.\n\n\n    if (!collapsed) {\n      return;\n    } // In all other cases, prevent default behaviour.\n\n\n    event.preventDefault();\n    var formatsBefore = formats[start - 1] || EMPTY_ACTIVE_FORMATS;\n    var formatsAfter = formats[start] || EMPTY_ACTIVE_FORMATS;\n    var newActiveFormatsLength = currentActiveFormats.length;\n    var source = formatsAfter;\n\n    if (formatsBefore.length > formatsAfter.length) {\n      source = formatsBefore;\n    } // If the amount of formats before the caret and after the caret is\n    // different, the caret is at a format boundary.\n\n\n    if (formatsBefore.length < formatsAfter.length) {\n      if (!isReverse && currentActiveFormats.length < formatsAfter.length) {\n        newActiveFormatsLength++;\n      }\n\n      if (isReverse && currentActiveFormats.length > formatsBefore.length) {\n        newActiveFormatsLength--;\n      }\n    } else if (formatsBefore.length > formatsAfter.length) {\n      if (!isReverse && currentActiveFormats.length > formatsAfter.length) {\n        newActiveFormatsLength--;\n      }\n\n      if (isReverse && currentActiveFormats.length < formatsBefore.length) {\n        newActiveFormatsLength++;\n      }\n    }\n\n    if (newActiveFormatsLength !== currentActiveFormats.length) {\n      var _newActiveFormats = source.slice(0, newActiveFormatsLength);\n\n      var _newValue = component_objectSpread({}, record.current, {\n        activeFormats: _newActiveFormats\n      });\n\n      record.current = _newValue;\n      applyRecord(_newValue);\n      setActiveFormats(_newActiveFormats);\n      return;\n    }\n\n    var newPos = start + (isReverse ? -1 : 1);\n    var newActiveFormats = isReverse ? formatsBefore : formatsAfter;\n\n    var newValue = component_objectSpread({}, record.current, {\n      start: newPos,\n      end: newPos,\n      activeFormats: newActiveFormats\n    });\n\n    record.current = newValue;\n    applyRecord(newValue);\n    onSelectionChange(newPos, newPos);\n    setActiveFormats(newActiveFormats);\n  }\n\n  function handleKeyDown(event) {\n    if (event.defaultPrevented) {\n      return;\n    }\n\n    handleDelete(event);\n    handleEnter(event);\n    handleSpace(event);\n    handleHorizontalNavigation(event);\n  }\n\n  var lastHistoryValue = Object(external_this_wp_element_[\"useRef\"])(value);\n\n  function createUndoLevel() {\n    // If the content is the same, no level needs to be created.\n    if (lastHistoryValue.current === _value.current) {\n      return;\n    }\n\n    onCreateUndoLevel();\n    lastHistoryValue.current = _value.current;\n  }\n\n  var isComposing = Object(external_this_wp_element_[\"useRef\"])(false);\n  var timeout = Object(external_this_wp_element_[\"useRef\"])();\n  /**\n   * Handle input on the next selection change event.\n   *\n   * @param {WPSyntheticEvent} event Synthetic input event.\n   */\n\n  function handleInput(event) {\n    // Do not trigger a change if characters are being composed. Browsers\n    // will usually emit a final `input` event when the characters are\n    // composed.\n    // As of December 2019, Safari doesn't support nativeEvent.isComposing.\n    if (isComposing.current) {\n      return;\n    }\n\n    var inputType;\n\n    if (event) {\n      inputType = event.inputType;\n    }\n\n    if (!inputType && event && event.nativeEvent) {\n      inputType = event.nativeEvent.inputType;\n    } // The browser formatted something or tried to insert HTML.\n    // Overwrite it. It will be handled later by the format library if\n    // needed.\n\n\n    if (inputType && (inputType.indexOf('format') === 0 || INSERTION_INPUT_TYPES_TO_IGNORE.has(inputType))) {\n      applyRecord(record.current);\n      return;\n    }\n\n    var currentValue = createRecord();\n    var _record$current2 = record.current,\n        start = _record$current2.start,\n        _record$current2$acti = _record$current2.activeFormats,\n        oldActiveFormats = _record$current2$acti === void 0 ? [] : _record$current2$acti; // Update the formats between the last and new caret position.\n\n    var change = updateFormats({\n      value: currentValue,\n      start: start,\n      end: currentValue.start,\n      formats: oldActiveFormats\n    });\n    handleChange(change, {\n      withoutHistory: true\n    }); // Create an undo level when input stops for over a second.\n\n    getWin().clearTimeout(timeout.current);\n    timeout.current = getWin().setTimeout(createUndoLevel, 1000); // Only run input rules when inserting text.\n\n    if (inputType !== 'insertText') {\n      return;\n    }\n\n    if (allowPrefixTransformations && inputRule) {\n      inputRule(change, valueToFormat);\n    }\n\n    var transformed = formatTypes.reduce(function (accumlator, _ref4) {\n      var __unstableInputRule = _ref4.__unstableInputRule;\n\n      if (__unstableInputRule) {\n        accumlator = __unstableInputRule(accumlator);\n      }\n\n      return accumlator;\n    }, change);\n\n    if (transformed !== change) {\n      createUndoLevel();\n      handleChange(component_objectSpread({}, transformed, {\n        activeFormats: oldActiveFormats\n      }));\n      markAutomaticChange();\n    }\n  }\n\n  function handleCompositionStart() {\n    isComposing.current = true; // Do not update the selection when characters are being composed as\n    // this rerenders the component and might distroy internal browser\n    // editing state.\n\n    getDoc().removeEventListener('selectionchange', handleSelectionChange);\n  }\n\n  function handleCompositionEnd() {\n    isComposing.current = false; // Ensure the value is up-to-date for browsers that don't emit a final\n    // input event after composition.\n\n    handleInput({\n      inputType: 'insertText'\n    }); // Tracking selection changes can be resumed.\n\n    getDoc().addEventListener('selectionchange', handleSelectionChange);\n  }\n\n  var didMount = Object(external_this_wp_element_[\"useRef\"])(false);\n  /**\n   * Syncs the selection to local state. A callback for the `selectionchange`\n   * native events, `keyup`, `mouseup` and `touchend` synthetic events, and\n   * animation frames after the `focus` event.\n   *\n   * @param {Event|WPSyntheticEvent|DOMHighResTimeStamp} event\n   */\n\n  function handleSelectionChange(event) {\n    if (!ref.current) {\n      return;\n    }\n\n    if (document.activeElement !== ref.current) {\n      return;\n    }\n\n    if (event.type !== 'selectionchange' && !isSelected) {\n      return;\n    }\n\n    if (disabled) {\n      return;\n    } // In case of a keyboard event, ignore selection changes during\n    // composition.\n\n\n    if (isComposing.current) {\n      return;\n    }\n\n    var _createRecord = createRecord(),\n        start = _createRecord.start,\n        end = _createRecord.end,\n        text = _createRecord.text;\n\n    var oldRecord = record.current; // Fallback mechanism for IE11, which doesn't support the input event.\n    // Any input results in a selection change.\n\n    if (text !== oldRecord.text) {\n      handleInput();\n      return;\n    }\n\n    if (start === oldRecord.start && end === oldRecord.end) {\n      // Sometimes the browser may set the selection on the placeholder\n      // element, in which case the caret is not visible. We need to set\n      // the caret before the placeholder if that's the case.\n      if (oldRecord.text.length === 0 && start === 0) {\n        fixPlaceholderSelection(getWin());\n      }\n\n      return;\n    }\n\n    var newValue = component_objectSpread({}, oldRecord, {\n      start: start,\n      end: end,\n      // Allow `getActiveFormats` to get new `activeFormats`.\n      activeFormats: undefined\n    });\n\n    var newActiveFormats = getActiveFormats(newValue, EMPTY_ACTIVE_FORMATS); // Update the value with the new active formats.\n\n    newValue.activeFormats = newActiveFormats;\n\n    if (!isCaretWithinFormattedText && newActiveFormats.length) {\n      onEnterFormattedText();\n    } else if (isCaretWithinFormattedText && !newActiveFormats.length) {\n      onExitFormattedText();\n    } // It is important that the internal value is updated first,\n    // otherwise the value will be wrong on render!\n\n\n    record.current = newValue;\n    applyRecord(newValue, {\n      domOnly: true\n    });\n    onSelectionChange(start, end);\n    setActiveFormats(newActiveFormats);\n  }\n  /**\n   * Sync the value to global state. The node tree and selection will also be\n   * updated if differences are found.\n   *\n   * @param {Object}  newRecord         The record to sync and apply.\n   * @param {Object}  $2                Named options.\n   * @param {boolean} $2.withoutHistory If true, no undo level will be\n   *                                    created.\n   */\n\n\n  function handleChange(newRecord) {\n    var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n        withoutHistory = _ref5.withoutHistory;\n\n    if (disableFormats) {\n      newRecord.formats = Array(newRecord.text.length);\n      newRecord.replacements = Array(newRecord.text.length);\n    }\n\n    applyRecord(newRecord);\n    var start = newRecord.start,\n        end = newRecord.end,\n        _newRecord$activeForm = newRecord.activeFormats,\n        newActiveFormats = _newRecord$activeForm === void 0 ? [] : _newRecord$activeForm;\n    var changeHandlers = Object(external_this_lodash_[\"pickBy\"])(remainingProps, function (v, key) {\n      return key.startsWith('format_on_change_functions_');\n    });\n    Object.values(changeHandlers).forEach(function (changeHandler) {\n      changeHandler(newRecord.formats, newRecord.text);\n    });\n    _value.current = valueToFormat(newRecord);\n    record.current = newRecord; // Selection must be updated first, so it is recorded in history when\n    // the content change happens.\n\n    onSelectionChange(start, end);\n    onChange(_value.current);\n    setActiveFormats(newActiveFormats);\n\n    if (!withoutHistory) {\n      createUndoLevel();\n    }\n  }\n  /**\n   * Select object when they are clicked. The browser will not set any\n   * selection when clicking e.g. an image.\n   *\n   * @param {WPSyntheticEvent} event Synthetic mousedown or touchstart event.\n   */\n\n\n  function handlePointerDown(event) {\n    var target = event.target; // If the child element has no text content, it must be an object.\n\n    if (target === ref.current || target.textContent) {\n      return;\n    }\n\n    var parentNode = target.parentNode;\n    var index = Array.from(parentNode.childNodes).indexOf(target);\n    var range = getDoc().createRange();\n    var selection = getWin().getSelection();\n    range.setStart(target.parentNode, index);\n    range.setEnd(target.parentNode, index + 1);\n    selection.removeAllRanges();\n    selection.addRange(range);\n  }\n\n  var rafId = Object(external_this_wp_element_[\"useRef\"])();\n  /**\n   * Handles a focus event on the contenteditable field, calling the\n   * `unstableOnFocus` prop callback if one is defined. The callback does not\n   * receive any arguments.\n   *\n   * This is marked as a private API and the `unstableOnFocus` prop is not\n   * documented, as the current requirements where it is used are subject to\n   * future refactoring following `isSelected` handling.\n   *\n   * In contrast with `setFocusedElement`, this is only triggered in response\n   * to focus within the contenteditable field, whereas `setFocusedElement`\n   * is triggered on focus within any `RichText` descendent element.\n   *\n   * @see setFocusedElement\n   *\n   * @private\n   */\n\n  function handleFocus() {\n    if (onFocus) {\n      onFocus();\n    }\n\n    if (!isSelected) {\n      // We know for certain that on focus, the old selection is invalid.\n      // It will be recalculated on the next mouseup, keyup, or touchend\n      // event.\n      var index = undefined;\n      record.current = component_objectSpread({}, record.current, {\n        start: index,\n        end: index,\n        activeFormats: EMPTY_ACTIVE_FORMATS\n      });\n      onSelectionChange(index, index);\n      setActiveFormats(EMPTY_ACTIVE_FORMATS);\n    } else {\n      onSelectionChange(record.current.start, record.current.end);\n      setActiveFormats(getActiveFormats(component_objectSpread({}, record.current, {\n        activeFormats: undefined\n      }), EMPTY_ACTIVE_FORMATS));\n    } // Update selection as soon as possible, which is at the next animation\n    // frame. The event listener for selection changes may be added too late\n    // at this point, but this focus event is still too early to calculate\n    // the selection.\n\n\n    rafId.current = getWin().requestAnimationFrame(handleSelectionChange);\n    getDoc().addEventListener('selectionchange', handleSelectionChange);\n\n    if (setFocusedElement) {\n      external_this_wp_deprecated_default()('wp.blockEditor.RichText setFocusedElement prop', {\n        alternative: 'selection state from the block editor store.'\n      });\n      setFocusedElement(instanceId);\n    }\n  }\n\n  function handleBlur() {\n    getDoc().removeEventListener('selectionchange', handleSelectionChange);\n  }\n\n  function applyFromProps() {\n    _value.current = value;\n    record.current = formatToValue(value);\n    record.current.start = selectionStart;\n    record.current.end = selectionEnd;\n    applyRecord(record.current);\n  }\n\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (didMount.current) {\n      applyFromProps();\n    }\n  }, [TagName, placeholder]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (didMount.current && value !== _value.current) {\n      applyFromProps();\n    }\n  }, [value]);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (!didMount.current) {\n      return;\n    }\n\n    if (isSelected && (selectionStart !== record.current.start || selectionEnd !== record.current.end)) {\n      applyFromProps();\n    } else {\n      record.current = component_objectSpread({}, record.current, {\n        start: selectionStart,\n        end: selectionEnd\n      });\n    }\n  }, [selectionStart, selectionEnd, isSelected]);\n  var prefix = 'format_prepare_props_';\n\n  var predicate = function predicate(v, key) {\n    return key.startsWith(prefix);\n  };\n\n  var prepareProps = Object(external_this_lodash_[\"pickBy\"])(remainingProps, predicate);\n  Object(external_this_wp_element_[\"useEffect\"])(function () {\n    if (didMount.current) {\n      applyFromProps();\n    }\n  }, Object.values(prepareProps));\n  Object(external_this_wp_element_[\"useLayoutEffect\"])(function () {\n    applyRecord(record.current, {\n      domOnly: true\n    });\n    didMount.current = true;\n    return function () {\n      getDoc().removeEventListener('selectionchange', handleSelectionChange);\n      getWin().cancelAnimationFrame(rafId.current);\n      getWin().clearTimeout(timeout.current);\n    };\n  }, []);\n\n  function focus() {\n    ref.current.focus();\n    applyRecord(record.current);\n  }\n\n  var ariaProps = Object(external_this_lodash_[\"pickBy\"])(remainingProps, function (v, key) {\n    return Object(external_this_lodash_[\"startsWith\"])(key, 'aria-');\n  });\n\n  var editableProps = component_objectSpread({\n    // Overridable props.\n    role: 'textbox',\n    'aria-multiline': '',\n    'aria-label': placeholder\n  }, ariaProps, {\n    ref: ref,\n    style: style ? component_objectSpread({}, style, {\n      whiteSpace: whiteSpace\n    }) : defaultStyle,\n    className: classnames_default()('rich-text', className),\n    onPaste: handlePaste,\n    onInput: handleInput,\n    onCompositionStart: handleCompositionStart,\n    onCompositionEnd: handleCompositionEnd,\n    onKeyDown: handleKeyDown,\n    onFocus: handleFocus,\n    onBlur: handleBlur,\n    onMouseDown: handlePointerDown,\n    onTouchStart: handlePointerDown,\n    // Selection updates must be done at these events as they\n    // happen before the `selectionchange` event. In some cases,\n    // the `selectionchange` event may not even fire, for\n    // example when the window receives focus again on click.\n    onKeyUp: handleSelectionChange,\n    onMouseUp: handleSelectionChange,\n    onTouchEnd: handleSelectionChange,\n    // Do not set the attribute if disabled.\n    contentEditable: disabled ? undefined : true,\n    suppressContentEditableWarning: !disabled\n  });\n\n  useBoundaryStyle({\n    ref: ref,\n    activeFormats: activeFormats\n  });\n  useInlineWarning({\n    ref: ref\n  });\n  return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"Fragment\"], null, isSelected && Object(external_this_wp_element_[\"createElement\"])(FormatEdit, {\n    allowedFormats: allowedFormats,\n    withoutInteractiveFormatting: withoutInteractiveFormatting,\n    value: record.current,\n    onChange: handleChange,\n    onFocus: focus,\n    formatTypes: formatTypes\n  }), children && children({\n    isSelected: isSelected,\n    value: record.current,\n    onChange: handleChange,\n    onFocus: focus,\n    editableProps: editableProps,\n    editableTagName: TagName\n  }), !children && Object(external_this_wp_element_[\"createElement\"])(TagName, editableProps));\n}\n\nvar RichTextWrapper = withFormatTypes(component_RichText);\n/**\n * Renders a rich content input, providing users with the option to format the\n * content.\n */\n\n/* harmony default export */ var component = (Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n  return Object(external_this_wp_element_[\"createElement\"])(RichTextWrapper, Object(esm_extends[\"a\" /* default */])({}, props, {\n    forwardedRef: ref\n  }));\n}));\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/rich-text/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 79:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"escapeHtml\"]; }());\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-server-side-render.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"serverSideRender\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 464);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"i18n\"]; }());\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _assertThisInitialized; });\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutProperties; });\n/* harmony import */ var _objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = Object(_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(source, excluded);\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _getPrototypeOf; });\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _inherits; });\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js\n\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\n/***/ }),\n\n/***/ 22:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _possibleConstructorReturn; });\n/* harmony import */ var _helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);\n/* harmony import */ var _assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);\n\n\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (Object(_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n\n  return Object(_assertThisInitialized__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(self);\n}\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"components\"]; }());\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"url\"]; }());\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"deprecated\"]; }());\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 40:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _typeof; });\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n\n  return _typeof(obj);\n}\n\n/***/ }),\n\n/***/ 41:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _objectWithoutPropertiesLoose; });\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\n/***/ }),\n\n/***/ 45:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());\n\n/***/ }),\n\n/***/ 464:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__(5);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__(14);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"deprecated\"]}\nvar external_this_wp_deprecated_ = __webpack_require__(37);\nvar external_this_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_deprecated_);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js\nvar classCallCheck = __webpack_require__(19);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js\nvar createClass = __webpack_require__(18);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\nvar possibleConstructorReturn = __webpack_require__(22);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\nvar getPrototypeOf = __webpack_require__(15);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/inherits.js + 1 modules\nvar inherits = __webpack_require__(20);\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"i18n\"]}\nvar external_this_wp_i18n_ = __webpack_require__(1);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"apiFetch\"]}\nvar external_this_wp_apiFetch_ = __webpack_require__(45);\nvar external_this_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_this_wp_apiFetch_);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"url\"]}\nvar external_this_wp_url_ = __webpack_require__(30);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"components\"]}\nvar external_this_wp_components_ = __webpack_require__(3);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/server-side-render.js\n\n\n\n\n\n\n\n\n\nfunction _createSuper(Derived) { return function () { var Super = Object(getPrototypeOf[\"a\" /* default */])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(getPrototypeOf[\"a\" /* default */])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(possibleConstructorReturn[\"a\" /* default */])(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\n\n\n\nfunction rendererPath(block) {\n  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  var urlQueryArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  return Object(external_this_wp_url_[\"addQueryArgs\"])(\"/wp/v2/block-renderer/\".concat(block), _objectSpread({\n    context: 'edit'\n  }, null !== attributes ? {\n    attributes: attributes\n  } : {}, {}, urlQueryArgs));\n}\nvar server_side_render_ServerSideRender = /*#__PURE__*/function (_Component) {\n  Object(inherits[\"a\" /* default */])(ServerSideRender, _Component);\n\n  var _super = _createSuper(ServerSideRender);\n\n  function ServerSideRender(props) {\n    var _this;\n\n    Object(classCallCheck[\"a\" /* default */])(this, ServerSideRender);\n\n    _this = _super.call(this, props);\n    _this.state = {\n      response: null\n    };\n    return _this;\n  }\n\n  Object(createClass[\"a\" /* default */])(ServerSideRender, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.isStillMounted = true;\n      this.fetch(this.props); // Only debounce once the initial fetch occurs to ensure that the first\n      // renders show data as soon as possible.\n\n      this.fetch = Object(external_this_lodash_[\"debounce\"])(this.fetch, 500);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.isStillMounted = false;\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      if (!Object(external_this_lodash_[\"isEqual\"])(prevProps, this.props)) {\n        this.fetch(this.props);\n      }\n    }\n  }, {\n    key: \"fetch\",\n    value: function fetch(props) {\n      var _this2 = this;\n\n      if (!this.isStillMounted) {\n        return;\n      }\n\n      if (null !== this.state.response) {\n        this.setState({\n          response: null\n        });\n      }\n\n      var block = props.block,\n          _props$attributes = props.attributes,\n          attributes = _props$attributes === void 0 ? null : _props$attributes,\n          _props$urlQueryArgs = props.urlQueryArgs,\n          urlQueryArgs = _props$urlQueryArgs === void 0 ? {} : _props$urlQueryArgs;\n      var path = rendererPath(block, attributes, urlQueryArgs); // Store the latest fetch request so that when we process it, we can\n      // check if it is the current request, to avoid race conditions on slow networks.\n\n      var fetchRequest = this.currentFetchRequest = external_this_wp_apiFetch_default()({\n        path: path\n      }).then(function (response) {\n        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest && response) {\n          _this2.setState({\n            response: response.rendered\n          });\n        }\n      }).catch(function (error) {\n        if (_this2.isStillMounted && fetchRequest === _this2.currentFetchRequest) {\n          _this2.setState({\n            response: {\n              error: true,\n              errorMsg: error.message\n            }\n          });\n        }\n      });\n      return fetchRequest;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var response = this.state.response;\n      var _this$props = this.props,\n          className = _this$props.className,\n          EmptyResponsePlaceholder = _this$props.EmptyResponsePlaceholder,\n          ErrorResponsePlaceholder = _this$props.ErrorResponsePlaceholder,\n          LoadingResponsePlaceholder = _this$props.LoadingResponsePlaceholder;\n\n      if (response === '') {\n        return Object(external_this_wp_element_[\"createElement\"])(EmptyResponsePlaceholder, Object(esm_extends[\"a\" /* default */])({\n          response: response\n        }, this.props));\n      } else if (!response) {\n        return Object(external_this_wp_element_[\"createElement\"])(LoadingResponsePlaceholder, Object(esm_extends[\"a\" /* default */])({\n          response: response\n        }, this.props));\n      } else if (response.error) {\n        return Object(external_this_wp_element_[\"createElement\"])(ErrorResponsePlaceholder, Object(esm_extends[\"a\" /* default */])({\n          response: response\n        }, this.props));\n      }\n\n      return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_element_[\"RawHTML\"], {\n        key: \"html\",\n        className: className\n      }, response);\n    }\n  }]);\n\n  return ServerSideRender;\n}(external_this_wp_element_[\"Component\"]);\nserver_side_render_ServerSideRender.defaultProps = {\n  EmptyResponsePlaceholder: function EmptyResponsePlaceholder(_ref) {\n    var className = _ref.className;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n      className: className\n    }, Object(external_this_wp_i18n_[\"__\"])('Block rendered as empty.'));\n  },\n  ErrorResponsePlaceholder: function ErrorResponsePlaceholder(_ref2) {\n    var response = _ref2.response,\n        className = _ref2.className;\n    var errorMessage = Object(external_this_wp_i18n_[\"sprintf\"])( // translators: %s: error message describing the problem\n    Object(external_this_wp_i18n_[\"__\"])('Error loading block: %s'), response.errorMsg);\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n      className: className\n    }, errorMessage);\n  },\n  LoadingResponsePlaceholder: function LoadingResponsePlaceholder(_ref3) {\n    var className = _ref3.className;\n    return Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Placeholder\"], {\n      className: className\n    }, Object(external_this_wp_element_[\"createElement\"])(external_this_wp_components_[\"Spinner\"], null));\n  }\n};\n/* harmony default export */ var server_side_render = (server_side_render_ServerSideRender);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/server-side-render/build-module/index.js\n\n\n\n\n\nfunction build_module_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction build_module_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { build_module_ownKeys(Object(source), true).forEach(function (key) { Object(defineProperty[\"a\" /* default */])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { build_module_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n/**\n * WordPress dependencies\n */\n\n\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Constants\n */\n\nvar EMPTY_OBJECT = {};\nvar ExportedServerSideRender = Object(external_this_wp_data_[\"withSelect\"])(function (select) {\n  var coreEditorSelect = select('core/editor');\n\n  if (coreEditorSelect) {\n    var currentPostId = coreEditorSelect.getCurrentPostId();\n\n    if (currentPostId) {\n      return {\n        currentPostId: currentPostId\n      };\n    }\n  }\n\n  return EMPTY_OBJECT;\n})(function (_ref) {\n  var _ref$urlQueryArgs = _ref.urlQueryArgs,\n      urlQueryArgs = _ref$urlQueryArgs === void 0 ? EMPTY_OBJECT : _ref$urlQueryArgs,\n      currentPostId = _ref.currentPostId,\n      props = Object(objectWithoutProperties[\"a\" /* default */])(_ref, [\"urlQueryArgs\", \"currentPostId\"]);\n\n  var newUrlQueryArgs = Object(external_this_wp_element_[\"useMemo\"])(function () {\n    if (!currentPostId) {\n      return urlQueryArgs;\n    }\n\n    return build_module_objectSpread({\n      post_id: currentPostId\n    }, urlQueryArgs);\n  }, [currentPostId, urlQueryArgs]);\n  return Object(external_this_wp_element_[\"createElement\"])(server_side_render, Object(esm_extends[\"a\" /* default */])({\n    urlQueryArgs: newUrlQueryArgs\n  }, props));\n});\n\nif (window && window.wp && window.wp.components) {\n  window.wp.components.ServerSideRender = Object(external_this_wp_element_[\"forwardRef\"])(function (props, ref) {\n    external_this_wp_deprecated_default()('wp.components.ServerSideRender', {\n      alternative: 'wp.serverSideRender'\n    });\n    return Object(external_this_wp_element_[\"createElement\"])(ExportedServerSideRender, Object(esm_extends[\"a\" /* default */])({}, props, {\n      ref: ref\n    }));\n  });\n}\n\n/* harmony default export */ var build_module = __webpack_exports__[\"default\"] = (ExportedServerSideRender);\n\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _defineProperty; });\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-shortcode.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"shortcode\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 427);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 427:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"next\", function() { return next; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replace\", function() { return replace; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"string\", function() { return string; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"regexp\", function() { return regexp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"attrs\", function() { return attrs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fromMatch\", function() { return fromMatch; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50);\n/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * External dependencies\n */\n\n\n/**\n * Shortcode attributes object.\n *\n * @typedef {Object} WPShortcodeAttrs\n *\n * @property {Object} named   Object with named attributes.\n * @property {Array}  numeric Array with numeric attributes.\n */\n\n/**\n * Shortcode object.\n *\n * @typedef {Object} WPShortcode\n *\n * @property {string}           tag     Shortcode tag.\n * @property {WPShortcodeAttrs} attrs   Shortcode attributes.\n * @property {string}           content Shortcode content.\n * @property {string}           type    Shortcode type: `self-closing`,\n *                                      `closed`, or `single`.\n */\n\n/**\n * @typedef {Object} WPShortcodeMatch\n *\n * @property {number}      index     Index the shortcode is found at.\n * @property {string}      content   Matched content.\n * @property {WPShortcode} shortcode Shortcode instance of the match.\n */\n\n/**\n * Find the next matching shortcode.\n *\n * @param {string} tag   Shortcode tag.\n * @param {string} text  Text to search.\n * @param {number} index Index to start search from.\n *\n * @return {?WPShortcodeMatch} Matched information.\n */\n\nfunction next(tag, text) {\n  var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n  var re = regexp(tag);\n  re.lastIndex = index;\n  var match = re.exec(text);\n\n  if (!match) {\n    return;\n  } // If we matched an escaped shortcode, try again.\n\n\n  if ('[' === match[1] && ']' === match[7]) {\n    return next(tag, text, re.lastIndex);\n  }\n\n  var result = {\n    index: match.index,\n    content: match[0],\n    shortcode: fromMatch(match)\n  }; // If we matched a leading `[`, strip it from the match and increment the\n  // index accordingly.\n\n  if (match[1]) {\n    result.content = result.content.slice(1);\n    result.index++;\n  } // If we matched a trailing `]`, strip it from the match.\n\n\n  if (match[7]) {\n    result.content = result.content.slice(0, -1);\n  }\n\n  return result;\n}\n/**\n * Replace matching shortcodes in a block of text.\n *\n * @param {string}   tag      Shortcode tag.\n * @param {string}   text     Text to search.\n * @param {Function} callback Function to process the match and return\n *                            replacement string.\n *\n * @return {string} Text with shortcodes replaced.\n */\n\nfunction replace(tag, text, callback) {\n  return text.replace(regexp(tag), function (match, left, $3, attrs, slash, content, closing, right) {\n    // If both extra brackets exist, the shortcode has been properly\n    // escaped.\n    if (left === '[' && right === ']') {\n      return match;\n    } // Create the match object and pass it through the callback.\n\n\n    var result = callback(fromMatch(arguments)); // Make sure to return any of the extra brackets if they weren't used to\n    // escape the shortcode.\n\n    return result ? left + result + right : match;\n  });\n}\n/**\n * Generate a string from shortcode parameters.\n *\n * Creates a shortcode instance and returns a string.\n *\n * Accepts the same `options` as the `shortcode()` constructor, containing a\n * `tag` string, a string or object of `attrs`, a boolean indicating whether to\n * format the shortcode using a `single` tag, and a `content` string.\n *\n * @param {Object} options\n *\n * @return {string} String representation of the shortcode.\n */\n\nfunction string(options) {\n  return new shortcode(options).string();\n}\n/**\n * Generate a RegExp to identify a shortcode.\n *\n * The base regex is functionally equivalent to the one found in\n * `get_shortcode_regex()` in `wp-includes/shortcodes.php`.\n *\n * Capture groups:\n *\n * 1. An extra `[` to allow for escaping shortcodes with double `[[]]`\n * 2. The shortcode name\n * 3. The shortcode argument list\n * 4. The self closing `/`\n * 5. The content of a shortcode when it wraps some content.\n * 6. The closing tag.\n * 7. An extra `]` to allow for escaping shortcodes with double `[[]]`\n *\n * @param {string} tag Shortcode tag.\n *\n * @return {RegExp} Shortcode RegExp.\n */\n\nfunction regexp(tag) {\n  return new RegExp('\\\\[(\\\\[?)(' + tag + ')(?![\\\\w-])([^\\\\]\\\\/]*(?:\\\\/(?!\\\\])[^\\\\]\\\\/]*)*?)(?:(\\\\/)\\\\]|\\\\](?:([^\\\\[]*(?:\\\\[(?!\\\\/\\\\2\\\\])[^\\\\[]*)*)(\\\\[\\\\/\\\\2\\\\]))?)(\\\\]?)', 'g');\n}\n/**\n * Parse shortcode attributes.\n *\n * Shortcodes accept many types of attributes. These can chiefly be divided into\n * named and numeric attributes:\n *\n * Named attributes are assigned on a key/value basis, while numeric attributes\n * are treated as an array.\n *\n * Named attributes can be formatted as either `name=\"value\"`, `name='value'`,\n * or `name=value`. Numeric attributes can be formatted as `\"value\"` or just\n * `value`.\n *\n * @param {string} text Serialised shortcode attributes.\n *\n * @return {WPShortcodeAttrs} Parsed shortcode attributes.\n */\n\nvar attrs = memize__WEBPACK_IMPORTED_MODULE_1___default()(function (text) {\n  var named = {};\n  var numeric = []; // This regular expression is reused from `shortcode_parse_atts()` in\n  // `wp-includes/shortcodes.php`.\n  //\n  // Capture groups:\n  //\n  // 1. An attribute name, that corresponds to...\n  // 2. a value in double quotes.\n  // 3. An attribute name, that corresponds to...\n  // 4. a value in single quotes.\n  // 5. An attribute name, that corresponds to...\n  // 6. an unquoted value.\n  // 7. A numeric attribute in double quotes.\n  // 8. A numeric attribute in single quotes.\n  // 9. An unquoted numeric attribute.\n\n  var pattern = /([\\w-]+)\\s*=\\s*\"([^\"]*)\"(?:\\s|$)|([\\w-]+)\\s*=\\s*'([^']*)'(?:\\s|$)|([\\w-]+)\\s*=\\s*([^\\s'\"]+)(?:\\s|$)|\"([^\"]*)\"(?:\\s|$)|'([^']*)'(?:\\s|$)|(\\S+)(?:\\s|$)/g; // Map zero-width spaces to actual spaces.\n\n  text = text.replace(/[\\u00a0\\u200b]/g, ' ');\n  var match; // Match and normalize attributes.\n\n  while (match = pattern.exec(text)) {\n    if (match[1]) {\n      named[match[1].toLowerCase()] = match[2];\n    } else if (match[3]) {\n      named[match[3].toLowerCase()] = match[4];\n    } else if (match[5]) {\n      named[match[5].toLowerCase()] = match[6];\n    } else if (match[7]) {\n      numeric.push(match[7]);\n    } else if (match[8]) {\n      numeric.push(match[8]);\n    } else if (match[9]) {\n      numeric.push(match[9]);\n    }\n  }\n\n  return {\n    named: named,\n    numeric: numeric\n  };\n});\n/**\n * Generate a Shortcode Object from a RegExp match.\n *\n * Accepts a `match` object from calling `regexp.exec()` on a `RegExp` generated\n * by `regexp()`. `match` can also be set to the `arguments` from a callback\n * passed to `regexp.replace()`.\n *\n * @param {Array} match Match array.\n *\n * @return {WPShortcode} Shortcode instance.\n */\n\nfunction fromMatch(match) {\n  var type;\n\n  if (match[4]) {\n    type = 'self-closing';\n  } else if (match[6]) {\n    type = 'closed';\n  } else {\n    type = 'single';\n  }\n\n  return new shortcode({\n    tag: match[2],\n    attrs: match[3],\n    type: type,\n    content: match[5]\n  });\n}\n/**\n * Creates a shortcode instance.\n *\n * To access a raw representation of a shortcode, pass an `options` object,\n * containing a `tag` string, a string or object of `attrs`, a string indicating\n * the `type` of the shortcode ('single', 'self-closing', or 'closed'), and a\n * `content` string.\n *\n * @param {Object} options Options as described.\n *\n * @return {WPShortcode} Shortcode instance.\n */\n\nvar shortcode = Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(function (options) {\n  var _this = this;\n\n  Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(this, Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"pick\"])(options || {}, 'tag', 'attrs', 'type', 'content'));\n  var attributes = this.attrs; // Ensure we have a correctly formatted `attrs` object.\n\n  this.attrs = {\n    named: {},\n    numeric: []\n  };\n\n  if (!attributes) {\n    return;\n  } // Parse a string of attributes.\n\n\n  if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isString\"])(attributes)) {\n    this.attrs = attrs(attributes); // Identify a correctly formatted `attrs` object.\n  } else if (Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isEqual\"])(Object.keys(attributes), ['named', 'numeric'])) {\n    this.attrs = attributes; // Handle a flat object of attributes.\n  } else {\n    Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"forEach\"])(attributes, function (value, key) {\n      _this.set(key, value);\n    });\n  }\n}, {\n  next: next,\n  replace: replace,\n  string: string,\n  regexp: regexp,\n  attrs: attrs,\n  fromMatch: fromMatch\n});\nObject(lodash__WEBPACK_IMPORTED_MODULE_0__[\"extend\"])(shortcode.prototype, {\n  /**\n   * Get a shortcode attribute.\n   *\n   * Automatically detects whether `attr` is named or numeric and routes it\n   * accordingly.\n   *\n   * @param {(number|string)} attr Attribute key.\n   *\n   * @return {string} Attribute value.\n   */\n  get: function get(attr) {\n    return this.attrs[Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(attr) ? 'numeric' : 'named'][attr];\n  },\n\n  /**\n   * Set a shortcode attribute.\n   *\n   * Automatically detects whether `attr` is named or numeric and routes it\n   * accordingly.\n   *\n   * @param {(number|string)} attr  Attribute key.\n   * @param {string}          value Attribute value.\n   *\n   * @return {WPShortcode} Shortcode instance.\n   */\n  set: function set(attr, value) {\n    this.attrs[Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"isNumber\"])(attr) ? 'numeric' : 'named'][attr] = value;\n    return this;\n  },\n\n  /**\n   * Transform the shortcode into a string.\n   *\n   * @return {string} String representation of the shortcode.\n   */\n  string: function string() {\n    var text = '[' + this.tag;\n    Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"forEach\"])(this.attrs.numeric, function (value) {\n      if (/\\s/.test(value)) {\n        text += ' \"' + value + '\"';\n      } else {\n        text += ' ' + value;\n      }\n    });\n    Object(lodash__WEBPACK_IMPORTED_MODULE_0__[\"forEach\"])(this.attrs.named, function (value, name) {\n      text += ' ' + name + '=\"' + value + '\"';\n    }); // If the tag is marked as `single` or `self-closing`, close the tag and\n    // ignore any additional content.\n\n    if ('single' === this.type) {\n      return text + ']';\n    } else if ('self-closing' === this.type) {\n      return text + ' /]';\n    } // Complete the opening tag.\n\n\n    text += ']';\n\n    if (this.content) {\n      text += this.content;\n    } // Add the closing tag.\n\n\n    return text + '[/' + this.tag + ']';\n  }\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (shortcode);\n\n\n/***/ }),\n\n/***/ 50:\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n * Memize options object.\n *\n * @typedef MemizeOptions\n *\n * @property {number} [maxSize] Maximum size of the cache.\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef MemizeCacheNode\n *\n * @property {?MemizeCacheNode|undefined} [prev] Previous node.\n * @property {?MemizeCacheNode|undefined} [next] Next node.\n * @property {Array<*>}                   args   Function arguments for cache\n *                                               entry.\n * @property {*}                          val    Function result.\n */\n\n/**\n * Properties of the enhanced function for controlling cache.\n *\n * @typedef MemizeMemoizedFunction\n *\n * @property {()=>void} clear Clear the cache.\n */\n\n/**\n * Accepts a function to be memoized, and returns a new memoized function, with\n * optional options.\n *\n * @template {Function} F\n *\n * @param {F}             fn        Function to memoize.\n * @param {MemizeOptions} [options] Options object.\n *\n * @return {F & MemizeMemoizedFunction} Memoized function.\n */\nfunction memize( fn, options ) {\n\tvar size = 0;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar head;\n\n\t/** @type {?MemizeCacheNode|undefined} */\n\tvar tail;\n\n\toptions = options || {};\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\t/** @type {MemizeCacheNode} */ ( node.prev ).next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {MemizeCacheNode} */ ( head ).prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args ),\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === /** @type {MemizeOptions} */ ( options ).maxSize ) {\n\t\t\ttail = /** @type {MemizeCacheNode} */ ( tail ).prev;\n\t\t\t/** @type {MemizeCacheNode} */ ( tail ).next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( false ) {}\n\n\t// Ignore reason: There's not a clear solution to create an intersection of\n\t// the function with additional properties, where the goal is to retain the\n\t// function signature of the incoming argument and add control properties\n\t// on the return value.\n\n\t// @ts-ignore\n\treturn memoized;\n}\n\nmodule.exports = memize;\n\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-token-list.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"tokenList\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 428);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 18:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _createClass; });\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _classCallCheck; });\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"regeneratorRuntime\"]; }());\n\n/***/ }),\n\n/***/ 428:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return TokenList; });\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);\n/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * A set of tokens.\n *\n * @see https://dom.spec.whatwg.org/#domtokenlist\n */\n\nvar TokenList = /*#__PURE__*/function () {\n  /**\n   * Constructs a new instance of TokenList.\n   *\n   * @param {string} initialValue Initial value to assign.\n   */\n  function TokenList() {\n    var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n    Object(_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"])(this, TokenList);\n\n    this.value = initialValue; // Disable reason: These are type hints on the class.\n\n    /* eslint-disable no-unused-expressions */\n\n    /** @type {string} */\n\n    this._currentValue;\n    /** @type {string[]} */\n\n    this._valueAsArray;\n    /* eslint-enable no-unused-expressions */\n  } // Disable reason: JSDoc lint doesn't understand TypeScript types\n\n  /* eslint-disable jsdoc/valid-types */\n\n  /**\n   * @param {Parameters<Array<string>['entries']>} args\n   */\n\n\n  Object(_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(TokenList, [{\n    key: \"entries\",\n    value: function entries() {\n      var _this$_valueAsArray;\n\n      return (_this$_valueAsArray = this._valueAsArray).entries.apply(_this$_valueAsArray, arguments);\n    }\n    /**\n     * @param {Parameters<Array<string>['forEach']>} args\n     */\n\n  }, {\n    key: \"forEach\",\n    value: function forEach() {\n      var _this$_valueAsArray2;\n\n      return (_this$_valueAsArray2 = this._valueAsArray).forEach.apply(_this$_valueAsArray2, arguments);\n    }\n    /**\n     * @param {Parameters<Array<string>['keys']>} args\n     */\n\n  }, {\n    key: \"keys\",\n    value: function keys() {\n      var _this$_valueAsArray3;\n\n      return (_this$_valueAsArray3 = this._valueAsArray).keys.apply(_this$_valueAsArray3, arguments);\n    }\n    /**\n     * @param {Parameters<Array<string>['values']>} args\n     */\n\n  }, {\n    key: \"values\",\n    value: function values() {\n      var _this$_valueAsArray4;\n\n      return (_this$_valueAsArray4 = this._valueAsArray).values.apply(_this$_valueAsArray4, arguments);\n    }\n    /* eslint-enable jsdoc/valid-types */\n\n    /**\n     * Returns the associated set as string.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value\n     *\n     * @return {string} Token set as string.\n     */\n\n  }, {\n    key: \"toString\",\n\n    /**\n     * Returns the stringified form of the TokenList.\n     *\n     * @see https://dom.spec.whatwg.org/#DOMTokenList-stringification-behavior\n     * @see https://www.ecma-international.org/ecma-262/9.0/index.html#sec-tostring\n     *\n     * @return {string} Token set as string.\n     */\n    value: function toString() {\n      return this.value;\n    }\n    /**\n     * Returns an iterator for the TokenList, iterating items of the set.\n     *\n     * @see https://dom.spec.whatwg.org/#domtokenlist\n     *\n     * @return {IterableIterator<string>} TokenList iterator.\n     */\n\n  }, {\n    key: Symbol.iterator,\n    value: /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function value() {\n      return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function value$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              return _context.delegateYield(this._valueAsArray, \"t0\", 1);\n\n            case 1:\n              return _context.abrupt(\"return\", _context.t0);\n\n            case 2:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, value, this);\n    })\n    /**\n     * Returns the token with index `index`.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-item\n     *\n     * @param {number} index Index at which to return token.\n     *\n     * @return {string|undefined} Token at index.\n     */\n\n  }, {\n    key: \"item\",\n    value: function item(index) {\n      return this._valueAsArray[index];\n    }\n    /**\n     * Returns true if `token` is present, and false otherwise.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-contains\n     *\n     * @param {string} item Token to test.\n     *\n     * @return {boolean} Whether token is present.\n     */\n\n  }, {\n    key: \"contains\",\n    value: function contains(item) {\n      return this._valueAsArray.indexOf(item) !== -1;\n    }\n    /**\n     * Adds all arguments passed, except those already present.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-add\n     *\n     * @param {...string} items Items to add.\n     */\n\n  }, {\n    key: \"add\",\n    value: function add() {\n      for (var _len = arguments.length, items = new Array(_len), _key = 0; _key < _len; _key++) {\n        items[_key] = arguments[_key];\n      }\n\n      this.value += ' ' + items.join(' ');\n    }\n    /**\n     * Removes arguments passed, if they are present.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-remove\n     *\n     * @param {...string} items Items to remove.\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove() {\n      for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        items[_key2] = arguments[_key2];\n      }\n\n      this.value = lodash__WEBPACK_IMPORTED_MODULE_3__[\"without\"].apply(void 0, [this._valueAsArray].concat(items)).join(' ');\n    }\n    /**\n     * If `force` is not given, \"toggles\" `token`, removing it if it’s present\n     * and adding it if it’s not present. If `force` is true, adds token (same\n     * as add()). If force is false, removes token (same as remove()). Returns\n     * true if `token` is now present, and false otherwise.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-toggle\n     *\n     * @param {string}  token   Token to toggle.\n     * @param {boolean} [force] Presence to force.\n     *\n     * @return {boolean} Whether token is present after toggle.\n     */\n\n  }, {\n    key: \"toggle\",\n    value: function toggle(token, force) {\n      if (undefined === force) {\n        force = !this.contains(token);\n      }\n\n      if (force) {\n        this.add(token);\n      } else {\n        this.remove(token);\n      }\n\n      return force;\n    }\n    /**\n     * Replaces `token` with `newToken`. Returns true if `token` was replaced\n     * with `newToken`, and false otherwise.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-replace\n     *\n     * @param {string} token    Token to replace with `newToken`.\n     * @param {string} newToken Token to use in place of `token`.\n     *\n     * @return {boolean} Whether replacement occurred.\n     */\n\n  }, {\n    key: \"replace\",\n    value: function replace(token, newToken) {\n      if (!this.contains(token)) {\n        return false;\n      }\n\n      this.remove(token);\n      this.add(newToken);\n      return true;\n    }\n    /**\n     * Returns true if `token` is in the associated attribute’s supported\n     * tokens. Returns false otherwise.\n     *\n     * Always returns `true` in this implementation.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-supports\n     *\n     * @return {boolean} Whether token is supported.\n     */\n\n  }, {\n    key: \"supports\",\n    value: function supports() {\n      return true;\n    }\n  }, {\n    key: \"value\",\n    get: function get() {\n      return this._currentValue;\n    }\n    /**\n     * Replaces the associated set with a new string value.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-value\n     *\n     * @param {string} value New token set as string.\n     */\n    ,\n    set: function set(value) {\n      value = String(value);\n      this._valueAsArray = Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"uniq\"])(Object(lodash__WEBPACK_IMPORTED_MODULE_3__[\"compact\"])(value.split(/\\s+/g)));\n      this._currentValue = this._valueAsArray.join(' ');\n    }\n    /**\n     * Returns the number of tokens.\n     *\n     * @see https://dom.spec.whatwg.org/#dom-domtokenlist-length\n     *\n     * @return {number} Number of tokens.\n     */\n\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._valueAsArray.length;\n    }\n  }]);\n\n  return TokenList;\n}();\n\n\n\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-url.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"url\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 440);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 110:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar stringify = __webpack_require__(429);\nvar parse = __webpack_require__(430);\nvar formats = __webpack_require__(253);\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 252:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted.push(obj[j]);\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? Object.create(null) : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object') {\n        if (isArray(target)) {\n            target.push(source);\n        } else if (target && typeof target === 'object') {\n            if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        return [target].concat(source);\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target.push(item);\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar encode = function encode(str, defaultEncoder, charset) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = typeof str === 'string' ? str : String(str);\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var i = 0; i < string.length; ++i) {\n        var c = string.charCodeAt(i);\n\n        if (\n            c === 0x2D // -\n            || c === 0x2E // .\n            || c === 0x5F // _\n            || c === 0x7E // ~\n            || (c >= 0x30 && c <= 0x39) // 0-9\n            || (c >= 0x41 && c <= 0x5A) // a-z\n            || (c >= 0x61 && c <= 0x7A) // A-Z\n        ) {\n            out += string.charAt(i);\n            continue;\n        }\n\n        if (c < 0x80) {\n            out = out + hexTable[c];\n            continue;\n        }\n\n        if (c < 0x800) {\n            out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n            continue;\n        }\n\n        if (c < 0xD800 || c >= 0xE000) {\n            out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n            continue;\n        }\n\n        i += 1;\n        c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n        out += hexTable[0xF0 | (c >> 18)]\n            + hexTable[0x80 | ((c >> 12) & 0x3F)]\n            + hexTable[0x80 | ((c >> 6) & 0x3F)]\n            + hexTable[0x80 | (c & 0x3F)];\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue.push({ obj: obj, prop: key });\n                refs.push(val);\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n    return [].concat(a, b);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isRegExp: isRegExp,\n    merge: merge\n};\n\n\n/***/ }),\n\n/***/ 253:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nmodule.exports = {\n    'default': 'RFC3986',\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return value;\n        }\n    },\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\n\n/***/ }),\n\n/***/ 429:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(252);\nvar formats = __webpack_require__(253);\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) { // eslint-disable-line func-name-matching\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) { // eslint-disable-line func-name-matching\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) { // eslint-disable-line func-name-matching\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    delimiter: '&',\n    encode: true,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    formatter: formats.formatters[formats['default']],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar stringify = function stringify( // eslint-disable-line func-name-matching\n    object,\n    prefix,\n    generateArrayPrefix,\n    strictNullHandling,\n    skipNulls,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    formatter,\n    encodeValuesOnly,\n    charset\n) {\n    var obj = object;\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = obj.join(',');\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n\n        if (skipNulls && obj[key] === null) {\n            continue;\n        }\n\n        if (isArray(obj)) {\n            pushToArray(values, stringify(\n                obj[key],\n                typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix,\n                generateArrayPrefix,\n                strictNullHandling,\n                skipNulls,\n                encoder,\n                filter,\n                sort,\n                allowDots,\n                serializeDate,\n                formatter,\n                encodeValuesOnly,\n                charset\n            ));\n        } else {\n            pushToArray(values, stringify(\n                obj[key],\n                prefix + (allowDots ? '.' + key : '[' + key + ']'),\n                generateArrayPrefix,\n                strictNullHandling,\n                skipNulls,\n                encoder,\n                filter,\n                sort,\n                allowDots,\n                serializeDate,\n                formatter,\n                encodeValuesOnly,\n                charset\n            ));\n        }\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var arrayFormat;\n    if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if (opts && 'indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = 'indices';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n\n        if (options.skipNulls && obj[key] === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            obj[key],\n            key,\n            generateArrayPrefix,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n\n\n/***/ }),\n\n/***/ 430:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar utils = __webpack_require__(252);\n\nvar has = Object.prototype.hasOwnProperty;\n\nvar defaults = {\n    allowDots: false,\n    allowPrototypes: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = {};\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n    var parts = cleanStr.split(options.delimiter, limit);\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key, val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset);\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset);\n            val = options.decoder(part.slice(pos + 1), defaults.decoder, charset);\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(val);\n        }\n\n        if (val && options.comma && val.indexOf(',') > -1) {\n            val = val.split(',');\n        }\n\n        if (has.call(obj, key)) {\n            obj[key] = utils.combine(obj[key], val);\n        } else {\n            obj[key] = val;\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options) {\n    var leaf = val;\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            obj = [].concat(leaf);\n        } else {\n            obj = options.plainObjects ? Object.create(null) : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var index = parseInt(cleanRoot, 10);\n            if (!options.parseArrays && cleanRoot === '') {\n                obj = { 0: leaf };\n            } else if (\n                !isNaN(index)\n                && root !== cleanRoot\n                && String(index) === cleanRoot\n                && index >= 0\n                && (options.parseArrays && index <= options.arrayLimit)\n            ) {\n                obj = [];\n                obj[index] = leaf;\n            } else {\n                obj[cleanRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options) {\n    if (!givenKey) {\n        return;\n    }\n\n    // Transform dot notation to bracket notation\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    // The regex chunks\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    // Get the parent\n\n    var segment = brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    // Stash the parent if it exists\n\n    var keys = [];\n    if (parent) {\n        // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys.push(parent);\n    }\n\n    // Loop through children appending to the array until we hit depth\n\n    var i = 0;\n    while ((segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n        if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n        keys.push(segment[1]);\n    }\n\n    // If there's a remainder, just add whatever is left\n\n    if (segment) {\n        keys.push('[' + key.slice(segment.index) + ']');\n    }\n\n    return parseObject(keys, val, options);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new Error('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    return {\n        allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        depth: typeof opts.depth === 'number' ? opts.depth : defaults.depth,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? Object.create(null) : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? Object.create(null) : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options);\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    return utils.compact(obj);\n};\n\n\n/***/ }),\n\n/***/ 440:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"isURL\", function() { return /* reexport */ isURL; });\n__webpack_require__.d(__webpack_exports__, \"isEmail\", function() { return /* reexport */ isEmail; });\n__webpack_require__.d(__webpack_exports__, \"getProtocol\", function() { return /* reexport */ getProtocol; });\n__webpack_require__.d(__webpack_exports__, \"isValidProtocol\", function() { return /* reexport */ isValidProtocol; });\n__webpack_require__.d(__webpack_exports__, \"getAuthority\", function() { return /* reexport */ getAuthority; });\n__webpack_require__.d(__webpack_exports__, \"isValidAuthority\", function() { return /* reexport */ isValidAuthority; });\n__webpack_require__.d(__webpack_exports__, \"getPath\", function() { return /* reexport */ getPath; });\n__webpack_require__.d(__webpack_exports__, \"isValidPath\", function() { return /* reexport */ isValidPath; });\n__webpack_require__.d(__webpack_exports__, \"getQueryString\", function() { return /* reexport */ getQueryString; });\n__webpack_require__.d(__webpack_exports__, \"isValidQueryString\", function() { return /* reexport */ isValidQueryString; });\n__webpack_require__.d(__webpack_exports__, \"getPathAndQueryString\", function() { return /* reexport */ getPathAndQueryString; });\n__webpack_require__.d(__webpack_exports__, \"getFragment\", function() { return /* reexport */ getFragment; });\n__webpack_require__.d(__webpack_exports__, \"isValidFragment\", function() { return /* reexport */ isValidFragment; });\n__webpack_require__.d(__webpack_exports__, \"addQueryArgs\", function() { return /* reexport */ addQueryArgs; });\n__webpack_require__.d(__webpack_exports__, \"getQueryArg\", function() { return /* reexport */ getQueryArg; });\n__webpack_require__.d(__webpack_exports__, \"hasQueryArg\", function() { return /* reexport */ hasQueryArg; });\n__webpack_require__.d(__webpack_exports__, \"removeQueryArgs\", function() { return /* reexport */ removeQueryArgs; });\n__webpack_require__.d(__webpack_exports__, \"prependHTTP\", function() { return /* reexport */ prependHTTP; });\n__webpack_require__.d(__webpack_exports__, \"safeDecodeURI\", function() { return /* reexport */ safeDecodeURI; });\n__webpack_require__.d(__webpack_exports__, \"safeDecodeURIComponent\", function() { return /* reexport */ safeDecodeURIComponent; });\n__webpack_require__.d(__webpack_exports__, \"filterURLForDisplay\", function() { return /* reexport */ filterURLForDisplay; });\n__webpack_require__.d(__webpack_exports__, \"cleanForSlug\", function() { return /* reexport */ cleanForSlug; });\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-url.js\n/**\n * Determines whether the given string looks like a URL.\n *\n * @param {string} url The string to scrutinise.\n *\n * @example\n * ```js\n * const isURL = isURL( 'https://wordpress.org' ); // true\n * ```\n *\n * @see https://url.spec.whatwg.org/\n * @see https://url.spec.whatwg.org/#valid-url-string\n *\n * @return {boolean} Whether or not it looks like a URL.\n */\nfunction isURL(url) {\n  // A URL can be considered value if the `URL` constructor is able to parse\n  // it. The constructor throws an error for an invalid URL.\n  try {\n    new URL(url);\n    return true;\n  } catch (_unused) {\n    return false;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-email.js\nvar EMAIL_REGEXP = /^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\\.[a-z]{2,63}$/i;\n/**\n * Determines whether the given string looks like an email.\n *\n * @param {string} email The string to scrutinise.\n *\n * @example\n * ```js\n * const isEmail = isEmail( 'hello@wordpress.org' ); // true\n * ```\n *\n * @return {boolean} Whether or not it looks like an email.\n */\n\nfunction isEmail(email) {\n  return EMAIL_REGEXP.test(email);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-protocol.js\n/**\n * Returns the protocol part of the URL.\n *\n * @param {string} url The full URL.\n *\n * @example\n * ```js\n * const protocol1 = getProtocol( 'tel:012345678' ); // 'tel:'\n * const protocol2 = getProtocol( 'https://wordpress.org' ); // 'https:'\n * ```\n *\n * @return {string|void} The protocol part of the URL.\n */\nfunction getProtocol(url) {\n  var matches = /^([^\\s:]+:)/.exec(url);\n\n  if (matches) {\n    return matches[1];\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-protocol.js\n/**\n * Tests if a url protocol is valid.\n *\n * @param {string} protocol The url protocol.\n *\n * @example\n * ```js\n * const isValid = isValidProtocol( 'https:' ); // true\n * const isNotValid = isValidProtocol( 'https :' ); // false\n * ```\n *\n * @return {boolean} True if the argument is a valid protocol (e.g. http:, tel:).\n */\nfunction isValidProtocol(protocol) {\n  if (!protocol) {\n    return false;\n  }\n\n  return /^[a-z\\-.\\+]+[0-9]*:$/i.test(protocol);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-authority.js\n/**\n * Returns the authority part of the URL.\n *\n * @param {string} url The full URL.\n *\n * @example\n * ```js\n * const authority1 = getAuthority( 'https://wordpress.org/help/' ); // 'wordpress.org'\n * const authority2 = getAuthority( 'https://localhost:8080/test/' ); // 'localhost:8080'\n * ```\n *\n * @return {string|void} The authority part of the URL.\n */\nfunction getAuthority(url) {\n  var matches = /^[^\\/\\s:]+:(?:\\/\\/)?\\/?([^\\/\\s#?]+)[\\/#?]{0,1}\\S*$/.exec(url);\n\n  if (matches) {\n    return matches[1];\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-authority.js\n/**\n * Checks for invalid characters within the provided authority.\n *\n * @param {string} authority A string containing the URL authority.\n *\n * @example\n * ```js\n * const isValid = isValidAuthority( 'wordpress.org' ); // true\n * const isNotValid = isValidAuthority( 'wordpress#org' ); // false\n * ```\n *\n * @return {boolean} True if the argument contains a valid authority.\n */\nfunction isValidAuthority(authority) {\n  if (!authority) {\n    return false;\n  }\n\n  return /^[^\\s#?]+$/.test(authority);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-path.js\n/**\n * Returns the path part of the URL.\n *\n * @param {string} url The full URL.\n *\n * @example\n * ```js\n * const path1 = getPath( 'http://localhost:8080/this/is/a/test?query=true' ); // 'this/is/a/test'\n * const path2 = getPath( 'https://wordpress.org/help/faq/' ); // 'help/faq'\n * ```\n *\n * @return {string|void} The path part of the URL.\n */\nfunction getPath(url) {\n  var matches = /^[^\\/\\s:]+:(?:\\/\\/)?[^\\/\\s#?]+[\\/]([^\\s#?]+)[#?]{0,1}\\S*$/.exec(url);\n\n  if (matches) {\n    return matches[1];\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-path.js\n/**\n * Checks for invalid characters within the provided path.\n *\n * @param {string} path The URL path.\n *\n * @example\n * ```js\n * const isValid = isValidPath( 'test/path/' ); // true\n * const isNotValid = isValidPath( '/invalid?test/path/' ); // false\n * ```\n *\n * @return {boolean} True if the argument contains a valid path\n */\nfunction isValidPath(path) {\n  if (!path) {\n    return false;\n  }\n\n  return /^[^\\s#?]+$/.test(path);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-query-string.js\n/**\n * Returns the query string part of the URL.\n *\n * @param {string} url The full URL.\n *\n * @example\n * ```js\n * const queryString = getQueryString( 'http://localhost:8080/this/is/a/test?query=true#fragment' ); // 'query=true'\n * ```\n *\n * @return {string|void} The query string part of the URL.\n */\nfunction getQueryString(url) {\n  var query;\n\n  try {\n    query = new URL(url).search.substring(1);\n  } catch (error) {}\n\n  if (query) {\n    return query;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-query-string.js\n/**\n * Checks for invalid characters within the provided query string.\n *\n * @param {string} queryString The query string.\n *\n * @example\n * ```js\n * const isValid = isValidQueryString( 'query=true&another=false' ); // true\n * const isNotValid = isValidQueryString( 'query=true?another=false' ); // false\n * ```\n *\n * @return {boolean} True if the argument contains a valid query string.\n */\nfunction isValidQueryString(queryString) {\n  if (!queryString) {\n    return false;\n  }\n\n  return /^[^\\s#?\\/]+$/.test(queryString);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-path-and-query-string.js\n/**\n * Internal dependencies\n */\n\n/**\n * Returns the path part and query string part of the URL.\n *\n * @param {string} url The full URL.\n *\n * @example\n * ```js\n * const pathAndQueryString1 = getPathAndQueryString( 'http://localhost:8080/this/is/a/test?query=true' ); // '/this/is/a/test?query=true'\n * const pathAndQueryString2 = getPathAndQueryString( 'https://wordpress.org/help/faq/' ); // '/help/faq'\n * ```\n *\n * @return {string} The path part and query string part of the URL.\n */\n\nfunction getPathAndQueryString(url) {\n  var path = getPath(url);\n  var queryString = getQueryString(url);\n  var value = '/';\n  if (path) value += path;\n  if (queryString) value += \"?\".concat(queryString);\n  return value;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-fragment.js\n/**\n * Returns the fragment part of the URL.\n *\n * @param {string} url The full URL\n *\n * @example\n * ```js\n * const fragment1 = getFragment( 'http://localhost:8080/this/is/a/test?query=true#fragment' ); // '#fragment'\n * const fragment2 = getFragment( 'https://wordpress.org#another-fragment?query=true' ); // '#another-fragment'\n * ```\n *\n * @return {string|void} The fragment part of the URL.\n */\nfunction getFragment(url) {\n  var matches = /^\\S+?(#[^\\s\\?]*)/.exec(url);\n\n  if (matches) {\n    return matches[1];\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/is-valid-fragment.js\n/**\n * Checks for invalid characters within the provided fragment.\n *\n * @param {string} fragment The url fragment.\n *\n * @example\n * ```js\n * const isValid = isValidFragment( '#valid-fragment' ); // true\n * const isNotValid = isValidFragment( '#invalid-#fragment' ); // false\n * ```\n *\n * @return {boolean} True if the argument contains a valid fragment.\n */\nfunction isValidFragment(fragment) {\n  if (!fragment) {\n    return false;\n  }\n\n  return /^#[^\\s#?\\/]*$/.test(fragment);\n}\n\n// EXTERNAL MODULE: ./node_modules/qs/lib/index.js\nvar lib = __webpack_require__(110);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/add-query-args.js\n/**\n * External dependencies\n */\n\n/**\n * Appends arguments as querystring to the provided URL. If the URL already\n * includes query arguments, the arguments are merged with (and take precedent\n * over) the existing set.\n *\n * @param {string} [url='']  URL to which arguments should be appended. If omitted,\n *                           only the resulting querystring is returned.\n * @param {Object} [args]    Query arguments to apply to URL.\n *\n * @example\n * ```js\n * const newURL = addQueryArgs( 'https://google.com', { q: 'test' } ); // https://google.com/?q=test\n * ```\n *\n * @return {string} URL with arguments applied.\n */\n\nfunction addQueryArgs() {\n  var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var args = arguments.length > 1 ? arguments[1] : undefined;\n\n  // If no arguments are to be appended, return original URL.\n  if (!args || !Object.keys(args).length) {\n    return url;\n  }\n\n  var baseUrl = url; // Determine whether URL already had query arguments.\n\n  var queryStringIndex = url.indexOf('?');\n\n  if (queryStringIndex !== -1) {\n    // Merge into existing query arguments.\n    args = Object.assign(Object(lib[\"parse\"])(url.substr(queryStringIndex + 1)), args); // Change working base URL to omit previous query arguments.\n\n    baseUrl = baseUrl.substr(0, queryStringIndex);\n  }\n\n  return baseUrl + '?' + Object(lib[\"stringify\"])(args);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/get-query-arg.js\n/**\n * External dependencies\n */\n\n/* eslint-disable jsdoc/valid-types */\n\n/**\n * @typedef {{[key: string]: QueryArgParsed}} QueryArgObject\n */\n\n/* eslint-enable */\n\n/**\n * @typedef {string|string[]|QueryArgObject} QueryArgParsed\n */\n\n/**\n * Returns a single query argument of the url\n *\n * @param {string} url URL.\n * @param {string} arg Query arg name.\n *\n * @example\n * ```js\n * const foo = getQueryArg( 'https://wordpress.org?foo=bar&bar=baz', 'foo' ); // bar\n * ```\n *\n * @return {QueryArgParsed|undefined} Query arg value.\n */\n\nfunction getQueryArg(url, arg) {\n  var queryStringIndex = url.indexOf('?');\n  var query = queryStringIndex !== -1 ? Object(lib[\"parse\"])(url.substr(queryStringIndex + 1)) : {};\n  return query[arg];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/has-query-arg.js\n/**\n * Internal dependencies\n */\n\n/**\n * Determines whether the URL contains a given query arg.\n *\n * @param {string} url URL.\n * @param {string} arg Query arg name.\n *\n * @example\n * ```js\n * const hasBar = hasQueryArg( 'https://wordpress.org?foo=bar&bar=baz', 'bar' ); // true\n * ```\n *\n * @return {boolean} Whether or not the URL contains the query arg.\n */\n\nfunction hasQueryArg(url, arg) {\n  return getQueryArg(url, arg) !== undefined;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/remove-query-args.js\n/**\n * External dependencies\n */\n\n/**\n * Removes arguments from the query string of the url\n *\n * @param {string}    url  URL.\n * @param {...string} args Query Args.\n *\n * @example\n * ```js\n * const newUrl = removeQueryArgs( 'https://wordpress.org?foo=bar&bar=baz&baz=foobar', 'foo', 'bar' ); // https://wordpress.org?baz=foobar\n * ```\n *\n * @return {string} Updated URL.\n */\n\nfunction removeQueryArgs(url) {\n  var queryStringIndex = url.indexOf('?');\n  var query = queryStringIndex !== -1 ? Object(lib[\"parse\"])(url.substr(queryStringIndex + 1)) : {};\n  var baseUrl = queryStringIndex !== -1 ? url.substr(0, queryStringIndex) : url;\n\n  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n    args[_key - 1] = arguments[_key];\n  }\n\n  args.forEach(function (arg) {\n    return delete query[arg];\n  });\n  return baseUrl + '?' + Object(lib[\"stringify\"])(query);\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/prepend-http.js\n/**\n * Internal dependencies\n */\n\nvar USABLE_HREF_REGEXP = /^(?:[a-z]+:|#|\\?|\\.|\\/)/i;\n/**\n * Prepends \"http://\" to a url, if it looks like something that is meant to be a TLD.\n *\n * @param {string} url The URL to test.\n *\n * @example\n * ```js\n * const actualURL = prependHTTP( 'wordpress.org' ); // http://wordpress.org\n * ```\n *\n * @return {string} The updated URL.\n */\n\nfunction prependHTTP(url) {\n  if (!url) {\n    return url;\n  }\n\n  url = url.trim();\n\n  if (!USABLE_HREF_REGEXP.test(url) && !isEmail(url)) {\n    return 'http://' + url;\n  }\n\n  return url;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/safe-decode-uri.js\n/**\n * Safely decodes a URI with `decodeURI`. Returns the URI unmodified if\n * `decodeURI` throws an error.\n *\n * @param {string} uri URI to decode.\n *\n * @example\n * ```js\n * const badUri = safeDecodeURI( '%z' ); // does not throw an Error, simply returns '%z'\n * ```\n *\n * @return {string} Decoded URI if possible.\n */\nfunction safeDecodeURI(uri) {\n  try {\n    return decodeURI(uri);\n  } catch (uriError) {\n    return uri;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/safe-decode-uri-component.js\n/**\n * Safely decodes a URI component with `decodeURIComponent`. Returns the URI component unmodified if\n * `decodeURIComponent` throws an error.\n *\n * @param {string} uriComponent URI component to decode.\n *\n * @return {string} Decoded URI component if possible.\n */\nfunction safeDecodeURIComponent(uriComponent) {\n  try {\n    return decodeURIComponent(uriComponent);\n  } catch (uriComponentError) {\n    return uriComponent;\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/filter-url-for-display.js\n/**\n * Returns a URL for display.\n *\n * @param {string} url Original URL.\n *\n * @example\n * ```js\n * const displayUrl = filterURLForDisplay( 'https://www.wordpress.org/gutenberg/' ); // wordpress.org/gutenberg\n * ```\n *\n * @return {string} Displayed URL.\n */\nfunction filterURLForDisplay(url) {\n  // Remove protocol and www prefixes.\n  var filteredURL = url.replace(/^(?:https?:)\\/\\/(?:www\\.)?/, ''); // Ends with / and only has that single slash, strip it.\n\n  if (filteredURL.match(/^[^\\/]+\\/$/)) {\n    return filteredURL.replace('/', '');\n  }\n\n  return filteredURL;\n}\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/clean-for-slug.js\n/**\n * External dependencies\n */\n\n/**\n * Performs some basic cleanup of a string for use as a post slug.\n *\n * This replicates some of what `sanitize_title()` does in WordPress core, but\n * is only designed to approximate what the slug will be.\n *\n * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin\n * letters. Removes combining diacritical marks. Converts whitespace, periods,\n * and forward slashes to hyphens. Removes any remaining non-word characters\n * except hyphens. Converts remaining string to lowercase. It does not account\n * for octets, HTML entities, or other encoded characters.\n *\n * @param {string} string Title or slug to be processed.\n *\n * @return {string} Processed string.\n */\n\nfunction cleanForSlug(string) {\n  if (!string) {\n    return '';\n  }\n\n  return Object(external_this_lodash_[\"trim\"])(Object(external_this_lodash_[\"deburr\"])(string).replace(/[\\s\\./]+/g, '-').replace(/[^\\w-]+/g, '').toLowerCase(), '-');\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/url/build-module/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-viewport.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"viewport\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 450);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"element\"]; }());\n\n/***/ }),\n\n/***/ 13:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"a\", function() { return /* binding */ _slicedToArray; });\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nvar arrayWithHoles = __webpack_require__(38);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\nvar unsupportedIterableToArray = __webpack_require__(29);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nvar nonIterableRest = __webpack_require__(39);\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n  return Object(arrayWithHoles[\"a\" /* default */])(arr) || _iterableToArrayLimit(arr, i) || Object(unsupportedIterableToArray[\"a\" /* default */])(arr, i) || Object(nonIterableRest[\"a\" /* default */])();\n}\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\n/***/ }),\n\n/***/ 29:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])(o, minLen);\n}\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _arrayWithHoles; });\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\n/***/ }),\n\n/***/ 39:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _nonIterableRest; });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"data\"]; }());\n\n/***/ }),\n\n/***/ 450:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"ifViewportMatches\", function() { return /* reexport */ if_viewport_matches; });\n__webpack_require__.d(__webpack_exports__, \"withViewportMatch\", function() { return /* reexport */ with_viewport_match; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/viewport/build-module/store/actions.js\nvar actions_namespaceObject = {};\n__webpack_require__.r(actions_namespaceObject);\n__webpack_require__.d(actions_namespaceObject, \"setIsMatching\", function() { return actions_setIsMatching; });\n\n// NAMESPACE OBJECT: ./node_modules/@wordpress/viewport/build-module/store/selectors.js\nvar selectors_namespaceObject = {};\n__webpack_require__.r(selectors_namespaceObject);\n__webpack_require__.d(selectors_namespaceObject, \"isViewportMatch\", function() { return isViewportMatch; });\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"data\"]}\nvar external_this_wp_data_ = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/reducer.js\n/**\n * Reducer returning the viewport state, as keys of breakpoint queries with\n * boolean value representing whether query is matched.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction reducer() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case 'SET_IS_MATCHING':\n      return action.values;\n  }\n\n  return state;\n}\n\n/* harmony default export */ var store_reducer = (reducer);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/actions.js\n/**\n * Returns an action object used in signalling that viewport queries have been\n * updated. Values are specified as an object of breakpoint query keys where\n * value represents whether query matches.\n *\n * @param {Object} values Breakpoint query matches.\n *\n * @return {Object} Action object.\n */\nfunction actions_setIsMatching(values) {\n  return {\n    type: 'SET_IS_MATCHING',\n    values: values\n  };\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/selectors.js\n/**\n * Returns true if the viewport matches the given query, or false otherwise.\n *\n * @param {Object} state Viewport state object.\n * @param {string} query Query string. Includes operator and breakpoint name,\n *                       space separated. Operator defaults to >=.\n *\n * @example\n *\n * ```js\n * isViewportMatch( state, '< huge' );\n * isViewPortMatch( state, 'medium' );\n * ```\n *\n * @return {boolean} Whether viewport matches query.\n */\nfunction isViewportMatch(state, query) {\n  // Default to `>=` if no operator is present.\n  if (query.indexOf(' ') === -1) {\n    query = '>= ' + query;\n  }\n\n  return !!state[query];\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/store/index.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n/* harmony default export */ var store = (Object(external_this_wp_data_[\"registerStore\"])('core/viewport', {\n  reducer: store_reducer,\n  actions: actions_namespaceObject,\n  selectors: selectors_namespaceObject\n}));\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/listener.js\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n\nvar listener_addDimensionsEventListener = function addDimensionsEventListener(breakpoints, operators) {\n  /**\n   * Callback invoked when media query state should be updated. Is invoked a\n   * maximum of one time per call stack.\n   */\n  var setIsMatching = Object(external_this_lodash_[\"debounce\"])(function () {\n    var values = Object(external_this_lodash_[\"mapValues\"])(queries, function (query) {\n      return query.matches;\n    });\n    Object(external_this_wp_data_[\"dispatch\"])('core/viewport').setIsMatching(values);\n  }, {\n    leading: true\n  });\n  /**\n   * Hash of breakpoint names with generated MediaQueryList for corresponding\n   * media query.\n   *\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/matchMedia\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaQueryList\n   *\n   * @type {Object<string,MediaQueryList>}\n   */\n\n  var queries = Object(external_this_lodash_[\"reduce\"])(breakpoints, function (result, width, name) {\n    Object(external_this_lodash_[\"forEach\"])(operators, function (condition, operator) {\n      var list = window.matchMedia(\"(\".concat(condition, \": \").concat(width, \"px)\"));\n      list.addListener(setIsMatching);\n      var key = [operator, name].join(' ');\n      result[key] = list;\n    });\n    return result;\n  }, {});\n  window.addEventListener('orientationchange', setIsMatching); // Set initial values\n\n  setIsMatching();\n  setIsMatching.flush();\n};\n\n/* harmony default export */ var listener = (listener_addDimensionsEventListener);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"compose\"]}\nvar external_this_wp_compose_ = __webpack_require__(9);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js\nvar esm_extends = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules\nvar slicedToArray = __webpack_require__(13);\n\n// EXTERNAL MODULE: external {\"this\":[\"wp\",\"element\"]}\nvar external_this_wp_element_ = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/with-viewport-match.js\n\n\n\n\n/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\n\n\n/**\n * Higher-order component creator, creating a new component which renders with\n * the given prop names, where the value passed to the underlying component is\n * the result of the query assigned as the object's value.\n *\n * @see isViewportMatch\n *\n * @param {Object} queries  Object of prop name to viewport query.\n *\n * @example\n *\n * ```jsx\n * function MyComponent( { isMobile } ) {\n * \treturn (\n * \t\t<div>Currently: { isMobile ? 'Mobile' : 'Not Mobile' }</div>\n * \t);\n * }\n *\n * MyComponent = withViewportMatch( { isMobile: '< small' } )( MyComponent );\n * ```\n *\n * @return {Function} Higher-order component.\n */\n\nvar with_viewport_match_withViewportMatch = function withViewportMatch(queries) {\n  var useViewPortQueriesResult = function useViewPortQueriesResult() {\n    return Object(external_this_lodash_[\"mapValues\"])(queries, function (query) {\n      var _query$split = query.split(' '),\n          _query$split2 = Object(slicedToArray[\"a\" /* default */])(_query$split, 2),\n          operator = _query$split2[0],\n          breakpointName = _query$split2[1];\n\n      if (breakpointName === undefined) {\n        breakpointName = operator;\n        operator = '>=';\n      } // Hooks should unconditionally execute in the same order,\n      // we are respecting that as from the static query of the HOC we generate\n      // a hook that calls other hooks always in the same order (because the query never changes).\n      // eslint-disable-next-line react-hooks/rules-of-hooks\n\n\n      return Object(external_this_wp_compose_[\"useViewportMatch\"])(breakpointName, operator);\n    });\n  };\n\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(function (WrappedComponent) {\n    return Object(external_this_wp_compose_[\"pure\"])(function (props) {\n      var queriesResult = useViewPortQueriesResult();\n      return Object(external_this_wp_element_[\"createElement\"])(WrappedComponent, Object(esm_extends[\"a\" /* default */])({}, props, queriesResult));\n    });\n  }, 'withViewportMatch');\n};\n\n/* harmony default export */ var with_viewport_match = (with_viewport_match_withViewportMatch);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/if-viewport-matches.js\n/**\n * WordPress dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n/**\n * Higher-order component creator, creating a new component which renders if\n * the viewport query is satisfied.\n *\n * @see withViewportMatches\n *\n * @param {string} query Viewport query.\n *\n * @example\n *\n * ```jsx\n * function MyMobileComponent() {\n * \treturn <div>I'm only rendered on mobile viewports!</div>;\n * }\n *\n * MyMobileComponent = ifViewportMatches( '< small' )( MyMobileComponent );\n * ```\n *\n * @return {Function} Higher-order component.\n */\n\nvar if_viewport_matches_ifViewportMatches = function ifViewportMatches(query) {\n  return Object(external_this_wp_compose_[\"createHigherOrderComponent\"])(Object(external_this_wp_compose_[\"compose\"])([with_viewport_match({\n    isViewportMatch: query\n  }), Object(external_this_wp_compose_[\"ifCondition\"])(function (props) {\n    return props.isViewportMatch;\n  })]), 'ifViewportMatches');\n};\n\n/* harmony default export */ var if_viewport_matches = (if_viewport_matches_ifViewportMatches);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/viewport/build-module/index.js\n/**\n * Internal dependencies\n */\n\n\n\n\n/**\n * Hash of breakpoint names with pixel width at which it becomes effective.\n *\n * @see _breakpoints.scss\n *\n * @type {Object}\n */\n\nvar BREAKPOINTS = {\n  huge: 1440,\n  wide: 1280,\n  large: 960,\n  medium: 782,\n  small: 600,\n  mobile: 480\n};\n/**\n * Hash of query operators with corresponding condition for media query.\n *\n * @type {Object}\n */\n\nvar OPERATORS = {\n  '<': 'max-width',\n  '>=': 'min-width'\n};\nlistener(BREAKPOINTS, OPERATORS);\n\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return _extends; });\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"wp\"][\"compose\"]; }());\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/gutenberg/wp-warning.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"warning\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 431);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 112:\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n\n/***/ 431:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return warning; });\nfunction isDev() {\n  return typeof process !== 'undefined' && process.env && \"production\" !== 'production';\n}\n/**\n * Shows a warning with `message` if environment is not `production`.\n *\n * @param {string} message Message to show in the warning.\n *\n * @example\n * ```js\n * import warning from '@wordpress/warning';\n *\n * function MyComponent( props ) {\n *   if ( ! props.title ) {\n *     warning( '`props.title` was not passed' );\n *   }\n *   ...\n * }\n * ```\n */\n\n\nfunction warning(message) {\n  if (!isDev()) {\n    return;\n  } // eslint-disable-next-line no-console\n\n\n  console.warn(message); // Throwing an error and catching it immediately to improve debugging\n  // A consumer can use 'pause on caught exceptions'\n  // https://github.com/facebook/react/issues/4216\n\n  try {\n    throw Error(message);\n  } catch (x) {// do nothing\n  }\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(112)))\n\n/***/ })\n\n/******/ })[\"default\"];"
  },
  {
    "path": "public/vendor/gutenberg/wp-wordcount.js",
    "content": "this[\"wp\"] = this[\"wp\"] || {}; this[\"wp\"][\"wordcount\"] =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 446);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 2:\n/***/ (function(module, exports) {\n\n(function() { module.exports = this[\"lodash\"]; }());\n\n/***/ }),\n\n/***/ 446:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"count\", function() { return /* binding */ count; });\n\n// EXTERNAL MODULE: external {\"this\":\"lodash\"}\nvar external_this_lodash_ = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/defaultSettings.js\nvar defaultSettings = {\n  HTMLRegExp: /<\\/?[a-z][^>]*?>/gi,\n  HTMLcommentRegExp: /<!--[\\s\\S]*?-->/g,\n  spaceRegExp: /&nbsp;|&#160;/gi,\n  HTMLEntityRegExp: /&\\S+?;/g,\n  // \\u2014 = em-dash\n  connectorRegExp: /--|\\u2014/g,\n  // Characters to be removed from input text.\n  removeRegExp: new RegExp(['[', // Basic Latin (extract)\n  \"!-@[-`{-~\", // Latin-1 Supplement (extract)\n  \"\\x80-\\xBF\\xD7\\xF7\",\n  /*\n   * The following range consists of:\n   * General Punctuation\n   * Superscripts and Subscripts\n   * Currency Symbols\n   * Combining Diacritical Marks for Symbols\n   * Letterlike Symbols\n   * Number Forms\n   * Arrows\n   * Mathematical Operators\n   * Miscellaneous Technical\n   * Control Pictures\n   * Optical Character Recognition\n   * Enclosed Alphanumerics\n   * Box Drawing\n   * Block Elements\n   * Geometric Shapes\n   * Miscellaneous Symbols\n   * Dingbats\n   * Miscellaneous Mathematical Symbols-A\n   * Supplemental Arrows-A\n   * Braille Patterns\n   * Supplemental Arrows-B\n   * Miscellaneous Mathematical Symbols-B\n   * Supplemental Mathematical Operators\n   * Miscellaneous Symbols and Arrows\n   */\n  \"\\u2000-\\u2BFF\", // Supplemental Punctuation\n  \"\\u2E00-\\u2E7F\", ']'].join(''), 'g'),\n  // Remove UTF-16 surrogate points, see https://en.wikipedia.org/wiki/UTF-16#U.2BD800_to_U.2BDFFF\n  astralRegExp: /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,\n  wordsRegExp: /\\S\\s+/g,\n  characters_excluding_spacesRegExp: /\\S/g,\n\n  /*\n   * Match anything that is not a formatting character, excluding:\n   * \\f = form feed\n   * \\n = new line\n   * \\r = carriage return\n   * \\t = tab\n   * \\v = vertical tab\n   * \\u00AD = soft hyphen\n   * \\u2028 = line separator\n   * \\u2029 = paragraph separator\n   */\n  characters_including_spacesRegExp: /[^\\f\\n\\r\\t\\v\\u00AD\\u2028\\u2029]/g,\n  l10n: {\n    type: 'words'\n  }\n};\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripTags.js\n/**\n * Replaces items matched in the regex with new line\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripTags(settings, text) {\n  if (settings.HTMLRegExp) {\n    return text.replace(settings.HTMLRegExp, '\\n');\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/transposeAstralsToCountableChar.js\n/**\n * Replaces items matched in the regex with character.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction transposeAstralsToCountableChar(settings, text) {\n  if (settings.astralRegExp) {\n    return text.replace(settings.astralRegExp, 'a');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripHTMLEntities.js\n/**\n * Removes items matched in the regex.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripHTMLEntities(settings, text) {\n  if (settings.HTMLEntityRegExp) {\n    return text.replace(settings.HTMLEntityRegExp, '');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripConnectors.js\n/**\n * Replaces items matched in the regex with spaces.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripConnectors(settings, text) {\n  if (settings.connectorRegExp) {\n    return text.replace(settings.connectorRegExp, ' ');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripRemovables.js\n/**\n * Removes items matched in the regex.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripRemovables(settings, text) {\n  if (settings.removeRegExp) {\n    return text.replace(settings.removeRegExp, '');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripHTMLComments.js\n/**\n * Removes items matched in the regex.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripHTMLComments(settings, text) {\n  if (settings.HTMLcommentRegExp) {\n    return text.replace(settings.HTMLcommentRegExp, '');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripShortcodes.js\n/**\n * Replaces items matched in the regex with a new line.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripShortcodes(settings, text) {\n  if (settings.shortcodesRegExp) {\n    return text.replace(settings.shortcodesRegExp, '\\n');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/stripSpaces.js\n/**\n * Replaces items matched in the regex with spaces.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction stripSpaces(settings, text) {\n  if (settings.spaceRegExp) {\n    return text.replace(settings.spaceRegExp, ' ');\n  }\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/transposeHTMLEntitiesToCountableChars.js\n/**\n * Replaces items matched in the regex with a single character.\n *\n * @param {Object} settings The main settings object containing regular expressions\n * @param {string} text     The string being counted.\n *\n * @return {string} The manipulated text.\n */\nfunction transposeHTMLEntitiesToCountableChars(settings, text) {\n  if (settings.HTMLEntityRegExp) {\n    return text.replace(settings.HTMLEntityRegExp, 'a');\n  }\n\n  return text;\n}\n\n// CONCATENATED MODULE: ./node_modules/@wordpress/wordcount/build-module/index.js\n/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Private function to manage the settings.\n *\n * @param {string} type         The type of count to be done.\n * @param {Object} userSettings Custom settings for the count.\n *\n * @return {void|Object|*} The combined settings object to be used.\n */\n\nfunction loadSettings(type, userSettings) {\n  var settings = Object(external_this_lodash_[\"extend\"])(defaultSettings, userSettings);\n  settings.shortcodes = settings.l10n.shortcodes || {};\n\n  if (settings.shortcodes && settings.shortcodes.length) {\n    settings.shortcodesRegExp = new RegExp('\\\\[\\\\/?(?:' + settings.shortcodes.join('|') + ')[^\\\\]]*?\\\\]', 'g');\n  }\n\n  settings.type = type || settings.l10n.type;\n\n  if (settings.type !== 'characters_excluding_spaces' && settings.type !== 'characters_including_spaces') {\n    settings.type = 'words';\n  }\n\n  return settings;\n}\n/**\n * Match the regex for the type 'words'\n *\n * @param {string} text     The text being processed\n * @param {string} regex    The regular expression pattern being matched\n * @param {Object} settings Settings object containing regular expressions for each strip function\n *\n * @return {Array|{index: number, input: string}} The matched string.\n */\n\n\nfunction matchWords(text, regex, settings) {\n  text = Object(external_this_lodash_[\"flow\"])(stripTags.bind(this, settings), stripHTMLComments.bind(this, settings), stripShortcodes.bind(this, settings), stripSpaces.bind(this, settings), stripHTMLEntities.bind(this, settings), stripConnectors.bind(this, settings), stripRemovables.bind(this, settings))(text);\n  text = text + '\\n';\n  return text.match(regex);\n}\n/**\n * Match the regex for either 'characters_excluding_spaces' or 'characters_including_spaces'\n *\n * @param {string} text     The text being processed\n * @param {string} regex    The regular expression pattern being matched\n * @param {Object} settings Settings object containing regular expressions for each strip function\n *\n * @return {Array|{index: number, input: string}} The matched string.\n */\n\n\nfunction matchCharacters(text, regex, settings) {\n  text = Object(external_this_lodash_[\"flow\"])(stripTags.bind(this, settings), stripHTMLComments.bind(this, settings), stripShortcodes.bind(this, settings), stripSpaces.bind(this, settings), transposeAstralsToCountableChar.bind(this, settings), transposeHTMLEntitiesToCountableChars.bind(this, settings))(text);\n  text = text + '\\n';\n  return text.match(regex);\n}\n/**\n * Count some words.\n *\n * @param {string} text         The text being processed\n * @param {string} type         The type of count. Accepts ;words', 'characters_excluding_spaces', or 'characters_including_spaces'.\n * @param {Object} userSettings Custom settings object.\n *\n * @example\n * ```js\n * import { count } from '@wordpress/wordcount';\n * const numberOfWords = count( 'Words to count', 'words', {} )\n * ```\n *\n * @return {number} The word or character count.\n */\n\n\nfunction count(text, type, userSettings) {\n  if ('' === text) {\n    return 0;\n  }\n\n  if (text) {\n    var settings = loadSettings(type, userSettings);\n    var matchRegExp = settings[type + 'RegExp'];\n    var results = 'words' === settings.type ? matchWords(text, matchRegExp, settings) : matchCharacters(text, matchRegExp, settings);\n    return results ? results.length : 0;\n  }\n}\n\n\n/***/ })\n\n/******/ });"
  },
  {
    "path": "public/vendor/no-conflict.js",
    "content": "window.lodash = window._.noConflict();\n"
  },
  {
    "path": "scripts/build.js",
    "content": "'use strict';\n\n// Do this as the first thing so that any code reading it knows the right env.\nprocess.env.BABEL_ENV = 'production';\nprocess.env.NODE_ENV = 'production';\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on('unhandledRejection', err => {\n  throw err;\n});\n\n// Ensure environment variables are read.\nrequire('../config/env');\n\n\nconst path = require('path');\nconst chalk = require('chalk');\nconst fs = require('fs-extra');\nconst webpack = require('webpack');\nconst bfj = require('bfj');\nconst config = require('../config/webpack.config.prod');\nconst paths = require('../config/paths');\nconst checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');\nconst formatWebpackMessages = require('react-dev-utils/formatWebpackMessages');\nconst printHostingInstructions = require('react-dev-utils/printHostingInstructions');\nconst FileSizeReporter = require('react-dev-utils/FileSizeReporter');\nconst printBuildError = require('react-dev-utils/printBuildError');\n\nconst measureFileSizesBeforeBuild =\n  FileSizeReporter.measureFileSizesBeforeBuild;\nconst printFileSizesAfterBuild = FileSizeReporter.printFileSizesAfterBuild;\nconst useYarn = fs.existsSync(paths.yarnLockFile);\n\n// These sizes are pretty large. We'll warn for bundles exceeding them.\nconst WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024;\nconst WARN_AFTER_CHUNK_GZIP_SIZE = 1024 * 1024;\n\nconst isInteractive = process.stdout.isTTY;\n\n// Warn and crash if required files are missing\nif (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {\n  process.exit(1);\n}\n\n// Process CLI arguments\nconst argv = process.argv.slice(2);\nconst writeStatsJson = argv.indexOf('--stats') !== -1;\n\n// We require that you explictly set browsers and do not fall back to\n// browserslist defaults.\nconst { checkBrowsers } = require('react-dev-utils/browsersHelper');\ncheckBrowsers(paths.appPath, isInteractive)\n  .then(() => {\n    // First, read the current file sizes in build directory.\n    // This lets us display how much they changed later.\n    return measureFileSizesBeforeBuild(paths.appBuild);\n  })\n  .then(previousFileSizes => {\n    // Remove all content but keep the directory so that\n    // if you're in it, you don't end up in Trash\n    fs.emptyDirSync(paths.appBuild);\n    // Merge with the public folder\n    copyPublicFolder();\n    // Start the webpack build\n    return build(previousFileSizes);\n  })\n  .then(\n    ({ stats, previousFileSizes, warnings }) => {\n      if (warnings.length) {\n        console.log(chalk.yellow('Compiled with warnings.\\n'));\n        console.log(warnings.join('\\n\\n'));\n        console.log(\n          '\\nSearch for the ' +\n            chalk.underline(chalk.yellow('keywords')) +\n            ' to learn more about each warning.'\n        );\n        console.log(\n          'To ignore, add ' +\n            chalk.cyan('// eslint-disable-next-line') +\n            ' to the line before.\\n'\n        );\n      } else {\n        console.log(chalk.green('Compiled successfully.\\n'));\n      }\n\n      console.log('File sizes after gzip:\\n');\n      printFileSizesAfterBuild(\n        stats,\n        previousFileSizes,\n        paths.appBuild,\n        WARN_AFTER_BUNDLE_GZIP_SIZE,\n        WARN_AFTER_CHUNK_GZIP_SIZE\n      );\n      console.log();\n\n      const appPackage = require(paths.appPackageJson);\n      const publicUrl = paths.publicUrl;\n      const publicPath = config.output.publicPath;\n      const buildFolder = path.relative(process.cwd(), paths.appBuild);\n      printHostingInstructions(\n        appPackage,\n        publicUrl,\n        publicPath,\n        buildFolder,\n        useYarn\n      );\n    },\n    err => {\n      console.log(chalk.red('Failed to compile.\\n'));\n      printBuildError(err);\n      process.exit(1);\n    }\n  )\n  .catch(err => {\n    if (err && err.message) {\n      console.log(err.message);\n    }\n    process.exit(1);\n  });\n\n// Create the production build and print the deployment instructions.\nfunction build(previousFileSizes) {\n  console.log('Creating an optimized production build...');\n\n  let compiler = webpack(config);\n  return new Promise((resolve, reject) => {\n    compiler.run((err, stats) => {\n      let messages;\n      if (err) {\n        if (!err.message) {\n          return reject(err);\n        }\n        messages = formatWebpackMessages({\n          errors: [err.message],\n          warnings: [],\n        });\n      } else {\n        messages = formatWebpackMessages(\n          stats.toJson({ all: false, warnings: true, errors: true })\n        );\n      }\n      if (messages.errors.length) {\n        // Only keep the first error. Others are often indicative\n        // of the same problem, but confuse the reader with noise.\n        if (messages.errors.length > 1) {\n          messages.errors.length = 1;\n        }\n        return reject(new Error(messages.errors.join('\\n\\n')));\n      }\n      if (\n        process.env.CI &&\n        (typeof process.env.CI !== 'string' ||\n          process.env.CI.toLowerCase() !== 'false') &&\n        messages.warnings.length\n      ) {\n        console.log(\n          chalk.yellow(\n            '\\nTreating warnings as errors because process.env.CI = true.\\n' +\n              'Most CI servers set it automatically.\\n'\n          )\n        );\n        return reject(new Error(messages.warnings.join('\\n\\n')));\n      }\n\n      const resolveArgs = {\n        stats,\n        previousFileSizes,\n        warnings: messages.warnings,\n      };\n      if (writeStatsJson) {\n        return bfj\n          .write(paths.appBuild + '/bundle-stats.json', stats.toJson())\n          .then(() => resolve(resolveArgs))\n          .catch(error => reject(new Error(error)));\n      }\n\n      return resolve(resolveArgs);\n    });\n  });\n}\n\nfunction copyPublicFolder() {\n  fs.copySync(paths.appPublic, paths.appBuild, {\n    dereference: true,\n    filter: file => file !== paths.appHtml,\n  });\n}\n"
  },
  {
    "path": "scripts/g-scripts.js",
    "content": "'use strict';\n\nconst fs = require('fs');\nconst runner = require('child_process');\n\n// const file = './public/vendor/gutenberg/wp-script-loader-packages.php';\n\n// TODO: check if it's a file.\nconst file = './tmp/WordPress/wp-includes/assets/script-loader-packages.php';\n\nrunner.exec('php -r \\'print json_encode(include(\"' + file + '\"));\\'', function(err, stdout, stderr) {\n  const json = JSON.stringify(JSON.parse(stdout));\n  fs.writeFile('./config/gutenberg/scripts.json', json, (err) => {\n    // In case of a error throw err.\n    if (err) {\n      console.log(err);\n      throw err;\n    }\n  });\n});\n"
  },
  {
    "path": "scripts/g-update.js",
    "content": "'use strict';\n\nconst fs = require('fs')\n\n// Get updated list of dependencies\nconst packages = require('../config/gutenberg')();\n\nconst scripts = packages.scripts.reduce((html, script) => {\n  if (!script.path) {\n    return html;\n  }\n\n  return html + '<script id=\"' + script.name +  '\" src=\"' + script.path.replace('./public', '') + '\"></script>';\n}, '');\n\nconst styles = packages.styles.reduce((html, style) => {\n  if (!style.path) {\n    return html;\n  }\n\n  return html + '<link rel=\"stylesheet\" id=\"' + style.name +  '\" href=\"' + style.path.replace('./public', '') + '\"></link>';\n}, '');\n\nfs.writeFile('g-scripts.txt', scripts, (err) => {\n  // In case of a error throw err.\n  if (err) {\n    console.log(err);\n    throw err;\n  }\n});\n\nfs.writeFile('g-styles.txt', styles, (err) => {\n  // In case of a error throw err.\n  if (err) {\n    console.log(err);\n    throw err;\n  }\n});\n"
  },
  {
    "path": "scripts/start.js",
    "content": "'use strict';\n\n// Do this as the first thing so that any code reading it knows the right env.\nprocess.env.BABEL_ENV = 'development';\nprocess.env.NODE_ENV = 'development';\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on('unhandledRejection', err => {\n  throw err;\n});\n\n// Ensure environment variables are read.\nrequire('../config/env');\n\n\nconst fs = require('fs');\nconst chalk = require('chalk');\nconst webpack = require('webpack');\nconst WebpackDevServer = require('webpack-dev-server');\nconst clearConsole = require('react-dev-utils/clearConsole');\nconst checkRequiredFiles = require('react-dev-utils/checkRequiredFiles');\nconst {\n  choosePort,\n  createCompiler,\n  prepareProxy,\n  prepareUrls,\n} = require('react-dev-utils/WebpackDevServerUtils');\nconst openBrowser = require('react-dev-utils/openBrowser');\nconst paths = require('../config/paths');\nconst config = require('../config/webpack.config.dev');\nconst createDevServerConfig = require('../config/webpackDevServer.config');\n\nconst useYarn = fs.existsSync(paths.yarnLockFile);\nconst isInteractive = process.stdout.isTTY;\n\n// Warn and crash if required files are missing\nif (!checkRequiredFiles([paths.appHtml, paths.appIndexJs])) {\n  process.exit(1);\n}\n\n// Tools like Cloud9 rely on this.\nconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;\nconst HOST = process.env.HOST || '0.0.0.0';\n\nif (process.env.HOST) {\n  console.log(\n    chalk.cyan(\n      `Attempting to bind to HOST environment variable: ${chalk.yellow(\n        chalk.bold(process.env.HOST)\n      )}`\n    )\n  );\n  console.log(\n    `If this was unintentional, check that you haven't mistakenly set it in your shell.`\n  );\n  console.log(\n    `Learn more here: ${chalk.yellow('http://bit.ly/CRA-advanced-config')}`\n  );\n  console.log();\n}\n\n// We require that you explictly set browsers and do not fall back to\n// browserslist defaults.\nconst { checkBrowsers } = require('react-dev-utils/browsersHelper');\ncheckBrowsers(paths.appPath, isInteractive)\n  .then(() => {\n    // We attempt to use the default port but if it is busy, we offer the user to\n    // run on a different port. `choosePort()` Promise resolves to the next free port.\n    return choosePort(HOST, DEFAULT_PORT);\n  })\n  .then(port => {\n    if (port == null) {\n      // We have not found a port.\n      return;\n    }\n    const protocol = process.env.HTTPS === 'true' ? 'https' : 'http';\n    const appName = require(paths.appPackageJson).name;\n    const urls = prepareUrls(protocol, HOST, port);\n    // Create a webpack compiler that is configured with custom messages.\n    const compiler = createCompiler(webpack, config, appName, urls, useYarn);\n    // Load proxy config\n    const proxySetting = require(paths.appPackageJson).proxy;\n    const proxyConfig = prepareProxy(proxySetting, paths.appPublic);\n    // Serve webpack assets generated by the compiler over a web server.\n    const serverConfig = createDevServerConfig(\n      proxyConfig,\n      urls.lanUrlForConfig\n    );\n    const devServer = new WebpackDevServer(compiler, serverConfig);\n    // Launch WebpackDevServer.\n    devServer.listen(port, HOST, err => {\n      if (err) {\n        return console.log(err);\n      }\n      if (isInteractive) {\n        clearConsole();\n      }\n      console.log(chalk.cyan('Starting the development server...\\n'));\n      openBrowser(urls.localUrlForBrowser);\n    });\n\n    ['SIGINT', 'SIGTERM'].forEach(function(sig) {\n      process.on(sig, function() {\n        devServer.close();\n        process.exit();\n      });\n    });\n  })\n  .catch(err => {\n    if (err && err.message) {\n      console.log(err.message);\n    }\n    process.exit(1);\n  });\n"
  },
  {
    "path": "scripts/test.js",
    "content": "'use strict';\n\n// Do this as the first thing so that any code reading it knows the right env.\nprocess.env.BABEL_ENV = 'test';\nprocess.env.NODE_ENV = 'test';\nprocess.env.PUBLIC_URL = '';\n\n// Makes the script crash on unhandled rejections instead of silently\n// ignoring them. In the future, promise rejections that are not handled will\n// terminate the Node.js process with a non-zero exit code.\nprocess.on('unhandledRejection', err => {\n  throw err;\n});\n\n// Ensure environment variables are read.\nrequire('../config/env');\n\n\nconst jest = require('jest');\nconst execSync = require('child_process').execSync;\nlet argv = process.argv.slice(2);\n\nfunction isInGitRepository() {\n  try {\n    execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' });\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction isInMercurialRepository() {\n  try {\n    execSync('hg --cwd . root', { stdio: 'ignore' });\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n// Watch unless on CI, in coverage mode, or explicitly running all tests\nif (\n  !process.env.CI &&\n  argv.indexOf('--coverage') === -1 &&\n  argv.indexOf('--watchAll') === -1\n) {\n  // https://github.com/facebook/create-react-app/issues/5210\n  const hasSourceControl = isInGitRepository() || isInMercurialRepository();\n  argv.push(hasSourceControl ? '--watch' : '--watchAll');\n}\n\n\njest.run(argv);\n"
  },
  {
    "path": "src/core/api-fetch.js",
    "content": "\nimport apiFetch from '../globals/api-fetch';\n\nconst {\n  use,\n  createNonceMiddleware,\n  createRootURLMiddleware,\n  setFetchHandler,\n} = window.wp.apiFetch;\n\nconst nonceMiddleware = createNonceMiddleware(window.wpApiSettings.nonce);\n\nuse(nonceMiddleware);\n\nwindow.wp.hooks.addAction(\n  'heartbeat.tick',\n  'core/api-fetch/create-nonce-middleware',\n  function (response) {\n    if (response.rest_nonce) {\n      nonceMiddleware.nonce = response.rest_nonce;\n    }\n  }\n);\n\nuse(createRootURLMiddleware(window.wpApiSettings.root));\n\nsetFetchHandler(apiFetch);\n"
  },
  {
    "path": "src/core/index.js",
    "content": "\nimport './settings';\nimport './api-fetch';\n\nimport './media-upload';\n\nimport './style.scss';\n"
  },
  {
    "path": "src/core/media-library.scss",
    "content": "\n.media-library__popover {\n  > div {\n    padding: 1em;\n  }\n\n  .media-library__popover__content {\n    max-height: 465px;\n    display: grid;\n    grid-template-columns: repeat(5, auto);\n    grid-gap: 1em;\n\n    .media-library-thumbnail {\n      width: 100px;\n      height: 100px;\n      border: 1px solid #e2e4e7;\n      padding: 5px;\n      background-position: center;\n      background-size: contain;\n      background-repeat: no-repeat;\n      background-color: hsla(240,5%,57%,.1);\n\n      &:hover {\n        cursor: pointer;\n        box-shadow: inset 0 0 0 1px rgba(25,30,35,.2), 0 1px 3px rgba(25,30,35,.4);\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/core/media-upload.js",
    "content": "\nimport { Component, Fragment } from 'react';\nimport './media-library.scss';\n\nconst { wp, lodash } = window;\nconst { get } = lodash;\n\nconst { __ } = wp.i18n;\nconst { Popover } = wp.components;\nconst { withSelect } = wp.data;\nconst { addFilter } = wp.hooks;\n\n\nclass MediaContainer extends Component {\n  constructor (props) {\n    super(props);\n    this.onImageClick = this.onImageClick.bind(this);\n  }\n\n  onImageClick (img) {\n    const { onSelect, closePopover, gallery = false, multiple = false } = this.props;\n\n    const imgObject = {\n      alt: img.alt_text,\n      caption: img.caption.raw,\n      id: img.id,\n      link: img.link,\n      mime: img.mime_type,\n      sizes: img.media_details.sizes,\n      media_details: img.media_details,\n      subtype: img.mime_type.split('/')[ 1 ],\n      type: img.mime_type.split('/')[ 0 ],\n      url: img.source_url,\n      data: img.data,\n    };\n\n    if (gallery || multiple) {\n      onSelect([imgObject]);\n    }\n    else {\n      onSelect(imgObject);\n    }\n    closePopover();\n  }\n\n  render () {\n    const { media, allowedTypes = [] } = this.props;\n    const items = media && media.filter(item => ! allowedTypes.length || allowedTypes.includes(item.media_type));\n    return (\n      <div className=\"media-library__popover__content\">\n        { items && items.map(item => {\n          const sourceUrl = get(item, 'media_details.sizes.thumbnail.source_url') ||\n            (item.media_type === 'image' && item.source_url);\n          const buttonStyle = sourceUrl ? { backgroundImage: `url(${sourceUrl})` } : {};\n\n          return <button\n            key={ item.id }\n            className=\"media-library-thumbnail\"\n            style={ buttonStyle }\n            onClick={ () => this.onImageClick(item) }\n          ></button>;\n        }) }\n      </div>\n    );\n  }\n}\n\n\nconst MediaLibrary = withSelect(select => ({\n  media: select('core').getMediaItems(),\n}))(MediaContainer);\n\n\nclass MediaUpload extends Component {\n  constructor (props) {\n    super(props);\n    this.state = { isVisible: false };\n\n    this.openPopover = this.openPopover.bind(this);\n    this.closePopover = this.closePopover.bind(this);\n  }\n\n  openPopover () {\n    this.setState({ isVisible: true });\n  }\n\n  closePopover () {\n    this.setState({ isVisible: false });\n  }\n\n  render () {\n    if (!this.props.mediaLibrary) {\n      console.log('Media Library is deactivated');\n      return false;\n    }\n\n    const { isVisible } = this.state;\n\n    return <Fragment>\n      { isVisible &&\n      <Popover\n        className=\"media-library__popover\"\n        onClose={ this.closePopover }\n        onClick={ event => event.stopPropagation() }\n        position=\"middle left\"\n        headerTitle={ __('Media Library') }\n      >\n        <MediaLibrary\n          { ...this.props }\n          closePopover={ this.closePopover }\n        />\n      </Popover>\n      }\n      { this.props.render({ open: this.openPopover }) }\n    </Fragment>;\n  }\n}\n\n\nconst replaceMediaUpload = () => withSelect(select => ({\n  mediaLibrary: select('core/editor').getEditorSettings().mediaLibrary,\n}))(MediaUpload);\n\n\naddFilter(\n  'editor.MediaUpload',\n  'core/edit-post/components/media-upload/replace-media-upload',\n  replaceMediaUpload,\n);\n"
  },
  {
    "path": "src/core/settings.js",
    "content": "\n// User settings\nwindow.userSettings = {\n  secure: '',\n  time: 1234567,\n  uid: 1,\n};\n\n// API settings\nwindow.wpApiSettings = {\n  root: window.location.origin + '/',\n  nonce: '123456789',\n  versionString: 'wp/v2/',\n};\n\n// postboxes\nwindow.postboxes = window.postboxes || {\n  add_postbox_toggles: (page, args) => {\n    console.log('page', page);\n    console.log('args', args);\n  },\n};\n"
  },
  {
    "path": "src/core/style.scss",
    "content": "\n@media (min-width: 600px) {\n  body .gutenberg__editor {\n    position: relative;\n  }\n}\n\n@media (min-width: 782px) {\n  .gutenberg__editor .edit-post-sidebar {\n    top: 56px;\n  }\n}\n\n.gutenberg__editor {\n  position: relative;\n\n  * {\n    box-sizing: border-box;\n    &:focus {\n      outline-width: 0;\n    }\n  }\n\n  input {\n    margin: 1px;\n  }\n\n  input[type=checkbox] {\n    border: 1px solid #b4b9be;\n    background: #fff;\n    color: #555;\n    clear: none;\n    cursor: pointer;\n    display: inline-block;\n    line-height: 0;\n    height: 16px;\n    margin: -4px 4px 0 0;\n    outline: 0;\n    padding: 0!important;\n    text-align: center;\n    vertical-align: middle;\n    width: 16px;\n    min-width: 16px;\n    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);\n    transition: .05s border-color ease-in-out;\n  }\n\n  .edit-post-layout {\n    padding-top: 0;\n\n    @media (min-width: 960px) {\n      padding-top: 0;\n    }\n    @media (min-width: 600px) {\n      padding-top: 0;\n    }\n\n    @media (min-width: 783px) {\n      top: 0;\n      left: 0;\n    }\n\n    .edit-post-header,\n    .edit-post-sidebar,\n    .components-popover {\n      font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif;\n      font-size: 13px;\n    }\n\n    .edit-post-header {\n      @media (min-width: 782px) {\n        position: sticky;\n        left: 0;\n        top: 0;\n      }\n    }\n\n    .components-notice-list {\n      @media (min-width: 782px) {\n        left: 0;\n      }\n\n      .notice,\n      div.error,\n      div.updated {\n        background: #fff;\n        border-left: 4px solid #fff;\n      }\n\n      .notice-alt {\n        box-shadow: none;\n      }\n\n      .notice-success.notice-alt {\n        background-color: #ecf7ed;\n      }\n\n      .notice-success,\n      div.updated {\n        border-left-color: #46b450;\n      }\n\n      .notice-dismiss {\n        position: absolute;\n        top: 0;\n        right: 1px;\n        border: none;\n        margin: 5px;\n        padding: 9px;\n        background: 0 0;\n        color: #72777c;\n        cursor: pointer;\n      }\n    }\n\n    .edit-post-text-editor {\n      @media (min-width: 960px) {\n        padding-left: 20px;\n        padding-right: 20px;\n      }\n\n      .edit-post-text-editor__body {\n        padding-top: 0px;\n        @media (min-width: 782px) {\n          padding-top: 0px;\n        }\n        @media (min-width: 600px) {\n          padding-top: 0px;\n        }\n        .editor-post-title {\n          @media (min-width: 600px) {\n            padding: 5px 0;\n          }\n        }\n      }\n    }\n\n    .edit-post-sidebar {\n      .edit-post-sidebar__panel-tabs {\n        ul {\n          list-style: none;\n          margin: 0;\n          padding: 0;\n        }\n      }\n    }\n  }\n\n  .screen-reader-text,\n  .screen-reader-text span,\n  .ui-helper-hidden-accessible {\n    border: 0;\n    clip: rect(1px, 1px, 1px, 1px);\n    -webkit-clip-path: inset(50%);\n    clip-path: inset(50%);\n    height: 1px;\n    margin: -1px;\n    overflow: hidden;\n    padding: 0;\n    position: absolute;\n    width: 1px;\n    word-wrap: normal!important;\n  }\n\n  .edit-post-visual-editor {\n    font-family: inherit;\n\n    p {\n      font-family: inherit;\n    }\n\n    .editor-post-title,\n    .editor-post-title__block,\n    .editor-block-list__block,\n    .editor-default-block-appender {\n      max-width: initial;\n      margin-left: 35px;\n      margin-right: 35px;\n    }\n\n    .editor-post-title>div {\n      @media (min-width: 600px) {\n        margin-left: 0;\n        margin-right: 0;\n      }\n    }\n\n    .editor-post-title {\n      .editor-post-title__input {\n        font-family: inherit;\n      }\n    }\n\n    .editor-block-list__layout {\n      .editor-block-list__block {\n        &.is-selected,\n        &.is-hovered {\n          outline-width: 0;\n        }\n      }\n\n      .editor-default-block-appender__content {\n        font-family: inherit;\n      }\n    }\n  }\n\n  .components-color-palette__item:focus:after {\n    top: -3px;\n    left: -3px;\n  }\n\n  // Hide links to php pages\n  a[href^=\"edit.php\"],\n  a[href^=\"post.php\"],\n  a[href^=\"options-permalink.php\"] {\n    display: none;\n  }\n\n  // Hide publish button\n  .editor-post-publish-button {\n    display: none;\n  }\n\n  .block-editor-editor-skeleton {\n    top: 0;\n  }\n\n  @media (min-width: 782px) {\n    .block-editor-editor-skeleton {\n      left: 0;\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/categories.json",
    "content": "[\n  {\n    \"id\": 2,\n    \"count\": 3,\n    \"description\": \"Neque quibusdam nihil sequi quia et inventore dolorem dolores et consequuntur nostrum delectus esse cum et voluptatem ut rerum et accusamus quae vel neque laudantium optio rerum asperiores assumenda rerum qui eius neque dolores id quibusdam id optio ut eius dolor qui quas non\",\n    \"link\": \"https://demo.wp-api.org/category/aut-architecto-nihil/\",\n    \"name\": \"Aut architecto nihil\",\n    \"slug\": \"aut-architecto-nihil\",\n    \"taxonomy\": \"category\",\n    \"parent\": 0,\n    \"meta\": [],\n    \"_links\": {\n      \"self\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories/2\"\n        }\n      ],\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories\"\n        }\n      ],\n      \"about\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/taxonomies/category\"\n        }\n      ],\n      \"wp:post_type\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/posts?categories=2\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    }\n  },\n  {\n    \"id\": 11,\n    \"count\": 7,\n    \"description\": \"Rem recusandae velit et incidunt labore qui explicabo veritatis eos quod dolor dolor occaecati nobis in suscipit et quo impedit repellat eius voluptatem\",\n    \"link\": \"https://demo.wp-api.org/category/facilis-dignissimos/\",\n    \"name\": \"Facilis dignissimos\",\n    \"slug\": \"facilis-dignissimos\",\n    \"taxonomy\": \"category\",\n    \"parent\": 0,\n    \"meta\": [],\n    \"_links\": {\n      \"self\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories/11\"\n        }\n      ],\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories\"\n        }\n      ],\n      \"about\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/taxonomies/category\"\n        }\n      ],\n      \"wp:post_type\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/posts?categories=11\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    }\n  },\n  {\n    \"id\": 1,\n    \"count\": 5,\n    \"description\": \"\",\n    \"link\": \"https://demo.wp-api.org/category/uncategorized/\",\n    \"name\": \"Uncategorized\",\n    \"slug\": \"uncategorized\",\n    \"taxonomy\": \"category\",\n    \"parent\": 0,\n    \"meta\": [],\n    \"_links\": {\n      \"self\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories/1\"\n        }\n      ],\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories\"\n        }\n      ],\n      \"about\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/taxonomies/category\"\n        }\n      ],\n      \"wp:post_type\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/posts?categories=1\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    }\n  }\n]\n"
  },
  {
    "path": "src/data/taxonomies.json",
    "content": "{\n  \"category\": {\n    \"name\": \"Categories\",\n    \"slug\": \"category\",\n    \"description\": \"\",\n    \"types\": [\n      \"post\"\n    ],\n    \"visibility\": { \"show_ui\": false },\n    \"hierarchical\": true,\n    \"rest_base\": \"categories\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/taxonomies\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/categories\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"labels\": {\n      \"singular_name\": \"Category\"\n    }\n  },\n  \"post_tag\": {\n    \"name\": \"Tags\",\n    \"slug\": \"post_tag\",\n    \"description\": \"\",\n    \"types\": [\n      \"post\"\n    ],\n    \"visibility\": { \"show_ui\": false },\n    \"hierarchical\": false,\n    \"rest_base\": \"tags\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/taxonomies\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/tags\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"labels\": {\n      \"singular_name\": \"Tag\"\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/themes.json",
    "content": "[\n  {\n    \"theme_supports\": {\n      \"formats\": [\n        \"standard\",\n        \"aside\",\n        \"image\",\n        \"video\",\n        \"quote\",\n        \"link\",\n        \"gallery\",\n        \"audio\"\n      ],\n      \"post-thumbnails\": true,\n      \"responsive-embeds\": false\n    }\n  }\n]\n"
  },
  {
    "path": "src/data/types.json",
    "content": "{\n  \"post\": {\n    \"description\": \"\",\n    \"hierarchical\": false,\n    \"viewable\": true,\n    \"name\": \"Posts\",\n    \"slug\": \"post\",\n    \"supports\": {\n      \"author\": false,\n      \"comments\": false,\n      \"custom-fields\": true,\n      \"editor\": true,\n      \"excerpt\": false,\n      \"page-attributes\": false,\n      \"revisions\": false,\n      \"thumbnail\": false,\n      \"title\": true,\n      \"post-formats\": true\n    },\n    \"taxonomies\": [\n      \"category\",\n      \"post_tag\"\n    ],\n    \"rest_base\": \"posts\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/types\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/posts\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"labels\": {\n      \"singular_name\": \"Post\"\n    }\n  },\n  \"page\": {\n    \"description\": \"\",\n    \"hierarchical\": true,\n    \"viewable\": true,\n    \"name\": \"Pages\",\n    \"slug\": \"page\",\n    \"supports\": {\n      \"author\": false,\n      \"comments\": false,\n      \"custom-fields\": false,\n      \"discussion\": false,\n      \"editor\": true,\n      \"excerpt\": true,\n      \"page-attributes\": false,\n      \"revisions\": false,\n      \"thumbnail\": false,\n      \"title\": false\n    },\n    \"taxonomies\": [],\n    \"rest_base\": \"pages\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/types\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/pages\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"labels\": {\n      \"singular_name\": \"Page\"\n    }\n  },\n  \"attachment\": {\n    \"description\": \"\",\n    \"hierarchical\": false,\n    \"viewable\": true,\n    \"name\": \"Media\",\n    \"slug\": \"attachment\",\n    \"supports\": {\n      \"title\": true,\n      \"author\": true,\n      \"comments\": true\n    },\n    \"taxonomies\": [],\n    \"rest_base\": \"media\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/types\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/media\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"labels\": {\n      \"singular_name\": \"Media\"\n    }\n  },\n  \"wp_block\": {\n    \"description\": \"\",\n    \"hierarchical\": false,\n    \"viewable\": false,\n    \"name\": \"Blocks\",\n    \"slug\": \"wp_block\",\n    \"supports\": {\n      \"title\": true,\n      \"editor\": true\n    },\n    \"taxonomies\": [],\n    \"rest_base\": \"blocks\",\n    \"_links\": {\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/types\"\n        }\n      ],\n      \"wp:items\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/blocks\"\n        }\n      ],\n      \"curies\": [\n        {\n          \"name\": \"wp\",\n          \"href\": \"https://api.w.org/{rel}\",\n          \"templated\": true\n        }\n      ]\n    },\n    \"headers\": [],\n    \"labels\": {\n      \"singular_name\": \"Block\"\n    }\n  }\n}\n"
  },
  {
    "path": "src/data/users.json",
    "content": "[\n  {\n    \"id\": 1,\n    \"name\": \"Human Made\",\n    \"url\": \"\",\n    \"description\": \"\",\n    \"link\": \"https://demo.wp-api.org/author/humanmade/\",\n    \"slug\": \"humanmade\",\n    \"avatar_urls\": {\n      \"24\": \"https://secure.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=24&d=mm&r=g\",\n      \"48\": \"https://secure.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=48&d=mm&r=g\",\n      \"96\": \"https://secure.gravatar.com/avatar/83888eb8aea456e4322577f96b4dbaab?s=96&d=mm&r=g\"\n    },\n    \"meta\": [],\n    \"_links\": {\n      \"self\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/users/1\"\n        }\n      ],\n      \"collection\": [\n        {\n          \"href\": \"https://demo.wp-api.org/wp-json/wp/v2/users\"\n        }\n      ]\n    }\n  }\n]\n"
  },
  {
    "path": "src/globals/api-fetch.js",
    "content": "\nimport routes from './api-routes';\n\n\nfunction matchRoute (pattern, pathname) {\n  const res = {};\n  const r = pattern.split('/'), p = pathname.split('/');\n  const l = Math.max(r.length, p.length);\n\n  let i = 0;\n  for(; i < l; i++) {\n    if(r[i] === p[i]) {\n      continue;\n    }\n    if(!r[i] || !p[i]) {\n      return false;\n    }\n    if(r[i].charAt(0) === '{' && r[i].charAt(r[i].length - 1) === '}') {\n      const param = r[i].slice(1, -1);\n      if(param.includes('*')) {\n        res[param.replace('*', '')] = p.slice(i).join('/');\n        return res;\n      }\n      res[param] = p[i];\n      continue;\n    }\n    return false;\n  }\n  return res;\n}\n\nfunction matchRouteList (options, pathname) {\n  if(typeof options === 'string') {\n    return matchRoute(options, pathname);\n  }\n\n  for(const pattern of options) {\n    const params = matchRoute(pattern, pathname);\n    if(params) {\n      return params;\n    }\n  }\n  return false;\n}\n\nfunction matchMethod (source, target) {\n  return !target || target === '*' || target === source || target.includes(source);\n}\n\nfunction parseQS (qs) {\n  return qs.split('&').reduce((a, i, p) => {\n    p = i.split('=');\n    a[decodeURIComponent(p[0])] = decodeURIComponent(p[1] || '');\n    return a;\n  }, {});\n}\n\n\nconst apiFetch = options => {\n  let { method = 'GET' } = options;\n  const { path, data, body, url, headers } = options;\n  const [ pathname, _qs ] = path.split('?');\n  const query = parseQS(_qs);\n  const payload = data || body;\n\n  if(headers && headers['X-HTTP-Method-Override']) {\n    method = headers['X-HTTP-Method-Override'];\n  }\n\n  // console.log(method, pathname);\n\n  for(const r of routes) {\n    const params = matchRouteList(r.path, pathname);\n    if(params) {\n      if(matchMethod(method, r.method)) {\n        return r.handler({\n          method, url, pathname, params, query, payload,\n        });\n      }\n    }\n  }\n\n  console.error('Unmatched route:', method, path, payload);\n  return {};\n};\n\nexport default apiFetch;\n"
  },
  {
    "path": "src/globals/api-routes.js",
    "content": "\nimport { getPage, savePage, deletePage } from './fake-data.js';\nimport { mediaList, createMedia } from './fake-media.js';\nimport { getEmbed } from './embeds.js';\n\nimport users from '../data/users';\nimport taxonomies from '../data/taxonomies';\nimport categories from '../data/categories';\nimport types from '../data/types';\nimport themes from '../data/themes';\n\n\nexport default [\n  // Pages and posts\n  {\n    path: '/wp/v2/pages',\n    method: '*',\n    handler () {\n      return [ getPage() ];\n    },\n  },\n  {\n    path: [\n      '/wp/v2/pages/{id}',\n      '/wp/v2/pages/{id}/autosaves',\n    ],\n    method: ['POST', 'PUT'],\n    handler ({ payload }) {\n      savePage(payload);\n      return getPage();\n    },\n  },\n  {\n    path: '/wp/v2/pages/{id}',\n    method: 'DELETE',\n    handler () {\n      deletePage();\n      return {};\n    },\n  },\n  {\n    path: [\n      '/wp/v2/pages/{id}',\n      '/wp/v2/pages/{id}/autosaves',\n    ],\n    method: '*',\n    handler () {\n      return getPage();\n    },\n  },\n\n  {\n    path: '/wp/v2/posts',\n    method: '*',\n    handler () {\n      return [ getPage('post') ];\n    },\n  },\n  {\n    path: '/wp/v2/posts/{id}',\n    method: 'DELETE',\n    handler () {\n      deletePage();\n      return {};\n    },\n  },\n  {\n    path: [\n      '/wp/v2/posts/{id}',\n      '/wp/v2/posts/{id}/autosaves',\n    ],\n    method: ['POST', 'PUT'],\n    handler ({ payload }) {\n      savePage(payload);\n      return getPage('post');\n    },\n  },\n  {\n    path: [\n      '/wp/v2/posts/{id}',\n      '/wp/v2/posts/{id}/autosaves',\n    ],\n    method: '*',\n    handler () {\n      return getPage('post');\n    },\n  },\n\n  // Media\n  {\n    path: '/wp/v2/media',\n    method: 'OPTIONS',\n    handler () {\n      return {\n        headers: {\n          get (value) {\n            if (value === 'allow') { return [ 'POST' ]; }\n          },\n        },\n      };\n    },\n  },\n  {\n    path: '/wp/v2/media',\n    method: 'POST',\n    async handler ({ payload }) {\n      const file = payload.get('file');\n      return file ? await createMedia(file) : {};\n    },\n  },\n  {\n    path: '/wp/v2/media',\n    method: '*',\n    handler () {\n      return mediaList;\n    },\n  },\n  {\n    path: '/wp/v2/media/{id}',\n    method: '*',\n    handler ({ params }) {\n      return mediaList[+params.id - 1];\n    },\n  },\n\n\n  // Types\n  {\n    path: '/wp/v2/types',\n    method: '*',\n    handler () {\n      return types;\n    },\n  },\n  {\n    path: '/wp/v2/types/{type}',\n    method: '*',\n    handler ({ params }) {\n      return types[params.type] || {};\n    },\n  },\n\n  // Blocks\n  {\n    path: '/wp/v2/blocks',\n    method: '*',\n    handler () {\n      return [];\n    },\n  },\n\n  // Themes\n  {\n    path: '/wp/v2/themes',\n    method: '*',\n    handler () {\n      return themes;\n    },\n  },\n\n  // Taxonomies\n  {\n    path: '/wp/v2/taxonomies',\n    method: '*',\n    handler () {\n      return new window.Response(JSON.stringify(taxonomies));\n    },\n  },\n  {\n    path: '/wp/v2/taxonomies/{type}',\n    method: '*',\n    handler ({ params }) {\n      return taxonomies[params.type] || {};\n    },\n  },\n\n  // Categories\n  {\n    path: '/wp/v2/categories',\n    method: '*',\n    handler () {\n      return categories;\n    },\n  },\n\n  // Users\n  {\n    path: '/wp/v2/users/',\n    method: '*',\n    handler () {\n      return new window.Response(JSON.stringify(users));\n    },\n  },\n  {\n    path: '/wp/v2/users/{name}',\n    method: '*',\n    handler () {\n      return users[0] || {};\n    },\n  },\n\n  // Block renderer\n  {\n    path: '/wp/v2/block-renderer/{block*}',\n    method: '*',\n    handler ({ params }) {\n      return {\n        rendered: `<div>Sorry. There is no server-side rendering available for \"${params.block}\".</div>`,\n      };\n    },\n  },\n\n  // Search\n  {\n    path: '/wp/v2/search',\n    method: '*',\n    handler () {\n      return [];\n    },\n  },\n\n  // Embed\n  {\n    path: '/oembed/1.0/proxy',\n    method: '*',\n    handler ({ query }) {\n      return getEmbed(query.url);\n    },\n  },\n];\n"
  },
  {
    "path": "src/globals/embeds.js",
    "content": "import providers from 'oembed-providers';\n\nexport async function getEmbed (url) {\n  // Proxy that we use that enables cross-origin requests\n  // https://cors-anywhere.herokuapp.com/\n  const cors_api_host = 'https://cors-anywhere.herokuapp.com/';\n  const hostname = (new URL(url)).hostname;\n\n  // Find the provider\n  const provider = providers.find(({ provider_url }) => {\n    return provider_url.includes(hostname) || hostname.includes(provider_url);\n  });\n\n  if(provider && provider.endpoints) {\n    // Use the first endpoint\n    const provider_url = provider.endpoints[0].url;\n\n    // Fetch embed to provider through the proxy\n    const response = await fetch(`${cors_api_host}${provider_url}?url=${url}`);\n    return response.json();\n  }\n}\n"
  },
  {
    "path": "src/globals/fake-data.js",
    "content": "const date = (new Date()).toISOString();\n\nexport const pages = {\n  page: {\n    id: 1,\n    content: {\n      raw: '',\n      rendered: '',\n    },\n    date,\n    date_gmt: date,\n    title: {\n      raw: 'Preview page',\n      rendered: 'Preview page',\n    },\n    excerpt: {\n      raw: '',\n      rendered: '',\n    },\n    status: 'draft',\n    revisions: { count: 0, last_id: 0 },\n    parent: 0,\n    theme_style: true,\n    type: 'page',\n    link: `${window.location.origin}/preview`,\n    categories: [ ],\n    featured_media: 0,\n    permalink_template: `${window.location.origin}/preview`,\n    preview_link: `${window.location.origin}/preview`,\n    _links: {\n      'wp:action-assign-categories': [],\n      'wp:action-create-categories': [],\n    },\n  },\n  post: {\n    id: 1,\n    content: {\n      raw: '',\n      rendered: '',\n    },\n    date,\n    date_gmt: date,\n    title: {\n      raw: 'Preview post',\n      rendered: 'Preview post',\n    },\n    excerpt: {\n      raw: '',\n      rendered: '',\n    },\n    status: 'draft',\n    revisions: { count: 0, last_id: 0 },\n    parent: 0,\n    theme_style: true,\n    type: 'post',\n    link: `${window.location.origin}/preview`,\n    categories: [ ],\n    featured_media: 0,\n    permalink_template: `${window.location.origin}/preview`,\n    preview_link: `${window.location.origin}/preview`,\n    _links: {\n      'wp:action-assign-categories': [],\n      'wp:action-create-categories': [],\n    },\n  },\n};\n\n\nexport function getPage (type = 'page') {\n  return JSON.parse(localStorage.getItem('g-editor-page')) || pages[type];\n}\n\nexport function savePage (data, type = 'page') {\n  const item = {\n    ...getPage(type),\n    id: data.id || 1, // to prevent when id isn't passed as data (ex: autosaves)\n  };\n\n  if(data.title) {\n    item.title = {\n      raw: data.title,\n      rendered: data.title,\n    };\n  }\n  if(data.content) {\n    item.content = {\n      raw: data.content,\n      // rendered: data.content.replace(/(<!--.*?-->)/g, ''),\n    };\n  }\n  if(data.excerpt) {\n    item.excerpt = {\n      raw: data.excerpt,\n      rendered: data.excerpt,\n    };\n  }\n\n  localStorage.setItem('g-editor-page', JSON.stringify(item));\n}\n\nexport function changeType (type) {\n  const item = getPage(type);\n  item.type = type;\n\n  localStorage.setItem('g-editor-page', JSON.stringify(item));\n}\n\nexport function deletePage () {\n  // Workaround to wait until the POST request (that is called after DELETE)\n  // is finished.\n  setTimeout(function () {\n    localStorage.removeItem('g-editor-page');\n    sessionStorage.removeItem('wp-autosave-block-editor-post-1');\n    window.location.reload();\n  }, 500);\n}\n"
  },
  {
    "path": "src/globals/fake-media.js",
    "content": "const date = (new Date()).toISOString();\nconst origin = window.location.origin;\n\n// List of images\nexport const mediaList = [];\n\nexport function getMedia (id, params = {}) {\n  const sizes = {};\n  if (params.thumbnail) {\n    sizes.thumbnail = {\n      source_url: params.thumbnail,\n    };\n  }\n\n  return {\n    id,\n    title: { raw: '', rendered: '' },\n    caption: { raw: '', rendered: '' },\n    date_gmt: date,\n    date,\n    media_type: params.media_type,\n    mime_type: params.mime_type,\n    source_url: params.source_url,\n    // link: params.source_url,\n    media_details: {\n      file: '',\n      width: 0,\n      height: 0,\n      image_meta: {},\n      sizes,\n    },\n  };\n}\n\nexport function createMedia (file) {\n  return new Promise(resolve => {\n    const reader = new window.FileReader();\n    reader.onload = () => {\n      // Create media and add to list\n      const img = getMedia(mediaList.length + 1, {\n        media_type: file.type.split('/')[0],\n        mime_type: file.type,\n        source_url: reader.result,\n      });\n      mediaList.push(img);\n      resolve(img);\n    };\n    reader.readAsDataURL(file);\n  });\n}\n\n\n// Load media (images)\nmediaList.push(getMedia(1, {\n  media_type: 'image',\n  mime_type: 'image/jpeg',\n  source_url: `${origin}/media/img1.jpg`,\n}));\n\nmediaList.push(getMedia(2, {\n  media_type: 'image',\n  mime_type: 'image/jpeg',\n  source_url: `${origin}/media/img2.jpeg`,\n}));\n\nmediaList.push(getMedia(3, {\n  media_type: 'image',\n  mime_type: 'image/png',\n  source_url: `${origin}/media/img3.png`,\n}));\n\n\n// Load media (videos)\nmediaList.push(getMedia(4, {\n  media_type: 'video',\n  mime_type: 'video/mp4',\n  source_url: `${origin}/media/video1.mp4`,\n  thumbnail: `${origin}/media/video1-thumb.jpg`,\n}));\n\nmediaList.push(getMedia(5, {\n  media_type: 'video',\n  mime_type: 'video/mp4',\n  source_url: `${origin}/media/video2.mp4`,\n  thumbnail: `${origin}/media/video2-thumb.jpg`,\n}));\n\n\n// Load media (audios)\nmediaList.push(getMedia(6, {\n  media_type: 'audio',\n  mime_type: 'audio/mp3',\n  source_url: `${origin}/media/audio1.mp3`,\n  thumbnail: `${origin}/media/audio1-thumb.png`,\n}));\n"
  },
  {
    "path": "src/index.js",
    "content": "import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter, Switch, Route } from 'react-router-dom';\n\nimport './core';\n\nimport Editor from './pages/editor';\nimport Preview from './pages/preview';\n\nReactDOM.render((\n  <BrowserRouter>\n    <Switch>\n      <Route exact path=\"/preview\" component={ Preview } />\n      <Route exact path=\"/posts\" component={ Editor } />\n      <Route exact path=\"/pages\" component={ Editor } />\n      <Route component={ Editor } />\n    </Switch>\n  </BrowserRouter>\n), document.getElementById('root'));\n"
  },
  {
    "path": "src/pages/editor.js",
    "content": "import React from 'react';\nimport types from '../data/types';\nimport { changeType } from '../globals/fake-data';\n\nimport './editor.scss';\n\nconst { data, editPost, domReady } = window.wp;\n\n\nclass Editor extends React.Component {\n  constructor (props) {\n    super(props);\n\n    let type = window.location.pathname.replace(/\\//g, '');\n    type = type.slice(0, -1);\n\n    this.state = {\n      postType: type || 'page',\n    };\n  }\n\n  componentDidMount () {\n    const { postType } = this.state;\n\n    const settings = {\n      alignWide: true,\n      availableTemplates: [],\n      allowedBlockTypes: true,\n      disableCustomColors: false,\n      disableCustomFontSizes: false,\n      disablePostFormats: false,\n      titlePlaceholder: 'Add title',\n      bodyPlaceholder: 'Insert your custom block',\n      isRTL: false,\n      autosaveInterval: 3,\n      style: [],\n      imageSizes: [],\n      richEditingEnabled: true,\n      postLock: {\n        isLocked: false,\n      },\n      postLockUtils: {\n        nonce: '123456789',\n      },\n      enableCustomFields: true,\n      mediaLibrary: true,\n      __experimentalBlockPatterns: [],\n      __experimentalBlockPatternCategories: [],\n      __experimentalDisableCustomLineHeight: [],\n      __experimentalDisableCustomUnits: [],\n      __experimentalEnableLinkColor: [],\n    };\n\n    // Disable publish sidebar\n    data.dispatch('core/editor').disablePublishSidebar();\n\n    // Disable tips\n    data.dispatch('core/nux').disableTips();\n\n    // Initialize the editor\n    window._wpLoadBlockEditor = new Promise(resolve => {\n      domReady(() => {\n        resolve(editPost.initializeEditor('editor', postType, 1, settings, {}));\n      });\n    });\n  }\n\n  resetLocalStorage = ev => {\n    ev.preventDefault();\n\n    localStorage.removeItem('g-editor-page');\n    sessionStorage.removeItem('wp-autosave-block-editor-post-1');\n    window.location.reload();\n  };\n\n  changePostType = (ev, type) => {\n    ev.preventDefault();\n    // update postType in localStorage before reload the editor\n    const slug = type.slice(0, -1);\n    changeType(slug);\n\n    window.location.replace(type);\n  };\n\n  render () {\n    const { postType } = this.state;\n\n    return (\n      <React.Fragment>\n        <div className=\"editor-nav\">\n          {\n            ['post', 'page'].map(type => {\n              return (\n                <button\n                  key={ type }\n                  className={ `components-button ${type === postType ? 'is-primary' : ''}` }\n                  onClick={ ev => this.changePostType(ev, types[type].rest_base) }\n                >{ types[type].name }</button>\n              );\n            })\n          }\n\n          <button type=\"button\" className=\"components-button is-tertiary\"\n            onClick={ this.resetLocalStorage }>Clear page and reload</button>\n        </div>\n        <div id=\"editor\" className=\"gutenberg__editor\"></div>\n      </React.Fragment>\n    );\n  }\n}\n\nexport default Editor;\n"
  },
  {
    "path": "src/pages/editor.scss",
    "content": "\n.editor-nav {\n  position: absolute;\n  display: flex;\n  justify-content: center;\n  align-items: center;\n  width: 100%;\n  height: 56px;\n\n  * {\n    z-index: 99;\n  }\n}\n\n// TODO: move to core style.\n@media (min-width: 782px) {\n  .edit-post-layout__content {\n    margin-left: 0 !important;\n  }\n}\n\niframe {\n  border: none;\n}\n"
  },
  {
    "path": "src/pages/preview.js",
    "content": "import React from 'react';\nimport { getPage } from '../globals/fake-data';\n\nconst { domReady } = window.wp;\n\n\nclass Preview extends React.Component {\n  constructor (props) {\n    super(props);\n\n    this.state = {\n      rendered: '',\n    };\n  }\n\n  componentWillMount () {\n    // remove block editor style from page\n    const editorStyle = document.querySelector('style[id=\"block-editor-style\"]');\n    if (editorStyle) {\n      editorStyle.remove();\n    }\n\n    // remove editor style\n    const style = document.querySelector('link[href$=\"css/gutenberg/style.css\"]');\n    if (style) {\n      style.remove();\n    }\n  }\n\n  componentDidMount () {\n    const page = getPage();\n    const rendered = (\n      page && page.content && page.content.raw &&\n      page.content.raw.replace(/(<!--.*?-->)/g, '')\n    ) || '';\n\n    this.setState({\n      rendered,\n    });\n\n    domReady(() => {\n      // Load the frontend scripts\n      const code = document.getElementById('frontend-scripts');\n      if (code && code.innerText) {\n        const script = document.createElement('script');\n        script.type = 'text/javascript';\n        script.async = true;\n        script.src = `data:text/javascript;base64,${code.innerText}`;\n        document.body.appendChild(script);\n      }\n\n      // Load html blocks scripts\n      const html = rendered.trim();\n      const container = document.createElement('div');\n      container.innerHTML = html;\n\n      const scripts = container.getElementsByTagName('script');\n      for(const s of scripts) {\n        const script = document.createElement('script');\n        script.type = 'text/javascript';\n        script.async = true;\n\n        if (s.innerText) {\n          // inner script\n          const frontendScript = Buffer.from(s.innerText).toString('base64');\n          script.src = `data:text/javascript;base64,${frontendScript}`;\n        }\n        else {\n          // or from external src\n          script.src = s.src;\n        }\n\n        document.body.appendChild(script);\n      }\n    });\n  }\n\n  render () {\n    const { rendered } = this.state;\n    return rendered ?\n      <div dangerouslySetInnerHTML={{ __html: rendered }} /> :\n      <center><em>Add your custom block in the editor</em></center>;\n  }\n}\n\nexport default Preview;\n"
  },
  {
    "path": "src/serviceWorker.js",
    "content": "// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA.\n\nconst isLocalhost = Boolean(\n  window.location.hostname === 'localhost' ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === '[::1]' ||\n    // 127.0.0.1/8 is considered localhost for IPv4.\n    window.location.hostname.match(\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n    )\n);\n\nexport function register (config) {\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener('load', () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            'This web app is being served cache-first by a service ' +\n              'worker. To learn more, visit http://bit.ly/CRA-PWA'\n          );\n        });\n      }\n      else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW (swUrl, config) {\n  navigator.serviceWorker\n  .register(swUrl)\n  .then(registration => {\n    registration.onupdatefound = () => {\n      const installingWorker = registration.installing;\n      installingWorker.onstatechange = () => {\n        if (installingWorker.state === 'installed') {\n          if (navigator.serviceWorker.controller) {\n            // At this point, the updated precached content has been fetched,\n            // but the previous service worker will still serve the older\n            // content until all client tabs are closed.\n            console.log(\n              'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n            );\n\n            // Execute callback\n            if (config && config.onUpdate) {\n              config.onUpdate(registration);\n            }\n          }\n          else {\n            // At this point, everything has been precached.\n            // It's the perfect time to display a\n            // \"Content is cached for offline use.\" message.\n            console.log('Content is cached for offline use.');\n\n            // Execute callback\n            if (config && config.onSuccess) {\n              config.onSuccess(registration);\n            }\n          }\n        }\n      };\n    };\n  })\n  .catch(error => {\n    console.error('Error during service worker registration:', error);\n  });\n}\n\nfunction checkValidServiceWorker (swUrl, config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl)\n  .then(response => {\n    // Ensure service worker exists, and that we really are getting a JS file.\n    if (\n      response.status === 404 ||\n        response.headers.get('content-type').indexOf('javascript') === -1\n    ) {\n      // No service worker found. Probably a different app. Reload the page.\n      navigator.serviceWorker.ready.then(registration => {\n        registration.unregister().then(() => {\n          window.location.reload();\n        });\n      });\n    }\n    else {\n      // Service worker found. Proceed as normal.\n      registerValidSW(swUrl, config);\n    }\n  })\n  .catch(() => {\n    console.log(\n      'No internet connection found. App is running in offline mode.'\n    );\n  });\n}\n\nexport function unregister () {\n  if ('serviceWorker' in navigator) {\n    navigator.serviceWorker.ready.then(registration => {\n      registration.unregister();\n    });\n  }\n}\n"
  }
]